24494897427831780981972840747058913919659474806566701284326925672509603774573150265398594331046402348185946012266141891248588654598377573416257839512372785528289127475276765712476301052709117702234813106789866908536324433525456040338088089393745855678465747243613041442702702161742018383000815898078380130897007286939936308371580944008004437386875491645146539391450120447264481333162935109447418135132854950444661717266314254976483181245040115660453645900934358616793198366566626690913190653586376610525815617936623617911029467208835457551288355298983241005586902050064154661241173533994104310579928984673395325527873604182965517183039103678003836231662973233028290497739104742636007051263769754688867700640992955925717328464502888091514425746302602952963237075525034227559915454262812980030646720799424253022878426205340679478600465969399799355975406167135865465345624820825627688636928094130637243350886480157248463372324473795454881443847933637009197410147785232875591063159846078310367009535324726423167141887586237415065044350403747255354974111421923942431530773603275095533257868898478361911203741160319479368246402525277268510443557553525374503503953047123217582899045486985923563901232750632903581829533782998163763115637086365842405363187768692305041268903197313421248524383307949675124158539431406338348911702105210257725964340624712749902973941661634214523598731203001020567998793805276042812820019962739680104378642831377288246585671381125105085643512733015660283503885638262315627956724892796463836862674273066818475297905269386815388589335492598576178623406399858531455601849484835123992750938592687297335488164777488446248770497702000183184288095182040011574497960704206733805744507203134268915617921411300590586517622943215506564109572274158367881717951541227024105936964427218643939201971426670334236301090770486471941229956556890533702900656870164355807174594637488033784331061572034389800444419465264015968167654444227851516808204879182545448962044971024232183801438461217618832964134877424513424168631238758987490206755124644101230159561763218477506002437704277004563044812884847293195723035653975598164604053339844119671813448114498649386227313275966833239587868102220323393253293661510074325728934337864111441907768547234009196377967324789723029280338671983683337307640064312940063722795952283771418475437608138704828576835048857262397456602423840160370099329652790052956343035197548520174728173785422560072097595820803648881699142641449962394385469547909304735243992037644375381962427397360386039011572094981167148947341682612757510857426570459645100205110895019868560923889833653696692405852726185901826580636092815719973822642167587669634459164012051897503927544144594317286630777180441046691094984827387491058928133990677521506826878760770273313488679060402071288995648958952245040775850441846667420013313013077243954395885457135316851922750845535421897270378429025423107831967306047718142891666854271203305542419063120687448154692541217624637758482875465229257512772153092654207396279200794599615466679972444094170929253128233139460133065644091597376113477401466909629163332122661907133386613161007024706757084680589932632638604556199943954483219989697899965769252258134595133681864433047057101743431744554947031531703990255037882788413809354049551203331090816362350053035820552446353872187512641223480429545594545926861922384791301662428929651444691596527870195349071817917401952471123252292293741645837432926761863232140756459810410597773165042882169816637089516145690141398415912627033909499193661931919046902193144117058339926435545679189759518587495237416991351772018697876600293203606006134465212907773883863969373239250086427731457503978836114665764035489938532855846290649709182546563454985993426302659152419095784260534998184421983483561741300782343098913142235207876374440561310707492712032229697090338600527885428002950470184504469147649689092079121221768935160027774429980914068020682423072361229461719833726028314503856047952794651177346033880910068352261382128704837633506270675517013178132047253261204844931963588119760991594916321570655037681026876562497479903955462782802410379912287135327941368089563097698328595794372678028243157378682295303869398838304451414908452142409677502854894683864239862771473542170415084302386832335330565414400546977901195685662394941450413398373410912005326414853920530422404072584314525584094482865034663261499617542311211535000334369248916520523387064749122403875089091691686438451248975360159931567289074569363716834451230800897803682833901749878261141682389504002637554639902375954570415322807979781622032124217336561926884057544221337683982648115102640441917796507822174754022980232386667524241423442312839861680166368133836714484096209208169620314217608215368577398670915181308206668514296595216443952100764869299744332836006542124172369653601916228154290889776652832812339854375349144103377849051481620722366327767260796467472176490964782177309376171291909982353054409429409978873760668779223132697991009625223395120632387156059911458241326680928591438770403367332652062473926101453901208407583265449936351255002958515688093977270743965444917513385203274000869663254172182797058166961795140026494771830488419453405484621070310202988777925698259612475023817804157086196781897767511382439017169331321992905392552104493357614550336192262785747853743117995329330124274342129088579083842277662379003973796726005614196682154827265594539990116545625741387045106302611589046752315069804557493903128213623442062052208149973730180925015426480842030766623899457706603063339606288898527448301515805429239852451690035956771849345128417817576532449207454923777839528043650434961708594018600290303077058871926036243147112427724740164489896264998671687771334552630181337158346155266087542305573709580469106251661890846721649808241438454352632204568117103203794515056490517017420516684638795386520881177691268424761158598304617452715077641319617208264977942564274183384771365325948167860033089295295546195702809481262140314334553111624714645297865951153750933515807267722711674191323067889985289684426413361792830238195602947956970929164023890624484847576000734554956061495499294696155675085398295463335646912527120820126123890297870533036575334380399826504604243688839765220370397337682748350168083481783651068002450876981633725833166274179843014306064846431210682823170343576700688876307122948874542859303408297234676771552625199680160354820798230355942980921200570279626649937329818095682999046212268002224938697569372068270116302590882052699826349423148321846530136945453278052299198656603146495798155514901172419528892418099398288556512852048863375613195184488280442624529053467591253483507585908162643112096247217596139295678912362512540853307749739827750408235988511697100179280567193313575742836380482382322217796928925205479108134861540723323245288443411344598233606406920006486142381942574470308807546020718132437799568688136708308880450178309261245586346666215954717946178230238024484392002937105125717796395915969948296907450203752540629227043752136286675176857746301336903163458222908434823981213235601145017037795537413679495475757972435816312398252043997743962522312415184866115468476898981113219980753541901133834281956362605326121669969517182689434529518269776511176457286279250503789619930102124998964474570591649543863128697572262000039898022537834310631194230192126379070684386863397341637775717262438637863926626561052576533810673880962526746776218554827552093650605024437539618120909538790745558472919229704588925108881260223138796529361017908124850294911019822542013113072075985199382100405255411638432212814235370440926844207382440168640253675219591016690160999023047474179843796629542553837011388436254644915346789706462603341627605270836192160100495905570018577503500969463183202349877569089144629964125676157186409322065564536376841656556401357943798657420324625715208233940825624149338961144886888224679649938502851020480827228423806068486344338923256842819363326601199370594840474668963371470401616881145689685911569141460892838943287404966351638931362933229988755133260805194098938599957669908344597573771040658177494605301917992619359901415109947721010132750297145512754054287473839444902281256370342796407718828706377476508112859762418645314957547052707907211791229536527591324814925752423626386153532952301639468131152515291062645618255680643263558237042584410152555479724854597988305628768712396936257893320775944714649494515141849179842427624229580130973224471815677014689287346192007614938816674711297796302389389748026277613679792069914657824262087638918791721278857643187878398017589393628735466987792846847528023323811768945270242821877104808700509811314191254942457726094711594475035624354004786514758505211103210005024351520717747376173286561070455294921389044669779956007944540194153714718201597736902182898266538079533153705620828041479107065469857410911868098519385927485076006142797745426654785061770458679297440926503637567783737140767232264087190875481994881274400717279478261648987984593145610724853237551117323325346886534973216741124579578277610179342102196022616546272862290109349745465467027037529875028428704934521325351587038315768646916906526366341622868399172067956169715867299892798226479531460581709271617712808112868539285300454185534432837443000492035196122038870007671761235540929343484869792799039134879459622678278791974481185751018774840040226761810632908511861821808852575439035646343612080884976992147302441036708904410303501733636975150949935564997797280125047559824505825310394082453285474356274787624355242949846353604766342814424310287991779951498405059700155451389934276775971126703889747693458382734905570454860299766413973493048723244324426315451376357906147732383128387904689769199342517454553489076048418948911524070044805508636026388701045516197427092888946580931055076491071440897053321287105542800478495242022300121530976022059472923943709239659704082587053599312627790672316159543358235750381634784844744139868728724724439937816482049173414440448326210697765865673895608723346385155648595752106146386762016126091341888550876074799784437601519920837727954046066734178393469034568264648668099767804136350486996420391812840795737278582241417350731844382605298177000022243825824563715238685848476501067005775376896736228983570705969120221805653650686303236280232711160103836699641480854684264164764944677272083674561955011591433826521503059714023115780345679520841844496606102797157186226904121744207029546786728283453780698034591372376099817372774345623087789594177392784509014536698828120399543287241615223143940739976016701286050085519071265855268032174805031600224880057178664363903776463248751143419040078407156441675880737696010352902304966386813182734617364755084001659665400925924085358132310110456480598793499919829063314694227118071074681307094398084309319372432932051465473307513763461455208370305822431044313221922304363788369705244742888611862158940502672464756367126854069855938012722328672122240602053810438096690327468174500765593385856414922534552545226852205184677077423006654062376837015199636415084857110127102936243423021725053304477920013517288465654202301457731536920312478375058147239253693725443587068175346119309126641718274298171263367379247285529341262847251972783314951398093360395692938610058880713605064658086081242958437246808751990518039506706516176033936739774331941016092678341671727657419493678411628812174719763705365597088328313555236489222846051560209236839857864123446944400346064817120093569836873896890404494082442404128786963789350025514783767571296386518197644933004717755154482701729398359489283340131187348735090788681202285960979223395770174653513204118570097585661881607014023366920410319726404855859851096050782117676807973062362982248684347099403744895919951397981266419748591265837008591108334310720055281429998032932018058117563805483228506301207858566965134141461538111013151191080886268886960102539954728040891561064032635886463826844241567471634085907143066951726501598692657835971350353002070964327791970170148249721534391774225553740511582275041500824560424935359360966584827759294245755428533627914563174497236945344968572710318625578902836571549890273746383796689238213727479604681558480930871530517771112496888665553586614864323687979852657633362677264442891592802711063065011589229514412685954845940848688838194719612770551121171784676475013219659528980407872476335196914682762637467334367812722023758280144575990650273683433337629980639046183447644050593960441816137090487697625161020821566058409417477797114183697103758979049660932745077238235097443231642207869856501577288399676498718886956480015316794004499030647588600946263096747755057623716481657381321418503402279570737345678519060164039877106419249659329567077137556233714289907104456197897144025280992896493456326121808262209217950797272720346193449830147044783974016019209772971093028457150244579419878824498620431732549053245598529486272881365126017118139172241385090929022611125434310718990207384450952314111564982410889180832848085161504032160518349378624697089182023089337030431944445329969737231738064059255417073137119241557410769443393741924127826497350402367369805631711159727279322476997225282043833986328944331477599145295434467101044677121111182754724657500696838886102526224681047769702125544414584400009313130889852616362559565966403497270961070628271802637436121979378840573001289023447785358928168133257620590187464734062637743618176154429980316083631526228762714904410087950041300222735087347577824407485476015641668921362643591092458399683088484012270136648141337804628602824808331951203317170655001185837137686272598003631303650036421259357494129821498126415030621208170490045807822780203004534075936139154031878969101059961316243248701044812477593596237141248828594054675374213414421754416697616288768639607040812767827256829494062957143814685224444474472357277408909006253466262111429399377642955701767307696631502828074408571175299258940412770498998722122609049313249352774797124941814817289070043665489923565935240890333192443820056168628818195573585957423554214152017450233272576686675780822938333849702809103073755283183897924158413944137826492353813150757669134734469970382742703450228107724495981641933571152411709083980679837122829956859873841398014243597161946521185755885148170936108863407028554865316982823085893933637198390077219490933534014719287745967074371182522606055079665891935963081676685247898539585262726404374807541843207631013069368805222409461629517258597701738989448698050392580729727730015485886602190946829324812459237277710558379212693248070713959941213994823744400118004901634605674724775545668342270935294945370885840917475811821913649687295159879499332631408987021960438355569345198194985412237581211786173870080812429685764050016172570636768297549998298810554931461292017702716181349502859268999657200973963813389525785157427881372782060835986912449756609365661027545940446378995370307220941336174373242857102993264516183976774548605776433168805639813768855644739123656049455346847575152030035261385379001172514158134022552271969300867368492282895280682902560100228056753635733826786836133342939949800123802105767223839247694256724536784582434993130649412977917051756423733524443928016118996913060607027350838906697697384945981723865920553664445938692117552420610696977401247713929405489084736743624392382731907685578285785398811917424460273594541805545745872925826550730259826112714675314829745757442918489574204021016437150316490640355137229648769002388451431548588767932694036834826297686113222562539264756039629001696098746748842831018809806399088724875442271980192060020402303791334000805616497214617242428633975392125016959190888213218356891340951728799036916798186706235838993154184584433121545017253502793014894411472333929469326964006395522585940467231526943781810464868352224150716480823718588546006155840834601029489813262350225926057913921487866970258280404264251204559508494828841189350107242864738554826357609167611153679991272520392667740953562442206492537224969426035493892578732444910752727422278240098523427608361720385842398386312421484397403985652065938100837465876777967467057863224079047697323263082467694413848088745268832650286105893478868433237587606669362549496487482890436584885436119676969732855589592147145806982267383349093387907122809823515630767782279713552458682518361325382014577344642849734009204618464051737084603615144499956522001882479720870186128615865317289448978922907669594572247243784742442604911343127562758242727374446039971741475410201139604024167295862445834582136931557076400268919568138977341400443107656834042670564618956981658381948493869529274898017321124482390159961728171127896740488374505746342793514424690651961372090404260061491629932270207000286627254217947390973356717866812701074144496505750149951151034237175265863549173283057880206017206401953102366414536301200924654555971831488936011869281548928375927933698964465965345335679982214070371412289782776074983752540459268433770223597423261944077800568292651944757370386094631108697412180368289754161903722546664551521406416380580048423781466289641098041960086328820343271630654113442938340517560117567126112935889429395698253671994288783781081406527536502201252040881226542913147502387923944168083518704090405934453506229705613231897311734751693545978000804007592551645242236328211370606188333884873825674301902435945047915022804170100849093578457239538835334915968304437403240399339621425587828783775712659751616451023929861922340187469140324942915246788570700605869412574623851734678296337006197520421590933685782196497863271890954066778085285240013349430101243438721230084227076945767008004790529911339683784312451606550959108727374729256257132156763979468100121740835908976912782742530350548742187171128915193663762128100448520469058430684109325475879479255421629238853727810567883656311337746980188066172010630907899643551493004427196676677024720817012813013368511519678892689048401139067223424827858572010703717601866220160523315436617665527416228451167700032629696954501256983945494183056912796954377151856905768981645570001206795314236579324829390810614189017016560578971682298164292243333080354814267155372911208571795525966247049264493189435540567901764235283938188697912724751135664117531410305966996712542414988182507481746028890766546740895013708868254974667345353371601502004040453123849989293343718712218790170699787935989495124159431356708487528675853598928257336502844084198695243290132279441481992505051279853188991738172602935131002403439263185513881071971958464074003375052482227511588821384225486577088483935603488962204848188004142173589269434748919764369994445983370544710502670470194373315721051586111190155787467906061821879326167900357181916494493221390312914424484647859296461214659159288520399163278944396790792960160006342982308410341702351848142624808821020558327052473406194994437385724636959253771210661289424831715905602982865682488154894599448626376853221311749826875805817826940310966751002401866158727842781743474961473577070016147614328845457907342809919635537853182719912145782778904061572962480626263055945321617711401283932345589931331627199630094891976668133488217519107461150619234534855790717080124422781431554233261073139780976495563857931915388755123699001142177390256546965194961138038701936546324136900320465210508040207610030108530031720141214400365367887031340483957961342318497089989532544563770221341242798828319429184253483481621531163793571045697566121652094618007051694703866543201879894797036677729269798719458814893728972261040820856929791493893542851430411918836081074680403318315815526048882865472358697306009252247254558010357712406770814966300571271169305475926824176111107362289170682996490253693051054169789041605698009801558167849280389868869282767824739075498254409210179806128356469959397655141405411252683421003089231904858872167330348730964240852229223809741682523758194606506735870682677153084241196603892852218102098845323484917449942835985833711757262304249259218803102482732282151804641295973131200202247980746819049142864439300719398163412913751677124104669901567017578926334440421008854822684500692545073582609155018937828645370347556941421299889353284575509922886686865911760296598877499014582790489638716124979171142600046505043592834473565412503953343445697940394159147584816234949430128066675423237751779637659060668707703339214565521891853268880765504079389167350495479283696806376627464463241652828462244608503781213133105493878861504592369525860254302471708676863650087471030320326898297424901398674451011518395340013275135974237029304358809561092245427915824334092596660123048828997082031223221701448501386257110307378143271361393551975112038837982763768009983369217086853261541004725070117489228272845703660697341844632423471497195474664253120930563627383175352656376466371071116794550210161753797866038242782284671345816644405246721666388853063550929340004314202283121294344552492010944302322990864939031643142053822644077564507332368417808346843770540639992155661605357447178662904241387031960559288867483474102831422986246898559414221053885845481361165306675235481602380598740702108101590225595343372763253394044383496635015727240540619546970053606505532378015631851843144929893675313250835302801047416728459917476962626118495421813153836321846355385881337301696313315394567354718230493732029800086294276407950883308338360435545712712384923487843385431925943455479294036402072283704080974945861227779130504485743784553601216177835701522815573386010169020041420851095807709116776673992573189925070216673231360817484600218175278865616249753286414441053527267407527242115189197514338245640889193524582601394850799091052895230361582098674378004933959275548670006860571595705114084417932639888071730815263267877439859645032516058686676131438349255470307567232202183471812114101256357613161054550244366887846946864870345697662289141233073532324653246478471032851208438557036708939189699197483816184817350937749717103398163315020137781399058612608992691759662438939494704933130837465996454585331494901858372985956946488662887738872829282863919852314352077065878174743608010730970721377464760735690411546946584243939060121498110801615992292483206048810682788774334956814565889189029369940024225515602653564746212999264696856359757518771983737526961290553672321407091317321248655020372937054497072597347459659309191783059617280468048758100731492983548001968635538267307020829122963503156182594025165484061842948690796149433708142329345482075753910798020215322587499975491331482097240008684494596307086393078571305578292007113996124980054224144257434654775217699907025078163326907962512052155117572692669908919712980757899803447664802271320007467915599579158983317367587747359305445165368985935954496919676910509066342749949896741634687581879999646572942090244947947878252781669217278297431406238644594753587711620001866441529515401780049499825193871318357114954520167852388815253587613709086764921375413197167355327001001220637744248623451782602153820566135915013802824321625714496324418332317415379411744772860408724011116091097690281133692178459947410901617609244791993242020429592846506357022866222853760552128733458144744078821103068797124945851355292864047672018234329656230134874973160412921436223408628811501651642684540134651434584153015905252663137283358927831519535829260302298859135734180605890102941494396591371211721391208500572599360240862733215966294030449972173102085770431052378100163181486016955449518236106056108009601510351985665003191157143050586900985047629410070419763259380763117445516904459023392304980540149386412699487742246149077531654111822620852899006962719850777320412335289724223945031658293449201778247334305131617008286385242137018080514845717420505990594886989645669766350446977866808968958630840991850101669960280335177984256267576482786832033543177703670600678653615984548245754912183379029494792949470648130598226995349774094836159666013142005152453656992181619978642319150721828623458392773231307204855880451394837485024240798168596337608309324831011625652786090894878964676169305161801334046406263314145462658709111028105149696993807488542717281625624133355918486340795442842055057329454536583263040105492123022911649585446367763213196298725742584072521761115820603812054867272078917554303533393936441722237420770135629381611987369411745442978237494029528418720783824522890118317407839298812914437298070995190432469496229680105201109918488415713839076027156936936046772483529589339777652969212833278914747628011322666243939200576577730663324436626590158801342539543664060148883736092950929017819874238031960397290202894122143727643171192908114342818927590626745513431830827315613832022511244311878987474255930501034656339632886690666585575839981347361168307265859691062234215545974609247679901502960006266613802867672036407684005975672807740700369318597909153217896583550096827901590160464437893272002681684196622950163735250017165362176746147770440081817517267941468444439225402934560313784380082634686827438172699170900034665848593523260451863982545680363249011983499100149545116080245845423307586124134147354998504420818710912549971420877085981181098496494992302885184849649373678425761824672286515580163473898360372229547869199156425781962229130171273814859786682436839332091785969347785206789972563356784940988310702776436550438579110043209380197178470378313601874527811056340928796055245459378411185371813497309446814996180192104727363641186305428324229916183496092277824029676056762559755160869159093090879513708101425236452574444483355928934149630812833755147421280704122143874104680471950108656504870947237246729992292102144344912160672903895767712282032331714770874103481618436196483846792740306670140938971592630384871212121751138156706755508409542951915565847270078667534752500413451352408039352670614493961852307755206528205597554314627712111952578499463361767543132333154955181947148300191569034168126193277190460657954164351531868192044728471334754529729001863934163487730193345046575106788314154172032541798885323368666175843720979184845802356543618060815808155443762142603518440470325121081538425926262185086070003916335995574176385123915309067165014723310423425709153532269666377737994504952647875858670080932833588995208009016743903747125623684349702651529464919862537978487636668074906093194590391838915131514613135608406389780128152887590633114622916903837202188529740632303413748462347012487564020571917426502790736773286739791473294847098619873939798351057888666708184939094396275804004896334805834148430212604449778006085698178651443333710377012476890210968251323112202122748797833077990130134646951889420979299772973441812769366997662184914832392089883198608695382797280977381444293596553308039381490817085186123170544504393568569747478590429994421617490131158682102829507279143502406384648154253942557711741469321943263510981304092267714800532813705496114626725582917003627099148825258061530156775616290869863518858413656310689492004762394676494572989776974409615205895671111073095678395429275436878337218700456388852450294596625658585429247223160550597322302090872905453966861400823120729748278284663144219677386079139293308405116048261642683038658910505189416986185298537293107707240569247445466972961985149645597067563508694796134082922035931428398920569799734826479705292009391280821611196614203074377038329361905688268609999748455973600006877366140520403838848362905147149687464708436334417036179484173026424074607645746134200058559097373233003046897770501079080570760933697163967625436670805468684798731932467278782278131748755523277455478168069896152704313447132459632851497312493713720961523014126297463751804825974845503082439274221384954041105029559549319697163575467961696390037025917739918300005103515461317519276395756934156528844579135891544862871935510528426855093969345996229864200467987867078115374863976820195633799344404828526367895794201872162506566788231101086389692498499979493933018924888101789899096403336818788339272646282824245543600337413901553334262147605449667840086886810254930473899250989802825794776853769274787297263616583032769684896252480625225295183069537123756294961204374155710774153353587413356200678900333083820979581441253724669442872568867278650178632073198010230074059338332212789108051010875838450730457055940915818232748716474061839412401054269007646964487745678335981368712441974701758937740104652192446963474984500305763865381297215927100927513448956680152441938095600206122363639466406805366122589348285991948048918129036927136503417407960959898812462125115871846350668941945852692657983189735281104139900928690887154885966345037037839888215200628584225019613488310810912502262423020326892613976502660291756966235501385484060724148842499308440875949611644630840251431390378458006289992256675060785272535766609257965225302722774954570782176978613035770345965894337429212432374907515349396456463646363325915744283709785025337598491696019850950107937497811406474558037860368634064889355014981695336159986779677583869012718199883446909316854043177164376522223889199535230902905138246888702161819718128706673846287371180983371964398698869016395440546328332568252018504915316863312739617174726064933615482514339845656465644803288468672246018491370963625659004947958985223788069059340504879446854442894807293864997520400120381467350433388879080116241629849611238904270192579862672936062785670954232136817752863992737939235238071490930015528443316556912242051670405556918539056199176862200739607935718434191364912097238436861201371713668287465873551271969860414974787469664273592883323557727363203202601201750786903872863348143917857742544841767646118357928324420807658205608342360204967464307564602915109994490430306327595801220521460020334453935646228265234599760573448088483195341094149646747961541557951129410606862277364389335769012894668702982127744964855331245583590665870816612445535868877039153442048168933892708884551976530602887632130951645031355155211056003449394065340910862321537492893820534193405466675956797992056776922992101571064195456650073410517879000052479123932641915296087557259095065750165713001771738530260155330101401478960249879876485313663868936715360432214380979307210321880653998945731109323918869214030033953791237976096721524126119707376797451801171970076065509606756395768303036032033289309848593333994249488117515354074143177943097029648592373686955643173532391651994712802076120455788627315491364791744655371742479100488364049092173801637112997756979290452917063591179925434319920838585951596797840909644834739771001476339827438778260919250387559680523768464934992472831963355397383558671116443651038838162959126908346112659065818596188501050720124815322415560103749228017623898414465363796613849658938556266131568376062479543999331081130413270751839238553110024057112044224704850731047801493904362546197018731297874689983130568211121305256430079628493137248510365290551834067402770617858028956256627365315193819449841856446825061726590874425772114739089809509574485136554092475008600804872067858494337987362472122051684081631183864773157648142835880364066416408913567075571712076567036135020375434572201141498021367067767100396481158819707187330611668668986286364965192466282041904166352835869800171160080877367310295071382941122087804408955542275645071901045270876886492335758172472128151276772542121529526289268717658848205508962605831494138721292190833419522023657060780982770352141806581568080393246790659676282378063003509578751226801763094855419986478461974318796388696083489790669392534131715449604344014025524003423430900881637876253103134873154964536910130863685852463537924231431737809445848085612772439499970374787379156296465544442135963619022702162240090604802754383422189848659648866518266263674478220013713353757479408134822126928140521817352998066089575974964813459028382743173882139473871333467748803825823178596138143821551354974851247279356785509613079274595022510158575826011010524788863983542900653259854731583895337442329599936462796157618132995102907486455703277610231814274281432660798595988953328328625333034387261349429207108057478784103460292611949587050962855299946846884591890335168046300713812324051370901039131779067550940786405777572594918145918113958199575381327395969127675454742041567399706676483859393737874514390791756202530644433056024839306545570492661987763310801160548725411982222765298114809104857196566703988293405578114333449732869027939960296320834462990364853012382615234398783355039793811568791806078113678691634762051483469183666333839152551708702912661567783088256274865620640000552045095103740794979669259417926618774326506709344249139027976075507104633379443671961809088729873710282589471458289549759214446945411484309946984764128166857002792371677537552398867019007838373585580128549491342599821468866562781653152295137963950641344549533012897179289362932906797770903418794297923823153859516289388853973682617717947608752966435625655797114931080778198602549493298431607903542453464655188179968510348639028910242092972824329525770349173815868519994921613869422077522282880772007974284385940228169800794772003233472040364060608787956076711279221144641759430492343284295135023020469046872795760517437851029807476942513271010683347783074439546321187352670805892485820372633129714995750463516500897445745264181189421450138473520261704181531611632403976197543187803267179793700226671883097449263261954838209675707473236069267609095742517011661235941116562849476463486405019379767617360427972214805924472678738066954032332446425008338620992847420327938282574026409363540504957701791923722355197934054206461687415377431066621680294790469886790056020073889281559369564108506894391224187081466876974777312138752121995225847338805565210389233131845950011919389356026207715411317036287091845084715671798124967665394407492373412145754733801426200807982670471681159671096619272752699670636369827490627180835268110842060469461974274493159970665264187013754684956117522114247304344338216581636547396465717260217785431927805241144008384306786312259460009194991047551369947466080435764261419432249598201522470878294670218260254569451591568014261206227720201780296623613856098275540126878449693618317603533298739178062635996761803810291789796242091385883259168841196546428424491628241538479685460732858694635202975167647499688975157071238742769506919870844497408415954440968699940025679007422314762825750363935619295932450407126948505550175174422323052768468654855427023277600360686858832555480248989660721682067732874947457724887755638338509867887652478887714551985330083427833408866658282923686520804348075213098062289598815649357020412977207370328398458296634510646486104436594701045788136741206501757545294389337096221493928570294527257888166665605381367816486703635621420642946121571350819089473665125971973390610112547006665166240213553918762844217248792338849931585841852243892136632338218996949957686487645065422667444219862194730818322263816717415630024463627824824070786262989299422719511249448511817728628396168360359335336709300902696759301862055854634241078030540748905307002439231680580488008576351520944438929357393591758147887564523591134090156352524794151005309063438411655156170971335371098981149050880492715145130165624078621313457966603437033505721616481756720533377654292465036232771887425635323757502861791843830659777847116349215101129681773011931562696877868308065436537365149662601664377598363466305483598436518092064177677437681292257497107682110697981669793821312331150500114410238022242659218225526353621377643910600340946475337587486591653459602453795240941630410575993175879739589974666739476364048979356467548908146476131595342151294645625944095946830714200298131987862040277926781219590705076146902653201505923380228493612155941949621410869411899917828976199867671328686706376498212415800453572532012896053180222552616117404171527908878155355491135577504750545331317084970985984791501447661786182206849913709298199630872009218934168179097914229650939583510801579612777764564184807553029070842491271573557998500691044980978890518248596542093589176649212999459345548904861227814895986170931519100920857715443793102706524345729948535302017078083964162347604425031171004537124527033466874046858842959267408090596866930250163627559439570583357499992275935901163050091326574876239131159339932450701248159658708898996182026269089640357532977899733251325078162147049749854593588681863588851639939122417178966360056806090351530465410689780659361844132907584171467979886141719085531068407173828237874105291004767850529937678025282931555424219801827887036300488272559357656066615408173723935379782211373616555092562561351639740796032475885363074974658288747401160187517741480110689185235308831281255312557585475390618184055190364998154962462061910860316898534183818656458528252775871441035239595291573883496944895847310514183913544837590387560569870607074350326248550490224990648096623709908126791490823513228955934346745406812289649590209028472547979169931313487236738635155611407302181470573149634252894747121313398582319018596570134664373008280240012312305305863399845999210148503581912523471503782624004692238369681193755638709073027007737903185222035105128513908244699664099648668256307722895512129981745923812254435665122835796685723664950868204513869216324046993453806302421158769022741842444760679887906286480583286626480542746342013423278786328899760822293580552439991060021839384191772117166466573377577041253047079812822435621448749072261885485635558420533598266391511107199098517491710386119450462960266272348433026270263881525476420725686497136479090183166648531932157089252249840018440580031421050798783129570121128511141031118000829718595553723290997263677769769693806105852020254977770697464411251502641159921376879608624405838762509166760865068753988386879163484904013529956099521588650848761129474473047367070857475828758120761329613594744227441652736245436504032216761228865551191329122902612242643154018885972607758690451280107317990665185651709859374619808145882706928655039019661473520631358099755202978684140660264435896937332085668399469159541709173133556213562308985571106195603362969892918199689571438641625155552376449144422357589918385124280996761052905659400027604889177430228883338612984192787082282259763461420075757869530660458572513299552016456486801828308500480755851623848809360858978754451804365175870047505669896272995742103040917860465642916158990239958627945647218642821209717579168782048082188431985829930865203274673661662713367037202641692167897854194198680892842726352668558467427048786194171795007789120138620822118101582782205313149614323686919547956426680553808390821898534223851008173901421485176740113523581935708230959201544284439923275483874758825121825318210432005314717808444439406078642614350816587438801365119527670326172043485275723985523100860223346617889096644509603615076488524582336933585957001581491592581588061247722784092270471678496378683376693530460689865467684493471029895777685876252050432872499852635708828417408706909591185900635081663891396924201843757815381185596211364291522827132880924646892613892519132762132714538941866212418608687001559684166231752665588397556275669474085657929210342500829878759921269398937228313595168573613754059155650291434134257849354261875326096426473364355386076841231553695783779597362575420834901489418579266566479089169141400441506720836977088287427404623643210430038098015081481216190406175630225665069239222616385516406252523416239186783958647014920201255090613349996741102661505292544644303805575381823564437139352267110641590390676030847558206972426704186422617818225829469174520543506800102551458938103799739498101530116557521108049076674168239903709001617108369683001375148741886205079927651866946460720963356307385914820492962915921118137295001835102394477680485829641039114598441845097391643442571465046966802527421523600743143283142817093840909156909422161868531307898977071743817589008833863009278607820179986360648098623004233129949163022096980947308967715049764978663760574839456954391509428253485138822154974099386572941936298951788611108660363214963488125524663200677247074021407810863380301381614957681460134366554386200667983360832221823672506674202714685158013398158109587940264642839788330053265368575096120177869051967030720061454985714562724544418064716227340601464417778478426147962558890024805978667564045873587607231012892078616671048139581292400477351655256759103452704429350845425287923989796599381539820276848743643813878934549696023402557339391375740885722759550771411610097214777477731850976253556974930175360157535542000609445682644115769735843732067890858313370982590204710352183293692925932135886173191081311777791628111531926551281590395956746545780405734745136817729168758349760201163563843462938234742462866714929604469820107674639170157203900672193938978542446421253675888242401865479234740963805244368350903838667200185479938831365378791059646008335379123581298843191548091456137090971440158214258737950657643711009114942655813783095185073430586591351370158951878322899903822765677934333253951771152141105955827309735220520299750525209965031768340534959523628791643737194676457307728019633201441934270089337706938212633771480757465628146264183493590169903907618854909437430012029260247587268111591897268553310444987923832790533307097074340860016434414223147374168908942438476997821234914106065761507423188969823267133969494067899078714366506693289630391458687635722632684412832661025348591506980885805462834086682442117885099789117295473804640215303695575509529507989761260038878972001241302529609039001647821307816860681959329729254079281889394533682971391191261133171896565906969709498145720186773727681432228338405503439298093955681952924680591774462609072739747168740602774981701759860991235383313384780743387378676768770208402992825126162224624017951240412734581869112840414957824538085450624997320007037160285095046747097074598971416390954828810625254351650757595883780673086973232169701880152640814902445040887674175199933957645036595178027252772890343209751364080890179563175419057888962085736608481425714598485405962080614675965635635275748149852010770575516233716857086169794820071058361907003009828325184648376175737347419622818265862984622059003449784123914309500645718546541455948183900633740123760573532415738112814912844407769690447134578137262373042581212394239830285914142195883004792079535073805375770881221764385082727607613976598872629034907748020890366791305532490348795712489892837838506621243978894453560175713977513909503089728663020548084818692586949214498830941050192942468650743500518592600737606007169262630030037261904913018870235376895077846535984980525871764758790443344624425766102632316148583950580096104125560261535789475212067214454770745704097152020626479400088155743333847709315776653601900025873973501245615436986948870354356902657167712555507239972017093948509897359267614465710705769520718299730809728249597678467369833047480028536471089450006183203428686354949794930011801719985395727240105542317662934514949742636816127529135483112368250455992207160248276409019064180526338608362016685697402033211583485651538660383199825195656916483780768782285358962364844277435804100866720091937615728278728545706382357712345878917430239312152278139648967947022354990252459682934858458093354194002486629338215569668681007433034307889047280970875595804917140358555214031227786163291332781679754518864632861931652729320155558567239392732755918320136038314531278851125451407909726711408137185738336265106270734265139302222026394000026657181295935688102173053656961914008083332162286967068936006603023659945450581058286578703320114025251629212687670444997269536723596702908164941364230322641574741833151549534841995334475573235830476171871007735991337934702310459939776294148368186176417232820103213594875270052740617448444590064999586085159273478478061127852800819966740265087268527641480008268492902950505381153734666156432044928993739254907317655592668165728078441796099025582218665110813168738735508690534590604882420855701447972179408389869602944837491362798931663380386485926547458227693073412619912223446708162464555395926792452814850788921019230065028114718945969213961066422412084089242416513699324873502385836933691373950758968828507561594661623522435074352378697277205426850867033768025966655170424021761740796206790990190554629648405480682005919262615533821460088652751345294211033555741113337326605168489533085973542349861259518528383607163976088985804383694249404331017409625403772265832648499480683352315869838532324185607480149532475787848322183673531332700856469625471260998790948346860437233017362327643189954883429201911139992301850939425714881817682787807317149589208659235449277532549441321119633896813977962811225330879636091073927378519079478766870913392901704664027446228257099855133208143430841769593765747350137832202604236411846590734524943807361741281706177185670208089064920416987324281596605040812319899620942194767855006586174170192292823800668447533011851279986163161126969730435983409737823060226345585224030929008845260419395150712658484145481926680822409115957375546518861423749391174479794862355730583223098238275160355156812502902280188709988699296552536358217945026069945803960827680560593297351149065340504790936704131108215164961242052975887919052324617047659613971470648408340195641078995210341462435220047380092645853691521280053117824416002523116504567745723099905482891075727192659711497701996108223411422061687061906381983949262324227628945386060628889137571409722351962796754855861105426780629338871135886587881126596203006362139225231393041142062119165054034049504855404479899704490458271768032616606286078433831409092661044065753429337925177877682722938160695760588516063069940775878919052990031140075832030357850247936887195119916751177927312974177550370185829953102549843667510181816916254111140089875346074168570387684867654680854742800109293351122264839565715092829781093173719639326346803080422941294889770079205465366534350368426657966688375448566239574010035857941354426274357567648746071606679118356858912485244539668225867108838843184410966675038611262464570513387877223725027659186891903538344314095833664346454220698923469643556488980992181793594211278989736866391152781923217646391949358779839695891313414545202219426750191033190996684992470929322445936122711898422704704541587971831339668186874329959969034860800480464469860364305627374340664727991561823889376332798524475870172789469069394285606103595495564653537276076022106810966287582958692637436670791676753263631674279798726119999741222061973338130499003566294483034529799687741300857510589946586317430749120319984551505023717442096986721990097780031545474713162885776629715443586238709395577728280713095145962721100897159151121717820039061824133401102078857082737386881333344150512017631778155531650016366692953330542130091911952072099555138629121334823743547194381797735253741407555843258001962152155849428470863828876478278087897397972488670234738846221980906108457851320634646307029641515820934201894045645908722904180213120959533102908464368240705413805891147505000259951253743877854135836280949854085025728036913230177849728383110785278965198149076008015083869412368758190031772940050915863972477099388094100363033261584931909056560680914993170997597537396694531659224117847722048122191721646455065024912516747668541671408137641140054386255735097138207483229526567728363328336080631316635519907583315468896890787256122046953299415577398616645417249548344530124997832448457114176682303192598235095052859519021642274254740309002044993684729819460815151249314293732113486116815025658836970658313449285555457125502620480094726770950324025079526037616690622754703459707904343202200687249850642810284338257062113706903996397684240235591048486079232519118102929721353564255962087038754916127188626308903994861147772742860027632545760793814617952700086995318442628763765572516509725785982047862766626304738250137046988653852077288059961771702946013955340228337988366510481400765693213068228047803232756591495744934807312129497018568120354739000569173795900073086475471382218009675214861381957774790832594382196562524066423336318383429781809872158587214637189375459888036817096893691907812342812726317873371422223892131812114522710293395311573624985247717169902910725446169467080030436761875982776521127555402398453791586484170060455764854192775140421344652796581743413876960370482334209994325295588354957640194775823034604493686109357801060092596257221298832650543763100012402925041369430457597054671230651489080282532363150202463983834908294672599409109414467350721356416479475501409328993926682215260465929918449982334006037880797429498520982158285500362027312970701742963289882492903046698515465138106961445647078616374903932385627576812131047850767539239476058029888852315938546512314690378150712656396186302237569850297472988658208560705307694679441924642651607838488292103201405258489047082131433235479427886499292670740186887823917809398723171816118571251375248413610648737642125461052720926691891357303865081006408692648541980139591615797194914275181640352454319535018489579434691954051284902602327875267014571530149749036530950039597503474530196377901429945189897753008619278951724001017106759579493676385458103944758072984998281566154557906257499718808159673905446605531877449956233588636506871865530708309678685947438465102419029464875589745712726465264910807904219750413131076203509068369686550002247931130564091809640334709617642923451027113467244146890958145114589779704465403195806072469100316615978218130019556460542074274917361878703643143339456443998677574703174846546932058340458694436801535092174001361140629484049497537326362550484064897050370942078857918369595464902397311898460290151330546197030220041962726466553738551193340308473597324353321342710224063211215884895568279642441716333557870651119273871113117526167931567065457578202929051487248721775968308851373571287231852642941077914976143147141897300731009607610350762779068733265060238837103237285716514166340526329302118393017386950244057174757050316331559130268962818445660039608403806925168290471891234228231488681601375243658036373182746280080255420024496812833544993182928007563837329699403039121394124492039431445005555844210524346055533655302213652691104446793885219415720016543218352088942652537445955958804024490382061051467250763380530002575219826080908388386127053301798671596040827772481356058300295537388407824662184972610293675723163245061140577798203716388055799569670554161017077907097823905300419743434125654478891760085597872726140923535484966944056283564246938390163023657442717723472738324803845867608414952767354968651385798556437720394449289795899518561536745016764993241802091378666191764717981228762680596002260879253310646176126205017587155161149271817009568095208224346872998421127818662920917750086008043348317050495564625238984811961360860299597043735898257594513984353543422634728169173351385434084674252810159462862056644593052838302136345908085335430146268530664083701019993076828939765386941701176982120075797138571048705509605264814673656323345674582522126482539820016410902852459142837510568894007068923925532696056700667843565416997289606112791091700441927631169882108380438551204489978814474922224432629875835026324420807981595433590626545308003661413414632762398862426797438320481929914330791361630391432153002355296064296629950727224263194422885653894696303781119429511984399436069972302428863889059676775651862183454656205786109321740015096371001946588945076799584883557775014687179241203430763776298899106808069994240975857893508273237302534674409160674324307583511921621181048350832025588213625281814063138255529431612194645338210871659573702430118882581209561042110725232503556895649809704130157293682488835322338561957295640400480511198105908783507349057452956459634214684072285873675248829931869079894453253264563415564123179151852796840117873582517380132519106333939721921676287578588914612914341960364634325962602016534685577788348906748557846539755878942031679928294884038521657547552052014357084423434674164709555251618744996712834079352027696134541345229614361131212976510451688463757243595780215778150751148007064903282738505092197238575542256462674509781748562622830789990089870173291992239409821265091759103812544814447971415060054297198937296114486859213558493364216856667148977179024723382103891044391185050671784330123822508391485699632082444645208063002000878751902484886107306282943521974463221791242573524802635250197341016198962166501271366489487646118922871779944033730868155724038525495716664727161104912819196251714180617117566373479923761693088965446513982657479069879060180932643172666198159693329598705435542173952481794651138683004015175594329266109671679708451894054636705564290658829003525347033084675413945724155601360878285145582254963173435273994533100389506491063573646120784204290026155973371300147136329077199968991208049242266283691234788295934512801336515941982045424178310085205689658832002530244644049911366238750706174603702399801289027807242625508841479355851776626609050851582890035342885239813713433322972097670241786488128256794110957880683676953557383322521991433363745913350945950809336146798937723017139725319603371768182501868258301645650229131908994256465179805523409351688549845308067579273926259537464330348146509890687752502310704453454957024928802527547794955754073550417376164199040420544322354279723468792931175047653225796188171876734759271600342926551521709290434425472328573467266485127882946052693061928975003389535205262834989687513141986327581191274403571467718901924600698342017193927972228474484764097638185628526701715255536394135349749774805167689154305357091156760152444373998934474701823809098518104221005672183151472805844406060815012871671998599682786085762436339851615647691047890705120548472537572387763099743431985728003397846910078758345641409092413657531867709342479739623996233009227047982455794568433160133906685648805311397390613351030426579615741182447580186454472949339132924280108374278857769635871130278619355686607083369596085974719663153966038134283006698478266403925027230855428437475777565912732650845411586275774027467400125490558302341924027242656343659491853131351581211695509543878587090965552391983162569799628479560584020537214262193494412815921767455470734376812357465525352612400305289040793039191287825775230283472275183980310951141434315668361785591912694974486602784177193226136901279416263869032458417920882232339120298962366236399931599757605234345726329805296213236842350200072735119230040881324637916908593788834504567660747811947054789639606396019504942188001137619395864670146133575309639017426591524730505607223896336046314825954110045920451804911295885868466064444270045453666168883728460697853467785170369703391169670628073793973495842008417594034332223181195826140465069657117067245013120494778743736743564335602580455383469813085791594505271687226497839436413983291738277700395472045069174696073068533606781227410459627590882905115214137314120148006407605430799324783891458947513789663239689531280838304909880870988722157074344357179696518965769427656334257817508056437538649715768168162822818442030238182072778619226076599378489585891228149227271431871923782409657911081941800719505852409803176306977800998116405022186833654619371672226085216027630098835229003727804390984505888476988905633955851010281137765816205468628914023381592594353434269709959996732767499518905387264606521853909199439099957085677803402365533351334886538510011689421222276738342608511061812857679837642366153616972626384359308208708136741434612261046302661652512175702895699966251151070520411359298918858773756275378373477711285923258005264750422748659907313206523814483872800315221410325875131284006536877360628022617584612384416908774365035239851390213225167870078163562594643728804446086874545990002181840625206431595751578915827189316696092483618966815011585518822872737790435182486994257296615098881231405260637100245976787709227859426774735033986689262755262353123491187533734088477943510315030180738570172732051849287403684135094777289341781214727327827879945124002889152449466650617237871804949612355829224163429156674211537234159502212473732425698864868192155805313302591713595666707346530353761583710180972837977659747571538231945817895559357165529023916768698808133639251856173955198027034295790453753617146765124814034831596800492577045638585389262818012839485777668073572194222907836997781044719009750798675813959327298850625603522119882510529114050287650654422115495047101009391950987763238543274931554314635547723182306382835035331929729058722040196228639606042030179610440981287891703988969563505135110759765537185327855965287729738152171205416407515419938008082879889973563392266285253605897901956204039948521475444223444292643160091258761055954793817370199967625615069411361541802457393136651781082271249166885452699708889804356894056206819151844227174188331658463482616408286010570705009686968634796148350146192158759372771893221456829044082304212596999017858770867539064803991257465548135145696913441670019728273147480905569181605446598401602389073369590120592492264254433595622243578274651230104344905304414725247512806258676371634020223376284425076429752403511499913145776323832042824076522606186969255484722249739738068461973824296125655477405993571287412503187324535051104086157391299897896028972467475471488762898885092935210886145946811861192260618639374761096288384661127032891641346532199784470003886499454439020396148848061338836224504403380000486433865179622849416871081000610939176788015062450302270950409478069063284172421099667728720465413058986813007669052617622326066105649275001085131245748610120115298267793341890458208097913350804161701509791739810905311922028718065218797208323315112223237483441391269490714693042249669571517943402552421142677304332573642222711622739191403195488660871238254262707944518818475305026874594849854414538064390728981597186200173928887918246111146386829830596912360674166558893366036305660754061362103786618756459462454040317657981493252208493472185130935540366282404793078473402329820120715508680734312090227501111096138006645300429771097937906701585024783079087237884890795273669432851206442449347844369101229311541705443273787742900477621331037189798564391840709528016171661115215132576432968397551566328216044771361424450686418026113689318032202626290656859108119831477758815454114751922414490764501678313422567323231003776028713488301413273590454351348295945387698289871303249852823482856873073763425618200983240596623762926652910777512806493718692403178795600210071636337519353916553143738155003541369648079341762397491147107624226676890692618860942586696391352952677322250294748207976112052372650006593001306975491592608773171525120599425549353169414257961404107191265194504512583421369208706461424118558983028900361279944609780064064919027932229764750034823081849900841065386532020456025337821525073388155549434284374402748829971226140439048255654906013049037463751566701370239863099999066990163702728366000533894567668035052456338588931797118630017278388064905887440103652197922293240256734793555704044048616271910000175335951811512446538123273964369281652269296621535250621863683186449944922499012671395910292504270581537179203333459902070299554645345070630759028489688853927977553395769759266249703365640950673813862980919835824288561831907482324588794146533264981697398914560003834553892066272309394514896003987508180035473149454014542600773571543348771860795833728440240045996756032744878112558841222394395865437727024787628789894936238703599793849249494820741639004807992560980790984688276671187685807014633992819802643095213128438196945701859245403788224446932626329042313783278775541953358198693354740944862684698908680423445009743748235152025944479543894114741554014882903481516636373807205996697784653725113692414555977690395069892053424976150713651841412182695575863721826823930762234366145908335382321796811087435461770220064314787369941942037889515515209346903903479151849002125852714278546785775585505097579533000654657449469074827851011549261314193787259291222597923002599518305327095338317982955212073438462769011040138207829435162911476806229359067360905502554434838691289165976149616029506316900932430480941661371467899337957792343570133929729208078534790454810511959245862395966918408947877474013061746317655383524511863618202685373516986777791698662333823970500108086660449807556561592523834058539200067075443938320021568344494562065322750800418386516282261691777140903981543167301295289579595536094134135033587662274983543607721516892026606493099269419826403584650643976957987697367071758762778046945713138042899793242725229433398313765740900829833088429878495866387053869182008079333901456364651967753491275602773697530693419723999217311827104100776860227414991641176828625117329765528143025350136804811224829184494665586081517391755851597568314111712734154189709462200423636685134988139198226836512994061879983522933668886694009197506980661382045049962428394278093611046035467828751162857344074891993657896203552470856706873871425538426666556791116930437260446858286553329359055553171998215960451631391527556630570489246223026306564845801892700898819079767758560894721083008858843611915427190396032014423978382112769834631279310992716550007196242503252652572450294557916866323741702883722354358308978729903120660661101939230056689379914150350571649902823307639206334644439547785562878206228441889455142171405314605848287668360739529433441661219735367025670804592567454154052015031948173372182657738244222015841231666496546238790297812731482524162464545408297720755616524344529091699004779884127117766297656855777921157645470456107820532996574840889634568656546937857517338439373714935139544770843214229799474120530522895354495546762569410968942610368697814275280785254559916721998171202254132990160868816282219081094843756940581933002553361926435157843967301360739053662966625318370213083118164619687360147071721213536235887808662791369393214269780676513838605398170541483296092710182627566719161646901724720834827447486577911888795868219039479603395208655718693722319055793122998789497598770853180786809753415791690630076356018499379771694842871857772092125955878924975981475742761967554674015272312698962945558280789398907723062646284142437655721089118372851985478538795355896931030500726724764563151364499561964335206592569056781410056740322558532377430094289327493399443907548303374536727720287635120965751719815843147786761947109582819620528129654406556683245326513104631681199813482702605604863146845989593534587605975595784561446663284343008084644317529651243608396343785943137112066112084598884182626769697942905482559685631107619279629381238435221165420566917891005611740459512360220293027861723215765464237211208185194063802296521188707376987752339612159443039581313506754311707163141503724995111494220816681070408613070082212433481735586238165368491754859037049508000030578569756402391493475094935860004051251515593153677303888587111802881426092945778675809564172708175811761269158771655060920703960308409085968573096580207142871774335029407059332969174090312875216445504151193915660655005796492811670667704610317719775631512769657575799359776445321636154352724752527054444048527370598623730760276994334922730605840262573271024822150515576581212091907906714046184361943473653446428228312933833437633306039439341211848233609546148902639656104998328523717097464247338362371240619777320654719696839002507607800513721367468384841127634724436705185050194249028947024811985955757002440508934636968687387026190224321634849160285461463793040978832673397937814253807180007547200540153515969946291180709453330908637968804836373708991952648985312367219010199231739067592437062880574187060078178471102767503834892980427335155390595510210564162127832250871551253677422885787975051615147614426012820647432651713519888896346643664464290478383738093432409574368182592600885481607790626036958271924920913258662916625100280379531049691100274161276060158076828426294686903487611074128927656888774551406422169000956046084081133998453561101610970584557451959443680577496285825726334971421832651560704431609549632719560927578367110824851365022545029430153225607450909515110384222751208580279667484566086280100707721237748642126050823825728330161726738662744380478298870086870351823513577594009397805366263547194242474893442124905279608161299020476359674536720925907758468240879091506954123981656523935077297570932102293699872509516524491281833696187317635311703509047726259988908791377134795394280689129142322627744165267556205795482077975292694528849401212594383934999700885144270096707409273871201084896558075067804286693678820334086499210578785358379382451155149386536611443906503626377374235068683972023224808687522075941627312540830202823691756949999234250739334689286316050474195492866646495495715367626864301911215406900072183750702171689617095776519537789046187367175623708915310170396810935896324803865004277032827528185347486289584778370392814986842916800275500226523136613897946850981865166640848328324128252761094513782693299720371418702536510032209557552420343499012989437144911165456459478463914544946996016665704458090821096754739686737581796212778195245297519231022511666331013805360012945817255681063719392152794317669816869614381489943379552237696239282703950812677692449363485103066350636706484478821569167720821497005196243308043207466665664510839781944914732279209572263355331930959795834795102756027912468658309863332201952528774098175128241244907759862071029659063696758712810938645018178473907929058055720760718444421178695648281442892011326805218475053966126424629314047886449666831314601024779091817877880344135483989415447421912604809762240568095936663356082633694987666140270430866643395839356202043386869404932329841470180938852823286374968691308960161874827560874544227849824386390593687497595938671585484245063152005260222907203783391930473997356391781314391197648129856984664637585378382854772622040527129048452891367266663763479516606470805782989525156770027881048598165261947749788873300918098926030721655709864722238844896082340186130215863402427204660688490442109090710963492407184589027471675376673533078580734538226466059927974832396987609041919808648661036493801926273165276501327476549836447889141189523919554486951673192843787836489600924994610181406665792331101405269618064350254191009628324135101279536937555372314945266694312449601804804237870290359499681633514822178123435982627437981811881450018522709152542185741336359022489377707610970421652180235899949036564771044116855384044678533880980221421965926747688036515231309005369069979650987717220556492046275746206133476724002536723508368497680347987057543728842762184363162794953215455922773269298106279655060488181461390663838591673354452089386650776901629650956989563086099727143021459814635177035350054816542957771043149491213892432297046483049512603583750299135254264566174098652181446792697563793613131578648504234853242738663436335526031151702690003664657956854685757315566035704571102119255756517738705377353991722564325657860792318840484587269871470760825931097615755906996788070593520037590453245938269469263626180540110453773159463041541210264945820063055296121761978426685495229607621318531684918461546314440629622447287899383575639594632108386241001946495797700319523772062365429390696953728137883533751473996330439015503380219728026586197290284483110598300933561654420206028292376344234068776901046069537961227352092637412017827257860754472917971117306348966557630850114835571122253091158923449823501679122690469924247214022208032979863612109590468628513702780127811750355177589049320233591581835793550204809431402647802965064334365524438437176372502575260950568533933977706283971223007058808569347655298166850897413164182454713278157379766186302464730224234035541818721420414117024571862048983744394950692094782719449350593472407720027855509632542289981378990363154030493602771261475472078243502643330492281579028114183793961669288025942570391940257011469803987874082702990370587712223883038585499866407952882872483362511473571769099357195125812183811307067151383676688588676698685384528527903877469109493954125284746312167179157495236442419491612696490329009141758353599650726419165156698845383031867212986898750833262780920460920479133335879167354107916197315527356807659406575104817610225194478190221623261196161152245308179120503443416479153036739511429849814191013435331582395793380032118429916356921765673155867022825497039261975809087620505993718252777129923412081718174182873485170089441962804009525506082812363901801543338476047216463495343944781759889198498850327259177355111231320876718312922554445677591090700580322441480665443919804195956751037632852016362545062363084285934607906756631977953381219627914087693394974953979030010501368794173252015010937274595437585060597959518287637965911994645739281876807780019062488112128688759985536906043952482567446743615364723192081601789211054621296220275860218093891415623192930406131098907006149047368819137851347430539059112436708549523913592692629550371025557907530584856728790201791056016768230096221315051455572252978824613931527414755924617744479231391651873969225589059981198804301614767848327615565682741812634948176202944763346489228087286558778365248284071783817417826985901520134642217046077225348288686586651656249061087843674503902147771173519506537362183471312375545446514275218957798707572214230496405350740597815373054137113581560173812699123782751789360160847419321662066247310316503771204519059095587930083422031869671238799583975752567210832349008836687104611183287712742485063050149196309737313860298221510696566236933896758887180509326110217924359510792265233018352495623856592015756369143702460576814866852537154211950272558399622451709805440370827152030531739833901354141674440101748980253401109798798129477140024918779014405414113829851479911829655883060882198300321599574501338468707782689595518408423779173598547030845779866187988799530312695014310830344515777141924967606536443591646311097647564192006211016058014788604268810863813987647823594211373473935125980079846674157336868659120175608368491376166344345053284263654539562085942894447024465883820409518277740520185576784075684786459434543049736543642785801463775368329837788164744688413967220581451463330373118752811634432616812481683773319356257791322488700395062601592901646182599801324879935954771969509241791059670639808822246503407494375858585128467284855004519354654906287587167221804625781605680301512798838468994508076733488667583031669702199049720707991429554655167721972776854105096074003730766268217050563274015793748321013287885561478749799978377286431022692701724566169534999995558078811414430737623391814337634818438285427052292761407048179369019162989722019176452927283025449498881483681994457057383142669906498442248596238230394087374783531951282414362729389279626462930605327430532739951902641836187034601101918412259635304004906743065678661798763884000653848536293812882206323015142534870713946486845859013720434958434940268162141971866294864229179818704185662371514891395558402630327164235957580141232873119341085635346598798535712080049790025120726071775479919945341138494356774687410335733531258591230746024714868249729576787480881678461316862352045185337983765084059784128078484500139823418326479566892546511471286403645782311165733446081207643965305346607731826858073274208924411871247086018448563112474739612491048392612601504779427757438172921763606690036660781259590671522273037362329085832179989598786142005806117780564270492147475604868285091150591347870762454019515898338370332283000053612080297991690564277299215696643372287017028182387110985529981727177757603878256534181700356392065928186338796276430032769470754796142489120679204582588350995934049390581118983074890398350039025797325761205670334904355019217796662051840725480875735483010682088652551874625916631958704992894514439610133285225198583846312737404233460676836347671422421465632581953199078819207304262835004181424269958922299233831399476471524063935149029522438665960511984422564176243121087925816860828717294111118049587300802356553021210462642780485138998737191760335726885224493357032906235528609491521185818102373675908157784236601305109995183724274751076780995596477997120857388459647716048239785376679054362381134527200712807757364397959708796200688121217472247985207944284373447780084789923803108370049070984869462330648354603709095768968875539456007735391694582546798235276655323525607845143780574564769588634610470052308777106812674034564092995134090150453729833795013542248766660819006447919318570567620267913454660309351759390667101546168698968745655229298555712175509325827968168660806988615285459335096878719510953729078204211765191411048386555845876561085705279411580969443733898940760733647890985571640583877251613391879488628598475080061644290355749741418979086659915267936236364949207752704171662449821927977808224388270147027073052366998084699030343446104781884042511918772977680217364158375562138566138570021663544135625640629747369865920438730864251860757719310859513055376141681159577941867001433028015767302450080641093212079249334729336373075036313555427035403031215169600254218488358383165181395507633667031337536853032879304104868403786735993995393624301142616302575536293138107788071827283693649534738075549882034516531817142732772613693178764706514333145819154772832424244613841385826007063350981345789330177999501884302519037885142911485459089276947411264561589189149651454078009319418204326879954838671310485909481099326546527644487202879517935503710840627363268327559133828907664495975923738751627190498038332401254441968722450792001887130112573736743217638568467143570285228044677166852125333041233292575021038035029164743651495681283123162843681056584946603446909599517541404803601430254485884140579395436052834771611075563271555194403289881616116327293550335805335688293601928335765987718038882936874916448537890542729320508794078949097059266906001643749637407015523479942809954537295177326503038826003863553183291659706304001418140619377959095948473930234649457221247871306730696374577829686620103524161604538838760098074243909570267449499793675086117836076431587091076559304188498404029589941118380225214225096576717485098376737367666307889725288993493597687709825018604528924676341938458567020532526631687201420203296215572871359096165615139085621779604422323208352160960373503523076355022803798161515908325977108600601710054107627911256843926022464694104572227679407268860860701852367962858403830961234963097949028655481042395356067620258612418339568705472348914063707543649936361438860510946295349921506396649886230021912065083392224392730685766395976290743605396865929763700221908593041539354224736432403680908427370769178053460261283080614601701985851314357601911747663594943437228833629621992770363646496190726750836843561863125369474199440872331226269713081115944610060417623091534781839073357396657002245904712311743612766941246527042968405907438868366172305975736764200241796775610592049577480822635745039406574835452463874425130196918662882182790671755465625918672882452011413535880108762584707084203365693806713071687258589416107024836496728439545283392222930619037182461047872048448148486331540086689472317767276751015976803570656452849860286910522608590789052799856121922296821718315573946035221138960678377703506240903048686340490878233875370176013619866841444150826862800892626208076789295690421773185479005401235610816112068810431321874995769239816375584691247698210516492816247095061352160076078231206082824011174650832183724075462281547602681013812939640998295391410094067935906683552497168737688862365928416551100785386526028349668085735773451499111191874564675284648256012066167311241817999440933216641924527738800195036566156069347939359077250048296883438153198230085057501522798196528449822353726590790020612080454983339091432562184595357908793764452717017617057305741988347574135480607462916740915392721024004078202204970837044030595484422307015042863463790655026005858833906689828596036619555070245079668111165777029800840780443061786661826526214656522253704615592275470660753681903146076937038504599139580858088022378649812766186809955857205197532939276839177384456217514554538009725119084702643485137742792980018106613497664372369078907130451171872236536769346542499855731512321185547758132049399194908894660787560256726438628449469416458730717281083528322965324185185942641021265680906109081131897632626420801149399074211932865335536642194374211909207952006895603087049346591718632853284243875170444368038247841547957158366630206139198174637269585971111522333795181542985557364462831556519075697177149049574145014497514609872524212764568261375914518955938439524958788363329595762570874415738180691725492139607634216194185276881030926866534787517786148086108497050732281676817843924611105722643190094010741890851582347835140522245386563507164627442845959631872691864445735200847799668974588082474769471781564597328253396341881323456473635766331231010032492594556629385315343558777666407442107418578770478393383326694711807861268008168114259784350416644027128006698556864334964320182756122358468437269502648447896365001907609152994801328510307372196283275560392910295286018082449334590272341869477840959291473945019720367079276173081343848661384967686808019763559903238686384492921465710478303629250442520462286588603211177717434225682165827224030642842840985626028717700843772020897588972993880150094474460870029859899356948544750508760378898197318415852129532165592649397898561312700929473297395506855955746955028409797191516776533330269930046020613469441253501503336787269788735024806597286083871412566008700679165962538162540940190670045661405990175136420892936351313602624938298614436895570847055847541423634328211163349786638614515498141766920836029815310270745040718830141836306939070303590787594455443279191952616284875419748680492782334348818974631793778179088182333411629717630727791594217591517875048286359227983295749645079871656792230756409878134227730092090581083888115575655791477355439752473994687718387442705009255373268238825985515690978276252114498896261736718987634177631917987240676044998751565280609288347018256349839049341433388310317702164053772497596844898184378960656550464923714886943785940035254256315297818884464615199605193925861456066124854064413578162263716674369306913384015368651356119196925361048125036134380116429041531766345302135977819136669605260040942716276753720194783421315716210943074310525905279204509916123007119155266282061466067869334168460444201058466755498520575415628527347580021273903633146652942578702647641123591105947533250756886555395934056785792628608925148688613475393172384014850605623493139763297652496321456064729186984013871464087595250556609756996469827228347860428826886182431742725959176460282720427936660018611147751408322182633439613704871684828517686447131291931120562917840647834720823755424942602588865191585186119505893948518052034981427140679532358187309994958498900161932320344046981271461335945739132779748344309492344848146820960413856525312742527335139348795164160565094993241256998720746440037582612038745603737738299095242659449601019234375301213560908463958348955675362484872399071757063377191782764457689073962766050259438155327775978133099831189534766437252825749875128918059577221029266320250442374077822532796457472785103488061888273148837850762384553137899411059019313533064103023945193460514307133808946249092142797260373504328033443403954724560379369230408238589212343086276017887668614508629483031377344655836104655525609834337655273956853612193331563880424211703057592787263837836151789084016473829298154212514226389403499161740704334212690560750643008147103626814073285678177305202341444795653186410766240527772499395535164365145606702012525187101072995404413834366766009526209789564125522588801037809325891326170004248977187149917304570371425139979526829753607134463831992722703010447218427981318325150497590129827136665243965268866383466636251299639227154875355575954573381038049075538052151415414764684639115793477208319621605609729485183627410102878890140312420230285273857424816016880722406628144554780397943378581685306586354978192080051391023043487409047499389215306170789061278823682196925877264977783683526055483742669404465170325167455257483779559011914533752049316013586050963827215500293453789919560948609525408409781848494095708942190181029724000406076579613929002524865532879980183443847084099979955852035008233103799181284449817380209952073152925162592829277700599612539475266104337448451477836268754636137813642744210670559535283343107585116897406281880879901688414031263146389376352410214247986189633006631243531925228572708891335749458830790847939287254486089658406266946698095809775210950973164256689282268984318767730936885360811497789271750056555639506404064370557155160592890860582089258315231999605398248701240710852048786924584664000666744285189140871109893220685547095925339604195280712236632532163660172634624436725043638335962706539092834037387863923324994864719751307819734889818742548534468233500154321101132323721193770626995650199219229364660109433728582219036529409555604227973512514841111321740850050161547547454776908200027332314998819239918045402295194245454098216098136616160100631029441832666781128629464215049650838563659034985097374897968739775097896186748975739106679264550313433345177406313025652309183288460629479538574546769187754990484524006126837221659054620436739467057518118641677988006057353664255768056080901972245827192517234852470336094034569718973577771379987921830610444987845189609087963110406612736526467201302006678940262973652915287165664774271654814332697456789459240158827941569300956669246693484639294332502983381969356710228796429853910989992487614248998111238924582969111309864669646480080667420272375373348370640736210476265988937811238017753615829011602713004582161286188846008839183734185817116033120331039952508606977649735974787051982120839227235807582865449597563810734412181686198246237044942778730576281409114874578248067833546733300149716925788213537187953413122798566347478399714899104144511914406895469077056262581856305738437202874889691537940264321853772496677051765373055938268461598891354409123099490554733301891284624793230489990894747336914234640373166244529916917390396308755451364348821124430068690873890956280619503365708907909054463892863429561523071906818417704352577595559708650017392860464546295031738608707850514501596615994295768767639585132062511585143033292841547421488237315221226451627070164224436091800394252249289130064529580371983954145172606974713253024562708865963823075186732112161508004918215560330480878329751037238593941901623705302057598371786634994832927916716592944463960858776066015002584950662021671195231317345189949121953773805747591052665796143761268474648508957693522337760200739174725208244157248341127134722448523248488283461970998502556734594340085751077907284831170930548409393651874404533704075116562651745081045134565404456124021999762682842685519162247832654154348194438126970913547356932846000710443323809818975247720078329305808872399520737908556357983831771788574296179902194561061207242280909415051812598515778312165225428479132220777750492298871013568631605786278675325318691922974838351316839844785640790305626044331775977737825764074936643865805653911229749672160125805199929223589551967683161934535512073721792346514289637848229991491429151621587466102102478494495689172463841288106308913268812987619304325335102062002324166066367132444787536978320254761622130601513534342227542835298409158101537544743900430635298956175243728510598855132026260499251628063973004102619225120740920784075483332931679988859428507846194371118162086332635776805202616541783644696187483911078686105179116690236954102149345358358055848268147176102740321664281278514056287360367941368339498592428972707841053192508059107175277537308680189566331216947378815126486494513079613955333662480350519651878467380993540324966556108122888546539264908054930713870987381030584087632134732333091048877554312004619410354469560581979658436864329979497898579999253137276915003668528888610230746688966480520226925202508562551576304291090605557571312037287957918966329849101403401308167575238906104556233296386562345396199823947087195414440768282105196187987878796215538056084994407864649377686309023943455832430556652942848429974367359804995552383395516922226344875752780937797823205893041467907472537407023653834773091425229282052492639104348138103069904513686025657841046603199061827481652204431418475418299038134545623667035313949962169179216789148599260511316342264447897535429096112923814788894233048800310426835546906095761831375613487080115313521268909383944318470896807901424827549112624885089439716570224661076925539370396086379407941521066203769102021125213957176000231050815069058151815817392974810438316332703512561425273546947562268979314606895545668736322383663462086356755928831362900641005755936208996494565036503326296828330676599866178546782014450509614744279403830205623524629186029805165439129840292622880177235537100087762454342650906101023769677378851701952547848893805892473243494070703043869227862533372894898647399624002531046682922548695248375519868475717119412506454773096750619639266789426045593201525370962699633423621887402542082485216530282683581486282269559892308026339020646148584808838372051821391506119659616479871969985489055759638764349438269410636069267023135990587234447049163420779992721275833792959603398789524361404924527667116736575043159554915156341863601463950230769063449846574151211011765051161999864612598046672588416158527047799878411897733447472712440896060302015363784707806600544414087058605739135761108217553260976217025185960937461108999534553427161940075709580831832103627280103413290219573749308178883724274666923692636754269797618698312455433940896685022367042174144424264593215152203246630304959595659734325230241602369028801747272633721335982885254653156286561840846646174351617350597036003225508904350763796722642073589681227746892178907190546010891409823477219118099879013496690923797326265965357485019623907756521828717654265360625834956084904368945886594259191042999281664901817123365527590457819700174393906825988159682571086923300719258966683368706297264075242908909739244236406333706265819938544426296176736636794914267381149376190137627932057529505807106787887653415980095113261079911277724303885403884195141937166442854132697931712129549697878472087094345616347361535454716010040798511973006048607482345681021212646512836651814095206837426929445152550119377271955794666925347066328031509220730708904257317525999281368358483200388041777744470523029865797108752002098833032966151774668405249716259801631155376848978095974939646211250121944139764332163316233213101440133530616771671281825248231834998496557934610863686784101661982234203959650785102052641311502159982764698441726599856421315689693182376855475096645888059449080732436032649574312719099525917083111283430065087090626783979747746656821284692928236198782611326279633329889558097390874527774139720497667446781556512536984342142001253911910394636888452132866003812390582786742587957796076605067226667658057002237510697274404557107700328074589638242004010347045627789905575291156881486119555896771590533249056648082361044595332940705431847781860502413154594313421083879889800551278528151988619404885590569301058483674807756600898623596918786173187380035489438403220969955367668200985827277435027852122988882012753945632380417536743609054842423419617939148105214898986051690798570411339119676033315092687115209007542829603830935941791830160066904664417141955254049463738757315755765653101422065739023515189551668794312877324217354418501791014319221559085617596351302744999748519738247740733367873561080969845105849727554862400241485494537585645052239340073494553705801157806719854173215311944319686737181680405064799613065186932722626929492297880754487652022019472200558350892762947677967170021344924300101940130110781028615535047749376931179343755748589400939649904872828962247363177374039667595768298471319792615792901167512151082290736649262165369582833249723167289498311447330911179302371014444367211197627150126310314819554900859750267506036682425217218004425618690965917610369510214365993671433217089695071288966722234255473590915526022059385494913837007186827967136538304738242877850984567218365806657236595800328217500244295657796950702625212916947910804434734142309252890466275443673282924426469957441500162557918062129864559170041967462958052043444655655726096011368254547830502352527024913280515887431326287994308243096858822618951943276045635659992888514095749571227263086748173935435067399775234044832399071706992988069415452483015072535906453780310342791765862518990913544321628762167936686351499094122165989684657463159049550556142780078111684950903295134853921272188980847433542317144247747599016511650435062331228016270919093202972722354842220836091405620620200757615103644117122028214401899140927408379240380703456245871683789740821700043974650908943643178574390903935140236688855066421849703419912636579566106960536362015610569358630917487522158237364864791931047406956165444110527910788121827933577956152905760162370377675855556548519078700028510952963384852239910985357051817403319163554456394541757906125532618908559048156578927692249904325906998897372113319287590694500919822774679530151189344534243027807651972176274269592485772838561818758299163452006567576167486728726699465948137117106134575008931558263178315122297367580789784443436353146577155840859824299395132796420416465904546052087263766572484671450668983225013272494814207358238750162125219979490114166023274546391410010516398023374586038137441999269460145361905921231739900960531162796774392858992063405403934397680708493786138410493148799249856905124506870651981469661118538931905557277714565392320549197463898599590972339256201421801036501489409962048773813763325805336762554991897398977727078752315028492566695650882624626896116681272449164005242674589532721829116801324638921064570002063230057931865241476336917815491918967581855482916541350367250008225460633427774287391862693617891202572461532791846241695733955578782243763499021402617820610063878125325451585747201164157411443198899844635350083854153608485124235502911825866421258128371269012690557313617843016300412726674673682562557315945962256484379487847280747137368919081502738062840738668421096800679422577495284340452316549904219360969062995475854337037449277800463377059321569003199847633472650439283823666286393902874112479363574024997455538853795154609478620329613883290070614095648692843643330547907065069228182895773149298153987191758826108298026959431021046974190335306187662684163069106484778149715707105024029293303707392177083675916482836861098105641061858186989435653960554878984691081708223447197061401932479464667477171796596954060368938792165037988535900301729727878219107263592421154920095808178698564189039840720628282266571289882440475554973244931766175181369977814025314318121514193694007094196612236092228707285147393364853490992406822301405139643678587683980475644116479714731507521183625518952197098044301628384213789609922933267680916507596258727411083213682861888081212472651505446655378270297814822733960709630496840971525150738430733465010524765350289764063063164756074128473928326293392973570813767227808175699449142953535283833273055542321728062253862554504547603407108470087323682261586314083170448807066778384050006929406374666849198118217765141316870580704266068736336857748607206534313395680302436793251869392164221003700798623749139843267530610428265053113424108024789234262642300386864037009325702774841489771396540409682999327516324275845382497856351533613820338176304566931560320646898370645713839892448410612679048281088989343025990773947955427595951414809721011351532696413341815895807525523527731275484118018529161453558538305929677189882443846021568544109571668478235114528075686845473321130865201118089207149389388881499527371303331465628031703825910633114368226421533244826063206879552006270043110110772327829437825244664188732091644406824959700142088107671134138565918514677772945631086162900697463034674251519157344805721780636656836238035855255173608538290080190614203394467315404887740787004184354302998109522282297988622510554786442240722489790526725797955350664982441405415858137546569367137205729773267796721842182205734427943846449645971788839792813307765635695006086532561642409496947258252577512835045957770038443598174907359202477690747291456196271043265965224247633145126928120851581849092319055221267319787084010136345046544522801044375127585978280064076329813933860899929392939412505435288833128608205414374468438506829558603504447529244807599995413757285388043386453810817889920218692726171904248923497215605753760711213411275441353085013442462233082493203954406532611149718658777852125457310266513866245511560199681541017494041169787695810447735800118408296872227972423714906736490932329508489911175510001350257910468542102246831693333442608061162801131422013258600592503983667116031766756613251507798187695091262788865582485077076710674584740297797039745338257520396722088944998766005126307058329985921309397592638913647999786162248548137424753722792040342351368534518092486569612386887512313748407523968837006872952455722218005958115256991936358749321858837625791763575289664405776941751269084474757689585476857740212451228997753402004140003092405584918902013876772047736078247207082558816660995125257615169701686641476696325424692461780680009639600199506520851405205924418894149700643996975220980206724807081618189662155966927810775916207811105770041266262505993215323071005990789683379577949487605004992451415317622651055248831329019093801385418724917279298390498198578459008008792143035771072753468496673013871224336813004023250221758007101865085651752997890612650098576889008242749956474848456419464789525702566814927588784970159504188553642833323117351289953002374099596110937307396925396328704915336235184828800922960528082056924238769572585868943005069562420089024753867879960963688296313888377776840091319808465586016882283868175015229464541602544776004763163366097179543619194812373336305482949612319737284475271771233369911965995486143450882230872523179803345518535937728090856632037572286062799402894362761732501998268959997146956165358162669430167509622395039110349293799469142759831664205892024758490950573721224080927884161720544965590436149132334176707249219440310148096069857569064755658591427333038168993418094946590280214840322972363349609085337358474863380376694262387160514235263503735026117597854446126346235632092550410450691751975295395526640656835421262150524796800698812625292653585605570478305950223449197903720221159800683944109998741518833759632861891522275912043112415018582032540263471232857199048061447831128572288762802059073686947785935987028652204346292270697100992432937514044995424651230722070447167453349677089245676103216323083129816023157359881814905160182691858623136505840795226744189848272687177315277899521320768469078316916812686007229340279242444617708040320743881201657474181252086559718250388087062080167485074216905645415897257081242123446497504392950628017122341926082615194188735942621728715555221887001855853364876195543870023790960905512810671877111965555695448273552558660931260730341091604924713522654434696535433347611515219605066068065256305670318138531322867851647375466439088606007872576219226876669177542018280806282048773222265700810978712022210558442710326627668976997515314905612766277409591707713941493000352198681284973192746287350790791848762332656343626821043409798028550571205359429737411628283039677626163882350061390841383800874892473738753821879066177810296759170667125251527171941169873635066093653288770217484365113644183301547915612519779878353403198845874637536245933437490664873251875829447907401522547532526699171637222520305202922504961801326268974496074386382963292502107441034875239924036677580342866668026434169501356134676857023461966529033195924774641147283997905498573252887592424355880615989443141123702743355408504680885234980873608983243305322451848091386419922805056950328084187491715376881352516925438159443355425349383902481383854744506377393823203353809959482049485331891288925016728525058276719641697341597782940305230355937466133583555724909524369476935409880598523850764966415166041021872277927652207307394135864496861160563026139441554456597024270196287044567993124830300760137026084383606697212780586210892129479737606923781089370455097724799507067502224534616412686675503774255058671559198153517140383085737308093050817955353719777250134624106497748897163405545092671257517066635364918975559303025628604184293584694992957360433160118134162950858460926779591701584879546490925822312074774140622909256968368302721385663004243235220626204765738572550540480733491064058453087591587554701945854815980675382595450095910712881661726832247519232932570309397003387764075126977675547801200289277363265889121114948748233870542501682239130791381861571830308547117028373316289323661711773780988321265461996223069322352839850180514722057154091223400610806631204442888014358526030326556186814466800699346555255090226733887883882570539463306441446252551117776748361833792451436466098842082728057778488147421346192218208631162273171207276743596451366449937838982620942522022330620565923120954047485991564181588901057236898197829263107694133075789993930621113296338201283120973847309902513485504757441353075285706963259538257220491491345824199610096215726606929272704294168076860658362745259017543377924718406343917357573892957599779168071847138991898569520210892941462456811190958716779600443205029784031513965595621133629837483679820049093600677029575793429957439738802992884612808050820824998587822104811024713280910372730824928535611586456784204334994327758002825811895588675579279290963027129214952799986223032452576361546767448132880929447082506095905206181190073788570509878900746576520862767673168503665766077823399233701434637351161041892882157296863237562297869450582270013837811770981447971020692605641758113113711830369267485388546591487706206674804573657112585732786264841935399840962038393195731063781278425617684476334774564582143601634951938302966254174514051716383013290986031677990627556112864031956186186595504195796506492882873235786457115942860750765976447103934242811256728081244255513482077195824138535461533958361519343873767368502986846258850004880138351441896750628990280395633921166950803024967681994796389025107497785771207982210265702062847866243797360933783218989852879523178409301683486701621441982627665324903232666049145824171175547375766280957141099458093784657797547266371955092928618059721661392383656830247489389258358849219889904197578065840042860014397224337072845876354391699275228868711755372586141052240739161527673751503009606379367940060089348236013658479966167569447730449272448661442202007099545422937875937437347301335884685061733093012810016413951628490027278318934668447670615805838071378547420350495410859479717962029162648976959479045122376921178704099010424694093450124227081258613060760967733614637326762329493561072602602692232998548050042530216089166142652052016456326255373943302422008545337038919125047986525372311346024425561259966969741686061547786322249271151478573633102485009764623733791672396091598130771908519518567315451995541723736449600519919100012654165408285769232587102525011639931623566580867172451355711965320229852743761960845037336757060731777383971057175662893062865007431741785568226630298921952651405926991769676573562383401324681281159813169969124387993827215364630303333180310498599678155579008715389667651085647857411532765311026693826043824140797194291238894911398776113644068138170866485155176064533939441231552703071654479862544237590675842311797856835231629636817210741082885740772752599063183845612826428911378660113446855769516791043912373476420220003002441705213128403549190399763116832487980078167254216035000670772662693390059914179640152940064089979275100221393698951558981583098659623379591266630827579816364082105218737163178959916889714309016140108477963771796014936769190704267137633738730706765759085440145504060322822339738847633269229459561253716861539038660015174410693253407050228186298187855820339500888504903192196849781810967391946920733830111277475368878922730014984585203070632027019503017187950466789179451405798159002390220255030057498681532020209601547633201571939996579959240521570070359502399812745274951056689308182373685680294305956265504939891078514732873719836758961008796403459935804961147069270175881394642674730606191557436968973771403961698620747161174592085509451453892112077433689900012967456393139291691347039171204527877708778690395738780662417870766893733566357269829863755998208066829109728274389581169850492350583714828246849976514720068405254568238416113804381990499292771386118017409812222671227074516489501757983984402513491872952368971728177914759449201522972274630687951401720516931847227835755346738420508171041278763541139592004218450116035599868453594988810129461419730858732624280023329139599511472513782035120644305492752647242211524922343086462729045426311878411489491308727647204646410130585121198149238375996753053336490563134683197027956278468492116562402741845492095286693887708546693978988800482174098976174778444851021058691716022821445531725737444606964136497728892199427559172684233342604210249429393596132599754711171562120992536367412295805807063213986950977297766546092042227884368624680845859594140209879588278921772989483557326563549978479187899093109307020757099135992070797215320959827001764569446189788513076999265074232528560665547024550759198144947870489093266124768967664709626409366063654281416955110545265332662589236649094262233073755532316943930059475877388119413383060390298876612423651147171549850822283653895154606165150597436395465892693352170163540434743824393224750407624528108332320629726922003521527584572097936207482034098976407903517922096667951520291029066876183647326664090288399179543226324926963913312722225359006250669888889196675177856724175641527099823482238999713216380997895123455994442161893842977476501581652985012503073003402599651374701146442016841547778712351307516892441012384396509107734199667633638287378429788677267381912818578831128355049848194603285442223023647526145943901005113938569994433121176573809200347444556433486023678536563474356874312813690181915297089368167670074787358381002808418975770850102695434323945401314974615148158432939892288672403520148918503319894956401811624427697961726388739559383941886663723336108014563262568936284179459954859209391664172773336324058130844497001786390014640521982859521043245518152399649362795051617082189693157330657127398104645661061397162302158808892014564826608999004943873815900816199935648824333579156605256611432644398067540711282173553752956676471315920481462145673160457721677085086357166252085900248844810347050224696119899523819844018491630963682792901776292965726517891181109596608280612831492910720130383501598113478934065603042793870275358978891604540906753767091265197196999793581223772887205633256495601472252430552404909028521957249751302276967844966089697525217750294135899849582275664608737853184782311568635209227049083660222431526283388830819099145744402745616510368185693006050654874827740472074870911327440199355793598427183042720016694380275294620138192077476120742984452780141439550463731445532019041390750534742458871921618910554956937349642420411385555978543001692273313494428473286313026348103954943748048227079425532440036241352967377185842971910597732064615030315025081414314026996993184731135405192081871041303989023932327734605346115869715493149655605110384015369580772854594599120278917951942514550809592261430926799373339662959904222661475986557489299376852819640123123470925234698616796277516722001576902474984993213092157944394504284441398322287959404806258027334275593516719076295151591623356946185582573749377783999634966510359813761611150475859266628610543804298028065014800025423159695965871799075177491841742121870163002145133075303549129074968001759835247865395807399233009330275131995959798421060238620348546252983051236375314408844362452212787630938845884996451860444847150183718286606806912649781727429228112579928760097532664098678667231633176562964015907833069010493833523514401819885516573873769480589154008500191633760233189608496019092157226850498173507195759476645392276533684189495974540473462453055214619536874167685678281818067037104592001294850839434683445210933398965596714707137613711352353232431110380019424830352400283379282337225700927779441405458617247174104631619658275444309429631553426832626700287384639477577418147013380480123663019381419435884599380399560114322000680856055246454846612199066813342311138098572406308012831006549851226743701342263889110916146690063044039733059984411389927066845542226581107024261496492987332036651545008305406153597275155917269608429804260023859960839830138563399993462502219166186547940324480969805674356821532644262394357117863098264111961427860377261538273648680869300371962823745854391467743634120289063277645905673140688611501562097266318864996533343532577774858954287593908825730220172418049686791156072593267012347001030972255720508097002027850754636913840672338515297506245039364957353659753931884287205634856920797949914589605994404821183963102726685213316737452313825820685682788019798775685796288418880429694373192517701665739099547257540208871338104153230692132392652951905583293246619766349712464841854010095614272010546061959636647132874618672003495438138084304965123919797461174228858628930607293948307068657240413299911803260585805157643819648758700455897649817392803568170059284814635121577966444778251037559539395047165056673432237922663925962819155684553193095222330501705454293356897105229977113933335085719357362067133011571261674844431548275277093639517713025145855889524752741991083926511729645559886223862100197091744202147773701604025254436555345057855640171025706211125209870787816274170427536350845556452938750093061674454075825335120432415242761592919037374289133536492338870137876678797439552062494936212211920847863176528622538598333715893291706829800048667605429996760144635075172685340198769748617551961911905182867638010873176604028461359150196223821915582588229120323771989904042371976218844596722917412672306588131524062741181888800316295074856821911640382235305097909421670426245160642375740390914287147273437977141972593380080018681487519306830387511231755495453330416231227448592265141716515649143582628006169067747580912492753324399855343728397852424979203688652573776620872971223842649488751615107245027535164089596820734876494469942651231674097989404729921100459630801620522316003625595899424112638974035751706487314468854841154235913584970152761114921183715843699697000479932263671733426558838168761496621027509688420463519619901245247264603705990735828924904166010873605554836285276198730231221782182626927077634285907855881203738564599619159489413672987875927961174414259686380158420646220328832087600055772404185993390281336706734419000126463313942354353476440240466286435433308541016256296725257349259098994572628703151603327099946194045998009827606004914763679910574353935922521962476381268941749260572206167381403775946111562500807146828841584821110740195846439420922631504904723013110879144224302363063457587374716988302704390991247902447959972204107819788133361977781795064774739434546179416348241898664929513836643836255881316522160975157378003981904880756153406342615147908348226775101811255964451690279543781032993006694269843163640678778860363699423513511259991996249786820560761904065316197977979825138554934772754147953752480606769588315922646693270788914128999209063757269168675426711553779066385733056258391970278734330266835833399633648267782995098709957983350332368765102759145617529019552236051845340267968667940302521502865949571799348323322227742858394212942996492072668744625413309327132630864597293762805057694136712109931364540668609190939062589295800431255931685975561173074557838403184782190425160004160868139933615038279757227483086428106490969477553051107959136005563640228168499531921015899137821054506103975625334075437392506801358176696929792100135193675022141304509569378912006214732750575752785890123931292569340765225390469650483278897861382011321615952270395845870777240782352895884221308583129211330175981753467852876199416370911139073829206165449961757332655005115461178098449901213914493994644293817727735923185963682967457604172441158209102478814020355425075622059505886785401590031243221759409735149044309940453947606488271556833176127017285909815702915541853646193582356101064764274345511943122376129600193824625988341639515785611653695534223758408725868060175055046957582661534185321810712363583401715601920163645814182155370826781200871011086160684526802991649239549871718773882216803034456321282417906737990644707307491547988748417415632598758196354350966396620709225484549417059140496507786432421366839366575492970827335287439808784989413392162435120666594296880468297593487903953707342238684512556142540089562508400734692692758865793844382256251764196143892987839917774565995131491805832911200030930941594362673797690639721245105037482178111213984130770055875064361313709875261609008337642497404219618693040589463315160420146282815318796316623881721819240452628643237955618587031526747319762707673285152663367022484554832726528670387448899008876961235015659820226915707190396212816020892052745586531789595723981702449763803327521405850512318065470439536696214986599487907813105457216151983322190732476817185994864688255880049059592882931692534120010126887901749484042412753016986259975439461510697709874620935028468958963984359958202289348556925420799697752385302531139306105202856755461551254975436852887052789585209766619953346967058686599378134165178278282552928733175159339277441062917174676163283612778013011436173931345168717031902806127065088189081894107951551245615475418989075852910520380654171548492779139253753285176198261023882827063775050278392966758108333492232344905808014121065146241397506384476820533780661014429132459268826214593640870992983634962584760626789018853469115350363132070396684346503664197642040463245576935416805597588986738693671635082927609046876920119279341625956966504996402420645586475260832965247915796964767151247608718958979324649789644022068656843353984863776791924667524422301450114009034365812383490671630922438965724472011865455573206781470456255845871770336266328268539094199622281426024772086286278551581134508313973024919093968358632480617883269188293252344211032206063349519885248027357182161899456450199146881668580672460870836881248867728918987200841933361666766799954066970013999425947867716987472660313248640267704087595758715859905578711291315203043629126669471312150052316856791115117039333707642743848419759300394216855601405190179026833827513530595574918438937251128998862290047478473357492734413021840972070037718348281982326805346515264894475037157639544384445963703359464001533584745639582541501302544131900333550494610441582022693418966695364756793121733556103846833577727440390191262690612001116791072534207309341892015169752708788370869736423471273080973645778557685877992089663483742910197377744551289632411979992317622876100036950600186622852974634745384248418788315932649235465546023921726741105973826424081202365816131769090921104312891214166637489832762859254301337553529007551259828890017936825013281373375925079445486881840192684134517952010019049460085475995337517149306702014276579460978039419846927017151082918428909560553376491849313665493469803831407148456694905597604187991027639760474547338403309120873450352838676107254875584223080067037099651901836212577202764211047171272366706785478929001059975348291091069126260638591930764164544723333059617697436263106495356298623431459996160317236951666352103872939162662057475117890147280620138955920980334042195730286326779542873790214346230432473844331134155122333921218241769685216761777292499588381728552675327816522611237525364850616043232492668868169317897151104812909186124182105636733226591476623478269724760726530276973912728155044515983388099827475647355287462614483240899569881631808159968817865565767409315686135553785237239829895448967376226029120467128169027127512445968160314884273859567071078990624558211675406807171488386955993649205735369836242609799204803027467602028369954512013529047306255343191524870563785681190002818081154720053855688027661833715479890480683052454339793277547865460771681746958651116080530159649395226831775332940498594135432604635693007553138709302131207001476306686816638367836750487673300725713434896505184761430532293293774552453521639879400266755190637423773572432212002811847531029388423278299936754814074679529790253533888513077753862170347588916203404991676797103872092788868761267642901305143844009988195400713988503743878460607066626512267118750190341783068172540354162557333229926949829053577009693170409968759071812825416976641502427888807869431107720587473653856100906894838237043128213200425791382958278336444893114712955359507712798601669891676939250026893172659403733563421098870123845946039660013198205038163954882817955135214850191964576299216463111113306290089939533391967013119090443948432356746506389887733477960107820066832380785808015924953789813133026297561297583761644279680374012984487647186578672450070904194636307338892010119213420537561093425529708526509295720532461592838628518047629900130207839866886983681128662144491236425114245203901707411434632053344865815092537705598318571481967864562588020809953277572775896815332946844194588621527806965592593233281033497948858526555180208480082872864547278852284319127579870099080055722076507548087945337229514587135167082592339575386384093669053696695201530603983084029535985262317111864869270590760391788398412048267313866125464966384078292204464398992689690658141243014918281138228779352155768410086338676780142691050918513899258558711436600107667341446431861613777000074533512204126959335099605378142831209718240255903344906969915376440573963811761899311925104261693633739645565589795706348571415835971715589660268756855222054136720114288418538611657050817197551812613183557471277926176779114382233096166084167041694957992800515065070133076177455388339081913152769456339542632320944154823014805296813153189742769765252192689598439008353751108540453359620467793866199564897019895511130114154249342464462799636247766261770985176520780021455417307830882246156218712609182712501739915013406092137575811100223898826703930299117819302756235376907939787345925434402032771159180907429278448969397785330492637020384893496772433843046346136234742387025243546557130982814239841061559001714268855056848673487673390639151377408706700245802927352455445011336003191544123193719797005939400663870405241071902961735109531315487111893349237072240839947210635072162055375723895122777636625584790717356152338268749216012532560524926154206719242006442438840066903692749390769660983889000591851626507287066878016821184058225929456298402376034411137198323629061930460703176291482816951157835156564689469897065904667208984012155461817916458111755850452074006581931017432927389892761521400851918941602586394042528352865638421731112555888073513812378728544528544554021318472291098712709566751517731374392948222483687470756056182158672377418318243069794318989169612280945141001098930417639998972168948300037650343200369692230124962452343943200683169066111313929705405775748859458328907279360123077777364496199972372171052301952002685893460766917950100658676756660229498340885764129549745416080119244695002996428825595710670957084285463115251218878119039572782168607840326628203873720056090542821483370891341204710429817485814926603252370985428258512252586505571912625194234106363269813423262206005625264420095048466708574137381275776660587705423809492122340411217855790065467060258939184971029411279613960446576195970085378001242398519375102783924628778987520048368200537336580578857374397992375282595550353164959298211847105579983109540628285509028236852987820175703614834301077745570220891453134284355285057032868494983947425631096494662427592093363145422281928350471055884310516228290463384598356036219570116666235368247542710094510122190909523620208572385310402142180355214301105018670404912055392305173287074020976066991643569950509074326301041857585014520296627621992083534754120804794076577086897780329793319224378886326733441606095254809075909842068718262867648591608763156205233499465060633631661554516368222585250017795890703478262268594135682663296883431857786068983012002154084095221075512580004446572975822058107173562527837719195147538065965823422352496791140547440774167004042040075370224371221714723670856854206463881274645096936895398378767498343428234569673009828361124381113731247733519398111988906019771383723265206503801116775263658455769655822682582290131150372040024936200971818571671819910962236626299195789673013454185334285675168598113356393672814866463408517787022240987446961878116256186405816538589401737410451507328230474379280974815818745238624932202755184210108756974284310246788177346077492005829303930057179411244286553692604894422345040811400735621555523634971999842542231799905788320205396488529812341334997169205142707067886513953035825448708984908874480115454277160465880013866954574702346325560797366673367468261557933937737902690888304319192693358933211697356810123074291662202424534014862815855570342154814673080340221429569173156441709285843343326880985885101593972127159758472248296043189331294312878932517877826684242021270494434238297321109574234795731749486986298307468752094406960750140195919492031841178677891514570404195148634266004992396891966065124184394314223857308171434347569438974271020948551964139646757793971120890347846520793541227220425846436668028588576517490504770067408504227683128282625050648721479634879852112067709515167789569316727883046814661641278058948470543005882508046819789200725254443897225146562469122434267512960637635662615233834684226339716236538462984885675149545538375401531522494859875383832475465250066276379674357085349161761536149973577640685655664917837480164889432966571637208466462139365001679559056067167174510695980340671484599322571239699256862855417914441926689282921475976821665678763173196106013528509616441257452536152889914387245101768763174930137996628582576958190050488628022403843377253334062304472334357140005313369472229907759706921990518285276339277897432130357825213198909313050684488003887797864611639063555672980593093797065823030759020246803514366988647837794625176450368619580043176731877529185527303492320588907937729418345186073748886353197319695259126693967177087584058883952597882187785970782886406167503826391309540924893080245339116062044863632036255387256283499747913024056033972322115126258651485325508508497833053473555003997323159273419989890020451713648734174589909511445755550246766764667000998943295639622760390335984897188212914817255298204142591416062901611897744906191087362644054700855868491711870559538579448264247685070301579125805116003806989003947032820081315159210385269807154760224019090623486126622438227257196407956671470197896135308546515184083062795120279607268543827282978331148496518439068278380343782522202226252661323918072669913348748301910998294581799515014462413587979237573116854235708325984693042046262826355054174844627353662775680142543809344063809340570503855887504259645141662578560375335070228769902049586924807770360283908302123936723568516892311049084185155047573054798333866573862588895058683030915018914789131993601895397872155516251784482933063445116089030773121062347680502340333539310903895954190476105577786901295420277666250142155919723200320729472188513192119198947637168189588115651691049301906210464589447288357944957503852542713278907331726013643733945047483962392656679744525772829782180568120209890863015607981104908175246913517377077242745765238535943418945587552261963941019550844545237710452880514946917939646248745347714612064742740731793861648521346221405229331625526624922306324289319545986656842029118420035279844789124029244906987271504762020345504649787317778991535499170730985157831392424377407079368933214401248745516582860942065065781500763639479248665462210084779381729610937249772674410631758732086622356955194487996961244738041140402282329844722219123577807040977145449858043713560858094437513724701154826463056472898145285203214941928184157682760438326882158227090653494162501469666513227461210247413908487425720338985805676134355307945583119583819568880124465393201674756745177003647030442550135123607410247741733610617929759269934904278735756435200986618093077739657016191119153907315238776825744431146967753607565693075005771271920287764764870791155914155892145629054078436293055291232269029357310666966402861101828538150135466178755981937970226318844588352835651891216404252522132473639649423526634207053204498256354331383412142995319182490804310876052836305678646234943807799706710482510448925400295933687354462520647572265074960769435493995423483812169106134918583539495822371366850130218072312672239364525615393736814311762430667108756802258437040480105401491766983069496509109570073982822642216097754179629687317570216286902090377645917827251248538242844014040368635355144900354642709235033098006467116192436847701228921816741639211555371493525419746302323022415750120351579792604582860070120248271668689544095692852453563046265103039990633051598248266643190022166389283837892487815266182540086840091081007441046243548092070526197542866390104264923650105356846290024258315684897286681866316037732899233313632033990945227794795914472859467562273198433921287883640876116564376727205187394269905341948272097829744148188981961070700674525895661500520561071914844888803121204370085264255358008811120279069379120772729353152917396998948553360939292304128177668972403249473386525977128147499945853836800634428572163353751814442450913374053023107381112047975586222848006271902329965856038225895655587173516419558891276461900642491246186013959296630920268904136408112652346535251920038698583943442013096801393354667119947936188136180309774183810672274469648133227124941160122412847218131099199544373370405639240782665481822918417084283822578674085886988504028276005270713041620512577089935852759546861902359185361034292538004759292188941189943008212992482948968984146421945636479291763209933516965383730144897255546312705943903529620246737594241701170018340562632214008107514963823094977367271357719458690203269123696540674922651309111233361368215988975969741319203578352600635947652548723835600005909132131838101189134637962472389872015886513627796541219272154555324027323071032799716238084979681292375437666323267489300255838107652149477182370515023001897343395312145318604125557744317174153777058613339370184037991489895011656364767669192597442759174383527273418573815225897081264775896930961866354593542743472762911593958385041219738958937348693893225153023395751921617396302266031335724026441429224620660553144950936334277673866573602404082975577846930172379042424778862147130767355640039523802552029761710391573042473057200505064793190774575863056991708315945798349309827239386885304566933545641831443506728897389793718407917063401337243415457579577089097905589444720757444138250481181377024095707355237256426990659811134843796168874185760002841593950636714442054136667023941549676386719103325175978128422520147971768293480140354851595102246027613894111938401429103495163387578383363861663468432698847521046132143505350959514620718380065219018463204090488493501963490220963986477614976291019769531574872330306221561734500577660057145846359525012868102335393845452321216312610815837759801163464735246838680699921701171162450123975638694194769823369024517724231831939534141159235550261094434602742219303892907216416064318855882619258116865966513218674027902215106690017024019689152776578332752790525765042326276386932842028167596403129653571115022146925124816200015052972651982225272487589505781334082257368865471764497895403658505578706603204111452039267578173790499978585247421957028252742572330906319034493058752439607952210091609819438140182418710640823671059778068504294351188078009277640522323169577159477553073407891188108180197588743448259817058934951188280337266435579490136285168587684033462038259353075795554659939442615152722406114766294217472336891735159780962654620945310913935665904471867803399199504579098046033807377664087329887238076653571035091382624194866096591419823158671280952738496650719307441526052464661992710556894294040318699347445695403539968295811903229464655080524064910189306272183789743647922732131740490068696942214149138056571695016769079580218993712463957999879076756971467903532077337446874952451376388872068410672961405979811868032394720702840275305616472103805347770336540620986175236239503889770863819403589183619267312869026751347304302606590294439032453294447030302202213701834050428918372376740311971753947320090957175998634727262001864106623232280543183884511735771568462796497630999314524608654219867555055499799680307561949785975855791036768100744493594616997116418362975589967995309814963060542767928849060285078651280683453969769946222031773334389628574115750418562593742395030246505467091417975436046345329586055282690877605006773559660693246881137888177796082208606638702777358779737638552460166426378000963906969977246605335381821706680227078639393868686013552538862440673977538777835662484201078752414732905405707694378828640996342692144895256883984697401086575515009239455250866498779532488922738634138009591097779750638061436478199330543554123679052220155473281278261041701524858901226897551096573959933850509839183628630446852480715405043839823408441160972837496502006888650154508823166310297280605256875767752535824022118068993209966876986274641664645201640573252596205926955386573276103959538366342214998954494930121927227032891558437560397454084027701556389392925416881190547164466019343451294603126863587130709343394774609395843447343758216457224953587326260421258978340882797962524527902785738680750153766562431668996427306342486542694330321299047240253217452297062911778068136637362324321722125787821069434361685289003017490158176744061487235827479258183090571421634061744388012429195907348368928423527907453405675015072246224158071348376332094918390451898764764588571781750870666354502905115951915905480537623835592132846363219191730917207971275690427776028400767165649101383175060239933425270400646725364491900085854853466888125567802267484290631407690443465136211248310236871023051188349081620243043049430022545206126410602117604661619146778175653101862183769178774932556073056430770104942593590113870090420112892976432427378750633898722287754020552834289458802945218006049330480371463707411509488931095165477505271074910075896019008560329925612515704914949744238255558410613517586144964733393863540450502377181530524427423864070780143246828771457086483605733784299930453812902319779367164766076563521979233661436425903769438343852813243112203860851411223681473359272279334963069695421269260763339226940030988995874270664603262899419996289287821574118511309451037078192911214912586211227695420167753840660211978150676997096293546307685326236553666399391041819324050309672331380799839387498091045454512832563918606540125277589824742987579711617889773116835588810313253467934094729829737201500227846022550736790046274648667598826938436279748941114121394464249728716694241421288154148728997074814278786117184082611047022246922219275098302420265226693286317211790574711720474076842801508267673813642383810718740879305296983717701939043543249147071442599386611599998509516414289017270645969433732899331351936275670094315697425931763636262723488607058158721361243092942151844333651930045417028077664970063518423660811672527717655564114425191134301298693547895110334563788958542488804399138253379414712763281182958924298092814154688254093700714055610394800529951037976319498457672538265373305300700840094835319658762652458099278368800817250755810340256103187787343435902026147919097424291812621875318060806815782084701438703502064283605857364100345644223950688709185583771815487373138920374322003368124438283775272601221966673525831203846516578187370695461260606956944897330967196509277662083626291024741840878941193295666346229776036017495259193250714742714891885505973514245574352044490034456153184553238255542228289673457278647825993779533065945563177775644978642193720037846102471837982446001732495182251128088725280450626639770595629321966864734989240116316444242979397943598380038449890035251438080725128899574636294689327244321057821615200921979564718844537163416578293297245644829776494965920386861539219719754932144099931989642147315300271047565985561808472219681223525979206734943147507326310319466216513139242712723656616997263386547496281905381301740359628396770507331592399048632585105425474531752986369514673713027730141550915330090435013936946726615244965257867904445358703753524345290644216287501271044256710772420177361972441658530993116061657791162664467200099137397204712270512068582092884084985075776951535570604345204130437676122785087810185963371442365592260274849417301317158273528430305320245139702194537374318523591946037009709810617386236618371083384874467081931446515627894146600375351256128936827124345424819680118690017407062729470707824181591066354804984244485437531289127724344387260062857503532835089562733218510819624057063572311455876318169404643096439071178270868367219468789922908363717692868154401236993558063860065247435488324183698561648330866873476422176866005073225212308409708749515082154969100682557936588486923699808895076651278948939093906342237970105801291738316303462963832980931311177433526792513107341321447806388342451022415387421279344316011912147752291253265099129869124618279921296470447736079044544025610308790152660632182460862501434313438485576921928435071947804554128166563131256537109346644672861543873066571088487043436972101880714179192084378443577819412132230356543959406295701836775533194607315686889680108716316163197860515936186045792899540529636512583426544189836444534357660479353458078572181711178980108950769148420596953027135528687501180791121797903626901715046286375012884112728614102269276665576339781993466560951316104027699373148509189202026597661207503662125105034592089085926531819819805053613817747354453894059936624556991210639859009973725135156831994384579551219311733765799643833380072413336474972008948343955583463778711370545877943709372997607415510412629312786095027609452704931659989590346809503473093081885533672590214614453429540473242131822774078176007199697503821748090525369839856116014796204560243164693611405987051321284089414873454706190022188889305613891879222159585678992519304381776017660786422877941199485016028398507836717477982155474473041635089614603166629131215531906321837699818379662322668697287248448130366750703556126371427259023718457945374132080395595289343530685520633307654188910025345994142565451852220257133479128292340590880494725400650601947902039082039645432516045147318693351295198268080599322810924231139085299312054695345239559719495211973489771955791620704296343190779095313689929897844427647470652721191635765782723587136982597281421893521808838622440603687925523943205745586362434345400376225984952005239254465888525382921994963176812887214467467511123934769303179207506822362340668844080311663842609275156432104648617950218287363340985455323028389702509942500481978825416943454531733558096671801392629343781752386558606257761807535924094801774690149760874754860799086452836263936424511089818384173713903229396824135887181359608545165043554642512341416440574596117493455333991464377839559229712423001973508125434429633578346835546195981343578068938278183960672239950729077807424629669195569192913613898474155066755578785365473860482945468453876329743474608079975063166864135856586577288538234844171517732761096817024193399069159178297428201200560424245240047988035588603220183307596137090189359988601185955465298727180775563514321843967584014020268551015761490996334832458038849189317046336642530601543043595547894050575771943645973539047076239398391166615125131493744621345987511652283065835175110650201164097083795881653298435462203551246314317457963217069794074976622821058480837456846697744010849738976467720962473414564145751393321928670258370818448540692123092964279157334666593457336115818127628818928254988394292909808254952878028666102417725963003400212241149409342638818202405065469442591588719028464344046107478496142568491598971192304589074155282938196261027604815589738980641672207880117393134020909149701379661350847598634175604493937898861283134208573347281570089509384528995842842761158019760083747359377868824805404857621359050245287289433263169070218063033658443705364416864828436601503514079418822805491975759280827279327708005237800606580659018100962113282849574203493778906176765658125090590799826533589874628644839599576609397402250924676053665150923530972104207188391889297402382036548210683252817141471910770332137977180400952879000218448228023698188128403323679130019626874092812286800982358530050781872326750297798783957827765413321593677297701110945503143231166109341817585789283487167853086488397587767424929346515386710120398054885007412125962151373806976259156476517102709186845204010889614690834754592974836754747276865385580520549061502863126329592617502151893665346869546028298240052080341107617496730020532815918919768253725639354306397614254494359931518394555655670779782211978123224350035808271907522053384029307847722583804135997022436170050992826280951617910993538569586365713504008848208132317481537693093606796233016673242866522787778589536774808078426459473645067381100224200187159719231774179299330691311304363722417109092687730509735545175698901983230399258365202591128313535937316533471312630081764248170162420302961981408764421387602238964599854049412040385382386686057912414946437118640521226514078504278511559050783722443101407121211123411953579532037360670124753740060845820027924731126998761877883491460206013525656289338458618416852279407733206243121297053160221695880456210545874914873648927753189867896095190798132947071756536319445429978926599474937114628098516532247790656068818696518330084186657944162788242646463638282350284539787033825698321310758106982275637695709884249376346758572028760467371013530652735370822091207984404585639478564661862166332992687455200723126015533862471455168840594796669780576218486051206027924328681304955097088590294259973222261639567876404246893630256582187156256653568548754396849546690963635493793714406831449663794251912776931698699374039540687944106947726211521636634602886757103761845869282058078128208082801069776655156393483501872646107145762911020611871494230943513328593314582099878496407570727056185763805631553722971833640516262608737871692159057175498885576110989529027878786913860602553424778451260254111292708399347257247375614470259625620028376267450189101578714472855855520663203160924403349087211203632785923092412121878057362291735284060432536279401722920703973440895465237490700166188268658840699308453725954451418821542260189024613059356772511051748317680651327989263197779576500029835019224333152832592323327276728351197904310759947050231567605195913784936419671345711435295973372221428749703184518293663503113102712821812381465338411124386599616536950816316717280104139561620298025252136835011894491343592450998066399996239008637132432998111930149888796559559830336132703792599968288934616850657886883762025426806130110510408007289337037494667355863167356831199425922251200378456798325451409375491891074329982612101728112238026695604290133272829487479956323825216838556280663955350906138003090061286174910735919653035356916486002721015834346033548283690777435495614404889901031678468325366694149634269274776050043466446366572180720386289037035031042981326521087680852432710695228826599635986815318789949766199551196692434490207318304804398557353111225212164450967976572726555820620320136850633695309535018395562271878716826442390884803024774432804170774177262084252005355092999926864699302190534867003503496030533368138428551902732470843037877264073693224984230107530100920585925795543684110361201905632156340220260708777977488766389164113801517938294967299130191950619494033117775652566856802544448728374496043505873983600659457339237531730479554292365275093878140022282268787856239040350673768579408700324728924728044253576909158992008332396484495102221771349162320607694342554277854849028360554072378089276748043499379125254371905777293559649438404758027810713734671230903353576766000976414815622692176054597273825213991040171213060322611196302466505965382583571627673027955090305623892250579070684571330885068690093342799527242753000091164417647513722860681090308015309929175336333947589087864132422608936393198217356104087918730175332523420273715479302397230129680044645251999245349658477629730175796495982267979862224817762684854378259152892906086141456802576261004453090321575175885138481492539240703160045451284439961325530808116241465472332512376307349110081415814476299394404441522822219729623593748986704568644800292044816970088683320713217627648856437676732511975988539244919580523985697042903842973731379692083516407720147612718999453332516176186187119823278199066718376176879319813487161138609643445660674686159404365889776744877237184604888202913984390708648450820539720445158406343719567005199290184779413232109438273908296666843787885159751882999298026799215026553163788087923197882037641661007788783850866105633764915898240712080953504071139747116038065750688199501929782615778209474406778631344734164763036411865783989559046358293874041643764535948018583449392323929601424991234759131961648417086088912125438408014421302917174572381311612751458783678097942496824645754519163866588777768852831453898725566780388075993516482497623294996493126871330682078771963629829376564276156041153990926270043861345990519817582931513315675078484059954461601155680584248711407711574468490403196750898600732581604384537596489064045918669620304594366181418452565935552864218622070650234727402358635563962297801724640997972785388596709991588568003654286490336158228157682632070547398056384952079345336480121651158604897202263790251166322599708712515069716517100161775176390539194748826851207566426822524990394273170562030794964054457887209116402493196181180380309609065994731585345139843187011681165189744819363999686121391776294467059404993479069125389255010509721419971619243003638720462003755902986510691318025539136408362460566898274141692586346248085571821195098536315167759002071569743044972345875181290422510756556423970717918752875718328600607069211546974136575812350690698089747823238823714876788452367864582943239338164688793729020970429354323495801158802149067776054268623342656146980452118609344806815921724284277535099504581469521254750344356304309049715803905638620665098058265537873894814160772889105303500353173293426261639418387915337695385312628959529513149071682377406613087601451457540415704139774530786644842170508200411835669200944125938686035937905948716690612999697822748399614252980206170549883111086642816928282732249043836169439980098584549212516354068756687253330099575849968436833957201785442273382630915696535914151713813174226992247815537029087595751327138708877674887536663912589156771358183420556377625360809549916010447974738549684888701479351547329350826296928177895612895631268761999579231227109608933511223273369600950554444629117630988210568339190922322409747875398788478010248691003315055307899795267327903906475937129787205124714859194338627437377295658431480416879211417784689566111502303759412380585203497948332908238698163979952785766099902600143351186140523714446436475122307502852687948700029014384196706216112189039925053360550351926377162472156459628529531882749459480196069716688034259114218901890371988888241143416910742037668507110549598655025709442701729631036729037277044283810786996768998727623922816417727686510516282152972160746850915800956099913227040952537595149919107849307327218428730142668014181951842855229212200247242697592990036242335166203406469767021597597656954214821386059782624983922569631136472675559350004777746270157147909356571943726492173321210972693474336141942234851482465012636150848918906689148680869977248239871118544182570952471861861457071865015781321717052092272286491018019178010596937648888829915304134337390102686563775728118942064086404935634298295990985093136801432272934370196141558691577030285755803462993494426072873610899894642745251298723502071714228927838426086665611089853463714114026539424288591461803682199207451236886759780863453415765383083816626300019682367756191309359810249638965408336714390654467330328393809605603797418026487471139549060379121095941494290292942869640880962617019899337197942486176893375792301581396288246034043728652179405618615572686042377958855461272031011682641030295765450694914344212333247749391565774903966682163839519437370649881780838356131448686208645491352579872868510696865520217827782234851359787218479070133111934757799622817726750688106212850907981166367766819547375637482692853558571885535564834595418744172775626835754787757872368363599642752123773636848727848380136179824008418378516933675829348647586108818555689276255594725866456938197639815188566076471015943790498910230676135768975925332199234563063768880235698511304610893130571936558391687605631756203729015878809997300604386852687231844959124685351641550091456809554956516664671767792647596414487287251450261723520277246193462163183917827994703282608605620127487791984269348278233892660391958016360349854953328736774660881317064097151892154675637287723812277411050951379404027184485353159387413552058393049854849669804712673130801268675556928963763556455960188335607551892030841640050671679254464041385034278288418884742543463223254685820597974326070132176442363691853553840192113601293126280962564141085589017680182575147064243008277345105810908397946255333127545576291662086439698196244756335397277335368304151368000183537409352099562999120827537214006178534418347940732545818987185273931008203080259737024793784187371376700958758279898496686164574335351283316519054089404722757880773318848829812662868973999805347945482470614967320782022102969789891251467857365940366096332987674150553378734669373492128209219155992346430125913142067530582086587329166618811397048223023495645377578742745568976088454351385094658951837476655028349445213350282132282280845817138767892924342730416211090003440118283528992179050681316646858794765720894860032583325083093029685630956732584640615196450739052591604848726965700922045978818444290413865578148901631902182100814176169300658159423620234929633660069762755734789278898778357426262382118395704356963809838610792891999927196316421881692692003811885878272695016482648569053234275554686113469563411980279469365071235562694528665501823282937620003658451021867438935644485054737083459142350711231777772117101820909866440816227653476434080540523931954504130986590706241581155797908209484534464941442823633064514562458947843939826608162178046920975048937444081983419827146874761005518600610291281131190314483359663732482989324751904475855011839464586889003922635082709552990840303493749709033750302649794195168900258095356107699435778916195798738336652644860189549871527890382466834807989742261374644388300425727471607571100645676687281234863125518408261757402816405751804336844511593002182080017758998395394459838996736921424294961613307463428709244401265426659514816339308347202709160569263185006099330239130676319992657355833917182122468598122949546485349999933097537172697660414306334972684670226316354318909036495856305265083402535653589328838356064793991161117089960539294383910260377502135796179600791205514300426589858717152773881807052252924556320029845588524991880488669545176146276770561724445885043184107332577426062135842418059795771376054742302887335890020948122492979014663696548069230063059338128514087595265880388062000865345729492687703794874380056217094567963760313708244444685516516415497047169965831775373822412995595268100072404538843238232487432784496053064299915530355641498515383879419594729665300080081461416521104632185019172513839868838582200771836896629729443773589830298544567410438823934183990755771724431956530688837387862187997107038782044365828871470067108144787452845401082055301091329616508127733104817781312804591479715990731885592572220231488954387230029722622466631805213842226958299657258299545591015085175934331708344492200029045900031987776167140040786775193493794537913758595229377917721213218185564371433709228808438831168060236493602998320794786192902755245559012928610106941867801514161346965664832319649337709682335412676548308735570753134292758972165730144445826995331987630187124463322746280779593956760960813597654633321787584103086030700668028049456172849163329542840691614929661465629442451796914939236799503263104808726911852421466891764052392638143357279866063690100074810295737346876193897152816283737841521414627502527834232268115470296734530299722585332078267255625574068436932975773084159753661582671224504320827856437122783793410397154141025959367503976546612963770217946121213645920799697685519112967525423178010621740599624638741113306069139396565488459889766084383914097401327814818819760197721255245937545883334726503257619858617554151993937246641325856448008880037075995636484914782570657159514535623913580065374009545805468374509298373846706635989265885772184680197132889523330924719299417370968599963978926426697641858093609826495593795652219374259752837121703438131494540071470924159768834062457127923741454397588089272366298725287358956449957168236642113536130347545004558377449409976933633087862777608424039932803337388232618504756184180156958974466771898333108918699547833049253376330378603672882672779805366427348789252637879757049976896994418456607806287823358369767556671128763773704807383193134435513255000013806164124027003488713934518940061223345110689978763163350170927826305520580181064308402510627629691538933502964825613830459513125559686461664130103095251765352599813671262365343752280808028040869196598348292055083630489125384265882797120901222551367623284268285426873724155164031023762911477457118545275194375294796326287430020625120411613964694601302833139180048502593153068387289826169259982428966046570941113717070971223475115676919477517423156707488994347645050272780044555494368422048253982708422043460984959609612233213787191000044979061804085838032394110899952826743732205066449886990689842791249782686930754575335519088015794704288293303173064134833336083571664911785474772848489160434295316826873669601612620235897880666234828409434266958247243441019165206441852598047770623649002090528896394044944587689907028738082118749194911383778256988662341882765598985540216020484313615931733162522504309799811740231024528220215412833286469084761856282047220750935048527598423284010886229923740968535377248592349748998103066400688274899128331564435495689525187519702168068528289813719298323604526436577111199406852266277800209907671026452675374243808110289921435055918005048624434649823524923664817851401963932897004569965820171810373686278864125302364552165354163477357487664834803219924735319975540058729556115760921310634461760362317914183105717136571959797932784269200862898093166755082015017860721187769186741270993397905519873526235138074321987443397758432978715199861230583167157837287001877673184110727000906916630612348772847763212650082109274183128446349790236609646289047121263653608690765878823998439184723624533806356766793613365128897967824999086436993011690008685561550630706541089081906272924848631522160376360533597594830118544305243830670877222111711259994675280758218937719157658574326955322752416517448158060023920071155287535187936814928502978606544537690400784412885168389070300253070025035270844480052203008728167625626560577076377409173108189955682801034592332033056319012623157659831759667648795474208251157201851647028247900970269401587275632956031520766775537072666001669545480913252310066852111884997252517365390375883250652510901554422714136943695395059681738027839191873634584212759037503822727353612588137307175613065850990415545176231025605147972220271822117503877631302153214053561048938222837801658458290474325071108310986408981378603805698837269021809017558969329926548600603936759068653323591041526366115772114178741447700464017857253329098712703802416282340490616958463691815415474212044844699597719784858572927578995288655598419019712457782155463732724354025075920452984202242167210760424218440475987636210775843865949461068424852130413843828516267137498746979738631951466470426548623340241330478487225163988240375136989330779634467846894915016769782708731547241906025355104175061689536127841596986713381738867136493577781129928424511307135402408231118214796191006698187808620071258225869800713448533695359924911965966773266126708722134192266655000448391665838803241896848864859913390959048129231285256274460667975270444564147121425359745172181990067985154079533617630226984167001986378092096574042725101449302942039350992907679460668687926447463366615245626518988787951627311404042736140724462238457397463543639008159464019272414621379426742293037802272804699466198880386146869397083893713169010433769722468504562310268463819716411458214189366037763672448024259036704300253841933787432833863716792378800146534327156122687857648729943688717083640403924293550841705199700742854576925249393505345914498724747177955760833252678250432020337255078948215679721765923261979860055152315281405455020599863068127964718763913806577513690809268721512592728655381956223229958473366252193743148973717348413970610366322401594603909749124656517405515705462951033814134481216434102174648690757907602920201433438945602589496931300730441879771621099653353514514381419900507114397256360895497018443041083735831641410978076220508135207339881704355801536263204864662058218676126748811157653612383068820977790828700764780836629290461161381065481102080622414673649946377318978129139650955195402298508068382767905611642143323139116974089302938504171628053850996154821221947579059064365545873390317807374435854599123397010151912912770519707978132411396194875632323698427228927139447647251821204892380083561157479809367527655843944548137940752617720780512189284732729733209914507368710485741224354989606647724125669227335251947741407109408866490983619289894847164451293609747365146350361765771454660625476225277607142726927656030305687151217070376014653715339721657589937837869394423071079143386669609536796349257034369301318976599590425247147148353809825951952565525057039720693388803351351257595333340607147761854778229004564726593298941808477730369226799518967142804111037950861152791678341514697956821488062532631741171353195518109226639879801953412248348348951903607550108094217590035720247952573284932239826107087600240063079741213957939712396266813514175915804192183343081059688279019349524386133198331873377970350757719090531815226524721333006557796328951156581052046206883505221698338634074752499896817340874983646036671475854366877929963695615390077122808768215155100128079358986704444668873338743820456790017621327911321123069861597085760534924598881016344746129915533175289147923256832951821138103021640415302652320212712533856692902155367329280475593993065912901318240703885432220647565721218288057724218386571870805164410055766972450672893899575614445392169456444011928082018924592875919362709841318831194426217569748104314324590102993865030209815258349212745909603070678710760990215712915448736567748808758396742176432107612237303422956232764674855168590874117848694886678128887382008752828476643650164536245451548621025998779544973058609390545904358130196121656348906378080984010439635579900839476534388317460321534820308356465373593862784897282208350691641307116619118483358634616943315288586119704457662219021510570618971142080128292451464122722982497611352774547119686065650733036861494521293627313003292578910968117533881824636068023518025815081831320741113667387948089309950420402436057988886347097221484386957073471500321591869844380815863120077952141852232698829446326395408311909809301473701190812693089551630267779862882358077749473271447319694369081089020028286469949592324950865856942953315971345832889490997966598989157730572581337209617225072181769922569042335434271483819985916206381189435775665058200464574941362144982431735373816266307829262041656248078039581700312819197244664026711989898451096318308312133967040952608497717586318153954921411361714469572963318082011473803937502615313675548673604275360708574069277068915536917564403451969052127181590464631201826535961991862411100241219971090098951959384145619852197007465615678891229424025132397641844159032327798921028608302196122833934623446106185771256280284565913105887619981948291489553198634523514550964911134964043598854686331839170269092575252435685651155874944268263847716058965008758826752193546546250577291873568186546758404528179423617816208431273059661943666452876506623493109812605963082855365775060837743255031667496466408422359055681547950639374330035830035016381865240343799431137462513721408412782188945274022761217857246141839355299475652321197188470372566908211271734260577382806560088099955751310942858665035706400536360570717681665190057090298338087131253228197160885584892269974538962147189549056894756851582444859179738977736510164540682240432705466574899004744173521925170040156228030971184916079408857933274955417966516500115980244572904252076229472024598473638571587908669132732822573437797401291939972848213121755979757387053340844896108757298070361989460912880444273107120405737231284325862793921432991526462409044028767119428687906728993169070697572829483292141253553108476366320352057265830117872799793025803374449614948556754135487125554735808294775131038208649230488162875597387701715686696480010858851870994888266570652168380483009873267856145357614105167020932631487006934591316477009668203393363315857460607314615636169197616643943027973724609649823991958023012778197015695716606909509637048995045483298784089481967582907378050364734838314248504009374406376647304880545649231332025582605218546107551295415171210845976602241824096944349508263301226904680421584183761985764471397863830363840931861418099923647833346202624222583686238852883796614416379535869573949515294553852042315983882365302584637020729885298332494384812834822632479340893010558906131180258148916234623719804106952655879370668958080453950522558198002766009612411823634160064986325616962313924744288814587827045454280297013724117136814761113840634834714528015426262979726087546516290347433791146262923919663419514086018422046575814560124742957746978043336119831823166142754273206690174187370410480409517609515767067017462090310740901292995526009045698210431692700304599008278380384195302084729044000240443454788373797373484303656232703162390490929020637614634770405505597241931539865141102564230851238925680427685872997195676181818855028658998191564254781985046053867143748037623188925759142712289643230527345888200840232810144625146829429415541182000004241731518116519521866436426606988529460530633943022420300345485530698957322710968540883966022308690692942662974608600097032062912430368852159131483564514707612922201872129312668218156213834248919013840846110053316454610771363522349216398798269176563593693990541567428201300356153558230874308863272402028548534998564952479036425581324336945687877257003891161001037285508365703571722310672234020059791433482736531673078738800475840639016067646584952742006574172020617177406449577351517451337388367960116557340027276907068066316074879309640941002724546008418088770013124158580411301216228659156209390756609522048638577050207133755400513151756934228196924673089319324658692084284816815997958245004876285248605268920251541217629749539403315372748811792125455974954541162433590275696952703120483883754746790058449539015708763401204923962798594092171646249148324639192593884063365028081926807944647414204813811115649232836809842372012700282788184641750785751237002717280303455268421163727919055648824398249584371873519653434424080686525952779509745441814715615390823985775533846249603766637029907910670565099545804920191168777386442272719971005597961969852149620361867963585694733092946421890940193927456005063576648585777266186431671862320975669441188935719392314073188659383529895388426038405938393507888238088117184666485223375888989171097489084091282391699197864879791043146476368484174504215120849265243497650883853636612051127519599331197165312485240797392094284472040565845127446797678111972721540248768990237938439502679599205171074089366332974124166409334274493488275041185627769516885976301677459649235910981777618597000316627002338400576082823565689990608307128063351453386375291597741864729253281895246004283429956281941051502946888401051140510219060540984759841003985775618934028825997971507523082909344290840343921158527302101264722894656805091218634646559142688966394533782437477423122359372651735176478119210046894089364473047366015814129231666531387018045342093370241245672075833905385309532852003948369658513403842745001916960388710481982537675097355829614913658384604551231316167270640534889813224888786255736505366092626286528307652830811894446074147529188132894483575845972357628660425919301892759411842266694567886033445614747360443928778443628543474323649943599570919308776660334805967787008091094795914416601048959350686610089986259369802743451976462108231105201047805109785761570917933904576752785049118749683465642612935559102561303891115220325762745999508625355749134442815780302901018923767065903713589942987740543571728353782867681598582504721787673929834319130386142849229600717916808782253361303720620943641256310041175103633789777052342342199991222657425021553806472483997335966006815704150391504726316407609857971650088164507819251225710007254559116766477791225559390809513966269709474162071591480117639804319055785378479888286494694054977343991828063920496662681249241755486093709943855268080524877570074371257053852898027136341247739446543264799336269226494897195102463480595529515150515990469899301996807016095772003157942058596271275340230638601780423743006145296743745010320695160464919572130087849310185208056432517163427574545184968262347645592989214077598374129405767343860489496027078199525944686154973096009321915594939113370129722689181551499908405790951151278518371940036526931642402946413069677636436796818646383822629421153419653034690004821125966733838206440376086180510410709052835179369798524967644447066143981638584557642810322402993615094739784705216795890422885423517145566809553232193855356250077306335300190038613367855136415784415291328327889940520470689503070757783474413162961685775983908999046547925812161111431981573040706255480835674077895532216697411833616070028002205898895427621997925214572275496684316034472351767496155742024379305205677020638724519350582971591452163083917626229689926004442827117079632545701038590383632571606351229823913413793346510907958394204804147235952860755024223853121870715189802810710094411704683305805138334589597072568709371715778644616461213586951870489340511745133276368729747504556739321138322942768216805245346830810854182430003972943901889829173878246408813387150482208429024316520037732986741641641569411644071349254700133966122216559725353912982110214312922117251151133809352499805384074973569425617115074806026361318660146529352282405070161442369908123348154591557401610906622345721564178729742744104392001728051150629202675923624562731133689584502898998496881985035928077276823058745017565984371038000161977462356309192510599092949693587397819163374331063183511351280940463393723477134968002405567167211350540630927821908121818305320686006530429220051660251066652085748319677206607406174060665592148370682664021415319667019368386750525518442081734047339578941916929951467130760399608042282854374772107313680790257914490836838909530642955943339281459713482398592757059794606860637602742507843837752168440090865983325392958833103590319783437534204722896379268246785938823753143692960356375535465704574691256256040280448450910451904121918218052408761912569510616168071957321360108573238681262849381303471968557342928418766315172910719402727866702006019394366971295956707942613077427276667247647417206168864586031605405478579164831975255450086554617046883506725531409315780964583619675601284428985853470000849688721066696819581101775664231369411904288386919129934028808265405351397152825935103707374730403958979324170984608184994674919037448439273036885094554895139834863785666289696564642396021148715878735041544079723226494495617251132358179260017912665066039401733453589388892679552817900246805869475868416086536561178805485143009330223797896249911368407993143622699659911621140203019418911929059518589468435883665389227778188718810802930377284310402861801096991676847068257730915888931541498189295339863773118651763096410275293922811842936525460955868437247096659716371745514996640244523015470256558851191865765965472776765411755693648744605952523037594877034844084810150695818147170907960761157743801574837889584991206430894680901228452391514932618674872899691991058944780186068134932326434357802274524856288214821259024265480071270403082042788018729396469218829545298846278738579057772453328894845260242924906393061109766446996602070323439483240591398402215175813971775970035209911544987579942443756452203226874327261192021648753776499945716692344853013469628759569338744798342575082667336325115453324251682379744269589084853024551802527942623454079791858880793446711713479092748858744395108183578099322582628257379956357774964053096632308317552514970704330585669052591504047533452808893562475744405673651624486490686708692300232491740298817364630317319463075071191141927859763822565757511771257113374350077943985598045927841521959369294007294336487417711644067546090226436717189165359988141331926756195378207636180872512650755956160645087133125290332560815866165172052070439938204547050114086786202142385265992337366967790884864623100814326781143660144657914871850712515295588307419511233354207066715015589224333296875879679930894462351484740595911971631805907781880428403465489045768807161057789386649352574614283485184779714698773176753649764383875912867921077740429053966650077333266575000172689257230093094777506001171672823448013320436301363869639518334433686783512376539319474608191283805959219312226166177676922235250132379607786174964662222562651749242545873852252401800938085439271666642472817258990638878421429372578382441403415586334250760437296574237633509702251143430832802436426076809215690544097985511843246486334655059314595925240496071785692309127025011653396761741156992761487025402574783147754396157178095526540479255565533763215844001434229430941815261048631480026549116853899983617850845667776828219547280739162369406363860300197785092575145309631120996577211175680066592522748394031317592003036949177792631247325860254395560185881066147806989854803856179615658494054968914315940214997514664649397788732052752719796855688014440931589942601432160852865900543551905683232493815159083869262360070387459558423557757726556171217549646790647573990351550467273601753267316638156853910021875767358661923912770220261018670795207157275758211376614657241602836537303572040516845141681244114761148305143355493112280289001872018932851653176094459291914221767379911193331885265374595338634386132106902721704277424941766945685906683871552768109842845205207745306803380016057578801260196559413542908348868144152031909786138213631639000159624910442380260512223920011091482315763847388313085317214557126678704744834172883910692945727407659392136233219949898908810730141213718480664127245736126483393521440585340913034106185319538352626624064583507106716028722484060967025021132052594255008292365454078076382541311119405337169435005416975413703444944090725832865043178432291682594577292693440021335577875041776776502198946839455690315973561756715611400085241848028384160332610932928759741888273498670673346972397137651139257884994820721945218587000130587792297546186425268881402181638370584913510349923031725305562699190986443837442637610992875983165705544954602546684850463530746660064503531557114350307933907622103743668139340835159811970897334719954498331937329068604261024046277387254646176602581062514498293748967526893524501215346961121649029074286643134584940978578943497576459660160446208605230237112927670896975786195198586842016194542317047759224252564574786365411998953768312062329337312894991756159940224501606182183902005450414146745789684729661100312036179874114718492178116688568417420454427798121095666346253211762886632800095534672999378091125823335366143979042688892641651579993904491401024720348513801208930745674790345715310076610398083116378145250242034928796325195802127720852510945600281556091454495670125156857625820568736463995524395396719117098989575247517217919926436355508982707365469381469556464720662890947696541214089645290154545033363877819600123666681575926477350897125130926529064326513234551642458550656652170733060327745891369700637492188483306028301411956152099169384977921957469785055617914297833848974561641926232165737153568106638063428983038619282544442748755606122835337520180201569273695494544285427408399778054463889840210799452170254816699892343185018342080856816369021607456542611811842409769651578079857868638009874680852250046596752007599181512149441921996542597063284570665069566120847091089589809547208568255617989083358210190878497002577393660596475629506899349029322979862343422392116246760875656918700461957002590584420398615852922198071320979558784084781952989337879986838677968628654433310039738018292360776008273981426374367078017769427404256300885258007652730848054265165234224191894522661953738192778977995356726421051497430047485211637170669870099408606988136034864985459630147970700848028490060708560951153798363562085369546573634919027876783807768772571332634318380511941496283415929242361571436144454672088097419732084049466662897889804717541330635618320095187376947766455184502896052205271015170185999587746873281150932738859463846378014181383481667843779009472348985829268735421311590438546473123879922386406008552242448860547826513936049493974587686415866146106231117181976891786425760303900314143660298842101735028136518141900746728961623015397421970523570029588342766378966672056483705310151702613538478474064961371952895529208545657676371735038170986500956117119373640371341879146982942863828869398760731899244369760436610760147017147848332744529139901838753373575556699562695438007626123011670194339635743904772408930195168447510225588631312958558899124971652435280776695480965393056814062885424735988459773570580853879349595881985715698876758668055329340894323765604165441219693985357882140285412572832243080856141399624651492017669615239623100928804531715081878934112300804535685102070080142330842968043921080882116535559284358483298853573618014733507716565231591875750524411638101297741669718271839692154780422453984505231530140409031769938630376813954371545523586614691552167766680786678058805522991000535722911085238991985360840446440245790136284768672560038861731361976822405323662564179351083500587817740558518678775591343789846827440203281137535929830033401947451408243840101549133272828232940494198721986072429068804172329463326786851431539316402663018196198798468247453930267718160815657450892045834590979166806048694961093858956196419268341289253884167393862115621095590810720947704799845660323956048274155817339761306806103681659773964174716742445591892442266277742820936233343625532075011294627998165314365039923011673972232528896447156730359776733017171086292445800302837723776956687098807403198043838759860437706234253635356592920942679836179632499037789492508262916196377235594110434122860811427549262343902468505555167765205116522112855253771952223751835494752057904524758062892782679564617987025749294210344882069597528492151143042675512638896601971229638741769163018580571294789912334638320412735077638434370842480329410379809161267377955164541464844836710985840149319666857457134762495709823984557932825581114980816934700908817994942859762968791010584759371547686513654482597252616713847040904518199988009173703103707250179343464572519075116704928559695183819570218190337607397676124564712676583874362969222021026683982572109322376699766215639851931357299369275387506606933404845738980695469123169013212599806057596031494923861654461108588262401860116132403524877533693288988476532784225846497769471323506126643080100918448104826803533897538676759159720381999567100573539502905124073891984401964319938875167720624654553123724917027661535613006729466189020305708132405923507943333487478227187857491558170912910646980590326410799000070094009571595654582397769083674515248533812400643325601736645626823182918589401501109530912398287066654974883815700822530665946672669295113538999884735843791051650327418622414300310416756512381647080522257258422293570521356171966078592622275513427554809124072055928597410197218789108877976369248556072433203664686037922259921590710974842905631905680229623884498313459891851098333704397379044138069886756949201157984463334499688822200944809791683085548025572564927680399432099213170327225567355780078620434254331655350409164173761304125867854256369393690795658395237917847757941491007277969031675418964072806205678328059690512880703877372097371324485051256118514944165769785036174991283978892310373411712860800989710272976684517692154022412473359305493819912845045283569685093862515104409669756744838731842147729364817797825906556250398919603747313797422707170148261950481906840841420659292395720703543511486266565600941710972225180426690660631565775428766858703130863170275536143429593422558130060855723446882098020916108814687943512113406006601941137740076926797280737166595496980079877342181703254090776396368737091439335366146434982469317903127320072514817821695572397690549046403199158098022011644220211779612267360964557207132238209646173258502256668157797178138348617091791029571196606344424580091693739757648925908379549892638977350379271621827321167313462355546281439027595951754817679976610864180030173865227996617278754923615672440456561321067989884723409081981541701512659857872198480538752480528194925156041955283191001687763102256913184684604190941398025637032998991511166418640916396604811812500857275158999888815730219707729788723201586496912618309862053944834971139884152796717899791266853353790702089055764538318898187456950248874624133897131753366964981790272225180535119177227101006244579510776174116412484302156615601812767166368600677321972168823390127148114233060148429390572409501582814865673162859546184717154588798188945611858090141338154869494680802772347656996851544179703652597631002239798272317095957671110457765473642145946338813569182863090722216255581766622368043257221891737412216168654085786479060713202962001565424496745303946050651463621959215752373027075081505633667557210900872429646550739082083961281551325144712252174918589970393790298066577208084687352467637762397123212855938685556489311724739170045004457568649022750765043110732560558097018161299154956017487172974318200541407140231880807423588913773677749180331311988621933853899529699437941383343704289318400180126151241241839700372867678585132238490824796805964584350088909312407049509170042209818963338473006347329929791078682342286892134629353478743201067874263095182823899423091781359523852266326237414797175268497308234730678579366084900890449052976164064238539501245540367152286958205873311180443517775604125685301601093995558282300980976382414572741917637120011112795908267006328016398314162196110504877210168001901866145939022509131594669728257354027783741051565705053761804475264097937558709062406746687640719936453111733674249025927587480574018126108443409378686002008915382610329394648903738177600358588144209256768606793268612430269812846948105307571642692838991805686945843463618409772866280209400009302866986627936522328879836579149519832012733176117131116183018104527663563392769477165299812992077513532225058328798803870367428801924752009472015088560677092584140103753316307826903630491562285873647343237447390380138092652872333145005609521696303385461921052509865027130337261335966461445809960925750139392683025866001701685416909108686564060510473995618524798989498883474163092076406247741110454480242494312231196616331165182043800888292797704030885189649766474403626003367305151315180551953431474235011260218880500951956122663385344717704521780383994616876856991541562430388464635311661082812495905769247513357860244514471711784210688384598277222076137423690932173754224327474972023539946045030100563809277339575569135692452617626435182161644311835875593061857103627439493070411512742758266801527878611179428321967056038113508050390114375162027501617226670255483359176188787822019365392129215400070858185819394456353584839971388814543067372046049284749603334186674194422678514226182490733093480472199505221384418468385156261769948323325151873241040286576058008800082339278950059368264332035699537643545867403437046972186511065540884385357345314415058515166873538261629092090549886071742249395900542666381786047080200569100819788676765683835099385012300754379969358048731483066977868923844902364924839627798588533318960989087937764970642860955007710288944890047259717312988903176802004753704513950085915938486883250482444129285061766031530915192195772001925920091264878049942889482725662672943998390384000971809455663091339665754610872842572973170975729650762197577718553936079044925612690226416546302736622451424745499136894426610313196299036926524300347221436599355523647778870865944872922071083032461379445670586969893614226788182224349767077680458379859662822374123972121326584083084483942766788212493980787382301852264258489539868944300925256129212397979873087005738516184715994755640526619523155916593000262990462814890160805707006726745535597727112332213568515992436503396876458483990758978037592147178680972517371671357502854649273689050245445264451920441034447113307952509450070760877697444495308638362003650043053313271626124489174318113551288496679317691884121739060834163472025923029301523151890965113651579929410024420854093584424675054304584451347730819444762599472168146527618450663566317926875983646629618187872605414734444232638439963304709332162055387683555539478927700601314872305032308748128095398348369484850775488824206947517151679022383144040261863264782665700967188923732071302062424240673831126980647769449188863008649442545838860472636600023831856069194971869113968803540123389002274985960413614160180007210747135283891150772887062946110789609654619274546902087992666666775910721022559511063877282915895445480780099842952515599076583010943264747384162694241011181368851559039447704589097280888553615527290906983948432289461286136996764470784454747242230353044390305719816474433193987801604472095359083611234902352044349712018900552012647980249101606247327816926230181408654000902238335181737033937197572406936567544840415087671768568182335022198908514047754677807339845702826675250626787269034094942436055402053048829383885822591832213367519193017783257318016984846365124504916159608807840665437220070214751668025727484526074539793603533040553838031214222647855993570421891685097747996816846291818751244597790272593982174237942468800293074906191934188057224996274765089380559022036778505813563954936769103874547948721597097569898670367028860420129206002285689151618202330946915059119563829803466077774474348654834962094167771943438267162080284281453745164481853380623613243948548610516750710908058020237911296098873823148332158030245711128799402130102170011652390789538601709994937160141218130452703283961853755509054982955165213856541802131101087286275235509331986337872380459681569132898384665714946362876174000564376311442313101443767876037534328949141763479689490117035074490888977369129081881686849323261625312793689672245845493948693549805808182891565524045207246121965664346029469886269430897028170003382590017808686587588385302137815352521613417268737143556948122147631092344190848974234800054753880266549432750444952196304059400988780434366132308748262673731009164887031055210523725490136710657512387446442108485111311610100248351416618588846545202780903746455289483116927005090732549783228019415438527774436717500341112493200100083965341025908579574827040249495227206398894943685020517414070990707691017984934028615482423230448288881039595138008685620299251211292195118382866862496067697371898179824768104279928810632323174066177750141451547882500168758747524934309970319044274274731119251033627682611313031895231943281750479326181295678685749467162727082708198998236462406559219491458604722983824640602605374283261010788832489097225563490253756750614590588841561508142427545541872129359191785686857788632845754138306107850106435224478546956333842572957863896095923468880293267848377495893594034426370636689433501356359873033234306621338176104046044619620105059754310806304113579115071095435331403476128440933231816259793395095065242372214007711308164132968467176723233972741153040120540309573580254204592097910569162076184124477350521346560335648144370439584076805844681581315051585021626246264382460553719830115421743427529528245546454484095711869979385561191832024791967378900981038965936995470826001796270327305861278514634801609887060982551769451794732065740289211113033985581534164761801028628130977248179956866835095784301837329214292198288491163521300218812473030373186232355124572272093837637578381452620940533117130953183382871791467014098911322523485318503862559079211017999523089117732701389844113470537015191443543934116355171166498385076045635011745047421897060987874358651867883794105759047115096105505805692390430018835865760321638927312634432794596060447973404481792751876575788858298618544169876974637084923550003069599331237402243199406270876118572949394131008156888343036400908381177796776472627895852199647931265198664883339141164308691683334118689442264257341959791855617478205196148454745820411696348809871947395679512067388135738456458366501437971157553475560901445734619229873149793276048927785476337346089305891501924639439838837790720939336019948167309141052251810026303184150536917373806062268521711373358429523041217598360497109375283230456905565771323697392157778533173961676173171034328489900079127338034969768372315772181468795060596068824626163246993379555377522192099543242174902460428167486948547239445140651725346959206913993401379797697621412367775700252801960816482926423492726414616750651301248544401440164085882210659646771066369132714596401670417762630538063584808263445044707120578507146730688599728307660473762719672556117512737052819120886872920017564368827575566189935808242806263738219882711268469067190141127529933096156779326413027919725614002159385378978649916982710810076723628888532656239463233168442963480028573222053342071073205469339415614124628042981412289147470551766942996788378327352127471445035896170620356134197102205012717186623089463514442452334168625044143536098620192631226002632349806516194222383012138134374556424942053746841571667347584414232941793026267367741718370504495319220090942584547030108723483290056909460663963359644914230314950381369355814173536773731737004863523017011141005590619839118499579220237792100136457252216620424931059613341041350449921320598176831396532693475430188950124322252076178794392601277521598092922546834111003885541356031387698969632936399906578364371119239590910430457055633348561385974639910895386278380020196905330559125663750533923843048413045323533924493833909529832344571186911481459647030940355838656992966739319713163335125388889449613004758139480453311612216614514112322842830883350523823843945461186840723449249261446201574785062328651427555543824281314796494346178295278094105935958049604113894885790402509681466071692665139533357756094251691082457672420129289216847361879144972972532724883308890764635663365314459113340183588017729835683507406011887457374879749154684780368960204761493581539153114639894054271910714928645328574846929210847776011136392978655014488384865808047072136208665127611171730287001684100682949125516561363290463653533199434718158440347011927184372882756084770714812940914021774340067954614675924020257125475046813104748983753051425086375782416787629038043602446411090018459488684995885323869872085810761323014629393175536596048760048106303102464992865702901309916848147238562711050276607641162151674217072094196401776316606136204399886549681297982959784866673174216044420778479254203986077361421775025280847410267878243880837872208086168832603014458689836245173186637138842950384095082339863893355079028260644303788419631127001642940540125487501345823765744511091084177595434144323508426012380468811481597202291623975548544160884984005033002143088822371846533202344540075571458995769563883880505089598856571848909960923141479694986711954145625368563759012934386571495539229010380756687557430300001546500710679936919282195465628771639434800592910916938343028578999179394575773235181665892875777000528786655382185796334453928919096785109832455800454671783672429089861995151534835636235778418173313555825992266541026798533811910875710557686623078493371611075904463389504208099001596214712949117828833436159233644704936936329064915282954392467580660515691845724364197582291112235337603009241117862970666528506931425373284722211057605840833294948934745280776644680381784731261896607296940643246875158824678666899168680274732828195589432268373560837718983500529676130330037763827668849617166536899424676983136200617985817006640554664771333826532441149825314520438757468630117764642542524925276942631849820085757535435596809313387908053101624538478880888501326282800018028351436396410328085148716870315574832648448149536488421524864620681858156664143406477445299045809886861608629711338872927697073545532520589433563129150401856584923376670532457431216675832698435765556364257846066556919717084538255923079393531009245424229060108771993019310326779365233388717286940669985429950513926256315843322996000762466514395445137645091661916465663429152377916413576829972164966362318422115958108099503643823531633362460438907113803046777534963977975419775166877601897071330711412133945059861854267457694775433213289630109197943970071809655120147091970776747544989913082250645241803262778065625561331414232216098082164769233066381061045966051375526078219140626312950056630064556660491896766592479978706891818181625514661926801483153496636567533486655286378564595093747419381838755089107100396220572656651276324100527972316179800637546542664855193394899044305731744410105213631557667217966934358998165486289053287576447685194364450934126719126091291659865690845616790564263192707960522039803663674051899362223371304571060729657755617105130862474510188624304087476268643076203697227329838435096460175208862384097085414489403893785787779900412980284200672717857275673125746648371358481225952961871536174021292838545915874281911915071216161901254518579343730548247479598727108335730635300815517904184712052836612157325761300038888936644813868482053113728799512881793646175123593671981489577325525817529460305071737552550869536490731739759552575930628129581654216734372125818498038942315524626757626039374193257922367535002758024982967698967356395447800639966568000846665090543895201975511994527335939229774739742765602160565962389570386454908134965411490385269682444577156885682694528957667159846999773755374183442096032172059877516954230355857167693446733128279551696096569005098407387878174371362627131494343600150900674393256251216524688549845466495528360776058207379712853271556995188963109009215708673041443385611498485735718395405052346211084771886082077227700027500348312405561416132032376693533942343817579881355797389852522025006445290538187656681311208617923822271555120421553710271269751106262228742146211008707956710415713563063858421819638559348534708764599238666827728526524092767803652571555314282516589425575049362002450989417207312779223931704311009111120859351242295874020854535497936963122456736455846775494122819976067022150024313603798963511299152887923239715597794183148235081139465505479819161786883737419147133835940424159039144286146771780628156186478803872661004207335138625035495410220279951630024773134260819680276391134899998260019702966296649023128942219909156122276589513155491921326940685428653642709175875665623860216749104256603306468916679434609902387048609121640188692576369461850328444351912706504788521162734732950667390259215359413047775433126206874585042723045101709328408395962343659164185376819077908811520690851740429494341282902811005480050977591349900007720477842534596814083670500851805445444786702957888614016205014328772585530735640904828902881260646490709065408517741168365876054096773261633298738301447523167774713588890216722118213676529049561003105510662208265816426540904127852786470938319361391643890367505743528307497200752276099269485916037160765629537788134758192827108576005240437298259509558715079386215172653728688962915965761461418829404815090484795146861404683385253510738160724201680119041287648886462168056981184204425100697010284668945169913419640004096583247035605541250622598347358747868636566263856184317322644175278011960490749816727243883820230540984850777461783806777569330247630614926259429205158929765247037956504198329520237454214830049384437925934981902828614618114324948337375685330845705420491417891757243399161166652683563260888035929939953624976643003549748682490321335618965560109334581628805745728880511339880328514957261074443354726834251053723629375223737706216428448246855555769843362498802887963291114019242171050591930190161119778965727065412276999718247798463563740331237206241415779552318107410487294233317008794698799878760680370398695484128393088427112712962442704947070336093090967270064197949352799984193540605496817041534690369727643066512936433760648269732916458745836480541380950119269450858497206092104142532572103097910960714988282047310820549595716046867010384528230185542835532597587753719407572502168347879303931328984221470897029771098952006233359887935058865349648644745855843885071546783077536958378880006328226236082605224960692155895905284702748792326427656734142598906590828815794934970160749107778376944334983131233600198902061878395062621537338318910355386269074451344239893602320136481654274266593588656224756813578031919912178542957190809294240464883983879679752968376188452775413447323244846346244194135024933285517255481037024124493802204225041309331225647404049688528656571987939062702029713158347549639781321173009986293285313877362623798188649862124555149999844992921759384657403632503101833682528345584387887921910748801665177889082691475041363906505857906011717316748499183684623697921151648443855905948599906005045757247494289839629776306697094642423326488216882257146338971101860127617879898555198938557922731846926302952554377741468340356985249659087093912809549797461934820293760393322797781672640105848559718015077152594879736514167575382316206517026079744723577210224641264493986677424155239818802707138405308903792386908752585573533291455115685319598252900210926447043601118321606837709125426959988740505066875864156379728579348136025583502506599106415978666551011028922611374874760127068200324640261937224767791035405802977780981815399893367612741519877111467761378085322949811722669084459744456440613305046245994817362850947334836948332961997832751127100587665358891812855801610043385143961338874353678173816074012739881219291107648248036100775529738076603481945306715378040416726259962451590916910406902883974585913452731727748894187692501234098029713089303129709057495015614313122169100870535978245772545992039823166030219336063949212417789615918676462010418127849444614357706609591551689012841187205596488406883637157018668663831593807223652805758498204007276693590204909937515593026527549708379065498488950912044719619783989370442216394185923923868881112397252353289947586635955562553228528444210142170481264801121741438758986727360118028724743802829893516380008217509728581397810213199024775728981910293719669042902536398426169174347966707586835077762196757169635780514827278392551649956512957325092178974593379221621382178560609412222356774591021608361136491651983272661980666258130200938039193309498378076935933647799191859886163215733210772181961010349336639944237648518239414345535011440287265731965324948933017411664284826488062675105145670289020787412080457607099282040582636071735582213059676536332847349853733827527447644821091535691095894304663369759162087228225109231798898192199969025820622547887425982941246776732031329651663689740319390169359259047636111996331599998349586916125056696266624367324333904914296147391125853799005142500080732223277586763926551310478704382683240319293292670177331290711820113088933140983799159140785862500948132653005172840259372612289380155223389542756578541602114717677629708840605601099798840617198290052954466953603415581977845230761514576589840445776644621904559844229674143017940465110649663379113999830228338494590172725244930758352925345649832198365541208928578731625576390571493136832705033240042061401295925493151422930210223580914108898781406479647128123553892291068055608682228241486912578278651759577865971793652139909461928912602789449813052500440197843520296462217238824954966418167957933520903761687636783963317211513462044875320405381595907077895208295274075107297713567167673270459242561685006003723845614291315173144914272887182795268602132815000234977671502333430517171467636561624006937918016223000767194719184285582258339855829064180377651324860506889427869525999670976829521547262352230189062053770483143066210201340551315435036392379001283764419407488820139787250548589685187064897130166544764514124244061877261955583819222917943855182193563587967167344371118872398768634812590397265376443008052317200329704691714913291832278464061238718740881665394097915138114940604780509233605835992136589346847293761091767672307003079700183642957932451345173306472368806064437046544143188470542126372290798429474313792702277902708704333920459157656362022836139007250838563284145346457625434856698872411985405980421433572934293350191637613468422105302848260487082923124143936821448102190803030690379022272462854534225955804257109601253773119164629741684865908715982018992148971658060955264209706200474605116457863243193285658589225657743879495641773559820826339093371957970063954290169455673600275202637947186253622990743525977967524574645985841692388487898607792569772087122392354787683078422791184688434941819328949423181531548703169723123091946935277348171352622728463575032139500377582100734975712783565684250882246336682025381165286265579064141514445720082203213553306371865914311635599162343233596895351550849837251716727516001112592743145085521733829014398022065622134750215906417682559710296066398138628240462117669671745828718218445334748712988340690439643298726982119841732869390901075745703572204986139652064020602843029039300623585036776774194137477246720189658601628566542685133939456937849080216406900862234968193388735450751630386002120064727349876041210608992886575220587914986701641359356267157834486960607951590202411111227904170338793707913524023756908359427961003936002306042566873082553022961427439354820330519482561286221588788601399756470709849460351723887647811343500015286705785626093141328016947787727039220715459864008118567486949392119283087946917466162264157095010610217660116703579882342188597249351796878230210192050545985776569239223130625922850191484322235151218770559336868525772975333708881117118575066403133978842480923098669876025451887297323344819765635678524402253592800673225275676427230453086209046100717570118944263421929159628783910521869122253465023638071728851979233159880731673142285813595682344547459564323863669253048085555851255904492870599839231836738773054282788930709258807438914089419968619424530708694171921508155396347326729911620835532143542186847176541090699947141724787094216561880916194344279014483174765454279804090627881276584960685259529204466526171931187515105356524970949438361337521326426979018699395317142539727343679571232265712949422205857371778544934655302317846033430527546067500333202482727243653123529451431785549168129050941799994683955089174882003843044408989501167158575146138175875966420700699765664340672348357249865171373576129576018513142778551978696653953327586453109349018966544327539362096460718999991845019174246442721737677811327916612248046116873135960905818070825935886632547224428988995631782674465788714551748183425419844684523069021470038287580863281608268247588765354913988755452346344034852284528366081955967874916471670020330257723618510830100308271928002973372792358814023065531067183123240301916255136914970568431512920597458464397998314773053232794043429230564544905117582468906202901210046276304610523574906617505874066099945264638436701354426546064420442611352587129464641843842909010196593922784485408245784760472965378733298394572713131150011601696760022147720549048498181400098849850886919470138236665725768100292937827969015917380137135575717160214283468973670171220629784387853795204874297967718747570657679166131423214245867880787797772961810619621456166255549664957549856311630511452286183051368631035726678149716662598270673148039149737314785979176359513062988178474009080978186594835275386758625393530147142884213047500663520050917953827841487166050140913164093068846401814299649398003313843874927380204582361888732315694204206742969634448643216686555535290616815513203575895058663610499077543317677117601416748305815550025422828192397641761435979515327178401079673960327368401794319339146745830482827054850042449334278668392474404657522359384897186538876848800090919072610483622167458215524532095987158385359533092327565025637790507521489766193544282128209514886951796021437546213811179517074091993835474709848815474307693931474248105418771874345119990432343597625466367975998886219329550146453345877477957270248644034276759720904169262546103199876712002340005296393216032974820083011311418229742165237401967859664682022255290699150151530174907698765779567689614646400957654618828520109144099402315143714100270751559422959529893963926648926408374332416015161427069714995274019677069684589320010296845893607288028618836278755884524492364909558069196597202325014554510731393109890038212541334606519317361233408299902814692110807918045309842699328704673645742564752995268659046832428663139594749186148424298690100563999818391166902218526980896609958017784335339436307999983745313143938245456477646932273776902496511695433896746635931955655798512343527057763774769959367752464885632237213886976367620139011959032597675202498801096999141217166980921425995173468061311621494043271255721401037937275742263712290055894829114052976649483488864011013623593195276948314519516905740972367957302340533748196597355308213808704723491921953449904840427357002355377313716971652378781687048044721395557385294708289050543352118588721777283156084919182109166251371042031640675724644499631938477202482091006084958728438562483238630023431841054410364361592178403660911190454068788893284593541475959668373786169163363136943304622436769402777007810003429348204893470897332583517040603156254790102575638024980244952389012897794066138761996872496268542774725432985141689151983417884199365236625809578091760094191598058633359624929604128562925128076094430444480719766881165285293278114464186637556054155952513141779014927862043767662913022342344651827307186538808119470630318769675082251855311160305005727831907686761964429600840999520690473934156807586647676504883846930119053887798782425482466509148748029666706257959952498415240391258435879876336116658408595602515118319978549548840296178446115891368584744786877543160578936816739687750543905674971105333515668691709500470575628735763472752499448842168765974607168403151341462400888191889317281574075478598690798521333621644687072992766676965092749092036660833003367566200898186428330508331530481628424513779107167972507662157084351962829833199229093795904507700905965338375481845413269375806626555099196949163524846392552432162879633660050087128230112483972291739957217817452634283914467306948230678203248694854406159281201958157955611952376407993796244777634264842507013450983405428506507542460385823201608607477555167796542893417800751674382816077108008503599869443951284939005429849677369634903713353731036145318945899790882292997249612354297553888121764354707089304045724427490833471469701499540157126676661829723496378750103697040666086223675625308576858465513834293757656854690459736195092650589732158964706078533442978626222306938182082044589070703206440070577013058820723432949670904761924203896443485391549406984923863347945815847377328044801659241738451811704866548561535109158373587286208992343191713460133644517350704044048915834231999677863514171323571083135567405382993805117708908146017365050193323128443310867739527802659115508099575157487467651118354728876962274140624093318326460822638498010009237383337459492513627953952480604453682583155339848004494406111025940799245865315590520419386237038378296605950602248089113228289112247101241975630813814617361935083744462088270496210751499831079329955937388193418827593782766123812014904958320400008807106027211604328685820053440917900054056636045693522259313375648914911018738525599407099361005013509426976822185404015095767722450224578623347394831013555184172678612492623238367456944204293807283761169004036513423721839764990479445305047548707135440503788104026344907318110084070109757867165694819027493883777660492278715333278015085817650963537149820239297781449131559262424719057187746746903405426488942980400963384905464644256294776019260759721551704135198626569880221903563637161350196449184846024793446968313718715637437711981823990767850958268429795631421320884607433086155273830955088152364829297297650698229611914697629666005157910081098494563523505873908654840611396799509904544065092645602475436223868526655165741421346995150269841559562317792405490172857122093815521895245239191315378880815963352571436901248647616559047822967755238328795944146257495320821475903917816991751383424913936930289295331201928937031842389778587799690193030965871122432315559267028396584631103443409167521925255457636322583062151087609309606391496714194066768194078132879958058903732272753963968949340769275073057270741894010206769875452427799538886926178685471389332537951232186422148208031607961109346198941716219384346923925602145645589822305878728653993197291143755614013696543953770686192297138831859282193205119459088725681050730168483989309508569131106867043959159490935819302447263096314845865963512962681185749267035402042472125033860648083645208263558794929450264018494123791746893125510340531908737814300175649371196522351795734671888966495650475333747315953679025617302764908821369028946983038661871496809338115363978361604459070064919918908985342056238743670263913640327257429702506066816131978963484996479993863081747024678897489642229554046715009528275057942053849166499984017646209216786185729141783623239433915749353550334463060978201760516780547829625854139446787794688442733501482157443346565190203662998994120625080165713222272729892212550013086788492077406972187557053533229188478828288316697785677651940025656579367142132352677898586301170301414702975235478657106695180178238950292484985124373877285096395183705516284503475568989565442811240356074151196721391626537216358917521908194779818986840634035016324848183635987467808600031717168713904568740585965161777416084968870440457257180424537901447536517178958622634600608777946827407950701159574137816383884494414342608169047576710683891531143220191358396515608337291376070284686489905917809498584890545368830545533853044094652211381876338134093820100365075345726659402814388995604133640304706798074139604921216103027580013150266596150915043129899352991109296392030422452258005652201441574838154779998458190687524829839862242432641839046682559821344419518369527913949734619504460246647940436609396767572919331825693571836377902200956751383691660262020007300247742802257938516204557873341350906984999061465501548178869618793701849455423919457219832238729628037838694879917923932000901114498315149183137769151433336856367885283840713670334981993943803805837756203783468385697896292439844506537825815334394986112282952541769026274894815652041193602960147939858946057077909403905479056797217353446121316785952837270048901963664366789930867797081773164753723153964520837093261401656064398034797281926159598837176765118633734917941163332640290003716763341193522888983035980893571146247066727848134394966107346878297498630074391741128599915679566721241525719641715679505845121947383100067084708477718993216166347388256740380753308430664587098213260961570215672512741249557183367801634298040940497268389794623020426226553456992252698306208799906977185445875105818780320965935103157945934214721192316253822543764774802749191302349156998646614908057601161249121260451028121879130015108386742276942419089702188250354753101285777661182859994408873485700445312705987519326430060227347255589122571539490821771346694348691541802064355200954840659806143935085530875110089342954430697651579598555533834713623874113413091132541447770404192725110126548876870336268071453209775591832417759381516503327032868694208373865693612257457298487324219395599706083743103543507401484682992007920168122601946918702908001320594461907805824398384031247267723250606907179080507150396706921639866509155810007858353671004702643534907692576239908442387220073779946306057505273413955743186733879428263338475498264726368088981112958573965633034076928041839424627598913147009725412504547669712289186043550759253769225573142450120097871512426520810393558302546676495338627589701495354434205005345250228277627667077716539381731892515079314592114325067095812191752609458659612429596424140404850243835595288211721734846541393554605841240580599939647047569449081715798443777449256805225952608633007350057045984227648646824634189884090211640017854108734478123710778719176911573478405917810819065595032404459135947775394537850941089149253223885782495956331109423593271154416537233530131731219977744063834486296167900046053840110870625717118669632371647358513524784108951822699544814883376985467774353657319084064520973500551440810840601093134868884899989188599382305211868739847729409651312092216127102640252452488786150676593579157736447496356657527409956566326439485488395583533717489351825852473666011120672772709015332285589073859051111595258800058115081912601105233545892120000513355600856806024062887766577210282606315948109153174630989931937139218670785587237117058056267342011444962784239583953374376639513556104338334846537217690142790457413673478293406671360141147807801767488246006481988665237932822178577465205293064905636924102488722177132768104131591332318325186770334294287405923308529859000226111059756671293112924691220737853282148185113437319360336847350809288915778376151633926973713007169197805298892409846070474494809100302842974498672481127065824848185842809523403730762639152045677527438047366074615903103652209074587752701271221149804870214253520983688564250986034044540579722748097282324618058270199475267877153692449771848553669744121515133291421511966821029366919330577044664226196013159320106158449958463183849126418289741201734065834294717168167881184698979339420103208936361076551833654281232319809145913951108548444090617083811930836729926242816171429953445679360465666440513762740646371890417676447122778155321408552344828559189340865087587882541766636650835500355338130533242690369899821520839644326773032238142511082020927359413531335851133522562339350610603127409283574345543790597587152503438209700266056938983944004574778104610725613499662494718993632992407871191384050376454535963779697592883233621395706894474604205353033904224302660153786298035930277514375590176392416525205573835409058705724091332662731943876873667366315723916766291638814406432256429392784248195824332366531942096366841638043441448763320768078372840178313314347614976334811520954119656574908276478880012650516415774335705855110513849129495504276230916836443905980476815467183535048447296371205245052608228407411247738677466680422723620043917317231481839214303003187579156006467462781254125128995524101105388336526510658875839446434602424467689580469702020679626318341118678232180151727567221000445256042864484834989377183426865446843925712037774111428746745302244861670413516963462227514871895388025639529508162031840081988033633240064864871782644683020782989863799679283947488688757388110639135504083860076621657182884472615332130413670864258283023537771339379418921527086640168778668289749539342642754845935716168180159751136905508084368066106286950486568187715253373835306887700013030383773866248872279550426931243560753201846351791652972110657912065441259280743781618662670335331501080418392676479208540998940829715668374940398953931763556791035307383173886619831149576597574459598363097735895683580924052699905990530193604267377716637390830671647097070017266319188332991074223561198231593235524412622590033121553965448471826899065479165648672227908207199824848325383940477805759365470285142685861632810749927493688543886728121380301812197719196457315424104628117778279907957381041263872633309500841835166159544161544824897969809790451522555103309820638719925839824594436506827482940721574492086307215022828409713633620625099197074214974144945392643451158594559066845244616991853973964257423235541553391106504660996520377956537203938402623731679144843508312193024554951745364558713429977884659513760193913149792471450929717459459902152261516335301270276789464217817462707993497172122873923481750655099795292305519073327553159093988026381162037871132104020402200248905935024230434549786850681907263618117289230815416440011151034560184434549649251980178855260113628858994931852491538675789563369564420490359644393863816435095359589835570531471473759668297866176342864612214133588945182019516999769723582622842513113301033246598487432577621338421752968690763116529144912896194125540991695207770563349476054401885347861876615655703896347824721027957055833392283630807238021996813000190296991094801194586582898285536750098675851961437255818267040183717381252261537363510624011211483866468982752018011204318256986462532661207457119314407037367339458788859408972483201412008558028005903822746050313198090683772850888561433748160455771279622266340839922011922331857380902970167880342009602227050100174402798024404288276041259019954754603235511407771472451941551113362840710677558949423520317545338509619453361529722667116381128716317698217634607992949737794822507893951319446983399048157645534559816855626439875577982204415593854486366574576388227651861857047747540925389822021086645621143403794679748021999944453988927119012639891616910734519833070719002888201763298735551137562569091552761245255489971661627999892930702076756347219798219941906787460058104266052015182307667156168310690941467531519972651504912552759193084964167175107145682028904301715794073867765032112671255729233221946149347037099708912451202462108832342092034320875146093862826314474589556963949695459176814785592819266088337132786654077023089099316590668357071479322500457992099597510403172784563046331561750992727984631712850198457319678623263214172453936746897624955266616860870487695646418570589383037138620677767203277684672726815527670646316611829198225251415249423697002166325094862321487632325905679169639133961733217919626474957742538478323797983734589142612633062599317743438673666629670186865527554919264094990491466762702357593600305487695644215755874925962138207254020504251073689168763355281459193959125841011522262851466126950541944412812612967658008767828560583877775182855033490942880714877555794927896869385785641337418251660360996037387209656668894059527133896599731611342701424473058285775517764382145494845196332492794765325187888895598818998837226707254010627742594619790725268399464448167618188155792821656540103050669150154546687578322843726929317363702929015403289124930789107858303329834761018780195422745951352649055553424813768791800558092650041558286623402744857136205025363697486851087425743073004411162047637921506890883069466409581222954859663013263502119337454914758399384857434127169764947296178266119555500996788862160010648004272862621672109172450687222035597526213936121883897927985755966232640657404024674187051971945560859013983848857201552476417483258553119422468395327412617131731929924354906208122171103499724230283704898658867583088591539374652976398293413451094250499203420598004319587843545212154994146115932210647062464107318524636010645063832876550668091127221128432432665534262270624507586444584234914138703411885962469423630921056535030956231461524498690889101365889752794976116837871713377492497209308868123067998836778300216419823816000411344816164727101833206390960557195822989938477238392295844663429276891794008424488042779675499309126217676926089330592342835247900877685992430221772853161001218060608284167898275292680431153671432273113012570317455659868168724368212227525841463101439464536027190935986915649127576017451319134967176447302077565280300542596855888558783039114044273426072504799175274971708257516967149971486754702495926940923890757491582228317424186714750670289153712951000653548386374244153697090887289372902536812175444625560263564701133096850765330850170599885122077174411972022981725562791657487075159021483482589066821715299689269003303957523086273209216953335004638411080391168379788364571462486773698856908754089505629923819423986111163199487265613378915970013891183536532916882101684662130961157818670479843914480030205450685054686812289645522218310883853866223897223634896457834826634015093513681863137600917274199529031979247587188611055826578668828157987822404489692118739461504990752397617663323593479050171411481510908805281654842410434605773195393391944362920998335943361726927238255131794002177122773809432594462234241536233577593974240504792945744272122881172004966426919661975402401022892753739890311793625654871711718872298920785388170440761620271786955987798993943554598811635371582442662429963883765575869882246081461952052279265609865713850970617245919907008972049838968417320215856917421065248980402317464508786796083210937126991702843793602066640362432026199384681340668975653406032184918315330378044874065708986014095815472804347519666792022494481486996724607908150213608205337615398786955668168351838931919818447083899750726490590141390593329256108719741479710835889947360534051995168900148508077624948376107915806568092663509295385580374401702447801071708528968238041284894542309400260871475278250149201601700827769629058620358660244006991079403538946645756813319271280475362320011719307024597506725678523553566792892818716530085178159290534670605930837555642673714515088813727355857586279682961161628061507422404644066447860258042395173152310402526433410642653966412636372503110584113802004740224474374138519125009442997192695364824808855694292107420320990068431055629551796134191280037303727291607842113006966477624816564285399816668442565355455496502800691316328954732124512193504327668209369499791322509475618586905863560438919124784465949153983238335071902360108395956979461675358968489860669852977393139053398827022295565453513093798310515832864780304272944010527036185473212935383433655788689412709326530897750300622857739109244270022679279928745735912834676216113299054173909518170841512180129579640275187217198562754751238429247264223887116937302889207801740135491381567737093462396982247324522017335417833733482835657057706313759786098195888557853846662359479729682055634652844878973081082439245533858034548987930813113746666271603946731626109077445125591259287475957257419333716514307458216555458148499631282249626914989206055645650124428728181124605986130977845161073173097145776450791939255180707307775794449377313455790593294907548101208252503794139143640346407765968633086030081801685683881465273441983926449588575020359802164006145334353582822893217796970555619344536584273821217481815002332744896124209873305775358143508928753189339700813557826475798715013284479485992834947288305510481561349617936741065235252996543050251868797102213141379388890977254002508381983982747563016700434868958986153205928232902422151499188551767371951074293575059912597473641198932436071968869587107790133697729314579404297198500329395600508064494315978453833526018861995743247448217927890005758787168171530150673340826412739025806650707385569605008917766671269513269831015211078283524072729397206478522044729624502327718740846886530505765304528665098992058859108263690291661943567598570452743063677452192077872832911823798238015741222268287707586963500708483134869397216645374999509735002909233748484033821110735968119376521621736430937250023884769727279023466799613484889452241616281954699276035455723475269441373254819373982052287059658594502267332778228737502733663369427264214058793808399953102739984628595933974772634801944259391170588632497740685301561494517279264351565022161618071089978685639916067433456130458181932394216758485511948100062205149487737557826410006208682627101802371132055490761071998186386495274779255384577257581033001972168088504438300084140388964255299832870923756222406223512872801341072723513760884965550054397841063405856840210188453181501454025578303659503141440005519581922295195933677737852406981662202636541205212035680627068889799545329899889636076633498302183907490345623688895526389750689515336043134985383524753450862013163245015063450216022305669622867519490352896497710665077228974170478577205485443007886555836025896105994268640472764517085922237284100470805236133473093886314127463905387030693945206549822585577777338802301959973352142902653155457576620222637057979194835627969020753758232650281121463534070354592530238155339803475970526898694436431587113212159339477540714471832592656174827085160392716699820984586145402148034345010200882688909847584829568611502240361688522328935016716186090087209225300964096394026828572750719791598092367716019962444513674682978330243383395144955789826230063232262120732193015573197944719603832687027518383190661560363397889734251094649837682558488426617765657594269373986397812877181276544621247198621766541274804426470066368237907731590718618505120545882516896371873342311749697670605124208426736061537689190751874780894989755531756184685070368330139818195141704379164816090907431734803609883798517423197174394152772865249112647393096908068578138548966566162470974357814215982893427098734707225513877229805954048101009097806226133327468197057615622642937065878616008525534522142530441970564492209166212270040598026271946192333406162280309346691132728480316563021869016328356837922082063227262450533312189196063049405522649067021326920258818497777554587279403869734306005759856425093555860469260887899517616187264400697743609208012441831479615438356386347909295084879657874551411046983834586092006525735914012192166460633043903746809850101772453535790792465551135114081875343798364395359617498159352376486940100336249235125856689111717101315119267815983709587562641395077387929959042414707244371675459034527371326032105122142257065720964781045247939968547163320866734684019637735301095529143863428729422185474789075360800121298225144890191305659771045408916254890694543375253333977400298627799094236533183819386411417410693598997431099862863722046620797520000507924256249833280066587051758989196838712080875161107257347239685204900001648311534868143491680134130584393801942623169202588210088772146269709551258141189002697796215154688220135602170936263987753564819976527459278479605683578186532362704062057795182975918112973225871212368001578170388840105475085733424021788049961832658588143979680688934191709355677014365748214324537305187988784105570254977975704759196024843808233606311801478193332501067906103279047514359786936092407105770683685999456816522115509778091925576300204355512513940077323625939976480259986790474585178046945801713085654686454667655079650479319043232935307271199985919643047260791458054060750849601969576656251972836248346012535135531232263691448496814543907415362926470502866670742846994386870580955550396067543566971157828758450299659691441019110887618454915587082530044699276894708889127663928240713438863883599893917610806991517604136493376603048601432949751011980300078591424873968766770479705252650063262600894864291157401661811522323741276846282471148402934033465069044013953699261799614873496341434152534857428718423454661675027519535376837975339367539270837164434183436378924922248577166639813382477226373676044819543229124165717554479438530895531844120780053360959773568397233072045640808342242528449441014043297847547947576098554860967677014815733554669862938446183714766302136537970876614471093266167742791656354716405455511543317170108037597350091488958197305666532332659284522305725240397085697507983746694157922202978559661592976185889165435278497123134695906413492803529077668024707221003097482036430870724527519253612412932017250374248346110650392527207439444529783002394907181244048919093284025986763881349744046778398892668936437410122445896944008211985805261335798536426382962498580116155102025586300222192982472020349713967604860781389935540417668253378308845353847382902527431332116795715412794955218764807882002238796208848218860340345133409601073063621543571199390443570363863313151595089050731100991919053465439280491578289239589187343819307960527406578151313175594546571793381510857480018520135625450081552654029822325226015631084997245989350074572777212536644913243751892877733171171158597787341767870476078143537664787749071454893028634752875045800230293934623423681129359646594612310999875027283709627432406322308445720077654689704878357661296143655100772933413000751250998651412841746081724495966801270544877906740618801200416798678659986059329488331494947969402164007818238735865691212177664158807451612597531804798598353382632950105195107266912474018461968404239213947166962540306406667256986587236788545862593798365440922765986095303090340540760895780762928862661862594700819525136822653623834344136895469698076257140200948809838217128431797267207852900367849355570106228441227681872171439533774345305839799011642181369597347938454287395879645176540074845153261471256848171454697100290707405192343961488253929074206223846547192460553108055548042823706979004502705581537870759347287485281048495010630429511017692465492694965396310949269194310141100926969493242037674965482731023876728475698977165677298867233864042833960136355533137054804607946496224377511007293712161241480827538574638884653747778903743252764121208262499886131779311788118391492928274998826772113843396728750479633489071373766236429434477062866244465172702939212492493715242484936691081780214688922890045100751074933410110769559491699592818987420894671824376396438830954517042253573425675907165091470724716438345412336195964603934772337493164499486652524503449180953261538720222564025573445534333604460930318338657566350843638362530247775958055320389154382201346095916113988257418054495718388437177890065451286115207383045948889084639569484460813938301242444755168332712197609482933154492322717771487449981363399487139216206347915019952791946363888201417454167746650742230453287782079010996788460557752542975350403125926906174583771832189560317065381134452799611091271129978031358585533115355659674705490752996977687395290512073486659544561510175378113460917933576359575761468113550862085671911020729623763429488562306964561956802373705403341416277362279635509834250380639375265951193859353033232435146337862169095417283628584828908412370735243105318680395133743647945133107482500967072369387479348358343161161563135095194656146019146216585231461729833901134332168109711124249571233894988434769082910640589070220480151378036701261474460892301358454067006800919524210692136900712113225442356146283879219157150797669824836582890307243245156897704937032544654475082202087057467485140016272982274397727731555142267290202284091424093885947062531202685995452375761699859339474485699048941334149939098861263722366645927120900222271450151832841613920510027744995995738515414951202896321425708664764138904427300206624857500954526472340958631597791451857724818884036163716491283439764253156071452109970801209820830599366407096661415682179957677888792336705749050402162824448582593197639132776514077678876768620609481876137475765954710101389456633566423882224947449415128919075047009106283228952679596595530339516280227863138476730662949862951376183747257346823262269992249301513059750142205392070081849530305506515781358971743239329172198464691936676067822109620736905877983884297727825016503751011826820725300133917211035659159320038338613666405212196292610836611357609257119759785096535210100234504860329283061383885998887984440394759507324041745420991279260791562966152187707829583862893643800873071425715021070399210169072383108794113237830444938973770913028886758320941053327154055948656279244587839086444359453931474248642002021336006520899358206659479064472829245287116406888092829034726264694084944218420273280826670228558054440954532448786303519137127048227064726160336405679392633001001504057931785510904399864687182683305309518020416281078401689588031788750796029765614091045854322323685028170489302710700125439420815408825974273633936896544378072953714069511600167062410758657640332793338560630512830581543842036108852549143939247006747313924247563081788033569798868776797891917277477997741867786347998529479388482835627785763070722231580378614017116929824523912368258728642291745869463858686595834308745272442350556417574506402047063484697051003291244670422125789110473782140470704675118242134930499067101929629399057037548057574910950127344733462607568131175870284193690080248061726012102262947745602232004738893246826325664598446033002840782301829511589495266855299527935085662185435542952984886268059763654959112071258642083880265522058757217100261361113318142447129491035675433437332905385588237627509339015844024871692582786422744286984728329361920489560112067264359484039645124822386538272000775372856936506973950171970903390422721995692736135289602933293307247805037620309152097798214391419854535163492984896062850738052782737191529913565586764835635252669076441640727868983321547895764172201653155333374975008087025039719323566657864593212188659013077369108240311972700936232825214790662784226285811631419662834101014627476483876836678917484814591392423666844349272264246766641106947211543903699755393485272053659139110937141006868017545974754782049299483206840680615391879498018046858342352151489557107190254785096187583504621667084514413518561452529867803924129716572833404676391491643291078579513016313644862039623380761513394109039857293455279504602000877404956680648022358060177042123456008056168662127071174440998685028674006136994795918087220896797853406339336463830808740914041432215434580564169627853910226086435958533921228713911448409173441996134554780642984457455043307006223189659058301851543161550427783091774169389112459934568943393625341118173643777768729992049554846036995924982076216094110088842624305350486462166497500846655305782412079553623542788847236209239508618228289016884778630636862221207883218439073683818141929577646468800703601422044550022224707046231086200410009203719732895622423230690148466832319841549480836091317961926255819739946489622536745453059321696659444748162768044518913116848872106548268909219426360296718608487362262562973517416717687191158569580334449225062656863951325791854407184270202124560422311327667274707629311571820184794934935470107914579263277271069151547594973997310811782419937196405349613855221336163801694543212912738858763607738586761748765615378450596994970022750639756206075534509942688844321932697012593636959754674020541872039705163391473018244564532846530577346996592401441092652782904023255162512031462887592426710288706501128871890180864935185541301738525883870642020871159758229741399200053304042578023597371917696262962828018758404418519273291148360829716426604940071500786449086618904971741607512722987871494998787744492657040917983019415312855688630680812168555896392222439001845671891455043038858760240959849776665924272045433254194959916973311452189014940846577084090132718387931909031946748583883436798505685538755004364359906297759342356305943783554096016412631670220669094723240632310967837049222702734345170192034482249158896442760497994504730468419115235164048120332826478862423736918052777464560088179759870669490371726874967750241382929536059054350885537217134829942995465535909226938784222740179683150408901963244938175836072680377000167476871915500766567388242198000569997560000721113792880769411089266375527463970196328858754323324524074498210106829497669435080296876233540298169949478932379869083541295576490403692129690790717698381910045475645466457436635407771821557977100465472937502918638080524016231565363609622638182471464840186970295567749647939058720119271954648129341100448819678182299380206966753756726697892708772746321463988584142620756953562601399515048671352268086490191384577998966025083215354026299419151514202222501285049381822140064858064039036747223591544703480895511619499316655887719514258360394534531033594145010675968320039072971506019623116576044010559277045167600500617775961736401307044275961878813578124177016012020861048031194690737633412902221568702753899373743456821439294285085306258563126104479940741492584818435429148479196333296651344425119639170663239237489359970900615293845154605782304897597764289678178899308731030816769824218957495912562474569280214084385753364017635291972185484973851838371661068578965803862437284253334121376583512287859938586643458150651619655021067708590017071253482511433509793696191906192783576197284896113264648485646342456107254168972827370435673635612948464974701358316956357339362692983880422858010548197197723113070097846066325382667331841204588998880752924921841176029680505436133120602440622251493575772651736092892701643262209138702195881250331972956203940481197330398143938844965011829293021716924976538207048082345795834444152694530310251047403753472101698205560947360583800267731272724448076704127759923912677204471094056213336894283317587019709947421427206685312320102336311417581029298018138155739668425364670860350923905907252500332566147792360031353414127554213413230201345371468167383142335063824119231606101056906710461368766490584550720706558713001252693882374041099459178313953745945503254690867274099973724068821862456933786018803305664828510808216599005689966034821659503984585289358559402880367143983139081284783168018309095491474377976279456652047500731518204752543847475356163845708522385747978243772593246808407815181129825681812978349150882396694492421979901005926132390160778608264013109151243633067866380972377561619471313532167646355493598701786269288092977627494196724356163934164554031066486596668708150014136681255131097908876714457806930773911059736179853008151423692027651476877810326819804158489043051152485310196623612745215338304128063290845665272463311613804359112763526842467813818589780827838282474043514784766691061259973031096424296873381362172008571199401536067500957133220978255303461541635743614736843087342488827093310975941308591592458374598714119010441538344988660970051726889589897575483399291860489512093104559526044937309004253312017405573511361093629661175848434934563239618276668455936540055538509118618283731173911843233356109892107849559285763072197164305414814857699778475760939461565728495100743447127978978711030560699376809410581249329897594397152919452044507515945469166063494214179028982205398628792300420396720352991075602817190808131498990582322461247773385622311980818238690767960445711186255622745626436401613973758472155516767540530475666030166525537887607858339490238746721709915069111295671150066610544495312909943364907065582610020107664006008836198083136793076419499857725406942881162352138755712671547421127962423791933029688191670475895816363572635076969934285936500869526458006150162263382034239732272667728030379206859117289524865192691631193432776105885447865693586095965023754715857656571506815621305038715171832041035189032026360408729719929787417152912280575840922902668329905644456395169186552844305989818677226382322811789052458237324971078400889438376535823602874180519152202874493789896514078591059351790225814363644402623093453314687054005078236286353698225983866301750177384707648082662091279403887095183045518674842781307963279323920499282250796346492392914985881795380785049154974009813004186956997331508150743715203462620625352721354896117058644557167293600952619270559324532800929504850319014053580844486353345675892669748984712353416446369839361222847232310756363651672922777070132813429537638074020007482569621246894281077069537557823691849587687673415980269560007187035484085926186513475290754454198496210742812127551371592455459986076418417790146440833844305404081924771856029426193247789411431625014674588662412638343462719556011138075665472775766164561614136635820607284479295686346467818688554961448936987940080796797150661776964842150578616964826960273415275133280052332591199910153983294105169525490652492623981522624844587467919009812216708627673834143686816194174628993588852489031101545860405369623532296525850543572145523406303217690160734882618700983250101773236683582332264791102670639854268068562478727053524117403921006139304713311616002143724677477635787166219584958020476315584977772288967672673909389196273649014561768627655365942647704063263585570684159157707766317726967841786992875979317665393590528161157064779575305088040043393207422324254979070581963518787445867613801136645893201413735942161487820812062404944038832854846041797828721557340770753845497018315448513593678329332246010800090440072816372279574784663802102957650496857990725937807673424284455416258465577006133733977909447526602655187567559908154012999060096851417718324434411044254943938892465590736539695036298311722780731293172931594219801597989192732951950245818505799792172967483015149759313239260776351211237409215327810556936869995524839857956531364023759129399322613143680981952283214513587428081638881542471766303434063232099943090039936675311981679298413774055028785969663326792545814426663525954882450250905856506494804297684427394761660830613041687178048714899256866743448060205466874334451964664455445394066336098393082778539985046126330155606331939810962647093178744614469901448785551394615682376242256261520242522686926015354758907587595480095041153418410810874216661113527205086973517971809934325100110232727566463800425204999217181708770615058238735764892791528353110313483186595968955777889111161434926825317368855626854117958830420048987057695235637365233036974597868203374295023967688088127516777294139020649961086055494278482516026271896774914569770321966931001279045040309918322653909361022137895338910467136859582609638041166848641287305535001745701095285559508129039369656414147958756713418875531561858395710263557093819857181781591407154710418850358973540490738317964529108790333734949177899468554828438903601205619039538636068328503446881064714288580896224396496802868191368883224799452334849059474696358701554250479608257373884412399344963184313801944990173316051250384175257999554138078552029433518180414164266196158974289602683817437304588849209712244407693414464631310960350383040439094909918033900937526299898717493897045218251389386227388779728369896451619931850843775558663237435726293088070692854795445906056597014685385172352859121842043132209753038648279699826901379448440869637330310260120431573210178904243643255120672939741817098060020117092777786669927399493737290242414398816936739533849583995426990524902967567750178274769117453060554204212417806324078881709783595381681175577470011674856660453932597463938214531234489770995287119725689016843901892706717839599798434077208204668079158042430022947708605379198333950416146249105629006617118015979471082655143384549588378285376597057923286484690664295058236761267337401774426737177628483536207866132480540128804768182982233267210817621956802848282662721239214193259165288516259021030050180079354667410401113464897461225350188830530114167641841554074439658834064695685187753693071362827223673250653536420289305024245591133508891628676421899991774096622700313026184898932448802725745346763573020059568190718149276040414747296788908229842264097108376400181798437752828411900559531820685110108253483663758407570824887941947863911023403420122882225539000451112644552986165644261101628435899486929050129329286226178799195072166625516435464482637252024486290255188934610755544326106910933725527252626829627064969546117101323874407436842088144375093376395068593683828539390285940549254077075048993557481707281296749962430543919617264955932672603714044856532832588919243562534871544179149496154549888196366009857059741311313760834102823653143664194765707835378614211805825533213698133470246255019111550675425667204519759263158925066762061173974653888717989787484358289640037260303049346318431226906402309662933300187917327824913083064288419439480180147332728895921147654409602731594859311038993016110360333196509426782507560887695680705907642110951768843254871471293386734186218866679462291654070539693735912105648253079268952617242697964182267946572151688703847446482148750760924589094724851643281004644945860608922467961851766032959489304570188408410310439611122368072405624736031746422844195095496221683444996941413522356496134724990276175742022706379489253622244991495611478096483361549660890993240592205402723697583123762102158915207480179953067484281948084476223527491288658977039963724701337744019667644257167613098202961136944725034312923446739033206880034001741023288478523136915414529198897126097593073794432211912772884490719567704121185102855420016768534152372090208575196532074389875149506952790936506883341977750573273997929916542988845269255025475245423040515920400134307398814151922036829824098371004073071594125648889779597106915244084862656234318966871725832962633077857308717956398661246060018066533319320481854562795200232415878791273680467310863950304891600926462473823076684636974184978557125853111157862932961291432569770786042262604945577166608134973142285812889453692036934984579094755136610796048120380423869264270608637113427857146472811821040674659704785667885944822065357562540759991159570733618457463264382159331239329201116194644654439884944368099096603875422995065730485294310671374487737892711523886306186627690161051256416064745807116187939293012097495997970605102132553282624601411471952204135426301042441463517315997143135057652423077786258473581725462956145293516945646316801372040734224926685972094513064268078275768574441682683890841024000402236434119576354241173430754118249631046653860210029576052054358245526637167196017963086790179954199677215899609306589596557089005211685961987776978704731970936053890817115535410344992253415045221335910598113730036841592335288141842653600198476278389938601012225721825501412494625347824951889257524133101764096350268532310990469700821194836497386037158759759200023738291134664561252216968023090111662732455274241437283073810910408496348267975085489182035416804547271434223697381572206930350528232868823653871667481757241534845807304613449985147192302833096325675319149287617872146150457260602931594991942429253062220133666492599835381630002672538065118822249274629514960601806578412581471871770876464285052266513708670923486647453271319137094823720088954145372340294622617392393738436530377744958571908569146025500125808098171230193857424444961168716378411637698270306655637568911399937694863636660857956211407932515832698822724442210958476614583544501229513491804022557210625624120235131154691675060831484546698301088684527913747086156190872562832007803438476075002295688903673322873146230653796389253124984555750044553302868603475211656904998739444605909318286012622350498649190102845036495062797277464057109754995294088332060286139162085504084247087560389243237707783034699471264212759424353228422482396391899016616350135118943586998537222223768831817004592514762147835303835678039239303050501208797234112086468361274370103844329539499073385197679370742898148361544525290368071178584694434843899182803259618748458389159749847990977287987486630830822924604324938687325785557960540608344909680459993166321421661682364707074862276931703414471863379901667304178919651233013159259026403434235440743826919485968189389889685796376021189591668931546238737993060288912551611165410892234148597230517013102787448712467053741861386679987063218545660054997547537987574781557701600925375989559331588806611733632573418673791633325761351833702815016612715287727865603544878877445740335094657331911539045304986527895588028430837791153711883267851575169700655898458410838517636502692089974529312230740400505898399614682720538463894168145848848508885356445318330895661911011091766984943435457812494757569827162443538750352519923776468177544743108852702554036858281398538970038498442637948172481638228502470620864985909888526365651322260887344994549110093480948330667544351852916098085325180716658400573687690415893708077324341817088836274505676302803346177593832749506217176940613686180795369102751563215182932094871189316181352421281155221892006863123508024552753058106735830987807557527428256300198644923835837682831791421923127442626740343073344946765975774598829904644434567080029507518514801175829925829905410427176993008213270566871195142579067782561828215195676826765133280073251714550560254154839538762603781278625725753138504189078874440001751378961281374073368252347612717503789945334747818996662688695486836304091175324391657689729479389901832559548156363109252470982242464549275093340275820298154792459260221624292856079350790741908897292740172342560563408066476360096646757001674589445878972765035893832766933247624165444083153145270155317029304579492820327118523803088168574507171924553645403019876314180744269578869510914025460358696646562870977676004549457256397168262510338606329503711768287623447830548262371646660029468243780547509756907259105383170703249876774529623549005708112769807147376014242354483461384988854079795614725819420091039852695693139398054725609019060634120611829169519029910876906362391701409814493872838735482438745616189988370676006798281949892206511470809402215775541336027627238534217324695265428582787617167204181282815717169020388784120229029952883415988090461634207897125677993198350220743290286141867283139665564642112988812975146121205565156806354925182975917890439692293459145035924182871721376974090321817818705333859630737278028940500514835949908005876469456727243307355606118957397425364427776673612737812615635695834964508624857192080065254732657815031506302526005940463782874560304930285780305189425970335499223505808457271370772592286940331348426129739360762165229002129352437834539664057678135735371152130747616940361877540122413103143555290861037729706380445278847501879027445048667624151545102383830830001463840524090122267609814912169104827861592990975829866127543572853356316752350331718801613315920941781665143508912132744068588851368651582619483204019286023382623118372590042146403463839961934548402453429376588419369475708465024359249422862225264840153292765173049383200704950473907287307089333141175522566701167516888120066249640155566442121441329395061574279856611421081496171138272994821647049258339827894774979575550868761347637861192789108208269111475621797509558125213528632807112953585736544304225477977099333085479033512437591635154701366820353594654914694751378064764157724402344855243540638570915801716904199662526044251641440064746687145173656683111192627771670293616723251809714146802498196849173763477513319306788662389156070534597376976909240647642125255055942966060411930155906074422276251621892099906207879271017413482125632252294599458650069221119676747094194835610545143335590837874849078153038946713206419342036644095511872698943821495127283312886547817162137109698552972453739878078036515208361405203029483529222405878750750140666184958654700142393874043145503000667634236872872240126856552747046956680144684678024670480719542230490818429607634508050018397474827353898460493632322220286290952082844280695334102892095600802460505379106848788685800753478790382150946383222585739960095268931360556131446610469320538450278770425797640607960383331419226353350769986888744701754753794529386664206859613924605854897642184147777242636905840266967965232676272873131800366107919951009024686131744864548479565474342897642435053775937183665569146691020452327581515153809949027234928848604620299396430576511530216883335220309837582422338111845626929772520120918414316257906904994983960707439730959652737937083107000993886740922361567997991461193949111984542659929383915777371341644462183726463411739654944813293301575966288175460605907963098769038462320636165554893533854506149371871537765894308697185478584761545793993514829159794775756529180651028628008506220773347902600495362887143610811981821194641773161718907092289550136236646221507156532917997560661540759614483467877890350999394259380403907281452494858169889909014432950848529623761362308564414019783333156036609007787951028865735438236162013234988246999105349583892829425927843918652276901952347225111015861425255401679523905694022272267309134453477686491034133414294555444787789890432716064346066819834822797068244737915646225887794193641283275473826594152984894071310451796627428883865738612455449999464896444375543400968449211045349412081557395117156838427949869239054091199780950918902243069277678356512268739990087533494468820080728653476716742107997337876284540416147306245740160652010688651794537865128585820449564559548526598566766850322170545659080569401067847469016282146669887192505321069660965330944780591048717816215124480829336244045871823123724595105428073670483880346179531179150354117760148505133133984659462455720909067058091880414035191840951425475277839554063263865997974111422612778435108686820926430522321319583109186547369260988511534773031795145253785613328815532738332885361589240015951201963236860738911865474402820862370732422367163279666098296850840334467748912217345005708639979582254910094558044663958202249626722775268082479812823433903892932705193446410309528990405773997715843966245538477866815960337378742270438607155446059184627104206624920163789471102447938679728706133245736697427573697701103064426116430223375116545973007915111925993030161195409951069010924020433790637416575161084660486352158183271610683510988965002421935752932842174202937469908547031046383318652211834727396047955723528434833412301565025154567432435450808967265143516401007024649971472938267215821498112291245115209523910669035762749283483699336467785786189131256630274376903077339962405382875835293111302537178838810471842938499788527960029847469052791493085647969554348714346670063268899601243922658464814244591482142286482638506576275900642168187082244519386765220806879051637014957055998706219121119701013267679742898368093426479915589877488638226891889940213140779749686666564303060886182308870853916868975635025770989576943609287177096963356822134981108761756971415833066539746906915046517777155194628573941963871258374069063945604446512277302571563271491768116161335661852808178574670124544706021208066684766134478830670896738900573405484309347398948487734308925477654217425090721539907471059094780875016230135384381917118888044712313370006433167741149552248454047000996435062670133149215537163351621306440793432163636609398132415778942993823128153361145479557753512437016789675183562965473229955747433955094170279676114625119519508733358838664497713653577831617409503917463431304814562779783391877328603708106771819820481548411167531752035321002055162916172475178430044369180398925236421252107853626521887914267009600332075512994206053351881374798190551715170671183707667700584283537739359110234166917125577831733962857136402574029895384169604682159671345027603194139269264829554273040889414250682358906013024693812253925680702146974381708784613733155962872108786437026250884839783241411931342346750904582831838805262940099046118578467237733049948086163966283781653904029764970277172552732374597361355505650262978128001709591525057786458012476541400900564423818380082485692255805604255949265199507517714916385142587069681792580346942471933015474523366149903365829063723187330789210190434972734540698342634081105003450689366377140352526125788426899237964245432533354931087867147976105279723657147009616261421154745392499535316864211760407601637762963081836712437180093157820340609035096397173050264863780493958420424727990426737828085317685076080500628681597239243840143819163759833686572105007499166316492417866193128667714078726637725199039489661271320668088764634789284652207704064728679435636459412159183408995645525275475254123222463162552839652284386968859084078339001530952599288090255996530227880313601708239090226233459275906743151252256291170564312588659883521284032859892622370820979370862547648115282196828060607691731290568218817614329339456006598793874653080967208467214374064644221615161317832556899663527521339135882156956502307975480694352639583772572977154924930917545561730185562197829681970270933522746395955644698628338433568103058875972417332697759397116333462774310440139785257524074528078930586596886460941505298273854743309247390685855146641787319999294486196884562836498025527319909058174548965859713082207134291632351520067588282800028093474335167396659153552416449659248091702954916225926170922916118375088481376395860104623080971266245053959191028345866746623346244595839525699880234788549272936031862501382239325403151769671658604138818073571295242837101183049012244514790063267154446336801486647859522995870208005383576284031637546968995630201278821647796777601473515908125093163282670030838462777946202583348312844021062683362194025243397090285576991638690645681557864175433993031220330613832174397028786536894943705795998771774793872851683988174381407260000736414816111360147487377118195838410820243623315981173750450588696360573795204109202460365135175809186602850523428213750254245837335769679369108687720765909719027418207474929835568976236685982945820988961851256970940888541515965201239361279868326881229298944489400100320655697466852908268503567899906281939659914229466188162059859176390206180402835465978109945463746900159045272354875568021831595393725780725096957393778403667927127454234368979726184492329534891331509564705869037757315114001915139286654324971730053966740034888789577991219202311968005825684064304570189584888782081206401583030247660547046515833875591788206316571743166793218553676901532947112647816543091771705679997912554490962832482195234766878676768453232481231695444601702011583758511249675913311428774263888320129354246237039721698988640608338076288860702067657808605956961597375501025448070952175529827014191734571569623501628184138303721914460586158307331794469307265074795550221922968003354467737714794734024818175737796485132899212546940244066894399149169283131475774745854961248822753604972809389467758566856305041232114816418410641381113555683759197637956016410802666637226384106770166370277967301084053957877847118620692506089765753027520201549737081571559146340936875182343693611485529804327840402428167115147513505209141538355748078700741406362741066553298030181360761844815576922278813381500600242676764974688420981703352219305568379910717769229524116173629993340650817832353674310749135317767795455217748899727039221311379141453021492131976398954223952660948675913956538475854922876066198668423950753367968287225884237315115747566948650075753405033034769747413311251288159553018179963849706828313412660109446327771519856177321018365619744355484222767840295893439926520954890450541718614367431922593006975308685132785481771011664500862332535322965911152767162483674080420754119352664288011614903251757533512774118790799117817012539914174748751592172403421999122874765526981001328626650664352783834735061831256015657557699737237143354529222470864602259456238163080034090081484423872879477744535969842537092870207396789538311564663831214313896173890653506693563017993457011789673198035016179880045378914524540968080674858887339300450062878496426777318344019140401438324155850988182615629240532406591995806909252022197448438984231943194712875075222377118791534431134474189235874193292542585501845646164649851585248969853730537577974017240162028826124167372509814745288601694566789668111164070411900296900640131359420102182767355080015581828038310970146458643840839462372374926952551185273741599090346244248926478672439347961075206217218344933401187882272804539919459074035348300783379281224454055098139810583056521479616437447421739302614186733588343560121102241108252822553446258048543821011204718838807948958242311658665851269544686342818448680366351720062041158036461216420398060797895157843354308127528279940719068393067767127077587851478185693283207143956602760978543003695635079429001879799335375425290805755089397671172120026598522241295369470269238775332607792763513760310340658660464322807502130735249371330105377937709785564512716430097241647178525808251950925545510941409214291583463816601980522341191994498235412933583380275936700730713017089403296342166544692372108190777831550857877581385267049497340585603587355839822244675898904222655974146965040665832186669242757975815358417546893989067267169616641862631627038117230937435244606725648332901592431206945607823069959962963995349347156755725251465941939249871448323781952209187253464775329515403335457266767420126223751234909955352461534696355569018682960343096871120288845239395234244494277333202563383985210209707997629637788738213276704404393124446537531887985239390490666408243928333415248169326913798514002108957834278049940076439814067966573901547898214798517176871615085535447749647764870290044510795743137656394726813085044109172184341160696784363309882978107166637238947811491916700665891484587735329021905083050225177440385975602874281752152116462690203775523054737063099511238724680607413035682689235498404350246449704876019981982848593342034174120276376811919402699140284433285443703187438087134299412146057666553699278415079530655728186159188515900499109057985832186261670394066160665307284055728791255265845167451670656208718503207728564105919789953579762783793412814008372736004955386780186781731798918141036930676174729974534458509759898353620009334291202849866953469425875603112966833153164832905260268429520172611872125530743883905605232324037862193009594077613780689041838538845553371002288530172884569203826206159740957861247107537046205112893136871929896256011163625938612013311845864276152306105192609297808070112725540905497227303638516535240730585341613560624137162582481195096980458755508416506942071688492443175340499627483180956940167784861822833267074657686466072876944906656767629267342179442321527398736568702486324111533633906873425036834174137962889399240775556576053269292875277937160800112551998557436937281451151788724719284544449042339305509195724613419470026396778713798860908147954631154867715026463430829918834391516524183618657618660584653866174576570592446712542671356545025152869161292420862529595275027264858498655194936199569299472517600743168214467239079679222800380473339945967948650914023397086808338914590115808416961615364634102964329053557925073215306736046654176021718350920359838539457071380930617908479801890994763245854323775877339233859906200766335340430407895199422601451030802694719215158883871517963899205214251321801769079110047852030633343677721439141210780247735038838955584461576024467355099104395617458785169087045049803984840415518661226584268969979504489744708864953097450693002455649226457366648051337250186235581822011376513544517443918920540484264937015340545141043259686584113423988726463265145940800954882201563592550540222170872207574974798054619176839824044035095981521413070487185810036136563070535301218033119409203042129728476479265339464915053564857252574712723661492120195374931126590417290593879842017411980462122406137093502867857740531314694654995450770983051504815998498342455302757052827273449466609607247636056275224748446371718463956358704450950904563614682846556678312925826370617374441899945228396035668104650174426308269868457951808101495969453986133703874881023578457413052028385438008898983764885109553922564703270996250188615455458832360632232280414274904467417796146743891710556184226239524567004958643330247147187768392860753939176993402782584444842104805749337607145807283701464521365527827148336786925245307467712697276272046677246021870263855932900898163543277978307575731455168942983537895580517370302541304121969247296767869480496167465022269852022391712144297368275499832835202527746287661923188033245713107489613967501665235519438117441644980831986248066124040702174134982930781530777901709391193588757350192667501235372098152509219926419255091297026973167354383155479083233199664434763381757579538114601656405275884544944263769317549042823512498750647470839498391595522718071141435823815494970336744746094170617391965169715349986738739426734796739353485164984307177445034564087442899122319038348894300207688332237592489614137665501321664723840629055726800973021926113173286488472029904584405436503152766244261881562276210141597150082134584150071889536563665391120104911698546829593217397674594291003223888899365821640190022146030067907762226194187824115647849006586702072372496997177046611510883523403944382826871381207409252285074309602074354306990826905159565683472394391643949989247147935873158205861953218150428545837081442102493706152357085469647624814655764158894765686321761102824634220966839515565222897599623680777047325040406998653208717642277489846901799396855140258613972710905344936715176567608540818628287424464427728329665667042455365191076826530725318275478084934050658529623417810863691596046010183804421678867802301885616837367513890264843604854568149579428453300368462255652452019169874586697592729272302842093419236695834309273883893788364258515174558230111385857738819032843283917268444835503645277996040267576162264372736916524188816895474149669521518038449252290582511170313820330489292431454154295728018362072995215604792811069646056156610213984813919816759251844904449418233872560965399034531197188055865296374035904143445247115120804074763050080851325728870306163834015747837302209161884564796166108307934201602709487776159512647502699265012165416670832818330791746795665493490377173656392066150641203445216719679706687001132297224294165384726829998193693360609440231885734036826899416240640766946234844522048416950994731451947502340638019810576177008044278457172278972479147809022144664732343837508189895175263864506877691978028162409726556612008847602232490746661101602999358377370129861740097970925858129594229966695546577303940872938674785813397107138284502670661806134189132707272779641849488869830273115728575020732668333254862787037065739394445982085445863791811298901280694659268590163895472350527202096475771653471990507604588103639188748694516626273191301415866630493826967536282129658404500757432295017797489765612105518681938058513765895693156587607329300582889420192119360542045473098153437494282814304334962977983281436431758034870997369319317312739743750928256290777619785322497174450601811617269619000466589762024533334239736633951664341937346220907728409553109511807624554221680574693067475770870365179800991787369268094497147380196887228961821334530258847979527265618277500542286947783326581813717837733370906266204836201385275780785761268412538603072527767932148562683359206757628224703947222786789867852737735279028035719934287776514907356357286890362883427031175999259677734681350791045140913891659372582088834844938175929379213281171954793122908058094259444446162092704492675331672647924275782129617573279553646215917218621887872270149397458455235757499004170249708366075147546272044649828970044524903520665953178897258610988239773469711524840149109504402552340178213132095013914222931998933046715517160623089923931239452131704829255624028129659436811914271435218533485154044054399386184471137596603996827308579086022301047895447261084484197954738373925619813094104655508464466145004072561430437545627794257429864170102393840394401873714511357745637636997732478057903205911153259851906531241225892042109439142966355906831100433459585409833001056022918252519619354504061763270938727724463389279029094486917864742395754330492079599172525270996537967929828552085465052903222510871443485834994183912727617124156381337727889961386963286480617650510236596137534063450574943940607947462407342611552371951912271233549845329393524366565913804761005876725335844878950638663774936712840160245068256538540462975578469381932581869855070576718774491385114395044651714401009218559683270828209622808988462452142298905263636268350551555880448073875187208873907156754838696638675180686008470337744883128230274663481090816192388251991571790653052672629715546912086026778134953838161333979522335464489422791043244892399135334327714257582843384020129430197018271863388654434008364874497033603567625724653311190690711579645302370369111123486459830368033021749760740205062471424338118193218449945707994949143517708686456869420774925017788841005216398106280883929133787817302548518596216458139627923635141718324457773456704968525403975108291709234912586456173374652211398306274243998553495769778514261161140111990815463621214992118887191560822114371472972859466932859522051381967368867000472035892969957070437341793383426390812502704237694002281361044029106218802143716177352857758911524727414672747908779878151919850227988620563876855027504078700774165088981038954634684420513688224964433669399771552502588699745576443932069741605999070265715670455522064827907042478183803939650507511004228656182412020621662794800620376208241778682424338105067743586130990445920059493825946184258563650678724320068836282648492656071786141729416587061351330126470797270461544031848456552539517476883295647160070703594594775832051957383260864603598225456218258541480054441624615642809557952913615328904397362585164415817307815565792336960023475715338325471947479379606976502172839519200773186349073904137811869287635124703787484439921100301792536521434519829006113034115444605505476019854639593989713862748033231657050000418740672200887020952537456533902274236975619359908575946683838162332447209168765608093032953429455472915332342957043493304309871618816470014945899255201585030222591267015524406039924959533198419726559081410066697538270685789748953120611012280117602198127480943161933450876868967176573911974735586903233774084064743027855719833608046078850474493121540485069827693453856872682129411415640619459287631748918055757365915046504042612532205739807055156196354024597698343836335250044684700930749404488025646228667681909749388084434948567998724133877009076545215455388595848537535979076712283379329685414484508835205920518166250932142313476024282823083049533550097266401996914898949661152525399180876437936949197943057804374938756125068045835420548267330406479219325242407602535667878278279465647681286934134100128397438420452729890923952500045864038267259978362677437842782870698933107337268130295586103860516170200167749782172837914650507199248059354242569935782494763602033028185544674880875473998401752201398227971426799975757512919774009262387828673561224242483790677590027851598152343248238310567380330350798769340257260032495828173937284415516184479623126649204867069394062119288156955840042665576527614407531609060976504909547837253088452708633040593018344284528391784006996479417452701880554291479118198243524727798548800449999517324624254060213834243383373275594111577183002530369858216733996024576767812873230027749090694714142872618140860289607589890075413285740727111743354078823650492939097468756202868447177135552501684162126251602809615191480466088605124926478626781227215159575752940096027189513995505471994444823265722546225049517371642557822327327088255742528337416659783583457886823718809281510199219302498238370809417156499520178427207418507671105586323340679498243151785346102873243814655934430682395954707503316162272659308783146768215040278962935471876524334918820859910722821965093614527735165025451789678053412570755957721385730731529351556962862956585524261355191515359445341615190460984914536244667156027523269159137587679783301636371561341451065073241564289914371033845047598206482111979440451541957587056478582637130223795804659529377037875182463357446007083008214679090963085290343814222249532383099523979107119486798907547546720174684740444070425984391532515510035534291789835904680953426472623213132178132062892549103951743360997856564324927611482644010846681855466603356798290836131537920159898143114781993566252357177035762861519982825351564528957864081593920135578520534498813878392861262558312594041540184631770864424248850615734380247840924781833390086711579618418706580452465666041569253084832906132190564568318297896795498953063876119968588522604663808249915052868856687156111858176140216323527917365436465185746276173294795879140528651692506344584948575123951449870250904340271496866806376075981439753105174397622237010758644243054360530971606747915571291552625012922401356931746845269510155491970668817800454610356730574367833981790975270287299883677293042003383845733114830591623045512591469428503073281815108660429354034583015649819057125710481428028862362667691669931863022732792885387869736531908122299034687171512312200652743351468828368250068852559786937097493189289477724205282002298246666790333339737423715240640010822720799474634091554416360886157053569370455516431316654650994416548779912388809162175064466752367697855363052816262882004028659403143372188359602344085843355459202744993569925953960281962801659585173459839828746132118091736173676308060621767245688521372875313864347274951613573234262596460300101165062774207073383741278139014027812144783730711450527113410462177376298473458576498291721931401567009151062963908210313069797633626470277485304789033783908031127114644393131549366293600856057857190758113781141862406726273731307313508206681110284975414293796509684432610576794655143752642358489090358240909888746440775895878169203108703402915003079788088447445275904244450982101581251752939485548309709283527993836472204602195015909583133318806264578933484928097632188739890247291122126741596621336809110921630322523104590031558280548600043358487956442344754419305948042741629644337341848789500015582849600939805964956673789822667417235023092826298892754721043145229800349061635623192302639116712835660828966538778116275974258190010791308095300642949538417601851969619832793458997853875646880647378525962086908859870774174548138402869970932478084478450607016845620618703964990653408998653925020233566331281049477463707498832680441711973974981048348790066434790952154210258197348079393323406113229812545781676382174077247164595685549770805545756516315505189769289430223384686234815270719432148304871828550937490910267796997841474255619431695544436646229366873743639182704850398078513014725467354015975503804008133506325938860938294133183843550782630176886639906948420033840707849280197701303374112349387682949335207440150318018814674621491090315913850012679453031046876957714213917721061516860876345276841825183633591330693354333673175536700994912781994477305875615295067853535422257892674241222848495502143101847610157890719210937938917437956968563081679857148258430253023978267595584064943663169337883347606083638877808231404172574162039315827543160592277825010513019885720345360829929505878751727747633686409007768902124366620431181629642395674307491158336156014106757899364403336634500356992657523728831873892458933144543475851714471663556485066769115421172348861344005949640148404642747433663379603732194575920660102881341282714955399574363775623152955023389016812391632459972783173096085026738400742384563087990150946546251148253599016260596746318289078905059602689895134361337370056536632938559308604144566469196885859776457190989565133693402097975810988742818159804807094152392142053526796745509399940437551247165408809038509079722193760011508393178517556317956742229122286033591934571818030681399759279266100978652752218802994729618787558500979495589656064324328563741898652638228719003721047300903046964012970036352551555521287156968706333248800535301881956170798057568214232152687891990714185437741506285870147390639266451998292803697486022372775478720408431467516097728228575811055408911520411271871413470092720003877352340668215287786121369789808740147588234800189481252436752024765948927033022405675966038172615014992996364618469350998619655337270842565160165916129822789494662649689051659952633225919697037600338798549189484720716995688635107788751644843592583379809806646624056812830233034579037593508239825342963383937516617858921348523029802809952939226530879548246721595857070386337505962248879736856056877032287596010998285472000683695384602368155973554754838023837085118258773963641449807160562724506044535126056914363218669459935816348123295124828408336324408991287088311345990020833906794705264206196336574242319740214883294331339679428880828079413097747395441691091394611464508316586804630493174317637229814583793194575693436101266053305959927496905760411121188974034610027598194744115135910213259651319507721510502886480103269086483501246224798858540873145735291679407603149946581453518604633823017717237905881097711541438382157137498212294816410651885286393237267505414489699861902293605983928424982256420861831170001582892019914348332114142056801104373835602293372460267765684377295294493858955797642067413615759130592354219921968154818702108022741963715217027023542988536536145054410215976700123340986741757815592203191644491046930346506458030176559024117137635409858018151606421107318577504996957397771711072611895160782855736444396627192884635206144003537526202403010974070132424258085619948294820561388047408206549458597804430793965328534739087904854569807909914405538485593056963877495575889503955747376419871772319422676313948304953547122991278636092477987423808802403656120350312601227148532695997996101688908369827253804813482925953330282053280509160657986920614013331473813347675325685880174781650357588548155630555184784670997568909005978797349299297543080527883235380735381388301179717734776625031748380671047145989079170168468825119760107645880351527514976240754336595653359173980612387080766734738540355775151892260907402314387724144700236148312713245016467234510346968656786484424537240337542257961606567505614122681771648414610340371995685443982983649187848959283530924570789835037940158727533895739971376485003970850974594847005884290120484464159341844874004969939334401611835072049469064546319400095564281356469519590400791312726826899505205515043979292820265566771327097243481910343875404184954959335117462958267640118394373611816022321043289791461275753272717881940844763785473933403786357033831203666297416302994298976931117612695201894789920382615993466378657776944664137107481376234231863150993864336438102669324176183966251180400494569014915780074400867003347451971534614669693077265690988173355530559509836329762010991068079820214683614171335107293896699939038848941029172852196615661843638502319318228185110109720599776219055238011180540064840230659081794829645734007301834936873622377802865326875914925662346731853358629541084479834200759588037819120832100905704537774973224601529000245261212823185893314373735340534486309357201568992840145728192712855331492755065843711079555681844749923119518703718394588888821102535245296481530136551573006994724079092623666490196738621587336697296922119644357012648863068921525153504231792026570155460972815428306685278954624816419041715236012028678314865211674177785258632746347155916592794085769984205005913386542435228697049909464466085408411633994562542664242055756709417293146110947755862412310529960938219849411037440001324865088249610615245238507152417829428198453678639246371727774565052154705227486916303992096585593810635611507535769902359294864108777921570695762564744084645744332602133905553674805755069216442134546148249717981132769124435862361839980648507313933083070522265310604821262839111086782889830697512231410953990892562468251438446498608608212327373080629498333817012143710648451725712973309570098489434879514111091722160547308074443995065973662279526603648277407619255732499948909931264234763626839580115610715621934244403089411459694142268785135041609514054813109516744283433805552102870015478913316021136510097727088156148652569271848063468578979616974138727191129362027006324383565120411206930073770443477826074658923990655215318370901967494183525220153803495620337680683736765659348394485523629534898080109361442534098833882715698356478304636486466263081358499429470113211283709676500792636625200517978962231192343326709867705845327388813223306344520805960086998964350098638534265177414073335066234574177806241652110260872819314588066570912696269574371371180751881626066178317865563714440822245356405558016368900631709657572350152599046476570534953778962352448794769040604276712931427107869422259883562357643398330222031141248330077677730903335370441288050201988661568818828717622365192850956999644898860927921108220883682091373839670650477898459234598888701407917554865095454089155498371551984900127165964326212685741815826447599277753317653349878201945329673349464501494602281824277110100364371722723255026395227128708020853742857227883233528889356045322506924080215414635406621961826274429960189705543151735476530787253243203794919641526913260928465383044729157117915401413353539577683221108204945956612978171140479029641014083399450557171047162270921983884308469361756597986035035122158852924530858388780642339798797428260898137231666000520715915834932112497410410515722879250178264467745442832817381631406792094182853575491046260192009118892704268062907483082787909086087339427905038433389075566535516699320336588307153308447573185277066678567595338901053624844803417781626969778476851310951710990278634634615112162220196689112774203617067888375725962966846033739778933265918873657943846698738205028765294733517763457653267830715769882999113045834700944027211981198207342023268121252489556579425630896743488023738040887494702940546365970285614326237549547173766139213969581204638406060434270646509398070453160055639884321506708041780914873199666839538441187074343235178543314234654796010764262202962490494135215081316084180542974730316909486267289983641786903866003884513646978447259906713004094192657700666741153139525176379854062137243586381684958295506879874458790660079165206381185184602587434471718167835812924956697293865143738187091147250458849592324043402537485707969393610888004544780093152194871708347438726554498101817692840464093667634552413684949259855686313272014030516762262637942607217974821111197596140156453743332852436823764171439248983684258693982181251663622842013457378701370971781639384648333003051180900686208097038639585986987898489160461718440973420761131395640792746385762819303675646799769186522524206501954089509022360846011371703325053527928715554386224585001599923337022246936151277030379535010432207720881315487605484924411223463416444301142847280471122377329839078802583163446605658428358009737701479309159325156540833263180181081586979261299830075612786702732586455219661936806770883068688800886440770067444229421920526693837082947221867585547733609050648458524071323563256390769830333732294557742928338665332256952280854202346842703082332011214971144880964565505058969584833249350004927816085655249463611308392734432205850158793113601935827064598853620713623205473474627918428249345378865674260335445262185778033113506857349075896740030442573240440640537306465234835356813147047850213648028893600498294508398224869712540447764081561313563871111123117628100156501762371905485176841797205723012340044195487954355473982264577675040966178991698960244803328835480049355163363600113796551058499409610923009511116392280517182623445203246212441037487128650498430885912622824535383052776461010202809071578262046657800825094369762446916102109710520984262907509243896046638080349035442568153794752665328832456091931937708713903224368806086576068753037611093056746977197364514326991805566940162507862893092160313208161779142263219035589099409045484582066224905854397115042835719864948480238918831871766018797829639611377503003649144781847458594732690371815073769083755245587346942401611114312694274281297190099102592444350904916157921957483347799979343568820211688231064818586777469411582400167912255090085591426841270629333968377565954439322003881572698807663867444569574580844958449422184980073196451522838481610371064305595415330706873611578370733639336741332525395545457236862008461707522040907676441971982320055027029570954827268103274501540949945559051131915473578571914801696081377229101252113926330536180211345916141936590757324244319397620472188902083710464026474985654752859467470302800278648846387445873216681793605112374075425175067830002077186885805109839355494432935404370035668062343926108819608780737530675318491648356307256783946025245349939896554291455793647555440797945481526862733687543323253805213437968964983183269187861266615708463032325719302048589964329973851270176788269896851273392986445140281719224045005734200680906185509956164465928272581405872198099164234864546138583306666279147758927514249816047028552975407061491758396615745250743257774086046152500109162095627997280481265931265753240123042564922680021221682136875293419558846246752512419403312717117062396338858787365149651982672968710516007396167592538221595459560389723086343084512313903605655254792369641087035014492829925008632773219762202845902985338303265721466561041913998122474231860868734115528380231262129816294177671802382615605140723869817555938699123423016189643581586758761068878933396518774472693440935139474659860046266452388736217272723436757006157158347275791559487098013877235158498586504360603100894734080384250079812956421925107782667654400333139632604025715351241397849773640758663516009428850768618113025888435738571611262168129033373146213734471133690059465422134774963867372343874273047903030629856344048922722172200280235907369761544038225883745835854796145302854864359163552889231807916459908663476512356856351619464748390678789416139377484669573443727020873811798591321960266073055412914531089507606539998113858675492369010488380206163039972152148518173713663050044405002226793047011264457128985856153100623076429587693622981623490077571142189994070382516433956287491065144855977335649451914778035054209093554440772675123723432603177289406991526374730198394725822447221708870793934068731942767280521730442479629140930515743030916797403345169134354898835838176185016084918404132019332584073717930840347773431761474264546306396859639995261051234896224052873316531092062542404748828107710272177892434614267961808848246815936038477107571819158849047674843418369072226382033619530055061564851315352850276500512304883800545035298158596101608382002260504684412371000616116100511504126908327773474640641185243455972339177932453730264869749503937723383039403564887376763485107061482337582014909936391404315562448845293150477850887660906137804412782873968781261057789121112973059118536062834581539568557202960153789146849737948562759725479408963958159289211113323175110663654861279037569572550632805775603156925628986017888361523595720815757425481636472305004468483467517245862238047978883466415040562788828813391357253592133118483392755800829843827698971928087260361724934038246281232408352939648629512139240777880180885856418239353238008530358554416419687743901429109715344564607013695604662938153328074157723597586347329880496395072226092883162676939484688832931570776310166796793962155191753362286000679741435238461708006992673878471943458437762907687385321133917736608108274472233661449068109812934236353655879728196994924873930576458371605770100570533043342169210670555237827243425263154516935860923287372769091441221726537724441162829395334156528071346143979174497129723536968701907831200014888026155807546709423620068561839169954775134212914794092899470452038738451104781002584002106599396475197779576444541254178904457616879352018880244112130579983317278956829655612774512554390807960287551715949906212910900427245975418468024122352060781921405484823819052943938540808552929927742462015894312793193014356242969639515551042537131683733422738671687839639594752475238738314017271660348750226192485085095899897985573368815428478014397588226098303297279250166703524377489981843297624572587527680000741607639159771541264343333763964284541573061812415899741705051213670398477921432478156108865403100324725047811575787731056645137836592153303424052857762688530035194719537768973776983203747012471795666205484133549469938083697897784494415289940702329639628332310079331541929382970182928470254848539015074497692638118309421962581618707285346855970672593642426081965175409681102453887903808992877689601758585908421250795310205772142072055370712421989440683459261107444580802123412163862929347207245515189154852701969737599984836895954431066097803828776914580184822903079815150981581609989969674148294030582204119280956530329423663741354962921205242635551882720173775044356551982037650348788360531749202000734939432414153222808814562832178365841136947196072138477811260333264783186696813852710646114527808251816554853799746869453520365521544815309870223324195291609904042668737592848009892679854221228695819815512514588118358338764110811367105135024836265992834483157381101748307799110642235367582037379158852877185206111456277911417600285329768190107228505165626247264081293801670757433227006524515430155459450526928640343551528283891727887730516333697139877354078490714481481350956161499697768139106588152780196339586413277718488051128962907746959838916269526671267020060117086437444269083362796367900492638922387606595451152277601607350589153061277975037954742883669197998211923277378243149402462158472074908596298872387506600160569022736363973234069060734359389955054821004812075348948305588559682592637170920137832643263845984414765007262153620040759593013512585952816024309238320266410452833694910618240950613613448138940691068866256765629238171490381422449143041495514594032632457287712511074289633263694308378693287398473415532747021713145633575668457527036743404100871532531885866899231882383800305568961252255329672512756806365406379630959055861580656481658683546887578994416581647566778947534786980219752055460838218559876321533790598422612409392748791387401408463660443809502490434708712746583637075272786337019882624222342451897548400912753138023915477738164132039059156299226114180918330900011220919274753456518736234110840907066944197561773215243191302139009229203317161268781851219739876944656802053883065488296611238053320104359649359078128747307041814907681154224104506389329149172734596049698464069172577947327153179308761154394273285894056117497826201331545563629713609401577051176706804625646208737146091891984822428186300373949690951648288612059062771825119550778750695520174724875937082551403035295139846132282358672544149717569982272057178155308749764726512301606510016424831347538254675414426462744378031675932021261346273904734552370015077268230977130087428787699444159544985566057401421447609463684424708795889463360020046027308622914070002385392814910101817910926530855175394175335926276238052030223431448218270306643571303660960781590405203227930559248609357805526988802484316028048747235818172652065462955921624909994876548889973411887404590120421696471646751994355057501935811696856242719928373764011405598838647268577336600246151943873860814854468908245361502372768168813663599394402097056995697817466798648771180167208486323544175021052945274049855699336119602033136826272114333072468815558126927605909545778299464284398289299295501943231979793310723081295406199282116450536863370375707596842906852470607154523630989681066606570485544246589105367760337613038844398360578418808311044065396447816517143530596328866249647375343854003565039639528733954114758441942292478320789650713429876858586347362208985184064678274262776736480197359147642030516841928633390512594926545835336246152930984447189166429522747820443592110209865665995271535495322672233825195618365654231171074047581950109650082426936072667811267812929977459337780852706904114521507049788469146259165719181693802028729255302208590184144019803559576669371358209221627894987112251268655674589531377798083410436606829675127998505678014996723649667555210565155188871688881763715320288081667183747825786299042035808583900359304074345895607020207895012598030921946646479267784073963968489973903784732004113755790167812176192141550524288940476460982911494594185324948198842045912308865939175094427993659010677404127548428272530680661719591790989844214440091187964615960917176368817239842735306980644659266829893576817852097145956261292258350243056692615202103946678620467801563975793952621310096070397036066503517283491531385848035898226597486327358852113144252750338589816878307607557942734387725698125636639044621284032233084019453080349399258290806662604418523359475288238246561855498661153406063273258007154139332456155507817132640980441157418364348358330627042004888772473853041919016828031816252739999171378707300029350105550495368073501228149946820272696972683264152800889241635808787420885338843791764489456731781163526798742027245141633236838512486729434973229083743653462744314529918112834158125766202645731259977047948173289061254654124145828568817389086960882801035132504778455862557531820597820968040171629280207798138105454642660385165969644087698663305447620035505724154823973278228247706788369652432185040777002716704282141109304209307185766021621456390808464646489725614488679401904188512000454712312828822561186600233492913095620450084019150013356874656964736595280495306079404636934464678327567940016786612442980770256745981347987509775301036546761665355300462154924064716583027331786994627237507665320685016136542863524342666847368366323261723422802249296113855014772550616316961575664044602755965927571922392493720104393673033502384967636469654267876568516447761578048175225046444526268753764459776302802953216116192275104421567618126112243616672115671055551745704975320149374501029716973270825810218375903132754284153831219306739048938910772666055414371499239906010420669781654999723540476332305724235922879470400272233043864559974045719411940312763285096915705253296807563525842450129453184581802255976795131848751509877970676448906152413678957208479038194996379578223168763354040324715128800011778326363281078545387422282990588239873612504524700460724889155143464420707402111974014574511690160916340383561381455854976128105701517747561421575704664910051311842812839056486481770981035242282623942629942105850368905320212031410068959585699109206829733365637622570110418234841171700155247434632562737301566487329591649679714502971537368960421594604931367607780003932425449399862706708238390510566947136915854695401632902571582528282556155175769438761542956396832112367440385503451420461175817746981652765030540712679665990667959671013375092252714397971586361583723382830815467766144326101247221992097469911998333146771093131155822247001756339656745795966358327183860910429545924529231458915222774896733310585342554687282477568526000358385514609133744939994789981878944580243098683744209970737477980388013887075940299980759540102057581145359092601629357023730814598732671334915624719410600390621822790161367394698745867195683383675920554400540408982005233545780368384791626074558063082422088660106014368398896279427332416312846565644135740934312047455343296755771638129106027989888642049115078766656648388977854017912646782609424588419015220353746007420637484345764306993290941865993414506994376737018923919528468428764310478672339461662816521368474163056919425967962631081265792096448043336281547780287226376232812690408627081207981986241247468036691003625948313222374359202347180464662613622467231932284203079038069143525043326957056945082138874870073644175669737026721204902869102692867961732792908240281038239490422049547869315628554037463404222023678898300710946341623940597378538549157027514966058086277544753532133760552660073965225546223001958956530358201123841992751824562538754152015242897135261873053568433810708118930066857318180685360739840544255499428055116234261252117920565807011755743223964063162679579094124706584207813733826287495256699283189642098403710963270611164822280882862811627182880162939996064430529854612074412887091606474406272385307152726669611568382730776756980601152864664830443669472799508623587290723887232939834474104414394918597532210493956059303403081832759282600494715513339065165333884974885254645723690453688367780539606298025143724378047219899663515158977101874423685163418070877422140926332249263935791312398911425665955603200239678217781017340832245719818422504945789003703414847297946802490393210643025922180746454616952664233141241171225109213653338088085792495933505719945061583413998809368603556818384315608143545761914018041306359557724263288388042959936686546351176121602193339795359156635161058840040228102802932045821679227604711111914343364067017150247404110722875989680354766807569403445481659399996781566984845062881095958248431163643591784566247335637356650228075216043232815814690179423791293250621352564830286341772465278894540036928769311878407757907403609790312437455575688135094128129535159412246017436210387605910654992317839483032615755811109744282677379435453146003461458672861642869726690746784369426422321859610475050998785224240987411947680981334036838746179454536553762915151171570742451754237673954914082798828436418318110946493378728325889130151555935164573691588564061317570676293843309841276341820612751996785099350605316392047543897203805744043870028234893042052307696274712719451316783435732333801350480001047992773605518907981144790320139646328158622178002355483268317752000332023809934833096117858517797358824389465371369830147672268924003983954763725957381988870009586266623171338406021837380808498310627321463321051952686772490514080599563981524339654678159108694317320702009764518436827171459058547663133341159565542238154108390302217249980686245510402094373143695830681715976254355387184982376427364629204919164544828153617981796836986019056192770588057484374207609711852238012312915320617548590903267501387133701557793934945111200458097819728766632476545340734881704266414145529820032160083491755619384835476163084482500322612398433068072129144551077435627438975364583282324603228119347137355763622268550015767225152345232226490105401435698662595399616054951557837225502066643028021629552335490170889863298804500818843567156256980496907567596831075589382815413149758127451884312358885875757153185655047557625908425145434867676731711810725656878416850382593676774675390709438151728768826659446961015816161760410100935987820448077321196589642592555410489291681952892329920138129380457588897582405891015817670058461414347030907686527330627929785984983825640054851123321474738738846531998920520383353711234229181233479546606449546579942064656578111306025188998546052535527542377432839713216772915629605817859797692969231155655424253183124107423808624375817873309275088586729604049433985361371341545356098399659261434901565728634629248713680964564392104962641086259649643589502045026891879389785917579513087669621924398709473782117648652506874618377735958123589656213185362034965595358844680095444711933066103124368620844808320740687049669803643415682370639126302012833400756676654583761832295169660467839018478354924413328264225311088580148714045684221615270762669020183922643047740892609227232989675325011585050274678978571547881210340480545630778195939634388912128595614971464275813499693026803054258048486876440845843687922427884852645671621671635210846776722514439347438025800381920309711159468188754219267477746156629744855703334649080331626025500699934392399288872919048431786934036176765436863578229402763769257267226178713450441972051159687178575789483060617462887376426972592871768589765202191659943902390414358445587829661939447953449672531644193785459131281325697309852775924335932850540273077227271089993848773154550628907570208637309401973303136120626507619477733852660668070839880975529292574159152123413517442883928090361136209199592994760238304368030628284008672548186670496557995592986012983721113235693941947480218452353768698772545667893013787218024474851963175089289091690913573940469672252656426555612915130846789505436914202150773913024769030823706426870960811450014525757441559084285537512693354110456239275206776082067053542172060883775412796414446595946556239255231500314969972633939823246699950892797203133423747766870483894912450542373212489813674702443788169174961187307438856380358930908862580078477376643197197278055121003297765340250722560523475993974711595132092411633236419999886421999529025819925865060856266190587457965279656899709343949722171936505467732023377637605751790501174466516197368463825438492446689250063439609851603054062631377928994529551557550025828588472828022871522433233700970368186004620851980804077861279739906795365599879012858338662913397268520606515378372884410392094148012669159194504242193655409854321773986896364995048297017803774311220899055731927533415182455113626702681240275627882373136055838997842306023988865195657524821082984513186431623917355443243610246549805406854379791222169525742826093229605768967457836610410509551360702096225104476883739909986489428622638385100804749227886601402673727901320755371982890513119848853245415574993655991779304067226817569866150393594417056147444665670240440051165179225555387747595876614893762113624178804287025214301933911808737856691118303581268546359743892422614430106307739964522295092045792427876643966621418186974191892700312843233263552932693943860525497088011582185018553395209780286415982969351650704067484011427451511171927467728558116776356778277640125473493038602368388414715027553805638906670426526084218080722779278426830940337979258016606583936143599603365203688089533630303809553186906190910311635661772526493502152657407910964231747566558005692278099070817607506079598244059521453875311427390396698033886691125045181601799724928158205306913263816458701020062778812695888642615362358230252849600160052990326422264480331397863576638635937458938113849472551367509152627237430893925946329054117707736184182662707404388511381341282798524732853257213463990053003335995493762241160107839940597487535055641505274008330526294589207596120271860328330563278418929275053241901453754895456265126901548440944871476641513641656108568236301889711691908482928999635538649813173073296997371138122450253081006978207977496960095961043832503597134370095989648182270071653972858050121027351390928698778303841404512888999737536338583599302076727455695002932540684280650171522294092223411069730369898129838174457482851295206851810119801090159436728199591576881709612622681983350867845486025484387660099591361043890304563811889974247518761479643670972778624675547847204144708504036646639410950630800419426392098808454275944634129578808872441319828593695447053631609250715671455912275810960388298807390493467715797477681412160700305575132567792835749141473994238170307110889932818518916064897640116839411215220276219930376499292522872374892737477910525005085404184316451678131002465642797403166272084493385035079550640919886609624621966467605997510041632811285695126558753978162725642224167418924582462639978076244268480310109517198274078279781477690690065434132521069442376956748191857227430706840659585363941193117463359107065107333900431468525725911001937257985990493457722880640320190780683675516226834383053263570170413975194352851561019967524826682214849822045163646172510444986967919894273758505248934891247534430695676926706881759120322246106461198618543761269608346834374068605543556194768919819343754468119567240311557969622878538033761844679642202360253477794296032078418918648133224902312993496745369206983892744411019458846561671133489769128875194489951663681475365902481153089870581927861800680729288719776991554073638877568038397019317581204037708608724282918103283962398622623718017710530503505805331143998877622557874755103889340704919817540633800580738265058137798131083888083440246801627760413176202625344207948504218321037582160196040724490552494970269280779493428437770459576198124095799534087058810067132479481668747407250499368099391050466885868373615603964368268552902686033385774102254070582626717387378378007273276625433306634773508683397130632773075103507357374755794052680287804249594361581977992908366094013584544114643174641748440566319060539550615849966331922342570234038362550013197477091481019841527763289230676491214451990841378773756556757671174286247728134655805506473134358512199852611199886352987011167966842620795229142473551725161316172419426673722255228744798897702202580352790711231546770038729661505774531531745583351536899148840715417092465572223863349172054242202148689388978063261248056801900816686620804511352802952792273534240308286815329262357044435683384092607896930427273274762654505703129216779890858056011431721734199930470430303377145161110934512212714268831629281540152407901214712858251729190881151163729440003473980899649977902706675303083933368233262372588469270744659496162804021741100872486662717929719790786367038299161985099242572592211253642511096418929643348489870111227575114055203288087310109976100945704067429975547606557710564764294368133021173110617760300863338191857895370706114501259044364167607443186955539193066721865161989923844934970372009288484293572963197088852623968918114524257599500803583512392814257070791323311648665246092703405970301475081269955783747339712777922720712581653298141521227103012005897100596804491876329936961158520412482623685339987387688116765603600601481286781504536268861884687099079318129017620995732478791208240118559546139884146426785459880998007099837827638810548681257647649666273928462738296323642458688405176995254897885519319188160041194463747339531447967665853993857495023636568176289121537987730070613810019884961486354885360698908473588129853313856061572107721823195547545382796362001639531918146004813327144119807109883227034411837705887749229154890190994542857802353186134323901041332649133747328119324037586224163752052646600302734938540218656372532396838553182820839008998387201805594794974498266693040632035177130226408682773738298852523039859181888095968792215013173386901945826445856243741300883706410909974011096103562351404245526907852430036072883714356850354494263264831609841873812359283253068473668324675208467371552015557651439079829205706820241658622009891471530207414052734630477385242487929913236801951010659387414404158824831078441004401057165922511329379641520428716270327614271886003049650693995145555866596577681413872178530591535507606363301816225645403444702125473787746427095711574466714327248654082589449136972446060734369710566801063215137924666852719003999193182873562976482985128716446657876627812077950646561650311044856149563518031624193042596745236038239782004594247682820877734082473952092715104563063483740687775435901389584965949527149364259619227846061699062218418213312560275219779661560624663413612516204508784692569989271531265636329883032793828182058802179399237208560879466031349285119288796900559265032223884597855951524388183049251989672667696451641615417722742984781623849960653171596934620070584712470619836961156525505954848896115870933618973031022778305005220558250080378112146183161062194472812733169628232192231076940268401087920227638498382294532850338967866163283949335282617470627851069168223637929795493998306539080561361585344652490493674640726586029117776120556471619726425472045912280736917224063357195656445973384048125426886547751545719260910262546683983870650433934256522751529759114297502260021109600902177246713664857171439759138437693434020330896595407959168412814848980041398848252549926210460942355872222339091425479219803381708894995487050697828279388696165227510959354055213096340601550715749878702741260267857621608432997105730729408643110862486013049773189169320800325817322774159096292740576870903423757637403023670243222838493448960027511637370699117378951132177575194092952699217712247767216131267798168234509036363944479060274807508763332892308141363497278798840394873769918668347722136055354080527927932437860288504603674316256993019780680980163438943848894741887275640165838532180202204965697135554125500473470020945467926381485373158673243598781400956378828953446796920779549386016309047313826533866092929043972967781950104746839436635563269009625016416639872189562989989509934807623437726823799204579803615896658734598980851226680054246613107840844909536764823644906805581501027867022426763938967367693681068960255725630602633398443247477085019253828740052709578349964394036014093422635855197478103927905467035963689138057392531970294462831488622554037132754283758103106620928759667450806312798736815693407283918767436899243350852006795336334907915201440218729401706772796482239373132088026792709949883603347464922240439925193351274914090550757961811499159529042529082978708353345365191024640898860402674990128326747419053876017008159611266662049821994515054008338633146414519506220931079200432223121912773626705368265094630673584892781239915143990662584871610024313408360699085031580872004804865256665839742967095224565269393565678589038408876475809480321038451313511369027316742605459975548994645253406619681533205510754529671110379318577549588132586185061098685492708581974081172894939621527430647910256256286014709661066721411458539115480597422822230388987912614752953598552910981601302688367204486359940801353366528887601955804533818632486748788483872641538181337577324511407857618249276137251936674297354750558920139116723708181577837204422349709032549706075012686920257594451997926079005424858505805092784162119421958481537419623891830045989660500519333973084032890618116664791513473697897272614603584299133225412756022494204318044725094186764586170249061371882801525108057942372081237472560887735794453451776427579028012450734227570962145508168272443719920905842488610646262919449202135261100168726877210840781145419024032057377693261825262966786391218110739070504370264343984638637229117186808496584379921509847109410340016559844945222928353375601842861610774660970267029173130297424872145881199049413956081552557600761409031520242441544246442763164307588178497173352875104019325716087521198099789407547510463661104026538271942525160028429180701941151167483690047813163573899357681686332304648383004516513955320068786296887004195764776532081582865306170042618662997801321367930597026275859478156921087366836793009564938562929117654500511924717633551590884402605730640200273792844328592344775067709557657479579154052130049105604606087000901810284378683955745456528306308343192780160286154494126709962237910050375588310338447234066179074718844759186244321642230056567379642503392951367711884793043644036521270009858864763303788272483085556789830559938218044265388934293959677268909038750614458116665735745581019094025315358627640134587557258346539127873630971354016567341773520353944816785445864772523300889382238970608943713974916368934997200222530712034475069256199742220699589763757237038055190626891632004060872899572165372676710775442522307331630088498938785376848965786159197950499313527105561038263528648374598983986142120950935386755716473427390112922878449143280195554791560398391519066823061305761446368939344284281675138623304426075753658770300884792981124537403413175857658301800815126389301200764202195637528296479446703370807318811304954195091364012201470602813717608640084172671456629319418966701662222693591445947176932703407175742640583741462910362756364271026584476942613222724966369477588600428317007112020234255440511436562810388268687961876486811557486838930429714330465866283427830071944913888795209387991025066245733995575557183422978840966888065575454731970082561272300187313546120338205009648843410839536164667454783224422037816805441092294127553219938938249770977618771502370896436623818142555770929504079587395560662310388328016242694876711809471548351768224062721513107622904725105898479472503187974175956897762437082281063223690932378778850703167588730499646170440678686735179411886939783133159122497155265207470815929172455151843499751646720655500771582646494176639736726044678524988612969009851727357418912034349275099364762753752872414439669687478916488880483180841642575682518646095927154073027595684982415231243762097250590211583310201031026340902633154392403963643957021737341097049264576379118161501874940291325768519641662037778203419472161643304102103829861513873564914307445712763241523526884950317432575136376003383760417591224404085223050113433697763594992709679574020502622532859253172274984971037796055671092742830157524904732524854101768953220083692151954943279730308529840108561282256353445015053104719543698222496998264090970613278091057431065268218782734790842108804603540613149692401506992303480297084287373627807090164294065353888765112919937046581264649827382901402170832071871256637438807200597849885267626511220188001088810607628840203966857485620448555097023521107725074892858122849578351714263375724033495966131748852382013802820768321112853648356426795446891158104128626037912331856073977064604820074381855781159288619332232135622426903095270494256477976970257045069902344085649904635539190000113811820188684751827628093927783959635854799082017740010343182919231558773036325011619737063944251966379498261340688025394201958767381017341487931443080702991525531498809718834266711421519937956343414296426763881587862221129508950245768268688174261358560695761303945344601813189262987488966691129432330734733291237950237591293414717600233478253925775329919823905763821600961954624978286613074559590972414592582562157777449670839209570492778522922637783332132570222737207393951695297771543340100380895559969552875231690676032842994036757305649652455076792772960408780461853278885485557374015504940128433829633838230508597878236855475633774952737687949609039623346925655344809576725458965308606819113785844790275278397115727593543776674445940547331822853069960755897815054574544819044199478445367076917316343945642806687948534185943249446804364090082873196765184415054260659705914123792827949804015749482647509930061488846339524630707367655390807462781682584211913216641456612144204501575929363811333877271152718524950608595922212330871691079767937670139377029324554886372020466684651170935841841998635714824101297926874258539361451769966558441397143708377853608829241633222960689747752393261535480758120840992716546694160865387343280967475620395714014891840181409162670917441316011245905038562325662289159799202425043717357113212529661208942147839939544064208611438123725306650081776622489740508648307768715271570074584559784656301465349522401831487463882288102441782870188678272074315672722649071282246877090933072810285613019557670330072387077241890887089508021703301552915999297294543386843905678675707787505583175710727721398154820608541747146341592096292480358861375335629576857185067993401124219532245235548717423243419837308118862765851275100432963231489558423407056810458922181812169544616198633325326846468046965133997058829808855536092450380356285711911800650525775460134837080030607876380585946304455767187707434474590481886711920969833141748500248027201142898323826831664663671897542166312901102924101021313633947515921289557428742726406790275250566657890986633040919144486703414051800342624398984410996924981087520951012249132980136052276748089150982745388589368285687877237058823176872908046793676072909115641938548015858267846047107401008461657298651342624917095358539002788990257569998310890858873078011905360199248259313411305469214553442120696689992930966510829990517096294894584732575277748917651310292338349309805193283849905158514169991071473550096477378569291311753564407766830227950551248144518314699314294041548486192167135627594685210591481724232292094481598616568873532686516116719786647319878625696620976361484439703577786476446808646688653219463287441672603316970533176322738033848905680598601169406322978497165204469149414373660153096070767289537072024064928613705726319098278760550592908401248594699419065419044994694705763409751236923114640182283215704293209787458138703122939488250846529915813686531696053883699492338549897150094152031081439116246641593713089742469732399627051108986653081685510851246748278224597986074332554912556591728398183073582708766403134374909173695819523722386237224639877099676360425279554404165328697609961478175342036815338375796146440258445520362169653058729794973494002159316314625844342049800404921881350239518258759812109978871750806094825630713828781841255827019415222352750072566180793703188422439890061907114284435914430129390882727411221600319754603692377578239340256332000567083908632486543084357670466143998417609362979425398277043427699965818638050321119882120039758655313185393590256976278771615942468442831855762415234934410910243486515980483341596434320658954875379034435685289298055140373246362863888391166042698722516242780760984379469053999911834511897442754590586430458891474606465605627479574479935174889844886323011482441402546805758715104359364695745903983561969504243762245400731710588732880566144211865318632191655092896024368519571844164331514153692519869820030396465002761339495739196725805445242212873867896332807780389245406467440741595325663254166262534756734993549050084678298126975904311217421404740128610603927640982524157064321680488724494578968913824937807614951887975228405773240625221444410667261722886072458314286924110866067407141786051280645127296310724643796512233649704278849934806986377367155850801664102302397169291403554133395866559922386871155456012353679240187957498544219186282759203350036337343416807665697753443944491095658050826694350675186436286994902477543283838215439391583394786717304537715371744414467525134065142767956347351540761119712915137667329641895516661728032048376820293454881212162880040149806780784867521671722856775648516732447157504089307457325417548985168964323241195720085896333265341947576318796158700659508791648583664727232281310755136844494905860830877137340928293193843612729639887429111467656406761466105318095476069659719715888416762385296396149538506942896090313704808453356663938377999823350559946942970969721474411736949536358434042236124477183736966024170842290689726523170157100094531649600451692890483534803558631391178057576383830909461163048347678196500669637474532630988083681784698766083161604983007114357103849872475041984438384164907115018765523320755179933454672639738102881654068959627369687082105149433096107703859336396745069257526507015674231113179155138551367449725829468770812357256763831561530236049895756171853300700380648571142294122345163899227134188988439293633318629615754773807316121441774563846755634706552280309864564898562205837566341607086886026729858293003143552522391276934931091758450317723541247689498847466129563554510951059456014301730578399286423583087285578376100132866253221859698153996184469293007394025856470314374511108311586021711822590238623821370827080912524381447762330504059980909564208454678257769283861803323635104251182077046246176546919690168331633654216885529407367498354190279782192044049102198906918244826660951058854161641931886802789723656558678440292327795643868980890010182240907172399772699132743611342630037113118725740289402777516084689308787193500236460574965022940932558435086074938455397195277452975849202645108306933019394785871913427364746152888199833047446525965137272837813737562968992885647451836461216231419478715807705428096677419519432438257520364935852784337939236436035670836132074913749742661501202734618233889361696329098730207534027945042983153534169610321998406701826575108626866167776264565189691927918640636312577891699634604326909859522675628216539491305103555425289017603753578266516078856746996089956241194121147876566304044620077331742618505527669194319522630412778503725636856497672172149147879769403373689968896203328351331587550203952250004854724172224152213222584385124640699018171901562267606661152287204702898271373112516859467537567867266458522872993249512206827231905809146463929846713536427839898293147511192853026626871438305264625255121325626819807144432008225887082577689968243752068087083045500177547306149259170080218188243760756743984260288711131588669294318906577854579324210809305851903392600482003677577277178296362867895355901515904271729151365987288053402783462476232049494625839748392853623033092960541033932146223591611304631858746257550080143107476689627184731331898638381014977678406012637533867398234137694632842949229605583417379695847703168356569051818085164887589600940074029604157794913327864032098562302195544529365774911710683196801952031867535589908845139085372392356464647854504817914419186351434406674516013734193822724818644301728788946507105695690745539517785648912193209242472344028532271120317701965328713256470418955160333056118059010064883130413166117456045994384015184580468796743286778810551162162550134336518048145550182950146998328686997098933865091464497756920525834973714859071141110070008039726442286079545769084999164166597025387801280852615606879070357819702029924520539980153699386375626668040234690880996202706419799807292979791714829279322626402558685935391446724147244781584484342065869011796351264793232217606805968066393051890163962264232843273475198772494049007547220614728727138360350370947000807031199347240179142360334759919830136362252219798753670713544182895936797665297857617959219719341469833762482668941821515495703323764124832081336985600572189608661084083630938639002702913122745793150285273588896097541313808232227202047350771364653490530537241105305074819536155695468295431220135052204995695199432156371555547897352498557662568287713221155712189427998093494769262607707467124003470714136659768402707562594108147329364235959150997655997891316612582771006584571472712716541795728974975749546252872980183949782538715500888402771443979337897026505764677208572901956447385785655548694676574607438348361537978530184523209959531953494533354328783549351833276356745992976023119097421213660964790564672076548486403256297872848295629857103823839265693432897225451573637994612004331302190395922546321480681649226870908506016040366640529735249654722298391316367950641915928824342531776627425012606777464644093335579161804075968599770241787879896338021664670934586033432334381743906719346714514005583003429078764074681621629427890045862035360259257617214944619705697008204672579204672398640391892737283885168351355234772749243324222004225890695486433719953879074573201493861454333653824240225378720887257454933426256025616857720338899908202179564909516148375115375744512446344540355941196066335417737787081570019113483088147379896687744214182289391988007919552393928850926539668779437291228126074631844631842637692928760910568030274573582749386487467311211592258970779734623773830300906526909603541893355328627686428456921188371557610160301366447257537335363959909778533535912835987972247313009243552902019040858122522817221548334506979599603378544318543503958093161196700921713524718996259245536132976850334310785362598069728048545092286275639754131904692823930813268346684656043094377669142751442074959569232016147918571970984151156013689479419155124424256779030716868818828408656129290792701282046155509464000394736431419751062369621793730307283449937829273683717926995921386785173224948688740105591068371154901050644018570022109418876096992236210295333961506677014258853333773266473973096508827330647563664411412807509915152716228911645315355717326229180463439027166563245164580715212505272910695376549185854869413293186155299764597734749974518717609027361291115743192954557902919626553697615492791902552580123788912094514177810318501482016994274505528003708125469027983948924383058318884175593466059616263516674474071284642165940700976816128388024001097271155431480098497731274746951611851639097665769763021655177051484034122693708081710559067432974476125787091403949453357690252454053970304436361452711920941235875479131225595645900406195354232766638471614171159964613372123266337674007891027433063991576451574506850274264523378957084583416392024419394255675117150337192963231436170145509499860196063546762994439048441395064802047133892146741810944900247759414117931369650539837559857349357980479853591329846517329208065947355022254174239324938622689193769689356082517285993397182854740002538061880860857053274090524548446770764042944239285671802277541709137211293972258590429106808625559029158376794629478765406728229744951916937885212995299541648456459265689492060650603654853424623593288503791466467983735021720612809109713273620876412848130761802848271994641626410531641834928365866531718488244069800541339404806494174662185291765487743074770613823854461579467434242149527058959671424879907975555208966915634668604124541217107806778647448389285857448878480479260891657576392327842017277029850345237436574204332521922532559380096144501341155025202648919238254991395718680395132220624722779769015138349687402710539305512982974777685821737863052174794824644192296656049108898744207408988707254538698329003740651342872775685532941022411793024316175908907974387200221431885895545443762025619648698680081122066280233779169647262322656794045821144190258529995133840168900792671407495915693617194636405614791059636933702037456994604990198220185694927778007279625856870987469237570258287859377348155298402908822131302803073754121151782939210798576341678621778299532190276605286840320941152632604770956113972600603204794543919272633158639448175481170569830833702133967440555689756494019123798984247116122965808523202516630446878262170405301448538204111815629823216462399407806570394084076582708989568426194234221684643260316972414218927657042672289185496252531054727759893950434895732352921833931032661928243073980920692232734217407361847022429583953557503556507073291028773369728188723197846551815901728528699111392585449075118611075850984332103244720614139199946601085056301564308108479998752255145740463688911505966186293150261956253907336467226750868937828332571686776751135419369932363571735621827971373888571705732409318498805519093697192421500932592585161359454809103417594166797934649731764419847121422001664673464045610426987530856356269899253642706071205830903529115546695681361836677713031343490006437865117726592770106095017975933996324113836988959819376759801934180590623963930967895696957118563276334980344674864988118095243356197785328682359344937899375931484141246232989891283429546615715125876542318765653438529481739170202620024806810945087268541694674771100096343773239988195181170797515988360567204890554338142530572772967357879850015095374233339986321157992219931781098756288949804331498951280147116607742935267124914859933389576544423917677558419448302040816927846823814061003124858138053966546685602819369687069515950145163303387095227847223590118101879846032028007356141131840755085898407493705407528143756384710874242727356087350352884631927464204105979929868934068155373313061629615542508303077183754435506457581017897739611895384740630773993209229869122471063189133876308950367780813045048224471953345107965011129118498685512600790663190978346399346267130957530653821938584928553130423666692197180028695316440563586067618584239747710713850558777184340877206181075642204768130839873262870243548174010388572322490247976776697222755737795850351502863917233979657370639707037413892201362825519113032999544866760286189945321167996982470986821467958455963631868499263534954944748803698145389525557213348225643493842338608775208978177562808817919101375663872605182689864788371315860023053575099178564263729841762975430996311282333658131125597583241910903542624813295632633751388381269167074766292775089011913218450664513782316657663897132987944763349973330164086925554142848595153288754365227827012310683742132244100799956447376417531663212565767842957990378688490220059156145369588322995311609370149082232006752964029068447513402577428460109619025453003316274888326453172907969209287011705289673804019050571026368888617565813763105903408636909542269549124479478915917596144761253821346597631637758497348677899714031971241220515254625745669411229395401810633691212624015597976696168793342747268284202592098120150978043671331913299320563948181040003262869638985171809135009469992623857191797814062403763961717269137381633335850359811928338488706631682347452098189895534614756905509520527144770609038063385071848089747948510565660031371335670438884641869529968669548946189925398427154516070256542794565207916030773574851485612701316089022680052825697630123833185670589681647580684149607419870507818995445208401261974838135910780515560145144248007067219194541014065534075973888089195630506537526250363662949621079407365571947939081934302798597150053167682766801429795421690930081649706503347627301274616310047229732083174314140777447755461413102467853161796177289695698001201036171782303235615482908119347888465245253557132962745292610749310338695490447619455595614183753341307525503940296386888916254739036331908680887129373169961503182609388575073146865164872044436472453104644991941734847440000951569028595951820061889476515572594943247784554677527257657550610719798473585227682657754239939894405859503689624922744228759578615505762360617478738630291586450998067547292358920188043616805324293980378342575602952270033137640591753946884159390444705034064196489629578689382445733565049469377878940901734687100886903077105533101173947868114285440913397271915417842609250542211523344561584650513883028872169227090130187116444953542498116698680266910470985569200514219703556876318721233879632173269820418392562602324429462088920094399719559348155709191414816199247361611999126713666011835940131606218720057853538504729883685870743444323623227210338910880789055728730530689391329173018177017491111391582514594563660753294699974938624781301700853166725159941123653469601965048816445770856757048696754580638659772103950438618927310283921358129718540415326152594098982814507094370940491340681807242151524964543793014492041480191207292333887667945653719550794449177541176008204071005244716819192526699288141593175948095567877843379924465964275069035298549235024176389244893271848854494454295041266669481915270751384840566898788183200264678128390335708023690590531278385201474826286540815691709918286374400749375865248190649030508912099455030302080622650013427665569630646446587538484017478978196402943392367891784850284933471158315868977618395030917533158827613785631359243751323269837529130311277772452076949718088736283729693702975419331703528834396324660442719848908244819261660417775229299956598646667435176296287348510210769324682965712212959304430421072917633629570521504721239798878625445926283695529143765605877986946607815214939894873397048633738473928313808837682790103698915769928335559101085931865875123986970510681398656541060046690154321395480323709413810266912632856974697049056770749526211746859864499395159199362354279863600004343397715872144670311816701492353043913322751975064360884569542446243746437260859247451527409421774983140363158064000529703512008220774327347936461212078851462875276740355411981574762909287318214820180282339825178949036367352629413603301624230788818911284555387183465442989683311554079485454099022221285734786794638905285113764372575136619939297593856037621680074484269174029429258458725784452950540460668143744908539311770301663592712167947476409180714333137447045095559797958903726553447795842819718800766272414294131875547875704300423808285368694017565588036404159511161143474745660321463599469305130847185731064907905688023778276812996846344922961421565474287122659446938103234752465785489221294613525806612513859407227896010877799474847771443515281150803213461622684822104542674243708329035932999482191871010843167490091591082731609700478692610667029153594202600312250646762439590018628240288756015264286082380881604293569853093636971052132864500295344002247290926176577849377476126473239744376313845575723955251679440913083537524714466662582856861824758455874111974618851916042513074665100023203431905115657328382013784100107898576364604874192744212877419438262095397414442492007420755250411276912915509244605848240436470918168106948407219644889089835423061190356837030637960664699527641926114192617553769889205280459788943569415108196306995628812271254102098896779502301395087370643364879464427156580605198494300078700818603994891632390260881693399601991024181672257489842742881889531747460226931255966156069206742544795522586034263674800994806821984481625161658637320946810395226921744537622413228839288649836176079977936487296531887909150596427824125860271467236410200723025727057123414262759982776693509240603796017942484941184857141099800015628278857656730029007523683733088454126685766415178653760016591125706854491786046128799606407946413006358074686462710343223850705726605482566950106994222832081878675438650667551399705421568082176209859605051889670120754848296476766534051720423043379924087499123823519744270535655976893450192679821820920203085304477577069572821936223129054202918750824752689384988352272996791575146821766851772784463301309286057556374689565447350874830980491118151313819266093119668111207856757382150887428365540569878261534091829762959373726034341142362571724821674938854513513641570139992572073288903179980125369197729998254495670273498855350047705073190607010761469705366097717122451896149618672162040881931896137863805619621504482521925228659149219863225949793685839761353567507880218679503281798404705670464986517643797518745091101544590525267305674052096309561614017979613491788065986982534448625734623991115597956876112710988645128170809616199037877239938779712554332792716717251341759074911606270695046963837604344041089018959634062304700950352164614717910914452935184533982244717986152388764753641419791013626146819263626080724229007759037030920293330015481823406250196031780005124245572120818395948744694661493232542532023508879706478264189764338578354712870981522632374869274504429405682055562557343007683464895178715465390297203039512922812050919296353027009155016719358277414979539500232724931729154420652616455050667095934830475172060800792004650162597615189256833018974681455375194538731371129030932516133679821890441119136052781548580332243181202557703120885337891987431163136012685974243063985569621419569751016556007773722834447203064273466361940411228464282775141186155507245419975750814364648327218992488976585647808303292660039015802427295675632991644608400012865106240536944142271702236371116764484032595862182735380075894079624665434664215032795972792338079827499387700529734476281125313957981745507748136362282711185192906111284933586970970455051990951046676058036029510323795257184691177549527615436577110004616638548376989640047433660711816387024325798214486891974798767568814570531085407316158226216945586022051269291947777395324590799634270783972817732297863736143331090220278253083662300846758582356230146394028039931057174765477924226000376954525277273263024861989845520593601295151140807742246461266262678832473237886739203357716583992951017110476747294019604222933072933542090803425403560525348110512319146274852799941801488553561761345105827657540529127652150680799340771497313180232740710407640655127545551170535669278774978304231426489246745971883616816204356404758554580350263478756625342653627480364903661762447596037533057194449892217770988595710287920324015608180227491713540197392330539174774949882723955074326404084862967627016168964873699214985239937646532884823209565032924253337249919177063802839715933339688439891139737084986239250207234766627176332474563079784128288783184011480944842754758581071976648577259567175778957032379547623390910022563212568113934547216759313626455298582295215161840135695526785236443831419639917773826270920053783502016128580741412504004201842501228892264754096922694150268106773484744590009663688469980432323584622230245355621205710699244904794827485793791481993077621461768435623846559313228035829250416969338714618607658728076324091818126420373830064338680981637858258106410410502832746318203155217138539827476283673709932976132888098010218634764020527152467514570625634153076261043204565888028155176655992011916480769034998191261885606986034847788166649530441296996312602372289552999956190857431811880348696197428802487297250115599590041009772697572251867698013181881300175035648214297598339469697923192800915210238249881227278119255243940279292319669522891827750431820314147510218813971293800100635184556009296370055292811136286596963004306470391825692274310743932801406755021790636540025661355919806765233312964403250468029575987391913916783781524931126400994184323879697546116924657740811605019392766825705480856036544459107253811835090079569222697288178252965216704295302141713297866462467338873651390595054106887091773323562433364025568760008985128892939889513538936592934470661915189981896808206046253312041356942693990490664541946519068314631597078511370378596983012575320052850487101044781171145892522250232782857938747617863956582082393744674134570969212857208851658674014453912760736550891797655529697120307437376400212167267712394833495150216461652703098946265483605348454994296350193682645425874477661311579611995067452005396634260726899163587532952609081361760336697752227460085257618553413759227363622928708710574016099537985637356975209399162479753209915953275639043759041310197671324694444573815560492271870164256250933214554340060227188527635871257562595650246089204335513468655122703885446987387599143401637792435167294800037072052528801156049756981842271480140455764452265663590271259285354130237904629505800883682788512893114278751559699413811802738429187588121079064556185708716964433723408427936101105813487003010101742624737210445333352886526636542621834749721158168074228266116682934806375494852863449953337222508156268734698350776726166276762515722762155104593323262600258621243021220545474065547108730813982037393537431232281883848140353544285344398610844747893815860401751021674884139618275882869473704514135199725838341195158135032128562265220871584450078690988312528481265503634182441035366062204394793601886655216604186751187220076387905172037669506968542459828248928832477888766507755576879273410151642498473704527015485262048849101021630186789148597405024830538418309109645402154236628605514169885253141840319096651747854501113360629708941132049125438527187188016171213152157337183349470821382070018602728842076200599028994512318677462953641935282102092655810897534341266221879445639398932582444656312266037286900357591220862532747709581465636898686399522599728971423863626045059066710064817303137139687729506549731382033015021840607687435120464184801568350864988196407618567765170100232586010568421350634579784104313534584418393784155430844005338220159456062431745404557672753937609286950161830443741110510399803679164855353790313538473158498417689110790285676154838157419223291557570945816905219069574209905236298885112282719605753237600221283642925015747745271774801172914754155962540418085738637087229065566234018428400098682327341453957682903033784434110427894725508154450588712763987044244944648828014583201987425558370803746936832818627258171631686406666720025432627086176617861533998606467406447687712293036602518082568420356522905866769723255574955751545342655040871574998262275615877983374439884041196638819631405321894184118546352380557578811423864267995738461846391932212697906985210196311675677817429806668667733076190669005785953815760771048917305050123580040758997437375351639176373135874440208655347940128639190187541667789924956215651798988423930640127795157160517142814265811309076558954761960757442084604855302037335979545388040216630857006379879935464375366661040682090547205856002264948630002779316878326117783835259559941613829986229287692812226339780718946055951026729282474584615171316723376243690578011815935856098113315058359494387278500355383078131502211833684828235149446813823700698553508335147073739899371284151164526414811337061673036194769097943228722004284105107915818751678549206595444072939179815413752612040010876691484773963964543654077052556305018853137141593969777162520446504434837616484755487857435822324882778983541232089450579091194625085403340734571013714184654583935814151326331295266074518434381879223517632430468934763614146959403576870933002103566707680246445466990817370436193611208526921285912418581873957945739208892842882943133404385341645345847501464600012298367730044468029792340253647796270722957494090140248564547991594781749952260702779971816670170904129143813563556517707755716710754790515843576756052156282960447059325195731823652723239338079076244858790612842136744470560063443996608930708024968062606414544646541518923315860616073100025765997008724497702896678791949345314756454207272845062426714007592873989553704220929074339399954740222018392749900398050631242662336016722925633513420393634944212527303376075248490309952117328306338843249355584216728780750915400464008299456698560459357201547445177367579124285807196455129708402863562975947393801200011630594210757030452248143577256729117761132760601047362042019197124030480214085586861890384263419858481596680187229149518890105765713668236297990176700533344348556940510533939410743888087520157356486862211604429836303343126047650072255407345474587271452960702634035619852727041908930451088589394136005585569346121833675512164726898162299851027154108351752044303430247631377319359175434409359696503395851263044353025367910112782867003307213646548415972296063502937876972823070772636960099841141429405304714784016861362561441000605149606771034039968307323220092561178724875039685810184177373124121143505816533921008827510023611863907434480431381241127998123722426160299668608385852904913717708136686876948174743332005791531174719578878616766592474001740374794580291326289332273962274335519767565330910182346608769891929491535870899571746102131885399682683166566769686050003169076039328473574811782849131623639950183658279492518657749853699024952631006810912521252186687895954816600142322045491377475673589500976240192274308818198347124476141431592142110099157670039936936462318472999412669781637775427787155754950754516046777045994789248494986929370571310791812478034498897292151600391289884991081635192498037857286565516675325503995412330027820757741057827469487051210829154046574295506991936010536847402551114717025419854492882388291287416880006858496054984941372424561510132847424932339528197073370775114973628692971470509588317708415704841639081389042347338321517043647394803284416928676556905262309392860946352855103797200317448944616450061842807744396209065099297148205495366647963544401214787288522828790414372998378817774342222793972090764188963289495885229628334995863346163912499478898370129442805071765203915498596577031732552463692388718564765278830713224405940796588540407193224287008496440907436499632340316349376353162197495001033548832799337910256203380134608837606437455209408245983212948080789067278219166827106550501753980542834086660779078005747612311343063384192569316873366971870827194015445373235144194893597770312949060063694266133365393102913536256986910861106855818270327695133941402451457286290188683604064325753580609475075706430410186185019907586606784554112205205906008939929615675803822664345840505475056966920166210569525408624430634764647781408733698536553292308621988261716482800008968871163301712996584044484084525144702839004887534496938640539618416038429758819313286337044782006144353316081711144573206476320128499152508988422213715366235144803527157614492223513513086107483730183078107843429507516260014528088335105634381448632974790988335330064474798000478140101253241009086534377493374349528734365150401942088424898235207090572531941806229261660727152472997703097145811911976326792735884576139582727660704737101252113935103349198786836863333187667060898125147230762380515811139749389677442810163005671883625060749346177080911745813132324100455124052418156564593543562377330203504050545468273390513824784675846121826571525615836879955673442804015359203188531720335176840819420589469247604437429131186933768452753912160358885324649356123111247546027284607084967919415953358556694273137243621783399415469175411627273549396267768655977762431938515705783440009461367814719840233344491567963939924724604853644455841046455485381423437858226254143607922346882087637053808991991397250120186089474540539722789976457460321006876555245944980747475231856679216278599167297051527076787995685846990976433347969308417023615258078560812579927468891092066894706969592871708838686831395653219091396172663918733905172863456263065426925680684372799689322368692322555062978156932427143205294703799522808552789104853378716642396905142651886772034218915311345266845692502834160251184758622332641908455433351294529062775964461126812093252758737812624884057735687053350527563869513434087136862598782101610820647655721166336909714752694048081491317538109650162072147421947953507338747089827101325995693150859641116032940829192245396159788701156840497925456174135137591462256523224147675064067708603073803841067309747926104345427210590229800647500827485194363238282137825820400111416111546089103290536096198537181262038081172590388537790050628454687440125801556765141096252275169333251746533350182254505382167460473974710515789884191911052338004537267520263867885256221294414094131341486162236817617792518161578829095777404588892265057523762634566584805345427752373747205122018063753269295137985734208676381825045250512013487211667711451913486803994477479767158466425397812000981078348855775512133170089673404327549526733226212622486462596652307933395422023439339769189713034410467538273742820517359538186001531868741223223004842532594349342854036580735899026972112845340653636161156881914138721711114310030448355175713162741468099537926212793983352260187667137733337882485913642352350431574634532803481859151846298388614897961035993673602402430574823548000875194200498613339311593891010738598400780806331317497970859561142233642505051905715007595407370655716739991079338661330391408857194877130299234243326173106315456391065145532470580456548155905586818789042350567710616036192620014716631462895054789586262726993750367392195730523127352123736248502701210172648548266894075834751557989140227949752266120156498593320947466865947562675216972026958161192486720034320127266525849015760288507482854912974629440948230270650803166046441748976927906886931397705759651834547204599212291457570023602235737267268079366291383250280820857838540041634126672650004300127280050594963364306375121557638121133493332228638760966804699049848242261510095203199506337920071520362861625938556270195360966578522053441387481963020330771335865042100512426811271068243079820807275807971517974596716091899113466272337886264883577202102522681289394362797750973988436677677242520023053026017882374366641296640862153756383978724433331307417688267891456030845338476259805817756354411789520783868884545155890795349652012359994827851458161438070217304963692805706120911878787610525419614302574431522865075135498025774787214939997209874083747197041293372772163003397700315360709088648670939440469082175159990423032241751268639395100285714284967174306202039795751213490896025073379363568248284756499844980276189707933466496655117401831017962261494931017267078453494388097130156715382908753193452642472247093235390192930447724198262275711653597556937793545966231619745035342084729527794087557280809526669745655872347085328293004791425624325102855883687540007337702724323318986795954803274560062390700746931779012389015153437300714247200335458445510816510591681969601309061593004743638017757729089026788987950528359030407606490340960944511809408384994507208403176056645265374212734963931302173295297092960701611734211828566597575552990494106268626704638781349544414198901687601187659398210882489519965012515924663371036895423281562570911596549461508007859153357259758589582905072944461665625852308380838065772153157287036568708283682791717989259295490225619811618374740888934042061839586685144566280506892184030686527702946203118009547836723146649754206430343915169827465352994961195867408082421305837238634617903106031916292145386777208081028294509343609073026255320201576405917275861690653980466408926564544717350910983612819974332878301718485083636414208873778929564482189282770903644338675429632447298129612781950058288149580959032168251845900976239264904994684435432872848798465687332837378340167166898600794297632622884769639580928256169655695933560691991329626275984877953451375522448462855498580740892888499629379866776271343703308981805208913507869179071234008036631074007635770709761214806536393999783976015834571917613518564798166240506627635484453799160710786878201897812278515158357347327344936868508273485881102618943743027786799117990683664454329681902373379377008997648277009096640170652447529046097302290715158527512554782318355889952794457930202559039436048242938292243221895461824138784262712943501569472321847592807172898138399037143201026044833529853047634083300986760290226629483233497934012096622279010771828166052236036724704309574385058496256413314423446496738972163043092084413116201005307953034132392496839383151960085719671322462813935938738040839525748149579237051846337624598115204351761735819822946912872218964353233325122087075864818359316042683740775068694400895630841799566493543073170024073831134206874581212027072330946673755824961472121734041990054910404878880086689767752898901385519559373752724176780240571817968232274366969504924722027439479364048200523499289054376553562440934794858870567222008108205740772186848717674929897181715521786125031489834763945796943881055403048546968727087010347752365061329308196120238601318536021933734114650843496879215108459699528444430961345766196660395306035312285624862285319412951239216465515001484005065134877311965690116286452661672520467313136270987687353335813565740832700182364442022055482996043923631119661103169367995819278865085516776111780731557645873122291625283997857475009667043085819292783036034941999179643873840070373832330801078356864771440205172081519679643588821349334587048997528371729294117374927555588261585706420585800062301646019019242019364896642480276071963926410784999027550668382048302928186039518142643715707012437726108755106616681735815596397996039729413057020805418241845608081202663352666228645842287057299412386012660485805845011479498778203059588954076754019320732751900754939277872752445920720207565203479780548665861737351777699550690619133937898845671158637404537301815415351236152070842322004206509809548312265295339795029323780046007881388978053748613562215250826007574176147420166814290481871730688971752730867933467896691072851701017405357771523900324031618589354571040163939389469954641890090395318515978573763571759408257023767703056063153237896285114201750652873746479147990379946412014414000752242467711298708520279578555255191104671969885730022552697413256173565335461033839971438872026590197627158296095572278998923358977880131488062827844396186698080989975237984814871302647270779719177756229785731514795899115492954291391868210925692317283187253820368289693800692073002461909928622509400219520083544319892567622455569241239203829013951476246911905171647278584780468364973639626812890362793853263450523508957187784939187200078004991627080296443024038261758453536297234444431505779305024849530946547473687195817360850688548286583266035968366618731657132785978548843193157623574627387274096612405839813442004800687741651367582362302351604186174274879549068489081533876688121750696013236305686132307236963737449698592450698957449305454771822437563221701048316414758675268890721573490910202570989187096921750081494699325303663891899021209257768570321012056027528729635432981978061752387984645670212601391193273135162642839809959225893633190819598884408229903306839199845191969490086499595375182133679793427759416664847187905143455837690330109294252411100096106279441175925633018099514291027250625631720272550481492619126738558497171308799240451977258603660968099094660698401104136971824993129349678469470379412128937421957253567386978160574756338732999404329376397643262029327966679945828884242950640454755785489832130104523894471305058111964569375349164194140841410717960624569697284941783113191531916155069941793933059428433310347184851703773907901278169362500308868197148463202275265030328244678548577640972694585683570020231895424134545176482926893371012555388891908421226082294567549576699048060245976517916996297804546274882555093885227676044646075968749331676418901711042540154798530564906300668347331777512616085241940828925298840570808406558527176030137738382572939575605668432602863663569320730330325244354448417009541195552672056667873461244597899123184480342104282787831858771363441502379645923273937322222637355482328608717648091691811185712692526864623372726170488988754214457849795733896780620648850952297983587739982644848398855118749132323243371858208720202814298602705913702891702798720782868094174506794481781342264194517179283202537406609585303901644890496840028959136618396503581121396066971441520799154789743143015734638385987819156358712533197782902552524810796603091257744688237689504251578295247950621509462789946494746996605189962834773930958423516067741495433172128571303203332331000435434823374997362188495071390173320733333713170321867605328319148751215019071642778354034803194507132793538982674450597726721455190944755018307912079213235768074172012021904412940011393388121756985132277687282433562941488815218579252721532894460486978708838689258033167629587462533305340224819647776472595917609514280216475573455213507770434893987235648395886837490800715504708274416501327721080502032008754498383822450850458932982830934645396513129454315026823723564933525060718630733251593293735715910874079684062163137551972418659624301295411081374332682162254041487861477256164075568741485981497287368327186990492140316449901616993225954249062054834902095254486226070810569459174669915155626085583963047859696057802150976407787931107575521648776830947099755609282178114284837778485023662600464158109394977774235350525028747284414842514870430508560798429276426551851849847167993795941212632542677774190819222486450703609444305256794453764437971611488166907173391481630295236423522059975959230967319674544291042400722752386565154228225590515227728281054146374860523205829882455541342591312062046113479799793155113937142112439275668912896584458340288088180788382735282380593301024736713234800225490007851655270628533445409043443124697319295559359692787284511254241193628848741548207250321535611285518041618980397287926987510540711047917388971486325120273064627766568692150717474734309063670288296925555488297303822398394593312840227427077492209085888310884996295827217250111976670462727878098195576227999721595586558918709189109170510928102056836564297264837815253830339799294125831234111880287892151821446297069943132735848631021614840855635249865326322995072901912652593262273977149047752093026308524528596078979024238012998761248344608050010436447509598460507416765361081328148480367235506176044654340578736064983704166237681012923199473569366912970431031290134493364781721366708286397585601316147280485095323777789954662655374684851245797710390074288897198857482937180241584512292631959869467173367671063716177958548076669598255735802361441591617315060047452092986170149791778202921818784883445534766465876923947381326781081019881268605295627324614214224230360427527452743825640595936716346703441711589328149924533560060825374580316645134102356524898158600837661874027932896397302889065754807402435053675284296710586928652790710128209481594721867494971772097893044762068283630158930058160709616615933372916494145707274773752394467638743981379169491655304350154306467382593899190987107697859073017419532960208061147662805115747650922202129772431387523797270926527626349221802391408954270674931079289909671348856438887487364937060170549517500828526185680920743550365236025626113245683208202889881155055094881278890791177728390270697002867318785351429050252463999776523716593510336400462842968929315556007219439146878007092655958242504173310495854851293138450946083802513007216031053952688811592980344585841095431451139181912031725818993530790274050336223354834183294717006104859273078508813151755150653230455266553215525446995343887045443537432449097505868605874797671240058043568591269572672238845993881318205509285479324357430518420774389022617200918606990545390985613879826388194595622860402026896611615318767119800535751926167721975645779818405183448934331449408744863820947640574055603052002149223195702954546981138328183367586977196854087468574486454841730293825529709793832043441135249285533152931360092774918971616205176090536584534598459814279729893567016917137303948430859113291224268911344409233728595868653255438805001457207406121741215451123651623009486591923566573712243450653584348595545705311133929898156410498253068631220596107069634515638109706357968104533213986000165760820330861340076179371037006883063455489718848233182573475933803287154807109751992932125377428771979178202846330072768405958043747878522982753424378937352919423369106925136000626240987192720563830002213649284151564683099704244261860103045515452682748961307153374367466455191176551892905924748087979996965622323391066659269428195329343025953152408637170713442612091344749335738561123967131061974118806979752148340595992250938235647983182818434178603953724264798615462667912952518840116112564781670076986810133898166060254824471483395859845812022007738139021629406479094021230118906666324567586238392037181058684560071116327722842866153454318434647393412841252777941269006280251318889523465159697563829894798088920078122501047127796783535590819385000664281290274796783873284310201106461893976391416053947542010479725944384674708942667483160164994992936681997751542252577118609383985102976505462240419146643411040257679339579071900084019926953840149792344727065014436124189850413887598464895436678906952887096429750994272087914702810610550073313933396286694985010837223493614705622219483584192317007784420851251137092702051084917899431295798982146523550976902418478686039541443824121062359382010257173871525346595320762570913976174477235292225160337675442757982874090367879918396023471084515448346506596931839509618907991397122292142195269597383582948863026310626159309105469514428983317698234557887064323507346423149158090037713917963730680714049462098014136077643334599380077025811619471096769636748061399608208227109876880288165569835792795753862794286695446946640326862574526951770357296173230132261025259762913985279585026826802859331311474215635599993450989055754128648203034736031659689454631369976058638182485881004115660635042883708506545404832442418352962378345594897334383337036418109954522079333232224591656213331558200704795728845721207874445033426851302716190703603504971562579009415151042890653421883063323188077604942294967326355410962593330877896195719931518936145615887684563112753246819832648163644250507849078468457817176245874829908419465289536612665150517241567629765479619383280701483266030685092345254323382110814262341178097839569773358722490206124736090866135212187416762387886793443315387818504962247293234773043605712878525913970492074564336330091043507776604619856633905047721311511436562088247908311913464473652619167860605845610884299248642666937315495687119739685345196036727405125433163198663486543691149612816892527300825068675434173783502708900883309030027069626481114270589044687903258277920063107467308340203400143286903699060407313138121168568292693157183043946650630326845222512468312562818168866246938217647640866530548699454687187131541369987509371036625309937892637839092016965254713043885687187928882067033477819166866272585018437709405310678793804358237067368254632182035924956088066504005082734954409787031283372560114132029288650821201411590531547030528839184256562583636003250382906698603738308257443015945245970191156625053616545465442615530719449048489575467320728569278790512200738201639520278176406583949302487350523516119125395514014305614566996052448246987781283518034884597429617017623829154261945994863161352050225635965870505575247792688766785989088545890318480076862230217785086402875144305025374252370556043074024033152647047610631414697915082958899259081202135757363607543429666362218446718262557048393870528920942338658875928468769332425406056544341946789118722442305879989498540559271478511800732895667638662782961004604731277047492612180730025899961940929429886597531826446352630564035281467325162773247348346945634980586377872298821360611522321041251413307134200369337198032685300619752548235457776571360763162461407585199505857597063982680533272154722548183159001128114731809949287875148343447658796871937073469321154782331941329807636079741838842996230541770115115854923612003519900731871730462038879006310927683131352237705759497049743182183128092473484146875378736669383880265791610509970213625954640101732959911352593582148562324981656954688799450467799742314246061868862855159158898185182933457248508299710126757984109134157581675321641942901982324809114137447805827798644057835079534466370341277806475749083692978672389443147503631603915716953173369126870522088485426101430932385768415232516872682681572181994996472390242680241504997250429421044144143508680334700511258416224567574184971701911378857682000938506627128785517494641234750214963512213881999860297615315585511457278206527466907921866602073829589382843057316698182371910825747810946989846913717273719586756303987438633992527274602000384666009888682732332325456990791861342582339924340083125889664569059326724414499278091320218137624369540274721531071706171375381205947607921309954698264192719985568240311795251183078458415455038770634777197245091959014670281800897926399195179456194976434502401657947438725571109333835336843165198982923339844725791360341718742039162200870179929235077307063979130894201524882364672375411143136299026747582621277604931566722861194156313291629429887665093518293871141696663380716686915792319837678916624845743160783167198076322305306150991453689888564319512238018408869405381408930988889844580553516296510073296971040871176782231040544245226550693787939701037978738641206857546077014285928746374154039675647508913339380313176318101077607079983219059161583470552624602738320063205700836084232293962671504150880591707575833383454427539386535144343587939783731891205466803753725751784839193456266348739052465905281683111277137801998130795787304077207682502703156470952823005174169760920188735847355741894789149114721096331849815265403177460060621790845019994550034838820874450338733422870338271732183034882880481141395191340441374034329025544475842403521614328689002101069790723272694226223406415265418062302788936011235940971803472726601656735701364395144502921706515568482017150422909593244405877675147905035307165650864602740214422840571257870150934572405784889676087740688474988834058574633724772947424548993145181506045927087891714676586975465532735304610398997825004366636273819009041695147376057777426466479041281577320159338184496508059696518784627605586757781140933849014816184054332376427742559644459805198893926974698539129178849973786435446468298428139478759240335939263261166519449993113740670547818269147931127392603133677700422373275199431575110026672494375261926621853373747800385118662125688050012143567065528432248575772666052088719767169459225849229175086485371317207714100575250267192719975017497707029331529327081376401489584775429559892582470663166940386717628619677062788350652452147483219286515383061583027559995151448491921389315505698937058207519106028734030140533192481157923636458692793046778877224522777470444540589844095071170855068643406758336890848199498221415170168929712735522530114585497717262762105685063236811717477113909740343390991566412616861759663794936663831139589733116906160091431835740396928860401870175308674473821422496172664759749054055433074053909084343401265116564216209512493531422502967162497163921428403584682050437851696271007933737792300976732145635778295108329418635341942950260557367677140742641209988911733389276655330157326231781934970008773387884986922822021439449826640664107911893848718957591001784242942712216674006185332552068903154525487736850407004483893978053608394247079504159791682420754491915386192340355034398163297199941205269057822322242152912870562320978247975805124487002036726877966569470196650000294905729049501269446170454517644654442679651472801477896016781135843063494772350773789820801244608838840595221302971850460881382940520889771400882308925272407895195452032150952807779418120722920040714380820386500519061312461758732717940752926123638676102594303876077661070209461631237735422400802240625104406230036757922673092347137451843274432392518883127856472554176193658948543620892844992209088859391899812543762995277179363902058230385938812231453552726661749279662377537349251825971240508718002267315532958516549538040587296095938190294219570941716334977026057346483305325371019077124287310950881466644032048875704950623799102858812396195574491611396494801694510360336453051113776811976973878263859414065258614135832041792909785288114543551194066440466940617900945454690764760378828201394675000642606014522669056850404762452011798064118431658695329578113397248826753028312892562540820354287214189531502980972775924459369579023397736555834910952482669918983687287006023912633264991837710895197283511477249939860368078191600570238868475237793032161690851045069365160674091131430565581907130637445795946257543902261961456117969764322526305945499887859784361825768702841160229868253384074952457070561611294803305747048676719036760140506720583803651577250237996512219522637491067481519621771343410708920258578374770942672417002429422756871643874929017950222601062118254632476976183926967180929427645677287768524964126454903003445837261669467609271399228826228327552709231085397271965533417823926777022383814605409738264645322307534967332322993806551353656569852640350179266050506598157035979021392757997778821297054621642986158553362353004252096025219352237759937245868830434287819807808815687046103092126593516608850279580905850725362486289014010987877459236303143705115787005117724953486424242070235171042530286026061457056070349804802813076747364820575016617848403659394741542003274397982775203877819114304433769736426628163223045093346279684935028485652111273331132599797743584971704959138119103032236258147172264079706943273461524551399860844475485496945929435423042888891842961334322536823277947016107779524024487967768043329111015948133404369021425078129452300523246409492873839704936839733152122502682071638299947810456295244658254236138433509356346747618632604352075784749166309605571995077143721492521672176920595946409884803387930244207778022591790484819464225498628581269655376812071968313455525231699411771349688913929767603597435081055430045209696656359584814212251962347413902783649262306470731542879182193035477762468930255963598115429811016596457964539960084516021535044120176465015438973170731703257290962965094579406786505974657776622099890570436952160896860338667321993813354140020701814623287219731177026933197968340289252411913316963007983393874269045689312209401435119365623498881284257477292383801763029152565927748145172554017680281151532819106841366825496178992356538200166741441054486571486933861552978164266235518741135362271589059921930094200706790444764807369505800367904636620488376598531774539284198235994600353396013774617009034261023779714882281464471061811717723590195456763409165970937782634841425704935905251545008423397696877811613719886539882755185717336202437462724826997674266577988009196333594141437603223057958230726208070704426317535559948371289940508020221253454971364747144380511536499957336697827660081055218667767538864611312233055584056338865243041037461946147741814058444142996892577522141108504782776003118746082245015238793721810675354107815027069282227955863441287571151093369832961189159810731378189134829766343351161141255832482494119464912071179462155628078930460680908216376157620020106843388380269073543796727547000621142873563649322683031441538980036628915198815882660253591227651136631628804533629041717649243553255252051556803944453362071260644922562726848406044106283967447050905056708109892849670143108843112981372102587674942943111431388546807529556075212314327035004564625672808471767290032816040788586954318642984462176664466517203181910422331909400977837457825589170454728664226383073936069281725662259282275822286716023610151855350574111140638284041942356079007261592321123032322452532027702283440047727379961689614567895998515366436842766011769405392142467502928033572123784632044654322325376736723037139005240573396561224219325254368002004942387961939173002865800385696114465125564747844218256616163630385360561671217819677224505554275464812748835845060659995584429959240530957221438081603825701401422921198433580635066921812727286671118636037018091052562919629995788229416334672883839456299416882842265970033179029654945384705082605650305034190866288467634355118940149287765913726357049881897207639677890972874505911705098951758189272399885286604832451578073713178282831611239271084376020791527091727910295654530606218940032156265195826584720176957242609252797465058020356871063308972857454160343218658123322229557836883521475684909104993215110674920497493786018707730111085323773845609464646138113353619143073961162862668760301782510584499024189225274376068818689211368457831802304713513441213036296435289470359665343890870332115487202585164764111330420437409945536269454672057480881029913872800845355278810870895424600816909814287313917283270099424388774949847995743813194741968023782362958208449014233332385959262883186864880965258958888964797431564522075644717456793265342815738616963418109236747364600767434382957234144825847757528828629201027391699628538679181018235638308207533242074615665409494379488749700273901007363670433450783262501704229795946388516815423457427925097584714672718948669041457214709555787337374122262506744465321362130654741512339566752647128044109857660655976239318303592513815619336204216331589242407100712452180676285779871227690411854453482568791720298990629883020881613057802253468545022768543863326769415193854669633241286477916030929095010108364557012599248852804327667187549163012102356939566792359453085145987077232024690562374409405817444729997616779863317391887663014836895914291034354671685160380374756384330135747650110172399027646358254688803772100568705472988765888797618814938384663754510066392153101304999122673925018973981463112385219082236931685880688509524199899592767101180361051775399099829837431793976510889515857216371490101233617358486579448410305492216016621719303641973996231910045877551200291027824326992264779191014872739734066869495314323510612392694526754950684964061796799344607853132487603138250524396765187389306419529030355122502561887870414483903274548100296399169455276832544920619058787299126693581112342771793717003015444913857309505882350259127677076122599693715358984613244852892524695645322754863799840976075320282061785402176154446807692013661375629049386421763563644918491752388120447344731581762345020434391171125893550745997160648047753332620097531181312886334638864538811923406525572344997541491180574089748853945246696179020929680796197695358600096223730716106776461180976650673575128377450999194372331703617068837478828082833947019046688645832346056289799297781169768896785962195555185810246135529510390884905757579339862149450938245309524481813191324749557688638661010623025380166018125204569107492736392668979931385260121484137719753090504116677582552101505122614498892838984839618880699348668773648386172184278252735625377787731898838631554831439805857841976436452646892713187616386114445857331876831743640313376498530915720701819502933872489783672165159935162657184134950231333147701809182698381852929260305190069788279935686614244333423167992203837562275654426003020289655361152574352696146191933715341022891981860019399659832392203832721801021187521716023856665680076151426345039596150117653716978092475302199723405981022892454161830596806762528261761249312012243800061817714292686857383680787748915189534502714768475590328413166293876665847375372413495198120458282637550598490402219479709762904495999263195837476977255817088113551353913783756555782287365582264371802772307368263379691976533015118370318790892530470312551511980774698761973465813371569917989867723937458776079191196468744313276268300989445296167129941038719248930461365539392635834282688910704129416132855532098367281396017586041546891712355235504499498985847263978093781745262505373303938497862298625453338372886264720013210675642513148867651519903864544321776362752704132269347371160957801388221307840494676144813333932397054153655614946263081923964959935023323102292232120279193698961191622981780970670042106094630134038001011402481955370655874706910816822090830902328863375382151913946572499269465758047667421816637367607514668184814266144763782763862125897859758047180296372181794945056884119904442507173727380861112627701793247839219812781579098892641863650911931744556854127319748785999891242286057027681374846932361133139426326165198037373414585612184364674149521614998082905267879560303701000241554561647810816778132896039782202905886656880905911610636588826018476508736365035493374502471643443324504098288098760244657288093104499787978109606961982980750659368916412020144839751651815339784469817434630652292158882711914533153722666749009613690437937648389951000224876696363508168949207548565982342913615240399663755099567761866020646064063120283895558129701130685369877129527808912123635416830437703738639661004466778495759119276319017407784509070617331057844907255941882610500249556416263146493171658200532377048344613895058896578154040260985639554877961141023462746828867908827522938601472926488980075633323303301540561631235631462130873213206526462108031412245458465197510651880856356867097761942354369710707389628849437741308847284472047315726740222871760801350237716522968352874494511648181771494121490383085455138383716579916391892901116393302969190040467514942360386965249815125606516346201707750171382014975212963392169390418493913910917414845005388295973068994025724850990131347379111115792731740756911620009963413972091300725853315330063626250201728049599950003442269628105706030631223110720829972210440332803119691137035196438751708893089988375254648331105026371965532757923736240662273740348078462153791567195226285550524986025552223653321515469400248349814553878533403694512536844411020136663692524125242009381422458927230446631880547184738920455805096036692415618155651980694752865656927345712408508037559150085612150116085974830922815874086988276572777191221139672878817066335024701441733114505334081832077255690600426492199265245504282420493255441735524190228155770805672627113463759386492074438262213888410140306991952221135104419940139788006831473154650964211172975543548884473995159490409599315053238329533580836147592096931187047576793369159983154833369821506412518394064765330785013992716907946186063845688273005742886733298841865597356005730697273345499373079426481995661845324841069552501627409580211102355470218893494769545614125243956647765891905499222429475842610893935232454225338472765389698642657900966017438819118458402379672476318732371165089414371903121904345437194281165206757142233222348728372649453704397295663502995084634052130546839011519171403558929081643337055952642580020596246618448936812914202828415956250318771683074873489843714871996154245525280615951187158209406346100621540981865295865502581071357582294906605798513620504380882639431768270403461123579104888005769813343372301947127030836836858271421683413133335668867772331086719093208636422522976491995303321739866130255959293368136695538307966729726521414260665560882768205607388510996548344446870772728786299155075276050258584603203336776536301650131737816054603524178861535427876714952865849437877148280852955303865405893234785369376484811894183727476993429869900958677468345747617249203123194766825047457353793930571791656045718935041478438483941820380431004544109971796712983161680615390687150935059899215974575081667288274796635243980132386527949164939120820511115579975315837349143600820754345661678097735493803712216529250471169661927283467707868729396636089053472069045996592972834080003577718849977395101483005266306584370748282394121398305193438601331709444505909219108725377666635061438710690106365775928575325014426605974472310646526168719016063819555918307209115528168350126770741768154677612064299408712532635926128887727443933407308991635910202827729934704762585008307428541373863871176186871950667267433257470325806585420201503233232504537651295353698968083417903587298198661884653280362693934133297384918542161415015568621130950394473350103590971059816019178005402381318636448589935186123809828157065616215274191585624773364791614696520689949007307707723174132017334732789228441836848014402116949247637980290746940307620434711263986777796194145921523626538252418478986680084924381918775429365760545148161872706121816287123692659704482548894351885201490824832060119774409083483291696468293458035957213045661272695285797768073758848547249472905980671705237494781352978696343583724010168429523790207700809302255569999002384639786367701327367914222898560150478256240366764924956759146018541421496359563924214918011506266581204451358210174881683607781051524457204325408371863756775605977829557113954943181541779931347552255601956820563696714861310228003367207315966464753226052123314329369018060364620712535458144846708351181989214972112208086145056375290857880522458960902574725272625932473516483946442315528996127321839385677082916793938437150192943435650917595902580953188994916221990894728036842430388884267416418786276918105911253865285753932622739542535545066951108942637318287304212637381852216728948894763837014730844532411401846762921611838793048557380142905037641083663705578791378227393537614535260021691920262212445049966782978419510306978302101301361871593443542914974611289407225895508615556748589957408171003423313993042052748226457901893927923537866101448045867072838047813329901936437023271208420270920273038285000359432857327239223542675189679060120834349946070124459587555963789604439363422621218633358569231361114127405491281424317299603404970806073022835218322128284013833572081104169586414151408365308320333871258114347335274392111891804106682587222132823882121140683780016797578227494130975271483444575209926832111468556258164129873706060900159250946337207542775781717878907819217828017923016482443030217562609830772951499015396479817963827089605053650016067422807306424233487306549087385633397156961697350331825007751742887019127908628885037176245963653398162989711300177556417766664402503873197675881631537591761854458609947135542529985119470573041713275616851348110179273517412908249607461009177355303150146674098845724431024518588607017174584609319444489014708686657881003541967310167807591245242731264585087915578624853506038082951288846689247663402024932665186250293129255929472926206693857097298584374975984559647046498877459025003171524227333030634756638454644623412741651118201857711838343069104745077703763527579535261876646431363893715791047296358965030354353945830771079007635815589885842012903089224380600564376403306837136075715791847168804218825034703252761094556071045907356505452562290632610493564466595273555116536038045552308284992669976040823566671517974331785889736673398922573482208967712328183935048615194721513407421361313420707492951357531349661284697790553749419017122369985598178027519005954597272510238837248226008163311824990687254592409878016746986332143633308231543061912527374025477918041236137217488862036333976317238153984015368063167616979733684641614098640529074864092590414780503535358058118147778290348860948434764005844611503949503336994839438701123953238010098510292224274565102116059590608469692076388651675209732414556228149851611584393771265418539392641140907862457498953190036712642798423318254543552213339190001039897054256508171527913877542919519715345601544775110934380439048457851385573344175792337894109629573959387727339368614452132766890954627215656805210354112528398027127485675868735337752233266011478633807561574866282349277231047402759551876212671005766796293291105337324517701303233579447065689185242036529514621514949367923013977616880763555233196963935876142659378692536185360216106655598236693683943110869970351787454593113103608743761839806995141316190210642994935701057995222637293721746232218873234103570339414769002580164488679225989578780643261230966442662421226362831432878349821389398325199823304588517470067833404400080603616691135890386129294077649439670759196767574949565354934718098882578413805239626253330691309699246297505463975308366715072383002594114524491482263855322062216491163001615912777062359436175672769777044324743245444535038378468710990859335307462093476579850145706105871700604868985133634238485506792159038947524621639237480778153119285338454897606572920610819686174197614787978953864037323044994102159295863198918342867878107644419791999095273333877969949112932315098087786710517146582831427710052198800972241978118331067559748041968425349456736345320756911695128031011699320929535619611818568977877478820048385274671083955962081427014721981419706511081242481790979517018870757448357898619326372494780507717510603657882633229613192559895534857340061179968597230467485833529785436876062643798085794364877131742444059705122232422842821646951849250763178101362069295918846439388294401331894031400282430300882778842687133407188257962067003964236867682940754827234324742821715950222436240155318950362561361600629628579129378982072092884825215521193917209991907076509476233907206459831737009831071190908924195086068171560949038824231130304598640813519738065625235876919335707851975988396477371338489007758293859974981549028884255663755088254773230644415647401231539696710912364877426628031632199635244725822145071018924367197523567863412875315632082182747207757666439957706606981285820505937132915064514768261554609755824097311795571454150100412357960391296639288915811223511293741028356932923388838420499992615604568357276914134589819037207000467023883843847418784675341835047304433605460429577078452008651116241010271022952877985881644957760474966532453110979915899850760933664921687985427292443235914950759330098018107078082240874854965608377425931294198975183402929925417932064214380658942649253266763988859298443457551600426010628630887979694012035603927864232806238462723722636190465447120134773690273969106346249525858443909564119620686283537377907943587367911387004728114728967386124596658820069413230865586005947794938564348978148961886142366966903314344059081188720925554166821090290581191205094172886083515357561964194941986474280219173386711895324372979341356131034180618623865517407430609357226665020043673213885322609247433867687840980213926069770907318137524493626366636749595056114358737321342008087361076302149116024260987388576324076029453457859367208063364745924147134134808253377981432341946735187936337086476281780636122386053359738787143252151755576588799844288069489424697935983261782498392382512541819319251926759696556446205163453832161537814819802790519445343451093406506061059397095500818847267987765289246301317857772098737036203867018474799381009340164241865505977983236344768724047506855190505324905717824049559725428317580574504226059094902385250640609443550778458076257434005702864030083048219446942001191838722341378935606854010787163839082614711991907394044279809642139815130642066278999137822651117740145762783057226084704179646286698962382226141293709599704837741597642791438681274104802820141186910978083909580037117135704306243225560275826971460306182058438465070334596712751883178653320343606976453177516629588310097391289020502157284772444383154643818277928409008879819367144782204201856494703763116553117229585526669851018740309460631674623608501950844871010730516923915713266288841038045003810934553208745192048636293467652026661345862881148572666952794280962728145683559566387323790828621765257038500111512110822146383957308663425804698476593818128288090720003003902943682780779981804002342282526798816667230599604549045328396828922750996839543959734016259647064079019565719208029632386570034122672358407508988675509354723364018114907056097135326369672911032469144325154804309667694767109131058843373711978293544807901758903341206118682158715589335215691056277026561943580203442439442340975510498361888454039523187851315657797245302164150932647065819540657354259632248351684288024599747527043249422457159173221959235688793493768907167160261161276513637104214208488808787125129582238962721650731707714709285262988953405948805959640522072191420083965615628434533195610450120111152948028764126563948636890768699071574958541637311757513097768380712855781810256923883556346398691220655312237597504120276007555454968900335891683213810551103572008316541089857258333363121141494284268712348471234627862883601804601303612857454234247004106810009728736014236175923887412083679819059271742753776662963182972253617503596629690158722430711142744019974268627392996552938219696558098087896593584511703732794018459736801329000510896061471566145148263819867606209197729502933088942460770399859679033458346048795784286723712449754169917359696891324282383101957872469449691545262667877293566601118275816018507954247992503462914365020349528574390641438718859273389081217292860232655504036544278509136077734317653838405596751750346052602143743013540077525504306899955840276441724743559485596393212402197448840855218328589641677657797239910020673342411743592023470088152534737912063342664739084997458456810155179993184962302417046436915740635163528764656969525978620189142065729760932379216513622759092810524269608517480405352956878494510876690353609247487768801091905175658860622460449042028977945760567023817827703636724683827400190878694916380411674981775876598292641637098586136215251068360091793497127955592196223858290239342644842208908647705300064537403174761087999620861261713678154941950548174135836212778701846794714803804644614915954121174877951861228390790079935339397982593449593664813757109530934519000716907173738307413384182002359551419543947074275028374670873779273508593739379820919795393789391489937355119381103545783019216146928225146145740471653713545917954990362671324222135250955527573557424162172727447323646771916454559046073489334218801233913724434634734916440718868047680901339329991767084733768190617708422634063607621796738542594338355842806541557157458707770814853832250672547916576866481655652905972678299387576489176637553692175128740444905343816734065974635765016363034567532569454926747079211330008827764058941335907034535199329006186811537042610214237869206987237280498026095707701796490306526003506363268622724513918150084404771638275682016888145064791823024431284017784509226689332261478410362197044536101997265286812922294026080097454695227232442030465973255480016600556766208604605939761180531602723385907663411654971614907395755049298750831614951073316793489843415123254029405711698180267494736041206824665616665555699289637557704467432733994725220116939342972491408169975360524929114046088896772393343829217619560184505935505176167398820982063039817293917127833596642363158305788678786745559771946166889237897778965824909002054022875881174689998972905618276156684908674982434003638167975964595581171469717712091490422716660443996361862715315059171953538968035020553538334758179941356534996820746583879601296276894764029739073161705690250230280826366670026049457808748701401008557135375447845466831066308043765877155744076216558079219263009122450986341257726926913619480379553027211754590890485553749974480573161142356945634349883040977793250385042000140714428181777766922513602489108093445689000608613955341334453800109345703408811387702510606951602771648428170092127781928151151072402746229523711929889724720084899577127908729308308845170250900332356601217954077898628273222276569990897905271801256603303869809723474637847850562139519793626989428603309252529445088244736140319371659737967366042135568545459554961571714349792422093257288567863704887947117554771521980332730092792467693958029145718967930417739424526124424644193926697457768477342177068712364999170735096168265452464016438894394588059439548712876019507433993917246728468810984576507024945270559888077832689253483218389908415783883873993369515335230580298303725339713643839960505960337872951964594771667933613027510893657590450265305731920808149332789858171072881969424985169645176760067850656530801448714117729234590694914285917894777132562443315444582542761257529043259624073844732142397594166475494225897243312454426920350320625982729517047107775857555782810455209825913810198121049440371255005158626150282513040309519117711459733132560422605207553639553877351241563878559637543652689444045688942499105007603489486098726509755783354498070021087339887949260985733255601990501717959566401880515310953420964975984953467851171058636036029582235631097730320435126062820011289689483750686647258450717597020361858810542460411529144025109246077742248892995031291420026158224287201232159410846278635668679593028402057840407837033594152183195030455812039856690872142005728897480514366818421924904572573117649416774919461430337741721743808771994460218447186878483091637444391296359718459326731261612038940480909976521177481254362709267373030975837100375860307006503621562759296434205912741030728179741363083348865348927643733857770764574054683764267745575980589913482995649193976395930480105474455710931607242577075291178702375224348456757183572432933208075378304006478086704346705787873622236344067308956601109662177641871069807098105810142826214937132694495474519712434967500089146772753999136178830878283708255592592081051490631003128069470891938453288759702195179284851287233787720873863312370244704975710906703984501970847632895728160399185571783510817730851089560157321091928865867292039093356442405721612638708986244554374836467059938791062600438399337035569377347339663070029016396490589353856260809124924556284417931266003957771450028028438544414371455833937602701580662570701594271209528888549476525058447433360454430476078240361508827554208992562247706459572708515582264759127398097518982727250841317873450898694244737828294720191849882446417783873841106063331235383113616293394868270067605947861879558622872782675153986725616195199575406275219669183816457209294337884201615444963093111913172439473059118966428457870003663385539593113703256750248380835926145981533837465116047609962235503862018494374314287701477773798003348991295778521620316556800315185961884859064264277033519625629825158192885615681186228765228694600363753389024066835774881529365002633329717013800387980086153696775857983749038619394955581683656515175036072004336001049907050073396363366081221719699888292236185275198267964640859170894030773684880132324972227152569051165754118016193695088330777996608985632447564456462610031804394026478472505228083118756372806525004799703037214899565893399445357959329215374837937705720921878797827672559452825713015855083702324625333581460046135018574517792283865608681079663332854250647329814159854402824343542368631735365816834960200309926065151916555411834728229368450320194721193716723054696811064645019024609113586528371968584725495733714683542681027981650497299539660478514374170466247314168925737012509538221327954499969262091940938135742815653320293052143228165748505651166246368277768021662563325293942565443729197701571890068671569042193667039959675936229290669699626773782448522944028183984953511694735025306215921451688194121333286115866532366315487116650849154831121470836363527929812770392319756041790643145377652603912130837443419587037135551167478689826386288218630211781170978971392373723469277964355863640867386909751210784591997121859179692009724246026729271619151168647744301604128132458946267009862072811479048289029333552579695756897041906317072016107559282188451983770640609794121278833549704185301447627089939714919253574562796036758695071277541879130100414007924117675086684327388253243706282991321384275836766384681363161026004125587817184691145923383911369452217042368248168324704641425882495951232029529800751123477066518166300203422853262104639162451869032072487326330456363978666091036121138001532838693693239196061512445756432252518408384683060524703908565909552227847565432709156743354795051012262528224269062832695277908460193255544282969352295178767720110242678384534262850678238526988439823205979755728600497027533153850295008893137139057630242532287345082300242249257047059771987131026209085727994322794646054479484272733838920379705826529418847723573262212252656193717125197621536745177959967250438026133856041450319413720540989519221936654342063519711940326914546855076838407796348059749289391035579443194537506728443819643986906979177802997337999533628301107780034330269568733726113459947937325736319212579324456422237155939011641332313156371295373601726822844998696658485826472159379288050914188266011309781296747647373138426076156005593939652169360003254962008762252786311400737890904445977733304132199062497177507980534023514912269408659417093442783764941354846228699794484361838123160718652682497572401164213541219790364007026994184135414887753670108941823811187089127944278142560882623722299535050125799665612256430294966869752298406987178813686081245200758678863303245735612301688755866024194013924509412658065510522617110712222600644128549771358222446825728576670121075245985483993174206149598962153708505232928001973616689232421254890532956181144843900788108807221748342315506002382092189815925461188745845337328445931300568922432784727368274334554017638851168189128428245145859498032387082410752713914946714781720941670550851167170256362265549559727237915560715919161388531104567780786464843491726835080565081602170587345813205146471802378039819087851470853408495610272047365535671061436668745988481975242256035608354967120530163738099644867213006829830181708924987169584383812656308160366246342049569608286691857317729526207007839718690016845753007158252455854438667659974775767408653088571147706978934311136876931443645294535999141646525053020829818350918672957429423550389833601287640078751208553939064787600703664760526117509177557544420413282699843796476372001480897066096037406644468098014921794509802842138163878888307796772872959151657807519095297022238144567616385801050521073907296250638599772612384997069278700031820101293587602872517582057296790424307801684998004767775231207514180410708786439372091250315509194549322708353976901399484400245182605032550910304555729872158512040797866733454858832592411690302654124319695126542081404164769597560550783252890343394630837668926281324458674373973825188691212820564705777609248735080232689115711107894461598318494260863981360231472164407304455281960107094337717911265496237049949239863831737805747307697594385886586247768393310913452671741119132932409162656010687723401540275225038677260112361630421921970737168708108032378569271801825061321355330467638683421217058723765142646709225193201776562951963268128956433591655340008725763130611516934877778676979674388847673235805304433948965004681646680318951329971066335977686719350353217373154695649031621026958285012331303907920262947750618681391277083941835262037594218903917574670376077752362550324699016020403415466969092619521264773989238826672498943832929964706133599498320445602131558634685442393442226455465008166693202233183048511848680204939460055922571060883311313225626282920824157086083530087444947390316675138763991521032903920810901469406775698634713728398018569700706949624960086468284300438571152378301809249495117733356987876563791803736194380582967960633764918273864899429634248165027602839075835686867699748261763389192200592112701854183125885154548903732461137935063158446971196789779911174688349070229298139682315697969892252179204906909590574478882298728197916713292947853874536649714646070328324618689033978112289314230793066884936871897624974935020588906503710680402467782662357936897504993221953754892178477601775272184300776735766179955868475614554505452535770455458125297298945070939018715060099549822535832333343323843347259326292401903838411655922477797573800492388154205575632700325457651426385325477245167765367369935637370534134664877718884965755203761531572639366566028179047183225371733212668573406181256778330857087492330635047342806392712600112509474572149382086082434213112098309202436193833979880841692745678766346129085793655052975106091078031791264270189974436407077614027630238972402575777943221101417528281591642547812359792060760879632232466632831151936794036906608067623412814150821920018032091292396457470975915269172775626068730974583928652819009693383202261156021827870655522517311762665998035458613417689156267940680357526343906505988609846587293976388585411183258753133255864090267618656871254869873907974843170168584082247210396225888498649681293367275981038223122227294847137212235327076721356023075338124361589109260112911494783034168341904316621612415774304846933733972971550759896918593192444497958918129547432197687290387835928123283030905580075077921555311787521121690187803253068199314337773450581638639984531362329298985496548717612159982733426272419124842635992305946994257243316032693515990232696207235181365210101238169223800934605433232832086083712686626514466620933551815705701736345491828090535757306443523759422708811058970027176717132659554627708960378998242296405285557675680297160419137049519836318084087825464770162648431895108837075663778162346733339573239374535139001082380520442904948178804221578309573081663458328600759397128202253520153628470697920355201651788272770524923104169137604760838072392560029612861593193713387970090568369180006445934021076934372905140668799571965547403232492932144879344158158543201329985548938717308037982782997230752404784046429310259199043983311349059796621631483361495625891864308604275936707479299539123904015459141420568192973645561015616786743687906587316194157719639206490332929172269630698948527838242070630341356934403995491761473631519706451663157526596745289547948117879782097719667395706432390699934088992604217241227375813132140235495354069274143781885533329294703393275070788698194367901343166520615094928724101408298422939056105576868726202370229235739430691698923502483345421157881780633032088586020051675406703792565660660098289961797772707028297156247609923353035459534118989136224565558260556461626283909598742326306772641403713157169279966322062371116165136358284779196493400635507701526293751379701934545276740837799161439846720826861839631846968250002678419012156993329297912743626499753951130397306329483316341535374978388556174445345916772749562245159837527785453940116093336861815153384153780095378758047336164012463433127344278163667084522645975092191874089228827004069748188922750271634528737314250963249287603170617913259648212375249095251328754739184896629938689881992327989530277745167650035875400544479903920561898365210043284816722788460297904837060608184146653557995545079924057475981779699154678963996445690482980847077177649677734017045445130435192942354520523289695472329100579086813820295031033171294636803810811528087867574966726549690410792591999287258066569410491327081598547382801609061952411270098464286180589865834099420867314229112520570916123300173102589156552760747356181694725138315773804351079314233539251506945823214117548459751944991329489085872599302736946138631728355455872557417239158955131131915186192740374304618754783198083130043458483157690257948714895132664965629078392675104958305920801302449697139556524022793001830059849692481039960571956460703316590176233077157120326484044461200525561572568941406929442694628176214604117451328942470734143009059882876565458961048583905689175726428326344361722953803589400561149382273825973242495616076437418542132109248968269122939283489550342793933572824371625045421594385897977703706607850323574065718319757014628708019750897587939040380196407352550481682883963907743502810581229322265403017691838266532936938192680310592997039231961595463371712027491436890568054903015057553171985314411444912990503872354618888890566647784462186555286332101285105842780745358233405803646033099025875367529375087271949231365822424373528520855759579503190695774929801518881813309930116896152198522068904727563461029703370728318770602934992032648428670136530409353952915014561418754925085171006670802096426436853311158009432317301433162053942953356912018798092113665509293933221995696893687781631650233739133057211816305809348288827402761331591582727951040766073231990068092829908839368242631240959281774732838412157114179838733153230089528530620232529626434107176292835268936318266254009514377053407621202451922314625284459233168383106790344908670376923479521182274400487701384980173038489346652557425284742864338923844061531613403161386089452499935435424682387188215929076200119831749308227327505832041568591802355473959553612268248495985791932372868166367351009139289549612853019625664148011314751190800375709231567349555229362726070447860682399496327490086661511066154747303889835294625916870955306173950267073290134839279525438359495605501931047433949791070121414387697246461400133780924946148681739519975772425195720374689595729867359753343895410362450952780317606852770591690790215106128136509042504024491854557547336837956734613647551615998148374789803530633790261876816212197328665664663140392609437450011300352623073287939175429083788850473221939337271835653692599976518812640562352522653469012914416412003036793435458639114423757118479463317668440676268738341812106628888181713615114674389460064682701179518944733922223407946527569353886567112447628638280989001544527490984277920902577541583808271788518910169271212810897139017432788136401499061853817158867156382642941318370543589491586926367958855367293653488126316194601138201264069482497760708740132915332503238448436084621149342991538042450568304474159585988377182971722073887537246420348223613289646574535315244202087484637948165086245042090064212824868368650899612235024957544319312523900820327476443425977754984272235932031512408578351439921791487169703903867198786785658355053785023070426842326419092509938333903880032838895825054394324078811122037836153292971896908271447067494274769247215219905266411163898084808795362309480985711083047950200718822893649498969278388002146044020253544166290519421195140043732109437861991501228896649658154527622084362015037412721721618630921698328254581490555132217082662430967060607122638779743209695683636132138021166322272843086493365627346499730407126478285744554412192198229491838403946820876364157357858947405014343831291878607339199927133255678581403997096834189297835512092216026104989009881939846943342778983790686176122367297221033346023051014183021348715610381135165486863440714136143398651067017592851391173821166391032098632298039048030524045019047702300814398807742244940491359728034524780256678528776217057334395076259624190059483538428726968594639421363147101774449626271428406651968878386738272117583512711472993121974508425910368313794461551273476178691513230693936258240134451568286374040657957823524002665720061551573132569168889741498821622786539928824169375791907334280905751141721158130833290321552799137893748075680706497929178007306057127905508409598911276849097010208774566746852351558822413038145975110403132201049638213349618002042164948062002995976937281261467682210159243645022712445933962008823375694383614944283406301542675464053123090576003469237354767440915609789223339881854224745313189396128169246306771252746888991750194314175022905044328736216103802474881866855033995188202598007321461337838161934248665000134510062814787848912969513972763582915997476987438061534222617192550807638566015920180925120038477915812405226239184673038886068439079951801570600185925123493607031200855917200758571449460133973742482936733235717784257405805926617786814402320489797005056013776937611755379103984628390619130129993769504155441023814369524388363143600740515690315407050843494174116753075789445569120848008073974373690161367982338248723924773900998545903779850312634812657258626190317806723748918318452900072266146438665187721135215204461382097746271638160129290153398374011047264649042042514961987984106769464741720051734610999415809217072955335704571207327894708300199176325539020337500546465503433444441061200193066467124757173797295344619488431646380232640182229865266864772386712699112354952149091375131920608238760061430972135369409810165192062531998092494101526075667881411179891818080212153242892350456867904616704632843883014037972875089854897398642906023519660372173326449033408258899170431010291475530931615150283134959942739300739823708412691019860968115365035440354242354475043457664447179955146250808213516108774729688191199057942134052828189385737756592355866033109499713268697800570626043317478938992626501357743409358655743324545977066621266668244065228890301630456552734198638777672841504400902254899475155340771703423572114454409770546559131942403711585050147565259337904412452651880285970652840698250622599175475474331925426797929909319244299408036936288444606458134162504887497017871573139111806466961777197782083485749288117149207889308035052823848016678564402157910605875708042854383000568267687942755749860543407667006713640169823378364725604773796705178728775131170379235184141318812490551956089780457033239214578922071192232640285186892802822827679420684296180992414388305183789531231521460958478261171481082587737449384705462273287086693177130750068457179788076686800553663180894682562729192346299923116730839889884501296204854490182664024037342195998894918114371111772786241289647208745314312876660221108067125532888266379448527332222743910705469612794429265604742540709004471676657594808613686457532461014376444732896503294884302242213962862038868831809845346006106887300531613507137886369065507253500775096322620572246094237227078107536478977276316032215908849914275613582830220014502333687767570771969698898101132523433039998050581160508188979413995671900916040294575528124957124062409722753713661572036613466089321414774152926313256432843307710775030332477724379724518893701378244596361064908056238635761851543215500530795131437479883372921872511646877169046480287860968997646654276388888599250045783781819759473569516803842165998691642080357439307272264993907592946038448071618073349640560888897021175667954642132310963323373018670858364924398801716726720324012374769712982174960373650404260076512083096148857019509116808102884910942554423624451477023499910658868798984472593645694119233214878861925445483817244901161657808959778658513300215141171254345780419921490933961613373533759471870435634906915475770331835967774069496815229766671432865830651266733879537311770307478374752423018093476719089240591008854910887677800452239418639743384884393514380917352542984516586822988516364453066795276430763955346822661203571093219812600132513521535953123907393426699439256232239045294715760623747684014060668072433678941353663134407459244869036150755197084677209318135731165866961321671675364000291202996216420260612016877984320601707289777549410558285364208107087278822642260475729682803297222200212787852647852963334452028125034133545256268489757683145664361548770495931189656864949927116416874918768326176631412679264981069122476949166395770950914034928453847371633785656050202552814924071974779660939510075674898088683469671587216549062417105028732392752992800880713772420707170417505479105210934403623227227150861884906571735687812148527419668988951300725788209079188448316989564231870300191624403468455814629714988796682883934205036022224879882194318994054270902584249733421867543022999148137778488117987559288215961287351981739698506652223667525219075519556783664585203668892146229209608303699037987425875782673993702008848873718206029682567445395423279397802338404986548541084019336605755749575343379107565331760135639183944764233882119899647884545093288548434702303369483609932078538335758214269901747442599605506000353608119386863437783538520137820688551848671798124394602201858208921527818736892314270550776466644809687880479623002376657006348846163111632275689859693698532842632287714180165772358084765521174355481519091483256228660118643614311439974525580339207341262950524820298381591287904359251717611172163496347865022335407627710673424445944739048229747284267566934015168547184640077908066815952087210678002099461826293019559506455038014340708447163791562565599511421665674615689909357284880260372642337168939677171428341533728908628850962659770935402358155676441034881580204060942448363022665311979361991314593125396863687833978966651233627715471068743281050054671989954177544695533274897584891484124720760840809338434802231809283631661214511367381537780592582593841639257585677847392079509671990930718118629022720176570078066624147605812126924750314570586159601584196140444035769917023468945455802975571765533941186700514048539078827932611945398690915454734724494443489018114163744447117000862555415798903424954773452949305728024598041405734215751807102500875654551758558663939232348120549150874386410951816774568851801429844326855973480382148550833121712405820089267207736467464105282130056045678418297331612269445878144120533688831610260499348217634116326790967965581295164870287053045157232407116627089848136911831173365945234214949165547599774436914673661460438735450226430855908733601165921475821080933244873301056362869835477219347947158631268497059384696556320460901446118312003605809076773371255661043616277612194985519542208063301636668929593098792686806997385103390356222303316456873939533954340388194164054647932262735894453960880748725568308231857272069258886118358053323425372887207228162896984365391480280112015874586689897124013062589973118271046427228275476986710511632903852363959088717058295700057678217438178823382241857561734155553537246617086871937511631882480842160216442021975673771033411132083605370603258898150214703741441843876599001079596548767915270602406804017340011138640332890215802292836911488524035137711959318444513727443717592491418574947399679390112952422846948900892559782669076853804370482150586203820239904906355850922334838403965447877979640056113293388287609316707486473127370307861231956542568768681784625918778502319233805713966016555454999629766154085187966246053176832999845997534192873789106057137402243740545742324996095448640532215436901059186365009060580032078107585154232193280196121751542547794428040316429223217944109409239031043673631738005490597657898213973430593977894040021197067161417765743149009010433211665143482419265229821527036522032511171969001276492554209638916624005492075561372210217382149501624635640131155472211181993190293331224154999677505303451649863512368109216644574104473964993524207373690500065974334135049987282821012408374395691033776758347069349487222478646789202941423107630100995600269211868060734111668929395567108301788881687057754407058539033982375582715558266425302312406581188293050233057394917664296943082545367017416404621779956133834558956954622877262423948682020091771740542307386795173125491764737258798510613743364137701601625255626027220902562342299439227451104096803280507073352116169616099568826090155181870882939283945019620820289432388308681256513656487408166530660822445954068346816967385597360896091049689331037883717688267831134291152047583363889609005891791357563668215352445784133135766418193476633431982283042313960699863949650574438763856902103099618857706049738775462490110676463196094439777807727165668128026878887130940262937754349503162229312956667706953196455021574571302590560963849225131783580555357456080342153728886531977479934983197930560359762619413447406128836791634390172640412904279834969386490581131069352261649364411523730323857527706235202343546398922309778749876681032515117380784269505230999888824085467669344729813044468657538831029865359766023637114125679350914975049215508241958101577813180991063069603401265917797796331979907013780854288043173648339289887276798830523991500146987493640509487231506346839486397237481450602718986469388660816441606787623054497497409598734107021018473354580943110501381754500362510920116384790805882706250563285926685851883101354493966417498832411516955994060873037508470899304999202737070845895530209562870452375002305445723877229923011274649792818664152002764847785046894304459039264943031427207619080773151259756126813780752591983997889393083811270244445228581267715048606570849223995463341710560009758016867295119998046684599092150718996142745018229116315885696331172569925674663029773459484722740755780731503766265234834598633040593979689291615534267858414220261679858726143704699281765214846997306190446284907752294038794311164474425432122209262018490679221456998350818562497639312442208312237606170127169044635404635695781935736339843054656556215459962993953106273403570274201935752479555788717470480308390238958462948614653217849973145788193659682215220844415719933823725891800620112047233854950996078626682532203852531358192082464482538873560772173634510536391363431035939854627304233009940047787104895928459072008037565039848581645269141850519743380218320798967352481421914354738502398035031919776915763161850578633932501723601124916920657623052200493463274915507824209290388185024117340339129596744060287620450659439274714924907589113107419573007391789292539416982108164964796837532937506651218828555823867880623783673177662219883802039474772823171015467770747374875550354308763158141659511813203933862915895494983349686768844050999696166595525289524542213281369964728636416894318309738547356096410544940920052290561924434539121825662353501438971955165918570236729947315825351532055342036604323573433614319877046742519811618094995254397289468478322392857087586631513299558966208630957546988494121779496023246930413249693932466460199936275157403284890084143132576986093465698293025544310167927656755636500752337608352413895370058289668775699070644811075988866405703766515466319762513179193202720004757723590466610071959818741369967108125296558029616742426698485293737129373960184710922985722179148559771551440595928504497174920472094774371395604445417167878007738292109012790275147778959205171020587879916181698896744202864002328784612994094647056728339659931752045812935072681052978467278264794892860050935529288740049628978317423132684415363413482947821891594006675460630835545158949093217279580517325840063222500537717671316419202475278022766138374647742035585360844009066753958808223331896083631744937594629999929489931211539402825335465643292360792353137957091461105666282636892365767925534007035149717063122731317974835144558082760951886452489075162455403598272885067710844326515418268014347244299125831459311971411238917931632654949250366608527758574088107390089386150002803487690236512918494810439219798366992996429437203679475552543103809994549739814996641160353456985636517098071225109124284219968361124606518783140803616594338256599782783759964528029170271664313730539772700613493615269305162442291649613744228800746022564159022879191532766374742261955614300845339211113521149408634734276791248644541480590765280016545402768841436792341469349877129317609699924979371181792082998804561934472006911655292538511030807526551623657853391081355980331726717778618707277225353362742428257813627047376910619132592271847275349148155150971556888191706385536786192729835356658561176628803937987442012496475187382712475467180783448231343284933354468958386907736015422102116922276061156455371946706733157585921511620221350051666517780250197944044172005481886362774137526488453731504013298745128056513040547732563444424688595366611258688846375061743627352889009699186314550560292131522347158464284180340181888025552338589381242136462723422848938077072187992778950730869511723350817747524279295279860569263328894213899535671370015185026666830956869106103278048562929079627807283640465054857072684744234631797019663583072888744240840164304772563949994791358882022479355147436960593382008730287498742358103157260901691866449888160572881208872137747191607976727673511166302839488346168310446440437075015628756677247069198223527664629067785129527886940063888668196645213831305266607001668323828855431399157323040682149441638629674923979369589733792136623099528169302563784464743794690796786243015636085913794435802234600696395858418319744267315848868520220751158918778443123668582392940187536620334659733810714933983272705162163299907837092508713130922839659822071540427766295436966828313963289239540039486730171060310039282038891428491708097213947028251168079202413987867754896849799114891067573347565291189939800579850221528035155774540936184679598403866752077286839117447054533355668347724970895588944886011814219327192249823228263031918272934365340303624878605909507458984209871298874505407173279036706076383843154548307562464152690531153119615571092177912530589966307123260138806340029586259362095292737583063469247624257091883336004833128735957570896726833027030744737519020870744816215762169600959417512523335351426774951508549386196916161834198653836398984990504383402234995022682862610463975704285526644302913064675924438981324136020133534242402212533190845586575794073464431075847478032883475901267020053924313565879768400109336101620288746005139951175035172606473057501596547126063684724680884108812714873308526082197819445070285827312921185817457710227736531919214156804131109888953873967526904346227371999358795826302510209067461925566638527494521541070986092248858112951938206985973778576221562297256777598953361958222418702203249511738277549655831013660084225647198302311523623845041639717458280843469679490812221128594045706068243083620270433404819402135471650181868148069299000042559219205292145826960203104863324270529056197983775779324966877910469824039868490214720164745950114393083454832103607376519905979724696851278701503153510003600225647803120431870272307609239779499647769219778781494238334582458504488616579704012829058422792537271168449494804487138762969573666034657718191388212955118121311872296041582467845379292816260062091621160931977923080423907131029654218923186450993762861295280488665979445634091304083844705090622314324343094037462102339289198001658760282443192374142974896880729797999807243074033721448785143278050762824932216902080276493051749419075278974641073003360595842965622103071646963115111967191151932320053531713398324144888024066014857984015175634094323435119345202722098564464697549550142475312530846789325102450272138589539791867691089507818934320762924589431567436196905437408671367729838975773019553083960371673698479067457117961883663324798157617168361372036512393124951106047218447090969197115306293894405680934754821366030879932523969048637688519952684361915554348483451322845790800610859667881507285400629996336718117131348184495452617066078749958452479196959234417090811109915230727085522344975151912534062006035475002883379392157910537164065173085378545182477855029605412882445212253576564579382591244024613138913774359100871993853817751223102620236615464855657529148478053528570902614166306091798418283363417209417462481183391043569848145106892233308762029552052726950547258714459955377327968755752583692876936596257716473072111492054496792386776380220676262256583116529837856426200829702051785930751871862492980310423138335694707225490576476511401640109945013798535946390431849418891000443022312859914953137764312778396116427135871918650708837584862284154437412104364300282037611425690198759505622737272807672958139833676002143138874290819110837244633466942933231059015219676937875183321182594709768284682110135877533882217531306123669960586904413911849368753401219452496928068657236870212398394494349456854334573402195060925231980742894753779219981280075739495540579378847544196201347001036874324059135018577395991498064054394261784454845220343422506207049323488718931918387127552198501651486820755626982540702408556609469081861212277180396344489881847557943736471800064481722713641025429826556148272564430269495446640823733519934299691768611354506546804101943543329298905580309637488958348266553194590963443051632952965376141471812589679357251374633464322303760116610512248300398926522130934214864086030273447076903648558784097611538161175251013865131057653135588303024018570854492651024153547192872731539488463133514118226316155173584852609725186379190985462290973152959797365212516212681545265720338338578405752964173000298068201849607745838540111091391509794511949372049432351467955314407392677571107130672513485778936083463857767173750290163994668831794554458883217125065167521487036160193519889478128576453010261102984549335788989749866599763962296280353401744904494910754071499663205422087064425748613093960550104336327323175758857531963554353940413366636694808171629890437276788221954162678725102514245396501855215695997293243659541802806633299983624829580274931293959938457352895249884681608239715703564640157982235407081813461403005730483570935214601029177350104070734081110310143905135785139084463454922427830812004522648336725230764787085557593150292815534065626636197432687575143993342680043518148229081995818296837242135704339735852419090574831557626529456167136334375852628048510301567704741998089452342962356308928249134391762556828562861340586089536051776152912985159316255481008192843465110445398602589807167197820078400785389481035497838602513385978424079967529969107405738659893075999732476840724763138733892150519617620307991802586559551912326731683390943832458132196894979934316419575552575157852840809120289933837174879976708737317586602757742235405151753521983371151723867391198437029219436979766719534761547716302211147160002055775259640734348274792076552291568019854211237115919087098022261577120880441612269510323019060398219948069514457630613870129658318105378956985253307312242425729741396999064606490014411483925991993460661214676978893807912774339350528682618860223442544501152524566374323525797455291693193402398519014959222378539709007657485003296309640147285860337517352520790501341537021227575718163911639694125590196089553417209374025371269742124318287943249680494289120212888205369621522249946237759851569931548500194047500185526960925353098029148927596647245089877048981609286975177274074422492077872711667468455431723011843818636133431642877602890216011075160924392474868609129057429738167770955440074157411544381571788782361639102923780580825627983663024237148878427628264179313534416621066996883245485008810400448689799233225074938444654378073175367992693183983892417407394118715520987037645325187586230357800231191605199327142739479898447907537932931070133504976791569817606016644196938035245356274684210462858113884172281590774175987171436668501165916236041879802564759176683847232862705287035114066096156535873321451866648791655709338854981146183720217217663836947533981577155482961137417202040817002923141474656197021774726042632687005968294477860841486031879714660068465558508915871255505006595470367809257450170288918845304759156163226440810359963507449139185978965912095484297380334499356855133914275925630672704572322848975381933410727384134229881081440624589788979320470409035534790140082918029785314302375620679909709549658629822073891241360333252451331567161429554049034521560290981909980350563536372945548844080099386931260858971120909898488485394038136749629755877475605459292149454255533115535091442948306365820656058317177720440725170958823934878500299076532950201681769524061909627191210001029484131190247158495110850360659325949269714706470749383634201272867373552719960085292237620765977978131049628106481254902551725888866560741678444229287130821888202857467840117135519515591134402460393211451180250599016365382378060305577512860292837780305930392972553494733869320494208649457194020293354918828335149068956157463229099896422850730854976750126818233520418636862651797723460773957477475315557193340523582673184867170591295639858591674708295115348618825140776213672311696779700342300880335080588173769150354221581866507318245167342282158874984902125313617989399115106851482731651092666687082433002841693158387690244566420879776135991538011645006263145348730014816872146402595121049088355504433772043902986525784752337622948116881753592853670534193376287651693211556017344260593897325690961219269101356164413147750843020420934993614512637714758510121827595190306461246256264373565299723566860614429672217674981675524127829796703286773944248675455793242051411360630837079797357485787057823833799044011614216595075422964684401918026745224823513465099075325884021303032526908967672551338845343302213925396955313271097495755375197792962863954614700131674882364621479739004925274143780617444205463282246686132125748114203259232381535495086849988824281678476977404558279846212633220570495156588362009435352789249896893941595039346161403474589650197619710544090606997098124872641773119493431146955527220395475161952423126752351155952092453070018204158919697061320719201212413818171956618276542181957623631705968017759794827124742854504324398838555905547248918581499375476677259563228796537073367672056252877434829128853188331409868698175666228838205050935846165504641061842049746052716741715023749726505229447175748350111100214771580477792293019332021901676742326744200881362593677768871483929007616490822336971071264012161064784250978703608903169106811205492882969485563722625425754695610080998670167651993854817272844525745467978927742594508994389735091557714091514272072324274685560659601164214848480877639147218251759653809505093662133214493089461931584399754422660662201229351022552432206361555950132310506730000418772155762891052525529479875068562223787099107778252879264611200340720485231245391728509467073928653499759901353201338630284255010411611219334851646851663722993804414110311908621674058597794467368654733665244589478703255143612585909558371715153039048259142951123657272052323268268035275548337350932442470962899481687148009214615916396163860124195835986646639244887736398850867128352650078050599666842352506462890230677611875270790287565074560543443376513697751455062140267756692457540026230885161475931292438866594218970712436241512791073183745385848209579559369982354986014459806450352351769951632018801038428343912055023787400445960190654012194982945205705671688221567784682786427248230132987632600762669297302196565173370102620896223312553265242274364456430054357695608795957712923164138831767609186322224475722561182898560995693464101031280836682504618314804326937937209100122232367598497478715415287804076308220644040590987241892109304661642894181905246988636426471571831392361190967012644602527228338357471447271659577313974977035829274428892445429357193108701337476552532728650780153633936328270923311988705911230323902498777492678772427330721399485585492805573807070328371241158291292055744174839524058839789730683331509777023265593011887851105470847228747533117602009717203428560576524665116011310156220313032639085455965529776458586650238174999116801804820033445452095144775258657052817434088530769187012397246528962121048709287991634012357820721118353533406140660609832187514323035217085760521552590171633048105037927729291268832118171455335662965336906120194124725266177449334167118616276633320473915744359542395855229824105701144401988107379731260112378589152942454160489873451063694738959988660352515045599889143052351139882698971875319703803733033453260587395419188876091529750534693821373086838268342118008043079436368417567427260182470201482199310570460184564019080709854040227096513269913805479717368534578494783983714040661673482369570806686769677319978482345282947364185028193865471857954886281944030991383710000142197562214749696057003717874662667600432897026217606656927827001261090930989430063738583616244884321763551675079951407427370886281808367946744597056232029542591577158924734201945039901327084888110026486622594404284617607866507658489873728435940496988900700738838369453489997342828472315286344020992180810641072076413386615849019500135412383360341713699484120357035611258199627611316756678131968091813850546610031387836124827355597347932213674940532995534735419585478266328740842489229932872183530542093813789502398122673729626346929916340657894002706886432002783772937722374651623733244998092495871322551152260242631490132542128334421691012154495685840649941146382185330101160804802489645146454399613428758008312679838811549919264697395061216601574863056845852418645305219090666703551454529871960021621867148705020385310115440597390525819696418255196269490625098552795102460851882855091689295952317922978518517699604824948540095528656638991117384698001109263857841427983372747271265852697414800130291996521824902796083543918058360680867869212828390419966567822977488179046738686567695041414189368721327390398167482147072119499716953590966769729798286823860970344134844079575998306334526171185753731666151382486649509248157442431478931242667419140798348576665267337781509061830202928158638495497272936005440887814658914280831316546577134932954745208110498997764088937172105502494518463969868594896183682582497901253441212220533347303346400162199824782862996090152813434518347632980499825172754470202449605528794139435634323046094986249360427884905583048831123894540376341785908993167945977696189242203466543146275091617375739012238390391459210276526254113003179808471611639511565608968179477189259495634013700481192578681881723991965174431961368082073297140412376296972389923148537450017694294988127433913138419621406263795564867382136529342656675284743226739102127272211872242373254665572125350946284406699869018213001791097428326578977267897826952555360595148881055292264193477767501597359942513777115046926932011820259173296707725037243447255816457257927873590151000570798073699697059551322382592124897622607457911148189947918563518885587701791939922723624029098655145838491668320925766813085443781921323560723330004823220909885161358237796264600441162701855018965154307723431469900728042482949077511596606672554888532644295807467993470737245935498421767634604910087534811846321132714161672419998662720534674384219734141158288155578961663321500704908832872581309465307791023862243585769993767328948354604843436014008356203545624430886195406362358971762690773744422303741514800577582631039727045425532306567161568345901350427691046704068800837989464047799852629633644340346096718546301923375219569394163914021529427218385675253325429701011943993212527911128808252607005129789981891108765428466133050984533333840779755019952200801356174443434589049147731239393201743019511606318399758181321656774704249551030447622532648094166792509414821593759762629978180329909234749115666811523957900809942937638625338707641694163218267607535630111447837939136854670684798070334700924370933693511177536443263544922698506873526453476634129546617102814035431103937340577168986130705615539004505091551380136081594136852452054989324257064831701470847318679104606620282975023999847512909254797821422637200930214770928004640626985369462070263584788772704893652138775781289974170756577615907158910283409167319703349729512114036659459530199480235838835341905266454283165126756741563490854293901530389303419178302483877790684293732100477717848134537711959840934515851416125272457277887344035892389613409279738544053786509217145364786305927572556995684952177481289823554693118402398181079487420082564681558189331554943073375395729552537407853348367910781030277822603994082765336216794823575929272175280266354388168410497775565869642868078744638813840776593269793699256144137030593540106457390118836985686941662249988418291405911968698388465403181052095156699958254090679352658315573691131643408709816321378173035617644113901751400948557585868356015028117452071003040187002312721889921293547558127050637102954904838444212251153459858805331621615108302747312661461917959259777269264249419388538688947214201150362244325393616296101968561180341584602830451833190887471341561256468372392210700836491482112738721673152311371254515654275368609745764618803579135629188413820933243121882356190451717474118814133244543173217894380396650328054598922526671543659654569916971638825978186553707359010749719099467312174282026732762897212469174327063756423200939502544339564452412921526625639255614851152719492208232230225569613881367518170366428753875072345698728968260369888323582825347988033126784891598343861398116162241453638245076584218096059351974172195219899828044972495278364955517541332967957971665024739438349898126439261793258285380893128390495373560839176338780290348435954639201374761488494288942921631411427998589925970254481785290384528866889170199696035659869686422328504726607833633165310728804205692238231867193931852179876792441877139268192443341868585269833318106142486303633730839991745071031217054102248590838242932896502355787223506054143987866585516808558486694912362430930338884026649953790058066695224889277243594835812099735812509590610772343015992996557344878699278142668234131187659211339389461328272966368113053916351635285670506728834030987851294569268570185635034835100394150240622520930154719304903467446545562930524426863346669817508230773269805364881638319043605624044481681317873620147559699600653471964477977780625674057940883068874984227422027142769142191773812455167595676843876158420347904447703341399451457447952965573355565792236161250445017101984060673046782081878588129923512447393667623206388205406710924552856952078244894236774403086475539817771339145555379439215819640013044636241820507973575172155496617036836593705312274724273096197777655354538644238541393698122781001687116206403633302642658477498919869315705402503204305040282461696804864942393090041992847551235551256038878664190145248179662197431685398983226245531336590653828730334394095829212550023542456301352570346729640729362181052121542947869790128512592334583590115270337368245107683480545668611958402011137774633890031972519073787230844079405814627921131723892640819062788919329673384982339781300482211883229576823372171370649612529436570547842588257508818857701213589371497214233222469306147501545534163952967500394257929612055963552745160373185423061596234778063654480320711376348995961635489156712140286246214477702387314440757093337610509857240548705438720320808634696892990819659682209302019938980840656601531821983903476698323896458890729675863052663649061785959290818009785163673966348734331198380302662370819144812444632470710509082047849506781637523095771919060696861063598070782801884088213832328730384561466926388888519435797107146890437632991588953833054269542060456569833356887444700098320431092134989853845486500270709938605225278895155919293251584607722986996159417719640126911481316366631217004134524292102051952495289692543185467734585243400799562120987781221303234396970269723872913090983116535425608243017902551368945377817301455843421497571698392109421341878961714011171280548525070729528388887825859296797177913159138138278441351893708600048968366479283998119797273597067654618260159974534839443447019246849427508677563168462455323608819525430399912252857240897451167027549286346398523775510711466279409786129974767957005928545201228844937858355557686338514669825807740607689665763125915769938611797883481924342924970842240300202609383663827227767609587880558938890289616865692554026755759077543703643986953295610994931773506270170364888767539982180209564441128044136923258368825516214271763882479361842222760517387513891599915127941934649104365360689204319063769696785702190876088012762375798983462493413000738285299558247244345565956598988370479155734010500757180982888489795838628060943497056104693812323342889034217666450314203665649535874487837438230798504739224191171195649345135038416466657823906936678507004659394685347732138216159988568688039587195943017041666577638744886635400927053741927938979664912177093557009570105243736696986865836143671966034318976820834696828698185502358478338649728663785529421672754441207861070667571181028462311575007578644903923410267812348321046763766986765874274470812845842542042534857540474756744205036620802739459857462238321253418655945309184289290547915706529602895138455120741023018164832284859544627003914678891242733947255832577160717118974005878518365291761294334479840269949313615787283725097085121797949577815859384515391264721848622903853629997685013138822686233531066969085456294667347539651579692658437678936291363606897903186197715633610631023627943095782227998714997232744448718507706250063785279235159675284672629929128909294636978823304424731076910692617166205209708428041752081533406787848835069854705991410544680178461716138222878845227546515967726619629225608407692019095314352632311045789507669534106086611352888998338472920849999592598144646650865557298989775992539386306969828809328886615823023787498382372173339023749970679677900072659303648153379187152220593758507976649437503740677279364652822197270364681981890890137116622367855797149471540300659879141690410685599992453199331204330340159783122164308543889212661232489195634104860921689258213311870442424843580160616632328646531966961089402007703441458386696972771239613816766121953982554837790562642192255996821291454265566714684687552299599223777707873852028958771303699457282886329608763763659069434312255040171459260211891992152222931541795922866502207739024808989588378609225552421791858441324462258149234293433434938367707768943954505681201542022296663398979672138118616871265074096337005488809805288576879311059068814548108074476737076943648961734359476104369784293979975393947512846902424345332396655105402573278786954184548373212768842817914601779799573343273317853647227539075969582677692169491667410983277642649474671565167191447945430778460625935108568060380430538286691415018316516533105677520176260028819235204390076605079588633364875467659164955411273157038940625146556330120918287906760406147279969762278274169847099379317640318977244658556188709288489666280117053426074514211850933329361339918942563703510154407907149396390925244671471906150125423666910980580426884588757757271879432482801602541137258194332023830602124692305049015947409114771439167759433440349618748242542293345519323344080811528127134853463926599074093659061434796548554105153933940675136656181604216072411015864561853061656425485948160808915642464086970945058722945208786589194507064700161180083341844258615060883155173892556010738720639322004869236550448040034221852143690683149679015685490040364390403971999897656647055760908889788907758637787160744467104083998351688255589570508691984258255013248449158092567251659730114784531484345676933664582476336264448328983801003683994592949454517788326312963867415114626457127580182746118959287095213863422854496144819363642364087940698994854554536137738501470316300976170470072502522372427430489957906558393176555136130718334679709314752986857666519873616491525228928154648358562868341888987232538013775154960604657588290793550832426694553148568549745581905839682969498728286875917370001045531067297284116008848917013545596478841486240099931338127197641799872670341013875632912381824407737787913604350286397239534733046712403906105586712939790515509277087361695592153185160009734161064977327337928282118722330428470072432119533899562284853731156031200407627671668245599746214561274518024564363715939773850111578435058826855536786772203035732355783911889300996158094687283324338582728139238904893130493807066555614821621014197598166112658635422977618369996015823334787272488453930254447456260130587776417008206497238992002350264690665873165173656571702515761916978536778742690410448152186721736219219389437582041937727301061357235902686652828021036387934006312918218070814955362528294801607035474671874627957481488671460486550084044633120682847028373577794398733551386764613235346962412978733104358395185081813837599835993125639159199238382631784449417506068674866225022551636160612343619998827000381512894602476944919665907188311493892624763938399319793616059098300515610492992208433847750290715043984070766072861786788445793307504538620375953634134659269144034566895258607394441635530599858988688701564031452938987052068793494514563809637963397754152671984437448107991475245140932938071916116774542786795925082074599482299455933027902144798828220183254289452482533941901828473527528974055403470280115443004648211791467693112969730058259039100654003276525612203875392370515506701446277070432530250432719982219089903379329429853183936361060384827628723199521860386843696260947415640192360038385279222078567134541184229984810128372863019405860498712869738787116928713357064549549452181579976800451178963407233253171637585286503892829788915249462749154774213431574334847630883966880489307409022302692911524520216520760067899189594314589080551215117404472528204711380896846630912361074163324392598942696229430591205449711990751091386280832914130769978507954551527434605707616180901031784898527903141716356804576415388486912086317592767314351450409090876712856345683518333452561793085968295176354840016715911344138405729643900422948868193911542790889021086778682882603622385406161580548280214398955548805573824113624465735871674234368067365969455509854817917820775120492181884989127266623313520451702935752099906559445863935101460318703449917722769367567297474751023287042192034933358604077186064955483410801970150613795069706782664159216323442360470706060050495657740406979226924327774612300574012363255522140458923162091492423263729059303464311866441113058823993664934109132995358012402546382820607392479359146693082904294927364931589105067999267038202025524247859128187657520436441619055514154998817599591443716060841002238628344797278266149377494680903823060738567675320913328119667990416592044619787051557160975153096849469685634276406934242586270712500391406830175502250995029059847328322325428095635095895964378637286495105993819141674034117771315739952346179735315785305710073421616590728702002689987732719332463322983003949271330211949724096100798072708731409481420799877972891949603945670611331020402805972123818484220233981652638784276014374402467322740921361577557591599247503431770402910109368591286680199863437620531267309998322763971243053441863215345857764432757379432479649270088391923993918720179318041053889317137228717903292022392772109933622431715451678635737492456866839861317488731206361304544955486448312884234970154539692031731291402415182700240658844730960668453740495167266332235699001118803172795715140165092900832219527452219960093611031268527368112977990276768653800022259425247678016019573432251110290503691333530215480515598037878571800980024325150958720292747884919859872046644104682393039566905017471196171965926210808449478684842792589871662489131335272271975989766465273439669624601679502800288630396997039486316154465177600701770678376836019538948612361025252669448148117891546811437149689006532178483727920103885644158160333828144428097422691744278363947604284922974927077138861513747524387102402477786022813047635838833890361265164380335609870357204368436672915091789326334979993386470579938073329738390713776944039780692971296192934138563229606056793541267156783953614487389778878103822569541535133181953232635456334196595715534178352654408782591627665888336698480654662771319703172537099956789281564194281969062698866786434443407924647647782841290994372978606760626475250329457622976796429549651904963611302337773872899016182558232489827931410231128021783239645878762087473357349810295733948514276644782263882810288276794945165458688533002369809545731928744508455152694071126810929885832104694161820144908520235142133788120230850450852485551689615665322533243642808339842865920022390786059504387419173521754616411096408370875795500379445585191841485150792440857612133261527012470824088675899902003810916599109216995619617769544355769077987532298705672186911094006208062672448565702674624576913703611938520887058316609205401834770941988137456168095889199215054271782719325764273157346661714972820245951883888866385146883851562482854250978488429138246215737855683174244254046980328765186826296862440375963970152697209284275256999150439953553668739711863848430364617535397037087207374643877497357320111734160601128242123187282352457672671235857808444003619301879801483959385677250844773881048034504200987409843202065204430728222172660042064810884138706584316559473568580422121496533399394259478730437368971577777681275210983755898610655485338716661150098238219123106135231777243939833235471081417503726815221992997162512624716228285872502200759028493296986528447314297705762171738401301297444631085540858508963367699615822313041622794167354256994892893099947902981719410796221515499338609647017337697034436145456180688750660159508988808884164546755034259031915488007380786391155098631086348232331978957788635171546773378740855078631517911017264344047385725660568222400496731305013200356062719809896251912745196493903603865797308408173300515090075277102918957059487413388629093366876256587087812660077557973146799599590471887502983285723842610607468105780424582698930661069628195938431363520647275097284584884974292996608611744006494264564683719858314448370323358426060760067955961158010974873472693851484703649077127188859071550738818774353015363351578606266376321039117850631658696630288538090077213192515701713508667697379626237545422045100783974721719724637140089584540937294042440236634789720701794779559280671842488290692029688496656348620194573215480971904086008507248554960253001272115341615433920495659400554066410076440761596962649639633057101742056241324610933899511600102163880812329057533724131778573035802540874020405988118099726945790224871236503126067766237169206484389066636536232900501718113547931473768431825436545931578111554710545090804186909722748106923200261956062766945454440394873301599860999959376148773950558939831868830063070128680616865985754077983627128280938082536477256350865409584784694016714644976159108357615210048724522771613841833823657689457684000772373581425934260350242539417402258803764434348663584431432950674417246590761259682974226931599145478716545327989486151566116686263862699569190201900636805648600120905126988945271694466823458978635676069191887890587120660185492032124553262497808626732052199138399116489880016280667044068585560817635961696133704276723267578956936437810000152235231081307448172376003853130260877787557101035999453304860169558454071735470281934238936192256510183108378523505668925810603646151439914939035739723026730306541578981037858750564566713632719182069588879599009882350745199854612264435787143609097526753316771809693841492229952772285985811738581295221127929948935741578266762319909333032139278959396745620219853372659234789734105822758873186879180543983941810385240377690339923541773241871921512693438161815651737447568707507453461959965833912904286442304009858724055592317456803604743204550129109061082634751341507898028258769951644230320654829291166285145040613125574616777400248580057656581743038958512341170529013948342137109808296024025590176266535169299304448598373432336533837617968437061688299198215788944016363471003091960542517459201889064576456510424688828383164383054631878497574472066195688573490735365841477926924089689759261210277635568444235321351269965246983896672876079252416114890489059937419900689643908813520050818629302359924203008756081375025021338628263065150011665124784724756174067832928766320982599546201612758056965190648432696213454376825828845244435111323662423865888849908815694092676458481250997696942940345502094842860216999846164764778177513341216640713881476090843998204113448006086191036294687252754382974373943627722118204491277709513315404854562023450536550645386147837347142380398708282715394117677357686766099094140072779374901683923307322736248785525419172106224025120827105124673882386135047378748633304814669719763366548898577119752539050923140497188793531750816389869041087770066405311038911244312370868474836800725021123612256056325000659342780790371875675010005039471427099846771788060614094696930884493516649436536596952679498638047459624588088921982366359690987078951008621332069817560988607050620221090456378904544145362754533083604448508785235555838556869092957998558044945941257366280476418031857420593937851755808814865364290237997435922529750278033557245738443486790956484242842739516228021286021905976200679787280837277227235651737466107017496631576641270539785212204080088617862893110514681059834662086085712371208027353067186002755559161906766739340575513059209415336113525821773164166764773744324563856390319505407517766761224024397091957574986198142312082536152444483893156761769237857251440744731394374600268142747306963082700687110470069583463894901513577608998852299153529574138933775819158749387217261120771699697963953079183711316608300690200086298596322195589239309678432541037620935144030828484704011467245451708318459929804225083085595365460733772116821079786077831076120842128332244939426885071634815045609959907901957092925296221391243077817123845435100965516803636078504834123476539126072200361895059338654783192946550173694026490507967944926185466461075126188873442396116717678025828727929859148690885343763160938773130078543813384471874782615613091714358413347824404310345667684259054137278434571619594906840117289316661103137629783434259802498538191374792745917593089405383471269324257665904319943468171375609708992221509061394153464758032719266034808995313875610229633822590241798375882481887973101563256098393555103484882306084890881703197244848701584834015242853713116227235619323641144190653085155486942774560626393375263745869042098004289780113793816723097798106469877505667401695163682132417634333712879939458088958953805087072852279522281338329920981462929644610627574222828423093523500496155290379948767454249342417993924636529120020687389168162073575969580489442432233796486805861098232904368022977141924204021168354626554711595300039602440343244973594847605905423336696632731508220291766842501266660759097457233938927980194739829160040738529887888925723589274067314103798252722596803805551211104960344965339436672197015457049473479989087789797991727979995665319130671256601293111500205547593137226384353241010359724670830796996311061856715132606863245277972480867081029459598507505410109809638975889476196377514950921706462419372569231054716055162407709290798926299891769358119362838629390026635515634204480975978975339172820463450264132813977021642728778075253552105566114587566886239558325017588987035849222056445773284937952096978109032297018937365928363189936155693726247053890848724776655060322261289349369558646723616070629090142889781885636027899890961601045638010222081859714388285051864201260548594171623524494105261311252417195906770430634949542221510297695745385891823823523827307815603417847086610753976245502021420139069857839486477086799388525417825081309199364350680550859874479808940650045629921654934383627021924100833835406943738243008751296927008036856571910442399900486890816074380697394266753641833866336076178055494370803259458739765431926268296878345484988009744294038859582528598539491436347199064350694642059500142113542816183072284144644576960576955072473897445379729347838937022939314050973434231449964528514936754464352987161568550702827410309549106059101762630349376372257082115834006135757604113000544541186597819683346268175427130166516239367880282082654176903852452727641970622872425013090941070968164852033110747166719614554004489530251764853003575747239224469450802287809176704578732970034985171496486066594466992258943305389692985628758522455483353189721364156278236232655934874948132052905064735162215684764860497078195523942554549472177155401469620911198554892640108272999104272770532964544347302936652073813877856140419454194118889697749778971031126866825143475235356747896935065255713082220022372697633743036665016269154934970206452753487143687888925174628934803557722746886010581104663275877406658474119856222404564661690154792889644827385974070457453650241059111898896711233821672142846127398406410356291189086672647394593184701514124096259937217191703882504552901034130797792803104265823532528075960360874541286105761775610873674438857283742020783535247981832024722293241423627120160863819705822212087346405691997700380936968266397626251183285759971849328816522855066053775202854695562676856523115223339435424877729212065090625036514384344527591637540094699624604608766411649338820836919082125956854793063936517605416194050986206032174975736680924627267312973943013429106297677862563671712367666560241047445392224848722653690632300740029019313513820253225769323456465231841165243179925348035468789779068763355056978502277807821791387845015709769061279105876482059955858215209585020275328958546553566191008866012289692183084664714923984236094762609844324061774460052708500477366950195311135950590609404531426080719651734233565303270327065312311301674278183184068461342670029291663558103052360504721697474442675841193240863131952253067375518522066800930505853132852013658961541490264658659410793574357837815166003331376670403675198082908573303002555742939014964823903896341693793064360331871146574603244064309454605838901305928698134017014518521667675958155689206179365421497928421249691538365939481769518233148125151521588724523030942770291656990073471370636627817636309640309596002830569453831612515836034959598316004514842981560804772963958377123812088835174343980826206341716425323357789492131884852494995875439204336673768819098544211305445083356926154633670702222049323063725603678615914747002568056435406294082356614084081078611315158926212795995341111225546663142613053674073784883693902220578759490945017007273943917518007204977752873387834546224534529796561760763314242876777345869895650718379215433185757563687695136364973921432395726187748235549530371304103848878043020984557687129059242870501252510679700411211905422597669863998989131413483111381451832097221044031415820227277860823137053752329877584931742700273577266136793818665613846172913099772539403974177869149188553741240619074804294009513336286526459090318503935403665102976931467985450452056276470943522831941865433062896515869325081646674267895666684394564192412845294405763267978381258623994212348746608816643393700040242176709639446884929757154148242983494822925853949564065231589701743431288692483711305596621462664902883608242070022442520025050836862878603876607473206157610576972518126036550927567438732842177519898572271948022885832829033081312533515086294671179036883741977131766385771265097230664702300259859097177010652801875497458039159649345844070371950916696626800012547004327596918342546331872369146449037219899299895793124607326179569467100402149228862353705019381609236458865447938417152912584361565080451139080702602736270017561490352761907056410099170258826305007169267934351819044273137891456887970280163788282008809640311797242814739217163961827852707884322482820444147591765763678997844749782318105336582235086968995494970448020532795639844337530722395080904229431531598648267910738354165781160175494792070994284404493665138435748490095173565960522537502563473525863654114116863637750674045712276229850368790441378061998455720514929999249499311474517075320287894400150429000515784191950431366150217646816164693413736546280309957217169158102755204055495341992241045696781459737834778766690460727049057975052731690824997217690049295400188808121924306683285471403673093632570656389421380662107700284141305447746973922968128250719240616958520273754924087503791480258617082971928667880305462405849133290294989799374586439619956892679131286092439806015872932126747728326121496913456445737495955597443263249676190488598884486765362135502657578211933518408549645206395094568590963623388596379263925790316344812502353041518502481688316747478499144787800035595942394312317288768944735351926926527303688890618145624388381630811396418661527746393612310778171889934554239485457528458703687771238188036367979076515924888683502829311960750809918847542498169495771225789012696386547205969013527334432061905823065675606094718398389434394926849710636418891304805680196841990275386289810011853856809198620171600918655858010901552646272377839188670773545530028993780357577742173913481051509722761173988733131419815084683244866903387496823202662507414117057416392848758945110665867039130740742041867023620295711626375495947967844392924309616765564082570740408705019073529548499364516061051386540854842640075640038919934850072477593632022103612930910751665375282519545826324233842906383621305331156823837508365914158607558996556612322708632988885111639017496897327630225371850352088605831494288181193129213015044521393468113470563518346998965809098458799667939111828314226517677481773900796733406205469039760748681527241348984046800003925416544254022375550126059739821890966797879003943038081317579039899755130320277599676300871928586021739976580116105401210924867010882180560093447182301072397430458239826676926288582483374823237282636505198161593366351325718455987946838277160767459438344021921015927214851250577389642143472376035203065824096586882957302170162547474578557578319583075162802202778313488826677562257645801604503735495750975771978970247307160283338295266119249162171412506363087389374197973287489991033934975568502976636156435085620824687093200051491730217125315390129294383942956658845947098609743299050369008442768194989473728188867726248559207460701992372970736287452874533147769577966849356164256443513616859970138829649501597767653364668395252118308926059187781133585657214816155290593027538369554771130800714558068578107345967120132242109822250269679719008143732125475514284571234766298441591042588444043881574555932167275581372471400588836801001503695390438321085614036509403409602588790538824091382866280423315652905016996873609246015861460940510913729486474928830807075305117985521561373711354807371261312420925512701380457679351446935159366961536245401923888261286707087497138324538857787332801573789551873660654435127801195156690515651178492175224491810598269406895035087314631216847527675553870638774034903131923940982268664616089003606828748685356871961474902623170181325778423526668134966675959660040621177769779476771960230424777334350385807625485593901121555320915493215163436915596372811857022875462260947041354823278215348784991916094479998973336386753839577503564862853663444527455204861400323747237660427690249706726647001325669307427284802908126003922621556172211849871674571802576867494967005651261505452998581160379755747719747220804147303738051062739279478733917652873936674025626688800239349565822517609270223630260126106470227663250419459838207858547167264799501816718984657362952877725021542285934390364669863121089685451965973119736637500901017427747306518745267678062445750383020216374780968290982845261477366556939031972101199193114400163367778386451684056289799242622106346780186467672842132532952302834381405130790624810972028739513850031744449615012774254141158283326217592924069583008672864151029609334807058732352251514280435196933460377486887701046551656261732974627375606481179502774945823268017885364284338250371347367138214626887692491800185393835106153405595003573714985021085597491100303664299702960790757150798852158333408501521451831298328087587274611057889696037739683770506269148485892585384696986553020813481746813119606139909667279290166829818633372093834650321016585181346044029181514416345235793062840788761475289339763500704203405223682993790395333843345252599876218241433695318134254215817962762123870839357108934531805219820545035650144297412445376100229538108130578224857723179440593139034529580425104088401132430704741713189879682590276332938633142881794740002291822145808625854965873336835738549220182465353897626221738674878779365287280023350039321060162680311494563922735501943261284091898572884981246931351799986020933788445800150077774850261591920197728823323483658994191979299379055201514492158851537922743501556193462163884726726089512135667398889412348643842462376772178834879083245557478129032814767325426420143454512985932042406783754849780453578421341845771602872997864926052982088160399150859849572717417444404371169782431400161662330488201698523439926135498107399994302296486717199893772398568097050041536571624410914323686401482449664697708077751079196035136250272635059916968001450035753185369866094837894676765501530751419284916268699921391488348528850916435595178328927514680742475001800135137548285884884533911814283500558875448103117649767574952848928482296522243995352309503547854631187755738364167564969676954267247963560789816955892950905721962800441690602328538407810540643101193154994104654051800544990603180050751775128908817849678982117261805171815317996327271755436076067209743970349598444330002396880726409727271860345832203255060144429110812431087429651477398365616063975010404806614673221914202840134175864900981872219007914366633053180753466621781607367746764452880584522182768017984497264785180757819072206190355617483054277298824352569610028448293701635273304193650717990564992533675265166096658991493032838717865611373535590025699802077919224544018853013524788338459830422803106163609776259009474697231037523518897495440868735066300417361666929251520369610118265038331286870754403079370083465572259692855774214003095652963894819744964852487894849037175134050461216732001453439848685316469915012999365826549030488670500999481480588331575953814097664663309724956770170488104667628955048748002878656067056990946585661611854958657816700298100783188138653555450558780673323684459278119791973381553761562735377882461154340246036996678504472915507420673987252374572358202762521191361474561873754858092754809198499806141884181985936765260322150668240296500209485686266576963437789734906925177567514679139924753638131709589589640497799638982273606361763787439053779921177062445529218399319772906422158594399342518144525743364427910649827427944013236156347889687984400369180068817661171450434432529547805896944124403221740014510843810611180005833730122436554686019981900125288935666314634672777335789554093638870512555313533280093619689260740804317550783326704269669997051211042639024032857102613635428777921153160336563508061578162399574369533273482222689347632703385976725196135148263702835338575452475434668762674530819905808351722302408487625912231654186118770455374904882212272624170195038900905497763864297238865765872253152279620720430832756619113879932677165298990499543172174994387155532039607126864209508504237575962093290813094935984110320200175346069179101997596464590524404615714915311688017587908740136560952107837553452822799043008611714063137587383217311462060493407394282233094594062530839832383996505598323018576151544837191407285892719003773309614299772541686289108729452341735638465954069935831404720776176882062977940962364413083048450673770615724136480678025274221347396642371806421461403768107629487684825961336458482184369641156797003612378359231562367043199192236180099717552537580519948173291869502693566892328572880140892578121212047891813605587812849208782956529830498374440898430582346726701512162304810995066684190470104862962333738687382914121981014521195209123178482616827288229175174806819650130948009153611493341841782132613922607336460543844066580609591121903385974923884883647375542066349778517909738628701542205145063232597938572846818775223097140116289211072718031916015816485117700755295324978149752997159468092568281206130694460965703243375713934252459406601129540998080009542134690836586046828677130190037928120254743180722033207965579564568377048785774676685383037221632521806854218047314974799153439417768896314210424435359492082833838285486232474234760377143917430419037196825392473616643152313291787157555888176621752017973919265332960286139447986528566972820115961375130616002709577467106059954235713112428526801238785743454312140879787739888771288981829622069215707264512665860670122274921779155770714200462049850709666633451668491139929160579043143230668889539859095023807612443021251152154993972399981768414965788466840612493761184966315786872168542946749108540088292036886120638790953472856571683831914537221106533266286651479858963291643791389333368839942166365341072232924995614224074541455042500413210293871910627102723046446083275097185968861629285715315268450561505739138360120111174541370841613892130151480794910239610174208086426728025153656778397585434223518200137567471059842557615090839213926871883147446589689858507945439807473333985893453151674825124408739373072373831010751330900180285912691998471778698740431281725332573459677821045228130964012306660597302137059088130302858277017458895369037610741522445869677857056958125163660822870603914559130561911339350696835274114204851030629996077998302570628964138218013912429908069501711653852903044209015350980994280409820304050744771719675464853472469066988118858400776328211106214505485552312772098790117018376496141355206669554972655044215126601445492951968186540662446824337587952778297916762555546505441726579705220440303754608919433721334132413724958141191316154999479022301237092241974483208311759275726866586247786580035576515616476823915605840198766192248109110569288320570498373731806500544672795858232427513851627864120675531516207036129588406518570715924723852802143758918508871798503041445035972582787676658367798091584411129355329004585192677590082123226993727259386535734597889746893922271108313531000975823245254858621377651678439424616840981205036064654074891054601581919673171512868652980395568009525848915735893260336956410878647982620676335565188795410494868617287874211315188641966488486324926640004131420029984625715618597656586660142561429644026521092685802486566287765376173482881811799138282443231189385604902110673334449932309207845987981868293462607454929894134746057845859990383007306820247715728951031292094662489355586499373291220890018722040152067846860962379300384482105180122996639425531299046529223729080844069386829195428965180249757469406480412259105308390123255054359274220544024474491227969970258726205702894549135340802199566567628179903309777471292867951452308785733740249475026870428420564817697246842628881172648680601652313047950094852034499663742780318086564543070064710898320804232087274079455126962774323412305269288356821941648368235437712576651010832981076317953328023297136206399179786970540564035917343449709498440539703105634497794782010573919000173756318236483357082192198231447758852870898502955344929179774833262094126779289712194165104550861928164673311129020209401171315891541920022531684179045746410736695088855519834721440401341692744874779693223993781032081111471517099751857481537533973271083552744708903741408655280308432035443163529912541227834612353608969786681452080404024476212864349706190180573382308790007542586469175773708001026930078006195559257567976270490924935165643054336091346460135020395361184282967800558962925650047561314763343792097552751294652489588850855600714473983575530978759364052084642714367087926584439358341544983309779429546975462403644098945293828446190812058789625053123220079007583014504383025736839454948055472146804104462632465499100201433075332567607013234274645032849348488818114802077993146421319262679199863245524055680368920430769391424091616045456499250513437725016689188507211859602994554428564087586327915805325220168306615486772467947078156080699795896862755837963333077731249172146537268486080904538746307222178718876798028682785181705814010295988003160532844169086213507509236749821465317566287052696807425338195434956925628698131392657089363878920370070987811418111949445383586427373994975251299521535258605149752067614169676886902893939674358519353897999221047275370408786314640660263386047221367579352366060439253681453488075181883847170844926769543437709910274332906403145403583906516968367172191110408933981319037275615232864138956106287887110670220500080268395398099026713012019024847353264807448203157756900932423380117481541614858998121156619355393977294232638693914137943098663524862571684090300491151388618141602669067631431141492123264197325397981687092857770351227394655981204278878868957794785413943295344226487886021159824837050581244876687868664211322940817508436308759226250439653454432504106133540998066819484401712270775264129555137755069570292342029613642925957265578199434156576594381242459990081222429142575271175697348053672330605126135187512733421865523640313491636233626554704958085885627307628261494255745528821306952171630161345553158125950168230666592117604775517028656024854015373157275121877175625822630447501823220255439934516403326993956324773283413914288560047449804340899306001454342852456207635828280595060530282668595249273246867104204853759627892959299490475024921575471337104283490875013202383287618425865523352483691407740729671514588231546289733877866053646551877816186593137635266199707757304335967852728412347065002423735642245993219018629798827360803672778461448185198066683353673994152967007431034035458565143378644563925457806659622296776617674775076157814735912163931182571634449913017030035967653037252295550927120639390075356708411550298669766779176757051546850977847781209429494100132508158002541410354755062447110132300120434574352705818043911552292795110101075502322104946025147949189390325902174820850955542886789041116087964939600221249957191611084716988171280792445502456300189854306968114973813394704467788131881751349125170949790437106230171576265431042491469746969769745600682982971610525477952261731440371524707223913580184379668382816302324510033544820183603628836972003679758989855911787218961002653656303142903490561907237191783548811213959594470239999781204906433790884007986474623338885671729913896192230154795600247000041887198675587490367524492111226256482768919732140329482850851134252977579973355644055705169070258432042461610964959897170826796525453912466180989644766721191612266811840704945586767703598938610080139811951833577324125759468667994834706088271817397762505216144000247391537367775408218306822983404204028606245043209571265717757997274377339330424053723277880176050793888860980544593107684699638434975228360350354452225943624988114432384128412220470730003520359046899066489251373260188244142826346537564676531775679867446575705364198548480986084903536517448861614076094520778311417697833727246899920812943784649827450024488500883011507273822935416759899490729714778978559097627698364981864283469869920602133276287800115674523151130220197895714525221288812364671724357865694702157945447881485642246779423801777614085284315796939695199878621244360776651397880217969598732810848659764224519315577065031024182953756373761068969297796652048813697003456719046452692372257622612320685823495470938331704698248714357048762851508610885405037259066593825188194722425829635798098861365647005997446862883747866882925933408425532996635739785586313928688797260114533967644901542222825161304639626144801239515499116450015043066646598479825444280720777133330924792447451447780933733339105734789092811313379410563710819634685797947683220849328327454359609363215965223306039890023539391170744079590840607672173636841896237669669801280986992220542420029850356982472806588439004093124835943027976451556694208827001146949065004206648237022429817033301080790387623010233437676233325596017484927871808328210555211831150815923600015005345313810435127299936443091915220724945315493606200929459004408250859751901796669731404935118666672485134119182311490292146180401809304684995292809445226408076582223163214161286396229492143981940131588029418878174379984763031577995723181960081653561898622925353141162568058719528339853116953185819297395432423587297823350161443461641974120505615185767716331880011203418370059954863078867869603350127556035427964032742429722684315347317121116352686041432444496815358843408938491896998006859404449252038388177752102172999249302900058679358853806580075977549119714522607923378032576098317158708833357781793079497565315933029001997232580770010598427543672417264413130925896048910713638275732162439429178949730889414128305738491944004084339534740484243780980265267334290260689692805523521286165717357550981027180970330782519539889613726350908733570352031993139354767077981922104359283107974040749448150979740798544116414358880142360010859623891152251212555195062200600437571586430464566857864735587826020193443211275667823013331816883208526047017614465910841470204159479541904384987029223745536934116311419715220340390745279005797459455948172546827081840446823471334539985152385079035535576921263749578468332977742145284635693198729622366764070358382664463376925133019175030336559452649303397753223171421371068925468966263744004265401064304756247256967179720105328960512326450245793337031799500077597953807328622999870169417211505155201824237202979520140297061568225797426485027289780643548105529462906821513426575597832725053900784414123225273556925303749473690759956351861678941279653206296647493048503483133802747794561978265480928190759130260830758782319689881157543610301655351044349416396844092453271627484335600434997253393583668389449916653464474382289792567875294474363950785677377353205712504756357142626333966161939020397735154866788652069140762673792260074143373577928294230627557079996348160572368736665024689522464396401073529704903035413277276669708227892533057608879399395913491860507362256875336932383526774709797456211771330172723901888056426196288973581891217085214623129548457783296402243029351998159870508902443513754895670853286977038347756902486666119634201250483486550606647785599174302315692157207031640171901499446017322546778220202388742664318247295595247129164274264104973561333405289269726944532570477643136835946497353279518216650352884936769130318650998736394131074936254299528173892136534808751388482507617214097132015700866714748649507247946658999701134442928057128436018091371673906687831538691265045173774502196518195824584674215943285785778795850778727274946963526061906580304075207385818145901156541260553609042489762337979254089459224107774812612856013375629977461086732554825341308453887284223481285980761792787010005413785492905230111395530523441832188339799422562489902875309276301485415697541661103736608800671042352306803357297599374091147735170940080965829155778901399379605812797651457815896821208356933649676818885366294175108457560244191688442791411464006826739113775357750870374447399386579823466548515473076903476605600034367593114797490485325317352029330700768242376659064823221402933498776145318427422758902035967359664325822787135259193923557598579879929193897398563132989131660384524484931927423502346057841805955582293368295245486333142252935428561661185794669644531599073352747574224595382191007582401856910795201166324860995865698678072542297188485939042384884051028235835269037140644446975987125923653041280395037026868115705498716057911968550152108869471660026287120617165888283099092371314006229048252401342712313859395348403742014079945285061544906795258656294554683912139862299352848600922951579487189283260606221204417957051793216925736980293437356355047737217763827098803032952773021759716343967093065013876392937688656977186428075196412132703103338205973736332135851888034754332402813075400963770124863320970705705321647274039417457915693878393552927104803909860290847603594738519383578020231614204740996626422764117031717550493455724202561851790639187986580489774485350870232888165226062051567905444081547572597203017374923975829599960681500302848631663409454726223898275721964390418610706342222898256436835569089087134819396642183247606785919755928150799779010199280212420791863534926444662385104957055492824966415591147746567654527812737750150921826392303534633212259684467491992836708774002323499811123571663591261404017016400055150759184460508538926783576388612982907101561309623727823184664598020534639689934505981326944128471902474143060610995684584146905872034653098739051558025667397646197966465520690648656587730801601808359785596716187917810795970533410889101468139720617019992108204499458810964616283410304616156999907343357001708658797576534330924956610180864802971635644378364405861748054235795066071822763622642425564573466851388873455211337537267635762065061885898644204936624452766852867999785373789442958945983449379502049618739904025076629689656696978018964996851553949812064403113980750925649915299512576915142625124684540380724815231236982339001706660227515322836092717871105411194027988740128028325882227782594406794255902860804943713366226519331065282131822716364224756972897399122296169711115819810322662300986896711428879373844872184444393429509117308451655035248072669386723996539722550954284956745470771007856239368016028441560482118665058967047618615165350009956312591870039131288405018524565918123061009646897791440043754959834150552582637205827058044477852147870789429579307771050580581820139557829300686128796600102522637894321423916686922531970490653739366701443859259481719352487867720090636733079452181869421973460925521385775193790481596800829621144345277402924540965169125207884183749928813895714835923070559976192914740527965215945896796602428337142801380647335052267017264515403714985830738656395337418929018539680770475228096065764370199800721060957916492287949028629325670960998378788277603599692767395345022473252472923940188260118646408307005150124904949244145317735799030346396033125304091361203419876644266606317850026699146662857956990189112703931600298166209286314713692300803789439825207445160805412101535079443811993550633527600249632821499613796376394248866393321463418689048983288024909207725927079500148211308357758835156486013471318435192089216507252136439315651729898947400247593600725169462804876904113587980696475177449661097058658099071506325932782950528853828493515956179751290687124968738144593577745462175682194404728011702640720606767134509173781958166766270600993492630410251838415711578980488115802204554966197161371853468786102187752990061804215438467496201533755557559494097733779842357922859686829508671657754892114281330084380126520328849087264617444823598743635070831194371016259538066451544981794606653532698054416976510282026264303983159597957650148566276988718684770108017358820405841706422568028739564347329977819129563586008763158108261221460461873033707151242539897414059483258879069230537914620235830116045517623987089795756866223188441443138922562692819632647541474565667262350617465120900250684766995955494965699187351130705922720957293442613863048006752813406771247590699336567847743913017422125184644179097919540273451357425955839223048914917929043622309714836096878554882501218766356105359733705343298136132037088690236811043431880446092290243621483796197544332267568596855094512633687461412362451157545233189362061596710073529603959797078181571916755548788182911983259117784988027476975201107840233202785249180119452015548318843773335246527639727029160469770067267741725107930907748321299105574913107009638783527417818824384034066708271456363756900075812637910925599023742366341441546219735301445272334862652357215827733627074912749132122950681004621178103296909866959606332927746750155577130916700108574176490538647342657399410730411270791650782913021323264350482000079807491298004736151568337812449823184019909067922259179351658971654062170827797395766236294850119622054355982399732927734213064724287783468526066319856036621979558212656859386433971376816967530259826619211879580267168683367905023669741328945730897246334910146154098619685480720513198506995653648465693771778926567032997309955822366356553285911907603584820749203574338429524258581828191266006201144137545937918970121617006065935306071147080419964849793099495414348655511353307034112068774168542278200645854220710838916500997662965997630340294535749152307088481878097856776787911556655958863991386592140310468905432947553559188966213613494282677196001052511061261716884130035544478630758586135199235315731121062212149346364272037673501579638206573388359241903619592429722878519381479991980705135620813863997722543005684137492798563623782218610102894577081957007996261565969214666715095025754721381420072059166194181069500561942020596024488965029766308252518514237622569337953336515327934351023355632189746673961626969127150658322122878561325600367168481236888970539134659489045256903697100189755721615651528597176690637396877629513673876730067674083957860397460452449079917288582299092715371323664516606495936659555017101947425640553545799488911056257029512384788176232080571294376360640453558520480176226039002803573657470076999040025440063430875175391341309617680961336322799289547529073289767784569861296672643552794948251753742430503496429377331535696776484984679561345372221542549634580387100783187484097315798421910465259674711846294397134964524499047129795877596825448078686641597139721437814917109021449419433093741407498454677252992822856099898284743439425735254743393956594776453861802134559804063454826200284047670862709393331390644268196538875690638361209265394544518588125182476445139327872360475925291689629721222354196769664806858954354428266384771569982667516235054012441006874658473586739459180337626880341236897529219964541550676762786286860096080945447806715006799991537049782892679152708964644292398358119082414739312270521472897200041237682526066556378175528493907538193761165929310771868363840457036789402154045867350425255708918516728651418192217371029965150023297319052395413562744742713677991284838605232498240669180262230274762225314887919218917839616569223586931297992056212018716729209600688154780403777339796653302756044592567936629688720679484771064642369272163322498301592176081579376195165662359197755346049512119670231032210442802909453841367874002569844217104870728768972362800420066583655433308985950022158066121903968408354433721330463159646656933575313804725990628085040880369364909811105368904467802615544226035786027351811967369073106659029359050569236368842299125782723530250085816183818516737605926347153113877972477366414361364779601805956998003803558554441699234946836241472683086969967924149969474897527855621467173359341805838504891322563739696727116164832148477120559925948331114075360571670056525830740440267048889492794310251408073913048859854029717977784502095658071015721039062761731789454029699336116809941112254417250455087360733552325724686926515270200969880381534878011309522335885777131387612914659380396035194512931088348925536150771073398448922576133806699640766699427630141929922187247844587248932718260551255443947647316584797946332831140236785992274768297208832570780346126019276444606892801556662770378609795020180278547159587987475780765196210971391950248954575944374804244183767559964829325890075295242641208030718157831636669909521827454186103921790618976171674077329793253867534154174687932509974958245747602799600242838217286864158907930836952129827976991630998999845384093918843349365821309179213635646433672704529029333961943324485433346312160335000842150282820997831438164366636623739239023817289666711518142080044278015783274527382975193658614143774476674440885661391925684120204685618702074827955848380186683202889759911941668920273040487361679587283688969602718735764351778778832320954770985553143514910518238655152301385541603772659239908947518701221179929234959738527481249665671554884426040783230318622264475508867983521081726854316223093609603799587435881803244144059512569362838682972256325481707682024897045782438275582283938659565485482368644815386635712039312047034513701987229361987615711332336175139504597814693048152986487712014413684748469575157475694843411133923016244431656919132083488097944342655087179532021254485859265824800391453295148454544441972517193054344029946532528416331921780467496652261682989064179280672202203197914517287681274026853339113175948455547113017669632141392184276208877679768250139013414638940582450649343970304804123578051892944164371826656430428410926723358666787890230739335200988741484774286564133188619886452355287311294848020150288558830191364642374465240023764499175324518104601831218669221120335747368952426550333961805531550256501873155897126542624245909326130762242374440357171750034302968144961081676762171752893086863165200367612624090880974445384318242210472895308881373777716121541825368277920121202196613595413786429979121065386558147967189486774875983634792033089882463769846315495217848622890699665965435019714715276429815218128274694560311472861922998196067665166528979152512545149595355069913480037226933368969261634027791295012212828608469754832772144162986550264943044319698726339168861873826746191016581800670000177350480043638528230489543621083253244984732173868917508968241454180352412808137992433350701027413723924396242322724365470703691814873444020272952349641019660456586816422522272279220391349513275840709225397713329063394160503845120717448420858863877591443863491590870687524735539691386375805106234450557831178833352946572985762223293514636476462204248803043942072071426751616815443965356135874845183164471049759783922017054362232913720793180546626444404043467984288458609296829174410029828499281303555522892756481719138617180231733179027326160347501583138618738552132504115765097776397840412626249275618214284085446481972228432097685921934034200492862146517132650875258280355309787642980001104334830947747820773158994616528465143855702955045248751839911150651887778718090019431742030596978021719446939964010993063456566530630468503300726220599587853336388119469932472926406278842859154751160810871734376257218419348517958770499901756276618981396293575583223469291283601802261440776100777977364294472101480739083422327433845877888576623530232893328133000632750435659130272656356866522086339871179756467834916402690928959614194850433124966267031751949227110522503439415332713281472828894887173324038601381424055448076732232921308895047982229240113512000212894446517949768827664508038120975840076449453314150215448431957145985868755984906851771807725131376666640495656136926536930238766250588259842941269148776773077892192078849564120491838585268675841332842383984430371106451834481630287013602513035044554771279718925671053636247867724309039750859152453792017692933356652052626818046116663089299774792206698566448866683382097267359615301224681253653238289451218116418027254300578867789377534750825974739312811389804348030210685091849848910157627961649153223098242529725128881992212388321926488092448670103548386575557276726530993456302549029802631503206811471165369034431686627535976154033055913007861199470376181629420824816807563435788571956570087236506274530364509953864389993053199398378038716067995616818022973178125292697832524932827377406373211184168282595336984102398322790287109073763835505556066267053161590171960691926962366961846587376745045306720087741427029214199161095890885499510390154930623570095998979321926122189208349897908806638981829736122842747241475099615019957142009544355971005784227071416503013170951857639944597405795214986903389631377280622287265535360157293910919085804639953549828326187964822868442333417060047671319213674552280827191602547889533481687523874467527116930952341519237466755506386059266401053898397979245508679930217220481493185354921573316141710598306887302614603686637019463784198142661678285100452139525298405335671575939244168035720882785966468011302429520265148684368175461113634723750301347827151035638696334884300025758325806893937854520335818490420749461079263853637820212387651391968769149127489793649610602725885792336853004089342235750747629296541118474664139920475880887098486838796401396878711487888913668810411093686291000399921042236951105296648777348913003729603090422739959344104855033738302565382128339159559710204165689885121289517745367862688551479274971369633594074289192883355748010994166933284562888621630891260215213968215575566361361247828565839642848275886482746931946394661278590932507801929828893179155215374322697923421573715080446771711774337093126380555021244979539134043535584832326208586055497166341117799371355583807037080024441456248999014234095807750514858209288611670226770579870891991109276922221399936728059159969404032517847876681801474647443316380963142063304566953415343763774424753237655229591121239794015920592660780620156719594529154492741198230766782882123039327089960823854870545361680297644756466080174517291133401980149389524057425183415669623951724619690592995374951471035587286805284799554210774642064170195930242412422642817645298845366628834008245893834189696404975456433543959394258809354189078731389134334073993792729237204635793248201406355335383423541195464723545306437756699506054082669303552294308627407046191422814104362458883792257420007634654932600658850996896963558109046216741504032229129158915522439627789932831129532418355197527160255596482816725622178903153424055485645795459041275278229652902845162538158712691750964646821557593400791069455576678690805969109708403556813302851453499424750112321489880558178177540527997838500639204466658692669011660385219029932243433009779760680346414794498806192091805175451830307881595120124176668146574169630185783813055682237843313662315915433265777363096662525931836508521153183513817465784019127670687085632571258646747232251063122686007716683465094662280256206291389053702063721675947073446433191004313752215349162527027910211591404492068416972516424552298682096776892402621025743079087051777770656836366796436401365269966970956887552737658811093199466082765255785090304001042839640916828877533476902098863334904390054946627927238671360320588337359658815507840695182484323035991402970945319368083045617973628907763419840045027361528471462913625373900518533309399924906844251284510713421506651516688231462025451695959459960723005052232225523565808553556526800320606160253790741619799619238520831749189660218616340931437074970116873434176428636486102841174400146358278215236965088485236033953260939664323431098973170243008660609233036902686407684891609187091190741136284980559442473870139826087564134840171156930007105616394536932259812939749590908545632349465038041204689931328056132085832275299889937126961300400873960986941950941679857242629684382287616250224213908184291398378338692339867540081213915276267496313451373481825419722834628071606696238909765548225445844513648502122563320634294348605575554637758569679383027433856900057725439823575375048685760411354877599271430697515441214321862026782476794160254380011714476965068269910939133184225872008922076963859715201198746915814970506467230150194825005662496366551833361119915789584765247259250600788419167424752533802556399174534144646261719130812618861354942128002709870583875533219271254731910692572073976615521633495957953108956012472610776413918266957877061592082678848185467159302968845000295725466432390228284533134213619619065157311317939430226996695347225051847976992254802775570822814506260693985738610752558381926308395954195388495313980446328250184027314273699177648638565691856784262105141807237279652209692029499316219014039491043465724913457183975929419020040508767877380362368580102598762160609398691950840021197217321094981355933755091090607617458349814531644506693165066275918407156218173840865965867755388949749662797877449696749769851774882178996233227073711872401815803456164820818422291895305474221220120603853324920977934732165223295592660737730850597465241256708427621819515769838135102436007228268209678000647719766453679675232793700286724620311832994109390615954081575627226174125499474302621293132403977219032150809655078955219957228946555552436984798209029547678428009489375759803189862298831634542780907888662412379563328108664355069973835801457354991847331083141753663169224898402622662020548297075725757705034821910571337938679853348227107061282925533409170204575986407796893991361171219231763506946035935617966755780880395300118209917471492656188699307777576171177808751327059307291819324789831086841595826665713489561623321537137301702865329337603756787365471581382661138122439627146018795628849448175692256780996604201145302000957577873277922176001149573971128478316697446047322315041660442993952323855851032839724897196764510617252178344690369249851008105250045250759172359143267624271371286933967549078274941348104534115206948728790139228892027613165721655147212297559872730279714793125228734304384438090555019199435749342821422247284016261927756350174170046497173848381954235694751960104619657020851779926607905544788674745511922261452013159436974090686104774603551256636056846522573829257415491207779268063353668357541736475727832216799689447605702420257971056388045418740515012009862784555759754287984102476445100374906721002836045116971063000345852532804910987898292459335464930304736410174806366763922838597094464895383893822144255740659414095334089421542685832132422498732886863251952031767444681253340790281034199281879508987412645932897958572737178693518844964900080384152157168771649326336020188558334664772385946291327457321530569043494492231408681798315224797336059436521572330623704302751973582827482828674888040515427330010917732781651239188675723601799881156097934153100442255078269080020273134280029351226711960843425167897898357018510885942605739743810185249586386060262824370014111105366068033355633302826721452040906446762020783382709155297885257850765462530245220797511869393840449294979130412801822085103156985499233501800086808680563426707425014216726935742994165416116462397340993276393737924146775025387841280168797721393299749556788175189426352358768749339786299436108556871829611549970675933738288116382368608623300838736050014887804811687212102248904950012061287049297602691564809755896282500802258515897142103369683564778824907492171729288439458526888237844876294305726969593568346616835141418391352942717669242053602868148685100276742431180356451047542539977689472722189148344083907058732468227386278069823185107605704921055625708054889170249442332334704703202942193938842440040797204717023723115162379052493368411442915130703617424828981506953840627076247867925741022869576680095466976892558906113866189884562949144607621747744687193489355889286903632590781061879992309170565349002833674325023688831851530353299517132679231880663189879784402339652464628863717985214978144877511435735541529036422625202609617325948932282498811914056313602060055804152714483958183457516035372840306523167125898550297373041842969665722664275064550190799156829228850130085255660306630290324431936648109787071243399612827751608949227534602795880137617144005709382735335770718374182567956738527834783818559585367043907729741446837842554990854671803383567057303780524365810439268124422568906369026076104040198779821142882948494241328137803226703758994105979965646612968362251424281761806002827011248416991442129451825746343945401179922283187185288187884510210826644943827152880633259675755647445669530007957836030588870886817780598885235724379678647948721259077700156235738309400628621357183423296752644572750844781080679422737802369356698724363001951203648068982644683070171560996789135614843232639355282041460093033813553566489574375442337581799783230097314564040745923456071069780312283105328912261623924787220954684202821452269783764214781284813603227102780372317970608565912227811511927158285492515036827589035474107508347103455837574226074747838246113770600082325295290235493543474416746867941756227555965308831493021571740619446174968899371685963815005955734989122895667274417883889313167097427940795529794025129510176005779728017129153388127844898136108649702309493592805747246782557731908948132020845576939327896067036129635839077011410950977842610846074595044318332673255455890643680909824341391546198115669779571017999877983625241777268878179370069154876278106710256633787660095239896106818703616945883811995269216152165254517095789079314333210961990394926671751164161940806237622321742129074309047053666950335826423197180914675396204897075817915980471149397430956393518400395577921734400478554638598181823406881931874628261033722643584273099043058980845052239783751745798603712320350487048373314826484962444526236530162604788701546576791410059389360657214611666791179716266801693404712078929453654163313939149749100794854382331209492167188442845827965125521922759088504159132498006765784756119781053964432885263562064910931942372858987441867398448608423476350341039659779466343269038247027462711822034273419183625677319491577181658212167146817766985676661508536589232802749780553319234014294856413630623907456436457131745417571872235142231615992031240813412949736408814507718570417323519067594178587415875216624235359611284789661839207006441639845532112888485583874962713321362767635857823794546971188434316857265669136694676249949257988414737214536726064523149472190833410806680930888408229372609149809027100616688203735534064266922215540016091734407063989107629424968648850340387056343759338236194637658846576430769164022440045757346847839048544914622064211903949572891956846906280869185904458414729296620494632304748626675066067828150036371496976639147292650436054224340106648834454711122628014062982789988272319775955263541879277487335293051676080528296498830114833703623347276460500775980138560482694849321037922422873193222435700258423904087806987284964471748882597719339904411964341034965953163229838879710196432288039221556945768333162964659833440522492228104025881023675372104975083968942641555276584296346726648356336802079867748692391541069755305770877155863231653390697964092388783174095734527464219888612536184455358850064183025980588459097289417639967235854116481737276069043594033078419484867281608072547609045970785980705114553485281621329010821901235004253680225194110893811385774507069343644294825777913758380750901564565574970818892088893562896000979424791181842275587326867952888698394072283482894649934150350755081749836525649227115086959871639574243349081860184099083845113985730082894206591062663135199736616765512677342771908706030969304158500776808266401094259415124656944202966047635327574486754850508265537733020840155091324014850742948739599164958786764680722320204186184313420383873818727408729841978253641023624690915630370603188675537618146004257471411163219440330837267967301521405441951332243082627042466995041954327455800740524146917724498946594314590653225714166342837598467964481101028676218062939714357230540334884020306267997669484777034175760958178876253420324868650090833534290978118428674666489014260137876039615676761927851031882141667506161337984286976982645704033643832217705143716920921796531060746159428457336028071421540550833585574046783246952797926861619286271483496113185784098779854253423620910150964222783439571674024503938213812277511465895097043375934754030201259017963683653405884849739905853889130472827274116505175341426475094440237824592344370353698385315587737689631145015617395667591561791478057120580520797941140311674429466540369532453498029543950044396316161251935006883231185420362922187612234926009771184012098210475458259208394190827453851129586427195406109510569688930301318851800543903660560833228486987497687219963532872655162038281858009200321980274896425286677697430868192069858160021939436625062094684753082974514222531354435412831266932776321909574827088568320133181153690128357943194551309933596039255548677646157262896221003926138930299838977147530708931885029284893265999372785252290898435361752671754184309195100845260949913266434437570845574846272215272823410287686743416585264304488979829150787366303941551938343585865003947264521947166600221911757816192183635235363784850024696983593357026236965838022938538603941681565257940926181925355166871955604110002973882405040243845853728648818599016718702331171824937901915764554094841816532364326219715812446782463119411618777447895953082230699791875316055082636196235233468714861516618431989868517644979203007560216455905689741610647920958948268711019666605520969462061412171368999302311137359391218293556190851546174428799812328863047678580321025612827952137720996645669458706255741011854424057761240281607266641059647724794006692739894810218442592069380928497584722194002129729416184363777336493107167972229674373323396279059583280330653961751240422881780184081577478393505019412558490041477736179997162050006840839914166827933073741500171727935321117558939763839004621239008062007014565505659860926366278094238229573688962349507838148781042416431262496572041853643216276078242287504556584789919921030171398164885131073613671563366188344668193075182112605817123088194246889882046781581099537237049284188040750882046830903584778656836258979699318573373783347015404712404215429194714013288678411944750618778254763341263931440860460433572871244499642715216649531662487030532087929642933141149800390339897377134868291471711809843134019816955619189023786178899451770628823305528674583654112379663239024798933284169507610444125312818874640656160635131548082982345966754536288994245051707709491935819574939055940527348058235878862858773964829780511098461796546605179375364876952598378883574773063633973944078598188691264453982343233388257317280568075700772700072500629974061202047548681671360807484174678897401041374710893604921696103266952931759246315488522122949443618052767448903000188911044266802142384262824324140276207439494497099136266714472344609031439984376572393714137254825759975300790401700140970196465136497995573955149238609261298795503756851143125595002684684227958001291208220300011461709293395963416581215287694907058704424019020300865116227133471220985218848502566041084303360227023479683929210337608615646012655767142871425432530112899861868709253385508771065185161494771871708711594022322940028039823039832242069488286003568326650235029231830582764248584967491140259047159591980440662364885614773033356784835293151159167429349177025916448980058247113421971383340003658308489646340915601423297205100804365981043469614266702696836784613701081250698691278553818987120435337264070038600301972398137122766256539601318137973155009823025289359654629410668279520284690250733646560626083382729368976175473921821316442597230129578105886370033072561570837482405048848159057258233610008952597438084164282648013340716557024719144210635472301254584409173546741434719535792633062321709284566112848215299789320123211183688711383184224746907020284532473156880644986127243746741924147561979620685452866247971490983690133609866920967694940705573275603678391636621045903640175362641041645255719079722128293414871061525672182019872232848694452948396359899776225065859443835972375079214810902362650707037466500419612543271179762201452448739087611808382970184989760330151247633902591926676146805584548114439008604139079199680324556888964870105932659583394661439368829307897913386021684293430214595302489915360868961777503920718820218384529370840529782864647848652644907298411225911037304511683983636307057172309444329485613120645621313728371781593380618833043836263264984984418081323672020487940973502979779927286795553052146429436152933139800806480206593810220230189589320898184908546443800477352891492627144012808528586576970974537028270609408514909204178178025442282763512642454686650842720223182739558391077551397926319400376568133698285203091062688731480520749108814838014679723133150655054346599880595042192443380833099907581471358048673576145471638799063639858891392971358607956365472254477382417209299646385336164450289949178227288784874785736612769153720252944840851155223024467668016828598969915510941305555213640995170990158918307663448546758044845848988629684283057935739243503935397193341674374924536992588789793834232834588364676835938667428541182028294603172183972640980874185949617809303836292735186905054099591088870587092778525868426760523369964712627611937868792836234789228731601108972592722246645103701549793371319133465451262184986592165194939416495859022500408648616533368352732383357358477795293876757727328336079109698035550563668712188359466167899636617909727457512089431659894561903125144608894216936926634282754561531126384709088500230936363694017847045218608326620868267246525778490402245751652948099012665361774787279830956471649323596875998888324401316632215481225406200825743446191086263856185472893587100106317055178419294599648841611858333715538197887004556445300600152992531468811138240165282609292403075432930326029805482646487187881277245843450355672179599157416324043842280430721753894400011326257780199399118723456950102528082417084270280651572919243125477279365573533715672735077083765705399201201131878567507658570383401916637737596661626288505906133723074653570357072137819676502943692365114935792857908393486578605536665890651592616144900391729952740752387886552232564522851517207857060207037594079026088757699257227089505924122679613211179246864715459776734108633895059837250471264175737136851038787133702371852882521930924876303016590969916222839882053819194419873971582079618017353427933970468244468834999107419626469484426168162089366938463913110609232666991873480612239747584931231457947501894896333370260313253696480679978105021408540233026656260344362037584414042908064051275681171353945387669155586308989177205462390416516030288496582598798657631940865101440910206760409758866341826422511619023747926487734307093293781194809545424720631573019124470654061316185453597259186613614507570697067684952630135436338006597508558544514178636808710763209710893263940447124969599189473653488297271781890138931081932939044647249730798112589648225276152912780345993982839451161415352672671700809425668026439066946252232790875597029027245402410464574518020135506752158080747564255494845413825550031956043755724944172429150769403330676901316187093388528392197959730738027070202095533716042762699975478923773790278550214310866841400068343607327924845911813279422371734397106757273278067073808352549836338840661605328746616032535849974595995499384313552477642231131477704279254776828356608811118455179997702307420277141510268413839216750983800669739472232400731073475688667734538159059921084186063547140889412510631955892175767506322448161350000566112559448833343260788969366010609570260048412501779786309640382368526375826660353864186849622379552254116101205882534526267611264113943457534049386033229174264445266845711559181980769538892403169311871054075279467750556785998280528648048473437021208695978880210752391758291070858297160005071632611568680957519106608154085108763829636706483183381933367137642003086951023846302296803078349185433902601987242316767673100608569991729645385345504877130028993525786920752519348486740387284091943184008747521860880039463831519172246724608755245920659857276803182174311093028988688334847836732458067146776283128156449693098010413521401894261119714685839551777570878775714118311576011996173854862621334293052515555565164384170884426721152509289890999949868949351911725286928898981783709782781442038624837260871977960038132339865401875603638633102137267110842556452233894558550533845432339941545079775243405233130930049214138918685596949974143017041004325121440493739256231830814110161214518869307581261774781100363567631271886437410627282056562831128123625000025692486118194609850931417967696815840572249893703240485263529198546617082125451219404774042180344116434961310698941684561656635973796998886611505057316172411652100326908341694602911236118472450445561952497220034069899831883987799834606548657002613889632230168849364221340823082448530137014201568226858948843115459083002870299055855893569029644126888705391455631857932323076450284932111603939200321554875623093473898362781638558334221711131745149021197040551646961385857835702422222163434157569106386720852139588885280079044546561533234988340020953057155766367802636462939127420742997233887389267204891632808145277206255001235559228219280385496539723566725500701756908563095995931623753067737201129762025398756283816156135169659886320344949699162004418080076089955638543326936458289364656002834287232542188068602547907808755052523892141306392241340329958959060778890233611995367770934591007153458312718435903043648498780436566845110409512017919610717697669310991483849837618659297280013209667616508320735400589334530416536623087950337198402251104780019452903142085613297078192866390633934158896279090589335642942799312997872923151839972909411987314841510763048935410801556614789201716017158611404472171610471526360818315532627153535564552761858709340046722297764625211261769512298899182690960942526155389295504302857163519709322606217807048199896882723006493062062810189807685435947229152893758191303435541452251213310288711643073897895164714928311583286892682206431799901623878929071375832372776432962067687383845876054108204772658602613524959232849586201915109776781376576457566247980891727570615021823057475197757553268733851860140991608094815894553104950083780253991209307871907218051000294693852330519267232150060306826072834897676194177808309441132601515346999506113168024354242349311777052465233558283754042143876890187003963995342922254702473626298610776707403202872717796565617067071186764034889569753131067835841481846016362703824612894258177521516323647325261070953082800619142104860687325950867001718846112011785954505261021807374060973068722469507593716412466856567657882777644701247063706793800783510701168269815706611094723766951811221969056580634747097661618196493711036147267030538035344984668512031437379299784537734134445390115345970489146955211564259208406002422517448433736231775436115405644463411177177143461360633096754456996763183250920673248593346511545992151511166158858396250926232626367459619217693090012678503907596904405693585767614436620238391023180497863121749760397481754323074151734803459611959986713761934070151518213415681191650656228602753169634465796984458857519857929761844170045405749535644118136001243732325757228625136489626848469369179987363815862858480487693112033371358358296658436068857308084920473035126732616923013265007799919700190675094001908739937812409893947919310421511164157794059268358108120002898549881386249163534719849498302932979182594369667006441106729650019717098121653656856767824835370547478073733357112667672178977864884726031432076719751443253068101419880453420401781997734320876999450099848633158240249582838355959677065678953302713824085961827281024416434018157276942363836952061383418583845080704275698750892000202453606160164994140517121416888915323580175144265795507806983145728095574991050163109769373559226170729360344888350151042895319808557806809696271824552506454058619568032325154395986134563874358969534329490773770709009951430540043832260331609993290232353715480573978760546690539520486767386648581016000381559142282535790356615667337823206574000942080380453735998602706270944806985618797894583803838769939333327483870473441099456200791170653588217270553666477554456105796694503227365371295879237115913206471603625636002678312574253639416957746162362134297689747673855241578747647495486968775255806338227450807325553149437517428619525903817846133623423716526321423671572373033294472412039670703532502394468238332507612346344446235215616769285410816978820915552531144407315504859602685738694221634522351883277087973705408009086064964414131885027070717713112456197830769818833771214441257630516410121969886823772527590874346598654683586164850695856190405925220113240095450342238012918893014878447118571781694270417759781208172266701279843932286720271144537427509125026212918276856996049244974387353314456668501967800316499296195168208567023516855022888289710532284630142593967117162852514433769341013615979037782131748832075089544872836560482261437512399112124688221755283772889237669964837052973936286889056070263056057816295846930252104842714562628103211208468667380044908141770242454024245024140577669261895738765417544377711611527240633340225873894159313625211118948987237363492840392066311384928557049985054541417421832562492462655205539340296670664959074572379516959038429524932114675627948429147989172624532327544724371832060443560292830800584578003661373320096281968923747433943785287561728369427713348685721854382190619159612618477312948103390778974206471443592290439443914339819554448452689036951496759703701804049979422182009390808853524573032889645180599989680123449386129441633840272413666617155274821681026675864775455059853590709218840474910286033213314181126161741349703156401810985865168130845100481421153795944533013681378703470456424332628994979776358862471100961842191439412316788494315570207425801002119304088432043056533895842593248198571314935545245196569904668535730965101912017450155237033858049928265798992593359054381002826094661288645039710454090315398104906227123750126997126306362341543031785225754718818493013224033132458094043476435805987527137988827900596164573100461326324824647936974723306490771623968517797317849132029581561275265382913361572379040033356750984119509305396863433968028202166558109694612758836794522359793462411549371918719654824901600678726839766524904809299160848798844065441244168407645186292543666953634340093641972218636657261606123768090768050787927352234376156402953877878653528392144839558321160579684886319366346846222593323306325674066866869363007820235376253643513987336796360127546213574638644823834722311600087347374025032777092216210814291295246339093586898475066964490084961141153325951245089854685323968794553344554818143354412308386023338628230353178147671173904278720923643197021138353176635748163549869242907479414244511209790512255399889631978636511656417191289860332568678620312849651076782110591837590661536104716723390113020087664328912117081842578447996417723962058004328079727935747109575327938652807003515975573999153697701781662847203655280234019593623151358321092536503683359064224816430691275481209869015181482151257688325763696238611281867362292308652540794086227958543786534053889752780775571231295029041368649455056334925131194099386943821482646898517231041944017192725411957634006105320722249545600897733523481035839863819794689046688121176383712302911424757365910302710518168181634652165754294247331682099657326583663565860568617118049560632123507209139225250242732198156733381696272725551222526213247195313661208481357928925427542397000256601380530657759842486013806313537844008594202304732267507653708850693739847191184784018299995170492114236458585803339159978098953702630102865605590976348532222367074051653469531646010294400798771453691045005181506752791674693762088931072254805836851910763367631862799974710125307523416997913147627204072267444551540513077275807721684089379473630004755859357282907129484216607573148870680717079540653115647164030016987470802425764148724584153367869928225878290015388154190778401654253622767217261759758798658827396801948301364910238724682770819849420276517006734669477761631187725880921185811829834555765804739064570411493987239266782286341520582331057168276989929077471952962198613191657316284088712462956920201101870015577517734907032344362092758516835781650199838761111299166099754563434595947646876657622551736145257531420589548320984463062982035362953331841438869137368359320169604273926450451777771731221024948387286320173377926384651417970932612704236518840844790047848545602269103233017534651253888767193511684074758640205339893362068421433330908098178763791478302370635157449968163530277193476617581722625862026024639632297691104183149111618859305806292278194581404688140074590481984080798340017570216989072769021797382689116578940286587643134807739336515003003200272670789405012878090409480353052705996721872837295675843711984789934977060196846500676748418376247552439650201327907794593037477413063860635621789203312799224324520810970877687186476576618138199822211083956160959849476826876260231963340065805407545829541465012032367140866728348059838361200750280210371438564453244070341572692360902980988738655277777492357232472997451317197129336324916614465617987791336392502532982101772912604589781134680675966971774050653934996977083679341138381610761029706772433920195523314708963639105141525643038688796337195745703267788361472651992281613006276235657322965338831202652544589957440161356620950883864419943723536337554923900288664602241213695732668979755254126987694177093075659755636131318436004543883917454152597255764569571173385649006356642008581132071091189892011791992517163929312092160621222324134103385419557947526879544636150179125300222979984588845321279693506173537886879874097373329077330325570378065438047180533210752853354920074398385751251079815792836614825294488954515330639489038366735963419326293680093720941571969671869408565903201353640725269436639582910542046397795344099213613679665979008712592928697652345404168696179810676566640253755635340210117339475611608657450657975539431991251056185875392296948393895253284677100703643521005606436768736959153906478467947829755251836889140825718498829828473992036693269986444766881417051272414366018230235713738546391798186726654321341611254332185007126611793870286187401858645003705861110192732128432723425910115479297982302196494792373640236158191918670839046410207605166567558449157781207930828421147615560793252163957572963390837139044729658318947559329024977668101353165814682617233507039436549176528152988538015935375653420738414620339398614153163094529700835453890044487766239359184081625836295415754110825040732754998831506404195406051890275612786940631307693179982377446838846177477604391734213812589205316879375936786930125699940894676950100712817912616213523093209714058533061232219290261093734224360177395926694124387002854914600682004743937812490399797102614554750517658539577244630638301307450118630784522866658553719294726129659665813381005914204454329300364174939333601436844482560982815816543161561972889320907006085107408669787340347659920010008287132281441207286067282778550580660820608611837019768283289174374803527824807445540552446137740504810688591609276462229279046663529775899285446637192634462248765297118442302491219059703847108648591495798823358636646710551883688409157079229967187854668735649080179369588479013037462476862119737281397299990207785338518065658267115732469989782980439413817920063148959830357954907617700051539106104723376525135306471356905447901753694220943915341096202455539963726336835523450285889230702577735117906734096949829384736351119907082653585905569408805188919989872268576729237895509575836378279013104440964323962731868395968958322854443726973290983974312600776097004240371747137241695881131590151724848020749904145478238765194057969403303472628892210884574941360893777110517381462152597161157918230139364248908821425665904860672634052351320735436270280368743121437414024172793814370208532162160410996336360642843633188707213593347306991993011083602332278456890362422525701333028444125139901924670988727446747712217714892391604780488626389407679679463159913463210356043216689921685018473612836967682051946618156200548058823771803250584994846577751432208679566107162864892173081620867020695406641586693266744473678494910993584049187601200728548452813169375815409089589853440530452573051362441959269467813854433051423837136911971725879209093895699327405476145469657300404639287084791687208262383784120888329533471855543077071763636637597805888450754792054511952444100783723767240866778747184760913452983995479235695106938778119749147822023892971075280553146949025758003538883705537249302978713058097039354092301677207173054490438954341422446110480244325155281924774812659113191308977677504765614636771839121445067547486870041296255303829087111684993412190969242729961584184144685744585874115612801776779426119599774804874743324630294631757773990830678478651060488420895349976665647393085869645819907153999392261045174242876351216576854511417576648244086208254744181316561032829030352986479356615101046647412992805510096663198150598864762395637914164461510354047725239272086330393690938450569233792118490751892071090578906406899087022110383223195035429801845064489814104945730635896136673025758345937316099932785579266924430624328732849600340773401000894358788556002425627614223729335285760283934624978111204193468585299340725636977152852502525630548219756988949902063960098755375870357930346091583159781801286744503286743983166904883117226958585488962840037331402985149081314504554669719463509783435958584362088152304460452751300105740926463775336236423503842158945764595382525787408073839493748721850838994246855075190054143407275723839448896925754071817093478803872840251894945696829864977057900649492697481919198797815941971797712762861509822653567128396400926998518306377374457103982840106931936299399330921374162552143555437461184694781992224425988526505847961801793769777361171053696022327076591861048377812401258497649545489275082482472404014767745096598201862918972865908234347158713262359781960764788384059406151511644468407093152885745505122693345276112168816330468372234006941797792980649946678205384870364547283670039971710336048961085727226733384673814376662198833304326146101176748641696885838443629346397550593608334451235644582559548286080072442263878826490021903552188682109355419269390136233006835142756651249576191826641732348062848635605086728514998668180184017122198284761451847902042430378760970477494498917196293613721240211174268800882337052748322993419989991027337743166121180344626622804016849129202005961923668027454389614789108374554881971901196970475209577546834958841559586584308948732593007393094307780361215612317712990023978367605967006929563371408609983900657188205025154646617068796790947572368770919976797363407492091663748160487261343853822116706319260998983307774889532018641140103647250988833137328075541654449342473496565290035377298658304893944234906270626586185038594364467598832828347075217647111607423438761607407080240309138123126932774751245299846391394703479487731670552615733484585142914323788392275095771251906109445285094949772787941271705651921390152992006187167870589241003999390203786429284943907499873329733056211919972988271651028640551219896006125780012401503704594157834544827797038354734577028662520627462125523367427558393532170694349497876793541106615035066085394919375038908934772167040260129667194660927025529371724745984531885313819310363291093500904666866463135851131224741118931369129886267639725947301248726512044157199023699030899726086311592792480361998107038513319690117103977699065909591598846465139759984308181178385644277219203778394157463655885141153893211667869132766450109911594580674020244021404469066952830368252932204113574973757144920567466765051637287689164201945593123721461330533758018604405497406329095024026251628937828763084025598874337532943429562605767708792383617254370911386848125565451670514378344425303865247985741404040414457734056152265542993601404412872810150133861202718369302516402242178948927751436544415069474517098458471456025175473152713540228410067668600520453687936170643227474544678258403958055295717441725785568333907983325518655808338307662224024344560151525143863906171229075469548877589962241271524611457234033156380055265551184557522066237613748414382251093870156881168665996520434204189061912773251880593579860983731281188728595864415476374735290233188540195154001340818413518965663413269344536876927750475552501798519098998508263518252447989458954419726541615323882907513660417679944315008427520123144261438005131928765196678423283006783790513930743774883189489527422168229903847634945591886254663838829961252812334246608146347408183816973627714193729274093064363617440721566311764740307897140104809355244801376766117780072664701313598668204724161873403370881786987270482833752789609462463065486640441675461444175736879320675984207879161435110023234350408573251605571728231600569485743249452214152334355857578711639188561839700033891900822345926063091333352951672442362947294735223056630793608386417194796891601657287633985036810032517675465412562937675151299721049780345334807553679398779186173756848788633332079296018786614847173974750252314734475316130346530180659564304837257617288013190998790689996401087209471340870909982110758180887013483351567958505884686275244974132965536860101761164641805602797861254228001483783008016532622838260417256932809305540058316666488633460648882604542603801994542203768374370723623451035087812764471653074323233295282857443402583792251314622811836140253911290294370918573198664086702306840365889952682557567502023816590580280769491940092441335843274854660616833063761865490671476781075351577864002654803786102607781726511103512130639279987790274974644716041836300241269530011020551936136280070857337642196124369448233558337274489887447207069712947656412244087843998364432201026404296376175758420181703879597458901018195690250465372317093744916986628497217294018252807820679466804976129851818468451147991084150780045783644708793427758110820982913843827956441777306955114178723850408712236368201055915831858812883731607295983694006338747238172278107412238044569248333257195819734103705847495030005639760700321414791150391285891657787590436344079357055331805173214476648430218429815019021826278467160894503035497950404067510722929603532719920320531338335161386262298130831691312522181874561796482783543100398835591274405336930905443006916561380038344880587609046000261648460177914090121927038987183393224345428981152110223638545261638992170468930199519177109561853552053745456328167243206046781059575125322884627823101704926107972026533410175047370463981426946729849225303132670506334291161795366058908830184819728659564594070186164329095895614298141454373563415749784911753696582409767170768332509350347417692912481388611164726400365344302178547323241160032062291334210672184553454321628230837372405163417494262446082362434038218338102217353432098863786969801835866730945246614651478043119038233218789331591220075386029913373899082180375389195205245713127401035146995991420327462515569236670586863779441290490934294874720058815265347176384703878904461995598407297756143875746883394377407713428416076933581915254069598817676547920416857637231827909176747096334660160471769663711223909720871479120513067273881751293060349577915034039918131237239752210305177038690155579126081096621768292775171602668120181781167165061115470660554173494252101595077104263823631661577087135578022117448807746192928950788916280542140543192279569315317917700469559248282200737888070033783579126041743084835548529118392779084619458176388040640456133921176657723878445373255515589053418323236572317557630780971085416756850592244545270881282862419670406927456754050619174531244854392801527564817617150596312659019798236439631087488257847677127257759071084875455631568866415234619370378544290888425195775238134754645776265383864565196673857424096186322863123537417258171696355165400844484160150577426307153927653713004570724921773850464225562455924360419307432900093022079215210133879206653515767230944320975678325940294482780024662934581217721901180752442212044786343041564820348987488479981702983142893476593701343073440770243284183860090562279573610644935246341006575113431942014808803461781647077039449965256168216815036868005894809207828867713646388651736694590726696057473235101428659126540285793789951891150538117971372496473596852443587469341742620106151315196088672988547601531479293868626666191982304447283382959156446933902974355004762381335009575362507399258587576089998690646765101466703626890868905317910348403294771171997192663110294161807503507328245731328036158023792159026110477793959844816765041736715540077019872793181605805598022166546762756395131108124057947182481918520960677930878639488718268166849899991997847220620574705247316873570551685489429541164107847063898499687663797295913577680537856127789572885619198144071132225697397790509885650257497714164302464972883898225515135319154637044560315325568866004006125736786982873869277494380525378102707667708427969600315911085894532789871568119667499775008364049674580673922134723650393144340290209169446715926174739347898106950274395779630409022808340044177765868288239881700756280395241984649953656781040651608620686336309112519241259029380317953057013047996879729627440836380511573144069813031370591118661068691474506160107149932333679868812699965275602084402863963553702371792932676527010375090353164245141466593383651350935276271533087126193392491822253580992277197801316217917536835759457029798884024934324940396909505876580257816745487741833035714499982947101543165780153349094219979520683070265655947749816568647744196187855125223386831735757115482239079371737146944362410262282948283667666892972604744041690221252347955071014130761484871877540456281095518080411662709396211949695520473084710129879938919517771757552927548700061524434537827201762431270578719652424469122498728739023805630389937548806568662610689797056190151647737198041189799507373434235622972234799958010874434875322837509700401636288930068254387160941374781329790014806271908038072968827877204460793516537945564143605601358945626903575838675076211824265508117599040692313245794439160593129145566300832941045154409292099090028348792962194943194753976007565830156519755622803726623745587050454972066395980766936511312466833235283310788397849688311787386098525664241049659273736575999474057370325051488840017084033872883331088008806214449992675094157459518920138849760837805322436067787726224796819684074234363035314655024957063702730098746528939027239624822944510236168006151741885503925942008066695620461788299859587677464664189742748868608156905707379645667795797169941573600870226482935425149341204197685496446050348379896387536560861466119540256989042608391023804166328855087660091780875535760318284821932589237521249739451500322712313870207923246987277246050160506411484072320156461127215164357226574004230046924870972916065475383443609955779118089923257149389677346882892003685912228519674437797939216697095308458177340693489176498706749090639437428290256766097493646938578456837930915693119252483754498138227091268315805658303980262467740731966035358056900214421896766025880992009792257770105832305974166385574714802133708863269705590153254167435613204527563150039765678316470651501658687361201654592158893360863815152234439223262211144206345399154621630107897219489573759494285407836727791278400282410636452660404630078579607216660659291006747231233191580283778263493785344123611127331947674895672692477852803354213073997270103216736978173202250769944004815097065687488703453881805920658328296320021062311972433077178010143015727399508857395639344700185723691584253616845395352727567942630651365199978060295301207042854516130634697439418823145293048276674144680809382343982310139587834899800252175854346469416693893366774603528123451197160800124242880019274696860610383444484072395376589819367481495794492472441362788888367814648370651466911154556218582671762640987737764555156724347969007321458433707063214716933946051906591560791409426337882531836322498503440301172079972593755377826279162193646539053069443584669498525133199168482497690362740880658593335408140056001027747805294680767333807548288644123377568252611336020788579981391990709097062365470733288643941511571809476713200915929485538045480832731879030921930250072589334871447213038974935817708150694806453875593101031786226893341785985508448503382753234220639352634641198826215120512444673828719091214472857551143384843202292477840074869809046303919648909350551901946094118503513600971566068593667229741551761802769791274021718373336057859054802870163457855243790137964969690567642191868670270257837523038533489493555888195425188763755147397896027967746916705976356979121217148827006526868387510430598857515662053077766438405807970190536010045365803566153472614441644658746056185667749601699277768959054365846566795906523102408314857125299959523569135434148017157549618119747004420151755508905934000853320486127637169515389955624026741064240701417824427334966388461855868035738626159606177685982104912189273084558849288111811820898273069696767837731938087136977662513840389999755125383570122904727209301764930769529811625090593669312970191510099801330481708194800618413667538884891652217022899945464265842401360472704484983145194411532067797436128302100837234885079102523835148121947267984606778236306336510727154977750823747269247433938025070116625197777190375415028418845471815735908327434601765433400067381413781313813246324726007986363289221201005445435289840762861163787288853868427981814900064948941185117039887197441576270970761551250133959178349345356359053910843012434111384518042358281177219290420826869264248221575929030859170238646761893909612251460145311122394076376272466238934777225111801221053463722792801046899441472558708883266230096282377139857295418785346553065032484105600222444668233902104332430779113720178687350731635098908178899015330348628162771098638638427956638522812900108333783449964102060024970740699850351178708547110751545183920616252140395694639863262085639789302483083585471618693988258858629557057378385925502772665006420904120906542001688667310536317753606973783191134567576074410291285992187242653698817995970901552982488970357815616083745986281066505007428814001712330393238566304708872716449835671914509412241814551526025494192894659350992516893741736081220859825333713070911590458289575988289614417127974661432053962901648333775403774705757135640402900317627124138300557028171568211977840776096961670046511441952350621954030213965886114504404398655506825141415408261656767766670863338171346827533690277126156324650205931444100050851627459181460296104539270327371042475527236531453711220728678685930128277159176443099576605512889189012193474717066354448799795009544617632608248338837364631408438755797582674449603088462909497735326844377369308717104315955155201954081069707920124555716238359936716114689295919775390979529280595624098022859852695832908971762725331610531711688653185915749085488341918562958235937192581127644934290681798878457002770301545627886892456800282805160764992031456084785110072419907695889898659313489372608920600494145477169669477173029983388685155743454131855710915430630828568011809588904018769332896427810690111466119209322434495222362407940592483352644976134105491336777619391043223690977074157103507440634461720059597423578146705311539010570131561838549289798959666783121364151418340044659132880934332647765382119793192663147537589986611708268928723566760857420531346403695278519259783455366249002037009128146901475301197837326754023904786232575729663916254059433445336122774585906491675262700899728176009468682526007342539534062161162779840754376523216286211175727680835242282601293475627968973810551476762965387486838566413913784828310304631752592274108499683235258212353016306607385580504830831959850093688957729404729879564291823026392420554066329650632654586870944469038143199613798011204431280581085602443133780812690500168559150162724406627320807686793499433412524227910915288658753523193914733966094932243477061293404706438433113202504472339085925449979718542703148170902229511020346150752055812079064220882650881633200306895994190861152617317995051209816608130900558492089600998475905959941081548061295869491957095135315435209120194080635270705765776830232599640960564338158065428179653854028667573162004951251660971876423136506936461047483316786393895689762260315479360571770131065702374474407254951873078274783072091984995087750773790036212543082607905374569084169827969297715618361434368377633611627059270567463269686475793081262969643953275786385253268848699224158165679682180406098211047168755317768167515251845923159845433824819294716358841533781806801142198484827025523952174213861189458829350268104097285524179793025035752678962947066513537439343082717588271850398094865929336284042692700128902715986576838891663540998596304494923988052756534099900880336280131255590280998160159023724646216521774283775663176232646577539883394558453123368832042035453731981414269597035456127575030567247002053981237648862344671811612883856538802088953278139928856002452759963602958740365682484617418869809884904499123555452290238006416001796800820908146425249988792274376192327465135690543799145905420014663924628628725165727782233448148667762621111956488757859173904488440151744587032131542676983248867862755546936607853795280238331929970799967618549242943030089054935740229135521294411001390625732471261702288994318266748486201649598539881380597082814171091419382033236487188206728541549252451950132033554659658231704273286683874476539293850786041839280614283716866454682645024593645903555735475390669687103117474464310105225958769590077363589763918710331800571947240800870126301238332083834371394310888111426234044886112328829739648588770189815336557485694875756990912714599246911879637305348420662328104323273333715764330445631568380526540649438501384946879121486494909863246571624424013668443352382064028428374498091207815701408884830897463644612322518411718692959070629575430947151909432599158446179531979756306499436630077404743659048624190541260174279745996727092814618394117500855034261063610108527251581329730327995779226358506235364987119164481811897865941250463626190758750979965877332147501398615150738782505603112294614646488255174065775033484550161767509896896764339484444267105744639529557494578774959477758625553703974344802529241641719846387470437673370895132986953323847811559526191133097911609261713271579282018224222235983065912176455893076567724236432000287548675934780275135784626826009315303422712175683619673633532564639306439962882987588358991660780263231319504294263918818235068906525495729103378174402934969187157325848961159179642749313718624369942055617124748136713780130335443293993307233466521731587158489110658486763542125210996817284122924244169050844414650964941100651484536020976692415604210647404678383361457177449929047439822937614582539727267879856834268219754985107170125600385632421117208468871291942594005370499361695659055431490417531488647358105123489242378549651563189552323199874785042409834841228185287094805664242596640382126442201667136829054276028492954526563368322701106587246426592764440946564841492762592559393896652771015069354024466970043545431934043506119933714138948734441898893487618188251011612219059214813766312996696820183526679550272996667865626586818718509856446539842377949687717514072764844279388210916833704296491343678818439363904373506476860411303216567640372656601785500606816511844795710024945505923730879169156690326352181558260480283330293945152827020442098811590845343527262621604984794195942710479092162657173252754822555549298305447361303545251359180972282267001658036568083944295941414965645477524460682312294173183124913311778872542923367619762115463784578662773083180422720056657934387142213918681186580817931478720897733069139808201635461699206192651352818432532332827414066416910673527414639544428171340522433780803854934154056968689991475260446148879029347880285137415127020830100740047977386312840798137186873616254001726045075040621001712787805317922260736727617579427847753482047052932793913030904246447715145935867925630143395903241960182437579370544673963964200576557095446746089600546534384325834275985125346746168376166602795855018303102338715947641241914718015317212129307099627267254789197439701324690184596973273769464029737874266908767970160161225087338101072626390221154722356731963186167199398358630117669558693097009776185349971815236763287708916453989966747180289563472069618170481395829761365071478909541987044350989280501196872848562417397363775890541792768381118238303046468053543005163853132676523015480719342629000277457310124913188874403417741449282873077250068363925677755486815431468669934158995237472165116701386458642215003973740303872505158227415616782118774743977900367371605375687229761565947670217711851539499272284634544729710267524438695370557247152482351077885600369953620619584049891003564483738582081241994831522195354813441315814844108962243003178636551292269828880767172353853396592138206266854629518868785209746324125224425912139477849745876361906695094572897959056328754513065010569866287067239221875415836460276849694624057164156256307214048280991238645425352298072354596263578120949068327721806546034650749884785679884294149943150075715248645810480104801478986246410829864640874047381407580251000101235738655177749371162843933430774883040122964927626012934388781794586122620539392255559365609386968388410486626331730158985046848834162011382176900859203393772933653201888283645800247562251832691506093343872658206728822951766549838187371384195911870601877437090817718829718517900712542499448127148537159682986683864206693294521339396405265191416890089682603746399918542227041977408110407383794200126931089867556253672034646604127132576648042652248969319375850449899709664762120725975723409746937781182106586072139020786086551636054367287276414619965242656863548288929227468174422902633604700406501348126837193728638412311383686034686887562908144764922620859402799313805971627475235612765324754189354965463100919305936097210912059244450033385901164409573428948622162926564998599699309095062034798990267027569191060321738156261138019266020843885836920115458934423944702251970448705442646640566677162709241110952405485883246696057974051647703994574716475285093863079734919504731531861484786762055740325366629272463733738893463718298586044334265024751937338735126898556304438016869296543376524133521229649660714854917330814461509588827022223224054145116303778535198863990253099545544831300241700293836744497687136917713922473714758606831783761773524814457826265519324293189496403018888605894381095113791413004786220311358983442670099337255887632280174776945753765469340048848665435247079794012534885087315548987471391349782098308619253310395466623916432371259435656468537196984730311360790238595296434157518834169816832331837207080639557413722952290951559127196574986081891438389117087294753809377072924523101053454656888494006481824049430587418254758366273284439542409237820653244644838687580682936692925476361430004866214101380236651525177738883183704627548255106785520858173512942956997566795244294896215969493963818929051864361281011070429037968484871619938112459762767136620805028609276876907476794683682450385912382945898322714767092947837272797811771923633051485790111176256810546430082421948511053603159250281694555861247162462301669985794913078140235265077684371485593749812179973026376445058523132632762858532565967339184622025914937169285213812292028834047384764469209627122203303387569206627189357522588916702935350112622238237205080580100088537842810854566138789369462090975947266859256558499408417006050507342675751544787135124438668524920620711435031967429957720112509696714372044073193333725994299104455650748774347208998076885354840065682801456111293346749362612558078145097877373434091739578699711393384956369118186591427905989097769162959585732446276931653958354150357921524754347026698989549954342331988598452458451920181187367716468362260921135673419142636542770992592498879160533985325210204316535392216377770302571434546448757607415704882725940985338207725820719938444827400193232216441638502579422950129885977128090443297838126357864020989720439200547419969280364874164703981943770396300408269636225450620757968917057745304601068127679053341612393514371902085316876669787755662848559330463897429465577329224846692694891876648378628431601643373044081439664982911062726684412956567462177950591247638706194957343628045572730950755179794264710203287220202793357929780245834517661061872463173517330720201818273410413095707771403882893343000320122167332359740043911359555328666148097753842396656440315031151906571766534750405557678278948689401188448648281386807409080053575306880031943169023442100007830971848169834066099515669307461011189112346730060811529259376021725203529130106078711006964384696571285879910047464037117520584408752087872032992284380286324952364287042756690736927489650524560930182098004222639740845143396281984242569564355800774202663659292523414467475181585236367194143319301469598342825331156622345063743581324629175610741858011739253650924208122304843960653619723636361843273910396555512358214999396571387549428707787663940523493519924888317313028116017861911992884670845803948265950511541887412995587201044510491270781574206716177647043081272106220905101202597971907963867122830901107752502681852748235117739676089864125595818668448588759115886845332266617322587430102144168474634218313254001546166220815726302992707883578925286612195073741132174187148971568391903857434803314741994496375900699835677017540100647776324326196892456130400960456916561817378379246647064658502733465224127632230733013889626465972001677901144157273701292712419197962199180688495300748738609026244228743638235741648022426496052657371077335048088280251452689851605713289212471157717269289082160251479189840118152840651687701119981756859193519170554159777212283034261380230544720111647686232918693483272992338948512601936723703796787364282013234698422294389497746929921377312996132038811794850254291555024483529240089987547639127130843554688105176022139261871955237528355257878227101671531139581860964257955967158326890429081429032769809348077303131422216953501942816331926128153098138143484336083699368955022652733392813102706169831435156603637503222291455427072420631124173247683690177266283310037076772014398155019281532286581190072161138929270311463865263705847149778965019741644068679837620164187310983555923390824381521113798652805430669631150528331501265325070367769440211192332141108454243142449582724976630187957880830511177081301938644721416279755637778756882498144472360577224851614320026062993013737380720448574255097055468746030307525014743723495942106786437023971653098076703302423764420756026377574347818884856112595601530326823813939308942319566972965192790417087576651471524623734545932635402468041029361884893270948929473534701882637005488641757662219893007718136745463949248709140611664985399674100304814194484437208617549768970676713735424875560286547429132427998911681236934351361316682274537389540438240573767886871821108251573870471352131949269118757278972822406739901586171521998611886767692500876374078217239865720922940067117197281934707991525107671926563686949977907931164100139252445845097777942163280836549630392810659804673565208431056607406433630829101335255849020108987793118840550897555181830431641046003797992729361705216079191534286903001931042262942906919433994955029625043324776673933768171236994442563658273432989538734026802349302009374723506588732614128283001754996881031818150267203614817732960406375629741166654989777455320308293978749540176932920122821124909281149203717940589736055598084251272809717826619225689219193251495716165300552214129186575732215507898617084155988865009432518190054291536653381025343683985393333424668029686616171217802358040955589620664525887971593778537307436393650486686161970093714895788508583900074059894706605514145290190070738149731004713530747161423283028999100084769914656721661695389217379503557609470653492595576723376443019271137078070620384429136772437897202302022935226644763982730621774332677011163680286792705372696781278509448261479803409934320751829666576871242380522237837031184293338894685513962840571704249885881084559004979853289128223528209213767690094473539475015224451968718307334308790857189506127715534582019182014135201041838708969395193955733723252170257529302836551280057683610103928545923197998400677609892217494461478383824012077448608335929122041471212949994269851052880205659489471956818520217520096773441518195617937725196528930660371868412475615470951749322103512983494065957866390454486948897838999906628418587501780547143484717933536996092640891550808890869854802263273106746887081073549197773835896281998003871275602824230939305260327840606043854589057795885506711075373316026918304869538216845377973287604623564233684102622199330832708795922854469825043544630574084371697740835464533154079105046032780278995953739879529606508305471919688049040926592882768162260956197431710502910072945044312577191950103713148269700569688629743708415259427866280542419346746220627026673320090816125320923279460021676109991814242625816632601092476429867206478106500711042015550350491540278849296389904592556553858857026866127876799730818748029971612696018204208350799265631696152798875873500827625613400768045708756326583814889639084732450424320780206117573874599992439556765981629804348495388715021142516199909387879924920887712941063531539058304937249020233901063810178636972751394010321520959330119218747443318783540522802476320047130609791014678716549722620703772433149224548299473868373664091278633741998676217031992480920589228071401847544882070666032738247677739077084762040507843951374931080312939383853186361995360366944045481406160188418750373654471952876975649357704669914849900422521250922473528191907204367950697245696511363191857382142541403242507448930211329013044133964755757195667821759361666454643903096390503571884547873031690541265963573609024907358083782796895150766262146307755195521530708877751956667813839918341640328837539559566927510174364927475363850574822279082529659378620104491513083681318733367462823279086053889759836678088572885337186761506898573802696901647017838260486698487307175861619813782629526296022307129206177813045947149945731970725153060408218527181655380562528230814245391138587174336669797315592321169962529411994106534591801774052869829383288281725619593191606412666573093829221406648397547996465895546430917028091627887391708897136307987893505582052738654691471123497713077055626631907050003807905338327971550552171297761727063155471036214529025388583166062868459711479243945268425567899648977804420883899309774004903659292241880850398167313387425909431786964214802907446884995185428600515528214817287598612745582654835078640243438685918459613405560475840380911808870051139448831941675058506501499734764486559352096641731174812559056860767121880595976020000496210206252573739825029518990458246961513192610696859453507262226405123070867235299492448125960280079715304489812994886323211949147239203875851760364985656381710677451724103486381830793494910774674112341144372334348566023142917384749657031361698948296088085847891738141909112435772024992112724943436323170122208475021369692304072749949368957644455463379169330849545129881384205280453283060341907627690800694415807751086249786141713652301304932672860162677832753384532113630144996048064703255201648916115921692027850406751451983499362836353909258090431966025831956180285829702199116416107862831478658001753764204586938977771410744247959510528544465860153212897458563941308048970803043568696353646632439051116249263429678176337482518600559913999466519853674984357116074282348861620248160217075686810217366735402044298192267180814409648967715188427733064236373188053341826146902964319169413358124104732949929428974933135017072791980081691432149904372186658101972791307456903263887557379876615772266274817832303606096860996888191628116771004217652886219602276834286553481190543824182554695128049700217079107638840466561465392162798564937621527700569783251035011700889146469131558573564000175780460896504079959524105270411263848190317207112159026699908810353497630789006533778121985728113684875096078538907687993326956355878283042929883023192837979328228845829785751565383190296114248109546830330529894351919679048005903879522263019081432332066252905721408235036064294734345536529275073717654621699232470717190459891967330746234875800071413033073021896194827619637099479025115238819800934739943861442838788060640084223463797493742702778168090721095979235597992004098180976150117068605624344210639630428414837450171275653598475262803644847142722200724844537877795615818730743831221853731822050063492332403035501327407664841910763135940764653315562891379192319575451386070139388485262014227735779597193491422521695126508792689025789157684768534941768515904313950802405236551851614516544321882502583596666184241415438575016421136087635489809320379282477214026754314714960069234331286898693951891281532039674045987342131207246670136108849914798161752281231390457243203025495783496124794719245084250292133402961904737824171091647650717471694330209562018583579991347156299987042893609265204846545546924925859663473114295169574836549182706995494282575130365145250500203536865720186240233351179354142482180323677256580882342310112159555104473004246455601622603911427899603891548926349570605321485870096031144912687238703586153958053706155323231902816271474422977622567196966651658744753288381950742916246396498145120856484771415194539791687272993068604866935711705656725702696929639098461273633878580819685404647061380984354910079674265191567687469932289823459802487939893971967303849772732004264487349390323268718180727764708482588667474155769365182368150693359371244877048521128502959432485411837045265931786948135943741565771253800563278301375768813054033678307429066458036849558993839179209984222780174519460264406113131311086014771507485442140553724373773990756942924935671183233132780803164313141901901140130102185568155655357558258961087847207003869615816695938169033956301390330580569853199843283031031097768871972928443277985285588371811249333980038106892430358937529036430188063016270999609691470069630861476824106953149800160747028419697171174662022508002312888405463641375403657747321428980072425141315529286030936623304778127723607225721788264814695955763161241524292842884558379768685843484301376761253933749213830030905047591287445229046723618369404625540993094526375498085219593581245077367956670757082615149327177711829717165871580002264082512430762013148941162494554180531298391883327126432132513602940183396430432552046700169934619645017730940975902643730647158935549542013465733239917504477780521115294618911299756136711893221873566181028652681378220362181045002471218483010792857943217451958982932955676204523083658933759545323611501100274782573684448423907214425543008655240822662202204145247942154539854899614113811082415494206207496801042502939642458313846733138021506859199253606997569231116981130994647298986076686591907055840375563636755218983471151571076131569336191676543756109737517080265161209078982215333442700290248070090057382397082588801091671735764254409524014629990813874085249645712564746696030029423579355032918467760040917129285714478151787667451577935821008636942341560199447841852140071289143402512254279049736793671524511904693357193595520079801646829742825767947744030338168527382432879934403081120839157235243947823313892695608612642242288081523641402916719572547872820130616448386159540535275478727975644151193579901075268602646423236153111208548221288254265052451593734121370095987726840983252696513472744404509080958229963309176843937551437902450447673473222432840112018547692531866548104947874558950906724301739887796967452628563458436209926821022776746073814482898014814448960033189374249186233401040469933827912362554788580996166802507869801004650088172144461790029311285965769085025317845831911260425831481464437357288003249547084886060543585352250130710836355521918562821653784961403847636988325923872533416334273591363809071517411976623841572168454629763834818536969031559808147235188352401247717021429621799114334265482715991023474122294750696863508037358510045870802350203554194408746877530957965206426118887359873704231696274611937759887202215397406896122538225406267639482629321192380361935448041070295673668473262606608817700712728052140215451990122199242930567325996377974325290881967757139933738136029139942710555493205004460208319444476994985209781643974540458123024552656479468084363183110989989911514716100054571154235139539585614825659599706693194084035898886804721724357769703413095079653470786886600017299863400705571912549324849454897268252896532169529135348187808493706256875789718775766001358345278178080731130658283352677487812331729437074091947411973650212959276417621840896304504852019872253874853663353185497120258673739759914419638720962418064844777617876882797121935641839419256538275647640089830906383209698906382207743598641917885187675345419390000750168328788038242791946390184569251188900651026913717877833106028567643107178128384134847725541639316634252647864847009546964553297837849393254086551616274763593850309807602139662175124477798885539498052364094448118015961639760264501503282401958659267980254991201867720530654230020042216457932636375274360309228794248131826211010515851389937735075476282158485231168845705676640871980720524585492249577085886159433449904896402660179438636324158159810910184601791992945116751635988906669260227986250356592536559283791253667897559872621929732314859988392742399145645148225868823195598340534057700952869407542603695200065861924626972376857820819059323473259922994644694543693945229666193221391109559291513385165706136178024394264804288153853789106179270535284392424173544504489686058730726793876380308768629279068760509984509112365980329893363167558650678597243388140048419596977161586388667962290524484664089262813286277917490156146564201741033826569425130861448386001097386980820545933289499775753874367890495225143347452140748762255275042980960572983513749557223718784864652973374786735542122988452806855436110542927590222395502833680516270109950722525268634368627572204779754612266121905843576940112647021774247335626136912029005737705925175539456434681491701012977307049417970988509746937766187376066853382394716383913925123351392444813263827882407539443123133013129130975716158052982387919368639427066167602768965195660772683763391539923693986675857389066818112501514696539954283093873325147758817412023707332461966935212610378531051372849545741938960211395887672213840384513223575704020246307308042256117007219500793531225505501932232738884376650298550487506685996818847402155442705429873980066009223673663696325392836835817340471014107391727269836299080960243195745300439489439597509146397144637062017685579718118796926002342667094222866319523661372952368443461078924821388902074200382888270383048945558103731209437938334321972762726740942929387340412059526847035742588359722990011373997595842384178151473329090630316640768116769696984631378513188306725536852811811698483803419636281055256475472630680894625162608892068744796361034180732709903462104266043305748271792087565302851775214565722402416670367553269999495700582630215031597016706536260014941100928379510450496397363579885327758409647262456689625397515681406320345736762290950482756635165032439346524152531477090947783168966206619583769033500468557601733458288822412973167554823343836268199770805619879773241401731111568613110745950060415749882727325041016867265279845739357728142845596407113203529790238454997109668827063630713669106161508013803431619891879142046101055818000361080133534609165748257669220755316613558691031192912069900705190216206597132108585382134228854049504237797127368287459665268862008798957401195509645699503867200754573846303204869396593142272986315877052833080571589165056638849048430002634390829741681817367401230760333800809405556839530632623925019700658167749292299750033759482713804863050864916454546340321376727427671579162603228392062343574955043295779818026157472685948955811077831245485167554119739356174141224609776951668883004657545433771977266579100293107481180717221471230407160967601820004637709113069663221399969944057900630395546061062865722750862404475427437547840556782218804577292925140217231194551113749589958943336495416152310307015409982939723215311922987467352851411367723258139399878963499046482800342239577001297544244927723121578799310319162003523058700397118016742795141515389052960781426383115002207687685184695996646520037338147282255891592688586896773893931068182857190580090884982717969394715054314279456333938774153473221004464227319298931797771399160091906478852554161361843498109779374866003266917791065800696261187811166608560872291103290825035741206246331799111059413027722301298199662768285656124784206871142771638469535438338808345415803825154136838672889638702903042293034229068734163089334083275123376534092913227047049916647897537652249352895496888750920127630768364324896315033894633435572490347405111944397322385355079823707052032251144447726883407453769215755006544606305104124423801210798904426834935445301247907487938480729890744643664390737471659348570393013603434565992591513431005454718815825326995425454968714751651173436589472330522965839537274578565752684153476656007255096036067804584274939131673954337654715682791786387448936327004338760411139724793984666470141975150436765321676419386112160126464501572481996355125813417943165447497175623020557693044152327850921338074258442618086364818160151080400918701642508691738131491329071280077985205703296868619650933313202760361128576908244441866982750580999741128022181665347408786207265096280297763934667226619470562089166850782216056418617563932366339940972948103053917346111526014149362644247173914531680417621572598995878862041723553398948820248761766904460773885383039415853721701352138103065371671071725649468779866753464254967195197279878830007658383166271516878128519458642286440397493155473846840086381731447824657442778425028683923965942333657978130213432828930575108964673696149051080349308087891355574524188392178920539250929236814214265310698745450882556073213024931122640574738752523931246592405358472774691971187000852417722565096401239886590112822747283476489756555038401561098922231523492107363336356371867112716489808939759161537496570287693448770839497368846605482479834016547773261001227975451089625550801594821738607295077585202816154877856822701584058561186976227442142466457116449180658527870043329394047851711120295911317206316626159567063880686503798062016529587661593264564428442950575672804676666756216425897916534945399534601236516081553154305964050995288338041503243542685890682507322668039392738710737148635029686946297447979748432098052027686910608133023649307600337633531830849181389427314025328115828490692175264912096985935692026283165623801199261645931897643734731835678911863479652264803341584803106267748467304193670827663902866890003586341947241943059784154616514386210177596133281763882832434492435899944096868701655245640104116192364832226699982485503245314844071409133244618181044041170945493037696187914679933763371246828616687359927994568179459449539006763634542751542100637453133336433368974843844380493776376009849272849373732851269846894640591626475688917388713129127671020190892997360178006985006330819056792595020897587986125667744145608897515621435973689654251126540613339773141941665965598314846958130746741709242332841272164069318895981254928059423592358647216768464822262423141328970832616469867962657170880904983636113994341255420770721965563843065285391818459990177462312885263909988176783285155596275763719467307420096769810606936387022504141070799505782132936798487345653982255276221074234664744934937904879467670258511889823137146877008713096866819026638264622925202675303759162298668139451071603432279250915326181632359714147307571272507498882470858001975257364122146402013128492606810221223656442282459047765236502136365245788422502534154422057764342412567049224652881804907421682153890490293241831672121678615830476782171623176894452560330002032297516143072816313559270808847964484787324565942825338411235239270382553990505841363887104511843512904683347814238960234392377797735349380434380566413179829464347547543175157308367709412294472646807096760671928195046469969292103718133454757971461228776115617001547226148267942285104765640983270875729387977786421538579841368934945750896941949445851643184112316507314077729334976083570596179797578908480514065176042181849217352404627146637542212864195998018427182253606360449416543849669942659592063860948718582928982353636724825244105367451017198574898965638802114026032666627858612906852087385592099211232751778789910394859749410668825631502786054232793680975961546597041878748456399477803445048978509794112664779388030177107124338106282134946706331582631367864401015155993609136253290681592694298810406151533419566898907026965482314209855858801067683953668194797810898630596344812667932435458097340637205800961652894471941033069816252038812354515301667912414627138601411522624261175616050497496051445371528450126297197514913320766858225919928568172751639957057142489812032631160989690154736668275155949750025717789711358619841757219983078365492783932989571129428223813451451666449601140114117045452248364439499993565968705190228512776512330061072841093793675257022740924825868951754457518070616430988600054246478603283149861593667756778491410032135323304313358323011306975021746562369517122132223240236775988933897711628646978551262854053150300631398301206755792133460632262794677370264767402156172809368379398603972385370514246285013839238166099317260318918232685973143719954709105254738720804568873662732247215512022938092754437438351770330356228667818813829668025772730279569615888270509096233221477106341836723752757392761642338710471096777026847437027577263088003909854150198407639095927439258807554794043696077547715627454556944196258700200439282504402107419440334194298133978153771082842510125701875575893401675084521932364023684823135045339327515885098134272617418440747508650306742910372336445837051513392104111162792660995792551467567201712932073242062810042313601022319985208963792578854653414203714515795563579502147183336997670511722578984777775154451206632489913590108014757041785651230359524772667364455569498623639502050336994283342444184118212874416644299771558910593109306555145921158555961659650412953693516687450223522190941182730321299933868100840647875941236956196205848272533053728988629450475225820858110492441921776515271472679707138393868299361367201740633300744702358243085609243171862793431579422002209911805077410085064711410582593873335758838857646771913008307544572314795209264235556338766728104622149275664086106613857230981184047657487510012020534756167587340573854303856941565548079653780172377547705719474467583429639018456304253676748770033200402638552677639218291957449680848969503578042908073903914291611068392035182261656073105972658138467074933713351755530618733671163373491241800947963612147352799039296888305699447766137277766660863377205261668444105300812185769270630567988703779621128898266683592397945257254475490967175027107236053384624930620802483832728825576642196347316571322684953496173401753648315473733224150465138837721866973143989274867260879385689344362921208179354702151049689975831276600009872903714407839197407683779457596453305345738530466502685454111931025088851199744878963592515566329186866531739086099136931066163768154465335666584136034897543928157217945451233118623704091018574296685136757069607326840986709495560596854793889254903184080781481604273135012427019309755628298602614232445291893518309934315170246443752599823205846998955625541238036455413889075178244842715118845175240682323096828114534216640024951194152476559635780222866501345444306592101555566224265007235605618897766870257652497665212139998884005760915133843438450979524077916415972139251163965557805255538429631117354986338455427156562628404535542999409984769633178311678999908729291062150103893888435271048876528788898641926660333141794971044659942961468349439268829390135001502187137899205927932852820035300054200356716553753025658411723674642652130992668307037204624399886782618967062638306083653356805097170084921458362348807178545864733283476820182312926471697415717849548067476669930540638247916616712406647110410288283377237661534944373663180352358424224311749771656889081506923147635279955461506750471685774700399817548590645217300824720522838439459542473486539108400683269674177849379379764565800496702052850230586404651591501427114366807271966391383860305161669881533418967559034063691873534928458453063184343943708561888541502621359571048800858378720093607432405016814935288479067269970845239734590477291443889443217190513763599069025251939827566886445492784496988136743060992967845737167297322119375283689086010903364338213598296303676012052006857448436873234420081088452976020011947441892619553996721370882595518199022951834527956982045129321755970295309378719970739352740183122745506123296563776535429569628854061928304394522973086490817210067833926266569310720073708367856967625185670309082254009026771898344620832034834600111999098532082389923131189871994148145975097946141554228539418329273927862449754066732782916115273881918857475763339863051573272166586576779278998451110312890323904206953830452363368795868781888008053720193352572731671848945481592166724734108405674427698180960028644108837860512055569460381787381020308996645508187862096417413655651113101485767875367077647287468635556715115439498723173240322925464511461382465689351120692073733627646983033857821282138990453320414910018006590204007233123438932724016374622569816023001668088838563762640305856971045283077766536278226908611842964534492724270924712051358223166234506199264479230470470300427112900239159622179827671012199883414624736724914392334048775965943951663738841552585246639801029029466277114602001896692849870634475356557986066506752153725923331941833698148642311900836595308506832495946687359707676540312425385632686649402729884498013246657033474768102139563878878307145101312057730522178185881489580978119081566512646635095072580042853970686136394443278119834919629219558521332828278633051516007401841935150568140178084363208036966249914689668214913317904849554427116673232268766737183996466120429299882614433675427288240852232205440900170323503111072498438421156707333760093187908171077849768821433617541193670684088286710829603875767157600821363324625093404586298441763178559761637012188901804380760901803623041217125354129769702753544021276216208299937944869922386552338766319307162204318329654889271121010936059985379633054311868185060202788292584191996896460320883281196272289699392351019980315109619208341161108786727405918857961285989225062204961968978236941843915466186262738936674798867158192359707975951825318134200519656796908921880477369002727155263109798252922319731868065474675681416783125451953322402557609739001315322819095812114327940655516323178364771490376282101252137993812937999929353612407432395109245284980464131725782236872587774230521743098971397278996822158545904065537443890836298482666731715155957071044251128855815518788922419214855865679135258472151242569709527564190393712089464735588301787626710240410357632289022547765899480834838834973960543322704249657229590430316311392991188584084311207154680515131764050907576231165354872616747287592741230715874994015744303871512930553783196250707354914616723543915175739328524388591839523348088015598035874559299601622340730667003310807899454265296912008615621169412674845685961775827106529836063985316674627481373000542891989509749602777511424744982958524152617565265971860610312637983969515657304490798722743383327369593539548676996501630632495620563107334004438154146176883692679055037916956960063199782900046406549478135775200361169316150421949940571045535396304102969485586613978365554923977385085986002732995178248824637136159223043833803354008515865497195672582032276308951537296310707796939205559905718637345621276567308517983971360953929617085078462879554101605893747467249477221598516155335157218388062113814078763084666421366282570785834731296316628755627099235552924250439395575657745399280633086402142383201209650146521702828439624796086215409443553943351984226287563742204445569566591770171929437631528841585841761375640427311133076579852165400728011474951070970562474316442862526265236205588994514692083289340747577750179956156735741059999153427448658906857576421891780879420698991818144587573890433416567915513315250333640180799173731722486519483128207789894564873561769973645156636078512689705205458758262043093896794005197666152890064187473708462175382525057754197491406736753880143117525552599844480734450813758975891520746701497525880980197879123712396258282973739068904667474690266038269627367915304325384745832227971222180291704470340068972680969564991991583209416279576155004270381894141751621588566009270775143564490475716196091823343338272071855260956713144844129392680315345754794226961292318309097683346697639435460438960639950816928478482337322482867232291751813936165349536632831523278817764756655716477198307326557903084627622972557297905162264223797368032310883197642215793419441790695322610738727172234535481922886551307311020124063095362855971113725262529370446173383737277727259010260304929244859965744773602488134085918037720208184425988252604611891357910207181691455049598101177573112323693096444153754829417425508078632078112121909013107786767289108549394509990657964688388723892732161949297969072759355691141393236344064977404157570060289512190638451421418515816357287821318606846942455131866576298626743874821898084512196204895839879619188589728407396209385479613082664951239447620264683595530755880719433343966612458511481479289671277079900359736738859963443662942218796865583270277414049159207976576887185235211736040325218161303287214024531809909849904304384712186307133021401310829786912181126698302136204006704728740792612212152780969875322359687604509064894897742505650162965677518686193972591649465330065676648035337830658415614158973887180400844243519782233531491575191319786190452077155268459685403678109607596098494293235298787897958406079458525835042754024781710614932001761493655899482242356930495630788590025195815716208534140951728915842375645138243967428693837014875669128858788977806321770108088754276153209730097734551755778068985892152394506798255245074174943118634273806674320550518396352371335206153782905372181116850174973165597430735732470507434031357407103975275192863916957604313774334378316875086326821411282698352479152121827043818339976227668622775575329571059747823482583679292163713750648892401941754950921744371568166470858246220879839333278718303711045852066907108592340319796508405455296643881106723404245204568031326432917904436222770067552021370621740277784478116571977964590580969076133618711612910564466392719026815043647151871046988790834383516800235687706030257043102795374876116652391194007294041538352064223828358431855031979007972332826081149361127903938410517871423375232390311325149404908095881702737368045313245898824015766667657040686419398907320142002660041070645319940936707954199527850772446699872135894696536843882484377237484958761106237260697768603649903062334330280752504515336195584025724300332713919654430419624468536023939610329232850113895393798118604680364731399741277493046723767305556174572381105490136782108725199153301442055455752593293005948279383991210677214408667995694316121296564825240016166344341218891274297711641276847734965914184349328080497601341049684675014431237400785750539443610265824291106423951190260225797568884438839364508254041943085515149225401023464054370890266112069507273778802795282618373844362322395762917397526921996765244855513988039179380033542525262184061890018976621283543410227680454220961281474854361949990615548603010677587243238220899141134353573979649131925395485190873253894783632888286941746840879553185294481097206559044743492430449927976612926541154030606028480774095192867269676828275394383475566615059847318738632011623262712111786512691012870032096871871609672900727927879144739018440700567186856439509157154415006024273551948788241786027697150071214205282307482787719518511515624369879647076390176990496504618970999981535515337579943801242579047845282985279965565584308142276635651970714986809125872640546854233150557066677073894452989737177821049497874676584550781073694683243076592394334887538260816876127942239623476850594944626124443202549462026337950931293275995723240935025808745740577261905998929178778441941370048189398439137001600116705137897410638948261023105398087225965267289112257026155521605627920718669746060257386727010801164912574892802507966760404119946855723601242835139335941509009762042461835290636065807884577677520993968745109803351827676580513134366161545986639188741994118701358692581511887940184625496037524911599058328918701500030596879939441540372307488166385492543401888255414840338890413102585848406235089203151211321969677124728290155042547661220443962417695947834967989147532301550560073571048676597536026792601453326420800717355791274361791726309243252752300121060618622672244668921710621356438791659134889510368604194300147691593633002780510022771900501610627296404381390444634115286351360549972903187940069639835255257549149954541705280091884951136433715024145721057519910395230351249963642261258549334594860296097283238135352379394865634780221276585541625761433171617435486490041519892404467259480109426727651989217482718159107191166693982013090975618741952277045712148810538208335011276855726021822779983854542772616841195177667352300513866306662372565381562313387604574947263409795785492229111514777714206534168315744849610799280154691045404213645383656162079349507186477821865233417308841468983555423997591627926182677255000486300604035453006727625077141834128111869804435982073592903662080755100409944179134368797105475008618115710701388042732309454881058925259056554527017152446835375072521436152725544255948315343134527339626262601971820364954756918181086361288069676378932985780050637972780379402995328586473900731387689817384329369408142857654830385446256696465823134897136655467837772173427331070282150426105241171478175323624597546742388662516955234156172089864792679415278527934764541735309293456518915005284943547861500172844383999072610338035338928458694601084494204638072741471377117421573229781100876179140058435911675175066791625918909717887031968616696666449884450594693173134419159944813336731867016839594145728497405808929582289582135583382490013870801374887439112798768060195855927950848648718941944491565709825171238366365313658605774764716234801176342611222728687668045822775521213685073793574335767211757415945163846309714895534608735658225673350796573216859380638535902449687662620987274325900507445738848663222100894276500194650702614617549954348574680820780014916448471038487375382808297349198002393099840710541922938023268873187199778670928489240078372335245916330868271314604533621924103905031893015856330028025591244373459684984045926946531276985066370162754175667926205795738315093141572509716165365745833963846431783667969007560158217294234662359428854649406839842946516979600333296805126358817408506369015219279415939992370168195015313686406223276648461418038585910473470026338557958367460142991051837454345169086187332202643351313366046758239477521319240306800303570704172755193210548657562907483618708357195884988817663813103835921691803280657581304628376963668657409023361379502199940862842476039646646474743584653908119701373751248668509385074914089657177519862458900826276700145024542771567675072674052666182110775365791462352059323354214607711984455438249856517295080626885685808514146464242646774148409133765421831564448764249332662858135847188127620251254954845135990414156476146218405366295640812648313755348394893369199010808594760895520839251367419267882268975013019973343109624087412036815589240797235401333518392155290957242272767880363351819968334910349477525657433464098538885681519648002982529009791646999403198744998960168506633068414237295612588388232520234855349443324931686051878200456520111464514477870524961449194787117291153980189695174505164850110063742830185363015701887159056350153435818539080109259952132304670076271459252552404733280975055025154280383946626823047383997624477272150560214622629257771794457796309913831083066485685722617765223071722927196409030829299874376451596571004839391907618635920097485945500623406205713304553737385624606562713765833565827031234435771798038600994696039735037338114682478879084683666669945252559589025655200878218983595089480166888441863935213373798061843361640336604574417706075474938705776708838614697586136075282219258162046136322444452979267193341257888502783248996767086448000213998170665051150103193207509421004679322606043907912268235039692262130184578012759487862387226284835464188077332225522079686080704793202295268519983449999841221304015238804977427708778889101557954046717937702727127277209743075849481385282973721929488696283094754811024470062383900043361793587726381085804278969251657681521740285560861574648583578174173643802595203938150845244130868622514144685660767161044357240071472978866689131368471636439234744162622280921964815332753462766252385224880261818950238258167092600912579532696946630674147729123929674927700747948462668261016990411454526473027276735856066832268375749826555637819319528590970584017643353044724761629833804748604618103469804067823007640666758733649136427782970583473541928094450504327285282135048672770690885728527773906431009221310422283835886793658221651809334402522375533434526670328141952073767638556939854129304767139727926342836819547462617745001572979432390904233481416410297486056466950094643631437259060842027730607351422697926170960368789833122937271097550928130989554023767119833600038102144119740461576290659864646660700902395073352756048241646123883903612796618859184427013283776334370365088862045480028359370760265424902142239811389929989813505451227516290209572715384770750145902953132383585511936526678602862308211827849379925903526818002930808286681408504174799852146072159427416644973939575149455454313513170873590938910794170351823839057723083709744812856537243275584680436848370352594127122850951481670829510453914490076963468207966645824032071424711948086313554678286612976309434437408956504968581232381977802921297280071656174726723709316971011941510823610895491959758415228265103309385629720731068380898969697428262178667247846130399770870216476299574192315625752096238283970009300886205113003969246988460516870360473480160591874406927868685426745996951960875886728900491895743067072206082243168732418022322069293559992628757155862228189493546933205674008551048025474482387708919975053802773093296176818919642580075586002816302242041501306656376235340124400612327083157202255263510768111534959715821808264216352020214108591187963205881955798793730922962044663439343449137258366076414907219311461626790836308787831917342275710578798349860021871197893091330955002333939340172390540138323429036815049015436449330029601260560993498119729015203628549102732373982472456258476997164663424322289706670133326591954040104938222630874941594612264096509901713071246514146211213476275879142456568467842347533815921136217848501585465030578489999181312545710845565585719552776971717977892984744730630609975487332393302696002597983596827862252813259752646171164755782223801620670923864390060114577521861615213582494800677120682739003592559874259043528618757226286879109912343559192159844275518539795232791284895803689744890741695865470462283136797754509796214448879451483664377444389607992316882373111272991675526855713070114935990296036592809565843092481033699010111811228414097057821299549695661723565184789341547035589815490270681518156786535904455216700028418801865782012845851420254913728177816705240540216732552630349758446427000831783248002824402494009075506861318948587865918463535357579634746990940515514067323465205631528456321826458514155215694165003471326888800719090944268591442203759265990028727574650882992088393830456479929956369207634658988772474997562686858449967198361335739096322113857545040082688861173715263156682943864429872445041135982894381308063627839165276379623787525612416016372000580836487299787150641928140977707548006971567913410149372658408741436117699115541484897168712533569974434627955109452336403482319421486954020692024947637460728071725270766179366289722664925655621428239530411874856122089141464135447095096757769782867251892099037724004208846146995995225432008326509027412983730663413834010222175339996057830213537688473262178610789269401403623558788279678037664772169546691397824891825679636027816204822340558397538771128522145139930982735812875710569906927664900120141922603405822489726173247043765654039668815801483535715932724704638701003234801953795346279685221548715653221090175896341402891779267988554055990203969184004049849072042689819618694314238468765183363841284784763918130869483817539046384152254757677723310706779340274302154375611654080857492793112140289024220015999203468820984753277737493560160562621013836991184277102337993214153023987897058278422892673152078530737856687183105112072289539145072398321981558677520429467467069468988533132426723049370485469306804102821074563195480843170391885199419174159383000921656011651558054185404393055955249517003120544112599603906771653407688701595400070840507931678166162851280860563923559329474388825682414861091853139969237015935462526513877849396294076207896518742500602657262779869424825035228416897380606584813053409763290070675961211518406795415377904654827761933434651444867239801628580696154649210385664064602690350972212325418442851209331852280150381358267725820434007000189675917459818083958588487092836350382856557217826314442194331662833208320335279141760330427291313822225596291070187577084661265398043378354225618442047105700747633510023808127399415584443090637637399559957837312372482977549783585340401502496375889394304394964266643244232228777460657206196619893270284950469489168769334407289284791772707322404463534157493103511898569439702232253118385219080691409492673178873472558861359097333558277513072700078436670920129152636814643086767176306603411599468486445892214460323702034189909807558759324220050682477748882082884343067215492319473331913069859385744328594870268762257204494398206007044750826341555923690426846555530849524500036400692746414768871032914307154549505593844765288376201377542753674239974050646560641670385715747835446665158062922108505096832072187108385658303552099879679646174285029742150463340988829277516842102586528570891849977061835212029996103839539490820597476191276857352245166932541817751074415724409275451872145405277329317536417302258810445501285518713074477875274373690730854822005109856501822353374203647732973044048366335757294157272986397948129108434751065465944147839094500236510321175093179595162348521615939740619556516932637217975843323981532375982473426375129435258381476787210504499027855022166802672071885798137813796743463493223009085803360157934748967402421076463997907038323665258389388583710291852936667258763943491547469772580748088208857590988413934167325460182883781952681247323680325664550160032135639196611462682379532362362793758761907036337466257998614136910766898511255982513445075776289900653786992206531856457045164004455126827338786650196264136237677988600555787435011146867173024118813428658969957691568834899647995742936450222279139625910554643053749852688860299975250028857945745224327521919115072646840193491146098942699242936238949742670390867589248087704069209201753998538488528188216437960982279102346271432249175963180050769942897191065138565770006696491637159545665902217630029450202536418154948396190804023786226423360784535072419432846865757267847706988553991198025017571925271252733811510994136492890774004630213963154332590067103212890075620761364877626010773346805625171852034000255582978121871980700831392562183700816348614343860452333113574052743536786556949288034903051673637019236010725688911891908994542613214861834762299075210946536445142684751767028997899848205513959483325081949955711270054918559575978371444287478346005220183407712728650832785075974028559789899827160241747087708864087041531385488044243037510189436646750699681182380665358037073333736508098698282446723044485959959066997023096181889952432285012088140273626065664437684388150006670663080290717017454836824477981259704125895370596082867981115947674452978688067577915053914442787655836166403551450947024687368304484568110988219919495413637808137464706418872017019626905747998830642074415276634243442954668796255522455532445948448654559611757657763250276144606186419283794018464307276959998438701542574484707281643713600482086862087599086213812339761612153007654369219593120631067017186711002631065909317910918078309221249047611193172766307142329205229187235437643268489903121828721806570353736830059945307213993428726018133576697873970497526832946575736559680879649851163147953698369865867659156514830424098152834912113878918932051780394484503660383074242650326705179815576412319170640305614731867620612490661632713007554933117058773695476382301794147548717812493568330078355350920357086968597265840799865028608291565331661348239564978700159203369294750467394277186985162949203269508653731848898391628481113980837206152898954280671856185760566523887534600569528254369894055240420939820096099861563220225354029797958685429851650289419226823874162514692800128965899731406622083140817884814959326453757877468001281205558195729222736380460895729997185418461996467997847304378392035914796127291950919397074125451896330426422509099422474843224387878922884234547154189185315893292279766263213107404485972439525130855841778671138370912875734478772519827121878242575123418643521360705808940949143844704935426880697102451594188739354060628599903001308221259996914496679873026399977477668336950577231011557106561155036599189459956173745269641571234181624184535342911615836246790132027874607564777943344231639289075665246558412448195583224993577956137448847901729826012553076176266671101765107972490399989508767974727653019692618183864038918575358625474795816763263346355533343336819296709134385521581805229219931210526433089619818464107858741883820863363381622104872725249762119379071061004272183585103425456910456085174953573532197955392671052801389477897442350742515286705831139373568777143003664347662484467499428868218324511513923167190417052899903603752288580460541917155235658718529259957871183040079753028681964514259540025521739263449961247500769812281127845976407762159861561795385115087660128226235477977627336174390735559672828930551732208798184394169678440932913807798667207536407206816859053875358800701023475036824166471131470384591582915107429612652263820039353000744856788699587574995481213433260987046145401465663265054559268130375627919197068847829811205569469082562068598411898040284067507058250527877234035364236774919088043661496398820186926520544695031439809376197382884892570310398164513469098065335574434009827816672275020336951405976134063316223299260644690548293531232267689931687509903836596069564212196399057337980634989667136828907691731575661196911801069158646173513498817211240621511959425287017618542910405774338830953459571072784290079750988419911930844186842942896737393316388620140136799238059729087692290512996484963278523983938723704907798224800512805486468650025560896701911556365160764624282836165894084633789997664125850136560623606532562767319454451743212211368265159146576571172111181569395979975705798902535108775843987120937132690814047450135621381982837824709597142820525617102342285620920292273240706234098491456767549694687219898912944848184309765673218611563536547403473513218273914666710765582840882458262073598806446064389968872610010397624771509705881249865430823717431201204881183922599487831111726518002809257203450776090589290380494121183901558201335126362980429504067760035554956784343883241080436900897245291484545426889342521118720945615930359668360071860292570134091264068847286287109554299243176981422488541488774721512319818315270580685567984879346945807038744434515785534338613802168940040914909553308600338672160413098182990902587524014026812350171424849380523203548547443825361216837626962860095189528189127142561202753811865052244201262134269110543927262811703826151390631892952513698289038498758715460160748433761169621492741199270392965505274534020267390216218856141141783958167970410744957799775260806021881909502140828693910362800723168258296875429749241457178078920224881723900371385672672731810515311494066957246993702975471982934850698120340547253545777688885556999703912030858382146613898593998397462052588294116858023103531371407332827237120670983910604172007984953504992313387909153624315608262093041712919441353405000789338363297728020187022417773643008007552023114619955874281531100308270946611715285324835599980159964340147094012641436112165026989233231288995277946976404826735374947618161486710469657247135889354588646138674945256746622626194015368154514425031795842504057896221889176393643099103575088743008377538911742391283167276253779318247764866936385775287364414702748325846191819021884059507535511739514639153891549434841568575189566449966251894193794181644160746446889841930586881736185797779027033371061012609178747912140495364166362571649606703135761417829638487699826261484695703607139481486918110614302439780070460753211767263147012212005163058142713981893459001794221315060772908692711807763275491722497268151810516879902220747743180584714821357969822033268807087817304467695366723494013247614152549894476548092804771471272357239606234990718555534559576824351456805003652223589725056670910003813917562610155867961835122055282305444107852350866954518862510929958501278802794863151774819875080345225446398859810753608073998129500514657630234275725545461670344569551883985809323713475430126192549218897642201982821447255499376971204161228364878118793753212216925487688302030841369663964181745659898740447014771177228199579447782527884940268313711873154574122835991741249300261887265544452370399576805009161090338115703669459978883185583729517871420412773607960794821717927341781848748626723483474556661904373932718237977049387174598580946177797476068092839758722016200908476136676575957637708955190645092377716778766048466923008072189420626096577972757686100814650148695131930689502051794977385638828324560570418917981508546911732774404653605481554402472023762573518460906999013818505828232788290879730606298349261228346515962794612578336802210225163154383645580863835875854135262897830959845762025025483880561287354171305904180189091620304105701711922009516082200255680768292584198590384369316038145966462000693861905512979087816029572336778355961017405969707124723696668090678684048958427157703897935607593396017220876410794654333267770749534519752623922482269080244766219311730166477334283447541775504561614451726100470546646436588846928914349093358548404260591690880560098526054505009998510825355437809407949420884800949080165761100515879075297002119571198245987300063156514477653330804815610625541723475563166934828092527072122803112939940903221040927308045983890104296819058550927971190784117702821628082182712552825251525223277301801603604923564212134650063806553726839455327033202025228802912237635700470041877815296736914710200669541391119094849676871853541774669434827340763195867175701903078189021902709863326000313190194617319048254234099290026411270134682796994146904036633993030847060467679432734387757880896759029878535725470912049823069222175633946206199053887889153807283868080196354816920418102484794466416023002313051650402087741233164196046514838429132737191103036812190275303984958173913439534655529915026424918944988223246993709193204025016738212249527201598076785344082592635293052626264306613835018458513074862026242397671374608419396049322204984937737295507183762952380533880478498942590554353765706964140891494486949952173081184632075525707338357785156422536388075045310819416872165388453686227715430322151813685394424341514314675727804670083857021902834646925485603904433301355612750300840194417165932364568209122991583463962833572740513225653762681461124330305175570411677695441449933760334438522138297826169365960607948053448758580415432457980164567853922084425887161705336489066575148214960802760892144634528238591431725282414243474824173735697981118288280586363519225704081274748394545781374408484621626913535722621036412277483575515857367841679786345473726766362796657910112463731609627082770986686731015119985856929129971417100679567307969233153361924870521069255602172395446058893398596308050970242164206089679508669591640507100308156494892561567059443100973816902541342037024947114255406325849149792979636346144171376017736586645903442617208243660146061976122330564685828387708788910019506957586653251170960434991186833046673352245184255016465744265949654408149964228930496061109056177659695338918427034539093030485467879300019300373514318745340937757175447126992206257083033351194540189500723548947431736745688987935310335972984492058948522394922378987276919182150824236867686574703365484765146951653794396871776700044679895912130707176821760072976162011867662513050560291623572302798744091415287720935186094921642187879984496672773046013687709966792647982595733222326993136701820708448769425683968233788236443512428398381075797469742193770356880453816664403062384536481616041518144340049113490621095699761740016131958041711480397066864209867535514737852471422104004863703717624021620223075478157319189880694029525351899209991303927262241319024985020680579840162228557449795900369334038670549926920348349105397814018679611710154864160476613998185469553229027953260063622923069454259201211022195047685121585615764192639813432588919926199859826628327336959177730623903102995254879401025295935648596327525073337080401869231478286380127309879575880725149672895177291708822702194617112372075338879891241036179502863395621184820133213122505545381953788311344088873410239267419188789754860322222377077758664092459933866700108054605539822378512100035180912758830051157322068313479210550745157858311745988230304226665992128818811668070289823512070637091575550192575419271422484834054702103670087814520863093774192999960156204306013496690708279984283913913485140950623620118836745491943305798834564113726282388263152242429379838330469054350473769240328488793538007274343199861928001879122992795124824135676818698600617685358749212558866860815329642328959599673809236217089751384880607450534157747462245628312247409857492446044516801311821363275638848976600078022570438941050064018387971119317774484276176343719796824781412823751458827590942327940059195533394301198002290228052297242455938228190160436444112078974629301604463290570110541763027560141007737424899242303691321600960018268434797810494039348783004641050241013953836609903688326902742419699804826649720962342074014846596219439712210609541439014548048790564456440689424384911089084633321014194186765865719945646166900501165821626353295472568520693775186232408131359107971921673678361313602121373686018949588111982843430017246642025911262390238483977656302557990724012523350618054244401704191123088409190990888857555475090666251495258143131143380362253163942387244327433429334306246286349268408779645171186605291385675011037118118027843829117855532523703028502641383490998706474512757541885901894243352445644106102580367592241571220236067365170612585300592742189998056523832637059012339748608195459290031444036593961342725764874857202577567987831050601033163169139513540778453845796853406470414546264794155152098471603061994470534582163588449823503603666464668970495416922876457020224467847022846745819678820787660111815774640931393498398963800688207104620447958673939524495506309347200513718281604148707782186480774790258709918831423332086161280212977835660887153792876578561931124858021658407231373498965402456966827130635000622902861074492689532444030266397769456410187776568500149085011656985517182805195470642069750369307697215436491485771802710823531933627813066047883280939875916065190765702923074482088706126434662990804937347151629391182973523295416892105472174838946336270646398814886075392915248171531970306545534132766029297824291173194283562848594743098258873153408599494200090450651885334987673899897105195434890178828773257762091707444611683553367316356531049832842706479071175948830864649160506545730895066949384734745883289542748712322980479883475455455397589192891499868716491708305039562400465890242691390709074065769691292893068314474500156711961946012168036144421274127755349432547028404029492470268879415509709992461154455224192169367315064561562031771720633320799649385678193139627150281923344276621825550137028191333674674431658603878866942378838605517434115773111657963530818217776203915134472452142876356965339904224354500035124022924951727227014841407258375147193866073223798745963938032331243052470668449662035847954267047445269273112462776129270659102755456504678349993189772521794800505689451973773248086104765050053761425206897835318577142618201224891770929833202607595457662488216825660180354363928994782632349252691098452178014362258629168912359428593284018819770512918475493303016837386063682078528570689369805574659068517886942675423217008450019323164386200520681883525273590434522240444691766179504613869626475775248491624938621391296689746987955066530132597880926373726387638620964965850945690182359409678337852391300643233022804712694218543225033663467780471960592846007879763738244655004278037011388033090100178938349875926197363375343733191823255652531484047468581802103652326327036100292655895419564641960778436228838746020322163275234079696348883398735076250137838272152467843715737360794831845464486925813453678837779751635569299008807751773359135975958000764952298825442197938190254159518989832738840230933365392186898571164760179455567480877062227873067509259344176010155778582772467549332542755996973255781640876624212492495824467973062600226289948516724869565651064764137549120834189199130846204636014006012913997107700040344245083566559918738261996574998376217856478701989686960057263635189728283060832691506784247012922509200179378352977166063720375739016079595612758938160765854745679727073215072217461601273010348196832595866090696273038446674091825642715118181831226791092000648941170713755694133526930877887308313284264572086656774265711284209344946207801519639020089835882712662954107743535227803404880550149342951259664317649187225627201649530911095023133972161593346241616956768300889723990384016710595502250645525051544715323529992153459860530919617418259604880618711240209751508292472428703070204814403396344448068035201055360226749219378364089050289181909231861348247733969194737084348134925149408627183468205854503354674449689039504218635678059518041293471847798085486990379126709142707623112427560725995023913862453937079352960760636393691785795540764660964495150005112386822549706676460667548545172754313919517919448502899370009178989043258269983383713654456689997458090401350315110352675520183395880861494214392456621834113572941169169256347452455576086808298372429146738155437384456914376569665706418991154600458096748379702978317470967146073373753440532436895506835681267664929977827200482424770083743739012451501081870993425426407878754793054949907251218732819793782184158587565400864219552055209972378371350483378358221499369834716877715934032197060933186351329085120727447632768966422598180501366758103633731532237713872128580833967691467687654677435447049352076391121953262481741906671785601401216443333062742474452677098864895615743321148931957794757721784815439883358135910182141627390476931910765139591226606003089034551237574980117724137586390363573611919997407687232214793817654190180956767520423644560655259697540869510445030250021039239367058511522063305546718076038195858825196634128704606424399246716339639685548357737370630321835315789183740489675372860033369068222731086019647293199224317472081859331784261553739463440705179956346070591096040966079900293993591773612243853594142460805358243222520850042835169087922143715816880607604832608243571653159388837050421913112207049448468347703381496415396850704378164021862060348180964399411281373492926933035152009202604282366970571916538388543641790275925782936958074462816486592211791922527386280912031977709423890063600520641303009745481560204425866597073514735133862681159656071501411826143759176842474921066955048533642211460380786869767498290208890924148309365149508554663174907504490808638031248231377115949764432818774380639058106971548637145518745412691823109338676783055933287670249935707416982224725947953719127836905384932609170876964677880960872391211809234817208099236700512646949124762998146995056681671526522241785398451224052781696142615740283242425899003574267547557773711905648826384565006573606777860766629542884328135745868088003685803236662223974446506918027837800625990604584348786541767606740601525725342433715361892245445349670865411503748711559328237057333387820711583624741088297737081951275009802238913787160216502869945049584043328770374949165291125227167243084848862810890978896715409245240384488733333645627476459995681312399859096798207567165918468784111244277820022547305978638149511273197554405611912370142703794206419977086105206480004335831577060138977391568173772886439609401891980415906983440112552025035277420235029448216538974330264261130507657353155442728520024284902976098633507793447701984932660834944274429003189629024133515829851514969891315471356035189787263783008525947766921701378027115000664853571588773568053038611988457740694318220824561759725869820358770035095470221855224051866641577654423422860316828221831962775140457135233884850158795192962776969421881118519399284301327225297762444231789836910950884972481972627665088519538128477470020027676341590653503645467591326979186018457833271786028252322125205784636321306254514137334460500106497776543093952789569898812372410495044453726673689942819884057262668903606663170915899007459501726873093237942432543801245146285494217864416561156503268176961290858278639159732302385499029965638149774499724532669580317094046844164406199872630875090276365127286591214321247067259075074450397131699936090792486776258665753123291691211695723751277732327076873126012029150817427870475518339503519367119745109080184097618455901952203044156200918524312064295761320380175070725302121707279193652753508206169334382522502258876068991411419919542108410775533942346195899469075135241166127892714473279817827261952627519875036035224769279998711797739390186300491073925797147047858682735061682488065561045081703677927545897121764358726503633071939110020889021268773115791394865463897275499364839509755032843297437515213973388234272222651522626671521713748668593684522753290702742955153243339380101037986711458313479294384701860969576748497132655654714728043185471701460974143513132104696159316089424064026016434834111853600024026644578007779175437488595575485190624570649760549130559899840481868194518717658443046825373784945161078401805650615091720975867203223180691298835797271708765814467399005543036744462501795457045621545975343017522294400954274848622677688436722312570817475486268032621161253583556238275866438826320273632836174625455675006401633676517981798485564560264114172322050863824035089551559589422930363955194703363018606610878890811042131297291251819820937703046615257048921601946691356966541916214171240873020299933783355010458347232812574432275567702732515953673249310137030501524544283868996879548333655477368673041116220784585698508529337086976170533090813383663824688488220931044499133280524882255365433641731188736736444766314712230519631698376534102496006272288034947366073736170798877097978515917091709049938311128500468631811999013806564908952163691921826770094105949538615228152812051791497744701873041061806652887772358900956785734002664423732576769377355127864775929044297967162607444174997932376860519262863876032274516340071446064243154992795518513768157291112398196958561161138879652967026223913809489540476714846487108978847747076103335639213560341074883788086563860735780213600516378536547078854364570487113987734880282880983465954659030563040076724437280933006776548346515350845699535228712556034761714284861762902281153435598676557577442652668000030902038107456852784431052916044132747735978444819132670153590771939878708898254819941807792801377002944614222958151702032269075488992079921182657902768074789579580757679928139518206207534612474967734111907554989760148210734498667831886721516259533141741487608142221109548308828441562737312131886498684606683319714282548182642020380601032255331194805485330637477393663102019858022972933998765567887725135218574506338648465372168615545101831545445550253104937183314276255754520353935163870552382596976437646149743819671502680602634247822020041179343623645122142417634101526916808353698409645072103663838024724759737009868815682139799779386240298063645784501793892913863777556759856125443326944650021860844819626138217851212929573889139002457559762633800844070502786806540328765323266881180011987224957916669012266641917579551382082916360739992353096103351924015723303588854728101876259693919919488223939616174226847311292901184431575255570637074075281624523709754204348514417291906674393028115379697743163336733786280289313765754494773994110690110076536038033746420520055484125004396843468733200878097442126742415885613071371812984077846186771303633465256455977349511518449507994474840855213532841036972833553782954844823780977224454234810392087634315781927898014397791747156464588482658567052463928136128348857387365651753764940808353207847297375407405914520399483531709595440692141914779763307088206406223613702996227507034581925584324467079690415898518056720841411451428355510334366909541084758213062503537564395514686283995596175321655962326584712162893208034922181348501015971024533165484127598061145544868839733086832576463466069642429576962032937947604055607190278226647506547003517476975661518129459453990270648726345637942873361779662736007700304243634337057197880836357333806055891908189246633826446631821492391192066032517187622357164355228883341737076770778921867490956539012248257212492895751861874094939113645036237664749749464472319984095985045145837762235605710049034144834926435934150637755165164269521093715301143444528005358657643413367551300020552733854706639606726993085680553185322204986271057705554296029340908166975356035402210253870547562003750224406196554089661643813123080662944486007724491572526800113282881044194355049868337185988099374347652148322452340945566922584872275279831887571061887564487443826422069313401260509999938584192303221734112059833851227505485641105055791685588267620022463628000616844838684525984346011194801352190800716234105433835942921381267504765513601335915179827404826429765531531079764172239462600546550362668024295221651251740098423257457991952356913169004359881068132043534178646601527811996018343227755327304001832132368662208086841294545961256696160611254524219784013402977581670399220819093400064390749110671934387769435850480469683354396059233901066653660437918422066241277150566408663541245272321246688180590705483956474914497405714566111205544882482713292201487266251729464868502014017651718629998201698492927596869574409211949819835546207603998383158717897469134327241149009856974629132542564694220358754097695916135718143404877197277954623643870158647222520267607737073675947480031588779511310531232734627084690296453136455081548428429251884949305175456858013180812134711268978506073171743168712719484560936962692081345769865032962403036119503129014963091888799265843792834764549977279637323830691528396994960129524819794685217183517206097383786629498477820616869455140666663931134917833298949131145767576974194670090312565363791061226618388942185386053374257581705708111978945670101218204971770890631373313736620410800523330116560982581732251973794432180974252966892069354606339205716524275601929018481266927492688711647623136937913944488433769119470704107393454336137704144468246109165356538952927735480963404903064949347655400940249596772633749982210326912366105898299594598768051429530793462219067910293234210871312659381174800948025464218459296041487430973585853502142059122599941975805847881351339381349132823252600309471034209638826502432321433161003878247432555088183516979681823973984819608679901929268552525593568591556225248412767004013814433104843343851814301356855714243027560561199982836021596016908688783228561762224801977711239821705749516415539327780276468015330705018752611772457282722394259564858648199086227605560849735011153357610658550114691044841649882750507487285878555362972851171473933116855681038213629089800780226757033537651194528512407424835127171387823121231029571005856392372192565133783910500873413115597815368822499268995739986524708654432631874240264381301512302383150698535390045894672346871817234803599018969984961958209235437863886117521559847938673436547228139589137456160721266901238455745129964039555928284863696702878357051388524476162021603192376070415374061872847203708374381137020436071697669834652556859765919968112140987865166131767687333221737083472624413994503733368853315546343450822783089811548128705799298305196104251490662602067063527064342517719463330733274641267296216072074307941660899236565487566702507919450346940950602063988794284511390048154966758681219434491773603925651933238340803615998294801693836953828821884427554041386655596187270786069006637018841595101390112877478183399865964954340988271876108898806375417893919482914721685678977410667101327393128234228396433585917420589122690383770385702843916103380489228109742294623090747531737000940064977445055846333682908668513683826205715095189716263712462857373957737674852076366658055002810963304268956674588138525473358326065626241777090628376292299253018976360855308465154607220433973382089899435838027054431020262896296519228143813272086974032668616042063476461270422871560576347331721858647267877952996777115213293749502961467424079889755427803432985877073225008877045467897178824198977005554899951605200912867238291363078255907656427196727369446244516008736498669920943271538340230837065709731929030392331954630514158147240390358377521517500732122412940917837913597058957959937706022375873423445033492175261665457454633431045402653645300383773347447172581803137856521871748414919831483363684857901630579195988208544707179178964299902882476846726561194129598042376307585872424184959939961484654939299239624820496653827100449569790706365559175462840142430417654534483099549455401033331683612160600105702026076934842775408959955249122499621517234697431187773257757654411689938455028036393522045500908979980642403153324129143451845878865557565030268011132310369750378670695299096812636814632887185913152433674433171841955232438863187795508531872000371037188310893638222707993760587968637600871015598676992744231357013937659013048440971598489392052652930078426442182144759944697955468444111124993858903206590110207296130014830770021894060729553154553428455973490820518472471081934782788043791268340340244727754526893714852868808260395769971246516978477940043692313313863283700322388510766087104180944719851254137002253844870770025820436677051300717776695445964298473645270185826674180362597647234927602837501507923120090916403728695141520375549482669963893262765549928853731898881904591164981334485007459412539713077517207763210555820947609687076926576081584617945736169863837852560553004273594689751348191118217213070345812746305972435525289931894104511673919113882817521525969924252710558225349715428887189743172005587780077529302155722285460842020284090460492462949353498251634824357583773264309404536646389533629184236610748984111864854465542023893159083572627752880191191920218216615411164881463513735180324153850767192239208301749416733115069523232989757861870962443708792980607767573740000002027143341741143843984258014667537722751180742058534176777602942643009479855943687764615782191594377419068031125169824923628565327067639610863074960153040306583608199580238707266107145531352963390213663483088163974003323818860755856755361422680361234391901631859514537101378012268427466885434488999181297685753269810075091658234388448977314853586633903884190954368317827099127152648436420642217570565492299483108760202267341877235882267583986059531971972369691134544896130017136384364361190787651841227123890996683195512256682261477931777861658852150121708005601101966244786969565526921348630141516480896869237742522801502941357100827238941914633460890707939268580874627331404119530581558000359957785498225897744631551710283586425824981313270510600323205671650640806022998849688534262758843902125355851578717236066377267139052649900290652420487860436414534751428464156767487425695399319544206811352806785296734176972414447766646511630418560453838207361970790761315970556787260104015426373576781061853285138883465757743312885578351397313574912453374258744522660499197572880203945463525184006803369129979678643856062479370310326623273109957214013235069586053505364818011488244191461776822740879448398544998411469953107431681322407672543380398612792852865507785805425454348165523974939395719234618362733697940540190979311688132582708966046225674197508878980516615941094481223582199030374045120558462553318084263798033867619115674696884718812787441058736795039487595023207627421099066416716945772476703098368938105772253109944060377287268993274816334564975434479428422653041966204448364912784931857773188767400729479326948709817812296588006183814648662907419645209686933015550332002692856516710331804594681242266740778561721702746754843340081178084707335046593460191952467592476471969837067309433001191707014822834351176321800921992063834697154120473094448401824803611801776882176985114200072272416138992239993156352800914112218684279998075992342026974745747436497909527958633845661777388702124401578510236584080014125406199066449137229647185932232013595985560300231567621103069171798069941969336726478198456887872373169384041385272949420871489441160521816962420403759172943753408385021652859728728118276377203784354971640378718068548586423970589006737412453186025255995108482499936517479852117769030286360603829160956423580277656811346831511746522161829250138898303588210986103923034272533009752176153866837070748588941564384675287969032350796117381994883036084854255967860573178692846020109855468958161273276549774790781532733794595505158638492291089674812083381969405091795374144520802855151662922460541881718901256157599210961698192857263711534207090789588414634734521047931910606314236282569632723187495477410282651212220609193927163057937792181072989894379541759955274636023406086421484095468148511698673913464292138584376550512003255500267779358475397039608025118405230247532101913172185423683410184484402220935697958565610725168456123869882977457591975213740356383253084984047492183518861750310214394109523315707030030405442652738814295578120922304811105193358761552844002436373346158004815230716316292083530404384994551799403690943312219980000625753926057641135270982151150443170824219601811040385690801515517500098477737226752736213383327175426943097065443540985356751724925633552884751827245731840504486529019990214792238852708292578859753303341875610422812556200736746306424238190857061698390607682076067763303392779447666821123029711757606925455770898785655823137357212617361521271992126549701257482205360844814823213760981651962814165745503374461552321909877126359845693111148579210505368448254836655021448318740475741174057976982549111735579794703996772896382128648269566603054450264577859044841361111825922644371648633846571755851149582162167726866905897468172171053406607798982539384357476240628823983204828008899894074845032784809223766074257634263257593503165151898255320249638015857677182697667348506173120654359883309275772304762270568321487461930868258941244232455908290397717673880746048345888941654995410378544914413005079553466696340841449358182599721572095381322387899226036389788202383247292255198360094468910025530645393408545588924345720434550616936997322225728034069647395612795544993332066353660461223018247827216224258614467460227696744341652630624736601796902576541854038129504667321600054202422938515226060275979596949603340758897648438448413637243145144491621227692097232285394999243042096408343789399434582495534793054535237409464684161366076584757088005080219923635707491524134253961616876589326941796054833271155145898121676157486925338960444295526865529962138025250628987418406382088826790784033030062674476663770341366760865403105202485017812581727304055688978607218289633698621102483550573040110429555311489856074174092706277437594976631277004627484928454281312629352524120014530173258979372441492505574188852625323674490676773537081064585456622503572559449648207596575094423179681443934832352643751793364432753996990651111289998628253616228947181815865577959411991782413090902175584658402544822962315588801348614730853078841645279902759160518357673814343134436827232411411926486385810981506909746221157406752065631512009133282993486257534989821369471001680140415799189707408302025960942284283837571221559042240913695886824707646815261165781049798898670839734211719807495555799071463741112603927991394623676192084690964015726167987346120113111390902714605064746832459570703113630168382046810452993023717087421821059354913090487545989950063754007646105917684912079506427116656671368697032735035511744784899477799604319393920223676677463671813323831017060646288736245459234745832155710412571060908587067626836235580026220092372900213012395681711513846248058194490434743851597706265399493263658156658209132316211984222992175465658051924043182092721617102202834420294675645096888511305748192772056543255116683615518814929160621302432886568501101349631165662558364521659439790034344345709980611766018543409712369811626127813109937816186571457286593503052699474978023677621464733272466258553815335616947163836472047799432546835159744575074283342531030656236200866617955107913558182796996495809142067429048290430084524846245200518286199058662922212091311755228983934597293067355622175412951114448109349151091775767172959591209229454648338119077898430898831844171627016443945274487154711808488975006168876064085382916840546537625102057271726250589772560301193621181924941168913737249433542022210922246149937996960746040564241302191640117130139335228091465670846054936132735744858003575696836501819625923029699821202003574488616819910460711154689159790047456860513502351681725286028090570703559650076488770400106185736116712816920328196085046019694044536393303537417518052628539873522807074555919326613836514608594243390294411948610163480943539294608979962861401898096350586437324702925849996767855044648736890123461975331386710136801474632746405713165029012031040866232777241442665069046228347630243103135349810447501799898302864503791567683917993419142443151905275564618913338426779978446116062898154443150463011413180233184845081704183544703890887084932236932883975440507059868424929196231816509759973968754121616190388810622307748534852659396630683862649750366999578035034581274209923288205536608666098717674536162922054613921037915306539470258156376780419561620227263718980068151924207091099576874011956811535266051710975059331847140503529925344775286052950289860169264850030802880820159084174655616761121745150219546469550767264987042296720462325651732399134929809568868338654042558855614740715790516648249854554135076882415152490070065821787674988156307855169593287122622654376235453313118347548285322175173964947814198881592163794966249188953286670815084366682749931743517600439620842891091197652472581770815551486964312638822160717910561549924768203859357913698006539238339948354194384299271361654054793494550094267862793783530339438116398821012882467914466941765347230970427087706668491443819283200369442940684074752077090730256568691875363473681436486971521009611099953886783249307581913545506693453449598701163665692403147366450411193577797610931309995756343400676570601842945496428174107730876367665828020721909692450543480043733121965986970254749860172362948594967880502537832166549501806288365196785556944065831583336391640003069646574271395263301323436728648905079100581035772775847088158740051037117671370038219690036128572538430285392327143829751583721686501637274360978925466328383562057778068436003298905361642171104608411770894877027092548671656160648844398118225747516184463644195463254559616253281445806491677312752571239673558893844851532608984869443103260533543738395992440244380639781391944490100082993278139852620860639392572118583141096653016605518381269932238975556469717126975646250994879971978899305173464253197178721328624268336911299583231899293647325228478265317833883684282268725824831903747671421956522440461589749427450385368171441298547122653724790569710613291739491955332857047693826699649994471939836348444767551607445550007326817745498325699448550955525542113923516825862084204559611753139253558646378981572349248657756026642227856735478199812461223547675453194678041787695625304435327097129658594027184864745346451178380225561248392731773645468185374191921494513467134723731259539535945881652515338947095917809682894777056082076487828422344326018325642787469230871681077014199314717665147023822768660242843966094487992839634456259886503547062619569741666492596431230247056530668527764349583702638001941551105955002156108892574161725506089887469909201676166546209192605184756813638975472086933848370591099184975873732970707056689484713951927805283832992937635597572096755653422402300710565445196755044262300712531801681609612335611116081721232890553415154723508001002404185729901520210363646648199572009503604245654869331841426232259044769765071549020379818865266738224923542044549196874579200032044223040315273414302996503149829277913994103927945339750055221155325229475899821968363156529646248951014895749579194893639442551023330775675918408533722847809239596560217650256764894769384068855382081726581547291810610232972295615761831712128060985698668639929505274244238296531222573971191959200160022438434851238691965388944159467233143637803428842274868459920264359383802475884643604214702131484374852877517686535827475618981347886523013205351292166389007158379340925644738842766771376746069240427410072090557247329039360529106769641326474776066622532913188476975157245510040865611557707789743570718345623890527648028117160436627136135251450681516374128757917468496643568890489919888052470124554561317515110073079391868713287687496579846344412090509800796711199114480452633902135364751949894778234654596656352547617463117252411382456687545621242948459525514728046982987537078905513271461098806736568891686929923108502615958108190347421980411360663351226250154031082529219169563878146600194939472896281252246428073610558634936920703922632647194975594429592112414443041504595185814571589708770309208694798312358909861615972092839864463512052779472956629551264620089655448974572174264286338078846907829036866727934560572641312157738615853697928322639406918308767729103956632041190021110112546579210363212133795933518122040579244609397976959633205464946881922131395453183914378543187051701518939233111957196195731923283574107035086256982418868630260652378372515418163796944912958220785426763776510251755574106524554896833871354013268588561361002871676568317965164960678254396911376957551042031196747432272290662062908588828839611034370357407418620005938108834946377698142383422420514489241987849399539402468621247497836450241480924058358589088028618293263218054735341036943853833773578677805747140126294286276145918137643104987281007666226693893980709849853722364616022039360081981023790603071102329753716980516604699682807517987783677784637168257849928973495660343500608363547903491699331682710489285561839664083997013729246214889809555159901766532915303808921213491231359874405424532967466493883653482778876929204575197050899072340838169652675696518390475794289598799213273538182386880392067711122635180398404432048143326023803656307886542298537380962701912425662975379441952127742299102341804173500394384421707149158745509675400356078052763712230603937434719899056094930012810518980566537210802098274674156832499434737675164173553192647970707158789410862508961927529965108306071014125304502999580070098810256175590806962321027049900554724649720897909314441068015684157164773479385597214008961535310614297879561031499941577017289583477267924546607544840334142440327733525290543868517546396300815551344953672979445504774497561196857855327770899559583682184987998423733775889678474136175832756902212333755842195438161633733320112950193886154536364930103562667068151432385152158805711505818492682363094146425883326118460385481704373791818589167316046983491515709426233009334662395906999373269049947672175572468915851110707296204634636515822861487043599576163532668877237757528108447185377018131025506976671697201515721031733688932894038463058917513309192818699025631047080705924132832006186374465174589882105348311331685231626113293772727976592057756850145215541141305083157742778122473600926761486273380180165822636179216827333736988872133907620543253174731102437436353520715844016123660511896475193029783380371083356743034156299623139324954783206282907846183423441044994837538051580821620639120058275608176475405729782809545166997691784238543148042393740032120213356893504859267403266888085316185558445832351566559092694147113295959188527150142556992330180661377900980803469924676907803817544297008707208378800403867163668057470524183307018218493046299087637617800193934148166931265383031214096142897403428175717297005988399642754481606437562840609179835960176132585157664154814666568889016239960659001108305745135469086077101864115482210296729175108384376367583013632924622571783684086937891981624444601241241724745565214982599147769531695984425735788266370785038805086903301312120055166526719755921105929186030766762432008036444948166205043775061485323021920040333274046085640980701288488143816113440035063512682548157716838038099435932979696158191838689348607909494146398840144573283649403208185407836911589726592964961989211841272052801790385997647207615657220972919622879996790279153948584978784614202835624004656964958204921140477929899118702408776906443806811640645573514147166662848214800577260153803668557792649300322918706668302539014175172226514658583504429403119928585235926403765175434624562121463085127421336808830321734560997688571319239301674811163993059570040615414298145186145127544941970820353949242011061716251011909430060381407307615730271732538175174484494071137472066528765227148926707107847225199284091669546326753991045661722922083566854968712310669489113249954669054571227265881053375580369870028007000562266389230419000974312650373793663468688161519261764321156786721142136031878663995983442573434062823955571842336323068821369665493065968024875956129995743487262923146225367294385710021635597223267750878496907700464769256870327719386412705682140954386573660841335322529765373922406882745682746198119678528298307703277745964528878738075754816271234841240288642971890130379371318564572069323917216125237771747752856472963751400437036705411594722667105342052171271122853204352955524977820463584448849095757251774658541231066376023680915418007990609075850755460367281683175140965445404503749018066485202064154593094061983618149305449802932178379068400265560390019892553403747643230281469211837590716508450314070741411259976860817356544753181948140643782198796937333009683540148790875936782529821823655797414850968531084235150430286231405475006761707043228398248597844291738079157047780622293183151208546302663411386680772075606274386535300268661646029295070288630778212544136348582023911498873183318628752092480078331661610317796018479095264505874775069745315788845046223552887368336685729875969568538446585234928706649313911097522741925284866173452732689531070819037496283140478721274692186622869792697357240781959002086924655567702885515245644703959030929012328209001013680304034039967137488603091847435729875529155830234947708731084196038257998550685209340258633554583348449397241298872347605988397140522495331562333361684389299763816222146522467282724750355057213017693403655484973917237279048856740460954224183520874831292748509278754640709101283872400579634160965098915803800722134948852226855486603151306300918556117744222181025070522731048448309155221194917776994307985120088863157606931679296668494672180076742294179721276041663478550271571216369202496697578499101147985252037717378189949216861536347674696308925130402121317505992661018729827021758422271899754418057419720482032265055707092747417996122157602193012125719498301786765526313564887676735272535404327302398159888901431915764811818314643113720763155662781499279761200232993892136795256206328068312201124566349028157739173445400004943894037115115663606820262444701126121038479570521217442854685769921322777331526748161950328356964161615578040810432676487877235784152355116633290561758694103350895331944293088682719642793359945045748353724053499878399235485812162112768089457356423346536051730578218953072544045521948041986958480265272738820680053644969083648043076206054117367545830765034046524549730344030168259318823974337389520386575380662706736719077640420987577685471150062628147871260020300269933052965389927477631092996683737287805807965938147943886699835654698194035596830773513641009374718749022102114545418845708722522232290345167355821134197292510486309355209936698268901921738560728976441121233429054123793330195263406210673893801962931803838551366478886541098339500163382480606328905895792798297144450947275436425476581608858533562890881686856389624711149469611195690098791317741954291276111771505048170963830460447626767954334167408420058006974137286914220541507146080869492210455205701452810548898555070104391334977593768792105709940866416603798835735537646404816010744911701789291720085048279882864709055418994256318687711642941642527625365522772629774031890553790853181522909871336070900506839495500176461186272685303081647072440662693676481179555560369642627533966056000708050958224133622632355649020021051215003694075967359573937143480547047654750601038479645146667000989992554013542625943566186703104640715926707238094476769813544931128189193164526228381237654307891086003606785318414860471617835105414924935937365996766661710635830906253212049410672663564994777270269509251358014951823858354193995042972588793479111755743980061345825373595702530325939657165601743073416830525882421004396097385632450037185736806213054340450851402956158907320602562709509471211537649445359148423979568094593204479274412428988154072120362659531008985689524827125753865956518245210484440626329506459252495766588511195081074286879977078493447388784376990169108370247336865705398783654712945568413440788137930667948140179462585546460655878625440840431359216342580042005672473092952952229161601931283827300296804788904975484448069842123413175491646639694262223349481150804718617976478206170886503119705731776430113562061862807533139365445061723636982290250114928061787546866904486836312133249124448949402912583927147740356659945459948422747647748070757015586714195622062711997047060038995983102109459607807217291648527933463100664036002376112144105596032004980814022985699288868365894796304219312487030585049648357880998435479717690812586774643789326495146007663476123499539180143712421614639559334184913110578182114806437117120228635414251917163934088892957976806970211711326131030339627603561580276793288006243382059501022128478617468053692649441735460027554423836202224990894819617848732935235263213680902384710892663909629592993100304467733914274962575983140455450778953624460858487484354200315662334539765371270331388975279826004751962646445976357823825784293106350154385900739872526606795456257617620101688762828824463658509029485275682015947838105506256879407071959285115650363207415295024778367912339818400608901682126610086498609648530118939631223626009374380894148972017008380680879378595946287937507928987496154772284072058389952668365558663233089997127183784484499418527697774766443864420228123670243863666634784759295972500516129518288327134706977490305115246595914739623718552285237933106591174799151935972976134416655070159854976851126942530481987761958449486783265464417934980136281272139449766791185960792051685167337459813190821363659893803587011159125201863518580959911339239398612850125594110009228970110191295352252748021532160095386180496947197082910544166142288310258873537747146303731650073422922909681686926528725255747620589812103649317267591073092636497012579548965162499753080655402092971944852939902673976671964585059552720905480623111706095658950492884686083317419371216768297991975549819082949672898250707679217768977315395467108030990637800722070327576842718091969131628903473261444232440920434387399177877995055305242181182050368530009477079564426161119973054947881618386076917512629630890516230875327438152551846438382406626635960005282625553880351083696967438332456563740827933294835232636971572155780498361436216275781667425600362846157955691399733901940174526844867590111754668400685635704014705281596811888787921178024693840725567232671476792617389207834593678183916121833476454181136192774466131729469107974808059839312232102412522484450228986691820219739394446641036584179847506836730577574768566928795046016245398745076285877634329454787829325924912798241427168403080616265499923421853755312905532175884020923130894831243365539450081176264067005979324109245644448976153664975840488221986256547081117392986296237202601522924359381702188186334019609611864540410545782704505625694572957983688995230669810781191520675826344484755481106222550965647411184944484865571425070772623333140208982412029781261158254328409979132790442648270904862988231030518769384812546352750958220118317449110910159919550191015338303711171077700196654844967017437958371928889284282048841914064554700052145165332818747673361490925833090693911554448653977668084887250358425249004572854467242701106701119873585893389189242917721314443503215032177944695119457701039044340674378606545214992921640206212631849104603343024536407976704367352307736607240955707420650245378865073535021141306676021300086027707113550429714329462630970681927148501850192208557107405992536857327155194768052006420698015551190457396059833594369929008517962119907094696082225636977098955478749501604806874733963288872582396887988092225908321498461119454707499306148819348838577361675131061433794519020705476513308853943564804269371192669641998064080675530271093654607603313288937267979698790622537192939600235976520911904436787224425393472574624299010765505850759158310904122076230678925968597639818838758727743784308879853653876800080247858353513514925463741361173010339552517885119708022305641361509649165245689833202245495923817147179192076597675214049208714358003739190168716732002727240128293292155461872516357221243995611970001049867098081499101300808839588260644978230439649289288395745788530807489123533982324093365289965687900339588998315187076285332430489451560398494838419473220561490683971057396953740061131498807929971830706870112441534149992910784460906952197972152406921806987281679639107035269773334865818269320931571258551276765949093059549492230625166646230020547595442182808442083937489914223078853456020961087701710172482687995802045753051378422624688169420939121852702671921618615001170073704428298320766484025780669233436596820193081442845126756113796860076736824005627425256599392642348182961029367167835738235837697809537978509005409953893850619132478758232395162461045620016171434503774877982646948025476184458700005326757246070620148541443290733171232244512365106694500288583579787950733572016213871227366713104303980160249681515378767823672762189342908792834211572385252869639066688024948044456920952388684484964949253475417967764501068110561154627629229447039538842657750401831932385704840518415953246342715159641512050419354790691590143413173085788983005372661689450945165883731630191576615487720900178286508069986376711170863860479996818322572121695794139978007292901101967215629463934518382415289216910512667158104735004987103955478394829355247348512716609620712700197328390183583698383278125950482748742608034330713781804703764500033247145774696759359583276033027186485591538758867280664781755389762793658312868959429319906693847439483131771575845886925316013421919388411314059866066391995718193992327929337511249257768885928604150342928017562951954104611285683231842623774405460556755056130309955465153920678294609611374167957700391540195684068438018214268559468237664271427745277665409803235547713380897621065414454641131627683182764162891920059215265869156729835389811826309244130778366032208303742879003549689009663620633129357899440365689216977687537080443096348619192178306405982318713167427747486927478957654155595968056344410043584751948732747948943875733490131733703293388885342128003401976728844210221603900850498469125622686840504186537747690270188955436393659123873578238006756055017798222128140417915474016204241036121166040517735193857827521096674784334941500620221825074125542098461811990218913319940277797974912361560368698671236971868349164592313968406497121990495466981509418009865195802582318417488422480956134612419170267281752937820737324717947983526952032143595196214339984992015927895015140549813948225585404500670919329855844396725711612733386553326923274118883588356157530136866328212493853513996740008939041228558139275364962927620598558705820914621290936107297414044729770831829546356698633819788454069077224091025854142652324612983582423660619608490927642483444105779716611353847223923582844429611464358443576917217750023436098589532951479742041147154932870813811773914622770158968682459496572815785732611825567925855974070549785691187460106648430401738892070547802135827167993764233423031957038521578242496861116579338310590953482890127593494368253918908647826697103086402010185629588611107516572417020293782279417940693585925495606551800642899518399889574990441319224324926058184554755464289896232724788130403271084221286883178865439585372568910652943544521055322636710726143322915806820133391597228576961132118558733031735497321858798862141391028025946166257460900830397612224977355047610242867238805594116386804527430185885403506711643538130580099019378121645676676627971199432982949838385982713846802783678278400860387852062592137056435335676269886634051296881448924908806453284145952870600303257973107307468390295572943194666745351721134347610063225385893324344559562423591581255229798575788692249442845201945222332937279912294182154918532986609909309023890093660943771982997428194931838805522735472895590357792322269409018501179528278278781212727441072243271001261507484487495969816667116234866399310885041323015029680070637141112512743290734295490586750061085504093080286925564074067553520245285744258816831379539142640773355989212679915497957862634877450335573532846882753210856765249064247354004186116480870085083523754968777328782689978148193028798161955605736596962395686586870649414521742256975113332554520829909745338227175254918402494215470879966224421693067563496759675286980435783272294942842633847934303353093146112387145165027315509814068936583002715251974391229974156034965847469166426385586255248118054723638948622283793204169025165919056475310281525176286896116172320164131229726052903445764334217131521578001030735081042655623649696676744552027840901031153815094206247762780770876823907000632288324137334449933644246287179838886861735444122358085188200497181120240090168665849017064961449018248022952219128803422889123261740686094897744388489883921260140442889915065795120954509790483941413353542357509973014836671508894126463655977684568729567357646487619036949148997622755926276162254242623634448160537876094779091917083289281850887435155993664186180162719544354499587281586852221102648448385633888340896458406281278893887976497652926817397551700885658230532201300673596250974982433998650614751784663696598308822437444886203518263056002585251537024425158002882919539800743747665547298602638170248302206260389542045522074454024303604964066941462998945974841934544963006145659170807879173738578213898962624124138345477251326657980317238282426993776097379476318469481964797776053596385094336832883300438112809417689187670132987330786121497726295301785791361121105603114781781607462327691804078729486534282614940880436382564449260687721652134702949973775630816648611101651491582545251504957387284944608636113006158733054396743301182135263901263960306218671484799224371963589644566854665664153499304601974435539835065460731519690358747685141016739849449757295113618569794470326643922329866104422785223117800772787673087742262655502581241559648408735932656690209369163523578089626868334998566237476143891037970239354233986734325562345448547644056737816356631413371624143653595682038870484738449314061816917789363815647362142625913296203655779637371815757914338313898039592310859348584430574755240322535838613899035239840199805975717150825633283381736705938480102047460053539699524397835367092669589667558845884604661585991364063525376815012034456009829476508905857379491857982680520449497428228367386860565564199459193296099432802543421268471769184005905407897538984674855628459698979461971236126333504448593945146875994428509709345915546174551029218159927308196889414061024662162861933822002107535713940905042346990315904154282572759240022798053620052467090022148793974899644396906989866163844960723720242162219065507331991025673562339265613578759071255141689496632852602891231196326524658333705990500303437928067760917913063757207261602029926188287012151671011792124384568646535001926870487159385747666574198690180434378734074426882803391574909359234743524706051905978499918476896117207736876176304869110444065629135393773407122698766902411331827864566526001411761392599742326154234770668780361408226420014989155443051435997802250846873545289891199997755914059848109327376538140635693047013108563434493181198338507714497902086220438407315908475368856241425721482471245007588574930520087087159125019505965645904290706795577344580678655510774989760985538916410580048308724632703654040185009267944682145611657503341424688897830213257725035926201114725292756820299437650971776708729295244647211138036182955115327498115604423877376379621388834149164059978139253746076847322840818908940415847069929664526056663179037959752362813587038156644966662494205745803522892190329468040865117786248942502545467868482927629320099686367461497070467906966795623622082730108896481087717465406486660784717153563381947320822822670103869333807021561284811773069979647529723532794863101654367131302114019993584850685791441453143535757753595714239897938514263080867969288587692707424483728037270795241660037747160293696423884676986896270134963998186383571001024280631076708253335081935424886924769538644888445860831464431305960902070301038025154057440259751568238326893869110160839335920639419762667823035425896442346938706295060289399025650813233895945339920498556872610078313576296971062900873339554851304038180644672618240080068648791811833796348702790382963154900002870040095442056602733912849026402566712730673726665992925789196002863758540854237052309093384686473985520190005471420068606147971227290277662551513375972960944580521968593310087253840208705602791486353755956598862238990301647726809012340149405360635207131226432922948854600505233083466703661016447247506749099250751018718680430797572570194027149374995352060309211690525374205231030943617119490634014608941872149080056788194680056928493391653574003444833740464889878147821830253078324572903968887326424535746622679456363904189401277424925944597949696768961630804643810578376559499505228999325824949959973331311925011111914489494672210631681259777447109196698439883932963793610599178974005948805786565816266146118699936271696710297121974033936879850722186610716534975427628105561752034658814605216360087402750858387512937591004290187990263378523108464442709951540586678627282336524150575540688576804188455470557008587424808931994696944847446727243981395864565285110741124449850602499834042973122012431844118374894888267179071763883387000981121777460782878537121135419171391693098545280219831190852666371866931418049973181687302221873005299402342816904285052951435868521586524216743770069513784045754771924391461217178376890418024236386650739529093005995903783544115508274472551047492586428632378754437578180160105014661572962845592830664935578269212337787496047283201090733354306869931760457183841759986609935749987748356492054038418201791352885037549803696160250313227170817870261389955851841573878619013912536804318441084556592243130447704335231073439436801414344064995026950861178679083025855027293441837389549921387765589074109937776743271397248446674080850135340333834567784661407021049179529250387622719882705777820683331850775830557505401426360631044552795724515443654740357960695047770424908323830433304656038131766302657830541970994545039807271302727832382350416312288068186259623173493186057080236758816494623724594633728834497938583042795119440537760426275218781120968099051076460628943168401700208430414697023507931234553651941424442581480128170840310838824829966283036463444702728564415893585773346028822698399197949326432905179289283321764048142168360504290884924156324839392964300023425766721078435909226732235266752279175620774609846208415311798354500799240206487118708417044841681642002731637251117646887817500390028197553531764212953513492073493672546792863501095218122645584614469472598057086904974133334844753228893234135700191171493057566717969660225679415466533389693174539058263509624314787640776120126493414787087093264101102103040633609587278683880596356842464649543295644469793070618951333870237324626587064894477237098725985159234895433597984925729375393544614560595442385709009693756486537660507558825634419206060541164265258480887576890043079773873278935565078121704738432557341509093804931320819876845532920270478674684347263638741034594349183728674661533303946287560367501999846669825467925165196166181935706803335538388752181120813039296462303588979182274810383046652409272706842248380661727534791572244149235327451462889262532407004369013743269023902132190949283325293525237478809430319645596197595071597866365566940548965937336483883238668511963056143384869083452811294413871493144671633234344547326873438021056200553255174170160066499755770539667726067739410772767525437528422793952754533272529080379866551704575673421976616783760583028727431361991793444774254047004346756706685298262468593284039955493208057931328659657101003029406017237048380404491708259068368135200624264987038242836891250744809506280317691526786302777834432260096392513982246930006548155421959149278314368470222019349523080213588575133079397557309774084406402739140964653105236271093950486551992223686798087322705358667686567672582335626377788411104726966395599381516872499177407938967204334692918746560239213084811733366609681700363728082967174241037540157318337126480241073765784416451587747318637461947924789635642805465288614027445623604640854615796939053894575472938092722902672232890354847647942820787771827122367600363662123990924685784190324815873832183263000246720655372389763829076034299002806556630951737801994729434152359750548587283449592887732271357139859221912885534795992435006479022153437252407270351586162278094469866466669888840579942368312512831118637129560068016058188619010052041002299738407013523825473787525972250118615378184037648481789473856223247884238720675137964911100156804407142788260329391951185325190750113268587926693898034048779652848234045010326560377758259455200322270879581828504939717431931516392837784715151836519487391189403384087308942822731577438577078722015716135567963944324902530146078698542648731968793934014846507457356560656447302268422730886990466564701500662991212347930028264113607828512534179139909724980931904482602072994089911548207666681342318550186364279381783861968374534529179478299113029094739636214822759915246106960860311147438582063387033425048692760590786494358860877673898337962292230165236388240546259183723693110075653088272633640706154565294497789600161627715793342282745036244614094379823102171794938238890475430669510930158052694416848783998519675339380562205458121541918935387648560298917601787566174932319225957210526300089666210593122444419235969027879322566807103880794510775161950636196079868444561582629580902287157517317011167786068624399579656624411166869938875307788894624186952459934666937274307215103887480111974877599751333208367262005248128890135675700010012676470337601555827627226700719715002247566687531243092794575706586267255838119207103168485246152824927046135662752788130959183447783713484916017488957885961629212538071766945160080669850790764095222298339159784498546127770182757298463591986968271808280087578197269630472200090684809496233839817486208515040950272717696466171920386808964589130828410305901985718681057461417522956041471880869367686001802307304534431185145224590236707790985091784601343802770061946518160956446927156341928249465660524436543011386428551819392107627847512151301354256719164693624939874569678541059835901386608557403377908953566822652130377638312977299377159569082368101921621413872139763900467103896390611259377917146357145702567730979999572953202337346888234905544255276314803691547823640660677867657832202436110862317399034934269440534856195703787173345149319786681862723291811865696758968466137682176624202723075766091701849789203386112861191739343051528848137662413909812519094076304350139801656142112174668675433692260274352943308665012508118932854215574692537536943273050621221919239857042577808415719607907376128514537592177156318267236734613629418275038440066847958534947085428254813658187306302446340978006206576002272296648902809191448939236719199710136612988939131591266396042130009630585896644603648477514892243502042831030287072219041593235673901544683051585493563782317833445349430486530986454271938073162965166309813556435487774310180121373926333843139850473812333825595040969447275097585064787289208397895446766555562263080261762442019543801601687986544976039989573196929174592387828223062075805243282929806903891280569242270856043255920617302314818347346151257373313495801124855318381325853858281223654968997419863643520541303405263585320938791441692322333258572468930299155611121402836736831567861629051583739372610612027919287634839479153628556414577370642565065771426355998866622219057250707571768047937266851496413679059095219294166015288477430935047787550166388778297138498576397662820237034829759259645903931111779441060051143558391784930869317224933500849338710951948173286983447665577800308617722158415896564052451720049608002918560533263589962000557601880876242799882817635153815246767818152583106852343027324368797230723763653435721901768642619152185820277248010887438637585912092694219768955382587189715697175829370064198373255880953998905300885173206813339177447020519750425912864758401911632730006310713025356121080135260724974747093933423619582377098209876493151394596764125274403109171783332286627439451824457937448660974049136503105279465677274464165966468391733609301850512355497544447426913110218272931104563123104476645656101539608882506152593010331931799873876113694807070815628668213620904886625255208750453922500932342539332116399801691497448163425667295238877557781575221422854344435776259593575943309772333444421726195491163247271484599438042553037338729088890877392348244273616313854292668575598610092635278813896908304816001214690469094519017699348027377645679376962497264092256412905072906850096590587575187431481584440687650105844743003683027243762306782739244367145494288897893662935666449468922352967978114234874806522428671485174189175056991449959765134446919833355620533992487451335771543412385131319801687058182102550691785303832987481344958797383396355104463026243485166461368978715717818916781977939011962544777776028544433041213924221601738905601931108961798595973142248078651100493968423919957286669280005816526265002418391934854740845589056459221040206018945907074110853750267858336633069947483165007021236344710466168068538190442957872975171694957092639279565519008099219510676519942401375199129022685784355821339341688633245875248625308570964035250359263764223131284703749090627851156324012624117039168631517478006420822512505784281696611971667814763648978706657409370004772215353167278179677607254326064128607182654336309027568291031826197132841811852299235734669466395539998441922254423253698437364847500793851925331306005810967131951848591856611509504937948036957843445200350828597512005438063883785221502486313133137933534179192780534904876318230964008594632629017208768975618936241427111239482100249980019512024499690315855424863445069094681375790281966970476464174095926152488894168254229007329608994313620585888048494698106255700431187335815180347002897558997783714244062560638214803303006017793391887568528290230619011182313525399953829055920563832804911688947823362903956201923692704692376548082521958199839337002061262892850474467936619487002812371070101027201698358053458203758636333098496500569776080900416752208800562560929481059056625192416336624305769405936548923381408185226642643563669652163595979250786427165553930249471230911784922675464720347582159223755685066862732176815738583070732056528988885835892345266657100527740132294165941061611471505315449753449008077021253029569794257026177611223180905373137540061122832960227968948970362064207357067251563339798023631375772054421594285316514839854334913646163020281517821727629497476565854256805924640253544660610284766853280705814032868698218123349564754616278735112129484004596157435177448216692080523765518390114998170336960776995978028956009982877686603017078546837593721775708954901917045097523500665658362107149204968658438334354211442912272466172201452709409539258687150585908746085372181171663246277429730452547186631399441565015287438764438550738792731797290216965961736017464262196757315557727101549659823063861194081047901632002832594188389776872617493352291047901382624918488447818352377653437043960481204704255875223289226516285760805709731385639779788189568059985272024792000606338184466558636975626717265905759456893925413589191059518968152661157423075035583179835924057853091063138119535091636290814647405381747649826092458021054410198103279869266073813876051941785640603702326072896101715093801659071136856319129887810593574520660053246843729805237425293562359430252661778079184759504847884841262551354992098637467624752392246992920443804820207966111448848101412484281427568700739928783191997782437604770328548868671849010907852504569024277765154223183006523208637582282863077413266684436851175439899717575876708511663051680024491884419015825641449814619122243339084915434799131979970047883623753283521124692975955047340927337425498838532989238493488647993404800121870015954685192770180373289103426475043785243608706501779596449504675462278772551236341971254936737299455167267102604682005807907260800311227066727642125976872829191581383203276751095062745794003779878153109416603778619358639097917850100694304627448343564494433664046377778950783734520888043955732634379888674357675654005989474895238563547278459248824227790013180538043154787060111330439060428267458092181886400519573235542970557780810941697913956136990344383705310900077934279543061015621161793891752813263972725138362772744319125046928574283928628977498308103412457140261110510018667688465977352645493826216523819516006787136067561301205757845159543842634543457433463654416862313959082655817123036074360138912587591373260415180563739989080113607988131469207214731407451517177251324866460345999825237021115669578527790490166538972083759055065339732738643851130026394338970213139247286713972445926918687637856088091543753630608244149046347284198694582235635867726739900027387314075907621799646911119885343907835362492040058442528960556665662757368680271532691212812465360707074194865336088138297872546307555078296530198787228264964676240690477089008425945932372503540727494762989484450567019142328825027608873726890613230510393190330202717990881586173775733651347908097455729833891266860680707294222546377958907497575874202863798973923586895030747906072156656724288237487072206450278146979690817163357594488516132312878402446788142975638109748555694371371985916747896515604524458990805650243964696801529036312327492869625602906483932588908885732746520344151031498584094749582425831076172789294087028004962399799363915534297332862879992398819599979930038854340624249729271387384491942147988585924264738310014121698790237926757367474025667848105846606441182782964368747757568559337666340966375672747513056011075318828418328974038108712012370374225427500364675762600209835915758028415289214668629999822783181415789575934126451573698527436369489370138786140435273858927487772131059711823854527707002153812783471156718511754434794160197879611619474876510159749007892343591754552565839487779342750444887111783127566369367435518426915926908666252544601564356640668997697792975251566828576925123693046401000573031258191167950945454780697659094166249236852996960586306165068587636425572953560186487940515302694954959137368367380914632151858383388579975993537918265083633081259458768720161860580364760988136129079434873170378379488452594433354495712637493309247611921210567365806018240033816832930340775365327569662641918600773514200174706138312506360820567053402281254755862969065417375769102370380766968735112878021663188445124270321278405035837826108944061841756160575107034300114190113304598496736130743878267740836925009997502960207602145819637218635952236240232720209229466159666607372658765658440216975172562107848015518339330874194007461012594230734374012329155068183022273002387490967919920396674336328319211475739951767993445728234456040312386530570769083361007126635917035164189589323170100708466553060484847960483317031410058469246395439877505487288045541735063808353875784569915100839944278417516907862228663227999719616366251054642278334541029918961896252663645814757300175398714703324627647094084810001419557931541744898396388259538355534101089040731073784572464213426663449307685191711747200138330345481826876729559066904704514871038221596988210978017752498398993060346843016187301873935240595221319485174879139727097296530033300895546133882611037699885203754524072062534628020382588860058837227992381745686664715908500613228921823036027312431884091434425030524230682961370279285212078730573360660391957320420532785319035775820116969875767070092886027694988421100081982823458347996599259178845643217351603628033608170898256531293732238787860678728096206384610936509150204691204559521815690820511928530753730820537521999766766523608814700161485593469210853923570321549099067757479666932089209840545019383343654944746643718145098011004697530260985502357786560216172903519538074585013440470353205877200749830395514235619309402522843292861662038349177186841236462727103374847505178394443362602067679563507583812259570754431404279585711199042480414625486132522302519003974782252306857721559100006955781456225297528302793614180522894004415208038062572956183777748739929145498597709897866056891919793763215288150229377354825619007716411209027374611432284835310879589385934205883610998675354244591848955994327079367626416625097618442430097401823309792987333048617298697757182890758856939676842721499135304315920399775798924379452334041354051052530413160726089802862998154741470130665605223143685012649952179778199024302369975564367692268770451529257964048145439490919060156271256762067295341884437913601795830569606359127005241728545526734839658097714070451376514321268685029599300266507370955636617875646281513433284598184450664364089602660484454050637754006327111519988630984925891457900468038096172437297991782401463613043330069401945992594241995313210017912978864258152426688587565770904474416155806792736460148212508833786432317464509264824795273555127930478234005228805422097318220555135901911289839761018487000897823698110661827717470861893503479216818877178739899518350847146760617812774646831369018417041752818716897911769534061192896401318552672362384139362773414834620202429301391170019507056251322422203810309766065763259594813978390724116474372925242904255392202076112557789873381734277445887192861617696982672176943095304204043239842674212115799326629786206687693134112780789804751237958594109361487898390944639823453055602140194097604129003426118150164123832526721063820755208245900877851464316890998787349541701886955510918622663965129356884700150978672574923061519404524591226467399965203378512575895818166569347537402694092406036572789700785932531122707217650772611072021323101510209390187976486486389387842451716263396850442431463698545391126351043066418166726272419799102028710477980874552866682912692763367302433671078617392709055461030245251000370306585073277786529658395599719874493752404807623420999779008979148199667635259327387514609163809571394916285817799851368897499348788762944939685085090082774438423565757102688261287600313421455396811702900806690302504290649204167549542501277301740952596535710351092650973465534041503398587731493184830317214562845057602718513841093345866115964106496004476213058344128987571118508466917783700528918693926775526302521376586514882835065496738807781304871070020124817331886407884356031049841186310365803893363293986867900706958328078035021704109422690658204460000100670610848146363283088675011787648618862163185733543946761791588452452687857644536029486986141673366526753405986607382505877833797469628345765968221502543225937777147953327331006286701347792800772899093411500717881414207977094623530672862777155887489041881060497100761052950921458635547233771928919668025887422712728898567435014982592327181977202946363386799356949274461947334372860417387979285126373949273700290741704080379841520861868220514373927829057952280459222764319084056240337586110665731620020047556196579319578148565203489457936923778013925694020379583561807860916093674270280805992031080493982162605669136974870840993899164005066467190830797570891737856738958907957745091570267728961131873169866479934789808879850367565294352180036152979431863984355206031958609765283759211184072883832171471009388719210709569330574799678777640023587774699794425264857759193363444690065420540414120445253362249467757671658978124494143394923636696066138659425798263809947085248486707250498339190477693343534610927525897504030909351432660459423709326310116925504830674510540366773466837836831147858560657632757671800128618143006144839936995443559939241354259477909503272314098254292972346814358856293325402848732923987185213881753169893046476399457990628368051863897203534812712511593173205977636422160945899966405162094518560760670551723970061661775406014435762183279608629314709792920873218197089546223043749363583843265733222327143533927443799510616379352482878681570437524205774555292410151408681640688983546173299479455807025984902471933407413768957555510027146907702622500479227455655932323677217326039728441347105281997946281729989519896597599703039934814035508428131098968829500448868542227788814792784239431084944988819601300111144051774885679322866298033223223395737373850639451883713681390488332751206236798826189828006929817351925194333772557329016120522239761750245075141524635229813494467658499252255938917266970154145809801841047611092091740342012653022449946115440253425735670583933023110672197136738014407817165431314022097723885411148401778911979380865194584720490800512435193680275930959940290282081973416958700365510962386293584867092290268372326544273880063952941156603788300114975917976058167749074898776262221616894584052389722347903129272982900823782211730894004331315483279278030115611532131887214516991290380691986205967748140119468621197147591280971199636261110112116315077770373630982251875679763793219811908546987160715485427844099177773418473820299570194143578778360008326393169172806773504490570720659745251257723743826456424259667052796188335931176658349519112684501199260796157810757317263393642381843068848991800108063975152740648013448632914302006735168912658334841262531636380481282369168665999555475709104241014816215520923366984961533428789937111696805055920830376164854447327220839881825340634238276456533828396090904660520481236436577439005163877569248879205764289594488374005311595518574020198377335916629639743426321697869907825873397272263824857758762062313316681918260865442388931654716230876242238107196076757510458574206673447589039107301246914718570805268575629282164228997638031038109858424134937787694825778054773530247236110038101467142036526662667911877896915487868470679589335862072854728749475608609191993028297081764085751807246001634441183751440599652145202145099664318818634897199311524144282030661726979770052084814427907295823810675623583169131300954912512612421311115921721463782941886836931424430207579384659900885805591876520237917057405233682714282763872683517917557528846115192287246978664428926668148223057905453362929106343777544035458099750920142996953058994811911903843986967819376769142089666770166550260662653094841662233932590052928569056229300348918884784763919630478563271181774192266951455135873134133280757817118997757738067270430016126389935626589437495218221923121650935961631528443532141516872681548224998264783021595762689577132053983077988547530129407388923002633699112479387846005539693854116138995014684826605089279926229840937242290592503544812602378539883219494174304949422586661946277035230907922478620197944052226774772308891430912561886372584131942990030039266059528272467182878871710016077991748692393380261535137774334890424493447978411616391257524232139309696079745030940597765789878759821151386513474477975080731816547724755497396000489968826287848110834095905338170827015658123576564812717068986137518842984202026747793159093364642827420344005392579918220216539715280774746288820843926296090695897853284714907421796615230706098665008164874894292544674127870509936257578179787279528609394068101614467541238554217489457215270320138740548279961966127437054030447830315390295046586041664031756743613448875818528693407385816861656290076021871174008547223465000116999517281319844649985564683605374351308760824723825653776557676515188201947046750228388410094850687040956761031505034633139780937399852162473416483068246672866727919012016739254857348414938975603638819108930077933471548093597178905248393055595663965891019447182862798489654093062491361634505106249696561643288128963881804681232163424703380289124436225628942848041190651786894167120625913251647133194492300807040107651306808915152203706060748084773758861506298240775657111400111189867627405189210272724617664733863063381146767034881501209449437285906306087206373714232424145552439448870732325090056878814994008008658011818866274337220065396247572948569088300512942021867925113737973782930175160950872421363381448781378890422761215403246951446668852429299099071835534960504634644669106936628957242266105820277152282323711336346199222500633426899831109188269168252387692520337236651971660520131234905514965191057076651618846049592820288005015941231401963579146320643899577543976789422037154058509674829826716690649217468833823321920070460704892591312431127522012435328222716514190691562339189047913312708334537178107728525335286826522150322707326206542405644135542404555780030680797487900900335361745607920412518256143938905158826080496763216221183936487253959735278260851358333302759006531096826565438590262553545061981419320741233132918521768975459237182241476688141973971393962880481060564860770728890948884654833373379146888915945043837297989263699362780746315168508729488982646844920049749453170587843846948134234534235839169933681464703269600775011593377738746990741021831049551646024573120730561152002261021164496390275078073577884853087485434254238057525941672327941634054352469291472350141715525838196291256304956329743119570812401745285413197174046053475614471383104366986829115384428119821050291343770616853139677880564197771095960729369778927538414948492444288344736274729459323510024784575669132005858363656574236819126082179179327302601142866515168191481250343848021311259696846507702918729002164232234119546918933718398450085138851637323579818073319548778886452492035972839346941060765390147256977709732368635628086094389434688050687570424842690975451852073035934918814771782958863228448620992032791984728923746675321519477645521707592666243363705356924467141983498168021006974807574642950151573302026861988484698046340756603083495314463677548210165961655244680731980298661522606976527170998420672661392957195748229148396522819475926864235586138647683009166590026789498459204699668882132019598004157319437303443175369218676797625306427051738664607593797624056716461885928068556101071926495704747728605981087612011221903718917058194504534548675437279685603741114317652069624601222040711604528257220490526021541301985183060294829676084400126830235343176465039667244005480404759065583701208369058021443426547469672749899339526761019746667695542883961463004734842569502663303014761633673346221256525542106495466317596798443028001197961753382703148552912273539728175729881928645044124628714804140622563656148883000268252040018121204497768317887666996933825195186393612739809362683630980661101817476116543187170752491123615042271493862011086484693931363798581580421125798409468673734430318909976213088285169979690735097027424187813404874676062128071787620092460979624540240299018411303753619725351115266220942413627847330489485758426726367843871679330217376810133804696282797179867800837666012816929812253599187865263435186485740223240706456145226834240770255821898251215512131139224908678923666786613118434331884257404381178390298010594606790148460339469121699111109253326392664117728502119649001311586331167369879501309365977616696399767938318914550764815435655769316590386913755507639674053782279481029116349264128820217700681829077132611503608616176329289869168252257331106734411779141914337745261480080224486314525558803454822300049101381775895784182088783137151049233712400363443632265840630530139583592429564366890793716463366066514753832796273699531444973746596072650152558063754694613584295607730706383662033120377350635192080771621139687928763562334989454373454134784834718342529221015199962720506164487542463114629057917589462971383181502580005164863208668694834881639407680192962297641698563670397530343959604769827008299427137179768118826649134522891080912025945923445120377235155175187949361939953119225464323933113552571520600731456422928850914455786645590954598126592950928434137132081186794980946076318119226486782226079978237463675430127795809524752395755224468927210542773297141169674317191945004991486300422355880074747647089380653200480445841023945548299454357942844046582051772854338805263804930517594239404857316033964782290550182144648908784809132686790012823798267011653116305863619769084346823482464280611091629552340920418541909340629908287235600547878695754687615159162399024666926199789269731825109732871448115800758706728698349010547640655692217111380691335367665501816755222029092561247353191935352741313038857066742338223670045387975399687216668111766678425264488559417656222451353420730043848545425402623805165152559001520724207452288904555744578125587854361951324410115213624158493857027277045572591524185721345827718911391417430027287898391330154776394642073360719031168895542608067424509108052919226041056439064489102064311078105637190347076234343166243033378343888533767670487687113417825338445643149448961510898713238982250699126004162052368584891215570424548721237391295312886966200757605756255342349900375112673490565239201179740411826555125606427177947916484573808651112647943484996022099343003370952395647364166695158339494393650921321306794085219275237888031305210740706190018027416238948594023824004676605215604433401100090096617017485144966561351098596957752159698066330168470253289943618342916635547192701598179232320233100378897998827328453845579693044374359017338102673680938081516843198007657228209740127846607701204472249520383789006350566077317354486898399285026851394796142589037428878285716445649508272666648964053284186377808064659723113549381651421466286672302661127015663729551598673046007200127810923646698627386645194163000416554751409070967869487457400020997854252520368921693456971787943281658885496366941669937461980044641753203118682973121619789534358968830001599197694382289485412730729328786373316861743158836136459220876579165592021519062324784603138759888031355518304210183279913528406742389542976721806263682599186168597454089945209702237441495735025598404395310171796660347776043975495700518410241141326647630283877738020279289110110120939213024714961864758370404499227520066153814584480839817011703652922480886328833069981313638764788967982753150407787755235477834570744010536395204347959993613230730727921497763557218525323417744448233190868050612343830492510542568336183020274263535053618788758497943619562334744411775147714963604108854523363764164370825557247417656628410601266972344435741245867952681956917894786815176904924759841251712960404226250747844311855171940483499055258682994757442512128613348386565217246189772029949807486519158836984804135322506401367619944203822821249704046098470702513501383918416421992565940316482628561089649601032084909938851784120698788773404161191344306264420188640482996937126496589787853008505539334692997906950741442346760058490909810209631412774357725210022923824412422372343407732379255176387196786891328231278177059557526735242011442466280078776789739729666789876173130321846971149823506735986080911704809404329741456148687911177143680828679597966295524298629352584470800402345315263937054354806974209225280561055847142005442934339696529963932941449002682721864862005674638672134545651815996602446173460812228197939751879831181448118976889526185680963580185612166853941117477088169540656803435356145433325115150352517143905589938864355749113377204736564094437202948272045166829917712521493913580127344760907973212431939215632344147147580513623802251032457595364959893422124409581190986668800466775505390426359014960962781985720783536238891468718928405743839776805882746863329211551976385303915127114242111158365973629368549923741389385558168757365951052308143196140176878795962827153660409311644385955010126499170031162025142906685239850264288547406440664043183136964956931656544933413107715284962339049988300896513452605120985583115557079672089472839773480203763881710685134372943295065413211608302336462096530627364741898440484320355109822850286539641598609049818227324103105236761358810695583105991770881389261563849964726262105612051498593340843708396856590715871473594844602507633875896042421818166602719241781948783985024705273998550159472469098013810333891249187306719203596924552051534648335351456252926996628155325565811834336510743720293202903968661535251456451651506858838815046028839446560681016467846332121644900804215212594487053582856489395820051765264411203314131023530632471050498326597915964035647325592870858581544000244846768463635083063172285403024584912442096954608847245444164046620394647861034163039036915170488271594186910400055190927029330222303947358390964731442447437428396960674563085235376820635669134129092713703456963020460487400170511120835205722880453983667587846881249985873502924761072852649758712406455397626701991449135575181221473680189865748506550300459329517956570379295720778986167019267539048774848963009452402358178102425916507091070391075304841659932825739024782149176462449524010656275442659523681961697298487144565545333669241576045061758174721380699022500410105598707720093193469624517377521477384344234861070199094101584923281752340816439381830264588072628047652446852709711109199445064773440054022777635063105149239082222053856271163557950001780936986743977311563719371995677115272739267846736447770602572706931386108673077146491031094883074651813351845217990326000210761104281168669316306334027349997897268567521539353159343079823637734873318167848967227481916003662206787894611710174643774810167675531991626106127014109916690978848108688868349036667602841632425701295374219694422703719230792065917407094819327048158962622797623259881648368516229168435172830775631902980985440453719894476407019016381104387952824946531675380469623805951065663834762557405637731714974574903582679869993965995993572822033628731618062908899778788993638025418919510566464012613220375524905007883396838275387498009223478781047215732748132469792212922773797643807622034589829720861828984015520931822423460379244844219228939322715140493777477876090690165647094398850034401424271313116995022950273786869324107648813205260372062340819923374022018799831225119382829185022638323779052294597555035450009987801883376855989990644375143696457811047688132643231463373530497255300077866405752256498781019471695224781486273528236409223595399918548099119769491477044918928180906937588609743731206015556343857898305897654522590890674769777057200183135019803687630334650731227988104352804170472850622250545001601506522860173318709963617960943449425238758758761794164871961646069390511141350189025482414160609767649046918031277468914978357465017566091637561739224194104482605850981313093919874382204935045746560480876958104602204999341254911921182183448057071292243334015015804440866916813423142555960749319314718154997445828306837642274440089000123988337929036830320713016770846345254783436145549113751733610903203861386069384543136789386004138742920424622748241441598213215972940016835259665868019564529016477570194807714572196094390214975422282968959242210652950114063413617597491966241703590640921364022457526214301563941824865587320681695707318341055722284825387907183121920486197613691244283863008167302639905979620366372196690554212445190661500730764251558859999722091630216119602863905317642241732109606790740967398302178716259145212151606686585673450297626641656621685500273185345199806797322516267447048138294135970132395127106248454555640094171286144107849708866238777883578223350775285764964455722715859825950477946876087484483437874695649116761633583227038353269596193651759809072646071286520913654635873967225410078486270795850538933904231883040825349393456945731051451315523348632532740955591451642793072549120786327110062075632621929630600755704314713740539484708224864917692054244489685748100877790065893356474088810888369413973934485541622966890751935724520597994639869111343874876121439430139680115735656117738316790649702884928121430643536178713903076240674054671938645373287248182948615455714906399236982040334267224059882681865969766138474168191418246315771425942989048163172203304286089049779660893136064846343122302315702584437371694296700912168706195804249164590247257066298182915769835206814047340592348119271155270461695400396150026584129749675327225478841127331062598190211566582380835382787334328631579046742047515864060672229447598123738431017504576273680133088789638556333902967322033240802031135203244495716088331803294273155017723651737569330148625257495282329201816842618950411493017792350652366891688409703735034236335370265271426017690006858615165401929241296552091549276562036704456436544160515920095751360042117324576092446036104243343634729697333592111763342769688304224555789809118479328563948810512941280130251242439920069263737814094733573996539451858622181923849912349896883276142579764819270985538951758017064624245209988913122830294566212626637929582231375389696167900431026571563419644119635993598173066074079865622021201306450236512200818015749248182327733219901909431141268709404033780761299308701491187934102151590582798280181096952378026199840666906246070016182803611166690834992607823709978458328082099947807994732303747262256800319444086333588985507550398492622370651011070749101692543985192614414959696130489935877379518835085890364892219771862262023800237757146991312159367639145734193148877841436178304535946294181534153074999771820682013156629576120667342908737071731366705011730378865327034177301457615451223508702087591545565303499978807168280454781927006678085933498491638667068134980499278834310185118922089878671711450345227875812121409404435592498336339424483396126566158296044641414794651650853215075986775196171934966919984656498089346920882300772053730070101207136829588397843675025179253411378651331264653606754903644024220516687948547039852497420357271965401942472893555902787396378199697722148566938722676583243314954441965553339823539806766047116534763806358871993693083526413705553957770633247161815324907520048857940359705737691713000909353430269579835783399724564283699224500801115350732021515480192711739690855743886006230085565861897046327747529741282528919696738475235136613898110959260187161407980858336658284181968830882133211420604411919588931996305006180518312234972635615908794430839544784963995938801808865115839237929593219516379201310395560911284833144288890972759953981305596620525147864352406911464781179292131688394468939058771407169750424983679365401166914290676188929064750421451657445696786261379335245822605972210221239368689526588919790190033115979923801626234385309446539867922801350671329383456313622989760579978691832286110330706048809816766066174542835368611478992652178767205763036014444286741088648712894453880113367157981121761416202961118859002156362075345101733222258262184555511059836536471178754263580410109192796246756104083857992915228600775171496901357204260691652695147433085600218147423400197734602473635993167414976181874206845859127633989156634764441491037544562877412862138075638957861297654077643302753337792265719868704670888024751188031760435530531516131255762711635064575557553737613299761746051084154892407416804782505540828248705667061281404035948460653139380130118712630454776002978818416189713291029938319374190657574411823047352319174439092133259346446949011181705163176501344901162601036322630504492876124190311918015513731248709026899145495954437865715770696031399083346173284384050348720931412456399069482791903200167224495156972375493350266602790966726780372957074019897789483528239786918452121365523026381100918199052124662638148141642740181583679900886747316384433673978886746526123525081057471385355670695461191441267158334776561409809803800799245240809167612114644441119789152894978037492384816486232916902657702064563117867483780735600087113388312852475386824488041229744629390422512891238563648991406267384353820775942910062352063071318675935380793523801826636410011835318537185646658833432640823182609375505997225041393751686614959597273485825454278628927844969189169523778487867718818676681707216922634053098766325507351729216008076853795713594679264968761994469346408627056800479626241502766067677821075638151984761058637624910729712064029039821401324762176547074404023279394661138002934173770326135471635290341644737018040278069165558012965430206443208113903843410433643593853462375847953159358464056917545061812661867481468338797284649584769440042674600091806843543975060997905250501839433170450836708058849883939477240259743676259517225765265707311618604871369970432566800512000105889003032632634002942260081984020564095282582152890460538473264736306440483415219218931849321669448767478491363185677702622504526008401239761037797731021510137185748619455426065861695635621369533741789545242682172007599925652348461980355260115876032304133481366280007236918333504835309985310294148034077605668611394931892751970032288614222842790653555078265509832600636907884767254373645332241879817229439455041870651235533665872477861148728234224611037642402713292036297868487050475546552359157950809504090564898031009024394862644981272985348375096179492298998519776713859303150900044982983880042756517703549015663638004612513795675229000050093509374509775699384297235154552836871538487787691640691565400174912624180099907578194853445244009149841267614077807848871764564512267595990910089292855809544863134653387405823220891445471270297850997757834014104038316060917670297997744451373106816867700953304208501436387870705925873080929481669785237914035528496086878997202135724327895656465686348046703535907340375952141494560918748451566370498499143855708358058704874127335893039494580598246933454691163128142760352550624628293510213792732659018465411022598901826076207536685541351222077514513320925774173003880944643621625783358538583187842968069181137035049523266687673232163255183155093005406303928854741361158603603872201533116752151517662733757518387930206899900278256046177480362373591539061728696210090938401348567859995845490165345398780182618587817437814101840997013076609433187154816007846872867421902217662200169379157234169954882017455055127916154856918593124403086076975944064157191050536840333675278245045510437849966847906017744613671688101767320216753426951032657657061568732083999772205123983691614668300542370500061050805897788820763342583070363763355110949368057610407361712791332764177802504757993577507690893726625691884492038017587753881400407578226299199468995154532824839244337990085547772721248046359451467905668104844237007069075300755703415329449402617679710886319614330894060871131399497620803735633686850429686851822538768641659301212676993901655297974677441701018025402132727296076783645631171696782174509268418785142226956585701356879949328377489453794300154256368224598494115194531382385803921225886112343684184226346235981387707189041857209813993345458000606716518464776780149300285390157894016923068632592955254687634964539995633914729761625087579152497561890199799560280452572260554535713577508548397664821581900748308030205544398025341150395774184310848707962206249713224765793052491603911982105411005544725088583939371945726373661985803832713739869507568485459373458722896065593625808773688687100627211573800331835388680668790958922340557018271289918612312817724041991094760551674501949328391310278969400929220610290755695950461879743649248388766277249582662170312419167776456984526963137548219113754310255696998144621454992594991411922159336431798374449977241017917076610655571837742530748316041156882391596883203265386825657972696776527765017494478005641596245666016456302270641572725098170541521964075964577622745542362963094883430805433574988133561288478536983619745084726532593335578298298898264818580845177310051338995198077643416567724450934981596066406687999160253501522864977506334985801805382741090167871052797539251745300868012552634362328465942440642114566474161535612593858649414226270709027670142181306762612285516981079767567317204665361142747232412213418960737947682063447348827067837265762388232598332468905562090651867102068518120221108475030089531253859030172985886539207714128842340372356058509329189560525616555703329116754270472250906672302208882304583662124819054587220260604221742023106275999540862646906332582992207671369622919815660192210337650642826083052597851748362027028536074789214289320169470534540837138522082037556967892162240610027788903474914566941094542486845291770860470567399276310902428361555211466655102841716574476037612596343171603984466859181699833193035637134975364883428275102854483688965489945747841751234866855892938899531254399531896943006262911364397350962625763852383150698172055657344203549430163970399147019826686904199236004809698365669044145972663320617944920780405753532074237834873206252817136177890029336895425422530345067535805234851383799030463363364995615176836350791830289397134085754653111303935463424324764669909233166033821862866605138013170863342000292838522712596555357185445424711238756337774568796762358238129031650978862535260211832276420224370880420376528298831784024113257250446856552982201173525828373119135462436737599449699760242931969256351892009133955864581998906602048550480727584014650892534731971609254594481925399982437704433196298911313169969883614437951527478046886760209308983744167811443259795407052839622352526201064243940572429652253473503711657539713907205694828292688067660201022648677458719709703267031678615922877353767517470843394620577849489925857754032477298254981875085779808880824772921643375181491442481725248497872371550963211705954853313215150377751183632095700306289417428041620845265206980338705492390242217555386535638051141371582990669906642400236651389254860102740717861841275209727734381883584841562957883984024385107518709656513272236377105918996624139648308281839017168832798071545865490488385979132123935433063261572801726168583168256748577002210987960477100493149312627657864475552022081884163758567979059435981505701797881510912381976890594451187359322474427944046445141302286458174861845433046405336140665038293539697872645993900648607920321143273495595534097242570422303107428372215369182161217958203690920073003171060137707450277000492655871951183107368553097510974132770242448497456832781345511894046623576148235873567824068265148871295522709757933955654960644324422235214311392957927754972640040750386880190316318721924188407479310455959856016238654367961948756711366523446870088207655370163215302378759262204821675221488792738895429741317618898095463997021618788371333806248957440716628110858318613502360748355085549099481914543463897797144435264160060430707375708629469232982169318445177149672737457692333603246255888632820255549971701404637021031808270568485846841645517317574620678978722743347518118078632709229636814422369480597827396608892128999032560941269835556105783171622065162581769044514169231695378945163865987107953760151732632915460491808748947972428061131085711754257001835010648352931497267018396640534002566093679146430578165460763993008798968817727707245074685919779032960597478555374913137207139263675593571812850590986488437056453481640094875857621482239441920903896489607218072161633819998823907369268572948444580365022615140209601628592577022492304709229216163198127839659046557418723941673682923099260096095895853777390654652308241913187326700646462828375302161966183015915248020814760850004249356268490055720908687246811079440842184368142271139320508032417733440449134893392444300581141366042928603869798035351043037216701009190783341967636636150877320737697173734578249556170526716384920919206225253024365177469873650309936988291421924428936328291694610036185339507487561236754820758987930859831280809337483273189074682290401348895241559807844131456142726319054932894663437870380441221570817557346676860756299274394519863670462884709824293150719581568446692308954149114996766934470605300265027738516489154576630152397654287779916760140070300955740636507086123916531758692230670193612706658344260030824671652029087117343266038573394195849859182522528061896892500344942950264552721240834693921982253417396506678743190489746836518517014714364661686538470600069296911260351722174110961130470011483399883455326128830738383511507187109321339617129292514500549820126345612240138054233850594071688032644068350083032776593681400780149686343210297626513979146471193001984557957344084613198555057019593852959649999660452364993879230826914453881602214981092703984935447393310956348457167777565448116632324291246765624995137105582128442298461538880615658518407624184349810330625482613171813583788821498182315443564018695327810768891121717275488987577169697503146639492864872746860101691406591553900520010672844049430286028527595798817273820993333760631092448431119278935236753681776635636391908317854026119333938220544462186360702699942620591234501467082926572807801001686585946068774272920617482520808123520663919498489438791008141648339260179301026570356306086400515182975589912867190126898288154861774855424521433873086840705580159492628587756997535163585548749945290430242906464554002241141199646944425842790253089601309037692892568991638198346474437636413501396700741691638635641521066087794208465374391433371507662781211211239423868575549088744702426389916518039165272185161689151879283312939576469189856449248485727564879598839846006972498457525508326599569304777876273642538337001455272226053379901450070372570275070504154227409588134161947922346063502261220835612739288854946365074441488189882946489731957562120885006505064181041005141031247038835249935158263424175024024146178988695887395314572082851095242792786323355331465730619341887246957705676288785096328337721816081773098063398442746019933710033123648019050366009304768483231332597881346589025830451254280653644311297889201319157807518925619894701862034145446942996210112729518677896975781302465335023061165724721738435599924573135906136950201360166428866228064045409843509224705146126411357979225419654043344704880614523308486141820478449892585311060308982589768809739867144632558852740237281172785714128575408450402258473198585299949970520978092203445813608161570867620284691339587872971931703892565542186971621296946389994549588978638664180700300159988862037705695049818917071525992931003880782547332064985424465174326320983591194801055330955513545924383836618768555264793954049572977908829274619774892337848020445369501864164709132174287711214966985049208123641152325861151069368109539528022257558230969170573112768170166235327094409074477192002969163437766730817978355628702169486848050278476497032897794284312143234243184360842196870947048273844660891346500973500954009725923808570437788905994859609919485558177594993000279060831383236290097302387342998686491060932718300328158831058487825601918497111055921130138186635662123574728208883069513201654931500626402350107871145019579929151356840130054015974871173512547490236584674769463066290627063091943590935563365648112662972820364068804350944042434357773986668242594876713087004949249126180611617705017840358035000997164819876365831533654226747831764783722118531539157861942873582015193842770807252447538417181508635569174505731277034218655045822249009566115386610661439262830221927244012935875556201353952522843998962791845382507374108332353823773071513097584673216882788531600835699094819708889432408131406684172694403280353485154719800665992212876361361625848925068659970896060575673856145847825783135348894953734419731813253225710050155718979039451200506456839153191109296350757148238874922357143331848734020415632029715958861427931372688067491950636016241338501099866460709530433366021457484121531830955406369712328675164161040929445253350378149205436884984937687653761919407298437191451814453128440033664125078110333727364621642716545822538426322246149819639122980800045331336652995797464850261614870860763247600952071241698420304246832589719193982772021681654179117933102021598355037078536030889747559541515857392205745914049197027300190724911027564340464739013954033156906495566223489881454858058291761751164523167292446737740619268982519623575610550776939377789955444054194041948904215633456351576018125170564871324580805305279767769871076815382263641128586504935015121920834380822612874312830835034391644894804996530059165699207272591762409888749504130684964403924418085460133080201889771572457834665625454296303291082017590215729517918444957797823691970099285875834158492249047348290486163031582471806381466636582656139475079049528303087874919882786174419514296601826308322367156361043508221268469889867966884967944736894150026752484350463869326046177294810095339933966668224445120790002291869342457890620849795908822664087764649709197436479474347676555037685890268413915729722601765224395853006510209226781659786478455232261321648314138958131191142449042498453796583521487899517101006191581352506603583058473763463050256756454544707089641335245697239267644780588371229847162406750425800190347471280525438930403725639116522434472457232838878926303510734200432226707676850874916244415279692141716293724719541284473831521894367374768173677255407924888380217716543184032398252352561651871177368000194256039984073095209803733162513851707287234479532463980264414129191555611980412220259747485032685983361205021576912926304727220477931565183408682132150438952267773954467708674395911925171439236091154132116056350753147461622485040241972960246365144371993093075540111816038477639113812636544484630397687923300790416013196648693461245885022611832167999340105007568667109301670292107722495336079347821078979104176278352968494403242751625764630629724709630510225509599657594989810905595942883210915973189261570217150271225196513263738493643947132553275032777643555939879784775102582431688314321011828451888154780620400198968296207115341224683297700861021751783294904871425073220000328882161971904024024972002053395682137563125093794791789811582460275782339716654131631887081607160033767397644911043456949790964329801005636083869442917575201680953555408179066809427471223462734766680481081636367532407195156489820464511487171185110365390183544744052539791732817793374110799895618147018578205868164264782261955082719502111714686951827224315855327237164697968132878958928370106321621998197096465681936218731522688881414809833236130638921840144504357643818350133880894273347709737667839945144084218657786198624244217781149998905095630974258610787803772711582311157355391765918750752764748959089415614738398977405515228490346853632385898367410715696869587186467790569632722793475196401559927082228178629700572074699384635880896938688457257023091842168254102373550771429243474549352459410333296282009827255752016485866409809718003721768061129825305822791562961649560256109040863013186429454949710447497145172910366490307414324596272955997354930353949581709501752636574441010477852231222389301966468687305387895352652734774055307716061783022048712939875425006440707557109851691656132270652620014622462475429499702518845681175917923422823435236464489067671203701275029827036365454751072264057435975700094509854640414539747605287200681710360883797457035174430180623191328535873748524359843623075714169268928508255652342334724895595737206373265093557513890258436872537573981492268949757596840286835219066822167035445940332394549438023899411208917084747489744635636952600419019256918603772534798179965723447522558569515745725168034222842145356273137756252746140890462642912313414042656906268375046201208370060686977874345071837105126821822456340178291402702106452424031485796099017422634556578125492777583705787696971898463964071143591013393318745213894364644558943549327801360414889559677562379538084342377289707154280310185511655755120315921539031582439815993890173376573607408518414795874373045504860786628532122655619805631997320103536410614672394873623102846073572733793406202600009164795870864564254829834794086461257951723334626902502485222349841498073963685488960145135481014609221095132653795177005981115973223862671820269813687577396019564636697078746482329342280759114457512706909869726966851674558349463450471809657515068980175116360404250338448316613571718683568264381217797806627774769468977648455044984032739919888045985707646053690764829652991043827453880552214140559969481687551855432107330317270565561642628634008860940591410535019562113313432701938932635318818038396217948576721257249201674336066966916091481523823194707844715672897601269911162051471094822531583139242709946367832489741362324836265441392421026965367216371648471245966899915316377212623982352676892757291030295573148493479652070888094723832354948668565168307752783267919109873923534118320153434331021220630913055471730452234761751246230465451937451969524200800611094324097176377628691261954815570012859572172280277544697647266588827462962253793570962187049728780985423548939574119814595939999090862431459419991502361272605292844933549685800825463901576579577049988958224787256622251744352484290961897955357303669028021686988332990213720685922158715803371381626512737626069030527192451946135779141634691021846218555925975785020004411872306697771895570410520758702966455166537192929747126778454348414246547718518125713875835443040479345242278870671660876935567392063584714451006411354182524030604055424002805194073134855265225331640447228189798833814213225855746232414291780026512242637917100328141006275164877434672372465277693065344614334576439221133230219077316013810006785937417390183964772299441305953381179851678046324033526368146231204235579520273869939175493190538267877486511512742836748439406919515829929138940441430336132921134036724572661177763080748181010368662443164323547099009995448599894367467898842053191273288292898071266116831999813863975805412349211945866072274563601649470665997944701390710299208906315062988476187945668067791564739580124448626752237828062073455924463570433524540991664050700315662048789616640280509010058404056341206874906538028747322179423602636759655939156605989113108461342897958184701679117679566744484989875029625818248310368265996585197891841642046437811324589905087210012012417831617304771440485382227642064330334181832361225361357698061424506868772283179885672840613433509291946109278743618735150900255130565002437621147669880841389524990390173115142572018760882911022575543629816276775122121746708842840565211103835633458618240669359210695493514916997144662646904925337310500309992477803528593676763310480561552267696043705205533479566944105988547828467617617145400090680752999933908731303746044172780331666368248908162594571158477778308015771488726477574043138237194785139902375117368461770887763648451777244670465910294674305082834918501572890401579017399543642439916089383024420801043544790069447603582014301291283575134487548740644689837117049558870493417594677023218557920580591273830144705277680368988228267225346226820164174685487945818722299529601133462120173290908311136332121075177260762065244101628615028785791562226950233797148568791473208746738012424457586130972079923872360036006020703830532095004612442530556989005228778583266032232487345256496909675378692969045506082415792672239163869784044951875051237409129339312284234412271903146452786130907105941314507272296521239001934406499575574815557261427571588134577463804848798539658267599944426573607550793438986563081773707710475548965956547160206599755631953155625854095938716996127115420765932060521237054505716359377158787250759883746089648504722222886247809192028548880007872546729404856960941840594098558270652429968630810214559550344393597071402557169255186474552226759892339376592976853273628897927867336538085516700224707117575085621502004179670088928188106525540413988451774672858949900556771447174537343820845875056440264965699943858240380172135028591677077044184182200679479226319458466556200445111471684465479828004430462651484712926595097323941123118519189021046193229964083383671259538466043224966288579204565448659049628771486026767095928176123217903404674837544772017191321412532556432445273038019866196989618223058477704546277756752331454351127402157443922777291800294540843522577525193661031624758046247295154995423508582139492979127192843985817979298976555933741819200008312041229324678836400372242570420862776744956724761108178377425103176178896969435180104642311791329392339212784643561809324505544170793865829865502886051468239140038101172350554778424920523104943916265338851224862574435589610507583012556789591143984016597742586599203010662202184698523386694655005266861832214224830153473071209165293636772896024850074111245066112737272884839679636265645482971546255174369541156360059520582149655419899994407472322902238310903953321379917922877641880456655834063357358363162515708096862446514005206806225096752963166631824173516074600178577980965653644958102432084626850028456885114054752912963248915080691955964113885105662232109603870899191904146176156367736364829590864621310556884515138512219447495205941417053188493017004795717723807573186807458306944440785865212506619172854306889594970385721980358094555298958503841236306992425355242763180291923629733976207827987724634509285640160586048207292127290511503716578383020775107153211582203666374726294349428958899789768514857816916064180002696898208821165662740997758270474379784049457381579780465145247669669901459566288109912827387337399705837111388941068382560359961457409982386713988550273403975233606824393834351278257096396692559052163731713514214339469354954489176627709365884481445438501842283396686014455931888393370933267443524065457291551218419721499225911755454744081921241956531986768596835743823454990677397908898842856984740786486849703142901067119539544569796765571888575759255860111125742083632455734658077798210047693927705497655388384976981002387710530943700837175514426323963561386476384583422447847264243904739153829039416048604370567054962812278438123484273321183621447901861313810871091517437589727350262788693080086716819254488895530174443266100999920904488519591212061985521054679335087323425114946229698494988003776810740946042967954112183049816310601754197945145660178117227701440230559268527525819898478528232198576217791773443533088868573471282789932750825186160068646742887398303169888469108032968846271177129999569183113728422927483529147182655935234222388156234010789008375761833537075080955688872283835756392085965804930120077233641018575271105167799994076765241951992659609426996482018255595864361408681363048009749093275433501134283761306492286684540657110017550929011461016208501063974935495934562832663137469533001341582812808989244892823737593240804506697804916051680236042522450897426924053413923905363934172852563668345746786190464531612562643420329772830873468753645740943379344651452969972976839899437891006705289809590466978518823044773119126627228434158146240374258875371569829579018092761780861782771302082450729539223382566235370943792894479502036396746049563331231047647339662103585035961323267435347100133530664294281392028803448136666327605074377218315012265669547980096391085023066500363801768425842554441395987567197872813507191450047723037016911303426936800925134800383572550755952000016362323731336180882318370168511687054309682754552355360517797560364197858263382390415000244815937267942914254377670172702715357219084345035748801577229056208622459424456680148266298795339895052765494865256625962991699155140899145919935729910664770028482811372489636447579763255792170906449403156099992523520704349308512693855039660669571460153378802786134944039364201717136923881741806222665026132272312392745624713765581231210592033818810196620751162801121443472804726515227050725068682883979081675586566899596903774212560860660112735572183747293226250087314471878755830719842285420194483594555615036347663156213465238813242863030223437518250160123445573017243266537175425391846630039313242489752004560902794199059300293141073308370651452291836844760382014338423039110024735941539782905899195117032949308998489995015070112419066189413257541945718004469690964760860200211239831182144517428426623306840720972359270769816909792793870221390416007775912783757125673586591538186756096057602528695454067372637285368524375987526898262245085738932965669198030183810518308422834281455247344813657803242137003632951519939495895928698392605799909580372181919277305929392420704182252315788046971477918956958224792919680035334219096904138513857951146027584271462301089582565138487497732430183413922396035240798127617349615989600552444211867960885549721747465364789653878407404242920983634244064212764347930065514697033807905416030035016647748866857564106695101046711897177549855191438068668889397374393480868159780807465089605816857322651416293237576456798547142767054231969737934652577740067832857678344983597012211676790105610654852514964777125645456407688131802117272983653273765907235941423752552060730264770000474952178644465084988997561954669073570533401537134748213436958630564312592804182012756015957491479021302002310145045147479072962814952699247765849115337696683799288736947821627351410028098420446898536167861907502731318186989768938262460969068993379386664865730704113770296196870722971300776885072332773632206875405091223411575855283952204668693576796660908015461631061509030555128713075503601804410818356763502433817591706583322798851477397850075587646183988759077915979838227825682602694873815051222113020801134446640924845709162450668986232590781396056797399933005498620443318618563662255716758752957161547995040722256243941384576305063323829555095309700013114442436337230528478420754636001972590980837532078303153970519739707328163199178966748275478160952805870380502930010565883230002998023710054259391920376693343349441314601146602515268612078897423562199715588542073082997478537993090636224346921496667831471383147064569282470079853584739788301921221515979147697762482834776546150429708151091481179887375182242925913642876211099434762092518149643348212712635025211036068363757236771307519769129422593704075233255044627167555027367748733159284219605004958794064843926598936411624106174952041187276365930583142703480607352930229511582171721759632099543011182770418945454972453952886866263434937837748776391663056523059967802348445884628205684765318882469312115946227648255986030077264740279564465751737823740711101324830569125897105620445377871002996353638532033442549128544838728417867177952948104605928463282719846417974247514157732559914025423788448903773901724518428596083386562230786869718013057388373533675557736363388616326849134814360028218375099590449185486261255737203571959758073801118750343632851568086712453179477339955027717871960496972885300183696829336620757692731013089588922639185860401755589511676527064416133256790584061694374501605826985392467413955328766750597771514872823821383426294829199038293413991704194668136727288717855970528180831583846206824719763198830104544424897436102323751265851821280021799722748174010928088969000833359876117144792412811442690706931840505826287554354697679243924824442985932449864223849581057077876755380968031456787137872289328283973675867400560706345768089604101527870414941187851785102761082591517369189037979791472618491361545743105589882896050645191948739764823478267255344056564606099559667829525476367031496405942813295258764804190838407839116215302771004064426442843651879340172209035068315006111344902738395880422022251088096023355431490837404445206771493306060135445188825527099464814026581193600505363747091852463531691701775186097901806129847841239525192915158384967647158127436722765853869867840047719824350456373415761933453810884624254286285375396931651550935929098766279286163295409344310018906220839274005017792327462895058418868092424214072511350124399813194087297971445461847646283402576841049972416121717125154729928383006637783890905464685487407880263385506270907875975217775848939747245054875790193757028650374014260721859531937063576685765291589533791495624884844113950943334922960130810124070304409736708057475639932812680477732249478157124252005702569434810725279967110385183351654483480746006061578712746298819700452111005999089991790540820687338011395367106825636172083023894533175416863194023076162839534107938953306093748474811361411883629927274361068661969904596606432668776230603931914185292912153750583659174245369239757065041794514337212763191001628052361841379336675455305016202878004433545900487740914283426723756997379728360357512772227398400794767800807594148587419084563976698703714715248726903182094522287440251046206719045871295939894873127832900516734205380652238745510113235531384070731886064083012309872257807162128479436255548499615712939234245904619296354166977566956154931912188593226825639405814523449432667646546078994749971578648815079860751145118722012491098204911997525373263500893800926428916632039474798914104107335528545215620462022290544468707506218130732655332477265579440312027050685174728308300123763239047460757639218452380544346729487803329200956479645706101091224315781870447616107692602172618964234629728247563349491259919247043090651201625666299633685233384751371407557327763016670457130896366960414670679555514157545713870617555793978670258090682112075190132741997706264266517132315107971429831681149534336516697580672287272632419621965647037335261806335665305832705546806437612193361774725733914699549317043777770564981511773707722139567746871305979918501071631685405877886138172671991443796747002099010432123143660243322692435101049107813544129876510183202894882643602260333049484379801566831074668781484455233371201223719882596526751746108105318233951381958389821261607766738840152313194075090861088292871904974817517148485041372522246367159094044349662756632026058100055981137742140893630243746424674599198179405092883071837027219207502181903268073196811884334415308801895811254626469605140491516689440513036805715264266941100400927629704939580924680572718340864911159325129010135391898145303063641691741636176877237993106365876193872615200231241849989159154825078193341877938661486663308155203630595376844959189449676085746884111664942074836185988450135091747124837466419289313439734433631301575955081505724686216086581402422810525098426871326449307890423593609377561553202553971436570596418833110079035394006659951718028368373203970086135996539808670431275706384691993077409697411068674216640416580416367356019605321847179013462026497647326799135748744931518217853876454502479395178645477421594475006642712846424272824552085121703525042827156804358256920243743387488765547225202338035489907445675647211591500228069242620489117569345403400140116266199758013985543663686723706273747315051031356066248507105844781759666321409521211656504134331933127019951518394258416604791792533244064778384160362558927239813216681116805737895784248535625376146318122554010014613721819653679188261635916396551389143279324421186939716889591158094236329124542497791130156114707810661152722688748072608298481530364673966692797456011068492345265745682633889958342303266916141709447440150602029687315690468430416646700292426755586905654633760233130872268854044572364801509565565516958788844115961894949868039673872733706230067228929433802974749725913765406883709944055068017729611701094200865236674737752862218472699794752652145585725455542414392088401847040132859706739224569773955379131676475551853210359660134371844349000629081359869855175862229502117086446596134455707786600815612802822032906515359488535688258446828220276010860418251576282814545372452924301310273597029199527136745536961372531082218833620454609479040030214198480763789453820718686374635527324819184081514436924071466213846871338250724910103373346997534062941263128254094890043396803963732535286149077111671381113316987746077919579732015121810876690509962031362370035109694904741504355972104598379309972396374548956684385370016378587113287065997468703749875083952205692484589824864299582338249589437890717374294676924015816442987327711577801702363756434597496446608781998773296831235336635421911563191817760764714473197871130354887112362637036025195522944248622218769471114338985252445992897509630463892176834649235014357150023396647437303794685614299078766325742108332651690119202706766471902831707009924543103276620038497245987013566022098394296909124265194099449912192497146223130982843853033678618733739419865532693628903200996337929051550460049604847051392774424179420899517814838519844994396224321158732605084860064949561498415421418254990095585902790196992857325014262579043897777831196517738358724462863175098328326554391766967814363295991191132473000733557529488918034570117262098808319035274986849021365939122769354023764954933103325733281070190211999509528777224057046041294299876541014440017377234342324323006818933488167273809695235369994001305007432367675056153096800265343049110449427017895357776549384032284530270952805157568391089054080906404528946091820906259505331874061580060354251210896922391224434377170291903056184139664007254426918911252825338721831834891464558648507405826286333419028138278664806847680761841035831147568403025206121800914914139920165924706314154118734298157322712694360202067530363994119914097769289280716635835553682192950103916304072660044110104474178220113375279560084347772308070225400977310944715627721994970001244906445647073382493551208443652021838875302794128513919794980045302884419840409479396994121401261376810889683987283589347643294640557237467376381377694727998967492776836706584327542637158700277028390730972383913441543856048128764973119700194086052846436888537430668165559633045543359161075132994308645615435354079534005765055801918252822250189997216535132700396640467864866153361494459709005165025723251571089274390319715717030453614778144750238405145470136395941093396331146266566125781363409580985520306216750550856541902480822403529539934894666125482252050581634681140732241378347308867461101301823784205172053914798845797909791380005541489397076677109709660153481862948962829283046303272807543789159591447636337544258381856249481185179709845854891699210942794632084382729180591529410844099290671162205420793706390567069430816727499737099288382575623640634702238466910819075630921937269189811407999287369693204370037354402098370007390264762419092555777363927110226701326124691390972084682164670084477725365342906670968572778061896424226924369550164517482244022871170047961979126862541589271001894702341701253528743890109203938921991751928781828966227384133486398740525830093013181941983332639627788099754393397363755384445650273424854809383602335918543313931711156066792042815811873003471104500476331851613076260438652958952395089924395167417291126474380574972175207372248691284766676126578457452566956187550613682192102778992340730566189298852838514949848828705490644431718585982859561460860259723456051766726385315922695401956946915995343995791937072131867543154699133908974125573746402057507566434553467097734683989890603948322432819455857363948035646084267276889715256952918362909416301596078108598341378251044577041142378032496714555874395338008265168728102411257632274876222330861217592131395590674559603329320553780436549826138648887411090231547641413479997499268246396148905643475254486772462747080524425374068994811498390239858518009474082561798883594742032847750321892950757175957474564147576682271487857138477059597270857803971676233100154386331202923710646475286762138595239157900858266162441589177836493029401467127375285302511263025952246793762014185874079036549721223949249689664782147466488768511443885058639026321688188913317281739163289954231287011365625971926776695834713100922258440524375112016873000872503954760058863989266741642187179893637664348112353353191788482774426693166559380548581145211826502744571621060241114483117879891451116202535549441197486835530654182256009685454756403349430102227923844278570644854854066094066076787097235015916166158377661331133066527449319567868702466205631907501058893688276890959563837920956018586754203928884660060456492480358386655705223289235561194924577377555966341153940347908577428169642868630220901056430420877577424368887537551039117731106373425025757747473703547765659717789566816846884723119534384927959763096712487892538176906675399378343898966608830148474662734742287474431935067232670603711865428477036548591393582230845871930343354310220836026743513948793556457585665493164244640916377092561759222917492962385510842846897873906359564947370242549294028648262314148687532344709443670989700043072632499826521487920080619232617428840916242056009906785574756050519556562503843231152756553722617545220219892789179811639875270927195116159709330021863339102867800596637558141767262799854566542202659978915634653808721048734112383913208031419435143796010562268022356164611193334155801773180315296203940177983681394655831288764082011780151106465718270140830167587526782410929992822245996056849805286451685410780019996396367465427211261145403691311582271035444693018265635848689342932464533387234665300886525890065470741196801110112720277433661046460913914513197953707415442390824307068361633535949185219248266715596960768695139843475074483643970630988238536962831373604239439555526651398635378705068570024808760027569209131930519549339466353658246891743174837003106104742612402472490604265729953724383199707880298466828243901936501936382999506968738937260897416885341048444093306460400595678085980484671850066229670867990164713239301382979812542448475799630006125293546325967378923053949016391402340022542286213283413274329246688672502798533322355173937158219457288877708724025601547087372974267952925350970331968118376499699760852418296175646443220155148791713455540065435547588066821857323544746907453913675271257052386589048270904232997600374365029653827094570617628470461634254842699083667022306713664041751759679208514563483893760145090662600857016106892255060739169984715670082005501392756095475412561620288073564691283330199683889936043828856851018576453556044491426274201628807443679996235130397715621317440023372307623458884254101005579912355595350155472755640124190331505747478413834418690924064812313756535619471191780925687281027119627586752913064873641164385242955620517453863577226088483427581729664083123200748033313590913178628278827529440161302057242960551412499074018811241634872851764865737668658494025116467134110979755964829149946537434497349615497582432018299153218062075419111659234296035546128740309292423395961891201149901708084021961168185658585617745343597784976435026861189446094786114427626435901226001093913243194168678167232984557461997025578351659222602753417860025256100522532270036620774904777634117796897939040373207409730844114036500487641138599717348887542924186356650603958353949939818143411874531821268432375109432985028783091766850582765599355316297854093759726973438682541546791438398199357925500967358531272874840750441772319190083746402571477189086989808142076650346090556459378038070099177921962262718774938860531175395820846439929456216557229425940188828731099151147435913130797319520264108687239693097336051348702010827556583103503535813902389500283037527253299805362869350254193062057523222445232155860568232227804546383301533243458933860797745959419422240632810459707742545074717332943341307254884436544274714699743167645481110653276358779047450102432274523053265240559584383172328147528078011251756126933296834546663530063889783396173346352311576935745549618594289115681392033356906009107096876716761617626817846594612729411055570942678481793380414523824094354951084325363664352080339473595212534260898144799683723272152619088663175220692278896786962212829271123353017592353130183535354313075705025092811247986192309727526817129297766526172352999722738702157223199665558469918480157255762838320320393056268499710887591542587854669274959369683989530330021043037364909642024167663366494049471008878023253412706924545120657516378405805945513162171756888308674851072095024806110681603169079290965185092836021830612711987533418561201673619326842723128555055744619811075674958877159389383487680995943215096962013035068272629980249299588127079352475665148429026049520902376175296620502050921669029485658043053953938231591348920955074878660540823453502852762431936784215655868145112970395360218024926612323027561932894533594592475263077095081440774960903040309024063465546937721343725130315872308310623667711273326549779511764772144098461119640924906308398432421430452936592431503584953747496791473218523812556177108831863170876229441272028573504426944011893511326830092110491443739081843919436026851914231303036724650452629629503547037637352334600583930612319334250984660452032132646616500465677303389636989001661997500677402245445099351031597835660862330259319546454285619176680793921386873005280399476518938234088144340193047137095111748782552609053000046961337151906675143099118064535859313422246990925697769630065506647774540009122726863657103484445092878182829460935323237294977457884555446030107873323090898034570621456310747460839532020320370835308707783787404076449745018139752074035218003957622976088352124696130541901794298069817827681380386745395077381190980775788352373496247420452271152845447364546922618099737629828751804145653657789893018255868021432288237743141319604930967396199860834455034834716847278342988015176456288519353626400922174546685192754890964173411950090179964571294114781455778397190459434782312146241578760802512920235685744106481643818548355351732491956066474354365448520256210506605759483267390174989615380320986182523379826093182584041319842007071637918143975907178497049935836395716100880619965787237074333492127873802611410644404145610797653799595579738583838096828894829369590701088882457919396372006504926235903907782381279934343353307312561527917590210820438557864107272059948548802724824878336549778328124322131959242353816524874851278975878958434944608537570017003393345584012960555370443467988526880498286645149200749870598074814139808422180818360592457149326980768846615554555031581156550839260971028791617362157611288037036772551323101922703421648928996985504735021896095561263780427845677368279670888446909420765210946733116424012813861012977983040992953290084129849921194275718759085067293495492207248568930998988083429152270419059008552608700872134244284679839083203871478675232867311485622252504661410178726204787803311351760549932589463472193663646396754497003918007719809798254875509984568078733133389408924891928677387170588799306135486393044890173294181021262735390911241103290139575004626149511111992965999573101978559840713802275853664353845943232715714192018503919302485169354231519204619216860601031053719690348580199040020697214160510463297166833011381587565459624666639233390147968030626685716453569564709294817154710012801918893499649929349206473316263608368780427941804679015672440702452058948829624996123153969247060280630002154822668100267500675475379152794028637629855251677631393804835844915706473614645429430716918773220875047623971289423421303906069023321305837775124565547817917668533319167101512274936225816040973732138584422477652982832210935225671540841843301354969031723749262931604833747699569134125907374354073371768869942035955352784548658328846030436632413342729128698323749412004734741580260663418482079712149561961003087568093929002529474197587071901122582167225576220322204096247546905951618951247411514209860718457425670768855574053732362594283884816458324983069623430134794699932589499442937173866887501172481290941499373081642892611337043855445930864462164608826671313143183296465126290408337812574451851665257196824949409514631843502304727653888797895831648884060269360257451250555590758783406709923633831698613059507954776748748822722966053041034748131967067793431305606082723991431910760044260612705169668043119460128880171445878416309771866142327670555262895687135281927599285203016791187881591610338500483406964245667374852591971949814158485389954440336574710380774955294407523483543705996516056773811318307541886022928866145480182805971625514001851379069889440778356993083895250368500083315108126085534674505432750374540725464290083708378102800629945717693917173139348128667132877995484723875495717186946543281399512338855585215366063756388964582566321976360873504285355187824193350593780044677683403683346034610765771713023209186509309133145763258431028180194325610953882579017961632694921538337748393204546043953707323305029454889580160832753256973068976201047173181262083781406500432320690279273807815656194020816556276160074720754184899815111273716031686482687983782176661242432037978939441298873705589765400797939638972316020870790314178129758438338509926421723334794123101358827188750592090452632100055335697172941217864461637006520063987550373127429305025949397378380311624563005016998940319251572072393970367238946776156692717143749787889196850926787051756835132913644399718134031413066192285592200766812001352557859250983585554991484931091206320597585032192627739294284889846759505065732217378567889676360917575240391494705490034831968189737410410161688472516745417015023518764753664789424597791425125247302722461061145311952861336889679114904135312462093597798273142306947539333873850548629625889071369649867548200183940250930376149136534254008529449240599252313087320980365865710153575218163691139229120281349413577555752882735345879266718835437360912283275674893088342518370272846553849242223397510583901039993485885136618169979969605669724706856575386321757405251927174239362372405761502759584967667058835184815649455729247813803108460388497705137029774012579348672369797343385540926064655152219166272824705608609414135124276612089549952440073778814932264300343971379412657843689063747723329349958820145938201865487540171995485106881068289759766513964414287022008133090244383113171028670810422615219307059356591523293269898998285655534787102735736831865032707115526926845666998672803433690528236267153477788876167337209584383958515638010176317173546877147860490326727937830367871493924580631124128422406758435171289868906794169782276590468368690013611287237060837621985272702879351171939149363632690730389000280194609799957399530320264017566855881010806249188135303115842216774097296550765279895119488533244953756517161252361563913327296414716753477637274421076234474192288985483584577414118787439788571473022303411074563240192287987803746417083359486438381938448074871214597693717825517851764456111368209695080566248141588535412906029311603827005795311687833961553438109435184976709613017300919224421836248307480942253228755513905682015997305703799615231721574316650305172257721017679304779635128598247461842125802154176205718454090036741203017317979284801805924312834164883592146026330674725498752871681446360429269430746292569763839822712338083435377384059520589596359941209583779698528172650975075073635638819352566316804892664531054994698646250752860244941036217399713951375761316061676804476010592072638565793257326762630216029768450541776726730056472299432277339525639262709053509644271554722166574516811712385114542916419493215413472160230813477653939040937796682613549649673233673174143929884540541921224378586892489229139574608398426803789881061323613747986662208072378542240668556751609088422001980091868667028916474783863711816180823753207720808117765857664638012428062693924416947759561866774006552082032581560539657450157565773044899694124663534968026368194175040273660610637394575690068685825335998628731186643032497190136157922044161033639169972862236221515986102920807079742147284000436387825525116223587359323778875182439860858539760945391378623003920098556467968994633981359376570874375987951992734953517567183103186427949374605634949856322036888285952744391264252403857013386007920324817672863419437578490616966083284542685954064296736791876091666208010904915319714736252813458638546598041562673361699659466285267299396451313670679855529472305368363731598593153378382613178669266130942764732177181602102348112108530566195540608780606624637222245994034107053502220721826259635897631627225864922181013087494196004097399760843358576188642358097102948124182128465771265535954296418010250327078679187741650023397725496369756865541802007307546413254228366060270994582720598257548142517532508985140763955068561190632796555852957281944030011114961539602743325220658307454541638621473128054262950874665006337613071595186301616277431379790122119908542582741441971043101758755547711809926730700585420884143074992252231622902800210162436750444995228620253754384823784568614997897488035619302046412622231718658726828251321539212201741922718235726106691532875279485053532920758414536001614994223089323355158563252307198896731530160298751247934650044499578975346248104737748476342496544318319221741681214252963258828975093693117289903470164681480048655004232263599696594319929719727391713251149665189713216621966589880578612037027751568177535041618095778167897904383262501862679807277746559834202366101919569407495206377562153058071696947917916269818540219483321281143440924559328477246419156762504570772160148979506653033605055271121367834132142042577040914579054705231116779670482852401015923627515533002508026508567597498699731090822746264632230796769495969353325793002194383613863706211323243166151003598005341579974026752856496640758604894838157566457160801799487707598529690014914191623529445270093637081590659692690236821971244820655479764017312256676064165901124180132491536746881597888543275489363685907722322928952708489565242975889348275497667463531864514584844140915319179213970067978305384775129449077174110166360385195099848989601615330076458838033318130273526761462694450864226151038054750158225893607997659442918925713421665846536748769321763324840777117663772595545038259205181678292685195589418664100546413973849554536010243601279452164056609867797925286689951093973533016796488100125323382004437444542481605697025946713772210373681675188814780947399235062156235598590103460611279006478153081848696471921107979954541753846003838309812287795246061476599042734669970955947918959947778966419447116287139566250346252577232978038076447060550736265859434761163376385585822839166488511127831578744339517699610430397873527423437583606740882829004486782535590540780750466430234892447971746032433526358837970664328164696939881133286955918895282757110596670212476110798596687415353369119163871039244066426684444195940334240560108229493261126351709542515485023883185616494828417952329977045617897738039271230968074341642091091710175329713891141489224234765818131258928399280816593841907850308581178593221510835287279703064385204199150674794541954445849325978224281193080717637356690937139457145665251509517839957824210346710792854839447627187865003315613489329426495338194400618399829175076873236047439088936889877656953318604552271590093692621465339359121686845335997781674336975069609672955139682222076586793415422664597336820845764622489083941082106962117430558576441790720062031830111211084750837207247993082113630743665236326664411286291376455625807505575120320231802279203299114437378363499737625500939676055761390769022992947785229172217557795226579777973366870706256194360127965126776858700228920487901258965520543394515621859830996998871327230923401823652154652411177487014101130801160933677365286718730738357744238481982679272478109035387291476584214194312323179219470983593708368067073449925202245249766555386264508923369448764224147069515436960305956962773421336813355004157582705757099634541050802859590643888167427806479951732949734322664381318783476281050912854689217503421958246450226237501812100311725493736862174895781449387264901621815845243592133187954124701558517242422163804078923932368365659353500099914175892301725771640276796554860794165036348149108503729133585860812731174104463183415297376023701811658066034169344546335551490107938960869931477179719098779434142692235545745133930215120235332293447740426930956790816343863470308556719225202855253458596382377529512754001380341707843154269258274006565638137315998149712591204568448311472812603839339394839791556609550998071112200596294606984085776291747136335192780015395764219550110843756351333905112302209278272352639599549891484163514573524501845480276862160201581839465571385624943029743013241972596868408772461433822301286308565659360537037673451033257249013956352364150534457823556584919064642771598961767557290511070006421559046227681885295546267736294168816649490413052561197614912766916220221284880799986993608771172827639009144368778574329705610875078294806890993480181197901101539275668113453157868826410319073915316765816672027163301954102222720740097194672330262237948246638246749308597853591608606364535365468737710244170714458311440667434136530339626867721464272702868843902265444095159364934825264419649688287415808100032607672794029423289627954622482969715536401862109982065194024258663779522334057074024682535599902519604583859896793586107709397347426473381052016958812906061481067230382178658116236356024299584916058126187848947156276142880359230820097955716446205535737942377002375320492294619149023646610088897814600711686579363652778274688434301958902681796019198045692441330413179387092887937046123814710451240137587685427971059848455162850844517264868705200679014590917913356171107244240120611364687937671028784026691828998636694589352029715196861626711989155477735229432753977628662527811490247956553021949429784062946462933224539907431588886659325978307494682929044607848804853492578178826927908999517792305021347071678538100133004540034894593957781497121065964413281641279812371324078647640440034038512942936834139926989072077099367951386553006174586622215840337337919930452169993759755231711229226455999258808521661237198864454788568086575639881141163962757198161945047096381042072156975012977707455253571363961516673527935185670620984516469805608780424347808615251528339396123022519363938214453228989885298898824913541477847803783678737259805667589247112814379070405797512905623378893225803597534283154437122979828410497447854638354990259475053822901358619731321117714559456959390894148822150990188011800394229916302491072748268763201815051467012040451005354295546118813296351153315051659554544401371550002327065153331648160106528042954414604568966687322596554996247910161111559519435147313648533484944532295371952097929014205071907086443125745626794616734592896869158454993912760252614315071267654860621131185978322014553920350094317088296427589610014770710324996427082774078695327460665865398531285380099747643154929716557109717201086914982137104016600398680188783929995714796675032691870587023873962374851523695691274839302637427198949908484453615848386606808609239339984219060197833574546176776894811202984573187553691762255022274605506516461734347200124709941796408657534567798259347234889700918860929659548297827239297703099630086468165134348054354643352447029032330599461615513774081161864544324764836084313362488528817326650642561276615188002991271375636675604487491922512051997277142685061117212152653544772086757369234453490935639680680220550690794577088289111095990346279037105440850400953987470734060960364712892318524683959524968140802145310854186000902515310019073125433348347044527318443379448691852576442287199738082070386045414408679368403511054745500936703917467747787684689468576996959508969308127205905168265659187458691844571450697226552825913854445691403906394484446451162972113546354565466597077474877649281025093742343421894784045639771885986625683499065303108038619506011313907253319179106269694514485414237824430747819908903483034655297362132560543858336574997723604464572751230268363173821061187573243886610052914135980614066227560390635716338719914632470802891334176967274464937294891536582213855956865289114252758660961834763654587747674601458274069513869259807406066616141925695476827402533201577658843861358084624212344015548401582431169168303086224674263893287906988508532139895156572024295716894865463566756219149831855703446168814254770264434617063570969384643098099160454166028645808012785246689465424831136168260222729095367486497665786674544178062150365205941150539776294349800598879640261863400608359448680939870842332464997450124963437089219108485316406733784800012277484568531943253819951668060196486144493540501063280643470414678534887027064308483026228040957334311947290449808826277931082352180256013370397617332884803546983005085340087711589436606655171634115365285882399345352683015624941209797395849524108496051133286591011154309266363578080783355690374444943178189248489941625428732176407320736527869848257213029532868395533140494833313680527014550071078799063021357576349642715003760634614763269666125504949942709215386254590881206927435708093938510014363353551237336626971604482708480108558699605091677950540209999413251176910584211328813027346898009291071726421617767195726545303053573555534541941743045512733499037978604282960731199103167302093609778447751562738709009197139854821868274782349053118300542721321624950129876464977171407260246097123559319844539513163955294778926212925416854036280470775696805897218273825532178380937133377305036868831145151815800266207505866037624081625778210353711261128962986483985903041960023149572198992274610893220468406921173103313549216133289884937796332018265641929886339498441440103237057274620993541136883127128687014353016840749076074034336566520239903576826050513908380542467904613947379644198182056737604212218544636435470290737641708904741699846035631536098783539902816009208355650598346699671685081513735936128837938343471361028231730872472612359644608605628454364101543710725580875522897206369356249183060957525219469625844289334446643489545953862711337920389390251983110333156482682453495192348000354939957394176363372905194328251897272993031981789720191318244423086296079142297348531611199253147725598237768969492468824629904756943240086290918686689675184070689098256130876561579859513319201931297428342647989630617838226675998363956887117143402837099789815467362301867248725372014626596417769913921367005239981941187425882779218133957940800372868142631289994451085578055783788364571977177571899051361787298119576970986938278330122555065984903503255052468014842192162911057329302915965024505512400323856191372751172079565386781900442899798107761163097188269092773746050824900589682895194750325719484203927281693755331766784576467211745147812688743857224763576605967056021779190477702502923629264504224062230068008674823009514127607963963831604687898885498626552572670573077269167430400695562284940417040461717562623193760234459141270430991332677765064048233815170116166238193904301243812595263192450458411923170026882128293923096045134108914096351629300626325160901151855849354682182081334135093947419089357971667494757432995446124948478387581924573842382676076957472594711055317869097870590495199407236880058765210334659782639824933947045571447000156895188858431680078208884307540804823149877449900615366946948156926317703178205179133808700065806833855779577248430900227529504118014890543149639590887686044208350347881049500364331530393945092301782292465308028150824840877447302740508506890456939077465392907026140033344530637887607884378662734918818953722792999002049231679298740567297043958453470469366324717310649664455432021157514616991360992224884336531560716379429016790362635124433143054772859429249381209949311108549406850072335775778598050937342269203696521774787427249384393647026006985700553057852299429913393903860662586003327996554038758023415067768307556798929671377996417972185798912733590107514263612563653710654353580268567943270540492035762789196845915976241733369745082130046301144770222620988754283972632452652829744969147042239221678077737642178891698534117401708437481879472782402729385301162420413990796909487833120339679474435981138124689488111069270565301777514699426328639121051112209746715688952776749358782950770674843000687499944615966366666688927514709633676664335158064615868819582848869951989184562058764530084648785509296187353389027103080849376715931010131925888370865127450794764750196542609033410329569495003610370868477875155500908449278038007315889551249830894133821361970186498760065204020597016629689287901994382023955898497609691836342019887756560513723306499041099248955114487476146436539534303490845392410880308761446759489157771699776637233078664365200408578090357854965343905827810997832191097796643355127113418408883944927166954826084397140970970247667591063557609826412698983673560671364822304335701026447194711311341587844416641396134762509307106032535162742005204858484745845905525551357830032373254677669540680544105933310367035471825604003907494960960759827078289834780784368942776137017893912350152873843687368321777093367040895244740802293464042896295201177730996552930813479133170260587254719451236298034567126531543121261795296959150968370159399998622018935359939052678416164243580375930114855892405926970746420584252481600919951777733437103138772176413081140352033267682680127769396414345215870766751128518733797658425076402466517491777583095813602106025975559293983704933117049385194272343621402823774323071660996733511328654982971907092425708746344697574282353288991689099390358116534416368947881597678308845844106563540664881863702200668567009057900606814806779603210953608080254582603353238060127712549712749006454740723697983626316715372450081789925882931087986819364639361649988110325664471698200645223574325952596178025375601646312332697505132774683911262020015368723024791636899121713035724037992627507851841375892778629074173960112968825224686737651047208417950549385038063351645829683866208476788753977212487122662858429344714196256590385373773140105573322083443836069721456107780011898192488916948877004351294884828375415417338523158876259448050202424068719117743676762310018081223272401989262210520012012986868289165765199874232473212711923971862924748711648805648692903513788788288646501705005223583601292339219715780802249589117546697732604087961076608273494629676091424862824391917378455675797432401044299250441907969421368619803704432486248579622245580655665622034411130004058940219634271142371803670200056439258860083356303395070593609641585895949979483055321251738753822692251307845036148588882585567074001708929109530194999887427530100225908140701880715584866090508008831603771292919652357859191479100383607064869725872347665516958065982314081942727493128326118046512630427270820576145454963331807058252725082385593774508330273897349780642269950145447719929511696091920517354901188076505546979506083414376380859819406032601505145284915157350538607560677355918306790864319584785891437052626158605186835595951143390583327671302967533050509948625278940591874313179511901570612804194887438432999255316157435333953746335950255742672468310459469063812985616911959420268394387287852187313396558620843330978751584299530735722137346057054944397240413659611461868695589146968738205845002364155535367233284643569905075005551689822696316867193733137104429619013792211879641441855067915482414426726301713178391699609876077523582416121856399426419451371168541018094511502605851677273649424289770433092546668055930081410038695997464392203365873675129469318688144734468058029158376617853714905345676499255937152745829888802714175020127845376152891278112420693577323144455176143231722577643002063867221100632617721128769242440522664057040989917062438786111616319846303128970729280158606458638876959185097237277972501561850069775095817034002089658690579334434345019994627288627580930081350104702294586155513338622917522308517316235769179177041218065233591318173036417569856257402603275299176873191420662901634653844522458607939747483457633277604556256961745224302089535547762163237761072275297178073493198611084473105710347680088865526255488321067819464658203974027526251844343804135466672652598938806980433396642370260241964924332132218889192048891051019001962727289621076302049059015970039127902624898360180502158077030286166648245575207900781156991231054866455589790334058262235643060208580384565178975396754328269800839516180962724487265886631061437165634306852882160742980783367111983049829325519257126984510535614325581602435358159236969158390196625927215821433944916830036354852445098608238750171667774239002755973961689939783669433678897104404641909523405249827278187508889147578813237147217999802232929441988120737295052731155939509928445934015774107367982815099658004681400375914279341462831090124542991708903489627567982530381104766375717208443268964090190864985737867640609819055354924453628322371791512316580583839999571842455501545985838060304723050799199991164385754580252795417586867858533396579182708433720224605467508425079272899927226533377196867786188176073888331141023036326767798539354857322837472555930471202703125552837412036287324999592051362149314668087624862470441705772992929635758690749100525474436093196659933059257182036954262879361073878202219316774990665967464124689460557544815503603661154340147612070754102849801359929914273055187166090294329821617411665887771115317692028620407308491334869073273075719202324461843852621642621743526174804118648781608088297847442806306675698461956649674804695798031046591087299628508070837669794388592870947850882427076456301125195462142478544547300774318079462560935426750348821460516234054540334672751339678247922990565508642325350041775275960670190025047847196099429546516039294351035566274643235321233431428869809856279384251679925747927617368922472161100132088258147485892455607837732174297506582779003230556793431561074930351362497274412334879454734978165536445108807957605384451450010881333261017526569201326492747015180113086557893145734112677453325653824520817592731533942255241656863295798507828580185080390325768200379260945153645444982289258925366443322732119498745656701351931803514952580398733469766784699158157777972432005136029938640163529407799400722105521842673190256573758095917401457633691023850938840513302071823287981911683482853400083146240738688706774032322057388994525208227134752438926494742297394784174106220006207440336392677069957567483022671320128875252316025431096762360200209782072830540066176873865119962964077214948936990416018171045100395735587997322604718969225053891053885715228909623787737373442701477504209319211375727895056287247443795753901050618989514337650971461807654783451343704156600680181599362362619218835138156083737302582549135932778629926654218557635153744311310383920655913238970849288007731389463423278802731305983559109472596411197604412062383075282433038651233427869355617317727016958049680630065230075304324083846958298600327618498027858449937961359036510525113318841975340649476200187685524409287550735126100308199332909197772174108877566142242157228422250873747879006298827574836446091895427897562731120321519128625860243548733752761128349680502997037034334101643238357131443747119115116255057209446160889489466907060117037334491148765462314727597971580365056823274851528920417282493225056168428157155574531294775751356358210347029169405137699851349722894225631434203093255921487694814912880565222792285013189235397149485385917949227195507555312748512403335814364761125076871162799766984147054359241261484790160757369795525571648627060991557057598456906166389351613316883945229534241184057083733529538104967664247793398173457137299311773965825720072087479010780320346474023391344067092013692286442798845741278734898444320653925329004566477022451716754631868949053739500669043812708981802409523794264249260656885123159070222794107379373024041405063047877015817827881269137312857098733321068417312507669565632726785710881897239327200422823680313692184970577656090470840949228368100110962842836398625721092483421741299734100295522099482185669456937271773741865860974498464832039472203812913234632763017305666424487580793794366464802666380773321808713007482605941674649653988669521983328970891241342077634689943445038847262170489467200918523095815760029998333067155173559674788239234934578000079340014703144397477989254445690903405545096884711363510683388172282765367983923929534392841247814484347404749581814177322073365468937812033532976559458534928863522466887241229842695594637644074813857285685683092546219838363276262989951097031884534919865238158572964588757962991126472601834607872202636929631309812848382637395874847827478684935523034135068764272676392002573912140326877765083761410452674448531994665272046321615365003219600074916913176793789973174713741821196375387976088219230393847709055811729182326170747747826006715800233149642410334056711976645189930330239866716182152219617712261056455768076196927618491508997477035577267050650937761836499010635205361618143861688910645583286216802131167469760639876767882464584421080654543644029040873222914447687757500770009756882014205382952901765287757035024223861033195608436477322566033062078445708596569379418455071488206051544639410021840309131876854371420419838760339135225721018213864097890929344447750283847771674059072037216521878821842766394997777016516283876001673531591892968078355024781419006328183499610000761083648850972829715407631263604174435649435553937890943905195534105200608318840884499179463208408726456230539602560002669376365203464698497160287589503526290947741259431612964490990749453863984362101903273198700879945458177139386639582324588608556943390866819230102131701064118331186487415688995398687870605417767951333942187919253825236062507152182035844013457405877468553808219393456795981753070190486868094155706976364213603425022784509595256433862601127550739806837556615990823659526686927040569342117458035545722216925222395107807592982786373729719964672569435150352811336465707727428078813927983719861963343521194149075743030079608261361967362651301539650516662128644761160105077582693612848628613006423260240637429745948458698029112902353864411569215710490850624367124841936902235665570470803814386601464737752814162277484997845058247469023166927697140590148701078953055381366698080384488177778640549332974963340109371063072050486782159926682207964146670480085804874108995614951493445204233875720852430069658749874800734445888211094876017469858483336622066764262475345898989879026402791571981105763283222010022974691392350760948467267568836005195761378601187384202187946694500990686695954122970038375537457107580110557472372953020717985712516487472118988839501395609929872781062104461937711600266475679981963726073962859490548373690941205015448064655879748315120730061394291032133758011231709918485235148667274499844111715935715617483377532561458745987640050710238706056075692888965425313456904807054295873344590035665911672015542618708133884094222742309099589276495368484878033528774292348072871529645934213679438324985842019481093450485655290042839011582630394264330548488691195221271294032187239727722690620653317561116080252977056718520262687173392159314223521063720602103599768394490608292519074145808618956910871779364179802879898669012027308828226284059066045195810891343726277659888374988032405345354774307315401825180693741660705706395900089411258049196656326298990274780296129402415616546865583705403679650580976455014719684505281064372438725080780545375445595290883795227753649720700858324480739345563260059287750689983192479438829459513262776634303140924779774115386325171158038571511862841773827832081448109158373793555468858802010614435131497817640034142263493786072750641117315351360308823981945607293274566942132719952642979468808346932141241680713050014243858739351768534407060967817699431639190442047079936957676738387169109787192158279578265009916320400707865444427843441326260461858175064339696873844586972279140406898252705561587761124596356363852601676946321680364900165739070735711258538975371981812979677054286853893887425633623442585924772020367173627259972512440111520983564427556842142899425531038433843593893113393893335163595523632053578241866455392679690332537090820882368933313863441611671409839415891293007728417814744785730460579013795299809841494691747302803361258552727625596734863683067551374184521770548197774138278772705539027833294287039677073234073153117072551270932573388330967978874907546904372558885462499946634616257068118698107088620679511973468023236355792673097374178246152919629487922129823906255531096813105145453352720214071123602191218911341685913797168010667284201073428802769187569895681805821991398285184924318744837043278842810850915982414316405100982821698730551273137316475556513814710454662563624144229925694129162469427763223875392807783779179083676519596923836450511808825324265328377853054257661183281191745584794727453275584925696912763546344279974844091671373315704741555355338503383136534956528550897162403553254462288864139186829121918703371358039460943285886163910028640570484149485717109314658879484121301427190268936182719828127065682478074368590402434954059023621338507795460705307068951986457135861725987469662653337419748672419674706303139880195737875322544452428011785470223120217661889949372656423759483646928804431503991686038264507763548953044642603086784570214429594205692139221481220822808928815056033636538045630952102385553126479072452153683349132594770503716773528649233147223073131632716865219472085805577092713835715753874334236452509946415871892967159732189329012384099202476277702164917071772915585800294862998008769154968876376669210164637881119080283369719979201118351762770721738400946546795509889932336760632254210639688101102410948817428448436661946911526008982545922886595265108837231223145442012083153356780172984346937948441476411689216642174426215781386380623323662841766079971123053384130070163247643073906554657622703023835601846993536209989000568203886838795502321869423217125640145102751172135871238247463042783343662615404220060900556643412212025399439233171500249645819578415054699026711766434717580446779812186529780231756098337112671896965483231957171505452479219929766152119729997228264580610397208065026734771693265673187818342562700497246429878114872885912731293590405406917594061866081434146285428689766818915825983540668492372117976054778568384679027683908720753453302648996885152155827134707223319272821551216359579779266925298886266295439786930436509782931092707312909475568484823629492494580184612772711351411688162713043045125650630177120210512710641781338139798591305336929000839347370830366071802273831130965322835539464455957825713431105176339040440146766376284757263952562109482339446591824959731935497553616446414366990240255660661220687742261661146548565338194959269037871962296800404880735784326897251029825655753124409790783609909708440534946681751070256989501157464143388340169302637106903971140936492174992702053780021308236156939474505088180142866192895574285985464856084134265632577529334264242591005754152490323011329352605833193027804874669959359574076684667405996299075403081142076238409327138250537161608313225458191514687791180506119293657110878815209293113311410979468138245918559766209679501271165114132355517224617088335306131263401528113466546016519692846003318033425770199982442444163673956641257281472933359465221862418802283015954142687169969164290779132326351675587702499644092462575461039769583064224837055157850042116293248659974369619157619604518693741770592881072478354078876345313115604308551353341983922776882353392885682455918775672465940251830163128694086475177227881940107885818135392757722627389102493398508752223423631029986604827485543898283453506200775854401577604013830638074718874912154625710030086702689446245679011176836887531368328712933851999628890068890524472163907593693630138781785123688046214230733109996656479297726489221201184440307912539940464027384574340359759922541355682846213779149015648619287873656803868852951477295198460464528216854430343386206984666428978153903104497758701992296967604760906387536375381994971129480250092232326836004334690074879487819105795818843185173199293884646107820008039544745909324881372328317196481100633030527263142479989912254707691667142645497771578677913728736691405904629147134326209780078673337536121320656054067610736202938795993819282375085218458618300616311786163401430951479853098613409693399330926133745615392373452617232212293551809648048161975329853456271215136697966075422919783313351083366682831254022732047295155131358180920260201701977175713141506115680113517249990210250031890740942103595379619540133095317057795801038217197575124846996923630220087141330285118984359827832128527107252346671480823720302765111661697679427336779681859885234199174109061543865290089217975627114176144661066157976293022385423297975106104430930566524887802743806249334463416135924128525733514518141916905737380525731930508405949505455415445615777043428418863199863328853183575895397629195036668602998687248348215015688792978469211200812422648731118938283904313632408127310637264897430039966176105331126270382628812187552780260505405701842065293413115190661444408629371119856022347732308307964362007531111936067456040728150296880800255477913388939447695772071063627229482594237871618423868233378626093174358767678259898230597929356354454342455145935301905186222207523853506320322690751695116692937855297748229256537052073977742052106262650852357668266226107344578286397155839604869876116864954887456285509478033504856879534952418989652584825207401697467862115988004201370307870687613837771388473360050053836237576744682840085223479348137186495114685857037177082286450039998254201789650542264328049349832775866459228282014386761268752256130112684231313067019103820849419424729328492206015985817768737567068525671110060911443250979525696309435659138648777657411534814781236984380119788849351997503385839256780318706731744243297152666047667842142089637303888704278896871121866095995632227654939396336980850079469579614449257102784047196698894061752366309526911768397529465207123239004916779359286551143411447023642335345161158257548601465787973923802844313839601235745371208186978430992243405862144798100513573622154366808214436265293540385880958695651225580710807936186018082109503092735146516244415637986290750883690416442495904066030453461260359927749122390254842859673988001417050324873546274370525963210544073826427797844825887570146042236113957918179492328115413703676815884848614361651138904781459034001869956709118282725357092034860907712739308559569784906775866116404702962444235794938307509791689194167851107794037652069509634730849615735181409034216868312733378271508182902933317215842325436394131758015013980657403927798278572305139802128549219864242835827457529194797489100108746335010475088962146591009989208098352130507605442576993705403081263671615531073526239909965883213374398449721919671824826363292438213520297655249519447118254490157802161181302677826846547823507467047219298303962364999294010754532341454662539655364354677114099201565399634306719289768490007882341046370046678164553252982729128813780416941895441412580749673536719735428011168245556994500797756157778962583559377762969323996501316478378920948441062496256608735260794431765166532368713441512254308190854497922673380243390361080843272532588720175768630996728795805723302836627740313292961944101277504940669166084808427813302998535193228538475664023421766623246549681293531713029643693936492891164902895964069721899832929147189426335801248844941134897984913558852465897892777870406956373293543698453498358240636076872284978342787988270322304780960225877002923639431124057695508578200868990779899686947969842944420662444728843778768083393607714064297325529395701442370227941486415218490718524623306429333215768620243233762045870752727676411643109493543615782433652070020469070656017826406688605139380400774135238169036636118429337753287405088764305811108003031549385122996757313306020167260563717047660087324473046992602481785550346684985055196222185072447598791578896997433833853753166678833501723662489566740729976061647047847547237582054028358117077710528591009816763825857418500261253716717340120188780844680507695261601152763180248542192700606825004865366063040488359792306115885562031162677866519498241148751903899524524636539448645233650159950144099024091577952706919396435906134892810243444398447678052149094200959899712347099805062269739287348330302134243710050479484403966634549647438523891784691033228889464524305943329530587717623470573951046738064550291233790907110455256254392951616990019083844540213518953740951534606578840449604601168472869329303022503794192229292989313753979001301899670251597795588851683903649103186888087672755550164112199334005946593454341833448803208138080322249633107930792080852509994422179801471706068131965201773479052986534026273879467584784732288823145293326033275332377092928826116396419076033280771098024749382082212657411389860323550416512460951288579855842611740351375050217667278872200674859246209092684648291461582975357506362930394796415605928083669764289593357900326138484480258325490072506473288847298607309370231306415692135332763682636488151087396094029334175204989223079629733879304121751002860870405723968842669349474510646315094562929495952742509056216906226919964232522538389098922927944576076823507527791774079161077331041717917016315218433355384531159954055452719571544543676957778916784170166662511809120400828738941488921772676294730800920406292531787859813791771364744869316038041568034229866273828723363963789780168114481748482699205652874400090505507727131311876637961354838220002968932276423027582601925824867795764161635772113007780832645444108363832711613753661524091323364226227275099522703747024750096793032659360691451716426378756319048342277119250335581253183561380809353884654184653322577565007626944758880351506585577382145458755440800069973501326687393008356379742797452205740314182752721840397982702056042495987544635112051678309983433442862902911100925406517491800445617366585220651324982635491586755368865165288474977538298597149289598924533302815178984499807238380000871592512368789007249070596971233062359390535141049251733743545690438341254846467348269526190506020894595595141697485312973138254095831107859124065973747231671782572704645181335997475926997468051681346681535518787588479471187811717962936879066352081952318278062069671945593716804280247667666259758985165866848901738396126922717570512249837117186845689056555419759169589593766325854669954827209554224032165345801453649376776475964279320920950486287368792573239173519221136984196420545301986923315548331129030854235149373036373481244442706196432506344303539983799721261676014899116147067136309194638598970034104025052139807542347386844192794919212141664586055727646072903231120751376725665827669425205755632462242693159175751634344926028280797381566796904601405094459036054139648168953234697529713218459798716925185772647208018286445027231299102643890679684859895977722283196085419292208943861122061860943590594177474114597809448930296135093171260746312558701024309407115752203878135191286792048930511214108730310794893367626667674812550247060049970410392563204185877599831203047468931545878487880686632882915181387625917993356197166270569842308053623592706836401799557544338377882709046190358841874961664376097523664721422841658509908123856308930032628769513337962649732435795444204129253695155700960372681028829586817887696522963218054261349793327565783156146009559951396784146344996826885096161817648027798706153893965636631543483832266801957881348343897905695146436433659543208177987658054670050317391790534609611033231281304599421694060293983371556012349135764515942311819966858349811177221025841645820147246638244737682458446841301276897270157747074159453793431718946325013100784034109209744334862099076409326809042981722962084449636332971286875528283160965203151025411046623858488303321449759067807441262773092021827184515975845208362613371735653691438573220742275141416007193375176506323279476089547885394425991617578104737976780828711156673881325524884500421977087050014483245086404990429464205644947095347808723230484118951708597660302531071051428768622676424742298136012035644188712651749482597485210473441211732370653892909172032462140291898323926143481963080679772754009727409177459336668658683511296088307872645287005516392974766087987734193526237932643794485499651328995421100839176540558130190145077030631348333185239441459827085241234565438650257202144162297711536185417949496649254948534662494071558534895219095642242531242240880346563477846380295025937942987741419676836333155318404480006285465822943909782854945314859464511610645117039656430233474934807840736383073023558517676369953412137352394344432755690826985734007711494424197803631699641392084484755050857402180669418226537234401646803197769678090127078704007301167357747471607853568188880226868081635493156900553815210733509662634243857993855166802443691280549830869405526850691849742822468743649426087870704726150693090730852480471424816405825820630751867256717721175054417409661740357919143501962166015196589318718023850425126766989888942993380263766138746607160886831872784838739464430691216743595573394566411651368512494988663640842991415988480690953933945242471196870664032618847884427374486943310588010969735733082347142620638854964508098869646493516045355033800298149584652722634338984866992994090008909715850705191692227429481470920470336758528580089262676250916559559611419525307381969130438556145944959362497327198675582446964068613059699699881271503205611656696111508132019130080188597894362066208784408620047342709803759594353669755667594155353681453763761158611815611227521268787051582066482579586789713038188570348767430715373826661445467645228424191951986075967706301145244971734441580395123053138620054966259482510984378832811036812282474451219271888725557793756234961478810540885697902877070300890497283140214306737358300468769028731290914738152371793476348314474219337031485879231910367098788982964428232550285827526083913794140669328779278515073955498239960655809388973980746203566272666673099712593094516157185778664641102567866897730412271093904115825336018972870489589680298825747727803097809155319177638914963039524575569318082492695384372267238872980406882182492425345553208953760555738412009815225840708999012974330323818561934161253788825258159525313847195523760532103891468558808918661022434919099078795961506222903396611733600094248149984280611628797374013666152543455727063354006063499123874589805343354764328826151461720299738185169933435361967360905860607296726018698272974052932462772168121101399464492415885011274419575063071313138442664344909464641516137462813521434088832955083757370549491564825665994811288720620346059675520220115330984539044187619212416676253807842750923531822668643070498341236230014641820078309312071528153362393443422951444249923090702369055179667953417802416172876112325601897567213544213162822504612994621790597907972087092105416561399743958788983420507147232292971446733625708886015803934449299816727578445877474080804143748689145004102544142728158320515409315564575588127823997752793180476711306593328462788041328427368941501397653000974772646462266522831832355146451204923604641423678738649512885167746694323736860822336527776515959025064176174094420907476135468658501053522106147359979566966409448062715451801051315541176767705862109172443857474690710356244057376545625985098466571181163005405412082831748700291854668181420825915495427915974609860586861196373092392666310730035934277899890554631745634684405085090530493841452950350630042399375394899209316240127537838127910765226544333060465329124066689346363176062965341887656910572049532415280285355255876873091400636599818720298499571416570528294145287682750785294768101916536418339768367470736530910240185969947458346448480032455979931663984164423224331472174147094741970359291346923407781821968340761129558065291909359548101973257178122159414426351576403350054116192322969657248554704693618306725218073717799197299943304855241868027318087325911876092949462053428301935232774601165975153001671718752601669330543115651888612060412247486731921525833192022341853166438297510837159062449061045076570851896220533711591161751252536853707587960957921187969682531613072177790908672266765613064280524976858311461578141875508634926599230013045857124482912365777762611520309853949171562816505905218502475260495502598282836880950586423192936799714689966349712962910573450195803366973974219083999029518613052017757013837199232639899096628342418280328292439921694186679367320495147251441558664054343177118363556813597448004224135844965511881492235362190061478919920958844772168806632313989599721859489212864204205329174479553830591958881750985442866702822557486059066164832819727247079248727395580409628727333779129802557599016153854556627409689672560469014549834485005915130425845731781385226353238736600398835921619255623837815405942078890573989853445586859961238663490641682022267570666532837526006946501605644067846568955208096058497738398697082321788435411771492103054777253045425954543692425551863403525151881419942218631293654084610895790623316425117034640453616174483326865423761679302654594692580526902018681542265111724885783903788998542711452068594375240422271649915777235085922118323005377708650366988491730237638363640913568547481716589949591322931011454876825816594495587867774608624270282149696033083327672623341924477951768437581548598374322069503070496556869357023361536804421913458011108688933863935456683818660705637496499874647692001242833022034102693150791699168135190531396837656591407934064991670144110852711770656022634491182396295129659800031849758883146805074888402465970024816134673968193184982507824783368224151277965412824853620021329472545362359475739167673479429910966532809711244116099228913155707505995930187346907078661424884942691704957917064673729859588942385723794542849040401589085519925167294822907251260344330409282509432496112761991915023024681764286770097961742927058883354935129677451757601958691621469331308559259870217500938168348158810921898099565332441493112796681269615054460381429766797101282956534717067987245941711448360058756056617083584809073432865026496679079783637302495415466672127000322067237498282280946085602693207723212601528951508295880583882852614323320180344198618753750114657959104262873438212698001173426094374415543447339440373658723668093820245932408409704959772752719451050008334353344250082042474175776162813442906769022743957240808238876446256124271253538900378548729022387868146660808480539330066704270239042729659478593270472483432627709832774318765041902151472247412512847994387956953708772489841941096658576025384150573233237497558604078743754285343229612774386354597124257094467694931450370039764109949937821619856274900235967894344756636270454084662642158513072035271175634402015722701433427346657210001556009702150985239857043741733565130025371050196932556256283315205249032421140542079704099480722394695354429044264792488133874662373786205323348732485608809833265795483913914800294908901848672635406532192457814636141435734043835882539364304384771730382205498482849200381662967587114134289944116071459865153589363024375345984302146723109484082785907692681471402242198775601117881404472312612347600883374936802671989062667568919374051777885498945515441760158778949994063132560117293428872471363534081492039113688790614171120264087987190891324331807517050663086128357998871643530904211208732691270579821358615960726557347863180839009010749269949398791640344955425823758268167658369692570356717452291173879502417244678653623038924049394477338032948251204543035813664709612296006605331659989784054087624920449612390034553405163932439624883831945024194675315036171517187044977194259210445492482154635953770438185134823379430472422273909836579350961939084998209384694752169255909048120261161902978620985070603765802030755937516628943011501750932565806998080323762857686577289803358547185021390042667443547400750914391267371702853669845620994869890404881829238801118025523210825224755927893912746900124317037186232567374057484339244198654278228391785737676805059731455570229603390871466197912953057328816062309566624537935551098693445850682899871819323348950140422000832222411304503390307988474652168071333723230718697725112705002050758717738762498932188679960044769315750275344183787341857867739835994352103943740069022258334815055405769688980478779923614835890708139681465378401941150816353765402366256272304388877476374292352679932134314512653541364849032239384336103042598388151222683998021014505248910283027984528091561975609180287032550644477879854074327503830613606182651557155395057860512533355180099415185123156257198777101768907645980776816669557243342508953853296439916244028272986064284544957197243516039374328775053351832158214248069711598475761926202708291450905799642656312743877437093253406248251722752763746291040921405653562073365390108009706144391687845508297368429223689275872821703105907157667835045696008567197055052306341482105265130887220535875985916575636795422287205530853188935207030912094484557107497823483910330673199848363968557822585824795852657209229965665753108239832464533914434529216886618833408274353626329758431666122805659820593611949198844757500237998747946870097130888175160703364047970578460196211260908531256292087436602704651599450826860917593433652372911586562037395538697577457126101687628260336415694612670519443972691199100053802951664228957879491099162817693992695422864961487361437469984059077974030989741973505776294406949694808534542101933828868677556361707916017635960105038132939263375559385817371982026839990254888311233117760259536031110846844645373360947611953426716898918488819502299907464290010506095936283623306895487843633494569760135826336608943288753571819004902824257657962695268274848662573130569140867556839136281065722575390579734473573291913462370281406695747806392552566633540715475081136580422605723764985216776116385440419622866791387117807246847220959440647132395169964318560798870222258445797672646176024770853339650449529219862071568728752325934544870059447665624233348600655846051017395981711896267299899808612075918612501738741366901322522154056927801690470612751324701541029259857798636552686142826392276950807252157361597806094353417036744725233184357348785450387298374391470853370581733719225532310248163089618333697175431823920635615372814844691646888724650048867903296295106802606485448568981544395752178317151698890436132016436680181162875555769072555321965899040106379695739045945606908797789775669752459177455074738135657630493054926727387257598111913920541335078716553441586292138475122372845333617226720852610810782262984357617453261717259782884891386640563282064127058164361485482952632869205176152799808108429955999493446565427024038284623124003401479016239855296276479017557481325278229687325802825874561775533583949788969506503148802084341367144792268692611665341446950474737952566089760407956514097503006569842902665343678072576619631005746931429695914494973505153047518018265629329336507160787143922917466158236640210746122386516961670671386707071466627290893477438944934693146965901565476139541919390959008957197215973125679290653255844929244310346040049524273952310225787102292448259481150869275644095053668774599492493695114572143586057082282367810637317327641348553209566411491409934339807528646283478562379276679752742340130301203315789649233709747611297009498563714058737561575614052316319838302856330168514029316070696379624289583697993722412418534672583645218766049995987625803421908069210725491253363687156256647231094706060005606897430380234343076157009472386510538976847497864809007835197293245598128957676231524430686067168381983908349498652433400861625415977331187270583615213508881221112151909360198915233772629959667019197582661388245900588605310701097078808814204934033604649528577463105083105880389487513035448774506034387401033613125502542489931653955153962613018986915206359856047479920761260331667665959904191820316798961635687802155475470719131528013645183118588704678182149869074360667336238302788414273288084515707305711324513108751280430205715927127044620112717140034272166773641653049085781928579513820340681598815298816641778006098300778493920496197180918367754892363127014814324336162226225109775155599789724832835812876710828366981918442907381053776810065199827789102897459744453009935825063124521892603946590786827029665767503772735361734228679547232400412879593182931345478585708178382902144774915225484573965615369114522582922977811233455582598744538100975428301779871567624203263336266494264983570334120577727447691500245459652126229120458897741286616170320611461206742935960749117951372621468146272916871725672846773705697240935174062768808744002589871763131795763771467309806038888642585441579951888244076114011909382045782689200598139104359374408654603156620303528154260475310665717825918822763952825920641582188452944895948788121645990428623858276081159675561734815420366802751389246546596805394814349224808584141605411123086775649131915474084638031051715139979127007525653319704603780038827583092344326036334355036344571143671417157677905299695340982861049881791465253827646662700721440559166797697196524010528804556114984962431582974810354360322297604560046427339416031632603298855474217869921025333250185072292100297499001309132034500961337329050230800765031295432964337196776245701845373493726535924791972794925862221795916341369403384431611225494996912686915758323311751378380124803780581869889772759510797133846700963551947510714125454230012711025000020804376527106986218957314188184800912129530534764041766056834843640856932688341525365739883319681903243781002555258665533745092754395185162288637223886407703108756711074957346373155017950411653717354517629713813332588679221949642495498083376700374711930567926349152190035029098058359923601226312508497521196070078559454563264262081444909106693097817253718566378619580559233133918321551675740104159992807742629438254495354917199323249447569134095293149942766463530965411241490837082684933075308804192354242298216865725827285984292361181683517616551671122411705013401323817901457403031410971740442759872352834779659713726360929756282701317639358212514865200956406517057861459155813808075935314216681491332863432864223582923156863525930026357603014004298063301271677865228291774712600129278952729698845146284110024692895855067693956724975645866782400185459202229548423596457191659816034021761340955109973432879335809682462179284150801904449220580096567078002735926062008695426468011804925795591420672399516085296402560522083652427630481087707323564497399507591628358459850275772329876787611102849581711650049319584208018968277317148173390085288435209012065055610599442554575180505267047777785828490274721567343652839230091297942225503153201152499352928035400959296654184447072345871270327057034383932753124159733756999497868741308704190341839547173032444629928281243104794440551804832635283799245116355222931688021862580644536185983293063441207689738452193481082067401285800213500852045289364488414476423725658583577639358600573942510837346602386643829164230293337352315572882220072762026820359022400136909191070542667083511006082852550686034484675246214790864372257151690066386793459672981249473855986580371552831723798392933177572925083128098965774104491339250087578279059131584281582155378161150293030141818540114917744265961864577975990115799587099437691046928119167887853393031553071935716254487970505439101620531717483846336944199220769094399063289374479741889934977341690346247807469672862277279250941119665812275705831333412737695615069622309330571980846493057351131273492304893649487571485128405497905599325702966357386673690781963034021898673993268204818009365096190191557825699065382916718046653096191578134710134964639538242159800131943123029815582491106510861749109414122452933855216001618738668995006184146685194873487974300856953548885849565059094373502032517396588544202650587130408084680639347392992105316538166517631338890078166407719203596950425348168155507193841453436834991339035740146597191103792633933702879728300468405270245780878906706820897679829170376940947040800091614878473431037645707166360376082746929932335007920235242552562764644197563066775130216505059277285325946420437668534356648431813261866888486562943253516164894191913430038099763352940970233766142340014321540377787514047460321837275547245928859721476530336802850974283193934732888447961644420465708698038037122892896700726334571057851437775120074023448910007237759038192637478849056159637538559238567989721366390653233139586482304116648346013727157890134252280241234470812843974385249425459977411070627126752042566360729680576684723371399925249169618616614911238848324418296131235645339439060155389643044406040587008852056231654996431311917037719461970158695754001895230138027006037896038673272013358727237421840349182929816017840072629460408168682836136013824983375626145467804722325221742413926035320521693866740955536311688239159524455880304812243856134749384684172118737511645034354191096443934778767702021838344844338742352503831011573837110899767205384266576438430477261218577673401926419680156784684978916630482200894564150740008201937145112187974889320619522466798293510781713694654574597776027379931472296323930570711698346936523652983229619959472545868097359994734430306936329147446212149003835618615151017851297658609560455404564946492160430065207887730489039588130797296871628092810210429981896374185689270313445637083161249371150942218360038281312225202914410380225118522771961914284071939820286973320493192339739439837137705846483553128755853217222850524533247636575344922633981553118398287881790841569580849365847360173341680186635986145745356495102220540356695944059445230273692859180798780317822325632009181321635814481315986408156266404126914297067329363540433747632733032578473265900389812994172064691692956035189847299399784725783649172851697780361919196758461416591990001084625257843093314277286857449228991736972562772000841456567969919003764339543829495420711881479092869993576529597790282895185311326758203680477924915869098157826157018614704800171190616732339118291271870277280732507274046919593362592729611137466152838359201407251469422796153555752841687805439581887822510063220736992486802502498440092772209328189732487763408241939808941211151134047603391504507460332921996471126036071286535679946793802864980326109900178652389116718791187265913946877173368435389376236470200851374547919679004915655985017246204516649614257980172265350549570165708672870752638905522186910555657907263136446584056128920914028794543334504745917435629305558725959074474888675356354298080510858170067176561359762842643077875899996264172077658275566235602535399453707183898879523875697178829267453519476561705278798539110607751131065166447590059685365982399007767802568984014504511489463171878799890011503006854255919688898424659132410277422234382318942993016319796347738468012165265878130692973870671054168133323146320008867166453706299827027219904099098976273563799325446302502773175540454816373758010453608937413719076441810750590336926955226892510170563483321818020235766489224251719876650874248323200676180096314797179381137690351397181436889045334905171374620904361497705631790155845919582087887824584662672670351471861206112391553136959207070803038014475348614423202781933029750549890922061605659988666281514056574076101948520404862852786410927179163825784927281073241633397536041344749242646479397481619030118168833515333532128834096811269328779965354280809934882112076899147568785146385916711267576201653365810512667376085474419467338772615700190903704307399363826203379282864530131358988364169880988239841725225699479689467611762111153377759817664928378740415505776003496170675604062585529769904997183209905887139926389218384778899452397053951391463664648096360459149662211359646393690821630592768425562846151575196102699797874925657674685032650600934953593262656288154625557042171207471475690091203068308523166471776716909630864926046349015833090796419309467876431639893413711901087354660749174243735105658880570033526312733821884348220335355551419858033906481478321872934783602679521730957512977623319532090398142554483726998509151351413422219794525137806966320970461592779990643787588945817156345662475290590605225007746262844876218346064957311611398057163198275044915307670731690787597664160977620014966183353185046946440437087713121422008726212375748849127687557750044680788685221350058291889009616403959185919548833073739783504727676536073749777962011478743517970701100092439548666796151710341231168736503865226450043516525374389447779268628489147558048394986004122686512249667049462200110586128827895068017417551609149543860501079720805975302892318446494970627586234021280847527777684152596305645610878138489044781274835632718619110955358281592887643509081972750610140801077081876438020026134688084680373367639397324794267794389879538828930844399663762072713670853948943491619449824247608915215161432331199060618209075135777034510593925965703260686770664890493975919767969070194133432319851589878722236809626544005845262731159814559195256406551742850816002766794843576901415075492471395770393390912158362099038545015366848327414365740085626225298032569216084740182192682500547484410496548355211940881193547925403596048163263217015904213696840758875245191955567326986240184765903735887067114983773381192374840518590637422287941907813281739467081400910839602862912233737624072264931213096696100867836167469408199644152370531086567229838730714723852826852210163524788345830169150029503673263300391283534962981916281526749419827658393657585444943779430885288449414366438832059152223638519618309127712401541323115917728691802043873152950296962962445683992787258932001259232674468245832823691876724151337730311739596792740567592845998072266735659902760048580833701526043548182348367559700169170514142367448864459033255718311284715197716228912109794140442861996214119704358017167739454652502963792286892099145514050171659525021916697417332564295406820900758257206444010254904818335036076516728782784507549508728815029706304175308187957888255343888717212946864564648355134685527767773022096896619212829848265476852604379993357747453390056849480158947959128482633060174793457408594315660990452152223711743151267727070830895080380062907545340260190732956610621957879449595456034007888108552638255908395613097107734878494214418491556517867034053782821499172883979066553668826360832567838366453640937798444368856850679983667965626365491505337506219747518858482598889369887992479598454720418651671842360648996923136875334319255340849910685073171573715355517374905262564183984204855563239700071812930984348257831449965231938475116416334299263529726118047353825831210670507701303042091561569306788478969439390093584857301449072210311716091835431573940952647558408278791909597558971487578586365824507740771460676601299570637209438271626721572505555523198200041815793237238189725254594829857235764611464074647946575540615549402363254333754624443293614164417423940441641584258451770799332888399927472687675395237136097751960974441602445580449474430680266290813896574918734309048581892738258893505332978418953976706926987055812531570831360668344792765456124833532677472428705435413053447921009417014523673774541612939165405216670763870712935987327086012690990357925741348595628528716377800043926016488760242973692684564762324081802744375657887894339112596400001001045970502530580219752675542546357757084446371228444002315280852833537593988546945219748050742623321682184939399176991115622922418605199195818046903913392364378277914454003550726196322633169555916412237923380037757872109566129248554728235615446619315099564238630755999493336970218709365065373389933739787067026020786342816214622204347539340754981512973842665548909094861114431065625663145320058664788778830767996934558790640430286719586915980353246963584644169097781691556932056187754108230049204832456844092461316786682505045618276045639065767682866822900470829405016498580893499235679100784856466059483152959231641544534490971029492259513882254651060804121292079298196285382254802395476899708618492308293732106986289467447444888583865586790858126947045443508962073600474315956970225532484955291442301888794234358795352855820168265523552240408043623835009397481917976110317365130408500311432093902141320100392781465032614954355529722661443750485856575908478912760532043132724076307344117603402954071703926793580430963765520844611110674782556360248642795473636579620575525764389187119679229883189590965629171004730105739388123566823910880853912038342286921036817936740606225944239321320505380124960244426516422048022658470132724966627996109775163193435299223924379311706653438922768420910280854695348019459537468573263457649171497811955767922514329957580945428980804801907711517962231936822155722826662897693869447388356819927662249067599838602814259470460880270905261861962436824038377307603732861753514925918180658910673187636346709802987041645059860918332143176021265610551888204095797845944514731557445100776985898237837187622254232422419692658872368267105956991050404514918253856090075066406991747721312690696460497900443572305526137161335775672484651667123387319554639338831020729834906707005906951506968815038331315899266650329608779599928155412883240487394417148433823458753864467287989940977835160905117642059251106538179358347214362780148877809399769583684482331734705899593373364683006267194235843919139214175501596626581200521372971188136121935982389120365642975180209607539530436497276854864963501311679762922330793708075061782409321902076068144083021653372656189129295487466903696803038446800297003440355098967700946861167319597604291580672531368532460822519780305735484420152788962000874112164144972353284314275877054326976960578386717817174940062325496994630609216665940253260554500295482816588779496687814408426674624732052071454290526349187290101519149732699731369258074052462037431628009453261103824911691718036711669402725907311720080610668931512658417524721289043847346675581986397702595607927862952668445470365912984608790458828433934070859509846056397646871720254046295683533911359783795120507663495540880561347175655802122160806759061678206622829630014732559238831639744868302281968401037036809515419113882655225246442799179423541389977245992853192382613537066323786580770314479332386337855550783578509699457657554029048531064625185253819176968563926642245295585210415919822949993843204080709077037824828001035503062605175104332137116427472150400703986018146041593849019918141411907043899522313369811953894406966195679225275055164063688374574545596540760125245526851285860993659842253913445226196182618880876639021339949820036095279904083102518972301075433244271928348192496369762995850893082316414052574241933698185532376584000092422419164275477712088782046124369630621005767760453366965135920397196081299576413966741294885591876144304744853347585933185555816374686187760907547019580475485668315448658515653905822783455501726403710447133170930984768116420251450323374257144262476119897098767205582896365905247950851039023400117871546849415241201656563155020908432986918593031507045503468798803933971931348920324476475752057587519618084921275951380237413689650439224501643146216604845725179962081858452558938909598123390477007039843715232391953250329520072348827933557978178820903787997075796191117371486313881283544829840099630836565622364339052501672829078084235293534025196051704906558512662056261081491468117739251129010614048538668631690933646927232602281102109782054056075332002254711392809094312429076907203678427011439512103768056228701797162938858258842346587714354928552123405605137413725150202469954116977182507970803382275335337034021373470308809326825835866194683457810178951445528366687517781177539791043883262127492214881644360525664788469622816186238685556935687615103681705479577883017564403273008932109802415390400878447907182609419852677131594131226007360554831803046811903462490647287167023732384118747192340306767001099482043090773894439375749371477068052098438303809463613188571697025312025195060999084627833378591175731686405483254028186234258970459794132705660683149945450648759947499764725810126823338325626268177174888068947212478523318969715660843796212667301147565452280240328703724830532823284165763734101430079074774549594709399299983518958081485700748670707617841106062478704852605654262618223926657598338957450934476924728821558338179468047477703041868568432830698752653214143859457451740292631624320332527701669471017200447595015156451314648349182902705745128572296693867647300718156687946301575365349016327982895500343299498739317032370082323944652540952485632936236273383044345946712282160090813749543466778137445379794368112625447448013197411845265679817195302047185857991883503100326162892156460010830320625736550508259707005183447997484677471877383794782164547695810896530690535862732451754039102019974365977296704124444516946573109745858600206086636492246749081184827967566297463899382657765182260723177937340861470993142326936350500088490484999461105576483910775977455257478221092951574763290639036208128198609568727061186648666349892438874388164632132436918873744302969687945338097429500840461652688336438717990533642083836893159521101591040892930871593461623488547540735256593920011228330162056026762035057058280818724138159585567988378548926269677587116696713927075858076290183149944945553802112118360230478204715871453490518510196321008057924668431113963712205340484335918253399187885966226666963036700078707316172109966887081805507031301233829544347562527539542365987223833195026895111425987998933205668939239958134914763740917266173506016088881872453711871045828273689867136350540927908468391471974978994407810127523451473750630615095952407166034938082079631484541971174923057629757723036764188411408990110194538835592118953603159889023563629480031024544172554722731054637874203160125814318366243824842583970750023438863828506783852538352223437969182649392828918992714055358829930620612730163765948298097372863049227007842043043261905103924822594389469599929505543794627123684526719126262485785227101733135464383177399975886667183940452858389382689492881285782647099388812400768398638479892241473040518141294825500719878663387209802190243650012988394253335133315637773617780292525487357494886051087437426279737991637458678007072570635907459533981451123738369367081766061209260482370219634959344374521626676988007058752212313681325800990694737479821841879498901978673939680898943935795946536718602931895230483763818773361281642981546555503797299999499546321473681016109087502789759855734289647719162815849290608055539469344660345882531152400288355674494437983241795991600648870678614601706924206509101915740075975373852069532283558413497232539440850644842980163194007349138547474932703179447980691945316005350107683768886717384926442098065693929113690736825529185973259405263564562872452097054135201938758337830505599687029008755164403687274849059693639840603602898658711430904936802339858449746108534799313172062610848142577083760261983928782524672658568190261792232172886175514587829603937466360322150027917885208697091684486164321717090092806630650562007516807159556622029720371364984064527778217865855712928711761935365127122004409665504772051522592181677850348588774608112846210241972361216040866400656125104421285740800521775812761576068189153195895643460278513099068984178162912953075613707838522198866723645824086482880863504436641077887953556347301764063698446937452181980566892500784248041831513297245977496451710834826448740276900214064180934124022992014165010201313372324092013999141068517705690581715749586309930818730988981225841128125056659795267439693267025661464768110958723389312741280065501322276604959304582420529930625451010346409105446615943008759210166425596104573819599883608498726247006920205178652244124900969874997025965981529108988217209711352332594974958663897143565237859974493079836218082708707117561323677214607986989938617900087309709004679968363261730771835402021240146177132159603544746024580182263242788259339758414945537608664981121954971641271377451670501931753117027056597231989084692149502565901659012983460050597522843930025336382672630682195907054061622689517406109572337766723142017612970591776056728178039631728910175522885305923321107159921302674889043506122295450533214886434078506360592168977101890042324787455214885536939699979643345486742032849391185431107481987717538034592108472094252935019859575512187962096994079377613094655944742655685578968159294279485431615458405212623975704063584937093084095135446535688199208667707157016307645655066390814589036161251788038272736263097579158936207442183146794918752341583560202605033861694484719816791377220819015523721806176435891849504710462206273786752750032391702486966942848040263848370933725813191955164237311062421738617218314838989998903936304472085562856689445968165819529386956624523171166944294883274148999141354367995148783730886773780483011902000579650629166253767571445737422814715244415281603688727839348468981424698447195589947560919070424124091629733935592882315595094301295072370207211652052400755535916004000943289025722691619489338636280711301333062414648898571032812262925531131800412267531046322371931241011349475326641703196207815522362992417579856006271442574369111368111002475532347386234054210834651384462326355632961930506753627300871369400926435602339975393987001242690171933927201343681229556845915541086302577368563675343627781515100411805737325004706864339045505435616093549914795260025495655935674352255281506886259670034690092354183587369424772187716177529925149300044459339891728110758348584799892388636182232430118199670455717184665398011734530995665467719362703710846900238329791956957879503624687537149038397823003127001921762797690800190737384469278689341610436169660042480328243081598219144469878899128804396076288295642625990424867133698570559427516160146857660836755712793309585475639710604270838459102085674283206492078449377369955292861313682121390718652058458282019210485174005434705788401107571642270448679344502880575971666954543288184767120859064310295731942078811990946781486056261160731846317099454768862992030767165712508097039826609062800042090544535891559556355957066207870547266132433918830184175845340664278344862331089140061031694837776350230920837675999713767682190524720967576685681907790560582617355020656674694245621066449044631242088971085278061519720397890637560792541592182467705627320855845216222644799668606658671436774956172950380081131357017423557087407488835609207926794765835828686781796860065978616003775391173819090029265388155675755189866863456250826109727380748643571175224515190398688754429766504432475733194443897960176583893459312663557131225504391711243387067704305291565468129092854012155424659920426563869039381421767087535288160966931309294410131842090909568009032192313959907758790113671189082145505602970171012781150702974703512849899022292127150958804951911388679487365825072513636723372965825350074526721888018592394623276772656612799614958720093260518995048306791350985362389951339227575189272871225186088157332178840573348980346482344418778119420917083586450477692783829590563934692510574811463008958063263010589753612513977598928245593584713751796691752899850180854893563270383757487532945513579237352030691967685337422775399567318625434189692980126748432139022542176566977395040808213900729107638600493129209014507233899970524642593306921449231897663630345213652321081290798710165773512353524282066253305864759483337358054734659047443709426727815005528625907412348899957086059841553426893139000181035622542500083796088148844898935334303839630128457000314032359526521384388582688192850991030138331973957244793472617383866345324569482446358540675214050742771122296666085654046857240785478618452140648554685845762628377854601169531575496677365468436326059711203810368848352300576820787197776905783102774611600136691435250118658262203324868742624981546552051636369414010818075264878215830141400891342478750200608260217494382641836819707352028112081500851195864018732969219938230837016351721703928653153172819629058069652062023782869273064258823002308928099431290289070280614893040860573892683741715549405064019517968577170252164506956586957163784015875810859666400680766543375673275738512544552836771254262125110211725205166247241267153906773443474575042221256842935924658497182095234575752845360504933712431427627728778552989770078901387175222354677533388485100638866090956685682201372276049436593091913603482304886664428282071656833891637846565842889690040661831201207494287786121876114599039117054598268238496472070149662677092781533462614578675363642139149182105276567911419049152219499915550534215005635112768805038764389229173317194777482605118060310895891764145123488467446457491074502085247797755229076489715191829547135395995948108757809500896388599489254900227219472238908572743940327310964561120243403375161397611381295289561212594158988047790269674997089062109120199547143804896504061574492834955356576175775530535457246340405519787064050578760970552296191454600327182491971493214014658246821578386843054560796084898736128378277462159395523645724955379132414466551301847544047754364062177308839508959753513151512978783363393315325087346034834259437894864057137445587033519772302540250659082909518124870311105100450277932651871632439443280393065194357409884984606158869220021567026749794349724995830086060661239998769398858632658353178194920661729082527203515620451938403614463645690953895539345526400384510915990519390156674429465777521264612589897295804809572867955117927803994540038913486133907399101193723839102795885739028020972539829179510632350872550659686859587710763007515134803637472222865738335347941316342172057002228472690190736757149944969405621636460100872546759849854626886004556657004186098708328648010316344942211402559786479268545014506322916940854491159709637193548539514162047648608544050026000981337768301729685092278782710977066715055918596483104688345936005873559574674694591574467543792926614980055965477594128121333347006002443869505469492930896718340879623607960458160443400458664155058915706631112097916851708869488633364501209327728399937527115376581243351341588635184978694695440870520417390816741929177337658177308198538791610697736112102983796952289513861683401563050507825998086535245002067223722615860472376088626393861192899458071705870169559474979508530474180037730805031701269768830635207092184937197262233043905478500140724022683194476461964770271834191074855044791020661227375936521015765834236648673199989661067397113800874016779021637306944527917811174099700366864792174274191973037970141114706038725599322995724523401892153006941258543766175376088219487519154544755261602222257240491043551765228295230878828279605970950980064269231054208159748737488803155551954440669619854189503725731636654999912965645286296864121659555888333794254328358073619202427946452815876761657059791094860686452720384176357984473662943981199763843998617481174798288073798544498598257942474354305060212011225874291219362173728485197357681211685837405185214915187420708957704995305869869730304179140986758892885914129171399584425937094899615360102414537098771218991204194082034440780140094201301043416690562301622298732304855362557391481352728529851900437940137790513340675243410088855960708051446040719430283793637960808777880248144122285795575102207318310368513489640315702625984824157121189222739060348282382167638201165843414088789311296439981384384198314861544581419908354058990533473075594331600002024009245946766702700898189917483873180456471193835126933524148273600419655605301480226939497725242890707810673095823322479435747341080798767594677045246650250818672159211324267506004271482084446954216404114156733563085125770928054562004000386293958416288827606452927803242067509044385854237636174399934438058985420042462171387433375859407672713133849561558181601408416516956396124733863636289056547119886333200546679430648172705229301002113568419073164621899628987507923284374298651209741317727077193406478804530967712570794494226771382692943778368308380144655157927442205962445129807668419399864905549483654853771440267936034805978056910253402062240139625224822897905669823485167598697602795636943373665814210194168693153416889874684892222856320999624767955561110865924372212901819475382653599743384583787230052705981693656323685124616002983109968021744882441175275698405455789356914337424709965621651773222794134655561469409022579406867657821462615752121670339521274646244994886833494131502725472747092770877011517548382321820974827737761649185875528829339115492601815804025311102840491817122875632949598309822051553175483127516740755302294043151734236447546361974384509141213202270583022610004583668323450027977069593622296365460037099112530908623562347923406141677038278905852213379936688453644302486258636018060895924464371961601687545537365140529389825296056137854172727239720352573336105485677311665171907074160451567781357537505684658836750014668811786777848715374058951301407800485968492656372235130053930026343151538547063134268034001244750984531507568795705654702446833007567394006238937525506736325966257658758356043161050658959196997200280069450894472259507312646562695378871370407551155470363975257635388103151209750208115984103817137545160359499589072711648371416512148620551054352022056894789679767822346076721945743256219129634602871775783615642525812491480993229325113463723783205562406464422396384403820649951873274333298467753025415076840453225086239932548781631019151776353877978861566373223279350296388349557865522301084350136783843076628499669227726932836244179724533569195396039941826750178601316824949310859409501016562059346301988606306906041681086863714607917822480722883820231559148640356574838736708476526235401873017776490783214437920863099475099375748794403001945361610777333783743358778784000650265255856236264973777528534898884755620808498123919633650487856163607832083357734814299563283939072209502946616562280792698354002444620362158682703527911394965660786819908517642485772464348728161388620612374244841675562013429661106760079283467783509649072691302565986734744081581405073381235661523795101452415738432040455906604520674499093805680379639843131697285960337422066622035158239594187435481375271615472539744834541529750415036125254163358638503558837787790362668704682401664982632695580719639768700442557909681401507620607109530109247022803624086128171173398608001340250695781887863942142003746916882068432458069202965558118322261386965822230893644099818445122948933435369206967406880198127984423730872187867443690761022411057867407722821274348907630938794897179058219307781317160026727526437639538526421289203595367943159694635272669606439080150420979436723520861134779211148912748530265643269018531231822528362664180563155470729878478676815155230897773156914348338135204883515647410198855292621474870457884076928828004691024547123617405473028326791105866697066576171163602749220864611989839562976327985886545963542041695910929945665472513818691756800610330471118664375561822303643650498402122723503772289475025316198573490234161466676990095290620399943449323165596899121917820419664135570757969817177943271411372477888560466156891446987140583100787789954992718717179777230647059327375197956879033739330817128214228294380827439914308753970639638916510511459687776797432783736688983000872338943412768915443860244349307585034230421937259203813189164818848681285548174639290554169306284487621573206466355102501072682209708897168987344474200101514871363228630475373064341519597415921899921289050593697034406856043270533874698836805485240069704644736610208660792665306197750744410616039197383245615292383935415434910906250106696104154141172275272560342723010653634546739209995907123894565273009601464110008396369865038250175168435320631566242338261154292503307253472082465409257306792555271268237770628223704310099394322820164312957272874499508677967069661697322231397014416487001020630363708032243732814166148213641857321867177273824342140890375528506109660727264507605647142649850576622886918788032076108819769419248732130336499191211659414476272187223905502067555208965820053651974696190715210950152470583985900366953984536527790292140471991365169893214754383764770865333839884096173368214229742794393996865646049852155984902872526538556758726446276464991172178680017324798269591460106943956083892955528165871327009380924571541973253219232765596377881905242377675727409677063457208798685266109029462396380113903551785808494511458232067749319271094227937411346221362923269580891503944530196286678755286189397070983186598501049038663213293860685407425140586580677945525050728998603812911069419801738587301555249057716470337148380970495485922347706062494979691696795828996007279655812559298727091817402901871219644630449514205474925626770538869451479094459795363920478488837089505078263487931515194091806293610412525682473482580665087003447085717099395737758057835078164798576371107771702230943879365573659053873879793602848414539331108543237369583950801221017091798581517507918828253349668816925828787997257580752592627592811222585131084942430117650496410392979353571005066169960708325872197226293257502095175291343949385687771369333367240605628224829757460765115591370838891463985352767925395126357137074297242066784683464651903979064488701214491662193518546454905582340589639096215462335332647269708263467827615386081902889581859125908413346611553471929489117246688394868509811990087051828974882252923936742787850998337743991372492028767680612378337349638057523446312971625860569702815209208586175822993391449395223028249533583439920406066852618380605062086789726785803547227412451647601200236723085527220962328450319965609022212755631636592807369990300518899696502881073147646106544739162060410754436763207796335631163971658623711281267860706281533660853927625670373191330528718912536723426959486933202500115325874726043090085132685750076323756861846642561255946870885038881655125025409884180153318461997233500592112176926578623755452650209694457387791767402605817337200917802625208997346088050766015152249005565839897945622162336299828720363004713730652498813930455338458557685550733978101193540697227259947733293880854784308446342787202566986510604273180724691627441361422420889343569437678915635258750078422851755092541674358352403512911850583016869290269768470797115350651896278686412776328659744620895237280394668910653885655948879204794045748618575154986436112732147429813968473565291967134453174311854495339514173862268754897700442229455473597507457221643534838133969491236202095116721444145005313666472051870281413750234803852269102771368800141941822922983403103961173932667457366575543328766196374571399210511168271006490452896601420055442379570113091710185808326550354319319439993527842349538909773276281334313944134642195028696763333371016158572443981656214499211406340515293299320611622638181808031470836659527944419945173204952071910939942093447064059070997177590832709494159381215579754233834446330139481063196206501393863569645576580105183881527479660646398851412691537234999481852078681636688345365994195918667435958076568209303554115451399003453021595807203756836859986685169653317340654611160321336885599987272476027000499240143267843266261397056574118762507968023779044572081830566019232268751510869703980075512290005044703338859168044225344194048417121386024045255586588594600273897864177718971869654646561234537650246003956238322736265716565159054946123624784675688591254586391004555647047622095057636780577457932294773079204263001114895434336245535246686625531546463096231645101292772068902330298638823048075572324536232787035062223533618269503547738479603811404757678485350117475858133952461492562170762479926730887606799362395106245389455341509778315036703784730946716805124080604794147054362237885519779278305490377582177456652232540616166634325654681959402188782959421280070598835587098162319152404266077225453946726609526085501709120769116408141713270569204309639357155423885154524261603355997410376806929948888124497758365403863320949245613574032427564120298917501039620965595968693460954419853128676197764529809658117068679112352618523999388392946645793675241089240070434152671371975144213702394071196888927597440134555601510637307897778012895044912560643946558597199683288079772836546953482827094195272440712911809071807548639218770505084614374961016865980252767187722502588617980474931606754714224588797372261725587965547016290693576670861647406163922342799533503746354633032087917956650120583196759169417371361811934162789540948704867107040865799276233030553843845030149914021437310447926874937634866624538827228526348393650194069834255601885733938190441396307562769638767075868513419225578707191073243307227297287902482315783280886431185480410832686341885909984806834362871167232012929260262665689071562611588185320225781519482402754437866092060330242826574199544578818238562045837690903919717717820144728181147533476670337325450370024655049618984496220425426782995098309235203071015345066995183328596892295087264705804726040367780373600293830543618143875727940436432714348846287001988409244018542915436749446873541539084393899434676137166041819727359633722853263385886651469247371762485430059863708312359061439647367876444379688122435906766265135975373956181297619815184801876792269056079259843222146237859837586738141603009514381568182005174828981452911236799012475162395062234335438040113865396924574641061147411665765177881034731391575791414003227214972838265110275030384391316488198414513504544406273912370471581137138128785549408861733886698327935428076773842028690970496256892509060592444314617421377761525926160649868251936820134945098605831083384784492545653953059209100032274060532682244778472047402723810655867201728962620053553821762135797689825866323992056374961853879950631095081663078161572360617971735371859644928661767506920142448803878649010986545586339995174105484871534916579231743107376516725054481776854091937023802061609573764925254662845830562231811670075476371033313845122642437335899773377360566122970511847322960750155959173987218148241053583898316035312194890843151522155381202099729907021095044893009361732509763726630865581891014243577699755646680279556055393758091608814438473308395599168583644368755952447363002194817060545152206941703936611238101570716716170447229485381789483051817623380695508756530371465499014143316273065087599829687885022218392011403457250280495592640248654618476349615756719184236436123782107554281864664714013359229864521607297317376532989520872301620539939798779304559883706916303033711991943138854981188853404405907751855516923056901196318587601255438613485607438890613223035024729421684423235167680201633229849754053933363365261018164406212529914527139952422263338091551295806498628268052103775111017902375586429931540173887396811108666952650371756683984486169256760421399045109215579204902666757715199660945568578588430102699649848461757068440065575654823737268277883370542774305501246538732756549267052166784354492729754402107762980336148801117642975029198219572880510937072061317213857699867972844716140571830218586163210512178248394773355748494860894709475031515265034083086079790283999110307806228024206761054404180000288725158185366606990016174380970203096497261500917867039905787880648396558892794053358825451868832853344940863748801307071424818542086321796959210563075406900498761226169204536977714606228428647928468703447320100281832805853736885123017542455660040519627759392426379441744068876776949010441004903154510358130643242754804196080838350493466254332482842158627492336371051355208981416573226028298394910603612903061459380472809236616760657287467708911480959793658570728644876331637130637703454508966108203064084702974445712876656294803754535774114571587407692620649230109844720929894349651141701051784892839127184449548230765719255209860623133960035505528811680640684633099913091367691985717656577798137613837545265506196914662192086472362352484152484902888611964762151228836127646357903272196447708551102741540404200518270845471677034876998039078179581428996395771010512536804091150729744668766647717607436505810480877397643649744071301598399004913434678284076947683873823101147200477534080224784708534814148356237183312532884673686138683341430403983528568718666306513027545519985425786935631239160602278946749737296398541786234883866574863920533392018058659139536988336630952747525431214441767567660052513618296545553079304978223011466909123560572425885670034152495890997664004263124324079453592100749981778781821212873553599989086648223804919919077242921956662727248012612311602676149541481395856539375782120414656510844627342441828587429258331416867216666036711253018123427496410703176743012911991979858424781376470529109175537802153376738344804754150899100171576346477979894597078662730687662392930533189197262914276052237974939552792276238087054614223990202240434681293100490902788991347894883178815524735780465683425629626235095311819151386035081204944939689932865177268873767867765288806526437101652418756246038792886308745909667431618225044306274252919445917418134618555414020446928430416980439890606954057749016038513783068519560001095011992013602771201042759069425765971580766435684113681651480460871562065028605673070423810109142365164158681296334667297205622569812282546598096971734687770377861483886457159180179227102980961332188641188095757381114714168499463016846396149522447884484216755776557334617989779922916554333159821044665872661396541870023795682322182037785024861276199864237326413943152084009978572455955008742837499844643830486204479589596999819360679761303111263751700373800294261703399571088915976274303247363200743870328575707420752656992874327332090928998763506829746558519657361729559060291620030047102676348327513863403852492212432663165174472781471156606010156172327378500123377250525044618255805895972308197764949977058743913163707391014079559280790325658508835016685781821699477820549366523269330311086305689289587858890150947159555695907939425849781678772530429967203007135226589919127569508079913279568299806025428252415993694811550657785974945065663827855094219213500876276871725510946857821469276590645748334426983180161870697956348030651124746345438819724365164727125535396508710449300997795140924574045895491971072712226021222685097816502489363419919142363388141504066903624172131556101978777964032912509957460110269355453693365310711119528743387109495593974866645794303699447905121163502166713553158994857130499707836919441095623875171766753842860604741456261384080005896066613788865565264969055891347851159880343614177944833356748529834195419693456484866153309462009900062524577934036864764508005074689307945460627058972550676000273646010566610886286566987719953024777431872863065092726165508143755800358425532818632144823483934068395767297176773643791254659948600928951369399027445381976677830829235317573231792175422129353317235390557049861229701605667843876003213108516861950636306974622538161585845067331578709183596528046812539749772258234123039567757638867845381377299324889827545865402983131177371448644345900638887098909118240246354800779184778633985745093011462101636225132791403525970658758441256652481935726423490755302416753752223758876295101768944001477852028584918562853555863711718214002488653722278594382485605246365788426518588429887176627811776981303371746371988203644081112602328699629373211996930887242599156117492475285056386232958575358733267657601637588163124891412612998523668090220233173283636442983325764618769802157811023024281140940540625264639217054532095042425767425627954474814318137852339731192730729706405056240663581137428797388524445766312378209551861840046950223533051657517110445444864273471268313788504514206070997504231245177169221963119575764261045976196967995494365971447025723474579085469202773159956364332132567842801925597165297216413773152190316540255875811690030726525143314366274646862932415360193407959370744672658248077664292970862206073517223528134491704073256327230164197159076853778222754294564330591344197561138955795961016464943803650438429607773731003888110628103587512103064914551775085913671359991284512430844991154442464726242416296734309319112401356283234596496602352148949009484659014688057394243939561749517622254891708270957140692634276852171464584936118711488868489968478998413187984316296346820824418586283449731213825041748551126917137772672817237968404846152355312488892936434340936995253984380956371365752712762171039809191828083789425076365125755967166016033694047762065493040694663270877433900497913288999484594915607378318141451866182145258719159695041996554242119068983453773982859066217504762479650866411702722931996131100631000721396956339707170360409589448377348785523121553743482475242647630861289241652599307991261405300723778210140357980634651766544706291101463470557675601017886358761607218090001635540764479895494591640231617581616000422099215539147482355605396701005442391874078361092822975126867721627734692494670183058503299725671437847419128811168378777655165281238847886424888294090379735431151423059716619884874368181233822866472366537608437085189209000714745644240045070792984162580289801743449379514328070049713594121107485032269202345839940724272757305541190993541453739604660508825013828235936811857588003508359467588652654659091603252590218110562428984776554717035248023688768138626162707008311090295820919126336107883619308133271690322897310722658447706980950385326229782679542413927027568080347218705130576689270786760752176431521933271108614256297371546417363921079606377525683454567917595038630968244189484993785213746799054011203612859049756486362961594198399580771088815851406441123919095303726948314017729907688577076822104669729572583243550300886240222024058385626015746094522249423316327247844002777868709138362946804956821612911313108852459818005386326429408688084185636303935246962471504293127707794701804388802730190374216564352910655898485914867230666160482564621294318957821296896073051571718733014255610391952139943722294306370309453877058467670603899463595436128464894684496045483468750566889160092727861763280580016053504917929413986175668672456024133059101095674845794286188283867790023210445249201028803368483228835313372177851346534698467156404359873816177312326998631883843460191980044220342116673125260461448280267443127585182775007229103186012932443334577572547414934182601707593497172818663486551685289681600663727930833530300983838276399889569932093338551586475032156960046015435322127041935604544021003633303977495040731736703357870845168806678335870886996903566146818389898918747542284874971843770616013130683882763022556902806911274937973910324478103092087343085565163972365654736363992470266177659980388038898859312733929215144458008425563603822460692459097794838999756915268660764070657499042918684715972856124886917591596741789755694056135629715826815828752900433299900188329083865599575452885611251671317921463647558890276271806999440352209515393704748664239973902461359031549611631383584910224666313214782598295492533464576111664843707016166223496970902155475656210559363978002126242176059206126526772664610095601526221049965831228276251298876614990746270151359377738629560464398135781400205492410085620836221967962019153957964503615644566388012942852619612743729829251736991755453428195530340181272717808669074480074944184169626227708448340897751126410413954395319115629924623493914969031961942722522665233548611496421218251337402650602896012399758460971046576776748069915867922672017003274351535162396393619853834502238272038149706196414991076884888065411576188821721395021371131045752469449401328500942352406871826096726094160627722973340121225685929009679549117276066751575420068026835110378914649225612444604955334306266546747822750220497015684899396928414862096164635755045203892323088579848254346728601466524384771253115941383381782183537515121326021896234568423580637287897044235600267113078958520174205343746828761659818805735619005821481234325885989051392124349238126600197533123549956135746176845704488367562547906592686888225835500991483353665028020270226253613610089388425981006124928955700313177205128321858708433006305408223776702991376227430349961143833475978754503562299282068409678728068480007033291308175341308559875033460828545044474283887515231442220771308297504367026254584821957366768189213383021969077135689481636466394491918894669630734938631371393560115658914306999662278466809930666933485246270298068064535348534246906461828342051775326722437502308495581204652147625924696360567978893509342042281059080392164849787004416495787889080051646478987813052094790189225890886408888282994216051309964701860077406345422755820904742086001725465286752086040246295137020319122312025177755413939407934085408758008826758663600647556949856376420120543958070890587401539586880138644454388409268234190358880084113481140410470543781158978576930456791967543847108293192345749584072641928815627759704219808441133739645041784414183968306045527587956117664575192833680987737815473066707661300891646342497722469363272989871503474303534129638811028041168783721181321634061656533942023870381154171657489061890927589923515109779151000802817905676383177747738792829294937719678351221616824764541814442483555092296320057629137013422757668012194671168008616396401637623588305606856264193846920891408570042287211441561790298425536304489265937337785783297463304795869713379470536476002580576672424588135687307758913178218329953739336814197638302825555846528124712718579622208678660566068367036710196320340506369346129067509754056858173106391815364124176392609789711385316613086958552718340932468449414648487409058740540658342543670204303489197840143732755379548038159609019123084401276306803856075548498319467969366606260599497974768155992614099045412031271439610876469521298570296945609117094981551486297747304879383922473612088152541377643245965630860164246023740614629396583107858596949992478097787362330048485494064484455665962367306796666945967483330269427212646435023905453824301658279871050181389679730996885231976871808125254128822396348691576977158593518662126274577205825450774057708150408148688680536476073031110291551737826720921579014955183775853887239541749822901354451244397013051075689651536644829982449541035857117816179127897900281509349186288712505292773873931905867859207337242319251556407010507106396359753173816845886798673840823947616352430991289272728492737201756255737888136626513587053835793278485861881891393398382464061010036549771691780722523762643501207017551998034211055802201390568388955802310004016242140894668027117481726099482227344417341774685192857002587254927906965771429596278882853374335101369414332558867470257327683036461035893669388489813489462549205230849022388711810274139847409298977960025354850044200052561386492851925889200322904018906932474337376151920630862635357178708778852804990221923498821831358655347734063562695881128569434171165890416770701872330616689031201213524287936885984130838827005025409145446647631976589535712683969674416756495275558042989017254063971557113286998204833379961356380003188329128883327778977441569314725156399080089920117354587868236046791058775204116993545361083386723434182151807459059157635597152833890880674242476362343827384136593872466406594770781499484930571204935668724243151092641691878423475148527147105107011210383210480820112232242187514348384419079422239667653058286620922655951898577949782891178091013653176887150819582180664005546010750349151074603349279591135266632880850420578367781798673152514127854156672846752670044152686674655384732981330438064560981620271752440547823081717547239477563621397237635051968143965527895334234993436618692825067430085483520616974580938130975538078925541122568785209708395998473532324672157565481263848016481224948838493213442548065463155929270100644220473799844112395213979531849225721925673865682209829989033058972061446580593542759387604048441841125199643946570083604382055235070829094139725002347417697422940866218616555043406206402000312909435872733780695001346593336540686117354683014927331907461871945459914096169657030307103862020625075916601842624470555155211684083882314686921108602984245449916761757295362757460178384274421864476529091146530537088887596050537541544453920842372589461801652573450360530579076028801691102402532199397288003525684000120485425768237985420150941951099313550834304314224520446542705105274430441412468051859614984330919082326684681076752579717581864494154798029615105319134595838100172095949810621455833177079506454886891549378805132411867337308922790485348048025538509710775054481000124150793425815894687098313417365637162343653225141527630191698037711736801438324505498670183340978827578419812190316586030157697460865189903697180662936900529482749628510365236217794107527210833311707725391023166289930140479015729927069530572764119139190799395151577466820788760316731900277131595119695904106099554926800757040944001944559883450718789230914407561459899433849344230058928064250558077820470049080621050106634595376436760214442305829391510281894648228185084145188886555403794991219455481151308459041316854944777403556294648353970940478963534078199192834934066497902450187037274010747233024042965406867984464051807853440133180721057803965728809785863763268574975004592160250289148418217919173080027770196031597515941983674470722499356183973524515484903204537277555311680980088814650765802394641364157747643772744174095234755061587177253387466188908854043809518302072994860511499010557476911289948911468860338251193756107242888656926963563407686354186759210953274816671484212653881172580188324340974108187281960577590081089125936350619186025755868129370830240176926430444829450153942694730537291737901144356611621714902495057729695693079542240900778669117278802791077744150502094018127158412244962741054685425205473483070271709075671294150306262106882838052407895305252958820232016386752839083342971969627278510617907214942397261950302900160691903713217052743216219368783709779934819405911635320623369724234987988357213325864277392923667742362422939796012331975146286266664381759652910525265533631865282588582848133781206208133911308427198323527292157398266116216386901665973123978482245428366624165282221360251133698286532564331286026818694777925119747842404607165785057612662937293840891172051630536445064060809039918397061884374219838405200596131934202708533752466536779558598487174361851243911752502835445869689115279823218900442731595854515076512620353275031282259014176558990414200580795966246581525887955300932285534595349929944097064060103694954067162880006079999722194679753629807475515169461708087339894271027702377055460191100675857640914659710587513032724953620953205090958024290373265484245403780485341518257231824581312844477463082761262691482182409814833079004594339985953788413236172755897372935889600071710437196264674696281598697813043458051258968395258223409862913290754005725408802531648048735757040532628413008030967464492853153551661254771655049108357353714182786121642620061198599167886569273764332467834771022665162899351087086218936367314607358538916340008247626904075274560620603350746734399213396407317596840992091250017027345292076677404017338186520097313246673595233745538900972812537663865790078740932600198343384882168921895330027133037641228016347173614336539091908280041648618426887967030252785435319739643303414425000241041043209255011798044154614877732042773937150145163646029452800636152456282027229737778546579386666989653686278910647482644810262334536431444305152670051817740592173694068449168866200651752968770039132581033733035408562055573123839676975395461926436490694082080243391937320832653844831333837256090317408728793087375654004988033251676074937904935805164156869775134379195128047112987776225454022590840140366423292674633805263996331653171692243908089254629819498031368470679358467119302772891694055009523340586753990676763590230301216665713818346971572569165130880972746700418845948758670449423316407780496871173371028065804176092862442240439914203015955999225771595489000923664116730450053537011722262566927875243340198490050965130678527011378565006474563347989832466610285533832830977838027676609481665713145646249653460658484189970380887155507037472049361640183865243503483665059028110254595800144694621298333186641761835354048043061339694506442572449920036105613244255826590242188231166170545994026471882182722537337546915238623033570089050329720069547994728521990958401201297681105290751757380703918360456871216368735390572974608599804553319867007655797468635179187765444036125068919158950376430523050139007917252846748407678597366832586785255770850198803147737336868655189396974929614738906217283471956119439552932119943227129794376127161977054694832692891963636114935870139788364905791932915516409197313065306026166250369368686786874817519523076605581497346705096195540397070123142775294725456318492731133903372973973797639129485628787354069719354287001224477986155106978840119985209120322630324717138484096049136257461684394034316981203982742987190576507597899113160308121829369734841451370465695187953169215910364006226402137137853393726459908937017222310803301520151051609576751079612203899092134862608272697654050908182688573449474227888206117862940142321186621467832889912970110492318858883297563494350643225329336248841039320048945550541823478752036389149089266830870277431946546565921483155221646321847934500166620138146602295763093624524253365829790380085093306559933769125820424793032159989042707946118498663128901926083936425171195661767886821485074001972763546846465939638083643771107844047170090245348289246071374617915987362654873737575713332728498446939609039407818602151664624636193414940500160029195891503072690176452039729269363219326711267569094395278127334108781866138604267057843337951804920754541896318352601385210308524686447281847508852907613329888467673872761314421203370776007368548341761575393486851392309156351759468615062887970823640299648003328786759718462662258545996844453012548959798327959385344758398795335533914586824661961680605708310616989593622181793824815079022691284858212349770614098702576332223419425575432563513017815185841802105619574628783953597379301979766923082510228560324821231208389675168012284499728039324803203057245451167644330294083730028514747578757028124609508420380441175628658190931000689174936691557956023308736061630632141429441471866626687706816019306236049422164546835760884152875767484955241105169654976106262490654119830928494137854464715025267646514123260660768814972467446136446320110812241053282515941672435881966499477197558704421037984533510000726067526090424764189029690042988201206178655645525479605203010162360336207612490806682735501379233277674017219753876240909302281155295088279527947730331739301497379401332004428389449622409984626973492439006026818462526177655683425022961104364884698827111980050968152472717764972670947704876632956764358114899087636912601357768128154015709247033884076022293980125273794322099777285242150808347008097825206167504744896331459792205186056061948164996232744903776296458014398887720936855447089589763386668547627208695295696813082544885172661796017054540628169796930814492565327553171107228538592696861966572411660911477574193071509189449800950503589115568023472515266341238055396952132197599919656131210283896528189929193100281192200782527111807388538298346446384913152343068487010871650143989968968233007419575724493289949012615764327012977198997162592005963157751598913662173487826555015216282815977975601375438610573460583483876487063919076525879681689990748957009288706603189924685364407336300760580016214488816249307370519629625100796738978899855971375932444523929464695293523495862482029361664720647901165839606803252826642475139338803452579321343379218279831713280550905473977423668395980334450406509639946934953160170781956496170659211003770983826226297343840420333482983070487052851344033620229926521332880025633705013769979402028099017470123773938182835747630518086533372861579022667755456349957297259042395088712518318237687970161917872012465180207245252771341448744727695511060437866746208533043931127008461519645424258214784406220709250538149777680079584709095920551819570735755244468435990308391666183716597584848620909291262413112954679381568590251587498590850329565730048500111797485541113184044402771853260818301099303412036457422613808321527377321440940297213560979097653805237055491685838067181125554155396955297723076210221413170874093612757038316717784111067383606722228649497022506265262316546931693101618686318942486888093616589301610642331136947095589244908432836125283155432387054867783936594962513566062839045968888295514306859033667612570430612740133521284282762937135809986097681218453773472911411207486105447144310591963826964699584983028555208808166497841238960217560160808586950006394729755629353681191040683917257614646382454727524052234082112806608418801316970391868452838637182269631389844726206015234814493623352659837703078460257130302194827212830396841594072626585093674293805830217162569895704462808902700695404434417739897706685325795643813413137932895947802355050816716669582140753764542000986587164424346609924759716986482515011956085706070928740446029154022945163395242281857120062814857066155281820503459045211748439917915008553285283994586499912618327171813257336952369024998289004973845721347664516592427296155045732939609683510107261748238873695744134552021343156113335515614459824414072489191099930754257886756009314415500890040859825723784593012293534461483157413893873362012191892618653735874234247315221674408320617846166686569859116434499911464547805302380918801480863697882310905544361555795856783309717599279724156774390776516511603587714193502870024238326120830590506504367103704004554112219381217219774675021846241859966407772270688451405792094995926887609878763926249075063783523513416320979793601938180865597886290497610431253619207080811362586107906114204788597614417284961679680669386339613411763262469811979328517843759175888535111856508903868519519907557351094223748628168360298237673832943286370109107166946546652946786816530364892544667030188026560665459024414451895754795207519984476833102712947100692665873591627547740135197562330713653623549131560068154391112708942030359122165786591718427164687394732471357960399867433702316894801996102449291999527073334315281206761764254217151315137053426925559515927795342272932525253312672967430758604945850203482233942903295362344305575614340427408436676656674694684064726942404765019505736814998789338242235973254290877661569645184117612890340361576552598204739633775851406853885399740806147011898662934423627554050102547013346280214653113689790299949372786030795576896228710747916462424358588844878877857864590229867589193050657967582535082548015206361364905241169845057555699189149229329198863295904137182247381399379289027122924916200373092213911650948931897609363676178234551832807170018281344544589628204970248604815287504407380608957940390726390726432356776544266351485963584299110944943235125088665940373015133167559783695961098584718564703524735828121300121107615209377774793981324748099945249267115313484415114972130079168978001137866160985138866475912159199031256184060590962646532893152812952184059641964043696667096294510156535691586387342629456605841987256308889455509978720689566504825394582793793513861503113315430452254561263582223049060016102421174457906539815030235217068873133841816019873382332105205858561278206176602897839810367375184343971254571933777586053529041730535464320096492494430848795386562740392712986099164271266329749375374389754204513436918566758036103791401050018132685632016500831115210426254901089560440590849426207062594246859621323586994394664308903993828706829662196610774908852044654055395942905808703637955405188116916727217494015578297566031518974369247830131395253677000397162783713118067525312589305072878161463531253084290619831754468497377701438139167937329235625748239294551889207497817966609902740197910525105191240389552080847753632283187521344951752191426707160849438358951071450653691232829174349127706717194090914804509296039443529606592698427469612147396057200343103685972064406379585469036595925343233064998755917725715809611020976402797475025723712268305756217616381067948385450957484997147619126715605831409295182128582212385008113266999693600252134726422509390394245786533511353915888920330292666525128195597422366010979121047062851735971628627357011627917397006202535715062550261834968018136841760508537705566312340362771328947860616975930597407261518453874482975210023459429064352963481690913770190420888953228984745201026921842781743108290840629429271690945234008492434447648802844262746819171784958461366724137654924448365257910470802489669743496931792319775907930064693247447763085247499177285043153550694446275449528784422256392369775266080094254485927481118902819207238077830516778226209038408660744153213164712597365679968900044224079517447797385112991184113294593326669485141504225586212416051789546426465589337255611506849759116154162975139735934919245178851762834412752270105582604472262554119776806183667503764172912839233897866225060635019573607281356795243814199117934145601386548178364101505617801182534126096354889708790194432511248743003638780342002177102546388871245111116546506584870095463869401830064287014065207943412377777805335347713875716887043386685699153150539874445289131282702543651169148915702003517916254271650373862834934119121275656212422444830446522431317989817688195196617877226142096367952342699478902979303146730259238939412966565196677549896279124255070512028602888801430991329034926798420252569020313602869774988106489440830903296592355752298672840765562297702967537535454851229255483503636699270201266993816174521181227567271513195039207311051832111869157019780929992669207012577998003314288904125081412672500027204862236220122532770956741280657663184154204014853854302665872997402538160895271923308467305478195424320931781074181099918186905781948231725783634984881745818323392789163724588960063040143303755110000668702100878110221010922090769840740576016979408050376044199773625229048954289778783007292023296562943330892169116168793018046952517539225218157861113410852319518236744884288191214953479273550318499857898954734226696452461583932517293478281184277086367235351137438838558393139819089596539717326744925538802852639137765449075374109765799492860955674303645118582502570188255150861214579921877196566641938189744815562730956257108771337168526471653275819416260820763865076763859059681471216390625348596548683903246856891118853169043562180419264273535037663997091465594722260623230898593992537187114582982450919841457527241373399443323933226395761399031879781317884052324311474752607405611002894712658389081982570070034212232923762299510977191609897450308207785399313223074593246856286044774510810232399330434820475680209064470589029515502794797797073383002741344200041983390014043079051133662911129512966423229587811495110436139829849654447847257768862572015486441945102353809556638941935547483504370259448955969617475797394084248871192802241725763311395749471651549544162298899529343056950228638478565036588933790752467663826682663585313469710235510583015940549701225348848483117322267569202280387342089641035944159251729333899910356584394441075772084175300782663318059920387011650736842914472344384538582094113901309401942413069002451609908212803331096957600942171686949290414593143791166283910794313416449407952861045563300525656269954518805898436062609094675124993274284415006372131527543363317921645545117285936162218575531861371202167764611784720574734340735172538416162614939977048380401412594137185891316608161178226730930226060698065807201269234095143323165605429936117439331609242386658295486998081857016251551774690729357336296923887434541111889346892996123130621498095833048513131608013707254436403622785931314752950405350475340169873541059128167491928507014307328504722533802947411840851076511806841302285326991331711592147304822580077258869999550209775761585825878798583834499638815101395470726314984029045917398035644907892922912686986620696781592842746809343882821428197868715367312699710087432241424090553298684740723826628275040517032292797031779515053209863274571917128278140957991057048663387284499527674764006486802938384724662428865247642864089995025053213874707773183182025491647925396270515196188538814226662991310120122576007276538820789093273784365395380632060978119657078105214567196639398404829694689671536270026774337525026841752951473587927852871127063144510461414496026261444198492797587746437207244678705494180880812218166062242237227712211854510855228587799787640291892347910322818986842811722933133576899587570468357568435083163273922192872512752165746248723883834125910054907916488171077874987304808846717314094445720283504542814561282612836683560101323618070601506059482277749388187551492384261856003807681655251353013842562042597100596628172276790946900907452551321777875847510980963246948841541031269913492050762418249025330050041536292929694655612829806254494314270672815443616935446147234093447474709618248284382461793045737189237935193872446547257706681797741740056544266624994178238456383064144186844712259056098210034418296677056860471286032246384181080352741783670418448900943847830018086613513569213327275590536798918919806784552528039324986886363905843696074275935216285682432117766015684680780352041121102739975507014949994623843899141561473268437659480883980187101032323834111055828093371743932029423474102649350740267703182011647578760162813057337524330962943767746613700903250704638763975355249566611890487371812587747408071234899595645770683176747182502144401133086806376183196305764784277075939713731632962714890062541005068211593808342123952610418986091048720840804421181830934111965832719863013403776676531490004819638467905103537711912943471539080213691860489922529434890237757726711570025581852918445429342941613629973607194020510562213084176302673480216471138103523491288311241197614664918315365847771958686353989067827535084659774477177610466771828276875112156678133831665879799779100933489704140716078648767191260607451292255830195577139757207198140663904463986306598828650512439987861463180211683895702829204367217438914019842616994629400284439419889705756591949213777220923888929052816536667785875860477273358658629564826593720726419012483394416481432769144248191210814759111910374432903378674356047616808212765314891318971123932778507541114167714464834474236046902821068838188516907588106681194273324902406209679712468020935868721304474874105607226494365049889950811894974274731198360463721177460124309780878002384316160166504398302825277465586621415410209040572211444779968625022707373324943237771944552757493450960109792979101646261639769208002097553544674340891335611934974007160373518984835442141187146342956896806629686169809924587714850113774096280558878913006193469705518377242284318940459596847538492266628705089840528030029525689182468648275706131378389116039666529004698110425728761757205317936591149745888481933396501725884464439583241874585384393691519275405392003144477805131752297551940255566928531890668728534091387818503443457806687973621464144994049074433354030066944576445501937124485183167188184465636086413263526519625585475296631200469282879839706900416649653685335261819065166500977168483545686558285073772323645860692182377964857965032280240799935618987004716981470535159384572931985014292733305906050194144560986489809657736006442463183349607708566454792384884091473810768515450258167393059641948336561203549108580747916498665630849975224935165656112226895093822410222905154700103173441300171647381476759580432971500608875789104278554565201121035198066278777203198746372273825835983373594065030984495670854797175748510298365860286611995825864153894570366517326556928749517479029541261366981299106854680550607968879894292194439775393144972705047721031764808986434717328794276187446238415610993581002942528810271105585692994138223212362700146810394712415368132835648895299324742415576640082935727822945782176094083580762216500790785752106052739967395910396972637086003367241466695794988849923615328294306213068526634504491217467323091116328801161285678100092611830487196257948331478139988669195346113651523184224936921915207795517118555568441837415938276999851593432804855100556646407431232368484642614514289742601899445713790598999945706850608942246098591239005131405629178410960943348561716499615471513620419824448790472151277377760227721492391619691000914396586583340246810555578902754478283317962990660363416451177934759527376954117114055733623152522966970520125178286773394371644960165733925059384404706971374715993576378612139962044911672935507587766933386712443812138086169192561644623813735047701860041889520944814815490387852985383205237295430650361318005897794532049829691060904951606828100716043483110159693706208386675826813543660825837764042445308714765222805754332745446693038263258592612592169201601776571328364186544857352514729861674100262702611316391943504343674843600366578937861583637875496298888798787007772938409707701470616042497727969283886922332677082217650722613714221326593850912149554015117742966448651871263145793465827431706814608790533804322251156857653522426429943395138910536854534686038297752298154922184151666416192568506980494899171971496026896829925797656606456226625258049734612866254954080192081016522046605462616097199351786860136748567606980948337805120261936136417018464840489995138147724158483495755079476962922513235241136473317278706655253543883816587762510314843408122042596568558893996798628505849379831729066299367722919564524628348331302538944006396167021217488725897385225921697110785129129051634090524586836479789068415437214158429212874362407942860729610890050820456837370511942631292257337815343333593465314215982575222174335555335664113713585234892152749296308110673847312518727382063370084497334569238847320295311786261902228999935207177463887650247678452814209216779079776060761508355830459849316114593162561736392494816029283295849217928891204157022556532935345165279852174216851123094487582992427274457448953675372757663057107947938636181218132966286402863243832992217859987157735013040308645936472230705280276806611596288033475104890460460375932222334728665363084401989122477710915086132799949795027213275795237964128688261954685716678424263456636287149832721968866323181856830527419869329079823361754717894098649956608379454369622554253401770983128092660184364735890552002053608309218736387058056173343046675001456181944596788451058314481495835236876789811355231102066015408468148023684577403510707098467663090466649728424021998389421792718572681363117763548386743851040769909157333827188560445823730378647779673247089645933481373101019421075766464974900944004819965725703736655091612410333422349214977446959533535119714472170107920372902715659997325258454247106595569188549580313841922555557447973355578396052433896110303426543501205169461884926640029576351262927079080068287720369254411752768459549324345114338412786613588819813570391155586518684505359266732966799470762768889336043365662855380119530856846061079424615727015257277914990245452820415963777508547212188278597649970294899855204744088172653972539372651840194113128066656342154467755266696180236933712877552908482885629454276914886913231037359106569391538103313602208706429112919065802547328478226413431263909232760393576304289239697611756172245948555027200320269748729617639047333683462771813116238881924819475194412334796726726710978221637995276720844742871138412517973569624797279924427957694912272639157876211609625097166218685526235892853085411241068054766817139409009458667216151342381180771751476355122484007432535539488775241341585056255199328012030452520258209700796602818029206289172211880577048288269804221115429506840921863045931778987718503428223373713739183463227157887708879334827332903681068306107466128043396133272749900703074836508923633524361300193192624035257860185436093407922255174738044036909298636916095226852794038582965058544839903663956650610459536656398104466245647084482867810316028361873417206956071792505554050589922271328552890627910464344386893801880298516018353281677161331541261986942526720711804087908440948060437339754294070894442466389584956271288176934942381582661781387607489153929477166542251326026600195186079593884389751709059045182386977860470443899433951694316931116040044308868557597584774085638326438181572829674501188101831983939092736555191767055748664611155528270736021768113024727453223361856658201063947863195643584422082077800827987105383677775820359098175873151798224849911860707833196212559940084154948002268462262203848827873313979859701398100389043149117408279826727973047945793227501305001255804035588922294490969615431819405917247569514824763277126262323894304619911497866844333393019831125559411834817574536932738071089844657013903752041745439172626915964755147247150960670946451544356337846590060143692357586777971466122906271071736726097395121238036791271104311053945373062631410263121545211883238395709593960472801231540672675080723767121673236694611902472777375100736434717384242817947852432163036313304117126612774664704679801754485583378877352246525990056210270150612988213548011549729474624748738985829668943665027887506293875138529661710924933747571210271545643918840043626753311617039729493724466660375376452411850043309351375845912585371358281078897939594089112258497218706381699242020519719346081715406380434098752846283971141488809235521405097672569443517915340826752633314997134528719780090274024142042912038006576829545956495027775588159527832557112861311527313106582284082253377847907941785573236066892931389542785181911271923744250411671320471654685695657488409773139870058652605236083363182190506898204616992319262122947775087475895722281279103626677084089527859768557570940421996259574340958645761060904354791316172319850568283604669484557414134011819336649844467315410957990504864551111464428971855826569140433813218373764527185142608497159105320746896128796701316356207341449369532049691451717559582606992900159009649737602414270168231267502718083080541045680365190414461776841117076643897393052132188792016823692241824733149604970155208401221242537189356908112167634891285725567189255370297452987495172307047489403633435017791273029862460061356208177509020613603692133107086329770876120723626387940610604933135989065258339993128738360354518739208571938234965416453229455467855498222298881311887900954749258670720692596464878315949350317469367752429726372197047671464236372350418983321734108929256138907584243844561234175057196635570754738745328254119824874304585225237757191783344632125408065934369434102853078800638341637430055892528913789956544224397803315782031330903405022414062054585875736528094267436987924992459601027970474770603700682175968624892934301957549674795463832677643146486428384319626863652836998813896170055829322318700729647661524659476674309594865704055811220201041255322746725286130532930400253039888732994063913680127903064613730553689715469167282312110625024312516376831636526274556699754309887943957268035298803746322011395434044484153181955718841941466166204546097678525928960686806728414323887196857787994963622256628794040467969914462046731941290308290571561483090171950958880537071541883282642694560651852449123096342050228940507205311416340486815257508680323766525773336159911509090334614114961011587996894217554804149409267132162886107835369078873621407762159387005180375218025649136489387352755790806845143790491395589926083918472183588738802707043478162264072274074942105963697288831084187851665976031571960428046250706029407096516579882025676268133104808961455547411309422850673876934029475732227838727700441275233827857096712961610216124294867493738050912672734037743306654761694810331466351966299162364197484955217280540773826855822795845605881250070047834082605473628583949533746962643782289677377513533648459976978486730754951450696327666592676635854121449241459547319679741388525387915704296361917311017309884813050862414462406397155550206629993563531773475776513793235812275864790995903014507256872209996867619281587961123855846576968973355153174044180546963103750836621939647042606520182068366065553799992565267409013991677715575415748990180380774962269024131215158469219943181645211165472469267844730916820350876054291163935933278859711984752493894243537560032566627646332827743320342780917417617381148081924399551030234069583064401909601917082454765906979552064659775008604810100210296871709803418691144713497952604772159448443738027211107850934498937480226208025594031608670250835356897766163699579184517728531462104163184799125626062341518107586450329214652972447244784480645094683734671844099931259972130461250721091839282809955649854661072881901790377913458065647694722481610805642583619030218715350155081212065734452928257485922734354185932257750521491981087586902084276934987287177204022395280403843638173254825430265280817420566546127201006946879817571705545857252776538043535072446605663184506604907901127993460599426328806077013601435011898651810696431388422978228940068262781367209067694956883403767645863827013355082178154707244814097698364593323020170764045558291772462571343715633325194904272227024390931136332307567760995935337030897376224211436329497839484812416060394381083075575750856827680394591043864236059563804126284003507198361177738491213935605082961323918044404599218004604404312217868293894875357301579008470512007291723162203279825949084740568292463998373989864771104608025924510424512172705502675094762404462354592844887919690557162630356975088320131350748090281798688163943037116388993177979050801567855230307481682845220877750632213318289832295524712579616110824922949274256310476611287507120258872004642757060588202107469491073367565352734434621880444510227234386536871560830006802294441210298041565146449731755067184852632827889122395143254122211321223720852790933025475445555828029003564614103306968701319290251162601439771673245006070767699689732922417018469398179619338572677320199374556673678857355682885102394651295999973577881533519847568052450375573498940163883698429123766213197679848254817331717578131607857446235928299255584811521210117392584298750085272149087298714467152273169096386661230368997499016199979835864535313346220542717009251174408804243983561493624872465427824502992277131042521530576946243593779146897071319910188921607430213668845790595879498564455821988397382226309576366363826053494147521421941461835323691738070769387887432048357162266872465671734839871216706323805881776091101084615191931582711342425940776749896343136978684566612039031524136246933128131257054434097324278704471178450827459085650392984460703696815380125075372725165248915867153854439491451460749355156016512994901111617794710537494365850989037112268941417830286547230984010376326936837984165072383856435587573719608101928314849567509859614113886328388913963648838767841595448739379119263803625569148326530124380279248504492490003390956274712358258952591735667856743153767828969947727417972731479774965227455906513832227157191072451042893970717800168919014837994613602049346528286946033122351996349603434401730862353836937631684952101110878986155076314957726207982521890218098118597246142401424754881270714123074554699100861507093992805291832655828719363174475415710019714636587255108366680762860273082967265345768646192627289538538653817038283777347107082517591919196387248195705288540832535189595148340189509694550143649824750629562861753745841276216465633025959913677276784812128417576047261729923428555187110073199652069934160905387217082555931025987777176101140370597605953558878115460707686372311711839080072635222383860486662789101266332685882204836573367076977308784583082240871530625489398716951621472663348613157679295500659731828483736341626166033663180860124201692320966937538402032470785296317808144914986175170000151836181541280357661142385699461071370648968878489208301545061282095583221930835839609361259065863001638279540216753874677300026574370144585845161702318565794027533979264229305335681182845563794998371719722252294569595789762564750657348180858667126425147860439390561209660474381090654242898524707698728573530548742879920354589038390804517844446051960286308229870401998019704052907637908630599823904674524123308190792352098891899604210690335349005955968661471950940191558074090981746102351410375991507495009284544890515705820670296765199444352559318127764041292305401626972677054423398504224324122294852403848091235664696447809884490329555072487546205465577726989748617273722460180477573829484437803749312960060973512177635583730111994984339637588933566469611119039485299493168772048772259245849152778500959535693163765612598044872906478433623896455788447330583469688955028609632563224054255949766798147704603644390629844321234389025575367437540738467986876639421773240031627732150739706953462039630472258155358317313968890155180063056220328260420693862015139598146139305407424608208184634544903251884378396908608376293479505134739702080990428485544003482265297258373901613813577054656198447740445773387766455851982782575846492664812494022595147147448933333214538404747331087321526090931403102005670857189378404646116799718493088931762085865464388722382314201205149266849848654988822159500647480434242392429257615008881830220749947213366005520363193306299320005570166544447115664924796974406373179661319518983300761013817252353673221394954406268283653345991420954770999374018790063054412533651299035364815731854764463776421394753941084070786221269891443219359563902809317877520775000081004141489846177464923416854222904314622014441196244911810478406554352515234661455345585485314684117908825391199737058331514989941576251799686831886623904855521618674520462075456431509489775133153368368672386608138794945790063379801041862130095435130838399055530565966991110908595638535744499893608490833824238395583413904556589538285820229636828527774479915051336076293554620193801451391643707787114390359861540039997289932388987792107346852879799363729424163527394795752598537161314991664752329456953667554176480379152295874596511421858360630093606869094868444004370213494736230077363266817330893132660602661857647787408294530852111271380078986421087576184324278162478274679141708702111074899325858688309664194763569674562730441286939894468084933873772170368399851404190702947354013625379400124122181669144472707183557325731364517159273088415648259651717315382996861073722408501029306874131143886498134925024584345803668401576960524997875689522395785373923108766760088817305392051942950745610199759680087419301648609952628095366118276617194009197387880371443403098745863958899929698531846024183887585918452179632170794707308650141154474735713303925586616226324657881435542765739500191243528694184330135877976608183257732902719382690980718707996701423476791859906212647305026991786822787373141937564109201812658022966919985447571040695179501503202985782411765895162598464641998993389900300270124078382176130434737404092364725341669827756894499242282210401434215394488880701023595126743289602032807338321033695853164676781663824607630444201394947527469683289129227279358414629968972821397395553402228980191576407277657533643297604293463923017178192207291156299823178611489808889491459784613708825552346413442133467406381782383483407967327880561227688136150408923626176828925115875335728058720867274809531898687102673382694828366121685136413279806355796481211478207632246622639615393914794477273497955262660128662472410134554667050683064832296356905842822064774206780258711336251271732067347203760942463713591276893767047371956764077895004415499611241900740631049214362869121391688135593332678285172520351357722956214930652088858956928110191426722388615287374198632512029330865172409050420022149107791931607235226022250964942906059198626363744237744008827164578841377226312348745360582562991630732064793417592373432404307724408890786991687342148905175078608266116560800924070291250775057154741623653534190865079818382898331229268942859275039832848562336162380240683336812903778750794730767602276075907059518065003978623135918943033275053520682794433779748649967318975111376397086249369416894872358414118907578429914399442680564204709032708784387527902553272430489970721534710882619801952755079145498763681020698937711499036784804435702830852782510983412429446283620806977048329662533946417006698237358312517308567826275761941202912335200605501946568907630840651167296448588908641325652932128417893997793267484318782469787538418987772301383660334831609016861589801031162590345381275089213493386452026941682225945317180203350813588778144996487619211317565326965173455966021255618195131944458178075963003788451827575694693688622207541048633995286539166239509172982538395177857003191144620750155055862344698093567987274159669498728530276554737167918777178082033483049756967710154073735268774804128895858591735212119368472102116994981618232556173014030293060153432293321261251292000998619143530100944061951316425970769856716385074864679030024796397871587835138928591498720892230011221355352499662112308308400991071649171716772026807573246945460910391760175875686374914425758599771799992418551160934729389307434419299392653765876434213436699883698810389975814940610569953056410574914797864942994302845243395004652222243642022508949979123058687170068338642541939108089004714984980333651996139840909297857916295210381034731158142564202150125891518038998063278065773141700826994933590256707133638728935993136312974174407760661442083309829483490974306646250367919225332413342762749277424367872324827856480437440773169387778602096899942861521683232144248377020768051879748738486970843564313873302182704531844093619294264916307737514159239656521724091233449547841884711040817447743767195765248081277932889931330887817777302348994473175836336280684975209129694708098085512535472214604243558348106523752936764943609008476903191091511003262630239702671928974514604984425615520981021952553316228319562905159996940338368564979099851647137299080611572703103127439998008488537864480570292315449478729595235056757616806601542119134042010283452537269500677270826266381038217978813460009031256134732396565314255470051416539442560161085793233541789028821273671164482781673820348076228887432114161703948523204716796437572386136934299926010472706375983538743136805307349570208459027972823767355755945239900173195321600728246236959017261916318240526552517457624196196081719839946480130294692410392970049889866221998562733244353490923448770980538777393335280883214044655571728689452114459343328767544725032775364708202520302534751202477973826297872688313764121801475667896312639525762445758783410947147196337376472727649833575644368680469182936794436426588071387180200270112562993113167681689986365641087118413341828217929153885061512729709738541305983170249970049513476182628552917585250901285787296862160407852635342885255791592433673437492140262733280483964329964966813298959766437567357957558926749885704803845067070603520795553051560890153750537414110993252744514474003013080804930454437203841709496047590506349599564729835423673379780902345166666293548434862886267627746174208856036590509594682346778060510651475298457084378516621910251810026439101127668331560968415937135197677104264367344428380086905812295879709050414764637220112943067798458314842344286301052646305389849665533414117384870834123361253221525740531682131904048581416202474068067556276533563838390006036188312581774194412729257901736392936068745299250730128486859385216855627785416692085367658919690840342850355836173109448353192160261192684161969921307971076857234144832687878243338488487095634718117788125978545875578401321863270128426886670144184468417096604008482431235152082114392420103353735241216400719619850535051546306381278072145390159208051685372219206858900123969361443260318005794914924088427760287362273526071349823282147803703453724962430378616199577854368492196783496995786254025182508251343326204887905417100317739088571867342475887376577757235983851872157604470619772011441798179452248599032453866551070674969696868152166207592525257955669473631086923567775613678871069413189143033220772202980567005172523533315649607575698034315357540556257125289033647302473949004036080311150613851657348785347841599826111100935672254477178786725980965494136137435891951970754111795050804297028457747297441953321354173942528199039052405509648392559147386771664498553190747714260503581275144002256268135409080203302776796936937164283270702857846145952634646307092322042934753416236272475884164344669309608302166099441167408137430112908277063911089227362059230058154837512244000123608235285731583754794278531838916551400198113957994119211067887413177731084833584860658830384228294078512119062118213974011848238487605826320926180106852170043130048366288580444055533324771195044501645132480322080941168746114249514042013486693524406077273935621304042689345657385079011344892070253362006258509111799731456294930746609345763981322657319196502991950322784385231363533846954767776879329094068713596684452675441836352216682570834704946669552818071214146271991241263175435858223404930704988180622579190300344548639957130402150142354597575337375547313634485159267832851223867296228761625526013541027340161938203142205638897456685659597172770692151071319395929108408855354517650874874165154349158395303823392354208182769520453357852328873105855281654000523107088883990485841866589343586759324879788059574693484319418745307481787667911757459782253567055682753513991955023005532571501747602386541500075633701420683203196025993271964198532182275843305474126341182810959027309289597708675122876883684743078313227769929617492308390152232885578573663241931529870433244292811209983476586175793027319535917115687350040206800518064866075796141736005748682729377825722599070336830190473021203237612112102717567773764369112016583050174937082378000795914483048038427383274967479082335916481578603898831706668936003369207753022961945313078626851419488714688568495328857332028727742987246393492933384368578592183823826172827351697130606641975684673836295637791390288008209433745821006070494057893135619670245424177237681615256399324680692862636819083165101361691886886051739992801004355082302600902189272343996849459721017768553979430911970021170655491827460082726700382613348497691467167954422675984985871996685462265330674467765034367023061510627944504968115239765795943307409425204286368541314761932249054365513896797975508342302952661391044048248015510014655245758555123952184406490944381549026707620675976235201094422651113097399530118776986407805521285110763066928796193935456212650258595744201954667088554162691551042824834018928799367721878765958101504473814048910025797560933495108663112258616200181332227634912337851750481127429863695435346895180262685609811296305371980185013033019020110825618003236609203702924156290950638294539145991324805727455836125332622825746348633054881332418688158245578982470341770963006205129066470261518439520842336011027379183882877642747340358143734130652952221377118186790447592273887450709070707864571932594616479194612138544220686924108178777672161909070905951103978250161783585055939569873113502482377345338736434888735476094149344799770802981337575733085882780061934234240640829577409957562786342937129537072716936424092497595412999233537850221826291093305047979939422852806430005731611007639282759810926932106539125513992541589709085179269615640273466794828570370212444691866386879285325533223642968734740554106797310025071745004329012964078864291155670608759610401476621690923319749779131671201482723242405709943839624624579542804091340435533812268374238090782261052556967705392999036305651640512819446787632262813241205700871538407858375134725628649736076975296993222539211149649856979182205859785438706699719896437757619950706589957482073450810315751695128802537507226836965371613646978854403776094950335112444629985267433003896308345663398983427873609744366936607625409106971981711327204115853452846728390862825620994100030103889504954263849987675503062166426597476147956106207325769800534415608206224443938116107013900243264263978426986385248075002864714655373562627955998471836779474787033857992253741624778905811343311968588209425469465280759217005131763282595080364614040256461117873067823737638086403255342239089924211659306688833642360019439566276182934861435138680255958866203301258365456993687652477294542508364861809947044956659397363520623477493980141067043170467044661483209164791683143423960556451495565810515280211480881680097574123731464424710928194301562627181337979238780148034938909695275229197753973080498693813820234657548129435137217617422971078207114662400481712393052748216785503683241563353747779339337545277704813580561787422360864672039825989244718613310824433571860694518770728871608549782146690255891945113232877767502053964142159742172156459877777920190551616194975956457905035417914326420511133707303523484505207205398555571044339333098817417846211593885782155027004920704387515689460133720977298877762009490903028287351066924664092386569479886342148835516647077969845852611192546894121923923279499846072720926397841039485798941422160662465358126980179040397881567993501311983836406604922117968098765733905778887739077960979133845900729912927508179912102498309160988934264457972530268430031835682586093225767718755653534468383322724479457743478444330377278044629713613217399600301050783135187374503540431541228960207234387836305276453068353973889992786572929785934296973809649588147493962162425080111539711176259819213735307282501279915487557064453197583865601406609471463498366926152637577971603243968816771902817467053873383824427325650840582625017702490794323203516228796185623494431515012036475918335865834817770059955134663126582674900554964007422834639908109921888568269768843573906868451189275449921041441070098331581964067788585482403943840927437985151463972444650647825673136039435186570661036640705911651792788488080134513453051701416907384065086169353239515916480854976376347554544958562912533386668636549268052163106174322187623469489362885843994564849082461774957305028211072095894275395744276650027453129541122883639332712804930723759949383682026445244024736042098523933160779477844841642439129150062363934364120444573516542996011623682538696118119418187001719011904178786798207425024492836568798959415546914642334591215758389214851723632477001728212758925491877447821603001487722183328194856795678336080161699456094220020877900124508222624946420899003940311652071671092070836409780431734849461447849632413162554607790685283240805088208258400988905916500136529122452197397671124659985156256596437421928820113793690608357043986609817657299049322839693194573727501354074344523041818763857577595380076824606827621638769995044513298173878652981608922722631322919395891893514281034351757733772077586590104032541703959943104586686959046674237635202487337862901415240994396055824048283920498644343504426590552540912504125322838098131816107077587306110778422599557130225467334750251165801740352213018552963875507717816682767491130071431785017997182564172606857016219642762026826829671446082604514273914933335351106233131633269362680015803202818934976956036826190099252080595405321511957989194604973030860003307341631443393536520117237238076902221232871856125295108255149636723685092780867777779772427791471816879997987704291767122836818032033676982833212979467839763000706680244179880691944247717013062062584600386675042023382996301582478799693136709436880143699693633581272170226979852022035096017111975926455717729905789319528298895879889382099718644104483417381703117324508388580091703407051508327543021730245943886448722631810693641438557820906170851999819951684074136672825519029027152811815898383699283010753189558177250609041351683372255705715655937547018463169943920821523513414049513412307128464167042149987122527179063883159477750150916518107673458956803624343367229513450811132486569108614625690192412356828199666908628646794591407424255701254953498704931674002639180048673584294271978966858266555029966098644756226405620492620261026151935279210308919112203457759065499965430749770305842626563224431723948826916296066049099481916131340553777092801677378132771263371479263976035581802828862798544725293197893202802010470417781024791605106917153838168348006575835299437104803344880878713844896966459089767177384490476093990302352366673741299030645531944997088644818168641426756641929422879770896097930269896947782031691591996275569182128893308295150441092869766901899838663781683063872890712643653050136846317140743036165707907951630652963885210548594979766150013287427987249916805487150509938550042298241414154726469782212842395768640996331295710595804600609374717342527332204087494245294224797199029827321308145418807306136458016761639587303500520741876703654887377406206236861079930119079734618283157671102594278197678816305112281842728663985040685193188574375789041392435740322159432923254192282253490365713582115500313026463693503334137073121894014257272507424512063163715571662016657007925559928979922227393145236518803794542200055350376733474234176942482009177129201479399564778798791179219000137116795629724136816592939405278042972731400885327610254055941332690006806766235399452033707777816401301383717185910566252772841642665095323417727746986908281996468020538376201801000371316042669303133654005675173071973815010669300352481307876800081845321702734032742672731936597160180522492188177425582853025286908668367771535695282425551139976137974379350992948904024946832887509073800733314623130113701677830050342924524131889937079653721687584375147148469752704634727267892106156043109886166379624398229627003719224368991751876080427351552569573311374878256025064711652250734086142986674240235008771132030529284472320098371799160774044016777798387949506676237686499346441104812093909866758657682749475931845784556282479730397636554831014419741625548643255255906423598369099460022489988107323789400832439143194435752098835589810436363835296322922174432033055453756861411400961322090156213259290236964877835927630934754864009490823050924453662082673030717790238709169674028081541946510981576483152247944632669200319077571427937983339442809799304469263254626452734145264283924949539037319148349244791513892977432458935293899397726131033535915322413949485045522362766411674676568293556178350334672517706680043699195450846666425067974907672940066945347497907214232445531799564903381106460665229279505283635343787581740680208683495749684415206967462744103858615595834646297477468222320838140918979133379047350568093621897394328666726483944926207004083465318995660373164422668888082885142430980470888361471682756135837775176367121163744208202389755905894047367975902149236805995767327810049921256121521044209486035852817753237752593664720711653576266851688806458401334951300137102127266200950722732862306342128710756582254862911471599122549267344183755482961236126122758808855523068364002501896092439595336023503661295864413277387307713890573547812252390200296767397940971895829593034368985376334265115442485736618314586171766563576293010470262543425997861305790431905054692525261513053154288665641058850483832181745832471025179152238568591916555837322574418484986062712266865438626920127580636877136209699620576262668396723191760022422772556902423186503874627686150152485373344704851043115436156968901665871803258008494996507632750856619539877002693743373624650562436814270382229030120240509037179295001130646807777073378738061908621297927187764546535612736869076800541792555759226922471477870680655199576527379297568137758211840768840180231740840160274267159886606960728544452965155856952454909128790398541093082912260564422575264263741502901830207958575024930889266583423891758782566103910559964430541368597778850054987107995090699045762517231223485408764362259851998953785199711471934484558995373946264348428411444010533603926953531207662240395856771716488885917235506902455543437029821025182832975084183980690526179591848674711671350775954548447689419734258512794113443690069059911093733047124686346837525025396441480662948200711836940356911906652535275007292212151570410982013559880245081074613912218954769191637855713114774393072518538070840212227447450631767378965176644375139654333426223174785291727602523480211617906461510050412186724690006908048220964212610653700281211734655893731776944139057489142812073328170523229017443779748233747570584019588460972459010224206020086645094521534649444053753410918335793631781242685456027110038012545589356691725202002250040654090907019982281107610357956131645745253116034682427865602308301980818242971872727223795698069881572265659685720183348713643350621613200949361797101906522052962078638777732134981568250418553382457193075385996247190012233749761353746377254199588772404281120131444474464716032829280746549870453781486439946829444672374634178245060044369025265320223641044582597806314416422374707938617215610738702379805957684180458486587559163980178207502803390939498307663850632086960472024434581447628987163572694984315027965555505883448690445971799837496128153066339649105992382487027651160528214656955096673144089483430189993794809981941610177273083992026341590732222574841439763830056900866155462662872633317752684036657348536675561411724165086038926207097170509360495113901108040551152541127478160562748724220682075657080636724740221331963818332663360027308526434125626246129630618402251853014950967403493672355495218647104663691325113350120839539970209506532042896308310217753647317948862642756549335209382082177092006210572817535307735664790188503600141792456502127060374597565983061127579730594641568577448013337285451238760574237378332802515667959261370532356455568404610634549512671197453400113752291612492886246916062720932798823625038868924775475793654934002456679504514329533937299068228230283508783115184742764457456055473417817975971620626380618306000270633991872986712497761992185833580157048847228827128134257353700960219082146170909237977539355947758509998080672251141711808963152322640641367964088992003561008439313641620648952266267867824540131283280414119075452897540677417436914499866440429637474583644905326301621479919625466829467345164146416792279906389110099926718451591231006244967920675231501050782082764666176222511460466999474286942448307868775872401198529820393859630297655887018194933767611825928426666618939111026596929072771349673018283910578382268186627364202468101780807164904281370441132164394100024163044538875962762634959862129621385824420586267214458166357607747284331791056639261788990426840436983342749039012798189203564680487254620585804597217384360011945196154294880052423349207767541495619387918845740585745377994981387635467397841616566826535872173640907469399857175174482949913457846432859174695772176939960379369452537418299132978079054351144209082097885783527222727592845137350010440314820042236556648691423139048185895030981257247951561297080643752485866187137322854619704545157592366189146762827415625281050282057864834743705332181678216474486913862610389883328157133493053308859219806430258920541006995122492472708123067554968425724939472087256239989865560661018113424283475741159944179799533092928761822023171271127870113786077043102913918173296375243788956419413592031281774523487413202626404731311062822115710085449552832703056776347178057220086348333609030515011641361463028012576157160433366444135905914989157508541777612165808650578362545953734606045948365802372467248916297100746878921820064860227352491763047478523884519423022812210923372769015168441196389409728018225360423107514580624584046678852578945166480380946890909529491862637396025591491069213350236566990807208922104273063978129117557028554198549118223234150654712457854771774873829652074957160508098426868832772552544161043789619387071170083756195609128953946314620701003397674658289802164955880634794817088947428084308909466040663516186266716470980053968612029406564489768802247757919427950588393784967581762637643703307011141308862456929271809249875042758140665167269429441719320816397191520953615413953633266332344536395773303158396773001189971332516650270039097353240227054486133685500566032034276816478690294235896694982198813142123351253070349066053164361109400131534187915338655438447882379665944623676387005403463238560416231700531849152831767956603385917395666001289858588660461380702235957166815780709389138035125502501068787466048092270493856860306600030394949666016848735559481299339253282329450202280323039553241225502268466910523409926114680752476353458895322225623887356843315254793153383836145542825929897558549998675333665176553450787336188948420274864132127209069982000129089769670542181065978460549811158231397375969007653043033024710305116084349570424916129794688459929435280878683911549545299630330417346301116751084230639312072803917295044040870445751306180892353015392262470200941796460599119987566113161906262931245224436461891245437264855349405384080408456894622210995642526388440312636063718780767414836702020734986089816612956158722225617294993987636915404214775163505494429600640843857503667964902278685872562196391743042395943179687516429184421155028008916816745283841598518759048193922592748290752486124430358498795230298447201804179372634338371758556286771743816057893708899812638103077173029027934444438847950099367610617810521151591900562989327282427777675670515366980134758062345903811430555313806517306326420270273463237354359030364660693980082159742168227160971102000556324298669499256807637644482139580153763100755261381480658495671306341499002831884715945557744761217017322148222408986165771694041017042081792637177850058848793549094364531169689628511842401336002966483294805580039887075235272591878792966617759212708771899696841114418341215065982487599493599939225120453505375533905692858967981487118429110081456253402197734758353141142454009080646576302788894955086107429830738131937712538523140177653785831018886316134460580008690818805819449295946022457643724578401284226926212592106140767629646224354171170445655391889378228847330304663560350940499560677273400503466173181530550802679102447784833612185521287326303437194885973662976160076782498900098585004641344911750947680056070826063088083040564346684476208532886295911140691058618435933291561814984224153480460612582600486993547077144399034628989436419707249547315346292144715444798845471959925067067535143077449305705538370500507565789479659405402216352652570069963880616095043831020221228857860126065211871506834290545785728250945056961572980197470059073320788455821120183386868182344391862752979993364324857032046905183502079847197675922111451628542526050117887483340993306591826810716454705638450502061720022084237948340840198403293537808471191949980759409549147340711550754295922047232810530963161954431311142402803679453776087035304712076237390046679753694407709120106742895115743801525390637182662361186540178572570990475134250759013362970820392196780414373426367056810095528877384718350992602222947154300615619466530716134525278339163334823092392052878919853330848802128771216540603336173702913131700505633421915773149333425699976390489875563631847587773938675201093803555440108934471897262355781163085132368581009037476746166234766102077328621358689107385970922807038953691693459721909175646242354142754398898735903638785830337036334452652962725430203473806397294795364858907610933879812456769175776550786047289053860393705953331477235985336748896234476561618949938090917529909146018195724622833453556231527347679961987332310525149783988448177558655635879868775317377300124211412137713974258946538716582587803880331514591697652124990232923477457240082588263837459148349936116536671333637101662975689916569100943356107745376196475380923412301838640937843615499561884918158531026909281752183872831289562841869006391323925524310605269201600973013204201538111591980963221977181404957639282010670262979402510670840208183409895847748063325318584491451470015436448715340311904992343626630163010955718699639559817844320502482935291548290764283626863723951759401786498382987824884003616555648373667590925537643167262863768424100903986962725486011530398017091135363283965445055546090313515101583412008073785026143105256520292100205860209960695518428626813425979471205592283138450186338803033413746989463079052070461713427299064518311426449876919996097838196810044615454653414941293914725911073055171343312594328223501079305625182967020131162966418052310268102791409891971227751803147742865096991846991947984319868531666038120052578481637220129328244312046409097355192923071727946125975440539657599636294477566243783019235006713246320259094581501232218950193140053329889225625687663336216488729992633366995643552339367961177729384659147475531395645450679999277789245110841437294262247197136213060514025377189739084635165405918601713631699536459442369598319366044699644535122369701443426204276496331994474378956733723378418062365801777755471556286898921950785902362295380972231817647343443754605670520054418664439601005010062494668156653416718181102377164391809695703125076730746009811121331664258206073168560973879369151245569917470909153346622368870557186214097256248527353897181259868712947919426355462126878343006556117292739079218251641154393834026575411060364374585762841508004937393308731218391857444925619121103678916110656121851566456578183651244171300987021478486519291309458292938021751367123400011229250546574261640381385048775807162082665162306373639476333837601638821912415520069481005560603414755101348708385838193499190428776176784839286694888537983575429643349480035395922960583361571534894650475757466702600159470134613238793560176019598790921379328910235356389469527557344733094033254358992017085944259482871595868279379817742351598120175289229782546627862058463439809612308963018021728874737239919416233344684726318494590798995952664586001525684873004535809152536650963810449088186894299798877151257945753311401354298944975547408953290117738008708170247704213486585352307893821430525952315977707359522124858141295088781277132200000571388900940155918446021868487423842709784466087291892958249097059846348795730127140240123258038911931991852889467530693927461366243652094475989029576586550945752156105637797821376607928145923366624481116695203215983330307007164201975254613973723622591465179544397768833777086490004780965786800250979448116664535751722099550444161515954027782369059282931068581452140887833288845345911970493307569222613244108631842807665690101232363745437935526447896397738277186130711893471324948822276080173378812348180199601166456630855221099248319792354527791376005853558075340738713977259230419460146081626727590253463862245430809355909915889266406002875748771677375533077968093748453000098057151766711756044238252890992573326708914085815845820619207804585592008898906778342708680033964730204116244136733498521562710987177827740007611953087277457646545331585763911051451466230111838854525984751862715471734291421725427097478458051800797822327599090785490625974054140347640871112511071526358006704957612981577439823078117579159371397484292493869164621786337133946747303991891722975900793959826645855948815826978058806209431024591858770131689808198465268774694052018730228979232627851260388255559934685971650268973739085302833881403200983537385484993943260530144717389316506771148346500114637714500440435122104639175194970305808492274885958901893172057067203785350479881329268143151535092708999440325725699436913068260137657493533595319634394699755875955787677831453186997582938533154524923417116631934828011064776882532404862018788298650216763158914784400211108779591777133555211007057533351444132034015834509449904183803042641299612577005135860743613793626252053636512089342591093061953438671398228561781485796706777915653381420822341295521006861968933039016026662983485261906806531113776713603030424035001540784950285190687780911962651630091786833680140363203756445822082690670774189574278607640093871130793086926339011773965546637731422488376734909662543823038859833336920311356668682107001369773742179845104760360854701455388852664966897772310399123147058068104726027201377893855812375040090255132920764100418043811439738100972071014932057505765711651724805869308693935807748292921284749693047846160980038438685274708008505942186711322133029039095751435240977705643323069312751208843075394340680515917785935844147343768995431414980552490790131182985471814413962991983388713226481316704097696789549903175476252508002721679458884521835837606901340928662472857312657929460930270811712573255107413649756790572031669674441780216070583978631000856670135750357187960128914053067163641737429686424594227143785826561454163377146831683428725842500776312535710349886136579452559966613283391162902139816216513754983376601534318955363830852216539370723570646872721007983184133327287218895445024644998833594413691293876227358051690169276170035526232626157046372928913266792411979000260867450209560581220422481460418922610263793971508771088518822750147197659319882313253093793383542587578960661983571039619781651157589251392579966284627622093201778724183519198736017197312993019080981001855791140048842505283589494854395009515104327504244223378708705858904609411193384993626516403805447887638842939121911449590228888307413704178983508996829913830026721971063500683897760807027648122707990636688877433789717944630565943696071154419796554345703423559841148071606869164703531564700994778480020175278435274550653285115797806994283613534099790042432289471523680115492281467240683400382772382985460179507577681440457583340547806060498401617354287694547626367997426309349217178103875976416670535699524927897998920793351629048959138079192943169577077722468137075568483605230711031908669907685700805944403288780786408207407490874834737492182243102705784836808072333182148789955479089112375490565938194140646164830124788627826125313877800679943073080385982967672099725454074820184972300352765030671999500562051016984055299325745299431930445253648839048413095670107370240820530845326384396790137244823147295622161882795061113413559869662091851690925068181348045338788585356301058012323011428346723066770778239545751078515014311637333793207996680214302906662537262494765765763619584677126679940063500520403209487641694427307869814473262826771499562434787552522015937051915647948928341467741345669778089560698431554716665044171830164445001001253906797970652281038499043458601874836310624284777233040637547671467938865329434574560129333605120957430134881424603648616104828096530266420672740629789714955070139113415730328675999218952225471343668747182878476840419018033878816943641385330136467376371235812725087975904366525622754549678811162110847495368592210207936846297474597564209817500523668291333974213451704994525707487613896392665180649189557353571894867783226763359303568421893423756742292820451769594308655534700404135483781627534119910646843802243328042776958242868080740869952036457670535923777431704162701659721337877790151102455358863914389702998923708221615433724699102198592312692801765431628192791373408007864939651932521771831359786801553360926401555081908981194049862546785076798427932013357304656382051340650117898312889361144452713103476406228775002282074620069040517280543485043115044681754587038636706417335643185228275741066363947560739797987642047214705725827219629573499457185967248738626085900633813591914204478241335753630818745717090574470738720905698172187902574616795099418838570813963852492637244093851387018362209234981328541849845992813259925903273123165437494054997003399260095454066569789275975679593361778467114223073277002455240314853064290700304594810369264437305338449045502036350622607319621223591631887838136740166798576734538391009480555284178488630526134270169926117863821684641698017726001186014587012103901484791290898074277876807440883514379118901685799321165311037280982399249748043209423374574577491740494795728422718704154919612880006892808917350792194143850583098934867387118240406282809802919104403673543911608826626652901359193230636516878554729467803090424779225396436400776965342255517790145620694127357984099963296356604165678363796015340567633116006300505264324456139602279809736910195570007554917427276437740696182520327393677659134733773515440852094742917704117210190984331693755936956198486534184334850743889196165019253979008887228377629423431797108943821824496940697242717303345352163232751754808978069654680882908127628094097420453078120699476157229230846441510861741068352295281728251472426479104668663770108972519570464546529565172451535671603506652240417425078427009079290632286513766089725108786008778002384140186706843301237654598375353420044129902053826113697607051720738383687193122362304354192285632786930375091428134846112604268561787427725574196623624483998462369971208987611305551923832564595530922879963572702152949831800769740052503271281824973530154664183176273250846594371623262075908520135793767162882729102217442694981147750634102700552787448869503257246166879373798037569802609245059505037022133212745644498180013943880759080800395701881902805760045217921997010618620292214037977610430739154304162925171211535824655468336250331296788777619300402410197371988585500822772655773761109082968639080247400948041253425212733774406317066739188783197262092161572500331259354774443704034766500648381859802782307904544017038003706690554939793801559027950561349381045971842864856137987832193072506162584731212775976508780711471166920384576829480387359614165374855260690602686655051806334800877980246120204740857309686720463014100532913726886891629298859945891212198945647867578387028552617568075399781791345820494562740105775962717844862743174319801702906704257808697033263189165258038500278694866964388732644358521814730581690453691371440488177378472566479280565121524906127973270272883962007436102619684963105973876245159435422164231693072826313727667703442080944323600237138818438435671185935540145271331830228774889741467056939797604834542951315156303879434162031226809709028784604280016262807216090449805818698751661126205989351384373876762708221308038442384546775360681028595658905157868618328109777200984221178033986588142132046582603985950868865357065972911393477455412090377236185872378382079838403916533789120676368779094891657545812967169450509095574757671689438363872811792458599993276408650810898247415947107061993841793520975381652268553908001470323469107292914382508601173381137179203596666961154647528742255485732649818435744117880032017383662739274707698445931577155973668787536675492986610934508957637937360216479030105870832475714378410623778835912916854650932448640542359263683465571148847082848564112938950367079324679152168763422937529702362497493826611911920692285149481871698050514064596632256590758214981577395578318963958554879356429000434958833641117244729423884655227843347899430174959995521616938872220238426267980884026249283211586222430930851695876241765111143930268255117339236024991776807809665832738873569208164003789622504930463744290173757192561404754337099003688949441617980754029888664341730389337240294293725682233480498997265204477605908239894043635254201888560210301064298593050858099866068368779991486956972045903561726665520261963774452972239705941059461744420265756411294871905364208603218642138653182564583056292040747362231759840224775411939906512642100480625248630944424303777726781591351319872494740485299659908276129340951816838727663199140674396459851537128828794116966278247173868670727364602811161118656571573965415281641743538984721409892512379642543071193321132878724876197409783272612507493741783076313710479673111321432708579709100770575643390393962641084380394892928014545075861109351400035640361177418634985349865238276020606228091758247243471655190574449165459420101354408038466280011792986961106603425936987781350198392401122273420526020113635396517379485318109901780729403150307373172582178829112187742668825993819978279055349972738336831952834110954020126705166942015124043139161627824772509740650388131516043169102046338752773720651743764180666086508958063536293424434054776426016852793747490943217803804868543760469576098689017491241835434858257566404002999389584040787218207614212980501094455359571311687368846000617281888099268380454596616353423044435255648001445034829315511493728159537513425598532987187640173755605305869356204372202985853742738702207714365543069485543344723755487841761582480480866616075795999150869688700323988358289360293750298889756435625384091132138970493869784267480007386657344712033362784526709880087599652065646391212280239540380308721512330340345102061013882740446862766906418757186180604276118881331332329952319494590423781024197424248661772346090945188212973058836150637074173609599467113683270508530170559154074567582430105851929187889083004130499607884735264998580572516613383297497678899767610808415287116469850800154358603674759710667016452730276056498476377862926268541103092823432976096887831541669856988407185356762015931237624301702715646255122765887323091683302161605770547077428921549320260969013327988913648808861105703248692294104068499792686846899112882193530900904496232607775170396129699468590062164542341837561174134786582696043800990194833851023372655021419185411862739015308532070577785951105795163507205167536924252988800555746558168957695624056646399676334251415965212410211088794922965355058188134229331191754064452228177634761023427429818515864682609223914974400825840092278483433620405740772973746717402458962951182831567740947614001018024215773542109126379147686567033013376382647003860320010275365877227914082955932050461452441540175767209138307454404533825083620163716505132417987358762582948717564138677035095772976953118575400183580375722413767530900777484734038966921278924204933003663466409243405198702296399658557373933753430176830501085268664742833813875017522054927747178036603158438459028854995615788690048680074524974041906656538150085800512381713588979548962477274788444091537693907029280732114698840391073098973286850472353371531542360932809756852478748391178268770966699272692934628033142204806853963715125359025545582299054957687182509999863979644081239236521933333422490697610304466280547882551048661153093846258946645608401918391606409230284431083108486396458171510943100328805261800469853567200219693665297173186398689624230052271223624471724328952741042482668559120062587418144828949153045862596272590671341263739151349923177162323394482212594259597311968575229273360696251735048254111490447512713534646329128327838235098149786466891765989975045952175001019856532136033494196301614696605196162548976709559490383397402201963621250171505403269884423022101540246475950561870755663328343553512487889565620918169061940494635445445705017299650625049785603801170519026046279542580243167139566776123980632381862796863659900136798029461189112790538543475535879667880107171712944157610067964422803051653541150347020677029405485869580132446907545119912868309993362435466822900147100194841716610879974652659855448044090891076217947275472201679037721712405446174935144738524547395483767447759765612083688838835388859766505202132789878568168130465475676395761752196118400979280565624544618782347292848243130824274693022990081379169269684297405723097254948294053090712364592932861979752645396588030792265598289794215135895636694120857837107918311521200576274069097187230351247938458540057173893907730144215507383197508249197496027948141069979078361534342799834246698926511339617223908804218816116099829826019267959448248377026944770636306769652479668475868377498225087885527693310806437471178592490270605942857379481918327227895696751151500194111546933076002374107360819270661482089653173275926367516328535553371505158851031861285714807444593553037409716477560725929131768375865564869120758601944759352823101545115560779532520856363490831237302163637965992241942834921990669603588133644337960453849876476325059418406920803665839387512914217535052781949118058942767061006599892647808570104055364297765957010703736715134812006036581783275101546811590236803922459169027388258687478004116206445445179594697772015369568050206201412621419056345802542127630877860179005452674701741685107394145214832547325398463629315521551840913297999048671877446106233519804606340499897725856535718699970980414312486446106150032068374850198418950990935470210276294710536318694654046021470414024393128384230761762505007139447809213027427499151408871408101969621139499028700479195939697617860457880714202349485399247783599386676626573048415407609588127273822914209133676047308342923444639002645090581712159433270202525086628834800240254045860106371805211733763567759650031635848108823015310223907341029217148204611471994961198138720270020858769840385739129540857633245321677298220480331933965637695624217954509438947732173853978382401542316908727010815712152462204696357044368433213755373357748786703520602670987279650087272360875733598317938832599537525915899898124139257686640114669431547406208805446968090738827579546051250200217848749288149825148379989013187915551125667425752786928628854329126895821275031011839751436685809711699591952712680885568674518792374825389851909380485322016155252150692130478482078233536027012936917229499255322752829446240990581750030441004209748777570536382867067462117299316353114399424029433810754546719016156504855485695082514875376751553626758194688738378460450895224522557988732854856582619249305676951326181800492045050054362189865287061472569757849808014571909616977372064950231982015828222237810207613166799633770049446693845082637458216376571526858921228336536289043170890302914579664616875829270852295055838004326526528529583927307416902503687448049335890432903473750312986971918103874792721959358371916777091088800557534917464726936127884157056574798973293445218612770940163187359027205397426127139163209997187618813313516335183099271237350536368173543291382221553153267798211790726576226242857907409683833308216903455830241397242604038250437722749502152628295502992051247882960702637490070252137295619561102195860863937130728443789632505258765905405559000538172769629640782934994624247460018720067428223752567045469608266040524375783703073825357945512525813173970291411686904526441667536263877313115832534494698500775965630549349648328909488909112959427532897467249160109716876188650822155392300001998339382164681456927027059334370447727012952882197858413850147540293349668495070307928304383567953387477881378442013473258560684634428063907332545808561044329237691752084001501376510391631130061561575179731412925695808709464942062895326451999159405877827035109297621912824387457654220377338206650139339222632145182811393802563216515468673177323138882612366562498685114379202589678481567223950069714205097216633437472210248256028834522573932526298973662532732100955801773573839617912764964464858765161400338712065900585006029183445754900760924446760987094104952945394709069396748738936575325543781128333444901340194401943595756259114263073893659234180314483237284776795311179090062663120125411937322689086996876623387000982635984950744361993045314343351837107122213414427520839525772793466237993541071380272439201425015713813104424564872836381862549392857233919756636528586715921534244094632114726914643290196147121627324219001252536353853801183487001440194729815831892362080911432586798410986584721858610710164558175196880698571280814063291845068882431548927353628824063680206404570892415399368981087356517897772859556355270693072739011427845387162565955237292855461706941095569637627958627852720863672585346227182925988398901652631992707649959158388440635294522296636780402700085567001153464274723871937483478720314297683941185472607057082175277826036671307465688959929390038966657461257077112340445363922260732747797092210668370262745975851097829184691546225849083344738604491775417353784756692364594519769891776620838371934442560417774715474388872417706784463988240693029796310864969153123240505087883219485782033525614134324324699514291670943355803037664106638040766359918470495271444431727359786079486593965823086372985175071169274065714712739271876163497446281830685492762978875021770846527617956378966502033231724813457882369130877639839836039004122586454137476554887284340427228181012427486207749602136082796718725650834455892067373791369962637790671179499283803241279141518554674741561900126130576582128075042211153722310824526670854254537197487840094112774741514864778047602575443165618552097432929360843181400961061337675959858446551109792953524027204751508091596344247085901382148216112772099468823481997770756199728715508944530716470801802466332086793640447488523023885421823516862493540051309880460088788169914659204328197213696578559338500325567641948967702809638582929650147189075622535047796495412749856792829789177596537829909192461550323595336369109802938102175581174333971496508833339910855042918070172098175585826512972437177820746187718004454116799321528967557789145460578035638979223442653053195708622823055145966724292960480022945500417022420105564452806574226775822534438252544525287865667294213404393421870610509834313355990147510608205413981565467016848977329433251599157457131393175618729837969529508473573780219602486161216080310280820316558378815140089205156701570771210585782821645482290907428929950949453335597826324550696389701238690846027131115831898067423449090260756608103242049296458929911330260848310756875587725905237820852426103966501725800968676971600616354516281548930961488107219602322653058905554936183179045045207450861052426122704434866476210278348170303832423314739374008484805690761894364818959267377934320806329040553830284234413229153895759294489789440283951783452606951089704525161896341564425584412576632847611057755585824765148946095789984950035157142574233415547731600989575613666617141010369824008162864396043467075766935943798604668768978648496074018041717458614010375372818493420497581965431264962626165901177751979860708388670836534839299810596055608518374014042824653739595580611450411270183138696589864652101750157697965505849793467141748641242598953536373262772052199929792513961646888947114030794795710558326800345936886161139413260856678440516359508577329955409175922553626703123973868334872303680692295204774972824429723837862088394748258919596203016445295249899008740691760374732937060810047993753434328321295279985762534059302559459114208145712013580549239399760174876570641087982984416369684285397680768519397741617720007170725897324910468604607747925191992487070022304155924649198924721608150890178170665253489586334785306101042303685740434572146533957677403764615643352180621547592871032110042067057216318856475102595696169831036749807626898184853417132123826948561071957491338986702358478632570551812690811981004262244509756226681280286192414791934947665089737070382372013937831977884251868701181344103666755550579280557436216806170129047676978022093866341600662271360400124509359226501273149439667528362326263609756131030704849237161994246513787677568017649046941283693459122660262313467109575989356636876540230097855772808456794371147996307420809895459023892669808281202920617242214737313787782245760539044922981302009452082456404914056816571554751432837954829768346901318197272370464087268754536385189757802498509197130712145927407121311188318536817319468695647371924979930944375184782059309342920611223209041056740262239679492625842501963884929128179700642689977446895133583706695742906760694210104109598806700029139050247001309389669988820947916498218255633216430251497838073570572111393823240503277435643165571638909828844310051727776905740910234962235517597091762309668477403838211215888218084486782503756175141870259565886343964152808474561082769698918441597536084812483000440291779155855253157065410107033024631894827811330327652962762667922332549077481552680538746261958185942240791089869175401822625381715559153795971650799757819592410146887252430007035366987938539870754758431626798642692584980132225745427453440023026857621265695002980268925515457210639227361016486170599345987634314242927924103356956798754414420437008921974284817757352851147296192707750869911573437879097550992149607818114073242931428606459236960565565225261278462360562801275390775376069087380172911740888004489424612964671956811588719342459886569837303193590052137767949102696008331963786377313861487231808532127633278370938629963566176397897159163693063404587042973804061432564032420103573500765530308022720200020360985772025216217981880963555208829913262565182303584124346714474300034849505641057794590426162575629600135743273164378022383851965161957745204279369123201526468646628357267400555565564842440681626782529950860888998899276748760002937713337171048866908562786776485625360975987288203042038054445065610439144237647962996955822550863005052237381886324098987253741167572239927342866491700336837053790576171264236783707363000185657647543963475645043561510358513332848405495013074353777914925866755648491931909568480196241705774654305154976135701419209291425689839215783111041714413462887747659187392049650348475274841280159878609453093474143255018026894645836090633405292399598813235177706256126168672310434202900628131644333943800766360612046362247738247375820917209395272156771408833485296888318153562411373191971276797225478487704804803167058466443069501543871013764406640218424772147972822768367701097443420623331488159217484794646532277930448250433336463045254630892649024079978320350087066335318605456490113354132357530635644693048303143141303099176286864852289048583858513948496762357382521342639079869695343452647287926289505350424781268548241852087504340919770570670258975628347515543217939738948076548196707966186104077574696866962448237764683882847532253258246756654644010752636401607423250297784551235251118322009351948356221939323213131738028168550174505320659631252188862633672562312467102501477184581406960221385058114231539014126376427269197140264561978945965590724683821684725914367293263742829426435105457664798559507692062072833671654539996987454232233972273646631852612312912599508210074463845269312808880498100004736432502045397843719721046715854921727216036975555818051265825874369730528150895991780250333434363192267188904553870771618467995411002201850525468326404492562470595874189645656588203866282934940486626459648872425763316704670306003297762330342974989194269249821141459902580123965348138351727206595086343685166438177956624390573715955001242612648939471359473755560304900006511580592595516804886923896016524350516546245222361758207914803268581736853478876643706260448642779379277787408242623240855549365528146292889698829482421209084088571737102594406880226784044047308639847506995940460538113956026114682359762587156067320280937264848995162916546446442350205806100664284951368251862033420617375527585226392170038419308597584881122362517813973202675626740912574437760491750395914065529309340765549736250277672474749855279242118402181583476963272231649734923004215822392555282905328925917476821116173291936199421728446292521390042996661800907406947202340481072536255664336917902133509031782735642985029594144402982483895803382910357754216199400080005248332473388336679314113161173473666046230785593702042509267659806341502654234470329274468739464309072308507288189335560087723225886373457734162175408922142111714577927221811885215167296179180056332456958483360614064117869113421485266514465502183466311673025170633753003723591625869614398233233617340952411040538756689266686827272289280422185798365789276242532149692686146743248451070546877732923258059334405077050188679969733484999809923705922646754409142093737715045590545376875433201826806965094930481879842867284260058811223763275527574728145641025307561458990460302833434231039746333086833683583443951105516231973403909768632742627965953357653591006126698617383199556563546970581888227181658338106281268034949547963604196954606016003392832485502031750261880735943290188239345294893629819428524058114985020436309733082452727038159399567475195138962772708656430608807273006920907147171510887125468354468937816139736705519136156888937867377053376444881734995663575923519551557713029739863962306147857784432394540578275222401107486766931189345552136880491906732624688498535494187410148755844786589720255160866926549173286456467195067913645687326238034200829287224958807215336971381289423506953147218401887184760344075797082336684728911278259205066938119120516404403887647176145034677403368614238393065594894390156301382764013632962837427818679984142487920218356529766775395037308348711593913325607303578271752896932689466947447479998425068581103667712477752003247599140697468490758953356811308403940231376542556945864849408429871517301111715520499199567352158025093664595205255089716847373768198183866000618891988672165656007228454767688234060863418815422942264702115058243726870428633774840798873927373321173219795429205860805936452525539451161123803379261279508259024980720696655856440281608188823994011057475112239540653925080826842358426127185803281674346362122211963049437356156118275478252494184770249521989990859430394699430299562906722311505108534836753620981520090806379191173194469114559503770581846977526402934189055532393397587182365537316156750560961593663984071320809589507437654191700106462646459486751259748569013358829681514548939059507718208445432592313263930357048948136529375557633012750691215954667538077942793131863595924726997032139620327517849780568889156324181148312794607161773088955206478750937386221085195224880967551506362330904825519214363434787369931616200414713897255869007410336119994240910019586427216981023946356998386875177889552644722618732822030962887339999635944256252878231397744249158728895165402602233843530065066534210525531628159746060481477471093805379377581410980373778379989890093375166956824911755007747694802818942942699600413940634993475241733917452425520780841490517915398357935145194446010269771871759160351010346554429381902260152459146425486298499355545818394025986017423447241669604839052648893400533867779647045897701578338754413322328089463937888575915952201476788791983745179833207874881035164595740739363954028484858401206785585957020106396595737581286685898930569809351766383984109329267171090247922983673180879846279399396967370905848833733821854224625937076009474669074605768527536172004537579865914775977017006636413004311430300196019072184672801409920997147451055800775436889128002409298323053327091937014588265644846622630529548004577967556828928638075484384127648921237700596705877484855571646095986479586980095480411449229461925290836623533433565632438296288104041266481771706674433693140050847991436647523666516885082808098583324934142819715674283509952772494295913170210680742410322594251209621578937564386114299899303035671939294383024036241252033763584400711688119854871483154975507953687028397527636422655137364134798249192898137450588138022763807052118845041437218644864634316897391651432262500728576165883213018029848531924906243310782669720105002419185149665253254068669540328695132381842911751264620070553042329133660764265044869979624575703150539010329092503809675098970193101839594043725626057644214158551880991406820706395987178895851547952315867309432631822411039495504950358059547838784444963849581459441621219095651034932905927927179941094843359392002837252602213013691576953363958112273549963781735340480312064684756028262169581260879210054014695145551688044844066427299884546734329552257998799837016542146661691200060816865565835935041291548729380722847758612728328562504939728939149422956145977628773518443180592955352563474052638117350343385571151450846642858434443781865975568722170384380462672785231892028169203555951643881567637178181050359352280443411347236038220206200414043417508083873894805521112646648168942729302624512608660691764348344462012644552676847381180658273831515475384120294229545412255013367328818786505550487238625522143740161304959314942333628152647449400220256187578368858885082365300712008826827234354653139950630299770357999438510616685834871677691930620935782412423807900630936313316894371915875031026922725264556162411420338975913546111510318624413945326707849957433682075139767016492050926303213761795370960867361865823362735436144939532531063034921914327717564417131401824866304450439235895853375728376392034340231934664022713473134809047541115073161725936331710678409696827547496823987077067261065798689837362709926725724276670651272098269183293184925248303572427421836167912001543323007285134530078436534829901179963931691034862091685077714956726207418226349704022989794771485714371828010541221607214460709187259808492651978505625791946983490288229460302324472982608548193382587835195742642318579892048459993224360444339494706980682649984896453065832054293745695275208443296217955351778202123630424061361941937533017164303211195466132524415249621517240462846601268197733153657533957752292969651689831939251689861722277152625328657773905526664377261323537223992056007119754402447289146590050092672359101213553375188344897644524029335782455948426581329637208825579666645587931152589945585191191870954194659319340273354029005252430967183847096206886496616389871716793247330097547808113311221991964912574967994352544018657858877853704344940140787584802119912459938465538829017254786175907230911289652227986720078636277329860587372485863012464727106251672651157130596842834784843431755283209872982957988834870065169160883281462792257497701012941811471015972743302085781376278617628937552863176815904202795267503966679863716879686629324436661115307185727080278878207974257108984894038282269941018757941477765949576029999623774937912510219328117644206108530009328730595448617956256239404671544284297908895292366373074664892515241421148428218348668198991953088051763378837450818952485443321031987600421146646309559018515790063057583174905755963090385024781368346492420345586269167994685621665388162595075223370344038262482164921981400335466798142128306077817546805215034956570143509812049166221233312452431906776821539723492209244645997072155726185681660359274583145097986480712344174656412852313696356268183100324204799082659762725628803497601905556238209079053184032643516779901432753078332095679668002865991888901956624492495069108308202897997604227822751834554555258388291187003171841605458844157592247005953688038157190188006530580652068329261640969107893111778299726906169891985965323953126234769125911686587209448635293700899897368024127307933384467462052591337244949959492185967362007849062290608179367530729323731852843647202063312770262307473899630699634314244715437470469347748977376284212398153867434809428554669784662513223482049937402699853598750049539769631802766812544131296574371151720105792658869500232058617555039148457552556429067457292661773685372993082672948924472918690146250910283043880616496550327278332368063031449906349271860038772082328691135047761837071508368424602556845732443680145391394387681075452849683622611960392456682987530335706857846815133279691658062217217656803890228539448159411521613557759758366556759086560189363761201590255418470900004768948794185861729736729890963450530675041715947385072296598745751756721550428474964214882061030895999566419337240355237164302846631291873806547090785866380964319907802630848206507645386175803337327674682326741187781477741693812811989336388773236267980483984345407896436411103749328061473879189086041179348122596834909148794379047357701159846380845351445580683769251442883180066494919725477573177497146124985951738292122248656453447108040969625994842935363324256672228780078906728713644543915382102242751597225063860639938129774465668635857696772572258057113215655436677550361977336427386680022529426714342731001031488070443145589698520617574859717662170404001104964482286024862990416701285305400014796820274057355757801719519589829595399465148230219920066713047303655048360659507456536772765762870625904783343091839780369554338424386445785847302092838489855067786387980855917946395745479970576603239950319590795828018249021346490334379585332563885148957737901567913588196405761057587103588171372464756844127028836631226720396132359075905485999969224302422665105575185162034428980967456552946326912620409018077302646610210429685596021308354822357946793274064209090037730191963768138056487976678305558803618255858766748806011792348438379821654041371675447345074296370610027279813052189037612587340274476454395882743046432007329500110444605316719010738270862628027229765738151392435305489296866265034553887317322146510001540598392552379722641651104079625789101746833519073690434622189531178888949383800475247126524114787777305110088619326417451999786595243423112431516891852227238729984422538146905724827833963975779125686894087573549854223165568203080733981067262778011352551018994872392088541098036351483895930366542806227311635819904239604633259253675896297258781109408635537417365982129530763785562532162649367624251025602353893677593650659770431433720754093559927872182039448918168325112892257452744763445587832259917534161344108271572727657895130985824435535347072789622659722467235307222548131853633814587800372310218741415895702941090489701746744713903944394302373456724804747138642007448301661562903412413561074012877154913891941793266714599771403955474866796387561286817284861597528300468336649589063492899164103729478556015342070763665021442333772934125661416104138112948147901377847639216082721541780614659724671607224955032156363486929621935582909174216606887678251096475585283294909053531389431179581027811408621388559097955999243828277170562870057347133080581058044711192102015212078301003501859431813192461338854845142457225376250444169909333126177816320474501170187664172678636020266459132939207618658088776193973249243480676448575374804740864397402998082086699445097505462540452478501715990043386129478823074102524488680237461201195657962716132364921613318388912118529183098595542825208881178260122994310113982434421390718295776863532299699730465913752281660511031378650004637679243533305157399123991495962718952331879029928214188155973957422967380226932954926828181189010546842025024838484156199927453588462019670863876064483064189995887825889685706789128124372659794007392730342949595984151859502275408851340937218500584770946510380661690895407053656886211291887385289837907946004128685122828800730801808330485132781911605228768403207752954600511222227086944762416239900229032143098169503175566089791416871163161207491365095647114956775520036542332900662723837910235215625884090045111870480358056300004677472829228499778223211207643770997723622203312127928034614760545126569836168901926071983263966657354959996368742347314355606532806989882030549639199806164763802946804250927169167281937989974172934970353899135277113798038861644054290060192641167464840444608832699832223586986274394232192082070726336243231551339218776672730592244273733985126665143326635648761094543417414657947126149833525067950525836459132667262690422303160528018077089341146601295560923950748037056707973650962561861658522910972031373546457067148140108933743430961245709662658084979071320608328441738454803331843410199046034011092060541245245555139777892360276525138177756866752618769855886114049399748008262354209418666679020606704367914980721061811386374604005914083714671090688581933591020613966607375719850663851106361144738303222010011288170178625133705213727082587946732687997951596599151191955678924339352369997588274221304625006785209452802619583183568893530885260591318414339186610225238393748804166083708023643336745680111718838838501257900665825930501535985772324539732038196670018788862074245801211046088751498524839720529852506013672753991471189046264288835684990006502269886871472159141628962738408611831852919553325922155859438705565534264161587775688112536416392365260885599222782668611585200674852740657236130932523453414413889039482625522599340055615229324973688388497046555553409462760900096171954862293232397296297512832789460144866028923186586848875583140456637426656922538638215208815160061886554132526982488466182826586360392146364347684415857387017137053971907488173122407412138474230780351497828161799123081391138408679851434842283693829135142221412798703671448976583275638352910820855323556704559037750049648207058091491289567424494321288061080216474780078254798662393884754698001671371821696540852145002549446534952375381139849129018313595756715545140715787760983700288608331144623768821051347039732774780331435846137958480953153570461085925745589358382017053253742461214726429385546762786950660175458993840333379683709272855630504298199932218812217270370549511610563147887715443617014577087692217809495828855796415271666008037575787569151789819427466001561984169839271587980497053149871016875866234376842055816587959508120991296064042271889381066368783339294052194594732398069568656745329260455799531106785910351278020714318674088601155818147778487259893252428152138535403883198511563875778696598104637589437238649115805877162104798539271884304577903522376154901526734785922270026699684997212851423909213121668073274861223513437348154748760563293179937890846618350584518183360759446665239163301866258257748091154205524140740579163247673587436798043526566852471139368112522324886106056810377314781595734617515873900111178950898584250578663491992846730298561958920813277320008095050927146421961417872959473591452915437070537061614439020110896680802180101381089401434156475682241497844621034149798656996376343052242960732051128870780586926670335927442005812433827139407827015144227040964914540425289936070642590443641653497937536445121929413217566868749319451915842578205525276014862545685048884110643349932785329029090937301948958411375685406832024969206616411502699464788755084761237201254139617013454395334089871958867881598566034721143756073260451664885371622984167758849146933134290920645254191428625879555426491913181077501006240497170609147589023935450698290140559325435299580866997684415169815270229827300233457633302092590466339061779858382440556229437042352541751093803573805807577897786502084537168777182088256040027032329641518212170106955771159550046692409012510550634477324980778531914448293652035683067886777856448168303612328518270674466350620774710644397910036675354561838013634406717195264244747130298920145015363717462706729099391674824978327659501473857823761446934352199671483419759443214224933367083500330006465010003558283113941864615221753070437237766153891995404948904720474244384467386323926230356602675497179229671071438218557008331795657579248010150770098724812660580705878364165485442625924282074831144853150333721527922187025614293775524537804664123135204942487969546023167505640667322897853038381969678308395947150908902852534547898384493116374942365378956927566296500233032516570347764871810737319796568785580348243679273190677100244023944429134895633458537207927121216834937624190559704884240165537584337148583407883346103297105950319610665622324327889812639285201767255374246740309611302892872239153148978253050396951098359140113848810227047098183182343539174726183700899224602202944296622574981927213030929643909659868595030623774437225757839958905567734460921155994916876206406684063499220568781973378132702460435941879834602627741458688898624100265082172019219840441035232314799733213713968013177394884318175286733323477128483000650751567612186933177028972010773331701794234584570234459184703160528798313716158869807235494245383593504711212193319867085694734615483671124890190235487879317543124675613524337992702261353306400534184227824409202891032193372352260702566040807042590156829384932705949639250000583134153081545470502719208690696784550131762021688412890113275051548120909052611472345826916435631921510470386785215573434858851481614401414008976149282609358784566549597596260447135957432771663263654253839631179545581440593504374678471798373832001560491694998970168907013506608805991442787136634195305391992397072426250580617085173701920514604584142282998936421826445742865856527980325793550663296007772433103551092784234470668465646890073876272548207956080557714031856699985403181705836810353273335923849900947997687364345320956469185771707229159377422351574547637136728150586349444172662226022769223683502854844041038413462734141042050271264997552944280339262894994850456371030326716932542183822792276416696960525023363010170515944551808131084613422122153091223745381493759352333330767051505523951277286099068635524375260149215723957342660985682789231715302778376996169429305333361494828497017682893415448182009283927628741925145572281055672315501581966599523626924998996792539806093117513625035554499320033858718701006976344945533195107270412392593101838973651636746209883181317727475790834415189619581440850477734063732922011519380712237755363337690528304001702229279908902192054863705211817078736128491147633030075067188958507187354088161728500753364653256866572468193660714816368457761551515720181613363335093396191418321145714954885545094016183763944806882238595884977095852369277914539357151447567936810297681149500649662757907616083255009274796752513300083791697943462380265505213737653335392929054060302307590158577233636343853454949570175627918712872099130944538170805173668503835459032389412086178063550894392341817071370153028520649498608022722786015075824502435912313566966035385308389033871937556299292672816408062834718069300744206002289370134678413291989892367664098457768066733932305581630978894004366428555771862591998870069584783085796127550596437319710467362866698949381692405665916149303831604259008446859383767678232359790363607702862739694340119259334264399763813453009629563619897847049889239368018277094166741434983162417523575725775294970317192195563426306919168710764875071313950659930048857296400707564115924554779383733675099397026196284153732201086948254336560820130229126459249463806593404102544399880690066521133451796070803407857382457881858987357298458738303190915750736134261280122214068874296576443764090112093222581531362715088172114057029587238149029861414062671070487876849216400491892750013029490671100404419939067370898752478937092508762388669610789055797022654945103468338177798246851305289718161456945665143522103868235408116780177123106541935198451009279667511245648767646833816341979255782403132020701752215353691862709283392809039974843627257641166209808251685124657137395305654407789038854430111687652244451719454784979649356895297433960166048666934552881487146143534016715282836589493467316725233721583611013684575580369717409237331235179996075913197823734420089585848043334356050689367249809901915591346742477842966964298793847487846141511292848088270931289156513339701957069275667918771975142822384749651060820300850426893669254146118690594720749151572385208081820276174256983741327708288046102331025171425863795896560690390132892997881501913198384676985326779265316912789736291648532670783801271918220229833813404967294950046007451179616018230964262207126055248093039231195654336526098766338263350851321398532823233137838876128111753352371477170749405834253314378505869784574342227828758667207987801843731484083611122270064666788147229122445226968862031042159514687357490531600793968525742070950367417779226146766840467638917945981838557171255585693275857366499361160553038465243095979023244406212197399315519957575406543797293964500064613578201671927584005308383155846622924834647018070303664558121325985892635028140702717890442627359232269544400466574293015127426387710100348800865901308742914872969697843009375263585438599083933960190255700437995946561339865486248078285661598047758588080070657721619687498247186998565688514570019285037576212517658907420152290525499076309095623106223109340923233068782162871150952998785518742029077065032390176306284347909127546239678482723302200998046040496623080245133873513171947445350529701619318882203487163855441231918528294603359682448407489008814819900919577456507793479376066572282574767138706748106930766331185872133849543661408718014933296683015393040362266020479399661009822169009308173004664826854024135464915652709567745031006531617549868424388671156337331433499313113732377768042222528280679956408188019096178659431683909014161004895043558375018860223329299759687249112102422104387560527391888125595236719714931282139048695268355667142865767593853775384620707519475154684423721211586632154633238244085353470378653323239797714854041200220158756425056961727947631106289450806416083951182912207760506742962754594862290492267668585797913766257898883035976347664440453916019278618771138610484760717961278589481512633406804456996638508814071506714843920906959835501345435713175883551112375735854105281095581261221214852353267318985016503072759592670970724105042416494559114521051775253392449046339733339568528830495236448024606709628453399034434486502666376150480766523954993882716008644074934678533839627660550622814743665080491742015421936865925079902670118667968607039782986840948406275412562206117298907109050138028799983725961275657570818860141646895114352968382907812573653608241944836245956858362679897067628971321748365872073816838814187684407331715797006314081387303927523768171060253240396870345047054935031002547167299350162772368597239133866641351302356268372474863575662041869829613264150682584990525220800905910701091337574901593780444327977922427033052564641656447518015236588576685612302320968227828758817543336406891940975647207916627310952762934746317899314174824454073352021971084665193906520995726320369653387404032005590806105705655707293084473694914343357534112052306024813805025143576184730488919754994484159761884086998068695055975062490406607792034429509090212477729042642746727637482205033649108271793928592286684060157168880198662238750110111825790219695704101534713544175028131425344841260552540393840830159893707864102589086845472274926879587722924584320996522367883366465904067049005436944707058760106201773466414772095503388221581393921779546014717257033103800761918251118230755646086598176626490681729762718791096114519264755336163169740059940750250910716658077953186736101333148184473528324789259809413392114196506304853660710613767685155106391738313893925898402873917702548397227871993600511273586425206477253977396675976986951776179587397900099469996165909272256957719133477652816408551550566510960514253378428521898541920354586318249459536566290348589964277063770900142751143635914449773919977609904676545052593401588967734220748796505675357526853196349044153103374912443417142067624022290983611680619606568997655432456892826602022415295660496436410505802090576301356192028048622604015392554534975480414628997797151006673031115029381946320345567946347405302005472373144881169948234703891951475458858979320428572348826287042041661154095217961232530321736466569171136175534876311663426213386192167187364999015335437311829990749969489019082643913394065237565258801309172977283682469842807821865820969264925068962105681321242236219331853161519982200494060573681287215301177937283155488547807705644755133069880214056975138906031023079816425707588792540328682290488063369633785002008809676293582677211616332515382449725186907816255481568214530720587753574624079105461658857806643863213771446640530931377273354335079491988320588026004082902840123659987868337626436159363399379653133126975412135921537089466826426657952487667791399060743256628941564756085812972540488803101870016518351000162847068259216689812270891502119581092389150128037960642461585504027573382804992104712400624574923918398277332305408007763681420251110011991267521467007751387144385196162812989747116293471410253144854486425133893652654653299169161103481472026738715336030336021364700736857936184042586401802129234800794102967665740243422506094565320237031650915926818634079086478201774454332075105873507591175445531118197241189856295484730689244428813832539798089530435927018271212772955959139342616028267396735046525760752740230283006758671873205683630050671849386716679351636547457759562354741001349574341532920230525536465742317539643852414638380999426003739278748879227960959874690533077750722135098694021742171428489360601252059060770672309767090687412931782114978287254797278082883340254870973306341946212592039259604455175069533157476858290619495725803385477016164566214067239546478038764730727804201446853486744896706268151584805967013143375456089958079549810509371085498265217375774265716784354311952985263848388520689376952749258437698918563301388445522125626158926898996556090236435211990713578425235485768961049028965955681189523272089674571880588691299642548912911591304778688994338875834559282447922804298282965743658510464959586713583371714226425714507806216418683854000475404987530638822120686067553693781565058685468818637355949604929101175088796330596125056857004939723459410587584809382270072204533787577081763968435826917492802648334589614657684539209708629786071412266083475936824337654594409097776053298662271296455570379259396676341201509156389258412023675959867172571741483262394244574240886770132899188314858190434580431260431940441650767162463981817732750608304257328930239900087168722261089222020122391749414459183588264507153492975260751469838242610354712120871207918396608653543631642233306270380631060024177551497461088710366528266339559009725456652744046642751719739735918562931572276625578720292793738963748290388247513683534761064267843983597699218888555733526791417337055730022965142757817769281075722798855504407800511450161139781866571575854005639989324089759624205005709223130195336973992074348998987237080751082270257481017617816405435715597085327861276999597084825971513891497688182054541984890662248056919594331073180957208525095420222014126348863961802789904041076009652714860400452981380958246474049779514387768140642232359145864656253544450328164715988513897254287578886542270259799955337065083591588167019133472935741241344803313287789256752400922749967407901719255411126025392810057210353250767161126545524350779309222830320431783222172444406246779988116729636069997306824913014278887172016341505346992728889286548084753651191573953352274163341923658962636038133703758528449282937826363742963444132044986959797457669285221287860807845172892303958895906321378906578883027776545796913456200140410811488128237466725465495931907693488015238902933415106892717965603763161823383244496671581626584238202464595022589242050858145914036150541794869343254597881721813398364279836944871803426165587500525275150715447322376739848389705172819310677639072654410397673721692951578387254585396733007949592828353890428841086078373603300353301247897569461731824861425348835534253880059292505958388643680325128922698211943867441739496536000179590513729075885821122987721209548931287645124902326931426261338585633894608506995807595589110455496552743442714140806884397732350306727740642805885093839317363739635311186823141423378055530358230340806925132189937103696138046411376567770583776540250604333498114285348514475139366439031739931539486212251595284572448520014140535297535100230750441849750823729106581634443037662263664717457092802607233829245718464980726692967074570801955294142614425352981743639154996923473894043039166488044581204171378608168095324342484072661655419846121674578820788966879115332523826750932927020677178782312555996144870965640315081939160858617838860508801422643585287823850754050270785979914438493843385155371984574406907189293855512938603232538573855784895394673853615908701780147925393137653690615245726794535962135754771022147340090781492071754765673107595564750577453087558090705967438365396128859728058639543375597228743210233776629682279228025696971216385520682924108985021190971998818894816983775997250921330781155277663147833466705722756652650527789935368609216819561391269227782764346800677510603958045256696073258033488770737542435920329409165932763319789571186924589876948790095462703087150083779810165637587890508193480213352673363286472887264167010511849964150417238383684890606547505975140591885492335877799857029007886062182562874933544731101597344888724458106809115393424435535400121904822570812407622014910998155897521101697044198478034975399087472947347329417401458951845508223361019796869578708698448973870702247271965861515677111368011351183207173915709466389974891822945534229883408200577552711069619520852235507700784241492609443511512472373621218872818835455421925490275531664446112059583324653560196607858898016346811516437306161684007080139825862743625794680473370301624712702271891344939663623499275678712900760338241974097728170058993713331984383522358320734505916962642225781475062486532569680865052788660224568605198708779802239470631034752223618050165497446672108047044460160140780628105228623002509757092828996299346266724578014763268561610786047909600691342907407921746019977663033366015609645128361865408060776351809379185469890205173589781654161146885595311474411107798524751894130028165381953419818541741522211920720239850219418714596485384652871298456516082975673400221726385628920288948784680808917022947887577679895248728386215128452829186858430055251470349034877151004933868483279601691585109827632087741753477460762456689118480881491342482192351635301113288081289460013707263081121353293167836876942193016795989810841972740838677813448355870533389632845291626664588527927312149910935553397451117368036283783742785894441358160146049398045193918082866604596308295435866678929422390489666907440084237645438978570311680908679820755446753064255132773172743151089601513023981990285893461268907693020814788841597576112063651104351745707161694591721127024231681430494245520585706716590520888302336383228389454630839693428473518380054312659714890742724236624379511370344248098526040537187153779647051639811116049464340357902304947585671537245478048996145177907083691258309980956898843390516863368148022877112500255140562362798255890737964335392773132769078291193750705321000068516645219874914587735150275339946761306267375260889549512113156647205781248485884663563674887114372730255992147814899289347465895770745053443834460353147876577844656630284549710259230969151966382248698777961795393723110314373252838598576161966002248777653388237565606730413996608080743924222057883921810108257470759467806351586697894259622128477803509734623122763810488566215001567645435392761511810970667393222020562046668406572780787480304317490351393162235539206310494531198385060426266284479080997916507526984946337209665133612416166480667821276154529889564387051313056659381662266037633847945344882048086244574479635515779134376557657103306322544277941955646335708263576565320403151798776620189339267906494361993881105960716225407342039693348711715167991946104077360733859904414657662958210466371747412804447620718958788527421620543547179380007303927512440080841350173779347241793376530145038266361268512112640424986509350122771274402086900088961960642999570075679281629074193670737775742179983518117730078741174159204251278794367537598877979256119686647931910042885428722208399919547757022513748268108779146871244253353114991838054901187879519745028296508769302748662205383886204568697112342848870693227365706721141818373307038629803962908792034588362342479272957081472245839809260933551332747873110019732864441251216366935670307785826287187685793346788379595898675958774746212578418507609690932977587339268365262882641112437611317016864873636537434667984744722059356439722029397613182171018322998143597701235683768302490888204103390364706015034959916692816094066888611140249473815353764501227505728359984141801719399812352768695898929339458547370272041676126168405815280633626698209684923917548358502905328291744610948175814348151238468910846165498092620570070548065463533190164667478010148785195964758106086703621299601805674187462021588059784734963266904272472746666181554733351227557189587792476440177459658739440607292849966571115570298605095956254613224320734783002151318549309963264045526335755560150273045582110231302042816649822055410389871197220933267582051803077948296388296612586704881325467737734616857252191504674554057707407335219377340027645873583702270845342800681923786427776717491533988573716611988358078784484923583111787875231797241538286892431054973072717421928439707598803524779600832254859662811514543204726219940350819353939982779576797341262839666322827588564118345301860013472975456135992818121030110136305178564802321476021716787242959890397850920075844433904941220556943014737414149891801000729193938333611742908077632431215777221046077127387823768660018313648159716409536292206717743307954063633731780304013715866675217615462067860126941318710668017125551892632113157070213098106632161688163061840361158630451090525292681452466311758667287537541058530384682662181377499184294762466382471486663256375969365908429481058523990148816132773626523107725966892455866516692938665598734334086020796820249297603914331027539483154004748370632013499476944054858787552777778612649999598383582577790925380596429436374225760515093649838698889751265796274156837139520894003206176358615965636777887923315728191567739078128266025377480851907699082001847771251434114178370664612569580027196374528145965713668289096131493168471217623191503459595535763813678381205080993569989298027498176218317977418053414685608943735318350538733180817849759443208062770342228670458976927682120889249403817549591864788902331026152865168976228557553995646924751014879865641735957869820713983362666314582921536661287661186302666158864743193639074472807267500070393485907724521671191835054636349104687082554928696199952220245613420651599807705179191341502376064127091584337435939162085639624100907104846359722227344422932127917861796916727388224474986471454942523195925885327455726611623176641222868480911531784248202803715981129545450111222912989880933882799969385208000145677940706719263370010513466345872141557953387303939254152832783953898151410084689231791096052560169777689113077046446725754591725434574143279507687602096774594326083671696493484501447697564227775666176205914635062684973572823581043701911719791006703194792630782144471687783082576649315774092645896688382006662206852348718973268402336875604767449446821949107155392945517813885956550203125346261779692639282881086698083332863362681182140770302971739831189280409463820079983322767788399913112636086035916721613097211743306559114229363545091573252967322438654394581335824107957707557311852620262291274560842346857407571644845739597721394406811143039996200612578475009941049673452425770612583935321962421993040147651891186475777473236061046520517671626682109711606730384682228540036468412175279237041819892689401022420747727388145790033835204519799016488261044815300474921581107687846759117712211034354002936590638228684178077369171578061827519474413879663005260214037040111740129101692204906662369423952227790962985997444606932851074660027930906318805333919815894238786598417576615368844569375330981477368444056858219858966880672819690575426215537633542159455931100594641116918558899018475566174316457523063926827099063620414607171132186520160301505710681090210745284821933870296464765254683830345967585414238323795825452462451460576437676725687020823003079723184090013130442758577352145009078164439307730340669128497030967575515187613493108532169790025656094002178929357167992783698846432255060857794106054851024385629023305482543459401063558712822620443147278356821018000719613170290615070419563986827159351319970031158143044412257582613718542988728931126721280359929327065060361211895896555154937747646345967145042251542941852518314687658831713330454528666130237558751502744125626346619790098906242239454016360142434940445101353588930508073997659564665460587506330004532180908239310394074808892348437624758206888597834833214564082811694323142633518944538950997574178239353310655311239612976108361610539819938253350503528919654483173310304176391687467061139673187426343328609577956753802476935484093289445265406113713027994762413283119632601229852071580266260997946014057264635496038958159221437030541035234295847762457700225143763571006245954708640971679210997526064823383231182634114013485059154086768374995894457648873986104904534093502440070575778429569982968629117075004159885286714301720414957889881787515170328308171129236837375250904933609136049255049179486110419173261519601124571519331635339102799569468097225427872032695209185153475600880678245750228622772524381491633933146843504233461191984490606053779861942587065863249077225911549578206664182214738324714731868388885960099794957171578709651903119718306762375836587181807841790850342944856786816981737819175154713253963760735143324715748677118863711162127764639857402025621020393325696756742553149077623680508323214543836477460980077307900110705778435238133212344067354060697465040410320953126768670153545549702085696817982651749662498325497642200234333475303928305757143825076420711181768306013760127982954222744423542156709202284790505827104060423835112684558995479280888988213424493763954541005394919333154075032748189683436349277007822561146778523329942808804923342496658758788899146219321014879354196271753296522987583049365136421075945946033836723535636081285296578728825520883291538230739676065690184813048366237721152895576516717102530846010849870385601924997266813700652040995166086630603353991217150253469610606843803539562565702133570527472719739836346874235624171186057373810544769648346234620186560279928774949617038540520622791667783639229231978177075403124411431479278603960755151560578150931980351014319051379388168823564702117947016073380761808798010012798998714912372144424019842973160316185367486793207569416298741529908154849462093553128754982711243730262747555900878644361181920035870809062156336509355979604260431373970785944424256357309574342845075852110368832602514493434557177687084758758761234350214645646489867048329974755600784957755029367313329678910364083432830730339429442045634843715855552749331009736749593949941786414647634254207383731720151136545321375497785333638295143095578825112202964805418696640986386876086810978541011220694173597575569821179203422383793558508160162293608180707379738207581120100021257943560406619344584160577889841547577931010315558763875920896251374951536303737552261220884790594115309982475929609855490290562974265507880343723339157015089350767847495365409798687097879674737331707208344090879268220593427114496387963006194584213296045662023110090868796745001619242763636092577201527732599741225686071919847617709796779600895761800061755368837834093732420411745357214129935043673294573123332515964919081450219041922797357496035370593375412843924276265027368059565140527072941089663789653865393385625835567443676780966876084998115546015197284976439882181989653155086428986436924200366699837745329766068826379590089308210978762463189095785568088854474306577636730156876470718535743985957309889700060009396933485469499498755548155595780048670088388479021710216148150009796740601674206506857123601711767444573224583813958628305766519143337892508114623188615417976253627539194174982710448228515359361497902513409487321260165192934247009496841922736347331603251125684653674711550350048988454705331143688535337466318550872707974147716105505505812356066796407497689900074864908596091472665205914152496323177231422950691538309642136134179886320004795781842110728132674580157924272905683197959367543398886537618918571297368653620849537217921795582967405651763958785322564191116707907666434376814528899688068916593169259985131946489414738576461737506356475035971796511698340683046078222018400058619455839394911807558370202478046987204398688730031090975334634100677384190524091263507094042639517325286200701148402393547103667115303826115239607490397120199362120745847844021139168992470711043659722013398933261304475014219070723928970415563844189063615703851382108656055693926313167778594266758408660086682052286353580304267670664923425321294780865325899554558888242752241906697903387375124390722407463749384412606814998413563843009191804701960012444252973033769802896268861752722813036895302430207039125564181033702084884118622561903461976760381883190229465172131793969216152328426605393294046477351788676036208971070992440084584452296725211654818240723860156526027475917040694802706898257078130348706793404295364004446093193993698495660584464478598384417883191305751764355974558184002952684055551721687508022876927997334032594259705600942849820711667872475819007460055769634850647189795250753070675448261819832856487217276176549993685387610919565446101200077645772689691622028586207969763529458937522254810252083989602235810646866625227450471725347820942179551945440991589576794138540999898597989922498059666092511313393856649204931815764061952598517431601771214157749507060078258195600243114215947586871124868536376582222338671044243566162977665622363397733177173504045209330594805889075952304939930124896747235873481930476058321527294465651384220934145573177450669358572180137831167748612155891616039904527576577494954260463517532129994622793354745155660319635470569878694986036758397788973358622652563192566174273734463666992886688833472455970522006188486295308448919655471123236441177419398906092090503319292147112585375137443583156889176130724610799223642900138665420161606247428177907254703542748018104100127120324312762610723485124345747377966711897071520864576772064179753347506865746642100301327877076833590664368783301689173809452219946198096943795302771581498381096036807741832465046229613899170834604089072506774530820728967280311421424787821227264032842747927556664409117312293160335054078910132319062972833004890530638678338467017039928045401655323375854730067327621132295994801373183988381518698983877159346573074401214922536461683045077568943722787508276306150413612305743067984747486174429463259842769708806204495678502946280720911387903000731686807725952525966372262709662427068447188053845196972290553906819591626558313420290232755714278277653607391971090266953596081828927040799876775514370909265400750999045992331853738305783293555784843805572434075412169910199510709210372024517602336768911376721499533242952833808737355145189911577747038831136450728893158129608822331422429587673561971989007877748968089322707785378661130221461181084061243899095780453036266155019051108981159421484707295902500613880996834337884088744264228294328792938957505806886897380727717256002794747082179145185933045351974471379723036536640392486816229976667791604710539501532142262659256482809216089873414858751631397180335033493820376104094981816337944220348550536310294331403202334905682655635544485958108438809954757489750588336787985557069781621702677815048155049568814151366340585343260404111078363536683371906549671472230530169192103603417473595109021771594812617322609116374063451072898955558311738094098444671152384198313169677925020819612050855560696089340058341806496270591058661591339421248080756182327185192906619248092944217061938199730365326769203108840339122741763447136417512976647899712017080820500967209077268595596754507311717559003041572106289897231770572252551572751935301025786354918407256940825347006663616827210534917386909373337879099440656435989021926149515006598949071563176115849449135477264875257979897067577625003867378749881706501470640885715268995000250856495545674103888076763946516414344865086467706112206537972132117960287622649869526236223089420674252393104507244726225145368141979792204389300328611190091445468719509701486408161464573266061426860245902857155185398015483594440135589952276456659847956004425292129835710352488279891369686517288465602919375024393960058610697366633744973967798351932700564443771382641911394290773462826296582778875909004557720183338907449885038754281226545563490597081585713870950144439307238205204973956085209441807733219659083982197504729508732234932132481846034739888704371124679031436678143231286932742089093150221989432020525043206190562884297066842147450977368743336595137046343832251286116001628248615376169323610420785579930819933561165821697877428694644408551842398617020949469689445186709776296513701153668752641304135285305667424737150100347046267827892769059847132214962646606922308534367301255324596846608044884118927053665091122152530989404931297800988139735997796232429325892728183536369198405973162927201775508917751784291680287569561243202448360698396227639632474936112526767741600369974793471240361936249215261385221616811090484199950118895606024336322551768518042914698985548100306780399131800498275386165372173834915809502594158850437196787169449974326585057475133361793284767384389062978396058963162742502114711073408570616583809851876647547936390772295048781426869225637627995643449284515634789411993723335354739673845358207627051594393413413759561714232848773980611241117250734601215524661973337679131690858637468269891112742116969025415535013256345092263243848160652278285415690999878998571961382018837625706555858917875631831673551060543167736318019168665262370546580499873863038029620691434879118373607808831966421550075170697107800718142945366055230100874644012114980829357087780288525455795415156976357188579463845705777376914178941519188805492007638293210076337638251020132911132474378385399440786284326118227985401826564514642618177355870007607116945616774543201554214669563730155349541649543401464966985577269711103655203873370810386130996338133678176183459786697921628954320436494370464352971651320889783500529485331551993837338127445344103594807022742941128686545596206184447807197603183577521788486533746545245726717996499490317028424041443007320222346057145592070492007474132940480492704289733007861659793238157479164572118401544760258415924368304265023209918171361306308904946764068660961492959932478420400906264185457493515844032432782541822160035536490651624643310113297069617149716200969895239504346366500433937458155062541601036507083951320523573773756535588940004511150197431159114018597195158262598049317408169398333541778194100079358133791746763792160564756732715972711812024116462915207365996285794216912824594299982081332824873181118166007333497112712526439687948591147945365183787493644005615703940667097199640630741441160047298167845043565648917171058032661712276070665921016624218356151201436949887145430789015272768579133774965545854912673016920045235920713883678101261250021113136560528309964466185072023611738418442450698681278831631081402697873909468633650675743563118282686571318786319432503656098211055812295023098399299748727862581402991094581733680663120385990257080760906611591167882159460544299567009112895334080142735621993738422279866952354725596551512743868746428769142027457350193846118625310594911141678089952441082293269149196880019986854726439521742552024555122187469111235732686144021489140377213810177690672779476794906476816267723933545434492253388569676954591077142780417305167059020314777916403734033999160502332086398174390147560902146343128792768905250798965807557366093209609367491757316079615612251430403889251100313872259228552803793846327019800990828456950402555449454155670731840917498861962421034328698538967887816424379736602692781276236781101625404465113026117821899907155737437784072477564963925142480816316315114549456440054162320606389010023692483878812005266082528027723998473112442132443562188167988368198836550546441447915601556257481105630065552592758706687982879612230999123660418215792026100900851010426074633971437561363297709281997450304375887139707070004334612947242251488399097200671563674380736348560573586549375490673160407696523717291349626858842521416657685990958103739262898957092327698887057645295325832865550583977224791996395239723810812329643472785607515819770350378570998101896908104281176322791518732353825265885070044524710655625608413428961468867085146361153909020078089879197642853315503181602574476943723973266781088393971625131392351342920789554722103254430360648881795459888738363872626639549871466616136549163902035122685192852646023579360636664175884635761509227028686202173059344962872613036856886213650445273529518576980362561158401941863504379266057569504898129923352610768811699966430473443873923748568397235516985074231015960408990865361563820588536820897824352252333029226815507910881605254251431230654674102861754622060226470437002010121726651054758841190883274808493036256474514621789382377040440574371619539149224469053262931025843084770510760817787676496239472860264101893097142237658514506182755706923909479926576851592762947269200109453731362709811615981619379939388049345186158557443330905475898829496707079835539297474218951260213698582665214441725036910557041324983635702716692448460151566552611219552901449764632333507190360597266064005399878407664287147096532828167729745366643937182447706283733990961196669625109926216427578808520713939673975583280518444085057154408034267802232612471873459864660735893092908355735197673825490508209397154914193495112367992669037751074831638040075494994113737033432599499245048021119305795464784674507013638643159161139416589654624862881644494696346738267169435365003382785886012561935214160451488824853632901128228831769662170741179397812521196909516104098638438394342845285949236205457696140060309470259561623373360814597728285122574095532133059345901168744034791944207709622863084500602330721456806867683936197410496279897388834195043671599384566661637523372822623296062200567786408534805759764729551277465252858497133912025404403338958617571417460315062159580744877938885342259646516400864543970541493467314667803158361262998676273279584366175378969382823339621378309789317156625253255254877731965335175005202516407575322112277123706484999473568842219594800940328792299915191403244604285388843152359105720178922762522303911617407172909630780722739306988098389357077137383332011433339490374600434585224551110188007131539983837123572235244797170013859947389228577394063589522814666698909731342007230364151282864479774729801179901340417379807074499863964275552550519230219252882678749726920800025116590845076628127803839168799054551113794650300080184721265220587585310149373243367678170024745289803734914443728270414035447155002177152873861017746464071573752266929137242518610639828796217668306164524560894800916670641956180484817867191275732755428751147535844931878398652253984926015594906122615202793900214282875657775723267881591023805546169397541377595345412255912170937958326532358199230607112663043472293986517929719750506582082750367884793946477539567477444559112026708179798710189609948959059423493307976476824735682191228107495848229364027936822719156646974369595908434762645664997571152260806652695529182002028842769731362571107208743914105433225836309992953125212691005359808141718255779216523117153204960705696310196600668397414980890262769435497039027963431121894832220329393338488897530963374937103327624281566710787818838960084770466520827967076153194897559894723541766152042630278418106105740959565979641347480644802029699383711147831383801063673605171601102481497786281791309023555345661849027868773933181978987565639389868061466289322909563927595617178288556697966234817696150852450106128252958679556082843128341736771736406749846801138159302556469067626036952899500789180014965142294295977545308764165833141798074840681983011719916503541103887921374629856939162788318337521857832262681647202739479759800275788893718965805332052191718724438066442756339316598976092996748542392301829131230183122413663702277503851281536892182710729927636163423170093373437973544225446028998031837241441760659992688459687924796706276724570127083632656840350556336345938867380785282455351045601963408657821783402292628826839985302263364957541228532475583093550378412673846556547754467536637191884854827954687494204949869098857467106317181202651670513723764600657066628454415777199297364466783002413396515219415153982517123636968682343628723884616579958491057558385303083934506842744896667348174412786162417473328555466879967010098242870605574970730474073795804741676936937804740863949028327664287268285569011870075530330025943133276593192177245684688169852970184538548634438498019255057601059513039788317645348678852150890018108931227744593867249741590352814696027865657327819388006111745351072459612986466441338658093104617360779687701854203648788943559266231257144212090874119999840113355136580656071638497276669788398665627009238582320464275363271300456178936585059670731824862897057671900730947371010577813110876816289118545234273204493958033960804490064856316488071934776180286834489168684830812124916851102146857450241965014509952471642890520978240538714961950199969216032312238058555594966239274881095541233075387824549866935511278008741284704213747205124054123064219025467270192811935738644090056821131305595030339586213810772986459806729868326407969079174778407043468561613215149891918067207054549825714189452814735826848839035075807113625929537084901094302031872693757046281163230999313343105656628581684624977858375696598178316280628094969257977321998228717521065489882837948257973023541102068364114416680870070521967111599677122970006413621493901616421281805511017570232540821514622449543150236161815492870177728437028997004600029348741637047445099489671557185362799094395670790520276094625562982138206721654695180813922865393788283904780786565868116017331636296955879741158301388479991495107579312823533191411711253475473755504179939994033478661644745732913895150949513106677633148576120212524533227901002757341588608414096730260536291808589823780753293723765088863572043745123709538926081961952054635076952405123582602012477322782148707263478630326324478854870156037601075559129101138615654681035529982965710778289463268984166803468728192535973419726876765153164227417796742574256767931821895716365014212382639120733078041621619215389224380457633787182832627213721799512603201912474063087842673767573093666758882730680859834590411097308912010119867480700142084076394513349459892064142483453999097541497057236082957383589992153580326392971548026178586960475928658162694612933734029179190413426610603294644450871670148611780002458334747545872485315451807769039233509997767073347704832490069989608456441864460021653499453221927272246249884056884812980151953113259141257255085795751817428596855101931646045632963665744234341624083339979208582150053071599087214094141739705996035038732200118250170811982696707903755117513339592432892514688552516132978511151008513206843925433609657292811979022015138018111558488552738934746729919797295433244147895332731564287076809661922599216968216971320695052846064413224828082430128837862306575215238514584406130812541143760103573777296296326604844745807471979457334803900334722078668215093521285001769335931571738451345002263334526876230823932932916933090442723823155575931057612244978957961334689299636132596612456542092245104046219227542332051041930218301870923373656627783105910620749774817590170308231343179512933457985745981539717198640049488361639632412235031325623549997366754130766736972967024513714123842171808518867116677472969827604224842315750710976013008660312146127175004155649475169312669642915873866472847941528422432989694607139577365793816017116105607159157145883657021831632629204017622240235742483418675302125818190348539617636792749182268180715764466249298282632163880506553512849035624271567950979984690144920929049576007515302761017148608071079081463561580642797471321552104533586873080626909487524314809958891988005262169695690324892700785469273179499263520732830487194591984712771613278853037239147524872804632244161477702535974321955754571538212365627479479448680813955995496205065680088802145689023120995269642701313727473160850960749571448173054738245411438641088343455242977136421767502631729004638709115052342242332397494657050458414908904614795782842579896015905914615189521230113111290019476014002497263010424089771662615541735015195607821616532107817680680777307181344505772596216754334585266531874404072486446240172152795604777971214533997952352352302222344847881202996790126427709101102032849796291117934413154219402281170486752351067046770837526065615697131786547179122047138862268159407931971400846312006406557748123013950435718904377844414932230376790746240645108492295269973160327395152379974338429771090447185508970023932485988374746260524502804333266892471316209126038651750873575358430115895044692101175111831627312722908203329103650147323384067909228853187150910580880820139087375195679420297206781554405492795620023378065757500215287790997168854297305987679838194371682559605883601226533710463262419067842719673046302159165232087795033536665787098146422021609251703474889389055782859724895325015597757853940154164707330331884144265575775232578191008412139946572677071453432567882454248333549745954665105800761853464150510044563913315380064203392002174219881593803988028015776481570023204099381292946812059347789567993131378121185461281825046060724435262574726853954997406611447734335166834960310449098468685930580852511560342245503105974856037934981250652776960340264759345159083959719314759007935798480472813910336227000053568089974816768296823484281083687417952274085445497061503786497598668214450032111190594166143738230238657142995815467729185174913231957470569293893925633860268550268514251135654940909940563480371447222075348521149548472097200555194467870787152777584802848304731291259575861237092814109682545922977727411965204584067606364657867935020044319324639119726628068286766994271992390554536719596258131245340223905048659132744797128696389924645089222722510551799121564700668034155152434626261035795126567096263480500916187012432910788432739659426391821101310465137570597365676242217146071467101112159383406489792943935116755918613497412123053925731729543349119401924653215988298548691759755585589172513855238463943044903515547573248908656835370641212157372985654215730387759599364996825608619865016826361817537175000062036464255681346450319371920517187588217660337222972903801253959286114931254410474484995926842689615584170006797238666521406577499112465153736782254501175762820104927148508197861229567260000567839149718815835267477641214317089357780736294005554573726700526232200542474042714224859449101395429741245177758817881275646692343674193229157479256686241013814649554704778191882688516403741181497573100258158707440537484750797136853877486157611841089519010379380124388540981504290225756103817816687743179458383706863705176567869663641216334738581602073551757745653923084989651322754884537346807083763249428529275096674477364037816896350113534340768084279151087954808162306945803740606967375113816048530608357443227798497730868550790798678614559109709486306333067912510719910875905249085685956068964912618507389170668463560000019566558350243293745777899727802051064961400598928302286369293194101722822848208205773413614342792386441659456027536603384423862525231389047874172670399194965387398932451205830345788190463700328906109251279820890201017929239117983914099729714655979309632221933735611466825647849733127271456342252596618292265535182008671006440231640661684969468339120154040270313597150985971474626303083193282318788567177866853816180250013986712596419168246738696780831026075978638164529055262928401472547528214498253864506075542989520215849958453929408511074886213433466809706896082476009987681562584369138747438357239596074611163433630426522300162363066602391952234515240398971197384627505406891676392340358389198688524736130164879203468024588389119123102275103986406449707179524516394247035457394552976646139327211959828734996661956891357607116346405604596505841435457628809100842245365011628797261885020347639496631714849442657103931729542790716438016711209438325133165720682466904661855043942568596662657770797135966749430668716936547448048675784479485046872802854941530611094653528491980327830976073863999723744864910419263742693312556158436839355631589855542594489772332629174168277560433750262253119014874667336147540272482264688149678504540680459380324225932563922602171138758472235537200005945560061691125285149784795445246086444958747823310537415322966166674055037128768492674376076469548964422521040299031350595921540105268088354375348946564951316599419403600950517418341090715902708530439800019515000641488667829629140395939651510989715358577994613681617034151072523829135039021714880941546828556550372511955981025105538221570088207102523324879777179957766903058143850839018577340089347826564522903276694469114325300988302893764437417262874399582037456531836068579036860905146526630032946968589999447712881735637958168500446477129976436738909837314028644757075112189675941232250033042425631283103403096156620371601874330753763100528063558127895938026748435922274309249968857359682472857210476555460043629302759015355767673234765395738082076896377597217249071457502739158153114473585581128469674598609553925139486599088923266791989034822157725902557599878004598649596428665879202860566473190380395908931142506940684604649591575730883980394946651478532666596040985337917424028210206229188864477618228688153672266029090709509127961439997278093087415097553901038883978880932981733929622297479282845040044093658643999608110132166517430889390482641997917641423262340587812781836281480528280896553670624569886987117239038011020025615902422233036578228553529222777850614141316799357567889820164655351457377560602135681513736810173142724050812090880350081863245968571778614697648375562476310342144844475129687983338740954254346464880955047339640409223938616545479927361211580109830256204298359036711599852091374413712275995658575351028849815275870957523833248354116919955667439899964077333839778691821703575108705789908943580445764756424920691177200569946337721482210640651104178862924215903501756253971750542570945353161072708533645421979854544853263814936731614253060915552878355993325040684474659928398116396826843915032532939582215458059806976390730345620341212313248550316052702177763335503626278035941930016986185138086100268956579017725804029784470849794196540012976949721863585775075395083064538127241493672869812906951529039198441165435328983296981865111397900154857499103470858592288515446609095073341249974895333912901728578710729319476005985061823396469962720536152694913201508813906427209708742860459757680948009633344174929006494997859972800220925355301363339799527252429839093813650632523233115652904399673480902105083285334585987631307490450088612032215935151227700515313391952709600798604394887028013501054539840557502005635154028082657239835516975000123432213313353574829150719929103456429987288676075732492572371248246918001517750357011265223967172028926178649291548483511544848819086504040768760032564791885817224018653174248410743825798187933155205703054073581638752881691521827374008025699292179101178631502739155588217398917263969281583286222934215855021724178900972468471912107060549787649332799355594549266177271234752377984068087700451340800376906301193594522431740457148784980981152564038976670055807696855831582439305998083088141896451551445894389457366100359941254410123745441227778527603467535164599522999700057076929775911137287052719770511509578144561330561847820536427791275667572933177958840601360965998926301704899689917948607392997670046152988092484856399797935307008640974852824097421253171747201167067592444184043768821499617264069497786073362050022486438101149983921168070694079262589695311072976228948032861491494806300316805780356430080813846648824143363231655206636779800582901852569260300246560352164187884003998526502046698510410856786677272193773510266425808871755806267724677302910318234018093356684538130065171075917205352782393699574511375647055480885404008474744219648401504297279907674294645200203795301902908069954658883936837424573281454869248276929497298268083583939225684731805805833497334173852657378510491736363323214509161159233166897723475807733566614453300692828062640692914162029642545234326483131200505192032512652109482455279891992549233864984751810845370189571574429014072161151845742743714372665765659699227362424942837919510941534007211650102303746771496590288379327417560255742157414238858292150928817072428736525986967151521695666611874652651474446017929117704795586321617927618751186913724529141044882000807622359118625073843281967680562966230817534472724641488551875897818007246323424535863507638924081686576562891612247739708559625162023133793005731661223322423589972688800226417847762459086085339470275486456465603903662782533008036664584214265397346950239156968824027423911912148373025921508171813419135632340478389952276207485875416831028112568359076747607319363349772081649309307425155616204731030565065807656566246176724938180125513810465325061826330992917361808067458085787617858258389324913666629876787659358345084703089414013180459871487646616472645981289082043424042840591470466638440072000067837536029457953706660955927418879984033907419897342387617308006360128733104606733993228816017357730078905048995304714523653660587411194827434709648148837533632579459794372903173476817736003413840917149631773633975115958358225641236569597883958960495298441203511715775946185408611653658031062402891090810874486870073061392273170751138827390126493851167288437865365067346629159878934020964707063295864363602140832079215129768048343400342164821300562756285651998305857453223352867142219891259945897752807733621526455252947167122288704390875275879765398152054534152018508065491440889439081738915056710024775594668847241613597286739147366033679257243193340590944318511968740355396440885304101143793361605138031918275147548737476117004503815984135054330983270545791237233774713113695222822258736959063085931710677879355458191300130331287793436716819630974529811009107942511411449565142500648087580186438098190071110792225721463952265904456273453642382800010747373158778958750133396466668828130732627146639634362068559180755732655318216422658977295973470298927808868225557952768433310183073630417829340273364188838868664177014409758344359153595235228554826268098453346232450015911233008728380226967316974835291964899467513892057191967879929835144041478560861679814917868514248851410521518609435883924336519496318687686166893648199848164712600429183050135976332981875694486972517803105722339368492428463325914642542092332153365600835849546431177494894392088862360809281139994116571808504419843079254666422509803232073107662222912597308794468004303071887121497021422646527096895486736821422197395722361001762977632615678152503728143101962047727347453234287929844636863870988358657509041617545784225567661703386199347578174908771648356389417181423214913552067123631321524358867219760161643060762823718392918263184421378897880924241684459499830938962381998014383248282609071928787588720926208576887570598529298015092136172016837852385949473022068937984672190435847937992999868598030349660851303764689722122470132054741795218058039267175965399159960206445366516012728087357947115342359830682924888807821852252062634103496024926203980653292384798201099096047024164306058216155377322130241721804043999291387498028658648811567967845120412916667251478183006267398945817338553787719708884584693605626175481133794473016948804757271076845866099629241092725418098892210642776612824707407625145304274553320713048292686633276988469481301114657183340587421092358268974462114939138977184805771219494763474430085339171738757725285972203076415758801940001126331815966815862917715090696990576416730129784493837086264373378179696143483771657555787567256284382184080796147200157389729161094759180076527505568634015406876885998826143885371275583479907849806577947234863195354707610609456603655070297963378375227010729034433608268207058206319727325438918818298367694567741864725797520771544734584413042096689417902517149415034165379912273244319388603648489056791879432923233354124162133574025947641038118984357417454734064361673002581825775053128631722242338556834502626269233161919947615981065703465309662620826456584619278055462222841801576975743628076049018249572227528519993045873809273204185348008289341001658083772663654224196923573604386074910998780835972750522727743985704145110768843790300506548734199390181595712320847244261619457170630957378083490827356521843684987175097609931156081934389542304942491541274165848868153004875781073913586134176629263148878454752785589033872683472380653078211787415072663992061717720195129907446211747928139609086495072420449768989934957685849091355525658202745936218906123552499383014933484896412534445008772364793283156077961726992889563986887769905197602223162784128042284061334878330756905557141049144023722394891280296522617830825865406223592226388416157535580131153293652588417208336837746805815847118107722006387855268977992401676685190499647428659223986686317261642281922337154940679813899553711641596088305910331312195265379725603367840830432455781138001551810110050087597183472042757442318287476159114631622665110702381343082526131112235606367019861270206585182498684695283321371074547486804371077019369295182286737667662791796909762972354989304854394560331387609744975297678429113126024228700816287795351735121462348595873145708578993379873744167868942385753550979776575877729938093317257387611707079845511914925418430162002745107012391963797942605956190440892363600618398534433887397301183529331544427191254836489999881667981606392164837135823705200710045279179202715869729863822982867381446001066031538681300305347457966282305491918260488230856763769460220614010559319735846456084270583150952155723536618205662826602664240408173050235974784956962950525782915672273696518527449772630971124036454809570871487665052115945458871419883998238178721133196478591374805843508123289758697509713078570088775812318358030709512956891695934034606437249292912725797242135206376165101501364261242425252355173566441156358338133365166766468723923861247794641761847468131242109850144406049548880207372647377345064304274206471096104443672845416577910398278555304612925117809555633068757910511717103371228565938175001332131738993270659740803531299557756599703567616717827330458520064351379654759743264064593393166992556959956846234744746471953972153499203759305832409270146222102375024000304911535454063502543524238047977852557429397121271018847167186869222265667627307295582910507936043673434543614047851005517065291989271457722584409051216688678197571541978116913565024577513719235202556913171325599165076445871899456074148937883380714330878866920598139941256308266301864536605063555693187792267020014363927166182665341156090312590054488889465183797153770988945790001930868604625097546742225453285392324287313371135076483295581737725953799824236663201304360645709630835620780598706047850725157839873596226238187975769131933288209736701140737219787190217820113808025047667840887329687390350030361022805916931433152713096979564810164841296127836579808204460500618157057892431691055365760041496278097232902635112312857153626752629594672670649021205280713108893794281915805558916184781471545159310107488710763612136458062293959851217739035046488765006789193420022884175560314796319760463068054921580783253264959136534689444799042285507882130148934150020282645871539271934677234265688838574593967662071083458564420819432252709469929407109405431888512549578399268396048518493362402211795584291367604183911056190521722427931528494190914973979473849325536143042577412509632825927362263020470697909844134244631636498110081859396391426812347987316034794205697498548472193603398657399781075856908115380813525819396611657615630017211376796518233025245403322233797692797225860298486716798765175425814254043933408089076195075603461768755434406706829131506068575100742849918998640187633074235452123667044557247930561731566487149234064298720562544334215668617097827043860195391322247481768588800226219391634368775640151670363163514877520402216436633830958768101263860246519884281516572239556711904509880271762017091784227581105884150707153075173264785502159721552781606184886796812656536467843256100079648252875985564639624025231452780543541188575963491232524123440691446406576581585277911927744579470075988690991553379582501850383451191594132095750513703881012758556101236809873070958429078803144335122861114563532567480604741789903691297666313430218204375887770443471447583817887312954687261834835975260092889737916851572866131603885207017876090255642939582863210634973823425659360093498889112544621322888804686291270781085436609296670631763252092001302012577379430541367794215210408501531446829222712620937686178013239911252737256572308608941198358739772502884209535928104210159620787278061141766119750944268483951154283370366110289304082588117032690105293044196698930723884730804217531896945683867157765614547632748458639433464724677478888052142463159017098093799431181136782273139196972987094057679208010385588441867508793504057784464956471380885573394785070204258428907085249829990039478373912731808751497387282096275016950496303029651524353273350368088436923703948015520240923543779404476847993435851103785289969305218166300407411523777688865301340337995644392522148223114954967085378900510451719138266537937012881941533061115158907600348269092776907528819679060583807078284905854740288864056544272854916623933697579846270402644035432004189633056545552328668765472167006323851018445687204811940360455079315516563914099712520698543757628771666358639751711454446356921418847211051495531056402446784489434383824600262207684138504837255193905329573078571998733551698013053720534565065190168425189165555801509874824279669102767428703712715671175545666011386701209070620408065186327839767274627626959981628367249216693805349108682655543186987630950149612187173695091945196879665739912977728016019852273644804349247232306781718190060503671373680920938011507383158092842195962394021073018254857508353735191663878559317527066068767826891688486156695622039636171340647350018120087703544947476987747314415735296915658982768009108579435472237444919267829240531686621413401272329907885645218614091966856929847059146624698949881271066082379838691989109742469681283265200537197233480093219442062753239548301978425932704098873343771008472336832922615290406463471227031219887495479064328654354307180317413545190878789285169568657344352955882484721866482222657656851375817506180262137200630962811407738367170252251221357347411524871507397470972244458028388621816795484697043128042185924284064476707585856039002797709931803679734292090503851887337198363295389584546841644603592861549873252233687936733461371398037692449152064048064511517698646119852842658432357618559919882833195668149705776145899761921758987417471352886756552660109004357105180172057592139560936191805506734681158225557553128486743618137035307498032617191368871827358798183450521305442150217830395171174259494511817777406428639181601841951215923127152753815663835167932358885871899476059453502295348834352116258482822619342476116672842862776166567547204706156257147419691425797408969220443910750932841019629013922261932765224022624634707088062765731251676796005623425789683940863862868459778036964509051104083483778415953754524343848666466666062187345808012622859479615617377020223323592047227645752170668024925976629414449746634077381639313909689811098811264577407050511857551408565001364297403006873269516365600328131402568272635425455518805160867907661206292604001072763467340131527372512679820767039896539417413885399111865817144807252268250808092890827514285071040814640905650971769339953302473759323085550617900599649879472499789656180127999866396749588731087402369435618097842852185264724659621971244072960117099403736336365065413987823937070368091773953778774156064500074025173360047321978345821951440523953501692501973725217722592529195163279405250256572180969344675557408614532965166501091591145969296632846791315939662106676027909454683591889902667988697576882481320297850459817874808239713133086268747786012151044664968355239335743062042807241323662212827882687625047122592231336310052732009991528981901221976627808516596202258326969008606219649769036347440304950125314911350108421941822872440937289902371516281093694875089796948783137020732429958318670274111910203641988685181857120669071322115130032054196224616148772246783022102664621220204552619795669689300009205974479058729580996539168083247934422483023596975264180265714772212731483504883371744136194401657767268009857168289148670301502427504417053547944772406661208877721658141364514218964572516994171238861127935133601917648528111365019020552255584165558811692974915926989862297665021990732822220605753939951296190016013738881243300062499093786540746087676676832313576656871190364168456943341032442831537058131833494182227359890263695608216850990032802923271688297612370275064636355042446187077216753877039997637213273144353184953478343481878394178142136985371030814101310021711250537257549417451255889700215707245044328424316574884552652568490134239627512453254520398158269401650511405271517208859916277040536384598780376854177518240500178314559506547980259520073714760198319368670757123970885136205515502340488213248293532781659177081043273082189289562595583155942499677088699539622507332410336129681686306312892332542433800133762454714235339004421607152373969902072993248566901600170752533099253760151180372820925406422820984732987110609435196879955792346830055213189164440728679269385587480604746353685188914946112024944692274892760651528524667627383176609903081607861042186982479078911517779188678519172237113217009730792411640394121309652594939943244595475523440840169831441876026316369907829465437513852294744739578054852164771414176274978060845851030703673395703191993883250261154924339657054827045518449124218183347010949920781950099624419577110817057201800111125595586794161002704515869687995334366904166814225232223553960017707899268857723307340273835792557836602905709981136234184644004930726054733932840105203620540338342403427750425298071153010515232083924462569934797935277737384581135230139796338100150327460105038197539884767761394936874495628480046634458319514146758278988500482472374754365117741403363924485943150071928886024122808455153647504507027965408412774954672568874468890893840850426560282060860504714266108429355769794231167790159732041219280946156087142594244781625746265314429828868033721273388883220451852032973599611140541913173932785048533442751233685348733445402713465459869149074361848823211325253272487409630163590315786457102774442867138008117780174022611363818619831255386613850004647716551453937001805081523613359252776819329612578072653518000854344457148574852283557378866535694922799116259367770350004308731489919316084947643281418901833280201166869370037279318067099179153919161330679997310766789089422866661858361630016066272613287401970004768164285360158434126922120609768811773793733861630347697825852488786990703455599563672176494055740795993039661208593853033670083583553874087407857388423434547951032499118770523978927944882130905902127043848169685814201482043441582702213038930774459743144810183504934269596115585013526308531297097133996539792834240207203655939814063016965003881377975570774914575591747329783430444224360246793803593060654464122385047033966697892462181569724312620232138810302868922793739967836076373693094511189771381678924664233306740966375060703318773482500921187206441574093899604090109933610857026671817495360125741707035623915759648968998980920170048609659375928360421448183845297025079455007344633027597843455827296694778025513652448942947980182906189994333069538592753535582402201370734899506561612304144900081420976760187502007243882350046616569571056733607934465927367774962313092514359377970870845063818712202934310256173023310697306625281343774022677618838707169738828008444514959250445257138192609779956464667496519099265465430455017813939243032571447200447358137979999469190744338519584492596139686518900267536176196977799946547648477726834208560334979665419513286658517190367275098428186070106727682460629224086060138045343485962965867177861062065336587745022600708099077979717946045397300177393101070541193532653187526258902956790166881080691112851546660747616168468885901131701755466549037826618418834435178549856849479740755472022801191092151094707818129726910796772368050353815337443641075533195789707463834544582488267185902785397253098926480683789551286558684328734726088154967494618054510287575542574290939589549493116189350652725135828702640848812003041350833549870291264616459769762824331111186964368011205027207658025731463929356694598128068970945601752005641779900188895677382617427098235649393827931464488718726345787227718737853232537222076295797142027000962280596862168096441602599082878045292781091239528269650763542109168640395724371815268144020585640244415389983219643119524398664182745933019195201721192574371399888673954935494722201320676752535163901501467181832571252678217237190861328919718316812756311730530008889009424184971789857046623374960187551246811482914807384167276277090515068713192268105503541218780985897815105875536942692307191266360483096878430140697915697796640922848571047531385029873519368057677581893132710012243564756676235506761943245171710636625161442976645215068706842125915308806506811102098193417831054191566996499987885904841361117049627859951576952019326639358976897099049655742194724396758881955092132587253543277201576298556011445110636335962731601096676617561553572829394470966864010139989935794482256769270405580928376127301579219644485067909911142362275871567350896805124880234640987560070000131167703449743082098799400815460108146256888768681264360542246191680068870852990998825591785124951191121635120927608378135153752279943353775031532201117046601552276828330966214486614731999618417506742113897066728457390050830921695121978593524941565900690679017131398087355551670467891294685026190641940804134741705986634660852307338760207946537678769903530592411750483419095238143994833196934816768139124914134071812955325920574277013632999686509463667182855404743284015371922862972905009818388159790970285539732964970826013539327856491125051589523302481145884314121057160181402560136087244754968702437058996387937873253058442414749918647990069937943935854730471599814596066266213659659122735107221192848403954232409624454034428493139095653843745742574345259266277774695857911491403449959073081740471134120997469507257530830598280753627637401469286684884179421438916980963558668901478997192169397030117868207577729883236660736226203967909708741841108003536926637379623784926342804766577571595816721752634270284599226791799635104176996692631682955682796197621783459545172253612763028545642711133066917931612499971797288549338798299352096866396419893093524498880801622157630734035113341758447453140156420972407619634897933352171452094510291345705099838632055374976310460126256071425115032519409239655778988562055409277131448184107706576720268897543171538222041833718224357792276649458621953022576749776084678864750050296678345533630791917541765382613683224955599967175424526068417023953187825866559112977903789972654810699946962344306201296155166853703512526052633639099899661419981140077578725435929114464434434457674760060959400109075745512825134159798990307850508714704924782967275737235887699228493172190981642259355591647057990861389903681726905416476223395996081589459821063080118271274020320997087547060386915916475235167111614020217053476147105615552602339219909840562922861260879135379475366660647283665473048644673451336915735153990325552430789074036521882330783104642275770041647324646830463817515906043742058329219277971040151060470369450979864519876520354459330597825507024748976986423800679606059401901371949033840026468586835872957665873076499456479344264307754293354593377320995424206778116879931234748660430854850637214266983016803950096969556144107711880120760523407050731565806156011723043572307727783043503006102621491988956395088458113055169880817409252604950636756775169436919608201958621535399094280954620542888051704363662146073688738961748261831318704040872816722574048539070253789971135527778186720469733012647001369227353186293945853012091428549412228491360796980255187483804247831354294076416796870317120355129819767249952417153791671250666425687588037445032388451482107253651650583311508635904711464693512824860954624738212879172589096274031514023021631207444202923623133026270997177321351235244213482487988298006986567620027964014901903933683543839088239085781653686056185061104599870446643400580099584714953297401695418810299801605592647146866824482384860186076204173079215106168937882904272224633415478308983903974868959197688451221997973589743377273687311487054514274268205963187548394473211799689738069887357659205679004625611962512555660379254632290431979877232255035701773232259181607536567925899278035363122937391723515056341114538112233899142397515065305575649942265597668646509759423799969588298328305033346225296408183278134942844210286284408283355991220276331159906802707856466661581109168408950170344656896593391332953426526255593791287485526403620623081500563449636454099862708926393488823597935744331551721456703052949799189680385996645210854338317406553131564166904761874101591647369987049401157077057442751094941455389304953517950126338088061487102577899359809836178457877353312352043704336851913594002710739448604150095284022390654450913686158490923174600853476996796274705762433416160393134034411376263316507702508011734611762274356090577577007257650692417722401158851271983237261001477779309183350486166577864859093144478401894364105102733953048339836024711910109119173480633224228946463836820545582888135728689984657190154798371730639906049476588147952723441104299557367453183727989923464369869785196547891814996756591741196771429120607024274138518413224079886543887660971737054201765690549783432241766859863742603073988153071868024606433647144618390528130004004517923801475366199301335854575618643761511739362295315881037078458454092692798726491378954892961019781410088665637653766911104299472743876235789798405344174695356314951192833015075835450076179215092656680050604835688038811421762822051323584022356165769158523559142666549493087324849492963303577843963038894642623536733308342557213234890011727359048598254105635980862207610181482253093186055935619938384072539913020991101016614761359179094618177532394812036888269668130883072247665402946191724816773636820452577873088458566574677721951404519584415547368934075963728041877932764281035056211786617519393303152356840315069469883211321710937198989053824764183339621109076782662019704147346932740437952823381546282633843302753603497966209707178763614776375206234120448782853140265383691754512259827117327201457627169107352226450255853215264805948645777055893949858826038075322247525061164768563052560621533893240453863501494350581979799633209632746874254137673234933782690251867643947367875485262796786971299698872073701197847119682383537266210905871048831558827146415796005651994026967258671561139599808567092848974751703911419961571710482647369899212630058917946421199324486805852936002500395856929003265827856980007532493947639130101570258744976662988699293829735116999969740953724976557993000411573031804784924753514458903049196639395817008343229856669838038449547975349167545973335020561425575814970679737823851035760977935955460924320570454529157067321283333463506388381877082343153185341414096141149963884989559812084376512375709837981146359716877424066824291272439990115339378710789766576322262678162394148929367842801223097882667336034616995888902354085383035856122288225512093839774209725334267564280506034442534591756400982279275672736318931049295494010898172663912900734855082579262424757190203880285502296178351029684251154262967469662482753963148882116132779550183131174081247219005146946761006667489578421398319404681225611973428829933826164293780468772948537965485109404228604808233905149991330165406236590760942044860675297548975615510971446448920971759242919875478194437260424635092007135653296934902645453589213552198200431584515536095897271603600546141119926944983600508067564541434342693091398173139944345882432955254473059443042499686761637189567470810292243158793941162214262505262665834621086594881116929400949794214653273298594600839007961776202773988219968435557069606776659053331153281204483111126844116211947802867053589434126379819475524883778361142651793922566918108575921261291456664619969139872141748657045925318827408030892046510731397088409405855557387490131906378052882946304778872401055025086717283776806821453838516233801467627432620152879189579503213500017517571021308450751703214093034129164030646010326455406310148952644030258766768680990390366882487744396910088492363610264281564627001951341382285966877179815103126379167503722599692541461108354860960925136250750718805908371664473265264848721021341498919510555014711619474714597736265746443762307114853014762874203685906905503130212820853676086324180634303833528216393985050680054836002948147180665500050412397221028936641179336027504245471115637086420956051996742600282597456131794433229993681351293965517736013742775623912686610103432878322946611487653207019893581635987528377029991774206162699200492362848874952648800192874682188523787523247105082032082563647750682210364013452581408724820998912894467980065235035122736247342938143004296408369809713584851411802156337734115005546552334265062394256823490982884946660090672581703799519363905930287118263670552270029882860879442456756941249401382291451542393385838761399855041205833572615350946280187322836015787035327663716378950816857214844848203116396726567020644529898477968578008118645012737862000682909578393260847763220231840192229138618943330874387857399961121162644583166320290891964806926161362825785064624425097846262733932125943177466753327062963530998157841080134942243750392389649487439777436440185485970798374735988256421625757139853584148780896686278928332115990984230407067381527681620307080215696714228646822939357523117907788923593608697379781420292348100130455456142147739687529719468223577511260492040987744329829866942034098573433717031070389517955621552775115333580683300399215835258220847570937266144983901950722244468982174009174444473817209394651547722073926227319224764028805467220863109411694236442431320035525674347728858894789045440985543006188606963802364913664665522530373083088042317065741805515236646170742113170050909256003736176156753811031456113417782226627072623235117371691531317973343723321269498200809097520327914686548123210872336992403813827415250987578005707296788684380804097561212344695003812688278919566773989764954469725843235838736109720945084065467364002578645362425129898149323409964029942541858948815498785922291771561195888605007051287209600543867437640217190761485245226222737757014587630368117918525563007074449156988000587831096244495894286056934553895060571999750480894994599272220489342142142632107171401634676506508430978703148480763428763048283695141478662085226525819674199144776580908625665203795590056838735726062184940796588582119626767952979530328922101869773743645175226868972302795113071450280636911508046922796841633143122542680263243772615283066885397472299333148799184842221673957740183585257881953963812242665539527485371635114579840619729063737561007602315655458867568448332071849466502878678188241842732313770445988269762845011912544379220972139430289738692108149782114355630846204034341617664815406647028241575364639588494127997519285667055989200604045683897542127916192809099995259570383939968835815829925065394286654093793352089786063371744225645923329038188172881207757235093934909490996248728311478858517923787460715046771545074865199713026847934587936747050855002969554480420973874776549004966482587603868076199961709039701180793319476196760823730525416091628318362429047877556178744662027358436892934844525422846579675796874195192076079573833532341672867211050990633730561627830396569803098013832409270865914022417645637186763204144469251435863573430328734604563196740899780427346817368511354338486890086252542569387232125127648198550455594496466437277125727827691772769305302406145866306808611418207507856688735125561215511029258664874949012537631031459797966021677612581913031662359054794983155315285948307305516449285711982849460447457264781871739992565724239505916871489892496245374985796741499364968288031569813310269361563629882568517784592003447530361189022731941077073179368076453817854898421825071375602789354690207799561360194345135968452623128242549076104688344694483867208033119801358401444410663759918765548531224533944731139375289420417472799638682896678279798329001545027345109293483300630751192836025536545815637387084980280158227732175856084281092086158923088451234244824216854505332956645545967824973379909242283332429462795492446469658005305234358094175382267310803913840483413369474279755434304961957771416142350776485162746629139163841776379410315828174506447606881502401118505467724743317339972318988244700531739145546845099356507865341210131485921843774899451327722634426481376676301019753284497475278517651974599018915272768661432081130094316855171706995493520190519973855228861063556045809608363658375564184957650615704508248245472313459402105188927744792865286347417763335795938655214506274614449891722741497508917453717053993746826020550444322816565597569619827511017245710818641800565086039386315253834860560996405980640683459905195286892537085724885157764594602824382143266580637530043172942376856355028846635885671931893287043688413246525566131126742322619024296866359753454465159446367695506103447573739268366659726429596783351467494420640840664549181107603229242328919547380190872498254656088226573756314026409335331825572237502124684560355887172139579004781119880931611429360299865540537227191777885526395776829331664082119650878710736789713789016228028472962812408497561136591081472723439536372054771779338455246127371112855800701773841261300005901342786220378141100822284427195830264998391372464365624490264687205989248225580505679170224592022511205666154309209670205213531310373463312682984064039578359786032036773389889396192219808181584135171705012817907855059134949539264920457140579518025174912391653526814786549309843748018339865025778578221974141068259294072579001821289801103216154119591744671325072290390283005473579770246726652421361980236672924622433163582627711150101627180474653943399362793778855615236792331974971791551540845090380131282338394212435953603566160906287589332091928901712517387212510284240350872554355304873243219360946290293822844108355236984705126636514604857836684308033159882960956997129266734554780176096861240745331145013179898881022958640966731065867920609200725361755080494045612662547758946394309930870071185425828120835137865382203800385784157988497807627593515118976328082416282630019326263116869259223833674830643747637249868517481052444290865127759973840885795892871558017688259660762159507415108404369152836806563960866303472438050371895901596652812369429097931688910330785912894838492734787588960182591462667637065550829494721467675985955442798317721190805630455042705427655829387853203520232633353038210869997638861463604242678444968516128020863927699825220146848725653338900513245792389334064605852095638890494017433543759538544763775875714177457189277223821429964948489396201949403096567253228312506373792603285996986713314133854917018633407632394387419863133964581097475186457369241143127988140846583885638895086707466144095215359583520242277786263831706137836437119561941445171394891773804444855480028003511176907245494211943050908874790548347140442592298885767121407509982313806719552148570778389638095014802552220656949073644145363442161693370001513913014192582326745157573635178741064015660520974180801574770515597420468215830644280294771483632097981450527065846103488861140574055237803261202378915973625681924414019526631621932551671625783872163202685762373151656985801199172130361108051690157281417572905023654003795909607944002139515027792391453574729125807964789426324541800744364657715509748488376916358759030322086225398515312622409515520262031535836862784104645587569362261816820975570978767197082918892128767641673302771227002337719633037906823709742779469574767118065465585307947043137034715406180137344700259216631082390448960131026741283103928040240072262925485010413068167611388840324531205131801584042744930232586244666848314517588926682625120371037129064557674380768560277935064131234661925555653936893407244394385823429597502626353442061664308060881178849509044246077866895300336983434998078166744154612403420255500104438858796872283312958511019811158343932140043236644610057733384116959259341781414726097144397691115356427466530403637184124636880745989465959732364512247365098160243278026036856976633221002478035050590144847503655774059984474376578948084098320209106585856665233354943513487065662926463250533194218638838141442799298303157784380972969759346528635108216595824153749121264487998984776287353691136175027106852149806230624340935250223983621255604326702908527174432870138003596237442239076200729541268857551073796803057116955956113009892336405798189698031874285392767213673354153703896969674713968549473487430019429085361618505214507251838335841860601593895104243642193989482361120463346821262104225365658824569582064991076438940959288513476233427144389319693070719027913256850856350667482726541899748295933575520233814596031354159271976558197052081414799583187142387118289025864616018244410148756704638927082604343052215302064149429698490901805651342445233179364442127429062204342394300855496253062567806204378220660926699446184253390472778904421437508920543076677473007582964429280146613491708639570042743505346091441533220780637083730138578507685322171105731890728846573688368032896043563534574208083400431673584303202402818730096559152653704635306850928402587161663031021309320182287918152927991169504132644477565330016099229097048088932088912644111624013297853956964276965718092712116260014559718188748029135834645690777720636439291320013772602699182542853858531643188087386122711017695714073651079632961006265107463505923804530699705191828390561562948744819792511460710670288929147744571775807938649927779882095524795403967226727313679365525530917840566527875716726015023430290416402854717553347848232407808372871251395239071269424217361028342881545106311499753117473607730632568793456648280903755625561285954741464392342168515301732191782542974526710975063638423388854794203435323137581714082894414940834988649455247723658215840727642101314705968512155989138607405411923619758476440352560313127587463544266547052939140081505144211669091416883501351235877634018637495151791752573231548266988547142405181983896194866290132011940963245662966407638179500337147002497719137942918526208674229815955255448409759277933911714365249874484706855473747382063766013691341132319075948456188930178067697157269211628143821983144733579653702420254221791437023750054052832469264011645192659220014536476394557174407878205720680278873847469683614871962379940969543215911010647168386702815476629217680018758883640814159608812152176623056836188749043348933956284578170185119673851587051102230433000273445647399773933390051268797864122626368913870670688557599783338310054570919555103510473506465864141635281351246099242807177581971708688651427044919603391389088284307005270151113948948896597569580992034592921910376494197883981485379410884091186882231628914870423671830622974510105766355601446645432759968759707054724570267671085980756385337432405591145670276834103119654647752245859230974047254813630507891626188967766340755023450326318229980578707464199258077701961469096630892748126750372459607224606720255034881293664491235587879344692488138881217788442355080118829261894603911200774290820462275382110098059314999747299522807284282930235404412187225317502055448390925777164545330190363202347103582052636410972531470111260045984792523534963942720239423167495319867509156422385156561328315381434089097784663016142601619413211616096902122417824926756504615550531154124182392130401473150293828931341373744877519711171991822493514604145816849353733861205679926421406854038401631090710803930084762012829991253668287796379862631987767964987561204080812777286184256113142308873192211069404098735273319139997168517659249702194010064121815859201371061010107242503937608800879806452814003704796941440912820528949639252649511941938083853080044981352936649662341619410593510568600915525262569547119750750314156786039774327196459130439088237078164782349762043754567335402010923862500893732896997336576539399750001590501758207452890091708845220787878188064836913586883505772157753859031609866020555441695078441606829644272112326626516151998459646407278369664028683757801233336400088327387524698489881271260182923228651854197495383018710446896467109634166352213165248604082674054813503152292997003636287774028378248590439506120378267911071679386719482851541237075031750299486994960729643575511223056722237973386399463869044506436318000210587879298643822368424271849205651201525375323191400691511207878038857434663957010383637649315899517119462926876616667490207551072764910502708476472366440938418140459419343203017669844125454842810818746544208178955470025499402071443552201521926389095256889602260380434845148102049272622277710528731285941840243838984087977988490516638291493649561502427490619522111127872779814394312935541286721774367394886966195007036146454099027368576130983046526807866374930787733869415385103067323346500338693941393883218990268464322964416210702188443371174131641444382613478391231266375402905425566925696821196206729914200328315634923155454364204883959701745679445896066247198379005496591788459313417575880541147084207937496091394766327575587327754098262245860636544948686584209516110968254401736971598346627239461154059509491418246903843329726478929136862777874986387611520223091702604719859803840333217183975444946483918086149020051181548613623387447028141328935974011578978179089224888195471607813255457132382674686929092741474666358365332467101600348445820149677961309831340472979213001077476473559437825255645017243739781202775611332745926531933666984747693316958974239796654900911884356456909859173829298253494594215610301730147668183795145802416642867259995576523182764782762826133084962477747092028204642941763586638110047546480680138356988195344355203133752549851916514113916442983335278519898142998583993281641551662647527962427736441961017810971995723047898573417004538585263656444333130701777517310668769337897512649564902814545014258886935948080464162357752207896014409978754657590454925340530610479324256627703275677664457766899871401876965393355095958160839268040469555989952981234811155521191987712154452003612814363982482219754887290497554562097748425790741688929448536492937072785666747625301950970492036892797595076608081907939426605620151929790969695991849907776289394229026441558603854469581897899604646466766532255492046683119299195122579861144157706745574123584332441975548717075537545200154125637949345657729336240338873769197965634217713729038130478899024128311131824494503445578712185500635046987618045818287649965445075687167902066624873717030889514956222399432364529362827810826831787684457170227774063418952264419506508469676317424578838197172180698025967315244330183259292682009986650017608493973303697311871950886143537653220496702995792088566064647835354566153034672121230282843736891925481383867345448051732728834553486623407984338661926403255357447472091769321471628066771440339074943636914669308085344279423030532775506991717091058820065033423729296297406654870106725152099884898140801982431569212136336128511198780412470366587669699273149736565553612561396035569850726895598701958597900769557731269647050902753016904373798711056573353538717046602057074088925396372773959849957275015961739891523626275892516774155017183309828566452017506907371697269581422722491352756992311187245744441835061513118855556610616383284363682102959750915638142658499179127940631002206699516646068366276259499596608819507813078744459058701086777899446437868456980652808668893002750231425575180853480352771352377840684624152735932250681841792125443591134979528063060127556330332502286523035813025077693920962922318803969048665799039439983862646651199670468538756338512436671171765263769773076308444564180110798180392801854819595994206919655351598065544703875499479461532155740214517250609924008698497841856835216715229243039682499821261956119995736080604182337108045483072407847392595664189472804751219157993799546789546152330795763220466382140129636241359769498428008826550055524423792999677566693086264435811721655971708933405719799241243069297692922745443876094928076467404837240345003487690139786391615694329488219305309830480036790723935229847161412315172181198354552243903871633694575780375056599531614250099456744411007068835501251909102349611611233986690381436566932769738728476827004387488357909658849940235110536750612312767302785982172011880755611505342427720885854951311371224490908517899478577569898309330484665288348184365225612374563465801818387666941870500344729138000434008007546803989060044863896827921244642299942692726213881392688914314423407775690976869440557357010486171087567233960987626636876539110806649660535696813462886373732041690835254637904101449317822256789674048675471921672108019409967475764193786615606779548404197028409530059213150222830833226690530117058285428080211383345263239419409120985767912431757310073196960426221753315347285236678581547390744775551207736655025115756378945141219908119388646204312342876394582216938465154988003730908841332127912952149869870466166041545790108796776727875389627465833155992064018782389491862170303784757133759987035597112098087279960218201420671069788329303535562770296481683469925816035841836801427542085596029128380643949779673199989068537876318343173934314371075790504326809631522050361760102441763238546867214770870077335032407362459748246803644920507043766075400185176363395953793184698394315240298900223087114312274643042693838530486424003151181546624850264973403734121389990290673657931096210991714884857175983895698974598995805280828847978185045415539467407639559342510644220698826616641179492631260386006400100815698759262572518981242713864234224168738539064998028522053470052783499791095522382816003698397574516054017634244610413557012227626738678717311169194612888002193233938764984215818617161567982848777297734862927060577704323682291811807321544318673183672573868931537775666683279493763491435599282786090993014935087023805144505384906683606037978099684306988971989894538091979064789416870254599318483787567071650875341019568990782428837542384898647349534844623453089367395538092989061810632269848426603552138670018992732323780501551044399173810486987693847680666697732722445656262774393967410627279890058845455768637230239989135240571051302502553979703223259439516525028323314974187340967171403772331774501560964913350847770682830425689247398768166926482735613022758933244501775008198498449798905929550120169711725520582732106075176228488485253838156388082020536564146118456783159738095937157033376625887187069071515278410645877438075406244318512137268539822788093308742630784927022998084318343353251914806965407177159020719906888491050282203600144294204104873715909958258127872509319602674059077183040343113521328140916348957399701655620533772232851410358486635636856968694997112191299847726975300265001067505104031705864049898603218031110058429576834829659882666660815145935328270513525569777238673368586757503148354343853333852771561726121431279355661179825030208104264464577374285717786950016546967975173793201013338651065695738775305868401030113016229980964468555398609356467486355006355501820746019892361907473709050252443288477096781263452343405550792925424884727177609270984055781395770859285914495257222455655270139354030944041379005631186619627191646813007927934614325606137049603667933941998558523302077749542327810598383748737408032301535205466366295393304676683831427044627612471808024895778740567662826379848275564663603666602967310520125012728785123859822845147870225202015252967668290800217403374818858788270060201009918423540923261711928338331604756168540653574708322068603712645667445922675075714103707908819125971966820558283489372173821220551839638399917658244971113674314906648649187580657057129626397889323902899651672625043771439239656370173956072004315444116107748384484795586817485814454910055003554830993740294099869679142418872555233807764236901745433802572198957894997801614011750681343287784423593566175513502936853175736251194563103714636670460268953159672207137964427695273422585594577829779586237799185512435166763593408662368610886593384664020473735888202421654565585008978231746243930287750163134958705760802198484011536082859495353697982252755866171287519720370606496899146166134237463953054792835202420882577105289851013263788307279050404949008336488997892155434071116020816274756275695454202064833680610954993933824459010553320376338088086625711884741732694111552099074315243897704269896398094310881083158704485984058979801539713477171607864831417588810373170820189216715694811232258562014094471783450838047851574023726883655412812285488041113366235825736089020255583645395770625751931245732300922632726309888472650690952144877203456228639461726058855196065984347156683217974085346809519075007349608352797261997177126393009581030122852763237297535551429109982073058767357986265575971872173722154959972132896880675665641717862756451651656184386853487089810191701246306064775475190573808698076166419579978370729075144941806943433918002475658960116329815964329946759359094004957424879298397321957253736733583895785722890647254791816546040801387598333126421332409311516113496613012508305428613001322016622057297749724630364405321380141735918351441931663492712272442615159991327981916953727405424087830007671812752839988270533652494084588803833943322854894974842893829802370184381711148011821085164075943128828542790970267935892429288331591635026353049269946256311217021064508037677168945000135234637627267140376855310199500744421834203039692685411629657585715386784792310120300678980332969484194047254070705896904272820680699145181255897625183089484963275170383021901752111483409795021118155971077695142263443276883220421491698668748474158851957975222193468738410164986343048794358781544671540073421161502204564444844447338853666931709242055228894949427772865676641564998878749499820292796945893298371901071703751338953857136269424422524354241356824030570170758448772723171800210145268144886003285715289853526369340193763999836023247820944068235722701777324598109345437744281967599094863291299714308001928108975912011639716926944142576615598193813465251283630369785571950377812136473464065023265383044460752943361110770744204470587805399705841509747493521202307094529768469247442668939488110295098756508453603810192149225501960134634223075123874323810753552411634291886892201938200057975978643988131709777026096660008654147197690360451431288390211898362339711216494110161893082142556278428484577493661074846888060283881515694951218696458075120297519309867494039470806417151868845592939911599955606208795136665768279624538161871341901477622837164853675785353175089425528610205809174351992100628785274124104313014536819976117749030751665411813404064757534174975442499527468906120108833749862006483039899271471318628727047036572362714545714375064689319204790084583803073074591196082887357740236479070524157504081994616720713256337718997191601874218768475580110567199451272432305154727664210973731283020987596397940675660662438396319469315941484482099929308466382240587548757676487840848215705046324061775747008562292824269835996370502838591980047787638941706044733895358853827499908149427924641271540413957148600366714622611677390478556950301253824176926869406529986973262704872317828867185150862280951167296286763331348394883337355993017798541527592189206252522959563561248981550472628404090746974068349690434969318255188209887001821523568611057328993619971832520992934109442039416714253984650632901934220785188966501322995485683035528046690620270575062190600212580937464780710783723378370006630236882671289727216849790171000983127526348898779118950705547513717380060145562647433127963689573690164385392450521365385373899029289264422660479896047400266462603598711307877059312612276881337802551743211204377368466436981804417947643756793902523048226097721646263579942952459450884737204695728572302377841130459566829998641288142502808686532182666107840567168848616186519196399762624709295367786856373240646348873052352978777362951006990873740185415084625911953819124110846016793369565356333269481002952720275212814653270126555928382669670267979355424423711552200173345460408631696801419655704317065322314151615887278886416120227164974758800183904465901701934683965932046732493233199263451588177200264223123586302191117401542959023454110581173506547751270696894876801476284458419233888392334270392206548484717163385954548759513486647770554742419183267252970158214106572317168212141592147034292886345765550118328826090256919876023964728604001799228137036902839808676924558522150930380079607027737267491547120155653513918520023948045881717322398407176901139727034749561742795295668247649404923846221832676867140673684364303607858682201852766757337241100845844060299834107786313923143511294400304825514067164963901703987310570047102956247068271469054874754158639947720137068339157615685640505573093552870625016001903453988233742159299360875116514814133277041400048494086565635581175935165236673587723600798574737646729445698229533137262728225053439590102957279528054364117832046912538293738709929629442301281058742219565965028543103596278875295060015607184164833200667217541308257673092032953765574918100088312169091152887830549975052272854427925470176682816219209961611129082826575924072797453057032538889408944882193730985870973946494702920806214552989272675925273662344783249929807359018855067926866500182427385156935953860921329142343585412522319745451433229471941642659330641028258881698091742839942054824905467561533462428843343762051172237328142443604370835997956352412620598032777737237121945083745047231860884125468656593501122568621567058806710568062207945073660131806422808260987706348188044950157658689238120728687928261841815271527948180586739580874633780212296146323010969599122025387464646907581596185452328562477777824515794741403878651239990426976816018620019258262328295001967448378039165526499369295316028676552173082245894474408089980237201407932213257351397427156920227745399094882689188299519528910064179118509909734535370308305806886164231817569460084244926797295386542664883342984328851433246342198624505534441161352552804077387656702690556375285459989113564045275548615279877732097499383654906019441910368284228077613845989581077059829937811464876833016049294664083428238108102938258601805224832780589731144465310360331976026919464119595746296828566888351695354279585796882759824897307266134768774895412654913898279497618647899025532720713939210195064211884642895672320331706539958987218050394623437834196910209024657121506746844752631896826994771339622039071504856252010421369085697715545659973813463634918268714587248798926109650000225173518827419636610473515970616798482501524003013629359842099739284564044713506023724001016344683619672060864610554552627311711038240711114643149244616550760506900563219474048027367936862497461003532741613153641463069880130350660320527075946980017358405836894672105093191875962677786380154619886636593622893899979715162421482280477809111854340918269911000689067000564381788234669389352239765168356155655571682160056285649419726724755793518600465941273126670120431282825420713247206200515691656620376146367225062212069127971968815438378435105501708639392990871860724543992242285118447395655621389876965041013458631486238515531122071880783363365222056471784690516029714100095791587692061966205756841286796804869320690688553211817823930843647142361519086312262867928522051718691476204167950806914703085644993681135278826458109837297778467217762461676795073866179759938584722136043301861833836199343877529654263478220047126968959702100275215735948119615683745577086757026021396965640928296693814196982316423952466471551982963949370902431176595004687055589122040578129590256924185610233923731816792642536545935923443148826936542454780520722379979154224293837114037121433458335236256035796098935860302861758262617220354924691705692352266387666818388485724750576261081252745568825399251199599120180210041215672169040725144809337802208030094058451834658424906886094102269114683637822085416367609657240690079707302091312596404691003557556704808143276602181051871733661633239482888905256087377884913525767434619499678330893794745680778578584955855610319118588558315800836512584540059730906028246981514429525411223649467353903967866618679441637650914818551237372263350474239567673499251558462513014549974821322426076652269133835728152173609098464123410727663932388130511866115620110709782228558742586981098626126543258690902930306371652069387810779369448299372041336548268971399637866086622747636678649321358515252744613630600020446960593335577555466021125939670326080261163856749937154504280540464068150260785892908197137972979479511992761853714725771630445688323971576420872454316262708179881609440252247654010486711844719920704703840475052487421871484921249115134879620414173480562148541254818653388767109670972140008285369885422721566880472858902523549941369096373761530279048327209640837343995826402990741319966954057908844535196274050969066146312168363587041093235510438765239055649307239975543700161937278021528778102765962483179375127866501776470014586166654827129258319255150087809742930384959426315346285674596897547266524020230789553373591575799640669036981430613851880727843771118630738090436350461250572182622674959319398477882106968223258173669833640546172665009728614007500568738984538255022610294380109899257087261508574178727129769183780013226977695228203918577731168008218797254600994973437479823228122585063145064418366623582375037401182777117338223825329498901519605747311605589755129676773650447674800811696446070690838857455784974967076154072361696189840927503217347381335957252198978836816449238731517772951479539844225764172393516019576657378944116741644444614318677080209119903815345611005751805084721819731261997661795012756729457396389798184266590752183264055070381785964583242258632021670667898214662527392099283763574586054416118262213584298890242387737122318831960291714350795794072980621527767117626877123081178340457861714823137684444299376172420633634531280800337660905949544309760859406075745047878984490649574467633890960517296081642558650709513988668713176499206202459185382672657193863565885127946867303633781558736871806633395639320841106746436744857246267686277909165748698828479912558842747848154350030962283178348423254376862318926378933529156768776237674864575491864653661476086169527500620859194730792580819362328710425833615450337682422815951556239372581674490548897686740985235870143602998550874005070765282457203379947916154400099712716056516660457964743878693016881228173347624134441696368990142487947879874364611927182170500904564952737029411688948138045696631662839616801232979029427467610835039401772384300142240899356824288141564937240885695161681758506436596717987515750511086325954436527207917146226324576450498261678281053286678013764473571584172574917639635378281514018120342780637002981036602402873423980536959604030143225627248847178908719726448087403028447330933137018479849690916215760054632033125399115403976011634663852878789099042240198835918696527864128166665542981456302449915838523510187731640915614704078074976783489803951890736544281514970545650117951699202553328784751183849576039131450391198844361933423884819633094186448268905504599578713430005331005813466387890096239107603347080083420337714209755011993568787278803612310166868996367436271227781664556091072683361990704178468712412499560337472452289868365377946376496316512986284351482870807313379289917072716681492526210436398140524879751378056129611520035686652423232506763519691220691995741874000986388893632230052059868188786242524287924025471734417242965179654338243116621514406199397214545285712192714888481015134748999262893978332370276139808827845094323137301083418083751557073551789288547098287633697819035026146810791192202588723449300079239643604305130499015950193019104589262558342625459067988113664474812533065885161162390037083452085211855091052425708556092167573754495241568490885672796390666865926426449327592831715373770372067255104208158204772766152489814023126479522931740707304085169735934107309788433724928318466798609669257610190265298077046090188215175447850564350163428311635074471402940276508759911892577163385758043910111008205491007140952056025295761976172830095679233817135198556714572706908662569551713358343576218238117814626309761224364527109562017933542970987094924182918820764135977921782585873304389992596206252486863954194563584002853312988715707702395552131851413456593078319790533998404423792240718568695469147047171538259986855699067052507795963999193136109639844853344511954672099002387612098753629866378357716396064782520470909055199323643169134301182769084191359974429036650363502341616699566654137066091754447715459146281767631254446073853923347873872368218965141825807961963196225595211314820075316182742722749530742216771747400859227307133630498455243429249326381591938690749289201254471918726172956817585225825362661090574604602676534212765189695011199304858215644277794355929653932816639764426166356651569804385773544983469153108082295612448697687430109155610330282485319367147805590879428962360685915652540362854429597489966294084842516853626124057170691648220997630567656048685970106997423707783288413310441251248732015775254891768494628373425196366546439766825664033293202360268052799999653866914122543670600137166748286820782731088549765682049808332049247506460347564760569935126971430297828006012669492972012683172926943693467745665253642857853230405522166740430313907088957131898691828259028614509670309675061265314724236366062342374207992355241713730683748246104025804519657510472867852862571317316196211503790744926671781019630303788523584302565984366903213439048508898685416417153785044636448072345983625523759271030222255958922782968733890388105906972661372875448716287981413334994391696188876806697179607597233633746326218044685372238500197975664177303816587656170165214364769531706459646580990386091440002685281635261953052977946134648920206617150247041195281542805036845966243927691949782282701486805499119986848974930685553642072064627887267222942009738170329465997203740204773481855831285047877679884521883201120861762339942521314766410695836578639602193663132753318886102580324078661575381429852482010766385212855883668700427491778401234898144623896855795557378598986305987767328576553725316641371271140013532069334125457846053368135759394622646317288960108190606906200738127996051015616161901884369345942716400245010586806100641460696156577482593588179524542212845199051414252104056500612493034338554228197660419990791233237228452304726067645143311063768189899070661054197498409325538719553270877720004761153509761746606636057147497529370464564021080686153021437961642085395825286989363239868284632192999074365037456790763241979294993859303232275635519284216591907436613622182486107023959955208553431337994629937484927912376379052315915612107497614513968908921160711142802666575394598343480239935471068498527571057992966238508418568750434996917737181703439112690688986287614333940024378850220613440109756699362980593708777822461452784861609577553397347491939877167828253575592613006098794265326468233864180315260581961931009510195791097520672990829293558901092443023835972157936607972459600146166635175752986629188359695549269990048697740846695252494688747603400112657552450443252573862309120668329287864862832792524307298425159947215588621342439468636972720395037741314219740342131938451683836073738251181646581812116658177046904172437850020782018829239968932391295418955000536353720913489688279396238732461473700576037502969437768461771577550506269173828165205690436878641848475522045883766475099058530633462271734965066407346623735162010895119969198690562346133932933197944683283765497565029686266668354569323921835858224949327696749336042640733617489843411743095220706215656839322855963059763089754429372076955428958986802308863709497782452932287140642472013701559724026569908974918152636991836551514925669553080391979980694476663292203943796685927654491474005809715607838524512400557184671877820910042597643638550860072119594049849029489112271397596596964377287562487272489909083563465901597345198554081657541686876570623687457107316836730017945525734159134165779302075519196283913289740383187320386264701234124248436022619468193958997925540870502958712422079640264277928136201823954684668755100537449597165432049969471682588017823525743904976566183057222361145031772626490961579316271426728238826414597436186965649457377194040725002055173459146407044630216636679914651279978739296502007969933693027062947739503174776329990257586881333088272593439465065478079321777277230921478878734097272415881616596296874804823042068779228099277415393525205993171487547635373805350071484664591781215588950133515080483128222120653828738566284186713687810740420252580903503750899274350492658141715586343413815035938324733039221922098139044832656706764673120962890341170063447493416962759912964086546946557047465591021506842987379573190316532164464269418530472217157214552653139345950467394982451851119828101530974478530754233078916354327646558694944782856705460690530252380988885485938850566028315940881520526933815884221259864883774401377161667374255048445843985376104759957061925879884914860595920557410767228597642236650911483479001245835637270284818893791790964003646756783566668383182166005312160847116677434583776334473597175257313801668087610001073301606667962291991712596913235656964088140715151067220009762052081177315029180568257557078232298998486707119977176425870107171669392422493979583589313723260124220724049885317741765409046715970216201087206965137490179993917669128380382557077901517924391394285498089768102275446659946797331283809739095754751023299599959440989722334186556063792493731185536313932240112634724125451811792004473585393103213508913996432222954091995331403859932964419391938146835588395276745688631729288331934358056680858131864278448379740772274662061117627165563177818968614238957455709019287889627877711940532746032360161826211747350382829250469024232496738564592402663189548782529172040836430127561059316532247965117949282382326376699457588862842267293210556324450225592093958009971696907680199349012143595410667686076064793266324915426578062910848385139391892679068429219514128050835314883574938154171414395704166151314585925222621647699851843305916523405757923523551072165050828268414256323478417997513749763107614832042844252436173604843310423817158818700387956898818248084179306188558172502250756177359706208321750080833146297557759045395970992137521249239731830829160355249850409139499100361059630493696187531880244602883774897875203351878950333090956588500012742107977100006953544192653165260708177731829748261066040307183129977324121580154746520874906077880334171840445472170099867776380588082885672838069860292009808357005951568144711204477747830446742050178404564896162600055582300920304498180146756133618497830508706352678294120423749660285924897210915640385835519538477455876529265701097805571033113197624265220782060063343670829233321504811905074282988976854452842488183410706959022157627418416331967244654902758196987159005203796962249879716477978609996260419672727512273586998335791123639056620782133130203715665213427204421492455640376801037303601352669117514101102989830470859248638391100687399393208689048549833493538938930234405352630305859049539583211129840094172121155578419417101502203894608640770719192885279847150774369714867319440472005942618541396000214973739368294334346028744952316364215951598501830580179899685081440273391387494382652924052819901775869467206143874720411952762286347697238411870752795869167568288870284787525147968812137114705186759379455849098631722279349052761059919818326797600426374286932656812672578795255685048303244095299912572914180701157630218763154211356009239104910493687889059075504942722358831837731613518137283542220976048946049883961252159203435122960906489673028827419527837013710652991086353760052593595467690353574126095904059843607270182023321675211472255361777507793858168780625912815757014725970169303786198604171151165422379841349816126920050143172654146257697904396887195901133876157951080218833802554569438438730783171059961068062066033562050342486882617896534500205531441935714663929107370193613286819436542336846885526643826177352137489463426438739374229126075989561347559095898741273297383206404766631026053680254541340155087101961813192232466401867041622278043424364750980003462208087379324917503965737278348364673570566216487972198059327395867315825481019410911350217908556670631127677474551164715177140806330659839632057426325412411780524541698766322921063572245766935589872643745921932829850463208033762910158724710263768654929186123277203209096362311465881683548412974237099379470535842750348121540313948784192810279786151933754905154077427999006254894774217990118955472022213916392651467271476383011327612799211917186783511286177112127738339818887538874425927128307035288827044793805546105659566087222222834710122702539998368409699627419308544655904816883228209793754279912268232904051342886956048457953906816806523675059734042319989421831361356208440339212810966396807090533188947729487758581378881695849308207420490704302712466403316380459863533352560660568862917413085348370734094577537929124615254188481192832364294146322357740868751203546150463824613515591527456364301413693000002146230248138081545917901643671153145506889488177443782126356362738183260140363208231539674997385570757262151165287476336664774800563760941742731859681421071124878061809779880061762742969879976465136582245851475947953433094721998895415470059139635501928267851897394709148220914358909367933662967896123173953738651580420945406021208751932409043197590553403776542002953072335854427189694244442487778450432277059652985474834755399101976166920223067556963971218830932572815258678574045031072304488487829461152799686834516976134413565453036252567066061464235714347944064605026912448682772170554184368973103752489038299171580017214882359958895736996459883620928836169479664248192809756744278423711299586034957877589261223492476726989910961819482698529191354671485844511742721009916953837956548900920552114297323662483739740659550090281980375732932259437118681407275783514169372333203690583315502891592997401187463651269172617458070886120301305436429818936723370897186920004690640902156737815963217823246801736940063544170779179661150746116094967075805871383409593341547178267919790565883464172115275460770734457832559550623259980801229985801599948114704819919782767336842078457529578587951102775447671955420819197162787234360337763652605897591460111159357717587402108231011011570720545561504384571339420443319585662170772329496029760375694473949830989917177628281206707241599949187650265015508471292134857114804720128162850982598820812919178182974392025356337640916719475468175177509255308854415637301061348624958111773444094867430911352364458855810512827679804242859906543772822819753609726443249148682919080733091013814248374502238295955130923851523158772205761324761043580449054986604750917524145644905837519128308296716466513881932838016420808233546398169189364737349875510058155447446096153277008560186787818904627782208314973149828252874759386073394864267567775064466482103734147829099553669132254088379949036693143326615723489718603814771570296464306916973285914367387079686650349857098785774440703786894415060084313677285481274740290114508606539782623280484729342592738561957910508212440196927217551207617940121607002511628079329094634809282863823874867454070360025688860182587649708561074090367838094488455028042733775800290563291242116625662729216811425201160257067646219397308526589493900323187270704521989980800397799366898886959348131429130163147493399537470152702652288339841030928927444518720932213563696884765315608317214905981681587423080109349605211206069644264842362833736610467207758979774079552073322699950210122655804377996052390770568783459069588718500205661988372509037717619809423175783165277788312258322671957912908084684273551331520098165507370655403040242163054372212241028004510505880999842196828266830700306032289792668759798174327156070542077694806540740050071396365315051728988347110467708279290485217547914233633576560665541615390818207211571916057945113947720232886852574335379435626733012354776971929392394482169522021413050002038452185801183622701886219439466907204927012615396900000292177057726779250659867606893926512861912552591263559752834665101400313044525288310359797474183531940446983828695420275897800855485717632024365068599880073237712933750393341117344012640024948007545954406096209026906954805061530540152227023829401382280894429622976606414305425427110723411603702431248487756797855450657962038198495164405677540022313386993229121014738082788844717548620130853394670715054393533905834861269516994871249001696269350494650947557422309470584287887085684749997553347635364867920160227848163985994868806595354142286848500956164079440135938662928952353448138080231036447003597697307930027785712236794919379375377823604639890602442357185016810091597964103864693882646104743908950611610355363478024755777108570605712152253106706311585015566093813239248084293831427351585316215987088586373070040605797377807051471157484942866313723380521810244548717415462632734778161317672288435041396866994663090487603200945757846251152899824143886764167688575571200780592433000590742270343641010546372455614580600485392236651589259944524033635540039777012735947160641988582299899651926232230417376656386002638165972480266092631194951598265150527863813038053302374336189936900279157830983093146239473781119896362113240843384884665762043298734604050187780777724641659864811878081257473291661718048048332412189534668013146682202435820684501039882910495644075785362813783317978599815288134234251583702780739446879700543245695809238739238126604301052644430271331784288989421836795483668340084268791450153587349940236788532416017032241584481436649333710474590075920247853806415803403468473260491335841103859924114120292614084885695860637936821736327898899437155311516317193848577364476452428962059503443272570028244557071130245086093060001449032447306706864447581382931123473167812377005365460735328854110434766630647675445026963761776280348797123158338501350933996646790454669994909755525919680080226719280765085826093010755834301073713786847353864389078031644262863879672766883481622571079525274893409028583189689020771316615039607225689729529125782483278832912812780247377718196100005694844793601963605437082839194161416981084850311811398206561349455950943390322281106935946478332039377022624668679780685410953186313243694122743817908957242148212347956211176908003286344872865588194471569108915794066044617175748663264740794243767553110449968246316543548665823450446906791531084070742416493088863819850631632200702662921183580262958248998437489768036416239342848597310103966579260162050260268738089559355455782465207968412380872755387104212903238419242526693402486525875421418259019678399070380978411471938574901892245765645937972841793863828167446860911930031234555525018957919478375921018469999334784696631911348725346676264266998880930841204334304414693665094464234466084679870939218245639909392157832797396674602234497025547136730376198638478007917862903347264909778150162032790576847167886384500606631013641558134872263950911711508957574928961500662469195359119249868551943937702392916026324517700445232698278351927962742596192298453592796434779684501381064199540533052131911790933404293259438644114342344390802392363618768565634936133443440216821511627289999103302245915268961928185529405310220546981270665375851971143728461562685899170317743200666382784332708212589286111455689053609322783479142241121295396914039075533095356378897200154214503159954546431950498391279559182427259839133700385230882655914380608552559436734351740353109848308071237078286529589997814132882215200378558902275615295316923988134454360942646433889798346924903387792063190037304460177439392580641754568571980774235135393528415351669993727219337683427390270532471872461819111251124053734547560708565377885746647358026595092797077968123232556096572636376006776543132492643019688952570672992100710821072307922759274276758915076125942449994459968473643215167507657744554984178895330103259574839582032638851341455416426387445556340367585957712034349195130151000326980539932412052637924131010582302966782687533332008320757761457511960001328949660068694598377754075674806527192884303059050425234419007157494433472649625113399419811260004012740508439993593759943526375213601404699884377371978540203126617246957580011997420536376782030500271176837869366872734522809358485963919418654420517170918088606404815510395576257864471170330524660671552071981237668196622068957713978706168697750280100933501434976599393549476879646078636610631538090608593785190452674902314396874311767327473952081281321102563739908669908136059440060879731016000976500354186097546222539236733691404537461104743093590085044595317517912628807436002900434185494089243260586249362075322506698844913168728555743065219226800717223616173507485554480867380817530238654986812126709529993154771529377767966021769693678112057031057766777690415689765961467128207525811111058920804637403017851825209490800587714270129705416298354421875344030007869357662012336954630847767175037501691334833201862031037700144861589117471778078459354376157246914326160437168961546385064646600189957443099398548991991761389979492972683601198026910654059079451784260900684876791695914624897067688954541521061761735994715556938765977749615006088182351502657368373720590623285875807059444346097458957531727119455976359356132349719783261512204766336990728992630706742865150029812508136979665114925875338827520785232623544205588516577421257444006637167689585793916385711910332566506338524164272768349821891382048751550507180374884144764737357738915978851874110837614275728227327463835884215728595677471521814163839996954653410299420309578533650053331210780230724953311748535814685077660269311786096447720275230717465960776992872648729521092081752454173667968106926640777536905634738866416210969727758021643924014666190597384045306994129649518253381156485382891059956619737312552405790314905462398439427032408389060286366888497946949112795737353043042158677645366413378650660123538024591729101526262879242954872657540107962000175842644006128870576362291782943167416284510288193654791737018929164190918769424193363034079924647313325286642020525465939888562752529824874853378836822629435236327238211772453483987578241910777857285484734302022236026879256981579169845667018850955187949082694539180290780984780542489979084162641031886012501477681190972576265495882201872449083186356512768922602219969363045298870469723964080622139935036448337090760848752984797184421590071582960529521941929705064930514949013049993679536202788151540434352346822810354826948581678560277232735127734717694727280298300507198066988560265407578316531151576562120159985451132809940556725271975285381064362125156769962065544088001914705411607605789231684550661295561941902265062417092880447682030691533524872364155949621509581451581642599474356353349611128696505753361779551847820070343823999813694072241859396913740821598111242719372269009812381055910303272678027990454951191542316207926724419662887252922195767048696990082233660800737101783861297344555887626291323392935246348334179835469960897575987539729652244388832628446729922645949471394045183668982637547344307227978664891144139974838518107578945722823855645865547580829066978245105167852715256752393427040760135866593583804631973219887323940573139564345880913348921254813835607202523256279375688013986572625605643617622852847471487838014783749376217928324910864213706376400667846164831086823922658277394806542698706863126185897746740067805167058718032624163935893388485491758856944514570054983343185771160771297386738632968883964209045338071184973700471617818849711732820361596140330077839919009220314800248492672391428476877408791450607420415255373919315466865915820279522777099449179642266047226176858351698017074822791502438602333208796794834629050834385845722342765277447929392921739982590466004411519426526458632344882000976468091105484536344756173292490737285208708673661344365520349176917221159821608643219280359360532289300474264513092442539309572375755668890054829562337733225131156114020542774407408059896812352366401994137308111131264034380540828338935088239775150488533801317350144814552005795012386922325890004071628273286957008146879812578317927726976634030170735058477174492116787299295644264343863086950749880291109037668260893889131176768976086881469710029890030469168829415444846870237719260898198173285560849110389424474401512219088239411849053997288439850023086971176694955029611790625863196115284185209394745301003989764191769664472739044546620738235237323472949457845522542201734443445212703777607243451264082991670538354280554805661624804610995088222036012333494936604241366800144551876276087969347841413358099428777968580980921326122372541029357984462734412778139867202751075083178153640653508371297246281888666883485778267391477440962999214122090586918965547521189898650499038792234188453184456619777896414952698909204757942408785717271536336097109551097802578614778957223670267481077940889125005616767378017124692026004540312731933357033663954756756753462885511726678038530321298024053009198245292154041849687052311317669948406006054181547592999675541324955804895827812732073822117641622132736335734824491334373149761391325520314107571458229003609870439230169683753084920937249134806774229832980576143765865652163939005223216301718861848195282891813322778780466010719610820172473284381292088695238856504827034300228187852778863805939847026843965595946820031297506574648692955608090863859668978301082295123117750609242828518819095605233059066138175301924644540810861966320785188060802125519775551077024128059775532947432245036450355877766052531745662445234927683474359002013346908066827928172617248824324826343892331475387668326196283001759188294392505387347056023120764844830368380307585663376601795137258878218225615616485327795224031167402965971540282195635635969065564902055946377855133363238867526127475059777135619588684431650518884089731998678674992822672083231700779555961402017266880091962007668164619252188071615682923814554877568892757196492906577398307723349057813207243489413883785208731705130275654509196716198274283765969065741421439220347736184447656249205048368170480704116236981242184883947792887403824720273643315252260379607068731318542512811405414853152811787226492926503294088001037075078869295759373416722972088732166622269038135456723557888739394546806672676859896566786906482552834414153132374725323466432687824103547639480715181807017366593408363568382577852496454378443047975646643472546753041979262771081287498439793735398456264812124966221865188722876349943989504362312679552281812494842495544865486913029394870221298227109236183533896080131442051527590674747995930988335949216829518117906805783840173640099557826833977678674428793873116661736841090172533101302953795814380108101110245541443615988095537037870336287793623246674356866981205166382266746578097027679749047350889109396780811802174181919448319371873168527054151605041954679296535474046858100268491389523292262090944788300346579078042839831433837031278622340000493087775882720974697685897997482839754497833105116223272979899902127722585748061244049002044954229129797109894623515112138558610889819264603200632445470868311701623288949282235596650217931987501052770051336759246071168774542842571179627782516022207668428512507246877465710791219123930541784636923056941956617528379639537117174325923796342750797727563777655167021629288633685586239613161998478473479902838052162381978656341488245185610457535194079567706094902254331863894587458393023896250577341860317554322206753228289615525132604647029675908247055383434718696063495323640744469437722635519896668598059510112280176183608406359466867661216256683446852655174340897931944239345679377948552388900746119338371358214897281440834121498896904294651281297568739455481446903088592296402899723305222202321060892267729165965273025705912852567649967055755232891046991562304507886143424769746065058807620822705909800246163809462952413373047628955955586351127264470307415270840238387832866324868043730745755939180498349155107366919363844302438984386736427012777096442801988786763175814918794168503471903247945739950858649220587731787446794660145245487894066208890361522870468121690329074515144858783259053018731973151111470479449660856335976153973429914181458939047041012199678475180024804527847245987442069628098896273847296221937427230711410550492731449633645064364750118979854639929867964645535245535533492775484325236172302540445460517698564962726212736954528902450595047429652521508554312065762861046288936531871641666891873717886408444950324032801867990736869948390757129481052209795084987318094856507674253356174941270245657816425140744513931551097614939635353824717904611300875287760353254486773132036379103354651105518443844925412627697193044425555346489687987976158070223899525580224084979064886821466368627451953355320429443616697617673837308243233585375601424646396611541604910071791073517218405639643960622132970253430873418963573851357353263962414736498933784397237018012143967074151468132802992708176132475974075293983228534785373026068768886949415281871848180314597378951778207629427207212119506875435470551261076295754498917454844735460904060355950685224420034760547097858188530765055896645250667303435977819170386330601105199388460755845794707184527198052079711970157913253284534390175843886461842707014645086806578635670470359900130788150009469212828392250904961749992731108730032210474842007867636224635423191465864639465510302046520122726022930780822581473093530984405993441936033642347462565870300872165579825429036069067506127181601187900020350154769216073490640803452533030894900816564033378518466596866586350590359684903682580829624391923445754825294572820315904985267138153574360943181911016570261964086731206754828326771776799884058335058445196374605361710828724712121663197750140206641538459397637628081489369222309584313329669445193426829438832168161486474410002150947040045360760081876175773453687458451826338354216507491969151768351324126447493485777133698125831250483357439225132582690505701470489487182635221676032397942885964622040994601549272871769086854639120666988720528289762760945596334777992324240755240544788555476286582662305783421412087793073183831643727533513811813656975144823229819887285959667125348261874236157904651754752893079259342630000595141717208214638445816702611581360017752135917629777888637626846977274155474172710308080176146353920265664107548370688491305731474329188567733460707711672764526600835541391826814592048809904105243662804227166654865732517004780569105239040623344192986097011924123411213069752401938901427254265924629709166123670870950810634117721318359434141721126777357614619203369578168605861749440238777868689047048455166854666455259682521834698943203831678043696102207444129635361385029583476381622715349573028931085691155084850743420507180527893312572779374395051212341634845380036760077541184253672111596673641413733633583977534689314296980419470059728202039211897972537095220276527316615359555895823934346415296545429519498006000322557983623207260220288693986150188629435145689009253981404770737127599808311280232032127408932849203777200777940513202968240507701436164377587701199201170166153310955196013312741502104119044954983911072181774822041172379501365271287414097697335956797992149785293155427670046353378975516735172823231462446068699537425470582433353155337558054029545556365304047716993001473366004174708378172017381416414434292759364945440107009646476909924141369943586466688973949657129578215510961265005722519709768468143143100921189655046185973653088168864976654932660874852274416812569349474524105554814638226278896230889723016567021726917468188000960240071817667576309144951387125747756030952150409655535431040429711684030248645711854516076305936233030657595110076925715697707257425788592950564444085182241984505379691684662745671030209874045316049527332249590351969217845129480220259100283096515747307457967366359306239021788239753525946524348976401965922407522813057090025486574406164665345597190850258643186254482448193009246085252278870845720546646801024097289440124004349351880100089054720518740475452030365242773340319631087218320540031574335693253062032620374998791353023976812783162536576604476719308152116654810843884104492674147105511888764152942901954785611814278341617070168410457312626939582653103894745738681134512925885492944913673879226395815666824727237053080148747776739703093459182665437236884393360411052766339353065680588241108661823200609834685477387225515136552354473770986156028076899501981043809160686607358449572803113771761629992545630909577512249661392485776057882460004108614183825249246581149872822027896422743930828673153814103407451153095907778719127873942087962329282065570225601903303491163574542544565462605330577980043072654950397244017172082798398086292025620970171218047023329140413532860946292459839434258186552096989537387769726934113076006842488767414488859808360446387982428137169540317773960280627645752718066879760162513064188561980355512076017206960551236436293378273555434074822176602001124358661751392665277700864206470287911606997286361609746353647140552139442480085674991676325903707315571381207078119578831442784621280617475328556822073501145243583093365606582153883499966935472625611331496335282333714781520541832371764921304475272782540543324448518005377171639464761054779198194897038463051092840418360016145683392068859382108252657672041934050907074861132643545485267615754846781376657884501779661573103270661154882826627689566788099579278814965026258201805747755557892781968217061333913903531166508425850971508352880255223170426307023322023361442443359589546856079416525713741422864012953730941981045648500480239362443630472225593034319669785565076483479566223117242487390144724855073683104334412367943823073099814296601598885742932998012481424872521657280706794348261164382395276799710034857031421220455734676504406339418857987005151233986476035276243033443387286357556925087752693686479409857494079398998894465211097352361236448166150643795399198088679838264497128192306740169903364156552623578512440031075144077754887767632003018858134558109281134772697749742970187689924648663467925213559389783718511647043811084155368178070364854804396888013814153970624717306589868828210441014656988040588959435736020053502851706553606639580472487286529357686859642688392876282157639217559945060853977987121576216541670454313590066820083151742992120578227997339533260663192139506348599914302951829224410952902941582906039312298271311308042755330836694039388543589574733619859921038256453284418473434919379740052381932776338085706115309642930411977608510640003581951932487883271949925952222934968460758245003407781539263769933727388389073894833762625779860502959322230613642532660299929434494064644810367976273224753445097363965767717874588859106427126210298318180943763059368426413634147566241078446219759433075224424918934556238363364845297889936659914763098915673656418332622965074515832521726685525334330116974899953454316121919271112760230829074236959978367395583664749451700859373932555288637419574308078208961527453252053740670988244282518457546917260320305664912793864562921497787241328748574665425109778510054120070677373461020925195653780996434630371644719163199319511966576665194238421085322962276265205879428169624261690957687595044631077357731852111744199210384097733698480950582225647124942111116474294507450752090461776404755011060964506215706302227773047556465996775026319577227065299741304951693644769760295190302347417038632288082168656109126625227478756414503725216660037025838244407829565689536219975147077661899732753229921607520612555293401031696272028395355284301687148267706180656414983480487522775960259180840115268770105498204841037926267787359890402627222727531384698845833362568695795976970269010664093682884777983963445460641276175904101129295132519777301259707962636950167145291409522762679606113656623816139368577738807352469074970416452467960393170216947560462886664722367068160226765469853704576246885980150650993782465427562941094480978583899911449718316309245680817208574355426828355239011283137890123851565840825598119372754906559187996965368179280917899891994275120279009274617261253839940111937008674856592601401418960813688777404476554987474872734060447678154319375323917726188222594008746338230475752348447424855086088358325901492146508455871127069936072160156576131935763394860535509398096009565044796059834809426836065205268962098020036622436439205362415087852168136162361077877583642425609947788691702281696313957100141362403075525429063363803059064260869543848823849368544102414650548784254066957810482880447041756859648741953629603451940305686685795181594410237609943808500843096469250290143905507626523983021362056781635129756029009828765029936861443859290903386790713676027419629103718177622129211431529134423194516837604100231431821242570210312393112452871024438292340716179785477100546893898785025807123062219766273978961454472431567284204482021700711030878426456375111247124419050651070873753471777443132801572828412619311329166499880656546428334142060598352481628301098919984389273160041947914238388176689854817423537599803634435915365022850595318453939909356267913718217675252871150962642570219466970269867278846331604206092945147122443206988068702876494069133130347004201894919670357302724971935503911150439578529458995503977324950821336257482908658869362570970452208500340972745153801802437612177717777241462019953245539743774709644666927923963280389793908391445879403496420218100220033103049145265068844998571486465276402366888777294573864505067249867308848984948882085343809250541502790302351325320795089205266900725008796447619894044068122532437056193233207543498706865187073939119547888663898584982436240311361817775892655539045201101812075633916391090641898243967894563338935396645376884706354534174370178515277225427593612826944835508953134805723222087634163257660403914120801644377404758940665426553963500492516389117557480191967355226615304252938978156169325902612932752183411907315506444550587717754683727619367753398937511615917031306353665824693124519461006894398527588974677503432630129588764829212495464838938765924482710487227462747216196008885702615740557738129436303428048401687969452218645492760735678274964633142444796861951299336795594106984199686808943925474745931770851536098607393636696719988519142064798188524357877351698993593242086699250441486137029848459977440947761073479209140501059874429873222577282632930084262382658674715231972248199549004368670025597702081201147689635257906739427019048687689061515684420127995633568520097143599954662298356264229121658996838686537298058627348174309915702462399970550937257333726094320573694055159537600642056584461334346374162501561560573284975150428327177439977680128555386857894955110987928511918081711578784673438428992961346022261899849884442410140200498504667638251652103657328310298877283434256627159141889965048473996448436188186715327750709179560745020508220674787222385164955180709023441736052447069017084654501021129930215907349089581737850862445769376146307585777825428138032759238025100888539207736190356953833550644954567851770439457206928928756550591863232214901470855389616478919272579208381803128557995216151359585406186063828581550521220585722005645252566154089447648088271374255991824600957774214061195984543552041072352595331256551655320559321699939926527511819744642232005676501867898072355567452536974786283039136322314394224119435094546175900131879616485466499910290171004067500247585262949396517316982066249602939309746155953365758477334836366759869689104740172512031909020861095841984716346972268492415202586222427404210078948805315216127194873374838744835750864522318306257412860932842220921764689326698744982135135009060355453893180023521593236902912678798230477043805067212460391410224859107679833786877134587695131300165326098531670324894382551589606688178867976099015200173331318094072670813470935074852812691856080213816912786235459526800612346039232737330694007780933619956006132632102117822469586468437500911106480227182223039679147695270273140897448087128447067176636442568926660618595138458104084115475754978648977917086492103142511075361574716122026771939073923585177447028550183618979129895771994659710497835218453226153544205080326909392729433750110191279406698830207787154603357524320018533586323138850859852274143478472744690421931709081507966082337762881829599166315218479668071361394119129893831407814765274254200404674706006548121392754906896281592890447514533485944135339714128816302672660109291198243065695313163285206190771440981785554682621378330044600692630591939526459977276671740408677046016149356028142522022702838704093806997606263666555015374040607785770140801272609547434971849294873673505962759999048698950302013832153107822590085375920187162543161699192175376641082182624474809893589318836821785553084855622007193377675775768829456765984993785334983275033252119095450890351479829754063335859885127197188011435132920211758624672151656433242055808987213953665240247514096982592424635756770520574512477292282129933095116137999732973263508407583886879450295026212003190412668854948513477365148062124965662527998708659050138780726519631880720410158920407563283830320984176885391376474916449640830947235325459764684838614492211857343664682210534730433591371445588678032244109251940343616910433462620199799093929567068581985009411677225249440620311155144533576644842869362196472589917134268693221570106243762352359466982531565945570668134750752542840804507094417374505834541474795795467920750272982613065293513044201917604920675955288006346095758861721578354315242165546717298685229610556312924177942384824689625781440601321460008167264556152141694958647033156497497749295178098416442333720243402559059868497221387481173939564589952114123540707924572308249674427658846484439063054164997949838779236249658630517187674095031124327325405176389592459056063849244665369578286376244058410883300971072953445857650550193553846009657831717668674690485261902154538640007277926682564232448544999879164337193759580958650473422244727912188931777619022528279682196011949500620381078408456188381930739625422538682258587943601930210364001958628051772037521312348692578961101875928991328868343515683374412347977470000994339062091841050543543210488742957306836308811259165949808507142250224482356521942153545416050697191034432472420239404647472054653407183433286732684216020973308179477777988639642335198054456221643137888937624466040442303827004625815259276872833020048900709460213020324841335397472287315236655846303231125940589901668827963506807783177847303229614974573604088057695525733180047388197852335407159140300249417986957278833509655514888543653196658296721793825845340980420627411022645335228783293607688729388785035435441971831507547263859051286750335354526356382362698894614364090222262138519434110996763168601772052243649702760665262452485033387882315822198307508880531820155758823541630718334737372780301854938376394868902302409318899774075622877477763108111055523746647635036915819500124622355707184378073562484438297309684511694487159609769937121424975744838199780396819621260366136053726395040577731810498577443791622311756624843280883375603402104517366992089366691217558209288667222756964266966048990150078391985994415108641211033010687566283075110878603059233572941701286191844238513570242184210080992974802806767221190752533131886137823463010156965176302927766007715471846492144527061746273665989826365283100200428634815387979968110886755598091052290136028542468229571974714425920197445222798022398045233384543038225674233224961731506199734215085863401695424560209943585610589683126643454621434523994715800417499568711222618245911712938383220763001462443256587910518234041494943847619637664075291438800144809456538580734442950154242196274262121957654290037931910327111755441851906568620091131540116568423085817519792138213225939371727075472136095133878196170615623828630075356253677007977408088042655637279785980469410660422209525277285253947673986857031801899986968797907647487464178993017387167386318946826344904288307750263720286650750694157765158127241865736919674938843631265555280263058309065968887526559262325602868883493007227732322064325881450085127556029406192027892904150633939099765649360396952006947449090947943557405956585433251067409157215152025087510145658856034042081078897731992784696512764957870224173644393721756219303722237796106050773950247340901150234086829413145940733714194622480553738412827877335909803682953685359151547055212249195125034229064136490803670642767016022517462348116228737935739431346544967480161733046812514372111986635012237990508267979541197144774255481171243911729171391251196281658479009779934063310739639638016314178420594108277678894018973577947302112042986896995610639927613380392218661413374018777162536668587658799068188074887635099107381194726060908072269151896737148554905113392216076240234738568173587283671735050485681379521844942025359124592149889134493712288423033638351459597677503209396090870872693682595434721240106468882019936146741805976357367054210254821392112545686783678686316528057585396398471882243993556022069122434940610415581700856626573890342840720515621889225548157776429635605352064538708934000477756837746297081502828202038926815113596339069924666456684818668634440404310347727423458345184998907142625164429873239529926360725393604116152208095517415789815152933326192214528249457646890924220298439110319551436724978748099916286905439051805207171396267642446371343840337839164839836683215895846784835287756053041493583305203235725084187928237819862434071304350726843328772776039171934969487830269456419272100800600694361236608809559153556858214170827330648847872793709687727196625686506484700878989728974952643103350357310472032954617125442656529750859046519668354190040122974071350553604979972388474614374452399304142832294133793410648884869764591058213761926971199614334282642803677694283901942681099741638191253972886969249691463063141433317040067644321414354697153149611915723810893160498678272956832562827170969362896473370482966752974887276998007085982463536900581943365178760534825199832740636444642125391288832393924363082517811950981386804714330200068701042423721703169470385456795555842489599577945330780764491573194776160994933852235702389539747014199003434402541223920663618675336295444630654999672333411350372527926180511738825436477945446230019612293658704819733433011449725350039275884193454228614055357073129070156955501691689495665218520402134903082313156035677531495850132399395583386044453224997589026667541209040643257041988357761801915793171009915776385742315448775518395895687562541401558106908531499802742828982826638903700747545549892992588934784800341715647193478442918715564282609506217181081427583886289137615994983659127707436643637750814556317945899513037396033284680667000420707809682189529476002873311668354412184931852599359649057697458960853772043065873559378497673775726354646452608831827444697802132994870635089827847175227231141407595132114384577943522487669465990362599739403026900390827535317317592263237243135630097813072985287159576521728097473975403965763580124376269558994751555756891646592531273534303051436660679013276185437258693707857818530078034527745136994973474203174023154439968814861697347437462859438889725314239522231478850409974072657823029039318221856624694246153707692134615174641874282463790162607089818981429659406201944485102850868521915821304304948505539367726180882160842231165713519968825259910771037070489067494705995800785303074880717688463913823242106720576902273960085673643894881660158806754768197059585773374296789005407809851514102437201408901970619414143134095742640472870476738445907003816088816900831722643579669988702789342172844627758435934266176334377332474368853126605925058321358822752137318067392562087806332847488659810861408500069918244485210195046279105583914584544384694887364211665676529887949356745359091339380718559525480983265765569831737412851370122607670479563378378359675374984210239260397640426750884320233327062117555033812943474753266712013812623545289817235853921854899441631693347911502023289519013511956706586086525785222725515888339086397623199352100988778752986411785077300271901412049686026659291821572927488160751840117126153768605308328519827636577107724257488967096464050885112455690106776696142749069029573124598562148022617078108997340403021994075452894223551874961276074309928255369336990616921452894597329977858257960122236246528153635360466035395833698882742045498451052211527876019130608369893964293958353725315275899094885888084849813538028527129450144461664615343958261784135670490292146997671728598505294269158863448809470971458130757674698959213094321118872874681915444677364903690597220875955030231616150657892906882499201804387469675324060029577076807594057002599487266245995419065528825812956339386269315997048319805136259755444532907357698602792017227849927296877154384698612482494401752947342342354402445590680620773347582614816393218503366511059361207238690747995546097165325564776425282367295052281394461496996010068921079077787323038937121885709751709582829666796712858659401651997114487477492829432660691034205440717360531298627399688635644576668139362044993443469571982049386196587625358715106158110390204580793370647509871329821247891965867825615410448986016154243588601016710620038547731513965798056131672638517104276832969113910642025683673073269991143989472759165506461843272817981052391726648043328037480887939518441359911536169713354398515495333147231944104268518869885528890877257410240006739838632276148529681148830262038015058084880524893353149354914029672984951331247997217311495686951614353093757654178449013349176271093403950616783978942762707704427222326671173513607385585220122748224539153180640607291321012395205115105250218378022799137844869356919765921441393099017343950304292274346737527527740625755025595615946271010281021192396397986077519420054216721390200216468226017951920171885603628535284662732366863409837825210624121767088983352136685761108002820651175135353182860067004186144032824999085588893501510473677302020333279695413128535381335909056800568537351811273361367821006321278317401994460093687105967448063025536241574180676085284790488281449511443157968971082289327119219883859304563046598664406642358932425932564484032687314993856291615471790742953988089422098965195163912210966814788265661934047326447262175289409025130024260420485986955670126533597123668477392394487209703762741305515183834091583139735463869069580119035677421326027635745167495364349856248023782351613135241479736856572355368948444945921015206002641671845881561119966663859176668407907038604639715722566655714393971135519001772964723695089913407624566362996228953146247895165576915299249453556617355601189092176328632823744230194155281350582776617567724934324601226472673431918673776265255111171695178396352010690188378289370769744926695923673562008993226916367890787083492362147899967251345702458526336320449242353757989820508414683952439781119056069938036198560481175630309382163593187401675510785676199895240060093766961786622990529734918749026602251752151674190784454604100506648863044734044553576574945954528495160573233770665670931928227166573843690437472133204013839238552170966766964691152445307636670586024536071788951531509388189124829723345509498510187532377082510015921650307353818228891105116352912049836752173256426968583920089438091421102128478701285090895013839938228618336145155170971157104848726053591618231549468905844272210769440531247583835532217644490256629480396063320464228503381996902253552760561436982815083942412780931739785193699184005958776626546515316511332583402772052635574451746099137461313140475101838631493968841800976555791074272334839987599133817899851975829421001485953958305435704903584417394114724173286881962410833357623969017291914352345745368463228449037400257221514544345929140903583500314950931489455935639558852948664254134352060177108747037997336624225860674290459171590153538495220878262183087168461354337878277252678563437138263269726140066924455253118742363746367452949940310089268655222664789111810347250868332654874925611526816730794564234416365816720794308950655494468960460963318334163197843561318738421571590215383926235231300268284568130109374570989960923922860251351416159232000103954564098566495786647068116655934052761164399009483028317488704165616763992773095318556519737725923788376110613828581088455084555517011723542857264162752101367999459037657707571629709356772580737700701077023837057784311658120008803447356129945176540909465403947129253736135880083898118896183236205801514257206693488236166555614319110831315360806367006989570475701617548992783945390754411380061763116059342890804490590177195576819545378140057855799994155037297233107244051272765896254289518161793456963279239369456708532192045965032487353327822693301904073685568068976943910987519291189945115087240667966190656823289020589554229479517843998135951925754481372909625346693596436924562442505504588288383881497693284325925512394490304478997396491434773924908651528280073365839440257683454305702821838377895245372518112263756607849765306994120797615689519789177494137153224256274209875113727713173125107582836902234119886983589943263387384377742813179152855813305390776946632176756604004278076654878895308862482468910617347353587984604864585973636377300046475969791104566973665940479107995610015586744495498811164201798294258580658938566328278630835553512880833900783372089289854868720993813641575242690094829012731986788992653944884002604114482533677142748009197540497006139571874473095871843037763883852862644372381442525706668679417928986603169333594447329403270524119001714214525773743157268794600343349670887749407535377125994959038329305442712193158516734416732972602602926341233941359970040238741212504784465260996735217140113605874906884965558311733413076840323160619680587103995594608928099940083823303843002345632801713137828254373684810222911164527746222581196321648506343139378688417369559213920157101046929428084873279197022416691032063920569996127290505899854264343543859755524756657538144456829715381327905479801195087026083058518093438850817444521358905330176505210700620231650972787596504864833900172162657166900448560058937836664291468146532176242858444136365263257392352934971319370746940004173316264012784621780929195113777858054205361564841341163199105546213735071841929388085916830161467120120322044966543699372397771584143702709459615846838852404489875679055913016534361670930870983875420064035689069401202855219558729135480960383669286012898709894588366133354724889755695206720783349134082375141013289048678650940844575687598181286927526303375425543460809325502901366576900456209477426441266590496360667362542322127663042915178546622625102823534532416919495432165591755334672428059812082598044539435550683875419279582674126856872693875000227091166339656819221804901231039568555505566598336646054545353243444437221954216168926529296277300334905298376745361429070799498373536205908944165381881330407581995720666759767095358967102913075019476788120099514893434701413921507683600592025246460047932054714420430084894957606025585147191912389028572459063986430029029689068508425051147814715614196073759192174941552911070955431508132932320444451280285640567628841519112926536084068833355351778788802837173248652754148161967738318722829263577862354528449555401883589313848842713102059912862498301433507886258331468641340704595395666494033214885707402910867915652177423903526965917133383792602999521113060960353355420388708161142170008034479651397218868606257697595382412958440110340847889372384579578474625898614251681909034063222223339180489023641263211305426173437022159475785423597983265893750678935547082876819854897894470428713931941679392413664022687244737153629783141667830364237035439270245556197517377843460146289557000159455238863069690912267103675023882206390008001022151218293044372385818431790456870585114921856036235812094626891018674004612186837412527215243903917834765060531638547732597370256442315850226156292800400988962209489620388470871220217152484675785265575919071718675905699920544250598526260042315720081639606430989703439627992866364874711836503132369904330501047668857321355884249977886211181811857895784756338765681891369788920326203132736432464117128613293073592236079785923448886659186838638851567330723619736552639203400017178744849266722777663773370663345384429530566864238829192273838237153900279528794182217767163837186189834070041095141180766088925476531760917428343789817426023586965452183915233606361253992419710365925191430937662325538246717079542225340253720107973679291172509461235786677353728349057140999229033218830611309268181883720417267581007982956201866224947421117802459850136213925647554033234758314382951496829522999216284548144653228603877578264493580333089007967060422133018678076984789206542701985946096564209066415215029922321620533214491801027601873966424564365076638190364288396690563326839748718046004591232780612368995334553500642511344494404055703686077572759698399300056168293868674673110852304725402691235407756176804540560753329188973737360953371362326411715034036230545112860503826574735026720855999046699880750196727857130824943901040467553893532835051341489084180788677781422439802904516944846406440345750468857539815644969077251574281478549222464862416989487151741517128632777636205395252495763190516225116376978970697298469693505753075342773463211159617687770041810684964134991008836642122214830960182336174253063929350594175684229224184439599204347413469113758730975739923483214990453841065163262622623683528211385080993020519001973563732743172780740970942262601004724086970845028123114758070503210739772441618129776259660602484580590064641959545297368262842629385310023463247771770236117289931144356842527708070345731203114777127186921074038568259367839504124206027686202480316505140390172497026370841465572058027777644420987040452463350878892144894782298046333235807239350635211000383617123192616383888570675078267808722256049241071328386897556987553453772992646552101675394295812506345476413422888182646890036774875825208081998372867413623334802226858595530598704019675171917837777387430496283295950698025978840197178802677334898490333158811575712611661955535765841524224434430314221881811278981832336222540462268575427994574259209778628130817657577994232000695637091618836660507239362159349213652733105075215574767451006998411847635806042178801966117386091884992701055491627879999404960761069629014094164449328241148422665779536852246335064734698261700657641144552549777621570615424429439373263251483909868871845633396490652496945288722391847665419756534471082777854987608320989090919423377417328569212517362765008296948344253226674366243709025523432220672582894456447017576655561791121147385794443787132973878762547802723641971586420690391806448829394891595678021983487313518525281856240406941741512788221422633988907235473528432531768843029286521997847660259792996605528913956548973833896838929484477529551461631866384233531047285001157726080185187455236436238520937393521957556613476385280402963269154889480017652661503733997584091288766624784274464013170698882078211504172629920043048936849958209504352394243840731601370054188296819980689255685585431280151418975137831733789652579075302121447028663359222171949489136716679752895699553428464748784588754983037100595004119547576327835357072183651873361685761652668686003918840344745066431205967902208329244056477372774989078716552401611956082064977513354547774227980851150336265881834684795108719199920817788755591237817113532517109385541222059558681320383263703786320886543462609053533671025591395397253039433573226416530408862989002525745083723527971976663644519186139643502053100362423738716536381044603868853146585133722851389640799345138129408636181715389298946017577924600499288176331577391530838246960903118495977818821775449635002034403371035596595249036256414789620239781371688251909907615588757958884348779516867273272170779350580935361977899330095643703589466333770927567992569893544764847948848042277673669369656706212392458168406052187293695165500179591845061984038327556737117051365564045167120525173982171520155964012888418906925085447018654655340778288384291206105123041015148829680976495433998051325000309612944150446996459684070033482557192264478834765119155897499651491067812742909299523354068396877979176179379192166022773388067262328008870979154944795695909841833583090929032339654617286067235332475359188081278146233494637342665550090694473161126089110313767379429033690405859688531848213257203371665880068637546440708036168988626681678720925945052154305169379198147208125811550800735446819236281186201734894383164874784609096247521880172193308629809236159442454051457624730730209175161441356651503943307162789774992699624919239566171841148176501991986413938286269711485706585572384902080314651416980598263880759345778149319138782869090105784145275878858981449446028074263799144682420105134702092366471803243818124640661372535458740679536162518481813558318347472699746080795779215004475036205471696892013782979747537414586408724056534946165907056115999672392838070162861981137290728432398729401854397724595923145229313997449717439852406091279689903861203257037084825713339708479342192095631401800769232038036288519534315784967296921919169357259132853818089757058922852848386754302119671127897334782474781345959491313498595543143021653391640694546345276969477287602686653483684375970126859321003210063718313037290083016033049669549525630301954784082026596704321558885028477350781982730402596440272573998106459079180590814686296304625312659050085595927889635719267863896952146503915627940854858678947079667178016654178630903536194025046014597577071985450841620266118474719225524812598781467564731950263065310873437068708447362596118015453188164390329069666944904933779354762729464679052712434892889739854614886386187488635792028271112078567354126243406413360263129281663321326471351757178393493468757469595304973561024663709661783809399132426100430035730831270586722324876783743457836838383279018919651495839390063358884130001026064415574131548141104928581511749851963687012453676287703054982941119704762140282532706357756245386965514628191686420039277903115410221315820925581494064576944107509578340609246108083464432934629858586060887490920526754584383613651176267398862325661086140804210271741234373240165509456326821210008608102801874509032246014475415227727765979731942650967451914420878952088858514221395351216521127304115203121261180874045317355579436640238303077600809562475806140386118572620455010914818233837974794827593750131309978105370760220281010186991654655171526561873146253008624825299498616202496303445133957460839389495197277416918706655746483399403289931527197116833874889729527234439588938743857066559646115706010669054448865238407086259254618591269210084396510779385255047474526349300576891495501929088810746400098124519262839345550478351730516646260056846151226901990504938813169327332412898425828478922258263565946339480838169412832219470091025147817440708675359345871305806273275363275140215355938855902877048927153287484286787664835563836167811890816228517960959344612817286756138756267361211215130006130920130836896684739550276105291468082657021961372139134543626083238408764611948173518767686080265273678866178950190097335456652469986699346730385997045578316358814990525281134737664877364317199369778876499830008158554470076670682165024844330588811407854981754940875092027678783992791498787152933111927533247227848711020410552287561546014731002851707876723509208714505944571096902420438686212796514041973319780802665337500741593566946087375869654155248582144862550407007628924246456026165266194541954479175747531163404736892696676842222288693156740554587829410548091922788353267758598879340325663966087273080994707256794004111587032627767123778544630033828119116238022229921692394282081584437794758812526719130286732444229274731768731988189572636823538541094821126921797551146152023122817486923545016483015285020649163099129942127084285581503252591032147930052265417418172974942171423182973178182725811220343322947071368939937448074799831983107105002848061287744900676860775249369326175602634518115460695270257436688939782594460578816381035777533224055863126899876161892425038456124481719344281505685165708840949302662048301408190304346438251659726612367725062589401724968172643828753009145253419489117346725064084155525832439370439166342587779610238996233921268710619314037975061581632749938714735619570187182344038862225742911186738678200000027995659700732845197006464312471409882196941957974302636234475574630738910961989173566859517829495796266375142105613417866327625861072660289903511994294949888447386063230913962390801145538904314533936475982166453656483073132134876208766815796217739755266538154827351486032375428465017510223935938765121896497409937718912969787757766947148417062414253412855343443535120805323628705446632012047060180961549053216149412952630877424969192378981990851643769083330595215406945885803140524982783861096671630075995323767382282495090543986788672225664470216589475472132638028043032041277524219511500385306179944590650926705049001049610856086999058027699275222012570976662316509788049075538562004622268323030254176026683678544808033844068932988633508976055621545652668269415639139128409818508463621822760065333162910145550361818364119834065522442665145792245007989407540363385631222409778392325762220310394364339292042632742635864595630401220805772783838522407573459385313297396254022551500081727096055540968721299450881576679400895808248569206137382987307315473300607875898297707487015335645003353903749648342298952822267317775235071658554841111739202441119431404312943641171856191991661093107232395879758242498730659018911603731797453611019164140345743583939716931149333631387289417352393786480773777703673159076487224884967139936249563518823645878182707443151635577367225828509485667191795465166792231398913257942155393054342107476712586189287440133748823687564400977609954841597563071625382153974287551279086420943397425196622281501613097366330508637960070523240691155253328893796504891051945449221166349624786828943942971941975712666534213472178562792763949675317034438399938875708102334915648352001842334524576499096683719137612438536094158824807001510867807305632352764007238106639759836381811004612372705469561281563400755484287943919885026515632477329542793346744520384235910643385875697823299007880209144271388647011421491810942779165016130155712411487851448010077092313733458368946552357582396652125200254582123421387047778995788160377954383643636858733026521249466120467630986286677286075717726125935915370535585207329351168039345136860602043688536994828361032862530083272982015177463477079044130347094156480129610045338897463650093218713736099462493169703340004355777935866632926900159949933060559479660668149301462832250914739723281078584555839123291480705896986561161973728478183380977414893233993997781925162010816995729515216385156330294310693341627998924244506135559441849702062092981104959030228247387210947956638858662458973752723960704602629433955608161822130367676434874562763791887170088951904231564989271460193548447309265929115900020053599490703138149931866388344223029057202749342961920741235310192127048534525855982725270342705001527465239101141629487458273566515647330013323285015396584807150609048494628102192865421824368622484021287444685291774656012304177549919769141601236005081385765573059789556518444994302769645137699184658584217453912673200941279421854330506338701863794735669047975758505499358861100036717233025603661527433271110069683198997718990193093689139222574455004984733166460766362994933234187072242405469842654937591837671453568732884858425709305155534321509128436134778066440815853086536670291530035851296474995781682501843236296828232124082699485961870544043073945822463697678326774139214742953438623229197881823433276408868670615220337612654948792186985410995390499465999577415888346084291514814122254477664335206159584937079032170389470347526646257554596574063585413429988304194619877931966652081968731446368835004786211165726644842705994192527427067192802285506309862998111031180145007367093610763363958143384749988993897767632848610348006210867135032872665140203196255729799140496822800634069188007387742535936188517988137431097205896372090064557133033472988035076532147820063389123123758987242872878598780500521271831065472768585697206515711043753676983372901559440923495794850598187926640992404512864701826648847907218396983694111549341390594891350160469241556499325594649633632281245013605757511011166039629247498564240381889609473653744855371909034335558851492857526111650736764661560162882566377547977290283026423280530450710689348320169599356104787366814902034767090482342192036072256609139528448341346107350951665870932785726828455422233687730972406667344843493017768870030601060516422190644158653329594077886788358105216413460970757711307152794189061918751496786397181455628280090247248140852852273739454253620675479881676684523633627974707360890265075340683573906645027204742218134475125208223180180419966356127900622913605108783641091029795738762949939114534592483508845023906902086718075700434926151815355136678346147094199055965202745967855531870026997655154397470217819776724645406415524430824828373680686116818386464890475496399467869211432860483073570370340503029506735995332838359140661108689300791918645837024711294972087676571215952371819917173308467241681511579545039793063465875783555186915194173996250777260044454063318540955731570350554990415928409269544510466007484010637716754084994685532684311697820301748264830533249146350189224579762838466109402714408847079808933746878899522445077583724314003113642734013185538827468141180333895143390264877683279260534940179967242845140816098882447510292692743418139123030503596087677884599695311949452102868132320922064959433311278844240270891990553358748059923591065331421762493572197394753419146077825910241049992087939268235242586335027431947875129659723264557970488141034971674127588572583472980364959334634375598140721949310812573472465966527185566037987272001883516468276731575443338333140589887337575709181324295163799950463004179748748360258137386351968732316683738783774924428476673523673136907639365367828646510420027805788259145506306587683387190044325958472787858565551849823005761022192431403364713812853086191090435767471491742895525698865209482686745359094425702909302056903146614056661093502122090408503510278511076972623961551995123781940343571640291681514138173117217071317100648152179403717281090836453225335744137757420836881275240777549479846091533066218708164995092016034795649198314442629257387453881238355427250478111936858945672456615212299160036144730734489924238318568567692118568991099388989321506404432674513795066291011960676996246106414961501577737933408415521434315002683443890537953837946962572341408141754984585204382274097484209677596707695416525977161176826392373073383159682851766103670170760634614519852379472585839222128934346098199712182860004568783328334489219846360670931067249076220424486964303849960728005478780750047449312189094675965831661468509597676819895422604519591264956691061965092899187276807223980402943835768810277108523569421030135709268509270333219374217431409519259128624342978758826230024674456655668613950416767911388691461955477203907710043519355337769474006061627283321957098031006180037909010954601851200957422020273412590006756965614815740966412892648126317884130109359072909038182161367256292688647047383910248205171401689801748284103999567626614674317831076796561588912326467034043154849180605163725999225250463547033711556073597028682691500747105080504506279937302103006719961663384551192645635448180683219891128129334616278611724797847137708807704365520975327115151079664168111133124484582978105710744715856544731328227274843954820486988005494026401741424588845328353298541061281704097693692828944590837040407574310882650033396686269117058783219671168647320752463978485921921969494958216331026972791034586127702357159733675067549740560097673358798611214508286721894911345255266124590320073886074219294684780676044294056359876127932392286588093952842149991750032670016149572583285171016331699121693973546980634201298291485407208522966962735311936007948050468936633326625613444214456217845940290563855837710417771061726136247929410602718895225214665693730439886233993298698120755298608737785872618958800456957751499750927295020798323549410286499203946468701452781206960335134778120143586581305767394357444683083738347353718543882820803515800713570108162236085154683211612806521471416751391454008301422240217407709244234228056651629939826859343535555606562781805462728377128707885731538235411694760283319787029706629391650270733199026340030280290307368941031745511394717797692645653446811072438699412466243144129426477338939400602141062050045656722895593465574433362341814389440699537000372147044174678826181481384728280104912903960854469287803860289923869775179958976506231909402259956837674617952158078153292739621485237026701302463654237465131787092184368376239381651591238349942603414035116050453949918945421529715527150220117658806078815548031442715730711180297625204354053508282448768845367184989101718377815568256892001489200308653606845881235050206687381204940642125609438294879781463968560670683127323661952519392957689297154169440260255941251000776629311687549467239920403886033107039668843814657044914033157475884553714726264445493989866045816687988929209861055917073706732740783996002289709671115902050684197608381123645654735328466708654052977815728621570548630856569407090411065814287408022079395642607262065713369585734467781139854258315936798407580065316470341955037140713060974173264719784185302700924252483580191779172182169608463904775535790917685654710949953498131513060397602656252895668528330999023435559205277030240482276839671607324507858290185921899162487615210112125446227936346823485169918305416104987798265953065268957832190546434987460000935020247538625847401556396310987522875456314183618808937737542983708805915286025123514614582218847531041456633192592508815821254222471570278653590623809496114606700095083486073136642011040254032910138394842683490996442399267475034012489832767800419358597981831460885448617800830464956600566665896291071285121279356636089448342807842423413071599218410134384598182996403597906063702306033972075839514729677117234581590278602308053008034330204244396282786334329623490163347023568869941166342757883587919551909602076838110581967476450870258534891909204740374500955268806186407084403700193729256009960894639137889204887140732598062882194217822305392034780143553161615375830915574742754947821479542581706020969261906611637787942037315767700791428026533594886895482520050275913656705433151598746622749451102347270621807393133731907112067171529617467584435736561221716885161594274065062157668969678623538575768762111751312742159921608003309456545364240711075581484149873042052084373274612934037716357480276207789306564859985423168766920041681836285705182439608017164155542707227178376034610607150604528501995197260298593446365821126658907410801864149847649818902603785712336605785963185066178783773614780996853142303465677452417875910351964774702251489434729674914110925168521843575205953291479185511822703304039324316447997315539557412067630526405311588753977464809209885866628861278916482737822196345827750810274203309123822045244322679476060830695755521941384280747123200287659494611180229469195302094319532228403719133476404816871728179623268987393893235812976331903173762588269102254369915329044614584223008328282428142910715164698188114341999341745577921759521132923905075307030986662370505006909812837794328983210280833445303997358149425939535116561074581862338343456666991265030828931720221101728669243997690585008040447320931618655937441242246499895099885131374413408853219578572759493024523714605118929502990014441728678494644987587954360954385074747585520567023121986968024009491745525672499924636987815243035736674920232618837746226645218529531015153688537298466721570993745093919556221021984703143549186943118853683878282791899359697415854007699080118302906183306570006799174539878437588725873503576909581230837470767453321410009602444031840082884541634189236265328663022866010189037267646675863299313899740430528902815928417953352108621125041481288125759140677125989576466802993504641759628488313942527493170955839221383191112000868824313338958644891811907733879838200789400688094220976592338551075331966126802179447121774155511339776397988951867775643334179341992171022621406976709049587961683846435980374835737701158802113635824263360766262529959183081399761260966451663695118020066247857004395370088620272582371150032644658313258693504695145580881393949687648132088994648332135332886074251767806290276310686508423325584592513504838840505939134392325744070410831008133714463769675564553207219046424226636266728698002193113376064036179652013981758123763243332617234100702505407700245674423273326772970060692557316473333650136537417979590643633038521359535409824589184822014217842277872466036172479292189457777882831066269590376738561039312554878462626543094664621261641630162284211367983674690266960342165140462810240327363911466286382563398775687048689874232939408443588220122084095216444502689009476432934908870832413208319798618770035262518834972039564033046208967920903481942251965500200937942865722271493046495157506950009098133463394923087943374062600379172587329055237727741137533030940094093458684929689023700565897420964564996703617449684892228261595242544414816238528071118657663184598572969866785397124418888654041776093352859897883884299401873695480666883887378598298026196405617808902032602316681461301333537509107091989823846913898534603713458181115177068311964845692194595506579838649133220167925723805983891539606401076885944993663479595502073111016819984911307135106685092690788119686706336333834707835183398077684266781437011570010466115556066680876756456728739632051544317844368801225528146487955619591499548039299801659235503635267454773663144933100363112694672786014834088412500538998100234400215566301369322309911877289632141482603208590297576972287528691354967538178967434532808656297232029844241617528401380772634923436279516670255827959675824551787532925417171025317749394048527925252310140336088130029247613483461527484844154111805666047047136121971473397148428063965707037326621127698158243064911213371281071395864393387767533847707421515645411267496616340699884170170314465241202359923883422227080344856680531416799527337845458971022161645415838550876755296899068327194936707073215959954934511411911842681429541249016669514291741789074575457598320952194063725962564981795861525890248124149134380522872910905814994418528148578908466662068785545596205854048996135029667699480316738070678965580982683170561760316872676565726949781761804332954811567601423519317133931547936098707825522689053338130623602792530676657099827312099863459462744475227673974970557478487840516051072230421688909457715940511881085817360804887161795498298127906959155999840701828817849688165203188274165644375033946551116691993365624640357641485564368016237698483216688220085840078992339356651682101426852524752994035119878097404756815741855340708176626516030063829123139888663704669144363094703293950339328825820203640148059947960168344373236840569013479766327397071160706271015968741183878067722375560225941606944726903997134105832613851003470563903777362737531930516020489097476904523647768926210881949395701118450835231225190851286050156367501736149197230748898392965797796612108298563086493592726991333618850092325045145643404143310784396392193603058654885135674675618681355182269885181824805059632083747028453585629441927157535879019749892266336263928016990707545423388108608979649088577301419182868396189690842426346693308953536314990147507810229579330811006924162295618049574837879266162698142572898603908471104112404428769259948049317148703772563270082351658461491726636676745224023467005078917699573418973406333346972481936339571694852950679260626708940682090989270044192455009110061467275329236845159822973229792011576981870140376732282610534198113851629756040019799617107129754013561340498234260996196314427081182126027524844433367103358252592918159078533921202365487061556772381617585963221260026039926787664868257139592716203578894100425112755793584214047578209563944640178766312265281786433292165322518669513783467312249583811182037231411278882508141133710607932508675129546882423977678114306725333756044986100199056883414157837186890249266816595634060248891113009661959813544325385155980357524001905564430571452542351617216113831401211784565140249823567975139062024214566719686615141823120219487902609314249491051167137033740669210828391436252496541634507937820702366455381456188902147342498420835946139728727997864287136297470033907476733719632583576095308787967482418835652244792327550004531097065125257965208976661154289725031612242999929085324044301607700307489348930575677733136758442908345708192184761262726527159378739260736768925239584899182051942466120863419845478929432010809374153604586168233182688459054303827012549123234924109470045883672111618900296187604672977180310012923477918582261827018906112751170086963903818755967194640375917469974922580936851125791855590840735329007662134293916737614015919785428370049389907765510894927965626243107650817172380472285303614384728233661663271181863528712189933589207224240394656391509295876816975985980629275763603451056426451967971626302162457437254574192085570194577112706950533981501772656569638410858186310520200128342270139668282011971242355829632054802267524434664852372153563370141728119412605090139563285453006173462937137534096508166927717987202864058846020926335111422544921599550931696808074301081471633160841723593909754662132185556140018206022814401556312733011647983857737197281045237357959647088182910381397081522677913256683443591582132424439923332728530869371560191054082004332370941133436718291434689343182878096450486396699926346216791580492442085842541214556467423116508783894811541171923603437201392455533903898888864154062813385369289664959793375591278260449451502806741821992667811286434941525384305406039036263640823289069881627848744458433064833552432561350445664132593761754435010320192741264643129682273081810956608137339488803151545081867864187261741696873514418274840925128672828104431014931838290314209961974987952481020857968783397550528718061971314896634581674261262785457628024799879752350031285494975804307531046873525321098200324823412224864808104048445733442316915776889356294056383831685171567178560167024965644864828074281721989861142062626373071540914961489770648545492942633325651689428313997093250133959116820185283048236347940046651438327784668843672673585559099553808995196624603576591556278933924415806987507660433100400752225504020902598241317870787700725642984993955705762785884849530207641302775866383482306705590988400448963791617762270970573889531041316102918912881481941414148940710189117863329406388459194065693620411673534531621405341814063120721265750184096376761353574801001780032966101501915787719820037363592480663408596694423353490237787667524480549364616812754559124625573321682670465075342794916974535188380799555243257249133510025933955251782980418693559940466950157552524060653331909708976154860830394384214702570885394198351718087743420739630117019397228020981717456060613552300327300640888545182748594355890444495755643171219719729184803797676512825363834188664075262895836408324598569217498439838017555045307143359996521622981676321473835896188406619397572243051082877457738360858661154690809855124428334823151045959023268907876304506352916137402536032335853973430089640415583073112983317584128666656949661029905182842492722146234817135382897200318240393786873122291943345374396539753143846083228993366761528093438948218015721768449136711414179295392473941275994293086668234838166300209465581268295922541823009031288867397019914173196143212238770765253090318060664477767136774514836002632781460892419135413839196388605543352506899162723164282017672245130743743926096754488907353640424117273963719896946014303394652833629636927951930503586209929780058529251569319543459695090138246837991680211395857798790849097900396392708085080575639530057711009666809590963523398645956286375374936818430788331628984410780969731416241238275110523720022297133691049188401984360106603034599881938846825669241184827818791270078470658013071385122611578769699834024605146748388074591682351522446296352540417696909054264427397117323279229996048253310447658953704096782141276907451593288645780146213438979197655201859697541286775137003371723829270412180894774845454103280351069551729835611013108389585651132286464676535671765146553544268211349455142884449798180155233212877967443843356646193292109835876653614061713650349372129738103937021522896520792001072539781743687505335467743490988734200133891102907315184639132565952696832295249209020235080723931419182603864388063777538520398079465362642755093078958384130800362308915722913435316932946069376410389424809232895360745655607562714338708616099923175765229573267905350002798617826841113601126802653169926458855352700473610287196933878368699693467449188728687006822842767714851694687184243336521631350179953216271195376603914154504475500101302944600863646735945164310355510739535422111542996840135551677274813514681744005345173302416028856447802810524296840741352444083781211435814121368325342530640032290403781320932569857247816753378912962910188559701275371785843643333575764076824744577793470585875862328117207292244795683276562086979733461968152947435715086323977043882428025795627447944765423885390014399636015068244936072190765153280405224775162513368850326463542515492228575126927974935904813125787283264528332221734806264230380558883330391474525463679864684560260894742292799784211297072856078784473572696727425271131248275643453622058121314780475925317439364411574473429007297079740246686790254562165005953076937748434557938969397777786031421608420723950472804870818110339912867714290801019951000486519341090613812377976420631102082285837348692551899564373558839361617687605036596210494025504356012941369197239857628424899255985387609002426409168060858361489908393164196639234595134935610088974222920287794015949160884261135549490731727438067697062524312071099726089962056906942933696890534480538544108780888028011063567686615400153878080800585836210246907825207454712751584088994052394666996628637639886173203608681554310115173073780784496014328207153518368537307766429734701127935404756552426160216735333945473570491646203590847135835926727043355577750253447158625022056788955996399941187667126895998818609161712006315897219368019807201153764953903466732073309440483378865352189964386935866366171499988989571960615651545831218216410746798747213616578215236798384684389128032745124446475991244753702794259135188803999730014432177014441711133706846416852572851529234735547123456449052559613325570214735387754682200563902138730157862936591203392089676389770094361079134790385855156575911584650673101271662403346308413669621065615029741836047874510910796488408253731252567166441477242063382164444110738417249189904566437503796731315208537150394562463096968540468913483011560482364624989771430563582124370771712488124976616537164676139895741923331196238078319747808793312816921239324609189389272247084802579619366553898208947388275894151762182380402127484810311555742681624330552742780047305817923306149064553141115567369723361967881655865721924381838941278946183367712315959080473405547231445602556303739292686747746434701519210203956694227220171931256373040344027443846560169316461873519409574690712789048576846657620561946848837668725589682089110215075083110594769422360621006319358751069305774166142913524398652177031996751941020668946398543856628938650678625118903373845732649693490066192210729710066204355444256829598633558427726395630582333728024450734141601845162703599544838957251334870795431521234778399368658974624655536265612565357447839801974255507454347712731677436279499478204351038827499491458192065162160551978487846815908515811799356051496944455259146408510242277065703854792372630228065585637568985222314334418476344424881676042652340065676302467755348532809536149349988991595478892672429936721213836290490335350011996736197558783563785420947366036180421193348178469298772036367926833665512383583246724903737036681723337674436182653800316152809667714840083520067846227870105635864508046348510003777541362375764175702119212869437803681843098573398366332017036983465009141280618010136642314716007271562394633743835950959977189352748710079761177087070393136145071619517597784715473021288620559059722367877537101810299054044084007099102857323140026422752970985218188222015737297465524834501509068527242453219567018111888833791065708093237624569793442328459290738039735632041086683787081611497500347543983817523705744029353747813018804922062308461539124285064289414017736805640383493525469652958895717038279322669343566572810309793499842753115397000889381320546871947258917457872992393154773531642740264254572590982297671662444187123996178860666157302099058930696661135722687746268971043558583833470347902402437099372063334426926625744377607027992188299161105322502816394817622405435403398729450447509806564881568394513042003982244351784523022496455018056657558360865360471611839653607417610641144199769833713511565427311251550597643110006309181834825488729575002712623898715180772183412370508835403639526841314060942892012827311130732138439087986684926025895844918120237524155726461519545729850989579203478033527331753534836527250208560451505625290091295968396162861629122612398692945917091342882774980246059628352282127410715149806626688171271314671473022502783059315984493258693874109504030327244335129964873169795849857686539864608758042449829272376451602132032637571152174045332901704631446172264163848256438825535709991752520640629602156241299946250142817481172227958798492873204897116608929646918195698163252662707340497483039679008982998495197906272842879997646981972013785601664263381930266354911545024121301461688762179634989200204448346469669925858493634439608505837063276142911565586352994954650728457092511898989666323944981205584230235072641983326723348043424063122486738848203716571802224687091056665520358466053333391385245678304918730317166926074450643127009220018639541045437614579271000547806989156265662495691876972945843215005444432750956385088919962361914742745941822051873889433119664432685212385733928434385748098842313226539467811363625784633126427081928777849522870870238409755849930989465262781285375565981403687518477627776024424267478299675106828596864097350087201327298085299504285769654788295751574490359106627038582255425649971774255209712788658212789324921664414118027234308663669022640240105849778764898813244412188508746155346159760510922419427193220524359084401676380083460973109579535835845455215694512433323803275120123045913517332568065225313030352852127585780220010697497334485755422373133185558341799120218642194738061191054288666091105404911060884424141200420606151523952376241052941066544316031492700253393249560836928408410462793970445464851952146723530086345618981677511397710917991351009190029877617796546252011911024683104309325520845171162533410468189020068232792102408253505122849602968747954964507976354839403966431506207713870388659573654005813931616507774101380210171482303267012941641599194253886741980893011578366524887420250746951016150729985411747494506742531456413975921808071163050625143702267413863528089208048716627123869032856008467924846264935055303622662589605190712375619426259070226926949096290372766736946633129474394226563096220938840392397645577679033541695097284622711947105487381357416486316595624734073776682954327945575131277473362752204217305845087500903313742650667696428006008901500004133698830911629149574953099682087393800180159314539528446669625600445246105842362045353940963727482701944863108115728226211810154854049345542495988405402207289168312488489352162021652704082581451918158392917558947497561872100593649526802382993263373120841314625331746927291997340077408449259680072097425119624616659475401860851809912459708544674816910446786641756112873190312028567792142067636625427485973473698837846760176799946065358798485374651274974707270958215913019158087588806031978976517025381946944301728150476829655105172117165878580075598594437134052509293440335741524605061560964100031391874437128878520093576147879342918318003928358593330816346150925013356037685361623190985928184313135234050316213690761673295335226682619675518730918472797978480997333903444601507574544346702698416091538447992083536422475027506107031196576458051899380821242497495136653774787916139679206120810713082975672724521711738509555930663763277905708284368870144679497651407153499867702928620176287492273681674654213410672831264168717530433312484590987471021282334207136331935779468845178978758791948954342404304577572381026643651648671652873709744444896781801536913199569145463427632331947345283175911945432034130872099151842855153415016505717818503216920919878930514895827064324825829400661419989934628112270268169742074942133311821831158340339529719202259800966990578414785960990673977192731155170415827105867111923370785413941449823792620643582953581051998899070936191795063157040854458563440740305055332848742579061822751305196683257690458929610727025945309444843711146397630653150401380619111363679866456673782147364509124614051590591077013427429509812409135714694786593597481777234189712967142754535660376146034315374796140501920959488940429830258471169819182578394796652966978092806003379032650374032297872220643841462434313912778138399593136860475529396413104879783724722346866177039931667477334242008853899111447396294930318427653700414571085444215797947573078241817634231086120761319669971853626032792782392866473697021216518294222848906271787198229278067741284760909879473736848060657297931624984690268729376544355664212746802427776038421256529506229944364153029547895936822850995644567898113508576434506293678397280787917530498256769566083903732095266585712863824050341540686991985180569616552503560347165876156492282151140779393447659636871377849979830325221981167174603295684285536419444039483076019320708554632935078275434578224309988032620133072229000451552110171348521329533373054590269882225749178988101445499875076405214853223089051439587859540329261040993058270298225303019324077786303046740139313802204618311145573143429079792069336327296788570691167225462419051428954609203719671987784531349067865214889794545137062280868977336307023265257820795229457036281507532566070440262972972274788226991130918174830951724838059687868027845043970185634048271740943351975217849792036048366347146808139519688249844367003970292331344354125588468356136201281636288103012948749519469963047558516555726922102886634909754450638318074828971460885457727011538005024075104986023655264625336594426066660712848839232907789693016729066789952208236828547359738097795296493495615251913673768067148446606100030544101376365624988117042037736663712661959135219492357786187249881201175080198613346410896303374192569413328976416655119195259737648371815003566299965652671637312577996639119015431999079239726654558035443256759167631871402950476387830401950781097442213325886421701442052822964909413305354405711938899930904164070215949523327187691571435920595127792633485686533211300060674161727232260871239735288620771265294116387651141546616250798000208227152169095076267471369606945398562565865207975116814742994244998462166741127967035500995989758269023810146020140506380279180313790401546419724147901943863819038302960324956496673203437480793838209312216959459136168796457717733480699987548561575814771829002875259656430974417910108239763671662719025084817485764062016017554107548900571024939804107617448551834636352284796821270447762148648983191928299940985604049320826190377970965822090903454681743284866880259253796452345838169494773175167787623129712249278331503439468402836198780004489348677650265537169815424192980200612227777717823145554573381392393782912117858659690540697687142312057477254788202543426105433676255559615122864155999859862866059184436569246515186369361102785383586436651356270121648676517164744930418633331623687778328639451813348283587383536773422097538967726353070808229194812026411396727231431007935949862020668841794355762907914157808143180549958668367221312667486472204464691134421613505528343220813895729276725302673367399145128293633541408031531874376265720676222673430723089830825862077151598737092384913847421041222128173990198119557892662336786893561300948107879672672237551825499469563329055756359360574688008815116903026167477881313961212065932776546604817072538348805473617019149223648497365519974153273491713006187182999417377081178513124437645161014262955993822547586014742226182264736210914247114259875350749064914243537814384769075244983895730160262385338543682155280949756260381430192713420111630105108073367404382994932894693581664468348328759187679626872990922119444244525111270464950534706863519182147824041359073097168159989680437932078672261416132033184022076180486538853905688539830086504043096030540703632467123178370006761160751006526064735465507485868667048372179762671278818618388698518837844516488610057926702129941299597382666071026696977355298980101745699650438093666453629233523366297085948483889596700866445124301742276981434156205936004345365753655958639096580877215417183558289450357427880045184684621541978194252834904205240344784256879554416877981934469624186999010145708875800670043184770688941625159546485343950133808608507471962124887800426253792539055771942661382149128325128941364455977638810339570190821973464565297009555792385605994238385733671625015223770339445747523458141524636779363952135414860720057143940282938695610493577933528334072837623011589775583573268729939745473163445853285783773617672260448521982556300495399499903435201682934292233540542223526351213381718743782135262684231133803548709170291473136112326355004476470705222829506541348162081907868776584142092623364753670495485806647190242249708260724435669588873767567457752490152646560517970170704229809326938822531466557553736043732869466209368884955645671014195026156771823012400198882528378863576636390844714280949837678954773891706928851779805988547532042674097581437142477021484669066033362329156281875318571098059036278986889275658188124097201012682210556237171066989230151145677274498631389969677767944161766718929360836382524199861417198701785186779702672069721278275392741069217263617127985367307104291193593216494419842792643325429417943505389530964588723473666154146763922817689703985447964088628328569508913746444933115245968320259940431252121330020389594953128447226623045885997860651860348050934932068646819555484604224655503628104877889058856023591428685292860702089641303655513347080835409180803135898248528767433623720741071319753221623821155698915672597356092215515491181186269554693553796021162069046714141010662059872432685945703960756980458559174523066983756295080923276347701546525335854052220061501549922362561258379731803510566446165893934446662419437827997380264569163777592986427539420057206895623963179881011428715845667743946589395533480585237852913438789915160288407059763294369262975815432338897423201365726817383085633545831506610308900641517590406519252734902603769036946012334348289970168969214711183608195540880960582345926367382295983894545102163928294133515769648176356885559138043222188071770290364690187681361366082493015976664693805534694367766557192779216400015377409133470188680753895515670880649202664678438518407894318682429357281159820930284002779147909251817025661438123394553807547727322381490917112452385528035233057117240806418328252853697514633506510150897616301033616186453015258653815235395663882035768980811746814882496465591508911038686481938613286078888808198101095124956052838518044259213433672280496761730764326382376959079308682856342749810007467204382313016309820985216871820308932726423104381745828359255438981796385305698634812134331654302555368460211549596252339662968718302544338374847493589315525968198599565877646121886195949963775389683564998722221893733511670132857884771808162702704837608986132819968959918728852390607268323502267114020827583034990554604201643918917482283505605503251294215822135991738185750006914150367990550302498155691886506344332896588083701729523341169480890908111569862903995422155093656221198922758105586240740348853361322862274384495360477492971707778572245683615953281799740634656204510065429496005984747074534394226122268811689219821932492519393241277555054711212265196475702570442144088877348556142446725620292974757556438191734144896684422842905679609596701754261203768669135484551628387769495776150198790859395003259561017592308676568956882785622126926201005795423443584370552067496500258824377790511402858980701517811796453848532169939453426117419833142812823497076536407860785671275285418927785910238737318710515764539284370378332419853355485098230965379493926261243506846970104743265825908625145682112013933973224075284932150260792736978380233615101962676797419061330427063574284556209285330676334674184779437833108407628277647931822941001388899744388498078756281327961806713808381591243493246093583354569635867600157064739066698794585777524829373897119123967550480890975068496049874704070571148727860253244504914237414326548910928600981977944352411713507763052919413557820888353151811638295589618090815566326796287089668781673345865279467199337674535240598004118021461402474276833824253368844661827315553862206021548963242829851402211760766624060263032622934953416799537815702340310598462971641055897700135328248117851202112306265723411540866888807021686589154653477582628406601046904734112409600689345155881320558687694064663137904813150667618338583049247079163267956872745966564267943326128876782066114864705584535740822284935411873680452540958453147408285463759871573711767678565754304840983490925746671083282768000731372743043720858730335603978764012855984732521338752572456887168154951433441032697798247804131706111141525236879359706819696861039805316869074029866992295171731998270117223170476769038194653299814691796935842530426944049693974163543854540986773545594313436480734848259959370456657656638072735004838802616649774515638758970221655210420832910647566915999772323086108338414576123972163349694815987392374013149168560323516943053973018569679749432968175687926710744470537377059494083968941719194121433276733640136571499189653270776510950436377083444908499806364207003965419724917833176981153126864795055649144238680834936971773219206203740407089923637154035486314245365516904263586344268282238047448545585681289214436070386153321085588790541356087041636727387257221777585830911928954286663514445108927622516703234425384738774286575822422582236526097751594335858434654335715869718401102444255027614977775814060176982793701275807741315860996016561711878269248516068471487053465425359904521901200522471072638053872308284363665369309367555537964711262087408969299211042578718828956899872026399880541599498759241248325783285323911728322413912121196019832144089950272379473111381446839224582253772599899169070428024733288338744429901789447375328938667507982362538924915626594379493557885011463986873750794920506755313487128800200449258110299863266958254942638597177701928352233622090666351428155509440654748580317173240668353967137289294806562386795787924235879935167400699491308340130061991793429387788711437849062660851327832421632011880081141269846064142331281238096058209197839768603260131284187480578294243281375183427376552802312063514558785118936393019718646597144276400243249780155650900072062236656404675580751107484393046407445118844450695255846116812478113844882559123379056934155708491923079353706780759036722131842252914005928729784016674553550262407332784008498874056618131077548127960054648111692719132195762098729317149680059085236296244614590994613953199075596378960272640807326775413644964231715411310209424423442478528009275364420202394403007566157934114910828973171041058147222095898257556414144416604528455066934237385862431134088646562981386234374453328012145295358821184818656120173227953520618885261767612194855297659405789987667487196766233759791519138932040952693004438086027799066856882030276926509700969425958079034710352893244650985706311899469571457639615490854070706207173313800989002060438161307375646799519969005009831503485716058225904108293654043785634294320202544869605608672698348122390417743611720696298849652641468235803801491957612525106189580285910344066333284534723585922412765282910765805284360190434769948533029244750785071938274634531471292664885488986006204776246614954501921364130076802679273495632207927256495880151379499536574016741482513546633800153341138662354918739385608405634638840929195861510275829576520312879279321623220729256488592920341626359742467049314022351323416095924241919243026301828645462071680157204625759119650369284263596022873136714709691250375806435264959360112048059449434008264626829429364764214616546132777098699751251600617911392496903814101896127021027780995574783294442065157584991510472232461393925458970989774890012454723549706509674614168202370686129336555722335230589304753292946037211115386236749447100837279067689546035512712097997197501159422210717259338249940327200402722509293750096887628376004164608715090884586056408629610022248318873693203332770045501870504324036242833655042444368087313001430983738463415249760073619820021619630614976963190261382845888941839881023714166948288677035079568409261631881172477025542468460574320773521413351513822818963400431735249290559539628685151392167399148583122765023696179113793488264591621850610137643877499172100658633087764287805560860155022793218502153583297999922070326936559664739178984823267144139540927745440387605620330786460523687450499199469770256779742086023136169812200112962551503970151215804278047235340884618531986860570560249955839315763708329854175787815155690568790197363952161684729475966695508878588921723527034738282059795211258373754716352207286731467129907309860215132990137163035481279387605970231550601420111505967393417441195068932813618226424097835120740164746138320728580307869294287563631084015822336106570766976873920223491372386804662506152283577780533769142456684767017013496943382225864758271221022852698228188295983339298050319652707312371051574468849552945319752500884018345851124041610476293967735714371020838881849412077135574313289188979015876394869285173772651988474364715218239179922685101117709226083360304420743991510387878568936418128696097993745662322452511437908459271901653729780320312506283477943265041644623193433939557307652994872339387733607623694386983748088270590186819203419983703045068026642141279768221468396728596423904831017715509247416576731703537044323892876444515803654357346461698964662473375685068975127725739341992096350516977144929354748761871774065943543931646142407061396664792125500224641005921871881703781979845127033705840259340367943190374984558138613554930433197958427252480338193010314340321198890605870521113537232937514149185045281738603262114812945237316382925671475363134567487752797531175725307680540914500067825674087017346207523197160829191379334062798845892531506588068010731891779308314736189436992706840916615087460923424538496430397913331794955135619328417684218134975814115362539360314939700663597960479112403107609270161554037394262698258402333894018467877147668121697906609713625659314401592738932911509492983658874419277844291722013947732118104836509518566206277955146936951429014787292709285498545002209374651012747569282326711158101781604656736472449126161156963837714352462652264768862782690092440997692505500427683093262750764913398877455262634135454802703910200019830085374354170865139485103324308849018606785713312989510497544431604173837345565326947305115772970094533297065123689121581521690563906900034978565314730399725359493420511954568275498749199890996849831848274932091475273661409137338176107045869478696052232291149210278432821394370054979808566696469311710673669139147490917713695908942613618359598517626125110930587031258363921867581009083023644203676187590391327739400712248245216902620705530406500486865505415314489921761785286809204413462203574097845235096548760012961760756630420033498411372576984006231968940705301852783456734912080291811914989255863258174597434474872316568632912185535861954176354771056625846125737778243596069706608285652980728415522974029408609764478450774771664970786392680216736748569036285943428576269299308368750841870582409560981390605278908968045482782325973261332582461768025044966292004081943351137751974738330759989045462511396325951774652849560690382760390418495150311688264122421261289248864422088349772777129395435309519069460502954437097762064818240743120130674257105321779976343672608909337209650418380381379138420000243265623334122810223275354657649242575189381938729547357105377706306643527296571655073558623124965734830416049273612332872605173903890533397466294759960601631916631408377963524573087526214118968300656862616666025768591105575707946637098124877184427001822398817261677030166558722996285548795657422113542669052065685793065214972522702400381126876347632489730092492914797257435199941542765797027529541580800228261353270649785854473281718267582711480872444473226078413182383366066723087576674113096372630526684037137410135119181034021093362469590994507818428113726748605604155732360830705172662743175286550596304201855377147728342106324010435701930298370695030636768444015498233876876901771518222736583316459792178251194724952836492632099177567287657088279419520663894140842511114797635445509746070218537773694791999471642046427866087169368219989632877347513195965241499073907247751442495575121720421679352403356513691545759406854677909574116570350659599186331627830869903472247281003171052733669001372695695220235397658395343944247957659350513348579838786683763800194631533034302773592666820722843932438143940768141468511896354205269053828996512502747781498891760853160828730770061208368206551585321223238456575765510998637196163327796639091437907669088616527962010420465656477032990430318548929198417562860628905094730963307794774054121220109714279742344564675245222546188133459390403281059797623343185486611234452304092858355473133690666054115881553413324618553357627641894998028121475570677441890134553031869736508669146147920088625665813735472773478540126334268693288677754664890185296602144590234888491955180273292213686175913791263971200409852072302541917945328168421343043599108640838433191655128665654055399632926360313679163033576961157529638088422384181357046615707683360567762500780059935495868550433775593353523488119531650512982719772428459242893960286840922691106915157461703173812291984403962680372562974534653722735691833636329125110596441183526307069243971272055500746997877582030947223611616350231706115535407256122019535146670256220101376836991767721485164023257848993906249435563764971993213066426127356738969426390781827202748630554799889053671428137257574884057664827493832565237784314387867416420514510957153019990289951018593136073685232969262064251891396870605691941186319182198476331647613836076526471513286971120504375298849813316909476794579256982259260558167382769534558986073710388237008556292403686980387566933189548648808365452163665117010876118372977060489467335876833607585558082191162388132095610108180015617771096136945133849345897380193035064233150876974959109153602408853826593690891127234144886200592072643163806378782064822414609097041137189327927792359441920517758785397475179870519258100138296278257032192528918046256189741052945557821395277179585283657423735668331607042510017651413428827574601348469265864408551472639092984968815916602259818492366842231126229409779323240849902039002700058825727724350702121724583699125419582131717866394239923121518237554586567337518835265413329129235235897076064477081032097327447234608759526645004086582797049652109544608323332337529373208368901635909146379373288191128350829512659361158743469115068432333534236894623707650511192646363641634947113927907825915697536208378255929519577147199573848578277328186598135012386274042671344145643254301495687584085875199648566964774618814361588547268786404348202318019108444384812235195243673110909276275353125626730643331768434962445163283205222388992940970753750580393487960371583881738132415056746362274367182629942625751703119287100495362313213306535479597307348360520173441201908596536263751255603180504290506587769541501997964427372196336056889962075719005737161111233584890332327711700070665203651022734102382858942078253664490302461547548475853226084978252585416884907679743325245872610627275802550168802058434954293571499049749293481500186741192999982758850413234635907963991340768281615326674831751078749347977402888625923551328215725496446439350057505153548303784206389661151808997482558516981607577143458704923844727928529331014826541435240614796736640675630799582624148327459682754262355473069762821920343512337264761817294585312046854113589586795606247549612562241239769092521886124257144377517508535070541330912591090189385231985055350444258752900308003653490212009700277159510764819320472325759002461021036340080819575176212197273725909591837031049799546962091506553143426040072710076423324985111084864510452205702964181364622251461190266909587701480332527095752143792101342959809161082426635050030192677322746354450835305728535512317336139249131287014160888107592363222016759856291051386477328693225775501091407121647448205340523663317921054674972075822389313815522574942797974389545281539297611401570204574287686520822631740092879435685874468925102975236310005767421060818033987131253660967862281355519553594186378422675072010316814856187215757288739746109982682944288225718931831719735528281234757648440388666368404606049550494442334713377468773658112513141942641136253393395014263870062106693089903142863809471295489970858503665727202236497066891883170045419234558318411599045606463314525286050837985091051260687725926261160484992530487348413765824987501899728636734658332302685656342383728479498058234230838834752675005356443720449726276708244843228182986025790199986028110910954857878747817991456972708343782270041661517415242365233532346350917357627319776758101847824182596895400738342209740043056945395716486241701781654334734292545094039694137967547977650511183024304023996078338712366050457349489644799902151781884616589709275217939497550799457230178295678203286619063363195650595559154800810884004320745707847246499462525863252174568732465916271280518861593960669328098888876130662836815798593328215108218157218343825519875279027438629942707307453100956745073827713769732095161552582846502908268002427618361534172888151472820889428640211541195429410956149955211174179504142050476805678551766700841648094843870881243343024951443245405563070987175581731031711016971105767722307167897168656016493708956895438181301953358329808767651506939058745174805461632397557141911702567048138710931059835681273204702004730487694858926759543528577685658730336215892198451892409229020705851200006014551974772398176598320509418823343622873778796995057084470107341339761510841679127642430876280260321735175415609690868075853357404736814702130376222855220321424955560171823853290924135034659102922541946319775682951565529313398187070535491270305881560949768533931701784506520849590494216171684457825695594902501030269996539972649621555303248227025761080929746325365633226158215448912200613941601509401697288579745615527292592227296888014733404071181669847266817928644961081163306993223494484236933274048085070210092117321719058211845534824487526333394461477808668406386847300189934979305000540242114041992962014818979447541237608971522717624629454702102723898111240665165509387104146973646579484452001438367192012712688428320338334511923746539681955133822721245736459908655793729586388609956313948809295988203404446230714306145580102707337466306467529359260371695629598509668882302047585143264882177851034614703916421496466662609178239259605508696907808745866283859316769184487184329747746065235563714759741977077461432530625341078278401223028575343179829931732988257710686132585784697978444332398534190370768251893316903904328252000139068094639937993129494058158577632181714102021006442431652560081695268050188954075772835846739474541816185066673214013018152645187383237590591493946539625036577195974222518724476319351597968462443184475842421520595985174367028901743989337098303414224753240611841398492556395066645354763181869773964816787175488937228659455511529600946571405322145948053134429251076704274197787312571354507370815279144050262666153588496028766917197076235485832919246780662245221522869120326166653824526229044517954326496521095548905920179470237862499468093223443216388843345180532446819031761615343969600013582141983654071583625389204497078272628851259937781489539918053625592977253210456195443405043677597547827814945055039392922174948759148109702588829881074603037123078063137913530255680828776841559353756420891242543203512163955437797704487562833729833851102948864547453323338486978275242731656248434534940237307044545944508139468762252820559262201813332935589551832313012652365292261219682979426034187106539136277254832371448900138903067970067335542960773115081854692285052980086042393918942069782845173185740055676211608383756449787690452940454013297618458465236766720718716285145185434166695079598387641556478646069127605010473329361376092952111853443405011627191374338231057394518919027479898611823448501149861911726499464900053483350209348169350493849134141963761647481036941550394815131770139614225013194488170587010941048965824513002340564346457177228506390475019072815632971599059152926677997870480969880281640704151817443059749458584621916454950852446211913979827929275729435975099162256215213551597919328338613946496955174558603480328949492398624980476397441178178642825232548345828544666996873516559913429742420728788787682959678514674117819438412023059024864013119369755098666735435680578134197565197173928292686369385651981134144181014243393062301277843247423793874649629745661548357666851604210109481080552043990270620289828088899024744872739987702429327828269630629444628402189520582537928754022095538759096853358633556685199282112349725600089540846798736457211781568488249263298754638852801600016233362436674748374396500230187275683605414941779932340718142068274511848931932235888960818946492931014513711432623213027870210459135893205054067250349378620459030227495439876501476309100640197623780302094840029874404695235719267813954941683825875136320092544805360447579033306693057381474734815597906782158319417296772984910336439221743314103000426420930672405761129004436449904177420694400566795570945101207805627858174351209021422272867422896627126815901703776421321706028661026504665081884711156240383136340166149442314100042162905574575512579022190056583325754178195713841336721221977895653003083330189086799769726952380915833600609275818881694752361720549486066693478474350891168426001301463220248024350602157115744447225787070040221494081084803041006677643524580025859799410734733032681222760905870420494546180876008764542547373911776369625923885296995033482706557733334598458110984369012504514375910414578995792418588142774475240531974131438999105087911226673502898483361322123180404993510330317598308360516651427233665485372038884184488747065157647670399971766556527894481230091331466978931915568758821763516080616994093023734150294427970161600072200474575980512793051422572814907367312006120452916656900817153912820558304663622347068126259232303937687526255765008921276943619491492725147825008159497445120381890072226142522037861892595933502373339558466120068917547013119760216277136358531103095723659465102911788211164872599020596280498874182288776080623713969894450846850412016377740562203152658889511085947307474712562333248781356614334771032104061763531044624141201001564213459205325056203810597506177137186700690951699049414611053544824113212088779438043358564673728606477449505509541893494330021335876613170788422641900454653274240226204294379230229223481492395950081942210203456417483703420109916086371968994936239586294512144087525206971012569754836064166883656733585860120684409225716604233518084550111841677935339481227597847848818034488441731715303154622208961177892355194071148944902838158067557653249388705052106982801987525611260849925985485719354660838868235203482821916376608643094204946861459029553796980935646802744051201889227203512901180887186307707023802806961054899032914825738827804741253720662190721891797217417354001664689246938306995732730342110867413743220870957844435351966281846986240460877339805205866817245808926801737094381541401947567093330234552204039074138972215584856602625156663410744416154181551903416062556056695095628631718013469397637781925103933446446568826306199176036907815940168785168465238096439572500807609836861615589724743312357449875595092934872978060912710611339305628619909193084773207901048720456258858349750365260929972936302239763188233531189980734601287559842124196324665002065884449278385809327909254543156325730700214364743529063730623429398909439575801432473297250579769051924400248517607455555694185453664181113910917700118602312621895902390948798772303957859824372145455656367452990705780191031857327177965227871606659360248232174457767140103128371318105721120724634305916961141224040347982841963380534331977846545229698542892946671287443087089138263333355623844967058691361378503169020406742966412382896287094572969988763373328533447687814697277412361060878734852872847063548538725358727439426958701627160450493821028340285911697521228571654555804015684978071470432644071473867188675097390734739180071418919357749684365847298667410286326661209679423456679072005390178917397036332007970463213991287073927291775026907799191325591133467583213419538058482281681610239459435495317313886342365072550114804068656640184345467660327760561497502391111738503381017387777204788372980812750347768420548442463767790399993301139012552650208533819805890673416200291448089492254124068627214215364151019379420130947531336586264658524989772374533385986282125342728796413761608458016996522127962765151437622084255408857198573738574472807771568214284350303697676381316866746135126959763592321393814534330657303750903399602291065813384840056075599801582857249611324180442181115152422891913786072275833414241317623530503711020880160834925870533472083575771390864136667467021536985368733789209763852436843957372348222767001376997251201973612572705392344589868582849888941559128106652410316131528700777076262252363856533536981764672613016582311270577907109602390449531384007733909143771257507297171314427139475143653293422825055979804741961742888822970958542120163014277912446869658912460057872266443404152196491230731910197033490338437600571889410100361208742649643135313383643639829067234168508137858153543453988473200300073501309226653872678580721362571327969793995306222368983532139948354168671714138778160989420487814628605806274602390627996685660000336049173956564837599223622148828112293085975349243945299162694518848277822326910603606161838135955641652335771778007221054439184005897089271837869296021065396858371029326962946287291265233990174715937326891374922278542733606270363946759357550040255643529531699043678709395424351921685892481156348740440586816556614273032756263312616239500970502191633165468576106281985232930168580041202079669055413400833647956439695925267704671186692692597060499651401405451101767127484019789218306197368404768568522925324760131866659253006991903612376362588069837265219183782820405998123019248749642251069592248043421545444923869056948942063313787580698758425241769534022242356200032534451521323732825787984834300222016525250500232934080873646462862481612893774666882065354413750408074643948830249634664748344041739715492088998412023478737392194357740797288531773645592293502746067900548403537359367521801469881192067490677716643575142480878960911651027439833606657261535635536205583832364718540470696591643664915223459680486535732227236559416178240975273705503555969011497439385080860297072736844344154263396418753324045254683724763018755705306307629395805282342907477355933106362730520768044786020697464908399275043106714048432889038132743538947096794633931706959650624300684957187159779329774716571294470958458946593897093420957381414350731263663591093040987725352958224616614097961599230785037510834522886598249474438454422264171333174924513089506228967890578128487284489280357205079955042583202877944752784414739240713184783524072365155593305141211924844057483786079293731833426745147095652247039901369384354637028866139610516553570221715479415882663493799053000288080948168890433340569877342031293440574791046925382024229592587131670227143474087085373183097821132419538108879727748049835271538770671871883673411940912508878412506432537276001474684556767201730841409916404328889967269654027969881996584929687150654888368881551921182549203797119424142109653020547153787688598840977073049054220853059925016365039983204372846211446077838819881076030456562694748067224386535740942346010377293369949913015123976500942330529918009820493141850940226229055345093669762856375665228322725835344122207949734637441345340055322405032122969817055354298406780585772705831222555774132663474223944171530474843751961554234767209651019660997200605470558297238019690376509726070227332327141708994317723911171231940516211854856589905537209155754734027004058498398687208162023992413431423045856725915146134770670478759066900014673096193184318523112570305807042541331919440495464250010225747630467812512626996899937148770573083580660096205481577023083209037514833872346155416755528146593275140698893267674093268491475639200926899596646411950335354606561119628342878839048153686306535577748662894671285572983299219606158691592213564451363361587722858690936575677313075238491990921883572688932800308570536541499087261412172809606353481364067899595361384299677098026978916306018630943465932087357959558493184882767008299849018638329189776719147258668422866142376846494122770379097200664386367684699057171100805419157921478514598997777834663996671075236725712025189304367968640606527553271057390236605439531792061630984129683699691566706147111798198676337941716457051053486303493011848612195652803118141782688052588587342666215653483914376597888497836181193927352276026723989263774924402722640024520253779654577903724525586056912921724935825728676025747803488731621226158474968512165068428457882722216500327346532341317126467120024605064568934291656280513585675074876852020759683646503164659922461401027071564003690058509980515929059530456147850867315431413799341387349788903142316854043121843473103409043219752173056500428677185542167619881917895020712051827005955246826226122278982308206774992936180585430759781486320134832577678341358022249230394813589898040780160401372028851533026461228999940787444443310036193058826365752530832233491849733828484621834779548340886170369907527954840238756754076062258105090529635461080282668924517476228320381384076249228732819297866050373209612966419218643459397555874060463955329604382773069277820423175106050884525776874589505084371615261769679201370568806927589162644247140979401253973393842302962940802010943691511373256847722077910383443192937294539543415584337829475594800050984569964616362683001792285614438274606514779153176539132826349576036554784318112828545924423417047513247911627234782690532161143258928451071022179442794214167676810641541198027959277807673161845690135046403663529518269317764516381944498057389382031169459272043469422679219961406078420523152322021291974856763217530549924678894298471017226944599697365184425701390831688873395650182272390124614935684406441567157098128649646919333861835929139507026962599463605170520222256890499097513496138786473934436067489012848752773666424963462000055464693254622266154371964102711865305773479175141920417208784218692903188690609001769814476940955786822810211078605081482185833184447956373717289607546323617067380795827033026046764171657582291669024867183568291381782027491061479021963751065814294871609027141695944815888217633201567984709822215015382054379086994626653148395836325365042710261932948173708762220872595023174444641533200475907322679712077540232489546963334647618274449310798716537614784819165869665873438027268867845231275167879035957049399803535223077686708184146998741617357992704991063771704686358157933959759640279786290819447688830517123540674356850478240287127143193698704133508957325386818839397469517098756476223751666023353086366681136541332435783788187940409819775135396470245157800175486542549425026794137288250714151425450989171047938228901217591056854332474662638396933196403074843250636077890298584054954329417163972690916715424839613001341971217747057609883975071503465481728612938688334322109588785659583783407427252852362209194683407955658352418484995851531299811281994184885675116538420227705425667755260023840713831709204696502152128040833397885479632057012162397057947763052785131712225138703119400294171687976365603975969501460909468969214092684724214129112985397793637199781764966614489744923034694791961697665057502232433107738928940514387347909892878877933745681935807402324343548378744424719232313484826915846072667531426538392328850213827116075878619771235714373014757191298657879619992718909819520130505794499491658923873699160133725532250980724948922377372301072128204236323488849202978564633694297827077812198151453545905543780102204043228012144661666852348035871718654921087560588873979445765241388189604956767504113656388798092828109623835716522220170335381702647284198249975952829941463769004004742389119438431498367745179515751305924131182973091418416164221826221359825823693712647679629061586603611076236752088332820777828108501982969773374544940206730115922856164826893137879166447655164429252583717385056299802695179719703191735022173191906775510966222104706869356225082384965919137508583855165861546997256762455728066489189446424451456913638245283531823163886325875601779309314538829601217769349168342143544447906288076634756749330749373932991318464241955604561072341243673212102938933011514732913597466709385931096054691583043778048111028333500142804379922933997808833920181649430949720079180954223021913144104591981136650806729683462300077871380268079547698477452424831251977811369400736181709438490757134222624450615924622619611943253718475578878099322567269130683613985214002466475858231721659664072712859618185254209600886974860353320676139304545223370301570790115673023656092053723794263786714246519619409761409370456759310482507509607961778375984186823070500625677001382420364596072918089716252662455330039929965298740195771507357853035413271141535854640763649265570276086225029540252944740734723575591239193371807969641359311581894814939386240761963738636579413280470405497226525066063864138124497561036371481827644283472480332225830015680590272881164157063653995930012256272818237619683245693435985849278819566918641806910662218100652516698766316723371359302974560764413884454516856078159729386227549215453812246449218091243151013875514150302415414132314323868211047833991353877654666582481110546937730353825534431865295027959736713612121641914959189640099079116887065197755929444721779807653949447331519597077285059250023109321045066022190230988910922450968791237286238829799748099900887570476569481263442886960323935261605896255560472927634962294810208917049518520881622219744866897658260896522915040078297670962450643221083527015429708192191363783260438036551693049612769049772346803963770604611936051088698721758636450193260345453604436985387295253898165321117824745680661249893514115618575656895315119620034816923190102531507268272066191124998212793411475051432531605715709997275488408178270513194302194667843772046734118471633795533104008400768116341606805382720840755664784144353446808109404068270910073099752728187422365888237386570616927097543190272752218334956209326624051417871109216988571742540659102421273088596914030099640739350497045832883227510773823768707719641577740430903851773350644869375111770943993814254128583273149724533676004114732344407173333537197266285384824684968450640171238825315467783178817055737425195411055395485068213940082901779131084003481986219870873869254313961057490876128608591623294665434674106444041961647419184667737421714103633431629013083853677382655538267758411479172543670049287175291556595896357682229442724908387467076457296542888789881698398844771143286167680943125217157086342014510211236739033001223408669182993301555660387231470614252462092209267854714739050096309305983187664332412875332540921651928153941989305468527510378946807893805816325589531286044723411950106276174152499804135892644377570993764015423873597754625060686734087991272338038427065730776463341550049494137395097439382589414784832811466516420273257347609893490019000610809548680629852911499704647991872612107313485001245811339071266409597675447037665213341543188911902800553623777446727741517578300908202951176301522259436947603967034316879959769125734919930781003619656456015252458170053646478671489141016626496015644951953715893016543349687247422814751658646774942582863180232158563959027471903240874263731807527642915592078627226329854215981258302189441089280219141403585603259627332842103293825066077555578176498960824513398739199467843797827211955050516319170505473746488515900817222064020767120674347304671049760625685148919324949065979602470006334033252584826754486210340885374190583187120460745120669265455296893427504025613969525972591587213728788058429059209003628301538364520827894541010420815372796432872760767632129590552110625789759301927733185949808716540954860653142843814545672457378058359657643242238357033395087662477986626648994317394393714610506397369125770514340100598447074442055825388018452968394762884395986309674556673050299956170491776437667298541639297199536698530006500617742563432632203807173757816271708840550856704600558943171109120717962985059239625231208093684803411976515993125926318702691008395870776965088645997524947302206980348104401281684797457583245865176227350237958482827664674467505459803038205453046366424564340532528179737527196361435375858744574770719047296456790461044863586373358849916811676851946870818017231875974361889784869791118929484634863663499356348166161101362778843120293031404478432128667094299956774304755754527327869744562581619083981348923807938632464924909491850948592200953358877569819523367077060865416882385202877219618661554448524834955007172793078083571857521239004034920481203522351961999059436056483634319653072726139393507157565389520061299286698245865356287467199136099270046900502296363841574057219109088168011332693225245197297129765101911000974085471268205353623232777477527409659366517639427115733760730355859917825601635698654922785744632797380912805639867737663810163579088567323082847947202640106679365262811774565466478168007947651311958489201158576816454215085896506790621502773278493977846924411497929446782619852280790395314123570938880645838347789880876140243019765201842449944821998578176023767018247783737044065082529933386782103655885949765139677238990792793119465271435336927865945802077524022681035502504990256746067301529341416663655767741517538526839519773644299220001297089360417093466377330179036362812346476651741625243007224306403973701166384649139650069934019800728188113076811961714796652222956473339429661753477057075139762710281916851594507367677376830075109974559569575814805351820131585316668239289184023106811863289026216084195856113269030144240164266988301778481049655082021627298458573573662202325962044532941804966993820619804525002602784753453762756022848661577832028420743800554711613197361450319760190515885286297543165961517581838068097782977426738908567277058474732847081229217670166048433087978182483390933126366229709070695940928806594623667686572748191423291153930965043865760232553922217948704314844372508611301782060202409228119278401545279478078198078544348582196213312335006722229886766868257872246257220395229336122299388307791313883131965251324080214816330699353617153390051454860553147583125659353337242408010562970902491835204552935343086487842373199211991486354997675910574542058056075957575735013956790790184854345529030726259577666659577803230725032504613227868333129528383561392662458917740951108563293759052903321394428334305171660374096377370213196547953632937422732981591953893697687688381158531919253863100739454694563543991519778408592235991579066265736203997426103978183449132613536595094686348272167260420690290073677880156584103451603263509319249008516300342421213791700912131740932142260616124780290918190904334399450308697391027524373568850945157146335716665561223980094861610302155710576257779626668749738888083052903427803716426702526554761227797000911433648411538274052999055642099968121688116211979075447253851556648175958384931902077040452156451299582644865959206946208967413860148892082719595689841222794134250167398565292219144474331149941933160802942754447856731700918908296513193560583077248208563426991063564112899774043455016509682994724600553089207690225572779546186316558054685520367813218636249133440661244770202018997988824029853552554696598992286137340694817918872777412972720646668511024290924482300885093799085292525543981023735714960845012822576577038393100480299716022441943230064084910024157306439957553950466602393401080777274904366361513606590220971224824808666982554127135761673725637477484953764728592548863906379666414721333168335694832323659198769851407099714698517908096128282036574331166426612874277315879237218146243268897925216812988962276995337659240150084631898296276115708080378312979787979730376656967205187911974858392429638135904493245352627744013285093288301268657024292004494944712061090726393026524332669315566709487893866566993568313278890038027824111451534204764662403487297363232185696897899663162711655647058106553447647633657386300219395914320284899996040971812687972017454822939912916458971885958747757125923191509984206858233620231957280013256816794900620920765321276930303899743780348444945179429391814678291369166931482315279891919088948821596910496268139000139060021620477558640807344456077105342829532898514639073573453378860337921969974204289252069014067838635482892166172931177410212321371251394137443747506770257574488618805714077193152813669738807016040547662092294501152743394822877273992314460720786123458005455309473193029911042014402015565142594124826774836250685509759215726595815314585165079323104390118358265470584699319104354950241747596906230619519133550033695125007645721410230861170434175903969219222890510443136616745004028500395349029721070625583357189948156633013751348924024121078353846667671775101739827983788494223205122809976568143060941403151051130688837756993585161304154265907104404303126225380517299606807625586928652647471956141534278391521937100616536652242619333600526312829409511440037318230026961673892006860315883483728857311448556239004493782818552017009917382096747791985914791753658310641622917592273417217708473866768220171380645518742453389467035693341654665522625557264582571794423136319111853014264989670500857040069665634929398804128565923486346142563932991800872016031186486496849486784118357229178096535401829425556227067362613868388023690055636733880634515556228212718849953368945514360028971368491518781701426325032419414391684015486176413418437070391099447528828626621797540160850122725401596532506179070850816128298780734303122161031730056463694261155863769674878057729260752515345887226418057975776964715326649465333533972733035006824862312119832637026819194170721537888777892731500825664343895863592344026262568033456800045785222889804305513970612881523974363324420616126910762805310824970889062920259928310542807154101198190953969310845383229737275965782867207047989577304720505345202592043249652593173624403290251334863094464263485132135901536966313578038190570356556858427188588719883055555337552156783377399790577024261626322451523015197674276695946757811178129725498137500720406578368516059328993744587021074942036832883037178363665278419819605417965072143722779928985809331105066502427315485735527842313585268388699849578647854757907573190693158306734140946864454139025687341900216414381804810692831165453030214146340776739545915690802273563709963805269966074582885640781243402615082745643921877803374975390913000658972525713029295237601336261674846241494011628944987537894405415718758618453252853844931389805384495996668408983006208474857524317087101879448759605162242195907338614873664356136758141223345635112434790500099341532080630884426353034533301516054590486928422724094171230542677352335820683579158518711776884359661033250441652372576782728892908484662685988219944204134235725242396005545246203869750070231192579203057811887901498537573461731382762374581807212179638262911032011173973074983665730726161214373627575138195902235219792222289195169713072249794112730853978027575316822987709805792542109698704861422620921183325982095544214544614578478872190876886712544790741085554722686222013278067287159857699987103066100490635738614498651697868346745659247898357214121741826201443983858782429737639846686236691418761905566074223812135917611812979039039403587542012707252834267465389514453279590383755055253328681585540694846423915230693627431445488030748667402731850555788706161010186768599822133207630413915806561412525449988024460207632627919250655165278224759030640007399530111319610537198661124020922170537123052370898484929323731314571409309784914640682531718053008791409163619820347125269081740418027018373957502229508320024365841029294902028398235918851097636784710725322524774444177134717325715934455036343355144871984587653265509983634772044490965348174250750187194031505102531041472715078565284864063201252564953596091617991748205049928389022774671324680806444338365318663938473517561944219484501131660598643321212215405076100505201494014250684206034776554730805365401425246250725042805880376778876875735219399355781952921482689365344091097847462562795650976163997575400013704807050522543973032372899973496462389076829454148440883862597817852732452362290592528611902804945827433228318909483182749630725796192809144296651426004231206475133101139482084825402861066889156576681264352268324223639093717326177996132033192667183554339760283295129364109224370856985705731742120912146628739847168080777046562957886256303604702166144374651549339053535278758418842386111628359975973709391192819528640352863139595433260375336398778709899901326516154471585208654529216295212592194346765916132673819475793611319357861882431273029150720816773899846530964801993649269571782978882645894653649541855902958383911918735584909080758202150919473160782446613452578050456173180220399653017536192407436588937081241650483668088599981170096139958158205891524542478087714765179520023036131109294527356689556082297990012410573065192831926836224027351887071471407431222046884551497802897640259925017790307726303499339161123048352325162236390838157018851749338570552855466637303181157546470922996187094539991757289593500387206429060531431731112440926481574661951296000507372246472817889111856326199594789976538386781945823757070786726711502750684942969820356782562309582885046628012496807947102204244311549017239653086778922729447832147551932557883248912700505664310963308922059048164438058713060623712124853256219061454183408933942616443164986104058413099613553791996733111516615967421000270874362538113676770297740197417616430319722891551390420495425986542114490707783529641800197797546018878439742236100578123203379730388156424184904618681898154155854321374870127855639112942645187651720716240286953456851139122361324676606078421121465963133582425558257383503715419835915626372845228586980928998028666384995021534948430568505363576975095360810135250684566152949576322725254305039157024617685877952089129815143217650728836116623655547682537261051003370931798253258122410515837314337057110072563951902529283088164360298108987250485303697266983534575064015960809488383618316818216148377779660153021419082346856425828155795358769796819241423283479227491016625410462034770317983970637177413561588825113698992294120454175501327184192072286722499761418569001704709818799664944762497917667792680416894021278261463379455512726603676417168718905130786708748467785416802875017176378225893762624299229514353192581176555189063154956648748967443807016050432254782539254163221586732680502267601829486573551935777745771031883034249327102522976753852150216286275856228363046238385030324294138757837650989782643067340147538698338236572138761355533138123367260006671598512245095483407330454072559809304083678679522291807574812184243248971497723343402546307824354115339485262333111954558246528474050814214038284823842540245812738946255647847126029589747536908918622190278195793476908859631416038534199118065661348016037924225506189857652481171875890263590524876149317520950800240356528848581894542173957933058292420997436642352628968972235641453631648761138221647336282378213408219070438286020880318977921952475202904166630251354901735821350015665178142346567140652815523849006075909733248792566549323048570241553106570153507626745833724328389890198611638570830502695446186456419139251031594572677392989341736233075416431961745922484073029023180762522761229715860259667394283124726553998442285766317249855074274253300205109537390292799122891392749202674783495289533621877604957341976344026470231206279046819151103568406443144057721008091566294708817051396540570786412772130363039544739041282481909266320893715660201604688434280329451926298983595233183293555861356938963666331740054617090986597006346706561408752213328917475629284574272358835825955265833645856404986473489325675777539872290671464801141735966407797852934774966975085567484159177453093250039587948752851944906322427597684082108629877877642393298454807484437655263876823149565537985472172867613812117798068766084208439173335896769507537681448285024735479132167194160825359409657326080639846021211556624373110680831930071580468507148094379405265366032205611047770264898721531765265157527056278265933287544730307834474141952381380225614818620105327457993578312281421530643070780501651033020695574467262578486084005761522134366167560747151800680863028482470951476857727803324148527353877004351355077575689841313959637394675718060139215580806147355310491257639405132516304618498143457754971762757548026300840289576983208388232598826680458991596073800333680086085842259991126856081629795557222601483927462325907888020638432718447275583486751346526633704953858078677790924441025356791918494248349782172033307028069954033607092172379196856443536098578534744469757138463530359363230968321638893595668139628381979337623028783172095913624342712394766647128460457456918872619823397710649236331455560763287179854438462977314922615027917125426758427729135616203182886860599735683626921303070511189524814315117754771545981801832310945467938233618625987351071808908028183991452272341562942900970585377026640957076657144184085508952106970595707522529615151398029078359455464645660492801649080082485222175464797571571830702395628416340700394007199858818834048764820596544653165791827746813966742460069446103260699235263064073230026433799087213060982929771343710141976195913582266959102715239803613470839878293152271245235815378679927501538153954073201710168707988170335202545507395543203865829256942597979616039348278180212066135988138798584466788570428590672443653098270255893061389396423583556842712839936373889919168369491973315043803327278515284840953713193525234344421060013676062431418711608300420021953559225338889909541681739834888719420653110619724517963044750373324627170598152125034503345238507057953054659020246776436696951292509618218178902853150370826910963316126642245460419561204626637831823181531325809859447892553073776609490839345108163796226606479185327858464780930371880683932326734027769525013281323466700037363269979978365303723155064520951090361880694181657978587989602750575878489987576346595495962454973289655685839092604695971390712625733082262373920528157042362739936436132325049888786703242092753614307947077333232012515116469796922625609576223704020224986715316790400105235838653432597691991510444140222457717276770458597985303644547808065225245738080222854096861016456475873295893648761002037269358259727251314326180885241773362377320030836075249011428861782999672645675723849146650372217855856302361265979012746511800612431417377268082657689042819459691388375100159297298465073975509236083913887862508291684310940975828333777167402893363506268653866281879670753233261275125629836809222213560857679234285506978657667598732520333713589291124454585208737961371787845883915911036707583233759995044238071130861031511718941998329415831948057272117479794114961488745470149053251097131145329064399327003070539342303094574417452570470709138938790969184329313764852074786194063147629581409049353747095675126157810033235678989397345134064286066969063058011706858831593035463876390989369550455832224213034831536002220190936182150794569313712623882135242694620044789090639249247140541161313498357393841246426310760178229424328318952232377003471172029804873973197194691996151938932727974801446715919159346660740494738797704727842352141871280273145252344986069404988742829212039290634938605540922956114762442421599321086164816546539632722523262502158370798920389397039795952480387159564278204343840876357644919789370311078225613856789338033490869276147028322159428486219300362944845109579064898755594994327115974157663230872183971613727861156840986020907243460691584329208852229236281622214126369358587177750174433044817184610611731103081795313996265361242455313773216142332793658978345439485368996243763872361759447682815588575436408073589352057332676336523921200769094727371840831035723489906749584109306311412492197172120441622836014863197179798008519898595039416345440088855481920885814715690030919590206432169917821249544481171016521714863155014177624262982971453785071037184729664861641572982475897497039609467099510782519189070202256650792346781591859735132582303690221848233190457086853985792714732857751498756958148744153698913942675196600203334716663984297509261496869116048158399731819138265587230721316899703458802442562397733576812094753576310159278738375733430618078676931336089138736301949902352984402476848885687912014821533496370576859988144095097053454149573705775392962729641093059863942493226134078174126976297909891944057940071943077554469086167068425091049605421671278975023922715590865978986235106631384902364959665735615154966560747281944139096828159060535264995443238673947502647751161589569473530674311390968241098400842329479569356758655389402230161923202737180907077750029273163858592891725398506001570864398179244311171223432925585478308808400076315841531331284590318851343296587086562789791947384953996409231284242070366586898873748723225500668583913676990361550717271048295474330834207778193058896450318689679335445236703552856434872270690621304503242641111368300269277385167680924045455487068381013630621301981455628063931636071840925676230716874525546168847867197168978451502179363172478877717291074537441877835237975231837873096712625621742191006039020999360219885668576269197862832782012393974885640101951007209817851512951840312962797485151274338542331329989856998664908667936880169695403662433793244982026716571430492099144847100730567814018823399740554194558548717365207646020938486638418117990563446744907408406672900578041637840594732221427583296922032269928240454654785963209086378848749768744246710313080493364133282293447119305482809106997633618894903133202029021711701934048455359198657873692473052272742656615061246885768016477354777672638958584349634211403904580204855179044105160627832779297305690378584216161995896355932707141750652514462476621645234080314710561463840243727005554016109054743830961459081092074275196596951823835644916196103502014043481725424961567521194962642085660109072796368558981446025189665887622546139767657767950620011745096141937332039096407396963530432025836132735086232714058151520814044989999501833976134132619407235987871693171236115162716085842568323451028612407820552214622677772781439165805090758691974548446052034980330012836941835946874379186426597475426993128702812033724629628682873334979283319392887338465204202431728145158598586254498703786689225873622033241495999117627295036237772916938262407988707255731485678209916359769954428761010507466588872577296980030804604397003042385340287000268869161483936597459452334788813901238265463067245091027394152237574422487601593635217869250610826204471262280100084235428897277547308619950152087233879467483745183305458415735354206598003745138172334309660863377948419594735046761380746012129150044152000976226537133823380239445777893226810155666207611707405617328554509494832455408219664632640251280392615017076335740325727678672560769368645214832599427493796119171729202076927501527885198868801224158255578157154627734412793206766340692199384339321503518851321531255887290383312553843915466306874886905686958035936858180471979691413709439578119368050285285443933598085994235351811392726347755290248724806510844427055623188806132319205666784427025717648997149942803558321320554491395520967697867391834277159685142440738453602337362492426208224203925563426611194790000074120710075644988344790924399214858532957612964230442267810515505216116250938179206133403705990990243784361344687540459533147485553995655644173907527028265383589979903657565302597257991007385625359678565518690860974937794326165007525582793937568268296231051457112180270822225043838026713260154260440493315448583490836454281402234142965740562823974400503423587099570316448160822285997670717846233877722709534368746517085102705079584516934645282055696970994488183699858506676465459739824947741209931122703297390240426501187977382688059450865485194457470094751892465319763098823052481038188479149488686913856850193029574467092893088364495233789927400000234386020668896980377040004399758935181507688907436798641350633824596699811516980437257741596494491852276461895656459041256600239102958461692892516881489763636369071130655267936315394423224070656165459594756347950424368343334427225674584727984467284288634671118628925966021433297797757444578253223309086992455007136990802565699885183368739229811266887211128263708013179990731293074983532791390573076541647006923817326494629539985057066752804079697762849767451087351835566160122338764356335140229446081965212630988845392931609091394636208911194784260153882216159877911090719921989538113058982241341596508627852619574640444857920837820646969468773754578802354243646169991834188088431054626489538081510755670829917888882399901982217307474340176065897687865828269174153971602062240295996321148682525262508671975859629400754368982457268209029463203797916004499966543787953214799713158389621671362521871909194536219918833970709022631454120743262215207671570593350312588999300871881483970131832811569654099853641243239930310781424001993188519419844629140901176935969097516456964469654808637739825164111022332167082661970123065218189720712920516181490305251328760403227960974498804053185151027576076556900339433255118412306276398940393069327386395133090024511475976017952642800841091699859426461316841258344390855006547037316020298017656532103665186443613730252348438509879974513505526899578272079568607058890197335396218070081485242961718101019383199478160507057115729303361315212637850211256502496235348866153958739764420656341250700427283438336079467363376020721156148085259781583288082239520960390053753122923454781034885304621144903819005377283271269926832823087847016809551958750462278803265905911376748732300299470775864068475148071795531126868634530076172888041072642736785378391933248155344508431078356511834254358768795303131309831377107933202766730645819944726566272008015007881914364263353161390561638159874027554033690595940917595481385502486964961313398819356576740998437624231618114394640173698868750208069705962647701498609071650317966685626798742438297807712632606375316194053278406573232190844448541485013007031354502796185328892398275078595627194031853215731793715954927629562311308996363304433708521075023353767140009726571913397484300577823988349440423050116905896441083080813601228047923839555597444484129390124453364717486679094326798770436098261910094158420411330885771686260836213823198437803786616475144905405873758310989544066732379206430650376442776796223116058247341871900167765435756467046318007954876821122788492239048733882577076426857779297149190792339535294733937916782464517877460900320816253054591791599195234433354795143668263159923091887638739953490278154066989514612855815268676225781690997920306514094459421207044106542695316543328226942435758348607608825978153985521122104626471662803311824398584253456787031872684952178459735151461414902396566444238168927727302915175959941556256795677621104652604592955271246653334562897257116302313156415634474282969697566129318894587058494328188758061193406192378258362114835574454436785104875707834090928651449624866744960120959263769355467754638054717492011335186935117110710607514618978731621000195441260704522824714056723074889291096182189581080690208847047428024346278936623117451929264336949877369530822056051882075738449086154117732454393073983212262761122703179190045030710803971572356488166620347880330539924639564237752682344045782629069202494091644983588501845762049353047966995885378513841262994993538470538673691982118485063406268177029373409111498418238737336483670802164160942544387983369575051725408783323960175457115751453969088784391869686497886220059636839680557285117134515013836933496271625507801984978937165211816274838434385655558169379318000398423067824038796828813267569277069692417401123550820014879640638859712978083433319968142742172595153440639320046700515911477161600121063742457573479686240723209556586030294883408996098493865225741658803332177981652137496410092093172158025321335376527088447418875493102797099742108086772208225230350208895308581707905155261484992900540338558620839098615214898530955872583502888637092096822038383382559620493087892438268578645068954456990836763313221386914085094560899972891757987215561046783513547238427700801382280379697385602324217879917807827365293621182059714396973715681668834995433562647807408420349566117761044372171167132247317580592566021164961298702923587475188955903124535570116234604116528646107409063427282045726431647556693670294336191488851649301461139804091258502167494608075188916412386391318354461790405807779659007654981477721074875654727017276674347514178800043921620041051447692102541696080906146022781809568383896139913907945896487989663630845700127941381892730102979637930489763643058944042125103010176386481284072361370514782060415744044249029517205630419970654471327976574401408469299896873028984300713637082901432475629285691684654725563215809073814288400797667008976374349606219595473261443669413866894420390229288279556581355657936914953693879442149106682237674698082827246853363900505080476727152890953540498855394200632387291740606450854512012066223623403590422083970057277918919841687519920020467682136776295261797287475849764065403507251646291576658882769917015412410324577427036967677318028844921682781623722077585732942960731173894378991113473468547506065295500607325858690159586813643330838719445325424612782397248129007088731644500662914083239154820411382954472315708033641133951564069931729436372975016001902662985322898124782316387395051546793032310211736222583647447878581562089419083755915679082186263945919503651881026466129461465952911640256945755703646241017926311297961730445642167673357811465505083609425945612568922244933067173937465988505466647801847642978198863418425082542600933182446960138438841662406202207883194352826241875790984235641268534983379911974833498821951947637350592292316246487230801321427333950393964594795520866119635249765877809010633270512456471987661546405198222382805681138903977757536039803520491178708329893264612693956083351456240043616412109094087534821032212138587599295879461677748412564145080048307783292489984873666042516998279893550035686416979824312629865077151809855961311961019915079978243497292261538015146688237454371818575162922537103523616595474711929281566814767467155145199977601358792373267496748568297405886896177996312901430722709821709801632478006023586706358583902482814146992009174569802097813260905727399960233752786128171033818816774871524347145805907263244170944411595623886954387624873090556269256384654883947841787887588191668999092140350336432610838071492535266972549120074288214167938550392596494300495707137726357857174850412731874959082812551285756380623645947106327185354451696845215164421863133735152252255701396109571589592842126252253976369053569527924784106412085023223985625173233418622669422060098256070919697975593990287401343473149900288404657199071279018652870535784131634191800481955669791944187850010282155291220404110821798994379676923146784813691554569445147334294789896087627525019042263845458830372181926735355521485886359498928024243320308540210454500991732475009024402687601586261978652675041250492773004497122380661172304294254270432192989810036027826222253130542226996744597552972705879401831628611565580848255027773431522895356984001195446086909782375966895189226823955598389996227369066945354076274645507352591426541656137015021783063443676489409814765204523508537498779756176542110652170028267731462294870711614369577588048065195184111002207659106677287550168525080838123889651582837797791124379913511595595407906224952935002050967853246437396071917833333103066748347262381494508263771890343602311837559241833472217098492973039515843251635696560067027378817636677695959541095721096103348542267631367268678762434599513144066310557950720740194333917996078395062604867900476332250654079850032224736435791545865732901875549718153185266883688970880307385889431852953649135497956490332089543545013799092729063852338917829237489130209576136111951188354623563164730805449917654854007759975252936175718106481919859922402649571289767643182269000005278452425878853324693966681039417574899349285372126306372989363683603677115908692556565631107696224943518029171471812877106448201117581038592207636071652161438504341106097139485137024909687968078396624235923184004069237661322884638550203798891124326123958824909182886613840105197842886216575528106980221164914207842072306782987064251384989534687283337573427028029481342390583559811368499808595091194275837174904857668752426722087140362968821958449489077923565168815133072885900055122299639953818902779283635707859716444102010794105976884836626942949569508954089429609032493498735875597054877825795401619380079517061493299538154427217902751297153817136500835241946502847260204561588725488139468092889119889888166441512349732715586233384189720906532193285848457462009251459939831244487151615954169795083088723722044278328810185476713053610292717565015098375302725812951133079408521517776498849314919851511661494173040387632666405494056089965765572484415820281346832981041735183347263323372393416711023892536838383840734951057821488308343957295886373662509329005762414304371703499719144217506156113561485181812414031408043149405898899668613003364033540315727961142159813066306059051273474494121773031908693109294394769868392093994983427333721071755171467124500171050133666379226046978312725824441498969865983229222681722222201387772531804778316144567327940786680705455584519948144071321653725252172070407361951894532075123345518912438660140021168662314210081911935061030308359403782534234292227108655483822625558154467696028252696326755109529948123572870430414246494808024352981742983583347540312166195212478061341090243907064066526251993869721676816156075172121388176569183529106388649366728441410504213369364469584046952111133542918192261388517089920752534744839641730176017460737597619509662838646082537726106102362199297109043270990054316088993528088553832463184720241138282741706356053483524540846786433319586514053624421734788923083357189309716567505979891583987425395037277520894934865030336156194588447929236091783805505910585822761055712176826211569244971287459110028808217610921977500848789414198180352512875562163221464462210387374900376396248018785712279258897698420043450606207733017647509263506335202866053583787052472332134868901257398974345302370354319352745936229332268827489619019884377102459592767933663811525806711676937729257152071986830447705825044062923908201884671388408427221341190482479187897305735140290278848289542629069350011373987335718566421327777649881452575438562983157210946002013283678243243245481234615607460436590368283655471779407713566888300525160576312741164591104033185916584474402405136175681979433005390394090680519012347535969427981508746229930538361294454172514806583975411081847639226654542064943472383174826926356107758793898227181251162737922882176188386545423592792498721593077634297822852083426801089239559829030761193456519614436499730291076609204143236311445664521308358724917135900059860863939640361981025167550344241911803169314085991027569642443324934829157112163629597986790510478254271565662643007572981561615889393903863216362551092185884594647972509025994302759622753993882334674652881562869020319435930698970391042754975439973942057114329183440599268216838373178403594588625783889028046846066473033628305544913360443195225491028989829663206337203222198911787680970827127965376311915733056739365805587913089294833585737325054381537850083675887792269650159095239859781749641166582953312145428087799842997937945005643929408888886373706735304262930104330775173445188129507796570117671178510798873579252131180823710941149554770263245540999914901826589213866835163755163740505702601550875009557364646104945958423739153040124259571792365966412431108640574064486560703333439571302449502626683259146019730616478419419761578735656037712111639983954310002659600447821482450000658261028582293059519539543902140797724997600129138713902429108092998929695133892944528609175758761477105654744674229093422136992049995157451387559164196691660133323827797783473373185006187638072028047745555674477142623747075910412462311919020879300667952568116121918480643769208597345552591067350324338602279769403115622096764841965539656972885389808936339350736738949884070749281291322055735129874889986540739017871613307353546170515646218986384784945558317420551221380067946259277331353908507939571250734893816947192382063497875824119606012809964702599184789174360964965698950834284004992251030224785756919543915852666635207492186297118208020703358008434829274287569579999575572636297121560659209173164250622459974000661177868849814872222263476939416220152678288337405538394183515638105365992558141107178917439805831430481262171047736662936410671733474544318437264622841455587389197245167914327962031156540571868642563837580253122946039521927542685470023979728421837793050816445111819130932690038278186122409858539908390231659757857435098611489983560574781843103503759247700552899705431380353795144066057253139483696027035080058594050529014484255152061840550631950248841058551357754785836372038932954026955737172919905066041799550273713399911821965594168308628964200583130841486769344159692360634843208453772617962801539157800242487083024446258694480204687744882774617591218141389666723186515647048440727457095753655984569497811298638243519702311134992970502031300182452563641649470229052077852138737950602246636954860629617050804958615210739491531698271806088079744664870545414669573704519048616581402276685433262739390058139902688434020235114149718605448258619712637997799663220267411675770801216709534295434607067116148486860588930918190455716036692034798945013068234769218748632848729221129594597100938031294022685462263486661706182204912417921533375764229664864000794941099155609182046234348238558146886150269809659253121277297995602213227381299070051009489972591241631972221248527763061880094875418990128612135702656493351703515367643678792393009194556554761773655370012939446674799650395689011467895858888088801321390714324190609037610531418104867478532026048929700110379304085672492443878252511610958376942861438585998077164453569601926579433842466551543809063204352552224350463225075032847241358373293968044214951525903656124969276724656758070838333717690071884195323846498540499358086417315903451148508851755682326872615465473925400781140106177652844073200251379000649259521435024819081321582905887545047791376517437180854203596967172716239710927524599985939454878576926248823660647821775971253789813570041243776877226917350752317947582211980914008186497036720256414880288059969707874097165998867639328589801332204398905371953864086719905766051378448888560872075367215852548756074576425191691614549787295520442150791141769314155411997329218085205224876451432056993923647461729447178434647114472929402255862754198068104725133194003640436652928275080194971563732601409735782644515274806170872481223107030289455697077783437480382322553056115175373084691749042545040130774332684622969374177397977527779585143400410631952748318987394976299375069725700719872202443149427726725108022685041279867070474564629233733785146295220926085709773080901042641432744798677724329332414641500157376028860926999656626070026672228263497479936778826261321594263219576823211219457159520078803389226245901943299152146427586649891579568298191674517903331813095014979366844219268290046385443823696996136233113644189627134598047403005711192827204829990188369454040411676673525231224043076068377067679231374397546762626425106857588461679902853517324240462873824693605247372565566634534810741630589312940316815019228629694899114787826303963936729677836995316612671616020681812831900026196050708637139223621901165669961476197161737308377681225881274770808339862039615252924261226482363193871697619287888946998013970929880832303439383662941460653990748679802486706732829483258477105916820893786143802742810735154996740369878450374314858921665620703270065320107779726036471583423431551437441821328759335768174571917913966974011480809425967102937548577961117936843743553423765718144347126385377082011648185928051142592180346024972712403914874374491077308349564435470241207564265710396779434935148613331186082596098690842935663359356254333094039870357817670719885912219685062421549683359323212056314531915814455244470848092180996020332404097673459392361944793924490365080735630545478106739048883603798927245620398204336269812854459834038719245499727418083693886302493011178689718135052735841876861716705430195814524615661402309571461981736493956707173966844827515987919960060366599636559653841017663221298354175185121544297299535559757336452707169229757649837515564062020731083610111761514721729567087132444466042485739399589533848616453148098993168213767802817350691952122116810818214289141179160512589067686827510612875987497804837209493239584932335760761667778545580890045396875410961372409237608251562644342886010074742353412790711071448387187512115736693684812366990015832588925079784285675034697369103291844128657480679227706054638455779258395135552541644406371796617677600606658226708444598096288734775149428439651445800721998620377010273003344921182996619682871798172266734667385022340958898838128814975960942557420311558333057159498956820921054183693241499084939321492850764667416007624221629147603245921984110289651966885406341084627978648872251513478940905047062673752912537707912353428162238247069877228353945901764693238107803512286110081719684120352254940819473402184753447649485710391576080019320208162602251416495478454064105599382789429322614962501381570151288317031879860052639938486752754421838603307236991373314954856758977039132963613600873735944714400913417640460749405254319295792513181090251236983034782661720915651899380063820534147696875860425541904112927412233628604829502312322356187595932992457437951042526305336543967820611634213543529780939782326484278651456109186492619498937757142824756853947502324459453760464889436689219887320213885035159207019890460880017387235912424822848078412109246651421239364897727243240525378274290498986271300935722912587680410880994466667959116894354839804834664022695887355550097440142220712836227082073811906570022217269095538076163936388849679753680325596234896851273506291019554231913562431253186035123740299502924290834899227843482386416680639547860766442205996011082029497623551068078918500699480606874598782157178801472038548600772453966556332586450385126788880652744815008557842712388584701672977555756202630373821056942881279375955993407420660744088700104134073070676343561312734790627769891837162786629098318336256819472165403607128658868208339937818798386420505003127310885955595474977453268958200088458981095783825868817832383877502524343798988545675569394544669680353441010289756637068593053655236958096468075986308440468512265260218210810315070790978449364127357011570585348933111925633974819556164823316080838230524603476101008317707507795215410811153811873091965926016210674342090273489527897779688694831822635529581332014197769110813306683576890286066535799294399077058906033159338843886847780313454293161387985729330158984935731327036227978450982337250347102053696483216230851293734912084757761251211210909728375753186563395875362530768821354716321274234541168380253707975737994672560945197147062708360748342255327811088211983273673200173416931294979139771712997452567775295436265821528006534933535661527408252540858759716386378124516305530589354616058697695342872745563993757992564152519451170607356795974246312961327398157500546738353777876360544963006872824889148914392953600556498774226533820914592014444818952805734912285041412985706486152997316457910092535192054519462134030292096847383282786304201499206024239003045881235972590962917741598520604244453580757667649004070219520320530678612644010223180817804582452370398895281840403129880026574124613201792116143105985747153281721446953833568415157894890024965857845352960516405721856662520108441880411576520373445199776748908149764127886020712168177562040185525279048061475681255967212972680085506540362854979009204304790631992941846890933823961679480042962231683553333011738700129326782391537969175395544501150483959895281319538890174766339607818472656792078362109397560424652455667013061798311040016828854593873348635808287925825161368601339480192364100360100926906700436093630855450301264051879821754311037499877638496101274911417701531748456233941077568144340867510290673870387355928194937999045691482351863152925351518985090913248377107122968899496828029064545974254357493424109715994078564336075317518659671257729388546602856693522900627362496657510722053815670460658651120643930862459216226877901052857546750018662755099660412955886700481184027496546782001250476464525996459971509066829045445448083471955821192957748598701789872167074870793310411556919872200703182515566753828754681949262453921180306062601283815771070397145638924537088198782952782563334921435837300147327940275666281225847587129850517918306011516401488489428233366178751675038294776011582698623174576896992336647158131201164667361411361401950959425053204667516773809652082519722237632664246973791542758173744409170488958716079844185304332868668575743306551651203103571162521184773119791544351247848406089379709006137673605534185336174460475862979892546671374075184547152466584629480141981036170803791536385604923449713888550370910101521908800810675974871618401540537652308378507300430027571154029906820895131679949563091793916512160293357946992825143714070700970139306286267436267536068245504147383689084736670970089020695600966931714607803118867223217450423834070522520243277728127606699132040192010071344421931653608847035093959854902157129276271896892628997775371676396728193094963817843187831217470944332011501454346495754813621072143819755214468683311015993828280635493300497973463751663995263116677161819342796439002650911969529018869401261245840627877779156211401020523351714395259630890732255052855292729802321873203536565401125670572881784590857399129192627403668140604844044718387370779697646922236903773738641309235880635708086192673804283113008550080443369911874998955722354881649973263442688397674693865568525707440394772000752812276148390196394622878011594091468737000670392621398037786312592188908941746438190140297616601134251938606924706520762235347647613535675213117756604197487397297952114204363155710631240841335581030936976064068561344704815862444982135818386270278458158662182403131706733245904783260634889002391119472015107940500568583594678213815659916134645264851016101581406346744601886322008217179973003176366211056059360527442639060359361774050431533378025041612788464737788113777559210911035966842658149820758436870994699095506069495819757866765728573601026678933931508108960386352490038257994376490869657339469560398656177660787543978766584126086241763344889768661727462441682169527625240401710971925862709293637743844680398169701159595616703218594590317864299636282571615854633421161027871665520669150810950088948102255304665348529715365484547896525064560973073549681153847934300355463358596210668133076569907074386869640010965562440927673552852831794663089980771409270343718776588441387630999224465203276956822692922900743828490470297765031446048928600724059196882230817293612414625889641171068512387462566666738469514094896481906043932175081701510357997457581096946786592417845387389499867199050893860267788336603052836891603618793266144141080739281650631761393150712704405638935774967521918748693720441995671197535717360983488098806382528092565164973970268677832750797234354050315441536263920148155383695563431143494149732119194921143930950299724706907928643385253034163606229948063818493163229611478759888360697305638801959155556753670566831382233952732453763752391185453623117851156198386852945232704530550737371590272670846533808373842023451117998925264737894296639631130366160316505714267217070025065470696940855535296236410064672128376291393123028739176659194422618255346105631888050344692899174106238896770342795123566130555912288966911354863351618115545508751869273517383020573587975391602588858843444763761945479552820285744376571058956175780990052560524024307335365492410468397368560359007552721551488058720293928729335911651902628124300954182773516904963540381294325391746004436920354597483481881150005542921006807383524634760853257943305729394047500397787831391396612287718242023337286288247008563641277720314189132063381474437904636370763175016394641473599712239367416657201403462605973475243594982601700603577947464729961570709467126634835952299102437425851990818465128775190137609560665506722475509098807442320320478838275049353745117648820906751926045335719477262444465101242196648462113433965655049350845849449493799819067891695625896857571443542202837460429617982232190309336872766508877374224216851245420904685670933324113136729923200835307815274807245668009028098863529706333053313956141482265404611916241775018805836114860067025876417793060719704511994820387870020799422867113017660473405688048089297400895129110223123914347545656050166629519944195570079388364863426598016872519117818467733768199415533338003815827165185015341188082508992797218119680893407853204105254230648499903993410293347840773591472669745330864953918986096574156584960891946734023335079195767201206474448496451095204733296976728288130433808138930884169270916091540004913357094873776063703182701850152494814262048977247193374158581045802874001496808844543826627303931217077300713865904387000143340886512248674664238833769391913382803496413570575181006341116876619145913514168469362608480440416777781734560522026643568360689490658519917668228241525816411203050940306913092902291506994650736185611142788096558601029897547818242255294560780264637031485673341792123934230729392167720309154702315035246906191848692373289913916908282976857201021349561027901541073564092976284612690770521791811699138924635492691871919692988543953823088809042221420832596140743474585359941245250184096695061771060232006559968810904874325630686032126990196680248666962129302287473288418485718670799431903982749668741855993349323331536752449214123638645875347598941074592529675430848791877551368225157594663755813721764869446869423163125514249369879599917647153311132415333897163588300939615716306729357472237025826740834662245965775140530075431494379133505266350205973301189803477709578419581442671747697855545865277013844570890337962392471176342966379151364523639738205550986011699053306784307722892507394443073877954072467406204672710880114817111808507259682211837476799706756180910844292518450080719193081726096955223183065378158797747346023412032328243696187559856410713211958691632606635256135389273070086330841341685144184482946156847465780269939569500840171042124392965238266618051814784067464573172491450933900076679134600046095498566108110995528050155964370907788793124315911966835986368434027633699447265550790960819612367270683378536962028146621418658734562427331614316628001889777689281041679586333436967508879340961527475184144598221452786139555331660071024153869577120405766011877095028523561906485155534890606252260603474805354021846163693015315449701260083147910811099016129456189914042134157003402455961889808053453465936324562959472125608502961285676762682979043031580638413961406772182623507513450008762243457749115284455825621223982293014420539016814696317360465153838021255870045273084243575732480891471299441737570881158644491015953166121568640935526157270092351095544396892932377768807058246223370772594999004684232084088390748541922754938309362732719927477885397215942743391618965873835648476501676582163426306267551589374909500513088667829577200974288585238440272096297226613630667394705055352855969892669461638512994594415422838756900700747436613115152413889772193493702110510929799408843612044259450132332590945412683031731272413375872825847034977350671588748279226360549141429578734916428523194879388581597325546843624055575182276164657981915160797305293746529670502074105263058716984586857947612773109094250636816077202316590857200197702001742052602268628355902481533928416807402529846467659706139704777755140501393164759808050766502853990754273219170485264793389064828473890118412435919975797197563922472925422503334381571664057654189892806225593936807368073380151459583578324794819797041849684583517530471218305108491070715134263631014796747424493598004281819276618035924811625148809216449538870334722685798111887370552542183184275124114506027203754837804469202852668185972298768289283879484986911457259896043266395894933533540942349552749732523364428914899674675401725504581718284188319160105450004536900689454508304065936393154056736479063989972890596494138146740610562182410079228859282974242314512548007424030875514268587586495385407979185398060805458995756727286967437979785357666488684360338961526840688396614472024460494818067004984978377332013783389747497981776664189528919496874462349510066515677695752004447296698284504225025009972317276125038640325072698529472937623291761494772077611196570274557953128677201575755829157686132122447866847690914136380342917548946509190867401991200678323721049909749805832222307623175004144420824171637750039098901327806604246131524284930951183952370944707315667944222323940193602532098302803131803666121908815884385439717724528183714209230117105087148759786626036977466647693524841646691608084209627969761830758233985185392889754095108087342542166621021758614999553091734323033487805923495917877336362897561856138192125115159641212564535834394094084063087829119360822652192217600228792843011598404062827199254507758326514246114273028540443547693867581614701258782297364110425494188913433258626310203878307215822834498938990312002878520864195913068234920641342742228903942210612232319206755872680502596633775561121434410127446420497743271666278958897873961625957196106205757795624739798041234869077930147912438634119162276358370576897263888703852111904146423695217590107548199034558939323095129168623681786464198745049350601494564107832237612081583652278785584946831057527135417688284160890163664254838656523563195513753582644960059663069717562183629213554823289984866415127471299818003353967015545724326709011299086979607647492512150858075131653528274475620376123901264055134504800603998100140410605201528551047811292580040781169458402001600472201423957331694979932260086314894769884438547783885817625176105883795685919852367250715697524930939628614821039424565481363366656204452961466621351983884889503775807408774007884479733055569588841282165591167201057243318624750161496013522974612099430468140286514495738309047825875994102054927863418517460095192265072698911588574385641508454735853043634636837450021701851517823325533761969902554698086020947617490176434840843235355253971029121281923560967211311745496261470989405966146105618562806155610483760610923383360450418646345254269313235748997634892113951113134483871199290488042619323420102942031872691591362471790106232024259204680335139754488784169070987038403350246677961606364905103064322836625114577190476351027317508020654624483567213054617483291991698383091969277071609535531402577987766889375352436560668248409760142338712752792791626822792902913079986592588718959223872488476247530132179569452092686828306618961578396203778351081952077327360640928157039502655040208591000362487488147996100826431672327886626548658646780734359349640609066456829279990696836329911304348148649312315414301426365570036623769491974538009665706906486988319149425204284824239521391770038252703186044794261783910187553850194979650933322538237764716642138379367710258146264059177227134616478381429711328699080598267280128220681508611879638021392668464038890893439552642374650387504290462828952594262707969563938222752331749512074516539948779926041439189799214005651521518458769236145138050405696721816443407249611616872339657998668886735619869116097297029812270828162796144881374553659539269958106455371093062142608930836429566016216274639090548132208232640046557390115637037413438253927345877232896032786427933127914757287535800223970148613941723990684535822013654777697859840001191632944557281839948239550703124325347228019281885154910749598908595650771653316551405447176972367602027666588241296359111854654170433204601794494186241788620950379429597193599475401102757360327109236800837724800690038351196302940417269414681334976784980221546537252692150861610195762732137982153923093932239761563102410475340867284455803244544281139608259620203700850769358580815601238109078447876199408005910443264309572769442045808257897737683801331504715109333807426717877757916216671851144082627225828155026176308663274706409814797811771601104859102112650577369330559323599892408296227932743472802397750266926335743481928766048715927850270464783288518360302699622117844788333070454364420497513063756783761006362404833632990730937097219001565523221242533591546800398104309101438656860165839435469451098071495500427959825317937231863969441275746630469175661698624409997264107264317545856699476428005833441678946398059945309739187251714375590453002438933711223508153153787518295367109050515884019685098861476172793576756031799326808829787854473843557891055533036755395258963666231440898032209696854857447593766022767082096034382690390952244223071820980127050215882170861151675150310549328306451161162534469542754347124121892879877494601627402282757060450507509927101303452085692412946921903935557870510024976853629918920300439348640245483323753561197441995173045544794660043136810883950565076384049735939025678556033693451814494334712424056795459988075858769402592796602346494099812169510674737791142335224570323975717986242515109046567469390547031069876326850409251942677315298310573966285399690698734329937864053741833012352050845229709583726997560656289315745381821680879094967175689252695027681599837996931535175542030446079183355540214350157446748881285951060539525005012809321699987861257931838337774508989278227127122294696031335979773735529355173805981033971589785356293370225942722726478450899674264718891021799790272107403254080830562017611087434692115781491574670445783131182196149799300505703152808833961228243540652182179319322603422741211673799055536999589639927605237738301003517829098083998376652854881240733576737185871888670700965036976478824736276114119126084231422971947087899757664989327072425806474347580980362208496448298792530528641100815344266183202867022249993684727388605068155825873080681542500170266139212221420124872295320297403505173159487353549696532775912628146579043177135071545406195467299635839682457229649562475484946344907963012710551967762501750179376436010667941241705035388340052469991687513030384726640907062130982118750472568250906180058074566520058653676380270272477061331482898499819723473981690089329309613976890291078117535604536731543922373805642873564667759754424408844111452631923153727171209802009123841437856303328781121100257661967918184111625939941194628514236537013465576051401823825338321996252004630396219609911952438988255837023578218613136014151886032391003888355800660758353388891500414206889685053307314506147060149320135137424015362997819986907973986405803809536442716790673596998692724863883550812315633062139311456245179497222408153108658850575242742520214476715903188632302919066952159801026155276286137546272930003596140148953992079063689193106956379738831516794987655031499909358046220444659486780191485720239748484425349889535549216341298595975284624660542400261156860486547759052361824947298599516815093609567046230752778796754298150218246377734544570936456762353927124220268019799303471218333999963860583438476129279256089700162368743330823171107706285285677274499628532376127980264158840583996745086234658529648403111111174792235403129126389684578066149761054898501457979569064651580588467122982957685973048487792809518120359191893828022244424925438657309930628451937018221292392341618581110034080191147450459100596604955465632930989957541349673034257544169853185697019032353419586005316566715293235820701271458472793709325593902238826922498121883655866275731669884683045063038786880502296039076490452744857746274680594990820607724482421482069884102581441861490678784063452804389720015836277367383356977685898980865109025430258592727040014611089566190285061691114299174153318331420716793332966024472390427144869571680330641928945471712995792676075386242317636980929002693493095896360230121333951342027394137722393392800361978672094061978033269526916414510777454211428982025098384834887184968347155400141230881411973437303735475349786041249890217925988983821028328563572418716893188143925982593854253852569901100278512881395267209833407245639832587252262090346896595437237965999979309247025492731361064475167830810611917350839188048472362149688196222284364922426282465025706753558987768191686607692439013737830061860067323413680760923504279879406515050760407613356365235025857141759331109084671488360426130424108379972248587161593326235467199471293429262391332041639301903325487810844711434634365639551151439634148736869186350773605408113049136457262233827952923268522428700156529869921953382987823105045285032034885027909749321987870093043172025548461039940544628417138654497107717279034135284721163041555063476299822236557791653424854144492408473878227382686469801982870657438960139716205801079716874158781188868094920244524332909791872431219759159869759960379966942072348391635818683298092304118497705336446187772879769676213827614480556422883675387155189818295008367982251259261696916914069842766430595087843536274056616629297608052023268670672148004362699540181220794451103479282977131879997755237803918273025432822657287427475571792377428683046322429303848280929741605932177317511806120569028744815948502076843700680711592573362533877857747816448671559926856430043710202851705192139801664595260469575990875183348787304887422360273386233404809301887122932683903535087091141628000308861479968679123508310901830487506224885942337659180874140511885449487941608320788141403523162076862892915524468767455792575076727821688132020883259069950475250237016473730054664537656768558021175072504713915156818839599569340989165564301931735263901125145749384364543430726263372401121498533122972649438431888833979170552110490437056282319608821723804072401511469879998812274312287852213107286348819400754494659446842734897434764774690369587078285459481744754609941590213068831094251429860350588333708133450173080653239995675080067020351497899137897203052843538021350560101891826339340322830766445447549245170713556386290904566256106161874301695636699243316083885128484714104881741430317403676512761247316950967695692320253855154412408703980278459661689897361608205823235255481168106102185379873711287801754651020772820490457046658956147256439964476905898106846409480135505257421031961003036302701538186916323932179271775870665469062494769097137202955677930325561668431264814915450433088078137289336632146238447758692640044302249508699267397928695968137255653970465917007969922953339115162382045976557874162539414276759106593800587810497408152577871588062119964596466345046596967295981115030123005631869618401644592622998816226506711350345555112284665745403432967370332890066981453523976990077906904622979551006957795748956906669910608736525460395912930647013685571555445563335891646521556930812456726280124182736769398570925515559200246857225083217531567275982849033606638922469323715342411149751073442259265826074309422725835398099592555870111162169432029534415187617733777476715960130034767565333624291282240358802850020122391579680097069175846923112555021488604952239652398175299197484118475009922350808991044278840409750627615688034191512580050765226260389990400905399113863280290213262200077722692815726312381992159972486291893943881675230661457777245797336310402182883953369808788987656179759673151348499959237389262454010279528410967266150438385592795234999682193718753483166375333284261326224787861909466919845555932032237883488501712407309660235186214375483997645966830823265515190735516618482039212284554254178740951165025955616060560803608801921842632755256405368044852817717061839439353024705275727320366906305316805648321781663010906153718310106779210861733698258346645074055047969852318634790680460566700349501883130476296231887382487047108084809308516143290603542828022016072255468255563257712842109539810572066632441146074453610907810197580849995185838061779436601813109018369313744520266766347709370549137285720746252033663867682417106503668240885346856261269988327340248051120245189222506164709860314426121447715084273080146388291068390188729553551586166572843612640307024514450392218730248413411230121911657232857174620778929466003601403909597422435071261649810485082491174316647393452177960497446103776293665436501758961519389279177826811241591004866845554743060914908865186346249208442014161645052281850494106258014434124421448911418089656946741590759926607504149457781593786112559251260218844972929803976320770106459511404472975936110412040258313006735941692102260843576611926156465238125729509844316587779898424457353763044635561699583104226172591069931155753330297290434328740831012556009640905340112212707497559606163448902546102276838580429194515889969920384075354924241300937013846765882919775441349897509283603066536132140961725481317030260438789762260508388986289582413417593089061597032312410517258487477129290634968877349043283788414500459123073079537325096470614412194643347040384558557936956846607976636924791098560636223557652632532892253544910961179293908988300876722641702877089037241423816770244740072308225131974326034317084632859765903210593278399724928283568035337434987675284830946084798007881619557054208110994729818053839861734687510885955506613278202006551553126267278667410635536778305895326427679543736474363972529281782212725016911373603066968377862673838032472846395054438880460805205688319482424517852913536287517002717852053106754641710554983629811473223364181506737748580469909566637615533809894925406035390944253150843972231347178091546995683676332232185162038008302270941264275849173967396219019847963013329631885204401070595506472140542372652978016173753490705196316756230481854886713722813453043268824940726820848621239605552565604286531730957329392431441377655287486005654053158421063911602953501784334141625225471235359367643700175152307814931633716440327549116902840425580452543996268644732896619827266122566316275709396556492614778819481062698906148498768839364383205974359443178247020430323296531308039668821589163297035440605805233660260869331800855009274014135783041226553856828124472181387231338903527707853565037417300346954464897786553774741101149442222998789112125785390929008426721635692905734838379909565321987712394342019132415831437560674180622517958542910406691748727108478988189636934882248939320053684315003381184402951260417789897926517951150703989610977270544878167697567586692540572667108684138787608554624098457513091522592832951564020856977490140451261546050895405400664300854799173669758087193117979399085462683648346889053578607479227448001718870568066152038902395526311109656955578345609823810014303497923036574301939884764933544819219594631789695646140983561430033097743742628829497118810909272406148612769231594942164429843317871325221974375295696208268131080248572567131569915611462612419945102733513784737030005626781332020344798256548631929139786505610431369486036384851455563840777951135156087638231159834585150311256740946803887057149672970520765362258241079611232564424971043941114365875509827057226119489252554454762029016594122444749971805958009350047299358476996922918922248545206824239471286952640564132661891325684058068033943051112536020177134402781074037982335154528324421535368042460833706764512785945856938854909329917915724191443646442575915216059342121733725310184356709665171242863820020614273068167584100347641807292780111752837979010650337916829283812842274402479147950680633125598189058577727775168124901585004859056601947656785510332124261917755057342466789197012361351884182048006513239065905650215908065556218967093033896948423240130727902111465952883220723437709327748047959211209909590916407565221015862259714173397967693652410670752791738020816779011221005753210154440809170122377233101062252906947359309385284700265647582121258096431470070080548207506615494523709491438466351368671268410926548793605110047293332234223609753605926725416857263792483291139770023441810590503289445480814503639213205436277830728417131494525679991370073440345842668416786951589375355715065863334664391529030635216643128900982702383749425682469080853278057381751282357128838350307705480220524857900808241113740497334772817614932923210162978459332477398621218312099366052301978722881954718489840276509642376035383301578326387514566354734868550140327338494522154634126413668322437317949435875261600279815071263907628494674769834054891215084177818418218076930761744791668263078838579690887375441570368640807568525748623971788801402892170406482099756043223945090660857757249745348637521681529899700187095678968830170849131775077154168161757141975450218653397732526270660467049232786129456685307291279068584544561915520122661656497959346508090038048164440416459725686239877161823302747390472547199915094350006756858615814936927382314733386931664147621450139448905083487174464050692250464635727781239195974948540318915165063368267256361036726754705999864085933174946844920596238213409585188901844074022171727347815551463373349880823972311979443102953800676947716128822066375236354825758099640469965698383551112005671214843729576765073246940626180936700068332882009890683308916958886379252647369576559831512973547022221533148234551878146632541728549827438237495417258846083361690407199653912632946294017136891197322741729781826972264784400999314043695453067609943953732090293896007253587246316848881134622801925838703638133329904512605574510141170627620102678234850612581669593770216806574386021581892891385058763261188924936576457778151884487313395607172319855659793758301021989081147504372971779605179103299093851680967027166223729328901416836787524490399475416206082380214700872145174181833358408709249158564196708224314439275430661025959327119665819977138547581690198141058527929158123919607614318859957327230922935192577990708321181526754951219253969236349230482350396625801007478553347504541255421550924779800687723480799995696199928080854776833746595078740346811615919313242500264581888882544615893285760018730442518731445209655419712124162290197374586466850501549782281778094545945264040854351676841897736475863658110671323130220807089401237303973932281838989566434707915822968978234961904525758229676395499024623186913792958506118197355993541500433695753751130771811841623646482740466818462528978491453225726698082761691558407319606769358248243333024331517462498354487873866840313956687206065725319111302693734447181528707722616686315337261834689099453599002303725799491955978535869029208220515506317016655930381269852178686215653326918584329071885693149588009085245901266380929174117378690069074016896618847270293258539165789896999755233472645290461675088232316305764947498104986844820925441986613078977183074918256735155901483639560692162748429497826534603067572226520116089435992856795956967161937353128191713515444517232779915085072309737492846928765979384891719876344454031888651474779385424780646924738305497441704942968454222184595916066465292954543326202399683855600254751828546163750163880376770258369721102854403056333531657050716456728129830617640131265970978552893920585253523431332044654630838287942575318198026087393721449750876511181628955350501861003460571804698045500124230250827581062004536530558827286998215810881490299053902362639342756684729461051188670169050239979447309168130119164712571656662178680242140488316638948810583010789271970724422170619628969170804697664258907707527025862902305998432283266379659971497191864566010598392204214416368654698476272307274543111034389787907163220735891178491225284116783656637048217464507537246537180450155947346154251297387658067574379503730048672203105054952998649386179556304104696689516385240436980230046451401630552340423741514306687314331402104431983003776535247813765736227783450457442596880514775252844093355979737683293769754646403427759988737380549547887770375852421456410605930469937608895913211178675051936135853545044855521188790902488011462822177914849784390623319051846056725690250491044063003753165729784206101807046045752728302165326362815023128485242332680304730284337308226676147609243913413148383054786353651855305808681464519592062062653599754458630590594183597795008827111899266526286675898444129666814862712209226258804268294232106122973762645414585002998706357527531741426524445146880773620335610884294301170540505652895256630968867219172189243189785611085366006255993101730080928678642873067267667792883494342214300682408170153974542104277872812043652631300127743218271944765144345928336514096774520406759414925755566249424315368030407718988719463378850123676681546474157079168630628807393677788108427943276881095852751463746903349812395945570223463632379705275096880431580444196450253798572970453392337235671977627805309857471463614162954362796978233376542783839219470533563198101044507779749200579406061810871849520155278839057712919804657208032348225794931865176322209601380047382976758348487616922744963334538980931755457016856119980100491303517860085658436694157247480360612880966559743204154821183158779294975993656707783875824690002354766411824869625679891287125053744019797527689479643573295274294497436502024558312486695949653008424513848438216638220897623416201742599908412717496654115820333492173628230812768462158505272389294732965077000082699284483621298408081789305742537640011438397942852697086334223959720345429518169007677720812575519302928556514562277567426621964134457187402938856858692566389192225965461948836534953555564039876885415772161934034155124983843853669781749358041730517733791623180067284800313504923777464704364309059204336825915891406276513905717393600478961274387442981538542636144382958554035176704620887383694464349139002973796341131398454102947138230755928244998676870558732736987833507103324827091438869948250411618515437720370017384737064760128773785286065583557984923362565318587864638114011377072362003686498846525353159052763084405173278096683783471139461917567695124045902169095717922160510939441764172767109971293683252536870481778297670080457714508456709846300817092750865515172143186812566024060625647946184831742989360153379430246834344785501284819314599742096219705333724922851570177207773223446892667530550841491283896016191206427706993802298771013456855433758102567988705586053316652442432660857330776254410278923345991392525160831649811583628332487971923888540588229782395683518970554529007455385590505370402215668723080353215428048679563146262791683754108306807393604553452831153823159193984743509218321497172622357535854651179531907155849655719502153594662625260703948006614296278544418964803726651311529184093952510031768149863835932672819271192569745445746691839911382147409825863366356811668146978966213130055741706020220754045494145030067962320514339040530520493636413794538282864505413522351361154228686159845861894084366561621911386876310069423956994264132625707284734365565721258939659489500440097200893831117814810753903074414866485630093756360135531201523128269424243548548515510758948160335544883725068832940372151823931010942131139714558162584614213200294084334868357491408855783085534447165137459950473286968741496728675055161447323989926918307484791826086552422561927872841627692862184993124725575941039157514924726255542488431720532156626237055394167954920218317648174423648691544482169652189585699649593145063823387195895796565089921575272447457954843287355020047416044357415470972495485942838390504284266081592907643215660672278822989374224710885288622975934461673164723247292528014500350072088098565350523654598988971766798322924027654757782119746076652985242851613462310042324232799168096012496697538046439520490246398761781209453126385872663182218485852578411211682560388945302091991573445072679891454566013099444826182214239717208461577265584252715435934719470932822165792268546104450031424029060321035722803341200324582683028127580184152730431657026785991854932871329663271458620349811433605974376228974907502784501193639024134090517389269486401727419336072376316624003354656265315611747956886806217333350952354094571559701300461377091285794954782779145604960393863012851511175313571830583033033664467896929772487283744627344227778507483528950372152602234277035721404284257422797758485261079689473425961103454322790080775522861559715919299502505615635789768599400958883178034688788937347017246770605445719071058550926843440656390635064237308076311821609503056715462893738302941773188582405335222979958597102148917775521518467882855133778329062506964867187443720322795487670671171765274280167051268049949804945736684052619386413248537809033290335099740201972773241348697681290082947700209397812203144149784771808880837786025723699544630228154033514252433001875402004173842155220615959717222761625829011498365827522450661487891607869928538967476193715589762380299791743926296239384725072645977836594996128060839730960392845823582196468700338400450713167326116930449692902641188712080472949760935334369221358459933514664347120212840643004848789052665468490220022294387228343466426071778334316452622526765802595268389914375629449723119748111648742654564064036320484718675975960950484380905782579394701637311745930017890784898580260714261778377536423101818493357459006625814840553069735180863377402725834170541704496601029300016883612959915216116179915723763026232719150793397191211915798717716272685509012966529328635014451926428275313279541107406410573108801279037004660539108797620544283648308736443763955955185943004898101663884198340391817983138173842174708587860180546200528016357912092357394677921479370874543183969228895977112405400206577850232510248501932856374796957408663445212735766866847114055381898440724105092858180159162447475842033286021089058719170546171992500109331060958137994125706941379409128055889362819412216356537223806037531733800715513535569359478900358124361094509692347711525178589784598757325068313230140550993606620981825297920799580045728175353039439592156851350771496549550528526066333107470853018372321819378919965323095383838913619101316522521358596065745016286706532450851089032506534363396399637419468260753543170075181950975001288558979042740271946257559293974241023296576660316276943703053175158035126571725929138164196017434205538769844719558313656378166082175045748694100714499804917009308843913881683447158393893898896753079825442873279441576236752714171216942373205299968142601505387361035561881368566023739717976582504387488317381899381199875217304282564810717497530507181977389021456913049135427542236842280801307751474914768566778075069951939326111424648935752909877403850087046461198676443000353474784707387824952175372493841141128986924728944083260096628656219022626323132943270999960157272204663938041133219442063919797720388993796849896035378575322239467387699282382613301887899581462632865382679084911748998965989479231532209802482217228303194461727664258067279228500668903432182291632292800838254905870833174255194304669795827304524657920343878457225833720457193849157564385890636221633290894987394138352821264020721769081632984754800222771602244098656947390013754063036333448846554566141199813817875089911827615046613859257939196798665278139909941661987218201697969146572738998822937828243332072419064840083864126540617225813412895509739853575636190904784041078865811860376455580274794596418901723942853673699683667343466834687717438067770251606480034374614541283284861321758539996698966513161429002063286269132648631700711491202202687687826778692472689478006652772192618809549780025254934754058768249174213305784169644868427321824165878820837655216653187522931273227266093232574998144718991065160826928171190321749139943979351445920725412679453803181598642095944397951847614891230901693477614847940489287028304169666623769586447909493597903355619767676140389792174289584400997803539280301994137153530680342237584969820325031172312281551541437405641395258096308859438750869032166543914130578960272288407334902528494669404139615655014488137009910684490886747335113933995348880537456766081857405477155432099886621980670130782738056045446980148423845296703648696153806199071228845860345823481105093936990906221637788605329073525701828571937624689259810139368803245329981383663188774823374798060345628815104145470842004452676219650933133046915100820497061998249316906211720300486879673101665649369752994952702099446157260772561270315682498122982196349059657825375632854405884275913920298070899400653338724383313088331830407655826140849976912647475721181495372621630546984048148747703557154258411848317680239765391237199885216175376398098862345728371695837953107411778663549562432733948231450144269708709624017969249626947159136590202508687764111578449711263658391092773494940547301254670626338602471411107904375045196085546493332319459392850591861666375756396545260139737638353921244843676894168351403899295675480944291941768930837086956537370343776370623807943046933442053727929435406440820895591872645022849425613763938871169004547149672894468989397388295435331053623278796505497241373983212586089648092708013731384758851217816615833280542662545292462763251539385933898253670078169623308131408702986732399786108325734413164090406470798097751122287639210861631748577991366782929089673608000239817503334389087424763148032250763300609267981175602069712692531073939520179542668594253464651938842810391591651371692079223733989657487314983079609687595200607655446189159263202152242135753712637034394569494755933100780515308890543613826057398916056340812647205032127111842716894611056508782449569537695668561338247793777497880155989490830534197079059116241863073452333957584954789335462030929410476725299705059110149001916920878511100769044602748386442627535562013869950296573220002354718360479136440613882384934254746535471808354599898797126851263582160881367513122725834866926910985998642199283859694216102080655755573626316483734151014914513860198043364770878039956259941560081871165528929672802922945454370558025226634902531092804088142135885200416802642380271857539084545950639825369455408228678028498568816064204156588523461117267683232354547707789673671347971728010307986915091767849194223268683777948759186978681977521348672089786600088528055071152494041862109460029105669921381176405294876521237792744348662645357621387914707000769112086926962063991458858250073932715094092952832232835415703591864593948154680571256068692105845569639739771776146464115111402497642391271202068101395969696277400089102836329232422445674469851874515273864022695978245180529302570141379472010459989877206401974310757761290510625037477538924098596581737437418489874995702035131970762594600271219535984231345587551429579289089128886192503572041182848713447613061117511209764095162100022244575210584101821356244336372663083175611015339006473015157888071661250658249411499187169007057052549670899158452726926344024069788768314698908544211692246622913854400705233108984040004418793374226826823935306976233248874141016613623919056318991474131924635946407409456114720791507776727865176153353157725515609398670048524448739052015584843680573168191190148781193729885547702816344530892699465837880963708496730211193549277070216839301157063503056015717806688235605138193334155754118199169103948492248906331499544633402411329215007864546021776823068064428684963319217047997743860084631023528367375905110060600306957274797541577107378949356651120325187880396914935687800535492201181625832651940636681368175533917641806610704699312540011244524807391165725885312335819453566245461193168507639801574135876839948906558061134096582035728483076323509010166667706301235032483286641734889270403887792039738216942232616569337405170404132598589519639854121466488437035178069464742912975414580005112890360815164982516365323787900558851899451854683062117401929737423027723902616744927421965522564890165471506899914425496181537465054178260871072757920606764647307353240502711817424027085898038110738578951127364526313233122301487309228918098229058491518299690316325684829319565644487816230735134971953489775710495272711243629944098058685144165714746793302569855284342529041090540929218214064678296316490001424991972542043206874778467346563765629218802428493132747869174072186793135614636470850249608609176069786233575461098495570291796892626554495662735309209757544557666832747996799846250924027104638884745907810347274102587801285602130580368876355637139720690086837718796961034997665471074765510039654725727923337266794098706088034234532437779158213731862795350372249326980394841109646351080125164699271149962368130150232471628966405118973984522193364358248856520004609563099634843176736149206128739944932946567155603409757106520342984915017583116084399756686207285431184700027137091179498671478665073275704306635319589633953770441770758656421113536244278138047425600978947243806273205807161349347725158361149291610702213280302517085827550720994974354142062244529351867990003621461624215675230537527874315983478694756407317100059206512829201937691648070896169713246226256627707755283575094683022944876600583205262199330815893414337898541873777818596845843249188010751600440224462666553702667594028875672396745250596158280086600535225189510445146783518806219818324736693099628646719601788953775627364823027795231881493903253342521035675417866431127737893744059757051859055062382392644098721834720964449414302019864306067969405728104809945722344201540529954972170747787348100412253381150526372652308701581430786090159580304012742837846355108094765099438248520007536267958343385372249884821497772888089801038337043859182288645380114447251260918072259451356574901485784642631438701671154786747369490777264725507444940829224837721381676534328066805863079127387368293932165370787418315110476313587373141032064155836268570127609982406853745362476758859735211015452998000881508691903152620489703526307919280705974827646196895131932269041196938108736133778725330768370696912568441888175942328959767092491588765110008126813187662337833729134427197609122179949657821892540777498388469665171216491309946321077032401141921638092981128430015810563502332577094686044977670868864679667843101622865129495733169656639285619991602323205010470471699867718645411316530071609626089298702243015825318719447147733804038211802859283013380948251248750485700884583115843599659325014601524927158702619614914387763934290259798218251798973493470627247280341918741552852986796204450442990014641208453101773170559517217773496387708886118651873148366071751214003842499623204839101169546103431614583696104703161589554901860466779469085814394862817521731616838339003563406347770231112726399653103611074691127125875752729443183571836909708321309055396977960151567858474712543626385086148008721920306423595039724407328849793316467838787493069849773285779198532677646435564348061697250275993669181426557083302865574687644417897834939985088918249357713348633820188988624060016394109730567894879723153687478137455148099751401922041523830577971927018690181845697570750401510859242928125121248483587585197123010194874603853962832910055346789602822683527512931791002633989597201987015387564975030840235932887418624129126232456507894388012167623803014496639962799213029090896162953519955112023171262594614389581281818978281668072681726231085968175951074650334824984102181749844179669137214350387907119286176739051103975915533205509393007561798201727608572274088745120129270145867285406545654894554825525408232342988755915510092810722672318836671787055257326405101224029868120185539391615230320070198903254072302817850949350590612335413068003548600094282487039953941993425976871066254755876712310500039572652939389086981203155042496562842347628508247968976392936656136614555742225142052186246980764605825127665445810853771231137571866854111987390929493832641585121864927105842238505718646255822240028002368378375125636241704931439111130406900023975470523643417368603693681199902776455445550512315112322562742684919568868323427666006767168444874005480301860492776457485342868618328360568650983580856497157452159165195000693696660346884619010469544541534439143605807554585981793670285034087995638277938102593670922650437513587599293696113379536160929037506471266762992563079331626760859911749291276018013192971679131438707098051235984022935334795482396513640729987398528674484548871116031386486122583865639793534743740807763192142972643677406970092731606365066697842505613567362810914089508406847324564265590540426024307621015706771289735848755881932948997519454137014518503065961066493565250714602577782247409380174517197664498089305428465395865301169810442693444892197522107754458372278924630334762813577666058170871526673845020286782852146819805520157232227231294097801466329511484198107671229079395484110773107799356327485056770196729109564703459051822924844327322408737595235692408194843734318794199105401907643254914554899833574506843527875024292883433477382289161565263987428194718118598396848071102434774108322947954480780669890513970523870866004959282696616006460148949084444330841466467519863978594770745489058199924977342187547040432348054869481447092210741783883773958918672751650134491530383750889342729611816353253230159428051858435906513935574773931595539461508622668582130266664447395374094771030356170462330335179009060935918918418047492355109034708992238259332295215583424292621884680062682709740941362473012016072188666680669901425174940420803130328921827771768190169569681638617425126661325561462235009229672902407242378988741177065872801787698117041509987937971751007273696033858466057526053740546642194600587586289704722585868983610452833844814680619959656437988858025726941185187293890937846360447213790203356747122103571382859282632429313499726531442241841708077392090828750877358566365494253267971253933630880429697438238643989934724254032487583130449361230097068737864342999922611546230201164925477986049471245007585396839813029430780072142675432219164890917177805262630264513792501727513022751814024015015596241624611433152715490029544727801127862029973406376404903152662061281877131936301851838334593947798757945968095217681879553720378077973373298198135554819083062545353097127618250246513694116426031340185426384959687751427453040793607888788419152869980135662193038655869541454758804715794640528044345599525922335117248844550665107036755635941392880573358926565312821452182153667270438665049005560627959763504818754772262179526466137975214113987183101984051848862838162379969943129774693566983636640795961270868736492592392152750314064105668920856227078864020141673951671677703784740409055388337064021615339531898536759618256352806146847161103605253668531543237157438833185537255087887364595063139363712541836718409877408718804290217479345280339021332217954649035000390728082680167516340411066068912745081224581186714184761081061598414211510000117071164443730246282003208496680183898140358621944696664898507779871643311099783109242012074631974260507314236100506186492621414141180573355168703920660888818497613473516361996556229679097443981885416552590428344306677759456111565589122059743344496671954547314589878895967844617355241320370900833093468095693563647192716140500221419767696788892300172099975974568304345371493242261370875825667542020694303229944347982753994567449805208332000830574423849531514092981746793088595210420381124272883252368912520828054759432711796260692760631485562017104760251406575357969861971734513976020897128855446590682828269686370145528895517279795075215635941230765580002233969762635312629226269546278725335213228232392677001702632388848414216678105953427675048672006602944552117171798570298870062925189692748098247042360954981820749951281838409528930331064914614917140738142478624474191214342410482247415443155315946162269096143664210748114642262543654646094352028849451847128008027724427145994784059288646588942939743987032312394533327431396770688611561494262483580630006505951534681562359155412910282069448357631236224955272736791235849374817425467326191683250666909812694317625753194819099631288721243165000739316180462008895378393211375468477864923183076729907857363984839755974283787588046724293951460404615445268384109130276499783463310095277258933767595356390046375625614081267227363229791718289186791404152839632040835293791632318806576118946931886814248372910274438823456107393894822695139800846751217693250005928233685141551195338352512260467532116390889970887773117681273782833659949016073443057805950068881063572696038471004585868706297856122257855111837809216844215843531063398774942232261145380347268353282513430520955087282454881324642845782796330485596144722916312330076830488919795925082074586125644993163635347679032086139537421699148082115779837486713552306820740520153745518411173276491188047210817654412838042801723985972368587835100401627163936081451168860414645323176655271096328791504917268011381888027228477114640992937871163875497039449831421729759516217226939485459230287263229695560024074081967340668540616931936171699163768046494561197413463000766512357809563965321126512898568881586276265808812391373937824397666093154963865437471874809467289710992181987994304271855728985143500102769901842371686420714457599011116309596472855236100966455401624618798849500270621243355107346690609066425987766012398530840350138898345160772883926853859175243046186486514571800225167468905916062356020565264584063115919341882255339038803034255810599280074571482629843065783547669593073642112730498523216701189920940195693414012991448884075322024226924581817692092983717159267517906095499772467080774108053304394945532103206438777701697407961958117146894610195199350414969865836750241112275830895764346900250327866175600752877280891720350825218909844114352509849879686927136702237894546213119398877359072241987068523216304282292621462803419437251137661486225531671329935659501382062246058369171821185041815456384217127457952047620599659846035262000272245891269276571411705231866555336982585655396925033930841003370971636002633988450018007266958148076763635229473242690939256246029876545489351797551948746646468215916597933945812757268370838526424578453372659539327434128378953398429011147521346484264443140896882608500097647480798513708481472112803917250684579146366916403728317351717729440126744251584985941148912318110232499558346713863841657275365475247952118941454271322760561768784516105099942525564482532623916778862931149654063684059572466759867812873990704293622458293227779433315122662238565304902327785230059441883951555208166866060928504623356306057213127485856608866719125323695283322596031509496479948158388660573944775199730683745389973865706297365580195377050777603982167758478611520038861422673563723793676478667661659705192967718369573601892221208948916162803946367950547890844032102952111963802054012600593046285304888506300281936720625596233297526165291089771431408710048490983277729268437913998173872337188214755747346933012359588765299495241436704059074002865881996288009355696179226016544143721749347102812544389833925368224232308139963885784346849061057652562372409539478810247568465292354071786801174707542074404698376099848509544909545264547547085936894192889702240542596530782870453538753018333711971202569483862138070384753588086121820763969887685587375951205517661165205262983621575889526583202364439745826311467565642281228083548863406290693895908214938612484710676921227714059997922850209266398009756071102242326437765113691697542912288304296873031260651547146879640043984728500765548414647526068442231105780002395774522443849032360094538651739257086149181226086401900803565216143006377848725925389764235942646539199334361448143777678620057732498452227406013914640908737633006504111080446791384539913740111607783617848987653941995170285382104893192442198531229625163804017941910745164420932361955568622840401345454144766083046336794419706254291351725446411205034905556740820967356371360326970186056386792512410973884651950564281400605934553213245265404796758321378487215469932842367252312928587518854533134245177038261310679763776098489375609289827040015968590937141794841742532266409824145346192270103207550834144566922477659536952705381041893045363257422224074464974642250796861658855785483139110972062494478859655322928466111839288417640431425898461185178835148498570068251605234119092898380728320998509677890119827708427785415904698041357501430764269650688683105533367380981117220729639889780908678895159208236525332776303368567722076686706788924219499527959124424906868326057736784447249196747615171424260796976121345291891905641907572812005209237177260805641059718859114225264301898323634699913722999235057141427369768676956124731046422831326132131621719191275325784832686338622180395305142628397611230559680575685129915808339293986508301200785128076820252924789797321228945790059931742705827495992082871693726585599223252195732961781457248170005517550287847783205155301260363724642245806444650823876244779440244008587787851472381703159464287178818783684242057805969355549302361680895991461645018461419918232469280077805815954469450704791659328285043442049454123992972344865426642823304333618098214703317131973002833088427332689916878823225298229216760126531610529556967512124969773344431632765430813765064440266550676339099133576483157126868139455841324137216136480495438811992969261535993407582461808771177875219659068546888888852313197125484320070975659542293366664056907630905542780452161848425329584842258511359988231093973312181794658424334550810306887229999707339046743206788861909957703999466764931152331809233394889463757914407674848913831415215137998375959064004750658367651568302652693629691409612180762001619742765111802831578552922336589297663359157064501168123361648103165922541622093400537441190529131364228787590474062117039245703787791044055973700965733633207441658161269947458717109770493878288894519640799683661503315980391342921914137830777815231766784607193746797194451867604042537095058986509483352405048225458967919827104373472072212054477433032416081777489399195841538598963498127970028672554998316704846169506578469935886184270486625625721732416129659511973093935008139026137003082528825109823220719521439243774050119750170884607604930654226107899619093330920715729813058458644777403344545161721723292358151212166738155504298845846088628504320072597461158737874734344446871675974320180753993672721510078324511771708395575847239281551033248678030265015328760583770303140190786430264520457706951621147276348692173848654544942038549967603042099778595213114232204582787848893894717831603255308422315087045077577522612979107351967047345205336430226649956425173019123319716747383796623985585120823969012093157011108901187729420984003008827103808710323407404146673995435469348084676078461468666419990530123490407390064037945134550649003242633504463791351700055851042935635069556729071572871399055645650078866735195766800720134701465791705899409007565460573873137091149873740533462777636445764925231282753103586252462015884015797971721796053750140754895770002911487610235599418624863950673037574694915349062284949907488656393686071450156622641974630968621811330551533108807005933031861829738721943647789157107516993499000631040731557833211865860857444865315497359389986838675585364675705551754225774598143394277292301567320731104922452842852960278324616526585858616250895884899208511294400005712653009013606721897777666426243925234880753852657232542431883528313984050985699747123602160342977755710420225417935999476123499077084171182735485389304986284247620585322494339631332360740158621126894656542471102442021921197213260925215815722224058048248523354911046771805322020534434675195611594895320437332014992464915241950954287430287197478641586090587824464083092283557471561010277541491659650370705314886548871384743836172971811643363386831923303544712343495595151121286482899209654078413485112841911867370041297877435108426826077475866454005601582675456749913744918818526029380345122904700480762560078819912928375483797373820736108599913756013733573311457846076927068465370604095219229645371699264729912195302251384798438810927907308172721693983904831295719270026239904520846252144501436358780841980338417263500819440358488499090479773046925758370131643030094531425390663949442164886436757067962280335860302358369121162251361648735475741816669095398360353409575827737422845823323349141121930866944314371772262324604929006889940822884236577143029850099633795248987608001421280269061677474078305996910194276832718824202548371004267574165499393609034288919896100139925264901156936497706394331980948666655913349817290265691337743370425460459535708954539662678249489944953099820063235916520581133579937644291937951733643588182587068762422195408757655891105245502939389488877218176933148369485437123936639447503166000930315955249244480921102163900938267606376128853108882277992531418748649331005056681096861129189987312306301535438512882205227913972440860833403745276701258224856296451074619424381443827312606174273867947310650914822944611364762790805401419313739569347196863395119171781166389179652649853727100655593024888789185546301598242192879583562332961010958201788378932632829443298850193752016436307609909323711891175191719082740317143195729403327350528981279082256059513818126951358375391596582083991553784244112878882951810725902077871517703723542998803912277785597145050292267480623673298258660893022214934194232159985862733666352033897496088214750988072132586926405704474779435677224719488122063716990045115042898138894291582478675867756954764615023956634644036554359951074899805649287572072767967820874118265786798302718012937068218176101138382611873107134284222121492076849219264208182838881650656834593255546655660729091159503414513161030858625095086286954392725608638264699576346671225525854410428113937471169649640071400113238675809689799595248382258989400259412710238634480250732626706810133289734977659218278583930029262130683087733086527900570987833256779282572141001230973287002436543869111305831682193633756320236350915506660298432082726254505845488016189662299984208987035009626013628574985736136753779016927513685291798445574947472490861832993094915665501732241024145789463157007282425755840111851447576234317735603743844991629634248469583546616549416674059503006525686781207498825046232673223068825209627055352533981757018959801709921665495516013826051422267609152924379537799939071168247269722542338666701470331360333595478264029485746687389297770236891982953532516523033679387209547865413972522522909837010041390452165693785252652358104363050726784068904452952516761404923872835288981778766131500547167183134248701009605041707812231949015169201418223806573139199065118723232923837331758964238863305486172732205169606585394122863558129075111052516990097146069451780062865532367140731292624832736141943122882494602891452099464549472546017054417109965382749765330131033270615008338008059394549284386955977459132190486368729894884814005804626764721534338725288352747699691955647689967798843259306962305195004468300155293549531770252448009813643539766222036008484374831040086571676295120702545189075321266690271644898642188511859694528833104281922131580221447031629829212542646713365093195760927116261323711349279215390299354254624960503359448352667210000245398329864153089245521181727218401878841725734822609544925193725678175745178244401229029850232323632303644309269877820945086567903300155681879833519022419323525093091185668611730370629128969733178650058677625024735139024287324356565768599859678773811945804672078180505386408814237749987062988794925709784510345534874278936913972703771911443125282372554965522778713124162983201993805600259783703118314350740118639359501130884680304938956344840610676233244476778424364648316672263973236772666420489331332110076209980499880875159435163363419949282527315093455203917139548273989714772057359630190330390210625422479430586131500218979193929252015927910853838047920334545610007515074883419040290026997765333228096390386783824714885897419667830543574538038840005227837798725867827722434656867090306652994174071830144774275834825213039662216114864054459896339810685648646803411377182222616636196383991460478228873365105246770873323639296799590180790042386470629132133396842282818376753466288532999380611937960366520484723032051316472598739147808476790004194168806243072373180087784667515273356227090897894929145638080231420750348914095780103045867909376241643839836287494822958152106774394928107807364831007880745327262429055541623467785630027678949006808024493142163862285583388652731171275278189213185154141825134497709440019590666098391297138891407364944575791403605243970653337348386537619759557812387308953402972190178473838539080875831499157984276267491740239758734390835703397637140544551054839696790417583525793548273425695893543008917922996895403974544137035017286802484180660166948357601423005604772543601612797117064710691170466046796488007640092127699154517647540707049549126134062903732172119033970425754895986993752398524627621491169141389183896442771407646867051494453228260975489016914832719823297681378150687562163445352348478765311499405750539163897405476154147115003308733650708243110374752457126497768035214295680960194425966516589423931224478195612320321814659264090043614936349922761007182292404221668508254960001433758857135869386277711516238718527253638895588838766511431571388956359278707468534555406603401967081172049083806870442541562851530557071230858419432173372176178327379074471709802625539321581766928713102287316755684553291952078155337648650888533279598553396992311816164818540667501767655767975659163211564541233961098999177485314949899935051148835128996308597525493370438309321287350428338285320552379720750071842639793677593110592598782348872865268551928699647093352116587677336584188119174379251733213112344634098454730847114374335912348768744680921602670788024928995544512561807520644049471414079980892813198616946930640314873155670888617395740582170565288093446587544532232283348611312315747493260630287132330923873448917686867596195914607370882830679812179455085946403516359529591741474859878306311774012488826588800020640332885301467953857642356820359453292354520664330924570672010528179962121208095147503064532687610782396683482851507973863848345230129868268609922967031864107402682983932086135620666880980727983436993503422277587376918849725486908427238876739008282287085828371601521659209805289901319651317238458653227187747470210730528442662703501166278505001319009978573054844582407038619618731576512842366704306043862016533551542136128444251777103122080531576869405295706313709683662437297474872843869323642591636675676610190305583672655230538905700370880696640194319642659906918651725991072786147817045738580249478162777429847874808875080303103066961020958088905015601539459573446094454364346029910573478654792732242437893838596776727307055870311448813306869269060996529732702284421088951758468890490123289626615780925704572801823648506860805713930752353578761143321632782909526942671623259461821707078290723879431503565111504770084183186081462295127252165492342708093933079396538152868505802338916543055455116753760928631238980666697691519351839111550856468754792207690190840855016524663001833046319597619952539189986921841438203179003264019186960079606572009743014180094957198663789489670666760749649516913420917209947786821302209167781366642484848401643998490526135847997190811348252844001092418017257494490794405229474380774695393998311618942774248380766599271089942300351025773056798836449535988555265589654983648476275849272856444141091379402288407457019759575314671070309756220309774696356130499572419674191423205037235332317207219340709811399368575240476534430876156494446278088111546429229499637637503836960959973843646062234085243031460111917915867515277597728252197713267938190626241780677534307794055121769659402500884509156415033163058016109490958626420769478265099119263097743922679181904682008219082788281312778490260691487401895028507150682677186729744774369198166366693545597438600036960186657535149631481581665767241989316108687338156783938072164140327299225781518235296510008084938205097045023310327581100214609199486527101341552246178385502028392114800184006943552106653329841399226148552280115340821268579067420317452676103622421571472323982468227133597890012048196448834854293002389158084884265447219916139031720047805483984307407349678142432770621921171721928864135813315985434471395216214369034222697352103059865277528292576525188568787514274059968967021526381454273528621321687154106469521560638715118396925686399955012318621008281068383096681809279625217694912432181837616221123285230064415272933601555183377525347815375122374291371403769341483119073842765485966980566799623169418096139569708568522700545254143815785088181291992023566439257342808478207391360543192044734704738475180206894933507526196449350457362747439303254170108820307002068571995757328266314161701575650824622747780548584711369197587764155371591223880725172098504459552513360834346661289417265536200931822168962636462812786960875682751863791808666832440370551820800364533985577198440264939916766113544542665792753983988609838405907633375277496122358878240101972569998908048087674430462202463644127841117393606107815034994966366427274549452762624863776701249446931063008937071360861982320989642335507780774033469732880980182287102925020468128174262744204480758643235905502676134308657964535723332780896167164567688934659440216504385932263922569571070700766587710961564884487458845850615147052027955698052694588488538033179791650207529354795395018974010293645337843949406514069925733057058828977156786632588544463767949806122550358034837637623232826299868125403905281337341043589558326040322176969611138714360261309092618667874752981199893253506196850435774740417982427834065417782731137437222917842952846163777143558748541709088851676481182477260693336397491235927842103683081442735489070943670585451530572134616770238618531933968974778519256485269219113762709688341329863850816858972430500611028418259749024788131752743382364214533737885891346922534292559590681306184752881965732664022367949504409830218508206225473373850177369704884867664062497635035667453805761518678481007215308686227284129506605230747558360107371356581348408387971815251852961729531624072581623818057984266751706158807039114975881308176105340154769061919524289088009495016410051764500859348707262402236083460650165964439300204967514610078497884723579923788441780794475721304980338550341850869846547702580968841475860321379903541846581779816567329239502165186753909829723921581659112038875073778557413478339638141709434259727882034419984273299722513243101517099286655635415167570025428241482572161725534190655471951372423374214695068608626032839713684332546989778288503831363067637098240998588362217270934525874527994903975558454770680894214693248843592867744387872031938280357026549251663316006683049046095449597138033091041495608320749527653663898461413609138030925350567685728699677579308409660198495677063257053613889371317521811331219430445503884484779002671270082051780714925766401719168783980550373572799336303322255918797769372359637635695924032175254929271352731043823841594219048162834900385556720453848962131700419775225528173119255947714845099984916465218383232166968548720840946503401192899375292931096921294891640479815824840839454611720657669645315772774632876446192232176240570590131737298860845779664417674449537365557693338574209648593009025903369672868827716159947987866546857237924597233279093664145433493168041554638497375244853767841330608052383428381552764113561289750754922683118195343904437025154256033229276124105414366291044980357743592294515212609504888086019934620494284486444448910157666948593037488407085527669336994302218817438088578517893050198418868337630656083829206897157163717788447636642889316308778851438045731047133201951150095415662730418574112085317043823664696217864414524987686965580706452029032910807015149891883567899896240024279508212487426140728759555521333737748366459025528819779446487907248875846969038642665452102016376966363115200790961135845497093717009589101669292645643880896122094349228960597814035021570938587278828032724938385649874310852062513950793861771332377214980518899580027074576993937120572845622830615195068454539985008217271833276514178345989424163996720746287186812820780587776539129558733643459993716446016097873037514232989862659171788312447934543178776425758958410204474878327451497648514596655146539342398255373205396440020380699363302560417385353287423658104449175004003905417108594266789504783731920388288529604404997917079302678365648256556471881571803739137982257991390871992148907827480724344401031892787693140164517483435379446272836658254344554016852423889651026837997585810166955973217024053528891628969597002685304243779062617988287416418505865009026847951835604109908708770452002325145356911388814406164918301935870316859200152137397387356870393940631693548375465812620519258254871793626597819878447439592992921100903138541304172437155210597369600292095436043436407897918198621161214996300733717899719097085408789665898829332338995772625244160402088077516521337539916438321962846157285490807706948680968820155419594243279400710617676909881669797574861155678784849173457419836563418382300135910433884230733952041827476215101737651750428895684666682758825098448530190546590186886088602918678032051486667459462995736722849484248630940930242748354888851930526648239428701009198250122305074594787223473046182946735747575845467078718776946543290946314921510447800649010484731396993454506029044534149506588935319423204576924017978262211896679781582160115946376632269521362598629250226471071552374547721900053576002084481193187422727147569160976262201994846827562898961399722245743221569488811686567161275126115170937228880834483525099634745530303710602646403774730848951821297677880896089248205946812069942221127846878136031721142458175222314674897920389549604337734943223286873712160023014242351013639707935782428188331425964035171032964206932504932989094554107008617840475628580975087900417056071754733198607153365545796603452382715091652416243679647346020540752614772033401796599692298071224578542524993043120464487084834606273046164587079874904043617896392759536590342919303147556575219081053155861536527774389107776784945386592358286382871923076203410138568323539121588941601198165639953096164121120743758723103306061228381592178589605519895555600120866909021750597657553175696444434347528919866494460175750962015245818672927961534892405538941428922311104483326622935292677877093178568885401052015466143113401694229084259885887264392210444377642274013946606948191703610069749663252538973360496799572657850239879163902917040377191017485626012275891265777326312560482443103609298143253156406288449620615051915080944849128705792257678296431589660105188986523786808584668475734807802265522222317531567861588210618245891020045114558942495853219410618405818459643791887516833470980630686430895228967711850308407043668700792404547791455395043326308294764213918277946548177041194659300293921080545765643985468343872030966685893868476948179950729459817060219329380289023144024189340133807550869770025448583220121206089014642693963481209936198791722790448551626343504263319888859464584769404028354118177701675088760761737136522623076533630056054573861206976370023119094150853845856963142646390624760734296870708174489310700377646234623200704832938414149651344334015898344488590087137927297684972193787379274842951163289055893292250599054212860968305418369582202826846444421198678076241154810928027106684417268475657183529714694303732665663740521363384819541046750724029491956538582679451987789739059212909527074958765085960638580356383359716016060475673624775095420450125450280859023402990704493974971135602944514858736171115522117540136529735904688030692802892003575194448096468835241765810399364102706281405118098878555294803729234449222814663737656066621216823394303677735397319769659061186299285449446587858467378926822532164403788250111424779264375494584701420800595169382035073629182834162087931208232248187109723955164025342648901958874649416555308021835725614798295347080978331398616173290055289301655169435387142178842222708388485258779165665248207088979389396609838945667040057086901619144637524432030036417923597456840872814858250123184086994527980057559342685399626967718389048669684316892647396236898218000876660785215941167264291395503749858485550700482926509745664308475560105395409624700857465049330286310508203597327675551492545585563559636857730000874726645892997914123319783491305864176350021465470026596680486099212174330831019378336183424086387650198708208074903392900493625642487257938637340095757077118861783386450563175995879961052553163584444053374906750340622714305186892812129292851505955636874846488871912762819003531633513243533109898603559624731580241651459134474134740934975908747193484164847010593197528745863588097896359830723361570513643529187421916236694099083093273177275032850093895098409034018704221139142801965627341739587065845946529239114914145445832179001402213700733103695916279665192813028300527119638802100586283000095933286677022314506076270469476480659121446920861095819167506088192923351831351785786151053710882385332473810965106354693386885468288523786543879867616381288331419827717638134510490174286865518474184484698341853979181471276135177444602972787390126306892838211635691942225367420645335367985542273105136221541845426266570756021898925606822910124097880179609916567543352373672576027808803314883606319554695795454426941599462403166601792671626478914974178494321405187082657610182029500121247857527514699700473502802684547237138756388902460338962624918451185866902261360862669686793127809355595224400477124094334653880230087867419007886267074830375333588351825466261639837899066016905615616629122400247479248935276395679236494479508494790026586867972978367344695673184629361730559175402616848153889981115731044989261549791714907712858650431164425271402375327322094398165205247088782577866534568565266557434818972123048191239093014920703501866573619291164687026438950819282725168609802352986264229702961803916460768194304631041531672643922510739195598376335982252823332183750591108444813418868185334555869683911067026224508681703180747364460634001214185534653147006624610986541327829007705044714595350975765005763082181870954203941904754222085347404923828127868848856505558946469667213669400624513506090907745718427641209348509044953893385639302235935350921692969201499301291990197060642405267901337046708263202940572816993944612027329719492574397209525763324991841293050791135165863997663097779158630059485252769778289469488158162088803289753724905471296495076726738707750830074703370195013191017969797569405220023860924936490910374909617425961358273216941593720088482579522974143015343620506215198165538409286756284447197174604157963649454318500068754741160187106014568221328711821136823422880951720390774768248314664675785792925431149130075412609326621402752610704727335012110599824780529888405993218609973437373067517980220284266522610814468680647128117878800388112275716456167511554226478318978571175702011840276772445473042368461623744316715997888981942133992880691654344551238236729032462493828232558647451089711718582594075488578851181979931205789408164581565672006580906723735354689975570112123888235001563447269737999888933494467327349605634508961694025979205870855368278042311431471445978013823918270107334940221953647372674656108961980831893768616759579595819140495849687518807130539646553318611921043235369644682813700534541193795967436844212421244005395483333216608865906873937348309205293282930340063971323356399121901843782853321554629504022109334491721374640596940654108149533632036852437216798979642353676689086931671366551977047759487013673015748263180283172085164217296314747511935006378130581912769658300331141692589341767639794136789069919625709355413605028265858778587874693998654526029990818156922417971770778824557040938017940399993273161057469760051372281208079778282754733502099637829646792517269615380573279510752486755521829399765907397695952931191455142759856092702492350163545545506077285339373826709070875991484710977183638704679788635036782586277181941887884357496884449105624590897696804348257038299940392286570002104507229690414322010179867363794970688144859388360959744251377104699993237498026567493752540071904047174960266124498489785033742688630365651391481817143458061209258452273944784739899431907328229090785036968669104186076183136880141084428729179649939702821289429600847596348360810618847321695249641948182659495812825956777013602098658159223173320749138442126864979422122046590820419612329121291237795100681269252246986744843370948180488232321792685220871475516151057794918670670467595607342716931944542735896301361486372550706435671161266067796301281799223411197223597966610685712674353840822355233096086095882892765387217677837880381668935938038771075161550539962464635340833422360282009911968954638767221425284574036452903283233191152691285207238878237575169875419490198012303225112886923232110756331497267599796112757418655402505824321423134066637419336483046101899169628982715693863763688368991333766129400516270806645471346431672523634968561406768352613534652255173757233655512459444070566704126804602689733887325004510974115747941599704035676363650622979971979556886185372849959549822695727137097546869614191354375619347086163730354248594902956434950546717004247481034226878450018780177087563579208992110342868280535105720447852319725752151825545619863757647435240460524364813722965355452261503594019990639606454767304522236445497008213831513304509911448535751692433900494814935445291557557043484096947337429247827640220722135625211830543380919803644765799259371820366902893864878588131429187887748391227484242777742832758617997090210716607844448436965406906068701665356233048164071823159372807591206146470648962947011624545963291019903695154813974958401890422014293545856371941867051262641141602230572406901746822950184588260457059890161204355130977537485463691813003223933336939459983408598488607900185776312945499329488652557500952333919858527947890917977320132587219588616052324517513557539389329227632775688064827687862711380465201707305429977473625599253840872313251700843701585350071067880264566188922815653628105225321533765413649869131073180292051372451111182237606592542629641962161957237589657714902251500089191763751207246495176160097697985360804010964187776226534176510495696559692882221519165178362276512351338759456707608375229501148269988273722352228779953408449002715977825575955520292051648268220374059221494126647118127107746729052615874583167851706423214387736871149399084355548388119930135410154900236139877355885349145822889201209150939458423376323311967896830130962619367062587161348509336712220108942936764640346656695058168857287431711956465362533982124834329578565407816511476849780784313067343037331441514004529807115987139506235823083180702385166061357872812256364215783769576171949045934165130972894341622584011780054433249241922981380825338512339978995952393163632945389031662745515307152542184070993379686932686663136492393017850006629193519416687163139329225155328760291348010551378008453241352252616126960785541825400166235348984903803066337052798011784775611866781913627411972289536160282269929258239738422738073088747479711231040146998629355641419105076209221719887512230253337506204518531013329509288275572566653323051680040815218153405151104739861754939371688829024356076189810577599681551645214379779507978263542705694566646149213076918414604092351492434061661176865913386791109321547370410257642208275978009516437983021143557200579104044698013313314753330658165749233816442964943634791957510780587103553912363021072654063109230243825405468382225882619960617559470215014834577285075734936662941900314726827028861495405561450374609118473553036371964662523680128674328303109163726852463737605344060674225008832769754640714485697136051553647550423216653223906836895258697778427811702364610570048480568677661695834635729263316865651288751168579092318044811408264474247397119242584798983500095077290999424537166311210376590384718161750440782229847908382367358411466245268157695803513355017341969968160301513113147441643261591662827471080952764431731681559476174657475143814412916205289850818217239489742641152030234397123005537773329822456226332619906534892492943306710614387757743092969251754054183424960225231532947971040830916229628116744805519197881995692225306575321176877935347573774290463078194068009012598331236897641786649800277777109197815529605275517247665678463240069107767699356419466205569983579122342599819469651737766898993537226705787925246429320452964236304141363310103284129038429607402883858427044870135809894390113393389708985201447025464056204064573680438768710641848016092741019548842333758598182958598186386443430103091135211852874999788752098176768926333640443115162710357397880687604191554249288971282778818289556937667389117766823692093966329654080926767195640505838947198823538223255472448980115814550160548790428944822395304532791020321004596504286225677827828599567906295494921287721303897821650880522399940811721622552345928062069093749003759186186363337418532092494758894662930895495299390556487074037232081532132858552493883624483919125132161201091544320814996092055159661798078522411046510592130357348932383502667286717800275981591860174672688654189893597294218220188267361103977641466934719658875790774404465933346014941385038263597930644196354988850609370773969165047196195853099176353793618969941481931728653268616902388179076720951204478351890783195906213280828573202235707023296696104923780059356984222926108018628522837880714548184102811020182114718367546386743098983004556796994264546756675987967612532624445906751227422521054083243071574952308037879991945992626551581755948182875842420834923313724554292414882713668716426713042772049686492736689954832444597736092428906475938691065336343497503330446859122955398272242934011174898927040417030355007661773723763951900196030795853098238499966982193958376636498671648915197230036866399050411496024151994312856217066521035329999353568098352164884678895750499765795327991534348028578690973966194522602240514559565818429305239219373102962741135886726272322828713165265818879326071019691511823286845460735543026249946794762887666340813622291608625583060882330198474656743377414153339881484034772655719860927751384716148042476517229004972669732482579740273372999866169115242837727364190277088937782191745835572158168459222575224529079035468005688642964839425731344584532325173830479216035067659069998807832082033427913982201905061286200272035173851933452901337075381005086827330502141568853417850144870486265303709914199572522785746965507945000135975558784950308695424699318627600747711021608513316450675295384892385956192333564268053805428610492001655042285845943659190313690642121448879524333218104268244282594919394879995981153514344648337226209888342927270801186574613857220332087634735902243323285015026204348078964107101205753100004417460316420006571003491400109038685755149945492634425355194035594853328431443937436165044086443307357843151645051169385168739775477501449448181838402532944284530615248929937293562593432502034489243567483674045486818253427798139919443507772653809190418904158120629092430132736752852125485384721200048664090428543824848821505109931298152943665092355846998375984485020010014490919919117792692323125771403592311719611159513267820541668880052518039952174566326954158703226628751910341303741232185648790910470931407299029914333249757414826804254246885095038690815494031638754322136214387652478561004371586174816547680547581499916579476955186107115654849909795523974636331142321819190198476685279194981357715995810640498120497708280228398043491606219604839811412543857742601316311587376331825418076654100868070583951768775283089126819975507739250731164653995134402206967138403072452689089305975942671161504202212309947187006437344180970241273735535537779484308304476653750461393791459460393991097140124483119506129997484927061733139959533612000193450452832395572297612856255415284808143931509243511967135535520887281367196331630523905459171523029681008072997603746245221928220316311462617078275364563883847524587072432603781565302047807826438679690402728890603802288547099470799144603382106582053399614654891611638388949508166099209604267769755150704849299413154826196395384409883209340101851875322722282810286047923865159577800784651403751503195146754322003284907494727081972871174100796499803062963117431037892392296834890470459422429102677133202737624442704049565847991624680909055557405888048785597234652951951139776719867814144682784530883226979907540589659436345342667747581299258813594300577447502651428781286366506994655678181447415248853009150351896378008609705081720676952460506660439855693816311864092518124526117815529587922847873609065025762383031677842642604798318054669374484851740472287759487839832638767133637253205439135963049099121998255769455482256907379253465743354383164174332161641214423294041419724310543971334220137409979236440561945602799706181276027520439132951722540585824520408071777595761149868564672522664561719276038371129587208642501440582637933566143160932605722568308743773480507415607046285680795578769929274101867514473163464380908238987445707464106875056132413191874791086221820300049902578281837794346253350013639684688313745383837920486795439026642690467719633324929289035637809992994114872320136687828720720866003209817946113732383123327719747815463205095750806554174424221878067863477626466624801314110285201098335587930081843442005556279291459580228023917449461435335582669391338964242659377468244682012109889910288864793502227678640496679970471888968081426528707442322822049066855772415777143608318270413656361596063574321952604810883886987354837325795368638355191012501411158206193236326320184566208517031683346409295696352545489041948576835033014144209988393376794137548625366946038705399329546548744010034085556881631652241532756332005097688668712546606560070377969739386569958499800244502245634451010309552302614799790988926110466778722153073494173709636398607046772512516786803124623042257640347788498745882971992647643338189685128649891399348749887360468838224954288671197651517214293306362272440207812502840600882193882105784704171253528942232975204182071792795228291198023739706097636423612559098554366846077927440097954536937823910744038876664590223805331249565484297019101625327635784734884990125049913778863400421675105002687632942652107819171617468008273878634369760326247436957662096729482411124212687560693367401973401649507538744838736462960031884586367279928752884418156342254536087653393768401497907152902917773813555595519441411779847786908042390943918774355941722791713708397109393026657684425033918440477757608967431662035546263048664199695678749756848171762321768048913406724828980837859777754260703415362623615703630057108180966382468633408866867429028491997595687881106131864917920419946917534113615697981571787872767535689981467232721571540042257506559604596766289264593890011352697048369301244906221930781117288107353380217503927226205076268818648783152743353017290852577469013156209417795857699384903018147526267201370745867042175838529469643784366267248178329584017341035782615602738596826122330965370224716636233032024542697371131694761623743029006347039960810288736394356882087328629861967973140772062471304614620764663910507871085506835108868938030051774726134284426547013026551266034503996390952002337684533032160205463062721221884039325464281247235599290625403140383478213431556526264133485563929607858624632771646487968264497551861773086719427064240002888562207934238065570112507071666504894974773209800562000843018069943737937149416927395881408704579117935218944258023101726604154975600818082243876894242733984233640521883932218225986039627986832605978548789699688630714693152116590871430606575292786921924223146610273722883794426526369237528879085323470803258112949881735482205562682729439102472912834598483371526043864918634669836886049124332176374106117659103239232863718930591520906286417636938366098147117906799432649041023612935052545648747693580283544861821923723682904998932516479224551357499784685115607869897309869115129913298770784863080703429891024272953387570208221716681976654282275943102963383216299158420908840202655492076765726899185833251656134356021929089515283790677793838996406400186008707636003608606876210127653981117866660556046142361835120286116444174628092102382371114277562352877334883037568100729852862291268545063923052581477398321939378462646974673722198864619869462599874742855138085147324276202662804188153178414019624595221461181677075399808916962658190520619578275183870715939919519595479644934789290160400363113210510695639360541861278887671041463708418130088376954992404864185742997598114172067051224526425072630248649097183100422171649226581371611767073756160936833151530514965260159947191460780070211282409597505569029948984529609321185555832303212143426139937174592779712016669220012703696380241676190244938412025176320356717829702735765526250479094296696997180718408062382168618767939009334070618697853165020368268103720630501295297005870612758849504204495010913899028793305676976638618585840883875175604371170569625070254498195958373366373780070176684825516124130758279037121699732568909451975354752845113986904113039383782962326809833441167636358986977547778675086056000308281474721702767863869661194062389812474486540148141509755616818297955083090507872633985753374296257974158455602741974418259178229321370016432097248067400700766958086335961173299141103156728825801952213637641633548738025485970214455350909948651676830115024484211709533229506877886603831772721981323983358673255984648527288874478326400985645445838559586773603382403889579110726848428804754177949257801412408988183092250758422928413639791110798194818043890373208962516436203443343053872531782702859677814607502869035506634447567255667746540496123364573107782409683704124183093517585710401059519731431247392040119021136586926484920091149605435457221353891657715720183752109774408474645392806865314801687031965697427918365827760194772235729602962660172902421248855803337314907690066064072337407645918758613221125011124799938240483607915189945948220253824072739649544533544323283903211212604259444581321062879006389411178869035965549069621623617008788497644319597038611699928266443189817353305399423154966338169606785432227287919339174414855846057907485666358491055376956399184459181423016091744949399807516775003936860368393563603998149443877258811001241627969463407677847341114895413283512046192869724666556652256737636624572175599764211276007342926595843175444619518978470069395497181286962825284844544021676849014587571173525315170580944740177278429243082857193441240071178766819932888450061064193690459283227871701264068159952470571293748760223410650647875117165636223719618418399435442793118825835882183793011512371531820285311092223936992007428259571438215665919939040013840326589044556806523393561127881062340688039656059778368348227238680130598458667886206464884486241091812879580485595761387508271086838595396069631681408206115183611613984640891390787874484652537459912301264446347674524353571445066889011216941397318507671501031010988270438386186693215942991358879734444480168441745954970674676891274825030934790391064791186669967991022740962723647370472515857814679491692465697112102393730130418895781905960252651531311110055926218557940774975002386617677540907618176499836081449033904466206924095347102588689249313275739750220407045545955737404350871293248611945227156723520869488363377022573859208004241517051370128839572501797838595684231066300575254034300824360700577333176511860257336632856348228210586471039010776145054342197673809374198580910103006212232829474347920681352375673500918359567637537568326599972996193643379709881977655008268779983370726209777667122198968550526335558047648875832741355346457175068577233822416258099606578810295743166871634004776174920922679054393910070735323215404957211795045619381903424102140108308454654896365432736776743297850144990616778778575344236906638049619342648876319229998620120839942569852583259560578502506749202091242729928873683372043953168172423543414267249144991978999286435444985497645328414045306957243591458574116998484981687578433028610428864874889250350998165773255000723924595118936059205827232301971667949699245582034429627799075554839540673176785694262358315579589179410826330769645777771225957323806368713292483379423791041991211541231457802470751684796881845318496152449639710818224710102515397318897603862020735387692479703342030355020820612001534249572504290710150289381614509412330129746716969842413628488726878848563828866973279379343126869624826919535436238059327300686165097650575426549579736636801675222069550691351693341351634866278568366087796809376934549763687710510639687506023921632437315761130478639862019917609386544632690477635272550605601807778655794993961589662566379636304441152945436167362440809216800547309847960691100414023464845126390030643149826708599933352415867581884853086706022946557977950557691413129265942753871402780988174881834490424983868085633129195495894786252411549379237472292340923886669576664765713083496726769784274635052015297438191146610595992012136361991758570014592076430797701928504957029328523970161427964058080678584087890069525077936664290929667696018308462463190854579642013753090483410967465490421838579731927046599516623846424511577397478897154793393691205651322072859938978232456929117412082061734122520655924485275443102060557253659280292571422141834169555288872015954993775939833740993914576293407990856601231559620664696704100464698218071435858969699665586724766182691945212290915362369661190476574855109433628815781267875841131380887003938181013986302982007505519300539631599585396217121706797063753891590728159993749215740818254721824001375574380762587296589358390070485227232941235733349247728258918146091665554298394391027887580431202486714211925122769694307484634938153034309855430192913198905028055654220426555392969153008116203548370103000661135581784424697827828261172267821992119606695034161704211125110517652189752318155181003117917074128757382763537887669759134706518909585880162670188129643035038450323649279507691884242512157864618084533836941237329854360428911734499327928123221627474832629902473721199600718718376084835520342894471880521793030132941718513298825483389706268729389852005667735680632986839161544898090133755574511155030036031675378980102225610409578715665494424105873640862766753020396335077847020273549298029630669348776192301151047526990833513511894329648090752957005583568737170383308632493294609427200135000821969349887196653788008214212514499214064843046745095339137814219362964542916397999001180932271092895687593328591687644714790496851815840579931319774550895906626240924091220071681481626057341916004333551252360684668580396654956032443833027464140805037552436778335952473380462566219007149730268767677004337814495468003617597134354359187890500390544400180702823660703583822214529620297513971078806110085804526056091584674262743172882195531622081902570276645873249807894451793725279682195553411119847868711162405382194716851507375656474290223204921921684633046578731143775591423883554882822437197838471428640904394294939032633791635708428187310667278543687096994663241556495301656891893703556115848870736946242385641909732517205799455794561893635195865631304629437526594233855381762112779122742417266157099467399250060769648442325215581334114597030817233028089307063233946607059972441422022713754559907690480585985799359381875206614283338110605702514839238041224948523267211675645120728273187280910306727846361804969832482924721068248402852933057151678237810048089092361810288513408876178405949326456998058346368151529822799688723852231235786502245400339086385767425838349820895885169628192480166269782542464476581966011611701490337893435121702518818359043098027053314857203698943928478307189551030416625524971472142384740129556512158783515974491902022409728227436580279151331519064923453856248819177718177217632840873114611092476671645759708451475552060499374580905276124233765184973172315453581842807989870561598093744225851304621001737280118953768322580462654761139502283599486084687263528810814059747728523861466651677544541992218610067666463888596666000166603904943669235813108748220673056761130520686874433038654419776640931637947578999452989775719517946655795040969795905589175145838409470839405090663860066410147649690244479072878460615452174386692597843910018082142633470343221216574834318267034041588309496972101632278803677993038374582063289024487454674175695845025292856071836848070722252617392121058844276050409987005571177585043770273696157976475591220497308376288376434428166496238671322343109538890057585987645017879536302129276902090379093438584288861744605304115754751473444407837439747926494456938123704274833827149163018952277406511978688248470801873729110619162624025421620008846146111480547808727464996429943595358931477048050576211402910785002862335732537492257021925104536399568258681665218589626339230884780093811843070037172403007658443118182134277154877499566140975162557980396231969330719735886716844978260218976369333015388784860136531867138417799545768730366149180544462300011036602683188025890685879792378189839764565198344220013556797867888372096104217314115443701155170084735038775175597701005120049978807790753523784631866154616396710990011470302008810638682528681867834862825907540622791113288049386310096907439525742018719157393004113796188190994284590696386435693724949884576496321160816264647681543458076055812540300502627999770487294525178944538376568352889820728426656998861666153266035436158356702616796972910073870272121162668752414782655051867382127028165178756412382445647878993004880273164421277938328077914377265309630985291072912481798839271606412431824156448229595327665093369240160319447903659210206291287894427339316087576778176700676544720143158642678187987820327322814674386049518205732967953921524758754242915497694493410045021055379161521284779313256719968900970808592161246755418085988137129355947055535090020758420447724783491610581148524609405420166833496702599683437799135742054315531922811185849986053655944610161681589357329710198223915868193354371590260183470139989963919625463565395676467924250337160071466457845229246606702422442026130534326821724429133509789792653493108420353472708096381298134694281923870703909857437808988146781302392727625749971386364970075310078451802020624353601499653145019536689883242081624515255367897070705723949809871344590435523953273918376394721271825075325007856376136423926400062232861552110715966236212769321002714879262542756685116542559442079076738162531741854917667425292367188897605975228465942807094659427486664125219263332152808526016094835289409916392833831654813754427935217705456202111469971091163595751057906356411122437301372706934139466342498695923191892413894558868775893095086333709704031076450468108722930947964094781575282536760484185206287439524727349716082923572033073788883764816265066298561534283511995484720572615836666368067980846312167374537238913344412876348389151722837319732436989271830992816138290801211805151482753775006536565914503968550389755313903748941682046256611467084667481716629108395181840603968268745284436372516200821315285767695420485552788200882291713591020055395887502415328217794099311525531458092702676739231815340273755377893910171801889872645586557809181522459309747001337534301065780377765700338123535680517502744275492275294372616073857326365787661840122213640215227159807479692480766775267355068472943072202743156301088373261506771917835155984087075379127217970185172047792737941687684664997867042235613175867238208014897432505171019199665580292159999795082081345489491358823785997828553318483587287308448666009760098263023507071897858571679662896297313196097192379267522458514719677554599334634482760102954931798838416304693846071270602901636197288600761388519887129234045063881741478547707079242892797258619500033336560496329356230589052184600791156055690182322880065041666317338924612681510313772880288708545925610030940562905347847563485423989429302328843487644113771564326478028407785998961131955580944900890748480822444326948144956221253018531251177610569670976960308192244008062485681904841044463485375590740954812318649654885964185676400212537548073594174716356538341894118105173090326562083832199402815471497651578075871353988466116331810241343169913060160928712991639710249859997307207378118090262676317615086500304402455070631401649608229846763719923809393540822033713095180378777855356516043228462115340405941876823465291943337745767132640647994290866435376602138552629417188043866469106237494024067477800483398265741631689189577259056916709584970514726207524995197031815394426504132609233596815536247139212319668219417832142306447013176593986696193208873184494082910831815160712801607674135331581196227175306950672492257435831333601825632889244095294448289598536916375316681726275942077376522845044153725854378123253284793581453945065005885226938947936219050169089660097130436327118432410872205357760306953928891103782679574023205141437412965707796441340894398949579887756490566960038051524962970095426269689804035196667056320289836866054800060391480164635744619350076113370491295706270054000660848038932160139751090464036359606966820048282899468633112488503043992485184201390380017645443872001880864583908905427014765021489519918403102126207780791613168555882671252170890730987451829272438211276656797571661482328001750365030434405040204409388792709964360801088309559899585044285591000245558439079758839531273360281434164736346833026283747274512895807371854859049714381895737138689631110892758161994896712868623182214150756143195118134080324516549367837514673162576902492279689602161407135642385583618575093242966638905471960874890618383577960116141144016667975221385987730086066708667666620872056710145055626244182421632827995133390618676081928779668737323980173581226643544707719442704161980965214717760819614594793135651012541175544943514303890244655221468704560422073597209543571495405412231518658558691459173315650849655578042502075463645353989749125021924223656473694221530103461257581062926658451210471461924458597562011255088958076025577246982091986909368224889804485513174134772518421611241158842399320333385276732638800991446199727116503264737767331196559624003426999593068363528282516319760741337344257035697053819408128679739001839620121259793279658742961918318406980107537999297489169602789587989352815363545874397447188834898827457125862266805748202125234404176304010021484720243430052133556498067519699586215550224175976259936882276006662797505564213284231603378687959096786273016335797312203426069395180554339748345117114822888963772142112029009200436991226237356684182700955359920618985013860461672422960272972260127221258953354674720690467317120422431201640377659085413707992294680336591892954119845003247815995635381616539702358376174207021025948027869831773864509023123383315690322178087193604457480619983968166282322736320181779772660709164291018541612226706911240629562744993176013522973670001608476952040138665851548983921217316791060211151033563153833039086061760342160033302828661143276677545335695322130299683918049864974543811471285630720463517532284870554175080944899540905005946491514780436352684613373321387198752167130988972003656783260553909562846385233965202482875369838300705016850594633133780064588527085189472729807757123823212101450702409148395620269293921718684738084928175226225368375090971431330258332178409478917521312917695540367484613195016905691398769097913020361666164898586552598009626419535588816611559532341927451722357930583725872633760298523932041898010087539360829987816480825640580152505207440009406028955670483221899130998916766887879236585480044165534924463191974538525899400580402247696493975396983971384229759496512157779069309016396263041775665840418545964108283728023823498778630027272440906453511035959479631739155566719525617440366758782846908753229522575135257582311649861867196323085481251185472051402952919287203823876747334533438020705813460357243573490031957604511046849469894687075718334828261204507742187305017216496704188128920795827798004336300121251855857768513286683038264832042438115672591162557061481173682167935260843309256123801895694606766032330840370686752059847407711158823076218280007570861435551383820711015230559414846827388380575980377679320936276233031334235349058596100696449610310424732870524379671341888430592994995301153153982003575152136595837747336250026825701916642549581169878419355106067985841883061672799867170168234856177565030127428327842797338203817690847457648464372388779564086973376673910807780392133157761614743336132545361295441322479644345395985452980348520846884024249930131541895172609440082621488673362098975889243648437086888113766972168907105549597447698036918884687599470647311577186627079685469182041888572698275224494716617760564598933005464554820455899400095328375714249428646531576249512184134896396479568319048762413461762577322046869435388297967044795459943626164392222096038844178699217040669606088941369133146644596808718278426421189349833844077096437360750601487863336536066273589623239285043173282455449709206032831691102489792595853753211356070434628262691488343221556977033098364749717403269369977662959978341186700340076131695149973482482882579658866517770167216807823342122043996661290715053651696786760894595217677692746474066293064375971904985943994978503773888398879385294555283312015659258721025373511875829697436437002488962559993887614620428221869585123306371903813487690316511910964825006084059976046247361789529845709834765708446652315458305168378742750712180935725550403998331408437257081872683949320470784475347822151161762619743525934462175788437361061092189838838687795919067685392762416444709524268727444683764076772659713444691802972016243204475222904862575627470195441110030918474402349209471174778220483756535671909290079663154195083254716594207315960378058117703209294570556629677341478546312970376467382518967170911339966445097460542938635460380257355439085224653634265809472032593806437864500699207124453810867378748728727051528462269565400985101899776360351898359687193211802394129241371849576254853216041712409451599725017710044349129956361256155270052356020988468290275249435147753408274219890590484514573443130390966256320229174378020416523917122080578419353015360495206577258221019525959905003913471489499648283997157671605408815148383070991464087007361689177098533401135718306669801784640178628466363175131974996431382464497927735427956896627319361195329801138673922063324793220307991952485913990866180023578963487812198273891213402406134887014859906847480045460006363284240779850127357296806981205300700859850449572047451000770473819747175401887031465505770143316062721008857469870756936000368629118644219908654565668308743562081909206719012842246113412816121418691317729535157585576551021693856829567414264372999639360905949602909312109422896017421222499553882134185873219796072340990407176253926762147921952272772577847607285057833574034746583959896312334426296601775331369038534487827216389825535724654213630487561948545414003409001745376274499182486550777073490416007722436519835821548727495455304443788740099501037067886786022030263711242848777296663621145586336219784161485512120969865195590021440486430229084602282938544721002688213180495868022479277049096201557314015588171452624470042946677982267588797741863958060945511032144243748238105837030770691269748812270544178353762088225844354831692788897358939164539977657146870667368935549881936671538516130242360425821831370791244688171995872611407401416644006844781276940990179679057398109212948820951894571086288154588545759595508620988000821185351900015035361163084537885622955859907850354982059842460818086239105429008647214758925480978542244188477318217776769758417598710079966847286440004323449683467537078979186528268810016344937463287369221203291812095729664083673029786746383890085840157750053409862406886956720797840624486578935644538305138549982019772918298229428491374345076111378161408373602636741517672855398875615784141452380206852552763826755029826535837680637962897578741819681380053257784559044534011758105107815059587269740080649028831539133106113698343135460543673234812015487357671440902004790693226567665876297389284695748746200958070884888519083703932185208247022032869246208446469061154677355299465532392135133429285408590793471729009700066757172022980568679907083312287992107866031306117100029495969423068410333531942838704445700030680858192929103153046544640524188150665461051466289237027674956927177396702377784599367190023661686622355509907286407262284975059073746608292542431264996763008703070271481273075519862715830517556101144433470158550272725506070569182917800335396795088212319126412516967504350641305306133056669898585198208949700490981943591565248293059323214883639649237077395031803685969717604940022175101431650645319124010240652902048058428807787432488170358657321478554065477831317671784935782199414071838526594881935165287590172736917882553618308283417935268956432689863171898886933679702095029565868044030691109549229574194469541283620410343440445495175461528195743504397286996860121539319640935908197233863958555523144895236487544279476700080982881209409325412741938479715950006389453737367446815310057954948436544174978831634159171070469849768669556067083116696259656626666970648794672556858181971770586224308931938964151129911426695411213380541548586299865658570837444871932633523745289087367069736216945495074919848474128091664569811342141042233939873057568561805856003997929313439554002696373168764864344103580121585505541029684417162931203718976081274164401077326044063121985246500219515310515852115731419977034297842722549172435175018892232213747817435962659445972577572686678572670188628080595138316554687752670412270764529525431486750288961088972180373606700545101483901551776191747861233539585191948626566692736420191847668902147977111341112195240311306898418000606028255403138862966404030177478072327115919142681353150548627328498148412806793355594940556996457815390252908138434195636103043851114308754574160619272398729769407605740444165463744356414903077780079306445865940281390498901928254578053240846496842652090605685863257054759887884963462025124440804132796269401503203513109286734797796207924566246372632509646678898684554514969225149355980307778341056520321686473877762240718244378571716020120282419939850260981580854032155849845083770683624163955001491617010430020381510023979772820417565952058935090637751080719546577027321621227300449546781018998340380949744511960100070125685656765278168504942399028471296403095382841332333921388889406914972224713982925200182417608450409771017792152836333926671251264020821435848712917249351435391337384598332914634514007971269378811682191502131775492647258460330488155034177193388290997723040305514824272021307775036753619146971763825884249433818511829237098733994646285643605141329392127639989694243022803052165207835428478014178906319414149116523556651905491746342046417515575618653398647644047463421030644593018352198162200800395316130261394163496249263717329671423341643762308781154657050915894425351743421570650223205315399863173410348601300420150707716912728951459690270102430313881617104993348852730509178554787157874677889318704593207005335306995645940475072663556891864207937386620351282620018021273132884222411848830473514004178060926815135558739061121593954217805774732764262867820500736235206659653542382294042646816438236709511701311604281433888673228321662982002064071325682942354441503060733616751219484412246181604004878608974943870164831334582998230066282341380651377403453853241986820152884311496383138253160751444890997212036793195604724423993915791609948349522544342420746563175744815284895170450809100969083121592420917787632826281171729011142425702935723382886762193960061374574463347255617802398068996314847120927112179885931061580383027776085399914306159421255080355362294335285958633544550232594760606985386038342833625633385156860471293237541998961038721209092872645970137927706814185765204654191183391600307561543601857672274953413923354968823925610073146700336812420072437468674624691176366005415767669907492285251245495349935539645476873696698044875574509382914460768430021232470703236874526186191676536817647362316455639420546224695694654235386996872126567043597753574135559415857973665813649365481460296791589192126484680629315492715590312731935493295210903782984225888619321018825378937700153157392245975574687982467165171854383873750920623226544422844963823633240653457687065298890894165726624004390625935380518122202550372802520494149772211585634837295908120700480465472227086256531131009477963131450010793439565677026679049158457176918809420652357290761199595947526907201896677042797872317389745133260125970845833995501637873994247771296501624287248848342151707126390531571327127815394416941010048932550365490590028902169694009003584620389765484848667763708189753422579970030533647151840433609365212759798278023147752789544187431262269377246505009599739918295479384558153498493057547679980811487827703440037746913196615183457205406657033484406514403112972241120601987037406816425681067544282852203270820883482795213879028100750592107355408068821580678689302100080681094317786276895802436449491491598838450756171147547357024741642254637852307823123853242693614782758057645923790866230065992628161555147421437661340458215693486548996510237533498886340242383509801651184602539585592800221071232476958283368322884972459902925674233476578311560702307569596172820764630976683634575155030392966331105897204000064780647977082048508474305023624490384925447970161183088571185625987295381938963575566306881542905973766103760679479208488066291151728332818806889584121102004599917676125102163763011011748163059619932839608048643609761143828653411776326392197042945671692445548091645468436246897145525548664015469095239576324478506213012192222241878752041680527100089204392628766643208677976605461010219786790169568779705759282226413854413263342126291549813527843540926615460300331333602316860288578426859048229044136371334344185239519435416996207626487717374953093603406620179129621275802736914026685089410474997887674901107955568952655104159434542783746409818088590139327536416024042358843541704080645105832282552446495944446439410150921635725323991552673586707173121940525419400091525334239488917375393405783436565767190673805590217174668123624799330045203448968977395139924181434087464312994625583281982680309273102751212389771793002633053695554888422106703737597444100092965381840586530683051108545143054136649737119630014265905575755918107794685673980911583985283903188630552267929165030364049613015855759864952109591355958746600137182631394929988656128958166345715512295815141709192904831163245104197686535909311696412643615085298057520625151577114955830529397117248147554011009400984919737495084602131306023579048328079236279297273511794343796575860659493766718802842587683088209248339553311525811165439520140166856139420660861614029291816822261435153590604192339060910737345169602631277883487091014818611091303043037444547164920576656829620978884948165142161084666013982543364096352259871132086976083397018425143539788941536764584274188441607975135340115854847433052799014188515645718887769609598650606477143803710385810146365814922000121051590662598124675759290160172581627665437983290941801778780149318281468102436844597188925714684334334116091595071702178325197558832737854196128610999139306344219129396652151710542852416686433269134175452950224862925537985542530367868013451754258799523971528766180231941932652013564604332263680664378368363518359021581402120874631390052081234631643039861155291103729571071949260124958348595862944315090323579436682569674091955493693593099824409609160757645913414296091075711583646966886994510479193358690270308053366751443121761652949350741747971534297571222339399166746244343091077956777467004791707506275861134977398095146515209487891903938770714691520376667757731695865373211258365329166876438953442204517021555216215239739661752707714636461994584264640275371450792164733943064334468797355094714686821477173145042151534192624096362201224371894430157496263719176106515296043263360087332021284550126306328647827646184472518749541891262202981094021435030441643832563801231510540092210523441048025818135688660257608916472683102912606793005350064127003160246517012348673571765468528696719173286147496609955295238407188798609607053330914464620319075176826987024030496075265043961123475187201268710071434151659167582670801767224120731133254313292095935249816058134462013794381020884164835673071287919572392419287377873521009009327946231131664966784872270414747038443547652644229642516817945207584984611113868082671498070285348740619841128682677137549523951251798281181289464366549475705006463439210992788358681804739949888798563697199319480611588472995262012193582179623608142256011997064543749085228717732666254167509153667735870810037281338663464401210425908514715888809684560182934087703180850155790157007658847430430933043589312416521351006357806087759689738938920542439905258008411750338521436560916928332080328673946722617404046651555777454243839675193894238550347619436319066179015908145686065803171753608792667621410687617268586255120023315347428005941291849941488152563812250657384592433443239771977070676786047907326726765856443203079737225822217534575177047727863410524093544503452115624895378487412043016144142938714470747267024279929768746714696130419437154010543079922211061352659208641740008632048751214118607109049063983773706419989085167037353197455205335630363207933188762173368679842758697540904879993959576678328369040503932789794507956075283863211603635103026038651793986506710305843241362751195259542289082696849140234984074280679846050960448505468061272995941891491338730236014514597963939652761890674698774769460303213568649191646333345905198484886016907885197829623065160437034512488056627495226271183930997079046681955334956643613705514154990705202672186030684709909812306125155945229777840851835291143783682584041896504955973542083264597761755167323255787362223902324387845832073359285828277170759923131160821018757884078668278816597393126594721197396287973340633215196508201528127562237944537210348234154704451509364053545907550051548472913804358717298875297719196328837978311995944537761024709241079311895678343517480247058421587461546938671087493447162052691084285893195904583911476640436481833694946365462548827432212749323209588520916522628698850834408521836905373613409869998954320125006405079077820586020461716623119604620639909821685085224399015684798623311869648680262945681027441657975539384182145605746472365266251557981981529142216560587307367143029103771454356568917148673050548899319971232208891974957527502309016054004464133627392484357994575818288891908101199458107580942467909870142633133823226435745515700323853686620432658192840431385940562728890345646181789720402637214770518575464055984680137599054607743522672952716765087449910757265423806346591282688949029048160388355732914414025507539343974247181838148906601679275397172676090526007003015892063542696219195736191603571414592355824017888014416059225674852991235495764718903495156678756253389515070598247399944979876465741071128876449125128451202480480578562582656359473358583698737533784786930268666765772292112183180333370454327790496975669849440154878034689125503064337198704533060665987353665846184704864829857947158948091416189997939261206666547704362055344920115894217938659298976479623889127002021179737677577078943223209204921044390311476402428601281798149862227305128691913058032598855880530863245944676394836842921040550057271834037533300500832901561203329261811050071292594361291690155588276174147936442606329923290780429731476864133263422067279747949461534566597293930345145203153478895029533705612263298145609159565458358883703908967074216431092068106044570822435278441413074987283231342787975685602340617049141137940603658304352035597991471866186721738570662309384967653583349801959360401742141722214430031818874563399526810364121721459787479233306729987573588071591159627039329833766734928733071516543454118671757838204148002315297356128625569371503869265759014179021660410683318078085692936312429973886845513130995598153633722409321189131790514921126349702866154565019639839989360411616813684301247575012618722723056877792177395964760643667264954280729916883805064222196037546802471511064334473487798111717639441168957488140046395341924687263194565533648132340922154659862355251372838071975236354854419102141969438626427883108521562715877747234917185342147869870850009579382117108737435448673127986902486525853181012978410746427106406507790649235129518431877138954972509886762830120333393649728030926021002409230094567653636992401553841763645462287858881502448501145858712251203838066944487657543351263281129433364325639867901814280455652054162016386145187755721570687749294076530118407904788664038539558577127298163227067511782570047773900186174950721830877899184635639533239186983774492204375713371493315895068751356867554606154734124025995868582364835940434269870037187398443056335791600755761320016972268034129006603493822857215783246817191394278587078711171133778546360235008525469774250632990073909140828889730017257639472831165614568191919283490122296348578131771109174819458752313145993922496516633128557182343050896299048249634210158069922768401385060002895864586975871705526466143990079962340939913777291676839677694967584883796556275664789000207517615835405532204935474315013747788456221456400487219409916005038214376197304642484043768402800892523409383505012137922833205208086522217316174354596960885607242886917035216506732317626143084646015235634629480348563218169338606940272359162354895545576009247705659037209607531852259475694054701929387422234036305786940270533813657432211905063608613969047959958780041981911363618059733008624756564370438138797808814409806782899395687240567193734872472793265680835257811420653576568995362402622708054143981861708031186864596236449760042712424045301154997816381659490120215516719361758656652062870971175087518331939847089354282427717206740868915213701329809937734646730110019679413337932231278051703213468262728134900735493082095992055488881329485532221666679237161709172823990467291823323242827929565247910575938524003514408582936566379445940346825012103651261826681455423233765181476397693751828269475342793682730895500416449506378685061919973372097570965556429680973594287228267359334805958211557955323211201346992064413777234053345231252919845472806438836249902085158810961810610766008034181777466054135286231443767285726779987793676525202219876938343822905894998288394498034868835521749358696053460135438780803738387345809971176170490928512393924031482043843170147895498838578312319797756732726322269516131654464620053320897946868357433102075475177287695810641469131114424422853656715207186243498211369073496283142543532359393778299582253082848581887729261201876089003157997637921230773131656201750537812955737465555567504730698864506084811108865986697271742854683191750743748958099297604151967887460406689078074124608024186119622858964172669997668022092511922263391167369289401232335268462166282336681199713693216175530282088876031040078645873131573054895834120307568383877979764637016366387032454600311751106438052319904281834948721325296767117920229567469116087287937820432753186291097690125952852119989967129483836330602539563124178466776996741734392871624672690082396323109306169830356798607554048677441916578665029577553744657052248483420269860587505523048713052127491380307406898595534910272890664536340231240943003134799408573978555428339934196492024651079700801279136714950841261376936196242201113843754727817720033770191159603669047090379364204727498274849583572910619039390047746490674180732472045777826152065456207026724549341734101960739923286596005848104617270614486386131193502527057985595870701061222009422017779335581780447007707782210617031789425130399544248566287699633335409035757665042278316972900134353893039956140073362474817108870298814197372270408575560415273788860445990892727997565011856618632362046286140334603223496369228539021283204475070297677077565253629141577027928509362362087453023510794544492361708456949565926699721425645472182417378467041555171628820335047990843852740097871981296035221129005099289716153337801146827136571972515143982530079913384933495453078197644477264533912551521860192466314112645121363778852305294025766067789213936704796005546880627948466303429463734339035143450483205121842473651982378218973708638609952325021295593640162849549366023422855087172345250630267121349695037572325709138567212991694655984748076903001338753805435912382214127859569406924931865444685986183123205585581434725181915969808956783286626705347844075360036936095271489904688479908299327147751919777181476981814042637408096855636351289360443801979792971546084376925676952786863966774514313884877450958670725574021072802363520258496687971739800357154494701762124925439069886413007685842936843124942931116746723094781283916029195299849539669573493085661625875268171975139024622457985458334650064823904045676249423448988172048182300645067943801827190735730197341969070688289249517804782073857833998305707335605800712766644675699946797844921558919467409422583559419183960224499716575698515517750052090822822025081069802086228704039044358398842391318889400712331169531287780638160798683307012346388586975292386565766358402119990480207560657375178273355085601665113811821382067993713407867640860339899263489129794536455072727118409460729065158975488152916173145548610941403333154617038535318099781637240310784683998632009425738014748871501574356292357024393348660485746393916657034108723903831974938973377113117656670873563611054905162833594870731234052466275207490411572895418974013571171439770571014295176633611852202069169722706233258653439187721195320713068128807362355529984297884242717631085109923351451448361760814226195782529470050032478225004587020108361160242945547802785182801348901857413423091440333268650552893000425134101022736293640137834851240599489388192125692001322537154294313862845433591878616907367646763456443872361807627717242313722211829719462001086615880615270855373981876986783416466048992035897110094099192863331921973235980138088117551362185613394519601500484257454113767520738381511818107815935754384458615698019418668400847635219576131619825854327297071741190936748675032660038058012093404896074943438052797931698135422182734308669338447563371908545745309619207801116718346399913631271711429747678953902649752304896052983536920991602681495419147879560416111833738745936779741302900790371692611335948062890502733857022347000277663333971031240967900368691371308240634280228751299386232009789925427592722573860327643624767140771596202058287534156312675882934855682608159667322932468146397268742544989776958935133992375665559168027231247919653758191406056890184726868352675195034145641624350372765605376633287377320647634251556094784111585992860749381083234911919755821234288134002434920337098094814441498336115755915335049825241765905574896782197356631672790647825683194031344371627114597903804283346469185997140239484906617372978567424446057158878900747243619251545307579221750589796429399987621811325302823273372626898782830000500586690675640961948158636117611115283627328044747941359652633646945634738715887167631212695965024122716057281720791924359461883871373621843422566463542613070015510884282594250053980046878094796296067423772629519135105532534857017602080050338763969389844354187480251973950363870518536429660795313123470059207501197498824483271801280585429672995963448666287005312765678328556753844193581745323515165114092804135932563971378241618896769082903489808062826696582972661240660242267921272139389352520362425443724612164567055771116959308556119602644907422755148903348254465322349833816633887441651115138671896330480597216150215119464077708958699501774174085096632245459590764473438277474446484963241610632415486643483741798128995046038156586763389746974167821663949162598258658435336454189407991845916257176204690008322934595903744538205284260526617005482087033156443054702333403111500283574313953213524632013779609677725274116999661079543482034091431039884965255511825959332889028054534358045337570111333573292171387241082661106532769051922340015561754226933528732100865670940104845856148945161124563657958864571375977899459827883796712764462992527906071275752268719076372859960734804746962060049011551917795657601070111503500055218519500394778378391662456814934731376405309616123223684657992489268455406733740062653116078160879733787605976783922579448489208950209247513882667349148460263771341843582793051230295305307630269249287902077985124345511617723720107444327406703244442329317886652008063078675432626193488963288345275712866735917945874179932956461455856114143875896968900059629830700527259885584189320512654118072609806913009817804302572484155380703326029656068914615681237672814515964861514526226189771798062062457216716121576667542465552875508845841770814423782382187626395029366768362929340189098898812582756983938955554319156389794014726953693353596101438894333332790410249325452188912379643350148212446848442746696733514878049336629141219684281695021140637095022500470773437751990937201176534686588789371034104401838099899750257133783929708747556089670472530331846514457165883500157635541710168842341031710416630497888130663235330747326934567469272227797753014509411480732122718866782084332060672798578626058490253298998913545062950027256074572733398367925481218320740559914480254504287305785959813360609528410491422350928571972140785762723897944160343937973112763273171247576087115776693185649567078901177245715135678247843855829592528762346605698441392257302785814517974709548718715444564676917963630123220812522738605523022810966775924632879390019365560250094234803743055878877149224824948725174012817045933427851578242929204675563395595179258380063957741544889590944671091363135419010688973576034181668916906039686045886546177864778105773112825904757994903634468324095596220628727966568544239243058417530161143685816822296771178025879587435729704790779556829516260577576662309036169822606983865199141492534306890984018349579548683098648131080440850850721152006501898358394477901849795535771493064118836836686123080563786330991023877593396080829575802666264154060132194682385325666932815532197879330365128728766887698710243367057632454279717919374949310979846783281150499103824715920283559859911334439926842078274702576675211013819581366541673994866190640855795747402731698695601653791256005324301959089075355799197379149640406701715034820398160834370525380619682502785440880355864884434640483741472754299774057913799463006692106529391514338094692649688095667823549546674438081707420813711426169980190631923154880725660776579211606017342483059395344786557857231191195246952650972484131281062086228805177040364146892860662928336653592842416636954252859545468476987885929492405378383967062855621811162140333709045743864432431556499611308981755354986829087016503345577778249983986200479149899190948813376086532719992303379644426078138493818514505106583387695380246126357822905148700355899699228038697330242580756115797751956967053950799475706979047844646580122882922235368995366218179494140050554371238067547297367573928212075772985171201849418124714300047431999894265958934219458891583758376870819474083361824050783320123575661614863953289356134502074905043547406878814292833942868037972958964691487731072289993886278571100452187108991519534083122784963043977036778869397047140245877469857810299591259210101862958831716072659204377081581955071863017272463615573139274789934288465681176354750755739922558712551552044851325206532808924472544379168740177990482283513819209709759233248878780578998636490204101895329726114608362227955037490280446305930400936704710320654052577440713836021600809658016045061908006741520875490750879645462611540083842750063464418219824708137983581102563508935803361249464820570239586106343251038001292605119839972975457972705363456963438905919591820040908815013516068370870391640568833704451758614906156033843370395016517862090569151895271467272103084002672003759581713033976706700865836639913546786176567815181290068968178696902238656957074549710890744790537396800794679489936965995366918161726599238356540542552765313670657400519050855922256571871444079646974279294345776629088399851113986320059053212903795710839351209570721132384905577539720681974511410069573442622682410084456714124634843465461779749569173040309877165494541235882614711582500339707064309238778926539210263335144900356768883025617223983502123439217598367824244393356177425315399891188831523277687301547746332520159906926439376093904031666357931762597910527495915783457939880307488014442953433666873409127240182928068024676546816892053062330328919430380508139186478091461526281999305908598260421535633301463908069120304088741362116353583154499313843303772641831798899799858619329899933320492744671022753338992018315658432128615628075123641322890362381248372584957131688720137876512902323942571651593438091887106350398501609249205246497377370773287812885903193907717317473102191642532163871555110596125976536520482992998930875711498180821082529016808959212108992826028416263519768343108931762533675973883391695394629943608237583546738675567719259269018802455861545476874720824439518944995223036417229318295508622581683934236699162406381589796328398911614127629568437227540933313334425376848475936109660708184252247520392053751966005320462995625904814177271166813936132240808702906925432138894587119718621415080442834007555144776868529256125566509952660359916200792802295494962522567356306818967938287938512937814080410824027071221007780071959182014361625885297480697600102762324769499474019372074308663754111503086077914971341990312965444560489552211670037861144812949475885937571814136394742509653703744975579549648412293439271746040170766819018042793586217630081734272431885488313237117747102814176909930520498800752178930769048471701135032037883633440513534731827234604035039271985891607326803678217065902666156825620544659578388775613586980448475161288641724829903759889620262814732348655671484454631050689309262297828888037290441648537001852614365685816587053374519577069604103964435435505417732439205082203235959554516451700121956263074650472063028791055689014604969194356219826191629234642431898440849770751783437029499868323184766700688081447062456834297317289589911313504074557845832324280070857708313013501320771138993937824249312483355377924338783141240343673832527953237203460493470764681032236688016384902787590552654607351671029413167951270077836357116844502606136596722233145436038222177763159982046822485335722318582186839733938390041569455488528022064870702394821044336473019923689774946917036472852070379908785231172281398992805150312703678420026305704000759519672526688070645677830411999779545208788483540653934122729345752837965324258560148757381977273759809534675846011561476646308319344917904158907823053091647428018740459520804201645520706298391271928472648279159696605333378656970858191316381529482832610894078519393012511578473266051269478468981979526971265124509730433427224514940608682093605827155209567325858254953075772776124356139032555694373284922694422942482588698167124262857364185541525007495170077041224880026588564681270918940083993103034709063345882197712430503871954966232495359005032323896076958322185287836840426947593107812141880204894331722442492479878445450369529277738167869248239583964272039255716597261367121322424979953302136075758074270121931230914080368811328332452234594668242746628811945715043981409084879001150559522554887276186004339334622885661226996839825535511066730875488936913577404111405923837677982795703425287698576578700977962740332691961505577544905655570185755682479276773337321726854434323014715111099514332553386936920948980453214161037412964859201038096715020268795468465754094577016912859430835393763233185292471633602629057090724442409763384560691746194914405964677691411024494457020878737237039844459098437212231397007467907596918970033535405625242391505960652782997458645361578362436473893026728213081735425184405907396517708188224914505746134196266285388088152199214917921054391588407337451816199267020034112814701223566403054004831772760837943126675919983007078400364264985393695695227491716044612390989328411276442073325377388815570713553658610266709323115411688763379612315928252706377829431674474787774321941559877314872923294352678123618865263297624697165425768457943716349712768471002466892067484997084996358641312411523929139438679706506255524831818160141242334948784528551329429224974418587428417319256033491826251739011296214687320486615596855768541857138040284621178112184015120164283287802244555106039877467142156174927068796951636177952258364191458511986690087361205545673047301575885768300297000482006211656396493656279874869737139250954790016641366684124884871489803587467298436316075429009064542178517919605563656653243456006427751238698553907201726053694752985656800971355815487098861877233085936784453457102786767235589283250051992380004789637465688289985886954119808564024720867282866342052304625922241691046974844670789772917669537891742303013013381174285670293784240271399072650522782987313476798085125443500808091139640787954903608491061844007150024700538448043297385160009947725910656402133310114996068929779741491100662702330275413624304755889993965261984228767657738581577017377723564720463515608151054028820002612214596828471911023223463968440442982909209176572626573710576457965767311211638463759579491829117428469090944019038816208406923931522429214695061812257199657263902357272995275343232462452204384266850879288734492331872025102887992602185258662159741346462594560983282261124939970867356647217835104543553066080131827887279072742615453836437669666882761968462018462566750838185753246149836728162365664296934132212355691385313485669503640239877124768824346602082741652223501727920081184124737694221927471808756589872500584630095870704533303603770251496862447100330774003547368254404712745643290432060854422933251250797096724967073432468644184182274488592134081668931095160207779158137458854111691420680564583815279804018368917296020431822402797782937572809708428938537192891507167968274236984090728781252089180988397804074170467001545442116080110445915469288473747565837426014410932249178541048800659563606257327483491088005998020547259532510970817474649839612818159769551931194636736207546888820300980426986067263245828305639818014765053770229661537858983558591531894723108903259247707675580809105739356101277237713268418872954269038316088967867796862534599152472632709636397441173474502886195491393712313761261651012394559604846327541242581822887440290884675930773128256637986670732435841630359632700805802597247468177499331919655037900705232884371624586082163494277856404194787442767745807738129380470170374503460935822700685909496014855710525226621861699019529478529068891995302081969065723562863453834848160784224820068954788221461009172167153094111393904563631572368032880931408934423930056179110469269186215948903192799820227539112382379039905029281090566655438996331319239788907829008366281054832373424185812271254336021757189545497920123847483939707875051448921875530611832063176566929632869046675730150398949318121371699373741566450753084799497438049849033774542950599525757548545368864325752208443947931720421557455121700954024164911969275766698841769828126900986428752652089314591087530744611226624886792500618390167674016277656001071379245562288161801058539017776860777619813776213599702101149188212871826155773607304811333925186898628236495377007036491678471960132324526840961972984601535482529408096019216707285279766967773924448069595371570378907502888247309523577166781488652364645326867071117711130230033296953447919883939937830136680089376789593887349141408714068013719690264996035334869167019863262814061388284357894444626744372092723580452854394466416570892084136264047669445009096082987823874610781483004939269679952075957364496492453825997015075938069471987366733140075102679829039843752237957568972616428268773744853387612782589268418641350874699359644734206368365955001412806570950607045983678920033368178257323986548053348948908214158661041573562185306009028726790342713548385316995314889138585431024575603833374678011432006037385507285338002418777317891267408773617633692670325503132176779037684534183381688362461310820203907290376343270049061302025306581617822582973494113399871610126416353572756776672043592040232365314297148280450241037967066613066530662342444347529895866885296764249878896029623510444586396806890024453299942818130864045787706165213582347109746392371312860553316811105128042056452285128552145837227455189869636815259123675251104285236964070066011065070461854971106712601281226803580424499555213243926590690490013067201869191718644867989976679762517649182189936365216432513119074569375621236022076134430463279199636720104591171625372331757718443667522948502860069086837005340936216584054920246447844101977222850810045272950881895858459580325421600257419467120789616975100253809954904294672708187806643702107582655849973078113415620691618266480905196554261751537152430629533368575061975247194382297540640696191172266433781977000610201747303256043070901245658158868240734007576640129451259776212386862720359430420252662348447412146009142295258567625207118179888699967812912781439662769155408031590914648111618805218972815278327228518520710950347932073146163004069042955333472551421547622267209867419433109492206264319129947620343353838621049528465250948250264161648012345592480459848246966363117020208049944299449775176827768690346564820178421997050393443178191500053249145457538582139387125573298138107451699723217284472699495480557281133970672672618891905784681232717942591589244626856301280543250645563014050020506306276994866613533906873688666444312774396899943104202696315450987428330705314121830223944327335955800496719799900356587159559935890680613967173671299891493471943207979478299711728035083398271487851152014729344196627857165839825675368753392949796099332080467070753349931060132544655876050413093928290387124988336970844718927884233081453378175176003737636461144033515821586811819924244516160570566157680520178664477952484485829697899268616802141063848989973721529789243455148712135047805188170420280985496739714184083620666167304455396856846309698126401146840322971854062375633524385844766543765649695606080586874557945859212817077939068973739573629472856974039413282630181553566789970913791152161449035481523243571142918809636747709949353003579735311642642998339718461327440455037134687944848939170529404263620768385861918237868333187374698556165843519725581487909557095529952407977503099123610718090517962786400133901509867758503961502933928522259959242325553563995223808314788786399153069309488508228798218677082607951108158091523389498460161610289488818654298022003585420843434606535559345670624875415730439210626657092463204765742272129754114506545574013959436860601666064986003849214727652333370618311489875722361171299721404462822883752378277401872978288688587918743537858599682564118112716828661313570710724117062066630445887717766044848945936053817095395486003103255945771975144115334669743042329073265929942854534991876833037180482636640299800594682492559465782215904142088175511865295917590718332888552808390094453129215827123961912440469256224506445748455381323179299399386596505916880562045698330889866534558397544493994411201100607876477586892954758634242202488576076795745624511164085604241087727100342031868972206953829565988963629712613351243399369150611316755743098555287174124903815414648441365768713200844184901819899592613568435556971292821663389180130344358751205287377926739418189105959964761080993186667983447324913768100173085009528416766781690919564037575113459234823616312918053095278779131943849749543015826899044018077581564535593361602077675887761606625066599173423381847048414986427394390666929693433895289997927829738503961303009612399158379794375891289460275411149294537952699498859773938722506397354812771411669041529021026658388323693875061710860190678965984833808711666175532835676329183568201106030184473009297864404186029467535826494788389194545120026811440001624940348131904105789220692594656185569182910444152536800604670977515178944335978296662582678725073307675558855797310382086649880686673672388160364680217202189458028577977425157917532684435015507174894005577412043711397165431453691248312481715613675178072513282112825348577924536801063278432736818865108176272437202445170882675933335319188360780330337788939666564458021778094643029286412351043395582625015698686235023028808273749964711542589835921398430924771875496222719964937898707002429472924698236109214842872321745448198391800881063557747610525150580696258027391247852552957207460149143220945645562221611674677806945015691518243652702591776385976791332085656774336665679793655225048818124597136938286645708775139626833058523783990909223651871807891691382465133534472261495779731148120512570626668350540400411373767072071169107597217822170128031831005463569606045701377033945610237374279069952529335073494930148348778855479765850058448278349619465279207590880212946086450529970449859839215332637953150256703337363198893088654633480837924420598530525522394978177211450179689778740936683336009218562981696167918279668892745818103679958459545485437022994027895624748621631156221235183292743935632260613810881917712428575731018138005056639836497639535583590151677652906995449584039241498921020295239003314353374427307750220120816342110705662694088130492733185310331107724688140184995541747563402784386647285500444549874457393650744909265520278494369814632911281396634537785840166379367062423523272747090783453782208253581392954984419529450909340475317711165312014711106230864144534613591115519056801903294478107537007401177256129299128577112371998476281167540140089788762966295782415766060458082024722369512615994402200273240586231551375897653112888727790563349856389732446368122944076882575321681090163996585083321702226707774820299644738879518735139606623614792539346300836465222862628890677965733656075846970248653786504776874025187311561977869850875250489000455597244086058796508849719729753278701272267315367255778660315860179484085929435944769120274043869334167951485977827281658196562113743744115750194131605516565301045574053741612120260219881466478362870697876096190420967165751995030448356394419055550945412619879799706825165549788488116819138379922121621537898664235451269103832821351534912306628948835737583582695426179616848140716213829375468807424231072040026580544972253215280616529032869918517198910325572979711925335353766170460871967547573520304518605454189928653850096384872082790735027683512999350317426924962490085821003286343886484410282597372378653920094500658226880177709095574433128310695885258828402092944959140899240039123419040887047143650684075742215534564880492295826753278019504844674739954987652198610485436320403552228444007625598757542337101423995445267209950735474334397290140815788340012363250203319241005504842841839573035164446826426158132868234992402029276615927311492070556914014336036307717395642472648359177202950519160514300682456936964358759692389069790616773814455792797339683307867022172396820410568923223728428715274689126824076958471308727246540428929305628550768772735869503399515764943318544373046263482083721518575626335285116407218760855615918849557082374565225116174945291551537813476085033327531423476711800236252778842204382780638775612243777614049755261840474652731513062044243383044298718854695225066147611135798187298372735032810056868909954684291136307844217504998481227483314203276121219689412013623842295998774128553702015550926831509665824457386497354815247751709558036240787521386335807954155955787337084708424800655321055897401404386184984187160517780023102853633883921019807141915308196820528861021911267709705959828410523833253170301564354676102914574964725259312092698136237459308123065605344866662476911484577827980938195838382694407595150557541934635389387186572669163568323838657700431495423574599650659839884733015440062005683835989451936546034979466638194250962312689607539211301886294823058249959429693230853547015343588598930776769967221128639588076671606288850708093209994249758538016006816510192419133410518384284923973697956836888217330984762031376561762928632477598631334506460577826561809919377192749381744272581133386125471579961899697028887765448892071644786634165523278880971962220941454332765463430295162733251742101328970472106560536615395900910704876592876873939924562073479278970796822194882558122230886884603723445078344119108725913202718416342772465035519895718114986219549395014199800099634315399471085926700620989083842669349119867992825268360707519083929543025631970111088731413097591356371189595889848638761574269388591822240468768107977175981738748669963675244178227705314019935289027288717338589244362825069849840777659802728595704719753920169514438048337084107121093481244308459981244401858930966338889823062703026550164080728637543858038020722470418892520220465031017262597052109650820890592360503876741739359780830700853027994288777981967905668756631631687544738604111339531805238048129143814269743126485076139504248817192107167418977875197431008462899010183380329134528590528757407038301798242138748621410127565604932923365972812967575558015463998180065509248537326397389720583921559690820729151799565325089333418578635620446807465216533486025374734421518402281129973211354498943248419509900031089839057576673939642766604998832572490037651533132000522428017160436981075437299284786619309049962633731454365159503388821595208189832226338035891586925249869769848814179924536388974834434817994328343948329089250612849299034249990943195475306858747894736938327529541286494893827409060399941728149688065684990375667435906215336074944368366284446176219011970141254525732390050846013584508885665799011923843249658100126573481251227423339322724156324816529956152809928105781815709970484099171090469969830720483298643883412828830779935496997162752295235880504966419168422158876648155990208537760590558700192138611980753316956355121209527220309414628988637357205398601590308246798290368646315942558201006669736850609526626310033723437171966172716090813466693140603358578984154620599590500400650924210803339303809666730071041155922817792334031471852745173272630630909372894554282009629113763123029044163175773925283191508097753518759419144004091453257812687222650898584332280533727895812868913369450258043313945610392296860376385976734773546207764073721087517882665309818261260562288587475263860251333189676651912495563411858742706616179816374247465409485444532657645225158979670441512131200904853621140124124311750936737544095509034461597676032100073107253283675153117770954336544122304656129273436681408021556284630142484457763475262202548791831576372190521478531111064054573757847943438772893761148459063140279624004644115268146053200317094974065841570656997621222047017097054829792435695521287723196492437927560581605002626034107736502132273464330635089744221085095659504051972229414539083905479749572185597443915585998609976777874283909726732636873334563998391723492418182362622243240282272171337985758200580723554268153358508798802975470173258352293726620388052572192840583539519225463296447386251874470368072749182677983254317451999227804767959718091118138410521226785191499635159069603872188375187526867057675949460727771871378286192136140776502962558861673850995733867545414704212718299715833687962699167488414284782725666572986186904525936229314531015713159725786083301825393665836998650924616690728662375723971903296612160545640930778108671270383501547363666505572914386298280442998085116831639237385471694810228875657419108937353822776521710093870959151423003023526287874220981528467915479176861105013647319669398194826785613796378242285151751262222507995399684696216586078188010562528788705503914349544941021627878141396207494647945697938080653615708467256395731778388945951720254159528254044129914905675602455576333403190596983712286420109586378375360172190708037705841797442024200944108177587014553751896579513284327479991118794851632767747226217114048159439823835358420828765761031232608573011378227997672865096924008459511846255892066676248279538583683975834115960176701963686923416386464209577269959151255095420407021031675508362890553290390326199935025198504472171332487525853672574818680705779570079275075003439811116202534803406937156638594714832760909189722773795092414627591546815454002853877841297041919063055312127087256558965736784507648598214031942773919203660924257194247189152467120134495181129996750568138340024094617372429110828510180172003635044989960426089203373826235392722588217750636644913003408090984724118747620540954638805959562059931700518469416042057724566590561404584380268905130633604773334655635065277780512021777189482537096857187469898340188915808242797837797945676428968505205414805385011890128857249761089170822585914798909706985979658230632952460909998262059684822683228452343212746854841778726124403342213656728840958619784517665148337105872066146659812130417526281670167847808348201114567207904779291470683844490933966812129643198657432602838345757107446418805893786913910801046939218883776271688997366200134825501992867812507654784760750847135989722397434939266836074820437211921631217947266230954530300225072316833356956296268741874445059649246805386323062568780652432828781415481821696095579936821751086732601817402319854160916272478043038073452542681406017505867592508278002724898078387399784265263523904673862807047579961661673532289603022818784747258279595219033774345771270066682437995040986451744246174075876231593494065046360117807500756826852158550145894867290651734352227764665806508815068373206092446035876208850385325784024949519448532172592555590467606996301799325644209390602582237086540684244730336313415759379458914352257554678054846111868238058168062219762924996647101190135033036320053285407852975991356948740224026955861976370758495218929262263842782286352137873700712831062289193979752635481471497418481492567823598421706731544067040976506639363008343510573606703776170949602267385156904872961790769868519808662232103923427245042511265328223621194180105997657611573358688892055994903101589663072485750045390965106394063050286765668762891959421778785833423588710470609012060387865095010543940672878176625909772281155982098355956230327773184101294552690026845493380727598057497911000142169745908927721122847993138945461808588038982678877533312913860070808128985173840058553202148491870238672953788728141733985180560939914960124510252732637728571472390224410608880204232855343301116680924186928238025911755919295252209189511859544179774947139483927767643016181217151029737577035626634704595810890271298542550000229618459376312261775427272603317492851139349259972694836071936996880633526511120131846574020127122780712762671690797586203146058220116715207928370835929772974485173832846023003087800024516635572297414173470009016822218677248697229178323818934793018691314595194388736166657910236309765801602402361795371658561643464637247930430428976983182158122869087207133760708821239617477494437367160792401712771268553205614094517150880575186578842552209350341258527485309420344144836792398072523853296183715265675401378019886104677532071662888692513870383875738037451718378133289294204226635530838557296058485105690055360139120009276534670861782542752238089768066129930235257916982431923351329677818737965121840678468020948119564905198751687826819502924956009607458063651790047036457311259031013563967013518156743508586299061426556598619678108014237734622702207072260294627255440092502810667151991271793930417070810994553952311089329050675604783132521003892721498790663578006995698852577584620008883323158577197389118520630215093055847116736829040094229921767563706117144065806471334713475101328964668197631393573766543609341262398264512326867363906205237711638914088050437149786942414540625163325015078263046149355564035010866829191760677490090197570870497887501022205739799698586436777095645355171653334062773569614938945151224190524561313514459277969347857680234983495399119149276484707490330500107402778898528943185711229242099906528688696089251476143771463335870642594417052367313993536345354760382909164468291377478905935513927508866093177897252879683339752615738300522090911874749457407583636478632674292447933669061764343675830077539470880162050438528719405071883903989831416691687375236601099546876959780876187290390878282909370602912744902827755563865789159106144021377376082111278513580450009596374390609707612449872850708836165743522056307243309306730955653652457556114931044743883162272922899213062756828996348808672137305616035450062551738765405423751721146409598788415286130091398884693128487359670688858190416012633243253227064459308695145057061724852261202826587761149045080162417852948518364701004608756291515256252549617740805454089404489119122594530849815322685882257608751940688773872777658502084480855148781313921546534019823366557439661545250646692845237250961847292785100426909140240308347975427506360922979044389240758217161685150872765631821119424055983360163141830013265678348396207212189531128922052847888649043648907134282539194403995308202792379759508688256572111608081641608627156778742704205008844839350577422590721669072915703951702228947916101173677738152565700633737307524683060716957908143697618732532925030309716782887005845618287311157603954051828710452551404436761099204519740786031937661064629209402537394218503850587744704142488658872227327923935146736547145912628260954183384071009587797945074528666414451431606105321761500356756637967463708070921036603036442806953791621452651683676886254305027797572867306076695629726129664970407288153004996391528744592094108193362153577187227522559882101838967174632194353511148120283028785316862114103738100527615760156584266406261156318671779538249688475597665972190160689530499882930279256881039249399616015839914329221637862515793020886059426722962787582773930239759871730811200539954446014246973418754310370661970179707964610168888547601491030895903684554300021872713888919306760105931025045934138726424781687351421531335096950016784604607338443558628908114983501104647310906039208374448900963803009723932149531222511587683349272153844204589028440926196817726755217848546367016357567800067972096999525190297541162306231714135561602694693204786946618978343167845658001840123959517818172913627422562177702047392416241464141581692008485051271430380765554337651018892790773069104655319403513411540423807994568787807458193608080427290557591541964726299458772737974554337028441143631290820659758016907477873978772135404302088391438163325141366617748491363922493204095579208459784975366017428809554214304138940572288753592164409263322175783855580438289572406377991096896759118406928730839213916028507529987978957197165465606628200075774848817478639670636777478582389769910128182179964731656678140289910257403767142588441077500074470931059118607170432430814873864232914812599932946070233981309571090468561515510636001754533225350328529213643021624423342308163624874605173816261212186620242775241037832697759864321329939178278596125326279313580187876482771953276218658996456440988861788231541879029757127577711868384288397372135193116664399297793471979432331291027215827276029648890099547241620688188274422658244253707551884381979471679178348241832929793297381394302206505038949723403771142649683247485506583851442875756826847431635369776666900536959350767897970825636838426354535437573611677560996592989464912740459307268089522153430887459492937061768778362490957660599320126433230174163095789716310574479239344627092607553581651821953822054030987481533326658871286454281804977137098159507679172612819697657427956193651928064677231005697934883283865619704434553053732334860739618809123503251011157999751359760847086260628750615378677355977335062499986143127857050711624856728750150753850380314190367222088205943410292894581200171126857128668711122598451518202221449955541720540692637568093897411288157089023004023087578271071064602207521673882536329096312684996639360240505465571141997601863777166864421663338325841600921872444729112681365611553238157276689369564370748381961881079637115655230728848760385377770460566684520967355953034043079247660270559024681754638637836979186197733475909230407994884518757489360466815887219341959105262720134605591371074403690982574409186618596687696180250268651658756371250831217050824741408387528764649862774795826425640930769580668732514099810382044462406601164265968852597036951348965171377375683559629477793456701919977991345405942803688836296254845357317063394613703796692388853297891257332215512001001320464522802195911379099940423718167739642022742320991314798823086376948279941045317603264745181404810403028542403088697936525794207831147952714063666567404706191020701488284610164387750768639364576869435834727615920602260405212744400410268796167423368784831974564183109283500529752766241757515589891869542747232139836564677332115475434459701252358337276315953056714205885796330787253797086011117930420981597056117331772703329914390499781530597838379505651249793983450167547433750821733687647870144037897463454127402785604655816851923562256995817637836597556201302444322423033940662153488262050448920625325876243301730483965405475520825992984272073185688460316466819847995013748072354070407522761374799926250754113971136752835381331474379356374905720693047821610407018524484479881323676373903942763809926910202404697984125932790590165540584284059692225247750084781029376745767858131499189529589485515765378251569844264401743333808165429243158524371221188401740830246657846683537057745374157380159376991606235103577395701455702823288666366984246050352122672778877056711847515371660279348272439198673216594373341852626471277101623725132124522749609682390932310540242499335753864123281898788937619805611730172128217141753616800673517558382864608484298922992785992110625428958868437534531617946892173417155758268488456003362437039356799781945529654779772078594966324734777733084575827840818278419255344064761047352849016125923996619176867461326275250838147534194049901533048512244229077286950069471004877167833521764105647717898459267951659889887758032278719989227113387426597156411754229627460721904803813287176152538312367354351364245571699194089434439937843072003469531627054929008721021142775497256397352055331387335561974937541886341701887603121547869349456425434553100513874198890664874967397437962475665596053210233880605980075203878648253213881369971339688847880875068464175477111238592840100512494075599096360882882877241889764580345673346264891616192406097027240190004498268910194122166653143508846605673098071117778939895277064129839736855837066729965818650723688570811305818597094967345212945810716641072972903264285789927699504347700783791803992174008668640652230005638282054731003815129073724929576891795517871707923952852959670940585507763775237832468074499841791850920237624601840771634129252477898898510858759328161905656302696221966191513665239934218657247291765158563591367216975905364899969975367247885285621639788614963792517853348835097232465304848129616821036965290963663845315675015848671154693036588201886392575074067285843526595017815669460287716927303207499646514766840335962625669019732276413035801625109305043705079367816098000106877844730790384222629113780233994801361310477940652993087729226724179037119397649571049850508877776896707308031353660597599014613280217649372281921462228348469354490644641733105207856933267946516926684978045249769643843250246277843918247003106136813832603341380086136259785900793788877202547540808851552836580042180871297963519421420371501484959607273907064318739099613179304878578004903003620374642936019580225225297524051080403325790936977402562521913760443925339505967535521722945547261433072681210913138265367669533265262903813617637424950144143818779648359220082195948181964323393910472595878299379010612850705562560504183629503381529465755370801389397543639411280315801065848378212027158927217170957267835291001007094191572494334043335889214228045501362070331364559150560608264911747788388566830634837014317505486034017221888985428868974534707711865578094888445901184884126087656845103111951698342558605790959257498294525903994515990557137491190989360097420836460245474577250424645615936395604841592068948689266695690987918938194573223100079198038031918934250308093364244797357264921743746601408169240355931387363976118596628748643838825083970725094780683576639970130368735780031442497520647765083339652987067929328014574502488057152702842308493242973429626247231791717889254693139718134180190787152244304324890965932576916031876387717166617104679364680819131112098831563653834245033530441877060035527498827168710863117668587580917212982981854104439400283711382065046388005248948723074324971284145846414550617514391134238403466655738906606408786019434069070112764796017609244548937633242470090329110119159854202518769825027669864966795446580351441819761382066095348326679800589229420587431916987427911521883695896701583879147373197383224301540231523629222068864991880337745385305422022800099082915007187133383610727227467554838737435949428963541049778722684860346794303638771894036279947582641804418948367418723805088719662650876390201039362828738890376301622504367322226567998090125068433983667989394886932448109771477392731105891732936724283982555432337296641526541105397321792317284630944733436039261830478162529495789255825491593392979869642327425653604517481082905919038094725961046535554867359169849370444542233144980736495429401594239685380340406722018275416408925529128720390121764709302325971404407942626902192540037707788601791866767497775274625124685015170599488828113174178778448821977355916303209057175405392936954197569979059688591716657247613812547126917186131362812587967216056844806575602111323902418566045806552349310940364907899251440042337601087993562325191118063062541164304300790648958320089778215318778330411110649414772285186187054270129979457757448893679016696065532641643970697945268241341485684409283695088030544817383745715129129496777690095489327309766926189297783448842296775193075551125553634328638576130869065434186505386978943500947494707178664171594498048899333570304742438251583017969857625138460166246774112859148524826815179447810575971720853945458926216663995682111137122502525686039823683845592708287075395024360646040054947245930931600828909183089691173806755511019909931710604771075164873364509727918087965017476260260375851107447925256521381919150265133737019510968870397560886445315373483066304710862996123231919279234599971109562804590156125187279030770480453624208462007062873547887378581049677838794420320350309039579634305199128118749073733927470293852445472716805260083172298033981546350332222345655425101768000753105136432576228990864003402592954248812024096746153435874213883643902856189277595404777428104541394270483386942592224160437271868742925876555604445991824632887661332255016513364606303734987769176694074534744627562065468871763609185578771250630690524740952374080734471897351970078540185014510238469019324858982092751230641450274639052340573357756065365101599076365522069704546008396036698295465659275956939783922390267830813410913850123924715181942892800910115456050323379803501108859305537393156707426879863790562435570608791239385027823185079636425505224487489871367406098248567146840886576343405291921957357374703194535374596883752569607841470304877036781778807572422372339231833331867705276777480405194006034461405126279213629653805154999974985978900283537853514057547996905326991546314032451740764716238366359818518046939936433254173101081970317023624197635377447210133266451070091237210297817155279792298089265287390589485032775240152321202763416713313602417480775188661902151917896291096304086214497200597226192501001761321879500980830489102449522810323248136495891717930575686965028997591083868959239037266415976176655984342991067997108780234698775770816562823079808304776669867814130356230416335066081092875911213498496856825425278827286565456639182776422465871813737259135213244050942073975135830916201927445247511964154120108022977540411644004925164060731335151754199556567695255269755657775722694589593953394045204315992879636505678421830058721127943067885163450632505629182683645137412186492376085799056791777958514896424580344046636870881907923818355297825239058407292625704617883029546252980433207174511634264414023033060385785625453810680889014884102806063365619930164726459565633539529631372142475089583499599310072808503570726259944082777129227538555905722231808141853645166758500479685291785262841500872223552766993342814211298930286009384153661024937879529286389329740463004992798576246405896634483818182967254903725722123572140220079297551315836441863929297871590300844590821776916289277567586124639945600295110619564966726523096575787846995729380744586834186094863841208615353653405547204522329566923083824871087312984571352519224059336219911252420212495398284164780158918272551077976565392919679205315398820207430419670273517884315360034342854910353761076913366976627650994033290248538154824159255473887084572592409026755591718233937919525395108984184287738076890966238851029302427333689745074856645197761098412438601784754006913830693854386053931753863192452208556932153922733278965954632115258593408996802640860900668600830673297253936278499404924743031908075967653460129559294646044800889706081877830344050425850038338247495880691145068689479253421548204467165991187912148238594371934461735617314070447554082824242148292117546606011209650822705612639191830547591481498366443194585396647461943188506417620360847785907034291424816220735579524621989319459028264239699321208197009860145769857521641511362636745801435875119716985823617934498213993888342975577755556391245685354016955533110995524233814700129835890940803729598558984586481064573536056508298257916392375782017847756854465359448836413222278543452648319942963064007827263807187006988281156670010977576836149008190418469632181016640976586035988402561352512354328741882620011383009117443081662860187904908243141651212275166416752328957619130416760859772991203934923346819905726997795114470016696774873409683473272295931512343117993798085992852821555197546079483910874146359094321169168482033264603346801861729776152546414634144917058996372289988768205311527056759242060794875511069718905521560065342631233769769522698282847793650886339835323159857446381671797865659314073687340359331251888771317740426101411144736321146918834090530499134825909294651137501760153296127244979117864117149634420636235926271951487625155323716356827915482670633550194772740554936043690877259120949265245776284527808174629255691686015401736144395229090376674259694619145126458836070918482125264883318313834383016297839908927894717171341404760643401213826859786369083830056725025706991656103255492073259957606988571298515017914822980502684216069293259185773131721959931792585034249307011259031426000586398044364414088226417851129451527223766924251558794288917253545697476048131420719303772411432419628422624858351357525560871324857442413869770637444236891000838865071600860870891899445531034482653539627181320304184216985544338273766836946430545426074584819227486557072926938914696568470863822816921289450672360882066919904913689950044454712211905377159415618800177572368438360678668719289700733122856146195317813275873897730905715147237383994177226214251824660394507493066525177382400323173533874878115194059444540343023539615056455402252452742130477346768355747554194916509371475967683712201863134744269361113697806165643606058707216810236512900463554848669439892814231370212244167438344990772813278743601675434567379291088034693191048116784790095484391665370654449954751613178443498205996342620941198457957392045721043568478167793761418546347756230232134874402624300716309049414649428692347073787360912505203006639231120015616299658834093824405996172058784319884653600142176558552587644398451486356359400263462220017197113803602466704114317607135633940531913891034601424293951339799189990392179795005498671277693265137463819362375529833299947559000144770881628000370994048488771813195473865713706820711709845460359471526157658386638323771848121765343711163556082336238155981623469053842098900025972706320268887631645517442557146040335044182440291859334559989511980562126374401106152391014579497165625163609018519239507166396880053514814673139826409362591347334384721174414648261215671500970813821327780436972208972977859534832570417632632735682548614965049462995343753561195201330664375461697796051198626069710850658654056431304398520383419654214121770978981040224602410589159774547224054442604725861863350419634619002140271451883545413830938035426378334488523290388208016364449908404879823073662446840469601742951088336484827696491023393829789862624578795613218040894625542340712930408459301571605096524898265239681304171165015683055111681252258974329731586088324055449445220583841291094252416453982770965813552322585973153811045948228828069588439452493991592737024342516544364577148835194227451758003706322493758105414217838831761685804013913248203831567641150919327017891220686803187363897674765827280776744239193484550224878916681937746604105109057514399884885838158808426915339782005814290221269972898107712036091394204025772340591463246766942829165224361438912987376060436748668984452894128250302568364799573738241593366059710566618213070969947938620182729809248130509210181888598836155261142170901673787072629288463349244568305612926398297768697128980933409654996612534335039482134790077285497448722790430614791103384528670808555762010780356640103304968695827597338202138001619189509663575853802429732054161272998510575652538764010236863850130898982903149060853234827772705633083820088468838247964464247279674778331202426278101675338499888441244006856866833086547767906370070646423592631446683251244402057036871389157282911755720893677065102805073271246141118002716378588209766596186223572979704363585570729291984363229300560896756979221896475095479560288622227888050955730530979501103370108426983370630545121716649095660103455300759472211490176697214955607448429473267871221672465468173008248483120562753991299115046941820050851427375209707892906086954199826601535063013526318017205664739143236714212693732926907929799392398264404778942404670097877618954050445764774018677905613841092515399596910356994541522671245690224845026950750810088161439125108613663551629218825618859221823124626147722628946181665176043753273613945803506663274099491125016765639526860983121279258983009838266258896303634631705427565520819966919099336381974369425986394975418847395249737329655675015834739328694376995289185762506254823349133833311070211336316768220066412028927814526897771240982133985119467339701154199046579075098456749916962100189046073231440529107949621655546477194092426812641145054665115522083617965118200716527422611074876193365423126071220155939374610055318967511616925968501858738100607776404037820080748706185063433364827590670171613121742577638951777701379774844159111412760426162780270648627730746347297754445168621903802912437058380299034157805621156721986471276234354631355699192205146624612805245593151049577971206730305608290104831420934024581521732103561286853010229027117640798184545565249559199417526815332183768341709870237156063119280820820311307774575985026339702049962906854956095261904379226405203752386858466504117528462048195225146379930733002225206101794234660683820502255045341143502381819141584484883284037216138917799249372028416354145865833295360355042008908395763490608551169107559630137743582777152328254426942015423589115786067255716342646295842030129680064104579343595769826371344126425222257359910922398927166262395170305259829466673787033661890521440188660767063654909384375549540463230266227016792654138665496190425520900333932122205910383138355266878113528634350596881188800373540851927254600136375689222445674115906438035724634615458818819221296142169680718770907253140756296896360508586560897513619162782689154380768330200595735900809183613308320282214576733399943835862261635198975837234166872153874753451845516662180211895900323951643301134122299112679565964301616406909076239952531244551233310224224277635369616777857331225695564162697519595841544469751233386896930007380816068990227631643729691522286168388867151302875610417319826633627843214423157017749550893799844461600763912641149603931078724812267701730450559463572651824181640135960897232208881377384879640452604704499665124828354392352826027183871873452828555999336882938473007017137444617719708772303123505139654255024365401782768811102430634221669676450726436003230633003048521613373811114050493436463074784804328078043269801345392142453701516894361496163039271905746750370040476652453452289524347367141379998137371692269458002715307439264370827103630053579645413325215056478431413710091672682725613178059814224581280000311330823619244661269566496606287537902874127565925156756581892180572864056330143578946180121005514732747933351217250972042140514606951910306265078759178989373144161314223880670388547879499386169863691786466736137624571433803170747957830641439843207123111239450594527777563650080741361182950489436754798174589192412537502599348918821845228320323202933737269680827173612698494467011449376277970022443763300693261858137488654577000654170450481702808998635208188338112057982917660204150616740270361592222562678509474484828642614933050101018112158591770934033077555115442268257760797705382370802270821377354320617873652609756904096753671530996915557491391472923776909916150887052671488636062966130749980277620170543329285635444839496895294246889985788595923802840519429946943679006218466797490832977794824736507019773221915694443286293022008469507561146481918647352174742635812949257460393576068853705062324954598231927733780253234873714694812579030161715294265659459103532814701128635488896309028756862859193248326948276582370010061199299146992810498710423947076859118893935949983486179504461462213533350864754104181145662150472418611166055880381617545286675954745301534577214129714855601987383831656893325457403846008857387236175657231781498871773984094369352229991435581960268259298251603519780846684420810701231815621433324137376741119490615926281813697597220930119910908605080047725314447628467447807040562446187796938186085401030956137153483251648354177118363990858999266836275051401182906738782224474694715323406913074246205019132834709677040775530072694953854785400644614118114942647528945451116856861333483914786844813265824723157384417994655233252977797356961764442054155579490842245172646776264283935340232765163239089459849953161749024588210442309590719940094272336726296924022879436695356837592425400841106643373652862090122631346421309191153533538462890813527028618454937620733215564606204716905119481580806473410244276784051207700712521067767032239394366907607509187129723558090227713751418449802359473668256979079060867017453770492862753949895454870979307796105707504887128363390034446661002226583134568255866652003532411375145720554767458378697784562401483316530764729466150428948537666992169650107400287752710227207479351468089436180919386928407240245298578666991737876984759004574081160483388419596500271871072826854948224045166465343101325117181263932018323232209447708345385744017533087440163117289157734456552856233209011177509109031083586356990366864223093381137837459469350562167306114723426964962614112147671560428081931479089267455471874912873890881639449108619985310157225775403021855587276007551619454505872818907915845758872104018158314896725239380631897991218438408470999524347569654682553076026949551969964928318752347487909141700361956461292271780225512597159263057034807710150539524744214920169357972051245283570693456266300102462008345643147841124087015409606714934640199577096377707049421915937320350150363439454400169653631913222297530561449769393795884695131294656551785854081312065826200574968053486051572478086734931805313242697708905838064345998918700887239339106980522547277768820607461559380937916179676126982988095318975015031450741248438264410907051003754816934767077285644073230570605963565006125438648850705641283802761241744664574766619695015595630006926155631470402705897164407639294622107716064170686183147099079775096107686999965294774376146445917243827439143775339114125151141799239746718019793275968617313887212374564613983036346011525328493095949313748964811436914049232880429467785779520112952586505266867614490719844971168391541721904345591478023750352954128199036461328627355120158024139148669946577395163337152738187322540398122844639685734716920612619563580834336000793070968214875019332288784157042932787135491122381367784823334927876918695867089681360997047852225341652740003411841853677314278819240977331482007111003802753802662739629085540709961123987099687006495195634105985713920280848076557641890946510687707568776833404392503226446781620067163475964261474650479912227544046545261844062987854503125186050076812951822910216598923713512790821933575623550861642564589198355552054991487871935580531363320530316426478720514925215587629437781319185898457827521436053734162350699002381494445798320311011771236815506367361516091950604446838212730370912892605408720610443011909180904340184409617994902071000031066279785181149652824250421613371394809681280938046586577808597002711218636747783125204355043416279910091479395145784890825836863846811458625664066774528949821580518167981226365395460434259984521170218655070021108215521824985995593734279450732606772775759816286733493305336674549436735381867324223283915271415314769970381767226873157830503044659214010285954003759142238310987446051972064023119101459344948400333581775354717835776456216846373382495071039370878592421028087984599225237089736659799913937879186846677709186430888435634232432090229284948863262743928789363453445909113613447636483149023417182396390333541057643077202851279047273333781406307154524341193730554154648953469305528168199841881553324883035275137382848271269177572475309501951505314172536700748093710697633129924132213552761970177378959614290052305813652116174443882073539019248018635210276507137186070468186012450274201843966114834384076320157824756287668576872078350406536460943466459915122184636038254500978554969907532699313965450982875446952814896243135493038613672871954130997986793801520807677290387367518296509701640182841343970790559176690894378868450382683261998474819039224684809275257260670818276619688840179052389555042342592675035693585665838526877490733606601344862902418090623736559802856101855163415245790648335934027592685313042962581214198933823706075778691212636984128754018390411065094432035442097499960790493602043470377121474760015801340518571704479105348000635159233476247985055130720011502033010126646496481428107740699241398185056081440693427290883906494140080681140940300013491361704108244215097888631747667675315671169524911741788140722895904317743894557226195519547603315956034686616189828848741459697288680114224054223542365456529534142271540004764360462679007970419202635797371443741534988163940966652191676072433608557156993285909957334944164319318539788455384592096838768643881684760135804088483417647702140848901152231185618952036370263453095191498846571830872436445597168712266255568762857226451667648771714971063869429992654513111081315729141148025380806005743023725552199596925982641831931135771115143732757052209721831924715010320674854629279373133173811264670909108061139658102590332102887242412119089190848981835140173968133603642067827662593401598711371406362003749034033820808280485175024645900369627392680822954088282736117631288609105013788173429497016878736205240724744253046800215580060617196350179773707809785364209666909061669894357154694874609154126978882140625251860222741183390794088171853466937673212782790038014466174932448372398571997060549702920803865142879506803289556059596549449475094715107985914202686332722774710558087185940670464244786336374082114981713698363955449541424072877550973813350337138391643171286243299202992699152068576332587893968497045805366561911117934502588917184549854402021246751878247063563416595731130389813030933358605682800114707106278493383592949620178801767539043462774674055568171220815443978094447642005195236269320029456323305906765802000132141665104127053791044497257014423463794029771112240399343379079320170925784038320303265978939574626966273476986436742838431046572497690872016037091057239720778727653582537728155254042728460090463050708204277851889223723342387167679582554967283897391355657366701397154851567585933107418251420241047565714607105992194883106496607371614773364018350730780559652997075264364474232884056893298408178197035314385948510327049493917699437360125598735082000597748311978575512877204635347282096443629826414194743299528718010680628701884936498787700697963880678751717024727856199183634346175622650255427488073665461177893213013798546517961122864541714121782805287892204453362443519656009467426102408080181747274722524324292977688402449559514679411987312579377547132557142545716708220634661574363711283300941452972722782247417980044643043173515223021731090245269031528080288355746361195462183577536415940041564676830006024922913048829312910883459535181360107223023049418540652460323532893306697624009009509293025338706327678707003412990641951161841136997824814340524824069012826663839923496797040973949942531191814703334295305286636585698369780476198826172579471476302085368674274997049998514628250154323587528118980106240495502651071062914314597229392590798047775322520682870129646844174272478969213308378348937774797167307238152568949052401051712556734477765876073080871730410457937936204549710600545243407122527111325411701065473373831631462815821730713644382679439662698889543500691684674102935553392163970310083712017178347717864800508394348032313674045044565225879653744522627044060750452817835694449543458325488317601247100596905701088641508705893947730131139563148190586774812229038298516778743938155442023034151036976343456489987090019263769113234291898997689841812146577641040774686308858524339033549905935072213890851847360126075465474835592585702511085215855235198728919321330551104792008272584805880566113903338854615863302294590826700746032307103594865514801533925425973453025098265666432384680129827293684708524462539469257415553698037504323199740876094831470623350619777863991708637946911220918557296919561280871874563377197046802417405925261812069787724253038395313625836804359992419587510886396063643995224483815159521378067842642879326387719074100518925750187408686880829317702063633921310194882092869040700011232439620252721681843301679406480216534029978471308896923647447533880413661011559764490753316673893701702132466369418441537777868902470545471071216695388877786109673434391784534720463384091408198110115644514721729231560328455053286653916177210088377642398880224708874980836156158018039474264122038914739341557599559122047117275994800045014163893854552557028448603525215236592613403905590604770306503611864844393582928413860404601955226518690286583343454767647311745217696946338996914828358763391641839330679904911502560064082525662604539723324216190040363481165959136619799865923405255510017202371852248500449952972473761212202871986744806224505035207442973327094712961656454017831232993456815707001074014678807031141041666373392766710247354647137838172208147095767554171670475894396508712161073193702530457351057104390306260079569416617161759334184719396367879856559413416666493068518047453780507244770052959276994527469409542120469968107494298902509612995207705557192845985640068329140554189233266462367252472942020460427828053870053555259916729193766863713340085903362616959834731856330365887595409862577020520764399648113966500058653575712465957215007309763984966394854436266158275207044942101778750058519751250702643162508914211295727726878257436084425936882286670994413040754860684682602940013882284016322216215509733718563688612641381596395899585569287111017555736929725772390043027532111073040392043009570993313942639181718986355997556963068219934338262196392890429409404152650096759584791922403082270738742277668629638979402057072109141077500763602328069861477974469089573731490659776339049190294506576820973931357764211089635400677789440777254660464027374590134444904651447938271412208726559138018989561262136706058004192704874425197330185097625080946114356808971084274189907450413439910247541389139141302160143659056083703641773120511553566531374581434873117802329970708617023799839017649829911368841217286837023573098450693699793685582278044473985870147630579395851795787151105438522287428722615735795361784659677408375807970998431939470314480507336811553190227847045393962789564848127396851112237649721229249373012488751201952222293539963587974443867154794643420016174369006546523315244433814881998583728867229188763983546592839902662687402123355795203915916401283307000630644019601944023075140853581826701764502942325446472536497266372059166046559925149427482131857547189175522195147169879858810830505908059584519028653682620588677251281954988331121041777845670289669229772367073717007845531777703022849834929757295837971872116941250062723953281711854515710725303565710651028752674334538730200316249368563305238432581086648941365727785659118538547016343103915655562187331502316058928141226758810316042474219579145817407000249274200009985258233689603865119272953997619018334755738799089131013039149253023184308065434958803658125348314344226499061871786834278960621902249598725172658633476725056292233204123637782405257520670106506856990432058430964740475435613989678903177114821064276872525791918129770548769571516296638423158517437378038726112591750527504135715436121517833726496175200703351840751425150255561594385477121778493910760717985771934143808012163413343003567987554567754391452797722132000423365406047614749457956170298449626100433300111623942251506224461446982159158247318651285764920103133793047017702271375793964383841359691024371195713148653372562732876918135118501736273194642075045580106184252134641486460187234332967403374657745281808477104168265663605309059396300561375189057743906612639465501463657875408851039438468943482490608846443290177561991572706853294472643072973513864310202777853024943634710903214417346436977464810215305254803358237983748175389387476998014792184438285782610054580065878027399785297830842494938496637686934851015753332047680183510767773431367542009632903591172766558682977392384403103188622374907272755805316424436666527843686139263023907086872880794527470598678223222667555267852309159585744581584417342734046344360814726513018628347685307713940646217120347195480638946538135448538068364385963067785734399246691734764968826067428153508217979158427867245404456095923578071855528382963785983563059008912564642163111135138789611600369732878905220737100708536775377714139819489121202539423345260879808518463976263141807748415433786755742336898323291070428291456401294902915076094242708352762365709470039654126100014465707338207699615888787251918004418683914539960333728275936999780905173620365076571980120429767286341544454249486718453458346686818080268192498111769464164770077278426416026686301548174503913830364930899771245899248338273155479539593740019228809739872844334786926713186869519566117878757417999129636789709878569464859710288050439960416125314779479046113275284209267782547631682107665159195708966713443334355339446496048050770416028145313605219614690161401316290872246379628510358536196335521390904322139574991927738824829431293337806320279525439674999690024511300804743030333811998340154112750587713000520408835726088098959554016644242946880773333711311683279309164603330294012374765272388092759351522209171918391068844095267589971466724230733753773973059445953559881427081441996460138862562832569677390020027570380191936966035484389294682268515716163277938214898536257978606000600460420220398201271820582933009302416472352505858723841118866260613619895900748071813451892611224778777636755672361048639482682172952318045816030467079891488310285986301507696912902804907828472019838263305068137126031081049566204855270203690923344698307554384753501036715429666369968500045481434149219988041258458691236950857473647831943786693683948248812565270314571915578112916948852461835724914779109785010421237923560798592549429028247567251693130284488407168257023204944908160599612399762792485892021366224021106398673085164527089873183931466427084385309813331667919181903163172064554362974374838734427745815835663090516668900416411493468327802641698035940686815148916133019161699243862700283106886467119125720398649776585267244712206292357053024199878527528961155010952656846135369679958169841777149982239418700928926078571197279414119345004410273665914217208615588160517769450149497033605564795437445419330726503967067410633814512029569496580750117604394533754757601812968249938757060137559515558460379228187558560038948373389263021431041776966673103952426077528097850787706670202430390726421856881445423167260470388737174960947652066329677141294252169402564650605128607899010971380454153445736957068551970789741544915375042500371217287630786172258888923326101679746566433630300668339659387289503639513546920288048544607392217538705085085440837438504247372874017657166834819738490321524843664430847181368060851074221924428870495031368718380888162190571452382477673597867129848929388782367900087275121228310363563375521453856547758944524764185065682206500688190348516161865613078634909298226965372461695321588416504564207339876031734059474162207772358676501722507345813229748716919961638682184333642573465304688417652408019636999602813224255068949485556296909443993044619056484783953288542881023427531851751234276541148135504553764035019778196141775428366309730782877772938309258409597568163625358705010277237659677235303253000637095497384147387692046054974173897186582434841461091115211447514928799179935375401347865343712279604852833117186927357121372415890319527624312734334291162412390076271069279118911028932161453725624686966514933116847291916387761420759089666165029899320742971708025545567287828380682328804462573252806124099216848452269838304652210688407015052468171732965649235726723211590355249616685870023647544290774962535250243661305906928638634331940166734722532999817775985950443851029980982278601364179808425339031470013069447692444569810226977257637129119931803135619979011459350905587420041365376147589983999753157811803830845868243448295274854351263441960303655874601602769214552245626155835538844246563800507795528128528230227131804928973107891205953153366619581146654652959188713607660915236823827340270901804599050069876910605409340697748607740113297706792646452340967903866491607617587942377613539355027504897185968219824326753746122395518372690018923936882740151198246092345628474197825844042626460358772500107414855521427271456964885253475670351098208808375820380869730707172673671692103641211286403862658752173276412849453450515147796062231098118144676482330283361714681480016567746302689401560767284090325062995966723208664048994165766090597959904024567200733038472862704835176526185293334068876960615598127422016977520633796221777103423109511702118045005847082708587073517148916024789660924863068362486614083499992872233604346270195255521284970414795058740478681416130543466808835044274441738347591786391360481561762052652583317808325489846488095597289041912165766549612631064230052278202541592534180280327841689568665947321665861274014685080346874743648482770320637508093811732431951441421470670334903117856010229679804753879014360130207903590752933548970750189590736264369926480262960044890089961633847184417605632351347365005281543730122882388450477683268476765376680266238526895568879670457327167116814986040347341266323666497957028193069534136228653485859518827010352613885912293607052132944873986018421898990078118227013435681725947920218814183546212757731241440843783368596759601088153928491862195735634154675035502226394485818304558796074562113714633051779017286267021806996879830132970897882545818811765462280694150863136160795710481217153963662870336297379790943783209721850206082969789512287144064017270873231120081767276102174551765397335881656853285797929229049661840785063419911844943844894429590319974372163072772274144189912291562250429731761165603126836419897100823885823136614282634909793030532509563772093139735152677515410914275437431663646347542583012020057150000728085711499048929087255959402970428229271193306947378620638813334710240788554828290112894348157734023866945762320499576669730057798276867165262493836190491421326456678595253193648138974029634310238003941541214889216222075408777708003353758496293745417188958039491239547037762392153323710313015821585318371104967671875212298608638096540978289697864243268233236486688169257504393490650148904775372833848855057646498703511613070383364503267770225340850313593132909601262622891268467724380907621253346824205704421140777892378931088673170538313317239186445059526733834382924216021484529148906868695569960939498074749259630149142098717425935628496567732557999736808636277824467797980468490973479013728636801377761405837764727428457786317644333919699374586986275714663685241625475567787278512185775933163512559185709966861863678626013462027216492334112057706712999740066903949191901043128655566438403281973197161273677036583532377605068909736430053778652050795033402286107289172928909890842429109554836865050999572434475947467060618170260630398650227426991326210988614885402092081786913334407691645273624941237679489463799240055431949754462353388172821149629844940643202166014018028797726019075525498236301704385646451524590339209275759702222728931214724137138143973559992804748481722881800800420661162531124680115359522452001934571085848537763437893861626388670080503750465802438026974672452854978490615338445365375891934226010599796234929505398660939606989089578851650074047141996777704655328225448041792360239959051354911859764384836830181159582607300187047571334636509656490921291016041566951689650116861766144379092266399983313987015844182680426675814797681638106851471520589574045796150668516337696860865159751893675601627947851721442743574118138665792236793530051117981467661445245390730417421252163042463725735782004441331910323244126448841597064511925091036519967390060436309015001286227282536818467342792324164501059778753339733937894428666182042993636835088887598938493066508800979979240540348022403949353765723932256597085675293830914526134669544421818662914633559866103314069054661780678068108371167098352717158905203316775661737953015595459857437372378887690877808321436775876065446879858418681104110694542751061112387639171372106370436422184973209291631182266085663295619917835865191530366002569367701675642905645473840358160089132154882459347836179683783046208217476176327481786032273548534571215810955706570927425723302414089195792329846705820720206031862610282944252473476795456951519121165101297866486635733362763787348708660756749953161980790199480299774221048159299453464110800426174095999564462819193505318549269932565495439048179453462157582379492885242911649353171517801959038710543941315017297573673550079579105928723076334418560029277752850408210973863813033281061673097715350442466750919453081270231424856855149492377040814211572393793148619491203342337446742276148169497759596412553273186869022003423316808727393109147473080772720724768248326629289117328286985205029290143857674917798760731140640095163059236942747019775250463085348569616981036472515855494292066466667860452565931098065053160123983843502234519954110563719010508875603308669544770878966629838540101474875570940644290325276977798466733756814924908183863103114970758085134412680358023026848888449915359702716334823501914181388096943340309769205041939670905802584902204337153586750009823991207006520394264338767249845628999508887595689907941241043869649415458479531713417192470251447561499631874642529877943272928651051037774446539613300045266161819614195912984700994159233924983760008679792138020828899731669637795109854560093035203562577843221416752506814659895060647536860353361578426723668967637179353804598092054927463801549937347895165103632293428560968836593908896240739571359334987365906301693384894519749742087742529863805245565237547933403367250380837404751890387099229279111895759448698506878794277803435917454236847739958807167048514837038036346957623377607831148616743563587845412975944781866859990670818380573723605759207135617936212376421980081605382321501347744228453389538956661962382321032304858765326864665062325461155716726934480633908328595516802913505581622447944612311578734806676148797047695396146663055522112800141128635169035537402934484603078505434423571306991001532342026203749593351095270418950835273405586398185262733733129882251404888797943828979293309987803127583847965292745817230353571190096594442252387497770291040312794343656457457655674961092784389176084718252117089323148105359140174298797330974378564104733822014004758258605565713467543428149711058980460101395652898826306883494124202688360807785111731232262135351820046985260604387501103773722759451068977520224777202629717445729840933045386362703565090325565338912370996981707379399329765210048336637629972812948548470850220193414949437203479790484697045009165657356148941553714050446757644559226794027285701897681484688009805304126014126229156058577074627025209578644279302500495477888828143266975793251692059015020911955893540142049183833131314476706329691141252339181537436533755886639602243206527586789994715615144923029223328893089404055007348627279265911943246048240092179240478699667955937853760763237650603631817258644539877218393665805886952717161751196513684206482334369740470697787089597761006641587664973992021994847714590432947287781381429893967747139474307455732206937473166933074330942399916329087218763822829784967638315782187498442614984621762278022862522889012372831950477956628638995599089456996631767710656660123235866201368860437930889349761631828694050342375026661029994740209640554894202306803927194213671081327809291101860217448610946838752555400815994424185591352337249952257760669416013524195421582095103299632466511764998582235012712206543978885929192647345340649034802903530541990670604625505379190353585335397781398749499223842408226704970597108677757056176721307951032227723297617185858767734581632928031058036063349391184159856477796424433497416383717275930498484432617905326828147864721437816125156649970723884281919180267650011902088687609104295284997132331757260800640133918146217455408815908223381364567279915391146879504010163751484749066427302538459945042925414353480011619216307071416781778397458372231341273826649149032627927198334548117788934026577210875974121971569506605509833982681652645098147211626179644819674457146741427347240179719237369822812150815877065403729106536404887768945077130159223355265148781210030432093193191072144295634936150285543088492010373344077816116519134374012039336839259041077091917139329694285454477383389365311793837239280764184820192570179705973160234475791753215477577038332940144534909099527197393142034846453703752859558561901368760374523351197968380225380167759401632778203817096983595257549302683725545216350917697885202773300733629142585518729861797843677688417287803003123308891997199840396134150725675391736836161637776282306397137374325856296946041919912703707725241256863956108109788102173725720140400013048378000699360861357795825350497956052681835073845600089120759166349673641397104614682168636866337579358705403229147791802361751929345152651104539198457511692718010549110038849897922525918001060082264006810575975536496613547554624164976913401402828370276524812808588150727292813376211354200953032925366406976567856217659817546422932019276995511716370304108140456194200041590523679999777406861003533723518889924932566536509998906522821873179771059318232435005764894193810080732681136992343451803735913966719367643580721798648976043559758018977197519362203290847985731621204902863099827707408690887543779653006711136426481065223180393595934632742412626993857940558386423760679217828495832768947060540132902603432064692440222905076649571977742017911042640680063286611599197826178719607734470656187647232807097889735162629079461451334540026867625403329521774938736279688465266241516555081072396048580168275317667444182959924845706691802308679638865351882780075551241049677058633938259553735141863737887070006035963677857870352671463041670933479932971521279460904956465016009974994080670819558635014176755224608471499392036159971676632378680334274515021314975764955279081397306291459531886665775529113255331551563506353636034335602285947067515509751276020282560251541629299814664143098044017251320926297032679685097571012795390192561766998449404186828057361390755908324305885762572924382907314378982816485726442751038019005745263241327414382411853526859172455141870191092879803643684398059232503551392433398683941859792300764396272391033078564933254645720548449910770793875524472100211937072419197815846309722364983160898659785417398948581609908383196261539214044320461689483471449409367179371600243578475292502476797012516601291113782714273183901121074479740926913426520067071887572467694725751470370402238823029864257890867785880141111291390632119323904434386380532664744055349155772422775246355188672803934262337176946844931818533253427634027703477507005973315791974024544053719082577346891048588013777481697682477967215549085014980577622200554110109743000875489553894974431649941868153890995548633488539485653076421121454221215978046689140287318680708466442239240120872285211877687572215203678703984031109230130713661186312395553208047573041172700801986077504018528190097019632699811792124201855504156333461137572084046455946443377352246877872291141641648641693145947804582314122042753638352389772094760135937263814291694089753377288032909857886816442303773226239862557078038743242920819596125320869690258828763686001437847213365236477233858853336582819736784062803735424482357091563744908283667714733856279583067915118308587123281705256473698257753092546502637155398159833856091468946543675388786789641489541176990330976105401521515254104752612036620671569397525191714474140364741725386163577911259102707965068962994328717900265494340300921717113840470434182446639182094672515465170632500416769640235536094878372118308713525665069530995123296680942719351339937261548892402651889827437146291663614578170060828478950554988371566479763421747039569046266556967187102418851532269502066428762452208606294716341540912333142626137453252078512283518693387894960748326301874400253917233715173638163367733050198945049895470522522618172516348809637608197610806188354789180907783584550455247516032466056653384844455011636502136179690411463451271101559519909669630112267104181004409761395404214479600314225916281889034634375322874215426786444127852863795638641776812173260537385654982366474417385271791681238190471736310779112028173158241257024847885505372384524043886512711087948216771311024644747345438032888878469830234422055721095176863262693740881988318170136277994656799264713068009228345573096436748844960730715210640224873393826562524691321661004423634436521628837368180450069547338699081284039065135536817307404457884229526022875218845904128446344717608477391197723917568123550189807717588985079238887548200389100972637689132331636123332472089454743375371992810656322753700808550419887462348831997766364507685655131733611174739282523544680155232861283556767970097022460908476218116485873264762661935050422202786642517287002996116041249887659903001839403501495666910661351161459312488033129723668127243090784049567720667881519179867758883642006958346328444840886767505246504721095024896806074397367116475773080951181239248554796292528639818458718746734247020531112101369932221214927841955853927444339528103568841285152986537944094663189662025422282099966615496233473139713579176902338762948565910506335083213031542892477940735662992868411169498815802608297641525252159141713062944411380675919795279398919264876040684856376127270711688461270480338052825337409289027381761313127038788623050009866004142960952754628395062990259163447828536045372206960669156845780068174325718830065592128848763137694437122302540224662891747537594925992584514865455290682045204993195036471623333411579711071543108092269314444233341269271156988885424567076458766524002588776142178357943611449098575253244755139732063714730462555351265547120246014070199375023505959858415596006437387997011285391199055726069919070205562005780935175383533222745409676280452075323060588324913989388462072677960275832340988519712859461940679964314460567754237224661663332379158913083036285718330448663328746831172229002224793789219807618389439370600171037194066667980999040866935591054533884099141449617554624014039903748369694048499374485948557759455716746112919914722391385817886292378985842260407822241320107171851280796820220194910074262551653223494353039878328544375946163524967755762570906796777623995773954230273087938003470457387171937678720622623501582267775279490237465896221342076372329824866201668862178161457062806510074434813950220215752892624842882907420077504724416244869951992471350467279506922823589153351968779334892670455887977036793460344111673652607638499148511554145073903431583304270295900443094955664838594780922988647371260044592583337483942710084790964112212784614186128520492927996460062791679834949877311417830632611703262511991494432585069810391262384354451105677061736602238056083942466113955970954303636586808566537199354275491741979927053764335001398157267087957320264234643016698038088767344969520902051643239651078513771729319181369522547541785319155633449259744879446045907407497851696896959883475441499994077158503167294469898488356329352375928640532991335373681379823582247030684385567290873150114885444209796735002271185353724041020731443670962592784926107942231543595389278550811963158249976092064252750345799626672401373648618079049082423739077694107871038205280960416472803080506776501999878726765756485370507682467407248456838721958616522628240105026782919958744266321614813915008006113220707304801212608005780520366727355471083675535493905534399787848814636595478178974397741391309768885545230195001112011622800232142537208308358054849695926916767682956501553023812796874722035421487695804650942492670793626217177154522142197466466165711072711141614591906283669985846712964039173515599656217979949638050729546371001311194691075424775111901906240599735716968484168042550377770689576433180957315151494568798605518790739673606004575335836747121029976421083583922003798746689397112200001510600522976014571979682828621844830103692687882320749577820706799995983895142065409192438646775771665631550498783428833916400256577019902026844029542934596718679973764023672376588385374262657515944425196340909047757731622799619238800496593754858239683260198992290922967588194526367933997407603627809297521752803574321207830179606742414327296594855494518362700613340947491195885977243117780704782830254782168282008145852821277083643793186425621996471353323550189961463636758017516809241108754162151665501394848830398308763689937723282264031175563059294729508699403020233112867481534097403665552534903495571564041175235177000147657031917461199867950977369265762609090523605086372633752806547864318430953687063164595605015860437904794736801976874123091151644574660607094267426600240045361281888840170017683912428524061951971628567548918844696160883624134604649616204685642977764965966762467960860636107578417018772936206643015688440349696018054834343726184573788701586152246278368690165016068596756910723379187553173743364993594611609036435208443942908601057523879441812594096924824720730917118457605216682891414289765650878359736057875181241062958401047025204970741408513197826401728410371309380291388538490264499023571970708719670844318059063020764918549042351739418624096741397314520693699499815967720609948029104552722355565255016811920066610507940586488607998526573240277303073835367665032151681463586222572204591093337824734768083085670407523897083621381621492813939058268052868596240262973412860893271594410159365741652272531536125748197489432307118351050376966122589737661682276659356054705813089666022991487544357360061910368901122200525765319627161583699800418247876734457089841798669362846409082896354701569573406052571646339553361957072271756770024526266181447117672504949883688678952016567623454135276822705355304184583336059714929124087632037620123564770535249565649544225571995264430759609481125149191373075225111254769856991583201613279282978519548772872032967759261249251811627945707280449668077368444847604695453378488272413555432160802604758156687934408537511090281583687861535945129653124001568392097082798418702199190997844889413592562817516045222009458089127168510152355339661885632745904711116547287614264516112659013243776866992457739647258222409944459988064922899872415492471798872676102940120104223076220689515914148867864984222657284046417514155242361477068594648386932534823296866018923683296013617387434841481881072504871872434246674680910476896823403193293910489581600589050987809708788679583834651983312977086588863751656179119619847027543195171224464724027601328213478948203751133549798376581009007056755917070090414652725258016141230001224448644125231284710751045923451419124612427674685393516658285243959440858048565288221802579176317710035173467423617812955829162794151198028422227436985796944448043592147215317480859228082935436099061562918458308026233620002725305290971904523641905381508821868129482027769489240720388602834141016512973988840199950761802190280796991935380635475230780514212231581474024679421941446773930611563211918629080876247390775174037294345990088602689809198549511216584704546522205246468826141382429453735013841152315895733676430669089794170169892600721017111401198558161577703634453239448275240700349424318357381706584684375014470279496199005184938931524622032585339303939566201908065718742228157417176405392153647837947807903024404709279655409175379411291740299723127063391829261175449082319719772395152198778670623194716615998581498549424862089410895600104360286797229792211147306988427484285481205069539947888162532700167668460179600508381198342370815071278748164137468035266949464546938145944879221351857252967901878611288077485686491719585295297592341624040119071920310178272654123899805046694335647748492758463533947318963271590197912377124206121981805174504874043360077208902457269342923073227317733763549903948310249682710952280057136348328597658360842262849836694430547160108085773175020118333204829204880702848572488677161366378208871488837099446050875563610128499486934531627578022328607070761720544938536739032751526212718009034681807085061536899007533193300791119530024028085563656056458448895427789166575773754196449132665849582638698982056418528391382208263260463338716097954198599242866550723675800134386382112722426274342264557142583208935243969017684216622235068174835719786303404160939705466584131675626382121168248709878858205935267812861742224280570147587117404715344040732347119267414890054098858091910165968655874072819955689117928580590807427902734367335247572985934794272639046014590093016680716516418140384343245626672782043338517300447281134402716352446596143013921798969953497588034858570402171988276918044991607278766263990904161118687565304556884525769821992832504222788003131411648094826665500607219248109507883107552552916378988060260468036393125386905684107392050232076885995671763994155306837352992628542614534344042747848011316457615622025723004077931713112791019086289181240339505014103336486965264328810333156267938530425092086868185057244909823174160845547562924148621806095146816133184251751952576366019895856947510579696788349595082833117112682327197052710375804784750334863185964387082747651229345023488100385824558940359150806807525216033213564126383446602423247091157673597564270073585221147502090133740198057115083807180209068179727484256943784131886572298287148262247409326248877370789624563405737506666451798041280524964336033292167029989648567394533373185095917264956824128116854086169212409202923840969840142358063761821441622545406060696987608230774161011590229290403598995824284188319349736952480166596438714116243496834189540231727328476048800123798814337298988352872151203465360781141455494988245180061489863193598913237775905867187799475929469686887602012044314591567137376780415484745320209450984442610508806325601864135829945096385461417320018972949782041382396289155666852673022484346701427011468460653615883397580103954159826273132118307440191046232043277762761833301973513753583706274048801804775823421587804180381989790610031116571004461350542538089220168104959410488160510772656033737438158535101356219577071258948906501833149733908229053760881355767043924310597397992391292469409088017631293191491109987790364913176111010805209343432237712370169200976626438243879345298925552137639721351612944087376015695491029851957191513493399440135387713148331257128203853915058514951473795564548930489437870570782774001113624182885175316298029481544433128658204160769440892936440244214404244957152767883439984081588431970778759360249507867477474802560205095513340203385484762892678741840452858961110568724781958941254620436977323514067189577962034239323080829744537293652807061455732894974134081386420925484451231565699055196233378388554918301747038298829037861251713466566050405600049086265584515178084063778467317622877523876285803212193773256270413546414638777616296996991086880454371453011601804420735780967918540919442480048479311764366463828610855949383884964264624321705762924835051261428040650355789440770695564339887521325465953904067372859907071202311501032034301671183498203600634906593430461826253728454661610543293142001101256523453844371160171939286463784877145814755754669300240436454093911170524704101115011898153568074502045256578608111328161439683046684017304684109709180371478779479337036337728453842258720811943144799562482995132406647613001695842407134953962231286814328789944827732094235594263808930290693147839997945620911169311374209356082100088853217196737591023393189685463249346217035378188420470210163383891315852814415126350395045074159321025696295403273758682431241039133606575121956354753252936549516915521247148456821572177915211661092009125711955998224144266019569179138770333446183418208310630112199160339736380293122398517933224472906262738291005244804851447179779286033371098985897748788873026691307188111192040010428394548096243360364018907807509591452408696609591314944155820123183618980457604848829423494596259107044261445746714568891323343182124333001248863339646892129567536579696362453181974985523091356420948705165707470719638484619201928884936516856854074569428033984657049544453573618141508322672671547966541917294123170330315053298668860578700803462861116731084892162884448807695176199270972330856013960818820758354909115918346249448888385315931194973977646142050481762209048775570444167768372742934481631252712164700120750258325394171765496007757831912524478600366308230274729894024756767778230938137793185836860630416219084431427288382401756067360672824545315466515302885098622207748727680780333708943743787977176270617912818522367972346281759880689108233581330769022812432903245762391163488906097624628692415854322652408052395924008222043863419215967909266273150895163919630267174652070019522251270452043927543704563997115597656071649509490640536816719687796185999666133206743723976755897602648177411561355319453449846055160059312023512346257725148614572585253897711015935218116888109814240620165495514093428462889057913682025713657576632742997744708725158575431938609357842884422349041339793764669590245921134959888186894521202423403635959051126373819082568358335861168894395859486366867770188853203550312264522155522790765964603313914437338742474425845785211615925656349452440060785216373109011003347951572114921194039987029776121212731265416913818153238249174992259569949796248392160023281530242972265943375703275047378133936164623082342171194048452679808289677732656824240374515878463571661252427085655155651808039239900505055050005970942218802995478033373575982554819365802476395948724781470340566538803250485096518845727623565379113126452558656777113111351126582695457713174688486979075837907663912767913228611940017696321429351549710424899006222154458587579429705328029003237563462703118325146900150117706058145614451102453581550167227197582939175575105704452013879374455469460392738894434021958901884403749224784567329152088736792951608553255533411529157726930059834423880418018259066275908559653074979294726840848293918287833531936503960495627273345219317361685896709135575152548191111303195552633881352871360842878286510727947612464693543388166639155785392349937095257138968506674974820676759432795364333578335785386310757121686691381856358114973252700701168545375590044624419543944450237825883904120711246488425386767870268772380107595362180776757241276967050759848339137380307436622723897481730191357914225639266716270476295846631178152022257891091190951496645925100347891267685393763916976797036294072552957135109959787963338037438958638855899904807828218710233388613344270526343744837200066082497149278538591235401119856241941646019386042698392331847863595827248183108115693957936285086502209336567696358237506337161652083061564664376464685983393833020033212208933775975692122358530292354076818946249985799957327068561280109575518362343296093852903957784837636338328931247638574537456540767317406943796872968892735262206172559882136049939281082466599107148588893821504322777649430458253559395061507624860728813799140460453622438493184404955068630668506645936802783100747245059455164018744540889915344857684534190519227241898487439853090462236564012431059142300927019142718345967449897467474409630264244324819707479132209919776756280225405217020698746600658596838218174377558163527913561475301981408145972229120185468801990892256011668506898604791875840543848664369858630098361836300311347581034914262208250802388761383325981510202593402560728958490514587384351644478640956318320719593449167005695099120527564319870711787655659833527344747784747601535717206710804535681481925520205699760014647065453421297107231088363658434034384377381452797750856446365907443669866205020181841420108321337282790089698631928942006961478693796662138373449585389707785155220752916982055586738081713836935963735935260382616268647252932593254782586076690621124274222885449488100773476215099201665437697209434796224134365459385203317501348160198196516508919008345909336654713748890467121671280038506319217064648820771645164137855667623798792488920235131264518352091625606776701059268074925230055177787149622975176934226472706373463196180230882985855081738599688547879151846466076205592697491898714078659409368979162425872079169904364206355867964821642780400635808524509284866650772293933752811917975143956663075804243927779404923144475203010152983416990632968840240505377508418363160961513431776608039554372032468505837415620601129938161437365235343510750707575024973868028135514720864901252597046125566089580101690426588233050926024369754470919094637018194681098511235701185028026082300965645342646608473044293984950596502865905310691760126154999709336618881745390590490289213266354613668567767075694555400392710798596207970832749087576576060958939724489483521150280148782692127020917824081140782950385947612852820767685960946264735357989679447212061811032934970890623557705673659432479278969484548683836111316873722809241424646239994428178328169201409745420532463167131853046184249072154526250085992722695403393827628796278020417867950417932924884444183109777464582092177146694019290642886100244065598975221084084679697472855011297322545731254108625324966840130830796525451098859851810445302116144754697398031625404628486418011135119993785016336060684364321721344863927386125489734627407784585198200109206775062633320203239752357707870255622563040004154805921741418410614866280379599083155998310742990890745796611613077589045181806822308731950012469530168960641047666683465888785192227846943625817958683969863819075752533820407350466486752456587573649561837292793960788018064243666918859515139946847370177995320121604497384744384098504836950500665953972914949032581225771667723087606464144398148444119088682353072437859318624784968795544731337712909428111886288358916920910633708989709389319494227246911321987358522003255773720359538312399916643623510423794175090643202535450993971428079437167082514703077768500289684153333477343059402010305072276247678894655254463178994578991980581589281665548176891380630970760958999714474258929475110920304959263562217759505163366630640707063466576907409014977697946393453140208920941419775349386518625937873110719552322535435115530580216008583989697480188200064039869787354248936271162797192926653343362063858516397408978377006484055425394344184065685195642700689094718890781403876199549685769609422009965247574596552760825730892158474203330349462238320095448546527541749191041475828782844612010427031947404113351447404149282717431733311745520771434516517165049426129237247604928017132606462913243078382800121868377202801900064244944816301831729938242621606554135135019260913573190488514494177874396163075966057021173954658662436951778288843002447813661797932829788662978119827253493810983570601176884879683449075538393989637206817251449366702312080853214894002194933332862805050463406697836226840758622879725606644638921418199654413947966328226383690168304249832234390440673350178455173650616758930904210502662800848107310376922345030248346405092483143737082385578988026347472674985800709184919956435773022456199973373063864518579279988516624550855445105769319429375566330692870973335162951620869782664177251516154985304870942137780509408353543030435585660597398082323780970991076633090757616577104751667105128109994296213086811295734590560324833108382912884713656116379043354366387717144221255048714567804903426489230361851863397387601485279866438448667766252199763433371742003050531195117290661787763288569352076028270228445178111782001216581264199180638732454239983412840665143247445335457212736940034672488787603598944748852257588559387683227640942020759331600020713604111396309848932252290540723744542159846624714879193980675839160894223190803276797844746143151622744054670538070135815555997908493504639354967737550495017387252837063032684280745036630802457852960010498253981149342383649334937105549617788655057160578663625964419063388628369691486625705094251631424641601536009267321360081752569286991469809217369382880112274346358067112265677241174421049719842809894583094583095378650448092399405634705234478868470649586762700304882205046035503786109178939095624039505741035217423143201294361478141895626663789493732472985368928286159595322074618954068066068491999799097624044928713075399526011362861549362447068178938318108751181594834547617121913350685867755326072235968823021737941740647248367580225704340100323845944691591168475674954890792137545502076918125600720481938780232552737133307138771625977454619704899315734792363759650830111942164688663967751503183917027790745004903640716385939843754797288900056144549459417859193788738203624718698564026001325254184462332013440648091953283667838708850129492752948120559698738369961662441365559306594062789866385648055579302663356371559505050848019279044910823871887077843372170679266027518549149942810014967526382552988907064023155484290188472425892080926972120803268854585975855351356292362814707365465775750967247840518734071774628981902340521799755503473803135938438570990189955360915299205041294034913761097815627206934244417608819928160439682344914730356019504114164502640498936277663939811365614345211569812416629116572430863099183079400243534920027828615144295387272820473933435358601805196289518742446975998494647968000601107559692440838507725289762648731135426302752525265221786371357255082103481870378719393678732012159023001303367722012353831327386034917929970845484460790205954398362950722855980593757942907850432212653480208268781074483541879086312049544117201571474832333397474119599345369870583370585988494493749421629027328507224295952323377923427362575239475199768529264661395765401222634408405945640984352763523361873769221453455590731188936701652534456446141348724413662554249273079874765384522645762523283313419924137974192994628795283661196550602334933943284433242917098559370525705582241930114633026095596546122648004838103591912252703482679966019487866695602988503064605132710960482546036472990584860883453213151712824581415615301797268042549579664433705816697457294919450138207227910330612442814172199371504167431484989372902234761834897301225105804742495351379323465000112641808016046606859294734643303165462961396463514860793607386557486815282119184848440779777989217651633457433590147516517992948491561638135647721757925897111418934829639566664327603119427783031800887865851640603121791911485833136874947620700598776101991311295411183523199280335286272366578160574102555337369188995050680100835877706197511515739587855183737196482272657353759939217556038122426597883634163706056195485775843573505529796889355135701555195356219761245218889697258767103361382583297306217869385497339243934099431609703689291854883629368815454274178961355495664180186763398118390872460179456949811860433976685580411147192371078656660014199658575768896248168504528089050691809737932905477561561760503187769290414169950763171073338753205340272938891044949488560174324917775361410423922015438805200984275986155551976349215695233478047574966940326085016845007862765673824400786348182827846104987814439665260041128638494979485451730994957248015637582303682020921738819858759192563449048647394967771946725272586078711152359558999533814419956981195637560346505655060967127496916036339475482220851786485583564764439626693015686248279995615378872106795941378795371981971365080026916467846278247270515865838357279819824488224657842896252012395603954094351834927879936285277260525879352221935875843697017587822227841453895687092370503793943952921168848837735913730715012732280794833246269962984320418622488754302274287732966324636200857905802837901225416510851574645538359130277039905879763344965475159283568927432000971210219094008334283031532168074690787786594309920188445262079627614745642590479587534648294471973236813556041751152930942144340303577534489756271234519050258889205091822846077671329838121780152693064063663504387343496827865245308124567274603958977904249724785044283091055165448179143804949242226342475736363255151910785564343158389476302337605070629209619563852345215834838854128137689957975675400644225730665390987568875379214409253618766479941648569166358503608100719792497414658291646522638611582945063892798037824530194591921523676461799704126571695709819872719220138791092689418241414414354551261988352438588637227842682651139947341119523127061864208131181206493964660798344672566579989553903455231927434663027067613823625378211836694421598990916047399237190693681506633169976843515745314898666793512610441389635707381940376483709740435972965686400098285769878772724213352696470290673624357135187291441674943242147249949629716039495561304978819200836400383034087394130492396050214861326025427270298638572606130374200771421316154524856268152949827075974274370514448512398215500815770229196796494855699452919401402306642188130432632909750235039450773793147637723783314454455824219587451449666867826475338634260618319963001594604753537712187506011045181077670066017236246745680212363982749140107578933910478829065948724481836774746075019400325686320171558668122304671359423602861371905615065729104855568458155122625822845469837684762460423103495856292901424112524602887756398972893354331440530500024119463039424186013662553662824487972363806878899805044329297323715283421567567523972345856408990019233772908014891217606417493030494468440829704755832297170560392265472810522534743906182102740343463124650243803120944030845854835535440953376975475260920164959751921802312569053574840749831618673848960784608900949984817655539698200767049017727696745768430146730838617452246328047466986303582080374123732683724630562570480147368312776161207824728746432698589517106544025100358434224357513383834839859670748291344282330729826748574046769545731201236013726456317538368886326637453461669043750559706796621064700385090898814849921009546114399250286753145625027332800372726344959011957571165855290902925845313900002202037917544981742266569618531877241862320185826831586624322730130728440921571803735589981928907746646546450387893759966702061045754613575113474228274017766380532334233593322815214382439486997018273420807239207228676654820447817177315888100337951608044612166058606583664665525045344892747655509021725788796012714464358072622034957419227852403355993150241982723866880704952255849020890822307240416021689743993528102456822798693294579108882819468542866048050928865890928629486622997734726134216133801765461421631988310201967290681347352147918435104476331827930504914505077818539830379465680694980989646955167725377645954768880879724360620460308260783218507073869719372902998242942321611931130159277232313692640401189912611939695633843846052221153745273886934775022802266908344100161704721078163263510861659833536837632282210541744512973396154167895710676728967168773584983213713919507870368699692855880233431264359776267767511423061690734119487505708771310321977746358325008671676513060646743538996408653484355573377138518098322144187307067388521612704659444413697687679263268518514021707076230437695944829031878567732115068742183335657244676193086000385714446344147396021736957374145790711377121926191378500449444613223264167744052109538230035302853855834662456654471741429596220319094495533270801730074650019350413354469579080000634330676494784292998595912552053569144430515893213067275022056307106716262729475543957491300286143939307293645984539683446047348492292152679479621354981638829600812061716621349057631527128253100163186787815131804043662091858217699469744586857588802081518536143461338651283742528055373869365631565952262170363149827591262087713081506066440507168838562881275869814415565398244315850186395068113599601937764164082505597268777771465429086386430707461127231619078261564060223443749938424999328236898674158357919121437920561009448835495167174232629478394255159719217705286391306061397546458443099198770394778487636535605935737660216845281837813161220785520268063316650602730319781354747806898330616435161588636090233074201862795062085495969031645545127712192999237895235880677801989686814263136754819123591252380595344588159052192710976834354208496120149542075331004406606652291801388261834645236057390280118281995501391253529251271943845625133488857483474900672732928500062352561476685762394500570817689039899624053713596612348620008690870188698644319604536853811972477806231807064388355906825682330627770933825701496236209950105406166142848357570246649704769888899462569265113616473980025031874366946229945500695440216520775710717615862587856461823849079397853037590176778742137896244564149452262042776756267707582086587379944535794269052942200004999141488755886411983241487124815218088737007424739232978296514767419330342062437819094439618403795434626762770948726434511291006982381782655438409631027633553232780960591931627345772753401381072740885585748233918015058708537939788963551907933637250922703231704933765626865903632409385622602300628565603575363739976666597593198964657800729282803906706503579828127915496190063132588231327299720432043648923894464459927367236111191631120183211124947398218127274695718123696532691488651584248410298325931800308750327833371242609127803705774546730129532801465513611769412412968290960552932816956057312302255952158317169759829124192283087191420592700345687955033889126414615945468374455418606682843043103882952328480159621236447544968730447229800082586200158690901575387878886818908241463493985387862452439005570212299804063086004804879434771794706419027142394229292364413187740184527424484791071598402830544599289903106790391853385371964547187418513755605530391577229137512775344919191301001434259814421573960393899543504105660360808497160261114820144242150885239729778485879680500725589467439256863211835020142954675940022106601921736146501345752091179432742196421256402197240418258873607324319468767649715420056733833210768236189247108511010807722861366803176577240424680915426351629185677013637940719171121560118065146848071195560957176502812029208825198372239004362614743757011949966523878051285624926912853576248343810627162989674622832868331350782075882025624096575583807000070682267355388359416319418093530851675755385450316702638428428105902949055823215578631709709186102619000053315221428070681807246190573514983174642338802642348853864248438849563717825206011755833880217031134761894633350300691935831043373776585950359908181790400964858813262247967412263938750684027291690375869547738205021900467440921093361703506174886118318791001886494817401052776693980240260422608323041129028330708812269217449928251017111443048418794412574100900863945344739049060636841885302795339942794712123506631559219354204082566233897010690844036752890608979683302326020391517447812699880565381450973021565069386513341413082122346236094863591226774156715552094916615468555990992947737177524317319116638525008300107106679069915716575860304363121864508239091505547956903963884541312580039650078760773143407987715235669126711746952249906055398813804383167834324251081466111314632272747154478469058625361460437826444174429407749568310108616982200191989325289622774946689608108686356880010807093831604048087132363058487768083634951429618077866278930655403596709614337584042954508374821868148096454544991697126905255851156640595167411079572183922744084473994106820682936661099321730502191634911905488375687491567639053918176418909291932246518318987130564435744947511448295359436534208863671520345649488634583160338914460144743834556865922743098940265286261644913317089802794261235212138948483933615809358888561639392331241444565253049216881187967329670519368295958892790927210069257422255252248740652511456197376484183702932689839291204492813917764895715431661743954013703201602332474958152162449088584784651667983921190172928323293623130722117884143741391326374804543310135590312203104067977950814921705417832386229538954407130650649570490729037649442883563216196006208474440391086320408270598352019884568785732761865201292739009980307925296730880132428796132726102315560243200058944204477888652609908507034608776762808066631933739595957261293324200649974877699912353362965790486658903090997582244956444270121713448456195584801031058041636103182621513879770083150087519791728048371768092084326130889222021995763590223474048448640349902326155051713628150133191118812980770573628872578618516821070544592637631460095775696714882093387981952480152913260544426159924919865950808950077933514218534698676882708538888671903204661105983453993793724782839433772815316152584914446839772005587602424645570699133881278062024404035610904082070879302910856729093364559986109242450568222202276894154011527425799631674527183896002749059992610436789676578538754682797632108369604861033026506404356187224272065337825632750374197103700884022122969576397996731499144830434996977493945347809490915023449738486595738697516616899779494402742391952082260302914811269227898338404928405639536006886041931452388518183576172638710686319235710063872949339256703436023720079976975727127156313552338755642957441326256024095148487999591074071616372341390684663836097064324705926553759171114390423599670054926493090583564046561341290136191229535593348605798745013913696941883514546372063160805884243925104736045608408955544873881067661108329739465000308567568228391897183217008612269450294128983875817049590470441018768360208002759074077160475083419849643629252500216464460899375059823353557249563162596822799980000227526867942050586455903599182407947630533933751380182643783063214972777178296717453104845578613561048199730548033599925623598927912166460168278144607398979395234276155095186881819634023417340170444260557308721293270342891644726009941019724646408347456086921650165864912196916659951708275722897342524604210230563153190646459138163831860913333489886944104485716327715630921350110983117023049537466795050720497701394970131375111250868523987485770100129138774580605616170491207531250767750228950068816672880211457955260889160900539077795291320451443520147290904610228580014792759262568920779067996868729071242096510592322301627673208098551474979532044030552516523775655003373846960718235802406996267157483475002276726908828818361564557014024689788142704201209545628545033133189221766499430631068222488382501368362012590159214513914752030072635331191555943328965421953706228032449816512077834570340986499714043068469739908185387798266010768231156837022124657312609281061729046437421102587057449558306651832134872432483966225566799377441974348192326909310177414412212695633122154116599371056754534101999630897490788096370257645864837901749663974708817584790330288591320484503772418333457623464539365770001532863207899551616978015051822521309951301619481292042016623470283001068594419307092846464583668159376250526731250374456864884749180258165923782669433930533886402033345086521912113833668465711257301154091728125718511154342897155312773673858043696040431793239500701335608468730244357002356653632749800826160408374632388644704120851714483667647450711077041892958805742013275942828614623779798816169965820990218501595029302671865002271387453481890512340454611098195680657937360720265751025421857238569944879365643963109163926760704268924882452284679249220203743186705446891240337064228803643909303371126086461922244567687203975456370084755282432212315942352001993626713704708507949949810427094895090842277470960365947255644921541493694728952785589463321379867323752504022367033063235266163742193101012297311744424408512411942517990243723225496255621570331415931181884505437362573966605586432771980581053988809782756881886937344150258239114658977592018938018988758664913905793644382523882192374427563801666946537857016222104732251552507290571688656659086763969419166089789068615097181952186678110177535432060924396763727755334916422699422336914028228037353150882277417345403307902402565240148048194558227899667736135240527786309452199775889103781918187633562501032747474579454829776972839586296900342711742139063190426780651000882620007346341555239622366535317465572163961960938773711892223355545249159149482236048195405499548428432031858882974663855367788823195850634875321654600636447974697877235915851512270232158785680946262066284053978275994529132722715367400656124376782876198002050666628733894299671945081764662178544581297757981234111986051778174682809027155768472153792096889073937734914297842042201046573298510933821730817446154846880122530292588191293275160423239879842548994044599682622875095457873211868342299969005474299099354498008733205345103021491976442764396896950906127591848952018427622856480990911790084954705429140660532288949514008005462849047874472575269069243589360470904790647110384879635621903131823200885326121941989982862000291754879281092035457069890614072680722521372650670592738564953735024278488433142197496260477199716592803022809532071016659202472569535013289108161260483761684821292736060740935261440148599335090599534705980711932584528461489680610742204128052322391853761025824871218857237149223457439877831918951964472451349088161180131095232078943920372508779949025850941456092146470881363710287923836344166315050765501857450398052919138616968134841787103797761415130139511551070781292092629237753289333328124572171557068972628203595884597866607036229271079817744980324604347080506965546489516518632016153887691900903231898499457996061714523961534750348904085526833905176049996300845738314036058786950350778862911482870260398518144346961370020783765214721927487869125204854988911177931542006572492950979286318916077594133760063860334135256762783264366915873639421786422479335185677587265889821082246012291688966658580070660236085049993712442430277809637518526528865074519181107682146220319104859073235957324575162768023091109449027090922119615129100338535840500290823571240778821139417574524246263061476126794069143523552919398045147286517968390435078873071248452403424488779208299446299869096266906427323937230837842238687472576187451488893365100857221572385604886143328049236276187092829681640157131626583981773465557027309602771151589687446959415317987674194495347893537535982268810029760067645764742001138460267054185861316753627429118968457169525493518739997101813099228708441876495916278606636039451278221290151803108031060731226851677049008119673807324865031468354094296868562187346019497175282125610080736787125144270304460679293127440154768107383209536539738327751269353267536641403903272950238530828194029358603289325458828451014160905995657682836904603558959064389054223907328156830098490139247717860919696913662478853657084670347937966360255015291248528987928282163128898788256699575547426020885936095190914072840051359460859300878186745622727747683011023649096268866215218608151089768975311561334533153790479735996447492856098071472513758424726300406958725444283034531504119279941892041355488725187757958594177360923809308761723706246422411719885769316511700181754079855949589590500747584398614209338002427731192093159858706997191897921831313844129143259490621405704550318241332024336677515072684147642290355298928210746189696122766083392345556606251570447062684606787406718785536745262984710054399211085047218976914918429006607617843765396946268926750637120782094278797656533579256769846616960502296177447526611469760285360190720151026268704087260879473280734917167009482064958970295453398009267806788281654229191449231339999958554242127040548645252569190664740991695142540785473902657549140562959030425142351783101495442732659066685311396652931924086551131626946401640504826661295269436257696867950961502613445197519514056312118428386798596924735963065126211239075578217080695770063180968376800035436530737483168652803465589650170709057760112800699643106763803206155171674864490695228392675580500167987067982865398073288745961078747669493924320343088434303709508122395592317663534030731363268345144939358064340454805232836002856300440259467204800203239940942866849185346194336999982126522917382756850288901286556751915045123286124915275838215170529869617062431792415455081656614793399845116195042655456534181374322965398577097630988315677777697866411262512679574862338065933179932341558687775579624173124120170783093525122738156561549006236980200540049943738445842889937025768602799237572911630778078437566676010206190401203666736889104898008608469846167422765692245503063689782642226285209878004288503030478736016214649681488906581651451502303289973384285124803495025116373114235532382551091177556123721093710763640308629662674670225629600870770153217670802724976407055664418517530962429774261774815877281026045920419987826173094440135389219639786980247611366529227484127977467678239836588111178422711428963025524645832229250688103034793139697561821875534926545373881510626185954500109769100802653110177114463362280782837934466252594090325673998116036981251919546369462385335381704540127773960214240397834683711053245556851219425557852169819761772993906776417978080160598967629886521960165380201745303002345396096606484398847365876234149610205873518276673994462917355605054403331932130966178772100282337695271734991141278187412306105942698146539532293703991447586175606519829112649668761662433479383767405538297639664887065560127285182736439996943789771861483778726147205035002053805469977946123410483448653033516633025105077052252910169160565178467826297700830417067292529475437635119659397004418215361749254735982988902337136713072951385416246136516298666470616939916335951393464726116872689408462315432342410802923627378008158531966858191203171473031748160697475020276201570046297198268678221410359249685946656043379138606000839153657288416259159191619799114664415544416836200299460672345086942298541428476530748540362954749483474016917929719446116142947506270215081129705768954858412436689709457628868257989951088025841546337173622458863703663091585347410218033801747574113087159061065254380195077628698055010580758305098174309627593322666010278783304718060580046806785053831949658098349773569253283355624075840383125665571737454475432949663685875868522855193488248352217555772784081852991959157684731622345857304988166224579755378303097204677779683829108247960199754428552722467986767651524303163215958414065071901415431427025699849079714679355406744047786082074727061238742913198891089090091687252447486495088705475410539373860957956616776455687820901242984245346219710785102531247984264416102512367813457411298633234642647595512940197772267601257583956863233369476784882815126435500065312781309838311475235877152128164624204722330810878078737312746982474732370753862215576823188725877083700166672678999565059772656428201854716537774484979117133387674289829201341679916117937573579848101182410172643715012174013103876715290461674378882300088958608020175126852283691735650868430768346030481600660016522743621205647961381914896590368445258281773247576980814491704851801363894769901889498593659000075625046341765499241811220462145092068128881849845897649697537663549135542748966015198740089657930316252125246328236995821033600274202182232837283964603817342039555128446654395418445774785398669042251966833586878609880641800209236307928388394348277276831264263489709955668021108753015807105907130327997000035191789348134505831200811593457020465409068067504333943076788338044622127940165152593508429095967202730569111690771057411870144582954149884672531396476304166050440112399733940239867357619809784884735988712766278079645182310776736156466984902857819829043292570982237961548361756877530177609990471015682255996081926719582293071660103555240372135863222262869380450214477092593697702050220013214094839254355165065179797225884725307665106352430989220207585296392105304947599063252325225883807221674330533446753724909293921798617723541723237740699087147065959990374642683620191477443757094315555701136048353114021587137830758032908794191064191410721053830576834104604100594388346718562851184249656969953964127413177223733220518732293873651717281141856422065063599754618350168541121845934711710345176106464187306866118274593605798561062400585230525904016221320406194881880919776278673734542545978055726777192927181900782998147896059370424689247017333490991396973569570357016505519057387079363749910865165557301300573238092923443061164898752956085002187583143943344258602483876872540543559750902841136026426101950717587242638619389777172579573051689640354689219777186743653388007876457131144323449942225164395988683110587791202429582667965820596413852870077921404772016910469700162358899087759580688164898884321928326616339487953141615195645399019731746731421670720651869172923923962781968034053759333587469780549421669795458198910908155050898289226802856566741727967506561513895750399027960409683432774528886233968417704392643148944374637784566966107963737854075917194155590299133528056253950764983351882948988288833170024408737472254676497665406637157721120043780096355884778233168424523836069106398996952869758931152003233212652307513443328298164132119881328846486877815326089689539519383795647350214024003293947225483195554903568004609975022132474451833934309992542525652162070015893339755635545627622342524723310767974756727992787648759988320509462777859938017268359606016937073421156608478639671527653887874958548431535332937268571136125685749960386399777303046048528799601987189235753677202447467325633753378938127037465340015430103643712074522253208659288039426481291309932164814452254717321083269782453278204968468940688866037945444533687825846296326866987002674133744367981809592697294533983361675275594239277231972822961192065211562911129694994080336454307296340061911361194675475505864260712824536646641094499245805976126313488902975860053276646078054151205190716146023668396236422905708295339370185695126449011052139539717097283676157761634339361392286486918238841449991193332630256973472303394575211876415275481351449928644355372119020986923563340049082969362967919597727239300578040893804362030838446802187539455243648990609670793486225892026413939174295639962050113220600868834004076966470009088571919743343102239032532889590944747300809903969394220289978488861525430799264344009219508137597989831177338999934232845377452551744064826900949244436304522343909380891690658190356589968677309039171355256545429999032648148392919103669701362498263048057533770694820451504784566744551884575796833075284977962493060701457425809365296733103693357771160294817064030317445540854533790096300122230201751316905260049676066631348989755225861850463611710373204000829034366572725240012471737190117231999442348592840605300199956053331925079064238497059062125175381864969825043317825708257717945760369246786218151866691129248111438150748430008654063973473477540942328039365849248333614237734129546228529519627231109358993510406281932779360341457988560304371327689908564705826115182176756254068437786520411792087620307497443348651106324415428325628511888864084679281490096120291526194737074967822444238815848876224582214370287987389827593685568432334832265336968609069945472748372354060341971952773976742262380987411764485830761173334422209734778004933984255294127989178327600063819341371536983993798807431499295091817278668644859035331516847447539752564118981797421736095578881393672569815219389013291869829680923971177737672803551742789091821375820069410708050943161337205758762812752847522972594317343203222998823836336213723666479225416661644906676032598920299941993493361220180083278740144404570540138923296172573440932220905785741509757721128935205400599262396668536170310839554732630350058776831426857676055400461869106008324488477178310048734724421706464398817844859321516832100796695037084144298770065795803614363084153906197669929265451189238545236418119667699538642406842977708242987837732920713123901208540047408222037005850140981562755205286817029086030562677725981091907953541653013624509065051491319225100728388336701698245340960832147457730954633732570044882528746305773731270868428190155987440381631335058132132336086155721330256549380721007396383331906058651801934498494974236763314183773657197298216803203069950302615852611136195484576559853516326538846735353952091013955949974720994489632769850935352584583813419945106802187822055623342059682930040152999445345629720189484199467171760675057386377149890837864210100293165673771557366814824140086897602891588241782988162678481384251536877212476166083959743186923392311691013009544527023981912105242060731254725825731496271487175056641911735691424077184078335697761026251522312168622677942089174897974293083450731189932142107524015085477960490953626714501988592326085603463753326016266289127785396849490027554222563766165725051817368741046623983066044873139557915910292071670239200975667852749025032675282529607203986587034515700396698387170576399311608358075846639602258430955538527320413988474001896688960016656502339720233523152228247387863735819704836235904459825392302570794759589573508545189163269744374721702701866930939891753498397175067022682506187089445846625945502107051390608396369304011889335822599663718360583742501699124646783115801368968886853166357253518167167685669106373304565688547418454006185323582374928504170587466380990246529739443692433592001211031291364098889378429660109237726774591154844743539801722151901995507886474091469088615833007312594963222793958243752233681161617956867367556812368379487977129228276360235575525719144654243074478461282715296907880960664098896250249761326821562565207727320990571782821475764801081600528229687114623294110022717911486554770346254323145234537152575443645445700176802655707834666320978063133397234943400649069765384900144581021447297504796987433626867041659675922983744473995745475086593954785097672266485323627939770929724565545635090303980521323625685341361177757923982182424318002562580755921457027040051368563745054053220848389576059472616459474250926291628257508352644268595706164955502687357577448654572078067366577324951984192355104589077922141168813792622449750766704819774644118518582530057804882064171494922982236876874644718477026399158534789624168680936162745120386150875699069923127668519406959402184024033733010442303980206935076512011265444175276061494450262261395066735172301434948716785720182349117437397067177407514693105717368749100306381267799400524218571231017298099275017191528274346058706686891828069136987679968642186614999139280710524336510749875346760806320129466821883646875277727501549564229490986835828857713196568790427420479032638951506178713523630435334731958955508115983602703998110023196315637200861120716649409586716983871133843291479159024396835075086910936717000594321712082222124525041296484028581270348918846660691386685926106992705159528729913354590259539964449334062383508035594421579985867766373993199451336870304505129001438791071361570952236044951151173631181879322076692626727550881944487952683970230448173885933010262902491156166608896645508558930879451880732450118632500715892950234789473491670822822044715704918013383192845793898897044524321299016548215883336193582795341677035867153542569412624258118839196205853051379416845855839154865074340294641596701936863464162655343403093253174704160273224560412126752861133638159816296225592821525917364313984826362068300905012080373632975406364041576198346427405994446860927385429878324834048281179600032935081462415302797282189016938854794218486779115087221934822912441477573292641741901587623879623457356972992316922727320030682753165239501470682282821032970406219879910461517082416343719568126227170640874001898978437661931630098048015272320074171509306419821935881274009302547379542284216695638980372851898327721218126275042848692651154151993023531281388044428365270636764576948412730525078100718939569516548215123011448344682891222916393283159415748404270896973595556719701993494325338100731111450034250387306688317251501646111937360795705761571647653680366165093861329011031267624877776415416036684437975704261552494241290853407929771706099737938575413095215480592669482071016271336068974191093221461730344201497348201010617724691910044560259825353130430133801714939767301183402824603908338530134667296199545882164052263938373556951433761585611963241664166266825151801555298943740578113976238386320272806119669262292527335461393575795880246323515495333388169174192990705472987520045856074524652929097069207493761367123567653560486778884897967875883317536968035796307742108291278976277195720803613965938045046484021774625880300934876611049278802636883434229983419180211236195405677344855478017028705002556193490277401660434046750281388941708928658211561287832489798024844110384553082175756860760516433487780239879270225097205153917781766200237781415879309163323222944205770245709019055552524734620165921215265908781387114413982078160247317076270957797809058023191046068857332230363618362239204680546084821350501315905970454945211946911203377049082263822269984258841454505155846164124585531038366205882718264807738117957760834051915684837108392736318299131588971892524562889514625970057680483312902006331656398388688974168315628249036970833383605886041982873457316347593372291405725583506350067358127332794906473858525914979779423919142788897731449965268562314462641069242342158859757806297988899462058719708132087838556969494147986048008008797170381767003319629583387309488261941891077860522291142981207342323262084085432324108603909830891582557815225063310384517980135220739858184984360743811788875047013760901688295310229835475071938165793254828327298628143866587833763512122123764638204065941270101125428619151442204657522600106340791334593513479499026110037196657142767195872499765211529448894480674298155119536710413614742616793809069007430701342289510585778428269706605542830485518088874074665732552722354324402839973764644942087966759052944717771816037155661350185952220716497489408286840978731717077883464253180402089294803154065499062123650593467815986397177428385737930138366399025020287941080439786061737287407680415189504640194702593289728444964840666354974806356749599679631750361018734247049389260826365711223542046384757544760221222907115886592895895296115374162244890121641664186815621755991440510045378411460979053937180878245912073137227638143643308624512362311612376415535454194686152844847068419253294539166918797300694142043666056896381713793682494444380493946069321381869568709284544665256814098340215469368781459719745506023769031291710408513914431023522427966252917807424709006078064382204729506532641168112787584388675632478206705697217961585275357592775951402517541746902204023934319242359720491151089993443039552520192489428613052458030239994623929560952639879754184220042198852306937941956110620568675133277104358551354522531834388968523006834926847425599089064743733390192557923778386130035663589880341344797891689909710258784420411533470884749230130814148836447753922713064630024070376452134222721590979668708796444142107349160257521319568490221052156390629574685676682796636883112665760329864312528218328400734573486052775606735929544707257703217959414223781654470257178830018920375994303922231217868040944769777564179961342078132067603202525692563892773073735956132057201580286763596139358019208747892087049595294370189561915364428498021689676870901046633627207307798100498454517582201174207758907429718093722247435796256881909730411500951365330521477361090164507046098312058127526190684608416965937938313707258414760173934845195948751426588324313315754252345498771938432449124342831292431206068835546003100771611099222575357255026034656596309663047706832657804844900991646915755676383650110222016657309729452815539605809693236363537618832123102161075492586260233960593731556347311044828478094556245232508746393646058691045144902990606774450215936514661270448883128427336866715788685961859223137494663846495670561820945930722378661821966939730179072606795344339246979606463319445347117970719596799591814571217268130529642577185414530067745677574252687212530652326646283076124879990293557549265320237839099980658110134598060081070153185401965202085037486630678699729808026552631360388322898603969358676778081399514717984021148843747188130532661808781268062903325561770404321840548865008756037876835602254691881090929985522659094031833598868913156800159743437578202017930851038853830666924074742827849223765899674530718585033521430631065584150389171138900082059334976923888485899503266962761861993276493477551970423365786606971776006974772380201866698117806690204790170685070773908386394560148404935319741756366191976065600884739949866542644829100909790606144974283528755417442043624014466979964865835154341248538145849624710034505064187751405133314560385787606909166982046914577967923480966961993107333252687796219169522484467471068407744102125433786944666243634396098378559937251471219248012531456642257088790160240951419797905125022410562572543847211588261704302166611451475588578812273524038152573144950514835262334495844605316604258758436746109251129001719011058579736154208587984283866180175502243725388797119660905962795625114828755036912099309905955922547619523312658585286657668245390534068787965306980305144293142498262487946950143852879718279044255090198686653130921885706069095598049680394688260317067258286869145411254473184852887122497739822202959927920540868363720428802670509161569136379146509444931705940315016319331099537256188869005527978484279997086770896294434909706357873435222130229049645811364010454578744044454817592665643880809576052901481964487496902118213965205910275853221466587033173642320513693610838398863060536263093071621950034234585331091910301453481003887727735762207425402838547907917622858053227795311435965055300100691944414123328837337033986643120650147681479488613332601881149596354609007476153054453795364463215735715657760596940652442981902249595585897487387936078136833171118921307561887351373337092689242863597200194272350504334251450881511273726325284814814355789327436280302486480486945423641108291997245633334105909955766804919205115252776686179083842538749271230959217153721409641622567073385663225548648993860898219581044958445398809543561404814807412830542624602134608003621402899183336965671647461203880203438164584112080674725097570413171357115311011591208896523130826140612851706131367758135412716692558519167951852160228224286228691892146365331101953488094539728543137330922088935496211486698626069074297990672757247800960551587294219212967719390758466198569443502608478391503994158090687264752197687536034811274267340935814384546167529318950374139895077761394708618840795339402911975815359920362822348006774708021074723137962367222166066473788293702100721044058902474181552915253468478786274972075032961217070752886525246425038505200858153186897026687797741972114266821697862876178416767017063454511687227595422701439832347444110690383745757869574042800912521405975490474997624565882980127160526337847727320378926723737283813562784646011566018168291719570837301457977238966060269328411366832602878604298685212270441377652963186503459925901772592287089047170414673614267716099882110872280287902159024110966512367402783547190676360175397435782659332962993242067648661871834563499653963102899883518671126629398271001312852112038297305884315065786335207406824586121824676043494943365182323349541488349646963628484776801521053272099161587573948497442170651010604204092402589609022513433285984139276902700262581742886507167687359089971770393950304914087773351730991874410867062410379352784368353508923370839549798151921345683254490778183696166696481343401134880208784725616186771211092178438756543386608715650330725075032554142307663950758451460846752310525062432506774243113484403512086916625730479005360188837171932782031303248991238024310042779695483209717185162376053127745861095623609146556417653309123537363513202273197276438810006144529253748278822557172616091416092331086688954489170624523584177607101613517069000846742805032484108667575570008566184038422504740610254077813752920681984614114344179731777314400960806857399392272585277889683865355725795986322952275113860738792712462662856037609997821518192613143412962440071635096555154691461534330485445305426331831594059733893522082712680479061530899029519226289872325619072346357752796373413580262699034083225170358296373785062392323253849115275915216054231467986041176141167527611069784704774175852494467949432892240839687671612500682837190288556454845737056081354950055926438934983900409559093708174067374202380808626537889931929990890547274955504538241403175991182330088010273929209695740121643622304224834392562973661913505047041826017129028189743899136505038628945587586447843371845380936004726479610799264975586048632089018543921895505376461649938767255889392265986962673168035405648870806775694956383867013201620187283878261347026459069896747057380318879713844401025982320600550050919621467145564005126108283547294826436073712054585859315648536798401370920933268028910055841437421647906676747472147177229876313817641851521775715642995134024475051493953575137542034136692387896366640742573661145811329909789222883662486141941681003594194137489847130105558792549861209290550345977742303421430893334370756869151560906299771106422896237065004605153089778328010205572988857834565252094054897243399258375592945694883039787119266978957018466064392413873543892023297094282056718349059646597496778686924114172507215809673375115747166490699668184584211819775766352508526429126513502070215281516941155776228667014190194077675701239563168296927017642864777947744325790124292597815752359665400362948221618159769051528930672714084046827896774105724767618712805353373489335104942996769430156214494838148794377474724153105820508999461344632167959229338859692863957261353906843292549557885260135276161794368829401226374822224622232570717277941467622045916015615288172197079307157453106891782461425712990532644291923874053419570945084535224834655891205461133866103913663270702809313090197637581422791816489297458110923809003616693881327365609459407132176402492890507236090416715950106159990967164141747096620143300200107473272936787552893410548883234732411101895154111040519923264428520749419769825215402541257620338326693846235896514442407940821886401149481856529264105191018243604384790803650882368375633775636525124202257668323817042798272303226124658864606659430863161840730089807482030398048019636367493795137654574519491896052292246245702795971320785876088283652558411264033726088990007050289319492100803527121834351759680669465550491706731099339540382650650732879764026141714581459755849518266202800774687404097209324570644486190065292389790205923940074354912656384305212371189614750297718552058234333430490125600993912794006230988243539829384560514053984511894334073109245963768864520691673027209292790400130623768361909814306740408642144054932650524947549335571481642612064819598627576344851482979581817128822921481380579702397411222307399184479627006815767684990315474141116216125320893045837140207189741003503368559410270786500741468927932289792860674432008391340229093814291672657855256685428812418548086952725638881915505842079065151200829809173545344904916996964989769255670634164575083011648285731235991776908730623669895005084110383152979726531118898706174606190123694753916659393540285236853861376551203760739844695079347128315461193627684297892093019524891419486451623477263009022071622026071218256972836532136775998739388754492402419507154270548572172595868200034221731717053570647498414729887134451134908199253192200877633023147843319437742445542384718037189678738318422790059350127052331195195509511171071434700677980989655639645180726364693825088685659659407701650341410943452192197481553653062569841403605632753754694422622367268045148915283806632595521791376893749321779992339354425146908796959036040070439189015129188893113177355480223961119075960688655838052694562217258488870036229394508113802362517756901191773598973226152295335802066426164139639008758191121360115703762901974290960689895167833967682406137357555343861005131898764511036256753530124906678456282976356424717565810159111289499528008569735048810040283668196937217375995959467017865397613364415477568922164975178552040555958036223658185693623162910282259784753738872426572361003511665367898253146272190736294696569132880922047603300777354253914106244555573963946911985408015526480928312814733973697701679999043293959302456397215679308509720787939329783032411328513050107592981048136099323866302279613455617852928047178395503150147561826416428740579059675035901431502210032376771469818831296591603515901425313201514920034025039597336670187176652920375624136131273565214441482868360288268125151141237091627600922523378017258950187015432091534905314977340528057918898833160314069396309591697368508288704806093103916285624452383309350878607168767754186481161611599248959140016256242439889245459189599536921397098281025687830381722149561293242545369409590022968579657412583368298634143498911891133150355958441405559160706382339966728617242908041533081134342647726929309499817612736498729734348877113701398100825734034482756275096823531506438350984028615408722540786058816933446741476711320083895231400987650470377052012321192016232290210698016518330904906343896157475296138941642603273945405969564792155163998928185055628114387873213588634563341338696699462307700276371809653012263077259474229224136013896530371367059736298719165167115639478779022233973755107787667129259869508372177737467718960417155338066514431218218311538798617247064352510614095773683643945404904314079811369198286399702101153451474867006783061436170049369915455245471964496385405802453163603491023723678206848488283664866803663209116276611437926270359670537154736318643689113853305102482250195993552100953321148839620028609463048670022904846874855772765893437438958203402226497960249344011279273045407346841241395667055240679610737041730059843972060206181050017639421611533026732507284759098293067464821910594541618941207763741974316456002015418413719528493544457068119173088818319721924142080131546787740904976657398346404229084806566586925157477004706626067302219220566380937607784002797741269602618242806448380891311094353310736975621119126121435465055578892338353399936071934014391683428539807803568406888292008895260197719318156531742272005579727216630605916326172313939822851394011060358616055207132856273317937113637370841016745519744525528180997649685677751189123403275827130178219005419054288990988733061347234726992861232856089346667933288436966271986181581044735730611126956164457312333772774633653496285024664339980958928769963079083583454788674644488391046181554023990186571134006127670308296087913241076649044360745355469246938059706084863510162729399367542366443845390101083785868311820805253187085294397965646811543396996881969515744026535041082964718762264294754807790130025541143352505795700973679142273717087908502210503672356159160636925172186984415359258992905216725605014130357213740979102878388867936484273007232548805740112915422391589624858266262390161271579224879246126791707920872161248781089162104541420255935874608947895828754950386816194718868281727562977795727374941916823630031622939953328059066522626119937587937559325390318955684132582888267784645606334718772561191695527317538380405391392176955786351135974562107695577868955868660683757272152005765956564305270899774148572899095621419041950029625934363641863455056857974894004740773328459448484121615458917180559480791708661520387226218580436524303885840392317491906399266258803143257585785565792282739641157584998603365011573583961560475583635308456395900999783054450705119845145979316933256355819935319647652991770583792973612610932753341594826589958001746583174960384163426324659131650320399576706686963165641249548505274670961112025403931533042083420281174547567064854242004413674967275015978949610107140208177612468774664651681561456758969072436404621861747639108541626744110491963579683702896140256531277492285601305984040736255425142670711466274262295804250358887301804964527973131379643139096142947919258616318738991279507306169015989822296490049466828267335605505903789728344547396534652266900846794629244147002505296671595496823436403137718382588809474718875440023658044996808350303978170626167161199314160034860580942178386402808019626751360053155309438650052148939307114791745955516234682483813068952754392079554844076949647267150794564772964012885907496480954640889598543848273322258051653960243627898979017983064183071399962618812518775357159200260613066939319586240293854742272952751788376373560285280558697843349207318488327347342174618968277219218604816606830331346797892803231021809383835348464665331170395188165864405360743015122188775709210143806059764899260681312824144662155589257661428652503573113553190162877699174291451477127971550981980031437251527559093643003082354793483779968081027719950342720556385038318775271290449879282449284918801108881105343609225289941701219674360151172746113678815006230624655646509891608831117983952091252101232214810214030006071884169963375163930461741584956665612577576039494464222295758489086213173158079794877065175298030248358852893323879932576940970946129247560620542396246264809648413592605207921649297763373068516632172846913558407202868157022313654047272934424022295599188681710704686460107707111116586075297260442864059238004454845296945421242458336023291117026463133864024868485545127828950206389002597058420578894787556339085559299469704135371370332065372953024432603701056382046263497403725053035213505900559704075077337874693438393080091386653643562259673491612506185795565158407607164000724120419817153648087374996218018184586062286594603379324117896995812528150237885545822005430986157310412255282060583716158531115907653557754344917095820237329632333360166511869224144116365884349530900197740684008753936341422299575334759032488281769379745408691425139933564520150097585114605483741351940320059551894785670917995833999232247996654394470367085502807427760934244645599281396275336124730470469009345200472593020757827098344080153654619993345611960573001766911439966959784501061271390960074511672523916854758701731987495140592136909256018952434675098474117460099290487258773269778259215603913566825547245053711943169349262765651552907748016927319516646670406477626899871334740684595636011122099653076299248477607101206544211226129640601011318362593766816606330043961370402903180064597830900165047874096604462858754816563927906732245972375549088663977449354646417856087082678156598854201139380891075387609234279707796126222234404182893937286159239737207837408414367072093959433258679266783567777161853437081422090387444201822107302953280140965650632895919169254591368288847254034286417553948790317518243722415857966899293325564325161482114962000970105700155221758169276524814897105701168792446708267821287513163115362085450180498116496446054133243776523331978717845426699061775333702353309975941183192663257366043198875941649372887668200521992579107653268920158994801978796458429721080354501714834653832759468519116184735847914690310049419403601790440773877792532058419578084623888553732589860916710548632413068106758175509958709151824155944718850776559298684178017094385668468850591293397927330583584970072628847151659605113296542299246012265810943624803784009640174881879536143616270118546753555718383849358800155500712187372951121854672581027092547103395885785770898847063584304566876025417228893001974300244497830808232836626445582164804295159331383364928194400571941168149410399755126145501740176854377258555820426800775840135825926007184834322431545452732098890328068545062842754209962067440695580989456268990867073544723621265256880785882170510922629203878834810130375966393803256611823664075534161179795570816097290780252354513394253014774270344570633769121531164801290905569189891495705025812334579940760377663487560019003035564725125229722151732024747374418765991923240591255732974414610996163572943465358014255681808215752464070781416034066594437566952610343681625358771539855631850778705838752737820774417533972453765356084440928212894757142394122967310550098005145812478252416877476513921432817644479835697253354847557907787768188889623363675944445576215310205226252947564434471777185750079453794998137038428535937345619396198010402223839444147027354224319601616779281425993400709126999408151997314917218942926800702204113974398086423139341533368521567136752456705715062554663094776766679579291392916108840170995719932877526488103716760011549410066734759406432085825643473468025917575159115744069876549710978106245230313020673783229123812349393072232463727598375239335321346653600213393900060222690635370254211407134198391603794430752849435850211976366333365405133707717524280379592513318531535664682770481256412933502098698659717784991925271123406287114701117965657604720922591549283381620591257011845342706607022636693629962370999838734453445318056618602675011670043852209989609495848030827107286143221611237805588294362150800562392254199419619187472122608675550363118952437148052849954942211699616194246995455505695135229011985431076125382657242850457657981560228788302920590246810224639743829106591500752458058151359408819372884854332607415232998594061338078251358819361399599798527362682298665035965597855893734567014688104345439653335067027964214411949199236695611562711093045027943097132021439983696666608718178423226123490861028054253720472515725008607812549294331642885382451728553156707633176324779845356749429873728567332012443862541944142488257737675073687345529346626915076010336832726325384409946723849071536297753375649538207836075335738822072046243356309153612964198166736947623124596413223071883372377997292841832132053172703994246625097501800900705266598886452097989800409950336544389255971048428012315578555589066251107108393020530494597466565690197486760345515369537362435625518147321347190918887653204502376914942207019810774729248235206324876084460911711566469024017105609470748210170262004275225356514053387526980477954106874109984804540271807518222657582131202558122733091039155416408268106593907462420386887952604188841267641544719758956548606100407329743631760525356973304085319008168680363733958821022248484728270515509479140481530957914891735698076360946186812833493210009579802436725701429968845279448658090576366142494374937910123916443497201594749576748682109278688361391821934673166112220237131734442344526743417924897685637854578842042342857955499159778870433298263319810860684512636632885755069804660093686690867360366329479221460186402204829439686329165229194380598387704185871695537930296899085729974679498814508764300159480337585802687124624722960112229690817410498874827956665304136447745499256728949998923624698823170272202019720309316992182430755350616809619133212263966781098066231265836864630890885346114418397892928978909472620283893744020601953033915570505172058114066297689976597855646014872691357825785993760221736154555493387635401203760253171431503426317053582520228006170752937122294517895348415473557832132844297812398265251135874164575813058306436028357370655259633021657032387387163751770104026295434897398443828285522508704224881216399862473828338090176208865400310646662050160417285085725270925569211247155205553827588241016600918885590437055780174378867274909597454772594894965549020210108202966726412649271734028543776698008598390455966990084849631979618888866449475603302435126607026660973542554425352734711010302903601596970984480576839313518953574981934026412067032129346828765442033337621459175878878410938783542857607674323432321037532991906189928875083040081897447885084805955277848774304233542983132828849202993704966528612848584771367182424831523592222815550247457137775456107235528707154456630909235795812501357795157135123215654753942110373422877751439436553931461252361714367833593914677661738079680839279229731563742984948400220745478614565781199631949649972974698138745813706334399102886257815504837670463356533948410728821435316464649238011241433552971729617247697723709303464575184990153476780668633926942946207821280393201906749402555080864902959247079027616632004364200777140392809832988132324452902485511125352540622263979282167404511038467579946238522637856467893640864836180879815833496343830578125422997895375982474585933468672168031767180938176878930525161077168090173739743825831740782098353674097159949760180705926011944552202064385209964118667484043872908320576591522424518511941006842552461633911597847320575070651011155384576252613266540117896724804840818528517646983647929509802638410144025685453824595581699510794461098885508921313340726678405973810747146356210777492942233961904216979537053540497527627030155278615620435588339560984372916927001976346556292752290769855879329078385563165479125678611982222797353564034976580971385275512899131593130748451939041067600859146485999515050845946508197030747372256397548821464258095824990719635924676246473134361396281453065204862827380362137641352766787344461603822229997996708537342100047255067401646929407008637624359964017219716601820352504832769702037268230541017112362713147193332878937734980644756006527005731772830755401168204132517124851140359537979412428531374557807305481602332543573364084309055540094961445512118964172740921254307264072020661482505665919439164002916378682983945218832279869968736251706185700669820192705821711393427130504969852594881958207657102622325090157511428227628068307405532492788013723207517177578848184338446153044885501495417371434729582382413175150302265876094537409706556828127873931433438483523844097399084838877915177617568736296216459548775362556911244599001666188095547394440681039191136507217256380931292978139599198216654038198334976398268936453106946136982256421371268289642790415731691260492616352471458475258859409286619915570747007610458668482859205198058493466202752716571485295357951693313881354520782680299589746947499516774608518222059220146091692748683628126191536988467254507054857506468925734318473826062882150236521263052338549743925029124222302375925247474513887132208317519477149220444423996606998676584324377301804068582060154200850083639439922052616886815104465944035292140645042077807745824610088639139565005428377361886513749662916396392273060237056655882762996664973263113254609773027570308090859951668735008386322667532689907943949313305152143971094423992505206548347065218977190479218871003713358826830823023091593466682633199110532410387155962323685821353986587184869375078468518611964834593924733526380287260807278901574082449942017968743447005251605365764913705611690369182615099149707817695868105228655262234142103652089392589411993154546759048194483832936855999734909519038196941436961128719000299393551837384635577517280285706282224248089875982166561874822569921437634056798541916856360699100815489070589717054375496661024821930776572893521216897692311787862264305817014188000293139955281567279502220729349521216886613707036910451001289941668207625740739317384804268222528780597450692938057033856803388305893250476232273078791993548259307109352285657355075210208387910545233294607653082840472718173632610446828171136853519941851134965872288138927998105316238592520306025050433126624875955241985585449560063251869179010847666855480166399220633660405721007233032540440836295883919893627960963603392287897936247138601687704652391847651810885952505246777578109751921935442200740333765070652837847681356407437854596195911033488263347253651587423256297557983861598561576581892139210286127978905327606331582838511864533660987049167519594415852616676286947207283431067447734324099455164212477436042597241480508250166900653835963286960903984540003819484181018779600213737019819012206426838294165961527470241043235087805084497225710490749416413776071024798359734914428447064475430658488815035997865447815883758635379888540291377740381939952760423094606514771769899858364910345900098022632128013646034918368415290958225627692767923094032848796603147760098525659836829220776098051545681553699752364057565505024754143745980330470691571284547098332784542080604341884134034097028150205494067513792467597397506425881022942512233593889744940613739291250962949587467479815216054574929194841027095091108233704128949800960856156877666676664240529927006856987969493202014057955128252172453392884112281450738432521394385747515961297950453121232700041598522160020011705327318378355637719642380992300145012378923998696204050413380495359490892118571538936826290666483170934081420796163924106935076025978546566144681492065429930240079656214789457697978860956351445988051736364582095978655183154072434971664157085937206591477379948889447700647773172279014807364501054618237144388467620587786507441814378452840295939369874171782005282925995266117400964361429831191537336582856530887355826885989703688965257757884903951128911171971377521186404565368694693610972440974775763965120251843450307334909201829355165666633520819365063390296648797275428824152319069172836397138521830686575023112008644118260385268671711952845585853707542101632152856152497557423492275446512912195932064451766282954809097484436460646271215818984543168454373220973130919695181144825737088680520433168222776043875537180986242706255579764974599215783300847439855946139260013936434909082018152961126473847874959132179618737822824403739635554625474023150904468496042684389721455050481845747280188476809200173291535842590066224224125494671485687390522574492467925160776664385112344962727492981059390047180808139077879683221515418971236976641932618552496495448735291003478199934467613508259054635430916343190299286868173772158214180154079317009008028874278916342695931813663830288464281898478355177692914443591836797225146369454023947214992328992342776179288953536817556988633032973335168908980876854028101003624482908673813345534500684054447600451858156423478840753909023158557154864979451595108141650670372055144095404801414353055765795754391680513714545247126291193198894904044748148057901617331518606769853149121988717100537200197592907582677998264985259577782100592329544510580096777996651736359094730284928299661725386283962069673316612381351533304689885197189603534561088823924555197992897780774195518323012350665682285242193260420526959304161005080744973084881791600514607841626580760702284717179031664516304767240327661012379138350218399215373284729793052750166357362012117419838240608444619804816350499867368939933777931535723431853967796085658750555224341794481093770452531476532674835251544451420946011519320341138100345823625542757795343538624809376939765257276569065384476736966792920388277979068834873764981546442585810255412131526858745247735475729067269885718407739412842693787189080342159865855955004150751045036533863972051294851871209749706813964404639232859012586696144304010589142030885417906077905559722062051873120012250099555616106797712287190171068232532032636186940931089998641554432107255446395481774208482000724780439009049807688705980275006763615831984842039531434175108550248215853950910734868233180544515737190314847745779372731083399284275137558600608554491381145867078128440540988379032745263884509448186197170301137593691528978986431023033350193606565086337699887756426293803116542035056074063095599239693920362593406042852016362817343417157156806635176445132238556500494271811760941795825242843487721890649478487847135659794409830175109182400236911862460788475723075803916020233687719645891047131039878406954076887478707352329289340016434875719420327544722533694268864314073247602996642903636691696950890412681991852720058876109187326172279129610464511242368130780996235148972191189013452278386494742868722566215203504721859282913166716167899906889914006553524787792737750639350718006494140231513820521443184590667027034441976846298342208937516454952484691831782760461767988902175830685176164972334490033227421428670489456313573635951132836466426314798779742226405753183176435207879602175131189112176719615215393261648690272811787311923169540992327668279923581009145316510352091226968596473402945198196515669378632263316416374225984426431298256081957962386134739570079181311635284480177983207213769169881482960894849382237140485840906200086972373981472172535665832863209848015492952202970526811880769898067231588580049395694905299738105050032834868469895505915565076123894406425781685035583333146989365545228284064522501442342180777786719525877661107513465274661734302797436424061824120265960775901067361572694488710245805506670935616747259470582596647961107295158062725746223216666831275006176756602910366260988027881505956440373788351595107726825285688661760061584762960282765183219569053430981873437092428243908352697379148306589621852537580791506345584523808927686541119699027694520539620740508207852917256282824231371634317496116317008452025090771132311326363214796816146264632897263119018928156168709884196679064547623056914492116051127623950391559411475263641481878920175910031111648184894806473273356569072530927747001852741102707442482693561113425072606253411652151523161876146663606889599770482294372740960192345179017518360023736099118180260798622568953328549275795948371254901767521444569989050271193210465855559238622536842529005314905873106093449489728798982690932408588887888210954226080450573789593119589570668800904840338244954139192004804825181333683637110734988031068575953010112395803300074082195208782503847206584579711235366573749024345361150565919757407496979626294353703492493619295971568990292337154353114741621231761879127664703538690540781800107498783073044220516778551018344829246243978045649105221688751584166289636416138972262728354728683783150002811456358518152735311532454221570870863054313067973044001784503091324252855843240838641722351137680756965213961956049901916518182880765471788634417251970151831826218128289151697769754725624053010219514783540058310548882762448037163257801068521263738348805941236115775801695748387105215675162918373292949497554273700401870038499727315850333922164441277995947466714967495375073220545159325594990398627559907245418889111440653362711425962769489575540018646940634029921322356948147067537866775142432282710345747673427893377087905738685112667130483581765927327550919487850597273693036677847354394997631819851393642254081367272786720888293382626123974495637136355619804816908112584947087231783885392961172952172858601188181966750061880456398209105478678375728550304438489849389451262195241967133160289501405768587935519599211251348144382542231051533686732968108762560107276003963995993555424538175239519227019083736987289561708604530915318906553641192523835239116002885386090564229799455392151389626315203770067373238375688372859120709136138769574322167895910376219809423473826521729693234952264311149622599999061560590779037699255893617012496711700652984630113618906986280713534970538003653841214911183261199661600165277391694979182012542280305446056176250975928742677098981238962900736435144709436344023529640095929480367157312485782049356147911748527728570340386149088813218536679038159045079727191006645967844014875013688422709016396265061975440292111458413535539065445472994749025804121519926631317935509704788360959256790042251833186768670496174387137686505777198746625366844789037743705254183587935935683227621339205543644173628128783008632718424845716239806128583677040391127068589209524993385714226805174778243069579627408520610387568182285725031385236340231492762509165923261657197449274781675504932049178513617773861569671328273733168427192852487401764853775551973617149805989856767465918802382472506293022818680886544678680890236064427605455670593611237342802176423782724894030383324496776884643485996210228007095503843052645424679848378544781958869237917547015082268011439456777363088764812601784377657241531057172457765330309990498365302414701496522653050621148186317834354821920004918190629521944761326902654941003676065871661653381194459856032644613567626254629253039705606276643207439835493578926069872767907414061815926268999635214611018394244737133126857448927392050751054642002831553153292086173421235637697054227104664953654277991534649563426382591117032809609407152564374680698392691139478876094416517503567296499179633106368167240355248664007633153354832684371026825508017043343349362344795624916546081686573815167139934823915519192254512738775818368233001813409849870953434697166252929313843918886391988002510948044701405368944763580919275399744538149795841626465259205419939564035441696849032552744169568049448393468247400919448744607218453574919533225239083669753398338339806193811196898929018987013091075512200423657079449267579051131103599106202382887321975258754197652948229644697336477736180998768003397946257844271362427067489842759784710930030836772616211027630223998193201070395846778329699489107544677471093717154489258248604847291703059507320894360161223124557398391137998326137656297242137810687014640200623957811623874891444304516859901309515986323389520621147522015022264687063230615259863551258657051581313607412320484041807929563446137658302100851316807972605937719114360922087512151999114717490418533182032736923476375282869039408617005310107385004235209000821975678063633841317293772906749653047532291921433702671725916126974695160726212448382839014360852060635429022027276749530808673142781650658307686750385506168366822189529308393541276539800819042997008250545773279636485253239442301367564358972424987779721960613931986514625948244984745964923894111050715712235940406595506802900290427746958252287663961721492578378652174768812007851972219842473721938432172208879958742655271465485724535221323485886978526298450594275721114131598630103844485479265976467669473193456963497569445633972633941770318670297685150500391460448222139183311608254406258998509409877854136591903097520968752153216274533917668359150574534835380356303574918038042170174219549087239247354147197580356830344112613376017223963506706777850989238901197192102806123234930323823620847950385843930516314542230697602378198092507909478950703390276777295763941621530174774387935742730788847863103958529751460192079241979393825715823366330348547759938433055155864402396392136256802545752772916164645817449941235939605112448139239863380537476615692114276286946063820342886389660620420924634893053856039176796889171804398987241868401843229984808514615383184931906721823634736147649406113194658859700913116760845311197152331555462463054691981455256438224231212520982142209357549539185413706308477459155691182585161455187095767954950192248963510361313696517316394150180143012763332908197888306152902879956503121275832812732506642069896385504225933464511223422004497402412059785118870526113040391185442523067015687143025634010555683717860296128932459245831806773999782142751551062895484121133677657759833545673975917235809937906053328225821639894401163661862666856331310977412481234601692510852438773790962611153440713111747388149596941865127437464266368663931131581043547814552929366111492968475318799186794258734299896056484494552458384685331473885189140422717937025373939725213839908658050671605743554039377855283186972795169022405273233670544205992701606444193619774093242565846473254659542074638755148038210549004430406580334881474759638885148056124920593554000984991740983969242583719275263129729530504250677399459248856484798920262268439369833965762277633876319464330292566575659617714982094159794263505749762193116359698726777751397094149019427642814776249113269654390911273608627252110008139157147962543296690897735231560027643820251069016945090582944183107065399487350566463468741134072745422269274530592871631573793415464101937125652818868575911587038286439459693542680723480316526740786987391544723708648560449161092295489233636080531143772489462547023325326588339445749303235477792692782227596573248975380684023993368621594213057507623644003421036879074401907389927523108089551381897243522759476761240037226524166457813644220759930266177755505265463628649427153738858125654090411619050409413821415515190315441556096318572437326957007106683642028477328340654681491992697186517933051893701694560914691104089490481880752810218327258537948307216530520403016134063739390803788590151818045089490677093701326852960764753194581360347886321724851998756378791574850665337156194033534434860703575557427877220890255621964179682975403275713756695316623182488714972698746575787968830464707294843497249519370591952696652397085024463911756875107075168330792984426946003072207893347050798648209528027241935764101923322909118106454705081672168942476605265569211324038845768273314684026588461204577896263373771785824761328903285380880004934324276901074288247361804673814561752831987933023659861969555198363239295554414349367995346419697064050177211047669585676878855629569823894799006972558441945057588010763941921708532371576187952631220976983052751033669805575022115405550255017555236107557660269172654573703319292460406443556138212995218378424169816231822835789835684614527182831896252061138283567424478519316772981332733115529151258464300811631468712166500769280689651352208879947381123489468048933357341577910028621800970134415982380076996755255668879507678514179152705482742256339271581932488189215577546829548373617939330834682041136105590266258928565684574893903508061560538630754073725446713226663663624161728694748387279313208142985197850557754740143121062584297246863390277669805845933855590109975721259442275496920063037926629972087404389460215192387778256129685254294076784877950713139896264200621940583324521802897236746658362538693214247863241981962356300784023264503627695554544938325671516695327390441816694830391529271797099345123530005765021461266102766738173617041298675040442439657659036013496461703822810091812261530613124022834235630964723229105270968676191582329970808015003605546845963263841710747221608634588915314682610123416029322450042207002518476899718508782761346982852109287565601492464490132622868909422734990624239361267477295262624685792136063722187912924136913208259321318689266227161379781877769098188881554866610282294624596692186530535454066968667180435333535991922278442972182544100533221139050356309611673652213954331621037929993242089214071407371831278514761853660340190712934759094051798805975155415665178292296658805712695640071640923749962786016670930973199078086586705111994486035015229538945792095966506541689340965229133518263219418216029258322800138678151608970240734665210870488096962891608985940124650796595908707537013775733474099840327483015394870786406054727372534114515851790084061274957743786600750888029098145087748927565660363992444941350233579103959140999780307198816669180897208400719266224486972277695950022354811130385901011173538222488340298367049294766226040958583499673299911702751829654162785257463887745184072138483395656689320815595876637563462272156344006145110247180199311359190536423682290196497337288940176132365506810162712895702851516216417822779993395644489610939100651110629395029129118992263683008582459046599018256699692503928363906816764740283539839891623469912868224493010762224680763889846891029260965179340860594988123569762059013306731995426745828939096674445757716682675894539163000901310089909237589867667261786379534609513915364800512402401726714295941126300915978535415201732989722348954052001596606842024601683119442741031216811204478316065634984807934225469625754184726063688333369257343288487853379922535974829326228800805684661640985564828283984818062505067401148192865438102433469214710523246848662676088740195279815490045466411625821673554954945605687132237879005313491537256804165622004753108376909620741105073371880075512549775161497168336626446444722249025816953191920821107117339720202095556008419560317860300057365455409363988529679372589731887343719469805705525635894825802561925100816095972623634679915390499307104408181416644197311377028486732192107502251033266335949492204895716596917567814801383041401013753564184070282962941196743222012394963897780286140128453457622547185311009866526018258651602151817946821480967529226563953594910898366309709461376860829860941073416529616508230188754463330464179068203489155679451402709934368947313147714037500251639184110496824512549077471590744440716905987220801183452228532555514416426413661736986971285774751058870250193660997545484487679765245224959763452637186904303205113462738732719704456726326925764915741681978644325394588776411959352909260892525956569268692089990451769400969153381344880885801000477063952702011128221391726117654720382326373865484576414003415464220154642672741714971622768169173536071155185212239853727556324064974445155593067279076794179464404208178791393524601725288033066210293896773502019009648016978737206478446396920960440707756643988513075906872259627718621873615159601545386387516241948509693304182953932313704966696110904169760139877754829422412201973131351582863663374308503323809707221667244967268126265471303482785762287849549130535687187632050075045424753928186685317412933029416097718273905301829359391423470633615105000290808659269028418947027091398152512005182105177462394985140560013209726220696297497239654740104831065050623707036184893417132534989441442049782108284885073834629543635393570695212545466097247689997345920840330633154789677429124370771084638205553209764835390400479510497391028426041097965918645527008634119362741697529272741713698011899521423203303309360799088600046455767529934623131762676392169908283963994505237050744330661027208245920905951202574397971005776785157734236670439203916502757322180392213964434097307728120760012801940825707042815846919432132596804991131579204719711739680384587099595028606689240234857302489810730995055386426705094167961009669864946967195933970118484726432514476676132762846895611675425639286160777227021881024141076723666483883211364330400356796086572237288765774024409985702604886369919012363633072193056555646959827215202090426028915609647535976613911482642110039665147112777831555983196621769530060318705409193125316414915273395793229582167624019490496646270914388635836973209058036229461318278557082981249435323208046901221963664592384052769948248490037375132280621475007212480264212992183472013614503365402336221567514350405242332357250011078729291092839784767763092686453817892333878958799965681397444279673208456619836041591608868206745917042041637804169769216590255144031677959238107323330178993649214173137117686902717152402563126271531523253594515885441619488843317571436757785613408902052580238934523759298504544178244362671947348605156531444948111468297236785344802222081777598936139272790379000846213049519941305121881202818260793409762853317911022903447011702780229696533326119459341710915409286698541339410853558008522537217499156429743852198122627544617012029508079067205974032839309266810992030169359329527468196229820334974512802619192342708903913015763807186626591365560584667179501323126355311057988665176057689092036749676344071811334430939535692161146579940652544237810191980422392466364717995763643761333984394545277799321808990115375725217286117525317892950106046852621727334255952318139559274803983094354128781120159791244149445426805538921500243089088803456662181030536466246486908805387518823667083993817800418481505678884559350060745977709428538659994024017696857332398026963163624748688872459277343909948853779623709340480786950791526997977045591514200504798974838471579997739436765279188650084947525798246304729623555308739174005764019119286413885110181431405422346232568234890836980039300122068040288975255417237732932375788241827864354459968098901449063244746526800139855229929406064744352787516470429180543411660429944164749651007850145422680047522642832875241361014450541247383923263716770636427158490984796038103204731272743956207272975164928975440555923761198325166610947107363716302148281750036496424363351752098837968650340807119997459489538969298753022134837254024443084683642606287453909322579229476037372405557061314632276184046347433724592263216731333182539525074565339742874039210797117125452604816436319685754621934968753272204154358589325862620560489898168111434654585916413163870815569526919194254083879264370417777018825465704643002455988661749236440365920148048480349843695305730377235138387863082140134913998603217040044219354674268818552054091135457434150319556078033378041648118701832905683508649025034318044756356422441522089023977811546627151456783525322895334455038351339391210943340154136831977923358194969097304141250247966083147784606441019244878333668716777213950631428984146310221009047684222192143485437708093227013711337707667428119002952020978587345796295309208097789446016601059540680458191855135448572666265424146272973037074768609710243656130634011537136104071343148685623554983164802473875647698440686330142128392284064274328640441985867236510087569078223409039563537696999335308035478887677736272286124165532945866370136827485645633006656131396257213111093279350913952895435821020502206030553153500418657505143718322345512734918188762629629008273611917565206803367373582606652417469265266457156493659877316203768983443858637586134237368888260863415758363201657020004018344224565529983242557589561964542274754469599840609045694039139543684174229337427742155709427358638803061391684015496125365580014119111438470995811373596065423456010324556597394205672528158053950613326452624045719571323599606059223602956669672333867613503994773087247868380173889961168723121588480714232008874158974938558745778330840586862623282484041416624142322334945820651407926358251540714489680206104413238209729632254042525029754601096521597483691655685876102813413968468268392596408258338502992761716609896685671555987245399526685285439138310884359614856720035358723536406151639757878116611023428162828036204901368688118094612039025745309794977773843618939065005612064195232582102927907091733141879953284853127905949535639583571144667238749313066980118320139720591469471318578978815882237953278077659932261982396555262345005334185369529744896655142203273665964247132383404879345111243057132173085664463210603317080625063531265152661778096348570008164915201104784549810124625199267965948243882315866849377782984124941367605577329142130393941301796870141741866515375703197938988982424813691975947786439223470279815148945893606496400248133948038982893474776148037028798866695135593552106846842245331233343664334808413259900344381596810353821101798232191406538098731110562480961349498824467752967323213435464695440004186950653847465505725662490353023902241969762841409255588410238298993328167421045229421569120294766502007603019246686049051886336585704801116583789830622025566098866671296294951769411178015603033874309390823141424044086583442016817732173804728678828250295130596596258672212988476476716167443055045775956168759159520250874555080242273323522469059186990157080022079447698003049325780269591624558015364472112977909413281974113406022220195114021390008076917149098577907858538645755494187221881497211983679904286787064782261518288264295438631312846020664742587467174921135983821538835256513857979362152576834316566609673265158792565671048776760104487545927967534622751626699501534100345987566092570185885239130497181468731287510736189510666047832830586092681455171014706146651980950756811069312673899974599850785010544401428708688148952783516380889441442397387517656019416615384839739800715610242976161192195712234381405754060927021628275215304989707232761714511918402370780680063151724090495937670191116144788143601925954146178996840459871131364095116431435576277854239032094316174042751474857506093364737599128414238185644269279530033807312855635331900599093171673251588611712091123322813244962145536683083508710343612212312858035611162920418520739616743266120497628784961493846901820049343024653776521914057394101004334319354010902118580485186313643744414791405519171149430752024485505402937126872294707904047412751747341089235886450697859655321915782045433230266917277480759119353509633635038318547294910920758481156550758817296329245266269630332480452578790840573582605937747556184287302322000369306239433335223162541135878126924878870093036889342201359752237752814459954703029690181065338501459064508866943772154185222349819763151188908022857150190031009847022696820469787560767772260325230609188205611186334531773223383292634305585508145445885897975826672370050812834594254775569632012641101529947951604466397079875120597859821458513775386512179912093997568249726846393532503956756740677548240111047280189841862044109818174026344415982933650020148825786418575216017783310656516903286288602901320637215623695395378074509361532769135618271527463345167972151538812429203045215685384291748053511164724847682650382094227328748710226814473948898838017306741954608218721709298023964509230999349009130179092949779576430189943971489638808620706333703798259510706929200484683180321726972084899798382993012579119418229324881679702437749239526515783693041924584710555820346948835389879419052065152988257252476550434684879765415360635184626193398967736518538001465853324279701271926270422102792310611734063346605143490002903436179461709665854907252825643875841735474437602641021260940347905598484165830747583631027102753388206223382369400825937792938932921676617335107905673530944448252765186911017385469171016126774594281610590607155512368586882221481608226735287750897896498304204376468379346693106766326212653952378525959260091697342662754955121755100179693266900342589258458114411534570435829839509805246160074844684982262254902391593137061463398477338181755758550616997936095629172693698726844316341111732169323763875718206326977102455890092124422215657507807440006354739513581581467118651891751585326652566809641881342147683976670973722291692087828398418689746241345731681525097357751522385803248361265953338537301267041498472031685842875933086074146019815726078264961910639367474105236745217881781426190757461621110008511906183279484003330977868001423899304205763683017803478202480246455495625832081809242634299381465853719012980003775175654737180181699928092201698348112148311998645662138488615669034973036327857485371943596539364600305412858058129595999567649029817770928625089246910837418011058706777718229487849483756029217586004698717466278105054486219083252213452371785047388143227786671261758646836441373139320813866238446517742148571352818544216412057417837510302076279367971224404469964635879603769284121156285630859128856449990242038376248152872219727028869165490781524084026077487655378935523844168342175925222509939018706564222564932259015209745334753136430029515273821323643607352887733453771618915009894136930665682399969466938730289569264704151629796098026270939731851412374296992721809525543687904906887517528251758754843651047452560610760632357017699110940066662649668642502916232638179536915792887699643641893055635184985868619077864449311218495935455350535631075512633818603159976979996338256049480582377473243822857182297475584790388557218313072817279755714808450750161552270598381105242398181474351475623757481968688961515839835105692557272736830574006847534156676599853500494789445388410506394575536293991387739846213520061599507667263934185433613323133658704428830059457249653024103862066954546784609760719574692717520230786823161759903785782483499689329941344812554322736031637431496938559422225679269132762675936025748844159765697998169882305722275711559993634870725152132821995000856987462137082065500943119106590094979159146891717446804114408813305584792785248245763552723498003791738523618264549487906921132299165228998727802186438361825891104242520973573880745161230014909909590934034792860024700113846780603851645722688376416098922922336964670513847047421709107180427368798766954585692749216331255706155135736414758853483225511177062440830292089937513676327068013556347049617274270227015480043342348681686377873717027432423583867240360408620051195704927933858050471984494258556652105842269066990905199800055196333524225302927984780040898834914971622016687956742847092449460009335812097180572853004158841814208958327251614236184397327988210477590828675255262980356342366753970120112914277597766706971862514935248708089490942288726378295638572016918418757429131718663952215082376745064526803135766037514996592515210927274281107750513166577259388278287184384869477982585265011546100690596862082860378532468385148327458382706829586173571900516854597658433006354005981566907108973644708091946473734429320949984781873976126621315875558763463182170286718527301196753351773888415513157417037791466637997471009048375240084220261808231995208672224727005996752767719995423545203678462258951377227694579161954901325122452961136274250270633599000401546360595691510766096226215778871423688906109384700063194121685022532217230495239112932590750765324328488409901165733231109666960332501450842342952212248314836878245688118384709312727481580269325698057542658826901195144092993939014806779922638078251730446754907045468430031468542730124389779800786989927019002505567513598145789043964732862947889779179300428447393632564782360512974101667793348751900965387688942008535859429896695958100818659302711251528965084077597846223345287736845920148393969190281986363291685395072900344235737090174758121044877926066482779078127799886296912801543682848084726823318699944239181107147950497460068983197408242970204539336413314773376308212532987503851826963551887490072204385803434793709530042446278165479670661921328362627915576682967999919153088579535108651885586186771479060068374779752749776128254104253070350874410242596369721657353785990510649684457280572950955592873327554943390672154907740477664326821067341864115584335059421614682524427860252413516975675773067889175388571071209440443520104786437668701653198851916712217982672371003689600544165842720104479074110050098844082148903032128271864817480707451262537650885249066668786151030363382132943115399891565013729838530155456208241945682221119142889358543122432237976995282213824930396000513654098265391488165101606671917738436990162611256040701709424781977376795712950901509877515424296898852080573985016153813756256182049483383773186902607504281016233831614113448735430592300238753463887900528442811945617214760024785654038173195794885562750811135228586712888691036669424047327673020443222371655347947663106747418598818900137858968449565702566709441390622554042032967479226889938955089320814155659503132581018447154745431312759209908961593434110931750969627884178550352759620495412946809108623955332212605268057921626988930707163124116069802775581310998735133542214545444770044797066521371009252360842662331145338721799647560507597740017573017019347950103505535980672668875141156973985478079349437546575701414995555118669940914018057901538290607041764099064010422712952462866427442960036223628057161866040327305043788260302196920215847249876207615477437607826840679020265595895371161164638636268079520254472229837081162314410263219579413775435906998818648851700463673474777252210771243359952746667181517124788512972035925201611116476163276769483243997930258277475579766776307333544176150733203526697555038490120157286748948443756587551415396918798928951642377654937711216680268385862535682127339652408857444005163165904452407719120692009553223418330572853149266586356472929051081919029093850886438675079739536332662853899234057659318399277234330005488198392785347222095255700103795034132590796958363760662565979864997156974417366811257914112826208895517652783992643826526755529315422303720528319560472212982867267810824930749436675915864534651895162487409191745196351043760713957067600322785457531384290618720182181078462205450145346980795805153876609771954653113575830415023752464012699225698956983547888916528885698067184691502248565110452419368819747765737932551488505323765456057597009175374613353216791679465380701370683721572650728590705721171212146919781414986472333696011967746695099286278295642797161637851620806209340234902834415813668126582674724986191147529395473339268824834654525653974566125054230793315199013497492066296084360153283940159674486708795190693695222411187041727604648658239222731199901254152767908274443854138553166504670991177044113514526465079305315370860572935023404240678041810199349623855247125587759384122796432644316870088069186249084333321403051759279104071978742817392009741429365469127981407360117695955358484580581068684390617097033058497463797932138589293529185247093005435799293934604010697641664202706610452237174360271327197086739215368205108396266074161593126599460456227100808923077382792646350687141946749267791042542236237521547779400157016877335180864498457851976894996384940885716245063529510495976197557213625039980560904877025353340699600477591906620657139424107872454052356062675260737969315845737954061752080789307907321934384500653101601175166219994763957484291565156345607904240294351119423584199522204619510224674026055535937724374760766844548587871749206567572261017864834640634231522098153791204760259251047475480171791724674008255064729174431280568487052605502213330411651475573668980536182063364036653864831035652125739957111972408659265634526941823977417078659615705197221238209414644937713586753981042279127063950760089790170559799058900596251832799531402901996379370831922026967418072163339040379591462652773922974771547729793205788163228755533662388382372816760758107123906470016423454126170565032873097191424261146925078272965625760284933698878522461210308466910735894174403293793592848539074694151207534044772018849426367311990736092627516526209062717805814593281144701202528724655583395525912739517557142257342202275214533657273977817903000364525437712598927417055107169680160516510738774666918228295051887341279357559484168275492480299394152166987784981749896531751388839218738213066116655875620524824125016413175019487338753501595012223867676498811961796470237797919050042831363192273120401825614476793661822809076360142207751001378218867439320368164247248297740827417968214663763839471145477943669366491560526111907722757018393757510875512401020879136839171782849282955720654149598148287232617768477190587781710229583950612001996074287355096573490503008000133235483906677920654671438990557163374349978894604721353421864038061430471595415821436354057688742578034876730300465752973042660997238401776566282308754417032599076019692628816081877970543722168095334193809355294900003929783221009362410207129572569223580033158466436085215690479618271644226694018613938415439896279473219151382877512655543718141564881312580784829553431968268396491249478462309558726910256665996529582201237314274294577546633602924739552423058963531728067159559745312370454938076072307361647441836312192908874541855447638531761746506349209214008596622660922704112625618517942173099531410651439181982509588993246766588123474790564943517721086096109492376786930051703033399766682078902811594103662883143121121264452053578907737431907611671491118992872260918613480113859966548403468164100195954319596247585265875748862411180392909467162278262552753739101167140051888653077854045243370278352050534909924032373609952984089283732768952972794093592253863629447071266989900795564718320377779156136478944159557706996538638206007009623498118267263694880388148902588201485990374367934192088445190487952208050980912819953608415076980190677030596688097457276741896310274708964918588212413105803151924299889431039903597134848533025248443008895195743717016650108713677765666286981164281610971670840520029461860119537479446295426627086939917959178044110557641522118355293342342286270021722887939195194256466933537945000662879253318995925286510635496623788443495477092590655843796346104006605556943139304326079488751736656521482654869879728416135430895273890510543011121963329823314641968261480239951606289784522331095873601553490105120544735674358741973269339361292305111135663013733425745557808825176902065164667365345324244112844555342408401095651858130080534887586056012850702079544640168014481863703024067385709102688284163830245883811551111946201616035634328421152646543330553987380481936256937245842394423717605259355040481717357417223977214550486135902077147037038250635954882165978906135076730788945559630991518485916989483959198786164912920764852914044746592764663559551581248297080356580988739619280719266911527544658166330193727822809083476035265767675233496049594321604095776304614219662322541945649390687105421046401030315122530819706802636453015380619497392610534296597542714491359017225611876454790879684002940201091783941976757036603361110333794030927396787675368135135774837994055346667828621875630256907275435344725821944444032104437845217328785467238605650429609152377793678265375944894507923937241956466941993514906650135971495681254640303320647701212347000765554781069260282396841762552416844669078959246702911790691305065541545958381697635237184574136740047862306775683727847108962321490871295311533439918081439825577392797913684676110683102241696427583730526016687296854459337190272120550022839738548032977841791032556743821254392748233955444655784251346366273851867648705238354839542325369011949730975811005922917108109817102487383007156812651099146741172288189781425208084656220407948125059344189520020644099736008768454654100218815868362396199182382165220554699831236573061438015848074468244194125638668380843027243165805399019237691354181001442708926910642827859516215777333341453366595085454865676297941675283432429123220241865286111822690127012978811256027570485943262243172944842663357574426318526398645693009652391434950452143106677219569727802152588733938642648225751632855364856756598284308235958186052062013451048496622992644419424374413054349163649955752551195656183137076940575204003705428802794061402725904689537095100356183186724855046562807104085337833642676548860986083608105366216873883771089663895290723299666656553146722294873147936074960280802739076487887708061191120701365782301920488642807881096931715528546291911772957145820465449572745220105279207505926684879391403798358075182536156920231768189137757603514354855569335699732734614494655373082665440207454526029004572714241189790409670541571017909819489533123710363332741860802558465431452014131049782894536213740946716605249271940695280155176515513907924871607090838959790603021592131508408499984902908603253882707127256353640523534346384184763799951987557654222726476823952944976328586534839017018293935179467942012990578136667663591083204455594955021088134819190952287450737107264641469099135343900998592265394304682290974763560906404425856235681397243070585677432421491827817321266624012658758977447726694946182952410333848444884381810328799610003511962515672487304661766797010675723209521120545402815807223395437794598086028374479598377158152248144098887694877107983391728561948594676929837714838857604955675964780357599704488198474031958350496158052533418227025728905711609935228024100672115426514226717307975718564541855494376009560280994139963146046284364095842219910372485078019473013003681565885025181809719871403767123073598802191778168276649994374599992679888316574117497410679946102788891021980884626135387891653679838816236536130951885673709445929104387684032062512118234367146836740805079456754482612833777997869679852401658193908775254406940191493115535267886023968067031673067301768375542675516857353445480976710300897351970288349956481796097663212765647333214049681548143278793227146884864781382538330861796677285163331984492914335197418805160287479410237063921255864198943125618311381559138908099764453815805389885735272033581552225761229056464743227651794638208982542199984123165834503487625249265180074067712852946242128387192382778814642423945880604495054917156066351918059485474985992215922676100674905952580307477776953978612525958886659108408759480016936551725837295988450532493314324474785555694362483770943540523385752556279964410453329381888938911887236304643693075894863618434513050684862744784734211409712373163084895827884224957382770008570353467323273564062528662183895957743575430427854427830199073651668242999272950935456311862492546250124739379568505266090458785579725069356481333122342119569536673735438967991833034155065119866868506527105298879945203271618906131795982693723762588271209814759112395941328350338238921772625503451870996133690270728905077186946083876904220954414600908786622395982977118726443092593142043552071284031603432100781188099448107849662418678917654808866434708945390765789635611156823101209913696484097335485472005793795101136632334122159548476254284722461486874991750279401632376321217353435877555076077784707871483716853974634582797940252837672288491031914667594833600818473865393102480824292932075789956121077435625405887532370139545815316830694156128737648172213154689230906244521191183832899814019513815057762282735584582590707612843659841359062666600855935740276650781903803082024175116126166094869162192686245262539082522634888575879269068593971431970865751691957853774527023863835625756147420556606002085344008042692602719973678997653888022445316103027145604900603981324750071032314802789116416693313592094173522638708063519777691187808685216631399288349075422638302903849854696443133800635316744357955391288946508540753530173738795508489630390866445336019554440197726957008491572218425777713740759869348543944389077517326001932289653597632131558402864070224519642917034178703982171666156333468164869255459241876042406884579192880141053720242051380178078879442656432761954905907102561275161869714422321246403971624912350197457241077278693322587143150147441728289062603882363294776041387310773169436218506047574486513838790014783697052491161358257722322607613805449880259155064321470824764856607141257735866778376289446695386162907589909696309481953844160902970315043132475381949757724105992045256659098112046677330083689959157960088670046605545700115456149551772818826665762021348855387799735827889225315034585993697963222091045774532853805834220316979332560907087906080960800005600665137307273797161581410648989885047927964510631375155036479775447672583342589059949488735361573699785892210694035552506596945202339672218969294391063666897318970259012263798616153585849443215675393358112079159042306658767309556671972823351310515094008247168055652033623837034647851456138135070997542372301627426897179267318307985182829534274196094941697721440354657828263596407085674532894136364045262546966589361395915326803238492304095094557614016554161484218352384754287567001051769780973771360589218057353252306550491562556314127862497237495799687110944773947597475510733809731084057717836823720740869501641053431097953274934636258424651469169240702997992799402211432024715057108953150180206502224376025238798851334409600249763349557348490985878104498735962607212398162899876211432577206998742336850001919666920425008981163356974017846807073197316915191045657242130870532749074302791429042242884512453703237057690209132486409270910188207543198639170126234754444380911427471337878447761278858105470076624683303160760628778999515530818875700517921289236892915343588777182058323888093045574595942448662753289788320268374299717114634107633830776283421047840082374074201278349841715277769155014191684817748952961555970916884885050989110240347618290071168183592236624437242009164575173797829965024031161338575368180644280657717125983576012844290908165778755714592525972750374636028739952736925884700160200329032633929166847813486996641202925438270853766670105879490845664787649712278477824790782824530988092032966456151513316976055086500774010775783445268921809736060597599208825188826753682461216693075655778019370305875129897065616940517057909612250198944626239160435759142863537197527206192214800661465742780704939502595558429307712869745729004121220232020001246648142876501887482910500390807133313507429132479442950909605354405485604103261412909451690542715360478246977655985330759569224925304155781581260843178602542271435519607293430113132559464391859951946700374108547505806257730250083181384270258332128912649316309767872327834935173766749348996169687988744936590244677283548996492540720891487687036703598306307106307765727330444264417724016869352307518704994113382693332650354807540224259191863201408490119103991201954808592779032851824903365957289658399703095222038246417912826414849530780184449130496475790330774019160710619372116235269088795548234202614562320976008365151847620282497475394705473552273938845965073665949761229776193458747622844512478511299222093891148864692201082907016803346886480450587935062417685561408017791481637960333407728715137783885548595884777832748613485827334529365821110345378021745607275285457104471489693499822423188939275334808980409310734227440539606390310141409271425616170203882942454431453384942899422609877932839341083596429141290047445532344399576781197540641440074872360139432685573539840033278235146620948032716298424576320354874021371081034595826047028250362653906929917347728308529743932804563532060778049079347353375444364910719463283551034751575685523735658669171875172789432637585892882392983460258421644652134230342415479132394251860131632179154225059411601454400446905801035564924352401832892650515029290499262388077770885349202267510382174720100259452552900981952283298836590590787509812464008632014812361170538983326192945462611743495985188808480017948466730653830786623040053965965759964826847367899136602796173423891107663241595039104906718235160126799344010269662827724325221520027264629852600267652702431326797885662704717746702327830262627401202031140996850632287149460266353991226879401332441988720184455335994903015103806663139647661286505960787377158788998773204437488296687252387200736092327009834091650397157500524620060383449080662819981178848784319550808057878737682839633187490232041853535083551204348553681152368297691580239268080139160973524876614344957238545142840757282490579363380827331376511454148489170000354803773258697529431854378537193871298503278197583397457494874091471888322672825942710659378737632197761139887457154028434560069934501839600463313479258669248321676720078861009685621723714040318815621939209537625762221206441235697754130648185528465179769687767648802537234106547519178254151191846012787649548611748353742196366188792024644967141964377992741896802831451074052522345014824430230682498813156405195874327863158083025521579358196500829082966216707622892787758825458091408312114906474407143814927746293190761171076323645341670317189227119752401639528265732438801350737799601104630113522336158554903681496035828100523031102367176486772817111610529189685793394598641680010344780654366004093144284989939976035205740185277827109874150993519471336551003224056590909582973566334128181732755701634590869085537294147995969929763884720935304232821898123160529192162756566380418925330739859242923768435356685249327169763158927959637356429240171250518004984032070605660847504338214967135582147151046642489151533503026149920806225147616170407946363678170968374221930872579365737146638736550840879461618343316864782551053642239011071449538557257875281225104098341117317516641162929925211818482601751106086293493529696395744662407781880146699083830915475843515519235779361465642170680750746460366501045455270629427247449624275792411409833522525710347133857316835622749141422310477667654240825303041654113990599877974310613144017191850892040521294061811676561907431434598880148141682338448854102744391504467208143165843004286864818810464546367351785385107012952798585238040407124958787012174725875529665423689976787347906818059000884436926732562927149351047302411540827368272644248584486148747886246864789681922749364650493896057932711450755296513298919215302213703619012603531325702992219167628050005635824694578623903546239905754719673859014986795222170292036864354802370094014509214124274195114193414509531306726584241750910721256615268782953313808098943357661796492398499677154805132711124799014985542119324439872703989603600166104372752242912758914241607670914780334925559416059284590101156764060812115462693748345038969888638458623262785570679721595807086726897195962837653727928405410819653689043606492752766764707808481949599557477981665183428291304606300668189136595648636186705726180340935315030310676284735038599844714287384045514807193224399578743419935220335729649103267777278493975545740152415986095598329156244593036913769728743833132879558647719839999361361945421858413093484887414182285883934033360584702826339269335084551553390098915337902687161965027769905641879298131379174505169277252840719609688984567131727074294598075058725018732850886017250320918229665016516044459773085758433956732147371288345364099814767267892500622706916834672350884595506116351304400577993417249210082765731242903911089406722776852368279848611010265752541123770698855929249277635816347835882033543865598321528431994621841704777210604576726694071655708735781648888776460693015469206646656084278039751920355656947981250986485813828457251273531233587195559857643363995242899110608085170873060238933704702986509241875668493951007575377688592478943781024125039465617019660962416710814684984787840274955780407881647867577368446613204202474407771816179975134537045390611689267977011495501555531886098919319556419657114715160757258965202206307857160388665636538459775328442994968708093897061083600030747473203146076588003092032582399064226933218037664367341671621172838888070025338559502649280123668604635283038309815098752012836134526595470369825159846707658909657435092430721831949464775039235349464746848499377309015913992842619408458604889418841807236617584352947568367587306926072869318223937907816659507156522967986885567687060384523316768615753102413500711654802393177211251670560221769636650241937841731028260334273092791606439475624987131919600936962068446037189352071987694380934513134717454016189951836396069708649803136612996883774440914096386683028372990445166980270460647361932621167894915820449400462108872519323803249981478961684285345547060584274363321185121122522108155301908034360657754736336288285632622948914453690921390809258634145619942172334095456898946141466881451948806275792219153478276887194582965694344517163349999550795706119582816246342226230523881683391533834800668729311903114721093857196423675144196610052982381901102547676617280473196183766777042360653899893027400263328686401651832677694850743113154360904842826526200876611387301421986007863813090276465780590986388968406778254638520253686989282220641506064120293126035764225102618231784068695776113885546970066478777438895478945432940440844623576357887303588846471795295860505584919789180957475920541712487708599097000370523923061158973941453433304348129027561615537150277688018370142715012624332109437975592338046808035634536952341809526315606087211297257249244064512481725585074262384349787762788485487312230109279400604131119075597566135658492190008013102371867720905540591316320922370072035148645271468518929020059406215450847808970033700120298412101650100013031222769531356478288463443234815984923319882888348726886355501292485693580985469011725559557319440591794397398176630858689846597170470368408563247323007810237541945798724966065978836694268404349370682399647511248168303139440855071606840552532220526875066198118771741019281757927327018696883986315602301628884802416470988134342185383611107685704209308279930230457155476714705937154662391161268967852786251731429718659021172112271071857380661405778905370446146337695141130187857950148279188591942723590355277140771145958631724395284451518820353106614875167969077402950008666507919683846736272257194508867115666155892039098490826649336020839595927386907862458340136401597169261509378281444593261780323988595701404204892318160185735619784662114280799372497869891884761167420008256340362455824827212089801557763749613820204678669475507234979377393866105679221159670662851406088364161140092739100694283388751440125313377065678400289494553647188258335477447277798743262258614903271005245734553052022424714736056135405000678318563321073509565219326114409267796746276092122599433256133367657141181721504446474717500558007744303598624834576888541542019453108180302890414972249596364424763755373458347818790480107942785131293240674612682921610123397776120147674055496313591413215010184529387117472118399512042991653413618369830356999875956442092608158290249093805792953332862895781268832930698133393650824354187937607130343324992489478257057652681860707965036917470692162429368148768369100728520858545593548115981231853263585427121420858873457134419025925682091343637993739626668149867106025864827256099347018785176154421992856280650525978234931681440343406860607554825213717716253673910996709840524835876793960458496466697389125744408775331760680854971149503523071314628106369591987056731276563717565992335550840584238986061094867359025493746608520718679943360514764075206591920379619416676422344780114534703399737058097063439657056976019294917894956953456756850044017411674100568731673601392354045830242586333152492827337677115054158016695467157212079160195927967029888237146516339494514776202205124990375417830763509937616848410626555412274118740641035489008698126234847073049873885810054159287534658199931116396415552598990261768579018044859956114905508882778138699473547038615768471934042744030163493829626245038662352045907549361999596807001139465376839233982279166337771354587129501534634645504029033027567827530952353242349215008432313669603780848280034795535262388895295407623104795174762895839198805100808211119942733529244729633412577707738276161364740877379598977818572294250699885177796547894735926440089938067132651265822779090709138866256885187450864019997733259822180290201223016528003631927996276320237701184609263607995748560250669539207585067341459600598052458157844833871667802601929824101027500715371895229085882933919550719465526316671888605786298152511757889658854287993461130210061594280518927561044985892184623954864458686035154754072588887702160996328349623609011897809244632380930943760130211162920413450923245205185256719020763368749320301876875917414100960492778077981833348592954165020929489910266610286583735707612329938584951188090097074300490805296142283531916595429640720846550933494819728198942852824916957953777968303902109579733207742999539358720848538372628089885206514047815716987395814497039067000146537738931887829795957072793129744584072142177515833484431222851281496425732703899778236564832306929117785066572164634631064009697754383695717411073640193192240923871333029707840891167503925211664294483482498586487938294487864071882913293226071693740221451905211331586640076561516117961879373225890949915308948637646545467501739330160514885104578730668788557793694968760293239368962957957317439495592757599491647708685757470296716376800415145864190366015883290680761690310994526385795565556504181087781447630353553084615308914913006626541695905314645185374519650995863848767433148013814198183718629412433438980103845259814656574993490553509353173354836559204248218986676705766233750428906069567076588780857635459971059202006133202524735581758677431807427323874123009755062216491076452468495187963340287040837243001792606058772584109590661933981923900553659038905775311591888943345043225597187630844410925637426339356414782419874106617064385433267194513296496291118191466514392433109553295251181305869469703442284270407556857788651163931867591404174523927705605233944534847228985021717447505769353371385839351386990977274042917209765024366479006973437454269722395586822602961743195379604994418036619070897298708757192471348597102339188047260366295275617726594207481260377775043214860848702220218265620308119104075595308971039673767988158420451926141200612258465659252390636905344010443720335949788593757753345356461993478821639819324830847654174992564994398384613854326942524308921027311407097128576739957837900217205929310097425333308807996809619573102454792317024799781457727563955014594182332514723142352402862984747794620034486347343324160585313355624001961934194334541362165508382225984259649129513767113302125016648160146080483240382208539450706052692256170939913412411933763030222676240689052995652578146229417109972113278606528585056587416492917753555659794325060151722077972304783624877351445323227133751176534946385971239216836776928532558151843090768505720303434329072088784953566566472706357180713756790151887470173670417087163722536346894864214246899009994154864834773372859586926564924620507563243412491879071471635347531497960317526824758148553945633994766043847412689592574713120355467453630435259369848610416556627532791665655442241355218705156262569626215129796059093586417177651717013086014895425937628575455452451786329731711861234402926224212586542172919401804839374253503841787109805048648411955304383363064257736366691740503797716978301253440252303085004316451779288688816444144985334748533740003263226328941153918520275721066003656291104558377822842721005441309233713777283212101616298981493566430828457683623880318001557910022742686151699940020788467779344288233722590394121410705400024890146310807050185265502045254421357447426893189664998151817075639224524292143270844871745791914930901188886395276136401294321717667629698991416174369840239939054886284958626327252978217979378241084254018503228964367817268714988975737853299679775571269072400792885556145402875489285789293595537363047192626990855396450364066061201292825619773288583213752359310617014405357881733432499881855305597983655258296184630008301616956380362335370189145546485050446762601895238966427040715418756985609941544014967943008316366796265475517102600615895329858646347428588157278126626934790978649392885264957999518862731554647372441283077600176727049222075390802021226299608991924852614593248812274208565213567987706227834439607290475393487861957152384596703723688613178821633979139356018337868230914054301616494854206326686787179433333770855719913049290997736994619023768529569614679333764365478836824133900472358883753854242718450842031851932903919593274718809764082609377241496014210203359740825036373031632606613688301012679852560936717835214592552662284362658966933924472742365592121769508171206362177932145307211477011868891210123663253567740075062928648076005723009051828166702827238482353423928136155150568970696053809220636046072823751184395898003006274054467147099124140351737875916397030371831405327354491259968532065351499556822273678741804018112881326786748177572694544501164445958387001643629410029289848120568625110715726251917603364810848642746821689475343162131834494905158694463658616219797867160030792374603735016457316487472303583167416252566577956477589355308041420702805942291255196970019141125400142219976438258321068665872622215849991085939194073525817246582233482015970780536591645175970515500950704961973169419677840945838120390558253228703503184150153118218655917496324443724382868643225743035611234375514702067849691657860952770513109517460241925239793603543952603248236820548691884742907518883630051584006983313666140764553169392712290540265215359311331742403230979366122871372819529357608783169813688836891921279627181238405674479075241254314026515068882949304855071824108596968560973792502626653977062177414845589554772568814632499308775640640918099325525426215482640275130778594487218171585615653159826727560991738475791557435562455293210031662862789534257599600854478542604229117468559749814051473120526847423004387494367895123078381016683192851265644335529932690529810035395282339945806480173708853564930414721370405422601687748943506889630717798709451616052283433462953585213989338727279830848614403226143828000506372604781762951553847210907070894943484812525333765005643326143531017905400361536987691302363143620749982058956275638342292955466514784011088964261004454448612980546082969471791201345869183536410925180996072057693838550538474759424816027497377620097919785801282142012386533447213350005329664134817464080023097793608321432954431561021708391569074898289545664532253557697356137648050032780781874991887458008801024922965997468219441920722151661955760203441824158155171057287659053661009159707294641097353239489648944973392432224746749894500971799161528058536363187542343064835186006177639115582139363051861070461994393725330412963818014539648849223038581587480793268298700052302680115505012176742801571791226171996384189637458040417386610435174899588985859845716164851925531313626131644395316875453370025081370486097058785244894099357557230042987718247473154122917061429132597000184331810449910150197982167810674297632259082878902883171508236200310687333413188247784938420743694693146923054540890429053095953317455470351302414560267051585117282122851029718968255510317327082218653613136798465713309112822049872141253270204225204046867154884209655262612932542744593242271301850184325023948780856831667524022700333301518802510778768393434775036951747470744490994912975046567737877513400895110712912310014271215432165600696540866437082977363716374413905025369432164175009387625417792408504358798355719148168684412015617307384865063435223850983137672435556451343457510381137352643738387178258058843426076610796870364947718755865173819299857720074229910911349967511244407485086134018261801388155770657909986848081775075738765236540176718557114979256397003639492083774198369163418134262512547892221143813937124353258158457630760775656187654356827527985335256678408115723700251812585527582655986862003264776155604775472587561826603382776651885522340300609448337133305667647706233459715868273714998711014482135870108129390152013139538682611320842886574393478963140727497260217530687397558596518820336189054669851485127057304732771175298587137892781688746872400733713417506218645593916307821001587900661979349863801733069503198072362827038699011251084825067815936299564759108572489161033034695656674553220023115814878993053299232004330881777310286770816256089836415098358614429653189739477378546711075730716283462458486059090496927274736104681343314804345298792525806452837694241621466407703785319139520040380725665222286504508420929150262329711815195842525482189819593734047391484809917114581766869842485386080146549982228966711444061055753955228862840232420375084443009972809148490835522776907904637921955594225414518299110870529629033080012769185191959576018962403467287833496354416780991465511739263399704737933799727494830416967904110698345821999729032830655113649226470274310447463267242973433071922246854766120332199362352396283874936053830154995725964108250222783557886190326292188393630243309767793914317223997492008762143245837670782223161461187176619570636507567572936364450095504832653039016542327223269751981633781426928597806352538076897362299619656358782676635061840829933020244044803153879593879337538018549161424276146927769716513780819640485325809384014180464703605534484633191753926739305303701758536329835129343010606475886481058568693698930963152014181718701774692657221754018680335982681962884136345545100314298106964014804732253879771776343763140397232852722689105270775156346716915805361057279933532334980482922100619367978036217205546380727037061786768957815657684555854607611770100452548227141900090669308885538051631625119846391802598727580816848605282074140218363352418915563091429429162149211583861885202937597353318977554185281693915663709399433258764227132482715248217083027695337768284204934574508088880367593077013542522054247079118247207418420247491277904777916372307139411820408360502079570878242928507907452073284130005870587047833428429532192062028026340560378861377001522671537164430031482653439306553142861862020176188610839209074052788024478880888182435690092705326494200216986432140432159812649818934649917243970111247413515304027064092289888557215442666382253803607841166192290620943015119735446330486775096637483593895326701659905214463930601910726920945190108017275790735825217294284303112764614245955389299232192184920114329167412496417586934127420859992685639910686808200348398721503738855464977145915024850123614059662351367308110689632190576171465108437295074037253497847734644455586805371575853955808985464740276880043568113468847034239158899751361085438387389129623168188644501057711094410307364660763228092984542322011701218853872502166640404039918082489875338184208875850965357164179030280840183824887947596771561636861507142081066653322198013500802848138038678194652307026672813961462067180310982367692727318971013365237777278859397145008588174256255725149926660805087412598413909870216489492427053312620613398145385512848802804131505474588079987381130943243870990225783579724238136867058036314691928013729935860190324061014065476932739224732568245759141753983694850867772673965040049059091262023790127384677870244061557633363468468739607451154147113390006267341868001238164846440065321551148736927711805461254577690305871144082104288888710909832823513454659232386573992820203914707155395612345944380200536080933021512781281684779160413929735535596343611393355341795250333239336110254611176007240625806622877998576535725084644007438051366859800488911422445255056782385158578423121077713423663671104056613501508977726909262202649833324970700534417822670791515240642865458913717778788012155335973097617039607029099132360944603413262074812805843391206010528673563740039471424415774492333751348595705290303416700652509676039583310396676132856467569388340022550152930848092126352536322687597908349016565456439789922842535488831993829224808949600663509990393705886533822605139509837344251928648703625641568028062233208254639609500208102018447967422169223287761985462834934998956511035214767515521220129356709363837603123294682039011550691525188932785508022517206761421918047942323497878190123721446479037459098985140050248630659048468852405610487445197382286762312558090925906335365471036093012415163626873915512878618897000557518286597675407405355364813473481536420526258776072875197352110418164789851672638154561073331881005824676632427434660423116236653211869002744230348728594336645848819771877389301608957083054086107139207854965728510336091610161018868100576391024368946654601701098274732586482073479787810703697008688410099588573290538217427154024663521743010318596502183675761687910121992734469482890571687093153402451833250475654320779668309800245134462192022613306470931138991538577720874725545823821887964174985350909515597748450215244776026348907059503058396574729854086275400746100194039442887270304440217448142639476627806080253712270579909251587006440046540431683326419127546958482537995089452316428396734454595844263207668720549638240027200647491797510497945465182581855488840706168997659653516566819277797949157451104133696626151976356433131706829507654984209736064205654296930052946100474766589078192594397197428850310418042100339510816664515027347129776444252795393671020892900341003129600894104563420077315973856716522420949488995877804641925832851148070380654055094327536485190713599116192101244434673383771743097552083597059018487663363057478381204495316201470292802866691450743517491068324075106154033635912749568552818255738871572319677842494013653187118128917095809431865276889123133534900414118157099870333864392151770015988782814918662971561518926854973553723212832573547335168803746282039133952105096733002749811907163309665848586250705066979105880981766031971084869866221126123792046951315450986216115408292588584718050468059740316305587459492096638613192339692172311031037533611806725540158920939567769850162156068252678834520949782645420160992272590769161452057647156923033883315733660823457984815676356430744769831531869221159883106849447429391371857072219461259688085838876184350428272305293844949943941408969623030846604759177737918515941176989681499717967997407824482887277523514900414988029939765333962967690426273925547601583774080266436670647430878674745325659943949972032652955455993040797742799679121671274001018665559472648480810429651142268168340361341081741605104809191708491086838170285499228554099349418014425639779922484987069964370551570078942722420157935032170687281671981667690158679875171497350778898438762007811658364399632070141264692413287071485054224563883424373175170333859686968336444175204574700081636243981907936742195413680098694859008862364840584401228987536993257275797034451946630970469846156021052832116127953292682975588317610855447161982698943912825218866844806425705593502451701536846929356070830833040199166485940896376049783450171797700483796840226223934828343727126192096831931763068523914396071611669980217265734563128941305689143664620678697967906026524286540350594918370595452526435986570678472352729063145771956313920464504748513673059311246880280525996131310796308239025731753436317689692030736779131715759279465999159018372325443860582489395746056949196072592981392341728077980457548375562970184108535216448243240730187852655587216665235051302728965050041807741309212262597554125630442604601736202049906046120856603108460684261598218581211337100552214617808929233900209959657339117627039313114909399474369453667249992936393535489801016959402733244911119472366922590696027394211328758028755391605974564762944987097861928246106261861550990953352294234309727282623834273762155498136275361278165161376456728408986139310940890083949827932053396475595771354841219197689979280009107552459319150642377472347293803136029965069454695473388154981084862090947759724970955163709702846155758814620415280656576642209009494494437718350283995368533049240827886560816908632240090990798601768309387649790252552131456795333344871273708230070808590264863773748889042489078719774132210131356515282193174173486081800437475080042923589949771337287620507284259502485699250986783643832388790509186972793104949916253174396219621553605009103416863157685355027299246193308357497040758599466775240823337880738039272629076134556696434648852110662276495554720252371189842005138721900001746138434296637523330127061389259391243610678589173846667405258297571749105857597283462502986462496931083002819199921584229300700724458782681768230983268767946451097891248165207267300294207337726402577098901562820645291648993936106187171799744134195029237577551949119101363132616306210249387755350670211331467678090739302697040672307289362994296506346481562343386877577949380025874022936813699819930584606989172387890258876634872056818385364688128051030424132650472747278567176052688601208461941355978113930477421477463948920172147948506821106970717374771013709744841868679514967906819612694567203183515698145127482422888543147733991887391396430291685137597630233629057673467537494334692684366334557863356751150251337431826962299160149366539736621700401390150293002101894092868996438386768931048518374819354508684698850490909328831760190414499090495552748220387043206029683491474275172424870425995335601315385619076370368356178006692448519601955271786808678056575744604706553336106168813426361756073291794966271166090112621771274160523954953261734690483795390590388770534850213332410552745184802060120680660419670779296868633364688508647119627334039035160876272506203326007706389032314126978483610840721363670992243389006800864017879264718753799937121028165776267232720146459342429119477742818287151117624061059376685841480463111161910380606072375265318979562399095691317044912393582397488095974618590395342036883069266645651999249842415780397357451456689956942631926173652992262359483533592900313005080576723005133954176611846250329669694979883303759522297764117272934229766295939632945274244977000693289156821398891678893037165670616942608384879228211379192905577413975071515750207413695019812443490153858686422649645159352868173513440690550570190384788125432566724846351386377729805665035141920440067985505900313003958528965453920123549607996268886774583514333657380956535346971637584798169151032907813054118177545927679083739699449520822064316306551510466806184187816793008599896461541301939158064738336463269492963054926509026122169353294673210107715687849543066717236444240850392066735795648014965758432469730260418953027758645661427067633876286521826888172044407178364129069496280687883549364297595457622339793521591996486498664057766591425110454185986391115207343062433887716652158289640399884868215491421036457072517533248321091066668958258476466040638660496313346275910503389415771534832281486524729433367593210190440535128070634945324189976362613952544782892253893344810634353117705766970708876067695856934437767885497963721085627067370703998268036932443303899207631575822098923637611403286130334571685836818942821524889425400478916866642069414024901850542433581448655618520549726231480598156853122838988311713835656418508060542513181516150061079543786201046322425915680919376600899120273407959264667562594179344366399839080613423549965384742907573963092531026764398547659168722791587338560710711803954196726255704293059929786427662499834757309263629018745273218613063255027728912682758955186687742869453706345753767756098031142121463588787940592617724933399792245142143883843270949255735043738410193058494872920846638426400145825744238940477351294548635870559170816461277984122613254913107600581495772506457303589919262888159076210250448875868159330995676522107482674765758684886162444323544416515594198895577603651123943184427260347838707164754366800546204626351136641910362177216605688794073130887935354745615962890437829313003654943261770111332927016421682526831376376219316084154674977064711468296741306002099869114217825908593487333157601479198512217047344041883881465777628550338130428635701573235987982557148096424989739130547753850453490269763492488460179851736676701693049722813225234783719047428657112555754406720456846801636746582228502080941282633524434603491744558230229652486299104354272198208659864057523477811452552123243986898076174825073347307022710975989727296666351995850414368667857916529755747554257116231843767494773816297066265990502518951375322011472509900890683684082705410505866044120398779285628476435345838128071375935124334180055232514801565559156295296483778317997087210373386047693970282276486134777982946092797313950033810985791361077906967330333105115764820541417633215052336951660990462778550642093689360657866104333717038912282902994014067658889612616827797076712529263131880888863984286292799703488348465337851118904785054051471601897248430511137814071348494448861029326775816384973038084028913048943282778173267140837612727534369860694816491443001660137986336816277264426747456527745185982245436165288749334047101040768381269735561048036022568867206893417876927484546046357611367369402470107579620760699704081310537272109294095488910825760617233996082217403211853999119804731099506254438449397312525261783389087516971507063944470454614095285566863024206106463899076549162785776832465813038588766328745978871782144951809028388045904168185960045982989875268344550866906444353103930701146588941705599576781400012171959403180974137401246681060223378417170596487101185279544394623147957353824485693872605128098087825633511174126024834677677300345958172495228769858171050206871070012012986026920759054885888228600693244920077323706980602636117472677428896174444171541394489802680095595387381279364114840219759429363369758777244438035093305117165441674791955825263793053320606013522745730257669916198316116058957980365639978334524766289936504656295606763755751420929545684110851343774273770233709820075421271867515770154483885914782893946800446478379944542559139403441997652906533167544237620201023217877351311494072478246000958964752010548403236409213481556535121117371723908166455743931998945596306265310567028909614375149664880241572042623834012909423948942813293406119425359292004029566455406720087336283904585288951093623434036682277003924912937663428352117846235195836832679493384021669353229397822262601640989822827516414147228806323718504500250548940111345442569780669121734935703679631947208591676374761800056719061917399093916807318379894081052111223340611135996412522130974628730083913114220199678153815023250237392687071163552035377715933333785808846011208933352649722523722442412004128274854878873660402443398540065234642263385533571036636357917325624775437587714486083423615681939037776153206053690612459720290661495500831254046369751158437631225736605738506197314282052762368473645867444610098709453466637099830211918183743411767838196850785031245011153710856520352158170060998011274676529927332546931573373307643664319376542140982201091932298799284143097141877379953405418676049785325396974362265008159589690410194016452113645706487421787582867668630678695373893570940660808984973298275048961071347246397707507567496766497037353008956548325742723924037556057455454394123004999648285370794459568833386357136171857175917808019567796035106760156128605738092917836623560126087359098145878855866999679128328459823067257207938255120928238301255656056327379123096154668422656724797605509166833498855118194669840241150274816532922000331159969995784828070076498433456148938290439974421711470088694334824735403962216999983288998417607464834529493184166213925039159136706793073888409458962343624651283879473574435211091751610086446445933539569112401112046492680568410409586251182415407807505706440877001093219401495490680725455906689128654214606174155976104382681703406329541135863243684026004061709922471448988661564393538611039704731776959275720842583127742999715553678976016767703951966725815735073175159651368335346231788739256105478238365412358732013801250297958107853071049639825235524849753114767306163872189236632212292471176952337554769362739420104256848842163352499157757744513464588461816716740664131457383567999855526884363514036658122397684195517743040507645275071180549944152537820841854001128714366751465897573991950587795095415718062851522704361115334787998248113583971701552836757428750333904151536983948408578137785301799513414185210102916476957268227446267239765993699519083235416853874850908273629640020860137091388690630080694791977605517626563685575679815279205144174035055621249088636589817073933699169280217053448796109621956896634456946490331191615886424772465170121211439989884658478799491546283603793437800685044166671172296551859188496210857078416928527496856022586813591175430893742913247890299834973735893950918873788351130224127311239856896929576433077324720869243682832782992606341339315104701474321769439894160110364961408384145717289606792004897267188356576933395432859644384988965733016400621478416707820458326767593298402826830389459316220576594998495756518952802282321445853492189232180452541078523636945163141961688142445321461228546414053008839597752157403083288828252749824378397955068811457993295133039394463318444661288697628120118580571620733838752006279737511480904214607500321796066426864163783877439708610050115207127366772952697925087106852069978539852007790364831683954112013732475452732450323322701756793135549845474149353840833876561120490711849331628936725696137757106585242052214906950765879080064456451953432864550713772680569800103556434540022987093119670416152149326350535521750189092191829778066050321219422533496531523237049433771240186094048453740506611141679886186237643321096163322612298105042206718471510409278296114180723293831529331841454944920380639937648127827872812785054824391917422976475333237425933033681294501912365207225653552355641405455368326244950694126128408418302991248031237373738332671844704837418609299448396415255544832532365526189656678368289866901913614389289741135016892051591395636345717826010847030057307970586868524078707192495073452514536149584992300634998338543150348222135622923609617349926073129829335282550704539003701845292679325828098304222634939716437781298091444276818079100842730233380556508386023922246470586292463930535226274905397972248308545799278748176688863545052855786043821869199542895805235813442173125536918389047429583981170854849707738088520958507352566169728264918463773081458971344664536279254940130625762824015583090507755731268246527919030691702844010087670787236199816613003017588752538645317277369723937979314955099512050847473252556795824899560179059877257126134063686636236907552689190642494382785620441437052400640159342857110712109224251771416352481484162711721117696450431694979843357635553743992403423379095055337040079192413301700756665543952015828177173056579924196921932655145318356313097639088544595357069214476326408754161517629955637362317314779581403699881934012958712317500111820504525238651745810274753412766987469975701326693387349625519570048654153674434695456137345117210369680658072721902790141627101344413798461934356820655513727271884350522933829061285485095493536208770639477273276896786035567562903990997120093804067027736459049762743440677113166667557061188432353140154034767780766885745881184127802481124812084821224667796667052202062496979760932742542386670263176482192062441870194486117097875709136476782314979444532949332970976536173578704207466988293695815375781209822917649692843635133865292391977370157679033026911040689629846809031569226985468882427767841460532567021373751882450297124895815034759815113257901762258437051464863181331713176140573331017968359222492397843881514789449493493887299976331805318215291542617063118124504613943484002071785863577457921292090552520194326737624233827451580336374879117287573869271651822007698122616521319933517563947298138792114627876218738371904867269463105862490299113778387456797744456284787265623555395410436504152414130268831266172631623726868260058505584161508388234021635681561211085336747538581219293596026824897419531553956088494612968418432451116458011908317499958819938035418369588319414981252835823732379681304851992960615926835954600214491695705006443106852463111523020958386253883906781258339069057561652332910427382155556761669593708228470906122029289320328360106337610442007064684522078230520249032183585068048057880341654135305938135199191643479801073411725740522719337630745763149959836473639830623379192259517271931784490666452088830498555486630381235834875344481046326496303572008197060114828650096814363678120215552180870635534042439650518999050030598553399981445334590283212624173982938572629944049873702629880829980298640920759546186028228802944813045386034164684552976355207360630884456704488633960465943794223597387042289587220910916998713632037003809167804173649706015045727739682326766031627516719767359140128705839595154210363935779104613434462076780519471320582572040413758227291794312671700057464682191129939490797354848131122871343499209591371699734323409027611458289255505016959470048352934803910752050068789924482274000549868063238150410046439103770051775760083042399296286494875470833312093519972568157238775549805072048154580484362164715902256307252899391975895213341629210171078018503832960620925289203160369634192929547557611081403046344139561674157704372658200478699956835555664099317830580485438961075860543932373214666476549220416985594364320871172000767714282470231470331089818783831929971008863930779358102524377195892856864387978765650462288960669071257052914074799656270417954694003123565810674812909394482916878807949076976084198710721623256816094243859450001944591825171089109372726100331698500369402017807402775488112487133842801618635038555939455676892823745555148367752957250607914476924754040934023619145233085548294891386790572381044884050003891390757171014755313272151768511259905355427307855917611592859808654558244813703246142047895094682655241745282122084538613092145628992821010638226216044880079378236010756649574741258422502969619731648710720683876807939492772625077710707851782235737288356903099224121631202823267393742834017040938875921736806297455613067361418483208503735907615583384861380662967791272038560921061967817951118617881049686748654223078539907917911911944646425613816588059833725375349583881072921592305248120641217953907183107617164604043780388608935370962390329922287361887031746076345478543788831179305080699537391947036566628185369772192602581183472556195958077763398516583766048501564131440319596088529803545162355521574693190030596800877903918951301143365038873502837212769110866202459748872185342381584767693945765142686786010483492759072531190050431112192835120162932538872756463237753966720259978660273916821171133113073955719267347536895654415367921156454328004752810321084700694928521377241371762177684301226290732788262055764500424107274642857826378783649257915780145901454528492203825219584000329596092420547422562314605728304613693205595860982062923379997684227316639963426482296173114546592908020055054822652863444173044747255099023543822796172961639777497670503525602707282937612066541918280584485662614417098011340582849077653145560232823368944894889585112308226240369414533141101882831820091031185707455707344316991974275889103529626969630544659418068318694597467001889219197856130216410032678506412562630367112532670822841054894222930369987363198372350181061445074020109891064528986534020668079380855931522422461331204373575514252879354999285626089802184821051080371500449418214297466167662853343849457287284466514786129017113179275325369204007283310203725472671719969654912797836018435068089831261881632046918585292900405472952746176339572597169939152301237883017018327509363269170599549845246591140591647175122752963457848023804134887072444639902259392784382295321499713021719783325384618514080148536061401932604619309671804758810997902308326549615483754529031067246391083629040513181270971309966981707998968436250853056333527657158253438799588217167610825509816752388885522465953810377211933171413595941866146357034071533991172007998531733791633867172423987544240392524375618698612415976022031799756528366311900658650328171355364464238257291485118177150405198287863324341831245630012809736951596854028897968372531278279982197211654034040988649713335950026617843996913998436145435386051375775910549729626350329932866036242964981500837613397055750517022533881744742133714195396101838386694979413766384095826791934961534040613110315898140646146255756916686606290564369056316241226244443856360077188316665823547621112562864615815679795742800345687515652225802610660903161400415983397532279765589106899924947085914764362081136856131039324562556717311932948449061953653949759989092059003747125416626389038796794802483615857005818728416391096046560115798795540661413788893960771756895655893297202101561793466491052126372124428657217350943320070211793871239496364680794903986984953186369299762477203813674687780218247358155828944200451765926354028588625058022450543744012725871182289502515102270145242367682763701318875329393699226540751810543719009799142901232274772361512834471477695157841390131509494701083513010288644786610639029394181065985175283458907460051349469393816006439627561156202329275351634672890438609918979591879990561174638648701785210955429275982392523132443518812190741452329057919088289124593516735845527003773508553798262708429650116167802634027296332459958779382002245090311037996300539955660164325722366955756735213339326614983016053968311274681026163582998372754082202583199615714208538275876358371393209149107534911042549377393880286057881063864498627661646700670290939978033910376809185586767042022080765996558749793622313588838528603200420471616206089189523973591375603694495018133856956991087416436486453939086716289099707003209775820237669966286224973704146903934799439169008901983142136706880132358204502578681246893994645736864415067325492591510118593842966688166773711436031076353145109539658887674995797999077206205536763827524063837912521158907340001794603462640090499046716758466302790469652745408203860286026398957307909745510689035730195992402052904782895281312967039373410231500093230475299596554648604105220404806428959633168902063440326095348798563346335159119274516648567032685213093670054569967027624280591558520897413013326002114183202610856146844777402320578549543872819314468704154524256066985439681714835430783073589956060358977895396233445568717814044728553825805114715479119136932367569939645332288251948407728320883754815909428581087267131456843223858999226310415384862780137900861943183610160326396913364087152896555392119130952165227666918688759214567678185015855451926878208745058255155436662643035907428994683975037671013891871557915536495623361206910442683446251330171835644051206234251128268295088330647988944391912975273622106413615916940628686157944026589120180531598413068328061193874263325722971003385315238380169775356886697486238632043907489176805237048065686286356270749270732375467102073168991931731970526125162847942300232772721928808452650426075080374368892290524608753254245888253587563782244382140672537216765271450508607418650802363625920778293478019251553023844978009914501593216173997235299214272549428675740451784873932678864905064150842668581028940051932001631518071140541568878679073289228511001632270607241458451576461530191072176122930365255885083257066970334479284952207328879284976562580555027282464036966181030982385084776381499421256768161007588601251263875000478147718542442141952819973797953427690482411829337807901211359331750886743620640983361523820285905919871121047597962754283757922970587027782234759862652485330102346514265120609391391885630182691260550772212636008323226475683984649895779888741100028169168407222472416777821914380236180070813959846070326247459481963692432759475440741415529933791859066514772371569218057743417106254839410021374049265439577512864234188405134501320708556971382051663266525836238828040595754844742007203178885347906085346637896058311523760609728224950430472638848121690636427646762314852095763143101840205120448346121103841290081568543917396331203719657996903541534189452146639193152293194065398704272462536948416464875087232990249922053373366010273961173609222270068163622936614201296688380234181743452812820389135866966931625513266803207616838854381131367886313630930439569832027524259089818870888459203266661841666733128362651977676595501923529429931175125312864107222174855605369678861058742282903799094292461765896241706213904163024271611959493849505294387786636802123330672762490584640640279888623473323616776364848697905059020682274400549558382268064045657319208733648445144841822664541285326195905685455037333345521808389898341452038022439801959147768768855561945010954529119164721371126639229312780115697625398488674309775173269284179824267204408762962238486081959095458374291338698174473866530155836344189697873319167292612326373169429416372951682447036328592770042614539802104971471243855999166317859972408519450221393864175916454191034909294476432879781656677906150572364196864631088788762242936757418814198690914400391443930432662594364587976611180232340556517749799613777551367412258168852493120212194943850552717783231987913558647406032329187928055464847688269466894743149470285972602158497416209978198734466403826194423203761853175076010758042631084869772862158130449050395209935127680267628647827743968151431465383727622465851995653136196033471103369412890124174229590799047696785103147763880095577322383884253385742542559706210234120640510408143135722818111189834383489425384550380703634850608594574856895741462335129979266103269713757442896717462513430811577524160368481364430680500529922941782753403208942752966897976465914809579380895882067350725547102814849305155168968302926113374508840313580451436822548196447455230208261595011997361591305212417886680936810565478541143354740282171937551673661899104273577606547834086898785626291386203439839325978767974010507481767071145922830390399105545531720822423372059523240101545875457784131944920554695800367713652954228565074011825402612595798471583095056490826130288402526349818821248656118045628299487494706471391949582291490934241971468530916444917162789187658022076451343465660651946217772073575616130395003850869314509970492786583296342127309157996623979777911388738347817589192589759029906122591076550435338850806826328778175283736766384197298499495085093502062328933622130175287553189255231762489943368108893993885064688214545516528631851572363637613951152520383655174614481662918581180696605577512188832566209331601969196434136002021658813195751358854709305190872424138925270428477564498145690602142682958438699798981107422303214344635733606193257743106573984610388693362021885971550784753369238925889225953370485466915485103037493339338895375107631531688408389803600251902865409167334542853425166918798717443206416628734992738681649325568217041600394791405555810649135612660057837888987743205384964459342151546305777341789479339277919143563493538257437211996673353529242614755074069206252542705220189906764511905292257830992751891285240569004179448687989142457137232587346843186298935270861269734425464498367404351209080534336603696269404627626200349401545636906884777205097895372050926957612664541625642708439906343178343458204534625824606254327083318296756559035157029887948076230063800002858920227954041890971936228577846374061879475951793568007018301611152557918956307485044729535834787218500283851025748155452648767936252830200326704413070396693261796553502256454020097271720780688738771278434392517820629728159035473058062488895314606127420019209418401473380344644398528399291976456809723348914266614757664667063332132539991251905284817509530558874493541648881934430892898164575124034572798651799020198903657727727264857311545992601307617927147577880793936441439644561578096355539939151428105821031750186501113133723457070623292454938652193455907410916443062895183614008586546938542346547498346258399297394467449068330509403196179686334730469394988605023451154601920595945815424788683501442909031462238322463427486082268349385339023757455866509131172850293727208729835472588517191158337675661123717896011119215425233499392269693052163122445352259203675972665006744002954694027499845916736545740081375870831073730979019615200864261768098342466052243995895405901700059611820563065529092724668373749080647115631516815674238035777150472426916949529436138225196075944230260588713088066012700957697669198234881765856527871047871302412094189838458399153922298316689726807114820174313598782735064617664270346533784047195504962792854949392046090189620087895186112824987685118396583288141008304373818342974531998846195469715362702075117765105747102255222578405062585872550030160566250530936514797858845416607024812135702723998691116833147920112555473939014304371404794563570879909704256898158474893416641698208185338710269373259062734164751860235586730682191373569159925124322628372775171474212876342129150886476237599344804203243002419564812617156520772854102045668185370454390081991486395040917548134396315167560025107123995811881309436437365707315081542655000684278581439487525881066613428341788156455709467683100047282479643568868790651131285224709040202532690861264317336770679226469792471527869142473275730271786724268396393615619041994007400941140311012811442950871409964457034445209306098568467723693122037316582632605246706433184613185333144467585386343245396017456645000550227159545086380441932930321385721191005782450158721925647632236751030605039192940328193613186818259586092786852585399559895656202173075367746453223783488947415191071077640888601643144778277591591820026021831970999043465103117757921096022079228859556602628569028626461074010119993219837024708385000037811546967747049443757459565559825330237466768132515866603649900201126199578072209837165673628976813650544040658934901040678805272273003049330837230377304164107803248404219579518949452619893004258394100500738395092808555438131569372307243011543190577964023814123820775662461194937670437019805125072004887903139614437840547429626502684957810076325291926869161825789413491403060952130165794255730654849219245809864085210452113808539442713736092987673170435751597804537947786916067413143050710603758942688139147634373476559914910929938062851212488886922716249468732189546177972232674479698827818525017822966066960236114265289644062486949893297552667712028701842544237906165438497340844169655657769563017715051236214320158249448603092132369690954503074752033256030129143707296199220300878711991811724304237504167988771232822787033110656318372356911582677671598092982454050532474192828861975385598531555959918134380195121528580443008677420830076249103398455824875212515092753950986927762900539906619078921493785705049525570699564822011429930766852296278075260028428819218185038039712690767723447092048284910181575075332168771340568609165542340254925026783441534244390635279806912509738693328401379066529468845909583590637975302358722573385765498491937319007866738383423242240457864386073031104620174952098193172494459531226612686347286936806619013623413705541555504808743332147628716252198107973423270515332708365123932382069483807522198664742854881018735057864746295052429453283427421464611933993016115190825938699625934830068612133355238837646464096100384527659486871400074101709123032827525326525856614340834400238332681077115098868276939453535363856286108876563150038661761105813423347084820714029954442122230512129916471481373595655941364525710295428122610801921571377013024486648576876832481913126934666195970467588733305740530330844087052423350560521058632185100144390502649141369721602769428930369769530857451696833290524009441651691762910451337922370936200272189683356583052000340320458202767485189485670862542493003545589219086902265428183992255773874515881096864008805333225371820918774979706313852994203354102013815051461153985590145526443073906523605932298801893433593776484713901674533920755425769139863496471163329813089298391863550948177885964132226680408260525408631461623803181280385723864233300924410536527069259496299104591161892304238886818440425853435342968810611716318665089033699932229929633333379382917976449937776625520192177518524640744776180780643494729374629158758632995643987926911089242722896189932639596254230653743450491494236067077613265211511091512405433969991509727068295042608985091889912721120345403642720443391224398064437404047866956167148767013126679138386388823970930279269023758183972783892833362862188367950942147995402108718629423084558806605761594374745594901078085113585877847990403703561834279066825529599145100307288818762466133893113491646627452589633349399613976603830989838014609671391096663630582247414986756387760071213402142942851499365826123340433834274648547384919967765130283819884889918189791751242164257527440056585574463567441065588937134503219807086580612821280637475701634588016960504642223129420785283108334837187184951640914881220416404134862269288808423719484578391420012538300740914847198820994856374774562446787286859460836487251273563689872027637291072467068107914759992037213851830248799080367418927589988546082549294501703915116346195453643803252717418501419891077551933506593783514990436035064469608574103033559764569106346993576416148183688985734564742728140396890005318342452891344939126053714656218782686004200945211165040601770714531165577670366195863866712774095584824617329051899861461381580813150069272326689223673740150798490462693250736101605140329957328020158785456119034198131107304298884115664784281592540362155072410798557582461708907593164370409658208197981269922285361405032522399041355956375489018258498711890910863436556941116521381313619752207491231048294311775489124309212595764690044640162320165249698120044617382158262424490289785349428094846515453138014590453968977319760757371686024495603764924904470933518806402337114539624999079035699454629341547143592202816350025022336590474594356037923325552325545130473496008396965806875603061678289040244021357809084436473779702474063848016239409249037933038678294675920386365117656439726928015628502905973794713895689302347033053053796777342563923441367520903702775477775706901901602172134988410406208443186704990126112589907472147827495742044836711426457065391472755392717229744400329849478467440877625223707327345657476487779962627348529270185826189424992533671715316231440623591566989968699977480329566874486536020001151131955519254484006675334588553353120426896772027481543748072681374956892506993248458957908855748176022401445122168645996503527414117733820234812750879409470244002366494779569689203739086675514182354587488650006770992824040472130598072391997225455640060973275478516824086623901327629117478734360750692822156291832792188663813293757010120930536079271676160016410633829493609921509981797614010706636320227134003574058879502274369553174952664007585447077142372798120845014915619379215110670453499992907585058253369152161386873332439126020653269925094302707348737684014658618781892265203729761567803780493987708001324952040331069165174131673064761038779474668503939300596995889210854684021208780434747542320835540241362658632368125251839687204863388360017995369396800505579214356384495009752842503076443895656925008777076247647312196379900602424514381977094393016381220711141348121145797255735930960866539476198507867133516028899484843825272668412290890445837761933110782912408031307116904497641752574264881159437066664307924366507675029519107709873890303759076728737082008080543111735592928111755647938321115713974783309820928858324808187045678515060283217077881190259686765628706868421356792435362822730783980551816552707735569872598853449148973958547359468476016852661487201251839129024204031433929255536490567498565226022430842082180432317900504740121721789118821513731440080104935938995349390678094249200209394791782713343498855161996807406270146791803037671302102773259611767369062933903165164831862225775794883465622824629914188662217570222886826762407309055208774038627730167441334385951144910941052535078077401336008580065640141822213918484625435142069407082752025151736231934061014309238493222547704820415242508263197660044639724884379766659631855198914398927467935271496549316947616710210562629562254742911246014784044793290745667266034401297431731872660250408895222126722872273790336164046431006241332610131302118666157156467760013741519610064652851831342412794498126550869204690384956535335704756524119624673934369972231345893088864345450715194566330331190106742051056799088142688223798390879963402151042507338217812472368873458897447235333639190476405380718282439046947864140774959312873859045241738082899202387904665255877227509503597792718010750262937161757817507347238783794801425950521846329573848852018249973380807966228264545998636252297977797157821898969818542957153667609752582882277475300829574357418394632518783498113644141340631412165113441596986195942577485045591602521825227262657995065529455522804410955798146945891049999682384571753438955387907080823669487350859369960088760590541268370070121329006712784609918831569223255410807298210183575847417843211292789694115398832462355303260301608081497169699124258672639286240354885967011582717902846206927699897600666079017766567181807823150021959422746119426183471545514525293226496305217555992715660687762973000938570260904565376968581873926677811992356019217459601235479105895352011122925657355568580093258481430228112026363873094260187268072508762579085067085965286351449588403051055472288817704684776470553660055106880740611116115825517002448992661618354033071480004321221842063907955366895197248437157198531065686203127686928597856077418688787273818878997409598768884343633997695107682909338453795508637017819942133496150782053796990385518550437936347941187729533697156175948503167791987617318091538002781947683120709689537178476006571293044576059712488334465577743019096838690088791060689207132398973224245016658599113936754865608762970498335081163617185888711822718674195855227905019333931832110746314926165593157807126401678559375664758452490529227168929525299933446799087653651809004162921345720344342091150840270812686604035173680375922822113623657314062031032128535661407157140234569040186408346284986043526414528213141082616024636676306332335081366908944930527858771790592449739926631360753809438232262152770830750694207971512440708858287119118933028902179348554338555657270318084234409607851790599766320123172204295027397933536763072961292826280390597159093883825199468964913058578657913921995506374074948134381704267321154324953634090704671367060310114578875994801813157985969512829919019196220934020381614725635380234755185317324911258382195849087840111766857542324023738561442762941501739802233258141988620370011159968775654612389765421229216877571824959255210713255037789400133601438414145621069283147614536382059896416042090310035014546809416242783008488777554695924594146400640547063984361767740554291885807644508342132825017825265466426869704022047357339810111887780758542220756267560114626871303112916999685107201305606550259211825103413595833539776632253786799224233068511316482154024523011259978749780187423977486161889411982906146562796476246696836957805235841640083528265742627430776150388304945300372803532416721378776406616205062575321986158132717712801831356944237271719054755701147950333534877741378746609878329593814049842657459138535686138977761069671664140037226548512878570553033994533133533477113322805082022890673308451248758421785705726608885362786847195105643874858272753432726222338956843604274600133760251478644172251778321652616609637351495401729724725419637208943536883776305215784432154969541761262434272307194314870269045410645104175897271355677645374242997713914479888435166327546575489931462780615897051636285158022583398948609543243441957538493337365308694942951321284655805442476239571091447134438850483252613242673871662573929866125362773973347297410595058454610049398485752602986457247029882917366185739944068548841104292769819989671570100155428658432077815048713834748133049886734124753808164852891153162650522231839428709716116990159449382188615648635736975034505451372925985528062011998748023056132946260327707446782292987521525801067475851566239029618255522961445367227469298267629758979871474930854705313747420939082428506362368566989288741318969209877587119338457986301733461899252099601287776429577461758607823422291856933194865752614676076209567751776859420694983714913874877337522401631583133773795279362098561205727356429017594121359002106384301246930498304911408690380857189358872373507797677753569258329899712754862247378244287936000205632062340369666099914504667193908325579419985811978533386932737673248064721409073170102539368462304752445941525972487863559943164791500125372708665683044210998074549465357162496463386899510128845928500854087508961307935896268685132089581026647294100206963653365963379933162461813175097396030952010580723329848710592632070843676506224058198598779497391911276056339627725816052801110488284600631614342417297569910036384582540093112446777989611017318451126623956376226700253996349591934568637760697907307222996880562722659515669427354936784759371686914018265896274548702896069642736550511683592231027353338837149038830965391279798459289410175120173254800735348925475764701839165086476780538648368765766504008271459909562026423730828168911537482069591152501288925915683680282870506880760311778723365137527851496733218213277352868358825138220032644125757917295713524863855493680666574049763335951442268168091549653043220480816818096406408163123653838613365748028312264325032686327293407132778912007083655882820380156992038038623666996249756040871676269851276182724039890611715248062527088714870920414836712059614560963890289196701068960238705139981536382834737683277250941806897299770216769275747225362796066773826701896435245963570778780988473658901152874610766279578471840356985157154630638069422390311057305597331652279772882986176028632473873775291103354547301545596000973476956868120681885737320426432631253713061292878742579946742479363054612864400954066476961606671286759614680276404985899852792650465214448037360858176264134022576514080127168287949865917445294155050563297586923294783701627075489975821513908314254934425913936549745177426687290707069697609179713056481692353640371420825930295972945951393903022851711478799595240805460059618794077782153982405583174343545337130096148213364734823396905424289277682549893737340838954910857964088358317329574695218842637069322276852452132353862370410371426758228401847720898382444807362226161842826781119521402974299121338506140249241926634838066829090702692932110639794751320439993061418447699811150382791119323775514290989147156267364862861300875116503451109136561206562251906093151393732022312033979891895097597170020903590380422252154075447099631570976359261414577106413098977905788800744390510676818929493357836060312583037580556356447830000080454389841116142626729311350911300246618203618036239589818730329900636119408070510422898002243491793475598129663849471958795128981456217979821542296993306191296311740895551863267496563883322738664766275647213960030589776473457269097689366006454128784997089117051380837787832878765249111150439506905127675248571890345608674021165644966689657884911010656222626949209464236074008704678501410332521318741665589463737606319785384576156609088986889686151226108293116387122424835024821440456433338655367444670861978216433663384317597135739514511439825266420772454899726656522628595459011844912976909699122636946135296888969436293900283719604691277937384687063789864762151761525887337974955464576478217994349162376468309694273905348441722767101282000378377639497813763300579892082175633463243547998190887677620729776301888018052672826985190909762381968825131723029248620832405580810255410534482382151325450475764747951124975616893708690663971825445502439548553842635004876870901567600595836194024798775120570720310673552562033086773413808235355955118792320441895994814800960436322310043444575167771926499510320245652769591295239333728977173961718964232027382380376021627092693066834713879749130746884829989208597499074066764193439656965182110128355475556371695027190975343469597574332340030846853334867384700782829155027989388198129201553330959549612434391430661991971729785523885768532702153938167275558279674737196200012215592840655630491171069903389703311946215299350695948591249380266306685651304805815040951393636970962834283489710684529811796687060420128848547969433380844907597733732416126191561138480577238128775887476189623069677778247364971165780498021097653722865404219707338966565113746141326961723849277894580791443290230511202313223907201827010595496488997461943820367953641585973094766033378995657886497370639983421108040673597800353543567717452820657004683263724481647605151270647139206097749025458739572905526783436294785171380555093002926201014266870020438135224043485916961513100955681773336144490616636523526904488512742751732220816680310074837748196675727142429453308007079500669391974926380237111724863221928066571887071816656032840087496639165509700960484039212614585612742303211280817729465387528915676035285204426052464324764642641302950171946234783477890782166503578943638495275395145910586079126520661869760564460380767325213527998049115700351040417445502354979633880349732376935552204809498270610116243702000349425180945192635407798039276295599390192766279935091585575298948065801991277038410256803848011364245293881222156644435485602637248959831952233258228258181463727914047739119716116627504099370254671640444523430310852035556072415613291180660115177703021647067313137298923365687981513870062885697073659479756408764167145258851984819702965362543990118444823125206137761998670215886857023259529517346414837138034807991005111686557529563261552961970955329569541203991048447481531093995158843178537120525686923393644687888613373063494569827058935835893942766084061845317968184142167011777676961619539042140975478212815180196837264480263298312212215146253489270672846104291407845180946093285363600850049697826748757018625608983687260851561547296184269677791010568618150420494473176760863931131230170715752329987883233002387586305002928529270954084715410928506615953184892385233816961897293849358544482157439143397859841289284662372800735953831196892205106982181116322504139010915406744187764522899445940506383431712644345772714991114312984962188306474106263533646808906949013279187005616479203602010450358938074683659244331936018123034865365907421255154655360084349412953229245617325971361414153688902126268012627718978274661305671299048359985521567556392121399070452047161503174941577849241908364807612103778938993562516129178825160833978117762140098191534301925406707804539669395806542029831629513081478828885609059372067835886176944743460357837810084092008383897482501070054865094297504706200048257182459263352286394643156844943989661392688930051874245121737433471234504117808712207986903308041700733348801695245060007410846390167383030892776515134174439235328015052381716651818528088396206443597812191874420105117118542919967090553640764698385649543679048020349456026201849440918029254473330109737015627161011335966394000879826510499201595915600905180818848773501515386397082309614670933756137874475535009147692040143265671518446184847079875200236606187896848234607856347393258814378846634517166871720143846368177055336701271644794229852912371140950600176584490405489604746865465111231554659386918643714841192900236445132356184417794570629623004295564368772291704032692559872896502871531437064451803172160966760633886186001028210701049946658065850315064656876948580087048672133152904964116388874287393917033123916541286692843890730307287753688091831265020119724093736210467674761454789639807129122019173235134411847465491930679810309787340695396237055560052958366825614791012054571996284377279057349483341039228701841782350354985627787685939504079154407445051675446929570601952452991052463285202495068687245297572854620629916712199480332452987310271915846942735961392706527117366876567295770166090496091609939955283888757508126209677551166557015398893009308228106312749393904774854264789248204993613751506706353291793452325250176105480060184153703136065793038232227798649179597512399749939309146684779042180629958268436209914327652689503658309415164467421978247113796428343096505007738874963895855796575563262445873481991037479113087171468010519965937031632937177348594146690707211046310918710894286925878466218299034660382389549747919092361100899561765998587857263201225437853330718333036445546357167930147784602779432239531576569117699975517756293999803677736839004911719962895672805076757474701913947995094318040827722147678410891815836502871723114689399057662581177619499193401238996232382087016491564850504540723807146419920180375236910481689235636414050176494737055160295889568771226387316632192375979107183574810899602758823883578404900873442224028960202529181049395885855537695440968320590498603584641368923100878614265833763642628803563330907344401274460268409002814550771288448583490968601208171646040781982467392185657360608257535869728514196171156434770451973659393979965429207451284243504002673587052227075947979467996829063709843851839600087718736567520191472621404431974397540983770162847268782236188549911046561244466827719750856349986705374007358640802133334877563699322827542386038414281614926458904192597504822201002137344826744232332587161659060548319474221908915642490069220645034154130886325966170141644954604192110051691922174278405384400688735991149473365492667835689767629355694565048079725726870066070066308604235672541556799352660658067726979812757561519016622856100443398515650803601040329341315657359011995909735997108378294875709195303096011501461760668999507522518927570507738687221901259243252889077076876810198048469445033791533157902865297846213510619858319205797858139363788266837588510643699709275474829402572087156738048168667720344218177387243231442450217797244537173482527491393016171711092520916208666197088255946117441084229262629884162125258812303456848413716256333783253430134805179859215411336187698361444572166284146949921764137878002174305906852856053547093111101279722796975143555511890311299587510553576892056295353522907177378440195216794885667724554074129465522471504214565607902010004032004446957793033909856434449959306006398340494192458476519495653416452147260754405837024541992909781997267457678313889636900802134703178179419147672476882803920525253154554368551241139920743872120464313176480324954514095316412000818673764349896868886371300056080611932404513925907261045827893509691155836403335174211410666200651161427802847054400138657279743917624829923101846098369937945264261157048821014744420735006127474186678459017362278877769335451681800756097582661878317641046129966246510506249882773883754193727700545253804700518749469612174872197645795824048863005027349242688112455637478427397547819825475053533010835212712879330859810211918128957141538607541698660817507694075810226409094236451528628680046884636428341258160216770523301140445274832347278839346796727851122173111179616382115018968241036145836894850555045805383476350534488740068392211414416644837322735385707301691093356439605902481859773954484952738429317546962591641833644836880901956357512174558848885823554559264717002778859788534441919520788322789049356576474534673155756074409360187191066743037033539861602647514311508579977822119309369242942835312282649794898276708391365719297755275940089264267471332750581235260534530923904727199083462528256128887455674327547439983485764446715248463717874520628279211338882591315145455543221044694104704123919573665877205550353280061283710213256457196239286097260896708553733787860041549354468318107215013109522910961790499973236044194810850142776759940924574981606373321129325250649670285424374439997103785455569078669729009368466254887293612891054351027455749295886426978026911184800608243180123443677459123270084973633861501437082056569408737530102147825109103178734938914750611097052424377033573936859141567887873013102554326020031017413897982878718205800811331354577117690145359582923259539307654314400682127876852857573493641306430097014300783904653703188726745196328406683893937264379856168207074428568082292466112674771129155730135229726709414694065518885913219906595861153739152760946053032236044945406222043004938532335714957551280793386694276622756134971366129114311297336016886143421893517369279187427484763049901505893702470534149739430106532033448645442606887258991009592648698339323102252512223841859593789140775129756653412223275645133382027090952293966644212669322733146564384332813977237021056988900105021003134023273831717085880615360400706712592676939798842668905283171167782238450241111547493044365558692750708472427821445492616678453279279285911586900326433366060604236049387994817558440887748264916065170341403776373835932463797103998353727294505148322718053535921289547145569831453249008780365729366944534992529198663610119148169178755088587053885355052174648381123891833700694333784176360923961916177172570325864508991127525087455775753466356459458976443938974056060541548561605571708163153684222417178664541523638475043147945679458920412553060370548025882325529965534158389919509615756027292307569591419029561324881657379484827693003987190180686961070645419883207861567757374861009054465186866336280523526356256106371433930668557646534530677844884232693601814379309589156586417682020690779807521887879871337239240177181528658082399318863568937227515361769414958298023650786325907590814708215962135470506629425969693300036229131710236507112909410743074898107564363658708546098027242680290069871559094818822940168705008200900411840092462574642633681775153026712754852964302059778020447353475761478077663126493242476945691544957397939648035355503906518818719762731263387484011835868066799632654464581060091946612248281918182206397794614580692504496527515607857459634700242334055264286067536675634888052687788898075340598519051019770860800456062630806704485493203761114775555699746720321544809038076508900297692210998190541801680138489194207714159334996883039036775502425965207652815405896007406471283661567181620916218822453551210377000336638278134670812524457807452137001925216599779528001100435277837226375332825926821163137958740401254900943160685476978526082287200614995693898586354662373015495393335673504900546231975766909012455433621947176018560369617975279031375236051979968885998386956751264568449256552666010094837943756694831961553031887667164191537492869426408797301122679962480052556320818860861667602813685714329178432628925862561516151810891141594830785670340155088409199802487153800922323982765519748462713524863080031575262984482969335576290646127485821570756110807399106253808740451274067105989937746686678382396829182275345681015251552722304052791808997366846505234287128111384265864683270447907554132964358532402264088257577835466480280729378820812325458487512091583852546314537639831035197550707529600446932720892077525565899658662322979357042369877377179092885871991737475877996600972503296812168470448001536733233378024176630562384782200599345776948931162258220875191275241597855480058986168680176964449752561135097792117999934561288347170722354661941982835925603978278417937182412798607558013026772953151584061043187345864631506601993574720312645030300372807606477441413355498990812800136187354609054007691524612080280169207792560060023834140086336002529511745068592238986771625182335265180245372658194999909850618225024290609718090658612802310876297573982066863321672234308129776146918507369750996274828393093632283217199642332937528205216605365090726832542166539792808574158455871248371592036005718383096398730209794399588815613761212163448359726319400658869731365874918156722801547816230200592692311662232237730549587565251142701767168889157486296832355161749786388985859617232442647118240660647841406538962148843559566260358068768010820684298007662063351897111128956455923431309736090317954173239128037866281682280670985232767526940802846117837046218142785394738289659388485350396389692422414044961224926510756054238669020797649610325392777219705721246559951189531444661113602469205834705681364245279675313343682111282336692218595669003435748276959646672059174455452893624653713541171556376232778386259438223059603218257424188172433759062092003555402345324773317976768798292557741248756535692312230553501454142638186601213377097485369269718052585743918988625137028578576956517361609402920776544083612968753785574128863158433744299302729724188086074923143514426409304206162062274857597776523303828551409138923501151705026562261539080547486687024141739207119549730125073818487022805413105334210181515619928871762270737268518575096852290552063789699148428577833373945275226682555624416308084703736262564021970013603196071186017773336864943987918393980925663716849735624062942678866346485951776689101835913970759902638038147841630543471855688697210630275790810094451421406610307561124417288500900566246513473970412876211518449139079452885237432896695782836713428537054078720508101811084770921113567958715326910414050185563435978100730714065149409767080675337694512050834175966378618129085738806700724484699811722395444871873742525949352262092972881743601015567159380881733782003970479769623288124759595916129748399221165274749840195281080382877430530991637570317242658415505882531032217023921392182119952914071264526299156496050541116280146844448864350340191358825745451877544656208685702858065462790944461197144550312753236640447931309411766645389543172890817288860540431007416849821647171486463391593204584044448873307892857521851756900382888974077840203426389612466854428899481336378555915809992344693255762009095233042959347802118903533372533791499427182574309331853917966461653811931170132994848733832462653262687227980751331453009920125545024013479721485445438593011086361371899545306781020061027561530874106637531628770681310995815354661627110259803180445324256286823969518065195547500756931125449697292991458117157927660371186814182840040935581420087834116659677525499721012481195865565844575431428729278487238605701452534555692209431165296512639485233985283548102969529048246265125558226423499316897875180480958492065829015726410946488106714838145470489469347198614156957519593550360564550054387359312458454938639746037791856384864457992598749636996849851173345539189040958452864989415552633358044694267599872214379865447150372498068029383173873274178805114361127418482453247136187133951578368645646798175326990205220589897450618430951510194659899350055579343551229888887901445849421813606582334804478182583789211120632348254699883041404576337534773410115216474425996148015238823255093630732893954734566052431743710073021274919163757509893047443093839216193177482152787606978735227205618634855712810144358389008423358824140358647464182116979397327999069434216927944456917336056702363606980697422813078251314996911626277596360212502455192871056266986461414259316282109720247844250472542855582993613459026593654586586761032546515669987994990981870074846654553214334616667780532452101824476721590631224032861294352301095764893957573734388949887545631144858044043755032199560168642462716485460698707429494056445216669429564663193754996969770485429180771146059789204251140376070658543045360867448047830689714809448980822220933256419718880287569144667737931643444282923507437915081848100475808177879501510610627474166281655434646459131047301747628200692614960754723338346660142653675306006744582234193138014631584075912529950517348519073717188721313889837775422747855727891777041141403437086361217778158549223752608916718619805984770275820360449739947441293174296231612816609343973850195201067656290607906105674471438720691236218862244036257035012125270018717249800748064805568665231296515891871629419382542332537250585478058798898724396495041162832862848555629362709730719349694544313831525200830564965362139734268682562517140950891298253604546512371611687946536608510513949025619197701106230508723034145271814426299884684306314127967535285229117986099112177199602974390034637712629813976340201283576812333375360074967712135336514602177124756236225000557220758787416526723346086018536571291656351372679258385758048448458484210538075576434074405382579613594864443592959790928398636877988536567182815634137634491791409045310944841709287302318594392485658553796771643762525122762264219550821481442067613626682835754156879254462151529532673739632080134361794631941020630318612926240985879993894909876181126724456034963172070466028807532825558187948277303900735663422452316975098628370619338462247397290320678027484814547348543126116641067357801779039732670067260768151237145083188095478632891288235133131839616173323851267014065003103845730179245747402758260474636955535287563519302397550477363444133370263616175843201383818538389897114055458552085724811094867280457262747341069687375060455550850271068184378754555713947525157242072623508259440397364616965440968349412315156642168076465243427552438509986911966224028922496934266712818136151016607640686646531717695834775835985696326124244367987828875105729924314388265823001416980365755029135697157522895296160713783937641047702957200490093578470974282713299285663214176309430770194824102790122192988078302167957708998214276917519039803853625038892573732956003066447795950011318728566611489301427072318387207031671308101243481063794989927304136686782425566148717233926891918259846819376408054279700816939360191671993650026536885038956314865807508756659693218001892019256201073198137096257435291907309946854875573928526940791871346576897835119445364971794953165224902141806926159097497937750444982078112332724243429792396798302982623601905550487060516077539208678610026033132454728295111211471114761833284343605020249168142237424954229200318421945263179938387341506397576566151615362878383893571109518943425426380473970647704894716337971327090389182864427753272636488859242615732836332552822693390832822801721237486796752844365313913550756170479440887543942147347844832686621414567433815455737388341375834598462384347667598231046465198080042553098421530713181224012969012842754114208131509986752121120998484222679525740506367469485235376023894976684426314817588777075650166379040240240236635916458322761543176883137058261880443455212990274793117838671187638755009023921930203277155467148988845514206559868532941547728072740612081337179060714699996763054526534962991635164659369067167381677652889752778490808052324260106207848252698445634547130081137859142854892379271460497447642970493030772022427652836316965177541442335331102793535303199297475889623504905208061098516529121481349195651418007885145379754904948849014471122370616123004580130191650467544486185875072898111507355674644516781036258913942346276814573612242719819721722804162368801608023719242792690682960291601120089618617143875776171648717477862844494332420918744907589970449139651171822812627604292607797783169237738125357225975794838064147559311285559207179960043258201557535520951921730648953677555098016028070908351261563010651078203282193313372922329619697082927948423498667741402022937763063873299842607776183522751360570195549768476956171500114528242242932743827288162859620693945889375564981788159977781503281741272183730950207117529641559174863146514272594564529861165080322784077521179471268225277061892126477760239715585385432156108366083927831662347447289940038354976210254666044024900990857416035856887378826776848747794041852363232028826310291833974558924358999079534753638144414659995828597085191878455405520370423699797336116388878591870615552602298292939598776760564147949177647751104345532896527157411329152543623356360604893737756402343901015722799637237112767467656073356511695691106187703132159239242271641329350168771611669454421682026224012036484838505289196017175227848073242642983579715403219838642930695862229508407017292184572612485334453706437254400472556136663205347202103572243599947032441655786548096979905070769457719386240332868583108410536838491191621679768741394339361825375965786546231441372460793004505934597984952711727216237862549896994768120211435821330521495639284945680517933437270927329024683832439149831730486777047872119166863315036857160866199196992756113271362543167520843304080139286937794447996585425543539434972879576884443137787095408943120095310127078130044041881072040390715373245736386025555400981132104163653986323404512309575163340139155121089999898653561741902455668121945418723646895836796546389776196052860410474810135196421758572749044103500066764151742458790949098344957755766515837842699558091866549173964939785760542357893367013534501908332143943081100027266048378119876949106702863184278577605010896132386467102077643875006497639363882923008885273964479329764072542156022231446731362049162916921339037664643263306888903743224784444123692585912382414060961654222203955278515834037024979250080827079814701369374320136394678055128786227282082182944532070944713378401838573413116711398634123684891036981042859135087350683241865915363038468255974350335104260401280931446231718102093937175693234069534018560678012421996158347054591021135561188171107041080261851877118570855774493526859920482486663268781328234545466187064844699229736604496207163853852923542427961276938496156542461342667556479044272320163426223511331796095660913872942005197962603528358422240864305436772440806419985767290268911269789197875627666273172339960423763184412169966488969055269852123136000072914218615672428555121858376714632928106250274672362808933032854081788563492157261084048476180938258935085980899389753144168075200671340851683831840501939555870649784218603776872787467023956365899247872656287484268870353459110670540519291129876281826895102127587540190152022354302703532327672502091310521007526902319394499076015193757020400530396428377196036357913507752732678720595444414502588765939021359903511336390882937411553964822041400796041816832615645898889372024067697564189716308369812244605082696985563918851724309026696560893839193327882925522890268783430743080930682645640531406289311527346930139502760708541579359666254086755298662438363660338884769379010657217557614701166932095684789617470576288190731775086539060398710014259420241767511033156798892335122052416201646497052992139292189612700597520026869276329485270482684158868196522245877157984346347118804744715147665679455744838997905348988046168060761401704318215943663906957700764631557478746771620659382476680403809056304527687353744023989390919279302242656760737397438291340243953712810501049768715001001186099065753641284327453618261880139115358824690714358982295697652770237642024005306828595517789626196698503108720775564358081335390829737389429314590251460919214917030572687649205432945263294728553813126078157028311525763619964166223243829804253953525433671801130130324415831047859143728882539306071568222135504542042662811712141421041023566842132596081835020224404495470059899358150945043829881698844210032094711329349829460580842236914591127101712235019702933213686308954648422651111343152532204183382871289260506093341830487864131988651905518845962249758830369534851259621268062226818420315974164373962851161562434657832203469228936187208418481003573692068434085039366698057384549464627956355041517141512803340514094262287276604531731166236118812414829239996892413479874057199243617583722144722899643570314342959361106947832093941977965176876064877188268636904734413673596878142234649163138984600437886376358483320410206957492762382107922366732751275927924397409182973079645082774288925928820066339376052826075813738794278771797214766168414420078992042464337711139375850755117951124983702547092450375930968772232812432612976936079286955280914075829493384441346722121536077713739090030170202798100550743522043439525647674441367345057909454092556422171412637011750651770940733587577307782041306184256347275944721995946826678252858144359936273047220991315808610473933356811088218494811706870407606882632984264227308998566107567516535151642555522760503997301416021502618636256006309963189051953486626590312371525785351671146793966203493038655119317210722659763494861421464004884630316851344543013931902367126869346716677790678325733546535780699703210428411197592578224204400351708801141455845845992738625894603675514400305455915026418285598391860120348318359981750375353077907436025529696417676280667485165034642320760484083690864094906994843673335527427869068295270826792679685352639560507974574174072388912534475224810810152294362885181606163771160488076035918376016554923025195932920836977942020637599919578870841916618939995435863688878694451312656235076238129507187555982263655591273859391169059161810374894177325332634707596546528756375741708853260899111977722136022728518716434099304153405228863953032868819447318614663846145163320802313322296957478130738787225524534464301143344220903452752100061829751769704755798777470148381456515424417729334451672560916252892276930943109401273904345624396872743583029304942714014296916217415062378599543221492505927791020282389261074917810980967881533516926673934040357905559539263231350325770493439010535185733748997081845061418412614919896735872671582997707093019809318978179398642217382914744725164191377981407406205704229346825953665797158509482532487413738149481060233829135487119870932846096271500970190675609487153056711087373352624301472569769550964317456489669577034891064777829181371582928415843698166917171131006452262871989610001243945055567039950152208006417461183835819609679079245380510446355479902009415991328728617839360840465906353683007323139723775875508064124104801073425293745795255958245307523803797772457333774837106101908102387579148523024357120285322066774839233468235348397341666480509915731933373666846230836220555808833679995123929175289990815733327126344773950860864909204921762903951363406144945797933421451597401566665106262255440598641019866319511436159490096097104170954205749125121217730604005161048911998006541078053108983293358038960554744070648998477701135679603163649064386928079347376634489352304086604566516849619035715080123694051632877842659671465030871146690484008043846261805294570113624220251975416857177313736430104140215045208368580502240927619861043301874855390694587711445068074762289498443530120866012491679101230155193444181501825253183428416299165859779538732423791901169685605888753402801866194379994642289358589049386450296820364328788740491276050387315609592149859657782600531284149849983608041098890475020994028284954519276921127817451004747563446566577750224523245388665517919728738942311665243245092244939779360483744803826391713860464039140207170609246217997704919332281808119353355056092411410015752266832134751108495455254789380470938298071710304642413643211607896251955725208915761021153868498040015344069372488870903983976243347754293787196442137860197698902353556181736619330097461490211092962221169669052725846911429923486336809151355368834790107522820039990696467710352032534965203121894889844099173930655156709359687330304784127811913344932036676308060445167516570564998839453337096497263594919804723899098339726949081630095339738923268310979370489201501671803995659465832206801437271725112783462995021494367608573981249164525166092911323838672189922359014200396992036367669058707819229206700412297653246610103533362446385045225825539869230847760463268842002518755222126220459578148395548654658933518061335255498531198880709514104957023747523295080681516882976664241424308367869845474990686907108220415169889904201988932669750699806222581741359197577678430900948247808052949707669820940372731331377818007139565160155650065442923802840993642457851907459032360606242019024909007109144868198324331598285460584032821829387122579736552172546527088214576670896366573945111670519410323866440575347992187508916001218423448714425342100902685634871868332431535153615250709202978208709930969778342439352204928464000035684567089701120861701292534180700819035582473121043493905142493955980189698927478622253720824203279137143205119103244290276375940525201611860917615297265825066644292420361736568819154134205419066631251446359355287641429971638685850760781737693807130131754856810256660148792124885535845236450974387409749677617514931626630867571410526604605292775781656572730652360334688932551874762984262742223522622535612664893352799339610850738089093320887927633392579314283171110227887346653270978713713296118135966512224569481092895789040272261797534547444698486120919020142521309585261640544929793584609234531037929681662291927102304142996648763501275352873533480786691362920268228016162730238775287259961800518421948754913628793018349382959843898291744276407039432887302245228082538176318489964406265799614881704997761638593783918335857330723686377837959406531517861680656986360595832081296183896317122611829727839746888408972343894470622549034855561491609196527780037562735013101895874761710692267692280577924925900787018799046285023172940464772755958149547546325710462617349255858679759434246081158132990493205910679947672947403457231200779322625331222801773758487886921516929087584480192922853412312266063358486507200698654134545773390399228876761924856803937819952935313562010417850534084883376167161038229383467136401191942829437748903841974959965543007834947075279946368320857558565423833208109968189015501440664880020249690936158383163498959911693839136120863552758415746526694776896470744083218644175179172574093772349995215750919751267493701630763274893564662959770394972837951156303224725349792470957466388840094709790622331079412333881609213238761980871768392605103118461153853138385931274761924323122140728160970214638476803169582323139591862099540446248615063311330564799160705185290993882676165271736689775917340953667484056787935624888865856337165782845138905001745972137618961708250521362679153941961929858121447288959159894604829027790725360915820302653353518208828033925264130113328429813037164542176732016886220221292548742437505949791573342292499789941434982507747838027871692937778974529351125447878097048694011057537903373900423365076228497587644262278926178689327313423053257849689062839958114170244898410378272836430845757262189436380674287081043216462337511031477621893146816445135544639277380317240788564571177014394999474664046595026892365917718757290677688255982449112369554639562428949780722177597376990244254887171621506616637470447977978187292130769611324900237430940767704646683648153466501409853104663546236254932194763439027494281074294081813430817641364303224247341014944772145828666856575447784593422172927820086606161241187742376459079239613077390590669758056426355566906967170626512924199304736236492239718476754212227336646241105601271680962522064390143398299130594050551859726024426088060954449485037075515167974659093450864658025665572752864940620297177221458396745575462889071920653919628801649594458106250784551260266356502013681810736903996142432403549385229902753708652564298442117030932177150445904552030732151889372855024619970681222162123343771515641966927870719306107741906721444710452593743178028599417326743125147947669701543034245058680493698000266438231734175717356807178938154969666691345523860361082779955972020906313431377378099921628645329297506339350243665756766810034533795107911501469144095622924369959452574775436418960624435650150179710975123552092959605087295980407272226099109259175425009351158748257377454650868307058034674365769300861855625040320463793695038360971309748933586429723540760088318159230029361021205722102373027378317712996495357163458430988158799534786820667320331230660039435596879004898097991445259659916381823916107447589334322520702707476840653462291287226545009184528029385265232084586254202205735225480254969804103078870364852823174623699984984230298139349609757451975291835766790224670970261662219146665767987145035127085520210706365022197117362852326916043543007467600861747744442721367292600245968114553892285571640731234804019461850084916343234915552712315320693613962613221916400799113129753796816773126170541759989712369699721260857623800384579657315682313603927672431712727161858770472310291868057197351039082942704302889616910215724682337794963402530311976124152057383469295699738264319601837877846130923163353155260260281483945713637275453967459723329219722048922311415349482368638111317214812677805494892038675669741976586529421111859845793555874173379064476395701285122357141136221768904733568765186195331857934388065238855708477721679595692222176989298729005410814797086208700852384919650239373228191542481705912839309955948810273493626429436261648483892000077814445332051428276697017512186151205070408986940238251943484642855976072850147532301269922232124782693772600013058076673168010485692759354303548541718328638884635278119275620282259220639886986579113894841292992573844077404800049231198663406318563627387176414136908381900733183561965738978934040067660082422402112821892765249497497777694234674700452474945472945309816133260823735559043105604609203262058255832548121879673815722342514751940571755879911476009329709320989780098750147827687971150509064893935767855509250642768881462304769179622729419993402250701748355516856816527851266414566015492339929366446114149268922944663158750389312636481692000451228746337253473029332931783642644084900961254700849739087856504178134551159545272892894925510344704347489859967709956058396005246782448794928043406069688755221976786720967326389397139138068584214501839853299036023259324175158281883890611622620805363601574186123309606307895236529964682228344898002465623356807346333944687771607749535227704380438685144414516344401497144966228183270466958937171154772987210805684469453637307194890324713674489092239205245563381502656816712013721304224275569434091792602445558470959248448744090882763777345147230076634314986907500885143461329638207676123443114420388393909213195134395319018990362503183991639673529244800050207753972653688782360805964095014877543187073701218142976911161677264661637238424825279170600236238489373992826526672501589545997381090723657712440686105428042796690073065340136580085893793663945611862752491319548964670448036923354855036590813977497940914913785282912837652965860273405451022626119096784687171821623467575338683649173619108231366889057125926498901636153307857636063104363304934725743132408491746159778889958677830313962171101578885480259148320813975891437885366426459361777033780780063463202229509051256515442998083414022163988554729240767773795331773834866550106365210675548550298237355473312537293487713425890205471832436890503183645820612336378705800219571279122742184013224482649138696562841801534089625605697017612975606170621818237700723797607142144148553312909699342442418215732784757039058221825702369137404954482479135461929433950873460159598075196616818128936724532684505642500189001826949392483602469286387956603520801447527787648352085147403816834734138644618801295896845667833078786260037749587249138698949610339898506692946678532767264864880958002029458158765607486290535993215157009922853044318954132473113836033915569901736475036763997108786999050070241379944774166126030943003572391365361445012271715877089674173536874705959030390413794076812114724790650812138805049681714903220202046320751342463635779579901586741309861871395744224464563405726820370303478455603248747119489910551055976880593448662276810861272905929122792811750753173700460580795129742047070638948568371492293038392776260920143141005047429141481417123805340066755118740998874362317912394678694220104343544314989177231911345134889126476473259456418613562866116052442683259101529701433269974557098555306832030578995084881496521212218035795167418298059496214174895238945048137175219760417804567201907083037171608723970169423989633508042939935368051544879905921492272981057448227208183930405853793718234376417733660381777273821055554995631812093043356792921975427636688299730825994776118989922797458909947245904234948053936108680000070484393188372723368940807034239160469471251054220753571345505377054995160959064442870954701552474031536723945760406119405339807240004607816810447769494245822145936276378058184286536037776053303314502437414445419812854097988108410549261910111804809355631992137922010524170627830451204073122641499547590079559284769410865611150007237289442757245401346286592077886814331935081245886617601189623073714504165713753488026290092894548182237282731868012343753203149593495780908049425204962677276486572496266026456076561363369892236017604924313135522058180865782328322464445712555352219011083420228219257253550792901623869140443788642435835552764426304466618431326801073362841559950451872883011469400331033744690147568172434870103537960400276605541592118767450394309594309707408128194627087464742471077167383316738928587192554804310138078388088176517951775936181868608745050721833944552070670678019467984471487745494385431393630209697399748737150141475890344390114347990112731469063650144119314647377508972506903102896035551979003186088244477139101463255227007883087472257805286244230892733987771299639158069137016093016785575643896752897498952110110976839869647010105443633595950969783073035259457654829437431254966815914492266575233426948259583081524277136219339655171143448557678685917468097907847688472007586268124888504300913068941637903114997646795389687802261277414058925699077658001162768879728239540195122516578355456232257828787099952526404760965436928588873632328331698491488339033645961858015751840499069698088942910691207995489708636374139719690520185495802112688305745727429556356994401632159688159866231306407388301235183975305874692790506659906523609263991968909932818351969558016845847602833094122316348960025123315218201146457542224590612766394264903264808665383652550683143266106317938899780926389925192246256990803746778136591270394562538651384266072531766111869121015419612023386150529865657414542624929769856516106220244615952526944516579967053514336188920438772285188071675209949611037680790257210642358259704255006267662555591975867408396092363399901996692231905895295332944385771410428261640981399474683703573542041197427104657036253326619175822574641711889128678365430134101972391817490637768299249589788245458916883255536086929930310929224589307473824473643514280045549944234631741920562647747114297411790148430016166624368747432456069175516020476473226487200517227576042462594726686884918980244371551828975592696642362348692406480621221513016540089278593622661174256311855726322941368762081819492189497198412775441681755644841750715636141948902183498600181223704249242675772250236952155697954229648987312765556657014748555066284907201503352420249058574943968902035233000715315439332396625671717145578276382068432180769488314841626087083647214757112846386432588745639126149341401316948943013273390792075047051323395961175550347661306970143530295955621924752517277338831488453791562767304354996661240472412736303347762856455420718868664243562959400148685613778071187120538980974009356510564930816112196734515938057677715421124492593189994457433435033203963771522801966618739487331695239043369751839169601250806116322095222959903440323419778833904694137451401858002022907074743065442043223979519709667089445916732256811643563212355241239106571945787961066219196242186776879633747545689976101571836798095688936164008790405994284012959101605621983221371298683248899874448000897508613148154135742092489952677952548032081755320153808007089003675279584200847374143515621052484639871066020380031975357770694631553896272421823002366881165760465777449286877361315419200184968076477257962829715087280907744640987116945968056097313560462860369592859838947767248957807337698832025737609900623565438030202939899992985416236942256745658823937552316824443590429251022351863248005970926540648173041852591829500534767574583316959324140883569901762028083573077472069346204820871849742228832227917484859752136658490614924813931636205199856136151640798208619952209391266586424650813876886104556472288161587630044484380962033201030563171234597579126618285093245621377480096685688908945607928942022798517946598289485289292932830171666542935118787976066106353111005603498617848638938191130823167069719862064991909098222273292848680469174875242152696187373548288730276901750639771874575652168878002226449685790930977520751285350633195368862032759245722886088057740882236699179922342189832746093068123452838021467017737525869019753192324539170759242132315082726082878722603751663645959241922345684657328563551654608605869615967548506762439767668821459891363064412029686641738880624590838430646372425657846869462376045271746578949870103476789467133996642879534135126034822652386312247159101056946313873904287738183947891088466523309392399958879716666070680021300062396237910481077643324147007462695190204898883125691044654285763601972964086437417982232588681712238754277682508556799339150797980288075445753895184022929265654164009823119495085240879239311046634374426080844003587199249323415274364723147166209064618027277903163585302966576322858973233345741035219142185718047472195040821861382763749202888282600662235021971296720483994356042986445056221263531205574252253206983040831656908454928054092357190757397118578423131911412293772259095729199682254965267310250133971414875704936817903167652006383567612454140501123180666287482122644392786730654353616074520304785092771206589984549281876338802195698281083964596796692112472878623344183278433002531948252248863891138791647178084248429770402264203262126621987155404018311581192823333416610831709100786564632251986035060003097246070476138848169171266380411234960676937121819031870138466893231612047849633434290817719112600392233149999394367965200030609132744864626826335708329582136376951293293993038544398786983719542528287359229462668955782404242136842359625524260707257967976461757186474555486407745351120078214155966234422654440223156337017181131336463807251836080758333836355018874861406534893995106753427561079980822878727886467889569578766376147602580547579618083361421992536457622304513507100688836110992061924157946096971929078785141799747454487157649389560351641501346532306665345380896733345203375489891275318335462440198578515122970340153637159307549543680540060673891321995785095073955806451748698275579781175196344101487209197150728876238142769867736557909889101304289567718050438145114237935099493717209456821065558947366018766339378420004131393529490192152796912950765562735855606944385215169263510473895366453118919825583884596349047191801812854696116877802570851843738196109236582232057805267550385261460003538507331794105333824165547785606509996307714289627093493441353529716290487946420865460117687407422151766168888456299857516281085901893858207837531031173526655208226291123429952336920535450495389873732206820072368824113189951458937842096522802543989921746418909915616962953207201332182311151969724408639567732427125105727773772351232046829602321537549925170636913867323302861612598800897845386468895478539417919337058364340740779834202884200348507896874762230603557105720730021663679539899887682926478249468032368082796445931905100900387481780839917706628084448470678258940856463294947907108658718796961241508036634542405596912771432436229464879315273773574753777273393067231933775830269085393801719070958381336438231263239494254650304407065170563359080470552936252264843969552971723150797847137213941061134161573773205115543583747435384230335652065904198580065145266322028038213982345044226040376373899661070114275011551654470518556815122293039233198205357801734760069572836241323755951301722288758267938855604393788522491495569425545785248320609786832541661782529165031208110713838434842237921117445955156795046697441296462492015030934179966131773462243758185159288361555317438529460964030573416693070263481668104315033282550873031125818523173982951067647364399081366807605152660842058945869202232711903144925419524250480817186952245432753201090937613381745587561299986260640513458557673804739316171490244120705228071616925340136950368928383643582984865430345762463665176251256589879047180017243389226880329475842883727699790303805067363233506688487866337703134041276298584931527147140591365269623195776090480589151469646655630397641035141357048065026916383038031052836799442613017992074942591087448698703583541964606469639193968542789653922636075280895305482461503958010936708833842013125597083991496380581521317670026326593391559866228927701600966903130993219447235423994699917355760390702656515857857276780059107493264193015349009766546529598000196166171521897700483938939379881388892466930605813884109170063409326251094914729269225592484850338896016833371874905486595964757741724705297617135390642870237294327743175589050561648363747008879957800883392273140801847450770055360355606934107681219731787840155359431543358901709571927801121827817387820762797367012396751931211494573962069362517767426927437283639164821420339982906809550902230202588321314399989596803539193878876360807650361300336049577926899625728881663815308306266146778309080380174659002910432334065436090765330709930950811707676512337745013159512628129340826388758500229790342240721488392259425244380146530208162802795080316913313237572394543189404084044949307709934156282629334355512598729418006375659488961551306866438672673225128545685870257785577829235014776380112703942583366433039277922111623547544753810574282139065135483538702753740187979061655428558311487896800474271232535232275487896470694144557010555005955486814473133838038505995569247580109698612208013217558234947041033692185438896304613756381270914126860491979807494503349235141356667356885695983779760181165311183355198048220098530448011903187320136165376346944601133838095567105795285809561953760744622558544900192081338058990338143680211291530795746512678607216061949376325721890057257248092801982185568781113631542970570783578363468070583918669777114593880112683745219866503283041004309961117037839632598098255704706881150765311025695842718078357047465322400695233796053365007936837682046268233990501557809070432299181946178421519560546965017787952225072966933784491023370072536884288861065615831368059670668188830086816700043253235009703380842834846039916154044605629596147675794062883542916411053746842368883886470324729739862672721144191176753734103015634084323158950761568106226713101288864133713383080750515054757616290688952488368781071950795289688889605243475576233300941041647820448180055854269248660888100800998975978247578804941241463200766419166663293961359681440169154506422834748709951865478689094530181467356719088632407264464460675797434699615568521993464846096136928979097114146506631575028912204532070978529302815041925045975104102198671068190337339738401936883318955804002316801089948410531994492643750953899974491353587804831823871927095645546027760413576256955295148764513407823992708899021375004187516901749941915569778547030545968981746977436494224671376035458227137146619045021920046392745951052829750494639478860111493066739001614352281020708610132005494854066339403034765990736763206123596813388953002725112396272710831665010495613409822217585682603198380903513790954821841967800449780477247789626262090608321685369314768726473072961758835641793593720482146139895982255301967711868867099152620248514719596383278077267890328172948910059519765146356998662459913794673578551252753845612922084395751858426594855878354520866527384556633223112463830990008277727791524604562240484710227295446017582219125415650644690148117827861416805768072467415446169637378023468492034622944063911622573280506974265060852916230647534631681304431256505385110953943643691030079102516041361041559056453702469166206808376562376228100250740345965237486390293172456323131153957084395424064376812943490610777868351821562873281623014975488295537191374135209470328018322925093954741631339409024048866543368702666873346639226880998502194915698093443203076399787496436251534223219063952964483578837631576862954312773229149147241920306394742497679776327637697043092805995031732953852109389662667613735489661385251868460979008379445843643264823024534924537888653704882116673450881709970346784475846914942421233341275403033116890112677923332759337445309919385658396653597074672605706584421484633165992758018631693731587037879072318611932078582783551756889669903852952449858070378407813021387112890181707403838037700338727710844896123949502834113024505187036713114133599475284776053481903268164133154802975792656190411756589583731097438139852224323902120402258494987280683075182172226740020917602214913970970731543440773491234167703628494744817459687922416155370920003205619153663215036129900323216964066087237289218301402154023110979529844240451986945058067086547005867986622532516718415059703978490528967446825769144098844693232806228474245057545964125243983858169455070566955241172894344760193358002019939360546928328268148252347788724573413081033031878740428576717688477867213707129665812818780780194798271729579970456370642814389549929095305492517664616240849780326792643678645326783056706146456191314929380739624364069389925472255686572366137283081139525166473423681934312568658696376314283724531976316141743159198604452890444207247698864406909667932323473005348476204922280962019962062104663450738271404554454201662035883756737042056839699414632780848395977033231901471234333540619711755866754583845324809185585322855245117253290567697504346813591130512401680939336488436268069196336661086125632801115185016035664874712316904576270679364697385214787649336072287054259630846513524132607108550033498556457055575818657240985793655215823161579039460167189169774196414349416446455220708785000149857775889898356938202708925230263113939874898044207955551481625040829813252990395799647586725667292070295149923402524904000188280848270273064602594710657236348332907316739919417710981884693543894351804042911030420531386972707408023890722174278807018664031060183073605052591171053118420340726681838718073866052215891807283053931899959836703429247989348293037650587693071394544817813793864047460743040374125830455381951305161506459068131865663391277562130579230177184852560722744106450162390718336255655077477433972068385288840411596821876227260692681056870531341758308767795031902798799682790060615272440389727982644090745664601524027609792264494257608011391648160006161658462357223656667730458288623444456538740447734076180612402876147268635599674889178177027805677912851000875453477144660427910021356160026286249707458951858021263726966601243000706571168279090967110404009038504147186652476321287135839563671569871132775462100802537135581840187203860195365961769696427918973184454954079069687022085326462691586614316550620102940260776848862054952019621594643346483598391678737349018570233719285387046566453676191200630974403137163211599939420106505709707536690843068789554835617418882516178930793414416724256623565578181245378840502278589371759156771065912483661645431206417862878944619419004003770164917807825549625653068979277516071091635467751828245398050185320655320321044543986736540047186902863186233132293899599051197676560953987479686835148979792634284913400549283725895536496150420383047477837114351966805691628259883010340989343978224310809240211962714918375453054701848692457560008757592365666028028720417269264927200885046259349787310946423507524222337249292929198893925730256867558398978527122222996930226704793834499821852168582922676671447990989531517158326745744672434369303572821589386155358425035561297640868081777633266054979770493302405906515880912611392559257603035354486210384718384113187609068971411167128472285808244627110685623799943944539624764977823792706953066426127248694734098398361617485651985923938819806363472681585581483780830052018867725367424376011721978802620788501939164397657769521942209581213784636373834175926425404793384634466709174385291134918161495732933981586930881673159301663533072553961027126695794247463132121447919461093355812480660393186495955529632912112721704791521044955027410836076887507461358841305835787900399469558139274450989375082524087174756343275120288964029450073479990499291802760431924731062371586282111887838881231360948485978476760778877562679933056382681297504910788058250126677354566617314073592652742979759197422530808574538021954154203606351026771403363543165318043064238629408035993080844018080910143802740201947855942996625698707907305305927368383662112462066387513271691132697776087963911748371736848658961281887689418811105556648425297217396577980256750245374479524192264868380285454322106424507284483454721889499332226818930821580841300510434380811906144253918262523367074473395720988978523033531299249991709531969373701063906126447473709767735149838328047706653577447688832857334797448306364420390772419215702097159923845900863956466817947246911774268649162308817402550914310742767138291481537780718405211756322630526588936706240030611798313086565035089205178470577472432342635704173492139068366835924258823503351671395563106284519412156460419557915123564621237624692691702151821916843132612810209926778579964387392177576933473030085719526969790489647336769068521954027802584817432064287042867248367216159443291090498143933001473087870116745938310870044686310505614185971281306671833792508996515151507515643863460864761906871567099477305557570211866588538549422779296274431860791965254441483957437982796978719482480236370196461570552625454670714233630398882543819244315183275093847563873135954840852348315921710853775073352348747848362285209701776403934908772165202159097598006603364586253532841088016736002611242711927061737801424955018347067455550205496646189497714241275017474623581152789383911609166613903640972217900228802897606463903485833482746925063788087616283483429309408112491613689452124417615350832524660464711319986037557267240536249275600082685541296512144666985087390783055021155480844912300168301538441646360281578525040983967083407951241267387955208047504654185061458170086282369588673241596861571992402023372797177510361326253583223676981842303186712711978139553961463971157483165176101521997150506811874730899582024173056915244122813539269280062302194594002381563210786404938382350354631540465081422444984845884651818588853561945187638431176560364603104977835804288828064008341428413093947222260184859587374386864681894540847093905507412146103162004074892244807808110449027050896534060846561725272319573411549683466440230467515995161201711479892874546057073323476187075836905498411567252328816736513367860190400289302144278309719850200589381812299970360034975307508809334347764082181198749620396175972095239336684777239924495260702640141073715275681255383844756756803965256030512159899937730005316999932370863025047201885139572736758753109419804141616450101942788328814436057830431830074148868578142270178393342147931951456078361059481553545140864939260450134927411194270344181078164264174894564454507483129771714890854772623814849211347136558981709727498986123036948509189716178823123727125468438975352928254446024423318811726807331251583216774678463718255438877228024815576506793915410551981095302213072826774315464146737612196671105723576269298049001169780148150754188012636656954304732213626565957799663228164865969223294353602945593264845040038976644847645032136488700338772398786057130734017769606638517813433458389153494630897141292666628937243288531017276648578005221505238774648957649446107888549733140013024472473546810047772928724784917945718134847094378661469015197919162067808845945651458126311262096748925014464698729537686080216389432208459233318435963973605267080854235390333418427250897772514971289051725708343963708645151458376280650430829127116810785709971343573026569284659993543533205641527828614431648524857034327121108092661472072870257989501130879929581473750215794962977610380244728592065637814273651758701958454515543312953135687779876037280004481959958968606073017224453265186732632446622007107683410039032823154736166441892078571665754161373143038735896780642541255165203970933823095938808273983272292300693388621771011933086657759658525128344966407300534304587943808523449400599266807645393975079997783689602428057532326218581723226811797342929968990400599320047343240342216386858969957079486461151301828698452455341721782991863115228889973315313568337503643537908486975256822040074442751674809891944286096062866647206655752460057201079858654928649122341106461895815598155817494260781685098863413521902380609944094696707858638659120431668881685442877300885537231961949659319863692627745767090460459065034200401765068872554811436232853358865062275221314594443240838128457862105209355363407958292751411042830817721582562969146504436000374887766257951320339097647338363175771068548433574302466912371754708996086959713735599430837747222519949464677513015937924588504750202925421416612795257287146977373535620160494592865824066739848837987862014918803145210778668891980620673694594482803852765371252086929983797597732898698876046285775499988518175985176404608216768307789246537861912128386385204041689486938775677657787314533436391012135659121968225305818599944437599830654220099726226338615645958423349274088322761946139853100773830298741235534040469083999293858388984816984259165786274793764668958511267954942279980001527201551042251893729572802025997795261768672217072012092243476199112274466445493609050936181494791713286976608266665473972704840154272741961957593837938919874899202285024483278357137037677110963705521863113514120725660598472656231016924308960004871415704721563559384020178735296865999402725172224257692881690261216967175769966361476157603384469409007501203011732868893423891790270044424309108903540297786397330144788659068322377800705839139355589585856939672710130980567170047941766990407219389959587364646743875698854674790442638789753013259463636970515908738277978349046312566155067496235590457420493002735560764656440986938064786258446852918340249626909650144103362495862548136084916725564070340350360330384096534064584959721733963537197015340258928339089696959870141162071961863439299851250687852458565034186304791230305519899086450608895450937440273909980406865602210245648668090202274798235039401934197482824769869299478193057036271241374314739479144369817336739863566889645077025535460409261051484878654072006585407322628683206167650196808620212667340957108382786450920065836349891446036261475829823843577572711805664408915141060545669806657647006761105249231229301818040148489042719116384642103820301208764131200084241400712279186850508589742813142412510642212201452404450742357366146728484483558403209181247114183034454976460410846679570616185931963816357503666463593377092102679024751965268450327529356228023236218402465549964837439732944146250892889413800135287498759923886863502499722807421225433226962692982941398149332762614139159128440309590813039241548303338874385893736188694278103070249521213177847109550662371793384339072571763388503720213027230122148115000397253853129421331947731714800573886296456443718075423245381151956570874399277967304255760379759390575962388315135353798033102849518835538500040110378719789203844242393249756966812130314746840672447257653524479823718053934128246046425416325871585840723923995862583551822923677318049730781089148978935604918260546660413485797883349492224027494439740907140563417454474126802319885035071531046713211019619182245189906610390222246320361500232229538606475667033030257835846085960041105724052301669716642056921908912832772816526219182226132750235630556596411637557835045144331367266603530369712477474244337502332039867303460866936621276477527339069712748168134546729266456738690181339325437289736307216320797357277969791455823010123468558972890511229326821559688407623940525077473732130965925996794626499982373095722214809586326107307569662917979064411845906133006577936348346111607054354330031099477288134917690774907076540054828284436518650550389642054543804223023629307026978643285508712015038448793019018146580147067755058031225963472310679255366606528336050610460371413263791516321333868241860701204542079045796665326670058878117893161889020855213804089827045628070487711696140226477499314575263817715259738991403457087974062774420943513875244981272767977362688314278466272278920611435105114620614941855123967409550871176285060797976204758706011563851114977452801751188089792793343658559314979469582625773737785434742682059906187476909880008841629361203818339690427250512534782222335437893906548458386117044641745430904384059117325877730063611316561483455926590870713565894206470840555755140895818869082388313144683108376399818963875543699509404829249650114266452455859082882730412154270068536930870400370127259539087789295550640865862308767497719248136096933000142009352328953067873714700545290831951881814471020932541135872074347902375102689087809371119522492009585943786951790581356378952984015153592397707563473622731697683801351036510255799562489112141535963270193380971982433149169001114555246634814980988391381457471153618615831634398355389435239744853096354697917781271715556583901533888269750882510258072680916319197801591404958585879132296555747253055574380686926963918761079163870077873487908310061719022292302346954824498358728394612113259961980544882649698415349264525596539352496236704506400734912047262907692558685249873119299534390319611524586780938620245829455931743250245301984305490004487264646754333644807271299820705756697312038028777680030856289332227775073952229194342877676970406522288609771131095558199317955465719212153931634318316603922979754270049115838336036011306959930139550276435317765134885744212133896994444965693265077309035157096317037895245907719149863310986459684654711393559300014087030955485413373749951432622181753606691230748902851488459734721900259124438123414716341571699613069984189409353717358133949691378294426979395477098521679849044801531557731923847191467732686571921402350327088717686562633503061154589608868886839082519389773791550955404034620325024700461126465264259711822940610219805210565856535791674547829822815077157488949059125434018293784085572225743312476089424216199697887661848051926571523603990259927058600484987661765520368561362086972261854507673087750977012821128874916625867374635873193890249633265889043411003239925751919752762592377329480574601382802979970004365922991028920442258447011083733329711493215331037006462092167868533218920495125142020262817556918436818863619681616313191326207200713918268602325226786451462059997426071848342818455789168194390654346634822131844610562219730002499836702007972528912198850232264357377643890701022853257752522099556971710175746055180620293170266895567062829654733703120694451821649684146073623537946114538427579112415920119087172252770844520772047333988480137483877173527105698865878032505450251775761537565993179556438348916864109656639443426584884382779172573100720368898515145620385894829280773992441610175829434199109669370920814119213261156260931277057968181514504468994559960910536325274063978837808398982602063137663801948474736772382396255409426847671121332877976084676476933395501823389084424013772491487874469259080910780271052520586455219625727392401445803067789969712787006802147213296237234572831119366038135218692095265164467382474613385269458520573259894995701596359756023100870652489838992556194616065267929626701480348864083321150674233548455413137401611888089556703190817943243320956095090805121025834103615420282687908689924109018436927221142150372653267936728687800907660332446170063249061209661764804318159988274133222601158004884570226860037909183169357060620592006069672023215085347671949371663515284775637032149636035030804332420537433630283674917231839473414107876781956063282158365192246818003919463485761770029219769687349203629020257129216115674534404799941252692084127829062526719650145160172346473199199930394130592608054433192422292448642758171488509017401740513587242656003517838972510361628984825155315030099229000815063543435584613903199716214248372439809888731144769949739814675210083251621031484989817650917627287375351260376820824642067585327949693027184689031302337648477900825361454152983606930846157332768561229061233461457814849606388687856162213584325793299044604707706703009493620330590138394293333196302277567930083059847013041506367641253104762941344163016112672987579639190830153150138471625710669915426689941829280199773825878621665782036156943254878427809952012199512493158201278988032306684673933544568593154071004765555707117149784710524469633675177425632919735020961274118043042280346543106977970943890204937066674987723730540971893843100966458027620238496216409983047118603758295087335369064230225879178054555298511996738387165201981671731986475794197326217292819856713062428378055708699094042563965778440898600680889138644730794734418920507837976086703696083927967479751674469877063468771600386909197142772522832664297521624169805097917815360645917377953173630243886211284705861695203856146840945296921774101812209929690325612577264152294321578775051013351066543864107420747070505714640552620105189485234965344465175538797991044220559254981599617626576201797930706282402622124583483253076018514084361654346244994792852217794659807787961993659843027326413128029620142565697676971926807898908594362222726887414035016875231153390864203223790556562822220034035057412196254586695544727913431096296664534077266027426640672189219697516718796856278690935157266801753575123794383024149196678016563734692750316170396594146199375403896388967218795841291986847129536714082376347854576174345700490276824959549394914183936274689703673769572154051633511466695639270112851693115596314963600113560708788588869297386593131910494144326552184570096361501515126341860713837322182070472493939932812223943566617415741636296484294437532068940411147231577895488540428788037833389105713100491769583408929292873177341003138446868831880543300626242435577312001062780961308701987593527789129591479912991224094373788296023991120189692756562215260714784940382757256382271062202813269369189587860450225584773887492146850045232819567492903328341925370224392503002487666948451602747133895814132506554271053139455800821823181856793379478395417218312933690974765774662687674318583408182579094833958770563417697547321752106050292538477164079705542905916945759693653812492159906646664067492465550570026184240343316519979805330604266563596195016698035498769347459867649063892185930703745929527404546714389367793948066115583287116994884738965888503310189481613771629237742509641155115863183107816127955802334160478251087438965820041524237016615872643988343194954150293342670511954717140803307049957450515864059080810076537648604935437140386853020248931777863390343719814540817763063989286245953539255275329211267939656763127737756248555187544355625012387403831013392346460470549931689444717617776951652889212176719111555668537173421253893198423111190529720156785069880789060816752505039875575732826703859209231219676552848895319965241940187430462038778433801643306157255728228174316805071549877303034166895962151346632148380376859094324176779397964974473991198123746319180356305551809900399873658268043931239965993603392723858113056220937645498537446399071826025502843804749359688553803494877150391381007974549940661884668814961012378394070199573827048916268514180051097561431247789101602408488495339631954799536604447892879522066945098806616899499769458043033285627484349882395098841353344807245735924018780523055855254151788352335743115034912776599930083809796549910923065143220322952367620456906588852031766857670735766072830218923895372880848993338959715878550110559447096030818578979009501481698539002596193376585407492878257536742488084287539240047115832906092771189798968175083166688354725226030450692152054291955991258040638730965173478774331945943318315880576402346718548614926820677913253363907800559874478956566446427862203978204501210171353092196379540500626775892103526760969112748004307957373997432612905392740225640917495754329634823908396981706087411698480385985461839054691381033776457829716792046418029953193270687207740627672278681688248881647129390660521256579379136779607523534565279576572756536564008616692065739130599356074044880804718920030463636961731673362092272581949188526211118184021451425925938489841113723141667952820561723159649236714609173141019247649405152198387690044059074794681068578709201071266810003163469994766836889392839241888532292153476565361472276031601001070309309197756756848350008179549772756370169184389166518911881701093271359416931214966354045006922726778704328378414093107354346343683828531650596728795702637322018135211188052329273271744013740823002533484744911495672164360513607906376575864011429754865952116618617279950699788395017875428296692676503677879286151911354227584509734225168140886223429782545263026283520010121276670455534798906398523997768955980390047396467439676075136417037623234529531795779884741922608398534420621150230875559671089048044168763897013232741534703670769552118193333040005505758460303740805652226250185196748337453289733498176363236289019033600700065512230832451298269283157565680236040624953983948936486135631184770023972222964700336002598152646562620530425622089992644249761350156319213810269459355959877823806219259081455549425256158645259029052276319000048494748535498285834471683702997003584712073864818057678412031551216444348489709254573095347917217465159106697083808955692847254103045426828344605728946064993983890727283173272701169803753604101222732368994570551050342683726577763644031382439420895884711196053424408932422291644300597910153752222598087026689754906289097610984765107863615829388281865715209742025525491511106552811589209075574730905883706633788278450221752827465602241791845955372425854376860886957989991043825807944996016717549810281867742698612149779782421516130789675515259219676634080522142891488363890438350986034854930418210571614260494303781242835684596508363635576602334803650573150260299518839748375734933575207022176839570249730255607200391509551916821930921527696721383715877476624690209219334985243975761177741440458815700152806440283624743910088252228349259580565657985032582656205331945390409495204716520108423739010910448177291107025292912729628936828276743052351441378397025525596767366267167514507674505419383983517536673613829682059317301592391533361310628344483409182469509920245123370726464087867344535735340311132714138300936693026040278038998496757421713514313760417618082823080281378866963380938083059932143278034215565007606368302874158455881674592362878090751104314767263879443695212522354475430038782757878880925577310764438798970465534655817508200461739204190629251855059184141780766536132826268817845196138675578604189491387327994947740102162034924884280756079825292012714839761197832929762801576341821396021670785464992021959998894811543630590293648524029250199815610549629813282142869464341312869466424541160192332113331184069226066838652287394713729099004375085077794259338849232266681295901168210837729255003634816836318463161738726255090401955088280404995544486823600057719497863011090844329959327029839002782332961569519190081815849823798991986674002582098905673720893460306584798676711231031720125228472905363378374586931806491619655225218352977988818054567119851728774572614656032787781051747466324465619766057328324415139558864017329754047327915789133251926429758111461624294755005214894496129201361347706244008366603733213452312892007792573158564862394376936092185635845333681559655721043937004473839694475275376948259396402482058126019298089916394579075247098645005801000579833703690359084800659838423138585243757840142209476992217882176703229656992735804439608895677527919590563954675503699172881336778417900002628559803590914433031902834290132754106616422700944760147015606090496369945601547305636705840248132754804243444242866944413237605899521951201358273373466596416919058226765854990498184505220839728678635112853277413767326455473342497432862741611743496292010731848761786473114715738408465638839807380658399201875999228404764148667167329301534764530457999551126210218158237514004215945353781107695675326714635238180707137264680619521946557741936504584482334289561888652714144285386633907858497566246557791735112232928415210842139102259580706471947333211231362897248668611294236768387040479052029976460601723626465001846786643777844422646038567996547732300177963432559327848552022699809875398756283117946653205115106949808746730192139207509273659192864767389300720067202305547355430897655638523828768181916769527444386947509749710557488251900940038082441919646734896981801961985007286499242610743927143414887567957052416490431747348544628064569728375431749670158006764037234213186304518775920626954343265380689791768901497737896725526835481921155439963611416050883587473876772877350394610611827974479972474837575949257668743341329325028084420775722960307047706909049869728725440274280994517178166579783932305233786093411469224460229317711551319136399211444452783052729891248749261681941279275812971682666480757004932683144485906205336326830140589952679383595534330789192823585144974394944837372660483282215593156254690221291510668311366827414873061633563357163742365192461975601048789761130340773025014347884883974165111996694333455572077920081131633615093900347669801751318758544932554168201567206355767600961631784135313158163475756626168695519942292738876702696296160548678159354107626202362938866841782904061130317703851658811440983456837296625131586936390487181118461201851192071774780724423299434746085649159366693758971110478623260298430150256651797810621677638579556701336902194189899304638418413046621796456303617430241218145121927984302174411886957945490608637333755531465088428730157618385303140368046149434850850120378043807724975662366924813033999747525502097685345212064565104143899968192631593886824938043428688781173254789423657877792313958049148695661450190018223674624635690286979964245828118156535917045648761627368961861411697003067039825532954759794899087122330857856065660887542464819187107249110824834943154508290696290864027496119893563075329963675386828326304608224719174124527223516689546260648949091890259655830265231496863265272782402619069655902155602213026916488025396400588570663486753297817466717706889014949087522121246951023239694962110952348558077435394719896376538684642435977991243710702068184215505407553768670647612629176855931967331624187827606142855816882502185872273954171118606740250006024649278162725949340787228773546108756547406914013440667585339983988354559563062535228573975296707071241203282280145042339194814716268873623911891458723104089253402312300471297699524253466654386839950986507597108684063433782622221582707300065554126537985608705895979348831265884089023257882938293024703758270361064191648932414627527022873903404299618152670661842484279588287466746908599304992917588125950838473865867007665087265847106354591069761638182522174971450536143131618222331424230163840022983493578938523247722881472592761050321885110846413677043697959954756942685961434329548782596980073629122077684177168038551159024022882710877495216193537824529891971784576369765283822174603961491270970835992162358516849428788848854368326217769826029316683066162298505295043906666420909102015043761705518644443110014101872526091843519939321562275525974244126982164532891850962185030344623803451687031942245965244798066694970549744465003737552553863520916685993647636490859567255482670867601554127172630735297490638929965490779212637600632976700321053429507015850625353549785151256045439758365502032966658666389781975931746824272920045422370622889047168635252421305508872638639593408206894783302519965750006426586670517586593856619363838688818709324278792406252573687063557611907160687253096675165445461357649277432955670407795599178725928262664776090882170042918786071807483412058221299207275578108625536018760622558647734996142132746107924747964692851532448990739495584881071777148774280708074873170708259149809426747813127052543675303106581211672572159347471342004397388614452927363292247940079950121591965957120124501308568769596608469186759194582307679423855133369962293158948625456461521217134595550606857766829049839972484827203602464689391517963367635459256029774530138344160334522438412873681620497416057241954326512147665166587073955429455213648211838033500007496608177137666246072087287405609976645644925632741761791874795613524723494990688251067270040984227424127922427309383562748034054192547240731037705433842851215621919196697737762407138864207453078219426382546027021532530504766364160626351890052168237837361682679783995527986460157305192124592266549662964651158007919543942484240314590914905251834021664404280287821505978306913324919843389884763835606566023157285077607656520438735677744221782186240794875371839974470817751870227005605470085650880791903388993858444565850308389896214136495536111807240344887154189899360841336163114046710351098709143985048017289028518115900047121549891874810605463866462246932749440879581251806399027934123333589483309312017852316050232265336849175697176515655692292457960733593510750387404809521492487391897167717361284576207003996071316555137986589920603196693162675623491640008839021056871714398932616938272990937783482699168139208996193365481460934440724318660853909245440053753873379523676707714852434110613944747341249489535732170116246993508341592623551614626636182908872705482770808459475643854763731753315571082893943251968779592813620133052790248205395315575935352731736888063800127614989060026428656806365794257773762364948108130167865833055823041909980633778564968527833875230124167790898736952436700130950719674336152270188699085047263168210027121061743473885332219698060245180247936886317506093335139506890504654507666751099702321350368623465335293865516692391690083558476107724564616248668343130716889898844812766588892020883555887800640350079604458690561225113726438430206199654401895166984344886983357677150879560588031174158487554287468224578509647542852568303831421836246446133047888899290952889579015128100868153460889736581961096748428124294770624843672715464685582790230362716060050818775575402157500617054260534072368528671933872082656220375499616580387262197860650905913343649572736609849278224379922496638543689622084728666120706355930301342142129814218986219358335452162023549565065906410978271664969744284366390594452124657052502296826138102580128356800589255629468061252199900696562466514421349376505334746218235694015479689283154351810151970433789054746090742112804093491648220057020802406918014772244379810257550042825151662859852651670451729946255141815421688901981063481101226234601951323497211586119960491701173311570389322481992371401093835812445160930185897094227712934754606296309728716908054223636944789346694143776896522187484129246433571392653816336588499705599890958610302011594023047740599110906778554320080796546987448842342947492579077776220982352903417710801588298888552468703759620919267557131800179803250882011167607021966988988053088624133759946856530011273017923406970333570880954401503009037191726317788469188095431737496993183054688713770461845207597316164225995700526933143252603050938137927411956657632636035723474524135253237162583866339868540590897051438523593059884772824032675583256399983484607334933899665129608196673590404829452835813126006568420833453744045485275851096707275028839774506972018995867266759004030476895490354624399879132808999952438708118722975360453825665533155228808654459098277264753777491440041223435615076670153711494802203584753388826375585683500575976744435092726270555331939618207242637683127298233458095918348517849317086091319198832043409632758109978042737061979866666124382039609050846836125980429356622551138940574445286949894887812197403945831331523145108534670132557773664901972179927758636471616908509882729765257936083066181358261526378997955795526482035420057771271566318569466745990517677084240176729509015901904942261469570364158374534586182986370816000281599447477221086806842006186317918549183551156941881499401190151673833429180493853276384350316143799260434703288081368078916325983331608295575657822089438669309248576366396927044612278578213398624400020783003779286401628010144659335933856931208343292824893038725839833488728303800328188568841901408142448580363315591310324735759085255232706752608763837437257806929746983894654874556583394622188245494959518957622620667629039309428497241158767618565676522700531067830403941004709943250751219746805045829648565858209722899344005815308145358890061207215941655079141822828933017170320335857240802766221422902531324874416187946401239429497571609733036060622439933973867355849970534036777810875362572771365599561289711347024557349533074006767643096388430950611815896974256961209425277432490936847275223615485326537412278569716888108911240496675689398233109132140912829217262267680211627883865683105873852372088856930895985868424726824331200243489077191084487084617638549197632731171220092137384950001169114992958984792410993234549294691893665923776916660851598386849745388439938268472693137918980316584886596114401840447904015045957408042687811132879366921044602962046498050881985538166067840576370496836843130790699898553005716122846858644334416269451091776402961926730259120458540773127405509646355887936956231418474628678599623591976409757351744715009788224468843124676894775585386094439466480366673000242807441350673281887940964333698746472280357932101492345906809284516629560774704405921485509950107953611782484918014521968690723656305813575856833885432798905076491431055205051731782399726526972205669207106293145953421578839720358166399443857800573728872193615985969182347289895075954778180736060261381344220234456885956718452153743613426436186930783278129250535645654620296219929199412575580772639885789406981653864570948222508515038160994609036709083533049735366836938594803756627531848191747115257636906104968982544960682128448055543236106950192794063994688118350042059295161285891837317932604443980509966972528087555980688682636135035880324129474412949576486490107238799239299255575322761889627745812791267926667064957366095786827997251531570033113289264115772126278179134569150459391051111081305171507268424222245585744438422679273132379915026423319145244729955287232805349528202360025882749124494105291406569809559167416366073809411308261754146147296173522065758142130203232569479622075599137299501195112552015836344026982264746860645446167792975548530452130329206650009094142875015442213411048220808785967958552989753293620862308236293983202521470646269669730920660091158740687204496710848634180564566980612299180028095202509644008961197549073377915757618534837330166572582483027266231687394900868508151320470043887041145283164866929930147033652499735395642657684496562434030975067178833607299116730697441480090732659475212297459985944085715760031034991042186783404880889614140472630286450916556164577075684701353962439685279624030114901689045871740405898666217945239358974750970435439268003759435449918544697927080184695145075447811328381436211376662926063259699708095063533025229957890862537633724390282103309704832065491107913105438834962017797492558414858209230305663049367168455054587233254353334326872776309513676598546607901458953997559675849034678392794187110084442595549859933531568725309431979364333936550758559080038636483733677805275600765214486841834992356703522512807241607527978754806477345108363529579567003330017615246942765094743260827305196061788863476518550908831240755504531340928565620711146434944598985385660456477936501416649447687619388685588730324623274836197765113540592462341642024470438126668924392433523261921336879911629086739981481335839240554052830094989559016827848284488665427969199041051414411955359138458184419984411415414674400663638853112868035376173948943804541208005931847973815857425837391374368083307697143966429215015603824127974897150676939148980248845172529922724450041394341813489255944679311515318690933432982782484824417446484061120042786441787980399790185672792829394011406286813168794614275685693270869588124802623161469259939733778372235191956323188538847013073371694315466320753735002526917367338649158334459005373177584205248432929679327480463043275361212098352679271913121818987640971016281691038742507023874075964402918235530766313370090289817798230788704810412491644228182302732240519500200354632572436203564877892022999527521297291616601048574746704967982273520390053356099319419659156959186706612455734825111504608383800248383018741620478092092819906158617806395090474017611907765378617587430710254757189259541530116807273648225351142994092337070883283776025245306107978167154341753642404894560245382908689560093428544162470729021327064597463332135145734676850843645858414007981968664277723708989959105062504090316561984275434575953990960355632969060503759957406718365794309931374163166569649293631262257303446297560073271864691226120306731714724030835052080076277233447289484296233213511287265217557758025814070108623280894936368350187673842663463391711464074116569342212510575364887515147384561619330705723330815250582379636771055193205341951508359085930400673286096040559565734983334978933001961488961121258161562603168303833469251835873719089043746649187564626329904401768433465443899446322035769924628766568189499286125238266477235498949130858593881198782645733287931077142955900844041105772351142362644758273972217557125532115999444119884895646462986306371947553188577626740250208718814690908755131049305493735024664993841653426693652134530324911898833467276483540776740570713984806117011006179517784505367144082482332257109551849499798700413104794297867699460274054484384175335596970576064643728807450424464651978590401318433023864621053995383623736092047836841877397170801432090862425245462227301080257384644830403821258027145356521210144376517558881867765443190162121220328956925726224066911221565201221382518968562245873725255064572554227204743894827367410810013467521243545518317771783556517444420299710577172074088878850741184488071220524446450841807108228705592901155327014030052017892567887471173870425232595807441521815393915052802903685444105955624564471784262484310016642517426363235426229500781553281893884615079384315622633345352421730100289869157845956255203208671271415760697628919818412935720239209941551677379702804222390061985387735834260456205870138796446875852012567315175532563003680208306201896822869263149456289191171488509927891650312260773481751709619048393245642033555928752155960854673444583302185591635177337868232296506173166347223180385928192388055828319595149541477990549695339038552632441392876187845934330180413318405021191251958500668688578080583959202960704158243007819463792732862717726605823943571362065387113018493216648239154043056631417098688799316986414611901616315176847973944431114961001492310069387430056758424057737588586698039223126024348431656857735545571484248971819210329365220552656996355117234287911265785314351147286285595650707160996270889372058295695454662311881108906394802458628154215979404905712748273635927478420479594304489059348149042919884627338000334705295785184429368074549899362567453080039188901975406302318545226668166614935847262549050191504999751431646738744709238315600581921027673153709787169405212620318761090367117662524497150410730339043323902902173360078155311542959200060612398824967652376663480298724519486364092865773858645443630200350412478978314036633718346374454137459671468985943214584589991483989860528426445567638773670850104818910394803328797009059177166814983935477533834285623238721503349650389088073585094096864729523544153246229683148413969318547182765004893899935640254919534377931885170572208787597052109796724951059754398693375678051737721801211285776608009099800776123758727680307440290409700805798657224774825306635030343665777218949714027067739078709855021301559591526935680744316973682684348606606215281722757819352178375203629226095940414268999525351447515867300474309850519824407267052778883101590952538950284135174025430568925064423394689831787136275919065478973961802731857142551477357811883241412285022928419415266075824918828139951164815150991240189603638271170393239322299922777229390503329568590916306719635506426672624532556965943078446839499193979583351049978346653550509878040035629067704522643165926908648793307048130832492312041349712494828425944579940740645608276920731238700936072311340086604473429268392658432036927005060033007210718922158051066905184128895097934875870388502392150203013605566214577899894873091809990937428183744645349537952659589607260215789038518387246965444396423705983159200648136566729534933605166839198200783936191606088342005957322238623602474609418631326336753619232249484667925320200368694684507957988241645032184178045112833713115991156946310452263661806679512131182818554613070109908772507750998325226071641022789217018210697325531755650707882480970724033133149372967911766675189568499205748705158616289621068264712469101813177494287292889907823939478259401271502551889185146731393471802976077241338049234369559670041803169625990938595898313264033578488485057272868275054176199463006536310536401107140269635541075106805761591446579139868525395602158115714612504973766583258600230242335374830271801296003226237804476681899603362267239024877593415036327009256973524492180325261190982236922682394704533437730801158203594654618144440278660465863160326282130351651726253929710479689290744884663753379102260852732465135874398350205282582966507807892949133157371774172729975778549549282472508950594772977619331242784679498710070439797387608441343562789989319230799064916294742838014908237176734258796977341952704844836122566737229548119518542405557195229820741258015422904487508881639911296652101804534970286985667765105482073503717585374405773635895182960956731019371623933011296842989192182001761510903545099582501480937153700722123489338753973928509449656030383019789818021380466612907869026016829036246962268125758804579016249281857786156601659804209064498176701033893463824384642173031011184126188400098666246393380354650534943681425584666556012153742176475058276906844855359056395531466933828473213659674594458487811072478343415586132148789079244120567261790456456574813099903381758453471626674217422847957999608291816074745948216197262420850021831018026184727309180428226128959702911957002543779365635451622548299314623524529464818116922889239807694650090537443184612344663505749990018287873039209806776365665008149273683029785449420112407936005071405039663450748982738116150361452975305536575895894941136829633106296259680843653717168107498275465965128440420738472107214780583121231932157937318294664915216491992935263308821700750291183714363570693944074876082890635911653197799384460542138513424546639754657864480737044674480637684053579142626856329673337904823442139774257659418894879091036396012841677370169980126223532524918804629940757552686390382616998753500381277585052491370746329951433868392456306988693326899330649696345895945073978145614686380493678592066512403860694586335141242374084901797128566483776253566616565267507634933020287355357106662324595665740844404209512375135226508437673251229377419943153110388775549614785589202199796713354575864021132578389425356486991761603862316871544668782639991778913212580320612527560181166913158022533236574973558808110580789943147951470746336484480238960323345526549102016895291452185759350668461059862321770542761857468693302529462144601073837161065381279582133317001244252229602499789741855760191422689637831485110268678684940713594703406478724914226482724600439160421424072441171409196808272499602645331015338686127555562867727758485069162439105566475155835090075924863769228759544586039133137476742164885883256693758756957856539072775057953753471475776452690411844993235589997566731760001086542234948137830357964491464823937150479894256887113070258990849143251370623478018379530044703950784341894338934552090813048757512789561057648707208327673430329662895372566402759434433458831373140926866071607911873723162837063756402519681804192470734283609841833194954829946114448429466572479495137077803665964850693058584324795352435326993302749365710840466406224266816379139685215240703888638998503266137686223537922732735618510680589626514641657048752116857883391098421702015167290445235622206345705331903308144473183027783044365917854801141327607075500501333697402444064645829967989993928090830180383395253835324585362882415536276041814550657629556193955575966704917752952627410432493438820042317592871155023146899553828231623109613767411736583882774075490969626824716331935226660763177156389128340741321895887046505496714734069324179320333411120360422771116054874708417057216793738503804446139898055026648261714140219328092506390873493749729868221854226774761830268654104354967771703168966164346855384378550581416173641557721750790672300302416898057245883601235347624336256947402368957533592067103339040950701532352035509042236640888900479405850909862178371179929864693983126340275449171262179107142532526014159729050460098210435466462763061238464004767798419665130918582229880148692922455626499291081421412272376877068435422104646902530257275876941418141882340057073676215252507588725954108550161185535631602323814879921539016099403740119933082807115329608201915222663549054218131471645824071254004717448236645544267177891072739144392544344874036815844915970554611065428889953502919442330342666956661883598154355721317200706861826397318962504489682832038061755631197987732206342240703728499220656659162850460777103754902556459496588033023725346906765069248172993796140213680240525363100470788295854722808296819492584063741244384204508692639939657323809573140765991605801160457947259998921442079150269800857316847217010846495415655831596876994742251632484120952503896990423283153087414636645740003018259586335290507946371592260628090959340931206291888757988994021083675095027026443847102910331827296951872733484438278037102927556504043062549970874531151580015130331965876349409118220753097602233913238215144964318053851327101283183013628064265115305544591473854050991625287771340739256047333636907240847063471133393384660503346741516346134776500452422232055529690782388718626873515727095604476967264875513714601846061455029840146944273071246377937109695772487443440454497621505820751262275480724826256447018434173047494297096464371840841015157709928762194493952874351524698964511269065186917108040233354375818878856546647413232437569735259495634149122056215681035726952095478622968306829803166860026223556934830785885491984037344816746289591471502612713304584627824739188193513149166701980050546212521381290108307735743455706956719431111795286593258368359275859453549986176767336818434081774208318977058772539371650941284769879635815752214708029371491257187969289659644409540221854262656989701388907630177217217067910958240720481232743246303049209722679436551503776722282500854247041481552449905079827719973950221309626462652665884422590282926937420149894093922559144812160526496533985221142025668529964976289466812554449797889333772240568960130778886697592911449939968525835404318770279127555792440537549164825627440679903729252671913483784756857750825197366437443795697218122755087705792936677471002898098324208555795736146615056361723937930065485422159838741993911896655504958262334781418694483750709703179767552998423522951957800422313957592226506280960642073890629841059031002880963277983674907529996831323262682512564361566456848989268088769208343081375906740306799641694850571162807301838269301798592660890417654485727817977542960709894210388596392342069495491168340201240584657914050697192368880816917497970475751775203941518400903902741839568336972900727189873567397089021361083209478115302823643350801469665976900323453491102275956547181239878326924992358613472517327157785619468721484358197490637236680780198620142921686154943891894548564810464135215114886100995430814286368498775581844348438602953640588826645989281046795169607717050734237770864877802768617199279602260079256594108406330386335050374151115302973417982208419789692169817525847020788253532048803371716214392231977744026925170587457642874781721839362065086103242354242377321501931816396987593981726531834915800258474962105306563937343677700385004975236629356283623352423257079196658604944323069694511178606274703422981907770885367820121284293436252785223114142810544653247078735195074186250201719662870162978358793811159831018162607218075558099840047773879562464174972384543063636564132859584881558423935398776089506620599895589246965403141232130364180921741448824917735248539991324399112641907140577639002188031343376222330839589309273923117769256482857158751594505495899876730568927828163983178976512763961913074270576175770016888968493574316777087705792372282032973033811098375045130517079821416645806348595553349588501242006051924435727289200562069339025820550020734671195178433162275595177801735749308974496224327576604616495970206623140474375321177115318334088752152415542820396174609508068132884341454614851037663373072957571401244815709243255765518374580683422225038413086874473430786282963638322424311918037397244054561678170505417597413534736362578721305956801249742386170529461756027734694207791579060377739132806696920267820777526294065092287284034038636698595652414466616542680280286327160361460380705597674592938086829334573109902036362087261736074345081891127080135082006444659889510178068662932683541357038770904224187407212209097138538257344355376896882697015340724057739792520857432600698734579823618575247567988739177331504908211113815717797972725449961101436319514842992435608429174039607228132640287489414112259365243290707192838632449157012610250095573361193006602639489832548454263240745173235024077886559454036758252614731191334259630494658028564375990973550102629543065646416842969742173586893635335167644147446866522204794022120147663644759718748161048361361830454207455972213315230319043013873706413892377248880155826215825089194128949998543069040889054242224819367231151610608419786263121750328329930412378162034805151763842103268248234039296994998079328422440693677613482933972544175125335399867961429641528214230883891057536253594263474433432270334512288647159729863354435223372750680584231502697129704779128961293258048014212552154173467398814828857052405869063381791965596452934711649312605636411438966527971238141237119286620624358163080117165495478709097657753408178081338516475320081350191101576851467580927852810278784735474974246818129243479304301508500778666875644068868560212464059559011031074311100422682558802376509348885505190275201910871989143983851864589082262588903382428283042955782744375999782319731823876246461021246255119924739177389965567456057883591973850681416793849659380404744118261848078460736055152274235793219150856367066504727003208712492091256416188581147030751614404862498195167657566951984948113027222708191234707521816796599731237003497208808427394358138408828954387540486026046946423377976918004322000458647937299389275423993682457230092467121994565534028809672525539649122951926258810359483415064038569885720207917706102938939713963485482338512582051456387380729610567161965342101823406785294263905645346033584471058091803759499283543236089367705472299271876278884478365299255292040100938532751772362071680400502911497730234944694594146946559276541157878980058107694361098377183531483325053741402225399534782411781410189789760418192622324778368480362402258544996948860142850964225995486031635036069595317734859006948923265479491679969317838204289760976194383905519267656492537796482689432936684961782291909774831452802079794104044836807375344281850973366927231580461598075825233479667539306361026377855192498959486736861252936180563196267899618919568965149586449358547003635478783496084698046868337364572744440649051946505573088500415190146118227226456081343704200528594416478143851954598530008567278742577874351034432933684743766749112393114881031027054793557680652986353832170334042368908323723702584682150819392775168902846262258857881957430749013542632902858122287672286697489144332688217926886007636764159804227994771948882579224963185361496694070276021366326949081888353211390329571480826924223579116549749772285272312380811940694941611083751702480161401160881597316720377598078406205572264270645261464830671203201510951400348370188361807867659638254884499159998763989106814341474284818597399075757484607968492115620290967045138638047215956557699408341910301449460012284240154132606545711278628801647849504577551073421370438486061175088600139906152860403039252504062734091075865200744477003479465012576100833259701170171750993343303726458891537052572471738079609735990317848216171848989265841768478298197391342818266174797959035446122434225591745442145256188237199109906278946181934137705670655848531222004761546270324327923088174472788291348025699904754409036383582954740710315415622098325237105864551055269733651562520849083256656245121078577903947243686321185172870665961382431258439353813403674021702137260724741415420577521783195455564825511424977493562969876681994357638226311111549457279661363732062035966334362387364600839860718744813578490147763243039041941133197999158852265669069208425288701810803214836673044627230725533229574181476866248987799499574767291449800881168641830991491211438402810785570181235180766287318179163664128991208778721547899883363758181052741545744131873054648959395017916998628871117370697519129519302232461267525042389713279738211217442683344880751789986412629412833328201349532279140464490720201948030969830437563225502200991022165512104757448755375785765446022569857794339060883266796154602370061875804104405893526159470245405447636599315952629538692370246873163616821784695342974678963527113068116393883112977078183426276306576026127676159228049551279218290949296135020331872609698834486735290497500256439296292795021676953716263276618210099518231665676611657368701236948838849524634165407699528610021538499891111334151711226633102748171178312068603665329307735010498200439413236434732596061602443883993831326254935311722133951961711329949437474662060950104863107484308742962407305932931729806043295234065909604633627023067970256905033018000269965275993307069537587413347084949618471703367797271027905680030801487737192074502097709250989584514916196036297939471819824506920087859436064610676537392460525460335153231926016249256185443811501782784104478168430133176510918196204708468677261002569789114077617905339820364825703435551163216209296884836859519743658420255674587196318401458212184277649101527863746397955840807019657192849783719627365916976357107349124875123948247663161013549732105382389640040269003149420206400779101518498728191223966820960463128582187828727895082742701023473246902052062494568384298902336261286751123625285555405098787400556306895306615093480372628324618909921254681743564334357043322414924285113256335320686192776255569971983974767333680192221964854597932491082909010738497525571179491455194038751502014429248449003391022785057501049572502767998352340999447879763134901058155977693171215011205655104119054393090437893452236768712867907927973086244917090314590485334940115683467875799953952962264148425426659544510419438686957533749451209158587685786405658969857294753588822193301220145427764857476514628148809280252677532153588338898328794624296580910298358983636608163938897750624358544468782997405512373825185941275214145000629611048506565732890016855609556579928267029455055120967756320054481890254356705948236996314167904190096229288539765476718449249178776255746931888204877407424351010841062773852761316133891403366966568275758836833553421764598418343605352120410095896249309144437426359191233426675893849643322261167014005018355110559399707159872390264659821686404701977230934811817526033723512403749513090089576020094693220679737810677607579538654986448344488319117732913730051987563536680432327072099043052345455569371381838412203162264469046475354550659972249141067945434039790205926653044960339123125591139925578648239694234310152375783455733987734314051083472586525957802243571834210394883996125516788774944738167164608771110028952006346569642997280064522160424146794809716670072131026043148349375173073081629736719636096932028699532683318555633154781860283630748430209045776264242069662842736598912060042467333334400896694398254310690999331259872744764001892903409252246491012575524617163470719262558175469006265206718725077064780110808393594422885590370502443665998480115259613260306551731560632289441298818226750849457417746729754485129819331509073452838512529680803139620542311355947709901920821147237320702228435562620684861988258035905397939697516372130009730192302650684581699714565276103142943215094587540278124910966237913602110919716130530005792811418379547083156832395111762786248184309553617588581758592722526538328774066038164488159127381312066301201755074605611573068607485711988454922167852035285755695517560080939290922803662606622529661379742286524992146392040474705051359963884019813595585963410732424656162152477091490552558657226252000579115399570340390600048264290237320879733880223455991288222937424184183871830196805173610837059759520937791661793255774139112024561399339675607767115075238676332335020250412595134506522124823529713582602343819904298452807616920700959292353313282226987087951305026541249002484925519018162585771133123064387619775253045781627055458161706322047692236125429401068397821166738046649072358978250150767069307658846401252958529849277512298834644925019909979832049243372205931448106690167956956826522734401887844476398027978569810287010904543338935213109688379275423189934622132466707591583952079924658870207638305850396858899210800845494306837162642960500367039119768419337053003606441234121034691726856652150213764897898112884136927223623456571002800003852886371174062508705323518820505854409338041977220781041043178406100014400680325272281066214135029933043225040147297478419221843843551198550867021803367359981494172081435379286758213939742277565812436115638834660053633276187486822324671092477695870920145464119234631639780939538636421701225934360930960188205019976443681463552296538316279331562948325869754872478730789065548866144346704113437900190794290716976491138052566289311936894882246776464076567776048975824380012710816859986578923675336333468328942906072746995324397426058598935301695048670454459430701814161818398945280632364434181988212906019036847506540497773896513505808915678254053610602278479909255248263230506698538847336714236924840101521874467092822885719131004920193322737137993177715890534335713863392951194194617831911870960377066623020030414160441923081158185532543960164158992918726953988665884102034394087558150428619734223852706121390796882499397997798967685998200762443709205758277188963287192443996922779837915217106176262894780193966782231246506348029038493930352956071557075320971215120793236956754943903934378727270822464355451034911078757655510275368036388330570751354888002820442062469284605157148768617017494941097392603754339474367495402069889918156172077794313037225087395801462702093786987242851340263912873035375064912565445386950528780520457864227711455935780293581333534056924866750837009547656772129591169465710765614598497691516748259014823760806570351613065348096737755003118013410613022214138078108280635273428962811816248512921825188978749321272167316697249335174348060319165964491392064266482118444871559566718287408237276857441846117890841507846666390158508149260190678132605024457897124673276099912774988556152415605027511451695688957294540523292126089365044754745215161942058830120378735386385913495942692547522606469528279359603621821584618510681183217705461998871643321731742619060650876359040219203236837651682263245533039819428235266901521704736744409814280726345396166164563391286198478937885736076615474663512619601747915753848134217213265875523105039106711586228036606612033891113191613067999848206158567079745990642837885051777470491509029642231977557477029753928326364346462820793676581001148544499826550708720617780363344375723394946476325689112795095055361253746452214248739495120860047483435229358620593536322402807203762209679482009821631637397447770708375214429480112843991164655435744140728650761847421575884087422570773423452720730596909509076576122252499073313532823914586575278394210818247637184761364177596664501066461746213269810335780807738513699139357286958553576116322441465694986928273243880637772384002791631175908572929277114233482009610389109880813314166382691224337734631613079353338166830793295629758664144063713353308903986289975986559307475879309824092289021454465634287634406401245614232281121029926881131405129565223438957772164973292607608010566945264171068974857359789405314078575084345465314562486339285590103029655057133656265758272282934766061463486546019127095789581399006548922195772367117989580840790478263886845567663899140758135943770622681628530729673249727770496067270415781794755135729513045764987718932713903836730460176511762946115259652188523210262384053273370618209510412518496509425837418918411942628196141653117905428880573597739330643266721116930243471694109156127256370136490956897089316436202608119163350126456755442140043008929837450962220587623061875319346002154679021909709515441601030967641479593813905571554879488657597308920150065472570670829590886713968607162975521805158947747898654494033126029052190133912342163722616971430044356468230501162645072753904745710401890023223425668672657414970944292965180968892256876584540692092878593205126568471753691214850190833762792731998873466559509270535866629607742086304973222052942113988403424587568273972528887842574693496729570440035830093904735393119162380736120933099899434761323762572068992832299316322453639725086603453619750947179223741554207587512834367783608110571276029987372573110871394226688439705879366268036522030976345465607605488446531999701322952537760000745873896122025646088963842246811889228309975464241548243658965885882286278371404213045291149681901934384158295360292508951620572766898992053866527926132161009697619606247601973040201322812114274262412502580710090091164732746658447194505911158181108350017848691052147592444061193276199335557475424232065995078409996413276536611669892129647649754143211839531877198394008625839290196300025267065708566550460593221389779655076083960829159851395912742679890949789877398557201370457346267447427947669246070120717570691479434391629947781003252227675525413944817990640785915924227073010835502577294487562932954515054241298410523508943874864554166941195822664727973610427105426896187131299613956849310628458358026770574534133556122420520112106318234236283463810267592394786237592966243056314422230361945860470955277362900937193766781805002345540572515704557043907806697234456972175765185023687353453709884485819889648309555531266171972726252988562304421982444429972936461705216354906131447784384651453401254069344585415703899866648655003932444779317508680085569809764747710611766440982741053138696148407535028532765593202179844953044092898184372950253251521836200596605945571254202787578452316682432494324340169806911574248785177430637198944333530243966188389590145824274233478754240446104705095721165795787013211314822592139794840818541570867794219901873680271298048311529202628919213010777725029799547577587181803307669583186935431408003816234603674794691354154539212871171098163710255814354641974636588953789030096719984741878548552664305109066382761793611534530975061752703486168964343820875971603983554952396342377412062933099308585701015501740177838521835846014771102691765132904194691527448717494202439747253169718944813674849791840969124828952660447027491953706410980651922318437761253108397803526582906786625764601121033765604919948668321252223507847503597772228572568346778747326337897196100086142511890033544800541424755263486250939727945194354084519419183215946841606708303283793778955413947025966144490078659130918559069287414587091234879431167674812293945245926519160585108402977034827745801168599092980559134600852977734747405917528581355150677206199115938503092066096088013851384259494407735473519617241592740424054408810160449545611856427653389393365008409793543133503862678335299537786415299421372607638702385318022490723155262544187811982289925760884420115110103589005121327517964333776643527281744740551231143341578610053103532123514831238105878703683982678037859120590432155223135892710875802315313750034598432438525448730894258673649769412370120915598640449154235540537279985436970410604652911176949840751723585437844312566483572114242869027451281562420922702222499419078169028215113688806226124489929076951851617850601415303781233082101318445045459231672779909389426515247768634891991602075981654441695202412723652816213880030909876712767155174765683366467773395623502311670691219571955134341726740267410864211730873024150928327360297637124416139084693643034960886791059503575753689325717402722490861322908062421014554642000146165145302376532616538000965925146398660915638611714087452265523033950788034705268534475265209132388090571153091812912226207766647217901062295208941108524557517767592693067153750541301189465780995107617885573200863187512891860216309064873309611376693283757986209348579840033783446057571620166682942260927602803030084741809343185735550813895156694838266740969639884313037273259863067425345636462417239726082725415779539706256971355229613644584868097252759042243950830819019073733897298019890910357243017078162578965497466815140279757508522214111709073189512084324621182152952656437354366180370821566073331752670736031365469583425963735279212736467606278450602199754141709405695098257718525191434163418408839834498849177736863260866023559993209690913504324664635812780278736724526062070940427410415040626762309363624124234094090842180364154800482793049033687196748767563762825506334131083959633190905627732387516813987859649694106447588362215933331413755270636574940945991605189332624688409685120283153733188652699602999464085567400301490051773394314201608035106553454707787913028964193425241806719858866900043663960828276553540032588931448669015388209655346129593239692835412424896646248195125213023484301620819818839800293711165765455304423069127428760889647986113886805903225092774654753908693397655786888302711932767436446403537671404964785333503368004195479773628117030353756512633178576801232157694360704566682912891445382138719378354283291663749080528643142982233104190724844691346093193371580754327870716014774873899364428261169271809003503439823014490245866451842803180533553311371870858032913908910673789716227103138199444582370240517995452752399414101499512990587864007092586358065417485814703146762864293554219375487168039167707938753236809151239000194165840673134165085267095208344440000049280867273861858810781494758624818852156982195478714767123595608797803797598843275704932457676528831831586191180527645145229181311385658239314039924311691923969109661257374916764758339126764670920622219330298759318200934195710452286373968761031215111563283087692040357550491643586212148005938192834145509447165608655822184902390692522282721817249556244523241987694590511646276974635077476363065552910328446870183899577462737751942765569388912679169416681545048488965260137767913994456884825578780846643933079645134009158570127931875996686280543020942520088514378566083775796167544525743977681848531461424037958335488770628960220146316878433172625325923992017255755597739501183263384304174042340899192882429348653374330779885216581580343815481648502533054455807813964886756495417044530576978342144965146441421182017853175858514035941407432314396248892431022975222310377257417040323702968149078202897103753521311538130838470153465239822644229766592445051836992869872285962005851788466028145576173174077767633663656139591416521150825095627418905044740889608675123291083318736134205138843226549669285215003802653775594078935174698481782716560497076451020201533827167127245495738837266142892291403447862318799045191096038225687541662396226576643110440115107381046545646517463970934571717226280973940003880076161718364686561796478477364875504385851682501205624108195192574669889532685491007224295872933379623034755974044622281974790956749685689180510706838590045071281541372248874681239303197284750670890613156104369323365803159442894691334966727150773889489407144848631104045466808454397608747362585841989630542155441326416180627122110390728227102620206948599877925554566483374228569295787643715002058159642299621283778693937525649588433848502949998803054473427386857735899849239762179733312898571426254537180208275178663958092912744991194064279709879831504916565851997677230773517808987060751759027339240299510568021171296717215298021869754180438043449483409961044682475724185048423844507192585277342049962470269587272447074204182935536499808134037795759003732564571657471365388257565323327763458813492976638505463462871494521454332919541713744881324726262017598209337965285842716931016348626550552673729280017094852546908323848425165011296009779823350968526274984447114480036853979545368789133154478269873647371474837513147363687822703327646671602293373322318453177789645511052964717996424564914369950519285122076789999791058507410628561961851248152280592371091871860473999968385890736929699744285698336540067371613398388886255353613623850935304497925327403289875656501647060093029548952264357525197947537383305705023600727872140451575457637191326143445529995156462131919127486835718899201236114068297683701190763497578675674350469382874570615531114937163457936795471654725354766229957932939015634729791116170835865581220714856094922726473007472895396746632518578260643413348819593545311071521149778787139849870479278750326961377412907590309306688702857488503948514057677669596520352263732082335869893564491643722480151130877501842999708557892290392743664449233238857142247534494716239335825126872414481622891319915536993952642379843748307695572129046741022265773971384135973086605285215885743401443826743212240209548462500367000039292409966919743932274192423178980728325612857350122660415723826300560584893199908645850407352004246499902683869499450896864847593723260552383564199351906348957083081963443784450279120583069764394762520938433066324775476887922732425076441250987887298113645340114741256992981291595701550942482041211022983409965840230022104038412468802522143890754033318631851957746003395783841424653240386510058421887317288965871254286559758438780685576012922884517473291347630117055961898980289015495675972810942027197735519769284754253570259438018081917844121905541332103915601983808044811059468110081641696688826724100637898759539706159774668422323511248598945647300814104174899874539937112671393993231023106201655627241856091590403291152520577063615511564328741681400476763087884998706268850492085951033744161400065017953482716465391349482301127270096749053592660654916839527397179886373431330388410448247373171518440667250410170380476881564309404551145549946089801669376041462510210286188662026193137866821611990716941475724113212931426549358112159316181729609535678162168375928268689519449033441885317131171070660377165769131578844686768938263235675949937644190146570295737702475232466760472875005777683426962345778508829517943202018692658456437608520101293479302631890406896358615924430167310017714529581708584244352921797991729554860969986973217635872059222191352531522314219586495320246022793308490900511089997169765357964443989423578271871711964828152197447750453293555411220655620276806026265886790454491435445676658319076277717603548884828400377778126544838156617451753207572557645716306317698402221924954204428189812851435136844554423301328871803205999634386491224309388154382423140654746585650166743438589217689485528665057729409295477575910053399929793970659457645781265546111068874708372742612140163383431514048687812973021262972432363262051310007157217564382453038215738074767546315795701532165717446208704227295992181327802748988144267529585250457230175127322774636853298428212586381410005162935676068425858619381024418172661254748837959043188895538100347195270107534237271987411999468763128801889263669570663988548881130664164814322690771867876538447789672955718766856564166407300644059143041909467124128818398825584148765785371286724194747068700228145653460699733413810176915196358359184261426310301146623279936177194456615153458657011052877456762479824022948746394572589972121700394821393237781882176736734069514765624999241199459791155612594149706724595543168590961421130165939992632594581060332685416866335297003363770804992921016985799923528274082174953123606976428023345794326211594142095318361832246077810060029818109380678166904893704223793728519647733389179975584453699084559833057739336965648552319885069860409826393071513841426526994509030195520902134460378624168268781485420247911076463197787680567266159858244112278932257947718343698631990242652559641009063573044985898289720092955920695102513704286143810652447558086944327418797632033829187652662495166702886580297954933449894609286593390784245907129490345931028623929279421483406557649121355908694558060193109353035045024513839250435585801518568048517569838964346014243518597826365709498598853908660323546760045519560964296236113583136175343566522342058727908159096284371945123293001208843400018982048563404535815127818500863101583613377010547995132032694795581053119356495125272984626993326617408504960868699652991380482297975543086408889927717853933761425629900673750989059083610376227044702468722102797529378338065502938354618180906473860626905235706148222448474104478988525007403258551652462324183635950218330585486465377258927540840941021062798994370862473879095709264148389875958008507180500719070004659488455449076843899714495188779624179027246238897856949637557653673754226278085534627981485977045773995146560366525011656555459080365193843723477032097073790485804454325026778339097124268159488133648629955025383294243119120028642400427452105522982180508759898582445475589189399297310567653534508389140318130439999410906979453954747456103256696593940461181385858595325280993570731817447167623074282905237445444550903129931591371727286212124166732072776254979180978014814168531984848430574636048016883682887966587413076770641997335124105801358832433096645221827026325618544950615106101533424692912337800167361471183199376241940219019621174671845772486547448365587378331226886964227566097055544165091603585069754152798244740739894599542878873797559111357849097931633465718909327940026887291825260763068312779419144765473952259712121532665701973031454149907780413219994797120826353703299881189080504624427731306837949555616726309947022578191997228932488169951017438331467974408703171273395571342830808772471491332010192832046396800993135763491211335187501531664552620788685702847252398229902500924250549513649067584443922453550327681810803885119219184922937287052112147808457942915975598583743222752047595695725522998674192313976077483200110771513950260098135989148687455630057483426012927453505320472111001526247688639911490137902527944794728966569278178490587258754201812817428606695525568827801678258275414634436129353681778087764553581809892853749453149416506854622880084010698714592637070575876915920724161584755608736024819649152210978124914870595566418260699446371259132636683081525662922774628745569554109791308060132212678291244935658844128200812782113230124121951517519434404839764906590691469759112889769156417344001943802875346631361432108575121534733592360083720533795135591551225957334446157799367572621347643445933904970428987960001678261395770914622419747892874859715961836301147502693084457906671432878989224959883633107187626288699672266115144281603623025111505599309026097392041467369479409274000094935415796427120151782986984810420260925292419834903904509736107760320054500508313173374620044953428170075011444677577769673089100832118931620978240805600771986160158637809192817780546147223195071284781562058107713836622516369020921728961332195742016957947150337942944858467410695192852425352975559512705284587045314612326312344399460661136570515693350660412667758918421945534073379333496716262896366298725585740302845381169771227965442044213231658684779692039586311784450247209102656969098026377586042017398129969515977703586771455884996265061035810936976144631831909693914771211648541421879654888846058048485212194442858510012399807380113434035434744740962619464132827462873669287692421004402345189875227841226280919300078058856161248706074856828826263780753086945569627385377146168182160404647651794468351321814210853818853161701274348506416133249929078821933280264675737924760218687932096419835652090232395650792643128341592407768042160284691881639041385079457955557556312862752974105761153922231405578706602918999902932228824320062432212373660827584752248088393646662434875884165800935443335385560008541081510498521204026041906413676788743176302479153057425277216476242456433822407972639195005488326428329525158516257413337576749791285571638649999536347720636337101522680570680170696974749124528135059338992263764791736196261608726866052088005362741772759527206172818933041911538783249806624008307310482098244195155078787719982396571594200280285132717731682952977551379812434266946258059175891334570079959330953660971449534192293280168395822782983373878063338933044707427939347831230367563920407467630264541788901763532243910929990063166212843458099899331315197465484525516138425185258130747553005775857379784355879959725396254944016265848153082637408116767135007677119250010130399403155058535423430882269206712982838439368804073467105222805331638405334976086305451076716050186011128184911082544210042344204531618854935940729720232083492863540267979011938545683623786952907612989995335865470352203808257953421083386834456365542407591345495159152020004977963510722270422358575890653643010444416276838244535985880939732831313949792708348564206518637835498857614834496749910372924289553880547273845582444895756071392289266078740172192486878560684713069177591705137223713238440133756460838712428401279918556636739108855832120779699098054799583807625550216519284143372365408403067344915758477633827888223198905722525316487689053153156039678653645490660513476007823050074599653160487555206529732942997233726408690451081191587834161482377926504224204598844753778089189811831858297496626537365120257214143647085620958058184165022253551397927045494109244643426408325048945379614743244793269028866219587930547458204070609377749087683602348938185954250387832868088447799464175397315907588938930907059331421666364109471385642348580784658187199140425316315180977138866708050028473958278389562617299193489827820779685300738510390359742013310984672146060062541248048970275175943016256310053626191539573413353603895973059209281655423048580089701000314274469684449764759766168316554069037109402688853742370947547743822798392804564119290632988821776079932518066767758705528810902058501147323020438170395051593759092923279091110351830248856984920922766295039666591695398057178876667721695337699089773917721939210069001205938606309136108119692609186103588778156369009862774004426256516174688767031834971543354435175943464923276326479939767905558445108839012565669357151726172925844050687575491589668253405137520468576080388041225330454726432948435140299404666095455869948833461456945518226492962380299652492747677094402579762409873233473200472602553472306746939420396395219126303412097968574147196393817722393392271213107256143576773206573793283299571625038506210000523494266382950699504011158938917179028436568954832228761667953286777139215019107515336754787099062931024234602697408291094263662302101514136505815956524114993936484574991809515046104537523198917946008073109901847336059704617480880989734370358666568151781711127576195967143804758841794453519209068442759221511842410684065421240625923414440724094123260004821495736240837536227626000350421245145607198072582132891979836152946480495203156379156744330993620795678969966687001761053340169590750439194217421015052416260678969016044526239458109579657358728172518071876988437061962380906642544134197373146169551626870039021720988205074810404624566113716550516862897958577636901053912873266043181497044941719680474332442087566889704635740140024687255634382166634962591685377775605740884939339894175187022840819505815142644556291810466161817989148592144218091673808054199537230279633730957589170667063998155500740929324879138220807828133651810567074432630638268202387784546332095816132176580287232757658324068756111391789998907233671208927960540583335940582563503866214083214919214052627547042205714272792391532350476191734295711128976958374380781368601455473254577861739781247394777412830797120847006847361331862328276174256255406477263432235574417179966326121001849327344771209314717420680934682630700213614092126986235243108367537387454968270687153753310414763144676232014040608106546573682661736250709755469033184538593989089967071671071776549321258503635682954921150510318714695419902504480960162978054669471062804243832207680823146584247289061234159803827199748431403525064892186741824178379470267525421277491805566740896970294257309052046799937458779898189874319475223458001968865108214343503561324802423304434226849956175945765997660056890456232799760939700635056436826330971306414568971485154531519066054215491931477106943964251530461937690097378561461940191306776613462883979806411156873226582691302112274578253485564214492515254624500893888523789254983062642348664252742322319155195352179565974586108006955124310910830099854019088880607788561491226621013351366147942342788385824809927083772823276049611301520905590767666521689722679260120986486344008927545730026815424095580200859638397442528676546073866593840724119309438376767293525273539922437881413912011414053885471336464873391525700741343350672836950661098912163084802780901218421600778579261076467113957078212032045873263121482281295951533130422329154573500995660117969430055184832649728795099280314457800020501302617536996903932441365103028935971992286306759727416723008149196564682834715198215502888900229231180079294053040442068618942045270460233136064315112121325318361997580248549413848446405800523449487028192539122347345598058242743792335970446865183993627093907658885465150679163172255013295104468419398335157535982241030610633017261288790574035698473740114035354043898122059070775342279271508571826250405619104457122083372251356452647865304004241347525571042200956669416196239377506537872439254050379682985739879858147477742480239620952517985584991306726096992810047930373399220559361559873191386597550191928265668563863617686022968637896071437970157160806285862032006574247390951618777780408286890360866425379080752087729252800166482522059399017665116247526416706336159714969278674684001711081333859887648204449696642289567334128761098336994555993422389717147951248874121995842620713969737377431215100883348130664929644872593831631996190082878336019038558293513157769946743273033348182593196268163510068848156977254267948359517876215314818346800239096525587082821438871429609166278491490664153334075463138926630791522965696146971606057803607924375868092130031281919225980256139984864802293302239624503732551843079385202029879812715132927009449200387813603046463363698391009327762873546155170189115593819381201236965599627819241389649846597904666088531342064634437301145520800951244546747814244275752250242586125847195530597015296872234400716667192589853576764058254306423784110211319385004816644567476226098731184212537876556656435761383432921523281988806610189243676383662729524709920709410752418747603930218421405796873451799853499338961656256845160101863810016614560404669562389290928822366443704801856005908616095787467041689650893770776961671129858384095097023227964991376831748407615608739258204284580083723196141684080811903837352063821414674310430719667924428837837029716794272093188676335663366530753671717916476994665279612704380690171708764778209095703891309442001207846438847922369444844102676678514972055505487303325413767722511235425664374224614892564505660222979537478958839361914558733890319670642212840667652175948765392232278141601523344880714561994044031807471688035425932484674231066506792327089228008014165078808950899445762413965525759228168229941858707856325771544003821896185581756704378560135200669209532425285067597364461534924317847449996212189367795526370012329074882449146584719072060330691598211142364019630535852513403081968209025284491382410846907256346001215183736765065367966222255954856917682990023784914718305035932712843025848327251039344854593241508265192065649107686069023010737124956655303620885860080830921476356521975391518100355486049256554492357317488957719078667580764546864236564468444132218775197891302614854921548627582071473196847679641192771221257050390873159575298411303702109370456221813610638602089306378877903544818038214695278800788413255307157951628221903889847481514614706976856104155607725928122663583177833746704084779306377293388798896470265456426146768726062686591305957637204794374257964033985125143585069841050443849555963011812439272055554059420830773568072053895398646984995095263913431956484014222195946671926036447852558793164003719614072749562337611754538078713407873627845116261827743748974971792954375127887691627341054287725495420026080978763472360993025607487292651927397140106752690356680109526864103709356271730878134691728406537869657654881304378285677678336726028718395536911605083796936119609821098816960926337843915823540477668649408352569587854933491902237420232580174468800225276807704486508551329168425322359898618268122736076032049284314731283048021145746118281650506551825015721821468515613657437984047329866826777761122564979416992625134151974028990869193608655143221521518491952966983429560271473955371890304286063748401134770002511848533985464264893338273135915306833812495583671566194742249294526179594153043129837164160029817895872225270487684170524212058597196945177266327731920637245642287187386224363826938193612191049063554488045311229651857314805601666920017845875722828813647614067320326838169289604003438453623613489531643311204028074826556723684584006632118304877700857204604236805328824368601023568133541436256369667170818919924407364085095053178097916954468333869526577022497063050492912766539721433506663037407244281215195969335521786766562018537876608566368011223482477654026654614473769823320559366276116028393042571893189684453957331302759982910975013767418763323409241137368528641899713621756114442705829861169939835917472615020820122221119183792115302445274815106956231768151853460540241238004072660235448678040773625420823801098612923099149595948343178364527205129773543577053732172733381255588672512071438967530601714514270238471645234193873664372531455352750923751553243999721933039592109281120015971310147176164104240235187869444210414872033712927809627794389393367522744414186420419484211074257876517833561270995948082087712107565586561952635110587228295228141763889045286407784956032691278831083656811089714487195868620402467499637518841540904123787601020103332873508074702136213870871894301187907874457784159978124758190624365075770262881582350958184097958675359551472667253545384095248545382410386864125115613684701760942682129644968987434187204050979645486393499011614339067170560364186478950628688805004488529649684755494416202632152892664858043878154296460275289650104471860898527907819086486114127082833871131588639278775067270164570286597787333087258491509991939561715895604475443460755964085064744505312567810552297453804335412157324255156286746145390076370903530336690498895609375532379984071768980148594613630366091341221792849049511509476304123125033766559024734636203822472698992386369635645181564773244549895868466896245958358115422966062922959388322159679927170236271276773086750071200640521005581862442024376715842676043827933445287464324545175206742554017116198290353559394078543348752937415059579057344933412196337035457035111055230377066747426132640019608167167922157100598885089160108683810582373178625057473816294920676843410021278100819637988070362679526327875213969828314599032308176091786363496177244157426480001431596939890078253112013377310212774554680789062729967960994288362949491022891818285447653349996536468718092880097055454061093703308568638354783309962005244247606848233464446433365735539246502789253814007423666885021772619762236527168580586922783801253997296389998461959309946846606729968064844267512901023805360003184528866584646759571786688388444800842523736412997201680640850168473744851287908048451302001954571483659391378917459250042999423300252404120483130668645496703997968548950436231242502620838558816183351731558479330774604308592267869079305542573668343041944937725412033983871912195071287697310486321415594967128446231660427476058431258129461967165463737143920185940083347598853862851857603512043160379630043343025447451147460990631815722354047017608360143978833244968271082566302636634958385316656470928422073862409524979038006052720460482060137717930371247800244226748090930508882435265386904619947824835888471541540263326819067994713968302712808110704793424049915143105188492555867700291963031423802970352439773527754345789723870083086228407829151722537098743545969322946262223909029657474071134468134762868458974316469287866822419483185739376526334107333381615628568281684084240939264857249195387419040388809151262995271729696590875962460226428309927396634046815048201092882651019772456177227907584192952765996838099787505853575248308911679629352141060515680709056548909937297807265689253526348635770635964371644381332665586320910631907492994774472070812843787928394722917624562103810437858297088654385498412632650260221508151467433740824964749702362419763712382590582607666100969713765088805151613124897037699805156345424347934738321977857724343735349055475060558925673719604088024064993575381978699421351392197722875406767791423875023038611812856187802547128102911015810370331651880637304336112436017307646143916274379009476737358493110112724879475415891081494971271263265010877297748687148598016105842188114648069075741380114953010289605543286931227425704766588690298889172315422193272044363206983710907722296743645133644913660937871762822705268786668795336412397419022189274338566525453604468523122576910263157889078304244847378587489071458956671675884143626908670083534985031029994525666189525024621706493472555929452093195264643372004352020436116080201945871603036903523657388687454912572526331122223279764601331086751416852442733179447220857383230685127289451912787409907301618126207864612424672933317907817758282588192212444463189981395189079509902461850982182863342049772292847639091539939198375278945186526070910775155629463728457491059342988812067274054035243640050894817454852236558051649187236258571964931898806736522550075558074214761351646241754405561235386119404664083453974440982065436326816259246350037928638723867592781766779137488668173108090709455678827697379194516302694196902972734560638423452733993174780300876265243983554959601369179171017859137355712513627307178167391869865237903028895562964945901395037327673139942583818435423525163669652792995075349744304961050981443769836941089821451149766207931163519044984565576320110697457001832300270294429870047239636922916784412717084642962280596424925644019377686738818928729560054472400602702520009015332138373117859647955638115978384739399198516091421549158885204558266341223180502971273436334167058000988227282200461639741397130542868491903194118296401078890478865972329221803804733152239900522481892107589835477396716407264119764860839607731181755399144604929644810986059214806591100565957734192752785194309345443242450592652032749150513666370037882210787665192967430502265001394219861403146062893079043871870858799243650813409135140356038451344851492133682262425230604116449405464077510418913566663101015323730827675844644941494010288902660941095169101207933470602413884503552458418484531886629958283058546904359225061340306580896854463130781323978118107837312739962725138976585892064238260763261010777707321231030648690215156817757411247877149031855975691470634032576643019255193341861091246998284500316254134709749083280437649616521713057784328045848938583423260678142209265420373550116410419611427941436568402164543589968106164730766764279589897061323694638739083394097877298951781426543887740487439418908882876582694819450921070238118647469529155639821844380737112136542187982977183937032787340077742790576307397602717252614902021484146758853699951570908814300121287732357922678748184654382541236864293558144693137142493924323988019253758060461889305577470623538780231586996231308624238041328960563660876328937227309371547108934197716125417617820329218853120655375276381475061960668124639740425664490454336002058994547969510511999632744966920669046927919543716404450277492461800389248893597248686852554451996448986547310192713732658207352086895529859179421528703227059309527859858579847680922966733648006796447477389217650433283816481559931636320408535142888247124274544655244364096564077469871231367357502229326499829738592695881089762704546793166075790665313057106480736174575859711021881677597684554205564362394659061624730794027724234131772594490678682568174417907012261483247843641135816182940765414468882261122822464876294732948451004047695505869732427165879941165525423346594756757025267083788251855115034074568901034021538866262972881774898184101556073803159872894395642157783882041170416690549210537551073863345416899814065581022526783276554716885188987561873536196356731661191043007799326402722353298482836774826886815859783456082188614671961744481149629341056403947678878458345976814238965867260761998238971800383359502740952620079941715790852868076249336972160323253925412712332310227701074458817124930062994166394659337338292701548146240266727362238868172085471074323440780358923409403868047397845048795238757531464349638995874304623028363005611014747502979116972671995130219484742532896752325059870753542331506688825922985655083018904001923426300918913716938192722674237231581752172496513814644304724443744451770935785554856571208845324273387856121221120237442270424219440542852076453304632552802541922916147615516856506915243287846501452375753903293822446123027401504108615264228938237534031023434847153066615219393636984026703312331190184011890114245269947825849081543321425639289928302993354083190209683433486276326627853655307513991004756916860063039660159478549667958605389052118453454479068584614700361249225911889144459172723563400281920207620287434035351534787901142640839721234931916966682239434436821129197900324718323732132035622787967821399164899536055100980759829993388305634641975006621739017568333297521831307317813829961721350746338285036258821782216126367149061757011511934323431068910934411262165168269237991447334012841636780905057704276888024578292377140757634531367656837250939436765615439673577972863530485437891026022685352503548320026206889984125126258340198732306772087365922717081839536929006925709429541290226180341793527640366260428324884364041144929482925416581412166229523510475467461705040569446686827793914242329982934153201267853479147873412115678987284400978560118733295214019656706678527116666571989367381551942110946228676419732314446156131103445835369244203535864678763716259208843785936511235102867663083744416778957224289980202064461446791627714635666550452799267271362636028583346108160242297642573713099702401558018795304905506691386808718476540525055233656038412097442470810802082907211986589603809786582622448173052593882683456348543781887813583631719345966911311299538311464978219269528618513384301985775624806337832028701909342514426769379456714771425120436152334081718944683169654566116878845552773235489095816092322646137004785495775497780224147324148678899045493364895240407853621459911664511054727889656767163209231505896041718762641899586350718075878227266355325259764689989983639009797004957050000853969086753889262538659442495871692296139652376222430089648297041334256210056692347334031637246555624161294012609186908209715204557932699075273202691024008302523673645920734597190235119729378624144993400629159836441831064612958528518117562275781822694712726566305287293951730093124010625866854075429764675201552322325332166634717927187511014642464731367585832292517870091502765587473750337607405942828939642837727038440792641293012350695287621061603754305564499978449886504964180551498785365381418142165849310251094742899859709061442135321306058973360831596909164848639073206750890859775277606237013319644031816310825956014213989577829247676808556783648514392063841440070403740443715553136534713972448729258709246551803129314288579783017034384215520950132537871041958394288873337349620872308769144587592269919931212127692939187319899243723751384047688124785298020648922119539813048489539025918523485055532100208220960345978601169156741552186769995231048412757162531736472135123916948652697527673360157700476249944302256162085524892844025727706934034640961720633871940463528267852515666878149934437431566543981597277259572603111909605564993032294606438374487373443567863014168996721213960707768046321134709623850127858525440415355193364620559898594954460339859424233090853765490400397345401773418365778570616439190801732135927294584695932900636796247914742993385561581061471114226456625577745001575902538685597748247226244340357597146254423815851583952938849052528435993518295362873445188770579709149000972000706423883659978474818479601208557347117585251907590552932469416113144140920980755728020606736233517671208603695865386122460947666850770303459921820665346117307627122339051597583604286188285472980286331984346431551706484180325249837860713932081759899780704881700071176515830231374543644898679359312606397786663627981006530124126548233949591473104494824766808388096956776404482215937173263060634266319059840995855335504415751288921492951882285309571853033944746790105487176727717635641277732454337203328695509514589150225289097087079201502319528921408657400615537486240889076161077158665199857974087513835133489626698042760261766229568747926207716992291735445185236822178455190641081467800805984057445616878105039558044612055688870583431958596460147796107611546890416020326326037851855551678585032195671625747974952335416061398542112196788362996309936304138990727672933966029317755631135364010677794394410292722490366100765686214616321430562620245434801708412269783378097911377542154140047899869415038057508264028021372045435571585055316332578439907216539881198643229448186800922568284532749152460967242367620628208581731498164329080057589035533310686876647133705994197243519500963827361857229413374347580792234620680406672946381849880793561980294233560389804502745807172640703356992390843833431877730146131570476979963318138545596022878124117943888196700785640624329934123170693886495034323665814981133517439087464259315920814360323417981740198172556152463226424246737495086609082943561096422102244500218639112342338618208455541032788311908223743086171254002480942086209972110090521855879242726463974489278006382417380571458662904104135977012583418949599117431534916093023634033922911308594488387978327223587594627153234312125029642505289449220267458135795465096407395713632016967027398714978427561546958524344731251279971968266469778312764129211086053310801585163825014593307609996830156593582031317342977033591578377135222024446176975857125010480248887359642529605717552337527096608220168452202184624154254238458245861515395558728477208457479823532786334015025639073167938490999318852139961195840055551126342865349511694067077807227843476993607330328932765711395624894817696462088780642714436450543615258606991627722367841829055909687638085705072907163996915079014942388041369300506663908551820810439637998662549316159869120375857791933444394739109006903634726020438493952142937019211749055621503359836874840391132814304992812264727942179497378321716807850719972477546315591810916412084404775646733681091841782170486905441911452106381677296640807417252963533160905563279611756411199939069529640260872446820764148396935090506547472374446251571718562345389179917617991101428736127237781493851070762803351119888777179452217513709551091769726853861308882551591844680830692136095729391018285916856174536289255471751560668133851968252229486679198766365781353158981473948848721480740591559879535470272344009764773552558018167054597729056909712247165988188184438780991608920037010354075939269131711466299609398020891168027680129573736771955142261739045510716167653733968974034125944450519859134093738634210153354614099193674603166511255345350512221395553663400558497750054284028289022829962194713541641750374009255786513606537048357689058786858659340027630660422886903741410841985201168800489771296758328626120706868900356785718799904510781404163165707068664774473837993377164255925877859859835130244058867140967625039582756180937646493814401016098891683303117310952410740732367892219085884675664552993388617586328715201141865788570521813216396025224105730219886082197768142106718476374752645389062836918561041046071085350119843767730160890447795635953330758967396630335206133565810598833683461783665153094219880264357739889367070719952210241834799488801257626273082492680651174313441590040149776849055398976374771853421154330165303598742779613578008338153773839915304027804900109432748806838054788881320891851785176695956336478045456054005671634818489192122236956534319256174132536161018505664009095678719249617558138956674075206663558843123595754481621336073442596826685486815896395527644532966334368121548283332225464524055707859545818704981855559431057906388875035610745063544256775642760087420599731313963681184511335741617132011335499641063952604275166179258780308730349167702271434679860527300808289278196379699735469292972708444501124379421725128339869743025397909868241917491537296765114710786690534608754604361471035058760935655505212491733363545470377443140424566091663246665405613125885128881520527259948799802976699438263512519913533602936950557957310384956572451811856468600181020524916738212910933768265034753001676354938006549468322950898288090301778159851506752131142256022322885289988531223008066780271371286694875164445751692703045960614008906316699072243866043626650105726645052790515456401546943467426644699225862196150315456076443669710095966213452709445269595046693752052134590052937680912115236218737913799188128267055566536715537204065821676111439057301361395684264293299913104279464716542231409880739867812512362149675592981044209774175276843632510995977936183589498623043098514148712657900948665739162445621121063647773922461153018932966378169389498350540231704252129147949332455393856453116676319477403910825431844693429891425027799813428160138098418841259958948867296634299021165693113478708315401910010156835376418289021961794662256553541481274976125616494341280352008465348437317016666914363404711515221927763379117729798864404670982453376505500746663197738496455617074453535814575148517889140557974185430863150239642712638568571629909478861439671670101639126218226933795104451719257442846139606639472086440427925857138680662674490610765665005695571474779288936880451763128298539008691295431174716174821692321902024037993445024942947742535234233884336854670618376070799179894750300674493503375091106110725681888213231144682393733583925257133513925626045671831065979758682014558402608368585150417110134878660457505638179405263450828094054591224331873698258797007416026169099803059170801912125811458316732711252953629637008188047213477509316605340102156258466926743518123397081617800948975815662124395236168124122447213642954371967585197275250433086571779949586461771950087196162197525629454870291742805333913795080529559510547916737209734339808036646662727275639438152253807377579096616000482633082624135907387531540678237235805913091340227949711054806928844582251990897700360113875749925931741001269665167227669253084056587125892576669414869521009804199695544485597240899157218397867401931409730587743671911350769619807355973993846431777748411288578297341971722996290367966174035888139643550072912259157730665004344137522531062429204433951897106347696649469894102834265469111165902254953765691997776906159149100777580584563060466990995059922553019915329960827412803645329093036141736545339469751747342945990391794645267971158224277718261559755044059448221741011414842768496001841938806187240665604047240117380737858778883281376378131657209028024451503718221209503163793867519268923553895268880963460059853077449775855480289933761374871935464212929030319745916205584741380676600246676932561050329235727549598971708675937786495536383836948383895472008069064334222091070582990561540253704149688007373298246886702831967435130406816637076078553288707869423532193017823334633111275949888965530037168491168755573828312956170115837140977515405149048065573784703539570129418808146567301382336875162593783656523822419247738888168890031980929996360228726626049017936241667035633441507788686212690522652624152960161807452078892641187074334202764594515242573340697848901020079735077530288570865829189329909313750195290286939084547352159198804465469624384716759269718057735030255128949231811552109920629765910983614829425623286762379377227744372407484388255633009467903474620437831317821860639836460322552335558147406536051958787121680187364275379767289427065823788061738880215006628066983851099263024876749868597344404224304249500569668039193550894397889207362618441478635378359938030867915580248102340315534030939367494317753071037543498271037865502779686342958234379918760463406183673811501403467380883475394270684174842358277853285380993565773735078126337255093758192603082150180609595921309583264908719235288346365483470967817711226133020487644804120212870039336362525248514768244801174274371904408183446246294536118299965274663770210672662695017779779303356921631263693332402483848366909237727523598642061742317137296351781430624560077769407297027375330018729664218443577212380820369023153509499012829413787306947307708715241098517632590524124748219606768465554777898911510152902747781196470861779578422310164624719868214677983713360167556007722346309446517102265409891637842137331776070704251745495976665891862991320093031568637273673992722414875004006412921177839448798506012175861829067216173050040772639757982687058718766021202421099794840282202674968700748393180796994801667920281949706798091272131667548377742780601989626214101802123521506097438788766112437600647486510011267914529531405945696939846430598001624320843567713767190809607775744414785337545989934157785758875243463025221970853591520598330388472250964711227080031240342997578323571360596017600062274841611105863319780290284343585076574088768746928767970406103947132140248611913063704891515413185327257600160895743031430488863024982422426500525957440595302361665074994716528941216617565403646018867290617546111747441375833817173610550276551618736346959466286580239920697987064156361088818266772042737627530987325179170010883197338973672100098412959964231883352552128030858843170760735379329841987036316650401887939281577436157989466716518428796923239261668580335004591579806809406016355994559627550249962052127090562899663498600893958257658348052691820469639877273699739835261468802773398515417459874703743285708000486067152499927972035495357709530317882415925835141164412870594024914617646785532553135709924062654358704525675497557769496942497512502372996472571654119997647707201996009133788433917400918530800746009712157693210737823788452438295750754324068343760591435208000824885883664008900744448880773287754192822378796628377515325830669938221464713699215423836813202799480983676830716139330646919577831985192516194210992389039264999068543811810063304025716126170346583638746983228714442938907136902943494644716584154802534036755462071673644439210468152474178708039559401435008780340207318443349279112041582605443676269448793346191409163104322608173491916845889205690202288943912534175319692821661692950077951511366701824887685745228943456862834616587023003964886026900668431625711784889907707104736536185701847397210138321332469152464862082027345909592945817469800156288966698690858108730704593352678088509405476289224043862506300411579842675445210660330127653115642671968002711727731227714651016477530878874222890776714977657700133772596577418536279911117661215854209395076016862846208219149689798611388579393565106076701546596066516714290212260996474398257197157212950238411192998828746697132062850104813937582654623494753631514288307969011381641538823004060791357763674616917532324989614106424551662619136153664320342836878540088699735625154127087336092195148588510189735979095623923696059697224724067172945084501703611894726078622531731891970340451911325797528950551845906636143936620275455316293658389844398847114691958329569663146342698053094011912639650370025152601971347723325677677038896665307753261222617481216909438415568637829795800817045932442296882981483675276976260732448825583070727468722040746141156280843752286569345277809585864405281648009431095680824526603082681898279009059668513384868142212735974160626864838379676027685891615919116254487284616369920537579486360911405851232678283638490881522452431207317567584373972873873122669371354696688307498987975534424332980429986796063478235074965448190827504116066896944169366916716321386638880009099965561239547060642135915974234344122604469720508029273832777712793809843891421047220487493473103670779119375643491705836937794396594968753622974979401995739441293818066424029559577577661033508787895053804057031169848859931277517281637705416502152315310588663451789668356507993030313769056398186291246237253415202844489848549833405657224942603531767304117855891010298281545810481945222677844004822843320001732972725164142408359420928398789025718174212484976515561271238071004400271236848306502473283770457990275525661735107051933199236337353960904443552321401515591471822304109408143907530862850654475024061842924964783343069383008961054484666648573158299156800873424645541611787988121588196649138528387359798628814210151231906810621986707692223232737011184383225148022583939661315695060327822075954308219936177052104554046355464959467273192463905355772420036671932628888235400838409972730582971774583672728073541853268745134118136053108363468814970383088927359482400558506806393617375203145212607612751061905385861971859978411105697584098944225260991641770478271301863747949006075250020947317931339034063806109009754873730946160790426500958050161057661564121891433822496603025990750815629932292397498521505534159151332387203052037321422632710010235343178714563775872331979440532776398898635149545127876718839646763596645561381768699466759057316317687870284700961584019799048710925196547062679126942932300237618004336156079111284676056035265049832812104873060916869964277846335035033794326553013746083707382376863465223094748272589597462553216959915442336876014193943051778432850556884289431188111034958837855825856773922998676831537741336340748419844760292175576319765690275139218898930468675654382969562371078367978663100147700875606817833797516282419568274791115172690332825089220479824009064958337441935007636178258665491417306541034851292382288816861665421048117806642820445998631031802367493815550451870258377331547664259804911557871080104841289595338425693223424710988928492861545673559196436684479340555407270122264827512579940075847465105655822625821936642542170471804186510031463527848762307271181098624147750182606024503555600107562466043591188670940714325086471274973534593603222169634790934102862084134673721879790518646071131813945825714513577785768393892636228528942522599596814374199348119034524042398879387539895163607795991636423177158831051196200208688428073680469339371904457003877702910090478568275413734733586561274489734199512688542904010140581197678777274045245355996496011822534314915891594287396418227621331907388933623056551972968374465470308564762955107302257810302046329306701937585220416924714980759924457335332181580868959395797095804143290431332347968940547692934745692753879621960722815676503741321314326678867038010921808854883676413774848776364930358277679529419197464468076746542524509268539575084622500291226820359945540414127059556656486842844109454527117893019182278469162811824497766907088689393127283723968579687897950607584722303830472473896554389399159098914286603285082793888610155841566487261226430008250535614565572129861251547595113713862344121521965825381842052327393958133505908333347122681644771807171520668461259737516573094743967879739354563401935177737113457239688340845138280730073404699574896011296847048473710034490984841225148424412428439169358702416842095401523073078285606819333762688989223848662567753799447899582242394678674188736306319439187950068136510078687094505809070417178322661999484857137696128698327804510477925251915679411126893753016502234025128851612079428367391664371693749414399365611361094192611260548072083776319861620207589697484034905631407322777552403915326806604351461619500512556332959243669503062068635631020174274400374587441914489042519159012990471555852550505469353429386346522668324381209971792765310840862284144107868557395147115915078540742726735731516680258131358799152340730736454669292137871891039188760998038004359777547400196439037375483326105870625261716947564907884769857507028446982215820167761225184596661237615282584854190246889416217435646001161629461483081653479331411030735245839829612978299880407651388253994147237073091561839944850918843255778298579716084042402582156747190353459949911960594757986898243178079445411702734016914459113097165374427221451736961201652872133232244063714091590475287984990226424350533163176411339896807601408274738284853848797102009787860535993481108088968492269371105699243363654351177322313728087247652277450396663998175785983947086996615379252810231096103495075402815859741261778568412610966291173793440922855891182007822464440279939238828929057305257112021661246055813155761663515664500548575922861971201441215819976037939498767886850666988026877142962204953243049374296959319247446114692640649933794704245262140271000712641181816093514499694337389198871180035062841199941283930465210281298618139595400831182211882623626387983416824579565737833055673344619208775682766344894816779489197278349695243582599022847028497468831122666288902522920718362108104803582937594565872190226596423121830299978798284947422577272324748388679393173550212209915429919561585774325937423649663767790027715842318598014126956184457627158691196483335883735103552550827991606573552574502621627626119286160879910043412090779985001682419058556773721194151786222726800460900868545011274911268680038763305991766145277902116920736130413101135928796956705776064264964622573077278155457011976879073959656314391822897674475849601976354044205953274152548153190603838252847174057760948971536418136977468731225622191812031558161348347487487235636462806140094827208557798602272669546794655738349578665235170703219156249084603736196919239858193895726629081070486736441783773415459604093011381845824916807336274299280041453713682375006422364083147172774568065056494400678405866398383366261718383847267906255833770782181402800474053153075629156477735602307405033772938610836057413474833655119462969530541178494436411004844195753162629051711301214874543451671602581992149856549102279858901552426288663588479712459814334726008884137357810246452206924491429249520744447197869214419080062792681662710120830765321973095922522294128497370337581462441699357656605100384989692401057985497341499391601458135411729439513196293115802970846327657628197482233905919635297870718927090039910469679248460283525529643099271920172181101492922694475837555306532977952633323170219068598521186201772127115812983158719383644117405808046051486329439584757625336965066534107410530060893585618446137924867703234650263728574308669841091081952376355723683355772873307601259568001928304190919172359008687328453714438629859002193375616684857792230745699963991981127239076755347038379729626936187225759427678010825048322681159662610310964959005330943766330044247591427137524955615476610035207509183808617603933196217169321127228347707750307038896644086256024869501530849925986722375424587057239158284707529953149082946961107678418096510830554301553544178564223666991719792317278520807651575568169618008491744665732240091370952170642875393568648819740430546168152026845884139651641310183210082521691381319004576204341442106118784538254333595675768572779729013386721209416953675087004611097490718382501858411546429080431670476966487778431523088610502370988261823066803951629072753186280848946856735365704083025606904390246619941930585564460131907146159034305024176792001964180824326724175401395258004953496250393365229197762222878428768274703343943133650649139154265901481668534613823348778136939820202557921449502922364389035069846035818899148507287584999637753652394425609486161557436952810527611750786833808402478930708517825330731928953477323772423384299603226262967961559449888073119485030881064118371868622732866611462852498336564393104552637085369516428227565217253392416776467218130502514699783339541541807363201829065272359387063017466289135799650449441376154651788952315255406289887997530704235326056546829947124601791392117228040811629855551503716896425004432042475608472354276579254450268611992217703366953170341685397550639697319421964450924394076074172936851532999580216327077593026571688322098170251882099506177572692962498186605809910640471784531810867689081703075055503917333287023954770089341197278133835347565856466753841127378747477707058545819015524731669486180767144614472571502889868136596212057009417196937836906528431539778247311124559392874975839333261691506268003951600320139276999615266273986262326319939234876129469585309170836970970608904504786385079332320943280680567037986887749096957697339767077569808384501747053757691757853932031023407278679419410952588886847513165534923885560660416547691006701233944447667210728568256738233897586608957945258305475740982539071966513213973859510509047218315982011782647907036907606157627709090012419395574558853430931929315572921841800267730099889611690811583165387923783221517757406714800693813048416522823560409601004515220783874199955063102971916482331297527050734944428945574427307331555965954221140216347124459665671095905431834110689984198717020865905731318856871748949316183818254949452510083540265325393305661459214190987800110041458848045908151216334025416978162677463865226202976051570595358753449338833506779287213788530275439562896189989863819147069415154956226797759735651703967805419320484253039440795567636339212782551639877345787166573249534179297384377997656807951761633854873523600896933199675640440744963294704941132931170262451517223962984428730384265486805940980160006219431331664733355927383507517913144845186949894343420202922391516759686246362355772889772614314022528659158459635623313572079649822602858197623973254740709548733233724755536551850595264359917101347087680921589371948045772957867646648075049896629960442454691917844962665580462129620132311827753055346127866450483198481495847478090918717827958899747705544188291999022434523067202542617886855688202864548294167301160033185402373322042087139846688031938999475838715618025574075519658273654807486282372330106744242195954886861759248773308954370104133974213545418492529934232043384547533350510880377629246008424995005490732144516108321173033524106821199159109551773219869350203202468833478068949966642718945038307841628885765656485729409188281834640061500996455215716793407168030790221046599395330100147758780474371134611614645847920781260550327138045768070758490754622075801135930869003312844269744129452658630374317108836779222386762912274801930387639900765616568295096414174076469344898574632330934106018588439339864082404965508437272730375918152180840845789024055900233323625483567875640524309904572164798904763959510167158369402918583085885339797565413207186878108255093483284684007365252983463210800300351985260647573527249232607551499441312778590153324963608002836425237690005478337284809315505477656267814850847348067827447548348532686409574703469656742730141525490142494891259291247374171307587720331778544272527883141761925319391314509713712595150527162524342774973882347076514638765719955147825995029135628526987447474880234193068064919858187361491999025141890835649885896509484047277026409123940475594622187024486990942428686490953936697555262968778839971319805736002019667147818653823252513077920996924421471964577205438886856675809208090093148690281589329738320073082098650088051572864748163625693090307456622294616550188371092782222483560428791881601221629771736316827219226411691626779139255254788376894859239618215194459492594407622966636111754260005892147254155221138524662943908345906449480930766626670328355479227533571689680215376020162830812707583665697905017501632287558376916207246663158162336019559809625441058643309053464247819276596542373669039284858016644644940798309349626935562990101660802994791961574620716285648051048682690756968828732994811726730536000227588973390326952455327608329879796405834921862618272059721791616289410016857752846273492389031961954768764771062493288479012202180344789952026634558288836936343516683366303065614161971381868581555858382480039275857837330650515999164787886668685700793046630309158384280069809304244027905362628944314764426094247074175873745618006487351973196227654778848501712807819407375204971248714919974046326836474083474296743245511361054603105078799710306346115866788309948779922651123706397559239115449814531248422449346792061984507387293062372372036099257128016395228691049703385501908568250335497794228173185213271579664313085653901979830654236626602827386951885018285565993665459319329647327406828129837829001723471211312702902563460099270310841669235619921473886171788340884860165494535149913344014852872501111505759980946839583333429343539627968099034278354923961121906312574270308883227893195298874828284975604381495252779248176363972881143887796438800255321494548007120326340383649043040193299316096251626918257193849072939441537657401722727733100837438971868975872211585784071175383604793815898091686692990348251509539874363389500281328433622681187374918533860666633256228885655704664264395719356658499831980590247482156040367957042012536334781321945506878257807426755197690860053256572296907685127074182681155875774495100159468573944305497834172971631451836116931507848531674132159645732618212379518776950235228614029341538571142704309790732317195645711610012001101294677343012656340341666856082652919676929017309499874310581927803690933569958694521247763730617081679398993575291114968018885807709996480057948238071661109925646536968310429276158844388181890833529408373172384012616691722264564237494191405364973719900142936745621602228295649210454761516704155284908447759408573981127799183000932020595889954940354264722711623475853367830683459141690032687520336879851552144653375623947363430619374782220217475473034495297812495243490321986991233547140081248977188142563613966033967026291748800181571187466992984886655602873155001529753609591518421724830866099767858805109275022512534677778804417362110276710742253242174402368495756874995344237129411962152783232187266475861002144399117585318414858067778810268872408161744079083013025086871701388736965319388912750795820511724785197594973035055433817890382186483695031038992703857527909418786933925624041399517861145961438613005554768221389511401564302666444313490309881395044952223538967305946810125766900290555451040261841634863095439506609517310636002657403205090205258574018778524736755891572655156218602081301276089275711209096923043922002089852215140914648720199041777088404770268930837248982568136381793511059809231825908994086236566457724055881585624182557358960609599325994839067902104940849371606232053267299529426969086804224951454426998582423939680310084322516891473229246859742790582027773914940207134969808989069788443591172833536466012631898071620094214148444431970143948591875390178607187434339444190019920632082248025257154065466617104361216739037578507350574868191384334113160692449187487464572648514595064853381152975836403821781604519987247956741056140966089602178831677279401364080070447676641121004175667279919447380931719477505370033349185125783581152249835438163707339011492694799998676629097687679125126329548764000735592139192836247195799251690385757556070147769015867646923896612714244873938226817589418120925623513782600080412596870878712652003360342759500748989632813395674488098265205149500804950942880450289852825625929519660449043993444917885183003850851738380045476567359559099679025698516813014018661648114991149588907665987393719923141408174727872859244137543806030122525327076820192310746661713866266372178727521055698698151781192608555690831980783130290889927873039192293307505479084504839728967228268757250349779635753396854264122010237427555998107629810688804436167114820654475339740452064412834125673629293987778384694270159399189782515070295318657444401789087654029125834528175109835369490414542516943720203874600160275928956516293401029421870010614857105611025362222290094916627419489499357086701770402063568358025124363074293285175721381641641720966551612909723682608003121792419408117329374984112382914409840047908100175631437627918851850292833632404960620390143074777509863375245009687406552921952889308775870900619939999584287822343837923376970311634250398162701281231817878806497521151839194335336568280607483689073688829335050730412749888112001299728460528783112403913774595582038576590253627742998079348091428053294184911752972540365660956619646404247581833504143428496086203088131635808528001234800246065925216732499023456754249868630022701909383326267325173725699910591118587488706924579456033709426899343742438539436538318965742521700905017786235715390851425407286610456150683858954421817529903502421649903807221276028306839203245570785606947952505273053534466883063258712819917524142411219209023664866231421486557666659566274794745033836965495444104966483989673177192612532879168455380146531191898715923619344698953987239054905334217288723369129633182607853122887058780126975578140853991826005889932572249182390398149609514238409375469179286458983635033567930953106922132630864104195365585990101187041484579312496099902990242032988829840691580148920037976265839459801861200982874084269852417365322829022962579528346499522473195679894732279811906940207861892480145837229914943610479942268856335218305646316351140167982582449323084970771544831277579268149740094456437622425554219519795081835032338836421208972227084362837133749982935437508756030482430733554661903102580641589377697986368382791372559850599950505700286075278658489267222466106530552045272989686857122209720382368161065024645982652297319700153779424280354128069618436189769041966676505291051356316143728866504122920061763269249306329171972566472164294352366457117939849542540848848230136118673315755524238599806094058255155949123236989751814185754153419115794877564255570957210453271776064183055325733831334082971074837384243408701769786438371354882471251575288899387429763821166443073049056022956181820929589077905732733419992618753653824283161153676172588604684027118952647555292926272430987317553911821044931878325196203825749708852418108712671951796225538535408665804119715703038927396772804556257947270197310572432133234882738817838079549144079896358243304208035573300900157145837652667469823917637359839282465095217684032881796714145487970786220583678931566665343431456399179329614188381982353429798077108808919265094227655853931210757462011861970729746809196180075276866345625829311985466078563534888519374181579398718526807657815014551525942670987988033279842650082442765296367841094909886796462070172092411350220224015080899555148648638892948096258255862348806871138434127210339440845009965164986362604015968844970520331885477307471898409096568433599628701433719475452082804827315202752393618330916682962986321297734108196764128540445153247617145704476630359891823611907185159819011373104961924926287104691471167538436434933001347639030527029687261668512621017359262421870301368382983896806529192167862697266905224632515299193445645730780019367797481062644030271231183171759003983709698299712433036009066192117137540861784732468655754357452465679642670851331806049588549552566752737067932875982237085632338380092096070475457560122000123938685303730561132311498432922614708801052271203976455824916343738500835410292799968283138866213653865389074221274309383328540693503983844602020897766714450470444354585697272467571019476895742281009907559255173977843851781819406159955385699748344911586700641650103396789780857243003266497820493985311550771856751769602456357061574835035906939333409588025248502466052107122487437870349384986299873053489800512483811056826776723697756628882758037116763705192342961226731057339516880763427626756318574582841881156614720135321168703074325410204879257482876226663365395029608300663065368129862188699840315557400714694122272729915320082633341556775353296216938744996637522351411140392496584715998283676892312644715688186308883615716105429198549189254293789555513769764901032234184263739539981551157292669523155431705879564242227943814145109192816128323412571813756654705549026873437143598076335630652382375559050929819922174092765788370627535511832965114475747189336978684808246097347894584085243192930279611685712985882698138816968507445768437317120753182358373943426023887613333823992615851245884632705148071445207478032533258456138662971296333081446938768688972397896749563510710255302418486925297006351253009390745200931460110807755793097042704548587675269134529451034645294313379295311558711649490104480932003734771660160078593637909002373984743597943742910467947152154741878642339858316433808600879878427424754785284558745225578565969031851471484326758407221512552176214334388125576352111443918683639594917512214206480258243799722650269251367369329579022132950413399023666367774596480115610150523541087885082771463216698395459804154401749263915202406289707426068127407654421118808034022456780212228663409507355136020668302366299618354807292043919614004845978354731241303660552284561750513848733741347964252872389984099274350056251916969296308629599997520806630026355494329800940271622139200550302367774713813463495979954806199554137716596202531744828199205352376435636735295420485420150599329367959465914330482729158071496987064963168961376537751342218645912939154273189935159570602667482005724619701059236471093039394812288434057912382526099002035999257866770663003190656875496693742094069444176939994496744925765437532649136560329343828616065534586296903398086198322046320910669633151724199687674602942327558863325140065707467677354764147339380899577156583774279434023142030868647670477027006479103851035104793985000762720054628494839413582536968591574700960303914481528170611740744537704572831465716849160520084960787039941707905313569559852373553150336053254954430304135604126272871021223582839326837719145808397772280517770056827069667505348281445977099977688792725170613927134698593693630159371883520878426945795109813598251973922019473383314952011927676553305206597464107600253306583725442365635517321924338707836861439374399334492759083316670628163455450503493454314275279172953958087362375472154650716263864505492481839688492728286312120822778054259544260473735296039687234912161152489520523384763110946469609342835248128064011264627091316114637796055306044429288889997009009297918265088070568481386590272705354617078059450387835501780118521113307816078025980678993418669922568454665191393115815143688433860061765594473944098976317969449504740544972805839508125295016311055052621767481219093622855310896733498598003078711140884840096622721840860645655453335975033106345778857179559763535276592276531686636898029529601228885480198084283081778944205353322120630518222802303398947902378686967093961951341933175880643758987786666063560261234839155771014420422913110026878858813991988819337733940588320267246380900045423677039013552379816891363665036701169209916218184364045248093784464505032692051247252891501797604471606720566216276894008546114641630547814445887424925744905848414438162072344717292429356389304624679703810404268925735903763338261687740643721645752772681756454214440951698143295309612697709157678035705378652169570787567495782717590315006894484757992419869912555836088502119580221362997816056427748241483000529878014222920206521349285754101995919349562813161197222133524385892568774611266485108109444617393267576344278053661282217980973052731143985386191419593798138305943579463778764750781280876136554004197287101358339113972039284509702896481432041936004091664880185360363485691785950285234573356970225755196757485040658145754248384494224156672316205121872135755983390860934251628766269676445703794091724604346840128706250321340553933027266921169610899794833601515950761930907454397356531365958776549160911777051924389978118918285371747240912749290539488464358977352643643883626162193615333701812017404660310517300779443511178619526065618153647421922923445253297386549132092145162576871655505706835214425319214121016194630806987187472054284076853328244727510854002444378234463049914232879299871990835081733707536564624419560477528574549514055318052560811210863141510009383609636103880002955341651104151574365418451629270000149065165600151442630743840242178275381274860729325131823020832519403480875709134273460029992427017418734374461169823973751686478950719645122352646699324020295654878033851157918607412494478652548139687285923818653944959973395180125376295705984732489718605300461809790535409161656926926888882772470460961606800165982600199853317079975894795360660953529234204604220143696216124965740686428964897013290632281819306257032468403476133205032565913990275904529198848046247126678265931435854088876513248487704382451794608009388303972896876626411373550154151879652829383798443087514802690407783215127663974430535100668019006184396332608652730933648514438836185274215423957350862371158482374559092799305571434042781589440781070528060245499589498479446953999931294554289127543219760157133231650673697732155485447077470373310050085969982197480331846180646207455061878785799247315829462668234753300129812749490604741965196896345425112174011659436359036781112699804993759985687759680790402726473322633297406879917790608667921961689582168726910071521661997902843493879424502897752772024850335076486409706595956856913020721414808352901599666680906152633315762604037853000851336866355899276306341469965587809681399890040168804522340059813396672255428491411962427747662585985097980176731494024524212689831570775531595224566503151954085483335585914350193768201729572661070327403522502004331170880828451620210667207031893944589892496334641346122208405409468651722081587492717230541467785691681106606673985590287597126677825934716585471736311311842884777812828800230018183816596319864866897527471968037851939032946462570407364211400901952738092481066908964556130322346043153236184994051015276291383934791660801445914025704324322730106353656187038436955404016251347296489839141694278099360106372645024369536464986215219281052988620045556818640079726944025210334700698751320747947448853292622359578359020245865530882921505557942177323250102265524568866646592861208185867738390774222861667453079820839823489262646886006880453881809473714925973743175957842494535781039048422291927485504336517117830347943589149338312956111624967653485327553930974633663214631588337168466333608598434652668872866549327069475920978066602281389002988063065587359828570036432443593808386475025035846582146673911713940248970248995418597990899998601907436158223561708350334883512246359622751059160271509073416925070039166052187369935210231511443085820079286609577756590700169973687184852462012625433410365179841720683362330819898604720843933528037641649524534991364959893754782796005152336672133419450301687259870465470129549929745498080300296588361057314345016787697770443427462524284681336510771917825277416792861059571469270582129782554232556677122161033369111083382501321552766742028460260161684678641113219875082055690490665022233356857851672560580548284942650532174812339938113201140273224847615098739006278232433020259894009349489774556690693088145405543540934799603436438238342932832316635471858809332201807632048039255522169708337895658414098227371828838144092968064850063426051112688348173142773648365597392696210541905007565084499766737081052452794172918975690169669909850311911022916214633348937224442568189947766135020810163865400290727494720186181101814303934607132559963711026032622518085796588438565217030153606835377922641653816842052795370227832939368994838768015767189883844997194026390380356927031470078249292635631046953912933937499327439487138686144674045833170030564661333346467080883565627910046737909062960309129223977729917948489063486729634162796497122115673473275253345757469824153785033165500892653958048999636301332406397557454974170634663791026391010000231182509476601056112557690602148907111914409251388747262375561376654548617892675512083782437569343688703677522563982591605505486410093847769746453177959330274188187682336562062191799990561979854805761832133695677716088436300497430438392626971047861333211451299240749665651009074797867085491923522156518373879671673548870049258141863591105740861806431119739705036529042881395997320108283411619457643332462743631694707519869323537508768534771394471134237379894451061255904059821891218283766215912509888077809009643929142619630038370709489728891286470331381309118159937911203405241519554891824447698144265994146049964819297904202110355704633816999854971773036054144538388065799519686912201838671141857444790192523707912041502936594859636042214658267784918326072202481366325020784451239277041020363882485255466360642145739176387414748428246917625316904484270757128199739512476124779548522093482333285666717043612416265871134504312067874314406124334654472973006789570203067307784138268468884151126552445859472124753374091350572215233763586627134361192505047363696878013651844803736989316455654397860521062532962568420780354855017360551378096553845255591806331195851429805460307566122973212098238457709118007412536266057964474712024220412239700717364673374110551838018857423448021704154572966705355920624624525972158609901133420386239428085751803190573743082077613801503123725913961990177437031600641501766629635155581900141169034758649432063750412567223834119340461883867504437315990910350539831244803344027812494557639884643944226118185463147856873375251802143744684187979177872001198742208368770767439612692181645977187790217671460484366124349045851127321025840234669542017807460394165316853870475938373730587111245458910663184378375433456948074784461823446390205856008486543991129266989021076132455807265156979655116072853773930983489694909431097510260072999817445445212231591255658686040440539701549775236875229328257956394755214030909708083699113400847018715855016896525826763361590997879967074382211634261827163159647075051262902964520874800605219714937841000622224930091808671665044561722154965384831496107313533897256610563589639254301443894582472457352268477311662024421545296432586037989150497809340861951058126372809366244044381202927885098074567166480907049541859351324303697853367269718916143179826370295113562169620448279540283551894659315440544991771978896088051500028802964051847220289309238030920154047847980941734823495403176228691427943105650868598479017447972922704975536013036348599431014633161220160917988620388653441272275639839813516748233797465771694488060088483189804863692525150761147122336790055950444622853107035023925296164097290891834034703282622660618182381934324402582143173342097396447686562259634653685470543786173939018519378508254033080445266554472024546034287763549823591430518136424195077693395216734542459541846622440211530054197189552480622654409918436020264941186685648750946498940872400297274525814691725728128670902317551079974211241303946770907254843643201627333930718770344261730211990974538285683498257950730914071589464849209236793595356229035051633913075765482278809374765555206943518605071711680443324094643725699869973750536704952037705198891152239534682144741708836478239791291416386385367341616336899130970443046294864323118262541234280889387546826390000827177929155049142716245642378653489349821668734884473688914515445129355837119615645937329265806766371510086375968528718336981314975173921718228013500165778818290873091285488455267110418068575517622533017859644705439231112467103929172774773345139334077995553408820708691021051930101833499994361683214519440313596737893524540261628609926081229966643397501520381580435303154252207560987370800373105187718054129722172795639560113589528927823836900091605656333518961815583916306746640817101235942321064665132464823036092065581700470181151321162664893291976657745789253110500704825734366345568192703929328744822391233199547092852475762989146426604781129171486602364639215906682905743391965632687093678117728237019702766232450341771768922796876861029587357722749630137422884104840058168443324301522438440139373637906688812792114769882236282692312296646573662325394345865607760633224592404520980049873114056704272842508966141391780543561739738610972219127734350769210754391528561765060320869672914733506069859297798283443498068620085125034395844903500926464659214486302422574892742896522516293346700527318842497423717909365016611102813341475292331061004813744679603309903379532938491570711277281087678990430979708990188668370213158212112478177998332240866775758020709134764072570859998505342340776114163261613848154709709742481091687302013903393809651673435245196609332391477001713990730982857152542872663119286498824154167308495175780024295852756774138026436238797292824441053298296595275291729337025091308418545095533285549246983047778718939561036501603896248853521130238232612309495921744205110540218143246298304004021721097901105296244516779616019603318941288835629025602917199164874255193520044797750630318652977424149120371951354521502233539822586473091626511373236455700301584879875267186953059000448483221014548961371120111172149103689944043321912682811777914533160485092325573125565118362910787796773270962799767220435616179018644926511157233304523304216239737181488661737031958116286972504028916592396279813058609709366905273341605976293541480743178959878637753170911655526100972609241835452681489350566708699916444025921606108935324114689251585750324045894711836636144698023207852440409247830672922538335341412495694138018702520000871115757996775917497361213896965055666032040655870168860929414297060027897633364652223771166775528351017841547650125843473633651181058435624768493604069453215815972511255341241831096806743554845442664378939146823117970105517849297400598978413225969761867412192791516383066212533365061174619239973175223341510103184993850897135382337592262415708337938665558031587887742703185058634697016131096706830790519428521248268695406107869669132751742988218489867353194110464366145580509872260080971140897179454571384389494296133361227257654679055389293537068661865226839918812463774221985178275884779125102908758049936232558017448769136709021766251620964447889089371515559103412956695109362112537634691728781034047461109227302745431336157877950376569628239342843271356285860492739398984139964437169140944291840608040220226501280956385505337398823210137366732421219241123720116622481134823690671053540501561585698664525288147119764490612324002849802642107507101523800330630605755821104905254266468475056331524238286973395456644753978668286945818382429751542847358335680311763268390770928375216919937639313960760175874499739979616306329544159508204796143506187557120698597138043033602181804389776938279161282998311154595026715553580091388649361043139059646623006472157856838338598375810307287965941268849674159954268667939453943681029222651779156386371059206138296915260060406226513656573387843281099347062296664780785694020928143856368593783947586734871980870577228272429014150213393050173284977410749057888284222689335490399461053519442112635919953331343151702463987924168938935834068574918440694646699577565227058173259129035157384332444783616641793170493018684525377640371505951629581090752933930630111464686532242790128467591073686753108478526817140235491832293166140296360779574969969555381156612453989710151847973318451017143910399469050490034447033767858991851811714124452848579348939366839930705513663128874565111448933313087321788547695735501784099698269433961935236821152720210051852498380679070813409120934259966827583072512056979230319799389760887667487451831056233552423642977013990746396181295461813466656077047547378375139357104096776456556063138327763582269244290656748255191384115999072230700091381795392533747314539992065193054616400762180728645380653787362499127959299776132276167518595794061894727855154253729674229511719137887941192202537443668527333666773252363148086824281264292800413977339759786318844551607887991489851157259124900846014058627896433974029110966311008315727578850794434741292502171304235126586437009212463710770819548701089960385044851657797449257977077108736388361678381888019800594880444094768585858835567385895673609508210953548081405146451657393085466954540324634858905978912890243255886155988230868982233179451418201843329486707336047536220107737704608851086460988729928572791364365092341164879094425599696312478285482884239839426855797682221099589693773700715439589848776265346251578894078476239379981142523830319969641567871266854526793535789915576782817826614660102171240125904393322158453636350646348090509086286942165505390946314221319265198507481762181197883339641935454376257201947626585395633188355472207182337759723173531847020045596166581743330186510769812071794244031897651289993134139316141393011004686052473741716806625816868509408956875570734241713673929161352350440522516881492096441154275050411495861733164532844988677701091540500397230940919950425392286183931826226295066784936695610887728023401468683084020368568578731059784893713080447576149522771753513370922977049399990956874442023937831866883682593581444592382205527113806648615295516872223091866587136150971808265902991635734557222206306952686912609545566091207585263885120790592062988435096982616142316950706116505715719837223550818377761104217768294838687980782106301621943974567310641875954168439455947664150527492886860133995607597045974491889302166055483195279369186146116714777875941333309083858002721668693173499211647591326294552569358229614398360130000556764023972912817248615099383370341109798367690122369313087177570158964924615718780282255300533386197393306478774375148732868896909604143679432659454857689896137147353266371714918227614146587161063677706082293757502245931984365023421326220957684372672844194354896041716423731655122402603303048993234156422983396757702987492282776038476075675452424159105584420968136398664078769951342398873348346310161155233875728086640720118608228053312746004000054649873129653483454455043633758224731647397881263625104337780633280753015557659986280424580614189895909736572294416366359394091357764906779436636771232286714589586580205948310570998001582287530721202339209805547205527733250657266162678557496993041691827766803879562514510016047119251389948180421799673461182770662356642745059910058418658071634813355488052144636363142354185841518086453500881828496949869261245250605561973517477716617588345682409259144537807154472066060674485796493614234240591959004754162432818824369666994036281808134086905265516054812496996303391968180321612006371182824742354776163656479495405066814852321157299481823179596974424137568215502162956790117387443933202490455540793616966308389841243657837090189015245720067741161687564335235505644757205690904259230201396193301728468777682228074116678530350484398820923416446287750668619566544668209885867874425026876874787719578045546663734695366621530271883881578252110939501758786869616043157528459018030944954827130652437175514762983375037207477818361829134608224081912286427344202473760218697976916546590367849225563533507275258459031480712287053978039751351678831411269568957810049897145285804566633982119770295196775769903981671693306443247774998560829286189344635044543249590731512419614027066590225809033324390302500168357502974861384798134549662912995319965676584227338414182988384227987974148130671875371882504458387419036348533627900055122058321078992590516841382118203534170261680909336291308823053014375900096109109260540642097099523509984704706881553233905250241553647901328461985058150441943812007342828784231864459596044915114046973037143269082999643039046927297773591379459797830962674734595875669846611579501972285234376503642274721765756518892832836699854252983351427336482383989981711161714630891736912401583012956397696385242714228815322335757515958783764190571584063497604024134601181531199403913561624671012510084299751727902626967981964442281484134392186343937200436042860345330519651785662199601501442623884655081977156512430009930004551592902501381733244848205582680808176936672373740234591240436317586371189136856171494165446554311966453310957478417813221445516259290134618776691348789266151342943039280219754322821071807039058552179802754556998675543897370050366009104019809929570794356741217570366563325749106383364507738549714852368000675333594895400759919757755124184046622479010613502795063166683736865550922237752827236809061481314354235484991023761300293982912341956061692988179471176936095855495245651822093747217603834441387120401182821621028276409832195642828354790060601322997000183394420332102427585554728764809676663092293666565702264329679423681987056017865956963933379934395098351729879742488476410349662927794018286504690805197249838885230678607455693036395353863678586295248200237492333061634515874972764908744126391403806966504333497012755360818540961138740675943622111661711565263344587686312774998002312463315698929937669528042078090190352528882232609030384526496335794441309428463070685395602421294255968276480790918111459020800926710211487957794163395799215697304619317161801267561647060328147991851188341861674148226583210687602240253387217311386725281095147525032201092991770639341800063699046656191870044948131218789885944862084828647702827265690461794911482855363484258231247709504614091412275022772253908230562817494351220728079334248471351145519045243569539396910061532153626142625988690864210535878391982940267460556227286494084251314640704995582211437266395982431020577393181177005208484616844829685539342159778676646780881203937744434925404752455097164999581758713212686710227598753016902604660389262327566045649122062555662024355756030439555883850680060220898585273989593392297117223815889061775548084810482342290261597200460036848990078852513375668292090879663265609530089228220797956423348508938419236283309426329992426906629640277979641530449426862899882279110563383550639630855397042604292919738990207222492203112494612003257816311695680634629016693413625936146059642527080108760954241993740499055428690730285446016455833648104817023995227523683371478002942687269937095523859321921395063110956244364602872407324595398865795505673316503172606881581057090382710485836912997305199738520885293210744931157320070168924759513826295938737769782114829744431862737426433752520215047460188263698499686714860511551510334188394726365757315087712025506037889029185212752563924544413207161068206764151137777073673295977499249178239138470349005096345865402578810982395092980120452004000158086500190283463093572672232627638734861225455240903894539010657010421726120306242091907591016969012311628995390481206435222662366114434735853338661982390538062724237002680462771391492222576476343065728874347803881923447938459874071736435338420246854613459762235455394090268815271421795612345403895938735532709366313639541351834388545269937558279342667312209453763001133195363249309772487565999784054727350187289980089023859263620531858777390585137339663970495216381885410425665784025348267645951118848791960101057067754591244021771536077270277258107564968400651598126413459556436105157306421838642802753743614028466070127202477022405976762089910355637264208703132205623987801681368218300024742230688670030798326246002989510581166241922357806388282146722829365824879520200551105432581907153876865297772813702919653433738811011781010945172010370924228585799017502762196164667498991621866459983264232210579009531821614663951942128666132244232870447441363946983169804783932182823377076253557956563260245619149410698820179369029500997667729319042372106472467065777462108552263555593185837271856711701507343176823864599564062858170326934027342167238869546846334881380616622633851031590810070247874555323003938143312763332237423364102221829591507618671361577370863042208668825695894931923796512623759966409774601514419658210056344944977292146356280510963764495272509631125497558942692382542606299953095548838253639731959433766569032312139340960122617926537744882584025345321290493319956426226324103556203009648302055525925346046719281097785871593147902205009175994092554227751006759643696973258200725067551426213676258357317947915074189937598765886529671391177442495484259324347451456255059766691387048451304999642474949373185006634315456335855044211339990352673953793789273448145465646564319226237015990444488481659235232781538978332858858480298036029515718632139453063752100224797908555352879753554475412754787184264499803993792438860125380693461476649226618052454869065343763406318049161568227975811833686040643471297657166000196807193235863019378580552066604062461918358723395501593455546408369055667826242677613228375420018837484097112462334465382444753139980284783032913548319934918120319323205250559372568752354902338645422780702599452777368935120100547687420439205301076589927512403387571284050977629443875507829888509793953137917846086738309158187350185226474562560742421747714503167383372529120415955531761394369879338024398871313014705854507623702375338972201907257925090218007878964694222105458532918066369641728080310967764206390098680107523670289811463416500244469337897778092498828045262835938287723064695612891194479705973012599215846196057004843066834949653548687336166422417933787249860876874593334526790588219183020469062316598099818443390229896305303712415254358444286361475641857467046708655271461350443917461459781953387934560259256547517702538811175339377911614317416736835896623717740693247265054312842961135475654186243905267551019595765519718537421750589813309724760294200776515599931593491498455649703450700953678328282464351584402993614866331332428045556856292296575315956058479988151202773307323703583904549466688054109674169710153693255158517028660778712751380343690747921309258116272058303164070703678584999350881665198408873281205473455702788718387088391122063281601527850882070257615430357104458480558675041975448383595089969766561404699738206778346752977348502311217788382022842365868525696904888841601323548955431471562490044454307732164252510677385185964821101148162209144913545580914224269462152532953350461674962204598186686067075133206159770803475657134168077782450354747836606521655433120147559623881301873451365855395747955654473883175161348657470498711861248072847352713976138963267944199522950707443220156732386989125124735758929180079047908613488758654084681834092705072946379434475976743350646363111502700435576998091905255191021966873644749098566909495051662319908212387733022077891526433056040116253748962084798022495219141071584893449964333990256105435064087872942944345821753470651806835575854264431817618237308651240497172160631220662830157088845100648228271784882305350754460137110171203092044351523633636529857357142824498485845188488896012584379182188502908573810413285926599967566703742924365264498096457759976391277534190675211107831373991773732077544482710841957597670390161247156928037955476310476659042242941108668051276699037217209149589289271786081598477698337425758261483578694428220114863364445399686522205161283325295432705557854171339230843074266936089853882613156113829155446547235877083587847998728470875284201937408602828925373630566727525044465529408123585729358027772808861463750432485652345032105524483731120218111688547084385673292164611187589446833463874175463192260548172914465857974892421352242515280298039701987168600275503667841817662759264294621078869362269629473788152746829323603173166376542105374654201775934249302166949713274050518463469169773377510029556101992504789792629807947395091567180004984440021244422575299414465783244357494872697464276009682974160604316777313104345369209577173983526798132483271812050867111988221089701893902854205566692204088526954366346273611466147095574957302422310670273415392197719708541814756886294111967671951028637780554484643943558264434735302413937409241874798467519977099976609714391578042536509258207509028357117558242989844307814447695509709940733725194369801536643984987938862157100762886228207756899573804750845870738688952957482392950369328899930670851160330578856912913202134768586374569971961505749550090016175100688126301308998688530667737655743332110287007941646878464809015733797080907870074096938790333451080880351147142711272650957442810560908604252845142916219318429912024695356355939696324855673842190385319432870984537335608580317684736346493455204988019371366658090945253808297851198841706982537015233937682608511884848430223190695715551628391672036936570389090724871181702667920823318063034008610824599853779675927990494991481590868032398064713088594639966201447929720724569042516991882223521565449194761316745940190257729507577529963560363466335912775100518003966062270090296696612593896649471497940838804580728480215064528913822272124081536041123558532560311211815281351027651219368011642718017757041075568880382375573674892951677574319554432426383614640280953297055812679898873928144826304557424196867903375547193610002262807082375977119027822056400103396191783599476198061902448368007210481048408866225265881134746429527562847996890819525683769419000219466691738291526871929640275092824515081420980919635843552454115239881882956142628895161973216826421124069277200615379722172590108703347015639195677339167849615529443002246139085560570610637247401595437998069145486503048761835006419402172427473713620612943395049216246227234068269124076608205819156969022243979710882729638717260538473385780500980251709362025148843191267209217845974701217708393960628906663103270922732515048496782305613785114555442687517405939977655880712365177391069773102222696006294759058157617596779938688726811722612250119755810255295136596408968862724564365664962358700758093851790188089227318877557968846480390963629575962533012580946183650363655128646530499252095562736435789794832397504009894752104667009438186722215106828414461978651870665719414121741481962921658120784944496109752187444351092210065631310436920741131508752760646039528366433355919048524188693192857838755259136844085519454954499502301395463577485252894279976857508934739670129385330088273347996297963903769920249222810036157012534855728567961837274332662893918183537232083884571840226303414603441790002030716077591635870417365024793710477675057100975222869976204047714313740365185566355891315249823673268103557941833817922261928731204603438215108180325800792031355036295343227197141645913542281304420981090302950189956867548645259025765192944720174979150005143460592195886985632641918065319632761746987955980781353553344464260256230652809903855131924657371833489321429186875049504173377170685162703885932537102334995668331465287490856125730192873455873193623101876100415524762144134131106550130161612038577458218380093479141191091783823151455644255846160787489729301059701638340142032141884435450096662517365795324038121829866104377404487391761503285661055664146826652576043254767464439989314610497828202348740298655977535290421301746336330691081254753023358476151231747308151739119704702062090168122396554044962357779188497495641594585089540678390819666062181630379261471480346280879484499881438310767853122168357727695726178731748047426029986313846848839792800910258681298776933327405459031328268305280615153847701762388757811551300068457128648033041130266066043994153198976623966885392159774553732026392748588754477675636998035693729092782992557574888552351514674137103114827667704785793821134339116660287618250437848238617569681824744309400801392954258345832819166362675391803017846786751214763159640685515869925371693163201163641449095694400827028209280191662479539454457744816889384964767804942261860877656151079774722813774311181810725517429658623397742637569627903206434167767852863640654295983249018458368062137331782638961446987157145053056837744891183005697822808539020103755059616526557617139881919269563915380873517472016832899836832024045372819740770711099457915231740806379968591443880534211097269614674963597503003076237404482823527928517718470815008422277536817349575345783207357534268877723298436908810241604289339742846401828450987151080902752851223607216441287982119622901583217613916810560813045590908070843581308949598571859304827323470451082758863853669954721567279022662038886811461137887527701507150871529986186358480034204171794682787451568988927804754581652752828831408379684050555760634568260719136488364103889849247864302734222509841553139547302593460902332397791698553727441534322444647895395869115679973712954214582173821210289490891537003419565893302684629954691169108157177716537145663385723188603266482374440955576605109642764726827686380949891391078251452024804793803563553653638548826587649245743279982117887077934062414880541045433421954686637408877198875288663630774638506432365933262972789509449902593539347714956445344832840518340833706420586992551121369986123522791684160303440459105109941527275655795311576378043719684053443469348926789952770815683905634446924748579551642868324700364763033482140829276269210039427490023581155610787995117425387465852723038161189662900569398229577713627930178045943204406700094224368375433669631010467771127248662842263448616861486977335818147972721918457232703696942899716598521570232821793181774487138315578700662368018702927038336003750390347903811258350418192910390751552995879843918464800837497838514312812950785974426060524130779591357223562296029515415429082156438830250944509166702752966900658864727174134362683969014108797091113664169345823410625230293312933058065103974745148543152885851276160127832714649278103699632643008177510440963187779812989843455774790467304539397605744817586409397778265459569015036082887927538280904942161531855197429973924055340852634927528738196304888985538682181493841221998227683449133137176699007673235505452227100139771796315032622536110162925224532870880857430179291409312508402651897333357882973280060276462643438552165817872551073461735062602933042010839467252790577287056453577879087177128754445270707671814199459971509124630987681595522251240639201610458799842944794239314325015291828513350595450189926120951947083425836974441898978721129618554558735814378640343832254888648992163210308321845683075022265953485167431820840490978889985417395672285614699012478115683009609702944532644415529720936789385413057121304969905988266188771754181125438504628635463682986152288324469918175100163690520333369839843066653308919097746850812824110588074221742268205476018092518694453028743305286121959118435365179236489235732596027089725658010886427112492494229419052070615966702647181580661189092857815732530483802289884912191499753803226374454247204104673780524094324750663532034442822759612417007631906918565665864798257165616026102310238653837848197614902716781012826663754481548840530287139179039661857996234009834455635823546830991950592085047086204059471908919227828372055944614683823385097976914137590254282212787961261261791652185040343791803741756386020151050185239314623044724801019262053883540580792911407563482338011678949353789436157122014752004404322815784868188408142936261923269563501647339463615098612000180224468520615760582475159755945903576365795312957566441572297206369948703294055997866572617568182366269106193831706082669704195669918633516877975276107674499591471748249555075126824259064532538123341350337071360305377492437934028769004838516949836568620741254688907056283645188949236737296874519269928072736316802865482853482041828855561228535971933376259405100582262503824820807429776404584101257071546374664539995293129783756493501122561000454428448636111052590333228518454872416921146979593467149757563948884473518198092615869312262767836570594107525160472175041245356029385440506793691174439524305165183685526579633623964203285701911574543109612821094828655442801338928107691535816080162843246674038189411009688736794234238230150912851421715093503268839287424908924168383243714382346702040917972019801911682456666853132106324200439395345852897349006663890030312628893203386879412457762294463599777193183795821850210326712336882841880919546494845519983021871694196073971140223076179913156498100791861887693459259644831602387358700731078888534545822358300837259752106529619886336448347854565730194696761005328749714221808670523180224197082860738229041250962551532896999739677997084400727927503826383753408754198498941805834176473998333846260353892047362406722529814462327001277215032419128635477570896355514712779173803739840937596781488388172488007962840049520143883871521802261330287284129935551669483504589754179127850420479635471685348766361841648119435860347709194600951571015401128382523472308707164831613763210108716406839569878680876023236641989483911463600476769459738431864222838434401849078984659289083970688289937829085502740577090866472968162671979191823084000157490267889378028901558707862833268687901642051131290443423828306002751942733598781117502152714813602713412921445194349773808116385988273794613118455961675610040222971502174960885017505002964454996701934296033640960116158410005053146627845050741825308613504791673948295203011857376304632354861186664082486348700248736230902125529641947385827214735872725626625190723581320393853985164982881953920436120734185927603494250244890951823516074867644426160624537711208402122421226550374331854630622984641150864474399066717990847126035526361869029722728470788020471471018128772638520361123213309656489243589258264609583618026874560043314196284099930945107490907631707240096100396190294832666763165674141454200876138587082356483472380117026542060708926337109141980788681341826307206480301849733552137144019610332082756822975611261864521958576239032138561366252592129726572848242970473117420489293127624708136462929641328960637282252345743130695258456353853156641755422756876830026307817985197524382788947653469895770499581497026238836324905641356265373811393645106248104490193710295063099395881833290205073381770134434376682853053966255989990810240294148767108436383634270161841037864756644521435483000100803773262099869246361839021255833231659779677313149801353488355304811231099726100467348687010870422215591454558574862050725665311945238793044746173927498409606586814601537409408370364865306247331275292699118853991068856619522570643254589159955835583937470910567587030246964958442189112004967305048005826584348000548658017022806830475367144198435711205190433841627192000633253117212561694454389225678548792961449093775256539018259441675687325429274533409171351899575624639189939846297096304393204551068253078736969746782011491147577284849259894756661267136027058914553918907888343684100050402746353287116234942901870038899188009007355057918138565376618429449249782172602611832205635254473806560313576591678922607935076814750392637393437418592838236400133382780277678110319136355737790548015811190301984012569712600704585587163149655400296292131178529268691151666765226250191302920484389929056839048819266334639418243432150561855322408038493047503452981260561754703352388693361451227627801639329267311740059233331835903899031231009190485554791085903466175763664983599279615039300528424249028644970882121720532015442730675676436914441033824831571908841911547675670598969256643438727063548496670508620117010993400675157964883048146844081489232434049905724349280673250088577630710943691958751107437092790527230793744884726808264848556740911701653553239119144095112342566482739290654583695780296120419094654289682269711656383924732819502580535926698022785799665988506591869962077373676230594791094393017362619626498407115818844950078711901856964791146343308276541321329927426375817306517917469566396697813233694408265532270508791168075981808463896681907761053183306804754525334099605524057416234958955163337178677061730427464907501726178468132473120461786318016146414473074549166887865214098513825662678860244438428065060648919692500913829944832974907851933784297328511664904818911202379831044527551950740238893647664279547640520242699355626256329627557921035518444313507273196103631909546356638999948337654393066426290096051194933906159319852215835502304760059687585470339539319175278701751611768127060834653937231459037947838597241427345854368559995970485295196513434551507713062687597923619721923196013258576123425946898297051316370142096075890705731142423551279958042864970296739136629132650717781336329957358947747274903552074520341241417381193341630833367016996127176551214359364602688970745677076032707262597263214130932828279846682471366214461677984267106362508147860848378531931677566211724071288619276034224197860440981503725508114302478114407583487804809247993229389630264219764199424695122828280521616259979391667131330839209569086714779258474876994325594222645507595319161973746258399044043927212206902073453700716874941572399446059482449915860695822620585566882160427323174227549886091700962822056862957470114255481362315946616767543061835051609324004039762616667735971242517865038380239038500191915840754040531967674993290621762978187908942290250661149313522486330055347858113066376543691411429401291069464425971024894981906448487807582911054968238128462416250938126425828509889657630281062575240954935375695536784228087698063323210536110124146295140212803623175954648983765863972582155928135767875806835583191335191096967777608248585946366604811691242608064671206654720935656083343547338482708539710939853170972897315338323589944101340337243418968086994126098727669999608558943554081288435643280349405139202041483869265350744373089048211923838184013805196706760311213905100007655836513311391134057813489515113771550363703375760196231445885262486389189035941700796765555565802939389258603342773734480173501496175729413373288647349789468129692907591111886096918164583020035053211552062802218350243323787077979281427591983532849109049541412461642076307351644832814073430653762477629649798804690639825452341862422505158279264319261045170225776633978816370626246806231420836548829319339097972464108692868102775934421032270546483235864854539006026851409974229878342767704460512276875620363575689137709722448839224349894619174927678550986281374878994687416356703061187292622651471381468362292472236998184782513360582576379912540831008569874210274150679934057743425779639505951480987677735206871928125120355926714036595686374343554980474987685313906510620153114359923824417503126260570271862670703571568220417878445503308798779703877931131820919889409636618508170935279874104505869885645844635545200218135215893738076186889612411588945618749321646535563969294453689893636413266450228268249978034160047215827451226766955376501602694738760728665161150453458754220140677036638925143832737383467091004594377813424728176267588172620755455390890466679831141290010916918264791316137251395096779381449613122418187526292395269725670309223339961873733551141759562828394034386481070877036309918106415159022819115585614084210083841640041334007516547868118761252803488930068819682409639971184450404198911766038705699274566706857457795945598038203918588838213288065133716424333365140716324258361541747538213632521116707218180951786294732732411828253732676664400303833021824136147404579293573044873453483479789350635416383851145167604474577499125935120116363065415768234984269113229242138236000225171222639973313443042865813482249045588658576330962462669287387673228748638850808063987826372314251107635461853687257279689809211367232493342006366244021364083384413879878161611765588196194983294993940409637870859194756637763356032601823904324502535662221808853549331844176000148532841563962430258933022137332250238823568899426758715746260308877051347266236157301475503487580603872391795999216602731194616833087951642768885745028542809496773980655125761627514046790550358787724460522475684414957215137145632842393794334646057501315744569034900979197876779112261920085264384843483158211166707449166621729426256733766496834718244443290853328920280578301169276310869920207214069066878685660599198849162815547284169791143089284236572489523722740197532041568546063973381964530196042836729578117046828050424411085344660726197968447007069559188808463164704577063881204347570692929699334640176586272096905784294381196942785356811797075602986863319047518574330430564223990053715081280719810694588577842776779250516310068531903194877032320163352234123434001337468037162473121983235927416725999059193647735915281706451713195527079926516206008592996905864263207100134390806376051748255150224773681823713866892161227051326365810347014945914705138397932884692150569028081951279943106071217514146561822242731393196494674693559060340199509598085949760472296008777439973874728736366947258993617694345157492155861496097114456859754857856019771233344487179122671989838648471866205671251239007823367013692384371567321657118374311395042594775989959643164752026724365258053120921548867202377092712744443452004974084981137149325875809187235060539358787182149485254517473325114275056157603324445941825082430588396378851890005416703004660210505644776570104957525317210010679188030562961838953484249221294174294886090409858224165815975242801064334119024206466858077899858989878241713618811455680432037402470669375164903298178541307545520654028522037522812035327485025453247836692662430461152094653362208891719947577313288685016504267671619304625385947648027168377198311117747666554279233089072899526637812954456015851701146764123578622879696725549557546698574173177207139677656170437875103397257278999472467325996037538396853068532107416589708443564537793520239592754614167967286538008800642043785640244671125368732200193564901243239622784376388848339176589773708784842529772305872102799730825580675508632072347831480413557158603025408383866896913064450567330742137659575319796053118585168255001961277478178822477643658798478839593685365614062136011005443765335427024932949725933453804362031756964999764607913612248276150282545266507101476694422090837382722516625667828165581077937105028072081762467441266760214402474530327152230896579385350399327424205371912697198218831063745811303495568588189637932747922679825440955400125294323788474826844816773670524497400112680458509371699082605755152132266483051780760787188490552530584489528471586931061812763855295533642190232998933852037695367991863613376520166202153520814881927624994728422528838686305178478745778653060622239022720712250231154621045200523872233461189098251400548905850194051931155502562499319491607331095526944981191570872808657059147822719951292253093347233547530579609269994387093443597715397279281165962193852426045448820356809874469013199486181275212538014421480930016355534272309837036916485804778505026113254352924176510143785696309238751936843311621110844145759930684493126591917519500321948709241110208632753668789384872506473988672160976442432803684306271993955144960989039076581534981444938869958012428844601338033516674308023752325983488643255318753325261655201691604566599551435997838244429067941291630632629128044267920943701856793595213507719641763706829831154913618755284827459530396346449277615070742137887524618571402289407521380164158836208198738057900530971563243105113916391877097914876164325122352455769968640950928834450769357124439132903504422417226059182970039483352963373438010096586797359025284389932034462331611701912515030690739274935010686759213915326561906401378103974361394817540916208383883412945980246541796159197462601734149157386816726858073944849583635464099286577994758370041284973888386805880907759097267510835868781889456358854121176603299914961184006038595731982221333931600619499548727631846633745858480348560431644109064775058388279607978119166607236222889245979744899205466071121473806508547277158234855506258835633723058905835517531165676835775676311269846637011798860469912098426612108475997249275878254577113827425792807897057687990946262575657309559618414862977898025083030283646691853424475285534821988296909273231729790930553445823530906549428983550717120556949497797234314178904214237956952364407489866830442463263370856407531957417136754625070943330829578385415007691516571106498413180243698679438036068552900580546181356675610654429827865567445358974929923013000091287980300216545063003227754797980938499999811503029357256128604604567956999302319558009610298386811621547660924546208381243539096578008667254660161745933776881915947372785423537022729974997025376666005935872959806257064277553210633520711990007108319513098152117499720821502764563412013629993328698542763627439336913609715384048647006869522338826588998761382300145503421913706036959882781652539494950190817830743986071725555487851021180750275874068593591121579245981825032333601336061196236884851800467411629789140287473783831681319051393204558703795702475216819713598457197683320429452528925234888879798527305077316086600678710618722724297687061298740820493674797871856184648067975225776768714032335133686597038018160328500183665234937198930723740770556451564280687527246221523289006375068680296062644174963443519389388495075900717283612693660058075579651399670337521151736604910350795751371100845682719583564513787714435773806133076203184576746252915529796975676325520641500767716728543245076811905691805038080325757462788633283857447266726448313811516944347954116350660046579584983021171118151941876705392618660706834442383618632141533904376625176349649006472561395196229542292427036870954383676089034674293415683898972143606828544341813149380370357566319795025812736026484816446694066927997598641933170248955412018357355371538484132870549278886911077235580074684857418258315822661357141116483097040380465096932940837250751042571027022422144817165910479223745826679346798973844269872771906689525891954124036376875298938990170294983700532214658946523209840777561916666980461076144124929102471923474051070643625171847420905841388676847901549886873914608633817308166193516534683603518705701314786021108940162544803801398823520374760194966999002111881538283650429896941419771526277581528743980562162123295742807510612047786330630061680203940058475182174929955265459541217195523736202058535835359072245079376693114347066789547520719854282446202310724715406888535600994782095701479522945237465010969101392249896061918586276728406083404268069811374413142014620176802208458340246902049119340581762823134348750274171971759862659968348916206926425375969549038604963307267440233381801467635705580803865518987206049442596569328571500124223633710466779333169891783993419113593785951947762191161025635994053006360392953491882343178937490234520003788093253144475677625947014943853411725092572252450059723409933600246852240887680565757849641097338988383041947958412996747683820775160942988500425262422323467358143195367385953107950691866281184165499238640089647340083109870836943065565562569515124224094280106504638844915146574929562025274743998746204710131026726314226155048832504318602990739095876246984802263843012317626061385556658001967487812260914719815341438528096682723819051490085731930501372352818005245650856631351522381852734466327586849305565437256677913768013851738300552658232423706557860774506772833327088187563922306719600133459912120905619739927905953570978343991130754551225920522951067125583402105196932540113694839381997987986020306943038977538701227312265260129487752031136964522647608162186857368009089922450019887360288690105471578392987617189142123485817464282835980087359007086159174924429409029097252776856765130242379963913942093761095549022893693524631922979956782961467277782499860117187759795719096659107837591652536917222916895283739577031280539055710595179606902069167147224678919401063452181930666241083407791135137697340460195435979443502995268459034755571841383866572076438582117964134333889123148435065561789962158285177613053995601688556068081327293172419223616097279619362545128715316864285477919380243822229297120122409112818165202243694826603343758686289967203224778547913375310257744665739022695994627078639908915113357324063048199582711872566259876543636009667782150426483690887532378442130998040228010925025878365644602299563942601492643682422193174624437695838718350120124549020354200871622114152662934922067781602431891261339590471765376670395743107095494229136721672101904275367967770902055881203073663760155961240349640011221970724918345760537802868211631211616217811299489551886918364360993114642868830202905594166541684281651191061672929800651134260901731798399363736537406918476826427060587938711096596479025997429859200318362383523187853175825154425575213836313577538196052041492660464976013208969413974798450835184125477475317584969841443253352373867936579367459764703515749205840270033664467337922649675308475901303179438927841591284232252988257150750642481234696774389958622346338658758516952695254561889078001532077730826573263464765177041573570945815689534825601056328348384010601620404808181594890224391719661990343220520782758558803403482101978460162068702423277349590984085390849837099228730543376948615435666640902209559162654770082798275185820441396331522488428030168852446210738919624488213056680873706828787762367741554004961957199147661716823560754840089204193349232137095840545819388003824668630523360478276072939462144264428854667131308837446436346019310079104116965494330916872884351833276309749378553511208953318911711541205775422078799475531390418077257020278890980093408505099881424406795542443411686048076161935578471523300578584845805818559536933847493002256823805349518298374561334960432357508781541582750133746567102431903660460897666474413964471236293120856334512397960583863957965757794650230150127177779467223774707433301774356233916599003288137197956310460756256596783131298786431852685922890835162384777563818545768219972751282040258244102239831778623222862351382378012842708770099583132965288200615326005600337423874728293496771366477189508944147269580412884226698363424930082256242447415784672454259258693718940658408358507730945980740050602587963563978446435381020767809508158485334175827080315823233524503227780958860985687506878240077166566660503027274889015857519788489648318923255402967482594358924534299107498405587515782129743439030546930422929347705702376039494050216137411416928498401503082870225251780514669741326643690162568831979870313404586326199811764691318815699324821802675658387578815176029340706358953634790408578599043616918036769178778678595055499927740178852885269967933623631025993906942806335279740207513963294055850949213015340812054166284000227256428645149481793139869287413614863290373399786147350696448452150112367930331222161679844400067185056677536957890613488647888038788952922242132304248329860206971215601304421767603719594528035863465655131432621174454058645732420491728465383398014547173927155732471809269223978050694998967551820744190825455327226562356785937921209950387511854257027250823965179513028391354675243960687071947017714680542730351276167894365482660907074669410410997126957568819152191040617164460410482981949189765359203439759126243154280248587071934756686251101320091491577278309104749690160692969048157246090168219875092624137087731215252046154184309459931945494044535403107632474920383346337990520769617347903145548345408413779263934882005289010969366161479993105464947227658933487479484392971258463268780635305401385683256764063319036281222628769748503745208158351787897412882904918560892648271107030908690819818473414733332137258698351952528653704207466804271783769039906552680089868921143864649548552570881990300472966330772377249248899846971723579739362032082883028731597641895521029871074440804904232780587113398199527338596296734819661656090646343996951129744582588758051436310485126845588619534278453958299038551805911420748971717538678262987903110800335289568408198933840548836475066251989956387017955839369186700162107771237208302244778805184559629964892037802497233332981394216711629764277569545729913662380301195894866195052283800118682984954187925123320187002227115515937220692509986163006221489934353265029922615369873930667941345177762922027219709232185775160897705880903290480326063471034851670704762985436169895990733737361280094462161706266867322510747140248952779873489254616622523369559335213114431677039456119935465378416531209479595690234855369596426751464332174431975891097787298711339723610948620266194790219752862579236886535878562393376738258089116746131248729401655623001306075342345644749767279412732456119120077455747541107616388324200406327932039380378625196316362467605983313729115965252812441240090892999304482671826476348544864494032949307214857412419014834681613851600332725882116456542260397719128744708139545367360887127528760729424346946241785952693928037443164477091254272547346665088307477909690067749306827025508927467329229964404934101291794408261202897125376499230471972013748835581660285867249259501153207389602137461885065690216985898667575136577065678666276909467594552874266491386019878394791878455874443191865022833910779623637288035265348665705679955623029897220499012359794590877419300427824517788207562362083672205851728279955673488839898411842234994157982280723730276470175331542792381796534598787828357698761295173502538298953523001785408676908469159402302992700000575124836754421462876592334582820796756569357649029928762796498189825933756302046877256031524314937407315929932101496491829089056460380839914576015295660908892695423001432625141250590775036044067809156685716291829237199840429580184643774777444092203587771491805172081043350100646630337859211225953491807967273771215785082394087330031827892397645265131517522225704738243417731851759418640469278802746688320699511772178073764598466201073355811301830462924103745638132530272884900677138117589015062557103958154198858039020472491317600242934195479900009171096406368692109702353211389247260845475748043433892112672843907726809693949541799575580705724368291035755142813850526493625593814685853471755797290840709150361414308905147314622903441291045201169099156533802426572275355642435026085628081944398678065836139075820936721440779672307574011888336661468829977786629205046393824553821198329748907032581429367754524889765209119659455746505220567711460666789569622449961985807511956004420366890753826053705396655413709512606269611443496892821903064534948968175697210606463063192040200284436038539426785977443589421741878576334912275243238997371431704358239496285854288971515764327181171432553959198751554584950915698254121206662124444749289008463703735456993115927123003122006153541838840106959734883080422466601032833267716749972779989367725054201826866580884906027880630464352932310776320462227991225946305970577112819171074363259722297457639379066093118229671550261962660559863710941703253903892262604415668080654986213236467712355913727419362038354167578627324854246214764791839027782973875811029447172376499404075873727581952150351623105984145874637276948811873783010605273511221840235562197353426008017850582420640637147670510902853343366710417429130604150084278793828525337971906826922740061237409347754673934275807560137561829312540106735593372457582635999921086226971108542355023273560025262416462094794440321442989543040103304309969746852930350016374261984211110674718784239000370015192473195279144895140076065716756820173277344325636718589810556798011179050408714693245868858150397199298507429958448180189598223645770055287287937823600276297198809117407103472772459928345910151331957163447450572444990918375199786032281283853928248928579726973290650579696971410066664219743300098530660406601378234035487361314962243796948694979358194376411092501586189596467948472901219460361817838176147422531222343664382528301374111450995410289132673714178504992442423536291803834282639897689796863001596036745019221213953754691506542412252620027786836319440130950516264687808147724736678876863823064149736793877176419399511018725577606907467551275576866424629564089338561666624914347519438380344920940058605230278500554988316221041790116204745052071430674793001649222540622417335527015797080205423319141983455396364571363281052371172940193242002962211564205626033550123942036696923441440186765893516382592713815695010658145980544120076951191733510266288841973436924275073952519725841216046682436709360767784307636589352151361384668375920601950168650108315633594413800193202575610542467034886891172021924091102380826171250330964862514468363204694828836807740109325192818978888940037384760059573553020591935374290386406134783289715733388981853167767839840296802907115939040441385434702516389478284416951077058289053111883771432994561630903376431426685592718882111743992730585030944390887301360067098704196924419845861316233762549193499933425602588197690760838140149763528941807162732837546221362457008690703252971211622037487926766204885540508748998578453635372004404125650496314138143481110310336388672303469236145233097926956827327738370297431748464491015038961767790722474651364388891395595864406465634053345121374174679345462027165084407004831423365570564805589451238661518594462926351600303555767594270472208678385919764133031532240562391808926585183230105552763351269921716949037083654545096847180306815957169651922308711226055147895677921452651511292066287935051934719736076232549524876849229184862226811616738585780733998375481987707403686143682240443413729866268569698151975460715372097575226943292654708412741564136794527844113123413154136115119783955286874464656414557691450290743353601563265610343488881024525001138346512254791199296867783435184842883673638133301025219212182515420616289427042295083012052525621230812568663498555036834762004248272282452765281112190099165071045612303607443164252543524976745588461869959027579559109878031069832946499288963052835206327841537652976651747530829671397775776729000490182537794219760872607777205290672443457403073388579419375970787944674069849575737446562264742197079618956913161236991137969349495981620305321491551641065469130067356368028929246250832677838967911673906153332079243215631278261954201881309160003031358751607660109186272920311648591828774623442293452234860720931907213931500584767235588986285202446267934779962708166225608414265376781374185895102012867669991177373348878479587190804681313748783624113630934133936862283270396703006468005789411616152118832339370382403992024824331808203931585832307076367695890191381256201679513873210159015367574906113509339736657511135778817513482842677180743804756757518890613721363732206815948302905022607423384401492294651264921930593453612135384130111479349859190659071086310230961950275933108299612644298252797475953488104370603891611391151383454856849078998702494170322173314167897319168665700116507706311890267574461898866163344834595105763782861266208060244785036426554261659019334569323825529759586872927673257407261805271492143960243853338927992288032525565205115660217886353380067272253735257672304308158511979381410241660465564664937808895451451560405583396409398227057018367970777837431348653879361399328585587694407544855038394404155224366935189493214151464142364795136859738548448553083393641485575068872700339514975554550348986759876624683017657086940225641321894417022520276842028247533555650374179623566827038671197332177510460325299910607778332589790963061395343795260764870190672976827048913851858538786460098372879956590287652526854289188185778369504313306327516368981404156993587197854519804227568944704202347095653405531379647108183329699681038047212369228286332975366104998553978423035420123114318373250458498007358582923626950782670700810366823502788830695218783823188287663640092473146174136630859063381551971594154430445927234622556410490171649531839308945626088727632510890704145850565174338366989533168975750303306824822269082380142529586849692741758678471350244478366372181265077588787251742880270884448668496218584439736924636838019219838557180528808944766051222562257723353268657281288838091508767458433323433400992706865212688836539925625126091622935506453223296958163336817162467012085258555823273345084288325418647200650183812649193865614225885922052847569914549751411129873231859958652143852316238189038242197959773372800386999886679214429150605016082897717028071578058080753429226459786875665104541748223085942842559553295186446024588797558102422612620360149425928480376034862733152412420575644357811457414095022202802599341368182893069291342770541793566663995589337166043519454094815915983966997509103758653520310965916344707522305634371893225029613180498490303184646708777853912096226390571171222027631169149217414188617653164018540627279362869522206856972883726559694792237323980114094932349989669108637134207226162260566817792667387644051092250259721742621777570278451220045139330510237430591957339156062815450642802919773898186553727480885609696631281678525824260090916112451723457107614542520300687876220686598776507908117140892914532744628345030498888489200979124010695935577775883091369184079043542636243613890408493245060482065317943189683898248433097549216179590359245339627691492228269805237745515902173755254258467558923067205503409933489954724911682812791145957763525213700470548084367383596648190338706281722649218745035080023967929054754326790319038126862145800988741844083677746993548359364579170520630716299936862776817460278623878981545821334026184635033417205424150818184607101577160415126875336936653305563883910990603428978563523706452446339123936536173237235660492847720817436191647638079193371625986557953791884806430919197317108394660439648247742883238427251515303819826029855788022426338352346501919146045749967629786391973735649094611431324772533745182026305478068233555111883834053215294976500814575622078046516660824694756949434859426907810286118860320536930639166512396931669948651350151604985160189726361901201065218993104025393995919809988554192816711827840420314407870964946794906623996176028517317121187921483603993943215593169589688644922546733220401299197326299579287517217924897237821578113826636388474197562956803213545317130196759542346499524064510939807123268264648376203420869617758323452347934683537933946018502040857203996362429233630573819601447414030206052511959287044975014100060391778575503806496025607260378172054650562635068919310562025512805470771892110308837366938202917792371116847197452245469349295974208189056335296558312969230319857055702149905884885415697938362249272534541051768214351483315481492630785874534673433361381202871623569244490846657347907565057302730138580837934394645569919463688670663472092736525911030078328700981773935314734150666670991595732887726580418820027988343251050125028978042071902092328801437771692119458199171173802702624698168927782214341039344413744245277834762081726259556464626000620518747572243564495527658651492987833983821788720274789177023384490502507365829306073176717845830635406883579372529721856341538359318237654076044463126576661759010935125580726506636630473938564834186273252409982138675877283625284463158090789940554874416270360114539994227644252210059329903785484515604080052847151927854768486127078361266369416021585470607539040561130652839098670510439510090640006052759426664615251164999347283343479185027868985892359664839010440218247233778873784843878738378227384725996697541573968556426784811885600902752827444569620701644596574687095863374774495435447352106821905341803081539043486919379958283613866640025668564575139328142240653826673068020238823993711076777259473664755063002006994714989699405665448125389298302417026661065551763597860574349169638554096337890784781652100818186728259063104907172646023670983369874703714265512712839437414763148438886951505169197668286252441282380514457164230340118649443198126818430947618764717504823380452112102085994572257815296878102965169875469033285298650928868545764883156364533022371754591278508719124625506732866458878857079671761548762357885284430137386808524966626474726294785866034196100109336716266855996904702260313483729651455839936262954246062836324025287545802595329258294361757672336044397089924732265025407428973598894629469718807601146184236010954165269607791707226530943793028501367996048193471692536519692967440638887035263579285498798965804137395731945720811788300696291998293878705471811204103821907958221051666738449968533117790607968072426458380329338681248460708187533303567019377841843469597717832783623747902827997041284050713133085379565942034639466927094254269414774024484508196814793384708371002439678664195923557807249831752316581726439321719699072450596675927232338317580820722761779292804740812715842480353217144425731662271206199218727233580247105962517280297556086118654267289118318391070746889402892697020954730543847474690270291028305591088385731231016423776393965300475213264294836547622752641316660093820161850284753687937829243429766022457005566151350860320326940218285130043575093107612091536756997108698039554673375198307240477916965331395477082472449016845061033066910688057088839391661492391028788741941021942170284379178254039048659952443664421001754706060626544611990092805311183704540297621261608412796885388755418793112837672851882939547583349901343236188816193224076065632559254016612464159218993143537449781733983053356460129854020062105267678984507757660314105944585582696454463249450924416568221777643996728927523437653747176918333321498806525799066302497486757487031289144132429733360122592757332114005477244948590896145860545078124393341504769860223970863562016952574721335027849629835386930883995751862973259098571378271736799834666169404562754841804774165081615491949707600522936539391370188276829994642492805693880266388400645629377112737569112940773821545989710425662349747989767848237215259606239768363238226311175461417015637966901683497398115723728947981396786735765703313268903527269434240459179723630792589693638663227433172843547181955164790562676927634346495395006756452515284456578618613732072386852782482270021343873593138058669611548178812885717910301108471667673747141764080837728741190735785672984427869036776703743253165687859005212219692588600232192333726453455419654927907748032525945800229441000435272739467684336455420977919417644140362231764904165754307440298315364856382683767876260461177922452488762583316241645170784350175329809022390775519673159447596139914843074080083380852440327897648433972243274857334363858065963987399325373983541858137228447881401703872277580694244998794917153286054938288021545834470716968828844408654668725278972241654783619762578749036374052311589014289796562762522433718678580604973704396041102486806513318842581168121232753895089590082679072468838821735775974723916688540473406291562930919754913502691914098731514079866028843608330750229535488500161243457835565466495755720104939379388656378509843575319810851163894481655087215969532679383214698668078659211582073325263542843652401186278545640498204906480615675510746650186890142143523134034835915642601897734199658088598226462859586091503451942096699966630920288639376377216807797968648443180665407327636015340383772764049447254338590586943608656977519800860519259809696903042701978940895507700105993991625610184306941488946176986958102257730180054046609704906784434767803908889664364187099944496362284230290073176626872325625316564417497069666394316084273734265734375568561076984585846462777877681820945271087346108352729282362120625570749272331162012158030285635686861083108070188678191075550788748521624034365411000764593378024955487738190492850751213963322040014860447225514223788257312184648778451772989149750080247778884709472102965946492348419743428510809505179658378020127970820562371762421324901743066232909001037254786310293227288017213224872256948898159672470655966716635383718573807903675520125015382001532880479847760955478911377202939056120624656036043949344672941838500362393889697801564174340793080926432914653307242061556300673964659478596536307568835351140330218352939129173734726815706369046311371771734404637486900005261455226625332220960305277323011087714799034952743380703935286301988118376964771829570846627576307759856094112584634553901726203668950035252714224206546744356132241340803632405435486662534113047736264998077724191657506068057369116335405380594416271641564997606393086447289681457668444001543762977408142714487502904720700819125369845749610468309802404866069485890681020424209366606882105541300107439820374675527700958710573156848256322044190100737628820364757197688251869939130096306045052215720100680829247281944205554476876873693300865964413922263339721299157455569620610658468700445592724098749314580487121918749201981355466280611747655446355585648160522299803040439269834502115368015398018519734484883189690548173188209069718260022360258622833445168744534302995523333568293562419483934421426298580429501745909214320728896855802193326479558316310546478239127396977470406349262591433335036184471313000466899371206558833082770180180767515664578880108356232437434428756097965077989547082046481306343660436110671361105813338522100134240130780741103340052361248270934558069075918325567146434604694017833100670449668123241310039139960886974678586170289776466381263243432331377185777148430973271400248398736981623982802297379395669239587599527347792999984779093985525619034932495171168398358898225839893079197789874658927590359041836120060359761707480879638650253205486315326789991362557709555735825724450781885831349806979178609291792878474075899387616945240540844897935148520159150967388226794378624582101165263717255864672152591790099306351222529018583080151580703780571624649398321138868587316023891656947260894303479002325234463857232988882436514591346999182625556645944636290241236614320085165432727865141338183594885831954261374403122890567657352588419764117629180177259889368004216783408261311725868516179071822881304448511423628696617484494239782442016448788076643311902983269049591686351363658102000841625545347259558304539312750654366240762646567209046845923542318372691312223010893629311185900852047060177296402168865909955759961037549682882896213474144075257581770641674355111578506565161826416928249471362591868550938954120679377628318079587382875022632033992056629473202207811378466819298841384743170812946750005652790690034248499468490525775533178165754773855280771310635015933709781543215948124511104325614683940099038246331239081486011235036386959535899001486816297661596850294677928283982063417850173674582440519222921619695892337734196786573384681392228818430132947941273708284495974748615440346970033753986253976707077044063175237789603793571283677044888999282424292985161192754238666049843461418585313326159204336366096309565658977924328785408166137933904564780706995935847861078472952409129805824441521820905752326403924609658140050867358336668954438708616896967111959150250702853694596194758099375382528621136652650178407520992678802329634483949337524124699503805919199518992440276324056776908141409139143886616600651585056691447596353731037113102604377259565932387395845139428672068980947758703666666399446302900960417353223231545862206220939797064365246944367248345015009020734986730507522925326127039952878818982393707197721645340476297592858677084644899347689885284739694725193244495542154706406900858498249301677234890719480111987335379682176424131986020282279181963698206650556352320247929240050625787488133509942500408694013742293730384584866545166616377398622884171749605088166432506880236574471703517783408062565888510823779494909505505368021127139812277005296436062174685123536374309567439116706899455125543787959937024240002510394100089339244990321402945719873548160749861613196467029572302163251910811662369511139644212640376570778480203342479861663856437524011226626354762810049395826834214665438344953385228713083497593589222989979425700945748880320510431774582345907525776809003868209768418233319641526298037581348157566176000642310273381740540335333891671734066331556789264749232713177732876613267199288929594018685194937313237945731590348931052983675589795197341564986794904929218677317196711123059868777991558006155821222762171539271943370414452802954213770327392797406302125761786649879392606717435907774921575158014286396320396867290284433354458554062313567158224931342282275465437316113438640574993209969828770409545345949134391984303714647363882563351579309911803427061008974215224279615814069089070502355376591279538335807672183195707665830822095950044417076591964149958216885075219237754527501760619090644756171608426865763165432474943594853819363978744606420115207618992469577820026578495622229335951318197150449003579590564759963004388730442889493729379700330779410721982705937818506527669210079183346258619191807308149683592834647226379054509044722061244776872975133837946037280600948118623845136520486579667324256114099954998888387398343906173079379146800083766953266251200972030876446268430282857041063956070402917329287293731463302968343452628901661192714211268783697378292989434535552696186295627160539583301426246204184590972691317574924842703256214286879955674930301018436457968902127016871350275957140612613564185901213871885533411145647040991359577581464857154102257819528468277838188213907364335143182225016235959279868644776558085125411523046132794162587208565967050300267519513778346884459381504354123877156546502783693819430829558271426940989932422597373023837278441877606830477594645997249586022211673067751135784656687409470699920732430372888262674756462200706020943966310206575427204495944916908873694133686746966613996994834715206843892414639465203171482555389149662899804343070463997057614011438132299185681624891943656261721530122397970650521869662406552833099998099994859010481623139114808816556385124179757632958958786920722825485734492101106763470023222048485257481375523271146640703654298872598563204952205542111049590378090838489652813764601425141093504081715865184113748122308615873617115428005657932973166079772290617972227614162785398509175979141983998852705510634164285333690091979064444960744969718736277550146772938786856811417276024911934479253609205755648022056329630156089585883767692581875135817464647813012632141580104929632635171991574379441635847633309933203623208394046699898753576382610764416771421007463723660612553191995232378070278452321420151845601648167433249611263958368442798390756644778126966301278087214889766541915275813003725334033765075817537931891659239735690096601290138728469458301161078454947633952209810600073120063620665943078323429510229239830323087165924905390631033942514138705876222174013918487809618027160468345865351351487077234152989750378163174817304538080061216727942317686292081435578347941861078538290933263003280176880942870665485422988610441340716350190108048598962610515812872818091462914983209428836247663469575860909092640904704930560815755222797809958438706464609463766461447398465831648482487794958964613017597561532731287867332983993639141649014899767278772687278411882909509007766562971153630527466626022323136598205273512481957644927590482334677652102327824550130302105498863282862608283430896761946688955288547911378439684588749337437438561759921323721863511569540548041412380771344163862603707314349586221203739029058253821766677097692113322633420305736334824355616664200807727899014849793662727468728319493038005931439785876774530304552427919862517928297692948339961369769429046620157989767726998880289599399983196483729553930554633628433058875561287304593581448151405560291650607994392733275637581891486141031843212011785483188251000222452020762671415059554626803729697062545180177545187721115358922690012993258330015899531412107920906427919370631300996031244918850205986596268446550434445567345092603753719045488089990644636919032163384272540526266508753387102202105367986340044419665598590672302613699233797626645470269047394211223211696685692661804249624013413884951340637058851922377323206316519196903835927106735340483450508794798710733413585756038615988866668406883555483043705148332038577934251123468871240451186378665719054158061668509086585601846236267191484526942480167127062604458448412735406556229824094359845224408256547223448168843802151959889185338354880440534990497269737304825873195191734542806979302903407831651472562542620579794695188344004048372901902686013599207038904971701844750493275079440592405508224660077713646019042013778067085888142892407327325579471463566517102873556507139421669457538315487632999217186699426303327570020618303203728286095236827443033747848801343622073084269439786703762685317814074022985661521089858206894958207135534200875124533425884045647469332942257706157068638622103984351817360538503857840361259664421199396015548847338302114057893029096521449883260135351769018769604486136881415044122860125352584451551298301245614721831452514950836480245688261481961250345455485639300454009898817913259752974281665037099963833335863870771919370745282544996856473496712278658728880816419799806226137383644171768509250777554603313191421013408825747024736672481953561132706832287041658914232282809129389618177479950230514848566367889195455219194585488758466146110680190514522438036421116735246871033110093298000676449396008760022597714621144089054036841757009277226445601717072945848811253187047573534094145298158099219396301543739918305687545496801524807272593812683727448145983730633676953043219656259360281256463084847395003855543342885787504261701473743623731644805412547452680541853632067948155532457053291284816146679909560445737258386806794480444570315393088559549569139352723444220132496322700317888522051294876749966285034571105871635830137278975958173200926531272642165490291135057542413079421222518374883636799638482906076718543700802436863137985413355684685314731096492213941535804031053187624378165708011855877011187131395086462372619498499184416826709740330524415700914722191619909391855897106647265642641149006500302811044520080735422539516860007208414614525066616520519015546429883554434764549349918712513734700949306581290093834504312222427458687678837127010035240524091194115547482275727490823896371468179336297579021269752093819802106369189420951626691948184998062298049806245798160477160424231527920473644955062504710229053752774321535373549161349141346387293083926939213205278440704877684377689450565759710333797186769701262486442001752637228728906185569781652232432678823792846487900239775981133293289539012807918488105411955048599339558374364887372713278750833830923965542603047306507225925539444254101938539312174469455117844356117522090062315115354756463727042261563028777268274958575019037599727573131832761461509068926118570266792479541374090961117725104112257468832376411477141766606941764854358632395712358838130490580355425868852305723150895372520284506822798560102017148858358097930545825841115332837371570018463787279496607022255725867712832574453119097744844206236693495755998425405852491665325480165505301992263710911411836401690225052394582327985826810237312118122233385300663477521339460701541066653957378365757179077265610098219027554627166822375964179292105917628256861407080779497939336206273587281616936844477375517527292253227027763524854207927687367751823867187743137250297237419998581870273637447327523831523262274285919198024896295257143442749627444579551289611579376630864653046998279861917271843257252904147918499036425895402860671277964302264442211770889333809704835107091532739043599552298473131983544738834139645550357686165177826826533515955755054095131478847225809719567631669782784449641158726901986535244737398573878215251785748640224712879994213233466121186028578485330720950725384716387025446102581960252468771683799638280031395412677423365856780010085318641963518900348388704935456440308679412354097116366956062228979201709842955536675583452068917544544332530139471771033553865267461474579241015553018183186386993819990505725669588988916432273649137339788113564828967400737250890564566786334771967092879661819863370278826863972179823062023828364254257495911531922968983038130113182729586490645410395347098175548660097834929632761485276516520526813470146685285463771173803448469682035744372332763264687979804083443457663253161677823029599287285963788518902596711030285669812488791113106050069327947051449016993206401360621739593480413307166923286876623306193951641312125037956022587601862320887755011011740150023029873491877273527390141810981424703453807623259791960579141079267017374206352727859612277693328151557087642823558777636181157104951631203287676859575032604080348562581427485557185418673256872384827877052334391319892706575313655629337772963607136398841045724280327241853227607740039581757563151484494925865420142957388833751306766204997078201066112470258354288851576346487880427228024584013580115887347932879257160932114102301325908136128865203827227782387148635135660694696298305828307559797594567607197549374126643215087680366539949757558192551631197495742699358898716156257869244278505223315899906802845190046950172785688575946356230103158382697717613208975552368027141598091408026753482610903813066934077154727562734354653995528311560978209012867154353107335365812128014156663843366502853900741013470090940914760194853592061771807261037757107296666315313574353168095092486988297600999597654109085162214193668666422956601368084093701391488567999157585135830997617525149289809069331612410648317990425302653913985307088328085333487164411831760211569809411650387367663754739479775314798611568647363668162937397679847177095577868434350406560727417187417260189593528153598447582458117450077312792748451724330711285914158200026808701366027645677352913450115367218239759905616758183224654982562574013845271421166055472077723888001216207993834673090004406040179233633262500340583984497045727557257335881181478157602228158246922336795587194512928536555813402844853122659029244160283218359252916552614824521069785426316017506434146046471040719086145752633768119606240121625862371384865170384897292638221475748496777083443439671198760740171202819307680927877827904820894993835106489970182095360986923810674526265457387369389535999478998442575224964646296103059969524540003580889994391138175591732170692139334190483400835713715062775827080098601184258102852827926916671212807362839020956337960240425416649092251313740262583701313799635451567029573083120359812982909933404334731912767452830263680482542754217210045890556151932341505539871656044874465558647227551349860817686405200916241056937087739044031618201070632934234597794327823058186299007851149471632494799663804610590201403184749015077956677364633864501564969617352289492786389984574638268564906972900632844216030647051820448464811039919210716444799504460462837607005662385118621995747566453719179280176539073689784445817386755055098666477330881236342628326658760174949103257530324378869746392166463979883101826886742435348469684011380235307570694783846145218022215022858105646986386909319753022171637719503014857815425676758803998903231031940601727381171000526892302308213767082115785873262083897517609075055320445874431322484902239640401909970282747359007048863846444093405771660286194716727926808997765102446385890963441919323968438745497337114979409947107359373176361414633725661959350441112742807005521649705590241934677729911471184918002420270306689715982983389468815842565018262878563034754842185637537558974489858083511050957967757973227981245322217873840593509733940153481811289085391478985311952761696972063711762341261824249517586171443272484316409459006301357014113840148064443067374479431415617664774949533833590169502918287440701845746393940032873941037127921737824002482899819322336757842657434392182864722807449069619691750136077088360067928071461664621767335008680239134698752582761064256862689957158176067695154379952352991814447020447509573444529257790410125740976332209271182525912976597021710759022289628150101816205118517024751627611567643858306139515805473682066041184526094840901695034417248118505867934655344053135363666916267740855014763421378420845700749008886100306446214508665935169293649538509657554943492068329080443524853510975957798507706201399380367490322687208586472607227517006774125956349076474232496970872453637836601038030415483988138918274433944819534286168454516634977763500692140542916906171396548148299286667914369049434322412562436072625989068555730080680639620715744859532412994512039362360853798122893370685890215511427109386377897282123926177867594443531733120929809960909447759231322473659112649209121757077751385771699846657036669213796538357440273024905600341198697244556013711135503519403539064831455843515983975495270359257515840090229888499956474490579363072492994217922289564465263789032934826375854667122717618646145079029256453772912072540746309618314896735065656164368337465163316717349498515277078081321149817240913357830291212729757206198114211295609004413439320869615464545729972519297398428827694714911004842756868275009741672234199440468833472800586184590571971989783403221429151434018071690564673670499105227216810403657232995970995270486293074854693524334719479099202680246645632599289630208252890021570768224639733233000515545875652838272697554525334259232316127117468630380746538038708485371213649175664116946368178023076646611917817812091432230843647067447356502824571359470123864635355414618582788206855057549549438369632866056551864265102605568407477703447173933437123014406102497495567884289446625243284524182351677152450661847941136863608573056957545093016317994280551362208139333912973146200068531711890490267635272342606587932183725916705577917239404605465712016288981547865711647240290685761423312610889963718935398778668048631197980796501678326960051485119539707081523245688741974553854695135489435394843371955993274744054248482717883549371400971695148982066031219738897135158145629076616027986149493477546190240094844704355484671611266379958774836976814058172809804581350220484626957209163377985781477152086520227729021855454076037926640478049715346391204784901744987774415042619630358129489602791467124043928205452187002412361682633635539928981325583750057262130983800135805851940783565927225203260391688718013267082510353198776080489179418944350131241385039110774049387648377157449705436102683545959276444756542393823898923959492082320738549105409569554995961452260544519949041798082097305568353937386683493640525550463714742721807109621838548344314599917675312277537286993949373412086221037249050185478701203055779330924312746203739281294374887141366630159107987317645985181252867832287022015713570230596630264138108249546449885784278663238019495667658346801205210095773756840470917754064161433590917121953845914315555645154725424900615334386827681836957145925346946198775482345893817184692452400253214857247460554169086272833582789386951516402574901930959887345428863288718605248043730110257896826304703556520475503212580025550515575416881730178832502949965920808576624026149644596424570532143049882819700496342250018208428883577628220945909409267882306872390771723140242044169846213010966742943843225967816195271810943424367538298328089883357179242206119066274862328510773259313378732396477257064679460342176104439033308370528016836354492681642434617153912971888832670871362311261065043547397445162249347905687338421497258326819129740454805120313534809235027307831060116952512643160362372801979618461005722162767248183756748526473936555296892161082917905030518613207473296452101278146610638321871808707452681331210061021719907804497288504153574515292720492928473305537329739772139422389522147992906017194779975080321738026965276613104227183107259188621032918393530551671247731027528318017422952396948606574271939992176527799623865528327334539649024564597417244561869872756452910902625312574687734079981165142043753611724693102362325068111676306016727674548528689890676852194453553774232978491211877204226924972477823492713031547833459124160926038784451209024693257297904274236902695738395278973965194309060920698388624339553320738452610610835503362866352281911860540137577842476853924609866647404768834374084477855097678316208856628680741888930028587948532167341715425484865236865130104681851909765767616766096989995385363583213429920184380826205654799095367532752438148537195716222504729743438021089254800565668244704079054532993738516927626625589793365603633309410793589830229194934176715442233046741426447692218440728934531678861482555085914568111405353124308706173255132307233451398915654989280131126458835176781809362169069113922960141967335620958929269595319623824631490689563518843463312324198506710830668929479771094758939996181381945897217206782465548853234829576459756123807220547587118928492300497778206722601843986976694939289577257130062615709408189376307991832535324562751747941327509976939116118353366979257886392606439318588488623944742472200176305422681491774451208778414427093362827408987268052821975992943277318792767670211585776791190948263462213851759991613620792110761264870729437555019813941672533675465299617599425943350543709513724517923402237853618520351841051790309667473572840511192455020860090851023207826664099485075682785579497273575432836446414381833114329467812357181619195314473565101207560689710750879330893279552470942310833059660670769251063194665445072718388483115889744681542545837343705584132368510672398638148074331556598796880547939298832233809382724589554469017917730597010570051233620278380950358995955496680297503711962089046282421335859816864907496957290423660436688590026597555643315529629744759767886406916189809213335880253470806957751880970518288245572356332172793234857009148824138731584115709519133125084703508158527690875217131504089518109488874508630435463330989872250126178668661310271751742689274408627464514650096146389903807611455961551995784204746410190253795383195375925773238768864800475076055720413833521847245300249463434092511629172323647669574702103849281911430525136817544070754276704895054242451795619640734537157380176222930247560843772162856401632936313551381983797039107529474961199310540167573675179037486526441415597993776589431576975081374306337860924015893967927392001327912990520413410220053782831233840481541361304013550603873524775013396126743825175469310486318994874395744350244828753866390920788434890685638005210341840037327256223178566980559110919827914502636036635970439183047181729104699042516983492750771790044558096730779709206619531985111828474740207642804330941979288765365755642131920699512346216702437166818697645932974770104305577708082819775308747227325436962840899876699709157682076893161626703596939183081312728687835927054583842448336365450539836102394239167837483945928863756785906466145451528204064830199931841037046971012770601984504054799174085005639695088675032461547347933079450543230508386658937791139424393404078971518694879934113836822913635235916450721203184140630742664269990563981610214852613592468933200962345485582496202184649744057468281635111310322222481791092043171700198581152570168047299993029908962380938011638474666559744499168657088895571386905236676095346242292479387363762634725917689876236360841089755633525900623529042721554677410351507135529524845667684191221384563024500748258217408485638474543144609254590427058862191632869785309898257864039290733373889959255944062847417242289537177262933611763641034648732243070485011159897464578286641890599190037461131624508565312938749482038636547784209781300767518866267370275296975228522907904101901413129713681676755021173130043931204605945697144865961686013715106515311930002198728711283897725380641869123270932735746403340283728369536125909330206451197846660837529974698320834035505254427578233083039592610880430853903241994337765296363062628209703386679477055042926351503871928848717071237599066217198345459617472245430309387616071875031805663536753455882254937653120033850574838407920587123514383683325143544569740797722328287776683566749178531473893530037901381070574975222629763237881482530554426637494018216699677732963570606644037235106952730602809277122147387073314838334029223512771731726499871820521933906599007451787515290971856253615913540270660871227250732223921765623036082535099165096212719328123672673232644071944104928708027509345042163939364012543935932725104070599714892404582327695550828150120090759660620906026560837333000466593002007698396442721190954299001676767660299956473395015049009167780895064234721956268107463231996829662147604314843577985362703965199390702758704833784767025885901764067010005063605003934533257587134367774994604355169538035324125390958586079299416721608657623353560597992584462455950625438058131173580121620489885764600732818464874034281227194813149797818362389866120696162543203528725416550037755550933057580261800451194406609774297278496562750130696404283231434389306679657509542034699331389535364373758020079250723005904607836209110122864963500033750888802483538083793518579138347938675713113852885836708869480549575787604476623437490194096097118049319124759691259308320372694860351054871988282186148504151817574340078300934582477512270422186228204511924836140661989081394540579074714407935682767150172984855538981929764984723859741797864423599001171234489064856436108602963243279613684455590065483993640902202791993054219266634089557732587549444984270456949284007680494356237146673528724600210046779800726129646393101810440060233724221239610828807655202882669538421611120951079666189154057885044616842839681284619691006676622154445466866901013858622775279970305375596742223634523172589833862131354629201291908935746701879032492919498956080755680599093524138024071246046519258769329530567000622045893995824559808605990313519422585965090773900287826718697742368100126855170648513716800006659810958275710657569532808438537863236701110252770487682238491479970356912055600601433251344238945147118617712362979147539230849843100303712979490206548331482129752451642089135713072556838604757078765305575469432529712091859780636076025094893116522351225331472175630474363139323757665171726133663550092090759099079070109001248936589292097769816714944836027541845763027223307055563493005956278179055550060323187950044699913290627679977706832890368704660063344974269943102954232465657966646245221824011494046506918595892792344839924460952560659455372067588080908714565502191301991494269586044876010446758104125057959435109668639989358223407329476472061745880466009828671721704055813440797887182014281324148106039369106600144126170527765645802749993766058108221812026370242877105467322570230001202622907042137185335623812100023629442504839258137027337373057981935578010118038367479299794343191056584452908899873072946693165471876310166124146630957061475749424400788312768781828787495146723619094973728519589348491172163831942482683808969992802922432681919739144131028785364800956151286535551548032941612330377495121863103128630333238385845035526076544448050800781752544475577186912519470675610952559522162415398669212520451147578591014794468341769069278084454682465649084237120798517749983424877132306436023503735174061090011768556252645960066635103151147655359811116246426201451115882459881538590993895198399866815001544497222039867244400847585273749709453253371906517589715550187874601503353233671247594113290891302103729762290967919750106252144478097948111212816748336786418012438377596997381059712098079831755072841182193323025920456271019696420687312283060457439052547079846339685241286251732367442279337505177251010930439527636140554890968170580894664998193599401248573903117334568304911217805912463317847060022247736506026018319244306732932373677666618830416751780286138864652155045248777963869855754856122070453168970057367293748546435175459584254211013640863958078410676158432969929297522340247805966504758032429384036290056543992728232170473265136255152772482152132828574636052919140981548572047220614402932873692409941712052263201100432181426224057565316820362040924109005737528463449964169295132040619081786003817742082047116730348659858444507658115919880032833076803030726843051989830657620778732666168360403418327139601229142536659935714751545544260244380384436787138502033068835175823234907895791943785690468719908923659485251816890508100943224362286682044325149445570309985905362019529476342739721854940618600238867995069413774960601380182961187973250707878184739615847224645144391557883436841284221872905401286069962356487155761849420958895983376028690101422806586787042089806046372218087234781991000667234444186996285406327503778732414354849693733811366086840608357350806262598552584162520381563699431358089668176205535639546739992534066331883548996028149839527231664981495994371076926777693174044092893140391794163525415771351656870415682026451058640366300201022907114510463548303893882039047133163102843526950285178361126575830245197013430585425792218892137042408145846136014500940423138972658594676311100530800167003056179166190012545989263112620941951668451001202962483248316593565023486422816138865988089254448104497080067914236766204882092105222594341228534989846682505529007001936987681295822372698584822719379560729435984524936224968544071984897668191983701854065937988713941456308289715484097171174573012217510767115574548340901314477874874187102606019057210195576716146742026908242635121293998901359342319323999212029674868650957368144017684890523423266586293136650930094022399394743652222329898473469370370160351448636123584841091688524509591620702552037344587141003902129365342391226895638301676378117588769054759441069770515544543806392337716616375478009149445831780187715587440957139080789008415280753586251271375593911324376866729212838636891750424166475144842482942869738348451479704326990266747675512271387014482171887277100418381230578088053081538911050986303929745988809251641035862329507321773737070152294881234062952253568105010049969017205563610022077843074415036646179192915561161354201411006274533289221215663095513266426517679603378379357042990548236723362824138009546478396920458444680081733566835954287222195605653435812021030392266268752419602006059594691433916886807565604177254069481041119003566713333689199325076954563432686819917685848353703045099394812179811125171733580287558043314983801978167729545090878629652165261665296948051166632142348950395248957793085462080426401555580043861141642204685204015416334940630439178958363177061510968084800185406308225306678091090607151756922464066330521798591132261649333404176494972287593901432625848726716936312272941314495886422894789135120822657522969401177868307591526814614312678046795711531867704157831113282431778834472266903610786873764843230131726115287553585767168459667315926596526275958428011346272886892382141129179379478220237523686335087605838732330241573672260325569945679377034035196787079857654697404969352188161931307743992036465999884201501077569006919347555441604216308240752127079090313359494567359411577111889650549739757498841288770520244025948313217629092365797626884313486307015510233751686559549397400002504400396288703188153723143727106704238897799313391133942090889858852227400948868272062107217769183304835415131227537014772239431227818067100972460526380062431791997592183287491630652724125923755747923017934521713562136619984256081811583089698438456497492241482337853080603715016767212149957987703438878476080728415456108806922493532703441873862049743204969826074030603549864890373924035304707551932748514540981112086238747233658233411967570313144834797841296494893875713452598189616441369312844000147125148192575969167960875178892707915159489463639877650801841715119296163823072873163222431903233764599180710818401391816673766633851953484088774675465288294288851024948859744295518968345639983919215537162408828149964201148514373368762696358503314323174959025833672311347781990392411436038814904615640950161965361461129624623243482405806912142710316134781822473866075978923168855600505653800729848972356622602863407347188910225324963040717664938011482075653332834787704826899662128351814803259718024334346647801535528346900661451530044692531443545568669668704276566303919069872960732169823130971684047167485322641146370046339015877907015742648377273737778830109771523738645090897004947214328621646864153237304853204687811351836134270868333239058759846914462504805878003059873587130970257367083437660738802757908129446517488112197259300208476478792705116758710654271513296552733869419126942874983309044056744363814623352175726128637517486889220943112315262583339215067674594508224461262884345304809243561875716098536100636325731332281177314351818683307829683348366699834779106931397583233869094053832296887671923355718913278505841744377974854578341155353986815723788601208462809216315272209046394752060180602512002138300288631109120512642205784946031607309641349819778925508809114925017135078238968003058065826467532100486420512621269112708588982488250811183205643282064680776079780249486496374443818249134432016364581935341634014108276041750548736056977258682772032193226871935515574129822644423204310100744190249717593034223519746101818468479784301118582159532211003330221650027828914735068938642607250794699738898673208727943212017520987642037047195588480438107096347395348950537010035501809659558362409515063538688714683922494860439717558646745806513836756727497442966688832586320523607446634175216598364390738840235341655795908130753066612023951854768237933730662206834831598600441488440456081198260510716669330279011169743845884602304658139458050990798626522865666834991508773580151123500238084079298271378537400453866608719402035064063835195858581160088540002229932082738219923808165342919731298822496216888949207537682090485539608073079042535802018250128134857512097516248545632238613186563487306915982245002250090392135665512431731299124564075160657231249202449982656330394662022198697345100076207229627894408739187717582707251366880321832205026250883678823841980971442874943761538226050701197556237419403660079218973076456829982297583552880269595358114836930559796349965511925801209005460963809630709760048055847003292177089547441296288163814928731519683281724817707211054085053300390128029263386846730158109572615601069154102813347350163985150792130987264803262585471675126293164443147195092706525653226066173680518495210708684942985184327199816470707887359169827342127331090471078503940414922973670280687268515149737330660039546213835734991200914879454134534892698602541080666701867819285891971187560899853851854388571459400497968105755630669959410445439462197966598184592365124885288893472562564565186575961364755563234335965880217507604687885153590396053686587682071614960637944911760738032762690806461565160798642719372740862092205096351275246170218997138663547562920920548523057002047829637489795215018801807654887320858847783099606829817309489543036335961461753350981536932365378816265007791148508901718291587583816828427081800052831833938914556340067512292392967269362749177884409537101085538283880962750952023191202057065385165302118206414850860311709417714726824447358709679411671722329294313913012165952143395580625192478377791864435655593701817503274475615534208644012719673718420712667906102074992417235577446100099138229177470721861010700338051866225683215473412705993510817524347837598659945983407524097187964416975526318085904525268376058820691499414314739356191500860555339553417481358664734076965116053341831211545910159947338259273889227245115108668466409592753542113479879665437235802844246345002624248886902056806521492668682519986093525884873417133754153395317062343063170803915270368370874462339154080302859530605059965524335714686131304753377295266371401965226670985504004430506329744134603792128982620021711645683898888997092905762854910588673950632064325230102227586445754077230011827757068222540387174907218024065874475223898331682724236301612323875260889351955261356212892085255685418648856961351386605288166119275798695648906518490939112410757884697874603077582651708667078743649876224766657229869792766690636637969449278135644977859298342516880179071096328185481219063114996032608450581836234839743878616704517619421488061584893508825902004158043253882311190187679243570664846879538816695625848219211928275325373243139196262976993073347169887042659581802904008047280547594001459630521914563599519839554487030481564640494299153383790249176306196418860710120574391899192033437307326894641609369640257214585454051145905788618150975439163066219502446176407295775012869932085245881735814845100183299224548426203115170692131192884373736878321867283497083705591182770444891562920751744318340459812620788615825350436474409381608443744142773775763778253049952884303593033216376223132789896549157264312553416907621067232038181341840779774426910665314883370721292646112226889295703481157534069841473954385638893698927557283226155078603622800834870089201695728256759744191761121740008167132243850352213786977866448111388445714676479387452400287322198974937298083131443628866371052604993669000421523035288739539955118784613133252260210919160608413720133773191029983061797492368243124506440712084317712691144084724388516769606181542768181453266039976524734408973233603046352174771171465799811219762144121359071391151467492864663990017022676820752858387149217220262061633440365976945669727113574581538967219681469260405892348043387100735178872776139846388793133530591653489261022096591149701158200310921700984020995562061455658423366947063927478832357966066419104806765256622618928921726706824387481730855432212805914593367374214036082232114478870895495141026152611803672905155505318972375130057800568714381904016326215420580174155396407667636766889876159768368851446393739314663194876483710085303067248638714490950624283642442401961837306190398859090858686852005264896234216146961373748855559176856501632341080454575029582593999100204052200615725856148087768197908100994700418858715816802595215734613390262796524829087839567924832980770143135437359105948910849844472680219318935272112155246148727975658984472074394878470917723652236767134756271712426112955508523762030119074214066838285884402806051814863202194236752827424105357743502594854629027272742106503704962327409095955289283683992105301342369956750336645138679699225349073895466607982833002487149828197968021733215113397006007300878244364349056349337304796112790138363681874637210011190291509602938669326962764758951871351049929851962989000630514145794386794629899565327090477961781196327097539129621196859434272636552758566658979447988653997410249851996399157685384129126230982325624363064159727831612450613253004684582406328403195703870447561034352619983101824884891609987033326872846481244265274741071799812118908433374424284382985117493065978474195291101554044525494261172822589549090275425502141878706296979046793567751803844465486680065008547465076187648667410726517294190728669038994988605103234439233598257434759871991627624561338473396276062495085050127086111461180016014861370873966092311466040942688978349146557421365199555473784595875799518280309707691304082021132904639942258830526064317167221922453251094387950886665669157926564069472698540466122657163605046348863823890696718465421135496934805006915445018280207744471406525044365952183610598172254729298608281173972880035480612205547393415582008643685034666209688704138467091698951179730043490164746772629980075430863178087010410682520341739871194071102446838081333557866612135544415882385088693432873690888632028646654390849435767033740361802355163024723915208214093122245242421967788358988986460219044920153929960710731272798704229350181475984640320705900254795693119564689659348324906009425184719071015346513192728175119162057952071739735156356156413553106147902181045583583718497810764066944260537153978040899555508176628776379598214401664893806690817405646304794933000019860530648062809551463658849841567997036567848211486847331985310980231664064459589636287265916382828251170315685174622004795912949645833360072827298147942646484511425113353205465374201763689112609228357267118551875252881516735841769775351907148119373559165067406982738183421576491555227376764912281088907442242752934749841362483469697373240273000347817923583636346359059397668120907180444275850869843203479881626305221057935277125308139888862296794706965923448045181469195079213896141913333941048792016792633413627742746206653024085663197435250538287737117298445106860803718410919934380247617129970782538689970420641304018796732091788627881183492551934573985554684821213056334443756294642191469872287115507924298753766167488907353163960249715464583887156014331199537162214918361714055255102502320042360620833009966184642417057366264958985799494231650000905902827985126038044401834997879386648753318918413522546217560633053295062514286793225831866829904794353620856102660537361443936723241104262926696296850297467741463721975942862595663907307643943150532929648067199912554339758372073189152335209419088013771188667481511015922494919284044290068227477825202532041887181148975237729892274070829046217793337347583930474126544018281185172674677274512982447393809234729287992838891004305286575523978005840116830496767789559909300595948687614124481394730508154637128431103720959978650427355137764253648771944829220957744176213376387300535218475138578145143047848384005800178610469781186747607797391924640086480484082195326569433367652777831279730769987935204606362790648796683191189420183102408338177334232469208227152852002267196955266908058670601416055946796546531522529182299404488166116347755335689055524538713052331359534744668104851857638343180309021422027250617171693140924410590933909052574606147356586589884014434598331492129418104499428004600513309795270174709033942413004122801796335085352869577670404794163669478992338548621742319497204658533948294107069400822068877591988302182028063691332396341213783405542730479308314136156062375697937773564105892904537231463262820789952688361956090771903651686861710004273702209814300103053738763970105524017708319404129782698492773252380281174324083394070848728072164214404358272588066157399545763488165531726855073862033152431388012100429665056577530854313021000597779586075467208657847972757221940113484566074848304696789001620354820159997379484237872743188996849681819017648792349588716526699544893059860088622754493059655417330433223423754998814854748766624762425186904149634150632116694127372172612429893739431945631738875027639177684559629689891066380540639186571143366240468419048166564016780609431893337001444099796824876935677474249520207096061372876461605580627675555004188530221710537017083948423485828732083826141636381628217611146009675229759252955397946410084269195958526695875020294921025665402906364401109585335896026203415612071791474702678978662520012713859684148769174950194135999478033570479937819072559497911159547226733119856141681444841460522410863748531374178916481886602631158414577797339896514751773717032879489623535536696224777673273770847885943418003080852558564027817084874969752469726805813960432526959451398402074684776563392288964927185093190552554013795010014610031382138074035192925703096201541686681596665112975040127208978851414997224654727117503872168969789025589420874729687944986850531124046871082435733276026377395911654867188047068144213100791422730399611612580447097358137811959362829869367228579391994120156815169244897213328042802819962728026037663891800770198375414633934533236015623353725138914237673485207705892723696153921799816566366558576290228036216629668757067532297392056365536910397699556413744635825983544771328941892113701549464512199282001186451140629068364028023567364807766957727357488228403495657440865953991200763960144686276509139177280399270028847069540548131251119704295232917136692798237498378792206502981700582353701451180869641245698822281440669782275013952025662915634114262971860580097042677268404476750053111050214824006463747125333934926167583901059469281034226256888633917676996901491551698471440986639589603117751558848908665700415616132739145289237873934491391485068444172157963353723351600404631856592875951130095073260871964166321240675681085718103205510979229720097633811047523960052348294966334551949890481410428237359437620193523392368905568803821487406544684016921153135422821580457692872541610191219010679534765477045556604221724437804385793428105701887745548232088504085354442729385743351082614086177858611856865447073157453237501089902380261019138846538532719433057436578108264546489178034512764634719423864755081239087013052238762293101253390527830668058945936541812734130998801249330275456814755232555360286959232199622009144569885977487765820374215614920092245750681615473535209652020357511173038328443560137538143899430652919994716929156405481431775007379158584027889945676762516032337433980513339704255625338112585376359007383820285028785824687198159070332099402554740279213603201063107231588686283863194982635819602154517155757975735710832611047099112477415181461786780790747619716685556488250720844236151543984497303098554595526676062755749638799198533076756263343000184386548026415882199381583754867202881916305270061872022933150961685873264140407023914471792990962264830843083329521226969451746993473817634200626962886167057998809056051040333466524085786846558349975255159318508517256216993911510541595416549691185963137468274616030653968119280043135405318863534271529133863137480260967648955260091939118672663578086312430125155158442495120747192689634745668466402466549620967127353395848824872139581801684945580707833438702940311668092148384532613867006129509364837472588549067746608393455521330119876038539283482546128647928620754023284751468553522788945206352955968946559592698262338941444761124803702161435459937127718050154308331275202506740574285886880497716193920485209635055388926908590988887855127127514949176100882925468857244937238950229956277242142663995777119557924858026312117759727306524594456076765305153405530936514733563491487316723945488209662682282503051947714997257661399673178882446433174900029161535049856695248155377613484504231531105959161405032007949275832278980361488166137915477238933425521704461262951425934306615378401901048740170401442636217747857806562445061534593147187984790453799477700238524097859462049589325861981834316806969036220398677156574587909765595730180682300780961922017422966860127331485624411349013256611102864591847497276320613711626204674349077925282558501149264045500611969462990357909169846105128750168638143567355890528085546720741772847585819018884950902353649724514566214431696264360053230505998007412863962205950871626606452993777337754425280683449413006416970412001877576842612354042920747056528824999034143436872227890817286877840150227452066815816440121683322355377934617610772466740395471907448650008192607501119558489128859937162827351479629948781805051109829723804400810462635992600767358747447926501468013987966825073510634818459573862571898994417092620529678051553993510828076703839293490089569112894317368707874105562100796649805260429228129750698956466819655705294574897055178789303256806128095275791116436776311162420133441788556592461839093953987664902034806579200452005406470917057275742960377370675796278770846109414598630325273006502850501983855967829038714674763083638920526579327542801632121230655710572864192281603291228951266112612180758036663207184551640531637652493160162945109790176964325006246824428553740138750077240629573823704917405519646564562964863818736348192840780087775898729922130833704741645526562225655263862279096455321662245039584101211894051685588359983927924803207793354743083090069795834768893862875215845954806630076693829560345507691005789947351117775967029896884983949617327930355278685383487563968722647161621250702200977117073356640757850876039823986428560446912821379938125667837257567681099407803154512459838176187426994144780193762190788624732594038553396113468131557507096627258524683842173689822135276769113518969472092506948422276158221918150337341404589120451504372134995794272801267434697059791606474944096730864166613836498953514104637462909149061642133681003831221602941076299977491179168151869373792398668261051930267410448475802088482305093691051244238507451155953213143240630203128562034666346715343841532940414061783585389259869111362627327694451960868885864510692370440216623462369140242424924493422625360373215380439957747385568808368428398631081179704518777316892069351050624050432625972074136020216497540371541355497875964837259059931005316382317607991000687926639220375323973035738457175535191072637593928888387986811188752115843074047359792556572768761608934161253965272036925689433032748000867957821488622145661800446898364386236077433599029678364335678119371278129025055241036742715617712540221503072469449961150970581598420176854715630883399877576665089767582795523924896195491743001393422749090832814610122277829436027472810806443320093009113907072130118407903059394723470975704522772432371455790952473461407938165207138713880005561224947403176088006330575777783964638197190020276578092232621229350822176899095560160525018000554158631527396498870730093104790935234461342522603571552360350469338550287246158034054420315240289836782303138935258889427044608732832313736659635384562450931756504745043584519157399750528136639564936837761195336655642375360003106633122878768379560112119113417467515715216879654686843725339873038313018075046966921495111870152441546087699965901459452142881974991176568225868877414996277824679116124687259793883396854707832290199335462978111502147648159830295049633428475023439932018058172799522300536727338016550915875322830475962708265749878600522305092898012008549650050584203316487868539280365112706545495368145339202530247797249427311416293208172496414973570543230699201362524392704925292725122925062765135357881458347882363347049743006827468802316373415945998500988099464072638836586667897609699721571051873648153114614264697455552107187956776549398605828949236522554119847629579412830297852503205752705150637349993790416681946812500157683773809456718106521789787456982762714281589023974414373444459461415663299539308346582438583175298024960680711540652337921553205839709584015445298365309451351022671345183872737618940515768151517387803267523582926903461615293622723856415657887042348463003872926918300101535702927192482042310271273217082125971600621091314968561302182919070026186894440057845331231965539157605302968321897097927041985102102310348827959458163961175544074131856219131414002196275762195514392298547689902235480395786047833333555800848450284697268148690380927248482433591886301809547800378057141075459390740267016907991489138261898934018974753936675694622099131031421904609099680427217656333425662442043256547937271304494566443538474780118805741642818590112289013579348569904362181098211009024881521929278571188169535919565501341884879926363468180586372036363670545873482499006293789051178577628064295912837076211868885488000217619140019529301864473398391732492593287654169980241013517697570312766341992753040481077473180668775930893282206348275051207652006315107469102951840794334472882370071098337228163504483760454682905043983431837437440853366972723047165358690495896260065391241988044749851948174986867438845637857796077602014573422942473895137760713194307277875351292228593340773380977870183606678467889504609646938847601270364523492274289120522069409996083657701187719656832552871240651836374968399482537041000922309455502845199192977538437456341181843328297845067837160628035445727622779354138997775861917482860347325867895461719516260818567098572860957101379676460007764204069172080649775552062459679458562352711735890779065147322309547537297366729073039976611905300177805285530713301775845353297707720954500458229597478414219858734448531385340410349731797171447584757185469326281400102418955809911127669863351395181523462351513953857134755057400299956491772984669054515210301857234658246305690267233285382498414873827684109877502899201521782346261449277761268792994282260526153031415361042690244752093286539946891404455837809651387980964650671451128507611020219246292274994502608419273429269815399097099140405980829572276630245757924386053095991263320388355315180890358002528085277439411291408696325350602507314633812454464091740579202963923709303696239838950268888815976030809189862449393424031522490197063245064251249249304399502302637443639681192971660770207866636071577917490180838925757314422097698034766119821730215497562085862744666647728356553778458792494901218727866377827602018978247355781348776002658762789957542199148181308463879426859178220070106587464851840392524765317236431188857464570224084710875649123877357703857390651078283003153667345902389783207489733958631648017123719161819343274825200854332383615096570435913612246434466371856546174358528950430064986674968707725568432125366419251929028115225859086292220336165211329791596392280259177773846637456482026109528596080026097138915764139776553110823388783286357651889168771400633472791023862863083831083285164423880269234175892072763493197589234143201108454759717188125089088603069265616331648698659057802891625694367760154478582310305346032644321225280190846692580963688499851522267760437829973520852112187470043154063526316173625212728411798597097396415513631561848971155677907732151252873287600978119099687686917064821659475203456382304815507128496773491418034422216167826109616613362833380184393830018661592599281510714176231898324297287438845949164810611970553138649748700913065064365666730394156931904588029768948851845162179797790817744620098064823727069919768538604043194422408487957181801883923445506857745384524112470345972406350666169611158290921229581632054148324959670806075950121225285441945838134247382030904777019631831469116909242289392523763719937909242887260313372371029914237503263938966256409621137497559557979550063954453533263612303527705583565050206871450443156128843188717074060993551812359799835450378934209512200601468489979298473126241717006675900944378084673082029434353214507091575225358732308678414255281902238984828115998172948294568297053715738579774723142445779014396726516812708412990818732548004008715594298001528180840788091279410073642501572613405970535486703139327757357186247513642852449480244954050456543661938683142445497997920392321333302905098327263174803863134024919238793408919188789030784709340750526286457248559759722637263946666720457926556227155666959219835153659754850498186506690893813478389733032511468537234208335559406410872584263988035396166077227316179264137380878811024552968465535228892715947428970134059891358067530271580517726820564721954499459516741908974400731642368243781968640003538767722479825838175460708045851596838454032051602729881209847097553257469314049111168461462876041824971556819397495803787071434594921564867085756775656597751332869684651846156055382505815343237945141365059975407762918686993127664627101068005952410628284887306964919225313994912469952882102774840084724410066825514700799321027495458080924976026696016776486245099447526105808398983910534581592428665758021364840386649377322786623223597971463348794633060526453823918953007761372044582764133476889587463687526203207100665174209719243534073288647489341126644921731503013821332875379073257520359727026264916843438178538304865292706151444164305517473176448368379610507587817978543616181827805961357125249106366503573703800577323699022959681433615492218784329017044935491887080476879424990883393372511647529817883793259271463454946583862708856142557184272566231526895888054712840953949452942567010679619428564630275930949259456183057893822172270400114101873837933952900556406322949730444333734900931852439931051636171017022467388035686558117004828859461915851400352687955500806929555403602318442975312308056799983972208890236285921474739676027408933760380624624157288888295815588955856928349562019613532623199709750521659380656461818876241642479092416593948681313684715922659187969472350549298113215338115711223874213349390321585883924750163825517606183598249946103323859359651797281881941769095745742712717844161347330323139810463250153403982040274017207229372014901782944681352294942764094008967498309936588157827557842924526833268927535745610764926357175396168799409869911870608626836723472821332433675774770316820345125592861183513744353471736636628969522001349067095802680989131546110329738845433039780857935279126528507256554480080958737714815709870086759294886402477951392440142896393148206731608867968334475292320889197232908258941873945447104212733726397767469179619610631780543309397854421600432417329056801208699186413840488696338938636762213078109539443831181623889714386958550927641504915129922927920925828902718763829252711941658514355984524153611792843360707623886699002209964407743690122879030232588595210636948774732837779601927962396515077122651017942091163605571637274255753698961342018568394308759630655863156910212650924354990527420135965903089038052006588946892012660668879791874502520299608113395035182484513408116332190082401641602408379359939101867266501667568667380067032313493170535395193302296170819549797352227410998552276312780973283750749588958898618256891035063315782962986028924699848211585278684184325545610951216565949405394291709519503645281444644072608966682546217994536909729150389020442745554449446186024258255730013581306949479291108051509572985344029797759309340104036726210095119630241774421642104775059694579380549366564521071198343690747533718082222756478173548358012704812467216612256031975393010771088109381711658296990987613700583787076368429843112098642985975838678123100448591670514368352661207326502469429498453818638695110191006042798981544785327960456701747543263556132544459111540309191731180813889311389086115937033967484658083433488872663010065989349955779792313541673932648515159898562355539984380016043271168104271077755064386485872037039440449498591111749606377682555860693881586280112914263876999304988113815349920579374462589229764244716217060656178002393742088855773662477520134895248679280129921269013756149267636184478584131063616481817559275101220760063708055361249229087002925517708800068707106249196494148236372086210499692604435711248775168285519455123291414962088583610461659455211440203589586340122071401652187874017766831786344728105778838032788747659975538316953839789628256417790177729998535015666378290124652998554753115858770719240665349234940086745759851174264628941407235978495364249074796125571431700038643580487210003329516417276171372239300975258837765447196135327623448483759548051121501565796400346139573761992654571790873124378934955701543691724397617151931856920835451990980628898902546726338838595371452884678750273283553461009243493210658125919141182954384097384057204824371297912138411318861884935856076179136669809950786626546874636719611457702168307661004082165330242942554545789373033978719960065381303742873498754495019587146060847869595541297485531067433846217876038830886453930850954395019843137704675128636279281896199342408996787653851053414565481303507276687992267473650810419048903903967859586215632552482836064157166575729631594986725749365230954705644957172026526590196090927664042424131721649826001705967182554669010133035825597323875309724586368020503151157107572677238475301042619102841878373892935216325869166604444911189414644790926003330525523842320857335526759869898497269836287842396099418133413714239227748704130726312448155587478992034346927833568835596642299014634844025387858465352334554065187218660522363893699128979639141607222313858409251036848621925992944771649848471121145777159221118493425942696258310119179915991830053439317110003118340034731159172484661136192024022025350251175474157785513442059278515832281260948551853500009036852224090209230827567204341275508216530099367005481132956188149035248680287509968587979892644768740042254227121501473190467717449930653777348640018320380623984099066233368509802957248080959206137487507721158186834145341092188567495130105509981640763205539115730977423089165644878777894441272187007421899802313459144951804807186602089407048281030429295882927940667094964151936606273531566829366112988910815641842075359762148975818789805401880550960399766979411852103640600154070912490215785049891097632386638703570695346377202409087746263909517317470279019274588652792499783946322085261409395688896754870901338547403032155515496428907079761213441420160292543403456451553113690800282307265611961704453175526998433184207713637824273706214760157257476531365480485928075477878005107598377616942845308823234194598141385117668416392599397715926630053335361160880869114155136570817735154666034366647929713204267806212915422494505934827761791006369858479755619660136720492333047176415540237225232051606243326317608238436843047459922620596333510796020770542702048960343148888190185648978907426569629264124177699868267616684978229413292942009406746959661641181870428851405242970671688334418915053397785503330528414216437006424529196852624821582904402211047485027758092447531873637425088973424358851677672503696648872585813016554367213586373605978444692611984892720157193997089861711212111220328036839824489628030326150445007515666327309048225595582280503663302985335984789969927060614150337811273561025037817966931196562649626815524415952896015019132723765890616697546119947465957183914386011539784516958923268366231137657506817654175244475176242810600368750243799255974981125450142576892779691466630727701842859010493167757375293600532275939150989908977520223941541871059651181969063640888279327799591341130549489593321672538857086431528234829236908707420503638543266466982870220275427458568844387482361070055805471946817272865685398155189783275895862254224930556157054788744144246404661882558401824319062812785889812496290210370321610185047451535882550118518502982445554071806316800319431501212056129221423609281034360189533898526013824535857692131399469675300775654902148250457762339202072330831082516837763564211618650646763377149941667781399714209966146653720822958759106415560346127605123904547380117511332628516621703821200598656933915021733316851175142590650832532749703478336542513429921476348276634900956682623869720144575471123807677650689486926918667508063724267764946115001517040478731543262779529002852724633951180376503599274328005932739674577278366965815884162297245669061672785355287346417598295829139972429267633606477600877905085369882344779215726024195989297880893554489070518660118311413648474308058851426609416843249048110245383557648255019447062490399217971531084894687409610281624549765432848865284414692829486178417549365214546004033953677546899673058724878760978970285755638521512560085402061255121025975070280946368598121385908660305573647101790878062297357249501937828970761795651421988332951051787337573163954594455441955039775889550183420327615799932984905651379034766867094615471859720091710240597545744854378972442334109032700746642994346812658722088284749191213363718611530471129423962712504441521134579158868656536195317910099430172586131352810782167730933581982800825533306346180830700196371745978182533052501084998396746124362626464742189300556246136307814599337970879783646587285099295243398289034836942059834699237738098361002258779568523099483700067122899847045826988640512628624641159996838400728596667636450284607661183963456373634203010334430127140748860911358333359782559424919225127147752390316511973626190657317681552704090849557197484859081581716948625210208849176931557549365277236903901368677122852018823053963311320850671751061424943860618947266797416376312610643902717758396933069738610786160968575621990084688373926823469076491116853556230148416153165787285419058910965688353565745384467916916204864769553393875801819093043144322287598707383695206912241676808315595151652952199920339848537604325610179247688460632904313881082811178371993727437967808513167510190427919271697008105858696503827701767665884619969510678423990432855313793762679723435272089236858215321612122000387346605932786893778595253503839634353788071676052046672470119939568206905765380132377468142038071916812365785540181291690129393800770126666858926782194238396522657654178598578271623761078085509663257881034808280441019595241164314185316292882712214516861654486023734300617888700893609965212121740205361778524048160490217037586636992512146176558406298473234112358647338973285396497026018961338796152557587559114183569391900252105177330735590561769684232705147145255686618440086969358096037327172027177330588285946002130326853731450553124564602224902503100676564975926998617135218945778710197657089050771570288276906628435318086788926091923689912741348210480591127260839193536436243477760539228300434186059758258615454281412700357823486185434728360272943559229023572303504262367720648605862336583793045802371826318312396096233842603429766987324462050059949533080431349054251746788600641107427482834105584422668511925354177817478749635835204562943146708099922846731274194426231941685262176851166281297125606684584983204390346332199519858225527947544648914455310542127215711330626273234595120182937056713557504749944310506609147150981572067134614824135080855955674810607307672402939359885650492188340051443695944520015956629498558279753590860648203408196108222752031832383195375734788163142168082842003063313919855733087500892896751542909467093169171541272813025700522890841015627949166388511062836320753013047396012020649134159149692537891071150792113038672866948227237964458270530072246614346296732460116662713097858469082818609318538118125685609821203968033174336694544573521165562347874755092714889612048454264017220755924567689106999612324865877276047924927044334729138413478857943426901249562278425329660497849510467029265989027165594172732339261760581243672760026355984831647351962652470459248185328680965478411755571241371110056096394506178252452581828179773738808279567203848404833284697268884057829695126736272643742423028027127197856150296302238280057590316472704943089442042221642139603254690308788012056626124786165427047109792193541780699907129015936978089276213179495029857152766846923402135387201756506001290665418399325029790791525177397558866038686488201876670137885843337505714626034721794795097782549024030482946145865133700107535334788287558571650701398374593828110525821559746267923154599439453550861449815553485562854059901580959532849312365325665155024270071101814755800228161715297543059199373547598922853498904939919923427983427370072846617181095619175646420663439140220185746153424999980888037053955218844965129754774939728509866451605785136837990338463979169981312211864441063513888964739525807239034523380139521425537639768194369774346260027854216678297198756339461060084360702293535346783617083144519138666318053360278538807597129341831481391441230480820408593998351840130168352662299626790403512075506844867972055819985338918754603234605910453665016926787911666524913484737008594402350201291032072060788636995883975960885708522094574252161869893421943257693203106389384836060729807772116551527100604308089028099829737478734371513070840866617770780515576896278485549927827181820720847098559689357848612190403356767127154919594788785528432672272337052320109216842937415352194695279359428478069136184437023354133943313003489274720958045500801098475461790834501543089890507383134269216753792347502657378944562804504645127710192371001302930486838925661656369801689053849652118865155103665004269449311764616903276004837648380359246517277244045891810701074874085171262200354637704224867378042131709857608260050655607889858227918325232910509440251920580242300082157782909435490260349089963901451293530132075297105145482829271895590213317172230635968903902164999358092210781457220598595850260795253572859988669163356879292133279087312871122330989387275358884620920698311389414168659539824541821660113802854142231381680323614005980908046226749784062565496061709992926118392244097687725111214944663180343353833688707944383776515810973201264298868051712230916359981166642834245972005338244655738314360166280620638236170843086142581192286368885154715327055507924172656308909538499921772517497849625269726497577584344273092506336722137138746630978403775540151990652517758521232399888948909521669064428829451680724856335484760564089875557359216862993392248421462872850504014241631038806242942956060178133423342887792828079433309796809523039108143073236376096200641976635028409283023442067320276300894639714036421381953698046474886719247662130244253898231901417497971641175891799333334369474643937539704019595453373551842967496273801600194689607992489356824534116096644229374416558851233365502030669844020020976262125964305869343974255564372550420538260567415206617315998526058101757595063512945337201166724935736750267991940728625738829129285824799204049936789889078542259982343618994325620229386366652748304049702943485317995690682724133721632952842227578378546534697353647812878314035456242509547612792182996261673219815503183151751197056724409511309957059262153928306921284915912656105529447958584754754283003394273433022267558337841074685753292117989138390782813566067073370356359307023567789149634637624114336553744128698097877959348264682145128277416033810991646718973384171258036268445266986178298325069736357120806285512261478248987774151825230550606292307583459474775452782364520634226883303926436490804615989425768641024518093224173824964392696632862873564435061719360093067550347818667804062143349811528219194543812017981235607053726276139834201488354720405145446275837315992151221017070522151476131735899494960936933424069162326635763300146089025522904840291519098885215827052281191021004012364506483731989179287490785632413566053370638457619012626512881219243297381801440120334015074393360800295878575073761850481837267297820443537730529216365405765846806628472398299388718778486952914874234253635219465394594847181862824219247368981796663451004693634858734153962268592680838248173899748449932620204285138141446377800694032265761280670054971767820476916106230618978226560113814534126069020610588478339713954829674409828885825147234754795207354048531889837660678831483665170031015799524989715971884168503027615788200819353408073151075849881142139364334432329001475235949433652699875960315163700957745878139513754813039794266173062427009820939495631011912931463814776278279570311751687537702700203825762196777547873922785033898416735942779210841774523956371651055931402517971907528136424709039291798464713802249776792290685840201139593331743147641530962745250615175869754527150519715229398612851296629017573164509413151320555645008299184991030991565753299145982165192531952519406502626561401264116163832523277162070014514304814528673596897480276915491894257586514307847552519667392212955412205428871647652211593630235593011862682792704027657859403515497602539134122253064947081170444022748381264001248212633191430077894434722686429749206675824179384348870180788446243532476061818059544677292562911494547920837435929737416864694741329174145785217979078003897792957422468336051346860822929167542594007481674872828284490119920950535203070055406693151938545919665810161947272051612428489210531516784356288819650392177836427929433538771754697799912824937618477284559810250504369061063237411767461424651839989358951178159683351845828054289358810886972352272822610206182475384226095545867611669837938557666678000544503364258303493834285623945556730022842739360083756190813023810609558234958077557041296663234818459068408289640887614244356135226441261788217575939537644965917175017026760483129006986707492542771524768342940731619128973248363576885468514364363796671305407838255344774381625427978076841113543187887806547508762593951015848941284639779333249867639175952099715442713541228564288448601416775603566030662701765249202759328636329664495550543704715334331066011859046124117193248369885162015606330904982787753761882291163599652820939133369209557334222298026173227293973199404061579391630094035156985214297907547368847787681254727132046646676307884323188577653266716426523100040831675445917824455667183799096126964118030648621452227077302815179624878672197242020215376206697210792736690224547766990813200903264700272418586362006024656373667321076118967909004091242633440200207213997963289117125019740468270727352074897005638035692139462732616515174924934540773417603363307320492436391930879834265026201924396908755655388569602368140276555263172552963961198185406817320773462792118648727075697726093175897644588111779245869920025421664366116656181546925140711900965648037679358538646899504280805462395705949981052223582708451066808078943778274611441492282945960026013898302225470436731205931853949179966275812852743164520235905205157182820230487482052621818952078461315746150254873820476044506689777855456982333097206387391469628285319866943997685854813622911905246269091760111218447511013271861280782765205688356532611185404193205741266704315560839057323262351758290831228319223421383481657225947434079396938513411504759317185584409534030182850021835228885925930612342132260836161291419554948147094666846149793028838423196243423140375043601812892796150269776268263716608542829792658107985837230459107314108814609045357761925261661359730239349574631710264984237262383789673527339810037595273869696889060790318935577745506934484745736976119148964088321700249050371690229319792223493571052189094015603968446057656969848358178794267813545412710003851466996933237971746636179114578047594871513030108478930811508789213189263498824956770497628102130308168811699552813389652464979166928545024200811273400600530525157089305049096854805682158925934326721733190574955013342149186885733025543408077251368844719242560037318964256219400955140691943976743468585387062137629659651751051913266884681005110433293687480809950721067139482173430236686646880880888648190863288718598065617054151352593169604816444819252878787094828698973499042119624803386497273469890321890385312546539814463071227173418497074611037018210399222364229113474873050419524371736691486488146816791308926540153069139767276958417473533027600444537070470743353920975916015163880948861260443195559158988906523245994940106966893238637515431976793606795987987338586802146869719036329613597377787620216945870849344618697733856181832951788832264388218138876927683871385298498932722688794027028006450351227623139492454484216398141951553661500801750846885815032639606644196298539790384196609742822242860325502662403455343502995488228355135415585354470292237824252120843112665427890594699680126196018454900745568449547263308954204347397981157499939442035999925192720263244377954805341798282005240986255819311434721121540681336230320458035250602453704128795821921625097584636129806381991323642614897175513031772006182150270525908729879946360623297428369949473534415571365319147508689514237214717452103344145941525107341523790289604602963225698223789636848751739686655756143132841492078620460147031882730855843119375833000635634562650487390313995406807913852102537488547887265863857762137095486126063943883880140370870014092962857355491719566114828003436969262405793180584535442366949767976631487180122388997306555096046998026095361255316759130315287278886304136930277808723029884395746506588971312656711588228140895216639309451278998159265718170819327399311751214546722652989129766308046529145043679741607779347565830457489791996723783874488642173171228397369580668447342286322078743105210478464060225218179112378241242186970821314154291140264454027304888251640504345095772646641637831517753992916151271683607678341544111236948006305467632258708347185627817945097202045617952211559403155186933170414444806570058605714450801358207987515007853406373822456822215185046868421249009832003052884800686109410505121702965133010087996083516984987533619633435011332875382329794455537788573719786857563033871115530927327932933478216716900284122312065764067392957701188630517637762588655837776115667419298278074322189830565456781090562579668276609995895512965300474562413589676320196749169845160825293026314614553480222130476523410656558117838401866738931862312330216143789373974009509907932073106715766404018153967503492203947459269014982815495421678189946762335272080807739380390661719414253977643106755647310976688522725077264622834457037970563797035443341106077058801980323401651584799615833937657547310284204961373538895821373516460042551329213090972475879378314254335049940812162867112516994056054851176099514385691531103902074532194430054354280830899831825647093153460086823628776817623678956824850794302849050086154261483691039742705107800861190509567386769572771398809827706161175661898730861585413375292489736604090536611711679596745282306396907457872471599600031362357505214309475817443809489411812586682281416626680382797218369845230801522077600641825872228789860129481696937534045666410628882131361511368042256472295743364851653092127074516063134715988493744911930183949250055802477359198858408420981974762811678640084344075813463050617177139196041982036024533254211122604328817083009510554875391205267700993804620621764833424673420550772864333978349264543046265982416966216174675171287667429376673512480288380422175146197006338046361155305589359866462704236040186634455747034382005691896063518710318747623896646526014028027392622897304352912797425041931470317172262015306680495073437435447347817509723046390949633257632782252315757049907033575193073134088961707667838246914429693542006611526832434211336557404124581731326214888196324590752020727524275771540079684493199776673825732429703723700364641972809426798015760308657345890562915555443685440693076858726305880860258540542542873794840871735854304422070069591112207473342938480259533634610295822440601337071429755838271719346650098232038251371426594924069963586736571001029878529525181207315985630060568495955097500615313336676579024531402952529005923288813900543465235983309995854048521383451680923903894856013574159610285566084377814243169260293327876389021755761342627278191408143039504523723324042464421356894995272217911472103684068286565864087214415805003080603484714865276041225799666955134367753757797676401389971908999909912953224205656177103850682234090744830798265211805087794656194800856580597820452040181396296026387478525596941311742979177250212505718240799689216954402076520517847067900159968495822459924621312337688871201913042579024866962405174803879094376349344563016939942062812277446679779140928597691724416099672548742129952478862395963909129059573079224818079267882958479675715084634610495202319169365102192750536965079019945434566212625162986064515008819786903209875712381096348631730526319727460717965462435098481406854858756942531611338059004968350799929939336206181659195844904477105792489637412551763293897712277544495786047801165558975277025894376059387210890199889995263194573500651508737446543939219681112451413833138704141852998565559065464876041617292061314240918418238873107251402668853005448612570479815617175577309332323373756771479777051270796526740924234837205120717624574650470195928409025323689308880512309158740932525470897130903984692190726192689692510670474911882190151640265038653968418855646432204348571042047120606565651971049804929079201993988677321839647181243455178302280005508537113438707223529327476878755982890705378649826865341684792185452312322338458324681701910837291627595486730405358331792151931674992992221529646427075837970920703693657012639289184068820975636303777825308996456046482959362479673136260120360701869673457151089111489999205277092448486718782530246910026531307785623399569874213220155732563279567205550134591101685370236318563401803348370543205130197705660555031970564638098323975798225376991963258724668227246842212304482052185935736812535587350969307660282377431287653814072982553780547232328799277981081650881395369780964249237842689098967884163444961477865586429465294213152341175716099046320207842701158953942278796632925379845274964766723399090311893491240168968169116029175069110142399298726062206242173011307733721024895279176629751868740237029524874298461448308470381823427608833803665544155340905824940236829630037457779293085948938284383091354598631493007037241746466806126366706938002772276441189010076899555949563530129233453784844794563282724261453536881510450368841822119517164013107247160697953002580017141184278899416641598692229625240990232174874304882983691346691392089532704643401222001940862307543770447347346300750585587936752223815229533927194762578672130098659860818562548686869127698675132859410886345665404505276325587859785773558465567759066056409150988260861622086860359586463347534849568147157154124770853309571213089391432842348213499721622675704947120622433671245725031851612758167772759092675447211418078442320622060631455259430720766359343280317788365850635230606417085957504815974812783504201286013072700670486165566025037182979544415832664295044754190953723993379672353846713103692360376292406323027775762886673715551601970971719577108474735943447783791963426694459542379512805071697179024607308313330829509854268951249731627851877944545099098970265626232036563090843274075029763124455646026310713102796629781275485173757039877874384773782903749251619212749437280163957730271966887766594391805650602963092396458189609555663408443176710663544053467398116194115119282786416973380664513279447892838431868412633656548534698938076786582544896536079105429652625277234607461305287033527337182691609322399201354384779522978313237164503379522729010832773787417276300195101410972152701149733873076692158686883394330585940640335343921386367646322685525688370956073098498522478940836630462952445141724291534037332572761729999712063040230431263585128124002146488417500316393316716033999188325091221886156437449763729125449044348911146357214353063531330834959748542071984771993110703773650563512396363581679484149783017956713497907840008009274367086488322353265263363178916592326741052617243229696341888847167866134986892836736152093263961937563439598226766205886059257122285183465033467138241105128852510082395950907569451967040568860084902920559031689606378112254472186432485560999730462431955791043131104838240910284553609415293626578244994920339631267142394453818519484369594483762788239316380067993044228900687416808353573214427496052131595065821673154963493588631260542981636990617187729287211042056489968738913718883145923654901973993551003184241341913883948308463884371665607113381542630155623381955027379956258687331522747363413344811081871603162209163711752010043730461114896002590413847638303176003467609321598664735633790710265993573630855762512077378181045168408145126386305805403421363986002295536778786175305071299903739965484245987211074257067987777170891577582848729953860846975380635845528742595427641430514257233802952185853599536470252649757043442002022193339403906529963037387439487735013143158205967829549376535380803329967135076517409576061829814136810336823868080722433792739949648176192384405022885911805583402764274652330022824437619838393028655413822005219205996607756451288419334537828934188257796503862398049614388024393654016358199043932026394523602946970776646399209193235721175913785034224825311201368119773602898553372046840554529995167288704645187977235547122541803495144452419032963327152009245129143264191043402441870340380031659348901098266779375400419254876004987872969205646955564434709564068448920460887367609971320551062389753375082442114726295912138596905504395492192963174657990515927035387841796235762058364108967858216859564971681227171628621536891530500864994670975304754897233222614113692971250643173740437489941076342679188324005548731666613819366847937181258691465191238176147264404773950236887676455552979987945020936161322827690203143802623785610941958292637353891947446721099712628556455758485760756676299460571172592813991181824903385561133222620725912482545153080254687853295756986386914839554196746588166253130052410822125866929500809258670864485587205387155899575917026445217471170782773730280107150842105995040550271491253098218060691482585975162227192528920395916959729431522824933760212508102517601947348181634691296452785627610889040784641666806802422069041855477573997882570726687986083645284997653411654834507100048995039941638412475174366238053477745742267333963012364361454646669955081902081940783173655452651643615302874073377380035014300732275390799524875509780958759295819881905275879195476609578548308190853237705356670678763173335794964185654176961978527568879826098655752296484051840094130169650473550305878733942886484322903698253441210916288651033410265737532354902579115145076050808394403735957580914198142450331721307263372438823988139735779191898073064553050582406028266555153240036177376839896983147278289296041622036574029663289382130509491440192262761872447222367499235199019154028247397557694392063642164291133934780156957546308397276910081393323848678249240639669265439406212360721632923443516823158573888119845350345985161784896889301559372411545981728767582849668732481903966983655233111714405509010478475063481324255548619842132338666742268243994105241554487500493577556385563776911361623579910520386598584479755236068396844092724601357641344262698937651234756646260633687579562752755906584619113815872048925030873628420886669050096524659498720796599259547572436624937717100616123140826313846979496565879205679177636250184060848959435175724757212210992839727459080028922627331014559264852285036701939412665528059277007875427367542502580943284296977746720423808111502354243515588663686992663246646744426607035054399527473410176682262116714608426740072215357231950374269915531882070900508395986244745480940630823177096274663743797206434941280394746732308371844366967498363444757880734551762464816026504964832203202169950382431704905821939531412694645055207429202693584188578888007601446733495457043099949101972400516807339004669988647429974870709073813681257861027117385145843983588219896773654040613330212930336532498569502777413438116251476853055458143839967475874761657683614525166968368476865403888706536406563364500918524559454259677301278441927737783095559404277857327847071836936094461060593074262614587292189481579425817347894919525836797589757245861963387860239735749523907479124898749225976867713245993489111031156422367447612091811162089014747473570397195620693199273506030858590962696197412070996273397912439573717438878985712651167973598137200520282672332308259305571296827530267788005976560022968700362950679090869447205042991884976638141911346277366309578179987736709886267018779112321160039419842626038683176332775270836544123794307465599924465180228648689592673365023003717346940401169608936466505608205473365218892985478107058114609025768116236500310976800515176951265617319343189374767762181791594204671005168534296392113411979843925470208126987500963122559832329847423202345847126337206199305548383093875121224749870121924531318549554409260768804608551164513392074554203822095353053573067726287305641926069028080823461114164589138568999067584950151193115857849650182158307543124470637780926578517267704715139126569570554626405486463855723218694352446101999873542448139197482502769405780914522382853491648742239574517007084215615655098682932562532712871849930487825097346522805490158901131446460792825166057985918588394806465208823803910626901198809157138493215459867964196148281801604939247701637483022890122422420969535352187293570271510862400736164051135496708355321616202782782164192109915886784949118150519569670910891641702002987312506490491137322990191243832808562352412293434315578885946437051737395891235506282122040557077372719698733560272328829061071579183090559982682634336012942903632588557915513381985315795160297996163785377802847268041076367606355515776084496707292555052484356698232869497090037183335493127758396336107444633841737382175554506650517807675403184164595830195630784698738532979177097196256019153071381989672959780411264963126443376069199131374004209356108938384328184925231257572708445879140337518325355221678542953092460215549409941707309235047649666100504589391570056338322379195784956688833176285655055163904658074063030210182643253633507094502726753387843753464567584158600374665605124261413644625028746978290149657342317988325677822155527909207661611598222820578336021002510539735103235330270705701190280357622539974530591342098953420693669965913290988160956428540673840955059746352001030367674968850445595719834660466174724280384852014459919220396091669494883908205630617910538516716277958680208941249156111261425937665132937356250273925259456405475070423210932296213497272149795644422028691933971330073538564693532888769689565240661843758708221118279779664063419932638145125829705242562095703907355442702164799578646530924848588499971618853723034728254216026918468828283746859641686719122090880527358488976418628835198313876091545990930270850214521799987484465932194818332549701981101700240343431072820468027919829552820994569336237124684497375697887947057294870836140174493781672532868886472737517141571047335427697758134290492169904483708709429148440247289983445101705375505653092363344995796843969648709692348102807185341667403762828804907948900120177125919822908043257530633222525918809424036823941878202817989972655114994132353436935401891101506441980194324258990143217541397681423841018299553212903992277837928292515183905725812607191465509123332245289220421531004292245423556700944881556131220790775387648989026751049554395445186609439645128856198729677320542258631491256219182829631677682822073709778198182851219365025638179701509299810953580052898483561696878271159944911384728258930304923351286865302162685842869262723976342595455718832895330768969336068518745423178698114958712116980274747755111030592337127025530374043113695560695206931852437334114037865387275351944261059881110612280631720661347454727015765572505625121330293580544777053691221046529299398222483899080295698081137297110203150006324056634457245132346321216555349821158890309607356342540905959578690280073660668329791498016291366976283698908064890554655625029666247119849949471505754112762131317631022390125009485478718730168923844799841290036455179650880248409076242557391766116277146152603807471406181023068885585790262976950384442823242105784744864185021631191383395034275113445192104373073116751964317910204711561073185537419400015681300849378395463134886905154982938371345933663808744571911243962821700280538836734004164223055246608953331101780045998376589017986252687128112144247194296560548854850896287900740854231744808366154196110791467425604951740277176298656897780232556016697870312675988964827562903903081430540478542019457956495876701461250980767976624391106718480579135966465776897372680517984649884774616409499060123611752269139410417470275370256667566586118408389352792427815361687011633466159470654941246513624686611184175202002259188894972090199962187312135063975220647439289263850132130902023256846977314964387736784967387743383967707968820073453794899785295674912170083216796806228830779005381451743962009834746781567932004522217374531758110264185645823345376068897154908601081553910050217819647842723885890868599277332809920392205249074402943947720056540077427443057543325716169949237336984161255983304108183236143558998922711945924210372729195645945686793606881690580331388632980053218442627247377204946054201070352976925727725868465880581497157591874976301199989424839266422515512412749145690058251221466613895950065257004705677588656464897263669003385766115100826454644512143557969817820206594407044937962034860584622942890532576473789465724676038020967219935056322929198173118758316546486984310017571743181926620252619077556439334353493712419670262822745311741897114463252000076272997152582238335793699681766498055583919798698004819181664516581450245569279785189687380794247094333529864900719045016332895472736373894092398031180982060053937273897408029447286281168328956763413016839578000559137488540420848837191658675537679168215117221574327175967571926058962945938110752160698421450232859890536074006954709122177387957637294607383465083856508687755126617712469377624784685022703681567249248278053420268530356887041039253048030376551122812996097236738590065980036927966727426709320460512071709570320975375102005515865290910721314312502700492443571942665483288744979998088218289667063003220358782209153447383602853983608908322744153413605556162649220697566130605225958677962058338729964327754311433669537590085278843721017446126111771475327603690444849691968420095102531585312514613294807642052102779052803439442040599069387760682822429066364263627544372804608281657941107204599796750991221871856822103271538173894843526504550265384304908585883003807824817004086437258869044994110734744379962168803618257734697864006116587709506000331139001810546968403213869454064675246859801322535905741578668004884741455000126133506515065356086688216220627804806945307528267111133351665673630878909791911530062967345058521962557714098353470256526382782916076253596457691312183258558424773794706390037114135770752102921710756152105372490009242972332772750546357599509094620042595617778379209204590690954782523272378670436331008885087002240745587136689292790532505856081622174232281859630287375659483383700935398474418210305488975009073549346331313100516010540280721471358657124294472208043940785350266890026608009674975046896881441355213738446830054318654842098553946319565443616660270926983554465466725213641397049438886067167968195538775229495611005744673239933691550286679277065800592124582475925104556540434750586416934463539481209869939430387529624361075608352416204536404133490575608230270433282648071095083221071665333366394022321448786040589901717081097338120974388521701256013545351232825674287453129516155645713353192968475951784377313250696660314313238028041825723163011628338729189727114764262208474895228684138127832902594605766010903934618650328119609407974104442853639285070279496378874615342194507576158391825464447166447813965696554801581167654085256536824170205620302281666070743286197848127332070217312009488567623351094228004841921856969090819663523819666811748381610811436101707769411572832568135791094014167779988336748347281499476430061338660966279665467869645431645148603422921034797912543374356997059838497554727912606888060633985806467548974422248862295956608352305904795064105823816386425874915527524513908313065358165292846995411604546320561515492955975362663515724717213981345129505082456895012854728168956942776366513106226957438290842847541558980687774464231050319288964264328130783627543451324193946367022683145797029257243235241042513690259900165613026519497181934076780183835970972317725228455296943131371385311418070325787728420098126590006540355675413626883620593732253020957341468394761415372482097619323017319082694031588647170691449457978381251802990309258867372233100935200370905652720639935495243096339594219213824256301571687576437294861828206669479062972966321205310768475356438442955890730635146192155759770291400736911419493873663080757222861017350628909574686256348414118808104915942643637488755655844663644330748055902872519558477551136399056108561926980246862157607340608535410077586419607876952553821750840865623525334384431885579778968967117296917870477709203685564155402359617006180234864523716783598362332267359011577885571625330656224603913248638098981818948920071688427291258819444638166675525347854240113888033565519509794919978473587873825547690435758628504857507203039578113228919447662434827785703244354678432190826286102170191692045222818620950390854081332047469254614725313879192240345430101882351869562467958350444939871665045482471464424118598454786681984795498620350954595978628429695437001430670601271509259148960954283845811729566549011838522073446278555110451421462914648224504017860224264534743990658642686286038006254015670976700841049560995695274426090349977311580879874105230465235583112613077856495005003045496526137831965823243757064144468802293404560961777426050203043847687961932942816256544225814530997562080408046952782013359958770489574928561909754201547722034982306384065712824138042068886806953301555185159381377443315928025669582480093765252592480843035806771223969306547698587169332277044190836969544233151771640297870519342072550159082337788355963961138242363272810697728542274914557700043457847767296174093662232220391935415981624974081634641880110269611766842736712071998063711515240195317939372371114323716052382999587289374933158418276383904209607105396803975551724849553777311063121934040980975668251230810520609486324382820478522053573832294561664396449934841728869847799576612148076943188038268806142227333115050068159345111590273488185097166697672805574040236224740535603670184304312618527809590538689777329493545236939831570685783776546197473485967616435986046291959101563540930117824958315981789941159209124774256122338117160370365908855742107003208470722991834889316728982634747722740929089459629817281812538568466667497655953506020044224880990766787725378857890529571947898304787513881839976093709846588028761543987231699644735186672985937458641973618036049699924266891200096024846021257777601428521703436255413110039106707039629122114258842846298475651655676450481798485142265317086903792930838594539202925931090860481292843757099728599605665608935224627435970414747851228738066148760362831495406020024871236038952750778296198556293591756375305874094342192348464533351471635748548215339251903869422563813053257981320011817420260046385763135330935484450751654685320665306013144866245421957499290826472387637513212469624182853726685699372127123891830427300809951026139568511969323079857444679374133882798892817748469062339433994695636550709780930472080538690499893522596185127057839225827745465361427745015826236739200310065264543321363450125276637241867221288642914315104721335383219499783192054682883424708185342502582623877263710359566162839661665215451287873010562879889607489305213306700277716453885661874597885225655095390165834831880221230442433641145569517576136033121270593665034863612823719956684431155741083457248087581276612406508738649782479862504084607816290361070372639900237300419059702566027718609151289354385402473838898691341226318339432251191460259463451891436511908441331157833338261611434121225928992499726978629425109183906041703146129624865474705904806076141825295545233798812030074464953323048506467545877293133654425738471456921162778132700708597783353815403611222681952855804673653731229837899495679090557982470742906436753667102408429968097256380101915188848986414354627481570405091897905528455378440145516842407651146620189822867189546425179153222928014383521116569513819496121462768755727544431102494218416399698051499876990518282522959859894701926917520559482541133926683433018340217901001134075027178410648359311618560363918063192450704434651128694813224296582701560266604257534136084093280796914778401153113858703994735392477258567943322255465868576882300954075468596932384034962258497458679951673732318658529377058629808662499254905810013000189073824501142463977962439953993862014809153462037317268191739681236847158417788953723934971956484070875470350172748191832114402733466659423437879164626391259487561429429649878957409251642738118649852910874874448118302169190460178314261307749256860980104315059713364413000386632900127598585945232727100897237776688185155842593537640088502475028968577723099028684406523076813457180224044194984954271093442053676665987401715371128031599593025566483512082557618787827166683167239321306240822855555396980269776188314961235397412632004651851140102027776544043210338467246480130270276229166252957530209128183365755304184486870565094186186504329110303496057408013131096568511088792967900918806397328391295965196189363536386578434137461691338530618954617970954505977548964696824212690748534548667143947892153866616742858126722768309081427576637538386090860285068317835792620257947373125709436253043385581326901760128656105970125458873274382040163624783674615259896542566903019850516014524196203800895233469541627551957135685502429662240985443297431652307707977848322240376549962764487369708836817158208028862836941282409780337105632844886010729589224630075915852207798946997351406120040710726987846569140206229291322877314979689207064326375156878887936653422296254954522492062852863367865054171327091123594900262389539389038319439775402725973087512653814641518182137897186420752060022636530445683839526429919369098485494661116565505231180320007756274864043851766944285198847330071733733979762475723175947938864667320815556222475551471246237080878463836218199269911393320506851157593037476235488440394695956040473294708011897387273545692305779465839777235711259147591671783506762981268926822798583582271711313625709144014239497992941345025678815487143604929256422741472464873401370428374575993383956026617965337115369904514346968140894536643043272690959527115488163846043331052879557099263050252417451035632224706390917086490391087626226019910613019193467936877587424514102574069301626984733395413477683162651148091001203579303311663485247996253404845510898837480711008127577958613138941810457742796036041190116264196922957167820368558358506801861825323555175005119260080183505394804989282840034138165100065136693918644114277672696276282384538648448946105661937695811395143579201253888016533337876654881106157730009885731261284177170993131001700947372576123657989509103250362662938975857461101048269317659460985962679947046420731704902697238911497572030065790890784717284982654905448182776311058234228194423037195732066979342246281178457550910193665118689332847360757498485628070796229061014671886474330653733519191921228707603778569057719481268213258042943131253522845847951248118062438816960851614038076815707687992047150760494459964280346218376000978571183904995430570251509461456474737480717827582404134599208350626432304773039030840682774016799146887580562023936555332853933383763034202386945368220242562947479698773762946238571286933187761999953349863798976872732532628041434725093714396980464959624121442477441634420670525514585188317772336174700346243164012330857433294504868044757103275160670362554372339697807647371371302828298136209754421551371374423749973170518064583253302830961791988855689158664560710552205751409893315274750058718747837087921853766810148395433624723814010292306971688441794782690266114692377282983948768037497172325357303377473412886638876166265400307936085112750842235871726957311682343503409931690105323573843451715587209805874559712181065738543096058018982680266314107670032467610206780277005202737025628380544452985528477457031717724216099531211474770229179008719037519554183062757772676023817985393450955534742593419677110322340901823827803709779253538542630876635398076969082602117237135481159903490696739107127925670221656382726078894359989252135191813447572246946267514221889441520026438257726505807328078287033018011069273962294973303168190282629326129615897363983448706148321145771961901420894284421107892728362398032293423446108956419989347557703024705764593030861647151257890156204688208754921833453682317861020627759634292356687660403423299675521782718410413104526729213346308412412067497633769681581244196872394640028328024415808947954009365833660893550380537293951714107338964963819962660194397211315812210778687659256130379593062409345127089538689241473235046844367309754466759199989649386451879446666292000991569427388881867620081678565083514121880050854800543329203191749055004036767491780148075073326083084045176908501143448657980750274066878822768223615652312100801260569322874398714642443489761901550582174084855109580848243064821832752411626811852361752846606200166238759898190532878604355528701680456973583168824282807461620430508990923777481768843424638036561722736576315516765879731405016905212635514139870365597898366769284459805590192574722615099961914353221208814807358055682350143622489935755104646399211614755433452898220369390300642051696601885470619911586041813337815025156313170029538506212073542054729872929200154095056634852178163015850597355787173129761159741379958664541326986223279758092951782942298695826396714964296219972803772503974309355055339138746589039840384471833112729091305824747775489847056392256571959813522016102558955705783867462176651852065351820206970670199025119589343354279580616993787091012271351520482357010617112426606218842523910018055893604268350220907477233773189859298818892017956615613355051646595008198672194884293064169061947000144677487397793550568458016042790561297859152193916964741571668174236842262339997561675613018520473073027517140100676454487305543350464192458630294077953952863961595656390117288485033298194917076709848211573618848112464578309367792693921774518511673467171889886697181625321834745734104346363533999959858311759537611264158797064975415928119541163804212724725913904929031864413139410587602309429806981054432194709115146244527728326549041572519016098748870710604806965151309878601035876328930896262368185473772096475456887128921524924714111479639224938886626525983079913484733390533495467497522326742901175919290587683979276040458130664010153053217647052702084821258899011369027307676846751078586662053298554754639612509637399905927811631654037580415954771649164294162897922199568016484472721261514065629494368600575712785000324645424715611789870361258573156151429100397542286873271957820972207721126999089381699902703783760808974036624234287825155419673527133241819168932548599793482110144964074675894856593576582790751620183783214575901375000340596765462203711436723767641173678280657042132720988229696729069461622771316805826369631163866742947538196045102423408187881779781208960973389862563064310177731440001162751006159876315319684514317066295973259000890447628706748419237708629180897828410674228401456173125243878341948797067524054647634392417170943518457651187591944490169909654200697137380004318720693110904601494271797526750089401536551981988011310650032445138331720600092189863316587873971035729658007720089928564774126263330737899886984189745786518312810353182980004999957442009813363237158466264627490001521515424729706744449236380000587796748185176370788078066386676558056003713158169250594002511480001113019239601853211336603595400254960334520579457791011197461800333503764757658342902395544082214927967813191744932992174634105683178318185050663749609799958680325908227345516141031238844899303884155873546292734629248151178388914396565468896333033844342711555590177480651014800984426255504270082096017060305542908520107783707410165921349528660159533934459928109112196779359728249673220048289431592752703798152918188901425894336380752716857464122122629379533027848582109073952538718368605757957947782128691450961927681746430167487897364310509140661436447507496045456936367137106354375645462383811126977392574409050988473741064237320723077737144726268861724428775781942602119458163538672231232521987148577813457140640373823740633846993995651542415784257582298036855148209098089269952981669310173945053175999551515470488807191545180247175448474810443549638982938643236922193944610117841198466380166622244143480830803007769153215626051214185881867068317187980942736074022842297430080881246685956325376417042859531842002816851962858220482496585402470585388821716470735728643256659250296495325247637363410893109799353534422137209928937367856378156423195467911638484267618724511188284354159420092472478027187854869498331953928285017132428994698996854524672822730659546886643323385224988801459034174148119361170875772357638251410690619135720387055486044224942716780880904679745570368600364325612499437263666612014680755933307501972676658296861875470737930661882002438003668136395401644430673746280712047994481455983904933224852669169937653336806271631118411294677288314861240883663459612976641945066218080936238848517301184384868143922655660199589514744307354800454075714984828518572818880605274821768954599871220240830123032989671321388737504286923303922999954844135307329003583729819498106988246761488395205450417888808595351283069283685487644036629215729019029622905712842302340709038291094640846266169583957108495655255709773419523040700453520605709275759194334175447547588634432459950303398700747303252366035928129104079161791466015309287576404287800610996403895952129155456496769630102597384261004761913366386773259137870177173947556465750943700409341216011495384026409347269787157034968031461274306003501066365347646640855196673923561811961559219566691736139367887825045560092429479793993191288871715573648632397634096973825607656441615892894401391611609215806475989691618196319997647923735399792888207766971098377769347855493833492495435447046580490398274378231876973162784616847209957801198677746547855393211901495004338849521086842473357092445196279381951019232545716497902073361566022487456775534439347279431995976458788480857058182987650089754421265479918667301131739596853170573173877672280355558468254658975967436257141994567509685256380665190539536266678776989462581961710412496141637271840393324408718345276862520624994770634055582994866435364613978233779452612897735802968248086137596593031182150479302719258343278310222852242319932938283396941863961285844574683502518636987826101170768266127191797751191969987845927609871840254176744545813073666239424094203763079851513940918318114925085361215341704455987782273194032431959639667914283919240959262522878567485261791580412241663967155564121699157127682969036536731457019643562414514427740849017724190041682598230618704972677837781412276527636762654415172228085872810151291151839412723935238385744959335537497065850021079436111142930606940873248505680468974851830377091763789803152075380841498616008775710828065901972373906706301533548928893700015001537244043856383675913589751087892868931144681300021805277606207538628288262258282237573157141066174985304077926192501013112818527077308030441659025591311208129247929511081939131479565061482654750634621883003658677061918273283848200151561138100817009629601748818418384953091390998383861092237346514953839232855902875884329615311195065232679809517786292334085075876426173508007633050141528027069358866137299291182591677414651695520390479145215400298708155276408963000011742349922463755533591887277291275841071403762483067163346464068079363467802498545736076659193858835045232858568033455546576019757380199075361271089400973509458177226094080593334447361934573903247516027447388278369689962093866598047224434151508090320499752213294936300214354839195587766359837898856037964749644838978940642207575330870677268913584156695682487593092142258335916206206562638513047542475094336706595323946871154793302986326466030564556836590975678740776959777367012496699948199321072509979788306303738330843912570041820892482959534080473083400199027492095074140421846811967615801099220936398171149585578476669887807050649554339843051214425614215579490078505760946481696194350575413508211526689953793255265393860306860916804448285474674856923616428382510206221660531051091333649070694407699616035206230341614961321116807488707251623348917539540132452960791721527872822144424683688894115814274966111771025194502076402957656139989196717268276616790782506486718454044661198460684162049834681728197104805716845338419879697548917193249464318664138645626338255828418776047744503166070322961470856490171100794200414718295452957633372316867329835791991263499969925740136678560034025204966234148506200444784319722761469955423987261325755285791157109656918008493980842972742725062734369747732024028280517909594201041203426802297800987878637184279761136588909819412180526548829870446292103437339393856861144875735797506192221735095044339408001321839384872358572280826266078327274262848727153586926747722350927360656947996789867860363108308334273417747786445362845319946525301255397720217460990888602088414430052460962613805734222512525492188733298175587808587525802888711713412233533784068399846264607820007680107546389017632124354464969803484540278994739943163323906115753355564073803199052356806674001508499907590419902596654962021575121206349917218854137193592640180840122056616802233823390900551193047349118958992794352167509592176061353213091097417291223723639777222356620451544313510504721653109536917284997579323913210710272707351034788813638019284884811260290663546773245412696410173593878952737418903670662159369753714911987585805671821514476274194351986816333276314055135135749414539151267240373870328837928863032877914912683054024373137867103090363526414106436701301388075121455157945098332555449800206710999748210384564989851482058111231615757868991149890424861174915691312988206885857568713078936751536633130970184167340009614733003703260982352013392166031272868310424487349915042101827026541292073899004898635266943155878082405510534951515205702237270360253334766973487609418078832409669336418500687052458509011119752954982171067228233159060168884960994271677693098281585103089580254943219786660250286531323370569703622108879601904524857870898767230207293934172132821949699674901225453930908637332355524464294252847822136398652497615373057751946573915238093663931402415131671155555482427381290712429697979595277554306179050315497963772384118731555628871033705890081701667528618781768222870351811260035598908007085611791122764795279795002437764349498374430285270606093274225712573404210031497172027396631672586359108025328649950037510610441784389393361078449122882959008547486456611757024616148599143418979455265460023350817015188058646127806284783938891187625597541317064959631787698698718882464521984093516677702978805991278609604056840605441898660651100840398881230451692035622720587190281742712070574322562202637787735996954716679172858096881933206583242205328908435818689886954331516138396130546668447780014007231086111760153653412870917257550758753409709131568899186163519234820514757920098665342489467043992110758282013186563286703026450082803750076100577947296352568777643895751775311089140560146262050210294327039205116193105336622275554180394780289981982519008292558721859753100730857410260828746493313203179892116618586257045056615531832607589978786553619464638583806594567663633399932792828740142794492110816869634089658708576339328642593684798860817780112867314930791342264728205344475071499319088762462072290617501360257738254768802245476371695409356873537950975902813069352070918930837334064626232550322786471676286134617627549998004605003557080205347751727024864503290369327538040161011116853405886922194369203301393849460611484028742130144536704453214888115198350212777440366073210707027956274070579299354485310625247510605084722454384374950319535164419406346506053117513892595348794237473719678909224016669780723776971388675641636160485088964842947094106609033818787184363541848217667718613733387781131553345809773563521769368571924363011207597166141039251511546234708192981531839584599009353538037562663812335860457058693010610365627636821840183527552725026772732907061839606072045183989572075136394547737371183977070739230142975629897218482226951632552225156877649329882604425810793399422893438563346912757140630363779861340247078752827625049550485554765450634409350548444660446037107824780160348517647708396965600935600759578911208901969331196481462301141047178248081050898144366022155170101515576985565627950652438966966250055647540029700317528155390798342890310471149083781407417923272493676197599570655604094556406230478534690779316673397668288972283392678240376244233481961140818932806733793282579898562127918011729901360226328965308838091334147035936953075513950792610907981440592496631165316391192755077309339941233083958904662318548909226067659780672955983618836855103700862157582491294687899615549415524331837739002842239040305983035132092795013498966126109213161558205258102991823133091509291214215833934174679600750802355580455518936394693366229353361245299131764635391585673947246813783021801550775522781388085900202050563612001357267984601748155674102194301107050633111950008466378415194396036822888074208836359652873465927325587619051458473206090678873752824739303891435052760253750291838351208813272820596407840654594954772905015955010394420581366201369579018664125552344806024592287572356303763410448366432726810486021003292993997627456935428227709647708178492448117439140688582816292952506547614321424608762791688056001340909567265290409059171405554753213006191133859582717235913876213226475440952324478978996040963343242693069137558201299800377912719165095430258150380102824873753792070746760397875281584495961052149847013264041072242019222706289204642450664963700767692229796207946932400325594500563214652174881852657478090046886692806177423677445556214790028676256451397788207560988924305108052149514718117304347753711615764479097079204327654599320263867220602864127655955568165833349940835546856452201962373337827617210186932843055287726967372209635217674450036398950717933652508740802536615097486241331822125111998454759012022868410089237398381915660983227571690160039992234185509030484603132029729555524060984232643518373855626932649257387654278785130925585688753630946203733458557866564767106926435606400407008150837809953400706772023041197749076303768945799365768554053791741022095415236128845181676791929174467389076481500942908028283140277152288625547137441017723339201104933962944224769957926488096022904348274444399654947439108993282487566675064902378723654811280681597185903719519709355809056317621204197415174081710011452772592550304417229194724435784013481895240195932563054924474537571108269204227677871973077341203981721411508155568502292711222789922989694722023835926098262406483889817056202489486531489825224225230135064830795690962331576501921814657742364301300087613274922601613453334244117884727983371807227916079298367339257918486578960930516396176573521142958749562019762346090731007239197945527150575655141601209730992582091979252994258575409354442044646969547208596597602242949403940114487764647247669539985486808689576178424377325665532340231945142347373676302440158519197759736774686692971782909144312549671705630214997755756210918507183585142877660065061562397257403559668811980515312349911854703428913728373792832855419736146753505334805852701068306125494492924467505083312865540857990011505874215890445617148612696213381292573085278829358043802164085020762567644192986615454058391499021236572020939245345391467423736264379328979827225300660396618529293572632888391903231012402849447552199963050965077106173387035719043815415389066167028708573518771810076484972675283399636387933038936129971783869986303643572993205568939741509258620284024484572533759071584343100189104940706046866272573178086889761672171703865693674618396840458087461844152289663887518685384410439669410239130824885462156249942531385778820161829229881635782242639372551552041092092461524207132929679237190566000432016218756224396960749737649930540907020333291694887148730795588308635365218941719914935255053683597392739040401381376480259358875326897951314589003887525501581580841573153804686945878471675915817277371606899125352098565168278892653330416335639541647085169960026570191207033831750784097614196934572320859062977893544370684399926979829252084865898065971109373534910006043146297054756726501265879863506278449868054417723991622619089227275654504029852235723733691902158229466735580321825202617433932770134664710103768961014433663348655143056211617573820627674028165875246151337480118948275518640525980051916979510732542692212771086401786916390359067113807986926366868534178985798183099719304855030931808051937527145463564143692348499945507646180217557243946645821807156512756558002787808753243725200500331721466690627101858300544986018883167949911958613731491249851150447369953347666307225138001806642335131042710466186848554371453543327364244388242388487122875126358443438359999490931464563453256765499842596858756775937433758435684948246416660519758064638329461721450435559055433705123776600917534749188031621614544619874777710419883779471081165097921823989540464557773433749866006806404227533651706143762399087420968059858345384601655118564736869678977208648400360471891867508887915042390403728928954252603290484283795590815760864056760030880985068406391304673176343598669739524526139720760375675928129287572294617774818602981475116291801001348292865202094094243220184991145589119803610447239948645131287881895250448219704176228738280051718941314926702899848272208897545631987871523174485137670109929318046985827132487647989589758443409422494758259893387822393415148617922299257713512528126843372135619976448624265863182127233256753267529519166278069918545982395349122412456958515035515670584004906322245592550023791993124046560557092936151580003171117067034132590123810254011506233917905866925626541581017252151985722683658292837690808515970686711552701674306216482830002654725569535814542148898479706025667446109112243405079966828087663220920218050999484404389455654074424625349152341535083059882395926642103923481973257664137224850566856887720650179334165038740752706578810866213235066453122859958300186511160764831460660152914005855979442062609835082116925316187708032462692719078966255805806749550370035272779796737392166103356336849878178046646559418430143909599173004297930406269037347545465826191009972170808828502135914617110650881011986130280372940590743094967336511535194069743709226454493037037416241137047063999049821851374284664833199144745140095560526711414204588807387300428579096805800521858202188498937725931091809538996893193907365996516073893813791057990520722168862281661414932762171618758469932524452441204225233152116786487820356823514919319571590809966532915093157521072268168195065787758332694384035083127862916643271283273315841395442912138785958850601262052081054982920450497098047026224163245675001223882990213822521440119027814407684157266291241991179700601659512372425799270645041124557049695543171900916496327784975884523796643655180615504180576581380402635589891157296453998939663809314559588067601346475446459007875958249471086832846851068674892571130421307732279484758190361719647813714928470523398863352229757788700835049179154908180384357786057728114443506819842783685817997777792253657337957083610496786156617038450877557743124289336342897284248640967710233955970306360955278835734975575391507208097412903536807849106877490946396056251565519135290953683575497943181146721027881226275879692832186783024779555587367508301770544376451568467477383836679816797447338035294134966296246181411357434610458127621780870171942163542838797099023410131417925049247651527361187037630549621571544534139404710430535165371583232778556788438410372132232880659812023788347472364844276920386437794237131246563965069171827893747061903569829808494008508556638779887261307002497100131169211537808023608879148849312228180733347321278261307678799698048930115518126292450616699655975866453470041796657557556977912582594193050825890057220354909659556765414519377420388687320947800304847461462779862105752695105140941659986843807238604061128500390967713145595380518086692278139010909582091556460577112483586674804448398252534751912503662403761376156095555231094970422709762077569420476643878146624307606425880942871946774082136301178879885970824102709257894942836909654109928767431364238682543153624369421718791449616247186938321522869690481733698460982810920380403521181850469882073809575683977914675687303375232297321553571697931371174231570758451503394711989498985052939274832779265526284598096264089835340128860294757102608634274169954489323458161419271530668457982499011918756286851511740487710491935427245120581167660586600364917828015570646119878528653881132321362665175861570467533086351215620730914109487416852592632525711227169770685488885924422889488828671560137124345723369412267357361730714453568901983175006960274234822570477920129219794490066588331173239058824644563180406101807203940970505725781297825655649689541049859857220004149977608926577971009022123172165631472030417796656919347114495013856343454974230655541213083046741849074076150848119590275440196328590732264969031391866246210970066560695297639462143952124768416821723971492882829430306854635117352527950020739255706361291735103228845609657924252164574942525754272462501814327006500188886642871026775668544965879612237918848237086804336168380848796892622838159898747088629365423187711648173979265427154838786914571829944432719434188584643024997322080266209166780812480487251842369620823640206629409049474293646048045191362527959802145963183609747150117942170364521568331395241234445890719993073151523717815928298539345443388025741295275621533995313608307600854530367027207821930836795049735852337949562332848730232650252231806289631752142783462497688817987938833340321511290473739983634766600638592920818558654584760986011695218808298171232191866964968306767314708367413118170155646492246456281594604513337394531525540630333077231113255640523891896166393902888541898683461348340408988890024636049264307176931970850137012464543772268762840892111342699122746153790441441444328266334317901637970920631883931981911704256767630517107991837145601252305915611451461368768140542008125974668335634711402330242298695590265675412862134797436503757295726749308751212613719465353932753385500365501168064674380955665838207384087272892736896302285827890287232849609012743151219138670005208319349951298730530185161496966026535594021355399945635800675838133710672187286234916923070391949878830753791771112233077498372909911945070414195299234966909092106139084454438021440046515951983904246284979568744379410954563969088399979545744144831346044189233141217281155646229842309310111890297902338817154393599424704462292450508390152694298488777429743632264121679050031660472805014560967465937637475450385387688070271196352510132065965711545426685594894406188523444011509523900973932178458862500283522191639225628415444739391188821720456277658077425907695716599150596659139023424448094279597389944096478101754609373053576074497857316923359726760884797740219712220977966695730302216588147581022908774570524077631429797279694096450349971345899289536750659355728046919675293322746624867865292746916268884189256419734669380814756762305584012689127710588962303296069814473795674496315818734440400187628557289185755287927337839115978358964396112597625143400727846575315271081220722438223915821096879534702325077976985552457018623474660450075020877098929046772465963054219627668177038247103554121795019365746427747756951594199164222792526491890777999444361969277600604223644412228042292698867967225820641958276846326763735962454915529955881982406094903726741888885573531364994379640629625977433850895592875869055854179813685293158567946398983127295036880191038302284315644313133773161764645401748549250250077331499388164027034556264870324972013218470021090833428862126235723589033367589867865985331944755276005064649529947021060535966715060234508298230943542453495874980544637641935595281673771817490399179972275408000259446630216125239927099884586934660323646296593469950568253795974370202909154950466698470273200576993226979231051233160664290367360963121155282554088455537190147174239976586329125137471174910566464748163080171369984752471229807473737574226586097271863921125935813628116808610710434015023939296122539802500406084691823608294266776093180572798740788441534413257600813704150962895335239905933534766425405882399335823025471895441673169903957210988319917395257748390039642557026519260360027482170985050754008373607151867352319625559271738104040411537720454668034166388439083219071953466638421103607047327576239189118189040674219604099447741489201089922888420252522768130321731156557144851704328891878007953588553320704638638350085041721818918850169783742549089455732830440055926643728730140472300598545674812060410890278872018626012975243482070822025712908297250990424516158279426280023900897757529319724825940231948040685486778340439604384723280016523433461590767143457333945597590007226516920448312629616143772438251859316993664995273689032184591140519499008625203489216025163267479394060789718184026872395173772934013088578243027713261327557655353379565013574443482313895869785289465738676931350484937367221397397234790900498765495258578335420562401335457036064534133003686771873924526228959642177853750354945628978612680581146882333942909939504205508931967752850908514171549959278521497005154560154770602671041727775131786599632479842924432769712896349702249311423079944840574866471303919759130378936191032058213690494786353294539707129443267106998049641888407887857123409019775448110770021989849614532581416525879461719243595315979836274983867741416533941705516779384750256525655783666847113578249577068946008480912121399344003604284543876633346057578830480262427340795049275125405670566493213589396885106096821511379455970414737542214716228612996161138175963606941721318310787972699915238028732733011331977627012175908310327332815584038560672715691251838822302146598749163210638853413873470563675125690644198763937976723882937213005937016084453750694930479191165211041976544148669024233957113881777081953517824488433324841358519501129482212296947110487098882953771274464301114438683327711360576669814137802432425857248623987244024821129538057552814114816891782346552415695488949088454715323435545209219653383508042552609715205988319939793605933315285841300038924231689683855925116707322120611492770632692035395580525000487939925990562901985888730543090152610247603487062675338510265421936732169302973418670565296178404217486318049112910234957537982709474379154135142872041284794514103201937938143820793982471571888550806025081634749185423657695145277375916871038290318335079658845797301388635641225966254340354081880056017003875496045522310921327577231025476319264877250729128905175224838749942940827537880976988096624138677437199851621570514851083608579538669764751621763746293261617805531834465821050525890012519340132881432665797010337817708486594831002167732055514466631975050714267433053045572248558222651774180653191269134829391825054341381760325070839138892409444468831199075895379273969912003333023045432454489384382825613905546166073127126757174855337551425242035807485304511081170946009907732944894600320898962056929531560243774732135816701777307529808660991669347409746595114950126424430758380321027686861155549277195975654823338420273282511457844427147295331963453492523475441784439984591099152404283868479688200023411251124778713957794331911086263178343567192864271233472247327017887225741178831866962963214129966210001624932258980724692931299242751696347941991407041390705852213778644082396159861206229756986619269596638331522687421081092132520541756973602890651051847069605749887029560418416164042780388558864182471772503364954663557414693186374052676366481125427800637458529975189165151109372682172636889461100637159668303475108207924465205496188194136416543477335292314049388029290917305237540679505939697129812637954602506286368880130349985387568247822216667056934798278420439900019960245828780802812052599744790631624784578018679149014649341921030942385372447171651939325273824583491517731852808955922487665047325306160450329246734245132818953830467519213559650733001315467562317991936770429539023381177025620512867131813070789084539511002741323306365033233685510007385342638910689209247832517766091453171049118684990836981496864231458591447891027061705547224718121462276494969631105126580894740252296625106566489781880102229135532827287629881513443545252565114049376833734638283416000431496651095242689612077050705388770663546428802186362304162097203953738854375454266096121069281962950501356428364136324211494931228762933326688101028750948733163502847952033543009111911894693198554448241745168314108269269312214189855565822765029269556962664698678335006933754893706529581240334548948852748954742779414751889164293648100890720612932832944526278440708557550911399827429864478700931498079157741713703196055119367646444777171009208906307913821637279716547680977637640087618033136048826064443927973006249181485857219297159141818010994091642388566941347326654182737762284687185036156612995754676193907254932943408495354543186066460031654753009884156500847816469101416641904493572538334397697061857998975591283997108041637492485243363798023362615169237728126956751411448967983795036986356395803702582351241736327742451758491931610569847866461405544318672617253958406523464527813061835008079208318987076208630744165159466356655281593529950619971758537297897586439993564961540670477958703333128165958051762266893690918923097330530546623035055498986696328393541397915046633209445621092063584964924163094878828390705469595301981618273286922879736057516263034064804502216436994902407234592445856811650196567642853737500792571179712648674617460083871610061232497865186458541979848984324336928238841838710907958651537371790150644101829483946696390494094154213613045218251094367265943025952188234909654770974928988992212934242133136797414062496797864772657518097731717476712996250513899869837799277148262151179173544665082976888628978069642031417177450819092663389397226248840244130048147426159920016536967960766175808220894931037732962571863898854197418019267194938898164424069647185073375990247413642032209621079089663977989228580485758009397422098935519871757201006254310828457009496102312795952914880091064114400317536479433048959316407145016975084855463198952095548791613035175461737781695017244872793152989008547793793855589769648503747314737378492272034428928807597610435451159995873747555976641532277702092843218212252804964618359823724325152409623291247560641883951428468417636062146104332552165990803232590363713364304097577650166777152975007942016169504601163339710535793651647078056003210918679468528619251614856727997648719808958144336677367104192613868613172460693428408607553244087843043999842816464637377850622713472567418594013574940678264529682894883637978518551228846582922496830861721154218543510410272340683640439628608443599128115895687990344479761797188567370412872949218163299438367595894990064687330255511348774072633365985789031763483818741932358690280374148370031885366402650796400774669278065042548471406751715570063131380500893432612582911435808407671659897755074080794566795385627393529457690461207847250096467246793281250726761132277066941600276669027791568345033588301880774564882817267296035417776554225869987029263557945535892909636434722583166478732761496300546452195011882249391917808030146046793354966954367314009035677353452536765658109747793617093352791653185742122624743384143737366749594669674385391585153940152747450785777401097347251022172456257908727028554482341911172540221793653911302261011222874347255964828978565621536179511550876905480868595937101694375102390627969986422772041305480095385825815278819479645742100177981814901727110978886096605071905880703152373515300650902280916937266894314468645503391948184829046994269526872417179314561900747376584425644237539340294283630394624069263524370785054054136058731067341373318959914257795303511077951781302868600213050293429852836305646257627483074162766859296118096357281787765458391362813640061795897322079916080463071223659748598333609840775930584023251139606302272427467952733561354158200640244369800003806886897564104583032835404669488888797439972430555473093317685853045417775622962004586383132644056481184665521409831649301807272648654020138689144913141192401700311752877286434862235621751548463002765516021917527935449926399826637472909112515964386751996867538012903667050977495925312643515492654338218477959484731850960348215487715859780449270098992056659985721032323696745889403144613363430764349718843586060123047311108122513655876547080720854894156216265742079716485423968577796212050314743434601173926353682395240802766618992655978724816822329364738057813111563395136102339808359520603698770251400075126266552511429269604571760151387727131720109990767653636821046255755474145940971845786160844452220545425326165834305987175609639278714324926088378902459180636722260163593475702439545367899758351823485042570057630335010038174424547944002654658776580418666508303278664207945489785337596758294118265544264383955062194216647349568918507473090647722533367448574064877292913976476099355878582937436094618499543291451087898025462515097110346082820254836117194200081619974035234324351738989220696976616732571296939936354847067089828871064240138746556019641533878658071651193097956679086178906795559269102015375127391352772792254343479371887754330117851839699537769669207970187392678559957668483074460180572727927185736194461446382017111453267404552932965389289387113962150008231506725640263913864891486191193868115088127618913656820459675902961161214312845386607294397482851987636587508389760334959374956221842377911929192795807402399400437322368835303998998825134012959888480521352897735567789561667926971158137220019391569014388478390668444065244650657893094091799028359834141229785760711691671215827645335822892092530939716920614776950347334216378159875485831792195712383366560954456853427199592733728938649653002744986242535390834823361845803591756167043270009602669589732390537747918520870876209931366618509603636405444332919588801811574249141911911383982372545854773588030543625571908047084043922708374039332210718775741617365451389915183424006712009538291166959850171459116463600777469653513973234507172355206601256707996897010767491604875042874930293717924266924529538459074319106702216382431462247215743903935811615560569392694209423977006774153855427501828736247813336699252816278532543214766116526375708314983651999799827842332937214722293236756213976973347754941821088697954146353048158252069983346028508567514676781144805305223474171452858246822829991282705049027521651548257945598196234618800504599250174608854775251038118845009526153310197352424222694958798681623437107218158333996106213573439126644302581624438693412160858275939190508227524991869290606368518821940960082467814597498826748134694838745607481566416332294515503682814689365196479999185881937419136807009172828351777396800110511692514195304837231529318355329389810926641524504679122077242404409939874601193347740741931841851795616583007020290586570021842005787360915141530082605666018835028391381906753814090324867967400902836587552887063940945865885152414438453890681700433832071797176750751955219796434427748523966383598650952735018615912352230519723384056122297521683830901959592084950724485113680657911132944356928025083924233508217046488578570407367501633587554394317856790969746599021340373622618808151127744496320823067788563440540873989677878318572347131768115834107100313395226833810469535538753375895689032740398661416956845031694084335767779326123058964540533777059285379551121109142040183302089672865965332633458440155375728654896725902575007051783763372221576345153248806651301973728552731681985611579359783966802163822856119349103501106540178029055830790511961459192796068827164486912712080769256240916171061910812446640452262939000991009096362444182406393281529265235155375826570950110999785190658968305660053818074114657827784298043209261147543883272497605072657431243221982878609655816256317810071002049812857750341238794792294416102439153628641460583460210783884550699334280338638283779502497464740057433758968469767649899988658582044806916905168194445205424801721943167799553909647181774765014231416290861368751163496316930749441601905653626730906184098287256366329377112638434075410247716219349902880829856378354917659947550156275263725337195308726950971307432938851392969173916801513610002298296489315899715950654065661013101540410466873175358605481794943462426782877500914689039695235130804270030884889874842724909234476602938098321531079051950896170960277964682033654873003519251138514308403082051237881463842514623749303763911196481458851367589778733343800663774524890297536385747800518732616246842075081768401043612559476716577565841084374801541763197299408018843712458702795308026906903319587814638594781803703393522612542852786372593852746245908430705490833276279844846019920941933411181165956026061705063921625626695273367825474686262848223556877746669379760925726222055577896741288005162690755821470593404512608916529042296189733801960141209715740013508225760611971614600167742239733676206489781607189038079397131576173571883486078434883335805974216486813469836045727968886771809673908212979418098370934451018045444676952349026394500276198224404675423967449360925361067355297237603362621598368197689210633164174132658042759537366547274563762197232043108966783226864922267088255979862083419389771352052934054021906475534117934301737566176187926750625058363120129754660721485423252360398552136479023649988824430217351679741069817835624294318706761323110071378250484024554708940191747278341662019194699108501060434724257779122002616439128034546401916407816463827286008894797036661372247265559065924565331744979244816751271516809717142770591701798723780837494246593037746415901376613591674231912196418689070902281928362539862548971947737591680450202812793432502512252379482102474655229481482603146971802862531700746396721085477461511436436734136329771274361365317877006976644375612141676431614611534929388312906685135002713621581974809494074551245512461283399011646921694522834751495672998840562265343949157888021936238862246520641712619882415332738566452885362847630328079005274162303854301563863508792939654555006665147755535118792183336388006601915482070953411458690186345603151679784264527567375229024008837377962331112530738048714225106592837712728639897121241599500804208966132964041120279036590545060997804585639454968958731055132258610990422487495041230651328130195429945215238072921420118634169002687225614832768187946322305296670165362182076403077635471545003463802141796583349707409438954980678987924804999571322002054034944299584651816910612517840325237768395486805022801480282667676990383221377937973022419132557380547646856281871651227216665356844789294049954215069361774749758112336035776038687511426530002087678748751809919734753420809721469785696832073751209525481436076212456246513916905404693296168918167955316335224686577852913053918061518995752370542321514059925279159877312214056377054857207469308771710119122104432809023620378877922370189574145680078536772334041560033590020353799907367832112669115359345362912292000137663225319265834639477853869648197161763599158508087663490672998861642543577997968157783831259642657759603672150741546520642132318677210621191057334037768248763696678998343860376544689210042879667852792685313202192366191815184539408132881622865066189005043308969210075625404569412142164152992471105879479880328529444006246106044743586547792864180457565664049040483131623063090303580467628385931485379870835659704226857610783002760761433287050504186802699031943691324331159567549367298621563806417577312419334753074823020014001097991621407411479590314470104099442323447501778944183125792070129606219532929381367017167394479437422582411867917163426208587772116378988412218459815031590644455676735404246848761521729390426041421442091651164731001973155402130849806367560341233609183553677897269550482870721739124383063376695887937794405999419249532394706428699573917741432850552444039442284901317136014732480081988910665385265702201855943731756882946055661496300047048272262862415333584584165108703203194218644447560322404545889843249608030360789451609223207251433851672033098472440590868240863119646398058869990072047048575041358146866073469604272766787021341272240065627348398878026357150588727341471243382574664739100531321736811384976744631372463283629205764395187165809803481306038496938009635331955469708361066590335825126504249625273973585961538412015378455194273914653650931139798426462071876805308121391293480577028043419232573498560229865751219033374520144858135179718642335181560954857151140872735928626895476105980781678761705965651824159517769533993257811299830276675449337601471422823539276962027483077121381921945676159198937505899949830741733720354346384440544972246970405309339113819307478733234003017774452629258204197109977837220334254335576921427343714608164172170857208810273338310304256623885154941104069293359154285479186021166052717723733792400831778131461966825567926148660272663510972115159845722977229152440752143933442684400601310061677789128205231546914431650052367527777430095511122516366584183139186945943081286957027292251687885417453997030706687544865204396004435836522190188299816995084733840625840001662097523307390779909598434167962425314863565469028130262040296656426970893589435831963748117169709974708040753372712014000320866879464499126273626371796097947426217679325796534259691165784199103855727126650135890559749373981312030476853365760470293145105880074857982368696008865213560439386543357951559889254357390688218949198434167011302585128327416985280374972499036819099231984325466619453211635690938032495826753057450026600042128293683813030623806962885292532119592262626512655737443082905743093092145893669859796537865339695269710403215028245893301861310088215685878660269834057422720210546570720139451505541565697482269416342439362396172291317965531557826579166317920857104028618568208582529312895842498013223220752861150973272562006930088958333812791959911551028113283675504034571273385855012782745298675731481007511605489883796344778705878593031705056246602260995946334896846819705941620772313394841667363518681393963681368220931038929829610151002688230357152933592012832920878645236101019372662970252412305175986078423515221485173117775755388339030121907909768014475412619316036689611608481475197710533231594781030506103857457420951549523034449960178034056107153486649439670909810435770067266426325605652406649440434009251509979368902919577396586415386753415282556610594729899330077865883798077753221878333382362468517483496062719736871462310214370680603601387822289051435618249461996430262456274894712799416056775431103904293447486398787696927599217224764061851685980345861116497811407429733477610146782625194586411328072786901998621928848185066745915397109700597531610386622901854148380675512501308771858224677707281505766617298814956121746474016206346259569796087784662535381305699559673856843972603233919338636079888705435040281609019780810744227068779793316488334217501070788310740428964390052598433858046890180859956093866987769262999865394610987410816752107227160626253902320457472212822684113710026437575611197980769568996938011060711151247509906642673419888856488848274105760226870842892456910251701355206376678591922746162017071018077917168601806489656307597307881396924685931254929472818704676990308140099878584338121324344674040498274317230714721489145418936247567407408145193369057413990570533701686825676960236919999651021752410588759163231035184359714366060180100251890304514886555892079425441717944038165166997044112280068908027757843101505843543043356960879020688807890225544588636944399340058791682816057437792978174326766322669668854451112861310820556258988566140819446995694086344965738666314691916211623870960027910614117712189777991760997387953546665651432252850669651449108261659365040370106961954376992782148403607844166243805186822369533248347858735072449721304399758062793163467925885315510859091739011050008067709519982411310602929764907121062085141331064116739289990227113512566901674478991862624448922587781757214486167454840059512264263132892130913907169193508961292445157017986779490174210507235651647359119099355396022053385965313246806242329318961898242516308415460894385242376309327174295834065764690816653184517496182640669043608744881813711831366625718579472462995995709880906523672468980818723413504209009856108441917872732365553763781431380776207438013399365233275858562782676069315844635937878699380323282929992535407516576256563095371552547489598963216241380627475199695782624601594089807377143020332592123538658204182493765958444016240849813839155793855714680859239867422966334913675105874695898466719795638311456837931376477885160482994055717824613867701344194494690293118768771632438587121882826758120556077697711903926632831117839883710299747654215887219359393609780718828351931715942703544033909118433001864690157820757246334025141624447122117897622453884753845564840197542307742161711739910465073529907669685657637178228688171378786277452680357111461157918629462414726616959570758357566544801811981673459560345663632434046099324219636590075646975381872751245319061870254478838191322149368563715359609852937506622953256808856781707255057125406800812536351718315756053673984892089909578264398218519249445585875011671955243238436115112806467398766920096206681917053953699421221461962766023792133243820485243643335513340800259015128444801300149429932844177033375324313410558983730327534905540396124570517626480833351520751392481509416988562018502690533206459425589293422312945289145414502382217179493192559011785476337474908332338686375598714668210765717622058777890506300695672328985814087864859873110033890088218260318347996993792158711789886403738257506282842317807928359777782173399343602627671390293345568488252111981507735426617301196109706620855625073624541309269394046731662306407835933665629164500954961518358520970427301984309277405266281423662666418928251646747374820134937551530509949403999617048385594312859037809058344681663301642101427804446025310196006568566799379951084220582249892912939985036158755691473643517594679924532727202539803542488638928481955239203118115822096236641712090995810732285607095576785127667697878167062372647232720022458913462228749503664040043859578363338035090433000383718176218616326352444292975108723092046885007403485122501800977125147952683647620879585953877713076436913053031650288125106498804843200524023172788088658954290000656142760731737275695637518802075802819064461954008961015682213509722134947427385174633235828756367933988739159144247939116517958865076905345073914778703280992798206553420076426768725680339374583549310224051014221701018538216233720188052614876431014432414126077228866917110937861945546204240346185455347119202767172077927596754995759345714355955202367591878730115153470259612567276102888399559664057056646430510590851118348485236839305074981021489650299416492325998558948515514346688873266959142491425477124802745704418645889863842126528075244891740898050269342780596909782517403086134391776030289421467671504197352378217629438720184176319947306946800403303036576518132852138066518350499544709063235920571388931064291056090605011291465236271334685359698097986849032862608314262381389245901745469792499794550581762497231211633474653678917051863666709601621525165895433727801797418049809042572930532216605499440744414569803445963190727283067740427374163342886310908904675844979276528101220194372623885741544437364686204526232237559436331790979916891496521004739671921453371222034592073370754439753181419231947875307570899656751253144955652299233687158061574300810014317452154764080207713626779842569098812010275228236304648889067894313387055317127463213838907717459619117682041852154272244119127905623418770466185256674860906591968479895564916959372499886378886464052501994138147255580284899161653313593842620170185094676424649115427112022270488334579387703374917743059903031845992728836987736227217919742453208259405432366085378402314918032923070649354456599358165977967845823767592423013452734958064347100784860122899292242406414105958136456617425261979692806445578558822981623508184404912304854324290825453322480807125851236033012942211662775767246783655421864751230075472727762425556055219168245843333266216749126882736438787698606832289455173276767882675511728962313504429320388023964685000025682257464662159689781264130430124484094664509663015224988305213284930584663276432119779727807554795058452821295504692850271243593930839405998372202658805268697797649094928266102423569818176120930702262820248044308592495219453424539152575255115397310321128139638841226421436484440689415061621286187207553363914753955829294827801019978165411426058579174494558195380479354820903324221612179959089242158496755895237955277872427194336633203084295399928980860879074310711422182356732234620464384624519013085818053903118014637297164024477873339876039266982062274437743430600427486638655617288569635212323467394895560236469605490932457213689042786521279400000828489552609551409310042186866161734121437294122659250491224842439442387279785849088371597775531968829293158656588273498549492657760184696404529137539624298990455606285479100258841083806088599142488540878162125617853837289936700706516392093388561653183835702454298998311556215327511954688611228767823375084208446793729682683509621841972752270000220634505746076622342502220742975905629210012445813264730691059782567478482746222124148038068979553603342199439511353736178793664273221029658202781698572940184071216784491553490439466942139768072848470883199010490538428360063555821703488694782670834205360007837235040110256284223289605593322092842890880428918489041503580026702585873818882051824768610182428466991294720231692660472628805706358604441127260520538771934503349339393429328469861598870171671810072528982121843791032827967983982814356186617375971012164426325953804534107398131700057612418772774284713361974389645731599493070632403660162051178930996099408838617124197432504404174924405978518726127818295464728408346784352931356496366177190430568071712430270396989750560798441996725486453406527292842182181666103499531458423762028699475068174955846033356951774276893327728158918681456940148050968823015822005063173211840325643952187320841949650054651071544501621692513995938109008030587865881048462591100715924801624145626756336290619826014667211227199413560685380972271003796931318436114294072478852482783840934904157376355631192123758425645671715153471145693893208491865475263872270691713298745107743836745458138591350335429631363032904064848633555127495734918560755146052362578529949840647202835812442441263959880847002115458440732841943984580255896880588422867692210789724176082104083654316137331564220820016312744857850482702403867553357970691314861901247599897195536538996653625633669115287156781162630894223389393923572511677137525685817834963033854360234400283952544105725056657917909717877543120957575254746053491940777712601792539416644577210993746515998886496899322995825384542856494372421810042237639973274665566461421516130632299522814827495378275466159983870225256818427026798357277217984431337771801984738000494248664338674405628002533705156942512596797560405010505758484545495255115515363802045489099885026212082317698789032145773880553812967828577927957991871597553151641021805742236196347423368087787495783405043694390376096566075497061795885930605473206772865568191438502683715941674812304784313908266385837537667300092550977552086213054147154258422786058524659715590126354950554309574549089758003602857709968577160525487844366906302439344081134279895525943389287822350162608084921321656866379939009795738216470498650291758003747356474512964828695461752033320614966719033649882166937877139615311521962093575548118694940046560346180930107196315087275714120834111039622517449649133910117442892457016108570554006505154098538552067028809499426408443860594405070113306815088364210756654235041003392319021169141518044670085847040914825799065025679889097152312839495842735112021912461419044469492508948121989461487941692310408367655520617654964018031450576089709272978733185386926045438669851557168159885595007341299879042993632133944406628190950718812234334277317376684817592087549055697465704118790712528480840033626291510077504974040578453493899124168607637765396324230734381919824207783478348592819040424480843762182136442970669733338575373938293156741034036531602228532327537977661835700674484021378042977773341546554613743957720567532966712038139929072638640705733034995187515358789194247424907881254250572954848537297917474532075758000467645765356054251343186286037408053027364405267490493248719436128813984783843876914052042707680122275450187355371108839849001275616742478253157725507530459519956299565876917867231417230545741942972345145711923426700280526390033608822757596382627947910423393785365172016057831757829589979090682636276299746633683114764743986429102555600314850566058234915165227073197912637474667743688331430290744148083348436706483064168257862256675858894532697679563194994663692950290464591775041500108637494410257324081966595041696033625539125544781475169042533162585082984491464579008062678242818108742084254852561173705780900585301438270820079238481164429134042407934033909255131107409418005050062048293404164470679899116571621670810276814052110166966540900185442519641086204676507196059330865057688816342476488510103440931704323919375431478239473079760098398511381090139266430887118915498298140893890371348413297835354177237823704010160693562640744468303115329084822231478002364999097998282036027933420728122715635197965426935957750155767258290728790173782692702263521694825836813104361974231693798268025733935650018438706403324486269438081629713839049064340539752455278438991722775199004792067485352481252553752761957480103041523307697131502317567689185744004796411230424088019848587608485469537249149122439579146743393327681616293376202051705133010737305477588447974851002351091290583814089227775509401084359693998854682525446465057617762355886739234367579149442267394563577358966071265701784842129818074377707822042471323858026702594173061485649367677050355941258696093033615302249628054660967301726207228793714554048560967250644132515814999896979796286211098120614905566219979122272885469137199961301651778109767231461329821669118132407563675138008665155358515614703050441516574659470508662901791353031050447848973078416265161845779124424831248650673370805630929540495419875651660705892632118239079447794787329494104995742910253109868472454756074381433512448777101565655344029592519681954519530489083623678519286731726509260294320783879307316130367946672785096052817606817615810819211774083062822780409471847975059801470122806257788122776525367499964930430587454600733569768050857292403837996587061888065987481205843493782094944283055799846322767094384204838250562655705975684452097263149717938743607313379926189647761065782390074343217001387727670770950955840584460705714245480498090217583781943362465222107806412550875121727270530406735164151559916902709172843110945434675017372776658544433394113064200850168824977976615336340043915244669321228968348813899304037977395275214537771809520069208345703064083708597815467965864686970103367971433816164906110264699820776493388274881540310622373029029733420074493513498959629255561410901509863133981323305014292757182624605998977066922988118374009637142550391167023865805452850641342495446588932070758405166985156611439483815325825084566758127807674874729335275380744207573632291858750365222650745251177398813590856548789367097262973813173112959391864982087474486482533918836779606198319256459577567839098085505115643960379536543301593848875979854029646013810830957761291020946827414651765924227768588535574842830634198949004527302139357532892751273862775611206879974547947208444264271699222688992350263417651293134907297454005706234130380244001917918083340472250453430594618322280667221866924158488810831761659370033581799528275044689265679545448544516284950723730260430814208817159168940476694728715935553563978058610546839916646404225226437676808820392152274217827133673144504195902885670112802347946911921044696563474726556308928116149146262338766976219947513314797018341523104445084633719858255708271460555089168788153071163728086775706852364851769273931659378051546915687312074376289291845251777202599213051089775541066784479906186521085296944905301965723683022268484029680551577969361950689199373366038627405426741542603234164475543106613607830511785251310830554503070648060847225580776136468680942754537710194627779272765203963196362665629903825668795135482350317081050266441656237227175962697166280194804388486441033651046697785552583804007333756043796573838383527029160295549731852027218205495866361017229511513123983723371013808673167621590372191579311198164744756727020794002893275864626452958832645707126295100219914003602100181677022300001397983271892797625483874060418511167342808563152273610261086444033926592518916904194414844644253375281111428011062316936265152111517917647341512974372289160079478177098972301934096407987702596072879950650146553994196135563868272507014985010864575378513466216725095118725167865344754559492917402944868334430491213490656036839348945508708710011711662937794959809955588724210246692935437053435081360009479645738856735727997197788198800783628436965956072585832580464011184622751596804573673420181330015981541367121557508163210815406233388711786271998173509244397352844632554431563685727954448550616232475077483640490360059393280227343101323117252800133001161597174479790880238020210647787922346650574935474642598892322184212836225764561256900758749216763392542485800971259940191465457621704388639226062060826233273463493130786671410758633585980272759813940370298529959274287997826376436245381579638822363565051431980804112141157077407595445337214120965720728572183129610447631416627953985440906474068356466095063630304695804995461949792341203008751844482944971469640214431469778704172520761680310872928001767400730477389947829959483683482630093313639771377855139105322882316514187461597371600704645635342191069733399457821723498777062818764753700428752236191221774844625925985131558618262983869399666243380586216567277217027578514626091633045526920291450506622834090643116350085439142727970832613186920617494640911596351089094693587259918452217779949911902373330949402462898853199391562032190964310903891341858440028189641297914388465045478745681460499772146629467265655332721549407951421102981251117779855860223643964883650270904489091644789421310054425356093659682201754904112226721999383377905672375918875619548477433242126620503386243093034713620234144691510311383782992565716103595658856097551559285815797651560347689680077617856599014278445868530584835838271578816224483659798553251287025262753413534229200409890508791599737941346311015505616124195506640367967856390943618764668361724691111551352197642903941449648424692742728299926567152159084422328635773608679520489023784712592735775428696789563792805367852558372929097945732609010176480707008316660789317344606691543264263291414144624993304414915577727988619298335634084195977293918699050241707244908707586784597132895665521851197509414420784413142389854950780238259546052739995059187793865240936754480519853297615837827631075490284189023371430897307740491072650349659977911606434246434428317680557636633496512787115704896436408569590622572639731114219886344391055587101126112525541027133701892742889937057609214683396550133272561264522484041163935163936266216176602649153601191763151636636001173291718555632061592846458192655331322650159981594061132890412736139835276346706595244277734397974311843670892083221513029557301508509903547363485888871528227602409825890027749257614082185185340439275785768366468393666025548065475271977741189824616521008988602489192652053254302280694253069187899781696544422509728960131271052014989111210697501614948741883473693217429527896452779631538038878384429595584271837550580718146385318397323796999008391275832945939827275266550291357171487477112765447191961147571934356467372418359936219048633814111938980869345414899963758490598895724480391769294799219383267825498761782039004048009010433421608894438338949418113870903585389931951472557599423713726959654330449641394914353845597363416425858889785447303969354047739048648929587636501510529951814049960870182353984675643141494311898431820020264529764380280148650300700798986983823941299341248072548783259628291587456734651923896357867612969591980544442796709904440007229539467570616318126897775130279362911897145743556353338172540226045999946656872367024948512789345855544564152615807002992692013725304705190022901365861730426363624418841565960688024779392486110962319106024180487371428152640258733339098524232284402599040074638210413619169498367555681622648794474930919333505636557976619670279760857682654426355284233921799235673512264781455221503617485262912416657740971971044493461028051027118131720062927510259781078280716628699086010050930670700610012439056203042078599560469065907694665055899649685156920238691517866943820589348326297134826814575936082926216628518950950946352768024321493900068436501373446343016547014456499768221812023606975271559429347245009905589123832199220261776838830094357073483265523689345546034242481988390648405339834577823951147818848451346919527259201757542190828573701487152443893836578893783914397309364483920344255438853821640587526073968804194069913726531669563853881620180139603375659947625730852525462434939917537111043354733930098289264946156622099356008891301199419195085594433159880225040286472421280084864141238176467015488273551677507188221874956040617558652831576103970049739595262658849881409071616559714412035969613268544794139396375184560793352041645602178471006781949148162291131916024799422439214336459394782382682539687687740157503280667149875127177109622886409906218362891829747622392951053109442245457573045589237964607990362330864035363085940415483672958709314113501712662310168587106890753816533958409875301618013394134054281034394239563792425467344367253501078106495320124473447539263722879577259700616590330673566490019317736670749829453593904838420563788450529176654400931035901113922810500985702109910146192304467020499223400236059194186404066952474987566100280669644340529542321909430132245125271703128393253224893447128849493663983889413563309506189331183706064656223545831730744604777446706428110954651299283830886911165600180727645013910081478131162312035682185094925540618245554805877883486520477174982387237995635564939756313115940557652443916519843087211336984290635812664541355829353781756148968986362017094163627135322788770945526515923209795678286139564429652179119224684272252049296351506233344479884855680304813316958401093779713965837886447106436761958020082930997817820273371344852629588944738527753427910835638473441048331954715745756509157493930897186382767862532857542617240939405859897379516049875304172322891074658791890789587443313130105832617613836843229791975820760125422320344486348757966489272118059418534245297473921848867392925000289386440713550639416519517716685074550673046991676028299017981429437909032436915960631873148358009752833176723802743915502848936846444818374192111399269495405043336870164491797268043135507417582205018601927003992273895076572203610750001579357441229754991371306635298886771978180788396003467574366570742185369680385895453989126074163157208071082563517571996328999144655937143686287054927925497611357527552068109364957979878053131507933052805023546605836950257237323783212522574878924323442846706602552704289600072504303726612645912566016977976345163624026862858133345115505076369121345589238631591221049672267208021751882781250796115227974183754607244149633669815130736574469363426665541752829364000186735475635374133716898147681531500402166534611930985641754439680704093173120823514936230686374294201815689138177930519343199690753556102046360324234294565589030122023125456481096957601857440318323132821126420601631105182422988968265068856253273028780063549412678944921466973365871797005100526788369080695503598516090201046895680195490534497374587127301805217298735405067226762320225572025387528103926255571875620435201261474322173874163631553722499565897449121391754062439823637382169893527380804821053743762624185921984153864082889727505169929072494469913790867314386663728717594636657886557403987436310998391268005201133370304334431952812331627475125985486126248627370127346081020015308450590577611749652782706253814415354463384305841891998324806193962911163203710298027976692787248749983000641177491291402611835445965780148273303191166734815760546360222763582103369674743576940596329892642035669317212166318163407449895400479957088120420779667525172692234379692946706039889046999909458581305397804840280163704328086164983975714102674253774092611770315127029305236040865622879072993646510076577355379630069786466445385206491988403815560413319003541085967340302976241374758735109966167175029275512838506499700901850313853472808884706855637029620225289108499994919088358287168053737622721767792889332758614870547500010956946185076321136589848312986090978714580997687444238240008041854649616748639200274938371330247894586617936236561385834655571705614338582654445392882209075281767776718039114286869862194778218417132496433464055830966265433456211505993140547387024979607470648476021082254686458719292661959419126614688873690464406113087367892796389190129313515606149093911782769180602448111934111836534241874794547102689834306311101570114106059161198886679858272675631594267398180874624073205253491506799455239843097969942417257457511519623135876819798822366938783770722624362844340028481062816460532472027630374977550749449327814927349455451725516926994603596863039701339858191524621556269315664581974246014047153672837981369542094779351649286447388335403570812921317960450601223213537841084815123518174950675293392172463379924846854641429872257371451315772028957943487166950911601459033576518695986312691159432336771352291942337987978186382262483825779751675157262168526505119516721387006962193752658194000404748536228236665333488791477638270385364847658789050823526442480775405287076757342825080886838896257287158783963582525443240630053544661859461687350184637062186554394678751879821618092987166069643128787183246978810442979803589406530802487018643535826259742259042112957197975560996808718382839906173977515025600689200001502721034800347639610961347325305830594461926424215386104595200936691758191622486129059326591734118276572331182070164388446437238557572036925319843363959425674392439806988831010015249558931855509488729114140106219686616908971281518186703964552274589388499069933849137964988328247124012097260773919775530254941035726551593561395338700585656443254850081882682528279872755474823686190915164981314664886339948262136209122421596935986537918908261127461035719875101611075706450285759008816774209037538614520785480101860208115982881689765931489075234884651779617363299791566107052556529093692333978041528588894049037964299448559064466778503685235439315288669898552890957178442248859490638709661725616515848286238530593436020576655757129854269187589043412492559516823977311000983631007086858770732426634649698834318282145036769942108341605251183392888966938147484290930386121274842696203814549441105372476400879919413482461583675612269544682336133288463206530202431420190307946597464530939746746390551143573653661353665125647884247253483307640080634110659617483075813514889478714636436996535446741797669700582022228302473807669761855604939713604742531641727227928776858696643673597864222238196372419951329307273770258595497154557469427971706071036106249217190759974677342056717439153128479956303247417028469770896572668546813259518686548392252724606564421850268678701019871161390467106708237777361087293110033506190483013537856007094899442451258059152386465497170068306957274267774790593389260144381689594333442761451007133626402800506490573328924612511839484916971778726197839573985799842566181915685325739174889008137539970742122483061838525194548074392257735437919171840921269864018125099733917633241585189713253727871468387084688878613349651319943090337461799050327714883218047186505656090909026569726141563132059959007296045805423140157504333061171358553189254076586718109310122846549334776832725476676415548398946955337008514268237842637562251245422029336359090303151289458621976346485529910960516311354634144146161812164602592266805917955063285089408603864577303393490605048418316468092362555829757569034532982615024173733349138958117595716305359046500228368683974188817704670283399334054983663373322794535059213304627324683501634905172133987019189337778589433959162390054864703599484435653080715670495448733385833356029355597090798952977434523545465123343251083675446437204051047561258909282416726655238695747774875624020451264448043174852719732002918522959094353731032206903509545667273896358040981025010528769942293466196635894971717578221040659440810214392643167103042865390745498675975468547840787403311665041882254024181327062973356047502196797611170198877111021909187096307979826581967081976243681000165708503405064949216248847776748431239816855981592688339794328908969541783887460942950742099858788328080895688355268695837149884535916998144287866208451245423351519807344137267869208980155758102112000250244277434177098043133201932345271191421293328743985410821309337500263246760562738590292254342762917359433585875201732391922335624210700088065759835357577982246514458410660555498927520229884446123721074205882632981002996167229718414255386693996767431734112167323331753914865980792988128591233389826755449376192230434502359994178381957969754029810763360543371555755135119543017475932159428615930272266266184378953776213321159302508726750194515344464366954746597751973632994203947777913925607265086067301347368597558744460396272548895250759278495496325012832681721637976609582054405459466020558275535608987765007323957251007499484572396852023672774540095207742195626208055324514561505777124936561835263501523227128353369842175523670833111080056681319465501406666284879845727353009971730655583401802987536911350614069657156431069213403792714810901009759444451360805120176005024404375222757102859491559376461094738242389222743325388641715394090795600259793386878972079121473791319861652172477273158496148301001701583404517326540961700082148155425028601095091698393764123032334911967407708960896931913062711919629330029918410080050011178861915418186598068230651941636786810577267599696302407441185020218599962938088946558496294396673712035417168581701722520286175807615147534454786728675251152000731199462248827292353517107100419131100079390855636401113404107078984283300629681735361576036064240029383474086857567877821507370543044183709131190073412781841180174691727398598263050779782969120234948654961221611913153969333745021583952109297043808789566811152010383799073998682819696506622973105565223272394785665223517570783537589540397810224097268230867135967689470294095272714366727487205038178222895498367262914336225751241044330969610311040319323527478315944264030185042463021434283890384072780895170539096233866204010627815762853723006089790207982800639124801942795088364760293967594438577911885354229925868055960865090800208863107478429063287072594767231136427280662474325930764180132527319103640965669256227160756666586593751430731188601603543893506120335793014594387158050018192715743965648201143835127802896909320147091439692510344907897011542031180182348843577965317627532790600702088460000651731405419107793494498185501374541089653452502446365814616080479917034144561047230053596608571725208406519335875511329782059569979836474488140426745875387591036147167167682913864860137882662945703749342509796695679351432890316128232939408849192132505290930267336264956375055156888574856990803665309671815055585953895686082352279476292990288239680465116957110148667270368723366246720444885460431910051251722250494145802639066409957737756664382585880332656675265284093503433172813049622191625992975561658199673196013798066264240905912345274326339413951004885826285528762500096271286675354988461432275374928941753811826512196103079943304378999279524093616768948617604171289836280038433611189506025545557767028343955882754811864716808251040722074332454032111724489130593152321398274165102143985650895415381883300843368508975476795943619958099059863224935896887824687308295351648542806361518403542362096116824153694300582142701886336678342490708007214315043309268931230743599707966103976825776632025903007027465672893088996081503606015392015945792152953979692763189049772300033600117262139949217152081416239414959059244583698269261975057455887010148265685876370213334620703012683523302905176822254497028408096762780751842239038833198730077379389539905056104167716999175784878685723634116930279998842896302553887913975698518451517802546264568121262076348069435382286234122427394122543059287276865520774690214405144768516729494330936091894711206219918944853907922603496193815097331849971074906005735887066439601612479294238754401577321928507916181520657461304461224400288118895499374509822770184643868374558226619480418772181522515799344247773195834656480670667175022150076264785134532701214280534123128545192921093823477174426496195159777005761281001275913823546992467793028773886617376705895100050485367141090864348988747069812405417426616026618447364954443489783756345125388567421417918292247012374654972042726893162348515518668090157744053444439226831885383103986560914576529764512103855147025838690033075662906584508536317528223154380429191947640891501546920305929978491974241948774999766125326121208584426584662973130423985139718777046151768745399211824979149617999861880010784713035306025495325819651676265881017741887423518406163542470973935891277064967384849704569135287537606925664147996624161247262082681327969913735359040824271757824873355893979938334675129058785594212339585342672439539868073273505511359384256823532116157677629451601755280699728020021809743903755981837771837180524558956179269148003193119061517567533992340577181824971033822130880614354766387223524159481599751520497253233595239181879999476941548324143800199105969278058849233352636823006547307821404232435995030968613787751601473609293901670886616728450065053493485029188359531031307212206595711857317214528643622016753193495539487461854836875613542492351136583053862379031077487047263300271099316769197813186450655544393354017052976183908404854769839724054121975723932909533083436667465021726525615898502165442434609094933217513476365023001494897609232666914166571315822585440180351875064705276904275564989331514374185169003709359299494533609115314830329641239687536930007105725271054692524656822292957795402507660346208553009271527576685594184478806442667290820155332196654148376208436590075243271240875944055240121258962544293835883989330408521984505976597317471117231669309005269299453478930963291492874056179993958750130980504974836777909064523363127318142679194457527447980150391192568335866121998517637665112540044220283636738261103304006328470192840701028567564841061856788950647563840244043967739557764046388585236823028925645112985054424329532332715307814745043847698465613079319820999851550614902815374024279129163284274730244680782349866547023142475249874160989835872761993419922550830041352883912816976582203925052123058518050974775220778615852124373841157414486551739471157060235898600220197745848909437664122718535286086752923469001012933328297076624274493137916877225790181347487868092249779863266403395673231936266002209484752486839128768587030921108111282309541022641534461709718353295263455610198169883378850932266527626941930973357482481888385341296715412498380979282015716223188669901413931168052108474781839863664580934634542485941175730243798412133242146226521382206414137532057957190867295494383770409667836354123875546425135979839094017724931982365245456765047802027523987101814446337105428962102601456238696502325909316455424832634784623326920813315953743858039293429890128424445938959458525772888832041673800381913340084418651090927778055907392923053293114312143330829791633430762184655596932330303519650383109252220311966955379541364268903317994953976591323294583038799621236296930660482447139721669569063659004673023300944978140497582747239269396507553140822717085505316134172099380343083041359692815742640979519875454056987462485399237981225670579718533194443930608282939293373148755547605685754884843664963578266824871385642617648589054750698925853476252013390196790954782222327922677159058941167573496083553874599596543524505169652894393842449135407702079041231286648694377835175083421240020520159223008090108082265179395507059765979113831326845389287148648605593022588717238080117989333821257690556346675030541602075519469661123794879114973391877317349940425581805404308847807517833128893580089707497366833799892759762676966107267571403132158522143043831403860915688186073189108940548348600491108578443137992997621329904723938781395140860000515609578544608149096748006997592930399468862438281495244568041932443094746465367314320047988374155983956243690544644429904457096837218743511560063895020758044156870484004848348205154550530154318223642924177901788536018175862903716901958827454898057148179495924478092401380072526205671991079026466321555304742833917475803150685211665825535183712819918072188000642093901118808636732792394529087020891405446939740875155025440065845243416887458625814396431129831976689586090651187867364806194372276848292631598262854546161745542035594596440749972894554368764565741927478235288809924110557713580860057768790593488659001162244524980789059348140121101598245523894286043890693985172899820368914798187017001821727242876324924110073433406700655566684671229601185223327472439053139459355911623444558778828481558497316326944496625739036858655173346315387194580153707941180946796412812656239293986349236758262679797933573831247514037509277741770635052764766513741302192715513330101563870449037722503385314414507477983464463706116025671398200130401153415183132031189225179276624109360233007375745090472005073708001438909088721369512629098975510351970544053440338533862866501130084480950550545943383229618972582620824199760394397885443675457029442314383597824744614095178161509345752339116225737756915205852277044798383802274246656338739304763163262683987786070645289236137794431156974132471538236760671375811132667179388210009699129258977970462805584070548425030652313337963681755924249470121130325242547699285795545016182073157072507924743212220101976948133442950053274368919879115771986367753870460372731437074694485938090134396535421817862581165750890858669304810619393259646321105756295908443306378509221941768789904969544449327841748371253489339566418699062554845565085575235512335571201246512335284180308927043809499772183762187400474859878229795019260073279993221556607012851891646480667635201742036970383359560497206678060659486833332574541355639705188828614792080321297187472831234459114127391295249962990905110656566892611863471988165434039234942268485592965338180220699314504807236724246319643023726319213999021534263513613942300474870699650568916152143700467352770035185009961693644482951575124068198410641628272389112803329078538674929540514439922097508962003471411732097817735154106630128268717038085067759310254636321551012940053516998679479661150547839552619868132987641337536534283787435523948298386949545520624358461209853174751101525568691507392074175006732500887127562517063772729656239654037272668694178056134704330311244831902297153458435304991600902396254895401369152605376558607817271794934197216272369870906344172539916893015585408864986908701509261146287519982073809516849219724326891630658992432412691164552987430326820608611328421035186819887082002721217794862602421290498604671790932111649595666566794990875720904550012655736161923842569061944801786649953303552629570726557147280725470202199625867116221421511302479137550182933211391707559423115253645557753966098611280742392632062082356079461641878838491454535680873588286680673473027669134773558957364214532532212048530911874051647525969095374438370639398070090864505986124817379771978306272150893632079995802342909692031296908597826261551034999747047765682864803615932162903173970209822272883581722632837212748654167904907261703551974920971278198045764814299953805712940493914959714089875628280358711819803481363041630337272145349675475619206426495009955138707661797491973375118221584790924022249730731501722466198272120458494255569193650383416953749090253382736722909246239231202857004214290875695747741051815943178213033770724069320276621096365457774865216131501374053623625745028226824183692710164953641802040564494123012663086261118275843183265568952119547003031714819535047586750005699315511411007089592227629391440967499205568793981210584960571824332418970150084818375147629586037631780903054916660276044441108070831298652690780951190931013680208383084721327122660016110874957530701393356063129821196320528267437453379579764219670305753344886329609072239917008161070935151557395946441999157907131987666741706893922066244417776258656820231537879409310038362153658087741280595546345498715895229620733375825556653506742306963685291936057538635418015954940937036118463546126430096104147947544297599450467238465528625981640495931889088300902931883040566058777809273725749636272300757172654194005242542124883084344962022179248498850644886354286903910660455257117980208652393830142026078303614391875454668865394292080732549607225985860334721512608959349861321617358079942430270296141593062810835099515059329723819648436000680869819568399427846247031592200262783711708233473398538586038000347629452112313052400553674756926193317925406534338973996012917517647070802024660148528497930812771826027900964907990454569886842925101909561056605122324868286072208610868006853399714113882561722005612622775272042813212196914740494849277963681642803086193208496245943030016787829791450318786324950819465114438045488823675622787192511510546616042551429128877545200456782515990220860304218168133971301737327829945370430780868095850601007383447806832307229882772619301968035495280492417959241722808509465569145087211413663061549121606166977734895918039717084275435804266925346076143196003531376681060532301840614823176406152000918090348079064585187310520613448847124900954104875644984442557876278935680519364872374353635585527235732176728000518085039788731699078542212502107221102374585968679522747866859701561454833876581861257471861933079034130945082300056771782130499820349260732072254965721743821779045604437536355402129065857081904313378483507933557463152473337522085963410752409855150516492648805267130295375530323885811783034591204211674449641096094329290291251371459404344503393038336941885345461807382093022649591886364285232171952189588762112279730968863200515496637625343057939005914710936999176712722467638614025953633495749178808170387776679092723175764560868272479166915668775320068419480484762328881483630528138988697878512080319672425557897896551470022822630995861914288520237521160257000381819225026179387809119959740684066482333189288131254963617479857655538342752586522773911272199998516159905932763703758030058765372673772396960986585593699232463480588224368975897460085507147440222762431977559540995710647494499094789613886447827022438777688892759365794347197327840819142374023232885121314548834235515361815154503957814109962523744063631978035199562528760930762604157802480768749376856049138722600206730859538623495074893963994421275553051155993292384755890742242620846540099635238989576223994865761253132457471720508251077138283962376322248375768712583814348929733812041209401896224411662261597971399990698441334659153501839575918070295372183374315078162167487431998781391125417797428768798837350015664659202010878062660278174022168572677418279126397317484352731721864780857417392741976943070394955654933030100337930971122980263879523341485841330300077341177809112588333488433456016678378593348216143346277625668155316338080175684731938218339785631581168334836868285102234015919799387872278424035002527974418912715441860047823891451876203880874250145800332134918522967777508330406777427093015982267903260756548989374353766703727274323619968312699817785405925212499166085448798006846262348891058190029303481321012985235506583218134477992208070801382368294445673351420632695179644978619525070501196904783179931039860977085409507650731640062563007990101829912346453866061539610033251874441565775886595323014869684175897638596087304369236036901082381316991839417261372195624956841206493858003810926702597790290239122579275800745135104690293403466714080986354159006012863568773358552138757185887817229628094371952661174733753741478339602869279332349052243713903922111266478876075845120593778463743336605233521245873730173104239702538917822262745805343695142172956832832988210353782571763581845446531101595362614562514011095995891909910403315418293314840248492083412938661114390219525964293300737817321194957083889230855974402708245984402967029793059924401339063366091970110184088301945933912805561053893657367016374073515313619949270892982032590234151239120816323701620745714050289075524631542837357804856252320679383591117408912238465318849966879936545256383862392979503676886208168838030631820617702643598310306426380071524167133663683936049657005679177496239874910530385547204433887243235714916512129287543668009453430792223025307519168658137573843495532150719615927466013663797114820473515895510765655266491038248115572632575179588716394328494030685286244546689614281481178166522194961778019168164394208886749261693122645143544624681026332755098577048338096295830600306031612435242068598819554270859393435092826122848271138949785896012656574301095754411833500652701267726582526340599798033769418118285532069281266486284811357143567772132546891055157489853730098556075765274554420949967423734230105007295973405398237379015877952924792246593213331429862527417045939567963003558179897888090295918399636334731807692664350787079967573288139352957882488669432777110014456673101966241861090230575339516802560255129169164953589876655116147293353236809110864961329653779361670616390252564978481804794925945383896336090549633620706241846634077457417415495503497644565784595606073717394870413902257551108132831413232405943829750227315715963973478426261251893235473032559122020734716586452811865602004376792967533771728740192091708864298956639816719441338156813777846597240966391953639196106276552540197239600373851941494679267454210446590420816225091778408682791873465729953788841065676616903818847779360993963501122138528462107781785826527434552710477002536312739337189311975499213546046892419311397366601445491338560272991351936238995356778082281986381847967917965688266952919457574324330780996000190752692566017699619877519536113582932261383452176053338640732422260007594728104938605629039968795932113172158960120768087550610837475873702530948212025878381348912156362447642504927648772765331121129663593812698204506514774413508242736790989066141742172361609496988083077142281076065201448923797791464173686685584071426701850909318366033263550083001399480961220724296248434689393182859451837987538407893904583301234139888958020002808252855274685924220288769585443179626876977970895053819885680556324539530094092448887166813191909157874193978303693505825486876103327028962591093804285976266517574980257739521935338775181445865903013073587324309401132366022786581765628903764571635886315722047185898032566642117087900551886284792390427329682698811823743988638235210778315126153139077039945392150904643908213235994998837759017616937376622123378424476079674171184622720060467869777529733882920248677249356311271067678556098682846621526789490566420604786451991869310419296447541572382131333687933556655531695056537664644934950072681596208126224238824338508666079929922327084303221103616648109936668957825849593011517591484265690289612684530595255608482391059619712920785115250269527971834376195807992734441633218713147582568974693408240634727414978907497015252670047757551743363212282859575819410883957063123610969552600922954447930742300492567623181747715857374856497779187549989496254676536346793133675894656656185548663817777768175627759313430960083924735760030217833831210731255890064454177158125633137817900089924391133450886033168430790684368412224830134763896051339836956393777775577627917644982924109988115950356520210124715076229303442345229376594146504735570187595819181867238120441705640367576092226598820993309088616280177384954229336820803655358173224183499179258239439197941538319439920843179350262677720576392258425269157975184472212832114010099943780664651827119920846519745883566752555395602333021471629522077173754929940329346059294904123715834102880141493095296236070140762144017973804708367539015484422420169352051992799683923334181510570370595919172395687370719281741411358658681167424314601714039910268692858976990415245847765645672983692250895296420452300745515660640329221375148461299623985064182788473905316252258066839185139762728450706977367819454529569843601477667285939684301122820489518462749047205775534363100208579404512395190222355675789413636443915266707990678597425216860575885140662273287675089245693266177042924099774220993473771694890706230246709793081678647593685837510960937413565992947991654425481268679664187490433536366310629839822483052714216632178423626716870461878340801318726811329407084759648213388663383351806711038349081033506336553530659329630575232899206541619009780264678281068981795138531703465072665512615881851145619156752035103131848058940890046461307250385722229108350410124726776243964028782998696714871495111597742007505093054309589742389926997937200263724549556896908325160176707594205093641923647589269927264709391073852390923411599637604995520281390805068053531828040589933048227633292175319543745112109560736473894342012495134837928980560306505452346127668793063978436972961751410821425707926390483682775900116764888914103992307530389612818193863043690559444680559190244866379175259805753847701724876894359041545511089212371332018317190171478257721138554918153380449903792760095964681132967352683278039390365002087215811140854824906372943243452099533284348090023643267240802809739975686560903153541463430026670316587699509378525152517257853177581411723830621586042883739909069151733749051571670351361003083173075308883749550673138050759649522621314467987408542832157243694747049415918711051283971056497868940106026922708315701897568302051590228116289782292232419233159714328218806440544010294119932043577793668285132125119187769484099248232339073368419150899092713960479604088744635289188120736268347499500814646167828050156728581585438093841958743854223641435411417931990687457681104709887980003547810489585064654378685270697435068023096123869374728036367104223186841254255027098347743669091134386618809308352468193425462861606768875616124201867598549972670837693704086471634027292997340439933725406286979961993087941812948900650301420373988119975596585234529639665263496304415277380136217887425179944511088885965726469648024988959485635972275983199261831435690286833964160386113351182206156935687177889760596177272503617675270479973369539667882038491546525295423769228598912963440300561926681355473717026770425197827887309960453953885907673756526128227878255476150514971421953675522321895757345888567853797514177781812447596728097051383671013493748945951060845161192925832935595509780905209557052381663425421700898342328874487926105493271601446736301825184090347715099321221581453880988813188616108268499697694639390440947668420208167006912946524962514891959505993479108164711535042684071283888917953908413473946467982220593251586640262269140988964801408002173444260134883637883978691855595436759099705935167091768964638922019454758058984047039224590062125697201189845784241591447336860819337075897662149851776462352099922124060341103629561455729538397004415808939013550640022329108829764392509788063921849063279360670324921314962864196599727336887082954454055641089460654077360305763510454648104271992202401429951118758050128796313010056008637721849962750571836620130800800269013378802489164145766704484043074983529162275390811841121697385058272469778652594647926877525870238037810925809842161404304404707035102296464447365813010176159164367100972918116758235196903807614462218537355490943418228484325802921432642214610063560959031567992459199385752486346560490628806408898324285933471668299774956769708809178651897851630286309440558478795219675224902335370426552977346082634356333626253003005764739441666897742013110366134306682380214532400408169786788755497804677862810156064564440316130341583177898985226952344615540982643283896051559999335295447814305715683785700446544795390366885973956215832005825052149596164587956240180763370166323729856342549232140499315639070064078569578943903544069403371496913897872748259307937822158544722150052180866937518013267250023518456110971032890412890372936264794628573817755343110496457915163021037844551137506842397254751170478809384640682394487589467423946251462579214990512709491229612729246088639124287139529530754026997196271149354834658053844139483668311576057396421839359960769053510482595468739130358207988438801145348090991762787607239572411639693808594673309524146960334801384354318919341959055637959290084016726709010543116933796937298719494695570446474778781004173965439818010547605670511434643054251848393367528271571740296426945237436525932735796977600812823686436820432406212535716021047478357123237617409936219823524732374555106258516613127161598784737438797503649570655851417932056078002219695204166081498645055845829931634361630312680261524733164499739089343851925244385474783010692530399240512678630107608967236941132236150330870906018490463394903226565091547953171927120532119631083336480370691188875982881273625399078368117884923352517246999095598880300514655346687065666113773150097281877080608652288658578064888971150862395286273581991970411132505629260351366528741103948509090863292945832021929922423012186773503226392261533624987258013224510023250334592306576836074348587364323752913164158193470081367356422215269969453565718443858919468234249448568638010881567479164682716005951261798874527114449903125353355247318250823019816741193517772743917966481466274892873733849573259545684234655701695252713163658411396758179427290223956258258490010497403602312011505965693097050802721653379841313499355201809289139907906144069033879811082771861278477339985958878894420643508063004218563536679721701217414944741990984899899524664619313607098224417227705259653904125731267808592887294571615760559740525704976870040756454689276446760750415202002702743801880827075769936977802272254129752507309728847364306993711145718085989932251033832632320911529531589298786784543527959884642962842212589396665033482081791985322808088728388588615904360877578526303480987417673763839656294035353226240849217429237649558590886960992919349944367433187901151407493328163341721877065461654981804377397468537363781178292798592903516896025093059345915681377846574828266961762359923516544554686943755286017702016597867477998539548931976041296632656081971254131834356405296869570097899510432322541151317988315161909415439831367860934073071986984342976092686678324344818527452379573908880130305145852963973133636408078076615328514348260994271869161416128460348907160715900154302230933172181389766904913131344472483930695250243329679398096733198463004510668519218484051472516422650094948281992459603909688416069862619452861595008154245753725999001291863755971021817072741834743881975817194913697893078883154077499063132422866105530845082587216380250821328473605105846538348054971506964844501365128003928786455999198249293225639230327525046467909223110964061005296928790589309872937739686112598150524982962045403395564668240918174645788785247305110976651628222352120909349420066316933604454038853700851571592464590975314540267183831780045288152597533282328557682989401302466490809373326418836200261752612093543111855526472087182392524664891099863407647992801740292221587819061920620172869650319211634169243906338458658339018055154400986148504548900503040060253500004860511153209296724578752717773687167606576130357209057206449626221190332949457158105635050633530578422341187676135528715209871655729452720665225879055861960806830988744558966881397223628201409264771829646059583151873664627855402500067988319846629609059239699257049481612151813839770410977587706192381279030807245858428423386816218278800625840553746941767134280360830899748245880177900878033550966868461120331562744590587184407471050651002085861494259486023786212701812604574824417030986953194458761515894195266476219352773736385261421495406986646492206704419672348911331702376016670585388411773154697223761564376117964810452834306737745702783143798313319262640667374351136681622359014283086943482195531927487415581596671471591736600190777667653817498310497137069918063531912373112052667603933702065590408524432791708067737272217611457718853894722169839872580104852272395939414260731021110412580351896565081404711012400579051094369486888366602587220746483809438488650664216520627197312878119272337556818563731333564923882436225788007073437976682655653462472999470640859500566951807454900253792805813450131864213661834301880505160239746113155597786676771138864602672173296616261591461991929370039116491873697625210588609360737167844490514759471258681783359221394307842177777924556477631643063496163472767833217633673054345498697200358598428872809769139983659657010439848397935103893272823823377394700815505991251173104014886868397280834081872129333736206376996227189931406092122425088924674123676076215165715967713397882692489864123338623451087287969605350032131156878153780422814664936860258620535592223202972147983662018704682077753849142584260065283699799686045824247200405280793422490340061750231350570198295770333656832943060012565076550812938193119738135048609803975118779569170820170433416209584481653397382598422024332260614679010199097317750399140992943774005331989895493143426784239474176405049111824825133383113662929381429249462617082399780031912409662827283746671005229898006605333389071448770903308235793328627623403285252760756920991779748114567482519300859577206135596311918692867507002510197143067802672837495993757101885149863377495794140478132464156278244540722903709336287551350226779708330792024116770463121808442843255487988369869847594452471308257916257135577531819234694309452614660130888470033276625584807440579201853272290076575149908038226932878003490242256797005275917921853892286019323319128321457926564645112573579537306285417684068839133024472750763421487686081338878462762685136108471978031995756021418525793820285536970499681505050708627468201891848206266504142004070985045441048831473623220542287214679531937046647739595925245647134889922139021806336248628375046295086090504091547340187178754303185295694051406916519876583477860605302266772147864942374467896282574923558060687041931486555878035120196372716423667902315811618786252601767473645639234008484973480750322887482686274459180329593225834978312020467711005218060834053438720771383767995695098890735739460218279183409099343517161267248498623424175122655494706948286216101988715297495664676849194043934174086483934886707781409556152560027627775416665737245927407486819258251338040430996813162933744536216298821226154958805917302500298875382174807192834549089877314691309118266428524745919946899449582494146132022450455937339361246056532173474977274134418525396303029702428970633199078802013733829032729469670069150498250533813372553715771125757298304434412396671699496458961005680356951613184374953842802350394687636237192996255289322683007786776536929208257443782359079388018557234209080701151902007736889000291801833934376466737066434650420457032101534238929835372272765389405352029695113238412315833526447291503380688368347134574813539125163799578862474815539597362127138472699506254902773828343004331858771951692301351991571719459587296964573334776806112624863756051402159988497864317384079965713426267717627999679543332037216912583043382541938247071164364071512971637889213081870210111831753625862836919704775022413607258202028137928178095629682111515507842888112071331874296721627679465910716012031914879321838212885089548977735975932808379368615493841999174129449645282388344535504521387098764464237451173722648592757022344777741336579839501547807677433410660200923907601948781066580396518654277380660927930213747301525735863125585403636049619025875209087704661811556616123916556795937934535894473953819315382575497516995531358253017195132298520962768515571733550249174077643391403048205300451010685556318500920262060492921860970984834623913625710208511101774835911842183988208477011939707540690853464914263905450112278656171744979204631538953179385595084725410615397681646491798124364646331538415617863030008766835295243934157619350908284048764243326902218383869246876196816152047178880816468193857619104040072927513605323107754274851133272440674825866478042160217901151814810986815877306244878283701829303909809544485385867093319530431008535013658397653067527705730509995083878098024687865618125337781299721447597501889821312333808707195550793324000862410546489119530333380359373220105727386468640469953373982106004929148710259518654503012792250144760944731694616996457509107698119625478827804486589215494019492493769747315184147454714362755465462217513474626165992519901962315867453441947458897476193984403885811372182698398404658458367222199360001947830678478343524088021690694434382570020392805053140386006504635061105950246384403207019075234729497916619855678576649259583148440698767207894055258528363454340597302797544092046551542700573830347033637423852345618837441742335161938145511282260433941714234061424477295248709066895069812121078728894888253507379179128360128191422412116902623276615675698530739358329547882122457988580616942610558302842715200799766359985119467585564405873822018698260556754311734524436669258771634725369052244233089260505056690782847625534020298946132997548393444289290048096918331326302678212626439507809867726688726013407482781748116198206599506282096406231646683065106343211565357939532505048643430288150833141952762547994439926271963387471030647222406880492022811305640715983963892653629302390731557976693527469368097162702099076550826149726843741357191482950278871687303606439841676735540157988885006657309423633629948028084062322220218122828221269591552265422307716173997681764196596846307986035410648280752191450950782917037558593583184383809724002578818378291663283131348358653807818962413290569857119689431952172817901632682081030113046108329831752890824122953057993410036009823752450164303674101726430329054147581440710086272671980944070273829336467592996242081339732794183678906713779626839427705670779109041367038053557988141070618709802236451370145464014914224776841968970599486164760763576128161173450868862107832887421418604930249282336935874779173290222278664795312770455827044633707456953827602481750408578564445110772926020446595829446339930741934813726807488748316913402890556428459682554908119523692616557884510128850842278854039460477911493217074720459202020080273769915683935002742407803851299617897431357659275813746566631421037654544185597911490163470410810099142429292904717576989574854397327453679312699022275495481075761861452480444151149493231782936388689389139315456537653163266566905090511492016587018835099490861948119145392489508709704467629622568998366116063823685766614748919144117952633576106810336727427456891254443355076133983913955407922545584834474067479506430486381428766943786504121142436828955512258571346961216664558529442465262771316440573548859783074855778040643636509252093313433046729699775650997304757005656878125699183669191659512992611655696168378785482751465092050946396221279084892311387752535948899498281132797628386575177800203570784203754103524322020215617100915936196475120223237439034233022708301742648853679902030149512550490497298742475434030623730885180459089204814070918370056284107757478390421970800858992243619751292602571356935902887350467118094596984852337871146246124319133345191913334528703405292545576804927734132742781793929810630488500475801984604747729295851001390310442075317814640266942091508583446267842871462079566385959605152693948294486276521567777694227359147166924287097125351119000270349708685988238424146843933546548809518378968470455992589242142871759443287175269881625162730756164326593892663634715472349069738648654460486117736709943824428954064600498093154197727998594601981519900317367217341161477615629230992641127202482522450870308039173725677623814631713955987009378649690191363903397607446084619138125235468584086378410537045724689425373861329065925972649939174159862281464262297430777294966410858460079291390346952620814597922252115425129825605110441880383948330358262551624119413130656149192766965277843822795032113818558948816502957833055323562198247538198753928750308367013113543082523683611764140336969839786241827976828723644552861113664163882160771510642468538387343095201286289586877771061597841820416273588937502788642423195027256801173925132691285447697046972798603268893360361561440815766780940143477719260658959844310904187035748670699970977554145168877025863885273995695553166693444974602929384155819133849398425120861104023577708841490460665349004177723931300758433522266476066238059417649432098872080647231540223373438096105242936215539220284978855528070758492551754274329461716707525675926890150416743476977818506505787084941191470908300597260559895710305393260455323691077596449608137458541616081070117904046108735498945639305748280447610892159614040498485671732801721919190198189277162639450346931717670873782343493997047587029685117386502112859109396346036294794448836890818112734940392191918953924582215535955708974063886166596781608038618986566073004261214850492152660199586802441382249540480772543066316509154209229255892974951847484610999008307211156474465797236382449167343793635592037424854598654902424059815773020834470460637659632237016419887805181833684330865981063767962096574942701397601328144425920281500106530028043334176794687053097988318619837222202177264759292058585990266655959962332472684074032531582779636312517087162764259630891331665049508685249251781832065650788533157145006194970616146686488072140051170176615177571048371153292176693198325163463618688910723909271753912265184732490251917834112502735079540358656322220141695840444028114991569628671448559592954061639473109528713366700145907197567207142651863504958186662449589543840368432480530978611186413527074680281210512026387614484926502258311236545044684821805502770333955609320595830198425832226946393541501884617881303214451666622336231857449524908504463402527911540111623010293867266688665925482997145015366709062957011708105562393266380083707673545991599869667337413002025731613810002662084896478461841452286481842081300403118690576849849291258105851049156402429637364575553781290484672412707039061291118742052219612196261286414632964353101771367009412673388940357440893086708933139515301099205440829961398287487276200774500216755272844727263278343600295012966583564945160226789036479673482238055799975042771433483154278815276005188756502909476808789465674129668948842868793963252112780701953755383674434365139005682826385377550282353087501886734509958568900952262383218853784301496337660289675235168311949440429738584576935685631266815005941156363797447561296279121902060026405085366435119396936220437827571821730982398637933085419627431405871488336906661556231638782089333780283743650576062863297040844591874718100904353821523081090389396788912317998649934544298683209262451433551379725216597812340166519605861638711396350703045017347195060058820677860382643658973450188438359762170820183013970552201437719130890166829797226037590903175169001432429021944593237176712916353254525684989580217342953733471431564817824774740782482567729620765278516048510302426576628295452814980099489594784120417994465001863436312194559670170498845994073193024743202751072806285704910969988948595763251235096550889013675792185880009434596152564644457277656923981617054785381806695702595101774165937163569830539840018732560543241399829204199785011559675267204641567598130888876553102219809029232758256676464616485612403846501933287361781612710487880007143700902722024266882856289476320874981752479305823090420127471548282618868452908596682322537120318506381616125812300033765374696942193460698946029407234788686353550934834718134742625446818910315773830111126683259584342078941876404191752325557678300911132416756428351626875504858949883934624172745127987456303301245727035921165499682605490455887457733748177273018237693633906224882210785490860787022748293364964713093909061567703918170372307259151288902112958977621488341685016228204993385645558644492852808543102926464632093633359008778402742690977398184134956476989539969348854722606615055932864060336065082361503797799858912078316972382747277594955739863932905199612458655673544329959156878126703816214834722488060501538927156113727781548620258987786465406775611543883786135609267025116863053250306486247024832068696182047232489005675626239233726709604676148373833567776007781903562168801556953500212850410305029510080452405194224332605457336461563053024838659335800410006844522495411365710741678790581624653082204500715261824884032413297523589798861478787605191499727294642412339468997320832769206514115399965819056059685793834095584009944276127333226759233705545183309503027945914884384632638695568338314366374811373670041104240003016809816601035204129172084214346823682891320627754838816696239845016385576806308840235974648355704097191023039797993395724900568395909986161561818911202971727672887019170461542777367775508339577642100995196213789127831289484982898897539074618475599413095855581573265945382010593995847272966089507503599683190963122738468108522363662293775126275637074654183427656944224277871758979325907009104676760142367718050417818314840139326655125477699936628862810965672327506281904126783943717775586814510842359944902335660271786944687230627917670812641270843498761110470913962110552589508907816040130596994969116600793687714375858033625695295654192383858751046800188762364291688939646953650546852562663750963740130136351381367631112231191358987903705636324688930127918250837040761919030968470958559466429378187264605050648548418524896134130719253787413626275240575516105834439966815202296478727331625466449258203947048115281480994056535090759827552919673391188306270384763223649466371130786187457607953504620540278759320081980870578825508829086937449893997845410992283846195591104096214582188286894810397642217191481502637042776457258643832392912905642506847219934996416013888057238682983116777916163979695293313038228600239636796034879365638911757248338191075581305911870289810771255360797601356008819376368977214869240813417595966727810278034988157716079298465662631518156533643551986978704613900990212805837373903392563279387177629396596466467990828714389124037750102710130357405421722889551566581154646725273146482870109963216454771412702568296687967021603694736612725832900504710220555515165139976301197489504520271311048245082733862194139390389932496065104842194090176284870109194044724543547632010716812310038367963831669976144333186556902997090347976525977512815173327785040022205360973080839436146019933419297832708627078874888415025637980855088836836347148463632894277312736060535622661512264755127074100552466191145215978148984544064687640426785321374380436650277306599509017553494454427526441305044787835148944455178862160868817111980073984742865992910936717713276881497757426935168483955465825093006031282770543258481213795513116287766356947923689066139462000347563477709489705642919356795047357139821122494794872459486854124241785742599862503014014830411069650411642279691053066792911765074494007911851236904169388897764890701432608216078889303434987019263564485721221284279933920078827828969438978090334276893513329236845362960230583482423413029378429684598188115188825293177378621664022707781264390797340237069533109489235950583464632603734586384206535405447213943246895630190730340565584188680524446840158818823490210898830871863010584354772866021647984159444091591862540111197179021096020765628089331465916639870191822560216419702459220156448350291261081105441855466893672677140950189168812856222121020666004615569930342685708129854310808317976989993591717855436190377981443127218778934678214246792580195125643699960342052451049905088651920008824197660019410001926360119644560954378371595783105067490217049235039929671684836233955046651194516341315348886732438456247440390778665118248061769126155749917286235578661549327568805470905527873507995176605962909526738390331853156619018644658055295764512473766316137095288941669994720519991348717865312025684060411082493030070057716136224906862681711908723473688954695108700681578254962080741984865758033934310789406206861702352609762583743541981068271470649314781758434871635666378486137490200762595248402526067003433147637343654018094124213351945019802233457176544278634551082048659846664751164924668061184609096926168338740250815676319068618607993659092001143403383509581595276101623151550741661373636209797147394486923029619111432223829660083983049277973559837033126098868997666232292092687860798143426742955450179457731937552496855017332933038725740578908132407423227215287564128030898423660486081692019759037237168528711478256698318170600071063486628339883168724153690554591259456394535757650054997004399293589185972689680073706574126018965380801027803371567643917706183796526998430431208306454070902283083517451168766856764159019335431949906649105778837876727719673572570266678851833685758650673781902526377672598040159371515394517007314892539675950416717433662906672626511676745224210557834317870791058933550206329899169295411347703655302486397576076258540676931828858492330671428640783451529252072072686308998018751460847791637870301234976547188062115743292078921078652069685562606576124309483290797113050780748260710577150681901415331541897316436297165665058880873243452977539292610660563956492504608638793756175023468116074105027965287607037439076178960227515977305095154275414331277823922399780354869535704873432447040133826667447367212824591334395425363130580712515019249127366715637155761554656550895338496937868096763422319441634962676895766668740515846906897618255709535511362625742136974335317573226225844740829623154562160928796403761907209445318772590458354931689441498846504606524756379597590580310218858872958318717301641565205799090239708030765344128277865292156145044907116534628709366617506711024695279580065371851844059571220716481688800861237634612130919329898053265961810445044950502886110155405695939431056264986344580290535025946149739903423523055953128159179823886680137007618832084231454533961204055069128202521276825861632219444229069588381621934049061263433281313445120835048539406785452789688654530238577048993045511924013286801785321736148011644396012818739469891487308612781603514219033359805127629360344709178531350409522291065775986385660616982375008617593760945602683899911093764530947562603371586626876680277199803465784946759332222059549486172696696839381101557971054721965103211486902744520591925883372251329681375422310578864425178116675107300861409954010717274671884101834955079881182216788805815259677283470170038702219290447055228822128921591371538918980440844529136350762400298796793006698999555949164983655043370328689711282782788967686548675213526412957301719508896480340254195453514143535094716582272242877137530700090061800096100301552451498624950893378407177368010518344129714567904704346729728910149082062108602112633964627287294433550900775733211758405665138613183032836615589976359408993664908711890396382832698157068998830035762898127888311645420267611463351023390110263993160220979119925868814298451258593176910866611893944688264469311800869222475119785452165648815111566249879463291366568909179192002004728321785902426514645189812303778254274186421745998815367723381501408825085806997973724681402377188190822512197716908783642009561872753216399452696125166312469547014742145903219799835861453664599800655349718709874129642594649663169940470552800263503675927336046013920522904458243177233819152926825000028707547211718870940466383020160837966072869231554071738113381565783417525312559957775064972715382359696571879766434668328599163156900360147208296656522497079504815579670518075119170795510761879923040707544912745430753469332765661976561330000113340296399235146370850413463419292418041063199758848032215907772886757444131549253340860408813616477234740332575300291427252464153364775852193965305422349774829328882306015993349500065192226064677559124040308771411902599371471868365291440866836615085467062666259380949678237167024964211031638259806555622533930067830750658670310948916711489171755123172118676830948016163613537608394363402083670384421759014056380783530711818613253124889992778306338380926223662973895849593095197925054295645662213041783274903250627261061031644452257237540540603847442316403104864766358450732700082921940455158405935981216589642840940076947062609986813976833973010409871271895268933267528709536276606388379951464399499557069149642264836197127754574324507088081328072967086764007999321529683888334049369156287160438708399976001840526927125385848956164686290927685439581115159503529228032878836663197402412403130281743201394935056390318716618743023756609473935264660651662149638955106484428213524731935665192893626997116046882749566838158273499529462178037466411278670715390629004440264415624851770255522854396923234775150956514275083263784917865959261104024837970990496797694417885699178653848602688421105284352207712924681175736818143711870587019507979284211730781716748942778814349199782064134572769071918838432941530854284274848159309896218658656271319795349028551944966727137718385247830621866456697953877252754753314600905219181088220401764908935765362378259719803249442650828724339362273316001989628150080196980550870421788048315294134985949503785768584428546652935158500901695400455662729816535603925095960761483975657692288760739483730719752521667489162743478583600897914470443546958235462747482571994407152808108178152784919228260180986770560956237833105242102080715693307963022714927381185267663891301759165987984334540547144907353704974212132199432776167455942172769382171010490408740603188117937186111405134747402318332468223819422333184498752653258141616556644438666175526500728783859374520458604684159643044312715148365856119673124270384001755423160624018344652126542818210336712330604318368391635058833436155924149295645101359183765054119699297894269786496404074211862746607237104825758898300440527943109066515257568900527239285449287102461512344671469684013762890418557858831628871719786743510100823189278953098601269573578233856681031645789172649224335244501875540201115252596995719070598895261703290619398366814858056136568618824895225321183495410965805202086990147798803424487711742349899046700509998405934599358477593812885432633703779502586369038615807843123914528068718730689174823810867200012852321541811810497933688662637673787447537351041557101901116688387480762731919769514667393671802760073171177521978137085876322848435735605054456050079848196878312676070297344460766049148965346719659331925603780423603230079684913752116711452576442113898965187877517239828526746026338100679460591439411635776094696684933561386893798660432205102790993276855992071168992869490172885320318961250997983961169793752636621999813438817376182180513456044715329183116006050945467972811393567006904823873493245674843637487676781746556535860217730184520864792485117605569788296613548051139310571165715511159947036039703796898707749029027743434602097365400562745063850959546068554487383547104410782942877648777550601660800759403844221760123083175500778402025360558036941502564628514052350806139107289822379362018678671532386789530656069032017073476035927514386660440542699226774295082293950471513673302882022080153733065782385634130491057135082196227687034996363628007893798931028408442857405381991690365656302327754755574060707139104196018758450345616901798417299034564375539051668420015521659406610335099244248011158973449943475427905727280393128800272706396607100976119563430405870595541118911916502530576202286850215738473430039426996631684071706931583422828239481330656422714036783913146134481804369674128615375138580246668395504062889715477727045146487191467709967737856459520380860560010621601251476957807943203621512658451164300639376693995925012244023554495817568741727087319029782748386202262360743466025211469404946675426061370938969179260236953063648984608500844490862109230529199797178680349229695752427661202250433758348184742308730584944770139805157486976490182690812794582375949890605896808850161696987393639403724676662247054130491197100354513285614077060164727347252207921047588017290298021813777857263978243848591089385174681007729050050810318424997591160439528064822875585496003655787476029202018819660858391524944304737509669728935847807518591376147632893166463087821857657706832741531288056498025243344610560872128512625415130549128079686379047472169258135783351296249852998766981252029200794082389762768436374947685893319342886067374488212871438202361276449489185710358247999677157182678381381919428655326052460890749062393583938521869819485144141167629435130885528316927428732853264178190964713105251317187479690668330466422752021902401756956796951744586113531396555052003313104208534708983317540101524148050446345452826588518744584837581374465305632858588158348607410421668449655899821783122367123858492855633318258639383342402283049513196445758721694563350849041141222159402716908482519340607363956969394839030198137579274835357343038248336526354955769978976867236948482959989116035843276383206751610753440776505540213127410435651856426639868106046670750724905911257046881047017822788650340139077061847375258097328598660883718829696258329349168104823997961089864131159625294496072006559333862133508259094465453743328898955054899136415936625611985004568607116417739041203456643690669086045395496818539580624474603741049441926722797593231463767010116936855261187676796205356239912629054097910426058349549230098379498030783935029845910356791163298074314687386400445619343423144530455357955490161646388534380403522924008804835614802513237400704078190361579009908178230009563320861253202542365304126899281469944001493708089361711289391045262657246518586942972185179836298390982768283608781701618995336388631130023475056916717579832756338321304311781404404031243666788962191345091521841246738624475956034300979728221550707385812926146336925973385508231050588752489030952640823582527622132028602292484450208366098158104643284855862261921904888939367390406197333987318538185719202392241474040417497633109065905820369605765979304719051126018928185161702682249462704734248244406652005933522198830741885787623619305413452052179913563061416318451942233249192597850702654204346528026657601993526068505816282064371466648572283702950814278215155609801324061163351845589076729909981338135419471289582779904655140354738799541184618962756332580706629531079248011573727470883571782720155043869466194362553647133965640697047795076474728098789774576359839932841364655525223308676762906992935235301691316690345366996314742676672233845677499985302278132880957900574462709342936443056433438755150702360692142421763515663809980719654064027127614860848036249160464009252449473683220957809902909263066823441713662290990911449492584562267266688297590979539106646656916271142113425279903272338822023604888623883562934465365688232272861364769396175271203149627005451355107130044151958307663566302824776193061598260827349501569834491406238999847501990723421938034398492635370872741107670870232077389251875180675032633276225147444512305452403950044553871998533155954256660560310416672531518323772660272617727125212792486144995374787627843298480721702199496091388555913854820895569190318025471760903213417180242390871888030072007126537828897244691221892910882276624232995880070168993661461840830494756854776505103124539090163306924015154032519693727682657221416897301648406475011223244161074709964198409703966550997150180662623893502609822717003638172155569548777753860946924994280613383030447276491018333232887160598609369293921988979017611081922793400433251380625569070914661781438287634554325231708741935161074804995027000581012895020657396981728857476402831090953812184171449532204113139529492510046809576240098125625574954710737118065802372666698197306884273113606353357755559324854649943004062353403498283736870550493677300514633799357896882497320955601196407280250356488152955507459469398773764494733357635169130198153002670126288424719488474964891990570019640584429861353347984982622027149862045606284200996414134476924035069117786686548702182710624132386489071530189834914493299038580390973441982128251532885038273239919054634703562479043716321778278829242978417807711002151685029408492086004778765253581839507046230173076353301749762440732375333651980245538293800161606589659902291431287699914588970836610848881951804438856886912399856979882665003079726299261393996805117421354727125988329538874441328316442911864780469088649335076599738576454785574770567052627242420521939651003840106659461493336387390809736725355833418663211458130956998747865082930373509758529668719710442863916769359369269875449628591963836237025118621028154558967641273821059341646057436024513762387123631488186747368909218707349160072881620628812767010910646708127854958927589109695575817242782773654104624728266860787622400829060955142559734710149475698475138640431510466367904508970134519110803867641216376646638122217956922389490285416885770231359225429477936666003214466961011701007770794968233549877535490897418513983482509954841054548000306731605535060757533486212201889249810283686392324000004733961870556912161960366219659723031249798500991926993664514747920649841959698178695541349361859174214077075208236054664592822044923744016301725472603187534294232998836259395340311006002427605116742187776160347478879700791420511667656290433249367068917178986259500178027551087166961681690506519996679958139893816597045469397457671423863334563066274928026668140878864234104142804143354954160170932980382304038875244122046186385725449227334620022483017844825616023504003708240365218242545898351232846524180832144146460853274026907421703783377234060788177268831734041711741704260791242596119502940924147677281568360657173731094894200043167969036200550620893690699745520275041979741133928580001720422233155029286854281750958566803925793580985742441501170967716656196128002022796041029007785658967690639923011712885432086246550747955704046223749403247172004419473408348470639312533755475394624169990174360616899040608216422803559486959180758806592922542927189838785949421533623173685094787693508877866036573184552874365996310689272166056988158247597571782311056343818392060108344485287064243352274085843284641399404329121282070822933522073679417061933368727051646937119352934102573127123972017055965063754236291173509290087396695348893616376794479598105210246329945173953382621309301893126009732740371900094132848398499516671774572253746304432005396397581924918299029819794100510211091283476219851762647902641965507707838580928309338142485914050273276362877248111272348878016983109616866648844331552536065293140830355562491952636792686878377487392645578186201132721467757741329355276494182724302414143728863460064214775117882541541366340783507402042044233991713398791814296238323142637826339001493724590467770235027384304522215939833331864843872008975463439578347528510566386846753106236934985410214640426991339218425296907428646338906764047872788084856846206405305125423778677883853579381932690710935747139071078298769708183793878023716256022138048598661281820940103898863268510122063541918071467369909563998846995613380350438812223334181392653960894534201815909228098815108946910229300424552889930663890813797240538386869785491782211014016892524617280770970105219529887892616587907982018854233094780656929332351938853478259936678466233232849248198986934906735428194682502866454236424817432778313335704184270022194666240109744238345514712904218752837265885511291497639617731071447967416066808470829077320184181220683204214937929925199378580509240282323346418643700071512564278983923997316480081371607280462960687061233850598422386438954562636491652761787361872678940322640746154734902115172053591697653498312888545424479977473333490883680159748659839444901845700498891759938104318629781967988343454782250883941881955717260902014149928981056936310349682996298665120256204396655604621198217630048429202765768669680343944206910235142704958638923680782962037678568714990908460254161351456445662978581917684703330250259732075050703629269260511592601490166195464596048246873275804038260558077345889970001946857883382567157223691154533713792405711502067492620906416380960863439563966599458936567397634493677496026551421869328185445602052721253105168411353484220594623566962353300692632516371893161756043873741025318689767270281488488497191410471121448672659082188491550032127516212951556959289527675386382014478789319767574676562172824446674923489818042323829555588475596173516537060975670782090506262322568963999630360651872941075239943620826142224510741256587537271628519836684573251543865738546554727321625817278313818488433522280907546363376424567679693530072228905662464949119754307343857449874335532317965965075866489666779140280805575069211644400394667384060807456234001659233098472581085413365221708332693972755068004710930933749135675622014857713190129281337899697878894917752513673278921870603401546669004540403429025029059620947335145446539643782841073309888289811411824141161055137422561086211259690564752242616974262950490430115373412232382786795960299541919415940957475143567414195043442594055395028014664080552570015565127329465208295891922259260705956636122394043805366729948938420073539885876810597563713577623159496270595622059440604301736637016831551644625820563846654052775903725138591394741594052552272634868697973039902564644433806413752415416557641696069719866871856626347680640134844666941831486400349061794537683940328319018584939343660048409122762544034659516251746487233267663782388677814650521213599648524719124940449601387077271803385746500941052430201523230254853375951325372206835536964587732386766024917372525519251305524706274470314624773267698909853793030235272936437975882256944815424169798995777233328559084956910453289570150126537078368732826048132742100282994034879448007355845473778886527793701743282000461897878366990257605827273719203693734609214778417296161028532398273410595261613221288564831627402618030830001249549714245748434735751431421393869731473639215849492420798185518698513527180347587678531668997285044200343813737220381017108675572860489338682021742633460873401228781594162499555019521321437026876480964126234134954971500415354229864140970895083818170424410291354949454584557541193033842519456650353192892897421651763368227312892973263060708494653044349252647287103762135883117973458397124605196406934726220774963907831455386675457085984738937192916235644815510701199894204238446849151027447401621937433592558895667647017872416213304178077190394832019011950920796737454001652770231199184384134029976542949282763006960795624431167687137405655592994534650823996089752625050960219527983077140122932331690817950369775773349383438355907389825713364369991197876348984383587684279719591102182885591850434960726899780132762164095605232885100209739864693787600480588113284946708285946878425112307212909113536152091902165380091428460848409513850905944012919384189677095280030355668631965835239503967892606566486355865612555816659858049642017965916502255652790988110728261260386758491516192556133106277194736026955825704520564525137837193083901760581986921989785596072114567314608903488494852743477359626252423131146070706545421388918245442041334845653558456336007142372187506875889120154011246150443411723869669994779314461217193736100247137975593015006951309401920088323210647138199774025222920007301336010559870380663690420651142977365434876095140020409516268055506308957339305950758329998997395243140857338249056386788076791990101516398634150873806633930015024305206710608566808957537067384520950895787136517878383165523641337123523898277287393503724478057206541633540675086143891947487093869857743502758239383042346869889598608595122015688606382456894376111160739296766178819019043879664021558831400588136289240322934642571238719442542330796801227302513051292431924288723715844626165077016822454174060536841473837370841511433633473412838698107149267111488522652878568163700640224960792153867013202885563268268779033718398918828461394855104815732174862957641479838476869589640441375503773516133577531204295372291129621084293487933137591913363104099273845458737204883816897391687777464381421191852657117525869575784847461022165582672505442113383471184164198514915122794143493161779553828738526745692097987183814158967126003616669673263382836524846706670758409895103004598123748185576755293059861664213405112954476972165114909982474998907956398666774370200976746331901370936663964122757839281322055827335773948655569437037712954981139047557971007597703604612289080945538593079631642905274387741525080894030110577682614910091773018388345510594424379599775551853447390652792747354389387811667240677051309206422634271546003659219753138115732962001911938234404069141967084048668862578236298989847516617972129156862457148226740171230768105827128681965098185396069241985199535541305406679709425926664396611245456658913924063177627412155067930451826302510937699362114861965810300990790934866249034337254026907415616032071267075654597523029349465761206243685419461069000927609158103970994645368965646153740428956119678140600626660205815530570430272070988383607584897586198592740840128193926120272214564594802971500447092785332364257658166555687875803506785686132922028495640212397690444403078094433022611934675832553003237770642048644613378869525225540452157572443580544213281727749543031368817009338784487022233949714133854232127102792113628636480280996310165403962114079132461601583893936345631039312224982277790003319631166657331429904227756939890620059981494939305174786719310224657955508717150211216901648409724163123839342730191428282032028147901499292610516110433032278193491073545568844213171097664526019244182955042631062775299991187606795582546621796059749156439207272848329389443922421845476171539292809195549109673431175283668000327867098015631842405434985301838253183792919931328431969551569041670123233511833782844609887451798781783871968646880047474712107895729242241766433350136075936645488877018097158345246010876505688761827757291882744568867784312455957231331343637699946014798276737158176656029695553503594949856334669826332211713362669328785529406594662375041187706015636058197472362702083449508012249718946210824643556276069279381749635320479151960110937325228479618058634656836024755261086087890530008582292264652939085519169496418347773560252839468644465374455768249561935042175495057870978946752378259701666541379951235924241001351057287499563424431792891674284464931235285630042040945461378992918883734874150991361748079367199691126628578942422317460045691714440623515548087151340373238354611775639037659480731601515859771630745559175477153703248419193247298104574339610423202164853523192974971604149455262529977387753186351089046809032284023285198632278513151141909141701411588194912036897829765625836391161166863625621038679574179733625588046179657666193318365381299589792505854121305129914760644997256793061133462716051355096199460998304545361068877942759470468914479540063873287095123371000899530291427729425156162793441686596517731715728754578446049203171898048161643647964324412576963366509789753743141106439044892909210970655118444670505129416555067923321127063226557024065322506866551800377298846376886370845289606634982174529305121506711795873309076800281297742432033066623828832457214540127724570419461208771960729024499797268983580104948869230014851289777505717770969638405843208000002534937398400861311849950419043470053777997142290596577561770100072541267795558424860129867088049415094313086656439939830451999883902383049414706502560899330544729450052954049299030846398817022687784386249320658017102770399066578055382304456898155559403711909043451099940788580186170391153462839563713100666069412722270827853996714761794348516437086037840833355686078851755471227584947504445830584428282885657420620588896726033951454954238330297796509495844614269408807585610900080780815958797215406148199073811229829005531712136655353745652248933648545841435476039039995414459060477487461919745578589498718414126193160676020499246051225377442992614305675710533994447169420419460861229111294920865803592032689366417356984342678126812773425029698881770621047887114213368827762683038231800372007354964452160303551459560927348646359078960785500597148595960947942607795684768302859198067856332264313747432035472290015790900992112698149350130454504772542416650819352778610767993849393978930685828042412626794340006075352757708296256285232853090542897204827386636036542275795712806936333351821908367368319885176285553577117149640766170568337740553004887942194682183564851038022418949818649226110546556575390719346129875985016512169469328065236357096732823195347027797138136709242800095499616278461771935914261263645742451362217274567450763485277846919185652170967630409926172613050334296118498276969890395989521347879003035471392057666995119038247186128295562816551017773579682189442402383201929811763648379003308841577119062616815708593163041365517480726665341985331434153057206093147152444918325319066610276921428051349681183149326127920108787935534974909424610696103996122439566711808338984795772747164229812562826203117686554891837976786049200870148734291600757474588594275320861777370727967384430461651200771980940715328556765710384561901710001870819509044612825039039023628727284189342406422430247236779387413375205420617920511224242189062866667153049491845132659210362881782247170942681937051722812401729305223008877536084862970538926299850183683171980167278296488764989420732215734099527737085015636132488656948696331202953930863248789211472537046842727543204369916712264769624009113193856512904624090655596574188459127244032311375605271654045919995848843474213593056868837160437919206073969962045718667506030552810102855655832705302936338917367907838115253525982736221491537211945133852186969705491434418432854194437300089940217792669552952548669151866322241531600767315348042726071436855423863923235732329771096626227088612161327896131215751213275803934597832619299383475740606482098712401924874891328655965349781307765853707166709662934673228032210348685992767905427390973907715065306813818042029844078816833108957143102760886413475427950044226275658803722629215005344017666469080546235696450802121112146974252472615167724994763094424494567007777240894755084214605000937111853317662030291896450542040510174488172510133547384605251142218028355152573435637727845623345922712411727471146940429160584465700003469160161005055326445619930954741287189601375880986776608843777994038781080662946824184681032205631089515170994331330103419748156072865056838000374277167256914878864068526564536258211721683319308129043782101454974633652279203513063293203189693538675409229376828866577625238256286733098948228026586257161769994815826513209319783654482614403938451021302747011206280399215124541901260507578619628508108629101390570706571997158439037466240396007047659501594862583355244474552149998705737043547591736298460855818744535752170834004472067004857847471808372597256820578320514403082694200049318071756370896729015384088913450028106983296161270013324753979842290623915262549341588552004552549395481882093755569175736193607449915657864731118359675748897224815594547195215820222307902919851555586963801296155451267186618658566201728089959926102335791202298503899612854940307523351340271606212949409636841473204620169691388463568675861411231450488391182328841662444536614021219906377370582134343298850893689349545231615213043874568532557622502397160870785549414476383363265393990653595332781004194636782879746513268165854701568967898659387720045759255011134104916916928128599785490103543023003905618283941588890795484297306177140142805991608978012257285833557123927957354201474187077124150603916737034069880222035581966702696287432597061674520466086254865767374925275985144062981254603680704939438287723567621253051409172565225082076033256883041141923103351549982374904455350092609454706324813668126501852333730303785599330470123059676463496021639876417404270459162552382722575907078087544389530200174651711571459287902820981357891724190964918741624047030025906468412245769620733634343937840579898433630810422382765992182252733369095862173704231878698437374182226445954131644049823684983536707195565514991629798581619481756135903183389004020957010419650924081417630732346513608819761802442038818259179057943302313058872526123097261417476234477891400276062982123301058262148743795909101845754925714309651628323106933535140983805834350340499613587390229531434018515628041886507451809963206393683629332958918474572690289311659576504207704244473265878869599140216294064232137833904156228605696172621682630959168943780379591502428618483525468621026289004762097291425654522800904989064455878955381483000268723713492616718238900172125380973167101890936685741365594224090683750739352353681265485407758378709606429654393160487098637190742357132578503812377376763042700149780588711245685079473502779876607010545064707453477130362490913440465786368437951216352609151182194647361834953626250819324275626561986605022143649045136545151205006879831149851733971770590520962598475115117009144422785717161170517616797585648399943330622049626552172389742058555238509914676342197827360889708471438027363681208245035824678718713700117817488777271889395095346364392690854363246256050503877090494054111269858882347822581766531901813276201785505231653397168733676183097580755699291469365336352010014989290329510372837775069641404181128681741888724369450085306996428701365797545939102377697272038889517895559689203260726077280298860945397775738370649062866708238580922047768622733562549105283997935450466226462889009081244284328429151438121158448541191114726898792880683771704862548672744186754101794714784268317801149373241653014650418147760888710591608444873892525057921326697059350115901141013648218808023473059086021441993728923691861211869005994594847020521978441102421345385235125580851624023448353753994216890682138252371459705912988822512724657405180346269924540157106731709292584238417501694088256303689395649772197465446125254549056947055315078822585291853432299464743421655637469386917379994134957115115832138922437596391974538868474958877343043689406570924204457820442056435260362943582144348346791472041664420266682315504353196782244924952075106786489556205280831230372465082764164251345711581953076502094539579132501521849118968693693876717086234701932922387489652393932468723479934283214385893622108871701190244348672778368949591094957606870304743754656095454410850469269272514543981265425956450321648498142654798923310141215458870041942413074356340065950953075263743261651329961426191696446856502548374319399650789612143933955683263166285134174029154339081702526620557094179384909926352317166308147599216826200104175222147623858235376250510822598579718223197928854238083486284597443331142696685131548420160009282116048299531651999994629889608964322627181348533339346854731899914809109593244024180277356452073471454323929482804170723162154467469976978217205745568516496122510181571655193365097592893531848747457810067179607243649083080334583171036776201698231866504109505931904275728906466622357500667768885585729819445965176322552010114451763745554587007282624202012058284020570460370542763959223595813699036239847308547696714299796363044053860390482217623111562090908776665381724593754598511314311910270002257045612844994819858580822814669496818130949337575300003514191651500130991553287536915013419203056682925840058086334112222989856953308419183457204203289636007317517966194142435899805327206054916833274070747120237092292641710000215670702560550063341504230932860228763929624409409289676397577264344094236267069369057160944180424231617463117256473322082151221907815653568371278835233533366714236367982032455803987760808745016973025506480705993213764000584945729308638394661535295754667103387865114285235737026753165478834251004442403288503048332335190232643980280841463157562302018877129098463233629189296787967309680985243621437468827926232089063975542058109978994020660636210815458090706262443418481678487097155784794005053319385261202426978764057239148385950611859438213157623322020479816237627369426603248019953921499960160575222178243276178939002750694831208651119858765309115107483431389376148996240152744357991386119579837700774280860003095618426442329850726451574661292973965752081873162374914986401979333205919280150480141379347194855298307370331655789834271950638257476716766729665488983096747332914297847443288226840299022360960836561356860370937206644087081732611295348155325410674768491020512441046032665460525930801169227849183557564092219009813618378757271361602913717682435616701419807605170314710032681587259150248515774995222330865800523703528865619273778807583750571341319678980084559974787150284912886282533043080028394878553050376843889149502933374425297054119216003211807743869247948084937268434541282077443145318360874451040586293847670034745804867728134808486578309913654463342755269206447196735001087241191992972269555845730474551910980229241138990821100631785145773860211570406400892798200214611599432559878671018521503237013340193514397644728451583649576470610614151399416897023101108123033216149245315179414696970010177402730155363431648600522741246025954745211267035616724315923720716870394337935044450292063194615475616867498162538775438743193734901448342344439862594521688437133311357544346162383526333202051469618596592570436242304718821672258821267907228549616372452656076432198168576034512722534069030724521133990486499154573760458703659177288870771185617672326438866431469713090790856354463494390418118166551180278887094486529122630214636378019889253437493205452290990101879658153994871289774609743919462933611678057705117147248940935778017370585533923604098000270427150303459136781529948568229723060135356091758256806589587933064737330283416243665011167424842524967816931349730128112617431808718654489437445842289286232265962000459693202854539678693411600269490455976547030944806059024075767667825374793922751740067502387202804255299814749184199628388837986496053799529597935262381715627339251981722760024038650612688323276104367272233052416717589006713064750700743205568493252568556920412436406617428681469473948828260496168871502999055414779760311161018007954310205641010475099234077174559613634197385752787942847403706772235232089599701294743406708855537676540669550130375669551831910136195934521980065326720764664784008690613522202448018538468458775361084097240956253293919386012539865825252473266638345713564127876825890318462238925128089560637713369848413430728404090930224645968602663252515238130936444900949850330798093716462935007466215420333048263456059418234122838046113052681879479601466445687796946084220897002126840443459786548755907789053487161017584645407572801416317150328688923810537842402212354590047432043150935074755734310805430147557772217208296398535320238195154908217936566612315511142128863903620508859149812127848982988061048002396790330995928620119234673408242865691084308396145737733727481048961316786122730355116130105882459668876864212603988047206085274063422707071915029751016171826545308129376518911214769532548156616526747948016590825496003365107777182255894485500847260166866171938318615695934244985950763441822020188239859810733322268615812132004270928843040892110231316399002264650821520671637738746000337367574272666149314818783948236389039422816329858300064985961032220916164159211806501018597093735774901182636377095460812446751203083855305459136049407654542773439675835335040253178142811668911779556272565312056356553090535467012344865128010217006174811155328772047747738077544258111620563403262938266335628305202423574684701947100912287571673713762928233198002634218141956263715935085202048423535877474223983548961730403501669314923482784478417020816021829397049323908292996045660171845204424708957968379158818094632897536875535067925115222014395559916495935704839587756454985458791084392185242870459790362894668785821520113763636395875191743665335806380484698162692864747170630057372303890771534701672102011657773217134984649162211645518172090094731407481942188948711870525613720912296313168079441705934589392305794620583987624149340547819333523027527902070461126197988982001921904874705074905473904503365062809696955841961156951341081415646763137141002265057303296758320861541806262468412949489855225331780440746310039988146077734133630327085072456721768599062662088647805869912341287434181199288733435239345670926925188557205538165443376864929067372945364786169157171142919934351466191804062579292158849701298514764337747729872894010983389778954737328363144090767441503484222816758962886082363845643973976376771298601351267762788395416906759548545051124472914976343748114072248726672162976129398033071213145011048511041849230480056578315366841962726685461285121681001443761557603074884052097881051233077054242290971366195422025720648755688756478322354223867789952620528311648779820444927752028846639981837164066412918402014614029764699465681396217011056016437519200546492360774486236742114654979927306258526789466174597777693832666559845882212812434751865925628036543846323201526056499341096811900259614378263687410055987214940844132723842856349982830250519001539475838038332111956869982729853988799900319240775287217558816076393424975563124846432427825126901236774452594012284336793545386873258341066409721577352658804281524615647891716780478619583953571730557864367209367464959198764259606233142965626274714615016206543038492173868032409160841264013651613978709286022269862172265949480637774640293438480218518753282188737439502274940718942009232297130612587636404375451998731499120180684318587733152491661141207368432098713700728360357194097891856992908122428670520431059458110215697247986056122084613685375171021520208574171608517306660224378586152063336356256215207193514379447372914243849209361910476403710979160536842254637798447362358884001253269672976767673071046914806452068226060835211339125307119868025604529479263696329730838708625233896247604996688905479155108742000028149790701181357328725221359518259525974401817366837828146876391074771209520536629594055369253625166420540088777220273107710884693595269907349165433024520006971062500041205136618396246417669612801647698227916153795990659494924565898256835143718173664942903056409144978368284515430313098473502290932789645588074311092414714073202473036999226911316823468133053999100880399989479428587030236883717323811803304863937738078002651592151517300925657740942890964887205652350703028837046805852795613036442916720630934264538840203310854399441001634072912207378180765281234506048932982695136585572699676306855380957758641330692195942214734205887285036328033781927988288844782211206726616211599928016873388802031967239642734871090724779072895205686441090512483662519390269976549541839701393848287718920071198942114360444721702285516847117351528075178886483358991778767603217871543780867893368887760508353040495378115095892296177567342022261788942735684795688874946545977664715914619500892360696970651972352219060381911823700636569627727814924573584971703819036950840213043337176722603851118390313279282537036299384759076961532029895275521996085901209078530394418634782299231063399148467797169350591322452470573546317346620086882418853227237196457001714479366118711923615095370068779528687822656557032269386699925885059975945418895002534253715514041505430519422472879506255478661850305224760125696228287218251086983253694064862809626581757252460880517844929227100936999546576071598151981279072644440664626063191962786313833023854496771907601842261222921608492260180144666862987742832738382264322706314095152988953735371695269735806982450091529757982440561330032237170939822278218876657568935232689393513756988961051457562590492479224287423239668476256068735717566775104485093022067044241728465824466989814878578085979834523516101551804043660390056886030056215625785861886291565705246091706007275947294994144307865983038218485464907988268430348848378150212104142507714160206991246905058163836458551970230552280058108411595281007505167748998894117599175527893003112225643478343996015755431304418557443270777044337669278529268856643161190776067375838330790961477776748552938827911621600288031360171264747331027730849253477176284589886662596431204291487356273221290398472487500425687823800204483112242470048357422875453056431807568402350986794863916168721919313363136880530473652834451731741939854385924027749470738408808328607824416433970326943862083467166475344136615360541475529509225014118784895840089809789173546044766988499501739127247509749374605341660419097925002200589410522466367813509806209389497422151830585920806397949366924219202698673952498500209137586484327528261044148520260327860242948531276457085528012569322660480921014294071167660466964986251092120835921135821645590192986482236497936283928815949201350990218437089074476216042348775547540059353354087050135888748976134070670858896569854202582695009452368730012883270264009152585832819936289154285447478907143559403662048683147006891361203395461687817462718713239339027612476525880713573995072209437353746186232772654643509405510887081014301354922039091192050769347177461813051529987913432724554400160402071631807492241327345211920669272273340448643335755908353104148496857235915345075444973135540727814478447859834820463510780438518575161511434388652277974478434410610334096241564085156725967510084423476426492017831959015488155508299806762958603781820520891175708327370225181358601151125354557807492445555486784436179343279071270054201997140225410590089152671383200503245636113214377846500130190087870306483580939709525594908424721874821391238467450438242230648139078064127737273448690052405296382166226523804671520539499408127895684568342675627893601696482483209147247047876212016043644909169026795860344137568184387717560037621990217946351720406443362361944200789494394182038724714301505364632633798479735340146915104357137180104328048979219182998058672550609863473147948645426342076170662219441418493453168823344822026975883369102299436806605734498380182273918909139421314733599461110505582315136912838800954809599441684584924043223494178543595205496286059502933046301128281143283239521880733345382124676968685133446676074094373698465170501529265923313889369755232347769536837242344733022326493545584040467507562364094997417960480633188909747456801752808493395668232899013688583277852889137817492379008625984289305673271371220064802793629258880451661918033207306494311380557920483986051146463215821317685403504809999270901953812799636439471733959832580751893615696681960904909357922297538432873733103386736201549884522504933877524330912993808932492385607351648085897596962203275368226881025288369068052231558552632250881647384121029257837132522300646152272323664925459490085748327749927236035326483657365876309078675265672568470413171226040901852581467874002860003187339605152779607341589825294966235740752792905626307281518155149569564747527786857559533662339504981561864337226242886169563294407328532577898235425598037588702938212698835503849531315034786565571534525824272323400391133825667069492281350280295353490553977389974457208573935320926544823528314829334952346165468082924452469095896066766042562837169589060625065236513225970295299637008542729967965912803687449391317010420626396545238271888602137963865172729787933933305526791020759299406820326366561315039901520801018768461544759976287562117536240411797325134586730351374716449133907799108000598474208569225221052561141779760844363869899422234150406914456285565191997147178024844369751539668578302202295705452375280538787749383406305598707227309932566898462529382913740698063750221567908041966471784033845071735807910523376550853589615933163736466654914257293031781390896223189805176888686131452709927206846096413891324678195266397503244067715242110214179111191170641953127282836631727286632299392314732945373797755195754387328298659882173603566398487728175987974342792336211432898889622551790193419094848579470056527293340211122361831061269614175313118286429104799001614082779718753154031390854438229427102028102887942840704296987390791477709689023288554355379436630170584399501216284218231215178682977096820615280716343984396103414047864619579877036442165116181819709033264912757360067699873168509686627984785394009541365888703281742183305484288352905295171289584627270718216817508668347946638106850185296738423954171986135779827600821751017636597556165209117840854329506367970545084775489695972436448057879358541667904544859046324684497496360686979445740514368906178639640418781829689324503253606243267304356011898681588793708303891728493531373301963503493219120989080609571759864240589593692436943078748734727456136627918850824756249567325324475548266952129708769745736167421566375558399786253996061582516127898902016382316153815094016906156661281557204854955479520094695725911437457414523144145340737168479405865121418230212849541628497024093869440645665101756467159060983170615797578728722865332101994504956146540969708808766489779918633530731895420286854957179373831234936066528830817868144574182199222079612673253086558584669721824262599386790406104797917167238336865007671661889841157326712029453588203804831654778465382701525836879601194679269601557747142765988351720313114117177678506599990295605430205167713479243325979567135471609827289786487555716204468888115013820917613804507904139911082161294938238836715956690841405007092719855751637618954602560027576329262461341165090605795311152970597818452351328480906073930425219796780973146389180619235499339053165973161542125265257303796637366542094848694675038033971415363241600105594121086292094800864295836308708405544086442439870242291907578591229903825108219370558256561160738932788220984898229766588551258804875357103066742049732752946662532868866049893100155297017241786811241167282024326654648676888527968080779092765830090324589568584206270067322907249973589170625215595980072058648876922527429771936921554414949182075522524472435242977841610679691605664401898047701803214261792617123362591699991512553205281658948368324273372147998877017279146512671143208253691320193049219893350962827361914828232100182323780426001443292613666386894720362137746122059579876537156363101351846491352471114799594973846514241417859887471700587598885920096345888027965553726110384369094228818285728358777013380149287861564925072753914647510456693503121132039699833311024571589554012988365273636210317769007509393330489613803218834129817580684741075460344207990550363772157573069089691745896222014908945553435501816392186033184406477236575669997446099494972285994087482217186279803949276467035400444823976516184513780387385865142535703306884027565207328324936094132102258840518912379282244551920427456563140520737972463960163993962753742861995176786494995022605347194082460043476110532064002550336852736778154158738090986004650373368914767813536612366928801255515174437704425634695077257318698625981614629706656911696257774711215808603965775900925989442092901890777936246472700501695108876878769327582107690788416122644994057294933974169812109649106452691605881614511356926087963983915090897481190796640155977341971187133289482185082113025655636184979731514549165793626397154076628184964318684284542387519451996803862863304573466709657184795621960195275620848111307988559114143931306938454941773928425551327980214322331986963411119536095779898252855227753787511430400848564410667134882654143347910533334946605000090356140985363079935843353227048426649952405643841809204516488386939803183122287112579813831461205514514908118204836836548171343699879531713357526331560618016084299713539877883672411731413428215819617024567766979118145888698720216117939353156344349476571591713747204393308068036943191531061318078377889502672052096212473014066659237122267163817681961787479671135646917444883488389548123522969960604460786678247779371581020006775071248238072205910915864018933365205530803998843539252904551975297751318809903146218870392045178915272372674989491662148817094243247122816021408525946533115325309028040213229999630990522367142804587183174879148000145665745324036812095672853943029636710618469773047159532045162477725964611463726965713633131021954275367241078950724969687063407127330607192223618203305792128574623665875627535720706888856794933171365048612078945188849754765768695261107097413161315083147547674118487865608991724262641049517597851031601809919137195801453611211455910586728233893923268952475281119809089171503299479815211384371649761890772780633602564455187448139967675667594237126090272132194799697116898296275706575193198711845426975283574566930789818815713744461501497368891532947265282307313260350160956961156928074952001052620567619713042047287398706086292711947780919183753990324139283268450541220541257196833553614503427009127684171766596313834264824287114058146129132749349433239831919747363226023457945597356222786437513564451504416501900929351636827994997437220416105766228619826172463665018521663103393178750338158027347780605709548470210202815380844135381248724524767080713065677131784589537682743198127390932194248171792763633657906338577541388255115223553690634341449672864784081751161675865750061404302001066012853039543689204432750336502529667324089416862357165786738594109910425926309255111866243442395902993896642686275098616752648210165948604157044179416723402616481520730210424328431462391836314704964159765767024129675542771105202608648849514529499555721543891901337031096514209596119026241971676780552959206863687600970915068665149070025199116651082847319235429491944611094674207638563118848305378403336769511498016278186610116047841566209773059391331645737065477727691958902684480944741197765641610708473153706443468682181990082624857508090118333925594415575897067250858969417816758935414503448552885072659370673814699033358117814854133149916989828994542747918918939355185861263813316650371595319503889406780215411999288651210446667232158369306944869942509926916768063615882381494578178214351869349640245900942916794949852060030180234578679739484868381525553680658186954491908538517039169490472159652448355401430013112654616583864352018051229491393782983153088611400722526310718478251367935420366221649434285991693968231892526109189366942227486293804738876866155908496708282401133836170141672618925645131431361521292736532018327457347621532298966066789228483217885376155420793020377172681057571229534910455035230702955979953430240102769588831061235555661124382396665119146028074546819101867622163172531211844498586219056485294924167262954761634756586990169051241015728277009265169908436231604001312539272050530582535160059859022859935393631434154967566215181816015785293496960015046685337382977969473358281544987707502184356906426025771445370985484593607707948581093303417270072596993581350367583166573050120533574065775159458945889365282035848014658489413035062355392985816489758187924693374357638479226414496166345964819539202973897592509582613705632188590398577463226393248982471067549088050572825388447666274025046998191985512885577243025842253812302516695932716161838663972485409363830376117161850265290174220601458700974390182787245879227702934847440008401652623374596774100805280761853816751562777286825755531505887924008097298710406917453467728055368186521198555521308997761955229199369532219935825960278986691434191504439252843710078061087119820720570408054618753102017167619315538621571548397610599732766726720743874371975148955689136657737247141779485655262486887948914477818124717928544628158923796507452857719273796827937647768852453111099756532270117632403683950332990052353240945698289350667520968844887306782392868186165701190179238338492633967231179581049254915026728123959726786841650005204492590996801933602410049703618861771673475059695099471481601397161650856433906895531429930538530091095306663880812139791825546776654372220708660143168203361215402429519085789094660935850382232593687630428407552505635005420260048123573660816253906456247271788802710551537525585963521055876800345899172476835589304609012566049906794058910137444314101625639926791531478980816012079928914067328254025874094429129578699573662423222732289421116386279606631141181996011393678565525892657081564873025841843090395397926378881559963993620278248798713570234225782297628560197483587189983467365853454214743877730162680712093266102795465164109860042676450424621866282618757220238604297951374089368144959558588479295566832471278931577029227498882035423568031323978292075115601870183543902013961399442943125530508741489955821083984569064850584925325413515190673847450131736810690895843500034492759379122255555088816849251496466964333234494723655156616924502149134371432801321864405708616801260990822763297206171049257357017965670480969298812090532383121716290879658268135627309641877024212324193102854044494965961359778692851235557536256104186796160457791939097443907588459166123762786831569562342106429060495690061886400505203584413988722731753699200873609184461601881531838926914169632877698574884355085840377156317528025642499670586739729871061585330198794828281450374697739644602927423074817705326421172903131873482580866627247023508948035569667394826717415834701712147586384038779375420048081466571651178766225837417834105197786675965164635456217196061378390130422916281944741218352024598340296422776899851949363197070266497096481732207792804342105635848839432250146981167446548496492777908560406013853751851873520522475238544088783236108698047855416797569464506876055232533070480909892587763355546953102541339968082968578095762318762059981053232212642757190183371478472614725439409115752918325899266700803379139767274522454221374918313426774157543338068481128663391949243649180572183706606012492034462530147857088533639359296156232465737476329201132346060751602647131277604795669246408424246250135067795323740494859327174115964181278099055107422586779639221310131383560544378032681891051852969043115282760616362780328834669595349786176014334792476783762564127573512808441005544504645428748357408041974185080617552983100900921882706393622019623905865979288865946573446121077978149950235713384410372832347338197480264883680249357582555046825709701318374745107323310489928221312411962395753004176321641064275376299791200183388764564228223787598720835124588434001243345339876879074936144005534285099251382753301730220183361705091453306299780547064699489236241313841861053380252402565450972550469753423892072570329008729313670132774348809582411607271638548300411455212997356235658854922747452629398925506140955253569599992860001784278462625706217061732001532619794479034914267683962164931165042308060211432296235746158495650978883268463812767189094100311707340021593744007158654689426676685130999259924418518490238724214688565536820524776091074587594283057651237013508553955904543881498314853023802371872034930153964634070300781991225762955301342790323403886439372868036225797242605557232261528234274057237784418475132623712859200151490388694968592363832457374891423878812170141272940338051152436036930357601736954503498454458312098999657997695081408601424522991056573610228766430397398574284146685412051579405385463769971606812141524364565962108115205224260857169872306225808926522246736737176775709782844119094551488425611789650960928418834194226627380254709629633402419400889838034330988366028379857906669503008897165027258367915986901674803035219503505625514061065865091884309757860798591434049744893625068226974167387700437151678838171847868786034147955585792439337005720675171011062790694717601965766140793034460414369664072585233907191024758156361757798872443687720173149123047113973036705971336305396152593757790800175488306413213838229804570339736058526264324014426536971336050093139964465748694856197120732327935949121955676240942814635126906913183820891131743190260007102175933310581348530900022961427132150908261338439566003945073610595423066576669139746831797981142689660015164181239415554462487511487786685806235440566919671965441197722954619126862381312638307848293087316687392759318049642637587139955769331208764779915875167623682454956336687015721146585571756753559046845308895811703964501104632070567618356386932755849675805807917294423561556372053531099341277509689692530738910151241599513977518680551441808881008272737188422951867000017790237471138878082917715946038737443349256984170290991993042553700845380443674380607462805998676307040351121801147268322475974833392515961974641433892214781275801275684637366550845118747505379859260758587103863833330164512784673752755214852209365496143201363304653880159275125290946858307679684390534210297583170506991819953595090646758634497800678402819004215812739048467622551544439744690098246706535400495237661476268754352659326507469161600700817726557656193606654497035366314693690440224326992608792154652721801886030096069677199568380590755532686382115872748906959822775305655781528687791422705287211814304131786478013854419955879950786235249750947032688600626728336954453291078308998796255070746141534622703441015060866757381434186644430343727612343236366811140341242232795550141675062843723786204180563838797616036238785677445791063512493055488984495916900553578361026112537275856634980391621893538776134544883995961544326024474521404684709459766584022272626057871422400284410409036665124579316708256232925339458719481893388875131170497902193688245888531776548300448997430370005073335111178239725821626408722209626556245447035727855966329708289406547688561019612892407593803739812246864084800085420821370115123774406362574121945219332443694199493698676975508788846806123883319276085875355942040093695532719576757965009508398283538534700319791815090495817953078818680188254271395816198152976122801305653266191894391314061489424569741098012509812120459114516144098903757690340756255025006109228095396334412807407220667208141280746423078679529049084476404516570013853607542001558614011453688084463672023802193565553763298658648844985087448931942071979888797495684270627848891521499485977521255181587822839563864978134806520026070269004284586166767194030399122573222081872285986181245026474517560524234053811218685074530112040396831098119067922191998856121228570174191162197376007231269094838704641278943406215234539854309367080337066452538389288952783851357818903436335259081707620232263112813316521889680256173455692227510953253441892723668838598468843422374504662596237798383299170054152954800802016159951264574425079255652806189014710897587585824180196407850968378293403414572327741079129060182936969268545061690063735804949504896942893476478590475671479301833680165038947136402656453163584350047351510749724869226763461037098750687210621457994179712179614277127316682567890627902325689197488248530738082487841670897849033252022393681827925318845283761155918217697706582171794421247035455812870363255899219677650437402842266207617338825667785691919770131752012825358686940618075761293111928121296190335698136495948560601213794055986639721999070391002234061432948926340673548535353176227203625185914550970191306693733199470836332868848451080635326652020205208408339766081396634402771896462631347563531243376820038757395780754605519531743218387997994699468476043843621787575092142298036065844368926865221608412335390371736092507932473178630228684146400673740312269621631788352765139801980973237530667091406258935746924980933678658240383512573749938690641732994046141327051976967067811443066269624510332635723935706610970414727207484197161280478388848314986002174581917595862874698391562699849590285828318609598500436255610068797708591861992795814632539149093054955874950489131089634218487175453797164981006044166750029803204236221775378867499506920043217905742551651540554914469130993644423788448377024827329301993604209272789487532840876825854898872843364279736856522061580607775662776856570206313256014248362475740164207769345835597237516702172682597522496469674681131747658392635664232430515838108654253801792360281144285935018726717837983721593486783097361762967192463811634092158624056363449825716640474021887732030321084867875530825562911759801542190058080387299176745576571244595799111317667486028586298926242922142707607451495752969463797347616297545372121890728563434527695697419723286884130152026429354268866280598777010538815210826916912080580468470881190952787965353807502129290656515863762352910359615752063311183861137153144019575533228947058181633571377550132848601823638859485319296959271520930655600919631426022320005330797784713993059012771079155794770197886614000833852093717107320179673006247738465695351266178182450592158300355854882419572251432885017817785079792328054433966510139216215064443561269643787961274310506539412475222171437482555728322354429810605054201355303381215335204286061458027569239029194444369785204379109320363690825185369788190898810177718884596987567485162443015726752839963333372984370176892979018566718569882224731926063413025402859363615888081190079728503053037076006695595843008608619378739577398442967897598317610939455997094422379761521708699542338089810039993620992436106267655213523974799801254605434742209924498415202155215422476507370027281599703533008100078771040685123118549024105932703168909213904702472279452084547117653218748024680399943537978483820921893352275654869278507104246370556282025295733311988890001185705112528561107091183170146865211144657059970380761630473314074642123388847348761607456785301145939473170790204807769963637010717000152261479358157855568616349464463562939779840351453798714659843224719741216009530199975858811321510626046494853099744313849644147345387906747933864925314372766848621097879267534935187614107515826975653362722083233508392591264894539133596557511930860059711888180946561895044016113911783995397506290707886681998792003453745175941324977419311075481193542453763124920217081332005091604869157649226884905707829144934541607719301336398326718803225414639802016968267585910795008965379348185851838369171275265446293636621013248021568164922618394825128999592467046083396076180292833142104815755486048430217683419888040125876069211071824663727853739051335317571099139100902619758120133047874238585056564608468819726550978871346565218485263172414056377503895907659305964529322881956376215950372489684702542122908309129236427689981143329114249913050372579879053799946724003705863486298472265288317816718935154318103518798687193954085828051348348387313967327417653122294679680759057220717814092004603061850980339050694054972120489314373273697093735324350345387957455225941310481280009349422362419612898849240506577725160370930870003446322161399014166694210938628830084921718660399418640784460013156843252199402967793496750394360417101975673532511653632956165619188416254573931636181907577137264142634585537630042974269288969863104888928631285159224547324843874995507819443881484293436417659865416194235791150688685784794553303873055273755942649591594640328453733966030586044146227811612984413441451521183013556219510690001903131162987348714158379938428882015804328058138810584499490133179218487126473137809123256811873484766127695230446018157229039381138024153997683155859911872760259195714688773933722607567773949077675948337787682142143413811125324174007434707310265123781663846985361231833073382728354700272574674402649565792927624884026848163955240763189825552264757396555071372895395019501265039819640668150694331194032679335817363256717742425984021374475856556938198551720906067246999024179944754326406682712044553369301701927529993809442207207468062840316529778945354034212161965565324969347647822020034181750024512204358827171491136052625509465823441910456247062182214423673277508011101417275543130265245789245215550017211570050371805622015892083878236964046428772704949191135757985957189698159815404385922197535440051441705243497567472287207416954043203843356314326537817419956003069536391722190549752075551407079115668782714065232242978380436255844000399731496924032098646887178627549783722920174337033291397166906903042983260627597319639504553998850441257060525855519749201610489533118081266139478290511446938890551707641258770670019875470528463274301287225271534927747957261948336683229442791731719647236605776196803272123286153668508045933741122017223280932416568269972736880871210324747025899474637737426461647853187123428328436323858501365966493273781219107625007549680584532400901236933466506996246384552714694320093222286753558112670826181678566989484454723172538642646942925142678222864748826393752673085235516394067061332976105545857848077356917639885495582681996758412351431851892203904621464956146438890527504020928452339273218869352902776355301957825515878410467390581440013269333230299476156365364512025526310603913307203799151967053819972810942688698235014146117746759272909710752025708452249917740155459482183631866265780766986345462570780479359280382540128081324754505257692975511849276651703551593661268731993829813077492837583671748354353718354772309994246985671835871066840135484155539990973278952465904634898920647019263286226303675748493801470523687787104868817903191047376658469426909976533954127844547292938848169832901293970452415225153095184395311286944166250131068746822831541081739532270630727921180330799313824188821014804550644661990724556816289428926797490004610858112299533049833571015748956001777331620867648674265076524660709857725299666107995696672556445786024483418364749865524707466195629761255083319866373217780469400149487690741126268344619560270872788373283695669138189157764472451702919352511597901163865722683684782867397012015908651877647483167206747987867064733804368883571137145323917212522587709955609957772221433326573302177166733781062347874339302515343297957358732626112135883209593830634401002702584786729913530406266333884703528155744719078108385344946024851846615506733933645848459173681732169291754299695701869982991132947136677539923104912711055233511615248516758770232632645342530796281938516858188522752371802748046600064631687205027647247256960177813407388442380920136595335008073131603318799428214815444464702074108969390528022439449562716527155159316074945286610331615744616825147553158638670136391723364587193446976010206347357210025610048044342029694191628340009018918581007015923604426839228020653029504983188851089277741985554140731421203472087487458534520572724324129284357695230729434346749878045301001844912390925996850032741208062583175040455082659075371809687293088666589335581112905408981082883940021870363335434839096468941631042499523822215800191068300580548069448852933040269352228016832841020775126008843442495934195254416958728426208099340361734176500618985874499851160986413255554076628126043919692363561492716366109765665201296451316260428811649332746341884118897715016975916495460859615388270140893934382082488495526882617713675912780465642072465374848767377314906761081907346050619087879552082497367470570714299944964676429469187923747715924835694496069665169306068946534420945324186060398664961898479688805340920582345350245964065195148708578886943127545252784350690840753028168555245257584842611981511570658306995517098691244563464973740452519607689233089210766664668790299320896435347620164303182912017032803814080068435289262917114304158518778894212029750945685335079759464197251393088606192656365657188242802702838979586089274019099364291118757627672121069899616205678323535409313000561298905322043766072179424193433126681362932677817196257567097774896690976581532736395482705129012505012427759238926087570203262978204029538944298153404734285202546227088961390342866037960905203215046872068284609425511224383516802947295726161270260572709901643256379558261225503997362600450395297764168514808321006549591896938417199167398540617800294413360426151560620472834872982867758357370876550164262494884816373768783860385149202134899521355293697704010791308223150923787148412843441586253062803657353833582687762658184009240433471095306879670922239768595202827718743202053696534939332300328136298207178018187979261189818986049489795315341221231287894059678663694209814778851368016759214904610956177027815816786666574494842736699285509961657057328511160251089789323132604779295767918659291388873939236429857501924535012343689315878522618538517427272952707703633963742838616171677271709456858946530932750279324262516176393441147423672459178476430214408691137438296167253849284042010966533327115261871382592180346871153107239274102019764752179920984900066297904614275041405656276352246773903191273719816719457152024997645318275377710984605404496205271705371717363632748732972644334958566315955565055685036723732530352559492061982571089611747192309194763704503596612809737635684652401115389104074686590419623498532224200618304576778367551919167854408581247866750633115050178508008530412634373721682967919386078152965102402367960051693233093801272565744340081639446826234681879033485937474210530944108222526990245910435852778073426331010574518964890137923257385249537435143860093461321607607984284099592458863989603777719580728119035145193176078975119413245922930804087402598398843493455192517347963605403233632145353322197304062566629965100397330657366817554932919824519695607545565409002621268378829799320093709547542146300722442124027032278742364913254724023020376108949598193832785007749524217106264331515334716427526623621149152068097201901796393506700501577290768660276687754627797186206643112912992416371920190895443001758783434065795458838917600414825858516303346277846702170017848086308624098526401973556295768875596958571813738669444816272531352426877448543186278556763163480952457459473330366356684706147003501149566182248254099860464169383717242909069082574598644606922887647142951541214320244466686979716151165298210578182892999560687708772759494971420797381367180610651743784641124595840467117999138874585732984055249611974489555981967933935997800700373753953585043580726548249631696944952458439455230045727993176995586397903202496694239909018937235427084138911712265840511645787533415369998202792679925414778779604783138282150863714728607930538318643920402809862757388360228517603854891510974209642271143151969738286295826306312095039204446245813063143441639293532519384668095743289024334742350973277488117996899311569158436213515691317713928331087955438149327155342689488472074828436806068724273609306448631008272570438982387466496656803222410404137612407134616518327465386299426927761913872158348171893691526053682739345326429481390460407975584798214809113153773874675662509605175421907895105818309560971255646548059245763713713772329046095096964584947571405455722101285874490932313425351890062946090771762481863294965259335695135128607986380196845312409735375330176188844411411456927768405988489094547313486875523048466164397579928380451224659055016154442895751509898741165542693522841178582864898518132445870200532454682881185178838449935949253622176793679027933233414288349147444506014086960449300978368173045409225388679438170520909089312045882099605647732561917156250712362509211376341380225880519014491046459872355667407890929514787193717163067164757553556029084686696488067505040190496272147864949398697899532906011206880200367983001143998909042741020897533591018755910705431914541065329890752941625549761157431909123336544847238529401826258905432458248015762990488431865657779405987026623251973162719456561308118787851239955722382595059611905769272104055095382956041215277703644769541967279719051639238208931008445559445635500470590434795777204463485364213776717890852110557133072305382419490742503269076688761977602066852381125289515659840390239134070561069728916890710961189866271465382080861641705226790620688485918275260094776203454266876743551333168878975760257707889290248928814238530738905694488855081165484757362656323638412132617440794101341882150275155499747407102774176121216226094020967696792977193216345431722393871768304887660714829468437514457653512286938399769561889744565781634114914209077650601131122647631767337589103567540870942247477425451470775083156486902038469439261364410710503813972197771939611455383620703042182072246187662633469433188517428341581225930324776920051250409017540827823423732097672980531257939451192984200876273089209952861999342236906507010001409582025402722881817342439100140467033349381813848138541645108329234959025438772348606271740795868403212094415222015864076424974603967889576544230407774561954053821182525465084065493466553422909718595902204791558939374496794485808010406227427849537207405773610830828813146640141374902757547214481350488348824729912365807889486151695446375150408175868255350601633743470986766955903843014212700402191617848422416140848881152451039943795662722718315273002518577560979443356980952684840457483005946603602692107650333959045880224974514339050281550250048813076507658820337453884489239319885335055269633093200025584280545188605177156391913134043315253134018160461964003266443612642822368296548829650648568863683668581326624678622224937032279504703005152321813737528205157819131604056084322530660189062520936281943837329698456548990055618811345012258631920135503128229007255333647337640024417629977070855712886982383294274608168582079948170245713168235020054444030839768117950851163582211669555909912645699720029218774504406211169705661212826708667311813522139240420907693644829711763452820931974794376172439776941397862702461594373827050587201087993138528548170800474518057759198505914958213848391774381633654419542246753715381438681350806512772495880591418551924116515531228077974167221615672417791788224509308688631821157582653411840528217842766030010468196702621212423750796807084443015960221773778232391677417165000558960103542210184476523697539594393637910871094169329106757861323559369578296842193337468889155826655054142957293409780653712631367792590777752998176429934898550186230927357702858380603434809049680706686147077989616660985236372227321475913855922479066230925957696013575760430477245352210974017065922905691059047153875830071833816307993391946521943514245594488466446964561009326253230737521881892518870025722832955382163136897261925021672890178766331124882912438574559746450506694944768621809454166304876560786469406256238071886999722085825173803418015781842071456987893272189578719068287226616900146465217695137755587251313793504092718953568303670658545492162820895647054503685786890479056085024407058267733182446485641738821117404566967362508904466081884517819397806965718455300097480920514046973708633412255521134716121435877874280527014477421040280121705398037172797187223823522493799762024332042549598267090732974529456674393459594705621698728906034951364983438624832496281744053942404974335120933539093415602527857328412527871320485108838407901566161708465827274963521602266298345291558860948655983866960557345590742562145655780721222003893487973533954021196610067654515059940082108858563810670985145208067597771149041376150730632099913243518244321739028181132457576275555674935884402714762466948574521682509073153861469264069035747927604796356403030850156036041711137621483173802250722158534534200445037744475993937886438689697008740290094688542462844011486379127417623866916304399350273082075576103662287501416071277092254689599968181174192337058087831105490310299678312427173137968990994384810307042862276585858320717536077097325028305707103979859673598931813417384888660396099546193103082609988361820588963397910211041434035019993117901071250651313044210209170020313825317513163833988232942193132323465581558317628389594292946008351052073998996804507053563904876791916397151881386193789492191941566275271517721692233469091103456026304137721905874567967225769921446388737069188115804286806473603375984342140859349515674942991113387754861665584274044598988153920622950385585457608225436353747496469560339140082375451502826926883927919514116658595021429418367844199228317193936217286313407332040103312288366584852113370328989003679254411047414414863957084143970277229007035002198533385919090629343751070493448325322956711778316989254308999169649835718326359489713981062723618843510847323626228357533742815987423000630593274805836731128514566668197800575141317592635892596092003655063288169638674470626916542350752813620082946525581638647369680495633252224684125400224027994709640019070490788790138967681581159838753370888369636563675811082875794946512760154944261359958219967470604040489572348560862411800421681503142293751437293187678583260378370485194693346851961791793442436569765757926779813161000292757095501579920953556629323250862024134882323342527607296808784335037523823595630069031340330104171238739023472566145277301532959971509868633861917850099116006488962627831273093530804292774934361025964994553772068291226122307483449812874633978487820803316460971441353580625942376500069469323226626007100173653284903702996515271449978959173260478644067181713714094643622835134107880167043077128018047215009880064432501455608270198418732299742430197939460026667666784736412193177904598533833986904510875947217510956185451439750531498879223416757580531370054660667387917352557315087796277333906117017300127632204823115568516532628278240785565044283676882326528003879596632106906892115245255564800202768304513081011303367949050723121854473649180517772636889305600327139803403788988804697415813565706197197684272675610387353755676447564979093516851373382901684295291854019653937620130856501660455908173184142636360264248120143972769259890130807257707363753997764618961230280174752106563236328837007983209800471781596325604728753361007480390219622717709279444349586525769972668142641330159162572028862052642312670799156476847225992106512188309542453860249023394082868375407565578922320815558999201264505087785134798170924999818468644889415404232957510720639738049861496811879957490552209985923323087442424632861006691741859790485536088409950160499826422701186501343663712414011823189811335863849756726556676315138748412447155104294357934433843766169058708483164804412952781900104579260141966977168518972052485903749124046910458383055559364404254948464677265657127518658222609709421842329522451087786865485417234539457958534857922819560263088111812591007045220557326188314513539702993259981029902783225010924971394701801982964366572424038755941959821618188780102686774700911757436484237706220502241196904453492489780050356613452034087078781439985351327355165930310306408439700992397378360028727623405607646361211410442788407787273558244191952530685657448934348089520098070410902407764264012438552467591785304283523191092221776071871704019115314630573446568066470761235861252078816191247228880963207496290525527601634995920131485506574678753960766294931349996366247458480461216518396707912089534960833982646786616565172029599371224890139582620560132082499012900107459702652549243361067049110976556620525446431745104248907006086305188335629683710672252105281318889643838991648734277722633770228157900425712260039785638937809445544613059989876050385931852883998537694749972668505518190167660542276331738980598592119878429315170473094781602426711127428150592463981346729947965859123046789421990008836074018229128152472001077676752426301630397538606656622494793793870338163289880393819584082974989558448550538827921841562663018128823624846453321582475950260417762929853008329119613161938022099109543371585446873203606838483611025019118286351196744474866867883267683040529429669680566001243193416371970495177954644688630734894116747442261199763617995914522980666297522105212300953435516127845324940814017173641595182199504318713643896947502775222012810467312191363574116409724449511475846512579791422997473972761374082146547589490074449802200562279685521563917927861554365069284461571824862031130616316441911590136764853901369863379404969809737026090824750369081044018546067229867585099660913299118807655866903328185312357878311819332922464273248798322293536747024728071209701706881826677599499320741712926311766623936684840004810631856278753951006097358191780701030286247685308985975725381480792556140262965058619509309778866694922675384545135871051400929352346354088472365169402986789115814580256913095869645770180542361166007365758549612363809402471477084226884564275784979007042760301669323008432054632698988309110836430829006012164270870884984385875502438376796436456272448541474305908122371397914630602931417826397351132057597947171480297083126463355531063830588103499224248179600811151662074544659776667354243079297194862523607555800434625205728427920502447559803657763406744967446729958283438263685444771085326126658014532142618043759439300435239402449399307907803056431704360684857330101348775833498520884563956550305976391705561106787577664258444183683524907376821999223176293682703746359411247208636614530225046445679199224943394892789604038958330584393834777639211386305163570973619617814481400278179628308948130417525424585098662224065701209595431438569323540366145202033363484095094399859823413307362429186518663510938302793162356464821203260313473912234754842973535889440950774198322451279001216604128656004393393992133447833593548834286102807793064311993829278641870193149670805452490624087976867387362034087875611484152739268514411931963069359451496452716076768190787543560144287349965967957979166115689401446957915274393135426640921241525636242038548195614307597718306845516864135653505590537265127707553024180938642899974058087628330396896835582988127642731054211348751780043514595530916372227636458542106289525575838722885495357766137974053725110665880640849393050406296769072826349007828360573363102573941887495815700087677410504555858076389293904494459953316773958708433314640339405154040094513294755522454608901361434451495428013942915282259533723949191943892839179227587790170450591344636301083632031688358211272382271002643538977158795943469517744498757394723243272234938297802476538272194260893628764672374694315298213188218246867792044662137308503948099360383961307139258588717826285582798863517417359689911159556889856111906847331313609350156440384746192944043783145386943096289292484502711366492958106218181830747646861089213559275894467663642298855096044729662729654867031263267782805448132104768319305880479141875577955172953002183660920756613258460452514730028691235478016823269647816837598202443162690367225361406759392193584587211695077852678130750278184744151914248186986615881469003088678169634981967498517634371494935391803211248493599852532499327510891756895112770838215813374406188128437931222470167488915251269900175947218703736159773497420339305196042645102944139701626685205042308048233841147590507669476720530331996715669217921961176171706650951517112280251640108935202743479046032042332249420694429887879306264478820263886434628472765039752704847599807564784394637364884197087352891331002429972097750404464605638268592352318807364990918748467155654322660108253253384839735365622524186788796747511617172676261309800489945978807465333327356176543685123773631957035528857241312743665049789489804480931297481555493791053766844420474725831606025672990414357183519106543470616721330234144454707392255184093465485021469401648789159340670185962233756756510389161247607592783597410466724508524847420235309982361642099135372221083416324288764080485264661280485247784316608989230845372613416215327614144084587979079491258595891281731526599580548024881873352435744269942671330571468495951935146359679534244652413521753377307265432333543787856515565744680558929416861351057638388300444913810675717728120077689955019660916021974581619945150351905076224936274178267509944089773431496869362577892066303117253819025685651802076697969091746221000725481889127908006920066358903653029133030465883033259499162490950430248535732637605342160681882742110245948378931206444518128230087322672962423315468340749702263615997383311407348655952588714788616057255672856508830446698478977244077352500917255822242171757136911980875943331578871617916961075958397963506203696876019568623612782666490140934192741712456036478990482166843244161782459395230386740696911806438418355872172047881831639489928812932779172100728261568499809433687233949160919581148380157952244864182520160383354857520674912305354206074414071423262870417428565116180541403791350321612764144962043282175552904941823196228441379822198998706408970285493460992394257690404048808297715303920581929863270007787848533404721495307367901048798766787465598143533155898406554863865025054435623950975849831897319784617350463581249946358777644893350266607485336076763260745581412204657620461769294435565456977277633236499728853164216941454480031519043330823276211572171810640070945143156226090127737541420087097772341349784207039883150233901056626958132396512588292678553291981553729804354308527457869371001151074568802449181958297280684975736554792256318428329631292888658114275316286110106684002160434781743795016723933642777959686933278797363696653444897581633400950960677260473703767812420569156420987402475443023936817291060554798753393535482881020852977899018583556515148919916162103506099849286113818670969457236788250644255162247276402344445118782046407654993527875729716366222981799870137002112509872072847298574898359070368891429435232532855948987825476159930255679093187087909329991760417533975706155800208667881459007654593660522641744654552664199128788625203277943139383589923019491291836354827981126116677141698556125759334564333636668471298383679439591762462475614289580106576429386133634107365355089091690706635890892250173945179965863830081087076959649717917822819143734997030124618398479812297173430982299429008262958519483337583890251836635775929331711375542194348158935087266361744687231730095387170934925116403617151852601356679009813567567996859965997906864934494421627564483473658353709174247812056998434930108843687048823289298025313206286046348549522440678126558893901789726191168408019591675063849158460665145934299837750832614777198155591376179618914595239672013274690763611616175177117279919363247415574823682263192289261779580156340153806016081115013509828889628977303181845980219604087253905355896689231657392935228600436571748021787579327477288743966572193376405067865934366887089913653015680057045491514650460272830896531979359821523321647683468913166206665563347478349903375289759324209024859365889336902311591818213026133188455119453203424097953455397913781706945767177464902927470154441023154017533937361869659446627023943113352277956663588894183465593461638535345497743247067653802694906805876933820706801450442453823770663275716035163593401432804159497334105037719265949361559124136757032094520519699754900717796751121762994274062952190127253173202062298853584075245100962240536344292063217455633434116334803133467778846631960965169856821835977770003587768408761524159912145655671939728123338133838145799012675765732028405707049542291888742594526284453394395747405183814477970917965769734148246958025446457724836102533830512332153545337377517816183827129893193573357960696497305715206760106233203464168956359055590395150816831374510805561374031790260439987115097128227254193977513558796905381003613722054139328367825722205677833546008950094249774110807708047418212407625767609756546682932779906250186210775261020521678459297197018508493913600443617623021794688517552553858785532545915619036327839596249127354036351939857698179074011930851709640799175264140216655383000306591139877865089838608943389288663264316028850593207048167576010698751478539219626007189412950732992301238240942018335264453028051544740232548396018888981472271205520959670286795705866576723147218644636146759398080812269593888155728285114189293444556500899859064543174047134538587863794167262408909077804697843885814518613809560251796972069929339928406938297456486064309706986648731452950403069316269540013118336382842900070740358830831675135158911625077770791991210936958189854597271162849817212078098576584926339421098235655631471499910859273022120994236870686483239237006233039993272581226033327904851643650900110443469035306237690111447862321164704676826768799071686238531143763557352034124603928225262853847099096713775285658971627349498115987943502618531566430033929314670000155640050436109773077839781396784765327174785801237018580668305319554340650020929148407383878938120336134332267254265986833249690630643176377076323832633031647050989694656234365714896605064003137452163911240180191196438249149453506647226766983955185834580235903614693296463405618314072865750937242335980580666807581831446421648653938035840548330869199523691999048354788786197377803241790760404812069127718515685273744374458707281486875939463727206505879406299296117409825333130577262401761177840506628135620370810828959225340780897986524632128095058773098509230192263781724914340209435486784103215987912692293039547471223335702650470182679532885344787357440441255524959278693074089025572639920481650049726702376074612336049036043923421118351483563672050875812842988982854063963006219358879277014969622244764182565541894449622059081080646798570425207979347323669351476522575768850269864637702377759481092933009917500757641807837081842928631490531557183708864926789188773562641724429293890858896589228603019396244312511120418735983757239012441371442380539010351088306992659924523202231875962396061187385291159755453103993124318368959592631903304710141229749407519883712884900017188558514435906771786441063628446893372099588565772076741697782648379261293423072193681170455419877408922004022801325381459594019256535236144446297357411768684684214155667829666261776492189527339322222713241180885969127773189938810130946661628666476705734337963419732294786162442332970914317711732504243952605968176552274813749902817057022798044105549194750170936823001653628409603429060015732394445736990550220729102250434730961937678604202121552269929113849821029010557160383482006966929051532435876283574411083500058884058451233176967346236919041645448405236840894369227737029183584581728432433960555097995890687534418006412325631314460226773035868260677299377579447593173507360172315000198549636310188464887262315028243652987851996301242262363834913629438846668703560143688929729932788946860297552597795397578603646853771227361504594273734209056901864567979376314131069940147379214757101896550314647017329260315430897606579030580157432532679286751290117409795107556372172300615799591414181535272018147840850558333501541508360189529133471001161490888542458382870439126922456007312621260640462616062969426555253636916860885629937789890886607466616585502824940456404441676491335425215484137319382999917746959254847306129707783973844284343686070924211576546831954062229718558160262130912501970216583462653717263883057630276621527096305366038803460404647710490142061240019811322457536994107846711996313887878665741941110203497519263314066912745407083120196648429833838495889020536590030722928130665589293673574200796961049530788273065357618575350481736110574209227431263077082729301858128679701387673458648584413452030694175573406502755246151123793772736870746832465034592725314828149426560101251232072803524388455067773387117526411784136739816836681101002024452682325893686870377649501526976975902774997099912071812468347095230746213947141832697068403024148264596308597756011705823966942811536430294313949682731207674378369803227777210615107926933289008749727274975771290961713611117951639701957585510052411782685189102966260391724205399437675507652299736091760802066724050816466623480553334037917036911590313379565655676756258953003882542294908045569807004507633568867670929553122484912273902774806681865076354734929200534901470760592575714203239281131052660484438946447344267494654250295733964330167498933644374384928841662958653931873215081756516101236902244993319611949223523141692084792424578448268337224249091647494319534712149026679986816542659794437867844233807307298500330039334212955262576185095507360480321327534438307748926243050736584171909714631332805734784859590063642469752074528904650781992876094293646768135339762546386604002016368231210783758448013377838112740483634549044957821158748293418408211300193387313544087936882155462147944775231709167365990746858976284324552204384545729363959614136781816828250109373689501447934016591390256283127708793232967584837421395618371968090489618472689442513698612610047327712114649595164508055630670580735488976374682252844544525121388262410290943327990939659342354455970990902568965653668273131569542474119151560058627072447466723596839303954132671368760665869688140389983009726147879826699824950100693320588105772247479273263495433973209810078416375396628539737007376712523706473539203943483949914999684019573980540306979480739742650434378978760998322127003757106296534101626957508363838974685548711764256434572055336493379280178108189363812024101468099731013034726409185910692290185120311793246476399798216840826770056268462762400506833562694804546047075511049293799900126965106233763165174745129485048576594005585114608658929151299155490607424221960268085604856489034643191651539050170043111043988622221505664363083826870582064816544723242435708241910818320796296710367320325310630298325133952245366395767337009362754950464615386585651533748072330615597400119406931285636031256589250401960191907469635406021502840513541640442135812180757764158412978856757754385635598887817458558116179558210638958165607379967254098931879412248850891294188166375050310949495958226201779449511080539910330237061171730084113129833238026450616929552048012400935468015845140375867369964892305549486873105504643748489108343769620131425930782340868703239343914362804452205746481422507934982007148579401133989629537277029075287021921917241470770023585649963796756257254222831098860877309905342638803526447916226042586232368382631017104294268944759650141984409583327289478216072022067507305710719814721718857032471153523383225117235944889903178849613176893669447809239564383833710297743373212620994449037360070112137390935437062328889797260511300762214656894281149322572304933539879001665509940465301228199235765192550490386204112284839502750425455957734841861580698755839634051152591447200728563708264715875014371049294232436168186794688794219762770515953621793689465219534953267256271143319966464247177389962064987604453079884879857364398948076784478313651551179502190817405256285399780141649228724133895035679836556958184877754969666224984735565442727557116580331002690987919817279745751996238369616526739996381922032252596081550212390457258045027120392699262488468257469547151361314712665797382510136865552843008606763125931634955298843560397329570915190091116125899830968518552624825372766585870285409482379247283731208434187036063438106775059791163700647790828028181720087779664102177433871985645809396073912401685990904309231178063819479533606900996359451500297682246362102144716650984525019180088614733786803700244147771507721864263931809309440199407318877880566191129609015972595059727191061428036134469475722545147946858637139459690191971989518596245242579632282812587588879278394677412450421161719272342822728686463413073982130086438487300547201702396723155656788441262536810657994111054866327209847443823545700414940288497012173693227264626361451089735183009347224559671482821924920454865991253008101745161054779496653545498252576609537769672961645796845291317970254616234301630814861183126927197060810329391023184940703576088263503296922610289800009319813355425867827178557571211643682973248115040559362144304373746792175870777252423869521138989851661691611220677710256905938184493409538389913964544565895169510440809343908702231887762311599404794733927643903548810820740987295235445329677278487949753809325605799653680053280960180775152364861863306758840797813039933116198757421414817189073181681556991963513131360436387887164329520939090508493522524358206461857327328362454397886891411459522504396189798778867670305034798470000218132603931490924400126528494731854164430583780070872800047670166336946590691113230839950626314273512650124028397654924262496059598317395010730177321490237283535007150792321140267189699030560280724660335298632930620396740254532204883761577163929997042561022569259817961711560255259813437338016818369214488753410326450657048024825891169477535658176973589560043726949546317228610509397255974152740252950001012050523941568429123419973102239276077783687034696930310452931900429768098763204868694185948967704433311960669425974603424021910955636323579787739780367898861567729396934735961575295051704202195143729445083964724955042526195945575736362366696445446195693798552888541896351126094252937929237385940963838921051100812198050824355761304196435874598470954341676057877191153751685804113893725207673891027021854119047919388297117338255853962170020204142725784517031001531046922606527987141465306356942546357389353179677006638592683829897656238802718326222503307371810481081673542061345960684408929361051852550209803859067794688301614920579242485991736618301502314860926879644555928468541223481195306020757728925570896779009126634091407029975365446555103368121083435813583580188679776912593960462470439588079092302601104088022261711124026035229753190232399175277548908268553747325078400776477476179246885293433364569329857418992952599118527246066675062163017917528379866085524086382510510566560687224458145525119158055916178183748828788384323885403816651938795622872190386117121241528206220464235610505912802066714829132921047780014452018660123120618894069528710482074811527029952308444970172087002377090954061505873389885338040572389389148126698831959560700572401351974924026336700871346021051185874770971295548723183607187889527872762802115174332402247072828517203452362413020428118996617553286531047928711677656750304337519977469803366293387370110294573576363759184507057802414345845784271104653999428851534927553242182135547783397259449300316213892422349361545025626321250113274146807236504809958436433368549301303538938626250196632078933282014109379133132590434506230024463038573204258809759933897774696946971846541554987526689249202522483120412232493665433206336476120132968077219467000865080914384609203515481748056899089673198439410031353821262499435806712048647008669930172250666553395513434329617587436358051927891427071405706836636808425642594628898734810192653448387115852514104809619148503700396414050232499152408382885451804243975668753586195856292720141468413969540370743331884685619339132248253599243018139527882519128051529825557028631751177587097683854919819183699947564011855401578743266474764497523323851809793183603881652010268543023950681931188319946123641673071156303291551540945853247868925840800055725629110317054090159370299378503985534724985099073067951199284336689595630373646434451142640744985658996279598025401801219801112307057504372326514351377662521557404164535430327048764671179071467669807868907412287500668545483211555222437835706566433735394445525385344172204201090027476579366854459518780559679923078030269012886833258395455820652282590372731389323494032353794988562459340518590373608194297392150972306022815968910146956899504066361389087436357747471638901331831752979725105633671121292235937761156658422431151635169139692687886126454866335219897974097532401754494413550014252217504270376427097339362437652835175383825248110249836203665482973251197270236237041391712463315102944539322859036848633132009082720448275916525153707614303643558764394953042240116465778271753926394611852133963886081114114801030238348072863557538520218657011217997003557445318891590751391848839100904347915852835943842314082288623492325590815388532538302202226114650328425525067459337074783221382883626459872493669817908077856637871198017907357015913178137180839882777425819914224666837960888695497363983890369888618205692323849481016806961592446010914930683688374745253904727490736846435285723173653309194384900815640051883015650770845822908731376202450339729337751780242687902842893684487031119977764782184668880437872084896452569928799179565155498528538110398751295591745304446422762607701322484698899314520605916137878747927654588621187040220844761841622764811641599135365691355215217780251631297225125016453379656409572074013343522683364225759444397043232920278262984872979408015720469410609802292119601147102175709804636982257515358342723392402370451332392225745304216928653656812990157731236062981344099116063890746283919466271086844670969505201231037421275511432640058759440303596041719547903190966107823341118162597133726960320102622027238651885486500316845206443535792584289574451841239933179564096277266210798161481049094086014465869386062263206105663766617952391823075032352207814108514949765636901686140810650760597658104255620886099527034099892161427759775378367501247153271864689831023064024154416844152486060393001136331479429381535487857048512929119217918472288858553643054352423365527500036274399785524238688342901740972795389562316230791669805991365449324991356683741355554111926341870410302977145130930333494656747532357971123993270016916739589946221254818604561412014431947703729592725019014361815355754566313290125322695447333178691040115474064255484914341606804181449995722540937269092627310816743592596072803701398336639668330957686117455293026758469259224314995772787822026408257635069763893796137753650790118648864748783976199950190810035351897147795244658891553991418436068999152451711018325323663686140096935189437265083679279538500230293462454340327031734805993534063512883199186657832096677598611491671657376570470495901612615305773849643078817779397600284193205052431621415995647097664833449507813340919443810189360526691484906060235421349430167241715004095644074544415650242348154009707974440956470782617917445648308734699190565391132319327345365194316926170602071715964370373026790932339060200380554870308989083522005080832621584133438228697855323025887929104064059924189007545202281110337608052109984610354275097681394767127401762780442636742977109837469478237654207664979868543131412649541144217149469578250639060970474653130867978735718921846082081690674655624034742776039166699587403906205794505875532667724244671642950298703293199255066287983233403906505541721519816755699074016900648927106284841560412247617489072543534304759238767834009053395067980683979222352744935938594782276114207055685354344329005108567404940818270855463364573586232679905534312837197125840921337487869157483081872468945039363835529010880973450456457821001461497385055974377516229035246612480611572005183053495445738476594458004797100408690051110595949792550883274710971016389681490136674535383976660356243832537926943700058746668125453403153077632284050410712832666746400371029839504765029076364230022054178224483607614996386640521338705814977081524065768809441089118729825831896135534447621462474167730020484433390765296359237553406805545005701517358811201314457719525663115584655272130416246203156258680882331356441460846243261347864555105689059897900295935710005196679757223253579667528323117465834682296183419744391159760637528832522046890929410007518263987120877014100345512042717184570424661890573618440675723916580942911978043127892302666673087928516676000018771330048899399712017911662732252721506224233465641349810959847074961232072031100430702942258801265835118002822107214183111687725294871593643698344122425058222699306609589436422627092567301504417319955788561168025797757148572056203524892571472307182574307327365968955433181442340112632378952979269958523234971603841582175343287260881305686798061273133627776222830379163351263851170816862340509433212927429649005755080477112431943035482892192651226069149532448518507901262079624964682650009153870429090732909056657502292366491802620703611325211817315397843772746407872877821570139879818260285477309202468217604373009310145401497559011187207441267202752877923042551956774745585390338669917453035248747049135911919228383354165448068285162827680126647314314013502109861193712032138556096446399374586088409466415713421287907090086950996861079754673543576801638976947837577997243769073871457178175179071121211538944442553509892987938710526701293678441135606099369008884595966655943347210237760509509307864732401892282129117399931705962251473022816326018626903021815028351486321847825325445430623914317917469307302323188142852285022109195123844591474804820380566904625061208200149149153525688461985561949286799509744009550110771923663369673834686339732196641123472286006624362062209209428027938722383297291453309424997404279283193784941638624566757772007806454730761709298908102620158036781610929725668980067983355824395096896486964351521717936754384510349725348298828513098483370135187958145699134326310922731974603604756460504211210674712216474944274060569736640907969658805722131163273493901882385084446961838500748849548272024495699203550669471641634742240832277952818715589208216536559910754340946569214286211582294002885786281236114092276273712172018428644906465628590134599866726230509388708796307221889555736176946086853817230789568895214965272291658518261867199076084469806834914561837673020543616502731575887703743928659521259787967577453350837550088294995135982324515056316479784367894387673705080713946331513780353577081449685844395433052967131880921388586390281258366883804385227827033475236319104036379466832321317393596521527027411163248960648503666536726783176070825446801510864017410457914638293794810257648339919656764540502584203840459428278196037346409385953303881408239904326723824980320010705566728903544055699675237567197637791238663555842617963793965747869170081635636540694146215519783955151933839852484629987276835205374947311800523030329303606455858066133892145695318788616411373123029676363334778900565835925468987189455634791489658026668330718200965113690060938704714991566804864951989914256990296159451310190755304110760747444525893523771192493552188668486053708111008755883727683847137432609746268881255750844849845524601855168701867646950641050559147468577640691113445685450453866872660741511043313406996151152781246393362645155042366453101000152065458361425820899292495415458695739191861539986964423886258889292929153346385205276214421559433012272718489194869518171654889299254455146347916515121585363931063920667075666810478519138036840642325475472252677474736053489873073761292165257971946997054546065914989977646779601202693814683670996990175123491662591117896629496771100009863192441016107900026710357456021392766443753383713785731233611619525194033383842449756403191585221322096550811016334207393530247098523867415200883524655228255820466409018597188806005560960826671133026250008707819183954409962323025423995091493513056930438235653687348493639507130748076444063614381059542231916171671756543913057107159308033005998607491042324524840525657091311066805605862730787150707433844857881005185403424549295277434669128826598229130311048179979188194261527640377390073177944796531234024822719312729239396036395820253349185751242437080898943904995703306667718334900611862731821470722225150722234911730381053185188758565575123559562850796114323825465352034989923863493717035363199469103299694545259034901666084946041355483834104504431912922870084805975177150774071872004732093966940882212748022638022599838587677280871646559239050190662416984597678243985176548526749924120468124010346513106877216057741144119484990552077969680170586687127132522257020481459507565677685816026975672450468956645256679316193556162647900810742026464409953678713501149319394976119120269410486699818395321746523346674730590636380791594130779350535352882685782156547564945648434362445408875830152302269299296627559776642105300365000444173887806187405070815072679104375952761522905792610277883995259789970496884079188288715810815065864230750141148156017321791993688577117196711658780379167622644059094515860009050697425910632661960588573694665468225217108800767108155631234425127970643363057050797446723042092490030191105123646343852772959667372359790066539415015139222547675286360879502928282819395073354046134832541752338515055819389999755949067645766566900684806330421337806135994640143926250857069621374348535258080029459129957975973336997412979363878313780772643269555260991392342046092245604574645417652719646390404563114243269776853749055909459101983023687619365999966678947683636414760293927623953198237000298785460407184006139981822085830008400308016141743129335761461109194340338526825627371364353023621437582423114641604813664378289696426028842931215079334617717520580611286328510335490637307650414088227620352333897247959802225647765835395173693940086974042306186163526160445850328286495726198165301012209614143822859410931618000669545692203455382188188172329247227772590914735216016277473092430646399677028620096458675688228823959039927294934573414524756059248950648758462226507701627870814295957972748509636614600022296314050941950654712632703909973510225062707683654493405340784206049309460950938989074554449372051251882308265300078951795486125540073037814865136642047394773103565484194110733084414544670588979667968482535841922810866154047239667518936032038151877360242038319952431981905364546590270698599610840026805224525870101086764144733639424950940845928364818625192342504917909166670053503921180705297931742632566828006699266501991178861241912459506420487286221776074816902159921721168971370866390322055537152534039453440886686571607017298522755973150451851674697384453421360474958348664543443538048050871433625980175161497447437897934402007389643140002783376341082253226440576227081459790029604859695184523287593860050111963951664889136002909360264962294168249944930997364240201203929954990933841418403242815579332964978943882697511932233372514518207403440489299339448128210363448504387876707487830232152390199465523792968389658688398152255570257860558009279920636943927624468848609207846414942946518815289129229404807521217792171025643002179224316158486033428751759392288109119753174007802936470465983411178292608428418755958838298977371709183851839856336017425605326942279242027451739325581133077530964555916532938199638433096052249036012182047139115092123699767974833794712050925610777383712998886124541847140774153237943059093386169197821271299545051923277263930685400191269728599763208382684307063657089900525986552919713191282587685106210227181254275129162415601910518047122384157113550462580069541525340640351983921092363752267843288120953481145327277138512293499703959881371489577213300999789865154058853304221167874600301386467921175153025859929886341313392192369762146508208877293535502389943270290887131949474230707756127098219838986061797592214426997849783615104090702917625739250177849181798802150010531680634050126245571967256307116890162468035955817136668904804988186820788357116236119310551252419005137773529195556090645963590256005385498108363638123983212768127153299070747845772885151620297512186373079978397386622526242809790721604745653670297501934456075918240872651255743122111799095801550531807561830637417554235911396517807111183706987623506164098085473685331691806289526722963473392606482488325193400343614134891668791678446876579313384265347724829124845845714951588997783008949312780282832126123869820833722220808340840466155439917600878172188872498524318201138095952353201253082418094642265662236860332866810385108180740822913272115061997359461511990314385452939261437076931991291288759225089592454744407459771578963512137362216807186734822068620134823038649566263381846211915860979386950087188844279110914874926065265718276505402149520864076888437100630537384404260345140577091155222337791749111285103313428161365643470979196511449485259141851101554591407802332631546897072701533321925497949256470216272680237721023404029761401830642131699321840146932936627874918252266564733641676346846992593403382664004520583808902879566735550578618558850870845311154622138575332436449839183195777759374113262202082691192652074607729269958414756803784633672348468369887761801786638375802510225066133486597756489778435863098229132646794349628775293992270862821137445372796322703981827894757221918585625038080889523755618539693618867227619247915133201349654674334072638428270638770395524390624052522530938904739301931147992818630435103082814180237080019450405103866110427962125250208411797455630556320121188636968041095189202326703964746947672078164715722880511754234837594919645032186032403913510688782826834400516636470838356964218706558384312915840971191653996571719337243494475492221708109295627960458774326549944743204587056897422695445665371307047868006983860843139899245975212064912213650767398712929156536352767444746507513826123341296676273526543269670352154334626953334840194548280741142081473852329947632756131535958417805371605916324918921185971854152836241737765899740581144105191489718626406115432480573823423884662239310917154961595546652251396715864093878006298251022294375460931804446041042168873790721408479258982939021882702205537633856661455599601353097322233405110329241750306342525432583636916841212676961105049564448415594151407260497502758046953081514010255234076833007224257374260200541057968262835663787261407306425117088624534738739541568361397393907735658351814791041912684914819246731131540711650626272657784031728793182540304803577185773170883856327891344413620524558200204492327551925339650752085472438023102770926270938299787474003220182074302719059158907668393446323250665094409245561995720613029129621865126979722844301342710920382283424759618648827286394108845679739652384749745242442523055379967117705059429730553945026369267905744579882936364675256531880544046743473706403878369432780458568911794416059121805490420821349484471096271957412141177460260918104826844459402585824983529921620762346993127857460525601978734086560102370866802116195058444026065832752396188090613476381174484683750209679249250523935783870208682267405264260289775908827070826717378840877579373794362070786367445858261013013955807590102215767024872630687384224230322422013788026674510937953815377800021847021885491092981694782205134663241988648512722577927771214681068627790085216954142617474080964426524441388740721782398153719210333707332688489686281443898579052154621728300012583915855452488238821304986218760191805187387015226605621463883717851394812692245851511290791376747432940677621509178838218898218470067525881507745658436727991203077727628646208882590342620102872545141637281588014346528421893752666865089809399679211416596842456218326013282890076410742590375422169816654429297652736920319568503492611737210298905867231220405018495670842183583506664353367500636996111458421942152006759271699677697998569485811007371032427340469463688456826635831238341937867179887976729722883855104479371939430082090171915285247648622123742621052719799879169438566705032892795275312787244136234347672375640202507494563038884586061941284808104690069555678292810627257828338521105179067627043092866203516815149288253266114758990566637644705423478459785581486054895718467601021176102240107537249001272496732488244918928103593294912147955718172476098270402417289509307641756573564494845122665017092321683015919724505405326953479365421555488804066758975717150112098793605538530555936725675196870877413493081033863763327844252134212738533012399475024328135248740711132370883024775039279986006959453846837529909287790722222474917030343271855877354381362429816508463399882263334947183994035267563492618531111193051830906464859323850739906101986815679623184024369383982209845581887256271552920832588819532707563719410436010549292560821234903701141764316712247111259047115592177831508120100956998824611957460567445610895937635054165501231910582460387918545934040383941623503925949907546213067595140706224601445930478323412901529976584340256241381741891316594247784141846547224439683251324042382854406918960358517858767700831592661048621955352999487594483476185954062247087093100502457259184507203032545418262938938265368134831079123803543536038125191140932120286609694278766787886866056331328248749816802006319646711601827496235997474404054418759983146262789455368865120887063735324582244856476196710229490626241468025544553692022806648172725819510346841776986719444922119130090095728088839539480088226238960746987374926245794454314741966761134604243479392633778093785793498079186403843904490999714798574915914420909118098560936983400333375910088325434686091882340443352058127632611576501452379185387470324552552770987347638902625191044635633513826864863090576671567201344648293064280063420393692915767552239221275766249255847534446965400232650050893524020392267593892529501854821556888852522200924062891520702429564175130085052735662224980742351370486259948231034855487923085665049553067227983851153128898964056988458359584776132395228471145601536610764958309033901882713271306810802318092461452942096923943398157783122519076034153222628018799541886458309086716373790738956401384694133850415432078720989445549189638265578993651756037120887539448318970302772408609764631554343470814268697221847434564175103085269148731503536976101648108928844208435709811437819794933272529309430583657693966030748176127807534469434049203243062929537975489638491660656112945900876534909324518651850956263645447907564574497279496731953528734032118605173534213696832144164945253498596586970738552213114767434644804742552654054128087653640421508429092701581519111397820108580205774428147037178713606542573231118771444019892338295446203630208275386323060682736441396782754624942729753225489393558125749000737400450284071714128209160024218240324412069885180168832781866321173281061077751878697112053889609697483301226836213639702459124257864920712129233799649602590577434290809361440952543983428334923082260051813736169723164229070916476203566077741648417946180656341610935290651568110608138720724261907516558917310593403334954660575336826275264552951157167556236788706916087013181089716244434308647239008396508936064871536677020994123884956653835018432518497276337821651401754163490826048504116967371456995259803804194239077608703091938001592820066599144795328771814538777740580665378246437327563973422462845951818471728478208203547201402485522104590432387181238562921983337058938447825443104545080663921698412649765624706149634095015643274133522742233148384175242543642746649508798917954588737149582556752960214108129619394005340252866813866225373779770475129815513333568221611341576639621481580924860253298708776394179326158561414364772074504153512099911253110778648747606072753712790968612586306808474464077387451261816674865536043249804398434859035022928249772544697871673500969806471319363465756173549549748734945716124962874474028302832787770472789820258660844409807971981992762186140812692441051392560814199338801814449080895949515652587714808205206610042026714065741971128702608487345294256244265252021185424332041734466744579960254363760453457607465496686566514465809069372431224485367336113349198335116049690446912253489822494242783631596111900160458901843003445123316150190633049777610637642259177634674205834645494341807877545693190727662526344092890979251295299403289814108559940590486636822388950464038307830467729670179709692022996394947362571042254735831985011531406826106493131718628933208087994890575543022520980866434259810231624834787004889672875450213920552056439932094773341414527576983684202649302839639152142221817124026376763347716041808928206987475773658142490856759110702650738564815642994373514347568894911222699579125291924493854773735902452076198884711907847518791537089735946568952183669354044303627226746901661365129183286744440178785970128688057383181473066605583853138157916186582599256579222704795281545463609541257011212660059972422298587389870384405903151913797991346227672392567991390835678263510878276411843911230236758889572522423452076256628466593183312954403063703647718163898738646850212475787595994389744701621027877500153309510369727825102557926374778471433390348090409405033142874021697705546479067153034886592700511540996479763445727606790105349056317789156380798408143823864587464352076704909517167629940922303506591581062414817442991199740208766007083515425297533583590629872139261184825908342134666550309122369039079637530094769732224569103574448412793790316154095244600996518538199932752594731653667793819962754125781423060256186338060609059608479352594427884371645055844679457813166028675389292608475867716907995403547552506154608782822332294583956977535345460575078826855141210615601450152279573902396432381974830542371404437094914197376636917816923937332955425428123677859677375719033840582814450989572656004624503188712625443802545161400908229892186166607628286899813850119093493760306917561245604787041191961810167339566958714726717738375903497552328622299056290869521511595500426483088797869286170383047445952556266203984516605536756225140797053984125465973573141919425975684798861147044716374647310297762243018548060982684997405861562695911741181610622970043011776362269252603035144777161179567719164199382677998692369745205730245556326163214931727475959887688243964767031556793896698683093978536915169776859558317269658843023991504661531004230251099879531766613060618786880236955015662006824186908895053774799515269228412683655664641091250012949613244160387142328585033494324325574978276865598655353617731196097794446354121367968084585672881438457754719850671274218620223044225470173915880258795228707415662834996446931883555441085261661511600545216463892014751201855374419824633138408628092293511021500547027671684546407772448428576731544791331663377384172647186833482142356780040750849111130616101418470017901405605479696909452192878311831725223190391741257838400462825134805335164119102152876925488723914776127600568664272550978287104702752433502006079190441660217448999577059495162500060150327527908541086840768991437844498290492631257120538851065833385355259592114736642843191622889178530498827430366358120534612371153831195090833347295448951335290327523596614990552834374115402762132055957480826340825762871348932500413454542126794046506586714131790695916676717332922938211401517317776258820862156244199798057761528259202022424453959334462866977267788849625215825959022846923463426226959841072104752315486152500968179620394723829565788521924947314901523245351058941144348233786365694217710281423443503624381504741640252100660900078869384300990911844979238113103399418217858230161809127226168658598588023100367418185729181017312498934422962097875919335922134950082505996459683356389949519571250658544470913480106398866432338003230232525132325034795962206280143941296763514801157238433713007732293503508682490585063217173032826552663107398448627092867594071782795929075951313429836002432358276095775634838305019503898459813794839186691390628786785498267721346296914513431564629500912163067413807517133264036172053994410228737761389686035524677268886828537571636772216896867833960805673430409577314593904687195114200543164726914840487486682214160649016260155139036330036969366996228305070296232559032983495852445072395491997283170025826314916162199220600394656600306361336383368358313780586123738196114974812986832389218953511281346739571702095392222429526604834951704927992413215492078401946679011615909721891976760026675067628532509910321284523275084046421824478363994674676808312862794010507094504022525426235652859808420828091906310124956106374945776210713020237121838590188178756189412853472290578732570099453868195608701455365503298818092592219393185293302222170936483978094098046198365032668999113217914533245003010202489550202310129543548137721691778009570869598946793841358923652468010640805719518790601120635518710322378668445111388076764411054438604727395956788062407386866298555908626657204961357177915338792240028317571245217800570281686842738398708422379609504265918356508228767449711833529662117386753970119170939066461496224268157172111861172842498705764193027045093278107792015723301733691573036554448733817074281896024631036642081568624117703147673734892694749996777927070694807215470974027907066060173523333698483727915798408520070597447778286746597650294219305095377360869152063384068070821421445408077894386067496943968164234610247685888062658961982377992499522489832011766354946398425086701115146561059385848625642276202418515465975932741844637253095940062538822101556422438236980998202902394240459074208077412119590402221412658948589176732565635540842798079291758328885217783543649179231422459990496364362657859010196368952451104628100502980703970324350247446674043791298368034601359645089851801320157572968317422918066782854532257867154396846557209965610403857316940747342970156055970667535138260218974900566752643668732591091372018279764787197887276943368606573533157676407465376129896675893224122810795174991296104529513389486825085009239891764290830436628685571299670677099927750352719436470409110413196603484515652909889470271502087506556228807514946872086254342490427973909130512330134285101391702267541791293657254923486724735874077777495077732802564736016805496776520791748102141873353903810828132417485733387908037629231139119484203977652549551427506085983903827092550653019891374209543068948009611130766614788898963127847308654077264791458696108673833684992035197155665990659516949105399761212773479860188729795546133441860564172771459775692544023735017011712587958995730529684654798120647667811655408112435406704387103905441184997994161172619912943992597235748488808614024364369379305004401812160092889864638602281419884819017488464492034806259547390016350654622765408147561595473503796233567181551649774836085347000748431187691997565064945788041903274493575522251406832564436995525779181067054395783639373300608013022333235820629412046029261645497923229200604311826035064790838133740731570643712782378021187034422629275159175591719820438031748176267906854727204045632948065676846729919693098871648927899684063161350791393380155398001647212149759067557674445510112113900701496376259747276533890705193319871342066775875962030975938839103852726207423575954846610071470340668181760708144158477928894278853036567798023367530303242996313466759371841625249799109874539317091345256898540357710043059832737157188460300351428013112153665591621353179666993376581671939801586532353043553060151415777066086038864989497551004426131089287730519757153320332037694539065457637761172342488361197691925795956471732155425291429425500702181925641858950021709657853970477216188965788695163982960162195692660292000748197598229862785532654811306492582215039059399847082606490544550093837840727278919630100922134400024491630349578638734770919436302337987183660047589683682369242950103366371075275609600712555366013400918443435222503238915564525972843875063641329515812951740456021866645077483610134007277283660235382190538256029493390293018064453981099414047334497450375772284540520554877274365569484377444579146693217097795729672657639496931710250738584696465504399672726636486440298778766780079443552000832647319918707051603765697380929112862897182252929586547131380433363410733238089859979291333162135986402818387834426653191350127678043365009864755821533662995160826271823925132964470327424818535701351737964005216792633237122976372668966408183680102051838148884369313634922757929952202695347511434118622095768582087021004129980931655022215983841200719599025191905120548754484677385644312157442390791946535808247992829121882170421991867668239624366795085272552108861225745017181446318824381392742781335878025063637815061159242635719006199233010841499475632298578581363143927431509428466971127079782907443774537560619013960873797677400335561533416006878912552430739645882992476899742995544986032466258214669469362509189193834025807488849262737833079735792688020317664578654238971444682900256457533154169058336764791615469878502300006700786307265865639778489905252741782379247646072553620097319790453465575439596259875818040771656832391501352709720612602343212613030815936946363922400280065032828410123349140495113387113521109252820670061483177210410764693124998945344454681121159750833751177622267564524019182424127924024126220070863400361786364763305894130181392803176496107862730846857250162253341532821692791400218585882634941205774558778053295164562331796372133526142554826736232930799870652697187099527875936559024654939998250095308435043444761402665706341924819693756543604151445450088391833359949742301927508790580492451378487315221070799172334120211119139353065969965387598931873515103588261872342667773275032107300579368070688468169037052879632977034789251925476950181278411179059884992552231733415600559723687135692164543984751010773852096921194089659783418194628753359949305290642001535504726717688356722839467005388155289968754276485848647788433148162581381954821780668420822024825747340640267305716532378788561526004822326281008489686908976835726841137131217597021804464462431786989901454911041580318714291455430733938171408641858615703043898945184205504721683883193177243676743022349720646975409453278317274927238514591534704762776399492677661738557557756979518468637233932239053590211630396399941777921781375803233928320939544102826011941232642531681112269498075973622513004925420244894348319844278409979477292233577639091667957707376081238329970522840235712093755809947532834327894514912453286033101682071262372881533390916942783576554223561848012393587614500223829149347870661919698430953258747405463420271120045820305063061563012189830752397768508325198359359304906659631507246805166509005634100615735492773598977082912565012120355581002776595510042734426327935365769735786260230465912004383742001248560390120759323559289921276049411141377783311864747627340524045036400444063220229888364229758319219276531121346817829480313730775537068998381539579327242793964654865317298908559949634434176642424811012615480566257869526587389927701161252523886262147344689850331168458433701852176652444397389269037080861336732268715706812296705702399231620400628829004966483076294240033196232262388466120752418447254538563374523992369182361011763328822270868960364058995878415800612678025357760874765882021733401346331268479727940826258715222953950230469439052260525554142324727069263016254345427996191098475224985282829109463419273745689238974183314662851545138066700781617877201512483532910817814805737547207706919726645534904744875606518698013630993586749859273361892219014570389054520997896198453619167960901450920127943826846518050549840986844179571463439882919221564680596313058944425739771838530242042691808189894163858220709742817681481910494193181993701929302931788254204628306134561337521470757830661813981872249887526854976925966182766191555375203684093303639787413904548520311970394087879626818588962855687113160927945195531289206607357031919623400141905074271208230030445546995591989213036968745367191497977459217640069616965388867962999058510880245799305258403975740076501958789518280399260299330056336966697327759874446514664977976439857164107279673464453813545299765697407853740769633563378806711150845188949476886142431359956404203161978020180532050941060894763767740820580298751950267934296253871181149182129714547567024425998951278871823554226176986326433917688884159395394505380882944219420865571696564741030407179497128511502285301974019351162046705628347342362736597288095110522763747559639402331216465864902568381436465908081358274008501612198968843643315431764037176386683842840652657319045243409179869953775939234586416305337341097125703801586769204605462372320111354417095963479700264257501090808896314817261117036376502251668136241257362268783231799873103872308500842144800819189500529522293906931822522449951512104017049693146083779167372708931015867003806603861990250143626035400640626883377000108143872594676438414688901706089017270796890503788211134388315823074739044478426005513867034497585073152602294375535793064154378204732229949987520427938349444254959588211714228242108293678987878120000512400022615788781141086788312440070047812860845810550588953643893911438631257679158281395906858611312912569821055540233649915331726944819791853479978529688639835845211977271690718169319258158633685082097621644345240081981979420085661035598962129997466897695175766491225197267857974804318423020688021939937587577766069716433488407886791568206096194531594863077991990357965816341331370364399064536721072685757300629903275079615534444290582571744120391205144431680442347428469254939693671632789060468390608217683417192008951441376818654084481195912451778861373679260422131535203290557583002584606456122844036367600904853415285731147419277700445308218079752343206092706440015313926028690833025666885608539584115740624304146746558216185015724100830805825622079228177576626813500452091091971175978428066120370888385605062400824065193367212068943319016191462304902434128554634436533034953355311472353860598229012034584022715212158070918075130365694595198050676188732287262930834766725347685991068085166515177865367762900517879722886214322913333855166756014740969885038755814213440500366239421256126686781354194339540468978673321473802444079379779412349291015560354525313970046364155307781386179966531700328659467184381199319657661536978647348305615227815337422949413852042016907847881964879899852948594304741453282460026990623343989385320224573838704244980383769316911092122761242916317500537714009273331523908376744589000017252107897335671533252498548533727317206066652279270054781600254352459060584205069065280043074898961311140473324267706572020874578318521691115744714185880591550148531883935210956634815320087875855999269602438441599416033199123407959638814255575501840273257516609517149961963716177050002556974928053831382171855338324929913639238127581582956768606548952476808234080972298415059059071504296713125010226910626329199034456556320993031423227873781595212640385939668730090618541402635028426756499804467026999873511299659924574166754265528058225225080017338129560750031738546569291931126845355344830670723897908521852862964989240754630713011565662986767314484057474742188061290462436559742549299633760024814841303687569773181970894683746404432810981836488355952627862679423361981586070725506934890726652731835638430166991671039718283481444916166727157422686792437817552967710691376737239304040114394541654170744803163570366846655721354813041632953063529023931888805586703847360776999720796244540556660426696743206808162531905908293846144797748921650086380572118795691432837585313465309862789849349683720824106324704416937656896638156600548714835722764148387387504398129339055383262880807617066645995933674163518527840168709040631207604060751224111102816862603489794812766489442364108585456724767883299750187211334904813458714004497626593803063228312314828845311068199540611017874886063478669095818839484712172966546704691834051097067772068162718115105987978517188598292707952940335700775470324864670624465118601809575571412395473676635470161962816341110503542406433922534692655312433042256797367552977619736356972725702248339143762678329013408978428044632571663004995173890922857590947743207859725151854069717952636317265005604335309485659971549271027888382147467490452124207052264801716328123223082571457906239771473778891243604084047634529499644314515290957189810782746605197479824644473710455469024321135409562144246286206825972235144066591597010620077224697493346659099316504629259712631472693325937916826481979045273822600431915797001032987549215229524680364752945520623831454286848323734539502342331591680730726677497112597984556711785476585240679920480795471493282571267389590478160134404122388924782281036820353598891010542162534274239575551862950353097266646655628978744237722006133330980457062497809721504935533637219167184603947746114688482091066147824863279853205656428572010807118764031655348323777875598978881657730362511976907808797548687934406983436553834985911907295976475766672054841204976150314831407329596940531611887805756997767956814286953091081494175905994140056642325921448644041453823911782171419934577520943876106940478884012711062823831121392317880355334396919826358126900858974800907159317486128973131473709065855059961701166233534024389952182148460935757107168010329152105514495019201720011972183392136312407652236011399565677989744678327927878062623903342562912015639592825552077824151660763206336911157561518972962098954368567329121717800591260674497972265948036959870434592323371579363003902358252449135009757502747524747943788156748228056252773446433501503144617744986567495030456958427885829258429865677707794457675127928962021640059602830506176966725291576076758149103599346168995126910991387948968871103345623900760287838137106607787346074889788291757004976070003887196862876550790390823981522169434593801468927901353356482653643702640754619039563930167822497224569240719443662350638588132120710928613438857392765404202582194573702679519260337122061125304234561757471735206720416774777511667937353932598926445939149578322395077733109299991267438115503028692521458744985864423586211946545216138522110738329543018259053277695205267948554885083163685851329976255940638964217551185911589072007097179783531308508646513757179347434955615071483817634842084532269076487380146507408133832935350986665439214436003804207210251300854327121986340767826333304207383396391509958747012954918763884000513660033693906930209151525986061552133888330429099185339931691777415990662188117030020830860805076963909494024965729679323739654540950325989666362151809352426066675073959526822278307851971168360830813936639811066962755814589864081982649450550876419048434157900438618782646047099514807393153425377577539645856494791413396267382444818065846028351974189544566851047181403946538458121811766917395865995482178855506122175463976610147424939654069253346610166289999340826486235741955587086194819586509800818883476212126689389896555252832782944252287051443009510212739798366023160519933405573053647822588898892937019917451101096282311997887148876468417658952102909253054951232773259571801721479761813434140918749420789206518284450327786389757212343333532537309323461435604603048913555557847125577498084686330476832588038590220913481999435766808504656047184738168763343417853524394806685300152310022379351022429635159701600738111042877478405804535055404972797999639736724930976476658116545699107244037707879538371947953114980967013360064909692980135742025081390326367217086932493526189320082836509554070738576057803840868063415456020737845471366573263147704555123738770660788533372003887512404281792170798048295722705636472726291828025567496051979729832098628760534289777579468798343287343532245992851695823274750106255835382239000267041341286352345809757734618109117987798490987779110118427031851273719565056285356841338754671945993004465076644907186004804990751824126697962705609569273122315751357261970823071799309704218065688741123781615517246412617719230703307761377625933339523184198232894414419087663704132910825852757367476555024090313607636043179496482242405161176035249224956767086277727734135252476842615215262750107818584328836260841925498001154330515547439695125970536728468494938724030128534462937028959488244085557028235957175667049106210991248680680196803107818655369574152161382728040463408758683161176034380990056349103073531251365866301582257177757658900446873515230465976148116107119699395593879718171242381636474961728588462433264416211604523531744393768428368228838736192739203522136702937431896926659562270949568386780264437726031260649055256719877339010468297121076847138514065013087377571499413018538249838407783242064713150029664504637340600557877477587612231908523952333903020521956183810049133122778970175366929929594437991273172419253169556723437760905429447595793737557256371955380224517203704748662296342295604462075793892361050136611911918699294281184447235485010572516942269070825697108056337561958190261921644997103806450375850094488636331852778407819239577866052049990808406037215307726461729547782139390580588077159652974549431888303415182512661832896724194093954534939363084256078090312646802655754595986235263138073154548630373387441583490160469817098690876877099328494555298893584553782186380878028438259860126677167358248192517303920079649479395382439573790856553305982005576228772893832536763689318302088725841062907737410453980570132272369829856982811445628391670430299516242582276361035322615980128132900397389978462737837510484809722204567096694586248621323439067899638361791920459951742475592588563956872454388497559096500183832109585152372522356663938884844291895876040661016769076024050019785261840528068289572943326197858282774149191815272852423450239401679574012724656817011715038949185863190463545688033858155536940714919249069141224485884932489035889726464723023295020546631002201664664150438448866251714187655944602505469826251762676515151216237044587482339860741600844437803515226153031443053038802012262146867081273684568755466152097435264734294232092892939827513756378987522533298353466569739189878662244280134377465143043472483036182746812919962892008555459341647675059690108775354795172985466159195061147748281463330481747674945908186375100656152362010184733149445486250691943000537166884137749538835514985295336294814509115207462467338521794262461774735011722960474234438956625567042224958802794204672353520376550579019196583478404921259132456489614962947479875573934469866634713444223174265748225638939889615630200093034818174357143198124209222524146992053861773525752382042131948184734861483492737106921111435611093841276558647834646792322008500149572327812949614741155970706393953165033310072181321556931217856128541769701500225370726297074229350610980456076630273771885567439656949390194200362667401951215292037556394737805707959084966288093861688908533308051911975444013076949933739834930982698381241880072414498508075960393300581104388934830182077189477723125918241375649672585033513111849904232906801902030526290114781604384724291241782464416058209503586863469140125318810107886673284972137586060306196425644370887178218070864624586005128836139206452465291004846946765840992638542327016463569621450371134811773180680639621984169799561267203864398495498953770199151350267007204039325608136056612262044667527767517408618270718576664224595752898907424858151095257867995622482708377099225147924875396947996105465998845157626723647962247891259682090324009846526846177160144684899406936160428016723100112912491997359476370383095759038486174053042794930143817013829761246903866232623992704204118188083897138844075529520488676089754951115262228727212368903439510066163824002979810472529100500632666947669665501177808696384806927294287023387295179188196734509068000848526718016316022483460618542720834261226447334641559974250658436753639718417821648445483693438198944885635423614156517344819924528563389497443774954073970983355203346307378094673175223428508911734644887911674844942031800374599408071449228442222037077039669488972422614636047323780736202691857999887013032292715253324578730875974462241437796552706623074416010464664649383060001958548665143461394464559487828100102874306962467421183302990956767238285818239795126172104920931882350310133421050692489796214423589240922815708436865903317649278128055928087259214407710584610018970697392095378225425041981175190951146793366288141613916320407781153217480890674875148840113001474456380542427953361549201617567296678319707595423283257495949021162595147324989954403817759927857527129305267343288488013860737672199201401662290898391466579209676336826990636732778687695185647512164581563173231190562987379746063052177220727085563558339909784782925890503751787634985720734557030828504486837536646455602271956583131738029327088287057789835644483085563528773326476748901523497598326231144937816134786476282975991346294165282303413689808768090457539787635053561194494843441922386852414439598109541023083873267496614146729756290871935009779143025562520079880922924615265890121407325951752210842091899539364525595362992850316169921468968298433226275053466285348585317856329132727613434705180640502190550763124971374154462666893363873225585682771588816049093088883953189605576266495255782336465174115531668083394422611396615350819698770413843267560979958572898846307051425867580255638035040593746108794644023920865520503242723689958488678471470156749783243869858279130043750085315053446682876342673648611889132731788605521483702464079111332449200380519753947351420814262537619723298013989114358909018441188357664663403028667099498746217264378138180825195234709306067555642308674210706665393003598839574805919451332148063180542876653288728573559558169411712622517821237380463006251230501739907139846171427489473656500532321370964298738613376437643201549102578939802701462423081047810295791931996778425134415226938321310607661648380929648119892288669658855473710225189649170896159375171610892738658511678819122177372804796531754018479334229152516840319556034095845231843393857677581745392671142554140742660095288285737386576941096074472963498120127199005419197856707949581990071861956027752335806615316257012531403573634596179165825780076984560657399409580907216739376059731373023358212748049031212981606098501869812824896306286547382717597539556672935603180539292175807623824749430287826795482204666349619879757429589654604092862892775049953179006187311561243432521276712612752121173598784578431515600925588781995850781485159802901547609712004549082929676579531322071641933219156434288256275628486113805894175957694774697715970534345935120012103310251558290422343437784109278477831325000548218418934081896467013947739634077257652615365311255257015789768387464908544899492535757749413657763736835691727007214686785857540342059270779540411803347532661019985986470725828873652683514619113671745310841497803847241550240270762664122330580496845946695354980142270550423084321169635958199842672540108938403030737706600412985597455645987545060081693377022548571324477946947041659087437700673911972019160383229894983420466547919818124292211664179037748523622121968841582636687866722107128313996676149512141902767354154757448507146115393139105655018268042397233280720930587355276466625820194343744325268775322054130948039726113576534564304379301690197460190199553194885014873422560888227689012759723813708178299638328337234703850855540280714638717863032113196046431481707501993477408295380418173950994756669673517647316823210029165590030849847990538972614626911328729368671215254186893465425304528010422713196990939522020966217275196234773759538856476415550629105768456544342609128501504787406973006831384202878593116494979200019924043170738997261413077799667305013129743497224215535102994904382673306881657199054373041613667697533888927238917665588322121721117624098894172106834999637880492246906856435486094206306567836968025666825496462933942440983938216200469445578883998491068529477930327527813358553686562858277171512921772252571665616793430351750313494274987177192187653411775879881870687834241871109123758712754943634644317120473806169731366795986242397996888012455148544892562726204207719480516933856594995035929941311722566024518383525441670780622114931906053457389582067750908657618058201464894088955982438360070313283733059431855210699759549653473268496008078811515026040073786641572707912490766704232321226032019518354250622350470859356653213154004219978924500602254227526988765232914697995239292582498098287758447227200673048499047853559703129170658062128145215458024444925473083726243374960995900337527811144355562681745301375430534156797502926304224907310063529978510476743742276255686062636063490950145623975868583154528944958329482313628019851151943926681839707875119339786568759719691479339914904052746121665585222894857251137579045229538199043988752462390022654344581679857298263855681947662684065653480216756439204276172328577736615977587116023651759428636866815860462721445793508256110435785378720352297180923336018513937555944488159915413513605426557070716741209216423615994463700820223940696272093535693371915177476238750406117220044153264543684144730286237851658072409438466687322093612536674518951596899921549891986195696446322135570843598324320716408291703047640729406577868175188858098117817101949445108093715831004601400617111504373135072456893348909277111082856110108457419979508623256327995932497937533527381765264076350491164171839538013202080289192724958766768287119966251078035076343450496836567411398072665798215204453877525057885340818168343296529543903031090197691637465275333494460235420290493211141742401641331694752357479422379065837879301542869746276952985559863686087793781139542939628107699087600022291969286020491358732061869009223052212048915471924679821897566339238858334741861433232268906681918225861942193195498114961742102200306706294014654459439051513729187418894572652686433346477139523468009842263641589500142156975539959382883676176980092384886982617344444071026298119889815264040583075884099353976325754876316304916994274661867983679021181979318004407425655496410553903824989421531053510815231618580140228708727750209462896063979638361092549642670181722010840308938461238278919237389340442611182114052885483142906865006391819384289128352840270911951620269768667038939492111205960347587753764835114462943682015499267686401006638100106683034894919306078706017806044032600408389043641177311393171324050283730102807153466031566063033133890253342461684386428177713624074975675477947326106877954288215295407269578959464523788458605391645418303773318003425496513334320571186255102465002535933078544774392713059208186500906648153107338467720077454544300744095300662207966278891882825853606197522923788612593619316776867902604850127852652950464601534872734710466506391666611230748282679458724039178665078716871512218313196271980128690021933899075179320455551718129938577602328289118108522289733737456706520705119807433575540946842133566042141409848643392230798417120016947109654231820376054866546575551728289427350883807443349386250183290712707276040726672038650794709384903378810340455176225656758179615255213394865826329454018312996619677070179836038953768376769047272467699121976830090147404205452835704983577128340813557721211196202148388374392946872453977420141076522788227959946493287382520607412889818871675640866551608694669306150308218249652381537179076436741580743363478431309392251728501852624303764728879888915419884026386251391070950952966828639903604985695674278033775508892454549106280084042051545088990095293695247154064382122955034907837472910004644839962183436172134328571239803259170373041974631144461976135988780620724759917970539711108665309646421454201828424808659922173526584616343301744592599083984182359412275029772372839741151776552081751847233682276826300651214669171375083609363742949963295958390937931075383732926150292153684602602668949810477098342138039232315468681685907067066086280411215639801003349620010830268438038430901516127244700015952094057611019109264491582469210893345514839121111627506690120457234795384319847928380073348252175061543650030435224922158625921113023713136287237298106449359730870184285164846188891860394121282376781976054957801188540597549228422388175610938504641614713979911315030530492599904461849189661629825864413684603080911900603479753304416227490169746826845788699798376252390801740282166759647310384024973883424759455275272804054479414093922665105021311896133282933559737783045680392686373488268875273545685763896620893904463272502759451237413380533034105719466598387804771306506680466167857297886204862448263783540395139686352627222451578912206247960191959608702621980097495419535119198568278841200991188661762094188453109770355862928772318635789512180335384215067555470289196557377964830967503931585097126105321880602933994939308630014646305926854863200926850871561348717109023005977190630815321364571699164976579835748998859079544769448088081173639247947456135615106725546175403701316059832951735361443678391037934947242442451671428510183664996834070331137865734358333953230042995345160910910549694584647499192727397088980864157522076776575685983758500263540847229417885425592942537852974271217178403606350641958236345648618099188066759400878259534201253434454902272699672200631153774000810489947299467350489287002850592214356511559632336778163892502399835165105009111811960381785109135224425623091119815807697957932662949135810382975025262748160810272562277297343706639215959560089097153992582499333097059715746389008806336728058932405253922544669088584198573143472491160630021618827223344487977041079486441928411945551703364749757106571517157064144799620752237263457897846590255045508173608015779322229052581317939502878362198012522869274478441115284687444349612163108575426980712501703953574012813919052479559698993762987738107442785893940740356751537540187616947126005450578191876273100716108699427954357294390711746584136779910691203926919478138317558169003965787207057066279447087200453197504390035041546748741784347304819503819764612401581699490544397156230893908706425115156971963589892005443227199592422415752096269328242380734268636952685254849447441242451423713610634962540391612786728216149129838063350068134523665926958993269159834922320415896337449907212001093955169979836744665893812515648770738521265431006929330513379493200449864620486396901350251911559890838162842688968758185017074559381211830530636823332483249577875486913136142098538048388507838612899767507814940755162815196028322258749911542135060765082412663198249147147356075874836411979941363456131085418612048647290572603911122712199552357192998481145843840100653279035462362980802865669331875945207231237546485252189483964721999523747747435828300641608222109684853170747379682845435593507383012123564379792929939955413763425832881818013541797281154147344817559570802802890878691231650364723069752640971119685285014864118561005977971314188200349811501490298671779499883249999572064072650194262943986710754693511713567810775003918549632734610426212494191755541904378018300642959832614852675551831025443894882906389931776941891883711475594641982868656142535297112672611170090805608531297619555309953732787822000307512975978764650823397529464974297239004359263378289220114145254831275581543231522775435224610123553418249702562238108686091247112749062975250943215163714077157474463592819437266640919485948857887552892342979637625698759243971942634852440090952317164662289296750807511071722031325641878371840441339109987075714813755995145576125325221714268759292849714131386285098484570908074296466919985474346753897474666526945698026042284101387701658691743286552528655403711738863046591802364049093424126539265109666761360290790607224457361148365292565088738531647819250741838353836130162531598546998255925456578685209774013949379510912208543084550899781523524159787882245864851811031511772639916187508894084811759811009505800929018316275378138618320758045597509044173317381668003727583249335546313422141397594178798960204804991674951085986616964404998488453793822278019126358121230182851030914587482500028108887804461295344401118528637510469954578730371905827396517258746400921691277934996738404982127529835194723725172768897789351400168188050661780478190584080296242669743103057649320817348124311685160496867614145311197064111533271290319524847446676183460896793685234548288053113299871212326251445798368881120782912577601036625414925173163318740006696783442821648000256153047368252821109198551680969165016241074732065139815338697811987597056632996042304539579443062339462922252669795720930337720239767412876880742799626154767693220129228573945849669144459137787665396052916317029920972068513668160722140841491685149314749346604776982158546528698422251030910890638960584490808715609860137525267983967399770910427132333829744584445563256289748746781104006145062835035269132589699207828471164847663224115967627732901611286998743036540653428180842332279629568555938436533728433535843195148292112799112121341338435647466056448302920652298716900103554819722513243523360196270561619817533929928685159496789696460752963436190200154027990389669484418613032968239593581659829506210966237953013999027207459154711389522285958031859880269912497813770977820313359192812201629285353789450417167358039221795679183585113257587587942827579304141471009346070378614580966583162891612256297033187797883060823036093562884334260422961095864511137546501740605635626743070414590126432707330075697134884892738109435977770114671647054720035392931869807822294046154493266951502884969351059838935342835376531834332931199557843149031029643596491852633262510255708832655761291545608253673407764095743892560650998322148527893941729313482043968597974877733232584903716491153879826383630577957173892678347642304118833640147792033698312455135712604474928412205789365593342398553474855166263544169928881169319434438578097259652211895324158593321304613261641642581166759118703573233903497706716540752360388658333092032124684700730206295253260841850380710447416201408424209449096129456497432923163182840422137142222123268525800899900819535265552978678926943574082593083599764757677450931101432351561227379702490029514897664215620650039544628431174066264262219782700396389123661076846035388762626479019802723633722669648977521134635685997699736580464479659152490346006953463514100033328262733846356725462456919501131084867440305823756370917798263925735669704755304466643644121223716111585184007329266895200675169059758989480651259727644530552179562562218205179995304016250058950610907514691364482803159447326048483189372373356974255699040418796659356390016065674231848202382410474597454298602295106412532697595115783022671803554410029055421593504069307544439993136058837443442163964203231320987738356563476993641694545663636623001356706222293059338175424499674558847891388339654434669076999034894510826192446004763590824796410004278605462264790350246700151563909140694848316157242678565522384243228995657990477279322861291184863071008690507423535165170236084042746204104997152991605958579168820015948450587485181646358684075349030422077822049322222179313329431474195946607096345453348807366483890876021376879026044069188822667392464407710003284932400421759557850673803357695414855525972270367598165073556034744497932019501601856237558226950558580967873036852399264480108868746831851480136678447890182573103101330217116119150742934248440687629965457650734703768052303024704187759034253150715731688431966188979880179161201777025685649834567022262156822661050844754187032962888237567562386471484035514986218291361567069936572695940052926068997600892146350804422176993658034937828932144552251004186187017057397496663403424723745553378992950750386067766122507358798173275620120576080977674677221877693801786990654218209009596293289847441775848426126881409191891199745878139040024968086017178146864756227863428205942092120871782453627439529751400598289854788276506091322735232454787849644034543104399801102267471107373840336645723182069045580537157109299480149501041632084201400417101288462739983856899368823907869662704748515187206711831076143229833146411233839717420571283755261433340915817228531755986857739974456743807487674545008642775744044635032933555157117679532183706674344732871186071926395856163273457222083060128753118157347725458022627585963198060420925614156143057234161900134441042290410048255925627042860861775340829381743969028438683554682420197380143380026898444043657096116148178186949447388223818059064053178861122739536315633837892188413739126619977648236789269682665363246494638478125889759314432235988998680122612153883143977648941569889429734544834626754924659414838017255447029548211519120502173630263284431810010525721509527273010122766921995717874104397141596099260587356841206983572086166028698178154819749465258328432164845688477907354437177373538014523870938685964935466180916930281804245631608233628730696039828363141332337970364274496464013897782467741360032317862772731227563972606027022509235837366389452122763697996794175810938288396521555586129065315472872569291038949349537939926686887239180322700535671510466990880659221818784952213776140418896821935368814298949909797261455136155627369215767671869491121438042542541807770883818122441004531439489064269547585063913206252265010448517365961710465451072123810357632902652832020358957389642591800638755014635663294777265108312358214910521232657621091327153649828993088568290811456991306444714553080925199176648391272766144140451489827001631078316912353555145553325229004192609898943333266470987189858015403272960831907169871288225986184805573169914260718435762320656556560561654116039881082339809827963099584723657900395332165102220334141115530059281640069936455499917791727940123781397336662914615381020498645614358909690153479893367030854453995862448165259100684692548661048326792948921571806338214696260538116463275580273633013828159899864187286270264163268998087766279238409054656965659332583187786178442397993512039910417441122615130249228492430807243779525665214199460542383869766309589487686011760066177232508403623088135766268060549451076819147552706159589054043458316870020414811870003818472021636006018969786749582012405750444699407406570463122010359758845169844431218546518894708039645033874945137843269241037017830031045997986904343911801543630988820160640024682986708045269499066387746907631124310675692601423457592746923136613967538262785714693345543955142084535789541809457523051393334470567314252092481370327560740089461214958256486133938433677403058540573246122392704357391350437566098601582889449613098839575566044466225355640684018442523359361895748001911389651746267819426824447583632494733819860214671461463544198909030358709304431225778649899706470355441859880674846516116664637379691396315983916476068910451070878100966474743569286562120481794965870956663287304553374366988051383570767026876358475915834274246926098200861103490469584075141010729837721124801594379625028557002223247350248417863523217752640560803917067179954590943171042269189849884740802597173111757249906321263595391827855063637389710473738794944200286246289601564806766685181358043913059436690950753801924549344302861111522978568366949788239985146424054748019575240340030166961118712239630502646634995464211849223379272392961206706342522211881513854143682029334365381591078021160205375723954375741643473114793701868440858345430547331037746882609128735452005524804749464714250716270651653411702365195352132667660647672425374814232671627078485636049267549879323537954166876919013375898194073146597787528779786521339963148320296262530962851744570423084603846806537689685668575036019993727711865845635177622654760908741744863133964546766356627280464934225743524387626681648311509177533172619990854101853250094867031879208339355995096275505079328970517439509003937436396344951219632400299334069839718101184082723005261495094268651625358209871238559140409985396603024385812853460687194694719833867371698307612424327978733943866784892859259505499211106156256065146138913489449023091063712230896754195089758713962895170491056913726009234469040206202435314824966847362313805513280630686715325617867252646501010890974448203068087745820375664315205086003959957055245652547875016941569498120191034158126317558421752885584135945109709202257844609082497628473426721094354711385517101738717541358337886055235787378061199811799059199389343133306603799988043670682239013511839185195650478103833575330418701625843256356144913974479293465811247753918251193520318242134234535801857701579707797761813186532702623568442558869835092327459648689084905287491896449080457747021941487241484562087935108064218311929154402527039831544695228581095283641357834682857632001824144010264335569475908877691448443741138971010561766035629486317469586300033996840237853427488348132915019007103764210374201745655313594272393063830393285071578027087549534588755122172468949156044133315196581733480222867264397755053150846109156051489609297026072925665130417454377871800599660024209974842299929002238531302185512074920892792384087719486497326197451927985909813692797567600515968295134468612919715391543022711715578104300176626861687794232793242744166235879096602070079181263029430321211562883338917884697199360992414517158502704903624596818529712946899419839460094423138433288981001066291506799267346777922286634840060017732876675974232300989206723524909975879816898709417226198371816510847933085551281080614027535023189652836483528817388458096879286165943734494989311734116561081969505400126042611067357460294284407936180186650113412579711858564299290144952663365961001264445773226203709673892758271485051793530894186943918453208286254713056159861404877693953359554901971761759261745697815794375551260519652666711457039138044177838370172211642704554301999046649783827425376643320995830693263405227147021903428085425820054253682577695023389717201610923359149813448949647477603913161038165527381185073208833443285267292426908639348784196014945920313094024522944548568349330288656836538865735941121972919484052579144226647893430128212385776816718707222201389044386634522533206923293595832458241533054751272210260750310700777451342655509685549325984640527038299776868793113537145408550742660107026328723131537790040572597804919671404484641676245610672697756065724026372562781791421130575559695266216984617044915805760013903949888199316039426374854305169103872605467140333618539842747755935711541145005665174031880959622108298051016809479906467450752991863432685373041589311496814268315514009919730594640220918280454561426235533096133825137696621741707708054737226812884562746710940329275891784263482507221060222410375776871775236058072316301658219318113157523731466633970984233617549406286052744242924450076952601497205038889645561553318781110147947016456223501259082360714108025432695378443415340647010036893117184362446824973933526434884805271569306631668640630431184256190597497666417867047403977937517866870058278221743998605175059972630432132109459270651172167389632311642687803226600220883996216368552900959616216021836646597818200191762927492446611954256005735216890010699929294622234889792710097717566972029437359435979492049561730103302569910727465609897370531345546454974725837065437435181564726113337513507118129367595485032391305490537203915301106567248038307257537920987200942661854485641476864418518950782853445046710587322661726434381986788360847799065959872032261483934252786697265609404405738274693865545519107259327418430628810351140066979454129493794156377653085232579928065394205390633982096261517128844119375147591238245869199961631028672227914568469317585564522776824308752971517535376714491529577407858996399409668069806951539339292437525787435171747548109210738179054808673145032769186500353277789550801770193239220304047824184588225338690531170807384477920978346776571508696604518115307894184390246783552826114420306889508469728638737317809317232028181590491687641081851031504320996243290269096155562054530430153043690551933717990816353014678027004091571456701561694520960077304301994416010606160665739917326138654897755189850097482488309160878531426013994490684951260483907385504848313070479264933695826974705560129271112963787788311609604785139106959062488071242267195738023095065219296637239157594693461831015132229733139438115441478841923189007648637837664807516128287574856900583824765966490890119206471983416582742492172307962469938241576531948946964254452528280999896630076251898758044834141085837498637485228615419144555203151143583579734227724489319405772147143455568924975599087201560374593342908567678999470241086226314402316146768779251322266421789171672969253916127986127606014544166374615311329514009723866424293029175954510144346660650179692212971735183519475959093262217537380882363952753507413092961960649316410045297318270504168498919976619664180940339671190500752555378672035200619352199176544450199393519395726003153320345743935852831007368680384048765644666852873502649104303166742510954015839207204507796390568414336139161827826131168917285465269795668937540908154750878915449251904749818326369743323321865544661663514704223187802056206579825984302259169744066049908521650234559352100226677627985040457032953959683311849663100208083882238367566795115993686607407137049690542351170312973891709671018437076610665236224906860459630209355024806507938266723866888688926209272383919413428236520711962800220799718732625214888655683821117264560187479315720118459890572383267506624778966416526501998357141591223518006278665306614743228931783806661537860004364847303361202069432517600580902162911487430618139493011741246686793170894426621364402508618448442967206144437233741550939109935347077349845761058994276841943936061748610277682626538727679757111625069067993953466577474641791464556745497297153006299304064703369830047814733181902630736620976345507143757315332305450091404494243149539544065380070113025572732563511579446920454941829003803301781984712944817577808298503262762055651807146763323701977744429484758491011319959961164532357009597054452282653915955011290312640326824317338271222455027094281340578066273696542640883998694521864169327679506767352750781641034797087523126444476200163993553642054208725716320578994483699457955909906408139989813370332509484961761576178723549518665204684365992276852488417794221797351168257753519027141158368154269739969987926493516024995701922754699133817890722619459917885352177379778915115318880759896381350099577526399203033451102844406883154940738249626163865000803870721010762199712603140012465140766099508826635943840178756840187723492351387635356093722404897021710506604617709553505588237739491742527292310870651985050889114829326263153954527276654376781979904669302405355605994931313132012099031809392704273992505358607600445495937071895860407891303268833471472877060879879670348709002942034894741429481604043608294245104765966374150802865343849487269336668296485044738875159844167183950844567382654991861615032635417828398194864875916520974997036280774032102881460983449933888450961283687588942809552889774681553786495296103385428605159821209936628243829618754783327657123099300055380387536424575070348931334275118362491687399554676390632579562035192065901599072021888510539668949700327820748454513592936105687400291786127995671136524904016026107467586727195313178734255260727565812994558203412924497226646341859965453500170705071087190079202627902480798041319080465069591540308145867071044476148019253030037325769737508907138650103444950601011515507730284327506770292827623952792562714351071120133185007836967854865358512131907517944033267416723909316212807842254435326871761162307202169652491152661746228358295866897377803703868300595596188596383693042619249476004909972777764102384180338581305936554478176203039386169259189384947652981080148603459128809449436781177438241775304940311041560568596061874139337198004333448463446844251502439371495502093263564089594380529491064077855281216367092679247357207450448863459375194075636256370909111611192516805308491309845866348637425529701785628201832215788721530564197626739826349532129302216151833247358632723754893323876677285353181633325159827406192429917180870621958191263417401038685772499130538978044797472624425055036790412329133383190059259295262591980051387032493537632610299443848375962974116457637212913190109027159106952580967140764366264926832889070525885107667965800529506426892615019242130644031441123947695835054103960243892481766339914881293084629055230855098796422871953886661665530576217030300864299422027906845433010972456198418952228321432923961953113572396419591015818205014553737450855929156943311844960953872686419924600746753407014864902119735445467778644520723349991599207458471803199342435051699246496777092569739830396137842356856943466253810983238214696035846783984340268146249644659799029908050175869032594590095521282400763573325442379403361925507793191342441299687675187297925178405799666669494703156880278366662248210479821274479167506986749741932218395545367551400401452943270420055215788385487842073109756476546133211312968153157958678516835839899699671170543541170768299570107489246228333570746757672756640430731617206320384972408507712633564163549797561859994998903496955455710187608125945020242780925039367620517862254833223105091333790707427684400832655052509646553162504453464713495367213832660995757328525032324074157227303155796258506787521141972320682766090434925985870832427818427976623021151069973000529655057741119469653452300210429621507767176878696919018241537894793382205839935986665032469087546685865618258047277862063871515630902982540588809160919176857460980064803373560150145076169132638830195645070241085280663081931714035068600991888395233145107322119393319494695688338444981772830907635687569236006527481065267027763703501570684631923708659524093556896368423337240163097441309125904231549116996651679070141271923136888805930242421027157366204895929468081786205967498736801396166209010136578844486860273762641999606476066586160789285364723267496582933103708950405109086271998342718599992689321396108000808046557169961330958450563176407506350090045202575826208094164732791720554759833160407721674522217093946824994491047724653766001541944653900381112398689211670593183832107738282914175788494609925964321547818445918344854323794837918820727252609019090792658038626182084886222367241812907754045949630422318845402784841392714242008036370958345857808351224642784292228460552830901264013453833735032888153401523492716007992247250207326379193391253928580438145462780937159764015922345364377838524221846992119361518226809264018171143215392666541613367683637385035482528614445271489566013270737968987039148219004089133021321959322946850411383890013643339519321443093543779027176868805352861511211939814517323568255336589719973108866216798639906113569342191590106522438617634628126021663741069913394652024199252799150187123693468336766805631293606661346568712571356444637978879250705098106431445950456666868859613811929416743668090943056038817193246052029538673802017681668868741999813149130102487306299917023521439012848843573249816604147390509133174070679660533638377842376337530790174951413518237609794147313486875192948144241825924978547376808488570290126407363425557105730270585041124558676230315196470483334232631799970720543500489614463049445616164397874064386902015967552658338733357294496089012533098920058188898125536107570249364630677267190512051423974032706632615614561931174347302506487334704049975828716632153222066563836763142911056560367134160994923028736389269533366089950781457122458318121981094043837988766698876201975105652258768409906965605795119843126628654530580810458654560645767463417499321713229528696958289791164747509865329693910347349853597769218976870038010943323320727679539890430052686560233100472370129428500531412036524228063364769772449802666427287909066568923400753698070436130234643054943477646333715525657356729187454392262657540750613498893485120773507972314805543831247895663886502936671251817115720464564782232498525180845592447211970531513867635667035930306979077325311809713244919914851198233292946273384255679141966147668885364297427085557143764847400945398823143129519242171041025579788585731568781763967604801980215166538607318293668947856336312596823891699586986065472927392332520163760364652474959120057940152453627594354578351148690214865730764088027827058115233849088767247592316092266632675935205272207695165413025655801200915889369197534502034013368272176998251028268977982609684536037566862535422375259033013887497489390658952251608681692798946466604457296801188941550769704239253143401732837390122883677296757618255757097454579391806621884179091716648066942990006759356627389357674319146562042539486444767623947960075684687874551545913103800184780254574774839631287268275723208605695244458292558570163794902987517313734653840426646431635092799848178397966914828696980110550095877488775212710101628187738723910098302823030093865199166791606012520956782747282736066048921674121950620182131090813852544873328186899672884273742303723357549365421178291657897978354268297313726907263974540001835397589111221796431107450578591206213486787020549235701823840032225227929334365669571855262494270886446843823246065640743903902595630834985034954160076501876833055417026897108906216477031800371567871363420220177950652523369169560470571123169899132983337032629201215627787735499040892241772171333687550516105032977479771255344982478715990303582642822671770664613754037222787293650050374147276778840262298292287529915568336649167660755360929293559318842238474451105951391700268459227794074814304133840023925237394257310211235094070547497099767917964857699746716267239100947558027047317371775168723146999726848041416217103228646074117727290184182082400695890058505184175613379255815580865849232149539718832085527180086974622055272101100359329650599209716459364783539885581607793174510355417855738544845003424773087912112604578769850896869383624374420816341897159676311283234815542817027427380324827994762267390073813031174652584877942897745991396233066512300943679320636455077025350576868484489278408859598353053163218166439427524032078844627725793921129679165663249900994628727424083973802420642911657158235580455299841528496838265672531368658087112786044475715711337094013214762814063805204667525565687249015938105505964332455534135938420793363513550197578467020727593304675499932251503713718863537239989831329454448140668707904383225839062870389920251930173306723894300351877745580800325114374190228538322623352934157796685529527523711297538010079700849300863798319792641938150423265448142377031155740285706692949905681732764877869146485716483465922708669342315755207405244270625880443435755765227378989906458516707439579945366931852273304698167552697520136729008005638940804337263380763243343913954795529685048606266979693624068889494373477463000759316659722894307632594314410212728966575099267519999716641276483196684444121607400668267143860269049932237222198274602215014406416754697807160718476896477243983769242735239585683408850626974134656945032752729548663568194880923957980339134956520807965725634155489505270689295538233634112201295416962421677966553705470412177491608375535411893234076140789203329430161585338322914295430110772741715189792743610494419177970319968520980660640745945721330469005874692800607187874238630437613167502060650023559608101533664000773195692376331968844276844935324928430739102839762713348155317007981680859280517466301132839171676597993375954320234484028526519466271482858242279343836010689872256921049841090727422239993931447794366939713372587095550274984639305028125954134899163443572530434218049563767584977143596426818056376743546086569005667667211270508057631479119468389491225103776603524555905763679057276031398014909781883474014429094369596859944309508013576699026652738244670651723968500498161448519142494429297180405894337022113205091856539632687812901029045855622809117224981184921225636801067747494483354064467343482346304432582230287206491535706256014088306093695523235592139256138025699724687454711667273779960473378378380181197030554264871804762650384831067814799154526117837003202671472913055799892875591369954595233519203789692679684985432447634023110624749593597011337420468837075539790622803767647822705964706218290743824182623213105043579317506042797381018637288710748137906500184815351443755089967020985125399074787678719224956697363755646181248996557636829380115120139638412410977788993381436353804690868618338439900142751335319258920248687016755727137905414092756374745490221796920471197237389290485209873687547699937718179467448172591763584583300831631932786420703947103915559335104858781243318075354988948739711236022738156327237104643939307890925242786635794931979813579056601620571663931131542548153767566168345244450800485177284183844340106739868017820247497622705920832153858549488794081278239001217211130729366603875897535338493218758802200525173782360376132997644144961118726376607800995367370525469160945360968964535574743353999074703379384819021985271840524414290601438250774545882012996882502111108970080387722865665196489281525647376269865042344077680672898650277761864589045165451125586716966167097801074111194729016948579646318295155427172596781314862486195399833413635965847551530484823413775387130274456618037456278227792955042789602654870213914830444552799412535273163724188237360327110493279513220049253907130738643676671100091132526507303363082774735333116310644898981754483390629068500339031073454212520829342695844406909394466256611092972911216485110711321670385417422556748792434285439804486478460588919604136861777518874323029758249687825360030479901366609039184069591426890175353191597691829028573665322084677243280527394518401267861757245443114468612119848954454764131579407170409443845707327499303567255824004065801782388198819271155475337653696551250427844408521507089844624242936379565034186265370539915005486500848004052369626980259318089128785951508009908725392021798214207498637022044158850414996973310427866534337818609280207435894896828162018759524284857500136884689452631260012031284449751178040154350844006027393797414486713706996976650893953245228609204954402316385631857944564243645235851527548364208189565219064174851797497783166592436666641862206072009696107621728770892625644973229717745874298900949633613581351204661564017325658804903699439923113263708987800948976007629988522716651240619610085801800367018120406866929644618556483637056552831032450404339163577459109497598470790074382316249564046146846915512657882378040368614183461081817964011209566700889393799331958072839284858417477123224731137837526755898128179783275435712136799289019059437865424153915166716542788582624370903921529627969494886630469884498533422608274464658254452450917410804467750405450710632520814766482757969404485154129533199463808940973822322266737663139378869362243939110007251660677710638989591343797179224399000899528940499230720862128612140603524315319938329564975055175843318522776124331368226749396080535132098218720343286699674840264473985099528190720608921522174046511933037264128694124989574362766784217985888840210290989517576894493687936244615014903455513790158828588703742685482710681874411298129037080840367553281515320372880750314705465572207017259783732690410022579169946284600987394019324336858897354594124132757572435324582275407187323904381470720188986046719274295735734193605258366063990563952965875028280787231397240132347604977960932522767929969446306830039004452648174104508783870693914495184453208893557863540999255018449610356675232131826594765861276569791818132947756541732804352669097808408992079430195951608087875247012027964772931712697234514780302441707442009426132938174526919757928093963655816973733935917962299293101791172517341760774525235650444875904970262641473328274194884798062480143541189096355335697589872657602112481662594495657353997284823849865145566582789649384785805027163635060720590503263423756892801727211147445609438022221021156944913709878721121169204719862423894814093457326105545900121246917954540350028249035872122789058315168432607609346718155316717171132314814407212466074999686882719610504619559873289537729247635602036678200293466817627324698702191623316305774353221443533378773556688181950260571062146028845270392223840591422052582318421901598051971798066660955469130479403487264693670964254606472801476767790846371025020677251824957945499724898985502986373322510280075609509574928160827602883709937180475544131521558892921686044264905139986315639943423050957652057754893723260793732958229832381707419192157073081192781104006850922898601218189910207034289519157453762641895061529218031549012743963714787267228876556196324015233824242548921719110330757877234661934005802933616287291003386033918871014864411406117090987220165348249320929053763753412684209909392379711863592018007304176364271648308838510458640664638783232186852460812870166592227376105133570559719920987601301389910952228339091922562345735826423607059678223952458614569755339428275779555290761506571331704319875290327513550464247237320915342523897912705737408460311392931723683327272007220834092468824574470061267663160550177152826651913816583835767296814617219063318607064039734448321028191719887951655460830753406307180788880365858896891559447226296451799036708870046175538581946435948255793524669514166370487340435156778306139255158551893913115531561744473752360155558436558720462315915725223801514273849486349653496564673218316109402538994294022794677654361195323592597541020892572956592652583173900511864101818270691980094533311318107877288919444426580277947872790713696164019241023101404001768298453399698195215957978846549541147056437686212550408585223100821030841290763420340032314646087972952626025230789371118683915307613718538164402510070405475644549435944236252121017273179022791304333616016955943898743258196456016043235260304274455563843657746933005842758064963364097759332047750750031001937114168681338132672675442079028245993832705307314654132406015679253603856365078168115347451665207187186994820638788959835829466539959592017686067594364523325747752513258176197036060477909792082616483995017971238527580393468789317248655448799464678894837459646791172397604631550207311933387695498643579125010721744064648321454088775946945409348503360862752507904546874880508038225955388372185992104886725074510103650555374583254444459598120242724668207996451787934761184550666643542285394472899358204677079088043429134636734755508953335656016773946728501786049328323418658907832900005757047180312641113598285641252710133223840326710284622759649291206497128378254061052906474846806259471922772658747476484784003801315973507721395289985625848900732523722030053092962847003432740268697842043464916780418492124955572592744862865524470510441638935519642477290192780642222315876326033492331638423814973508824361560787123362689117136580603748216254511382268897353858954464851056837533186312187709278230194740271992464124911547913730881399525806080946513259791744738182300531096143406537453614656633802862738783801236287174125627263858828260652615362736618862518325050394478491809520258617922989402416217366785858916610853861913502339747920595849908296890309579930113557352542616867477541095406460753163658057925884310231750592964206251887030024273875553754099324240260111817611768421433350007968548074524896607093435035692288280548942784943746114916318214433588017137137833504844043486937472568961440532995014928687348241754175261017310551491255430025698146440945067710391189137825496925121093462399577528832964141479172673480043959767901518426755972626476860122629343584625451782686541461360749760841903132893755450033001538586620626202615708427186879442861661663967092005193476660645627143308731225699023492816185429164036977835689394920124041576911620439399400647477388513789618562677426274604156560912291696393241220008239945403741966018311685604621944121550085780768166193540803798652357611772515072803942984138816324235725864345169730672216866557252862927949482995543535115357525990087496620210766763663709444522144233307651813772055689422893082770459505017749721680440759289763829738842737873294165909467713035353832533342960847243642480334180927687243748281552766369135528200950041641513390774098924480402652197072447147996675978385398943028283292830219686853313374941819907243104180714624188861084102624116968446006901493491481055679284591811480604636785457442869811145144084585805041923103743969469397337350238249058741487653750895897112120637659744891922474221337158800679364150119561743622095133118502406803814553336571911238360394473317661238175277455826933967434894058959098234649425740307860316065035698697880088772172561922494916803538917898289204798718993744230895537084583659304291769184260094820747508030563850573707272593366913939754816882267434433722936332664983796032580952884537634097227849456551553782863129569780478219688523359425707883488439795217450705636160883847187258716994980411230507543081454756776620541570668938722442345766952409448669130077708164696076720462796415262403038138878520892618998857502031336882674604876781829043311426794770677812838475493885143859350884388050951087765256957279016134025914979439219763683610231013872315428497976827988114005223992565609012825130412542061529307017795842439923232340669850230513932512558436403265583029552617120893335608145371128461251821387026413785452755287239457002863155798162282178413773365318051188742861591392689347340334003717991819392339106731296084347405644114784289861003192353092557322568782835263884811625909537818648669507582033913241808564084990894296546766283194455719713768698160824524377477032696354395512280961722347905399007562976251568041597812655521025231983031397043524659508566070284859669560844863683589998838865533577252983250144961591853316618057243804543039428150176731155782234713162600778087708561469725137356339540408823576844138319087311161361059939265641455050224333054505094310309092276411818701516797412031007394472791985726260408179742504444759173462463904937957863749066719115513768188584970431007984354803740858954832181821495096985664100264088989145271503122982432737808166786198921702867144485757735040563328448297547743789759977001227582362022634160665960814624910380814714318692451626993593552401916859194443347415734305336387509048451511552120650356782031942340222807341117394938660578974415229681898565574258520689632753515858817228957001150791254358411632059257702710551545124591679375939557446027099185181277675947354404126146999547155789430818287903165573382563400138003780251318575424353606230470473654532539476109001986731322771072176990083193633793545761318386460917595642600670390161362797845461507504150797619599804378139736048823779790922425925451215425063802994840234383640874661064714018193983701280250258543548985849702481252604226077211387232793376012900844225701934657229457463976225566131924695193051044578913119583315010332437826134829252184778261130241092386067625345194212007937961859551273182795967856297863692441328948176734026041232806469117790253426087618186863684754770836423578835601824684586987969603950224967584361600895243323510619132836072100135803086561387872574397847070211045028482152819938617160274798168508016256259482496770921452454856581731736686210573604652634110704733459366418945836163422105516075548173778555380874926472173166559641242065716768937883581008953937113822997752223426998823525468831085248633719740878211011957183129830661135379311758796096724174375404733400622739139014489279752419771533093124741623063880462503130204259012780289984847314270566871837625163191495049148166603291909769685638407458202010167469811070093541314967144993000461353560094604627285545405565651061605181666509126395691953819400098601713861231018397744677440128537274176221835528423434119454099815890649722950962576306327973019244555706657100863166881737167471460647786116711769655112156911383633132552561201306577319323023025477168909776905922859947807374639231109743253564491357855756762647765576216604402584107037779108917847325865130522280807565720005041265877252592527651570327548251060907378321699298321870060805345335555363205891150292697736905889657890708143807060130996761230443605164762709405407312924898402463397463006026971366864796668102636598462597099015617724051289512379564287802827723975179141642616864642104558928611854427750395131227253104956307256689247352994779796442710089411976953098271575235647463935356876238606288176771739313256990773278552363635161063476825724050727452160006887203970630551760110191903512698452102437470313198407204714050490036350512322593035133073171066208869826087461398124989261704299019295209702297950867720828379264707432791820049550322767467794834373307644217869702887051225467040958634102544651251430961730187985823277482076735458244096464604638228111845973418410215647364074550405691185909253636232183180080201460919829281148625260741877795982460722400739467394472742628842137007972133891935890342629159059949433056850350550757041221233037788690358826263724245846335650155138233880016415967288060010305535366570304463673190725074560320251474266694641396076296958005063250399561329437913155712197084994506057077887271216545387967330355199885354861891353498752995105041722285228452576162773170104511431620682128695387335803289388865701342534981029080268623133963817073231559691717059812339505491691181412647823898229605014213351374609137475423280333154845736497147989076162188138912621614771823565531425996900313036807864465294622074888436284326783090310656142027610361578605953659984798218911758524995458145311366849637315689687483727466735084628930024198877911003963028897913847876877496819306420784963346966556168664106539219822478454856361121292055225662490742296477826650492213100528209875356486487583161121731868533103702055718605549615051128787405038003410810755035973393390345635553669620336177624276014998182922510180634992873346444875396201001464728257943637360103890333881578594801758983936852840442862146055494662540038940405068528834095251677903462390423435066943705659072926743637368351040711939224767316155550515318391719875562680437924714457827903390651864806708655270110052437108680989962255632500002846523034146520050666383217168643875075157300916065418407109869517670200576159742923732945208469627525436920342872972809714040000722752588273926257282069959804470905734066581339961539323576016299173335101196973633749684084525663830067778206602002086207571519978250105284230338401495863559913420503539142013759008196081925993313144341394056033646348105380541660344016017410328472870640149765737387367263331179548555836548623120234441406818504759058701380068556528030820947297998125805144654122300057933807566777114509003922668868592081968961459970266855052307170903257175853684142995486203007222984107050535035365156353514714872737520291758987544164354153803784553081024185050327789752365886963461609343339552312250811933938710387458420728240958520195423371980908122570390992033776456027966386451837724197168995826605733475503847233228027849705243650689655048448213639321392210280171056744637245947632097555347444355489600922346342843181650198907136446650494245629343707353052494682330523501324137221830299419921588388041339231735174828932012079754121349070540391036253605894189124898230580314604560058128928563781953685088165860826691782697240472442110195854982316593382677853186560187186968871972766829732548792783552966421388205616748547515386243270703633731269146075382377759333836508369771471050689330874448922474426226596673040939545570167064705107554210975262265898694334135974602283847854183673066844400566109981852882732809656048472927197547333163761636679275529704723959688754878645914398577615332481371651590040667412626155873961917867021023028089226095608574166506362200980186085055147762147809102851946217859153264713518104831408637529364547685309529528018806387180106001361035825604233857366252405070355099116067348501584215677616014422633686836206542650913199271129407210509250616465103032814667264200528416664850619015576625471070859390368960138038653013795807131397877353050459580569688701242254218618111487807475841774294975481016734447244318739463526383573872585167724924048424595548068989477731989667879614443247950869398508522832650497682887765808780180951690447153294747982443367101075758656423862657466187831840394943038609726024613192659122340020606094922632961365897985061648557688821382451459397015481825886146597297048047521820771452461371356180372167916802743750109325435382209289187466861141109339986293687248881611490514086100356004624051723795994433177590141285641481758032757747393046417805081093685518446461978779576274985064236973632351785667240073258967104018783085126387562234248800390354205474675756493099277086757698521694559401155944798489707429911363467642976030370109093888706684945996931826233352851456728133395388946388288034131470823704101440788154251641155882753914990829767281693495746312233027400515937956198238763685140503742823806056183037412322574020439578319229717393426951835175546047760367953033912950249454716815398294608734329015748516340739515237451985505315417915829303696114237222097510465795734126193340535905093765725969269203293546239351949872756285100425977302776573045511230740306585010922898008861700295570597097986108733383836008631799250143869334337151066703399553960514521644482104655441409713698752846600041620397751474222149898257016533155422365100322621288542043734406770491067651211040631375565338389242101640812145309340204678776789689667574663010755236662224506291475055458854207250811216418941046695930489470436247150094704858035137669727373426581843080209954857181804143812800614449401525896150593646043836101434986893423923089768127631387633418853683798648043618648016665004973296673013236459799065277179019609280969468945672616655325564201587233241997514990596226530472306076949560371938623164984650353548071749918690140836603017995115302987133654125241159835941375159406461200556420383133960353643335686123464148593556254749323304407959176274235074492755037793705888567728691507907635470598303963332908300586044244162924536721725730191658572739967555154133165736205482070992319017644906139990239336771014453957751157318646549137027060220211740298423421478855631722060985656149438270546789086554664548862484913559271835991283607563857437793635349726044321674078239253112930961400071504960088562474053211360430582590853971506972362231151376113373581475109675126488797906632323432149340092392574555177504557241787039786990297266089960154383127211835451404302558619150712617684170835523262890435197746355182193841777813419351768823968815075639803006276856236313236726698139368228293013857168344925366819189501948430668653743296067622423592189921252682711432763591054462255473838038317121415100960939634185586675377745274221470675203143048312731814729125966045716114296825751361584611699145349626610495497882144527928501959534362424324347500087309793605851629474986516040511104620642517638428008694712678469038962808901959438419506107226368058332515925041113527126864956037431216841283745116059003021249720402945881369371071902222953099067211783351051806767949715531981744878074212753576904999082298721132283390914828231855641027181959159865323884879380335572260242272183195914575789188630019294206066295258637305363836966401366229813593192881747324053479776206357360925972571900388333011695946802565979822021187549915630043534588595405793413030402579625950460287770565745212424040857772213609336174299719515201678268311067216370585127504509323865832056183541066602308107688366563242255638405531712615283169569982440522052244275666567536276101378718185504522269688892026973298049797247361232984761038628801507238315604971189586905993793956893250220144755081064981668223098524741284596787179574886317234094373063799906458057172226445311709496911553654680199766822311883240714268766403041111999255011929896575323945138538896398504075604095579806281186317610085618651166636266287684112747825638262706679382087367862226804315640360392312791994201466015026183380466631854309676720964592355731077446529110562058716559452334276362532600144865983687620221996014790813077871363209853379672365575788838260439484243462700318947505616164517361020026384731658738633535646362526896759549045324570896590211481356226302437825259595010221988577716088325847919869499278284985384420495715230945072700845382649578880871892384989559963187844203167006692227723123595957818078064307458915679040108805242033080874679772937465586979570104078807750474423073084456202404982203862023670131965072686181044971228946460282679122564245059414739001595342552562074564258323246730273841464783307747604984263790104614394232732636812792313654078104880772516997574897538599403535532347224459174455074343845519723624373807388919488060841477774317753950557578477420101805607898941696043292399048385396776360880784862620488927202737239031777019349513251852481949689154361167387147966357155214864643919502625679295404514451354017724370972725689699121424512391974694042684940743454747023766834009395563595509197017249552115062628135496046674237837813995068114839282152290640537212145930178981837727332942878080492393095221978659200476849255547523634462592228856822891626437757516574353584979125251392809505472186916498373620059916508732460046592899653792138514728945641854774620143137924110106919418624146138280576320467541230782256272920912058044258618380246923783785904645575391768852203227105690997430230702062468805149896180765443072142144619920103081533765173619776849537225272241521323254488040492387526941467847800514219020495705599400630291406828936868523462722299148532238793997864165263732950496095205732943857297238529973848383967828330412443493639344856783454625764362431084312112662150794754239724694283394841592224890128354230485484991167366559505232067570067429309128331374543990394804615060302528502456692119893335352000818009189868931330383611609794467940497587968096172151392629805199360574817336648594740179361947413659345580100725455355163603288510180902458499297052737009778544356537554633478095212443182344752587178437889602599948461163953135692077273122095771089647086835466578019955431747647669453908596642099949192110600546761664241143651212318382961180028972399685896183599265865761414996935743183590638273356134270466640590391703201918397263753663563291398274061006320787294811274163981098355089422248030449694382308589224602753720764120059408320194789757516642377684022291175574845785682008682474207604560364684655142061577000879029763008377174061003082852950015678357390583072931799835280090920405938511804435775699289667743968755406084059159628782497585112188013686201268001887714473149737628483263061830472512167802997852076347107886603655938374235122401539539028394930793152446780144567137512683395279357702591451739435780159546384969285516898107190901804792462636527467036842809730309805267568176526221918013854075140557655035046543324029465370419585403083229324856235314586627974271648634645908376153956837202229773823318535701090303933477600317948332914451977182808179071622319930685916448758225529506101593453305662811245174397778650169829182838994912004082544821106049417236520737114992654691950717015760742529113511067628238475901212976202902345562811249657193985140171981468476390828250825982890663768404112086595888956267307583684299932031389503514104089047508751067771802954379174189396966146916665401660344337850270962935280666521262431757023962271170779747486082277598857379068660715450070203099252754695122109020136673696399571696185757793042760930140285779964149287969199926510453401897544634794623651770461742243595070066188909472994233582381874774951577542173200631156669177330958158687931946841715583503678367145977681201772680915274405500955254456151771305850226133835083125716981491563833247201931893737668735274595441469652734950562551464296197592967730220486360194547982804308071935317334470037711131623982324461542575335992113711422012502643576095644143612032330211773333437360280438602611365517094268867280967299233749660964119640374323583680813792935693929757019304392086303987518353012316030486874181886163562232696715568044401449357387810933564375470822228025786773112354750609521086835777216643190671111730833084946825195974520179164603470721923082990592982906358417236507532777147307082752041968475961944651556632017450348058157571633407702872101425364530542653333829544920902866808946234245362350677828810592709487260270894412628562167356231216607755584735232310683733997643250930211658937800441847432574762023191216961969329046721900349251099816580380033376252064844916821130211898867140362332229784093652883264776704103830138182970468866392773845402770003379223293131893902199782549422108284416307884093350878652273410213355349806545746915788410580714141105355331909791935102415320564032063795374862999698338442441543402280431022449787908481534304490159761349491003076411366361934824527194760003880618475781056474349138980944242731969100841438725860801325094959553760712360328608843342901723561093991558910013645060742039473874738708566369011566199907632286617853963517298870520643576303690950401220716007533203026604843503349389400208131381374651130169493228862838330998861389133745730039340596878513440192768410125821666746162566444161096165122909156411739289560188961305183444184781106125689544213065767305254019986508842035037483222490394544671969744242259201506263639444439894439817996408699914358535441227237499676247938056140430629854870618958511492887991104994774362202978397759124759160786703482104732519440514430980116201530326947906815149617989415920001267988709805527316992438684661652772180790560089802935477720748080215175430470687858911646181897603936241854933492518986639852750736181896991370289534599720455209592572784309915982030307748690623684123454608680375080974885474470613213773535045621471808495388474790654478436876782497302334058159529427339877004544325362727215332827200893208553470467214877027785779951203639418091539805340738838841605161963275770683858305415383450628282733802863296047079188365831123422980459909961596144871795483322328853008109581019764386971613088776339575729266125833736356951272198287700690510030212501415915886133735966348385495153470894724948801150733849725435446008439723290424402163346635447982914436571910074600034127154781193514508245823336046183019049715574529947458255797365900916186361231811432892565940381810729921323422573838826498378903724165744428650757552080577838318091055985548492210897842696083175172948631664207838004312558430228947825263869918393013175672645080452700750794679550733058512434970669590548576546150087701067710358649928184257243610701184387821696412171010497142302879522229763532406558450245512572163090429284005284836336783635608451305662780522879335916790261604091437502332274813654163014384207329368916879217803053495539937386748110603906710620583775356316437084711214596676854830689603423456869643821655039561429951376551719697324144999019414897977458099361786559160947442246311241305554974925618561542540380269451485975815932580604239741046480052562983025217378129500324241964204477681075815885855187354765804266998187369347869086602218306533672043927129474131735341042051814359991726287637171221876301561018079976606740060991832936335217749510546421911155245996002249556553806847263272699156846351226116598981409914364659183372383643313454677685862283342735061815539088100325066557812336228672535949884458790896559707517889658213757382480482383719192832578780685076317078309285108867483831707067717942319479835188448052415530751645839076194501165069548958354582956710476695972850597723117271801085182690392633575021551161827573334266352493557286256756605057724095313311317225769654683086918330160795535918129006482300604860695945909189495100027790370182662671567854413460607399509375045159970338098003966885087486744041625227471632833634930049321786841390508359653515981430113046523928204259223408709710191741196753819338423145585659698783657605573154110897027341856980723541955723894130818905042707734503205427649665789856540249298229083897069982726230400837435890158718415302309676260104346977170541395749821648954710822172129222626613722560115396936948926565696172307902746137384052152485019570393510725601368496727766600406000744437474942708515311498558648057418258288023369254639891417662120124640248169796635544950762306451991827602398160997891577212260537510542052333993524156523605127182019581335731641852472981149964459660136808351376008337969934862064357644512893766489858973392601742528647438795971002949942804408507914818525295659925603000481578851216784862311919232130563679925784170023697104066926945282314778215933500497099705815057718224512686405831628383303972908825523303464201957899291696593737824118878606687891983591744094912036072851845209970056069898470675881109278333164027932604184157168798079499986906027416438399687889985861567299897766597268203123581228665613787179035434590636387337009636964206691770263865978658633330786753695338658560345555023295464673575236062579634151240165568612419305015424368089261854954833264187377118538833903413623209047383783428133842210080585215906560396015688688452496708356441595619485243941467798640578346629461973772901193288452482873888238416315871185103003829996552630161598306542182006824774751767596415717705077743203804931041398476995106179178330359771564838939065020469680164028860761805079693988160697862300109212879604399580894449168235616687143377057251542925257700381504283013973055052418488789033395581899944735534161383816923140639778299073857305491163472494368937935611142841866481280364684327516888523289530649656624671561493181924764889728622906128804803547487452358743822459351709280212338180407445734813391295882503317900033560130456355415253001554885924369560895500251735716937412944287871469778674701782764465344156023486845378462958804795234968702212003200428139210263868083837164998067127698648590795701383738156933548461774600667079033797516674648020257518532828188852378357942422043711760404553802909875141667752569056383836982066261269045560978901672614095193109230871414783146264207956815641583400210448969093396973968006825967038048151324356145824906059919921847524013491055238857552019787138136326897811744269503232896100963924558189358506993751553496187899733570997126973496812954923632877774430186217586474112708689991787081923232502425113446999746016925692973800646535371149041568342323595534658823127231332721620878874219328830710440928846195038622651711092804236353162513112592176341265984698164469855650621498782159249876723078910186312891076345728154469909799249900230434485995794176007588399449159339858383439603598351968351046340692294710232244543055916071238845092395725951289953173917920966889441995459539211252332728433856311267426110751861628786922984164562918119372130770229802610811985368439106052786244235042261440406571276624078184913591228404225494344381873022356007973682522432256380069502833098221697209454146791783500909617658208556266730006558331150031417044949180407723257022040438599308597144888209299745952503759652292844799538531058286023877386180091604143990875831285266915242073752340980707120633344859376474052598335933561919491149130784360095438147721900534855927464847708964742430847426353462600222728391161735071650785670829341043243967150101545005552331111138921457175272791420412701146231769967663316284055564600740053375049967320536314687399473837804807598875197210305048607273306147475875876308859916803308204820245588008411568467571931057750315747596549492619732268447366561728217095197070927931500356470337794820209136356816380547780851450254659531800371209727083425104180523915839890879861964186746143541585676840288894825067350607029989754379455916801147252821424566876255132345848240422152988235212591324750568135888704595010330790200903349368790310254033651286578525131117061839379111855070299505034709298683323859142833536325479084335012621180739220598786161226108209672749060145232450541982967249364682569315749901094637848486507326488775776001106839621859834624488943682048167611393681153498854991401491335640519069332832211403492896195615651559951835587661139691149474751161518175218490213031028188522270640486043822818398704173323899874973744178866236485270594900609416611832031909964620373375918759217254678907475948593029508636431607656763558409884934604214325211910171652280986024144575810411398934019249113333978816823831155107365057545177358117616397101703573476652035823610116553397159825978993374893062637484705106821737338569828686873957272535676819084163855168689795422579965929082774550328931583519021689446809205940351955387553487900981365927283282588385132373783882181208756561991656632000363319395967156874503209917805793052774629379300090530352061602210840740691466837892980630888470120659498191185883733940475735542218723954951418924578854958720888917188921633202480518462050145771900373985274379755109805815913504076982920418048230124446968898323604796115362081766128097669101132806639127344379511890412339339002808268696650701455411031898714954791758880709718792982771627376428808898183824676077857066171984032778920436667636433970508042827154665253749969169826868930764699395233902194166607930862592072247515444796289231811599710383565876889513995957421223443209547971631598964886006548026414126457935652737590104095757825599610959163139790707028795779671732828676590428825526623123053041340185685589996048185863860330172617393929615713394353459110861793483538565218301463118671820103066776581127577886275099345925548121685865980306473838316170783555510017560260311746177483930690277198992577532752270437594722926293548281002925905992327876978159343832644126926362139009028232691541219721756095585764007787313106040814551957218112329500820001887340751576014802843149552158121996630529488542014020913392872948488666507031704247743311450993130904663580656219541774671237788758435496680961629158397871212930504422705945439848731437394223563971876426536703150068225456228660540768106943498320340392430541136391341224803266793039298580721545942755425367222147931765345150967316334663633285646052900958043408576102387067945596018575298187964279388031355959096629471087543498904855716775678497546757076573599236719596262201174443235395988941879204796878495765355690204011327090979764988740521720668202459575753617215608265687575369917664063352273369621017792306121017991938114685871454229146252248127587919866633216064235209281175059829080931702692786947109175550504146788559790284972043367395981144798091018687143503083842697567854411849147332399798634466211309017592330991169892570134918365241782524599273255801204449718498784082214292384870596257235346509296742203260763984863327295530466254723097882123348505970571994191270182783432148224259462055031398825936325628785830261149029770628534581574681688042144969230591628163467718173219505868193720041988939014020463604358074898189738858466556288461972015827314157950713161425593265941612705135376195069903708892031534681973945951585984134593209817561796056012600604453044206405538968740614574739922796639363166097509751904516193664536441087460252629036165726161968479892552347664611528694921358297725682261796166928580381126276170042998072344320599277834449569120453048635401802510447452428406903852891456957774431925834262194956124465799485163261819836078523044582105006132495539061553689670571042461608431720385686422240500201454326043731557966491418797400867684835530933232795869367060185456849701360439338111114046523541359239211125976148956942622537420733562159381573613956428428783435210254824506198792820551801218766920130151874542985268956608672960814231731323323478551473672275065158934344330736895756355282561205946650229783177498825007939551606683091328992415948074727095325629267500467506055849321291320494119611619193609509761859544404659783832271918004751310192456262334217876735825711750757689426473307086270664787840292432833967060677790884644961885181985027902391514837590610927993697340357327601408927437174378632394044447535629240936089330450123271506341154588035516895901611084267363054198876405100760467427193206075022924067559343688623455540557473224244384024845274411805071859606668600376767609629765040324121080854015457824708750339011797276295648651038496359691544396659696169243243718575391161447291554112002836909547278535438413779512688624233488501885921103094519896486418252491199204462098691165121525416036577160881381881460341521601104907521423641174525751797377619181937484840660331991693836190038306459979051560603503453984443194981621957586167675264382504952023603037318357046799465162646140926158636014945607297762751209130555151646827647060149258767609263648536504456856514551193014223437758376377271355022804212768172008521889608332208825116291709963162382467639250024880702400767684569703531064179283223222562764503542719338281393171780445204933038735671028881899137074538264792708243064855039613878947514407549807028789312167002134699900130916730565685020838226240927909852853279097595988351218775136635473793574202958662892253741326257782342751423473139498345443767200784946347761947857709370390927615963466037061131440108889525890711994479156572784890831460496401293123233123743352568262754579493441412989396092669431908800604269730622781158124669046368859241474588840990395347622892361965470933412012050798681296276226883901128548427368108077954156311399747535933865424786117186010031457705589880718734397375556264226873973997857463418506879647090807785204162220188597527049406738501075793046650074978121280353594930671802976761857313965781074528891212996227247004522727197822705889631079793882420553449253605146878234275478036047595017684725562779591818875017266121113869564648165498166353704278664746402942181824758508834657875941099631178552628672803203307894471348624936240465227884549457777116946388903040512871088817473601723238549203504365777697989639007890131646408463408226264241085140509869513256086740576032242482600749762003024920100073126699479275367487959591448076767911600528866286904824620587479260173372098887880444452559627731360918295035626561705043928612272556231825160810835309479840517284899607922582617578737749766826862326421812533216221992095862677379650049557128896107160174827653360295841266931254709008075209647969524221303069086836239498463638266335218477079482319419008984434578923023959836342483756089688415539844493670243511844985540534750312684623269772351678069879973563729721954429772718834153341176502913468356301016561359101433784704422242157974107554951606327420952343187351898831011627528698648572780523291288569642681681050876193246001329697493970755445506821255471699403231721158145890462037249539810623605541191972290731213246584027972715397716494698658447595729193801463981982342937620247085708196239080092128540130537325947330885849566683218792772114286985133813365245324565773071387009164974848556656701940228119297242683816169191513308449263571652440154443919293451377625169792758392686072509787055876926971036615855779883185215506512724186165738453552045923212156292899062365171768132405295952761277958340497880763825989849953618921791968562331850721043533613899846094502701385543871963837568785008817748632639442156860744917837032295988430395931171391967411904386144892626850196840233686872959028240622327601427852887208762409668320631302253358659492182700091038736256967352863857469221713328776964316616496154352796625145239000015865989489665228600353300471145401105018079363948353775887960029228106771910789185127356735368834823461565790027869732666157587521728437623726652823554322544711585530209296674573978889441936661628073610961995664998925689011441145978555871476554280642992374018954238615233817966421520039523018002786871802553098409780656718298487813531095071568838539895767549688078066329191049770628497231421897112542220778666048554518546396847787631471308740538032964133391072977760967108356355509676118429494439650812682694899964433218790180362134746711261373153767129136941743116092575390151411045618407496667680977389080270497701959170279423172412797665243062517200434593040726989614867054541938139311602715742922016512718244847142560021775538214613357610921479594913101102025040296190023680452054562189647968449134250965699363550054070078960576863073511272772798476622685116118460046938128432888459323220437641180373535293173769421094114772010764410758514372419141579534240975278676678582321479477606391443439061712480111019159373627736152636146395434199246472427920959702539914523356089182384504821589564418139096600792374359172251965229313201402173954155246251271037369797061157842588425375518535303816873339294926437366881661462899537193371845794022870235979992343144941479327968905256968205132427812381905619129652572134045339799777516497302425511863874611637801296856150926401064574932122351243834183872586320936850299328750643197298550776511334404420168429188140772806258096996445150758838966738024091425191928402298517983263743071307640593874095055460961182737248786676593760687210856642390352742822068159584460176427369547489798823068839636829184680721061242965954910239347061150676424045293927912073679006202462664105351203744511061149274819057568122168037788609750042770210734781762429769513887481382221114860234986709726932952804010598135740826011370258837137324941276799297427932080918840391260256051952388628387864285808165284455471967463648131155201175157264236154957353755937025842724202272763239212452015012778632418917855358743311107471548372497330660892383644050716411801193648991110655853754813683095061933259854654216533311117510298667065917055882364418941591322842332008768938936834371533890435035602404688839850989750780425251564808251564750488944092553119257199279271547669190445522812111309473770424360269079669109385351977668546675161222880771741628336572850906317143121557611499172199535752329335465825231503739471468243063653868060178323877013646498965546816397807962626301324982311939768246375818340816789372399504133109610183819934569707077125043374154734624611020352639452445903507739223916896971259654305559785202784766420025648557479359271253509625491429277195615958460389978434403789295765588192812921939527918063687935224256265089578683905016055608909199692372044333970317529691663129640725281707297501063181180317078070824364719237401498771299828527177671350695435080389498317155132303052323089443010846229289941902285777225180565870192916066807600857085284997928661379718490141863626632068499970472682924442483519172373133677032174600009202645412278820472485528177237898057824695407370786037281747084656520095112200696198102011246040389884565860905600022483190495237135531306230394279565291334397244002787246904354162812953369054046013134650174778230644560122804428693544812127175660106145928341586961371188926726835064971350565064043873773265890428575116797313715124810010993820071338678604796927337483454393954424884514571180234374140472797406588142441340359322833200124989654360767596350517275593978761147384055171331508166393953154158688488534264626065555682435415060496081948317383747851365573665375209535901909517424168524597747267104646209039327624625142720402715904250591765448425328873870871303714163541260755845040022615309209964307852710221776143019572356896509753614922659383962467064704282977737357800180731005400164171545833518251517612285807133399935262396251319672567759500086569098077366959965224316798259166106698458125270697635041823615487703345649403416731553225684922800235072887768451532791628024263089819124265044369592570112425593078441988812223035956650061380634246412248996118390114061469554128099931805739237731370775180189075939553482189248347042194293452824203429210187362727961676249996181672191296570075218548891573067164227761857158959562066271849846944801027279680541616094973791169997192998283446681942202912130591661696976750334998656619942801482142080942604777523782940328121670486254358043350198338295170408894143531491274319305615036800659144927181256595262387927248428529878066545777149501873470146376402388306163527428953075158326162421189369984542737228272204645388908871504887828981945345112872756637105826905798718979491915807129216669412311947885570975426978100494104098355457569670874521683748764430093306270649169632462177098448217949934954753703200512500790777775079622027330053453681938151242087421269209716699414021088117377023105482885869366490408669605437299311731012300599898280253613398566163697964407661034004407717305441643362494074890942186324170023089748313871903139850925110837847624567448867251788515533508360094054052646566060334922758415389325538880703622525092182480498911855988797749798701056365842438203182880252548129717525542197469358983985856604951038439754445587555918507047994256487493364017679436329291444302731321424790892089460113724404310023528604440800433211273905189637830436166891979429061240222671644775843693512448509330035831089985107338348233079386659395019978780848261134094335835760774390935994150371569999862947684869363870835260712233800231065870362035929703468908278305937229075768580010557187644148464848513325817924169605768203530532559695859777812041681057341574290897587287788425804910495469148233649730871722773549201627195766125711857561268789527074508281985867448459842784138767183773248649786769789730819622570751318912087941186413783289156550039889845707807500664946263099586619937642595653370876909542752417428326685169006780058236011885740995658342704457298278329339583587288107676125086462886537104600096178538276078753646760554486637323828060732754445013683707904028332546294617672280212727163550175049209471421944702492346122423947030290787049438267750777031429771722851374386712270876194984489824520189479775413900171009455060191990160748239366705388132017477452036355489209231071428850513772165908582680731853017801211372863272668289184095163668744440526237869454200940932898671766295869863630652166476905662154315782922749571807389396349751182886934648362728012368815093348165549495038078446562615240051874401820571680042645297430259245722979944871135286559496099357301993839284486902724212820304096511723718459804551450554067100670261186513420143128872251126902506673832843004770266568432688681028290148393819556436352393068302297563713053096518823726754124363882931080254631919001011222923438511619268647693746924131346821208327754036568398585094641831597929701355735408393463679005874807093249404000809605897356468521587407609331268986695334231491470476472774296097974133479025080644985849431796813407175373308059655918654580837387326331478713036374132685813502914001665819469946039515024888476657283228502368487687403009803978480052624662366376327028188574273004541146273716057309670157553216248917673659155466919420642785356992940884716326296369353628687407026962481976927360220384223064410365064404133059308163984244329986751497182259883964153190777129924384035850909670941069042785506050098677316986786620336359116449941455298239142773840656401264643897821694461632829245558231808771901267199386348190100548728865481134211315013780702639084175767491625506714937492039958951828873336726925329437027708700462679691468487375682854694299420881505830910540054041258346275608803494591005954411098772165748098379381437970945797639831418786182697683281206534915512362146743139779005769399550543743641514564849202853682325377665272313685141260350972541678844585886271170779751210171924058875028950561011821044281696508089438291266459065487386836598335410194709671837629430460813211836369966451052398209642074396412385132184832225767983104074820801192666343780095894927024919462272933470962657357030643592603051636857250390308660176993849412703668742021767430173260406232836602269848125367825107611567938756889268144567312156308217860934353769273143307187002301884680751396385401546701191419186137665612761053276328885535866307144474084003860700562713796694137285577727013436125597738279030124819251310146221301014497797486281248796430467842243224679885401524298793913292084521586698788526712683115285322401708250660657506777795512591454758145519023300872557682700612002144538963976930570907375339386607251559864460901652003559656455370078872603979804543552727296005897902574593431191966532792649383063684665155261276852790556204539505148981613288270306817884670231990189133802814627184447718446065256169879036117667843034811884942105417673481995558485745867285241030836970259145695468835573978279206750972764960310592413422097975291918294304880045976966239012143701585758958970666382559151475306663972301710655077895402478526814881622037036747145794121162120969691790416213055053790582605020988133735246233163380253857038933961177336329637836706109475630905032240596860223688256855783825806087675507807244599960447804050646772987034311299708140492976940939993087549892323727384021960893466964429325859494086192835564854602401125286762094963510966309326719866975118959561341124064803788608686845556623104223759523397288712549890906204825919960959542206338915708602114633586724778749870594755248313801173884303709538820635263391033026780251580261779200345200877269669909438776111131560721881920206095940981898582437855148337165506521227095780645354719597139875488312602278574862941156220025707119382683040223023034411477363535713966052447229716498815761704530142858492408348807221331431666554117983718872861094767291450781238543717162212188425824589234927488683933328828249886277861177085697056876887578539346735587720943559689540899796099925220135423421047416077975283209461737220466020716515271213800517153410423849657304160870523054930055786776760266635357808370044755962682998450985904874253220162183631058310020633735756702766772297254048454125028026063010389869020057877852781493607199988263595580710460359859885656970119154803755584457699676039428406451912334665018643867105412645836595914904129280876633261398163900347817424947768315094980729041078276822922039638060203892513980690298446202376118381593668892333029827948682882129752059560470188894871887601757367690411304906636430558217164119933204983878347785937597151544539717918367752490201168258637891300783986217857444005451943463248666053810416926717228799180849158338366637526505170848459987168098437246799732239861193464141013475826909400942380943008156560971928965216336522631433228784311735964736673998793362964634529774120149172327948804183237943208923356697451304282129801017620037726773265789851061143473778768583607702613257076316527777085506513755389160900648335258773017790592430986540994677278619626342239406542969530285116239674125487073254297862871045714362209916816438106799299562043917478390386485921110363373436661288568707102411863634831653004377414979237534847625592836452292830817284151149082256987400970842467210779127449382056621541808377728102761118109366483225699280069274975823686003589678398023093687364716205776872636767942098877500715200247027566313353876639271831811806283675643691901451524532723971459886058935166652096733078848660397063710800240159870276722522771887086629278612290298917770836434073030376414374685287767837328944216367923784263304571889998960655945506483256349208789991473698351843664552627071318148886153049220463252098819938938740748949370838733980403388608607519322518825080476409584698493404126963265123135566907858984482803950524989160384615896983938973423745421075761245896761302275992076632465255447238868557175789873422989354490556870129208933274206537047192050628096784015233846549007509764176426690810632247554191443605113649166869360656011006406958017200198963082757718444841312595481104124941767245963933552024166795981826553627536417743759346156926952613958252449674251661511027421092809115863287705128133840911960297537719560030350864931006541029840699098847061819274304609210262050625393566664345263935033157411118433075762525811672436307083975568497743807544746705386285786063602245837432165421914872217712683695104683648505604598390060040521323458707240457879045182828093726342597428209581880395887221146024996302332518853659342314051935827976441918295252058950075163022666343875151640872319084036403090392223870731453479371663481725676600019317751142011336213073021315314914395121060737308813013838590976532919168807487229320785883125619490779968544776972761903251534976493602941584671199399732986191997657505005336144837601785802846452662451178876866835417619623837554018649002334160782131102548793285536723994976944651646298197219669443353719716064638423619736825293443235834924880633285179731386914369130179566888988790513607098022534156905613193348571507163830687104533941961970384612289733927287662343793689238867442419321827944312888176337774439069688025258381290221324717761191807195438852737984545115620155178487854911161629266466901479808854296873816354702627201417391112787261742093208466789907543752337896317597658073589230230074340730221713336350895926274026337484361550708346219287408419469403349485514730410257443857603890390170294125696578424787863653272867844008631453368125144280813712055845064709783958748439299172764841947821808731531703611764808093101855471814680175037694094137012207077400717121682602600165602923335135292518030023937762396288873938477334154376524574583354463955795378461318169033884306868740032572673703468236428159045968382884588855950641072979810006807433249933045256793729136665837550624827547658160824214294838906242940163731989375944524050452053265645921219192747469378772082373586631169944743246473256166943671974818213482793179503269770798583966413401318209449358320489026005721870120330652748525525545722216772721880421417808582049453338234564926329383012462114538835583829550248979450322884853647251359961853223369454333646295639337491806643321871703526025282385470249333336433225418800922767973798496513975171641327416936650926578060975547535236291362732270972818845914344309038818364121365600530902662391863660107713708227260843715006179272419785073829513409443410232311843228569794179238086944135527738094676519831826894506091760683468951033572013169540894393942946199983064743676560643810098231315009858160549526894252409459715804518301594198229398929851612543835601918866723762427583593438415013727668099236296396770929180308272164057432410436213439596243917295209251559839241487703041034449559929226035717263487642226871504287203985653100407779168122596616732657720651900735871200701741547823809011752476274191856729047329574761162561754115095886971201277196083757938400978658617986742134871067600599289360325512594522403945197041878843187593822914533230017644448839299209031812977853646646061741097935381642546094119839023116311460534503540628298515432167821033228089971747467931868354087896461524688791140481463102232845919104520864203709730433522449011081121813197047485162564807267991875060775552676572470009613925490947964444654682249721398659790512396549519864927343799865614999987751705198311204916715578555274354745430168383562214833767900412015186142643627173166937503413855282328186365690670653828573282185122261488290224163563462378360134818431597020224492992494234936355875595570013319271949957770480394732746458065695747150615699204780057804103090536236156098466292253223428114111972193463524462770480772469881694605203612501210258432834828551647925732191971573627868644744558107006756658707994095204399295319526633983762607985980662824700691518043279289823079058549956268266861349910911724812465145142773744381578057029929128475241659576214843551192088524037284052778065341062399781789687918173751652436014112533526518826364645860292020822377883279181941928095003520505405205191201353738516967756562921108093212017491197846946161999765776980600009948994349553433462719389686436602066735315242111905591621861386639273305812008812249865718769618285940189943368381439358944061418053834780200751899631194888073955308601324252188120181230275446060866726254132121783511093568076748122588641687772947933140962989031682918915044863046198559143819187309353760333894515257827344467628179212184232991980349999641050297581877494258368119629359775783810896388173885674306428504318663197467874317456879461786309395748553406422372601705633875643366494454525757802891304619870563151845855495426771274947517199672360174056741166261060281181606606079608580204881875208533800849098327394453011349483944679637924774804847313963609653155760443274813497735663296686470474802575930235736410107632315783336737256858690377397449168722526695158401614414078467721313207817452282278653809902081547856387652075501257132994413975194036872828434601938788647599074934091929440760974634879447423336987919992802477008630854410816081128522437309135881899234244393325544888850029442003330817968041110049438177445933791092398573631368368647348504972135697507640188217608430317340786938313163663769434438161642639232358444305750253045001774195947847548592050661442958732423872830817634365937867672689484750192173419088342485655777107970834128565988742578798718030779304923700829484966676919549456660762746996580988858201169760548274284072254261757664361787006616994896996752407893230519128198798191626012113314163355840836118579595850575811286709383555938245195258068042421363924910397077633577182814821308738847174429717995687842863524126147816408904940954785186053541321981874068561294105787510849830089273538155476182945168783664334484635028185232282716061119647185262563740442057556832076549915484835993251636826243551759846372165393744913171805641455906830985850864661402525029916137307470322766141785239645788986445172466378245524332372195826682098611174096922657784206434626241065003066990656574611415799669455577726860341560572488666738564900975845060939380666012526589321490629776497617016437271569670130537661357177167134154269070752852902544560008599274698076917205180505872451006957613187375999145041777219305110057813572478579802541875864878679379208139664984107080052811270711250231861143913969935464675682764273625465649155040567123289882590689763371965828121088297564846068946263275784010960336951682149087388444421668267990423010007736588839224025654578125987706075513319806598794022863283222415387516205723206782748557648059908651935044752590181937424342061912646462964702128871657217920814418302780329524860601231507350281756802571832217877110159228447126799920983876689643153997531241564425485732046501486284951068428810712092329209592449281004352419775766317513804985679808384826391907189157588247885321174117364416107105637806184514014073406306059668644210576201502691748016429232395604420088789973469121238091825451065487698650404833158156634036734105697241573336900399238001878355641312202457350095899243612501169827721470714586481441349199649052858372884638587777235317227693465056197911826499488433110216101563238843600970146531456761239355768195501372687666409140810976604589462622716782484241203995075350488483138517354008406758499138591503119932842086794780031317798199603805347434192404631161167394746885419369165909165471814525869328408390626173932881583701385126602655561500997939667205682530691953000566542212402529969996560420546749896702157357536733462943192214715984480106121777701654971462406863531040092334749828591588018896189183179484596384950457398509503938591799982066046462007263777702969704155739838075384592279802421885643307390813461731654675909975485828220642912433219837224920999539438393836195817352897389894527598897733732189938179202443558538427642277250929759823269147768564943875021150208592942144041751887128752680324697692313113829629668000069325058245983813125938560956971248324998255781060985525476934280656704572648327740208507614160502034020537914742085973107130136385270310638367034474986877906094989188353566823653366083231554238466359463539790193414106220558601618951526756326265912510096590758078470608394984422892017208368508845365458310258200155365906659607611366404828029896827066051960344664840326018089298886119299779602287954841278980821945666666748947883280677530893907899740148961422573898106227385132905060446020379489535978904005615953054876291384293507592961973440557716494039774489886662543745698362496784512820401068018614525941032712825396512980138240012114828684170426217911436943532327180686995291688182415279536395360884503885001503638377377710703123643457271496977487581023297268504916892842775448793319428163945469247913022787583542186716103508125614829936756808397006438140591464842343118017455031998496296176844370521860978369957399773256705445428097180263072982935086299749580807457098514895857023458910979373523231565609576015268286490819134915302666668090132323373862137437515510683317517759017088297867664487565637778865063911698164881695459839369735230847550685767423188728171444241285717864827590242711121302319073849243011550528349441120922252582766381491114642849362671656421805148045984555457549468728336606687140129952724395086681630403054483739260361752351175435394398605913873015043557608614133516304014036278919676741678926312525718279774979923384199924647823557209610843617253523556214589779486360607417223813450433976839138450104444113759418203805271525574950696505908133198739299699939085979058014933711898860350580786677608666382619267184535944821095990731447195801761084909279377336002249288298065158006656190396022263104766110153181486983269749135365729710847826693631959813402091254747206777337921218595907347990320147114796119394717136556443769299854116609798429775691040731973666410442001061825382643353176159293732733943391716326583336046841158862412762501541660595814235807903330664725083038764728612791289422383965842385310455611734400367542161030812380682083595544034896812893494609994220835281494819700166598727082296146630492015643655775242726722089424492296091024346486937729634242246866896741198842046360041288960805284248943830856081085963341424781683643590026203662880449772879166196628299532147790747729788421676893525716973915255116607760611465013342396463615397962665371704381354971581168898197199461042871007626507533165499941676894001100556730135109623894511745260335245327896691463189465928515438306577048284051542514753125041663743530174579509795137535366698723458506929997341235110061723973450696715151138806569767227438018719893528236891049557742955212523602910683809265324640091719095717868254309754761330305087310365102944926922084001102495763753599475408788246065449493644563763711738718849053561572115907432359461045158363497095434133705048738595844266757822411721923069401276441908525334815661207675069167140514019933278197843934407330109794017115058892855106365425843375371713706890717145992445032336176064187370157390439567898014782739431173261926062416741633982314785828807384540308763880882231302402612443694805195329868308795010082562734888910849948692430750370056251535070368308200716026013350392924192559868969031833412557634653151202228979512783622990023901330933096451605188428944196167174783164551579249617244411612744180839909082104774158909632730981745445243496640156320894010057359931803740266341911274225117722739389938065777714560179529101186508489842392470749636755762734742035847009585294586573190199104895171993929907411743452024137326310487340336406441441793819384720421145637878846864796557857293651598323643285099343893275627726396986974057008755037381673617711364533718840261703195691371484088711627937914312464348950542373277071758841258273617210434596990192607789342055291247021975911778529677019313663078269122104248498623786131505421977445632670488619299801353257637638640772895329981034864014179499793716281076520981513150757103076286374711254853726542961646721827732828461104506354472581299136978185712849751176723968820321657532349026435102022650406698369548774384077588652758200247318637819667615020420103944062711523000447767153976349954434265667089702263104211693736061106745993268701447715420359544719145005833507798978284904797362766253220651409667744878561516912432282361675607309720386433343284652035888518456420729375167220753796792420566654846083228491658911003177857586207996857290242432154401544497944731390012769221735723882593991880736047877305985833846627566688547662116679425318527049418530780331679368214439546886030845988540509259967489120844371835121819411431172519227578550483280783082247329348756991402290492232792361305704329624481110137793140072757951768229330801645860912009898986130100674810784907111586557956373512644622287466159547940874458575831324345676455917758966221293602051716783291932085630795243202790036844983250753884859614095787224687674817981678182014979468214532692901217702375514469997758233643232415311335142176517712283810981550494433583900252286768053323032004861012839399458463579384901204653014089958240146944047962192792407367881471850869842034146528986420499474583225032041731275772131530195591103252350011610983868586897858045412486198284037304299032553168566024937240570864393765900326523182867193377106583315210494185526547295774521739771212023030086232324323701772774696965934698233809425100564675878641164628851667434246243037738392325695080570315193675325223444367002740633161495541057692259300159980618946869594107560487846113329991258800862303671998556460714972518228746776007713345355286775540270204107571097128894839752442993857276252656178919206096091293957031834036101183398785038059504756084625120693240150248607978324896229338053166335635763996192514331085687331236489880498616782632744898520871113719462118779424191043124410094406540120872068649502270463712978694991951315928447228908804397273463031303636636892628757940910122231222676380591430563609065267661068994219767973585803984721673314532562431044732567878418021098935374877995979240856029665841156227469338901563980884346998629288350291788162613940703902124483396609483836699467608200866629539565367355972643206544379502584349926918341619596594469826590428008325401382263070054301127497281202895364623345234348202051152502162496523497619670925487585303833588834383069110792493453036369008054871203830178454243904683757035737734376737439752664970348504388767623364288367352332778541712899543880626899569373157740722698204730105618442209432915652403453548673974513135544857460328122155517320874290976830019512342916652582710469935946641727011124568926135163424994558216613776726519803299020840201951668580065044494043008003472981091475884408337088945208138922682774332209597238568034526141125709037586600268788375196935565974465279516301604917915358033860122837457717000832333217606061187744259960255152110581626876333286860097698024423666752160790281390349557955062674692091457228921575936310071526766349053812947358094954061388480984594228865858103354537022138856845230880459510262318996657426168238853729633691264055366178164803695178364460828080608913787220973114461381707205700374608923197496076719739497307687594164239288634280388048747992890565718278590648305225666098287307104176964645062340195166315554559833206515972070882889574112347756244131446466773236291452372680757330174833515162666288840958392848222677872802481633144065140135287047763194596729823723181063636871628983393359450303448316410746753326067547080069448669739232599043219052137753592809276581663909636563478596208223233150150555978086631662298530207592954485650380560769340290024910911293331105155010157665025321952149759257719898412073509625643258011640103298969969946613040035465866709083167439234287445098109977609785727437512481182044513688624864746087902155446685291971475843931336839510017344531238275751595702773579289448660290244608182365037117649814315020686877303953484890242750886125680006754139493565670353277987470040734391185012709552322853738298478850553245370054229560746289730592230785228213105220259036321117759886403149285648402788637113758593781754445476366211954427663832502352904460479100508516245595424380895585803401049664254431645066482356984909209365250144579371465354887142993753475699259580795343908839702275307874401109161574708591073812754644789811312262895735154515094843749479666925170134164688528074833986629942264471106577241209196141856095025164728630702463212002231516188009269509408319541018397357013415028063471957590004170127919102170746494587121834691420009199010776751562727535901835118686939210264022608930388943601202523041901984918686112785031605758050646865196903153816277234850833319516080616051238296123794245723621664607859666112739302826698430218024137285053135484315833922395312430616380658303298080890801708480776414702980734898238556609027000772094162326241386365276368240802459507073753976758357465271512438258501345461153607587351432904910543136473253348199062991926355795656933867098829190965489572034317095833960119636481188841086946399067023475686918630434935902761204519114491532652890827306351009829931357608958370960414273305225124427618779900963824415179885081861227356833919540203867158010361078255579428545689098257147470056907218998770389384970498663431663578686920113575494851226140520794783521922185846305762490496471230382963916014128294490039789256374134587575856785501089542645493526335125461609937443705242218807130310847394735092808252021169475279864843259579439146809090465427149596769574249520900476546793158798274021199407176383953174301717646971456564949877234265359146223990480013237830129451569007158117696946479646495546156579679301261830317273668348493730278312067614912443610955240150084636812104915532877538780153323377204264473987382984268476919336661145829818060970643641282828511745078292633434106838492990811146476452232531269728867234499923020971912553191310059870211907015762007241245651066132920197479735242671010053003742033420663878007831898918006242379069651171424652859831803974701386527169614991818425410108756011490533442639066430687752318510683473070527552416961597816724982132970815784885522124365445295380368096166733458577052864718099075481362773668335316536488076071291177557743420663511147073504659460891932682650866746684491692521824147003642012645924313309223655128118900242214139915396131872249430736871162287313446801282683121462980616690061494291783138789591047054205850531021223921855622471149378383313967287743281452905564474725454494814297871821952359225995550749959829101919370676775029362217547491709570250849764774838722429964977268875112968919097984516591307898145816209967361841009245035569496470294736149420751963429638492726892035068082906197399929638455675509481862399763372817009213960281151168362263090390487341228096178236323683462711691990968019286941250346689478201922307760975979003529267878842449295509396775578947525453278049313888463299822915086308481078989072494342307141051543560589248109437188910741069564868900621847006192730000664823692038096164839523730231632531862409105597887166995965888208113067089707311992344572175907407396991187317092369423590912436479377502661513273611511074014430212554473503420643824356736398960787832961982989191233373020872972816859793651213504208279914667996058292289309374144249775265836762460754489523938802849670446824604279936689963496036131787308660140706221463357251975113971550785793878013869122255926993612986021072358465153940419654217711841531652811924145864983763699141849508944550662697220567215331418318685175694544442452678089975593962575053280858816352373994852813272362408319915133972229722982610774693941804638231049167675190454328104227799683968892385763671298901268135045864432093842653510885822861145533173318979847597098699126191817091985131521647283048430921334440742687336670569737029223435840840073295944007044903819968152806478415051361775108772324205869897224206277461362203544364803713813719423156427330910066914310695450020586253608461772329125762870258002026137801183507228417871099226819946863416849523093199964931000490761616474613335822798104501926121683495479288559030545415779820932257643611059883392065841023639751072134314106907305014727602304246115102807986233996484097773020289556183557726481374112100788137467131777971967628399555409184301284789311348693527065720209718867451177478918879486650657504013350471839626558759509160274697579307739720245979543861191475015952070828494738005628257267677013496885776751870215003974179936127657217264289736359540123167861420854871623798238897310857556902824722336994415749655792366233814677887621497368138461519582370265294419395939730162986633137556107604436525675366442591136446666707997224518853736322881431296920416750317365012133239151716546346794950341894410479603497757612481015786505250209180225627538898572690966747176515950895339828960874948019991784780898310813984108405143668581384893155539203512453451517422258982522424700249907227213694021383311546823980062764854008253714795992183318224747723283286090059657080594068168827902020525828269958344261157524545789123031414004324288565647912530494896483399986462947958825261602266131408482932012046320595455709743174216463401334278385220424568918725190171923059905501080033225838768325577321237123677501577120696346342709742318674476415883846530870548654303081415044735892202118841826178004099432870881428407215181607734109319731966052588124211861063206897571801125220849549150156100235128875658568127189072333603663253474219698407006838347185112985280021469960005908358554343425799792034622577052262975392681936176359764717750097974525811280016486233366465428967357914519441481017805502673388481497531958562422245676608977320534114972965777827996885816965098101368507969980602163616472550995318776751982061698136278245698507178306597193551895439664552495609941471501849006584932102276803587930358807666225118957769656102100278114510696154192751569549965522618103245706879100556839181968039243464693871170329134516346910255703472216282472586274924490237093642795732709377800685369414820459271153194662545289849400478774429197868338468358000463495765766587977080289982287071422959706658366170579526519466524638778541603238263162314748132180298204556120447420347584373175399334116239063544235713308500926719929670044711410325045704515397290531954961740594233312177828826405366758821097644385032266207463422481262770912727449580767437184046327874653513159800189136852414719579041420428963125442030686320529196411230131507864442032060138387785176179492213422743805934258154566958113000334018710510662803743216559231571220769390778981977805123613907595650293700778629293663157533603117682035263312108473600858501280913541659585278055862359835634209220564223536695019290227990361987268155248606111945507258159689161888397386157086580490271398079686892400476152373538916005603280619374285118199866950194562495188360585390170631267705096593271110849725372432732151541426762981220802848266386456508206831218407449243263336690690387436927521218003654221859911554157347336970203875465419955233348878188170952935784557397205881993771488012911189463257219620009008089924842301783354786037514998596552850860361092793197089031085631745963382865050707916242419473558688688140239828435161552402623038346774567441454830003166462133304825588794218656386270956381913351923642238988306753832730677406558890061807681313564507196891637707560589737907922204620498238764604126980623081677741665319737558993171645599256722129807358182013860246647872064262257471757313015122472490526658649903500298514784507819001812933144964362883979692759301775495174080486561177288930276496696673591196185448217351933301269802771169607633180940947646629364385976926082608196677717744839302665127197997516621055230389373134246040620935708968823412231381064324416704470514273387849469696508019809361057487101535744435809387301489389958418230213765499416150974668719243664700687295349507819786226949492500413093497151650447677017241861179953097687592413903807955023358504338761643541062161878483857921283219478191155489808902908658564661290576279896101313350925967614859226593088101075433932304640943824182697919298648030557480228228705503058264515832883024740624536666829643339179469270222904546351064430707994358490911342785609506315498043101546845133748098966675803868173112431227634665702693584164133284648575507214349387503190333322756212174163537510006915712178061366341138911900220811055441798719296181535773210081548913436746234575816510902443907900153696380826303414121475145879472373983845531256214012812179816530423631968707224539720831528723175010868430295258448310984373889347658405579547649141100650179019227096397432582316356298705171173528485342845481011534726230956511720000287791715754201991406399797177749676130314952142947967966289047126397908403949247266571326324472009297722617334478891331678267229882725194403550076919261681050081384419483343602453858191187976604834379320184783699396767629094301541845958255056045315926942758772219291257858964760634593174950244373425568238052128583407166796942737764039582549865324627436865424365087345982598706746094625178953690116296114348114184182005113124896038369929872683572054053292862650000106643981890888937093836604095981584256121060862776169674316795093421314282296943091943847762544419548307146154124373699474253815619588534959735801423784601493235277117188587575602317083319812585377326112998943736356148055062020931244202330175658639726805875092732966108207630480800612951615352518623560642681139276379973169102757014816157019676683781896756826602068858826540408514059966705823091990457387583601613314702957757622943163786887162071873660013787720019105476895991088215638034564843236968016687337912248002273135696721748992288345974991858000006163555782027067728761355008751845949648812423886581718595654297406933016236516253682090626864883139399553472053986317819767225301808014626620882384912798779282995062858645292675601557908792056055743848999277010216546388124405549998689594897118178991474440208291091107683623342796322298303693729402763952315305384424131244801094888509825270055906333372246170812052700783898440363213288598517264526245691969454073505875676250326467534396183143285928391143881518220098362366629488563527384355798534089464213948771173810282770183566068757157711461572945453127045852394905283126396266049509043762581258403392946693151602880122686835608220267756475052082844669321740202089219491894596807415224226668656400901912149061263384269757967259166488310177746443020808069445596132477168818937867322130040185422969446676158877435853989241232522747640416436031545273269423159197196184900539874941396724692405994583782744154517529178128703050016946278840414601429836626756016778769500446291697458048748248756709403704130464127487305053604462331779381376886968071827859535223204094449798392211542704874447216514915774140874190403917168234478063149811944709468303845121828393887713011385101555563293267742075603025838763746312994270994317002720991156501022369580762635603022838282603685416486809185060769358898129721037922313752281749598143494336300248717071628434458627742714988789428330393216093035557192583242586256416734741102363770153469933583082034155053709006729911187868621068551280682781261628171321113363142548803291870558358019246191160711358563819561145079770237262786645587277020579722592908062317772025592917101053664234762495036765027492790264822152147690652887384588642967670507451587592477747527640495475875475444815281212696814273559205830809253923337145466396332266410288823517266236498605549954074519238071907645549965800988638210808478784518000426803626469440963542044299508731766723366333972000361263931395764207671663145026458087736162129291861373313089468815728187426955382666592381083305291358659102848474982091754478665155391485195569107806309038879786081845662545579278181116466216385221121931922308905097791650871009565796177998338737556823457137405939781043236292015523549287005504456789767286244422551601189138443706574944908056650691063494680917654976822234184268006827658111807519112120289979344316523393476013988971151314268965978102120062378212378303242285575951119770719691211247600966284896203028941723452555545844772362216957208727759966672125955001505031148859243640301157782161875718537043372610407237535471976654723227268497390371095139344295529704043884685553772315247234096396546658891931137555397979769782525309561380711433597878559932164529385323708851091357814934932093438920529796627079000915923896600431798075953206707988187569158645305076355325084170760810056887104462086999138662989735706056036275870568414497998483369287113460076866341943955868519572531230904751124426962164410816014733991976042624795917478460178585830341265937723531183899978877676418272089173243472621416967421334519462121924456623520054428387223906325786474172811779225597419958396238281745819765890122884530721761982839301431921709251152355059229948785929171831932958487982151387135147773861704542009793071908535525349931107876931414683180086732567061966202888354229021565567277995331508839140209362487263521687337557627808603655491103510440765504212019947935775716801319249291919811948011239441985395544510289624934710107258514237354614333093515920357896867707991413244112505043788837597642565573493682381626095660874242847557394936239598532589331108299641597442858269286482681722772386346914893022794525255604569719654828360486279209716291811282237896456013542192606264657996827596758114081470682540833244633133758539263435243184339183356501340233000101038103124478324795247126881765346740474516299105319891776190860197636834030691409489253919679448970598551928776465969618325977777609919550282554950945403202289871484095074709347471488407729796615510843509073846848586376625749461409873011979742060840956522274677740400494871794489155648853027974137279619777837548151699146487952468403128185286005933346160532409416696001207847432974443649454929170930625811274288954957510001216029908627406987998072847173866633668158797037537949518080879977261486443171830419789655024308742278159886973664476068427404940945047618946728723057312183601456187733030676149205681915295690655588456920680412358182523268266472924720023040394632754124454686173034401273177136891861693400002959668127554954612940148432769635307991189838382762286749648813051456593918053410482321597963931437107956061337118238671069963550220618967134516448029003352963189659356783855221678091204595950364612199645669006344219948199126255140037000287887685717798382375247193152559720843459499281080927665746496765471055346808147347638450580816237635084380210622474775454798062964312847518361890566038125281469176229912037691188145483249834310538391296054049704019300849310988807323025569683370052192694836105132994267810084119363823294676745883261277546202991720127234957365326310599847468194371317591559597586322802667109224865668741430101272364560664780431181068336914547117492564960550728243921848298311204466323471657688511435073494801543779812955217222681269445356960815221242457955132080826678205069959049156442191898976557558895664847305008690671721451688106437994571287950692221009860414443879730774384765781817872002928601957620242236119385543229927187289963954910185605680263216393878608749832365574290781306794215695198230272635495346598533963056511704862992330765351239973165307357498530623841161397259195017867570395965117242764494249078272993387470657393163025335338801251986208897977810759503340493640104479774995078381392695001387936750928831067328768515959503668121280394668308903627961977782704884817748004675147383264479892374556947937054563564862820773291244407328487696015078896692262652419152142507176874410495819494467714029307881972951331947235696170134651140872628350302469726325775649340363361139761153834718663774508359257432784281012276274274918288259801320669019234183762518031582577275833267564416952346195972240377688073478674088090167185129963525353040757874900026144570706113291642094981248485398909816668994218826288057778126987148347718341641159615361316402906654259695417442225920557087603695270253336019453620314742994782962805698994120053798180922887744904301839501572769564708891285545101293926739278899708609272664842371827187984657910115800697658051210106803264694281189271953819308395176239644811979227763309027171809931616048894449783428020012161151404171844693189327508026622637093654512399408482373366605219065800749450973372414982474644826400135097385175427752999526494291406005294631929472140068495457385685407874084463895884686260358597944691179700114706682804257707891659993302465600528774555624282056019754686461161716732909280172356376949460984323279638242956896931571001538551414676253179197838894511358794727350794726576456357504853712657878220049720256148436603705060598986568710183160583770446590586753519038077080642258270031399256957490445962739216961951353368044923386476604715615980594729963060216416204299853619315365858027521718780108179213625755187906620061222419901378918933521241147510256395460063461653888721938555337627179095385657269380942747980154539276584514328047185097080451167806665976010701553672508206588134711399210645494826346131475893829119717004979546629779638403587323375531529492222916259451021173916605092908002135168575674870298111297268633313054677536497182935197708218132113973504354989700188706218712382001953962896759739256328761116875939869850500589535299201598125969739783935064575141352420897759484227541642583688307193914024744782965214989384973549944277447505594736755037716226001800189383602409988540481853286770463690175186622563956882316176162558377902313498026445201716317373972286151808564279872538148475051773652694425325722999544981257863429234595968333203856929866857682084784923201907677374978540185810199017368571342448563838113674431646410711058179280723597119545484424892067960521569599099226374182591748586646032759575812022634766933395469420768831800036712040151214068059886472194878413364763022729689151817285953892088979333680994599638700573973642006820142489856147585520606934313049535731060019135091537634780723953410577892322121763080083529085585592086112327704536510154912334698671458112577337311605259381635584512632259638960674949560649702775791310851157420749666704544162677551468864214246974219563972736521896097522086039029875895196740041291391222880066606885603653632964438099451513103873944006558825520208985785841422715577025701532817635333545963937609547481554149466017405619740888859604183655149670578431655885177165649289139456439366985417872445096495530211517138087133987813097425158316840885163918919355955732363786261360321760814793330018896666845780403633722275774567108428581183439328395212625382899083343375723272760768204418431261102123942000816579796061694487648631380937548194503522474941145132627449165985554075648636539027325846214430259449305585868542175150780873916559322722396890685154874644607395431102432926916358684036166889001478682510238355859579544913412674151847179333673308254403698389193429113051496778656558484098753379156048016093964759371575527177382440286404678477265594271438134723205940088703769579102713528763624115155412071155826843536573997081409971188885861154502059088863251439950669027512958604406960230811239732881079663340708938441281446811166297447301757480335823695102971735408681517787096077608034248052195376724768974107920493637174691753393757854651777348993818390402478580450004111036082147769425704853288453367829998595604916191559931679470953601709227778838896892420920454244681511884306356824415928014264987100259066346982895636670764379127842002970826640770170777713883992445238725326668405350604869009262357908278666247092354091359796704806062242878453852603744814830745460782282319894126526248458761030674528644979196534577065023529670825530871451858045923746270267774617748607983050267404209775860742149969202403761561201294279703893722991151429403651033121832430286987138167259536182244824407155423670341625055146351714984116041989562828981817492818787813792818916122235801795884747934804207444515568780562276473016632114045115074068367267719813962599946936080207266728007129170983178204215917997448347966317742980166029498131612531987685945726454707818132060204911673211818626111657898103796315902549102909245063316183317514666179127806842916867994271447019221558100571841798783858731280495808184413276412517786423388664158084785822790230661172093848914630872752146592971642061089467666604719190092714102532342750292791079596002643096405635832932858509936345397750962345227063931670082232546512984540835390320924453320064022122732052883882802169563286210195705945806207357038801066390105518539108644239314043484544962985884408997895018588773035791084819265701152821188011286806624936806029254587397404637597997840911004077226916534051101553733610117424518900158919220272769295225147427314381198292317121445353184165088531454743966517129359483815526296141719949534330908760736084704025720264415112321166514169918479829902633749796964810786059502259305971395624753237227409881146306397379543293880695821501168956097366029311361065753907732702413793987719662798240181847152037098079809220179000880888463228841592648443878496280125538165565030057070572155734663525833616734718353749505729928120192772606639742691475461317249138009304429785999298055779961388415840629519901595803330736179605552030065048012750795464432069999658235017432278939444982870687715785666783680039542849507902401152595942895396839572398835707741105353919590276949671569146007539659206920995097238204083252498129927780226637523341568077431631355778187147502880982294242604128369950799920472606612467701144429158817710927541548719830130865541190362493349218843638124050377850114607123378534441959265887310768518128803749124111534483594781799689267340327644275216832060649287071077051363805492797977384244389958379319321433208699801635016582067665047303328928824709870117215171416299061288713323655611785514418785279796895469780907552054682529090176485227642782679315903512607856968997852912210357641690889309186911797954950277352387333551210461829937900353262665550688615354405195493048075121685495765601772931272880213849340788617918925051126384941379838955430588954816829378119084921820101173073225869270567405402605636439456832325001501850153726484593228140815713709068147963599067465433147673941208026028498039074024221146037687106449536999032560199335536384802628501956374733351058216746436851205213545952293710476240490651811572686005320849677915225657435628940176529624676791861219184249933365676230344700060790079309389207005639532061200516929390147350085982569143321032237288978505933567687633926391853447007072349692983374040175918531750629544640300563972399288329118730943402618834324809246471655739811244443742885322331593340503391651877932975706771432055894178148378842928249532335111615346901648272679987422894796226467714355748922577543641964203138263730616608975986960023439581573650945525989689913475001685255291796177373903208297259608374592012927251336379328673010981887266447186965501803061095120820981530267136510899498257782332191172419959044553233634994169478923231999315066712441394408669363935509594429051729584618231665446970523215206672116965147106953888065548490120467553375860333827554668891437478436048241093487334033057660305795402859924618294325335845026459918681699262546685432505128566252985132596169897749128779844791788708513252793548907951645147763794654239962744133476940817804711278774166575551798434893663474908349470877013337450275097179176691615876205141498809679489096602594401181355143371368991290553567373360563584587588938368120669133822875810275164489752226965328476244737622403977252601708194789623801802989360232676775840542471566846012764743529324112916339150524029121753265152398991789087032659088144229093764234371090854744555393038633078655421385660590652847572159556632705246796198844673052556904955092329786724831750662809990460595927673396193059661822560922614435530580263850866002441033190048794528332482347805571530340477642893940995845361394770773103602146117737769175845502231941821214867403553132769391997404708159156210991354217282698626710321799438466341187919118301797060529737003988298893609540858716570922390604722280604330692620591657549707001947496274515408522008899999818901545806718149168461304337355917188625569759903297377688120032311557922513854485165364555907417593433864800168078966614620730027171340116391906170985477230784741398442475588648257895173366313016071063307107100262764963939237950295167809800003122882543861758466935559770416319022880992436246689628625034342865740995102502634814342518782092330781450098439188130668109149955070025248934069185577924201311412970853561400009660393648638153110918991783601280866595562329333109128961639749600587814687936749401118929178312774071312201215074966601182433691005374777646886052871116701321643581243188317797334088345358318202219529980481121669613193615089297652759829348285701015289856109687129143097596927753245225637579153086274842860597372196863187545766074111879289297579605228114599845868629458275025897927285352443544919984635451292396418673319848438170673349832317554139915896022335101422902467600905220703086433940761097841052395152648855068392749099113778832054420317709637268959627891258661112482050578292240347754526437852151885881481993860296458648850807840177946814829910688210512445238260374265067639504174215798213801283167793404618223289550882025509436080779074722136138954476441995874625980659004689086543119330774765623513589576485621072409008879607561647259900008682994598352056896648275667009651579963080232294759294354189222943221812303006696132681381704720575921236214226650060852570104434877302402436580283979137852501103815883240245496090606142359441722911563805955313115469554788557117332063327305749851478615819013543809882164131811048899710697175393121484106365048139770168615130078718337500891499932272941260356917319918269465770538128173323665031640372876973043745979162787591276254034307919502882998748872156106843546937072739822033225976638733581026382889561258098735278487785281431301445693016507113982424611934777154647295267927421102990787456186302596394280254492417886295735306166021591557828145279811080134408649600319925910372503720380092359537666920554255895558828866306235660986509465591094298092992511275053082565163633363980638990902713306610838668974979279556727300036797286402175589575939602908096220899555253791173562633013110236439957139975877811744537129726366778569209423243476531452186395916689818790484351011409283412707940595204545136800244225354488477689239808050520716748114385773944185894406239083831411986787730937097621937873876369729032085209349618942280277611402764286229208402470929398515943035121743758756031871977354482215469543024041883723076091944329262575997272352376641274048450157546137235720996132452830260324915915087030642563723770150317426910087647697512196153988559457139904128759034899642981771702908250478275156888254825745235403951278932603091612847429397674070417926035801480349894081582565656367952107094043101580607371476813745036154657219850758966045147862403880305228794234261884773733966902392971683156574182732098975160791465469075883644553510499852358158792033304778309109561440353877716878414486982428448255279301512602123046688157169331333127911656854523607227512825436030688093029168544057629600125942867590371196309389906475108179091808611778796332097045563606162935469166976393492193102293588595443095544156977891664512655515723160436658929482371235527039092419911042111041467960960487699666930933303755425488530491596542584872710400623466451153044101171505130948194308142504852581461795484488620583369307241605808360117256899761308391888195464615452647441996091645118596838627287310327448377061559570337662100180678320367325124654135774043815785099609480552611203582873266740964662019843470894439735459151068678237655631614805023274286768621269642388301580868439326339705743743374683123419704398940285900942103860211131354655216905630678293223531961406379243670703113182875855831506440434242729034419461138870390292889191716138371372265759769705278478061373327108884226735435348462500081939286724956644919209322096372772672051654272717425395737892907585425600205909105481076576499387549411189997484806123213501454221092194425078436073808609557594118746097877759972789782295613266708921716745566669628716437575541101159764760505408309156449713792653315497751823246132120698862381834758868852828631272334381181098720904670005907351312636317231683271900603215461159057240469887796260389552079866172537378056026382160694185885814334855315510947525523921756177912303777483824976271531177449975383411035215868064037583425877348535105710114980661352505375433978393297122236460120078130421346153750338614725740999078970071710914362299840411373633493470949412579835617574055490997830749877560256166857491369415715971793074446160470913886042902223667747327346441973980712595291849836895752377112010098854296950509732974730150069697357178842165558016711694500827773185568869898667772343776235061200616470367411198494105406634273213413608008960918213727706778747817478993454894266783357522254670827632160230722676677712527929829733617266642640026681857795489093513987545470013117392623849494793498057930591895307204265914763307879465155064221572028191126571982620284326899148938423805593203807406055837653034624310399923769731385516499273175559498338238044309956248398529009909021515280445603536101559266060163409998325838094238207140613107422977017757742990478163580071015868437933944836490288525656701511239423854021027298253221926445126652471397461454627122134485399187170988579710442487612164530904131115982343158455846930774913316377567230956222944117434712396610417435135245689065682986962544243465368292285289323168884217684668192497101630219767476929706464822921203674336334003983597144467076836319287024040585727698961171945833543531526148566743785851340836199898922071581466678607046981221964382410068278887554229454594020446315999639709456909055374984820849753631529608252358938627229732060893953005822582422177440134218445020511050944047564947112657744753089081283341262125480615625287194894028550811215116662139863488071177533069748089667481593152271293403410234175303003027297605969846714858350412892127767690052266307669011126523973583211294551218841391652266109574623425902165324838215988432042963127942300138190554808863252529110375831799255815525143270521902109255574635630046679304484177984505990989297274136677262550989477747970304898496073547779505990764730239655911742875705672851425121216165075797141781704209930822375647698582768075805170941445834600013202739722011551101825859043109260843380009728803754870153272731615633672383020179018875977879000940510208752851824635831981696733510781452120716959306096449995637161687759089298169998184174260272251672129722561545851260991350152313025936885713606301812268712486487230201021950959336653558174457622067638061347008070405998537196087225238331395714435086345289147466999542885648603661348612319722389605677793691194581046166137539781690449695529723735394426185853854990161809042704429938843364375751172512419182953893828733671941604164445993511606053829127000235006373524209302808535463789065753872209934878740983718385421891647626956510431485813947279259948077372107026062406053554199817646204478200441512600397788353751540473264836027683399686918119500019377297285285451505560248597165211092251008405016130137807908200726213872950811267319915014695259764346778047073985148900554001836244753569465162144627075418029722544961218818542112905010659414476039656326474961761963169134495749934957387608993330550144260769224798672379263202215512473171697210504801721471322370076622398978131243437817723387095065998985782799914267549203324623303263776810184678354402629116138370796881751243944979751375921166551980113212389506856893069725830258331438237838268669880001637695382857054298043604780367319919917092018315158001208520122899064724012641017909328205141718208386550182081712968997490385102244414737966348175791500794004601891143695265742343853398018550867629296411910727332054603205045836214382948597650901936820945631988619428054000774733308682788107222004295527222233697305533889576359345807475920401971317595661913572608949538061026130974093654850034362190254401343429481173331398445444253046260354397339471044337516843322926590063396578200792054516077407967171964337638037399739553571746183597230337576192839249118952585324800013759005589747704526337913252300639754687953868097157180026988762593325507395062312022505799193216569048159023280427913608079920238513709368118739437202357643443224382646756235303071708899036494749013532625368146667646617041483441335392654904083508358739382416344359869650668209536646632830578923971124045149407189964124194808539952163243025892379369710796313747371835214891263327827585904186293450104673713349335581807532316592941646563363852873655244783027237945787107900889781589126382594081990378474981552874495814932075125336856356483479120131602769067360756794255216672148880465318763419307416163852258532492173697473977145284436803101359268593755530344335017452955376766807374107891965488983248493600691603977294004132602235054228615755486612128782299373849281864932333312434646523557205602874963292020761331670282981152804777160074459679156687981294141620984743301037139405623053586809734641588058616658124567839089620697085131194216857082708983698772007012537496203456615712331534640207779038883154415463666570886363206700419534850805305733894030069745581873636798248244210346323461521149810547043404831956620556660697297350603726023289445659966932195439098214727345889218014551776000917184272862428206178541205746626760930112678269126382509878962830530904518873001565169395701987586000538674793863941431499721520556699768311333647610775491190944627248736285758756590485931054526104055170371645719504831715022932366461871019926696674596461750096596734779515347565392599831472383469786447102699704636450014415684586892542258649644838674105479887118825758759146171317696403182660037176566935376789368372693642608301418300471060106664431027812028707143018545108845468502767753308230171322884366407711374636733761974311223563943022030550609970586421601749674175507107497050345397268837863622707101234585239220653553365381629005101531636874819374340813132052208399724267505260083338399254251697753130091814135681542800579178268075828574451340600078955173545471180653859772726079946094483415556554303659211223638065212514462116689091921581479163352867029988471239424398904521011587141446868090096276676689197734684854298094033909307383130803336342733024635610822713427782227855437575110521820431926441078866888520833711726019195583855433211935895592516812528350524111076866104180460669996501704943415580875105158280151039167483686283370769690685323530753048842091276138158375925316493989108846809813424994501568294700038495388789542997031006188456441194789359956745601313324904096672052418581292033338473787278165095592429364611416313770353222655609272044331554394142775087115591802109891186006007268928295613992717640673227556620580221081641345201884235373447025294120452691130356185981501019811167400666243363673393409376018524929450837116246548563301800944559390118483459905072873517377700477782603650714976326233950757310029691389303689659653009727265206057720239422689448594380373613068291596747048088332948893554929526605200982957591766037033781750803708157632445808184295811737135573350560857015513848342746351623326115109140300327088836085082514249450759054794875436877420577162059267687032557944381952651003689020517144607555733022412842387901306600511101773971304906954625456361095992287777308264954970172409410901902103982108057906145450127563977560410596637069476619050719296305021685382644482245580912010572402834453410606339340770704382535549695149868850255559338172159292920527918031514616275112998499008276796257139027781541696472223824282933369005850455923944385531697017338433259458999300867904930022874510132607667138431848052076445100376257511130409906716600526265688297457184732639432516027557176001436540609479074454087946728379315557315921447522503448339891042512347974186303202048024346418560070424343305529695186815317709919967082740857582904457168330650931383368249250994165849696310522167978371273203852986489922362173822804132729152830762830854854062765688644735570815119951119697844865171375318935546138682810318720498854081837479886544574205200738675041358851053223874244244575481741849334273726526307471629535761853848814620079801104231349971829612539412880023906158664567000136525147575246588596536763132287315772872148390454421291384875907654003557583297714788961655713462513609880119383524935032595876483922089248142102311065091850325192764861036236823812160578676319316662913375723230360601992913794856932274232015460351728934173273330029830132404128782887997492464657205004881535634401179580828123278115416295765583389283620083196778806435760644983689407114705485792211969587856698096330156530780558181844733457930178778413598785122437136508058526700052645153677172115064552518327705946883689900823785231752596146006752845671469507425691067286520846563742955653849356418953001060503981004577177444286801774318191160080901306870039050447950599630000046393161133733617794450529323620935749221568321536530578023561569029905123424659328016135165867982529004505066291740440297301033067435571399848990440940204726758291577233049653307003967036516654782858347728549655683835099283796393653600489693606837817040097552115886737405201497889557166565176325262322197077428288388391920640737178988637190175152713147640329108709615271411103648869504461278519983779755866734333219936610585794320702322935708343566017498564676491355641672545582174558335175741018971027774285305495889662155677814061376491576596983300161551100233169194035256558338152387596698661978978443378872368909260339255047406647839860211036615753019099333508975828699889728641317124686382643982160381424384800252308421601697725514922275645408587409464964053915066517934577060818151842967469600552703078739715696952674576743418878121952047528171949678435174016830886960953627561812161025617000775498698217924618195385827061260268404971828359699400212222338962825704581951926366423238927654247515041543092270897972118256528471224078359206157303090334964317394408266367374079783192858491195285451178621027600960724912591670153717619587479566147802803307033243760760544292366050767967341714875292456135903305109974597083144102118174968657279354009026921413699328542963828519871212582335030848262760633972741628214924180176481089257078887590255724584013977342314891364612254598056892447322259019769983146405651844520640594893624938786733230989331858618854005534837604046703216863185000918607540506848478366228094612903285353096889688908916709703768573322321149798822559257937886415709274100900268260632230666227110338049902493532277822960449929868040488629293066061621121163001350036872356466107947448333521919864470203090299620310295496754618441193559372787375911085660508344238493561647016354535493452656626454089908969645562234910851672890191720860212776089931376908373785268840005789631235077255907379234829934006873986653379395459427851808266120474031724145501207513774361251327386601332047319743970610934444087894905551239589818163966111965957232112842989772214270899270694460069149108286495096946698985783685605769453481256896285972390554956399907971263033231016595411105890661976547620230460964693401655469600545910995669917094580730686403109247218722706951766936561060703218927678339392196375043980164890032510527485227310971851931625558319178065900056065460904867484101274748698083401814568918400019208627606848667960989603716429378910929097846681052876526921782894169700147094804127369003452138163345742945820410323044857937099700846498385633876700135681452951049267801787182706143409260720417536558866211390245560760699993692267497337232561490325717578231466051340717264771073512239052457203029219199788398843188757562544263418929124946892283578081595809845006559499630983653880580907643780059743018787679413928807670486476162106362395582881309081488845579104757752534269375765983268535283976466515374888320818062516174107773515353047931187752953171542437456031264210749344341115712959869928750794554474054116615247136915177663252922379929506480617473009546268765632968909276176690243084516674154060272115711197254684691889565845800890780355812295969706742860214944910871922449781874363567064938152766649480639524781668716901029652910051348587569415316440611089435465540111530003573787113264800054387389329720687433672883076658471146055427355064930725057334475393307464010891853001294526902272933849983571990053781512082856497020910753976858935884328507626665803079075968760460520935571103783095653162772088078863886954144403675600206831271276829638789951857582348673660646158813424416822088076715549928005153915835196323743908214314450820901842117384265763862943336813127969148954660251507515656654167535640897733215665335706128456949566128792755368145352554019347067643074474573410066182514021089882279723738357606567810831328098211389806320415340642049464380292882332399071583989220221642694426763662692316095627189517692481778953792125745272617488999698617588904712807172014955228982075867773065062030609926017467293433513150397685982888716525312618162821885200095853828782011358646760056957856891386404544260018900338258566675839291277437985570720822828228674086867824724458914348164697232591362192140805257998683039212668843743416163409101829556989486448938171335687080907336244313832130976173662438827529746471018165390242833962394994394973829893471961768842969291599755489390089689210004118770443857122110406552959137645715562627020140975552231570278475340882446175298138227854857103805224082408583854318994352578779669615201567710389037946828822410626444277995417899679406582444413218583486804773975744472845532797392271805712750890317056344244057973727415857099751107516956667880614242723769228643525772505535618323063980068750965275086046472178521290403731207877054942616422642985073997172255233712526751524506517008422579961283072096201512142420954348196387713334237813675632948586297576763760305177742780556845037150833094359600156639804342739244733395081389445728552966165997946454931398069454350244021070477098878308395500003219853993175963002017773616522197876496044612270558062617544974659471450595513656613526720950829065587114492103217601816584337389132671446665392312311137946288255822560582119259698174348939892255155746037331669371406600030790788337110937806575003155446357004858442766344830854200715256075099556024308130169974936423149728539771751204827668278201315297613388843538505477571277923954170504212622823062264208694090571203946536747548460469310737768929429535274710337501359786415592418355225647837687891127954811577258809132323569509307041778821819918622605540695533411346961792796075073514479381992988953669138480405888631681098641510242153545513467809290967807845380315816335004277148291243923354104396912371146564430620835319466120422690839904027337391134171394259493968070133569207828217912777067664825857487505208523688643103819327564285980859192730493259839861821172446091749273969671336586108812396129974902968898993317845105735242507875890134411920657656753003739527244283543288171309683271306225974120955509774405780530397311897278600637391513938656915333848248664525772897566371084753789237670078651237309296843694975946229064639608092052236390438692158659785795545016959044684590990877856586523459662992647622824838182841081202639550882203760273031704751004981654619467557460629407807317675590911821007435745002046808685311903504816238257410156893893184437476001135950812494875287194918242993487956489082130394563340279311707014093984891947007652335717138802927044625499664963529301499549110638776968806333121205582479308493553861883223790741350406414097204992799141860464234214019531322216801092283678399299073687583479291531661344691769666487954076508190774576883914645258468709322446998705552171664466832074786243610457855196747291642415804538351055511919244549659784805360365778745169869304190612114254337512507284794677384030988238798382521805742013880728154806914605840108875658844095368591889941285770043302647104316111981726556205800229137259704581912296132657270413817952238003180481061775882602394348983760976605619111142958954450074810029574431008163099500562315339450348703945003640328987377859833319769486058097587855120792058419243591154720998669131586767545111129294807064291871421905509042111598251839335610891224747003869991593810282212296460129201058646865456557216802756243992603343819574892842778644243829080164847619252268145692969561636539155557231276523904602944721057018810496276670135978512314249766570523869115305396387875247286678192690053549287633832722715631761498310447560444997329281562989766224963735266213563798771590977105102498359861498091345979635110493412750757535733209514297965683380379797914282278841500530297396722516276582020337007517016690241060474948101981404911129286215598404460108101399184147259531457415302788223191883061793229465168875642326312873158305000748796681441389156570293243429702939338212080674919170122477388870703487616540228460190727130754790881291547231635213043192635986880938694656888430666460955093382007751062038518586898534811475071704520364433633672973136204452870385044290879709475590626566307391001620953141536454533849672372991931422636629861482063179698454754987781829786492233461797844711310974707076277990292182798388742120091761356519628024717580085594468233866890655434402045191896002020225315493797648711656507560658597635287092872189232783976816494168728373579285680039453048052334853301259225882645638310180675808903375546053311504062504842287761614978320877836874900995544002220545319265012154040655181445277429628913907328282921674010079425726075718657217826683498047874627040072702483850302165117166059311129582557289944420582239746794768690317525687140345504463862956145910018326631605733823961127577271089992121699386814875341355508246705087122817374637994285174765990472278861695339058378873003881383491373159801550690336788438279678700745337568412172217355961768125173408636094009377985695619748758322474980186969709610862811283978156524646953978830499450397972212719001628364359619848178126205246994669204294958005392183147780926537931463413918257354500751433271254557949405880494298826988762039004825173028152201620751393555917373710786052892539043786115292531794749536277359269215670176290956289019641561135876312057015712467074967028409030046369630720812961649280572104751477901252778590975341152521990611482605553670598223884778603413688402336014183515841292761722741325747145880362165540287034419803933146513634307096423665938569514587933326354983637580835123457903607551193445494698177878038603680041155021082553495211192016858823287271204881422627226203849430082701634656974396249369358094502380671051405913178440565931460005969865577595977850586453937782175760445495327876252160859600190095896040579314835672746729339938716900371327643588793787443254359205470533213822231677510848156032612036305942765961682822285073502285729458133387230379652480070638234867743291793965388904129155103350679672427157521689721250596757653351809620147561134889925403836305297157635744878976593617502152393582883254924139233085203300657725546099924344885739797669273023833089043666005130234948205591831118809694035195123290651624018436921184534521739959230159622216515737529283152306017023752007465572736275477081713992437239986523855795301003943764963784514613100944319166482826041408572093369744572994402315815151096207730053160340814609724489639100367009977146139748783268577334228926054643485119570223792165749296396247677277440836586527206575863726727840910853363144044653476714763331761746616665524422690602441031762788562441143935161053609033859630202434405206667578733839026256797396186379589117754648714023070509656149391283901507883790303573629081982614843600965685939811750479905029905941915230334441604726980252937826481745570514881685510700468867183402336658948127031348186853562995168243111500553649782582388290215224506275268806487545402424297675055751831162976162145027953179655747111661177881762659120204396390017720463855768175695672387115198376976464578736727478923251178181915989453279089851868971979291119273976543475190579646038830741829395798031161920910291045856804874290636913895278741834029558977205679940687092987446783061913718330889783954939226977189209369145049475608726202051238317919019712444394847028516633426671650856261743743484818924606094639890021786241339250359988381239363554365177016477343414045785267296787119340333946013696448696007542084887187567416367148948222410777382206320243338031217838756139129109458467800169755823553549666403451460724724243940232237448759269943206066173414340482227812725513876790914887981669665065261644841020790800340118941181783438226228866335100636628820293118655676811052432752209965363625906912793560025530763859993955310304548148536834619370140936460601325129302917180824137148915942048342674376345348259919838571788424633817755280087536277125201454098613833537804246664404095941200727804135114441439853079055151169431256572359329638464431485377010179675548785166810184226630489863857113633333665697373160771844478303944781104479087395242579496297248053063028976509067661551714495528099009112731803015785001412001188268756826877192240465727911952125980983964042372905863363111663925619729715903230728746709921906178696701270136443289735202892448266821343356826400387103580202604546510076368345684960397648982101460713396842599295903050681529610574465470251884744655316670255142269598865867105441120567705246428317554250208154067185750452770040913019905399979311053653397212364639269586826287534665630070351097114361949431141817121803352564317479313235031303894448011846082137284432435679733519056624360708455515491873537036999629740273458489057950126699854420536220524919257624313582356566598179535803544893085254285557560954341347723927971603364837215274651432117913802849497281182206575691840537992413181979811061174324666020625942899177438877716749623104949315412885046346997868764554358567012206398245460127266068071602789847928515177723445720205947019783100620251322071568944276963918312524700900877809925757116713189375482864758143830797323545488171080901060923802958592646693607241545644920976152507464799746646322448091828617556036894896358527007329780709648629901291994999637651379462571541973132925562133151236730707387612218703096653723114050113384869995868849055588214487045244397011579907977332759911277942283280231754302462170635619920005930406310470958531756614059463878528911359389295242562096986598563200508516603121583141799815939785790855360829692598471735847535154087895958537974541273204336677971453150605166654063878541717701091407681424202132891906623560311526451743770467692910884710435072817659769142211098760507651219884904804279708618570245511565367669890286961111349020649718774548805141247644706365675557912627534136770796940082224806729807257616662306297718965380215128761302369715852973370762675961181879082049164927747268461156247991152476282231362951537513380439963994151915204921496619600716670907426725510968432717085462775234708036273560284646418574572888381465065853110292036842560907455161086536582683784266525612226314948235117028912950437699680114611822919062999042927317415997026381604057632160557444822851925508567975290516661402639225859853378835000042370427748395033556997155620343905147294331650232604136779199147358655516367217786050044078755465751027346529209412467202814794986200512352593702467664510552147504975049055424763901886411864170875341710501348964676944745420390797414632904890898176067905048491816514894289550565203478731287678417267505981161576701553649590733411235304357616979100093218728808252553455657550204273523399651061746402716972456919316627992963447531608705943780129416974715584274075152483738614157765857393180860982312277481352908490790037295493267077198565634736564596036312931896629043430532352973471968153677444300087339244282538711773839370027139550738499243809890963049438904518937316844426943804747383951440910700581249750299448066179146573512976784137664970598713209439688303880438618449773863026021499734914014488721600339048347621833418405890625678086625829724612219397635381322612970370059885183584539873823577907363233456138666578917547447642627094526663394118015747837555365931573971108777692737903131502704817330030897753845397355324667429435635068974478277633805158367725750542776413503255818496996897926244682809401799864045674168388674579607519766199359526678560716333415959103801489839330821180347807411462858397077441566527270433217517729365113538961069661017811878327273931247536025648177323619709289258420086001332812854406609531483992925111346069160327530742405091688826679237421359794461077404445069708684348291334059315546904721992122422207097308667254951010864313923120858536280674513472452026651853433689682825917706865396178518256402565487528540851687504352677611633885837157748874449825427084518006129214638542128926972898116927667629563322289350395505273910402869885204045884345595972910028861559540138158646852884950056378225171471598670827926514401057386141853806342311808790123627539224847646490009511912911021760695844731465540822797956098968629548399883914874120827011547895541970650039895413550357957979673251620444679256119133588789027005634877979514473448135022231718957735553204874270400182477203488272747992034339343035469865631003005537347432119091168307132963675266100845066479571406790823883155069954217692915393782574262667189896601127743654917178837174199759867683713689303108129122197967487402533261434994311604371401237470718700169932099966206553142616949228550948133334351640421407078570405851916268580175860918105267800500403663739994125240850559317503248225338358969271464839882766168882355565191958578539791462209863453391856953314920985198892741547379939751770194392475343008343629356223438911322732020680350737337880259025483073348762728984482227550838025554229945891931028388979300387735331803555145301151815326900548052705716445822371128578995848683654062863560412441985917397009403998871355814190445484661497405487216446824545985937666756660629351207588734935894040177663786982073594103345458485073204857922714219535277388247896982550122619239182896604201763576375956497832486712795735692200368517186386803697021254271304570411453372068612179792083818041612440083922286718864659304486810425384030921151318547909702167451946798431902280251084001007250137089386689852017969855201269476082374664139904786590688206993342269096386144949725462148420532866450838325103439673899144921922448647548066720151153199014981013521106975793250882091464606557114184210869323858879067287038063155912148502550011737279352179355390064258458345896178242696607632489037545741284797900948953951251061604626781862469443555272042212291681487728966810050676023171610628991422546612132625607353462622196854900810287056732725834842782558005590206972452994882482098549916510743155251496049546417047807458649035888113072208373620116348571619093174955700833893360805297704736797156402349739890173442467148746543148647617969594644369082675467166879227748074788490206904585892169495196337243321163848391963799658878402696166428086761683753815447940260688261624578305874634414446267463991714712166314654100025714310063641626592323758133680200622221404548780304886113453400063993404638422771786300173974471163509362297901434917179480707077009688689577787990090048620860173614684581810907997030203418622053796837671104257769194602632345489723210974304416347856600675307100345324107138514132131915839056006300647581819135529804352729491123819249440648430661492720788076442895269877731134597855211920662905139536445007132107979635985560089666079629683310426567545874181892573474746578910468968537986655966178075720912642562443752129355401034870277290377844595830714688700448419693098299434212613603808192080285671813757009297867028998429139132515221373957318295416985405422244051839742633111195695225938325454049725062063538498078302227825427252292533717007994352599258831438420275788145351560856530962761449926040112016075866499997515759622307323504768683206116441147686407245611668397055825383437764763373924291969166985480038942429340947541820098408027163049027917402038614077588218171194246605166269240150705303376333162503471844899552427816268160985206351961994160543137033404501207483745101806983645677509253384858009088830375351590240913057158218059433115095875079625761011458741906921869018503384487502799209778758579224706414665621042522020089805814984380589472667257742172734343817325536095818133564427399065305970284324234484511569627586748103350174812048997788139198504770313565933456472056299226572074992200316861601884869277593602270922585701225697064303580941648047255872081183669597833342751707379463454442496788727858542247425091283027523956955680567624726458769737519247012605335999594058923121487021405734956528339381476212860414276391347855895110801231528595892834572680956851166780450435672488879467098244914878257005039806072171140949668676000730915074583589477993975889100425604374576283874530127077970880271551915128361711405797231768343742791454285914080576573323739726454740202077269582082500885544608746686681214207421781021245924664888202332833675507694698228955926981953130389931416485148378201639762206608576992109303903132967455172340156783330045746983704687088803857388376334287933286870319985414019020199370426530222597116204094021333846187785491899790825740164104228850639000508844354041166562905298143450103252106052689991774469354210683209309481200249908662725742822327826526473797553429784979049297251711787298883109502799502088754263904438828274690350776673410969244752053973739056747373273754095809831101362470104684723811838889899171284761292574077430719825282453634976803075343560234478247432729354524168369026686890277539636602796381818028825829788337128321464292764676018271019827631356680750381500884206669341960815082598404469618468466518039221288189011832192797777164869763978609138953994938028484475133549035048241316278813307678140318844357554738617422952077079265725369770097805252947318836593847523227592608388620053199793086989766732554872709050019688041244004609471459649915762852922898909334725611426104229830476172603746005239738770221674612378854086933187937865375609729304645651728502416260274401845748690179775678810688138951657695854495945280519659716630041296644138341047213867758079330695683258131042282674144744013497854109312996857143445952785814302609395240427718762709165919872071104446759035697434039809229926824683908022828335911263726499544513454461930784528334104143829728079541863862132810703698975745677341111515263952214311743090946817049858882375234492233498042107952378158569919293505607774515064873487316900792806623661687388885550928838538006261464190302154015419103037282732001558397981365455359115276350026816102492880742319716041760959335462732029086616977084133081855351558871210886687179600655524611996512345454307737920867630725284917979753958962930485321120639022020210886629139945662865201954402077769626915045700358970477997778768582401057205648918165260321651539124347548576367151840488128936715864311563623595331930654621486189464237347231244365767778745990742238975306722533295243228094352333655668832586882032504373220530510877301579607111040437818717942176104260489625228144864421902406110537966595980548027921340520877992852682782569361834566683575927419201430245982661284642396623254151652534710656874619789392822148990761891039230071835992499047284078891071576855821822699538177657436348818616780937820505033512840060599686922036802451281816898296540455151083946817665322431299946449026618694543310839267957333330436203594314661308606034983537228658773353991128199835093961982871455008405125627178808426051265883177879484269336177458828662835382672531827309181862593283879520881375450215596056017820869313549438564866255753828445099708336045836486904523361065385945584124283680294082788057879996299520084106709101897772601934362473628743252840152264533653368655595708540523804130392388423692129461544219423119766911812169156130465056029525629606630795490454721430299343645627653022813242201958335728493887143024362968350501310655948024761429682859156907133925309524850837721349151058514517587505373009453655730282887430584295989790442745193529454082339592889470345345475138041866981774553329603201028760987404441475649136256168390692097344259601433697662130070902667064390341242996961739895350419115787064030371678065575889125545338538653230595034993543595019088695012442380949799076414684519448436650166005546729445327946371873415332215958997548971661448373070470690221716872204480553328328132937769489566339019422213249141367756377009884059490628448238911946347196042689966577387567785755912857281840093486861302621628738357023438526133027435116011780600107421231312964381898370136076493458250065016945167301156141142474289303683590597381775988344554651013424696485061359793207358353510172097052053438728754749219723061868397231768611907564325470015210414528104713555551325793536119663648891242923285653502317512148496672643902398318197826056290660670567633664683371153191073765751402200234180068766372258555084714018483122796749621232499276117143188802589013642439127911861879763793006828762791474209586941160305085731860621951388365633580228243112705986351525425390386390036712823898981531823178497454821755697011998835106140214048925543887582080094228291171134792854266250945251802734173652872024873639221699703087008285019367677811552832591406459679134330743470196069284118604766348470508777540679436099460120933699960470976895821274710392968085077606610080622465620512435180880343951185641682112907552539586793936378378174533285143399307049295321584766176731425307710503597196996476837015746589767096904705819695887170574959010509850117450368598853491951162210070710918374333494327619960693905225968524683703482128688162637140348593174640648866711703919300303490668329145460723486595274331413440190894544175092635866830575945444076638944987399805982096157949155771523180381202866056358929566368538172401421250986928303470127336645836636824269215121711137462166981319265411924945472940809942778713733839955618880706121323067288480906888757650533024806443592528479273704356050920781168772479904102339788341526773422459968673390735854947313933753272563919468756376206673337869607039157097512641695080295361877900424446365188947079540340049212660185612573310949400383151506051779399034458233624211388744141267834423065231474675390681605458174152500811297789527977100009456941189194145942820115440753856109098706039311269961394491616909310570051567881581518602064238457758078268770695242272179067409046863278965948030129992779358416596389223316225823115476647298796372334653557241015976921479359335684629634331501230504853313381260097270215491011036509420993645975948338465225191632938006167056324931306215026180858027240321884433479009013179602716457904585472795891781030209643713328698839117451788477703121773568341978063654724404115759694083235484831867935073890107164077935721174675037316513495637254785946084552018404653089529067297070440668632647734367574629738723405402838077873445705056266811385435601882535656514451897401649119049955534636912408646214146629977419795775251691489983608553977173065154862795493290165718688098360554576942068099000083671362182120049871646855650825919836694526986261862935182441054341207731397855011691571372109540847076126904639865765577720573029654285049340093005803524134838677452278426054371546626005605771652396251643147732799889998791165586913714313097202219497307765594737826255979702197468304873486864175635046833671356069952358893138048736871414279326213784312648622352656151436566911899372564966724176623046675629720966455684434721166054545859005657714126791887128346971482911697866011097104127497646735157094719144696070700546475764905741952946216625655131176819640149114104109782795742446038636310512888630812295491962740299069937229996832916123010394769359526374129223711456425787578884897772485289903298113431750441986602128510853556597084444037953252495319165304652428847352628459515151749533379544401657123187804522321210370075200846499949324638701895416567605311042486861088378048074916081058763431396743232269660781063331885353591474190368772031502497211634524070323444222540254525448722178472590062524421669002790018941136153640478294975055510633620283782640915598390845028468362160029823871896656276743023714750993808342995561501594529045967998474035209635825121821006104584177658427867244624919232850206086452208382701558314003119361445799350906872609201714204961507439891163657792596225969134234944441381363963263904414418770017805818149035384971208440194855975718229858733024044717469445814366868481887262247282129995664434597296317514108450629263297453973296335894053583751452189566611653066196506828847184219276529523026249835003518313099762462015321814012494395015937544841610288500428933354528579006502847515281815968731735367856582294559894350886196028541545696615541055812747340789999202123705264352111281255709154090575550863036570482635987626485914215304235282163164338210156222394837685367604815883631971852877609859289881664115363963849366831612602461116360705535337218598548781463667436160030364215397732132199896367625806957217484833506307277161601664751366982490925394417216637161570635934304571302616113849243508985423406015404056109270445875029488840034452805572721388082141529055109650952714135804353255784123378733219924196844311657216994405917568453426344002868446214583204842577617951461297071795559485776784127725421764433619107292008874270196070950275645270555906786965079355680460615526663576876722885263542317140041655119753117765872967956237864999008925296436949265461188690386050645112483484057915847892451542874408696109846392413974069531166860983532722867792973975859487893278373634872979897022492899062937395028875031977253437092270051181304446306527626322815049872306700232097320594232785506449525035626840684516623282417827740182586806297992978782322824788989749247486820277743337738725677758951860349792229712057272366913258729951315224240177618728290872915497796344412442868573836721603729277325362002743557233466870524994858632217037110016380246572144666120457327507394432685332418665126780947946912787028599368723016923251971280652834262386243878095564486123922235417646400264353364870391125469964969411727233866517450280901945087884942692117735107409458311855874131836518979945484341756781224469998239393320541002513564213342496266841311237105937046568715718918085464841154366798992054617723965226673952428747535927721687781235688590622359045101737929780932755688542536911048278138463099693923700570449153411015602164769016849125393467867013195951595855881225015409145934049965976490711001854953349803934803548906437242921617627788723226115694475150851670987299315617153484034216871774922633664264639416223213800198000297380620708085430872832758543131977922507987788713244407267677324414858570001544396492416828409213131549119137562201283100418246721382001958816547356640461165535616211714835485055562988738891179924461982719647594603776400278385696337572280730104635597918995190246336742536773672747529090069642438300184779923794169636538854351751095316017338747963410876171037578094602511583748879967474252989638699589872609606616907628337667310489171505931726479933674873186327802670305041089247642103914293492305989626611683613484981135405500197003984655573590079980469265571515466822685916261217643981245722412537059826283807527102278516479158950353002322441359958770368887522888450294985330559300623526409836854159118566657652373411507459902829455941984199904088504237084736302363787011060622368940276402808363042709259707064531007693035529731309890468405562417188719130393183077199825264115033511587923984776847425043266792058881584642773781267857949493227291117862218819762895596828813963807381185365624146682971388641343813753254080767088696398674646234376786650235708985146429196338199642151450944703960091911142317851957101252150062658235433282330825956283029792014423307708313042347224290711964632915870951509166729044929995515214163984728522205024360221150116813276080189145069484627694461388928812041227984505846088986678283511895810677028691236854385710872280666813750501698890819293756697657054107561468166771179856021980179099860784902788983619799852226256703235275030456987303482538272312969834283959723020897134117194921726784288274396660074300379809352678881005780535969244083342008978616615918528876543834557943995801280067330671857915649029098925781865086932575491202161434177218861184253992635783374109593312621638532866601277163191849808111662729373976104020233479761599533448967390832842021041980925591930621003058551713072131172428896841380259496497063073970285220854971958550633654600391265024646704939381329895422015196424281643641733408315787843084157235204073516750144947797630103231593595670621415150786512463380823527999449694080696280605516533274318202341346181535073837784385042670863468117869356657062090129790541509705406740370601691417344361939316283066894215943704400807015609867353553973612793138054639915057976366638595975494250118053922332231248501021073625719651017526890252022829699770630211062911267391906331902039701558074076835290365392836999672349598855671983790089367005705064227240851062768664069185158772590267335025651100694869842898247872533859755821829627358598851149276106413926383578194088554018426053327208321290802344565868059935106340739745502503079234977835599033410179553347653141068697795405014148782172532366120245858445573500322734807216918016298277967413321693453283167765443008869994921124365063735776122621296068113184956820373171696765988929088244430822277736754284074011262103333713092628970521883038817491996009147876477630763412089357711635374044768087510800065702271203706200716285354837930505710945310647246014769592479205035764800663540100115078956644197681603531978798009601520053899192425630713827634440548427060100288344299035855077787074620241599902493797557301129708419158636140818611905426576283047984406033785715751829213684641125742402814110547535695088244878026947848606873727874364752722059256777364892297304491373010164496902040637151531045796706445825408655284976896255757208407381911301219597264427768718318390477997185077114132535886094973066625379716589909881997324865336526875876092988398626918520277758894324942144279540571495662761135365637884550308538451395068654733629207821274640390198702056359850676024550157975877690073414940876376862249690249179086450830688980967352446972624733241393196838708399795852529157699005468449160699871309755743411570945130616675017766817484714267234737393510976935480372869067673169070484569803435487185918465596371571632378877485100558290020014044111155765515201007384275551172687582334633104298825300649164200253092790143219771984074379504121800005277590734309394357168246448596639840845245972339899665267821910162063053493644812280188813484271121213554316671814334133713597641131673614182304516552373883689261823602997195307815340010525062656321796181346569118677887896128086978363049978634572382352025316499680592986633796446034074164364801054001597632567702572751471264313986276379106890262670180523143064009061327248922182995918347047084622994109327429524195581532940766543736334365905499242697416810224335059265902770273201488908244019903800635825657919411377322808875972910991680520712459301964726209727518669467554775642194850635685092677158613125368483974787564998886473113227239726469023275391841870818038765743237621562022609372375974867451372561466765911558704722722400184394387489571189974410732062616999697761350583469115944988477285223586453562701928395044766437736182853734522305618515492882034452759778909319300754071083632687084646135543603494358967588447982071133480221058122124499576547534147663158115587378806783464971512792266720660045238841856372858318207338937323500403081642463967384305187584212868749031521340406288421602899196520348989373958966008621074426985728000986172777784113858375698929362426478038545044597548077553597447228966875159284588646562063343561591752044899860832356215203895733604117748950230211879806526040129642718771242502177456746497804518825547795154707741431622925593379292810254100319492519036590960745816560524314540351422284489040148336039308027478878496595131275282857221418429366686481734997381221597179049472937723435114037686697783068050878987984830365426740890956802265386009711025440564510034979077261659748107596334680112591959625518024355147199453477905866928265105431519663246514672437155854846596765024239492443115349824467826790586903174533595170030502471012277274538278007962277164138825652074629981402809548595689873396133288400146970457978238390630697956524676112851962400399637996535936254263036560174415708161180820977967321268866629664781701489115119212972288287192858056280704561447109102440877778809262331970512002002790143488546197582847159562869471238046614531087096397261334672536001045638497882687810691713035142447981121816890924037188646156864118190121841290461494008255483225431455724123543272860473428978233047966046082202479493137439020790195767866924649703228356033193241105550362345217782882009311756663880660091755900689694387964548876992275312837030482250212322356114594854183160055874146610719114711387097647290572434943793561090850551234936434249947432491269524658985513724448998718777939987384576681804746054915083204520842144144369905180485087156111107241304467469893625310768741036461434455210586390386744563651914648493621831420221891500225991030426185833909364457483545219099843208788909102448723989691579303834681207272771980871068387973868638313596146400499963018260225983790924929266545507358538444836885902618324020217215763461808390670402110447974471090035944963419781413433348560049643163434193332332135168669283190580860954299637697650952416744339383195946319277644278082029508721102229913542982199398447353802622357477264908733493110998832388843179212961390403365132256625110259982508121001165722415073653193723509686153901159938556041106256454505737052565449759320991275351785696506254238506029867034204089040879730122815067643386416817520395677832256626008055681654096784179636914846717658204477662328688586730273132019438920423586558224422946067843792470345553831308611805080773152229728119080288664486431215859331998727594534357797082295977600272184114783928266977112506214433648135632492592149063585924463219272555265187383166050054456457012323005063974929642191383122823783973982586284392523009870022193331076470466534139622627942332258037287166192318316874676302372563363165104004338161879545975658463588275080509266928567808897849652315128816956108981167665278567548440651407029856320147797313789718416551894272505704088269584476536060573301184085971977778463085151188780701334030412344479574830245494933800759993795976574758978173360721871054186941862496300699545897936908327468612598174493372125117966716180340755393652059192354688055865196425475514844389454307783145107284003006075407622795661700866997344979308631081964446861757526528108371286764226193281677444910234946126530124936759056229056321719935123009432331526818456772358660796413149952642585448297085735019689534358737019302940057149786113937958102803295110292444829914739372736055925833327177482189339661925224705006839752708481199007471173490473163569386390665864240673576755660227764431613513208596508788021606109425650785950442134643394821320504812095745052159080874752618834739415582002046675275630379402043752421593186481006626172807936923420910979387594238716381223364324596934764256297916485603198772053645415729720244517789997655380142356807784939922211121311884670631468219826555286065387117418338124894394117235189718454834924951015359535661698009611129448908118769758925487535800706502813482083242649722753702202557998640218345892219395995928689179418731076252267935813778289748018554081609663901132651678811566852893021529580726761948227221725367929860255472291713515638657247641587584570138602428584198846825893281923372694765463941190312236647466143422198210058585026145157084431458729001009606942211315385353832310992467075541130373477647143630182453906382357915576605014170699681487193449098887901941914877248339979583600117007408050490590587363841124357721610147273050550915379714733549002653726965967613369636626751018446585562195610608161383356930752795095979766143209643235080419862848353611700851161137261886208334512653100526929386545240597698787233630277463138456062067410558394238722366300997614923144166695330258206275177564379186723402921585483537065100186287787077571344547202626600783419318782873401509444221458270467948200499074355789919566438274595816152755746958825207895860215840928054278101722799036900076663538756325276350412759712518612832190983587795725061419916856040281186942085549259638503880421212106137014803300406115519247435392575663599572740109316719615928131418580551899318935416522582886544835021808436760031752234587076813298936969530706302020058043534117299252790852474852821764046372309645508122936268897024690638478435419834689983444960088447652387515055248943928917208989704007377203852645297962610308698541480017328971296926696138600142363089372486699122738579302848617229738377673426750050210619280809450183568955475109724490632719132852058232471112360117633723129775703624764101100417685918711583497146605712225166288486597110938087212467418053271803701828683329319678595771093135692142881056568169474965190910030735466962934385848072869464125119999085607049802378594282233738493409109149423017495302665528693895672547210484462581269175061813095336824940483909955776948510784109321574156475847783922751197837029436487019563403496071545359448493223280851777040417318308840647417999279723647388674932796806508357489019902123794223743681727289664412487274260841853634304821389716282773488245664577751663253831422137591597363002539118915366485564019560391753781092841429543613202105642082375100804421910475450372591146231127005846676549619848252121268596588366098199038786998328219502939107525898102374487429269887822973652999209476410459865087882173158597040005963664381506809837942980010945116201379344402669054000713765309425952854748840580794731708394729953780693484604827992694544527022479548208526163982530166542432544837542816793894709540885597473910570165558314516367378172605796155108277658269505186808933403133646324196340944730357118023040007831338148243548697462016880281486901565686914660515481113410948916523866272711050232807272835218971182856809679389538467899118371228328677176509225182873407502388453562583037794429677953636229400903978936957586118023826989803479664361171651648075108272619872568111590169498680957112797546843851984234733336134957971974373159433967538249724924637689106548936028315945965649630578973990769795188146612135588473499659681637533055930523710520515759823088462515335886644732885170668518719876232728438812567512482597720615487406858619209822756224805953610866873807220508306230055765919490946234089801022726568024583182691536158291057227237096624547518600889577770115821983871848482448131323435985873587387827576332065297072293331136033974136259186384366147455177426321646298274259023943092120429882614110489596954386397951348033472236511811798306874603578512319045204824171390121457287511504821918171538292370534853887540590815815970443290114984603546429201772728207388278331665527631723139652729059705594346324286856101206982786634688777896482660387228072015448635502343001224786941825668481988593580718715332695723372286380866795329346231350293373260225367209971785941072940825117869983228697376290379574819557852574205782839383360357437887270705068253790867615761297050865984515525879687897646031820019013395554805344523471444207345072535898493398939204266453395725521173512313769743731784749287723891947260104041370068692721315183530836621680308095425429549797801419857084999377563815382190759231796294681775568530865793313511254623119585283260928797102277078039734142152174980391789654927037042297071730432234487045081226082958015805106151424539288272880351100930079631436065721594126662665179343071261266110179700495482468959075451479608976360085529554358622527760704355422616791610019595257823405043862033684878186284182899304698300043869327008752755810750513098686289600117546020809768040257096573868437064973709678259814377507351022412906949518586233952891657347944267883773593626183518122201674631201151613318978181478160633368251266872849338690999115698137984319232292776167080578140746724886057833068486619060971123676259804714431199543496448840077681841775070979182846904752512483388726690032301811683638315350412313888147373468916376461339013604687180136223708261867588935738495603373658653298146178388432544384232067993000883202493839976095905332676613751450868526628310683218253914261802542135035190487152833316289649193121946521180291942938243872100323163182322890775939892280271617018961766550611762849035146438634123596539258429655986841246225653908987992276991532523147238855051054487760113506546854088969059703180246257097751154944842528351428722592004249219036468305004932648363465112293716319835804137048350161904131379901578193829037855147190669143309527503807421350168823995777649363941277590558314473162693867493800043532214684269089620995106415344815356760052738405574525935643931546795371559053618224670779567784622636983788652162041931613819106429970430614039140064634170783118495895205815898031344910147072383921939450708763023167358276458722288971648616562580403426344703758973538880334389782714397913216848517846389106426754191364025340265527246780295240647899084160075105807378301106594487577109973715692004009077737760909180209045287979781399138946162319970613248469261088364694836011624414256890772217746142896893609562440811782497706725328058160564864659793476572918328560872271125772227626531863366371753870077362012404030765081333911767678817004687788293840944085469565738426748838405570371367890710273073047643163740579921430966906794494866495807471786453860406585054636001302237602995016620125195402298427226954383038480623284778197198944294390890531717673670076393203832955557117573416061670835221843414109867203824618960904603593883606054571629826794712655337936754571602334763163824483499899052441153805187841896887341694995235682716972997608363939686600991508975333694476563822497893640133913729447577942729573966354476485120842218594254385178657755349339051029195379200229847568810018782973601969802679176243819753229305407912018292357042593520676441792448452033489172850170398680389445578866158965649401050115158375559299059632578518526672405440643634213972804927516778182559944829371611421511371764021896611140231620670894893981188354511357309507662971180157905901230906636518404742317604759803940844880003781426389877967252987755962330098191360697027270629241314197054210847692905148360798169291313118631676490138256325518907024967437628041459559037919329893743568884799170894640618231215521980705552808428322357834080233121370869604403587414748501542538108005412452644483163326186900343837617137338073460107755481646609669858716796201022605235086539477751659909933254636826527366106984071115507946968846427779147140735085395837384511375865435437065899032015946219541004606341653799814645438065497681128332648265017987096659593187742207923317043534746226118811995758705164567852990883602784019578732823298391173480760468322341123676832713322755937602381930470058955115917044637799551572201359194858268486390280453592416465372576547491212040936757058438190193585118499001264120101732710778663581621866876739815972220404144739707998619945091263639457175186966554684801032209373232015664385017561614140702376762060915627638154698597586297254425854126305208782738105317722891798460347506086251899097941605697306922308799445594445961715874317666570603918387765167015621024898694154199769276643708321023227467847678524192699797965984027816915084764298148222053503701307841367872196780774751878910440650950562472919565925913854677720546336492048656025817560287692084997633405338088487707559489257445333683670465063415352185740183906576511386940439147303188951538136676201119023481762825848236814885673082983702606572111220720931194946923103670151068386854251367862829885054457241472882908788342594362461108437408458484574447550990391391886378945145802452818163640793569865461482421628268184119811295076655128860216721679149105269458887536654737535797883475632938756278501179812039041582381223357217978734139092273797042505327440917815306680314841041108604176416215599914597620314139697344590552144203360257665070203641948033225100647285619376723933454594969134948164967172752003440257589774151034684282775832835516436412132094704226630567657851050346188140951518289415265957491603428974647311094824951139618686619886140449925817658346869919579137890386996541718868856620523269378026718190326824381129924962280925754046123613442015851394368469451571651585554981554363431530218430097595588129092493569493288700168825316151431376123810115657465068149674768584672321862916338665360390795430606520344261628945841903985083468320416296732762543766626890217724518731808045219728704939851323228384017375670026327953021022651374809545741771910688452767533088963007168444741554807274834416606561240279918235910052212860612857783388890542322703243967359539016570231777676299212280336905777437294228142807166989804876144843862812830855573030925310980346253252127120211270452337301500379215424034567781528012482224979047924677571819015476809647334717417779129925953921745828266509542092140897961590969897369731192689935739814379792891032135537330140647356993444122631542702827380765670759495241665327250935638394197414762485779795145541596850884582737298993943835928022491530643562925512638823324878798169279232154904953030309104425438067231185886786207835952066884096828429759954698409463015490810105321671446279889489100287777528381643271060441730311075588852910274184460913232698984502924622986751287034563074170539293220380975960702529969502289962378506582412883923668474888196657233816865484774046322413979965980007441720141139385247034766507276672349143020226602370626760918432937262979633476353857635684983121044767527278259496315979708897804578489143980853623460964919826901978184419382487797315686208362760306653062666891105923211167841899533510863339542457404995562040579560051315773864788546629116786820893764133476805936095471073137486210108238713109361367517759255175547767610142793699525571332725016595358903332558961550762629254367343221542097121021208965674600860910471540445709570787279840619166166766882078673207846663208314930531726770983663776832369603821538150512795915605367369254302021828274621990100540897377223504347212194705570224291185330355703570165456624319997881263071502442065974425645585401962123775394715135487289089820333359489633009139443480549121328388482284476585124431684745528952142851690597613771636620362324526492561802565053411890398604558096210836222193612435232795621327122791779791393332675865692352090326280762358663967974264252681977906871820784251137847030917814329162907479637789760899266812822100411089642445038974120270199860351726010018798093026611135160548897343664188272027561987726992784869293514045323797273492973999998876919204656702746583984627663043665231194263539475964891034010818295152317953915984112350417367003934067084615345381711000469220513819861694167372071316734783193598963407097031064413511041679688013545152383319016696552245528202418370472228130991721862055716688070906995282745946498999786243580271011609228170801137187779895306939083668049529130840018498757173815406396038184229127968552618275974124684257989901153979842136370390823134100768220386115762660508896283014666310783481774032933450500905618403717982059336698086728650228182941904970625645012790123120823710982492929895294464234659001753253078706128286432782800976506025121303891788863023965142869429837482000434363333881450852379904240198281424746951879677074831463114489775674273607330563948058738211932237882666071694554206067666490629473464562960415054517209348382684983235797078090541724161947657808197337348486906515550904135439734501106573995471861600721531558760625897963433491491534454033431516693697494680565674841485365183921173940278825342808591963000857434715677240498430889730396682522396615174047840857947781229542550448948188161937072842163152389953648049074361024487922480444080155397104655043329137434967956271321922835346425712106688702050295142216106019603838254551322567458067094174307336732572102424902529588789942081632514737718315253264400685374853707022597209908795910579357840334433954016551019483329276896052619560299556581288932064894293372074059710684420174742438995586217180668972261917617387292991082799311278570855874928777636713352635115512301660270369617299440324713058011083563694160417105405630874705088779698934814295133009327000977283264450194691987365299201525483950724380474106935033387896203391241589570302173773384854735090332436663126574724126675233315319017112543280183245270061071969062878900980236646772642381088442356965785129842087970479236879679020999947542961681384283703723588489314887899013671049803193668123945949668398843621171310681406337953240829083493851097719964555294978462704971870715799896357298311590222176699731732241497984134510974511854674049334070860335736250178474882793481188479362561046638703896988073320688899934906086663037628869763081327680308131267574627660945771265663714103813839899258839878300601345649525867212014059304580462153448206186157362785608495433626156579838569457253652746088976583529115239586380140145242947262620384383584547303910816270445139860283352532779820334616494221093973651142416765902868072794042619272820422946802467347458360113178771955943090762848562742904501619145036271117818471025771899375084334279243984384459396908925163317119838858396447777294095667193931817484133042165682936423215782443152426370142455802657739769883032601834829116009105662070191936187129738322325072638933914495124405054074706828231741866087065064226524288530945763527308674187543993289050121819745425624417164677440392451774130495980789427519307405380251882233858858804799423997480395332952500777599949488859533538137226187173873292298955768857222170514876520488494038104479473975914663220617320877439227563038321926777537834149496914265006267523531656910305159643488147189224385561014649825548319210536412884790495361635701894027463551943839154834695605622078129720036873127422268449667913069070973625969003897644024105108821616339822794947057398826267087624750498074874967106749642351016534484776980058514000216666202267651276954240716238210385005203927252899841487430863226991846943170104887138231071271197272236489787017955085551710909411067892034384580568377456630414307134470553159045131730085723747082079250307470185919284551652001439280599523136018371367740090647250902401379805813329412940661995031156394736283762384765805029316344942610524870249402697815626779785008687385299257459864083753728713659160730870050118469990651975218546441853859258275482228533704458539390956455300128871557003843873054998202454338231227994746571130030409391267830512485811455051054897991961745221567749080808776544755217366816371565408006190350701472786761649645683181549407018795881561620630782246186515127052073137139239883037953902105558423267552396982918529836435871475910216981299778866955334020176988731570783154879940610734312173621205644934926383692371957365600191508886973946793783965139066837246169307960958812901012561570465947585055365836533920451300786501553807565345455316173269802600282132180656466723856713319329040121492019249290417324713434378128100417094367076830967136895568786654668237177423814652595713926742670734935822480624831434380628873481501227037064851640987418118942023447710949858435135636656592361106106173286300139615063273999928932741292420677391351313164823404512928599977362310008549869739892959898019283990979306553383690655792258423776027592610805097358318375730273406021900919720166931652076500883218887741513833024942040147817127827680483306893361514726357393791582452013810962717187409381230259799569945696141595118311696683683473720042410310102626559829735781063872960376648715275594970213140856041246386558177813132372094185775283247177747465958662748177718484527612373168525909345185445646617968347589085218690952466711518801457509979848309296064085495628328378350436873648022102942557721569332588921309991613616889954922410728851873979785672770995808076994122605837196968331422819403300617908385082609195695497958236317589189764592402153624758148808920382738753270717595852828140347092670599505457926669963085695663159813100557105566879675046095151795964903373414302761641228792235618842889972241936079423292523859148954573087291247066523852563962168528988029391711681317670294378538838714405145313817828804598423409360657966797065381016729803257905120278614686001646447170257013239188355885174929199783155981388667519997023107963551295309225348074503171841244837484443109709754076112329449137345032507433534350479099673487318804144724847858338013653801026221286029732677247910660513667112933277150039567916199792745196232662485693970552340344634626001547111085035406981654211074394989719197044277828621807925000522315540282144707977005722191817448034500618312437375675356353609857607343183463051119470679170995447574495484967158870942395889429427339080897851488777163176502697956563110277855224596075903320200630452517181945631711042335529261189412956704580100704871709388156119403624914789563733891465953074959619713213396287516912496613918241275167239425131645958092856984362821759246738334343129593747871885290665732248613913246502524420001697214432901951442154389536759149494065009768694754951327893057383220431744279784553870043578567792130213509846528058493067337968400274344104159682705818648353902868915207599912084194584923393476673609623143944793572817014187202142935373755548013316238934150394554726751381443963627114999109012399565155804576038739298944865586076610284746880268072008238242718853632995920595014778662619665316970430662328988446766871234506335228687694739063948160524162927831549411508932850918856156500357292067461156557220298453901771883638463614672507116678298755275455529463979254227413545764570098933382197960358958913182681562309935060044985232898874208824730595309049584983421535019897287450870535145223104739414337352596349812315372874697058712302115725774307351640300547521021812311934512374876745439745741675981450537084134011382939185835340713640913011061499880176986540281448937619317806851902916119079073396146047347712982574590388186529289759277271457586535528092056982249802800178469112401075945665928991229121542401672550328897143056785234646232639836068326791207397414934416354481403079270317987255658803476513828399900595362000286332341428768901992386223806518550830773411871073271808561164474610215460229534373457685813768568576936105431381805374664242211097273088014740218743974837489899963580589092589129033449945559897377633805976871652901059438451822611800127796460865614632435612207665481373629387409314946098815140827060374947724971010970398554917180559198408472093779302986124544363959653310004405282590784379977122883164928466245105960590764501725093468581599446076485410917704194334556687404486733906791836706219453105921491558741665112635889101452758747885595987822271194745717169123219446034790250845817213160882293814052752661650814549392188874341404688563910764983008464372937603764170391171168553990611073021828044979308128154555166639479671587972085571441559219034576971615385325777427678301659047741286352313505164870162621607121542047143443036030144856234374484388867427839582824299211501658426630623424024869953544359994705581476122513256233738635054318702544470785290498387989741918195742068205994904462754406487642475075739335554815464191139083059186162242576586628321807579790158382415095065154839968071543323056806437649968614044764351479968952956727129859576985213980987774358538864590292030322375628140826126202377567308233704588347666018510255026648951791079493632729463138722901063057561545018795487896529817618861506311014460356002306429070041478887984324627791376947847502685391450798709266871268474023794884070633466118597816073618004365542152703000172066052826675452463991559795329688295902652784562058672027129614810794725094605263868963761681483749262764273672133374451972986249841199527043095543213894610262616945025873092088696979984291656153157865622464885441675285828900876231377826170294266540499400006071890554107641162348868037820470897017743526957690635869622439394199880269002529903063639592540729973341434296161494895922044019197688770768034034887750492611906863217162107929066395846448643954241125695070674481131944378717224372971230350469137998051194022831097710517446246415528889858166949297747649159788423793979599384913087587562088733302379998463425192536706575997074161076472025226582538035449806526318817468837753772662407619250091066189935135492924688196219159285732973202562049986447515479937549404184672020208594646804732473776023945418096561879859206534273354536232853961140432512066345520011202888800500624518150912777925699112466288221487839942488154339857596398109344924490256373153279323855440726553624587570783998979105468878233852517886690975131739939551259090282034196753077206742022920785649792501664408751367867170533295190627437408141497829654107586849313525466955672972006118840901043692838387977170726483109133414938004921295714257074207827486857151463315628274349094252335193666916371059051344972876880793042602829300400504845820269321333452434204487214643514468097915673667800822756728333700169190615997710038307992380923133864497697181805372410444726567025195661283361857093841010254655455846665533653633751999148369003581668862052640342800346094644861050538415902540854136945723072124607001438504237375358966141581914678900114781561185761140193098232378351908812560802976869201526203346566071915281535325472039985093602942061653924688053085759771049876061875942356459516600400618635002508804124534006003151466527426004308472052490591198963088344851444474074984375037723314240670293784471614165512738469296044066265590787819050788219294955170202312394460272828594136933251129531239306087748613865599036647755717532792655417716730183838178550499567464161487256102884179478027442131084664475294724940680343675505034956766032610688161392372076436333972924144002149864734075655614047841347734621903070150028746955369841646371210123388639022651315292989581129984579498809831619261573472511035621883539734689964398682377501969055168749178397332255729058726940665813490728999982454753309714839424807008673042360004730682256339418105962894271122527638598876070136402498967496837947309254884626824050629798899728367781641329086798616199167793085657893165226444011035663962481821509631004492076704423963890930375051618606955097113426372463543953360423247298378772746874107141306380745681130207503769472385536077445785186267442908432451391419491315688531355365422868508010938355599906072198989571706836323807285644607891205534911309747330768674302186128007252332131096332247723461943459216154367292366693390079225555457549923650706942842607762362178631263094009456244513772278677467919099283792534471357282023895242490099666277659198282583686316610531575127035058836207631169138288661625037414519888299244535586466339120217867677368845607920557428517790758536759206127836797512920200733616310428418035975952272762625115537755580491120406589890687821187267176057707441705451766727574340352868304213802028186058816962471021614373326803465194573853155422835339139975385721025686392344954524075948119940340999933575127593749451076143924611077913090404903029175704543103040095290328700195178132601398872375564114991024837422314627640799716311989696267504518711208329997115030513330437005701383114957591014615985153247407856402460501787955938267738030071012376180450292725700639341137670095283573640418608557959719672721368837622588587032364703968126683495761495171152387122729849060616083971273519309420518315495581032344431197573727388789952980382727701084580160141664706990672952399614982063572901688104843904050248139249314425984799292047867005694808376654593420175772194727836761753973175292745675247536336847619047033258242965311629270939135355611561859543321256646896488561116726001734741323314416637714763003890323289303945528211155912632171318063401822430335486626247902949007771457647111034394698689923681443861711657151050801336198126518997498689273214877178076033805140568947022019340155409781693954538904250602026457336918536443330629696053525417522218403629538323754810512037982182179355060816487330965194479776961171657717478798164041811328498342829625142531566711808142213934843494901179699137742825939309943858005528911918504911567258904575988472634049202213877304531288938558836291721999822010675387377618529323921498625009297287866475799447239157604268229330913445313826250378263023946237851334758969870947542742966122367369522951904639993119185729658674451863115484787793981134125457543392723702668648989343402045309998059943381106677790634503899786792197411215853634669049970684565391834611570632549774343990287245455276889452402404392380057124757989239861720143735460571592388635472169488369467536272836026092374988051514722049475521758818131972565418107087757207575147521687662401880927594714194427113318835394986019008151260251831151038021739042042581944640976354590447789839651808701060756942622519265158975383853712913684712402467148849736309240826222314603645527970876718308794514328182395891303661142791820469978433784372135912159967715009338319022214874291501396224960742785798831481995310876982874405358560668488438114663123915615189649855642677920121847493073068809532679833298408414537155526614389743467235228315883290041423982738703617199211658606439636630598099047806025300404502153682917375920459299353603295240977937583907656053692400603260071158318476209250316455998445899180309813414014001757307006902569328020748854723978366439591129784549847664860801503740199786170008943054689644754742403584172630907350640125201291043173249220620885651769983000216847218945800525020840911298174141079693820551169490434355242041553791425185070324394935840706889190822653561336424025428567583984908932968296945553578269809660521546237100283278170733234572525277898651344353454871761613240102108302681203414817380625740993187961555617672110099147302663691312625957657259051295588441557543066190707718002647237816281812485806511216164568566239493487085054707032420133110690723045771210772359267288938295740085283608728345778877365792251003975353490692244920325749021613249483958956338980565774222480878430826450449543615599390905902042414371531893557434696072625262168569244870989263618136365446752067129398582318490223719616171362051635526042001351806238347331346176263921201386368399820396118728893752899560852197467693382025280661484454596641192218571378650897077745463969278665489266741254104780776432005763341845522526940612563332189420980313146701225814883186569977599691142094033062908286851017665591772973324534416391913105532322323108192467400541822859223276247499631469431008473027282042969753290665817115140200698891255418866975700334630314469315817570824000199237630366242750787874161008064717899094777779943083222464105946232191859438395561221763780524852818315625277249712631784131502976905197388668961524541087838304081444548960094276791804477619118536597852785092388057957063369350123311842498278778433586922435704385956871588105186861354521339150552653015452603063045835540675654049623821090016479648902771726592641358334942027458096789829406334856057078272955583679694183467166962031423816915528834340430405175273506002344401568682301315163528138596957162811972338492112164858280847302695449301166960039822316389897316925059547164387368351350197704825357102195960535394555483987125055195563413870164890523279758238526963187215932158291560137482548252660424544687851573444782824074978210888177487562932546154512589123566318605949423826759630842849645596828249914671552646162112849470689416063005049779130337436619907474034953838275780692113767624122355073889283480498553566268937283283990326297247626083247894628373019397283393175784792870101985103245083164540366509946425374779398919806470340846711225717812401602826007938312609380072965369298636946912587109631575004432011981820818868274152824461736176142390479937472448114794584215565565353877837816354170792684731511180731886406770279827657848980907875450087911819041634617826884693289705345158534146485460430319372374730458505671479292704574330338008724278478270239171521219190708399446740384467518696263569555766275036776803806407359931611206677741886847879017192835950559127159347889079489026179182008309031423644513606698316983666965011535573655693595136302090589368849649077675368219031170070534470780117724590480694249374561073251108974331734918814665366857302908552875915371351929374275363740464894869005633003236253029213474565144694883559336309727302649104230067547231963026511177820157860487581040169456905516285097905579566569950567325615061037049006974478919961651043723790525889736800235957978351168929004465266413283836153295471585587420437665880033625697080699246389494538008964554080380099640225979490787542608710378859236980778315927037456730058066964026449993337318646934312841445611254157644083071920484330573143455547088074888852318432751754558195238278913589372453042001362074372965016326658560563274980217119776433357540407442482132712454207192111717764538228691755030959523341126334101196615175573140927053815563067100843231162158129918731182567342290899408995285655686651796049619507532854437122869989500724886043188755288899632831689092112447286566568986080073133349249601414983075275919293938610487159909253987960023162895241324230585701143158356553874905438189381645280657697180099135754962985602919400153943294763489993678122908287707986630134979735777104340663844081200048273413199209346614378363183925589518929137649492508269609631045618179935209495009376458418281536379913573342360439096285164520849657982128092149510911519372526479107415011391821831840587674417019002740790513091493201786619322236676229284063122331873476062513699591234094929893502638414988817563605988800465632153559442191176418543848099639568802670439126212702587209853721950247693737482833314983875759971263584660031946022145632578759072174337405180659102870610131999078493783804110780176088457479754067354859352482960531947068631169419381238732203868708484278432471033198691910783752615405386550429743326948851321464981982592792201113895268401657952710252838134105268311132454144451194818310852387660497066644904858243417009376824328926066856430875605910201072691503242385919958769907400958717607141218958017918818825415057529363337856936704013722371590837937377417809810643358034269676719023399695021826505272894356070076479917136947252813016641638649349741141109314423576419831894399763683535054136673764998186571911768545279135206350995866971619087965593679053973076605226962539565484260288350040871288178055914812373829692446956868427815030973111661810840509810651081049554243215539956209890031381377667220741182032690933175640071808327408972879709522110262311533480195030750051768256326522752894816595911360541843931173573176371665133365278829168733598790034279071852422713125978092791263874544500485950137804145785720834985162729943549598063742682366830293529608748060024004436717646385468953147679828024708891240601651391563974383441802903256724338592824976354275600904112533602506379756564101743770967991799708825726033695090996458309569135898529089717639665284095475248783447473485096425298203292808021642181149335282491704451143998517825096808490509193869793396776383507320577360449402460741069912140338176046867064117396702727624166900082511616358909381087675803884577304516388632745204889599207100184151797750781391961068069547638741218632049394002817857722641189907371591643066331803837848180026272302990226123571022844479120887965672344468502524786214443288048073564759608199042366593627176463331784812042880543289976948619614988150075172356634055396916977776198191417775428211439793937785673887579891715129179926653397722004544637333917807414519500532380909852956292765368159558693810833444544495409241808814345265453781190484894984024622464205596033410674694356349920557302830679042514540290531930872126292599088590652157668554922879964985603026689905516908302836423660566372273647765632421577841442872589927538075013981530769917609349776482396445067829559955115011598194192761298637673109804426547802792693932947261322502830832559995184791345806661505330882078984214576128162217992370660473257226476244473021010573959275517494659090995914485324844718258094860757414308900382651157206809248076083965166395440804911693810529441174123418486079946826756769822392759825208287907896538057258527209989406122028839534197014602575342420745977375601620405070990362436868415382007311068633662137048347860463264933314505046719702478703640613480343437500967702211781380347494849955435650555998317248210827435310072859326120753224864567989982137375388667876946563483122214830562080147842440913176119323188317078606392619678574232305701391249104067548687138945606375772431022137212018361835469668774789950090637231343598948621626799803031970434917742820220993027770546738776216020833143346002619180866171897481352649967647605855108641202357611149556709163785699965379597529474897685023970521852943051960559937656570741327075659402775978844311681355117256677996372067274239290631767360280763982648152165190853155410623566143548667559344086411667928348655574853771260329629510091571876344552605194763962416574584652488196952444500731428511996344488146867161975515885176914701731990295488347598543305451044240930987716318306659583530072812782609038975404714152093164215924303213992095675457047165330844148505266626622988091006283777041431389978482390234642201082720212883788442250027216591374829825894045230457781518677862116661614075174126297079193541627205365777922616928622128976610238097986293711100712526011982378422733627360849130815449641322688680750853754605219562328187272742257109968586714871841765332518261258316868846072957328182163101682414904641451093449512677055731127292426444834090528108228914436666116850549035711612740885353935297352736895347936039425231491815358083452779826010553778083294679484544375520988317971582486723158862711750734466211280217385902739785807544418267557207163259143523963493797686748405305694739896731589843969928779203798824754932579425662953529382747066202542264705925774366885922635112876366500092550607631386456234005907018486321027812136560771751822142696932099967704213135760911008254681558985341569866491781796497852807240510916188499146577162590004917323215992947715893941206702861788733434843152208866767620564850985354785695219180291732192161599904313689463029260103990448866248198077509826854479229978497795978405272148906487573668056525512518715389022343273801187512511082590680874040075430887089487549959065416546676485511492783986504740249805813154194672364016950928827263957409503294571690617826685991878295819188409199042504720524584274500062304937493111636745187360978496944032752023238425771336398892083341499042349437167289696046542249726275508820922366473868504628481706907688311067375266232146162078769474370838106031527124678981092175758250280010565881973830358867905445883716010225241207464280254097946169222817544577261585545680576965336899390204788791800684711345274782255997271396405510929624966539472497548779173543609971344394855482210885269270970687950109721542947189071668313154850182896659449033283665507211065369924627729541381193765214625742044607138463616639075418339358630905533473071642941840455315598611097686406656980044702723309786295259374740909525167427131079948577260687784019525136158253780057764146057397642570740536558750050634937369868866243614328837139494105928535684610547398975864429961958153184650045870315510885099323976461096613832739722572926187810148668062904326831396770699741195878951460621768751625739643597003097415585522991198411231754808069167382116144720016620720664420793459668035268885216389557233064708559737986533380395425346786214038362858083569968619113564229157683875389568827170956110842157140877312754619091396237038687744812615256675908660417138402570147473637861681005427081578102857444823038020138059544966438829818145099480747394378920972765638172692236557727994244166147242740316078727395961209722290578298613419452916060858896542934813632826223346122532355244581223276325354511492361528858513668693911886224057690593054659571836137328443470765092782057227028498238155540098778555464629095951421730636827809165729700822881821851591826598172072823435727966371856454854122422413317457785635459217648072812935347286531311508636109040619518885031604909346179872245831068069061699636487981958700541992428504926896836377387813116973306703372178976885368292848615714193618827319258687513718671420951698363955825662756562260772805504153789147461368390311004459861217989904569641311542368959524374308879275856537847756136897242099404873342928417883141630470363691498102462289911789481968758742182643570690841577581471523977360322942145007546219884379979916715551694025054907604951354465735199778453644198091005889510630478126414693309628859411357283994113692974337502468106495588737500601583754520961858554426852668893696661045609147131105092412122545983207136371035792661334145037121587471812294201549229626831733543067526846814468380007533373051639047488599163570746218437287057831647949770434344681020838322186131464394771394638556552173980150246973122581721429869116158403232099307949749572363183508617698037885264823367517978642619146927514190887703935285517760913561425003119297604003541425075327968813338863798401983760747825905727398318268786629996605960116248867047806386435807417951648618552637979086208431076466387007004070060259181113109536039656204289969079398962554822406384046388032877748941818444669781659329051843346588925547419044372371773642224352886060130873981096696653963514738268334041311742796037023642437480450413276355492416800645623128882903533848582767217507625269182284290892901213116555511572434843328509367974971156972299763081789681687303172498738761761544978355832093893792440594818817933441179580525038085476928533182564892590980106609903501124213321810422056936314215601092229635614270717252693418430231333336817839725317811936115470030776221608404147279579431184454353922567495663919295849711420277656461326111726063815103906133693846118872962740986543425733640850056353956955862288560233422658749736596750423354082038883896070084223701367723193466793286874742083259423363121282141269959524317765018390800067754456343967340125272366419654638138007235248787383080436800725142480184092849949562307202026435077014909078629810280039795805136530760456867349262381607840089456430955623673327164276735674190716293211825377045191085095677952590377723179261673535040314118848849796822365547984265410791498018439397217598466880444422833656566597911231701861550144004148387020892225062612509920774665376877873489289555160626269680546724523985178797765001134648041619288124891572618404950510100462185379307504622416644276047502668001338231583842549321577809486352422917424759565887092532817530907447030953785820573996971154721228864228164602390779110061771393968820818340448935167861786577892241303222312903404289345156915007643013067872180771644812562471357622709734961912017815536594395036078713719255973054137572676039064671277032640241615101612179531015373448443142563912355861486180329139382990996881061208368604645278352746239312043006100909132023598752618533505480145570293552385406176939487453935129885123498252359949049024427756709916498043768154320316087363070859222419632236875312444727292423341195841498052594763780382225576806416379107637619844258307434342986487979690805156004506643057505465280346032337175546217106225408010172964844683223232952394616978346256842068662319211628083790066229885075794780495233844219872085889377637269469595123953932465405138704469104853843063658314280873993340155191705705296251505369519424397193601719139366515557408698885670389180441163184772313656698946172039266467350132028250002156218398518008934280232680046150986232447755912141386643278051052721865125277242694213609421070886920395970082065621842983651041088411801760181335985825135984320665772685017486630680230113569908763612842099343785827816933161640569675771964233319333402362984774578055155362406942652442698723888411388848853248697013598011619362755638841887536109418409489515617462820105300845749141132800162236402980050774305783864924974272394692156334190116618107291688847566832276579079715411400834589768508913241255188861884112579828071634779030159945343302486923966106621335724548523169171018958876336114653107617306776432939100319070166748331516196757043126931746142325282406897665079338097669769342088185613633692472225644578593727409973125842710059398152824735158859509650725035641063846071064610232706122178568931480921417204871081510707899874879307273511445305624747255098463859961763780163996555386656941860088819662435890479591292091255840267859278582206133714057413307608546285918535751591387392147411033461642224194404283112643366198149296853797994627123455809488394839474039846475930011297008439061030114360481635029984447857782401722956075943199033483956290490189540707350009238533598371588641534463655591869791588696867933891778441047247404539369171009441476631438763314211203269660945940472504628094811719092876091868087049128687235255047013072557093895182438382543837700364905531572549992413147896028161848311812575349800191705555581549930054423553136135644302690720665400455950003321593140362466004280562604666978606358319356480947265815860563617151382737194369819062495066737689143015209457111700957660950893602749130832524369121323515391830427726727361394501208845797053874581147813887347834477753968382588953550830494273064749781334761470661091122436048450023736110567655308173284133349585958200891635339388656421447830551365172870440653391319970217352318066182417556346276538581606974837997196324103622757464167539538940552012917765366044364559071618860223870669561884663479636370190881962501020538074238055132641462347734624669917185332049639041125259471209796810273807295145906001819679348766032855076050183514712956385135202795790923957148076493035795259078435249630113686971537548116695430675653819089520362838084470720492112141942215364050587128052752989029168047042524598042788652288634177931776837373882350253020748812097574244679089487009861466441499696826622231228358822280940480937552670246969678969712341255863411035861089003766140701722134692078811949377972536172872278248311970272920213713946421409597944537484131676087068939399237179634872449616366927205705674690202940090969231139168132779818576003642255264063017164481654909655736994837487631603791634023595913720610473467725686472497297695022973732388982743041785990601077328121590892536171650670689271627366813841707142737079549271376940414169898954626346786147952449775663446434268567668561067933584069002701566679614541258067767366573552203996666400813796605531004641276227072471991847420057757419187385277549032893103057477444000096836499363213122889416450725830910923808514646785883826830713733448409674448366981889694226108130068927390566862478835286718527043153295139961769996666341725947544673600592688063021010990534628252693731122176729411238805169018738641446775223978239612722888078733476595551661392144550599690208927827158627013973481568785075097671551531064383209949555166981816205266544149193472397162017099315331166014729932279844651518933080325684444929656511169626007876297280048183982258681457912665588219779029844636693117714616032043965383036035773077593463572079211602177846570074503045583207983612719083201559545915877779508807932793267452227948231121786295912739045318658843199654027665181678416417315804376737926385252280773802514155459402285691311636193258701102369106536780554440869896563960363515060573030037840246104197863762330209693663388700595908978908034237741714287896952771168287706242557660133854705564842959388912536559573836890063378960763980406217760708813945547519594529159856997057894660686265333290408163192021325255974002563642685763296714803179059969018304005553707040209749991370533285359587640279484984010371523572157559793719667175801087385107449352178681114175298882064536551933118477020961950130154072398160006828202005709645088829974956955789334098696886170949295077036001363151473329847475797096109310199348202358445540188413817625997523330066622093910482259521152494825117945940079342529888162683529787326595571206873655041259254952921645537959669162368692224699341327703505584573428916099384783495663273703583821965278914461668018754927504097499464572576155733600641741462975954778244329038849039177543873580919953214859475904467520142147071929357665641907285246891019552426856445447416335706406280136770436258773214489203117503079982116201711399673399532834587239254062217922277253980214576766333945252285978303898544971404266937276049587739967235158330075248357313032942660387507235756513053708356038112944333337900118913280960792785857941564284506832239076257020395145578042097348716278426637612914658259914650486087754982000721588881518542694203751193436244505944224045926513610164131608999998917751862701543186108075808683924836243369768859828101353440838289878274610762434553288240596917551808505118466458389281440295650212697302462827944220859468196554292113111830523128268861595858051027251291403933977644839025121271851212918428450658763660488370776809752596096446112560805834297370460740364698086402113073300182420023020639263053841451068285682744034367059861422642235338208055949011947504609791417836923929182259628030169069796370732608957428898745582821370865367848929771361992084403333555319131626337871298577825318170415448158961714624433355165847241380015376611764513363459331219336865606658775788705967944563274558716957908507516461325499212471664797746211619694550248375743920185709668067150445134915466583721702214165242380256374929393281680780962155377088709200345255579325700016183718630601154272186608356282443805776053756399466420395038415935191571825195855089508778748163033474003186536488690244695475654835460852324582061205669195111558019875494328512900889023725710476390508038349595751671571394076108782522390214609065551565259691232026153911093063465526620621171447174745806945938952394463963177574175073328252241641582447902442157952986365675441348691649964978610910217488725813100701873757024665060802784207819374747486893684434128103245370212657873946748534123709183216481052470683986280369477403884395153829259636209760164597656996819810901197731747048214318588607172716201894928225564097381750153878556026158177966829237910461452736864359327805803923947583425086630453070989462916815990810487724300555490163120812572699854385066123503324448163705571005092396117691772169614628970195817878794339094823463035980051649540701625315624237672474958481324824684935000343849000897560159517681107550777451856817299507534397403799381994172459055460617890865308829964214190268612007026993987351570050603208049235928042663324241111632651416548840921595036420050459038965792168975630169988735468188113553812461680156664295047814557331065625531328623714989808146869293959962653449655221071856570586029864190943101914812962814106785455643572392294579646430831908393091940115099150518967309791571810800664242422077511126424659633624287718205908267787274781765160227585865507991763831638578910167573085067140516292651639160644022763059112613415868977855760898014642035718826919786718890784288181563281567019011580327974439076815840584842336233558516188497436436844503995983390845815980964166647967110313265210962307482012030440012344453656261102021744573078831033756270314925348261390918656075694657733026742501835874819537783408570223533531834507087305939241626510635813696304563383093982277453412435779998340739270057808711532507329382216460026092674941047299998271264706312386806586799889511983993086837332100462236583948527107606312212211245370687175738324744904500206894386421271813481492342862050795044874496738426734012362487447943114206392627374080199254485732476142126614516900767642748514352309820657766788385866507750971958056224236209855560653894572570405442353466283544769056644278078767681560543711415184457812779140715456575101878692882864187465876241040039283158415546129736348759180501146001018311372066055955545109629776114276320474736064230747178742655847892443248621189699122567758085907922842064751508612468190966374472861992509463054485237044312986700175665896818868542430088978570414551128334696575615238403846462026173456494170716018171797873267495308720039185310670053612721064507795263382942133437312390203390133018771142812079039670672973094236581290535348112084259251371494993957762874238072807918370630565090261222994236338633931418815932613115287964634351915930135262561807465501559183852800047352207216689709120333292290261443655727635059103884596068340438551206856426779607511110682771945609897319874871006628219309799685782621122753031204554548540579081126919391799898574302526913456249376317052549593827112246901029400505160219610867308499605575051671142251607357091838133042865729241665069007005325828667221804385377872972756133265993506651328048948790572446299649433047463543898544233030554310128136765276920211009624024470077045331968170366900109559976327494459760940401248647778568756595645342844875307268904881467872348931390503601258328284677158652970965635243750901359491988297556890297539311613261445042085293905946422618598721892986848739763467817938729228338577532532753551324951163960098781437824687381967970360842840656099269552695359379032596050964780926094755722809092464040480744162532166745510178536547627050163491829898900967368030790637360198511072932502849195836074755616936628168829126587217606192118258421022052151743549036582948296525855876642274809465748426317831932123757709515252151530639079135313566808257903488835928569459519562690188526378800417845949405330495659009822837363976881877608900741027817901074201813110717038949324656113356991261356622576793671485311492966201760095529641607105773693247800332739794155555477169449407353321295581735853757510682028765111314514590562071703540467181445071364334621417322646146106347459266390048587410474029696665167130846978430556111869737572950564943478660055125718446387726943324723257264744648819521521173183499755111566799529966475983858785647731275849350445576065292961328618107415881637203706682007742454382121101764541819284275962428521258253849325409700680716219404605138583567738073853494088299067226250819553951406428529901189555530464123530386417678716216762703147375166016145404541525954742314167297423454896125746555946005649478132061396801121272859237600694191081092733428264672806441224192991614402826074381352937877358550563003811781967275615530576924015900993543638838137608370236819519115610168459818832427576746254825185387665693099184948608949027779017193935843316504845875982571536595855101471465056124421571203302418391575949965617324020212003578905552922789321992684590603422411187683698685872614356827165372974819119981030706673367489387677653461984187252090749027555924702969309824136418265065429279999534889982744804414236959760647731328382734385554369502886803607201358307334491740698469594174435341886168729963741968389142488383743883550389416884700459407920338825630894714767922540284009403349902348867230305114707488795470870311444651283517774443468684340974072481511154859828835035243579295454545705383570826359221967860581683010801607770787708564835479151446440974215652425162070964874257017536862159921672954693887520973729124883709097469241114235104263089600248029947728733644146684971510974299334418800927829874613214125962545155140601308146705690803350068216941269112050116467947429288598998082531238056944852293593773367364806085299080279210894637782422908214397157250052804351482021777287740346222603626963298457224185012157293200765587805445430424813616349790869829721720452881854149074619208847868009555450321514920141251054834203676731731790145108707010391410441381657675736545426403104027927005998889841623615324315339803367945124059596354674245198648339971256932250124855855361125861918077936045694603550258283944337756258185370830146528213916294844760383404695082587429764653932134301047643269404313844629757695427375016937387951939074911660888480117621677352901991166401707982151537714858850801234212034953174140193027835952441877727205905818990584885281433182406507150763930849648804734730240244534502710713915985830574935890638019492731878098955970452603978706943890971867833617125139298434128795787486339945558779218317479002201946020864475923669064401569891934263108441734197309492274750486655596583685309051790423415937415331688205636771134332143657780758133294336157735574849245448678293670926511857330366985667782121474219990921312404462514082114316806130397327339204494434935210590782769717033201643796154208397056562744785579989620855012648833547458212750954467524286132620994480925948189769159303188536328710981173543129331650547296006379609484070393505184771711643481580152590994436585260628713414805563397172814950800514304769666676809504076274961500258777969213581124576366463114305618327833513880254199066663407649029899578965637528777618115465932912321312701473917958186321687651739352621387513029839282237556403758701315546848424393123532609513732161747057905723045665848528315725858787900243041747282237218446799233581244934762533582849406509018526130735675620729931212268103568756480296445428938702169153579340569269407919639303920958127909977408364023754929784281438127668065558822308687995699046608810152209820110913650220408075618954859378656202272752663757747403097517392114053479932152085209860633041465683512364581093382150172350479923721407572767648068484527597366684585377708873567880757507549772725064569710763186709801625309056133208908648648197034444245163510539444605223454963065994524246093495609995753257866690641198187167531115337978338073428665963356653875566954086395053369038925285591917335135210992221395159169898529818273323817610661784460448683915674223227143301378946135054697707866202281057884188638832522165184619107480008335801336427877801998293148924958906368670462884476798618266346135383631947452271587069237227730214164015818288097403854636164572926437697629138076566368151661257034290240932894597498406767006652014276871416131115213075136255454497009255002848093733329860721538535404995771419423988901872603133716829903899144535086294758404236170451041585866933902756429754332350155993699821007453286328653067038414765825086571542224564474267627811778160065444223055707970134259294261097360090020498452565078170547047368724267575205558338502790555907959288820875545431154503549677469569910434553687538313515698983456206592428253767779666805852723758806878075151461810939637293061305504337662247149828627582159841953247143114572765612672643572924298341101172682102979375882280795197200447784392268074696175117618116183279056488148331315543784900751318104184186140286268950172854263147364605155500583272496989881070647431571880599300945446161906591792797433293421514988118665924315314750327513397536016937337347513027387959549721091950781124778648143966134005294245682317185932606873024291535222121788015752777508653490646780014612716697916461229431608097033825367883475521590741947016451069478905971353575573379749854983681804443514682527506155371855963810903728562746578758124507657118852290717151488946980881562676268236704095844592830701790999366164270216176573375870639133532352726963787437829220045646569321490527043695697361149348840826275492566355697244895999327106770609480915429407972545375655972388930101880286781686634764425514864462357778770198595401091846274162619270304819944915882847490798611312403817555948633301611785673511875964600046195125507311469708669796530003574784286258606142171976426248770702065068409105504497245607238859282608557086839058328461365495285961589812227664570143398893088077827618645597529457735351530155902048107203149381683190899137368680774483460085199480204227298203867198784001241053366265378691054541439709709108143270559353831530199869373551492588515960388302665957831123681163772527118232999905386473776295467220643381195175112224194821194472481817372160951902049083513786295942612374465190719484682486969649573187720404284819136804719709825881098842374949844372176959484672463439638475945296866191954491887117199502447488801415381356874015660314429349445339940404586090531624525737793796499647105941373428156853127343777133040609701037855592667417000111144118765591489429173938145716357792114297576659487696012039647609259964883134732124167423396018052001475872495299016155938917649421864018270844553632927347720694252677283009903622258501975062350204663696140156794280103598612602082085982140392300175822156425254540851085409734853436736925658285192183333494397551302654920491936032428186529899404437727550874726189498492721395196707128673485562321261799897382244098667987070758340120071704653170510593641906700320463305891326936951450610796192568160541763718200881761474383081261609513799248667486277383478632295737171242333530934726479104409761325268979619785513457667853461927547324821868751395455766264220395611876009657287463924426710804550639906887280914336263259084181575342516615785177662221592613873945438038382966404108736848722731757952651141187704046121210039706583825852694321766031566313525550110365871517809145161173196772869831909822766403252040830485612110341090308737736999891082944830732247070425616192888375067481513958935175109034388817497268855264827565727708804039971269754319346411724415513252228127796095710038013868808865742668344774354202119165010459296577973611753634382898056316724296488286357258020464639411585157644935527790985154399072430173413913962402917885063770476739163234334635596139650131508757048943730749742037261126833732499455675257545180632168664281634021538341669502084428986015322660134459281310592299269893666454089641215803328125522326592776714893450171582225718489436720072980475436506082096884274061652765251066279862723130982841823922237957993151309677976046867017254825707946190953471950552741695935712190751866270285729214027245832369635012333171389775498664478601042998102561499791290268895111847471118430156042806673048761275625193872599698303231873225378164302505324770925347392661183551139523880701270360262679372254272213386014130047320281219033251741225811885736240620310129143363382475898480715384199033590908127939501691908315974652908425829636283981753773188490779438042489857633819741069112753556792747747264342412269083030223072343082895685127159469492609088144501669890619342277865889840548526175379091641842830571984856510681695748372401354016198586883508360614790874568974470239372832643305078981090267595723257019227199331591143822279243127117008221231066601496749866546421561359277439819090675729618099035104612414348531939639183842765090966418111046091162972908755687081602490691848309912750722886768750936662497324466564593066193452167297327863813051014927989720948464618823274903909245727774113111541055759533122919010412406573877461173963451281416416811797723157930207988487482352873937676337749439355908879348529629692705357615221467625220402164289079219611521818859198889405518126501482279676658696558023627121384988963639157123407646268787178305098612408036481883188719357836209353524245770493736236520326268892550182776547783397063943672827277021001419582228106907086572424784859490921173483101110201009034674845321328782918054465834262297496257976054654253038867063610059786484536560802814133160569196356477519713253487282503383211166312094942814009278341588252328178274764964395118067715521788937472601221151736190377077455526389750317414392660241774810887337457436470604249039562280608355149744075468627633185204050234725297730123655391483652221625980452562033909875131142057741420724617848847628559573804526725727087738137159170898952158434573917454853686618503328003682225102604867206461606730570573470269001068655237682518412253383280391534386270552446492897028561900724540359467840946846804811646625864454071835544794800885548133526201854981542317168774990972548974881680533876028978363882321387406050985474029371000265498649766292945330792996710068795422575972196206719063275174708322884540096645473912486642162577834696478166522741741472539686456224276443320427902832476224159642211987212726792766254101834786568391883054675788020799904960709832702154790793210249379759556161602722279027184047168516263360665054482702090168348902018252919657598874188585834506258479956997652531428231293803950618727153854629426133538294704431678858368419367606379348570418384118311738203168761682097207693841760894918113773682421977807057101829541781790691939801606708194125048335146863570564839171452517344453454170709495105815662146972063800085502234901550427666584675938401843062684420345677755611890738865295632969271851985175957582452133081227966635754222646084106916925797261131787608995563791498480834762024110337663995650810685961030931327164415270493600674481564540414373415361311714929911446402784612006257196774707440506843147769407795220548925766569582772408655448489086012618186106620856182784240421449132153337364789931877479890773759825308735829353179395067188494351497933327047841781200039544900938746228529209679012442635252180080457802149884684160988317149292675206789416664082422911060850173817231367373538932406150764459947965578009477102911381027302030142098943350964797280333436499839757269365287638157253539491558279605342097309281105600956510568484885895933347726916362300071105077124152000788321636273719618665170584647960136843538163223327991522940086225043946178338849344619304977708669730136685082379531102685130122958345700627147913998441972618274832615939874609579601043539546472042798088265642719605867159788483664524576111832671782049013038782370660139857176907737663814433816701405834974210532930543016390016047194903721379282095523329901917518873148061164456918462799938396340860551427578732402233492358086193920651442669539914473812003468862206335937311521349446845463915305902864059629440927894389892010026017344353271446217181258798720382109190521647386920184355846781625693170572861115692489514673506180852437586212983931114534264879207660636036192471767363094447719430265313581184096118912734212426105709849422400980225824502692765293775928861645859888786117755176463250540264848748311452588518913821849259673673265835036321772762091991313311925691526876320997462948776462118646369347566722508975934981669774416291455029616703582135484750898860327033604849508785565330181824544178538016611219527969738994557177677035528361075663937456578761816099168647148162752807196050072236681048405761277468957824651990813422211772167923659511236411467796897869750059768285253797666618179314404426016832705396361429021158468618257604602894719916634592146047344343691968837626350505338554320974113987018771522326822550097223915531663809374146854965585696507898432275578912978660948837156739369867572254395723717216349491560017522714230623249105346424255037986450306150478674817374914316935031645782123398555243846987563149420758177844453681834544451027467653805070060511929718536706441106700372949533688001479842502900566850262707175253375480774112948018042527282190208528803291620316095246241795223238196309971475708452411460922573072452864104877185738876305905434983100511723369150269605893849386978960941401098071304257874401044039820325466242850954934308247968082133886664820748986953306773526032023947220269695145643704599863818419753790800043422428118982403022424582808390064127065822316056758565101858050514288994197454151574098298770501722571766663931293663247200037812616202201887451496097157167911245694923953427091147519791987619828362295128482229324242129805871843641177264459703708999294880574939959194740669916342389761652983177041458043468604876637070250770741681056864981037772403469690291154086927942820402296315595057841615424072259549768265795547731491686849149619088019584974082335687763275806769951402197080505257512027282885233140708297399992836841184708771396788409121384479579547510361593187681522262395394509453158824828294972883035058196492468354308531220248022046467991858047310688479475476212707957372726991120575035749310415664023388852681582901719267856997413608036988703060643870811319063234246072924431312126421259932655542770997408588528960968806535201573431808064743416212103887125367089368551264081921093440186219889988336668351457057618529252095618525208496012921716378286417980268068959960338649716133500541555333089178538839349483846188406012719426758389595390321118265698384796714981753529707226576403892536985496481263003166221683235567890839435280085445328066160120787170369401774475420023668536121151856893227565541775464119112484055326488425953635812826229208224667511080536636065098334985786531302511699408681403181388666804394338652113931284879338740791856713833133708847334169037176114866607770178487150622512958864811859166224682209881053288864015271199339581366609421185829667921920039850234389670834411488441470128442959374574483830064566280550025249060395995418453207667748695649408595735791072702354911034277899776715878815826331245714018012574054601871574604792332224425453729464457498368250372167999263063035680700136280587749588264237560697423138191441364652556596969804495636589639049762773290653506549688671727295247477696330422191195120230445637381577602214836516654793850136052922685551746917474766207402788316325827045660119782446621387481299758653417474544324920392465628931356762257160189223215956018937970304937424086232316586731310192791744621539699317694021374518301842596533664261524566790509674672118317289141105238070281451827288062590234335493995886414269337554558017642080995494754587196644248732503078130918511518718973669280670971788482452752599610850388434452589089523276608810626701887046340043518339787088147294521006057581128359112590560773356032821482032273390462485315635856782302858251707470292978982058155914273851798863376549400512927971150348714880691354309710700685648788151401592113775608441653996360504112106742144658446770226493651282112110661551303230735550857334751419345679323889613807159414431200051338118585300659281516169920621200300792863627998668477503908196632409684447656317174165422571960281887111885050699322072915948068269617583078033751456284207275579762396160475147064837740407758327973999488653667389796351012682808891629999499436325309503378493457497742933866094540903721137114677341600867252274276844795834553437245849605191185623861325300054669832122882458175910211989510312774644400684252171843501605188782454081371849465205111042550070357764340658600825211843082184583787429745805382601584571965031617383531578456965268832426886725396957356846386990318484781898928646675111507246224324225690755579765785585671132161265430715007116361332819054036237737262508239468898857626390559780716130561625865499881013878240472966852689088679558541811565574746190028521216378249521485627623972258757357010710318450427707020195985712633059195308597160105752180668799626726630614877382846547921872687134203678454904324976812746868797449869360781543039546112416559815241150241677396739712843615385762984236849777913520434248849426997088023947971709611316871063861902143884516800565306756686559633822785229263187058637684882280671017202638862644125092269525212122307878891281801460355381097825553710795007090353209757357191355469834197017380634120491712966642744930510617417398939095148847979609964019245329526187072815276038143453497388024766302069364294418602825835375389189020700897541850710614822447422717183744051972077485468054142441324795913835790896704222193938794580804196570575987324604855833111180777141191773422523231851766597623746835041160183873356287528373356447744721090482883620491736392818871494111978607164150825788008621699159327834570700746513513470361600393231877329900740756825233411382923918684599378425209461826465661450904070765910704842519338827233499329984299438573773184781384984378086514744296877747810815614221407836835638646196245194980626641651364539117171813252507041254971200967416986825375252321017835285881566156187831948266196754972521909318645179286629623441368426648613035295743635196306214489520375047328351155951262403784015156443295471290997250413805886467762370406342396906782029856097483211202502818218164405063623690403969228026350338609171126924521826817044524563385401201735515455762719561432911948499781115922719396812082031499854264374617344364882890059098693559375594288277951749380022750798617666875623975074300609225735558540265261863357474240897376248513190005397587189008804449399867240939768705923218958374846040312660127655117617910305958828979230582540586354769520751100438224604044144035078768979849902870140098457929703193532168845167781245106366461653097122201320292536686589426990414917935472030463194247854912023858252573985045423771892657372428791620898141936894920693959534418579174330414939956306431112787897727802332930282259515689230647404813614117642734635615716096038793667153582458149845290737129941600109291433033170306054101969393453137001270336458925678370425747103195817702339976485708836754616113895782334089993557325000062929413026613325342785119033504946480977848227236637151801122695649667351964718702573759247569717086206504163850896329210011087713095628167466989300690715271831849476243594009978150427918816810091472694248409182599101803102561246897249226886698662430418033268552802139970642968474585484682550297028414362762932122382344323085689907165590532428475568250822404436516922153525340079927182332887875012030065427625415646813597575893128609191190646973452494831587502295105520147370513636045984068402430898732023669176456019266684235619101537539121402646663385824666292068228769767690058651019778002458490892637045016533886301016200234072196428958118407781225183856726023375535798258092085629309376785214647985206149859580698075459155221116978969415488746399058118590232719551836845083873614914499229927848466689598525373932461674304107693545485321359283150919223064944842143972161918354096834530030376900242834844403798599499802007692588489533098317024186136053227606202469192181727797707973985420415091936380087161021883029992755779466965892802709198276475444067792991310029697628735251073867892295161282952425524992379592974613884778069070098841223471544562292838170467296965172475153874105240964899878725008164563332844711996166791210504191479165690375363035619986670211925234905087094351892744549459082985993781860123121994853174340869474223982777399095249681564693009584859166399970370685533372783199577241786688485282170336150899121447265019657927817753089237782744957530263223702561129420977564327025916816423473807547975229999707742259955016695743701345479373267986713821298155238448817990205218113154285096149606661120845890091800853961557705756913567630123974698941440318834917366480797969764187322577329856626297537182603470317436190297811180865790957023799109544073445091121958036441397364027618307814381549586120313914286883593070089232148565816419326739008583802313730792540444374132007099257207674737026949366975512566600307750353340684428544656470088671575229174994401130272157870537543959728970018000236466277614693522693140585017685903596351970457776995765883289202955311900727191130913712479247179453162197267656075094980103954158366265842119546836083546002280603679640474880922103940028805909490860330262348316557357623149749479794959176441732978447150897058287568289572228779760383694571036567802874658113983702265394504321245009728428318499784218211013181698462847813266522747256744219548103296269099337539768819556220041213479900421913133168456456376044319630872381016296761864351993726903332275275636419054245359128352440483823161983585223154025590020389342913742772312911006972526564393428072074007856033844533920570374328991067189254929666500400508842154252281723024951563838285848678581228396375601735419351306128209742601948890577059132416739571232773690602037722715942343128734030986002110478475547769461199686520806206410780489757341816655087535969661367403977399016961949550366488045456058447046175223988582480036518074938284138072874090797898409677755067427063621401572022004871164837062567795592105962966017675476090708855047751109495561870195330472985764263174985476954810147185019250061769289877885718374298282156463716223906784608107877421171340741550364451254706312078102055954847446804372502985527730701964305433833051528656440655130599774640684689804911456152673968773045824463821129077179229733779380759183006586153541329173929195703763742585653151341200291660472313626863334550534283570285722962034942793805752571091959656916640097695604040768043240506349831045401789514805140749454753797465373722869866606042116743094081711771357690579488485857358894557496811357443930653216508270309639236580682531749582183897192215828636738062075186157757926646704694450219264997648919929386033731975193819815111289596404098643515276656527383782935694038798904676234733015969179446931974683074957592364774553892849999542313678543048204642531867322252150513549551327970654165882940696717067137503614660903411748155987900184763969740147586474409298755225794858745660934019493078670088024525526121610044796941827123908444825540791967029359410721607904156217182794135285494183221151998767664072137851613875916989426058312565022356552407459761991463879317129262323567254291691849102689363218578044610409416187810040103039051939675476860782877578895088947319152761554728212526627848084132549591922284415986465698420541913058296409521822952150167058084291389160676891510875192689842074954069440802283739309744271984320510833581517159911731689209402044971153316628876279081002796506035956643334653197913656226709340919154484612634322934379602250464183878933151999667218411138601212823832622048097767996202995778016047913432849020120371838684459160421727848203474278593497909611938355723721037695871120225214096815441152910801167513837560028665724527590677579274115466052429422653864343092194853526842964826328255815631924160345607412126378533361125433011277454657374748299775034428614285312416733963530871263760410926462688606651632527748239419041270455661573260012038881360682416038592832976250860187132628854434992563882142911211378663966035163035362185459885226823648145135981728527320845655021639162204348865029165192178462918475564190511472097160767049230546282374621514806575972860574862581718136373423667404363305416135334352250723890446428537150279574482189092339856591433003312816944654710718727039214034980139973537294428479189875459645550564834407412333144580234004901313568407370370163587951647800613149225134146148902042133843639299245421677108515886599982629799578543810213134328000475568984660319109410256228077351488684619617520848402591441565699374575919251804662026652191003353978411220908697947614896578644784811513252742942722106868438046321383361217415873000912876943031168988831468077037316659289051339670109127080503420460699991468380383150918378266219429030204655668693513469078374185365613540084527353710935870134515361768455671092308236634958881188791705383708634399001240926893608601604072822132178734897512287346874865034625412474141757394954270145895526915122599046039357075940183958085780339929652978338713255644731532266715661936183967924235515888496272382233610978986075335315119651398947501618846667476698147545867495311822969411611282459290469065462538560299260098530501999902989642278757712141104517520244483619054312845990049787004009021594633709423583245986519880780450369805429410448792960653729774232764733522657088029541682979744271121553635403750143428634274690294975152295742120995993358589460831321358220456414596876885837857328946806317427139877362465682298458461096548704469878215103360609347571955215008451879566089603707103568236336240323474969976052297560250062926212122061144466699084832243073412232226165013944127588707089370217002435942785862649637835629092719950587803534874144797401686394720221245742629680267572185540018765451749704342442726595414399414902399217331660692292883072771476618982305079699360959733567590794214902484323264945094279354966719582435254985948818502577325066069836451523176199225269572055910898683662875657248400908612330296456571376341346266469835990858246177651277584125720024917192533574134924471635722018285174523411709497567799694600561309001228996143762407002415503536638618389072128933372308236158357822318004842435886465852104034251835632050058530272311563624436676725889893896934268427483192610941950523325099633047508027968536236750614407521723410875658807640966319850101340991609377531480806305319413562146419757176850068108488497842730644572405374058913807092000298622441040404670771149125947877507685244106463337305507111391267650665130707499781656676082486582230757960100317188857162828112313233817102383293675360972922037405101548497310470364292736423318339723224157139493947670082786866210682278180916903462391372651978358806548063410618123902551099879512694515037503802623040752224536896058372545564240513214747615540799652373374625764957698953228154415369070553582690917281392228276957160267439043881639120124023943062823734057335781691442286153885107711753469598367694816055906333881194727051812669280107056527312068388279066509830175306585539006048913223671274290395525495332958295725888007480673496577399575429687112180254218638110870461956586283901021493049629543407406511637466223259801047431810206133519839207609236616765446745058007476937746394548028965785666145071430597271693751714181768561611612348383950952259529986308138180878112050606136118786937090372636638753879400955091510844156037079872500134429501344387574162628442025597162678448869948193030339389433662763034892135733632282681248760605764513332487303301091878537899627742401471004972175565896303007375579758267699991590140253917949577028533977161062036871541778492557242073697200122120860003996836795366148375137552491572147126605427091888921409701361946988480952658734721933831024432245633142400702363726157653956488474799149169837193241122065238904967750966700341240715671018383662371605480925943924165924785068056281914198001403080399311485683801756800066476794078820706538748342179798081855552102186046113344519124459561463951020948130819172974828567357824594101036772056188450571705873116450682789628797717833123696927351603465933167086520162598996197421077394999521485051104497434871964340607663157751586239162158725459131530782769029643683274568127281807428628345215600655804046574147519097651082466519878143755003008529358535280226079030483281735641122445830221008607369843875172943325123278937527345814505508330637262951155042557095067341090833751052514414214127065073289480075232426805307760014500531608296200650799610219138664971574808018715257174089929179172306164842133133788274858796314258539631450128720440667222187025968047551775181723389479749943541588455401470121196634794943248526800797558122634867077552034617840299857563551598304576815607434166581003965411405062600834748911801221157025401650679613845736284469472373249688336880878797840300357745019163499030908033219493269764505976509456481686667137951596218827270835711890117313488069452440207745903276393483258273580365008702914202890459667374968452046090824146312483231781034202800795483288167763115053914397311690866373808301834633494275940664609187919579929623484615586259083266281003944466823784899362710449674340385694108662328402610331310521389757191350906263103657205340105469871826241900071695715169137266206530853572477954242232848311578379455488764931548701203159671170300751633855051103343158641371807393584259144583546825195354795790209798223090096003211001406243597326657407561875662488387979513806066621357661871418250101192973128693255811426692758425465329912843432099726546099274735811836019565671004539023005585092733818866733039466760466733237383339262490814056294464289937718412397424046633985509645393622176577345482024505829697358909357362999029250312654977484112416245572405385892471627376482181346920954676849772668283516071779274838515169247054726015101636456799978932905278774632088322028975316849906628265562600158969223696155407819484525227343205890738785081312392806482133930936568552939318274414127228080854253569537486590605574694458645003698328419880357946682027792312630897688933710642731075459815155861132104621981385120697725240681175597815660486667673899208855604245034863027550957677153527579170356159002390858994127629178420836513931058280811788850070554249947523851127975819083431334833198848510156688609215039176132410938960646691712806764796751677339667653959797555260352858005545708626131363399498634122715908365603428645129031251930685437761282875358035219800294597345974409933938974611656789690326325772885498640651930944890545546882913525001185233629562069628374150784826647920119763457136574441538036305286478902545642982275536894288497681014775823894874763228687603894264391863280065327467797846450711396089843494819310484428991679043710896401972149807587448054189072623418472622971611134826505733114143555299951102616219203961554657059574703129931486410172499200008176905256124798055053894034510977885302814157030310244659759210273340741601272747816728896648347225167554664059962018257830124352790453967349656238802634287622225081032705444047452145006641913982855680134144279706849157476871410364207847589038258439703969438355528912899140103717730295757248310154526753779524717651708506364955140457637566489496623308588475987432303768308629866375245705998087970779968375056452407698905778711105434549336248824099477504295267595281378690638169278466387261746445998393680574254010032077738461914721418011671880709611010473126373226748724340614424479028988159357667433976433783999912461194478073127634381245052875347448475915543204500237197315959365382184471780201116658390358524786282805230152286256477294483501081561846752040711793258343447884706762117592554447781319492487475385575113245092983659229745184384380576124874520946354339195384919152199500168503839521884659580556892100674195304917017423524186196178816347050524649602779178310223965283988308977712397911419471845349708035761334406475961081160981778466972719378761824221501642099832719355236283564816099574285331666867357216601344591363314206548155617238572409118685013957239261279056477007414230935027249403076975098742737541802449303528244946524982898556228646042086084659537854252119776334845432084256047053684762654943361058213653864901807721910311046630597349934633610254008182494372008048696293263543901789808129559658143000249005078729796649298094118948555145430664461909260092542173068423000353732681185618725567599903874852973428513164274931496746190213495769320684767945039142961922385129733327687229179714943994715115114506643829022742170260779462975544216434810341761448571475603947728312843761255358528210119142630268175809417535856922669445040530568952407492139223313238113051093195949440446828141166357642883550920838067913323088349517297642157372709144153757898281159143768933583963623574796455419457328893714805814617851761909932922267209791368146488431865675959352223265549404659919124854282342552258006762464735902444798384004757902290098036631536475719739146252419576088065858381196649466432676896109407295257594696716907025931030638469583689976513582970533187261659380007098832874771365386067251290726490216512430080179231921354328860630544315791377275279281768459264383413827881458226584661919003308248527314238431371541109292814621555829913945967599456403079631581735212199294717462000654280730915711815895186394603157651824379932511617114573335322934737926141730944314035579354193123798056772400722100199587243994744416018613070175637379094538538992200193250121237172629142823710890390448234662694629846357749455940066749854467717207937386638168964641880419446319058961383866536833715457263062508602582488023756147010571596058645425193762920263120484368414778977556528144581302491049682253628148729179182055873554351369524921893109203260878602901303577398277451527873567196892183908591431896882116018177673778711585835846596775476040374849513818184279137586688968220822765431626745716385589095292909120739513084194890279346349408802181068526330572749057540790042893482783889561887610166287448675746396094349529965510284898719305063218655389718807977854349996982859257053563683209507322225707193505997714957219194282170796539138631859734041521752019538449448274622964267840761107011387518820126166860860671166197762477802592009514132845563677875484148398946364128662164456568173687329389424075279853779410927648940801735927684639013526170856817108361973207596969345593104674279171554791630508014980442993381558844177572060796620078065299894284281406669209319487684739171582552191679142979833105032162980120225141856299693972143470788671227418952231975957111185580262190149563857600335623154396297160227368620937236115900976219809676184344160797427811256658084612557956177962934162316386195733121806293310962197669976916164541315346117982433345566827781614945666769169251805725311483477458230921620413881719179483759976271283862396500928052361648702531719187615043729704552857755541205543252659807681609517265923469440980407139042969633585467954926402409990344032344295273717469050758424667261762008532904880226507873261331117012580333172365913692087804302332782501573826758149896553028943988884872586233465300485430529196650149480277803484015105809677299223691956852193054290887811727241693559501474295725469185275974638020869349861822050961383511605642002392809432021123820782607507830982267929494056625591471812170273999211100121232359813943270795910095233167910090747192482860002612249519654653684169853353714566485273323580373305903485430641938531617468692887455934885390505705585622960270288949417615345172624251451013028988448462108008259207799927327830123218947507487786702930275806248050748919385529195254284743907527575093755200569796590994105557089661438498219961407652098946717809059232553629375671623280404638168157519491783551047239465392081518720704408231318211045871765677799122165960577561622085089088115767115457132394194618307419883741220071278292286676259869649024222659312859324720242177867672848098158804129541952164128300736706452840734507692443313739388918941427850443785029281725140076637091665851018372440973965337346416294127342774588400492368969540020169350004520967103123290247110105120715294905884442232474073468064656369033131809191835756263607344522225944147298441587846487956524038831796698637239006693213613071926748846712544218693369818359210840782295143774575043996532262041416265818132129144308343334486684294723507352924611794574243687920526071622743624983012848333799723355387366931304388855998011764384854774672962842693687869287579525332788710010100148947873216493513207900777459931646222902206982502571391375093802991885562804162314270463735286035127189489906195294997509451751423117641342959465891321213556778728685228206327024143148239643601881358803094592098743498884066311094006022052854953412025711153082005642291601856031882183056819216501957772147731589127645760575329105753796509491973909325730922390877344996408799347007224894067525723016421731358096750886719919643771993370446043840671060587392397021181954908566042722279457481908145604757542246369574839242560200776913803822819412746242316602133011120340011247181392199811485471172922249074556650001820002560333125843970724651881225919846412206732934014599937418314226936960553849387511787672871890077297845072397493940678425974298867664312333157569883466957789421794615058066676449920234121380022764354564490106123456566527712424482984855415885803880904384077090858607513877996189976598243417739282782009923479271207488750252434865665500957738820368836340964992642920819206873832075380148448894963978988155922848436144630158636691126446839921154535925140391369153580286397858532245488138831950455359548117592856947382856109778502349493372644855566405815223644383507909981897230343642438388289765710243832618803617318953740767309094249954951235526673591378279981952981594775753017884441868942581584649900355379008402391917449654280825119517332187519120754830850654011044241967483701564477518323921926972072354464901001842513391822458395105556498572305751679155633174042597004091075125354070439039759828263404446875448917905383732367587280317398616441277565542660548309521093505230887820344269931122311017454972727549949982768012098897963801032847209916065075625377911957861189606562855481234494669725518533605994773039576058363154293497377278936439941892572968972129368912058697978571990932559230357063268985244198465865393928245831964118662275603510508364253158215047287873272845523954055730611019666820340863504063979223897401417257988570228097273890740977894172706760266218009537470871700138573256932287950404895233123740283934839552626623645141955362034489167149258761832837852896343162455823326886154760777862326823705525022386270003037352885205606828336968689473234564809082405456286362083168310982970947327841752754781429080009384343903081085764681180132521632893235999522164359470557520702473887585244162404125132715802218500514715228114016120941242472868987523099559002715014053213742531580508817736582830782209179017739201615627852324143869615922286675942370243310637568202945805253047546647167977360061775916676108346805752586818044488863743483440987986970412592728042421961918428475366104714558871877497396693932656754642491675023141088782550099869126270945841117765601358844200398602558993233996051522093547217012454770073583754752845285580675184175497885498755636735641576903149037306340224722422228634451081508784359314455345887464432836736890203707169071622980893028243143609369722506514616104871672470170581164673552817828287035044593156289255754770833124817048239590756785169891486984399224348474335413301457978295350986484129665293900355167962706156249897621791669054155900751262306117713051478514882540029098532665546463157218699674876878498908721920422669348470079047896829942899723967029736164438568912080177228676646342988455660679761869738553997522964565943821919836693351737267614141091109916219072001237495742105826475302394041018227173534395113544766917469861924826687168193849953024769600229722693574814003138443243598445282917977414552550174919981529136777409647400286518190339109512672681846491486455391589999604512331271132276773391597853429940642162358340797774867819678193700193485730313572232891980148039371408062460701806192953559288884303613276265662099005370140303400017251548119573566938436673689407046804558952679544806618714186796923849175192050539878620591962229764757957253724444079684831847393892980310465611171151112955853261010476708302637748433889984137591955958184162332065108833721126874442520394670332722089044490536193099059644347539259097306427153241952378792928846618188048652858865620162651606443873864233392802935753567613083408112311451510995371720619782776862199729619635892113643659597362211666171083971773549036713684778965070839320835495166664855168525835876223724501023681961989265041854005581364049930156152509657059894909753545667767376070593494155243358427294186311608128829254256918270414803434270023592816168276904937012069875981302083988350791067736052109555027198997164058133921095969038051819195819814943410538568265585125088930734912350796866143027010198496912498141886758283135830414982286236050836910970849590602224235530208353516063566213516739324113862651899663328907742501684109005290841632187209686894298661872564832723756728786052824198344547841204634542251369005882771309218755979743588377567845246708227351275911766761375242224079299543163097599823550033952316529936685603588380538500746438026188802717146974383030991276545828262859363105082856784898137698118897051246186683370335547859311265362226767204440965673226925865468598253370873232188532927681420168720041422082633199564474899292903058562569848480563032626018675225772129718274148110134524617298727933991148236480301771636065095435156896237636595659997667501286275747111457893535099200114187184487039278658796339719458202583071526853831201951890541880068107883167196008239274276667373558130642545927653078873923211149199837332798264657144780755939572743895564374344945476275196317183792623129076168553816382418679632765354112521512624632909170934151353547849950712677347361772001352634187573438642344823784106800002348523469703598903372859462945928971362633684678382354008642250416138829698911072166284788132198009046884941143831639385708540401445716319184267823284030019234061470593688974472057469416453449004052755463714545119815644550231621892433320263783836862726857879659885192256217140940533235351236199146712411903967455402723129775219106561238479471780314610005726239135195115679142403666986930436739226654777985198758800357729803006907309988331183753154790233365537219071296782768059005279675285017857334363584781824278604459265341335790682329194890544690869139278747701634548146990285138072176675618688952504229351578999539204983809690551131329120608597879690061564288294370153328540256380360492526275169720785080654760972117834566070028285025567276850172396012408070146409859635847970741031774189187569317513911422590004758960408823753490221068221141542345001379391890647320057962017837916171666856072236275328648266774084474764936442926407987773596453933848575486305288724104931491550772138483842249648569384660320124510493733107151497430551717387082010255621474219599956512191140960581948964742239058595546940987537262913003802734040847114689555077725637848146911258579145694761964593753218373651284499296263054568882820231757624749766983016100505148020184393993957402792626187417564137866501928416284251457696703020547665767315603958485205381655223408634556577132689544856452824508196245791550085667599481254884409111712789504238451076420612091071968429522434219777541305046373728977144510964738550411089880519730073507146400903444738879545859340210723359686237394928097613247215186257576541396309454806766769707342728051655066964651863216867275438359614834301179546845703791215880023593383717759135458320565842186020245053611285366943674581049248978824931066868486243405126611481056118851108654472520679686269750438716995485465583817116976660745327486813242900984446574111270699811779586646342641488264815423843999084562207555560058656598655025691494413682482521541467390542326044672204141512289516580152832569028478579579660146776118493857570179277063183525372447693170120316587190908649346211765683963442984440259880401240476957574861016805976548661831401464288821554503488571298115763611036319744443574574814572431630041215150235801198338283247838025931651447206011215457656524903653039102201249881464053548184232115654011549573803300117656307871955487233697917831809099299700785719699382401362709277991037222781990711404294907800568731260083786504101339062826570084608727868037742975387305802756288379411015004305878991683328079945373173572332393220162557873083938801399599047669811184872204923629125951202382516105545400206522320323332906967656481333976416095212146196944429587356131866302726999363421529409721920133833808186132545857811979625258765323518402121569548563120754425176352251292399791000888606850171530971981612224083715418539125195494482075171180392210924244588439982491913390812246031894854364520115707072458373488984084842034334379170729259428670686177299959080984445361273427133419777573444171620015489813720424093665380181952490694371955124903686891847554385614363190106342052511141469076963551374951772397534016725568326149853361927790576487378590050292435877770615873871647744447073809318141104968566479369597348778256930986833168074175118561692858267847645690076996425709952047753077645137654419567116855074148617005889580469735380458781634547198603131466447636305803466063886595710161082872499014011390584271832691369521614211666175352271728178213182387593543652764332696397554053224377615613388454922447186476999780815225476726108832346965916905214237289575012457494338594095689206281677445208064447167863516800892688215094188233463525161464736363567455946120827642143663549610869520271402520945113140875860029285323706962103182179508526914566494425375689377139643814281060303981955215788450297541669657881415634274360161641527838650016609133443889277407263777005599948258025454796774628762715352801217780805052806183243906073087762771149146442451850167564601074871767999727553412566265087506099145762961812843189719140577870765501924285865659880348065267161710092583034977712511613975814109805372189960221116234298970146946526000866338398795983035174629129223765182685621750027509580748779756668707457165198396776299117232891285830165452915440338744756246852120355141909418405872058682839744138444581448173549323984910832403111966152156910395406325514009157629329271244891292024379200988723424600884892397710915800760447687837548395910367039855827207546680190036843249213731272912367558973037539310541564679919233865415809789105677858496835277019138111666718363739414642547729871005616802515554913194263610106998636970324350708813369667293542031763278568093800385337758469528106078956558434211037486575006525568276453354050253941950289829500874614354148834892108937136990428841412306114136195946322047790591428933487564011583530636218458091396281923877163848973269380644616611769454891196270680659674829740360284572750192650019184401084734924791269162880177778539991117763456928103943842660488062183380403207897680024818726676787040105387624851730852171965387730437573156507584897897971012630421121928764737794257827624760563654064179210946269396126477137392631052711591875856931496579434826512765653247787928910697852446982453036356817923803171327317192927767748989099822590235125177482350370911957923804675720156303044210207594820439093159334938969945177975364484235824709244547927554341048047129084462445509719438978721992768569183239863787193908251424724755255791124663068325747224485865572792238484879041521358385781173334952010798484728571245350247510734279335381249479147470380143265936363841273681760890490535871902779634860874769763725061438290922689897403864392198123138350595583639844101962834545825256229991226169773579167561751109638393429003272259089399344860381110720040855609742140840203336667865589156696176735099866633554597936920156621433191698600016003480217716936538517046521571186810603087081350660226141382957666703006814056497704704944955787627148342341839244779517107945838799004376726993942530606548786861305116824889520943133137101935719908071492047925373636558114934866240406185214858920299210906592768534210554871975392304529877680216646945104906466850145048490660882409340564473821064942511514148825353265361363207608340484319614417173843826446505195017805474314585199725804378120650035541404129769510105871634840084823345171276233991136312277575562920195248692101847240664210326851008011889647386394550466494073377932905708249760582623736769038863741742962210042217648731203350711899651280968083053049209468928176095042663286369051247127582960097327579812377978546673772705666773498655687503901831049267672721363265662905529411763575195846454858542029820735643064641412641395861814844329170888694905121565371076873320657579620871898774836377256537657580433361398377244946989593081872901257432733042874493033579928942429241848314569940089508898748931250222449426642845685726472842710425900250116974431845609506682417881394750613460725116743077638730689782968103956585110472372079527159825204782850886907070614565063489318012109840762037109107143133328184149496890391398836223505634804886411644650885968270814740711395238484048609493263227723727047430291244469760705220340344706263299127562967013513807422241897263708003607955820550132052313865928401138204087783633767177734705277020438564571473935207878801564596182611186476346175213097712830382111285691485656745344317286019894896036238244518413428986172689862777904378439121334264535285640686115064399388992171960561292405369755101924938759438072940403893400635990928202941839350497275857270629513269254155732629483978161832338665316648011317728597079582896166245432953748669916845308990580242281037024727511602540975486909376786192886182541316816620300671817555882302947087106586194160892001357797710704894958065649778855784734641734498478332173626745807499608678040062346594134016663214529542169919740946901536093724546194037684868953249975910335112029569985541745316260853099963319534372890910195131447429580952743679649768135807605121740144400543407135998498120022039566574637842624342503034608010760694976762404865406977296925465324236396741219406488655465090393174631616427903325653742631858018318043083819457871914603921927880178484981425816779510576443834479464882723953291200777693797625024399731968365703686705132281679028736604937985328593146891318780414059369544381464587451446312233319296103470932699363158517271998844416026149842937954251442363132361536668464119092451817309800910162923964792114056552803261709523813092035852501238851886844166612075575869461333327475258392974775173709054788735423006951614035250398224804170390227349700005421643641491646985454291358162955844989650609583085619174097876534997370724980209095238712500973880975119256574894994454565709910004737382133469258830297498544140626345240171926975475591738917530480397172427086183341469389850044664401803118242750018029765470938910012796193273201056067248634347670796665706672122739559078854058092092685928981754012105405016711180014104857404039112177205335369844000417858871754351281525919985702794154716722643039911531325839796181760334210395288514169865474206341245214329224087638614630493559614385899137961784667789767480026356614136298980665350880807775532666565136422035658840754459317194749221409387395978435715316836297744350246600275078065393319790160323758739420040810109169592695400848891905109328654953291714105629469256336808127848997745373730720095197343000054643616448522310205886734129443308709640604337077683129853549705127038163737701047596072491244604544902748819501254610019438446510766797219474244683792543354459384541077203881242966066957398345536171894717568311303634001955755816256247678999863976861124721893367293992751917135203874660395066470279054590344646861150693933181607844017030475423875156958382878157736140488044450296745684309456309213908241343513002285173274676517719591284122271238157249864363920784642853788052835216032344036539250924655164885287447136282807775936030491162610982556673978946218465386639134414044300156870656401848965228856162328546837790742913316660414019479200787598559757482069715235404710147087263984677631760794261369619691533210767964520213896516921838813653922564148667566862558473508851411226998147264426021068792924900811089454188205884787688216352527257072871059724779752275934114038280723984371223279713655929537545822439945693928118139239896573039526921308332982521319542117519918608934428604793603954263307992778489302444143265721123811499677081125305719566555477431221318577781829350658385091135176489439518165955799218269380818960270133986036920781485453116820267992530495405287939545094831224670367249591623091517341307788206625284411872482636871248986692033939133326580808187528914539035785767425143747728746923763901245470417006043401259022925161631171658199420268596872546502888603886744523153356777466529281147621525891810200849785138324949982395089339585985091480314652880964331996148363527317528018108807173434576552777458959522771549545916639136555825351160324582728420321200307555571621217703749099782374089183397758607151656777900207116532220360669648427907646447426910238607919268544611083688005537168610793774310985599282731194882997037979470794803751255148310695037495189910761939197305513501707419272205464393187245724823407157964538693669998083273669369213250424053090117404519027425870320540889722705044368356531428217121552482751503877735285778220465092226194184067717144533992268623513216318398065101539322833998729761729842386536408069346478854491879318325744858360663393511717700005306101708284489560326982137062368245267548547614197789663811133607915744408792842500523782972691865243650117155688759243341621023422598410816757032768956691067472920074584926783303864507668420588690157289388225556731373640910953956226503442916767483477468641134728000552390105849493083960677043241029799464132730099754553271448218665206899024705896176509861379369329454601740260169740287999891583753454503472649692802964196739630987993183610177541128486296797378357330088654894376272777678434553590364353666910912816152045098653237819189459408933554192444558528299442174442552870901345095449233349945872286868930139034290282550852588266338460543051104016026254093339869036851511981831538842155896245267053479992178050848423171708663187299226843533205698860732905913993815253142613829420890305429579129240540725562604816179679765289469981901235552375677951838820206467342895267105456553520536522436008304793760846748396877648053458541599478104837751543544983769948490185435540627009136274654168515486648753071323216739649219048486406244455664949284532364394653498331717616752095370060273212431492731060070320762509221320625619132677696615619522354353482345534749054928721092129098357406543391552604655584486313405133830132006577841984291666270744130150601343373163257560659987800707436289347382457960499694412188723918474555513731678460958202368539463841195398755048633363388632804492028264874710855635119057305087557262737820207641925780104830114608672324232760391309683657114269831941996999589202136696044886929577497126537337896898800602278732173034561689044159809818273393880366440161701521121194133884377312381172853716012110373815081293154091727558425421578268630408902503074413319335621624288890515427448507563532257486207282480906939276540265100757315832077468086578597886066703976989912719196700823624380231463879086792521271924745036570276339195840968796994095070805869791507454326636158072987411402996098892457914182604180271250517267880489606449909527074391831746356466949864576423408702883420172755602534322270124103093825112318895582636750951633600267615617068402738206429849434632966195286883700114104991905170797824743109473392612015780801198438921328487536808896920826624806880413586817073518559901499485448829628971671465483110460895131128038941158218390473741156348618101326087383977466008659492723338354662602719382910989473975797240095703429065512273980979942536806670232007945307012810134597812195711353084320512836200036295544755442274789178594750941694708435394898485141180645729634027319339330518726366161783611652587069548226150060897591753036442868645852660789737875597732793168531878182998476574859914129336246142666109141241307859186120317446519924865957533524349022528901811404708618978885494600121033376176928048624553141106995039475657501591599298152452629333871391963998586059826505956706660119559622482728127673910615628558284450217242569643795414438581144396386541153699385662898634500809612031848623493868595967293567761956889154514752628947929970817023996055032076239419267621173012728037609871350746972459717139023895924595087223932150449108162230161083416000254279914734764701354292845272602222310938155905740953680285974524712800226635018210720269873736406948375018006839535368349620956351894166985049283863881337540339422313413178413700113257211105706655727961620367697837859809479865693237863959406489034560894168408837386082995682679667434092758909302041958991043454562415488458742738144684762217011894006775577352534776981217792947251612067521792529923047766097991180352317174571870614108442410484446572063561141564311635244861444471212305244135546911587315875259644363004925533798854410756389937032166488025543214743270834799574947613390958640559525315082276102543094399876611198680912828587581524112514897617286058610269366712302618284953038186218992977274394717630495284777015308277086836786266786963686274647202199388407474849130441508303221329797033446648949333170255104267480178796185334262950991873667531036928658529173789205311132658270416847056727363841071843431410959443221238431939038582900706530318481634604956854185303759261977998467605585712398624076788638740774131892075886699251994851918292803828462101158672393470285660734279271290540997839251494773483711514816346962283855019607667328609030427472395927420086418136813997534662735488044358341547500575024720565821244314898126255551749347022066162174303170778607191006647083305066867980737668102405252946940212560856810264137388532964114628126220718325398624176451854921418051616518258880676735021893380872384873860765719408450020719879451592326033911860678962158049554740024461865195353477064548767652464960960908695095670982289993994235256426400683324690112197417579624497028381704112029627366513703971755594818758091710084038843655490016804694765582935592577862945737157928398542527873528242833534116044544470199460817968268354430710141328335707715307771678055783884430598027408511450812115389713896283070697622762012547014205437248927008512167622527522871436793649126448852695393912415816778309580888878282598072183897298315815063485226063897735305987029930374906055796876418824298078951635227412444194559516423831511797958507615890406421339012882109174498019547645447939548793470930183588667123847053037413265364188097952960603703563306505083325574963936106474655070546795664792331527347745505886454562038909267263630739693790382754943279814779563281045103884391218007888094313736264132684650203447957270406272387313742278333782622712515013874849333188864451679393707640361646416058973605383643817859995329405871005546080364937265516918819422506900118713143501211678917409564150776320352489848543108355710220352782121042955856808995059323536892870884925184057823696772825665991531967415478324324130326978526120303189682780585014092001118673551581793021484078654506333144981324266629963372748712209592770210531227682907753392538386225188177572769022469794206055291584049557129588636581032307222525681018573586454165911161801195316753139862219744514653749321702687196792111428238269171935478828269527729006846072474262926563685531222871381629239285278212981681974197620334393159569917721661776512695525851297088981425208844813624013175400346610164694838679398253892140742166297834604006378185824705067294235912730965186712174039865768788367477168452518306426196543685459119353101953926122489094688162118839102770942717208659192742655748018304408362301425734151496880866713704249515064444664281972038572057900778776367125079042203015849562854934487347624737890558398543700522417552092606154654964312459774107395006671614093317442218973768716971643068632766224759519975486294974292216509452698640633029821344952391936999135052599036001790969672326016412145568431127091435991856244681639159657246670598686138167881130224566513692012497685551512851751314790423892610436198959941247997084019886717340767122620345929324021312952299711930857555689288861145717553316135085073291406424895648075603797624332360286366340231222287630503035543906609659312962331153087499242804090557678052130780039081302246314742155435343986523714878382982961183708020662844223991617894619826718106767166917506671397242081545186874197323682879515695961711424628676024514599867798231404847800262846026361185721758641416431314610050723403702558584457765956106618465179519678508839176359722482827044060422206973440103223375218839803186884301227157431828690650709995615392073157003033149106784127082931058654443205537548692378396145782229549740366844742439014686714617182907848397910916843214007351938772200135012145687483625105398045590240988862294813568674439311691261067781757202493349123949453528943300159820757412056603244993300741248195387094444354088149973122762206060047620971564115122576472934089764236415423644846364028427589402088458236184108895365414737254928880775703133063293796807651735239933364356790796582170757057634310267426642925179559919080090919994641538339342102395714604760023669451044566982081405660854122433556583984432420259680435991209442778372259578090453704650701005515646141271859970742725143255493784155380481385738613156206753752031726277545293297901247243684740611642363192564299312730123373816597654692115823765878153579796417745438330811983663188441358687398919758394673408268426925445342707413846180647179167543108454538843242263363587111333408220571479780006253348456963028534781726049890425988090353877833583028865814824777485482005484786455695172010540608563164815706206750115728272871915815114316394890063535541376721587104721142307453349399606693847928385599851892363739399136477570559511946254004987838903947516420363332945556418580381055804968813353665771429348581638209262709535764410046822822151331924507037589017356903931116479955389860992331431672201296941382520109000600504612890618471129179468282948646005747994520577119194907091523649740593631078106834247234079757172199807672699454914545197577112833666495023188989043115064821209094852893015328533110680921687517593797810287359155524528831572708831705744957120607886843949489177181883589427342765288988042946545404611435591221214590149011866508769803106404430030439861476146843801148676037965642468241990291901400241502522884249610920622271058847596981598111275049141527644197305393945349765699699673128196246502090603151551215807283336293823384030229910097759815888558209061871859756597062702546288472645946863928471042488780206437261381848525085148647363239201973989514394158424077983321984313127279784757703136795880042675543341397947933231317731535321359415867802894433677039977585960191890892783156784455142189689415520767633598695019411132301632305028261174193284592062992579683067032761194815161764168475984334316033267146089177651244940902886157124207754108031567626017595150849134591635365613991378295536956052229304060046919200429559691828022055173058379582863899764399933222365420140056902713421999283939005602686708910797277734522523010743886281811600865290038965647411649771102247005702958322595432217307421094255405554769939926607953412569112314378085954254346886001387088364756724506570301190809306262555295591532357829945827700760044457248335410334267322893644881895566495635970826621521326972612951003987385698467865129365571871714977806881698786396982371842510544047412598850966918670625802998166002447778275026546402092759484132001677552743469268949306882241773860784978412920233651815659178924267599588200422506209668907681769229526064510763576879415750023128423192038838418132164757683882936425757669045473567834395488366216730746513079302668192014589247738781643314308618826971735254611137561797794520259997295448974741910793366995050710509621284408515378730468132853072011468870637957571436852069605549907623910512283270596954229189357794573321755671874482894563791870195002638284387150695344206812247689602056466768622577582109495904422781805247340214086546992149114116457336636779110024411447723253067936178088710088819524733147940428050482943744578001617755444235739410662111685796942396114316699965641736737512580848840358754084878276043598954694414965505644907900534612179602671918554655677824085890535210538076223885727703329958997481287385448871564415311674695242644761634501389023265959896329813493316672262576862867741227177993620781682110366898810716774681443313582075848072557996647538416283593235170445060442015720403148270518492583140611277064156264126174970982874257285188436797745452781437742513926025342952494785831330874115844149868229875064744968083645436929285712193834907599533454309731313781391995559484077302637723994054627262553633248297278845986710677750455353255387826471376630811545380899372928294872099263807310795138001842018275994399605519572566695335321306472608894267983435934664681836382034590182022764708924384955774000883609127363114987502659249387082470357457769242330998367395962732716787060459501898501397658915014439084010265705770675111635893736346260372348306306057026926036872954805760789478287697110838968370254146160786534018706372193329447444202525476524521169558336530213299491054667843674683488003278709574607959439283005610668938695729091595670022934916376121315246422235850309297147583739724800088807774201399062152945924647838272552319584942922550977842570782705360833691916088818993228990696433269714160468614272118505100455643501124928335083669174356755687118327590304161690898164697765830886861741641933174089233225238494885011904791629467321113378534876762687174246563322801246500144653592169014044965542534352909586542560567598434500113314893779508892586255830560262897301078790278838523820843061547172736565267079817330594992491766493735126550391131295239860911604512827760024124144763769652040824997436060816051740489510205296352278427564515246845923656063449748430309152059718448687071224789274722618862065498424818831297022699441028305676549565367789691910344731926781670029655911440153959855829027208503240385377059592877879379746688735380505343010078333683818613385664729500055714619572696770037826275604737803084485683745467119596420337292450499871109111775857748413761857639585822661569749874366116945097634450344679549914350322109474097392019355180667282885181893115037702922904290692860971349813774136064043809764586548133304204256723238106406462167997436266974959009944252051725372043679381427279196543825667721585797296028229744273668690848692700277269195218699779653472567009718876240990232669723421505671139680905896361708322362577041421914414771400993632480707751717296378257886128533009062876566680005503086272410800968351207754818286242439685115454559824516737346658216719591755473543747710681838581206559401023295086285649157000673219059448128799308852057164913063747181758509470462104669408349703861518363070386984983797629048166480862001904772113036378789115128344036050573641942379053237598756582474342389593592488869753326093855266293825885975117301936080679159996748513102440761142476960434052328356654517275546030767164897046132093961429916759117233197976523505911126541663646928929186850650977360133456271498007886524657005463092178374613567173115016051826360911085750939867038472509411464399807484813042114906792664103759316086372812309717188613130192508868637119621890614322281848243087807155347653554863384056130241024261416247979187263515480863623695052271756296798286260555821976953992461043783624635441735429170509706787393975540043639040106235300406651953267342653814684881284189794710761429127703044702124047179714714296974843585944013850318565258507616672838988763497255393323046028650674156164117917430321252125348617345106214467804798714715008892912201803480953546781297381792856045751436344199123298421934111237837709248576147771625191811272000058259298482753825915397199046678266498947855179270686123723568036095701184998258851500722049494298893729607538885393505384479429646937041509313434881927439838420926971356835085390910854310679141449896911418986925333115352467773554880726380532755238916173197250129133193704725715735993603084565314856194489513008851371624766029044017139552486621769809293238571420318758648040672783158621897705830134908244193905663458210456702357441919183935401534764697439183604672454192384912100171700413779751376188280248442044833185916773928609429403157871261065174130802351324636595275168877065106722380360056359689025666487683445588333622609909997417683470864113122058904329110347201391078383558956268980239116074195430238030267013180707899206975497392523116486720037842237164790526487041966879345740442984874135133717463336507459695855528996839810254958215391029527592689429892454807231780464439141948309708007914821764892786109417409874429582032813560522708814835464473250176371930605995687614634101010025041427760720501013145585653392248873671763023000972373981081951823771326255589976305138985407872710211836758872936903471548469333715666204616474105822802721549942006116453591471382144033818674428252835321419346719811722405635089678735034395165973868120234392406928885873848865497749874125137080508074127706865500899964536124734974679577798354108792901896612065089398710231489473707365885214968164060592803460793814958704362837712012707288967578379917007832242581591252423329079147218557310286718615205150460927415113111890018721482322896532162364174612683903660213711069555954440763286749356611755385937888531321822504819290507357881574429263368965640709239448294658121717546919936660694302736185633013919133680912654063757116558433816620038897912844540244790969897057492072064413248644502794865457061626438452682909984854818489429628913895545733187751793700718009074022507471356188194140886912502562683882935533017242648328270373185310314462233410416699494728546053742033524683383880303555606775282709019945959863339491042461584704877766563027102832027084915891094004198526370775768086180522146203102473562032074692145466989680946620308561227514968541043523327161805216161303450354734076152883761368416928993846800238092976733562199186680288069937112055512256819848877185392492793001549958125904460530892286290812472689912948635356332274703119865729581887034422364178660999008509180144513106250348754964789582169941160144093214805112059278087654003636633293287849069636025397906048225550864889577445521187270915869464371391460904363961812123430661418598046608378565180698110711810041494528408623998539115777414204167341199542005444363466789645206382867703212344705533136459610382630625238285982595969546485432820986612526658546671009558860506089768473210675161910538333225981615527948211096490402327430451900567582160688684670264322222487234066594670175001252246531471992713155503687687654071634304217029593210286726230459287523194281827743743176029391269491240056623380176412031462926988408671236092785587384350205129831202852643558189135160310497696284972521332803701793754831717485493771528324960339445270590806811300688342385729968691921042842695940050123163297763587384099325798150200520397065497731328237562185032136474340356341845256664431186203062587615278488906647439647170908421695842055197007732265312671159827399902243182252843885663978870557683881208067271802781247064996443318154372520725314299600295851743269695747769757754429341741075894390626659745225085255635962107461478831236990110312774632886473460537762579822007849873223133846279129594545335460155395149238975342751394233834016240319505108309436499625931892583091809842034745697803144059606934303165330832070656105551402036581326160390986408489897079996159139632155340936979391377476116634006460834038788403880497876110194729337351895713022905807083317589025386303030992466545607722627645787787555350920096694028993659414310921369602812605449128930110027962980170946752594349342919251567286375680309385553554680607078708441238173911622727630305510001865279958145737575547973354779239168527292982899026041811656945937861873807596523266671769864279092366311239298331818853941590200773798267580916429428337036078430516585792692061933082535853829191969455881857386342146208764511695133849555130273890089283459544503485209541994069868769346545118623410290567846117454982129141972662783821340582873047288888204618165540659428963770274418924225180935732076860748213361280469835597687479630911068891883637202455814545307595823097251952439317486459916341256973182347759320445791761742932168380242366937651821025257903794424028309810574969509462663266125828096594515483974993224574495339743066488210493534276628169232026946934773106440392738243079913824426158816986758979871900802449858888925060022977998220181773874497925848516087875725344715909043836130379513459767016379813689175925318419955922528731963029506706923537491667769730212825899889593207349290042174483316461308758815974201175102578833790962568736928387234763554595398691216525489253425372651408313251266576806507146654553963376421998089496187425715223094545485699277748493542194093885927567701908455919397641350925771190766312372605833845592015663546660207891906274425445766556873638003719419587502360313034459308324787694606634467968013645824835773320771742120949357412515513715312039341294074806983179453876999682353106911292199426713010020135583439167904447574369002013018054723577079080088991087799536680851696297022660010067979888631516050591742835987790284535340883585338212029987258585501131710874173668630093132402051106671883255650056884234356207496276126214062212526142430574088047278663560858625590610267078186288600827452097448078179215436771510842847430997216766979640844483462408919249689060042463275060312209852715065818396755810212520978284635293047387897231778883137149785484959589012075789338222586460592207679345427706856338727032290654645949721826071823079970714398408087409035820496485433563407674841639990141842516387209019037343866090055509194078608817785404518087613647989068260300404673798561621600879460852677913065548859936131449266489131320808679124379514222789475310828724794383021840802914097931041568551943828448021837901597494874287209476103742832776164212638585105890107319953845378211712375478694949467868059286979738565377112015343386618508581935361722093181631933939226125246017362393620827222811727850769775130046710562136665021481698869950905709787135045526612865952377030548083102225539828450194827024405244944648191807401933691124946029737906233334598933229061677731104005325431303450749430813729666452325739319471491158802091114534916389591299567735786719049465831805378080448704383117866356878952327447557372257800123818469429350759817368334370411103600139530269243587812832140442512941351717156146361135543242658856836328054849136655392277262167834227550678996562332125490536470605161102676321244408438235398338853800486027732054382363899382904597711250727733015207836642801747560236379098045968689001575999903609726656876089706302572689099781282018776062093451560773645340091010899365745829102151668048370560132334576862193895897519676970897141351685388495675938460560446178278206826420644408440432932019765677044491909577254112040361469599594777378630538622215687545404948962237447718665689278635103828917190688278897598195734180827102801764953513592213054296080553422038545157244316369754958616480084197608744629473836954163918880877286487969033600801553599859915273515953810961257382768485425077854146246351369860087093369368622531093089015322504889473380344160927549522527086905238703545992135060233044220870672649940231969871441274930280181212125780703855148665049882402087967997402650391696438322792326280507116355516744463603370964392303077384284662700943507720105237873629388717105839796557681520339639456593890629776648974917298606607479303791626460945896083962487219167693826310231763515436007935828603217867516016228013528658820099191186146126875242478741898999369584790181928116531352932142401452852925160865834998006559301571349699274553544252832295051706298776812823994121801058440244851690043957156666350140562744054732871659241293724379738413934681622556504277362806451276230712541769804060152254864397382063560435161224581338243696836897490972405169009699661014087276383646443409102345652367079110316914226677382919113644907285526692135081929886071814031961552592242862708745725019182066862427194315111780783975148145841409363859124165673346284117188687165574759596077817243964814127105458830136644795867140473085219726529118280890150151084989734584183639824459568972842563916657792546399335962102684621116542897968810373532201638268312881210166883709626463450536544193772197072189967086294111050333232571766867560158741003409159106510734634371970481547048889935741981628872484451130712344971863065197125965731360681859117791099468059724896649852527986062007120892281841574525443948165315956933832892682325639592641487869942951047334611842916997254695484661951315277052349144729422481125495800871015625527267283079528538282658081256455172574907087236606956452576045938819634568424231759172459732872800381523713510590772673048189254566228292166334952240836140688883444177437908965542383070583816072079431089100280304442442687406856045369337464148123150061508400717517879241894677838086626247098676306719594574710849610592557979596990875489891570950793083053099891751046220631204633407737661616813859637255698937730326712486788681142930536623191934821401080037623414624541071058567182173547831965879764151730515432389881120577497347912283919721259689062805712068512069147781551165070414620060093416678259438854984080853207939818940491658221764314132129860112122969077630515397884374713272165001974852023156029086720411111238302238640910278463328078958975192658207281577479104910702625102142045336091297571573013200550007605121449234927607818993812574709284846108604250954103654806590639072130923930738086003743688650685605008436221664455929465806017073894743137654570784329328735602231345584828050949690710223814475371802816107400241820219434143372333744302833249793788203913662869525269780085914890716010723456210631674594930005966776211739522585596564938404957830314135994361164584827469209812325994756237955545993334535705030741924703779737977213018953970108254917693148559479088068700909160940074916238637270353168395710118998807292012747649391973223470382218951632568586121415027793333150473004553236296046914647793365406490414418037512786499773399052352989679188785244952862544340773558562053291589901970488786645325898398500126944848173758049666542122053970979823464561618952400044877381584684475988723559567944060378195321290343703505601256333204943953306309286394436983548150275129224770973012880303716673139774095968561586452880547668190004981233433145432854154948599549393935676664801720623418611848709961557958874670824411468628587632462688276483501765904038496970284145738443528806834903930899034167691292326780506109901424528505589571327067891880710687064712095893803726645780927860187747495863941003282879701371887536898015575271949749593921729284738761091272339513497863259105975027917319927734739514217190188101836842282144662884272493792254961771763859016688978599855471733343129422051882801600898842282444871654869889311358993032891290048378963553711802074253160327019283978936392529098788721879068385029951522755511822324126430933027043629721076122416560538722310143167717819276002839371612255928634702834362133437162043528281774494315668032298233188464664489699896971892769919300655951832006692544344366667211744678041663684066966655651709705462129866553793645122504026433505155222489482403732386840636288151271906103991421139668594475359231654371884259857005857102035263663672365276565852932429196832010651895969805416330235265427650273215667994023500504607745621463986771335512659743201627381016904539343736457403229295889525972988844694420832775518670369571643936637520100064672607101566876606043427294772761663963457936976044577092483160326093882481798833467678421211726518597788766847247720016745299291581907269318645679442773649569749391512532895858672915490334552917745664375432663718222076377776279489804692143858415693279003707573706186667889894067698421459635606576266134582302877531572495025614810263292983269881120368235424735147188333664698423716570849596020582655611257513808905874975300876680263739534070427764595037615496874699845838236867956003057278826123074699559766805323848043549393174906985619246279192909104652296632604793425474909101246059455913937020029101067145451715129247833075247608220083119607116214007153342135645092337149891006153149259105288671333554826967741694831703140990945545758721049662521012326172417514740620079725621288688092046881404895917252819522216014444326643756463231240114973924274647885860599288474190586016582452228644287972134634256584797059513104384250698949838528024155130606986282933171718646519498485111354296961034172761653204435159241667438093191346700445260087016411345558166753840987179453285961296455730204310141859678246321850662083356366341351907405091524525745780490790083080147253875501099228702287122407666308590985835379483327289439921348625617117460168766016706214443473866602019290458296326371013364580040207085138919584421335864739318047464791408165890314359179663685224198671824603266885246035027113419887679451276540692341743068339164699729439909445769107444612974714632300216875250827913969847763399930646505808844870559628599825541424420698022667011972925272107176357009003710663106631740232683703055699430060079950641774878721825040556463855409401071399695281664755432566182934207873845600209364712904678763382080979157478344732544572471074580969143850460810042324728060038011290607300280966702127464786612054951479496347916653415732872616773872300761972364867348770127721342541192136910068721996855796716814782524379436189493960209857666864143698048451126675349362652215457341447549685405208115089750280517728233340668627428398658074100611523546105318734213571702324891248720722849282498211669613761234860037819611510320909697667060201550009632928034368080611276781249320486106620465693213730950985639560643254365933339477359483677440817042700919999547989764471587867011043856333132378105258041481121792469495951928439064108051421887422778439380996857881088272173193973660192472565175002108341731136015507905660957033687106337294824850550569333542577572091928771557984777618225456680955483457168547220830895348324478728527698182657429313764907986511464076370726491637234458347679033230433192918843493724709491487697202082239651242981428025283721195712646074022147532534572355930505409578786231061822745869821695865345750968073603313365879384223571116297422735227447369442601612183608207399322944287696862650924612641941059143559533525478299120041030238862867396114082916998335261944487361341266241264865700626984062392057040714541582349889922590496486553370104571051910628305795323780021024969303820096168684439041834090668415522337879746275329071856737531068224371964388692235360969362394223562951290293567381525933788664446963573549362263450545470207107539252131905659753304161850950486295603058963106183461829139796936532442268798006553420921271613971038787836321671409200969659578528723194249014271373937152613768410879951305944051007313899371771556148129564271875497662928484752909047879449516198593716129759205776113523635286053395952321117367345144259967176448301444312844067384313262954921346847430543639350264387639423711714214156399471881245836439121214977268976785795004382720988754570168223875607325184003435365525603961098881611529207277044895970629559937245223300666164150417108643666126486049146007849674713864737463660387948218440958395367812831885292614614818809624125933414168076140298906804887380939915088541520467318309871189135421157166104427786412630258058954194447052788181147496497801953918840730910507209176229182680398135498775493808288811451365983411654611167539260484218070975167966565545299354033892771631993704603511245631621912291862464389156257036019914073442192516753030111474954066001800915996220432469714387210005645177135535874431323095962971820813003008028552723931881229439909528322795226153706172291172585224698044714679858215008687874545909086720909457236728331210643162056510732099312942355787379754628371224346615094349785273666838455818986281360395600780883943093730733818525920545970666429233364482004132190209361108519542075502638109111915985177543958415584691586604950996404592246915045726389002759118834922227061460479231507207390417284689910312411060833711822193505542474449321961904121294528199785086686909184235606447190683054606857644308113456474847062141592865689433916725986401845139986405287653448846380378733966771109668770986820934742292032075770664967036925387680978621357847852588497138993868426634945922120688759233116757964518662863513496551445437100293012192303423874201435096203177085099616553281812498656171619269612630823816251960816330056665248785350006935740406895148010680220464339372396086965956399011588466898519700639865621509914982157372464639028661314460345158944277328635998974281812227189445153677872427595831126686147872635483540665900677567979341371020699350443866733655711336606896317888937434054227047015234620561266886327045702950229381556128630221001094721172818652141021204771821585213879773891188269902123311783497308355553781823413660874280404927042103110755434217959699068302208646096739220385773555004201552270946555567531320516077813431502945230528460271779914868529487642751398888113699169606836533925521631928917296469067151147894910661901881091959277319857038430668865253235297960334340551667593983626728529762731238250222633116797453946385349545741477631601569213258779281480188774535552206205637605024656554756409601782608531797187158919939745178665993523220497639719428700199634208686466366140720470500758898325678953386534387324749752686355443197984818789665182826871860457281561448102574792592097198031803151521020349211800440056178785984497632910855464548362348212058282241054621539564960668844836352029269441155068071034970897763586586526289234370518324171061977894822620835229947622419232487555137401786479234374137958061909460746532533353130761312949371662463788869982463283315570753431123739844912046962418395191645781093362305888003948288975149119458882052567124308934862603023079001651601791174026839488943404412724155371592461013271056920179295477523104318134471671260494516791696638458268170610821601938251048743265577238888610667798036453324052336445732222543902207865501079424447536647726166952832869790097499226562824937733742935718454303687685021134226800763107392990180462438089140577366305154814207374703492495209870825285573981265037580635173526961368221909504368183709912052406188659259682426516757311239543775207405294715957096334469346313887802318560818927992996720018625092430490389054108014343059016069014321861289158787920173486947260415507604564067825386535932978820516291062817834640778846016125700460007582509158892775114044885033449555271927089929755770959193179360724672647937443060203295406482811440522418574322647637255395816752294296355049720010353792304558288600805847922268946118860464576607357695354698379736549598823553500524587098806670720868055644789849350924657842833445268992290176061296624579383474214014175642414761814082372134693950722493021839296225035148460389818831318566999936596888377676189613513760645183365228526662245482338840025498736639453173926463067429520191674775799325780824969948840999882772054511330194000100103950601436818317893323652297441085103167785254945937056822374766935174495007538232395144642086960740304098321012607029614655497780245419486896407684976704538254041548427242977861031920634937064218308065791236085245318744529688131475973172017539757337347200844180661960505344782671720961481346081029743551013591441026058217641094810003283581283946778054449883441998071792284062172034825258954651550612683840069047882799109628415719889689657456488941012899468886465917181392294034967807630307918802333782153715977639513192338297066401945638808232636955203617727328987964336029453675922162035560812586857647577086256105153278730900306157662965545511867455691499370894891380799392569519218138186722430660246647077610228565594971388716407150288490379346710668610885855426083638215954255048089096282759643241299906168696758177780300266279345631344359741929634706885006872318357194290712326338370328869477617305052050577697924764292700439719745664278416130317127022687761961278200373694430053489975705089703271133483846407345624954471289186844835368031038070606785571219406038054824637420596450521763777508124392486872217682942815958347237491069377356232893478738805131505744134538146811445253953179362292722599104494544986790404791303028906814625370589112821810414252214061234338847692308036216969542054024567794214000100321376825022813291426547034279385370764708336809473699846755373928509283138063818033866712738535939265781080256949621756148962229128211347622886672441331019854733943693786291244131302521890246204422797832415196924501741822495636440512342894724334938776732933097437785365900684603288208169253968372299117437617890282672216947184209034804673358730624423757199986964598543011995791978661341899371118085478244082433803747222931786563199199919974094183698514130305046416339130007379979031629881910568850833347776122873908582910280905931022970469515954228929078948024342164104640699156050402675186997476763452179339343347209829802660839422552245967005540419888402330887435568670287110837601328619400224667023618222859372893346294619729434199712920270572119637314923385466050784802297304147334188157658359058651667384351890917236051508754001133574971098835321572923035669650538570887341945910305335632934277914176589763000929656978125024511444280293032238979575046107716908395103846895418228958442031219277235314386336390357655142665518889649597231513201295377461432915318295557863192256621862856148716083774810920218804479490616466293950349274200332078713175269079390724514320795974611852846835234832662047137747778774493819402578791110137534267324596089159779776461572546714565622478708020478299752201398847421302426228992123636391137850386381002023328825699970418442384244003898131743336082493315002440602130614661877308286252539649490385237683308536057341669771980797525732329699936471484338671023645729358965194741241019236779990028019522802131494592551516772498123681747312388655647386443274898311139050421929587796115244088140465798192434852862549325306361959728111288557144563577830527184016110121682714031237240711985815223336648630746805657684111774317436188460582991455596604236134292534532749766179809292117141804379483609367204923517856256478293879229787237224561186113358288251331365543286417052192354695159256105928524013279270383648475885668459397839184618979231006814611322960820432822488463649011870992473626323473676397869211556505449046341612794806438241620888739167860044684914023260633732548833453528495581331227019854391835190845890343564282146376272884802664633161037178959529451434687751065373498902312414366858404393582694835731454091535159400408475536103832236541685572922708314294374068181754515621808984847896869719360319095288266282147228814135137261887159148908952205882053456989977701749915902671333004070684579447915429907105848415749505982282930927984339972256583585128714644502644684366687576793148792211072240073759812030633681505260923290890732945086146680280601950154659943805619845893190091902187902642549550812934313755628534106439581864392446101229691761322043938762713910795756122391323457240206288242469500094359713537803832210506107423285826584496253046269511310084461954975462038377473858136806807056226504171722675563682922467111605041883614139444203711738379479585842341736824930941080494614892254345602644532491697846782451176885441473909728725716607974972088795546397398810998625324711970516188343659166127780010639926360884288893565872018349350721678781644960981805673127187936838093477589978614756849868320243847520837722777960273185680998752179891180553827067594228730205258039697882963444841554530567188247193358307058592852580363964169535945187789056959787962107785139687390825269301923024196087029765740476185407050523076336858442087901095673763247410534140969314288124130524016838711725669121160586005391977222692433348409369267737642387073989404192444552698266042243861414560167592918449003290126952161034923519024517247154500419036215494577184518774670130649332355509927978375592124685847039648087344810376767118240161511441219070092675959535091368677366239110590732933768394112797786939098112019138407044525356481500186356490866645309502665230743916860169070959797210212211169985506659623145119670120138642713253395236154715237811039479590245855978230298540114394574588915779470130765985446281521027071213034746933441844358967672658736453353674587974419589615488214366111294816010166715384460007023478374234071463704369265510784034047988783534362272570190952536903399578067135226107321659337346014594607600739876742589685495008210791716166314916889316298010177714029364018835387762812891084144238782857158028276345753545356139763051276153811402367601519207544245469020855375983742006084192464530707258759142433390108541956401870030371953258103022615066611114836822304008327957016467311111686189588429575135370277999601883595124869751656443084212921791782047249032816620148709934335500519344757144226371525162896286059511020087051367657508510026929005039688787351475956856835833207472537653342386891943354670882984044042845245637608961337401400720821706706560036854442021390739528363548650724948494002705336652868220270702442391497474503627264698947983238176474227433931331944141392068499744043284178030433441832700621511329549973487256277650329194401231323828201424622812959465007256180415881732152290157425571528950256645718070309399172325082705428905577151416244002949880652118368568036880930296302067784367465316193781552222665912628417871109167816979509306964712964974213950731931015142162476362578922735940789658555857142014992012808081305424507394741283134444737694223408104029450352239768528353090156274392129005756758284084593363166029735728696635626404290159527160117514016630036520430356654462185196041810882981524298778249227282831889435563381163871945532564446371289287374212813953598987016325511592285384207263722480838471768496772224522713229079739792800852572525948266966173955698174245464382196566487947865683513964218412229125414058948982157617870806940753515834160212120663921097142720947459067861668573583213600602162419143596665324994932044756438703397387673880087100560704774671326967072399647700124265309402285891665554958831378021218694761066131935431796952772981479786388870291674195442434801751277570317491743296206411684670795721098601621942307260678480899412666446809007275821096160496388619182235794001172341043898591824624907955631981205746939680255458105146216139804956791814393314246562943404909817852128910877971006391126717488416816264291985540100617829680720889868054639712590094567127726107819258507925001826758312266396339307407146640657275335433519471571943640651127524816561379255230943924201376597956441142907936322970137580874542036314119212340953238155536353093828342812167638447296627536015071409168240764761539901285850525865909039148355288629739853861862945223152036267323221061048813013745118760981222822048124521454296562690706132780311734604084082016212917513781917871214449516444577141875532624172167269732634148188779655251703349299721272959155923400238293292666384342867307599809517900641542630060603975560175684857437518959816671793889462611877126686778688484371157278167996007212412058727866088918269628420955056293164851356596726174266088753145174597861576621031580215862357322460824639909943414320695757216124704268208894251533350965091255287147080345222126229662183860171197956875340163152066523834568208227320331903263180284938899457700011340868253295679521087747174658481413096274432051827716077960641951096531160816839163723729144537073054157158818200288396391349210835969996396309619978760997954071479691393402469555839405272217560398504649011504500950700513459972091361910067993050829304649313383397297847040353212334733147534703995126697620465266223068126010129834917891383182110771086746351510149310517507921838521374999446301522174976629248248325909192901451310358687009282883224110885545525583823675242975182798157398423191578148185130869739864159302304967830091212190879167957543460577076779203003623609729578619094382218838166514006872741073968370052766200327392856920125402336840331546281282187722880762614181219024966792041410928177856483606400420460746729378225703208065519000188378049929181388855977785349651831783493757915078828924081006265207798225683852828904976289728140770261086304771470532630743388198861485230185797854047268633358200114894188471938844108719839581682061869712829908644436085319403335812411132715859907690771231306715359510761387063619114875762923786383341602818711732206056467648278780331790132223153123843198369592350927095724564456724769182632688649391423350687414553492943824516662836940792240463997326760373176097041277440649347586615677761421844035351861242126015125026580437280513103991922701238199489439643912842281100672927221311214089021302540077177421846598051686774371720809691379746090207587315785852613698720597000747765871975393951202334524737445833612363238862361734449532341678314275079262438025573419949038787573309175408706714358172409222259085055433893459113873137232775367375952333305603288356358415262950638059180929128648054616852409466567426881703826359103728186911174687023545984008762615950342199980525312879384754539526180726247430919539337118101619659540496508172614544677015493674803922608237750142260836553162995247046188883250996812263444865516217270846164138547859559625576673900216355652891422292432652401902066904513655927611650761459983207891622167879617721958225693547590072518103347562262917396135657529823610632350201292656239952133163695673520908166108065332915531803267195681354282363415717275252670247024146045588714708071122323797715898630376732263279694339404231738508233250195090288827361459333035251835853159936984446088608981574348718193655102291733274070035618289701612963564443726581289136758687345637927005469714621096913112587480915590952874352535905888176921828225877118117229441120830027225900965208698841086786248636217813420763945625108203255185639018194892059683400155980874896093816942877270416964686013599170327991255199550134170643099408258102902153765169198564049663553850986210513576650260121000013070639208395501676700859099996995628316427467411309459437337678020776353504108616002847139249243976461703003819483758013587543642603193516654439255410953462486206117419438178093389739291325255948023054761007307141363248945811087362309272989020851385603455639677652911085611261597224367241792140699457240726081705872063178495173787105402554209097635145756478074950770772959367517626490745037051387761613782246675284140571662649708502575555023431666247549613110048091932326613023581872792806618944169370101709280065942717834529345107191068910111564794238256466292801780841458716413797138573079943884985278580163271395870929004079990341123998211200437201934375845803980854944473211638640576734463900792164549361082734878589881532241227237359878995893496655212630995877686551602166145185012225467656240821587768357058480235539590431790668557231595707434290349662795763111679905692933325342411304137830767585881471198404363956024115133086563379335585865322237193355466480854913665316465838381997685837063892818046918459471938779434983571404581402585598886956900989792638923636966117296329318119462579657150802565326380694211478097267477927170159740071104640626946383106221917272218533542497818996360252320290538194130483960584950649132859948009166976001674050650441655048552029373608141024556660631243355956251443366254064637238937432715473705674925664447685081085853080794721539417951989570732437613145879502367012508765899679281958889166881681698639821745631994038672022778210642100563046767045096955990446974998590889860244800235664669148141831430495649228699693226754553330647318131246786158592522229502032165524780697700037494456296290582605287380739912998622626522185849086112948431104369166992501748206839919424350939806371685603101742146435627605387197740009947143022504838291125134555194508076194472401198809831529589527055077762764338466610414854644645135044751849497089826365846835224274689951851930858552694899240182256218363996579964544214337556592073133090244601262293137101197567157193234023529824713169838817052092727125772109553404766270485616396341173964522554752849142918881204422070835732959671560126787532397229394510203774343888122755720930949934587535998015405050117298202198431954299504313770159574895507185125619599183486616895551297243477425970147081533125956492375156164227269906164469645439687616697307011890489614251863266641612336807909960082116824295179628723431860515458932999506696480475109245252479248949314611243120462359393182746069646345685129489401349972656706534414593943696611982540989672086950904789345415095271117529698567156738815845742601396354563138279765982306743015398227257654457181941681372776260531042860216767704621595549441000026236335305205103953965724573723933025357226405191054640697213609693936457075330545123876399543304070136550977003473670900435694557388944083247497372728024947403998047711836202578971150967684117538062231088242351705624572009944941605737146119805604154426142540759703617801624777453542913510674279253649336547717840912169805167714880768431963251690915611976130402802243958216838001783570870037305256179337828193403332599007036362326543022522346791831071994752360381377058929392181431186804656336310026136571086663417213294739117388569344479478747200102332068670624974679547138557660584835371880036909064107774098636446881762877521354443424355395578141022282415167451229811660497200444986544744964476873418266149093929837644226404383770666470252307567371258573172677334602690725421368934880268220956334425563975643304572028680173053449678250633723941705686880154538628810159760205911132066497611792719756244079423719794391437809712114090138012874199711069748261957667922313525769924214678784840197113687912440289905121992169767616793074179842778202418517331947764316291038086302937563953147776562534614546438026658563994869284650231117118277478148935338967936985155918056367481830677059705734933762133357848966972613017420731919190219454633407088642172343550085698632618212814902676675035269146483839076904003001979052451000970265883238939904277000688132305840486850066498095059979819244187176441939943410322849313280779922211007709199588602439629523927681936134293642030616597574420775362337949958553203295160674889007223604827633577146492773487845089753761550764588011873759940460225381503858091855470552734288754629072910565724191982220329626830615737517511019947535523253848447682235371283533214450663451685227344491602168645597094864921639670950385130769504988799219041955857799823458026408661839480083100448950967531389353584387686120035352839520435262035765563369227397404283048589963802281346489766967230886759853542994260060608943364441773008246120304599023212746474080972227344300670502718636128087491013614248486457437653200893869897225582338449153490769985432269067127649364773625240778777920419377062139065071578034776068652249490825389809108627071725371381704561770872401243823526838525389575333560777787589933906387498304342452708960333919493820591539251588187953378897106890172214655025854468425628790201339537140158720366160441083942452501015945019736933729080169703559815823076345223709580199830589311595797191300476198448795506531952734046101322427662158418870065806609943566248430414260701551649928576575733282411905413476657829620588942750259229787275431943054784956720230913323933548976554957076641761397119809107919791929647657887280241228892758691405956035577513465576046605896839808936571553347517425939775125040772198290959495024979921711165277095178899778024075933248230653396960489221394707132788968539064214865818106520265048052627271097821460792904030774881891360984733619292120226259461820944710446971144162813707893152409435673922004363732453068932868826879828455207480005816822509052922203649134827375303802808723208352028134021556890234042802076228504652949650828854928928182154913684560277332013123693695175003581476449775072632075792908802795614393319181549997711141851650877470996455918968470458244156112659675036344989393563424647405117273530459976491650220474166743971974623769602636029119828089388640324931697110830430924189573326722051110186606724322712018594438737247047224088154372144482564308033793921851975462803279776047150984896807825978836190668594183619262326982037968831593601081037114476951638812847142242107688294813068402016757696167959121793944285135855045066263418909960212373064062258568974140396532443990847820459729789953223730725212456533076619286305066902626720310762388272282586999972900898855042232455931132519747317784942360375775252623484900176017132006810900524907924949237965143962693748735062168421604660148347523940234694489642897993853623733243131281834970696227162088056409605129331253774446965077828867754354677667771099566871011105758466271369788634268003874220228433200744160135352678833400724918036723406358720527866776477412218164373975395522375265921720304967885945060783450261469240215761618258800352075114336625664420534473473124843232295133520481830899965187106993675359853508614605332942001251562638918420024129346067161421165215293962071775032453286572923080639351638279275654415362011612535348749844246064961576413643429342782204134587463371804955796496477332613562359308368466648796514881311375329260674045224647624551338329059560897429551469263352452735698346726836950834449754161996591652804692527805080916312943277860492933420110284291035480602221872499991206602488059086383570530285174981021620004496228109189443077295745561735688049208281713906459019826703703525118725039200600728104990068129452701986324809522409661980093141069516715128930681431219923815127122997953772695276207950716277180437457876432734427456797518391687678249039769581939182619873336921940252876687173049719894791410207199556864513343098931077421695548934893774729575410688783406085992346504460646991913629749651249155217615527275870354776159139256832699723261698749587290747035683839248479970803900983262925498891392912872099203958159116193586483413410951842648048439409898617130043164886596659582287723476676551797060874959195672033526800805967598381480823942477045659442025983766646851569980452485182526503311799708034944479679739051731128648461908626075137254698590837936402332238454773481101179685337099024393130739703247190610664333140862254671004046328596784665851129820398258266310014534426461578465347401298249047417978906350492417813635044770482890475893351383063796081174144914252285512678958971504200933366971950788907299827627279064784100639168750642418079466092764665681528980211543672135762245508031180283087016113668006004095165098958582773231765511846123553717528428366357424674518967617103869514386695307386358818657082311570851871608579390636523499928430201741552226222357025695926202813113102645103226314809965120401926499906076060716907891505059203711040306070110043382129318605781915370120161394801883545257115730903598868750010399672771798886462823186071691325563421500559903994771239713549637981476678356754969163697346040102811987876587127066171197323160634960687888214863766845269355284462011204590040041068256979599408635834642436650446512753484580474579147577548398249152149686963499083016277466201946285752698967465840797072091736343645008971329261975323367304916681949986311485056221831166182524647363120427384837143546502144848902132156891604873127143917722571843953453964304371484201273563713435899725742812656480531148588979527928457548283519231181448438018184883834073988364928791144080679537931874976443474897686460981836208305757287642949372668844829417115871403954127670080280092037165767103001132095843470470526261634200517720710337112190714748288812569691158870836327554804064062778277314909744041621203861700614101072051016274069967394551277567374339774968194568973135257355653650554541654583868838061603528665419480131969125239706233800003808181428297381204607192542669336207129712177589749845460847025990970555215732300878831959173744994022729934532728513631241519765419156882182006495593633757960421579156856184139602150221616819440192422372840964339855650232266592941939708533174073947458566944367854217190585676259379005955130049012759279872018443421681336817757476533872049060685999631503677792819424123486487692390014786620635523795014456936539132291940736738337148692390935916431076997495016203118942689084689923014564676047163682323452654350687199780488628193713711716998032092616929565856083768198734634554615235771131226821607127303566889198426101159468390786729376526654509873823228034981924955288998090777632979100943399268002939585776480577377418098138307078704887437049898950914838833078803279267950648672750983754581941196918624148923681214530330839047794760249268621720072519620118821311488552821664593865497237248638556199103470299077112955539172927899756479806980657616927765703773834114330517931681204111989207811179044115679628150086007376834673024278581575439947086178516661779637656803711871590127502799273690713127783417586598622332418572869812679448010286279456027491595646520029851620515880475489943429650208358103158862859596906022519675327657423829000046472751008958733672908813106013832361953363956815138389511579628042942774007957660995357995222672739412209298870173275872573917947928735979758114754469429835378748164000690960622842586381270919869038603940496848405883184593199718486631269783326343410034436357651475650011649380351521043100893006074763321246041109601217425021339149407322334203053050962074613857021710505820204153799405196115077695418573450842496787094943184497778417123415461719332415252097576286437930862408040477510234754125228603033995818477262093113880734094579482349570201315931995892897820854502382437221099981713106981527205630307407991256242437283324104584056921541482312421674155349725718088131862495277407852564557439788913628176303213193983059976313344299652830584359433395329211165891055952340373181243484315165582903779919712859451745715865990395719512256279316943566373206346664101684722721083441328418767382595056259820956946727283537349370768736543531397413688316305853647007625398216290020464011863537202531447307714076731432098353640129726888352765722435588841589237271623870856119618859518139267102075406555172359564711353806735709145441533874461205787917995776405456226267366652806710043650748978101001999039685946751600501807288392350873299911452459616435995933545536218768097320461631322581692098650131166360967222754702828402513826831635958636133071102779893689570866659894321462740457129307733603339534299661297947255480964426736014254062549848121277511092854913268707401252868283483423822406667559329639386150044334303990242971821197701394475685344991129492955419288111026825323431079842149977300363317996905310658622813985945942510505199241972324468210517841350866759399656208277794987976074109349080358945566681475109656648132564722627720239123435644705266798863827690297152017822377076983475218037794174126820594701350907385771701581675315731748618931038606532689184825576732664187784631375180294555625664783481612960975131869808536160041254036659453417639696796763051795215325809473196607767324622882409390828901181681073987154261087961628290419774739320198402567591047061625422128292403127696574545072622234082033464931131559174396090249264647287909445400493937986792798013656822968091030133475976101040932705279587548308203648158566601227890512597603593908230875900999225660146306042184556823860090763979589448012017161880329675660110849655144424046281655034284566434470749384590722711078059441230185389924453403237935208982485684701044297975064860803327543056801477732420860044068607865243135899655603913339352166640062338625288741970411383709697534226384901623520374289385494592837169076914014105606925394426011040393171214775371058793141091914240104033091414155632587231267689159442512097896973182249651831633025103090649860083911091100341275533655477212697806062739469894608737636037676145389317947904283623219324432366086745990422812880522592412371547526621209012589748591387109691507766119818868958476222321674441494663586372169301802482202460047742511892534731120797550668253803051079899201715667040438463869362382205661839428464706253124418739284265696801981354874416474273615970365029280164875210656733800907344230584361912603251237861631248581022557243796851666550883183153699628933195675905022092502697617528964836262866836238717686864079959214138950204082018726626978295367263460362994218092754402570832802871592471148996500727271150801156893482953136073553857380767931687513222813600785674626222813757849132359096245522391751053433023494501924679379461053785096914469970132357087793792265420828178874179589824101179603315434725056550770885440379376739101553708023569110497200518645636619814027414887159333184387297192655342772161786609696033473037016430662495889568287348031886177602985414114572780706939127406980401838337664651376904276884546512594143565511321117279700599005064565585552973758837024445084865482956442956251135350747787660927382325698724291001589636669360145251274611938350172786280226250817117758735805192802932479152164479362230047770953715346424422341471360654466812200535488153172474180909608382839193536627621036475905704716776672236275011519959852456456250163015097649675834467859715623742325110014304193708211657330885859934386160010445493938819649744000393724931344398997485865369466285553874809414406446870616301210481311902328163497136131182698373788493416923171744014319270013534232793338414894187305097723337918253191613520706586181947731322048062196971094186139935903468143509187446975955872595950868076667936658192073504067367985651352416831669750527265943739626121889955281944187751133784513758276616816516609421502294747733834768810408586720920249516807657459552565486812818873628762107872357376506972698062234558032635133780227974751929023597264458153050595920052560605909566953378166178303688876909540071905966202897232496620090665433797925054844243995368860526076237870976345943507059817122659160299407768183776454141961989581896988171543398828977691822013069562545456591780247377856610245690659447738974389687436007109484440316673452438930870023799717955680020191969467825640776051018977124403722670359307516501299012897873028498408842728459804718756875795308816136843437510480733383177169331771158517601083040576094252952934203911358062907225266535309150086554788535452458790916304154696902761849674860698651687514481907812753773857096573857076684185541962623079388142278992494227575820947731980284014079413505325741443177517768318151560174455893784429857312420464717343557540559495785846109054859628277230027472421825314113123374878657426240316118515352308767969938432185327320219961416742199211927899677817607976463910353530198495452398680797370511996830203551117970718811798396243426112235648846861546820335111098139995801898703118749095250386997562886411091740257900911795370100279967070853683772599117121755996466058447895110166743648195413634514329473420417337320996030851752977240527207437406192211539168412010362613743248231000577669550137868197282082644832675745274299894868130381341732205925554364014273363287266297875245773877487304804589255579722181045579454523737178028852693948713969897971936237255253499530970438088502846332586576597244366464304438801124670906902880443690586487565209675175723190994498815357615232337658362642552530320825112066133835035528533752205852782234651789516054254599198903371335133977247021742985389907708398652634564128852172213599297880432010057148791190772683464564208265535729332161789734730672724764485332797399046076278978045788320751508623583181023143413657150450312564633001063747161946652029938097696915632422034189594757940514846436251377855584826947596168875198186692488198114723056039876105352290407247756194059703409648044521002825145894811038674730354418987121324206036163873101005161765799937273967272859496550440427193182942826050874955425938976293434506087660347058227890449893770861437408400563187443691090708714308018279182690697555464576225786133862166980673317114024191935084445347088583144949893751761992861656412707388705192638388369135494168365837846843292959300895777239017540795162051401314762734063132829810791464550288181210091937160028720900713622681589617374686065703541942541715930284783996634732125047536417742298918993203877658070337519259614861011784279596148832815882565739574261745089040561534742085209363032105689055472389466232998287944416332906027441796141352463605835157475647127132188282488819641438720276861905494987588693288926042186457297012573590366139456689425503873442896058484495413997684592037900482956537707854706704178754104678840319397000529970355994922709393759891450671517777907432954152138136681343434507184063402219823012416974882514358168327833950106145045029232532339392119646779160077422319018177316852616832944603916640451931027124675132994765589014193364991110166089873157641621945609659692774372722799866661858238135726773986605773318049169013964538734583792370241151800898097567732929031597307115192844541530380069967753813248520518729986486381593146246770249173025949819201750822876733460496039034112937140714218574935425402293752778673606887449127621136036489373215624628210599803114730881445477074491770339089645491815215761106956872501547090947569984026670707325500390914228884362669168199282070815059148173544606737063069387499033584270100802473307251877194848159959912146855095398506732182583683240749870520746259354281582536897957941837349160728787940143920740499429146332386757107920587936639612340076427989067325730479814285785697777763298429564409926823059190248652203253762588326924766219424182775552029779596915405354300756206534681483983722144510930172022303241735215494040801953700321774046491369306200390786571886368319936560821365138216554563850375632397123325524058209407415139616601477387746636075948368402629773363889118105647594736033439217390502573560098608865927268255554780351037156880595692967664577521289822370912779872574482149687858141695768833132470236413606735303113215894335122281470546036528386899069566876998058196520563272606826585399465075794287449306607010735346665608205632450964514040194063847912683348679298444904254463174937979302530214021789501748630480469276400888137763735514385823359573508561736404011884731149007814796146269142438969167379077508328613283743328706400086801191603452456055027390576810467523168583803192884826101197300118969061145173658200756492489585006937229797523969029761538245690919156278930219437427507877813673479581593185054714627827225419908529511374450131357782818009200683332449883896382194585711636430192796979758803751447766663310949876883833643716770390136947740609220628889657774489449974700359379281511393560881835065428691046535992166923819911359746839080812046851220319664100979529719932562221459563662228946522547348970631965090355080688463244592365014774501623818963665749297288755671094990620607122556158881809631249191945128546006768298995458809899709345226508980560299723817322812606433421089250017309292091278969782771173337596214980520764989094948844600270924050479626339897777279543071037500769975819234737999282144575907435100576324033384763562953495508941066632448499149896519063279855830806471617067727806131080572707569192615958296867674414277464422293740031828237190533259113413269953994019248402453155121196043894192005241658646826576223849492700042000053557177679691396221491509598597134836866017003041268103193126828810035937416230331527886079719512552441874938278797132529306664439510847186402466951058561436481520293997786909113770018527388442873266723258041940226014091684225932427681220231125595800098037888754664480351071952549077673966750195866971345456954141394718271215233841468343256326064932068827911944943730352545876627874415992605052849323410516657114784328946248332058538795058220142715117358810419050549810110017923122314715755966679722367543219103888084138255087700808108770271044876012804274159836734640271439684945498833988048182859060117844203064051811675557653135799131401698382225264140855547161820970910359003882832244798571405904470218173860681963134411466314265529492017652993063792677913660044650452475712720434542973534365080428404127007351613389574456481658760003879246549447550161408423741382117915528443763674914133286563326029188543300377339439422587701243897775641307785385290004484434344506652378289980718303750708980424453010959735038826937980344610363530860686003699030327479552910086815856597292700997006226044989781657654607817447886997800463244650077815448168552479992851772984348768366238218548553890496685750630950766674466635320714616787764210121027473254365421898123865471573136617891077357036753624080001553870109651448877788034208191043087966345044339345668064945538604349368788931367981332096109703685411987636155756690083945647210456349790783499016423037344238032852487324597241539303825360040634527452620661403618991725021432151096758279253535057954661947882353737759675155991505696300972518144380489969348351482293392380984505742248109843904518172792757920439304472569294789348703023865309081027292005761376096209789757319152861874442491036061083942469449664777331442594490067706853428439011423559521536572477957466680597880624689691585470915919476988861720162624125405142066058446075941533666798131611987814759525111877887574588244440937296449302441932457856221017030348573214582336191014132623478357364678963696406276036301394228210787128845086729730025225169960747228381030411886872720169681733187445657233842756414441217051777416394337845214782134622022914707217445526987798040956217249105761317471333199555473007365316462089405741115466447719993778874725310530660895968366785478472527414599346349868103098347000510863406533124079410132583225597096502957287723688172726000784504512804518899109919658146189300907593686164193107659464378002587306392347015581491478333320258298103701165276447096770477988853278699077864182632950268915964759323608192684301412288040076536320654280724455570751035857076892827936550705876511555535270437226137876536958577635946610417636603347315045716300154473347835150805030987144294770754267176177781230571605482676774625340122600866070538508246382053777539524000979444951679409713104400898075377895462404896360666567706924957350514439097034927818639330096619983242259980304613184621267538136679735337486098513904440607380636194401752479079413275763302285134804318867946752141970188339052168334227022078384985066970384275281893368008621627589338560886005192384664622878715442027235228818100445616912817678864410302850259800811229722899403375304042170500306010063521512170740795426439827078460967293133289959361044939418198281722941576601970307596830882334756003045075457134798891835791770055597566659701881906197002616640912432760486262849252915937476052427272266403034625986296460994225028660783479540566168557675562906870289673689648481747931213800046665088796439759703219737616471671879328716017993566027399214680843414586720213651213539744673932543554197750357725983041717640359957023947483744854063908756636640951077089069856033666273640108093934764760679899282489426929501898040759026862284173076473095827531157361713436330276722386691516322873367873682096727389295457063905479393667314634502199985192669018097071287181549973844222234762260368674202459917018394967978366787018816159082684734380875317279122209993327545743273080604930119312912641121901965996826812702447889871014598896063428125772249785938316547787502712810178993741039843986231519101014062495256113952235929917251305746371759854520085158631110357476987575153318520528831935466935347900143812374003717354229088992737539350472851396709727945594202659945724685327126443697057050203757713241422953268637167660707138620202209336924689674075660978377131862215937271056977933552326940634600580279864965402860721401152625688015885038676789604519761510597014125853044637084989996233069342387566803037894755242686250957365818567558884175669509253824801536414578531004816252838960901010089638360990774737444156717147723653485929999336550232851335050064661584308727689722441886626399955902330539245970619115621902465897879988758629039094418976834064446919163121125387908593638956792744242741818809165943874302595740820354530910002743318884046258486091578076917237163639804791569189280398722383577673968866447941715542529924539337462021869588796978180174140064841135286953355926437283940517988304318496033635804395623598513613867440889004621432331618087220124059812893990819844297229400946876197743186602212247268320854487778327392775831600525324658291559871872723310432423897365637401715510838605632283064942660180073541531565908987268433988482580329123604488023697218888229926568423118476563968445664683995375292446001999033325527082003119395617523290466791223550717131885631349024280518310300869150016557728990194526962940515096680816066230226208771176168538253128613758964685056191558814611342782029251550975163335288547697375703945614836439634794562013331562279264077133877612027581629297983066019528240434782661867486077289795553415380935799370259029455039359151056272865249992880161974242804600853154911407321139911031982954718960025849454941535351569741666623525525187822828216952298372897279456038942391145246398758547021412936181939019413000764759718992149445109073566466613267200923125229035112075721476483818177261176792792674954729387837312076291769155964791506780988416716714493854459511687853064216092251332516183877699744092708439228812151288481776061139830737350965548646296252506224854692393517615010570228798917772221385361472195302766514040162014512689941031605828063875346061467059214012241361825561779372412421105610069080547689615539413395532226796371950871666293354886226292599016963390459694916544640670562226082072291196875825804700307663660046100675178034314054326788375205426554248256475153397057036521229560338776310344668282485432877202717192717885345844292955435354291388561789981133640722181615082803008251903940239520618868442343469522623330709963693320024569528696184264655392683815380778350102249159671040959591738578014091514811161828348118257293081852489124369896575336582508983199216679574955830704562863776295076940139572659138883362752276843203074316622947251875240386741327986105748021260373992749821115768681724087013033182054375624046698138048198631936757081103495268460593223274004846656582474599069634748729434357610181035292777030951255823929933765062482512014090331067079741415782538572807063680715418885604121482037473681074850484014776110804509176606659657783061849961653805973317672017667896489418589679924560839340185331284583932981700031542451111784158803808991944007500852753740239692417144190162874168740810888457141195688904953511194217458880869178867387223988563750799453986484996181925115070423799904157634789470149311418580709566658077144689177788526204275986371475833005935731778097704441929631915324986054396529603330699020592763424286546360863370867844230686418291182489268304875252581088531589215231364022440787105281186615771465072945269898187349729183025674812435607403101189046862548600223273260693083706430851736801048670467466148037208264688855815664861969139303325486671802436702721555923239538975688353128883704493349195665577031097263390143230941833935068848417766500885655207669191054885270629590669889123681937760212450309115755493534158717464830814778013466647585415424629277426461754748035248878862258104370896011343166464564565639492863853266902422285429035382967737256006438922358927985021414919180875680443937546186064872409712559142216665804148281842366215046038094062238996434961843688096806721937082001729665452476009810891577164587074172007235070557979268925462151575074505507381367786192302970852261729807126566779912545187972573321051062711361331646430330491174424234639055032837908520671202233935350787034285061863315726998743381234545880410071356940450195722801699100324523599720892328947170555357433839519831240919907082618980935318765923537266878927202118194381401279974583095455276387410968059955995551016469597032311917520438183350598059679959122956995667834830255531585084652178627163183341974350627434481969020318394599409407564220028035617335057414391153929736260246293745808687420256925512517268548485980571419762029426217712267073199657141069435379238571916467202273625205937657463473914582038722790558086069623857751223495605577686599674821116503330963564047193288728973893421542133410545617457421345135200051514403953528239773523669298862610816372639476914899662889867026446729038777523318803418481784701437036554839125100325844447717793378870762332985675546878796023897885566276426225563554349075431816535675137593883858336013996484150090072849192429946765750514707836404000645428979699918831664703085231636210894443123767812410418051761787027423494535936659327439726807350126787330062860507536536657136559551718210600612065111306277715492011920935938311126651375877654554508895934484559181396588736300633981488030361504264956701243249218386664893165170625511343890788396713066583347498051212474657766431304409554389119571533725484455921913927837652011333899503176925506230855777619385052173835858023317103041827190793000222119575062087941889180480798505201019583233927619350680170399889970114513605545786662101294076655733612674986762989223632446970308659838214944451525415659888695198821232341305137914426839449508602554956405981392901329502295131703000647411151451646784047116559443585823858812778517476386444028647074917038121540862420179953656422376935045251229227362976640556477728954079512745242478883408713262179465422896104538188271095085675234149364665658222995546773709668613636781330517283828053103366832346983006411025471038164186384388518605311715342894409896602435870795098703720504306635703610877029098138326727385677982002704069947199000515285752533614647887183321284418664303852388609613427020913536773510658922056490306975321113680564258683953849212841417571230897541832969940512816701405220798077664628290200839963268483428224433588105882066904736741301841985989317439552532827477601848758602628905127224634952426891353786679582697745063569522498472835074811474647041079062893461588319923401784017216403166476691581269028886214837212921378459798288846393923318446385080524552760622517681837187121934209176947103462576825273388607024773842409128345216257252831715783658520854232315951671745411187399172639423200369758232034897910159325703779115358836597680063706320661147965160281664359445098459347559796673070858941686273184429757213337441148165613967512126965904794446504485382949927834155942175458128853890522354148234779180352019568031296098624225949875343424279608481914694920557993022939462681622492716726236873167134017908634508648742531411398350007251500992679268516822132608542088452964517657362017409857313072130349984201399487736878087312531444259089828921315989856146844523519758025757697780344850452312286044500650528247569772850637765625867097908381273942276292620660981002464244779740643598356635681919793372001781637190850264913410081215389689750396115005583693233256092517640015856058906545714111056620734398223245487440254018888950483311041222401158665731714695783316323815099962345179459809832861792148276309500576629092946283199457988580631758110469600810857837150673376812906528680139125642028507803910293611575571553868016769444401526370759229363071466996881449872528959431223133739633433178267953861322916701912668761591228405167248667734254528319440981760907994103052630893435146792714507948325744205574963988359323637893924403710243062852684874368376987115026469414314202744109550645112379251690858081936769326464076279360591648338110079850034836363814606792000926711166234034734874889100034186959584103215344547412483549231411109326625489622240877704654408812192445918306645649503568650305624851701912110523053535546736511585899370206336146673474775583797978462955833602712485108891989940535884851235668657400333943006345884784564831820655498258218543764261772663847438222631667075931929548932211687400759718180898771499344349812315626102103226414675594482386523369591825507275875220109443633892102722620528135993809815735198106880404729314253947891601826911919337183400050836571585167604966846877764568698131692398980736763639983575731311431423718317805628148070581669210746481214415512001003639263759174725424873165169495572348373944273642111154583902530418944158745194054768327187959389762488716505537132203631979853175088240374451102899867231700614886747244006675642170083540635818169643462740862470935698367227978988103072896214645170024645532249499415756301153866226236226855096068080271731408801351727242322220231441144621040431494956406240434525586928267667655634108125255318530819436473296211519963974690857613325235005959306728199912183788094079818225072864450018235150588941575660633528318637783696219220549205277376316833514697266599296211727817189693955921850909101717075340358264813714430419921042967083983084982059339960474132276223470512279199524923777711050622100139788564529051554175489051658958268738506551450422871269335223351457947945626128648816897687600404699875988312415938216951814282339990608791159465142326745961501790728685856018448365547747074719385286794304186068367826240705425144264821649126748364078994893645171394450564469727617498138063533143814907896974063029748672228386155727871731410657256747286296206678231884449071632057229944119605645296462596933425654016563668572517335047055109369410894547155972160399068554306885088294788415201393420163129572735633674439943338563019171680035422856653629197602736557498140243531315156087221384764338750488741571961208978655098426973934670634067386025901423048696207320620116465904447053643430189935838315178370738139076181481203598369980598687216844435077076825985149493483669872779480075881994118049349548563122275537889726589703731646528262380906853446193005688850236961789773962211443788199619560438104109625702788424003672654214347985668135947447498381773561299786001010953228374277787431860450322847007292408991651267449668821464484601394223500856658903682749268852839193816190687663400873412017841545655598717885625087522079756892798876636870978319276007872925074691287792219606094591423251808215461249836649430854857283458359976479396974781633392538214205181265695714722387601644242338419953324358261426801927340058457749729063170350170336539745866568872449843293803986604665722541745437548809468308354369344063702412537827333195554447533502704304619510143080719326415502230710080504643118549172008711345567797174278055419243192296590195601886526386456007488368556667780149993617559568441837550144841203119188278802491598004832097716249432510881500522846012403523843205329352945762890641680099198462650187913723545232894806444007135809980288244320445216757998317845127984993848647822797900034556991195995488681288366364913492831558801782731547663679540409069763287402762533255685941229038573147589793617840155882434248891844332943512721131890881207479782387700596504385463327659807408450581997923322821861466103193207256545495680223960434400814725749356849202472131690776659483195597040565859567772905367879294789268769430243540601094471582139702657487608236209370889678239227205433039625668732816942591387502296939092466466300655954656378489981453483580975880469419075423115795151506743193374508470659105947680534593324446692227875333853925460007586809354451062913577982838957123028240983885675559006195982677549967322439730682717669022499830430840882985418595967739235067060543009381523183169748722859062793026012545639464725368006621360517446497337525689062180111250597856683196010055279097746421439544984445807352390345007606686604697880615718795605365864097467206353863117030233875105320798628479657571911839746032892497097980992172867603404125010819464452190634686132229646336622500492813320284648382535510599626363077493615556728637623048990403578730191160115830543485032349827423351564694110500500504984124069033599869072415539712024050497328356085313345956360262889285453784190122340587186092207617897782008469696714833786677559826993713580305667796854427642689043708408322735870947308636189616815451352766283304271616153528177928468633080565406365053764009603060668747968010852399928449428376127994546913911487976363188606436211977237405350882863048010669800736414536222546754288573718254117358327836197013063328497069188622456689146626343349232310391810201517815773021507575667586768857563540044432678996729566381298240394431973351156413080786874526108975249127258920791648501919544418240571508827577835049527699145472489764057479632522271333029061736915953759954808409581984337526348942108308919316030938422190853635965825883734767207498077183842164719831694639905613892711274621328513722364733346382424743513214106105327631389147245312512534044324775906607894042168673258298706007534541859277375390899528484963625922920869930469735774771953443441964353813199594317634912855747710386027968603355069627202420722554652084113439658690049586349259072672893504239924553275104761248632282999705020020230013730998376238937267895472494644258544053466825687607785935460814635596969039660936323110447803735270315331741718558875619278245737725588379894193288120021154503351163802163493978802418611886934716208575595008330953098127419876540042625136686114117252018897913864485256797766701079051259858539668170295823332094968706744536386354914328666942344908300904151934832774734885847750022396452448733907591037456852472649792419027106291441598816378693165962421143321463204030424776880486981624519112119842681108463441955697012796485290645645373332187044166717556418117599483982254431373104111388913289399093072661957631995974391827829237277249404126424024207326206007184104074550247418559010859094598149143503112257750930340633089758692586950679743495352054092670708876236068748413501316684183175709652445639072787048218592247350222102280299576055793374086861047641937512107939089375611174942153858601936853959855200443920389431898470076112453164038808954151219172699216197957573743621571702194204862964212646826909930841265710946734060901529831864465022458635002377568240006042679631057934261278451235809583133182728499961782132215392475225158109647560361238994111033535637189178222922499782222947093927237134051647295546836580043778489963211881110187235025499815463120128858378408910125695140721956136484082859271076864173346232882729441178045473884763803045796335012893143041428308000434936125415329664151050264711364334009504897477581269755499624847957357278496761940260608522605612083389470029381246656325862953381088648980975844855755362774812966185468787579124650081851395685717687856005921584414084450845306038413532798600347315823825177373732605086395441896440270187370156732842683788546880946180897660730802408660177328647354335251078850749344915121359769459674510384748978418133972260807227229965778857069367779987794018488688906020028192689387575076673655065916434906088680265106804529994002346140590501833553249812143438159881137443933507083515916941511060566688863170920459960717210134252920709533093479407755746244308529643835257686479744335340242994917592262613102828561446814531713761355906655587479463931652562657798679744326665851647242017360198269578661401184499356332173296905392974839943235761765197300542293338387381461699930047961435361812873950513808882796253960171124137880383989016326131387202909457012057958287687946625603364582805793806137364516930644167544531003394146848589052125182991893427894306379295027692457154373814135883619810797726045481835956817910719439209044744729431049537816091708646451367067291702588905274970694750722816688284040894257555821234721696967357502827871287716390126127537907208503311175299836467626534806082732778294692891078953757613492424067800591169879339845037266630735361392094250923935101644007388555777984694237186012201869548643673869287197843876848169912419156769197673672584902528083384927759370579004875466173564410078205969147109988270290297940766106502551757084018274872609493366779190730631144956693339825209052318146338087653674856954420148346653110301763819831442595898894044237867721889200559379240729758653064197549439552061311002002220732585043112887601695929099831941844266362507505276979016645262402682631411811651781863016200837957717266107715657515609494506632413583463503066972250063062010542217596097022524184853867322046757877693696531014768656170906272340228235232736180896870597399160449696659390783672559783796741887829144221879752379714503686077792315681750652186616113215962011705400217358755112779357322554655538270121878423832038313809550949475369516556099676325536780072430914718306083979842067434765321280510067660631769426490941949025999528644610587537524630965700248350379364582744559621732789818467824320519496670621971671695664077807071000393351082944460068593927510237683919546856031369726114783309151514994643449586563057701175601191546807027827455492173521990730129884642345894233847115685579327522067034140804911642091535365175203632396286905800653307570407310600469120049146052821001945100416575162275166169006745492766270167146937366591636762246359201340800694948663739780709175877950550675672318254184600350679024654221365556942783575480317374533072758174798018714774888976698261820004069748976704726001330364628614233479232787518311389065195186331032657164754201946017533788150212879974790082543797580846467284501329484834616056156550311864306904312495048883445915396366429412501438347163968713532248679373154112361189257604031979742993043614334205733110957745932859852456919245389332040430846791975722989045003955401681736656211351719212432441083968143689676117099350266240477834996976410419874767305334086677494349786948266664779945265213817918780340217308188276642748187744593052467680720310889549073310359204903989395708296438948558117206784927411225594642874992395121038863372036748150620149899171180404507714501664178946998140795444028634227257785432385470525360859656282408484897466125010549952547502652144157232291185101233725297330134903192399971636200048982195767552337718831505094984945625944010976871920885745088341806286884807312994452439629536384715530449604655206977932411750447697901599684876860887954895535051292746283068530578899712932961574222109098537507590531376925172831381909259313384955768676915222636475325204228120808147746163810394629332679260608338236044596479265606238632901232433305578393442324100899669482924813850590492904208806391226341366257288742220751442763672168631990686811999430007479449660418374156003558264654738623039698457539753098079617504427531728300192840671573712991821804310525111527101197528450838744975043706092764727094922566403297291777258108746715147158523608758288451488517047476476577142234825350864957613935095385119685232781936546149301943569096766374062398239618358572879775310866636708615683396916832458015294333165597120591602763972539807948702786061895814622864385902057707484831906352601070693075705964475417277246315578696556667318068505871050911878624689819872448212746161227925640365017550170949684588927769767952980975637338833157012834339087245960538830936439656955737732017095124604426964640365670714333691645929388282930366215858631535562087956736940023121706403686577378104630177387735764865624146906531599951328810194314679384797684794311502014946347215323315132232830792059834659645300421935457213398779105713303009082821849066661790021200981395446064355936811969445851005677130248550052550881209453905639244867178055917471689567176930408270509658818608026933405224169471332664312208849663870363691612379946526695350681812718210908024548261394701037810318998792906993671098775029585521207161442065754306931040624399554749226326938296155550028869597613693465525142035646349499727295369763564114637844581411139329359220369201798471843657070311263084171693243681120525858288935927781071305591074228591679458460547002828662366216667702150478064747508260018747616893528491636908715361303750862826180026713651781823496407998774506423214284482393034638424245465404470673283556629650865254122523407041231803205738957155842075528206210168216159452632516090890502452066373330743084781538927283011243223704093092911571196219960283570781673943600917392234323226888248436423378517262074124005862261834769829192211769347875836986771644685209576517166350063575611853507896908189163159374929175663872383730944390049945156106144385691456579412332374711974427149136493047578427821632016167313714008470895245324931321971410620501709154995434671590226172212960886592345519807958059393106486831288403864525222962145256914312268484014978391060219060718050417006028220503871432194073402972404916241208574587343202591442293000951186260808228255638608369004686015078766019541321795323160277076593472958012981891204185353092716774935605973520064177053105191843528736909850790316672179724687370052615429503924990362676551702915030779003232988354234161214003561378546258558711407350277719279054850283585769584872461954290372475388209249448869651702435090720642476856946148578698589734785451930431672555229330758303079556674837340685035097742464537435454469646515973615201441889098852368438682110832991411941343599460838716453083102968355198265651495426616591320353137241601876504357305301050766322320057733229116832431602039115811036783320257407875482465232930488930949609963930217600517440447969431106629239856865722416716860366719579544652868454432270292853863673615589759513681562145002042784781480832328640204232405555879191798301652019483744940132145403503811193889553802296588241756464439314263691939001691554715019133533773641907397242299248718866433030512828178580746120392084814982308608820804369184376921478053393967077819677736285940653677908253372490896679186782471595900860536103642285148477490509030253224718836548947330397646162183430226525095852835140630039116808197009161093889638405842929555964599734565574563599665849986463049566144362096539660880493106098177713453583497875058475238759950950194251847613020715572144406806880546338223535296281090216347048748138032781633692911626273071589359572075628158006559045520661710685309040492839345680650039260356481498578692750819058856181244259395273189573335161884818977631002053786086706672610357212476080215111742096262972316746817557372212769125489484426836302192617303885260451073700443713625852202119834236288388509513363903545000597880679383674647057587519304538769628418722279298982481135802043207869858044489793197237726319206425304284181028743625075673722233230362253009134156642777533649882823707802193940463857024678692184069004147667875640050962453512945396525970962079167846749428089161176612143516546884103859779217165380547507080147462558422670882749393813642284421631305494541651529119649435732027153864025695300439224212966530723524119000219673240508187178009990881316339264510184099834154217406826682576347589604606731465302159002005156254027166862985177349329273257790511780043868073564375208931048739035837739259863779904374074876539049988733402719573794945403907761622954886989645556413748672492473648247226881020477532924367135778323305653932789276483556085501530836554534460903855768661766708102128311780612901528102110418527549327594499449180331756041174807105503017929689454304928407577048628665277821174496624489285416493516540688226987743190698334879464722355521964767394707743878941186790372341551680081279580584608273544408542405858942645451515207376412567657004424163352618068692856004460764385298114497431260837961825811693022485181562927280283827796638965158685752696245979707916784039769003417639778580043541430038858037585154559332300430032744835865802457306112895065805390847242209136977283956854438677728571925631191075084339761599815530600441628418883295232705737697096843695467241871755350761240036945820063924572129895253838481492778976619539159010720022912107882872736479178474515868299050415146324765720337344665691804892280907805480929100466430810817823505252511284415011409227459175054844826479445476160218665959069836970713099010435124699314254940413661924871878316824169560012398070720543219464426245595270849100383622348641744284410044019597413786209194712078017995679478555932865369731195136763043668373510669544901286672635795229656527150269759119051998393811937643464487120643531067866124115991912441626343352420918633600502854880348331325817669247102647009770743906901250718305941217712121983323595110984976839371931651615364029780636355163441743740770302672750907372633354590312088370808824096945669365843646341675707226549127784653402813845034907054705347728391151449572403857176268154783272118440972763739884601836670861849327983120628442870117603512304952330165739847709480366824258726336093412560097422645134971047125000528687791018664375344693061872011922379921258565527925946946740594697543820006814536442499136929941437390229421850769512099500113437277044323830495352981782121753059896547597393386003667112720737651530002448172906043221539124521209329663423393360008518572636419483802282357196231261411939475876183877820024639843834556241113367517778890820326111133727499641691936772301958517553800922859162099375040538377069083108573695750432871130205635674850706298596698140982590757043944636664593633385860674859370901339092454197980076581214066134083855963725912220993873706704507918930750223827500663305297849101785959380182275466357467179318346100298233931672514385907693185712840544080233963847414459401666676370502182360975320738698902820675378746472484345875572257024786996946064377644667460048381532111059334300058296783849075550362112322595866690994333976958913006330606250559324847978443888161623523717400616602319222236498933302175534972933839875081453287386560096604708227703954735634579003050585553504761785049102474992088582373176497811097509625447513390643619733940836281755856279925600647273709532109996325362139919068852942993988077012108543471400151534245062586619309644200645889456647166533688874927034125349942033539225816052541232745782352186897677449142855829037749031078234324638876800382758734564215622065805245227065564185945893489308002598204524294253360492368606336193062451966348827420145207170014316388218325569701578780751911694907604605139489291534492328661332469799422878630789682622935846232905235856432173385629914219212334220435722107106361994756068928397479731316909238368274047508817815534565970733359925342356299688661603319751208127797135138548548702205083484469146963820658539581020555155454025842606880232624050645161164357164168856836647904059783241640325343813768987921300823352035385605087371329305829125902107359788221100392669808969704794992523146011921553135365191558384333124637462624122728427374352613850445812787848992612881837892229024172762531465278614939068813285757592073159979327211570808072154746599182632065386649107453839857795651937436310615898188639091656181379823546459161049187996723322149565859096842905554336704711739189026760612075958769706000336894396708539408476303378388700727114204165500338415554897980097470652404906200255356896210484926186676089079559578546299251640927719696995220449292046622249365670217506882026394883571632152337418179494852180294590252776321410955355723329670221511797189781041674892608754132471112754866292670578265910425200266361965863927486914371236288601466477584089666058424401565442117663530252216401572325788829887954560498328092134495084574274374132167883668150868499246774561404629510698443371281459546101061813062012261453002761380410704869429091617320363935734148488141599532946185175076616767564071853521514197524189653863113926760564153968400510869144751640915336402125255072219483405845968155441559558657330391340679582068740588741789871041878839064579531134712122509459564772882701157249039689952294740064435212387412826252041953215302504907964943432466821630008286775848570902073484285944727148700076132948489265939400227190636142526621017191703752043796493097748545829800385703749564782422733373223108857245692515128850432386098526936930106521474336315199795503435959678218462541607060735887941828492657247604892890552517937743199627051305162497575482765982791738754641165337385748057417668604804343002241231466298594784536398443148305625453213397854584257366122563194161512351759534696545353856797685084970396362258221382974036212754441039466574501309004264176532116498524273227190928244718722673292540154583266687399443754525411790238604507168974804560496713372620000974865184071405572868855391589208744968646025087806669877763243166396958397670096316700865192174390609726508931224139150415076950722027948244742438694957638526242599935524122313733409386701070389290575482941767934481894961176240095712028074759070241857763877616161397372675925755820955064663092189765287435032312655227982355277212779471683377055566291186527638963773376676399831775243085984254978691081194634032224121001061631088602174723710857334231361139866568990856143185052026614520695105408675097142127524553677964171225181679074839020256707448250080772182892065335650671475985819755059168611023138849686096101145311848180255306318269058189328532082968877887120280160783554184700143350092334275639494798544667655950928988327969067669207881604726429523480654889065132796024358013900605710206333213950118813303158093797454698250039407574397191247293261484886571315677887578957509672644851937841780258735862479394033603578867055627094459088105090031058330415998449312131178219599136588669048303277050708089555630949187497765396157468338298640736791717641624566916701537846450435861022608500593184784716886404118501936291268326887703371404839187560969958825784266291464409125905990437772292052651303488708557164851860209797673760781991156994583930727410209061988231722537032484061267575408516692388603001742335614172550686628233437185697722197925094756417634986933928474582446919792700747998691241201435570324455073537866498405497608458287174324730692088861994592836318167518962838314773605771217598975848037610631416295134031017924339680233181264632997644167529105203317179089605639537292481276806738197822176645809894882604154077955848160385387607801638128954448017222958920411425933385461093552031740745903709338836709747296605662380947686056508836811667511910610300558303417196025551380216606758795337018463484628548928924856810653428624400997129486674613433049971080395800228068917323858554823886236490261977596570780454461065800887124755890835346769035800416507307890169295368119901896765281665343789966077542558273235364813638063776648080836512013718592032778901001134193189915323683694365611354688265414265884707546466183378806504398324866619595526930215500695627174967449335615516427854304914409054102451659968252423135299690608372588601889775270642505174483512246001767423070343284468043902110169965569760199948776803310580504538807567310958198610428131602233114298203407704436230498744359383398070166213745174103404831502671182546889803754325051865910676053677698253764531568462639380734121442324287955587625253834858762739159253431274366083140029852058621064819073658293249127366106845184366373823395127669875257354010239171403431122268699103550150304918358509449230335893231813634904908333598631223793496046284662009012602249453125263681627453442799360845292270081120083680101584588585749676829080225967271756947716625813122138948256746473413912489927975415539257302197255507499265916271889044819859482824321321604435041382759962665747721867921107728927447700283999601773859570529531927122930549573035901491856456870946229141299883680415465555856590701023714126942013057236742296149680666919563370327136916019416223375114796865303700213172236619901034598150579111761310236266929273361835597420602903428591193679540256405287953314348946490166956197130149263006915462257227798589864369342117028961698584958923699771019556710140624165050342163251003042344813233160692214547841368192589928672940416087420048323361796961570587777184401056506938754357590405363015674077844466658443133218021991500530110145329933576175708450215218112164346376577027595147085987249291212088954578277063748128729638592332337556075036720969670417643821096273680462439440946393430287015976766481811382601141326991041228859889527843139824523169097824212459640547263206387625311987204356039729666946390559410256596117812563731874768890821617521080607774679879961003719586458631659891534893915376711052471234954879349980873196864525970061747863208899194907979383995400703869507307410065905049370027749086828689029509438099439948027161026331251893675690967446526518667637895752638204122515081081846990085413756911323967269088339690568830839353916699508581192500638041692250188764727527742601159192616587797209319624358966743364222379747241651244143369965261363164318127163096444315280784556539185981439343660347552717882066878419064870089985158631179873955996963725549420324625747595325259632332362395846308566803773702265091872437842971102672218958631217757491837982319528159789037647525992661280191305119764492278815465638055756262611961056838596761277431882419226077366044197223248593061305259599163339886166243840476057085375657021970918969678570864638651523011385321634076817947634984719199713404291808937721637429224636819963405743904067328116631484211090499684602950024403795361272222222520675797454042173711035558604228841090647820066540191194120752857756175702783457968993264679290622898790432374656401494755123442548957009253429592473431739732855705857328441913882702146692702301091836492521173539668459829685527316785561852176125580118240364570812985120382995684591904886821183062633728112062964953092869076213063243814726050959705567590593570363961340490406170985231345108914258434895254047177030607966568946269901289971915167991388166176635629372597062792944911812243943893074938817016063249531581622124604587226714661949707742037012363139415643116271549381791673354784286598678605134185714677120858402609602994761731289850995818831719941775442990527028831967315101592489238209414415223835379677628369209534648325421542475098160559964938487958589010604628031887459991239742437033703228792379681713499939233577094444320300337472898886188394339883669399694195424701932794817045525484802020230059420352820190387023673735651067974383942533320105071651549166604605738706162010474468035144671830607531485903991057619985768022486280289154385557791642364458398849284502079887112370621702963448628900420295131423231113792688944591910702854682373246013259504651295103108639366818328763929600400812992442852938960767860123000345020044672774818988526526658415822396427968721975378725465145284646277733114914459675371276875786894406035544145969916100930484477707430774356124718805758891282935989293449094264786614274884515152854038466323539150423558769887609924778535481012081179383361899449182755552724825618270307964990947815168397402219391042686944350472712807845445387740569044453309256461007575326880936951094597206150708844112775570006554969044542687354512874703980958761584982438530223479522119288950141542368495506147125631211350690546893122989665409626764189571782031020748198973009649347665435709309613588135250601061431545038452313603345037071823603895957000638866313128815005722989195933337595029418849772286021264039763441712849690548379588216194537962500985383873944561895917954663271130366347915719117543284645380721870247103293190986057579804584743719506947650214454626913989339319523245671006636790391379659960094110275824430178208771221333375829357125289974619462889402656250578846368419437390415281023830575877567523008598963803790486093294981641250410127449514346387743140211732259564208321865721330816393690768310122542198006537946650693970226982623254648331564064620361309292895313007700218367416157251943133750048232891904087444608706384306345044808858046846155850148695314385368190039112412795763936659140263521631382299971501694105438610937364138867613657426409100572250763620788350208012949243397160483149151088593024626864136212687382014233341746992488861033262490386648490769761998240729294702940562154774740372439823973092139396597221319241192312538458867691814483870393702067449228601225881407107162181409045812709887990935340166981315401530791106733999942035175453682271216963018309659468574768182352407080577760066161856974652916658114252423381016893280360182114181474239289369446991711680847807298502849252767425579001907276499675429908059837522056491916162742718307199664315417584022889999368769830809254818671680900776672753438325478303065964375865259702614987854877617964327051616614164742662470069384192286604600166016548604917761825352768521175151639801043987730725503275955279056507925374695160065087871409563161542478012407816042131051520129085742467434423123825481928859144903152349735383176218197574342757335540026931075684366395717196946976742686511192022713857972226247058178173826405323546812762729147986213836113981907416069400024079746724887062907500968411632688315370479924293819098787741237778685562545244512451126254737883724680790771607945850947713093898133384037668613246500221664187800843895534250538005010410425403139263222218917384895168630267168776250535565289220158805836068489928507508214639065421546605248491909449895844027187386838745270871260397838820169087844186716179705273244717760540663240489048598242984666570466755694546520223202334081217582451837777451209336248047495638179839669242061222424250347479515169072247454207722257548667824150055413290545830171761703727261022160361333327327480895710512995119306113855573439330124824561640328231573447403881756897535623605285914241757077560012416101686879726901483556083378367831082796169937334242817866564177069408384195257998826739141808506474651419871737855903214398489854401716941622221069953129580192146033860409281417985039214718157166053231909091769193667644621773473592558730178002472781821387441098416222274218111175809792799436538447426690039578516813921188484866260832357139599357788436344462406559291685735297666584937683986713085560404326987951498848390189841935320537819328277315888073400077539108891937127892726181277096056282819025958841025463271346190549901042234499103321117783793123282165121338677458236664322993014721837917159676346383519139427649940700348089025024226346007213575719149312779314669762149973289812345878999520763571044089088529110825741817440998178552018066989790888304564989606874510259949622768474439611624899301205080601034803432022545959014746646963830869888681488010476815697066100316164843847375135241175717049048286346436489004906136407216135663043957665302359275276844348927897604890528322162573602508568762005144537449095749575594499573244961280809058519419989291165791872931190364447988468618702718099592623018365105963380870322730564169663666320170295513592009123249871825278207313620533727393093474050937951697290018994171248832901858354558975629071468447553648194198758858776880225936336902955574665446572754235846618125796291201484440713482936404814847702046791385648036110924853122693467301902709131711758173801749726533395928135969474953641381165286611498898590562741319916437263116247368543035883065059719192668425301099700047645507055592487060144234855565901498823626505865142202189963121986616764780370562782753392862048779418990937932298206372655468051851604585452893908708046491851807605266167305546961928445816782372711247809102798971745003095684257197469510635961219519197737941344831601440600490652606216632754727554643547878910743472552403883785016546719332612298028226413219819425232379827098109313810118223665915047439021063880981420337313260041621216723922350607048565489325789068778128062089410168771341422209754654574754124803837380371128246473598241430700103876936149002480302159753489982870574312919812065707641372475527676329627264954238872183931641502898930463584346738849835646192802229096732639391833545037084412269799789302914542975000907190868904047511952487202010913812272506462249244882203842948894951896259260012896018395177380063888415533267381875952185936881873220888022024248636044985976852256188775060505711777698998133297169634531587152403644098430651589444299195289957419800323135644984021369554912580459224704274137181222782600293556855024289596475981053211683100585010789385933519398568745255604946095196460080485357054088607523173009216322205221592951071632814559076684841754077375908508845146340021514997736807554523888490432087820376618200304693939251075569810210340811762747045450358215561335702189647084159150175412757910723503959712097569399227836058627206568115311602994042350003188587033093290954419175314910789310784218817386572808432384011654137917166273601849608547880066648873062003713815899655606581747971279522537564315165004021258697679063671391546353520976153289896057518755664998685046961535078983468386311036345639036970825067354669647610312330601848752687788080852948475676330328102732296599361637352752869655404566208174822594789683435019347629157011062713370392469108963535653679325641226660619019176691396542818252124056556329736279878516264726398079565382511152365753289177342066797861279013159915941993802771544193770889065081367074753931651335917028053453961389756641671078789855229210150176669136710079403535476052712211433927647033029509563256774562743402358559621273518058798163055872916146712380416335692082063578731512327579578615490461476770301086737360370564313143583554616296657526876839044173628988929059884141644816131063160878388603245709398115708299390950164316746313588650680458256443766472649848840771714733483807958239396858479125555806076265283813998174389774553790896956853437826448663342003622198301283864980372444948258352042847829186412537006950313489738518171644550887924725549527611957304323966421887591776826863202672481783840086969464517313973451938909138339115593798485070901553222973979275991440298645668479399710948983851519966600140008624682430516044180263254416059604261251658571629857956565206898661944457719063849655923671044840605386584957911153009643047484854733901034256107118671234478956405337130815321990717955437490970569647149991179884257064673797508974152897428578444788758588556811428674969902420595058955968862871243598942116462403696777930636639503232249245697848018297914822512476629417567699959291690765749247693719591427240887195303769668884288690222034057938576059580033657929101552420019926301317104352274417860371633435395446551866702745413682016518902380324806203714793781366117745791807253930656302430168076836341720381334085672935299168572911267608265285056114882889470602058970135191906417711323796030788494862565757587765814892521301357703004202416237521996756999549783917190828052715487047213208503138260961811962170606730466954592370196604895972822628794975764653112520803757475985994777432262086982933095937260193015929370538557127932091583823210037504845649372759016235161641587431273484511639951860248835854454953873619718007939272054728381174287175388083461975980046742648335374521878909091936068256101598876668346447463579033629579709654244505918274588474764750759698055912727236263686763071462515399235465681696591143368640054141269965081621526877865198933069303942214061718433024056745121337069408871930477134129978975176726385540122668475223755144890473973044230996509053019287093097845731935671875475282811783496875655917032677697710638167315671630543403879912277021851864624389451323459741429166598044021299721353149494190189186411946843238326133838429496965907992718670532874628362500554027539574152249259057294162782879364692427084248424193700987731166760471951092376949647552440183212356731370212911554133441260267671667945105745918492119175295168492625494572264030652262168968795054004835883794442899443063531692733979076286404015282887975549664920567807358211107133949489751041942259066190821915443703640266328206253144001451988715337224186118239239982412818866704945089092753881065311144434281251721917687670085901955600731833944353867529578662870496124787234168745358854637209017951819502189701068927548277204616905689129087510382211404891006173094787083888268319884304825090984821552859103696122949329058118827122438291491780873970489785733874087290234320874532943756566698507240744150568545396914281907887255182484813653735424085099485137380508538734245340792170826004249537777835561190337009617215817777351056921404082178156350455842473103910552303985532244729164709312420704356610394017669715002339330163605571809291398950042607559234984729211111594868115044932670451045406400010972549491522955668905861264481852907279345704827827844337704433519238008431882920514659600060988316401652642259880778858144321696759034791226134850892278373350802719652228237102212601266348335724607545203355213466324100720056534551600322854848530064970230540288439245110155732598432871882378707273341150258876548325777146631922968323893476503271241915118410467460920208290703833388463955638730856773051107335487511801119989914827180383499865108109423430901232365017587562470992944309069716607218117531405273909214646982541631091498443607620238874334418694264681936188827742476584587391936918897118361991645720884504623777184527250053850650180811971153470688237322338627721136444578057290255000376668386729067389679170827159129643304274082946703563253902747441900768988403720335057742577578774428353388378559146429119551001913968620083691800826806130303829581410322434188850365361562698460502725952838141482667809239099791348198026368337805378773522322396075316763760183123882589775490898783670372814839521978423894216053747390631317904039953886525165230860049197699681974543740729709216772089052772699717054752949776111402868213474694155791359739337503833984420834578442697613448829492002699830870888582460822107302838786702479578339635812058807927522442734395579321529870300160881180665308738769188836451878922982812469573372969445195826748894454303246425037871859336396914091551859048348615578673491212576185056705666388468347862479949787539599310798148469995296111154534216522556289945783767428335904914756181818761412400781177187358398355169185041661586493378857154182886253742360705850272701942908023090658352139345076085680526694582281020572171578847837198450654048969836261146003718826751786437400181740494519582301540462148408858560489059559630255610517520784170957987377570177666717919433816596984425705746104007990236230043937036070717977659609681045863312611890561663086611075719376605152479302207913874017249734988362647541360529403755175866751232092075815098212278527903231166937528398132863305872727302144582117053518382417974330341217052269287667375042206874579106241163334212404761268345412652149742516907223726545755189443195778043787382724627392138524407086332013405024515784798154711095722828842912731517572974463001768513771494316156061859939528780747041372468399153271948464708494395157229974544118050930382102102713043059111644340571907982591990181009764668156496035486504096592808918182295179228840517537655998175832880986250942782264473935180231928827811424811711868694679814866441018788881929768451866000541347471310167018006533303357994263590818578003444880622547088910964430468352936910811273576422665485721566540223701589469987141436388570863168072316482828394144449098717422729754285253142598675527460719792986009548288709870626072999830135865983562964052184173260246932577151282092798907667713459521248683147491731612811008977499655074772775616370230485262772270948075785194492861176546385776722305550686081348565738971122010621501278708192838917233077929852592458780320406405532045191620126352509338445058465035772122111439184935940868465455983910914685177052639322183095664353704307312307262025601610648880441696191947549590192175293398545169928943887856913797818542205984331910389114164644835188326060573114103975613076581289337816431211937221291371197391182030148444901017126033066501573618613135277395012997503697531458123515884288819945382170550788970023483338297140208077346757574120206981944671807029074116635789039735033778055866074009894863417747995542767909229990208303706910214503674678747626207660301221673759292660443933688075420915219568077902555995014395457279112407424646494671503427749137092243520983069266711206724381232260939516847063558049090304905246923246949576542256405492825082432812844880693660269589721952785320347315527701476890100500889210610442431998521916689907422931819079520846005507636636551368701774980445277071435322740783371345252616181276819287006617575578001655961486987199180772165789672270948415591335525524809973606576933239373058086400085691053299255829453071417618541370483780744915029829797542238718841581857007148026848079450570116151836020350578145933532096305867285921241858135997404125720117722464853838513506090156069567081571228317280222279836844810937673182331321881521649720401130422008321671050127446656903071012729428814971964272925101607143212426119090683521196299306859936621839735656894324364930317289521794179966716210326620908473034680932586440387313173871416423261129377349864662676919572882431797406852400660993057846802636159598697331206484268721839963980709741596505920800427943936858508394929427982679508641957116599370023103746075117596510227541912697645669075038687015417542927705951185083002685322492437619384920852788002414242033523660738798885065942704569582294271924005143583431157636436574370148769439115525179315491710331957026465749955878518134457108312092025820037592179786677977911534306772186617514619852801696342378581292831065920107954606783326499082733173748101846989621820178035272496562038587806075843638893690273365015731631739402239751301492960728975700318499120650319382178995907204648182349641490987340567754527999561208648282616129024094857872333587028560193769610643789810835157134495235245067774543955617156334970205651651062542007370227665588612305383099337155162147870367823525611215624977665452671828232291852723318473156334186067734117544586400118982332150898739409028170890799213370328391657556329236857517256286185008389576704929790545811913348198830257333287785959450998684875531322213185438902212656840399118285726920572334738559485657409839491362220521910462287342210375695427807336076114433566703198616357961550368768381813907495844231615104172758291668393695179287483053222261697173265632074452335517847976415997287058363724403979837997397476755312086390721642335689286373862874229632334873419514113670185154119817773159110188879361675732210990042406542805778964102542755296365139168358759663831602165275922708892733841727545140255543472508277679594180730307278987907889860720758583359313884417060648144802205513258806222012635784511372309134123768732139476502190915524034804260961033107057487427283413745102119797325580276070249248932219811848767868670327691651492708200260127857138624158941431519294223340898795996363549286448830695295606794634920362329674725958027626282301517024792146309292782642548535745814714936763190586303943969268196268467453205089590616024098320277575283388758204453594152086986367606178447271751446039201952188302187489546543901127787407849512576471840819426644399496875915205714528818229751804501242839873171682389390406217605017112961853944444534186823567830497335635313306749822790779033831181816299322408759778787911564014448211306912922070321907194610827613057051760399255338377795378536576437052690632216043235113661622824283438781379402217554530601561288608463309663925864381089750130720803182057052373573504577027330095182866523440451218871030173868531077913685477776975944102862359886391195860128995685150841113555574880404025694237121827626438149177080930251058317452707209902410839537791705538248341572395877752769017107814978442298999317589078352183537263884404391845085115131163449661284039015693566210157976399822429482740425212879883504354576648147365167979269718203559178899252736313475365831478219337835353179269592701355982418149419560565742855886109216591506878078708339368296911998059026196591183206491634818069396742761077139516646072962156001439923650160841735294847006863902383451222395213947002388429056994973051519941554530454342871007990883515327236240436376400907289733978662424012539234525478786729341011432888024508254149954755709393983741247979065051315743140225568000192679009800246503620242905020292630831447407557367397519603598582741260863595862861360985758869263783022263840976796107046753576854562172072087693980650605347865291733777536122132364968501806500145302108887898968531974693328978998975262363377966330862101031599452437536920477265535068070900812100241944944122534778496291095275612454120974523792776071915983896594391629442538423930951539860470071855667063044423777284874661288998074304226407179267776669073481859716892364312692467745691711459324847450068108485705014867092011371920705018794183834855119108021695496773097591694093845940248855407680427804891064261639290200133918225723499875286081175403514097709690335228197934151353197659719978441544141223492181493842789997543579825522223409396065361918009119708226564500176560341871096078498512164666692322741202418530843545615956253786602236956867652257060902796154634410692574937669893736132047092253174122316340924207337270101637000632850837142058097317707326378486022045098960431584202181705384839101143470699144998611208752180133120955652976222882769111441616548983632704659058438885359009133182159929727449877349345457261073424018453535680507713186480731766702460666291811081990956844653386358962678271482900811437731536200631754153652324542968313989123915385372927868520074082233801876550754741961575639285556193373024444390241223485323491118427267012760037240270730184168660159511606462819241259388757550945232489108850923386897639027820055429379684984856646280983124293173973050252992276346649632780154694031832700837788378797659588491869310484078871593598368866903720813471339309115949201629139955168408018762465664650831321593808046446633184995215710238302292033464419334209484890010625492183596629641460870732768934222393106350775307172492804843598404073437116805788416295337314784160549349402616463187186558935698504739742588415852329778548068089798757439667931153929343632971665912969823048342064907435737809504615182132761065956995661325263222005636566941458793408868185245320684441337893717409160622236516031422061786330779053828117922968613562312256765641957300986364172464438554733866581747517191193543716368795813423611667773588544216935032645730964890349918067791264061737869679958420782102322167937780751725237706247736911150449650763846254465174537513653272912979487027169292212346505442188518087216798479218170362108817384568986671782343445851835599372837371143940678964038312441707009655899031972601555310633164970844043285038923541442423540441032709623311269111970101016247676727766723175899437515718458873698483226120447043104886936365317580268435163954400066331541144638010312972003056891856430985418743526024502334938311088804139838458696976892170251625621691009897813113185286315669436870771216301919221587031999292232488571306705608959542328577477719129190757632343503297388800660703670156888166405157881298799324010576858317299611337775644015198788251435798118102755592098487882975837691848100707957767505830837489160474021352086191709349570521290927188543199241840155602522300495385046581452946315743359390411684324709099741899295805162276341186257467727926800544570580055925206207162120329412362766251423766593148549259345727957546279511321780970145428030359824259342348220665182726460312053530985836316911969213438498889709804003530417059969318332002806368286604648760183882154675638131030851140111683035303987399387361013762080766123085440753954630499561986670345594673552003411078202861967512856747528299544648252751256950038450774775488253947670437048460283419954108895327967043870145852744720192234628260431641210800801041209888375260924429597276536538997413603948103825896136871299874724611985828535805043392173796865266721149744968943560879587984822027161728932048070132872718150224531475482330457222835048321473096815575841535868843831854791360809887680471468227739412528363394761691758343228766004129123654163626068855379143637144343270287539898443510229963133448363908359056490925925342593710021809904854701032972585973569974829457570992004231209421149768647418441422639568503079871134543731127957343270486927532038305713836483121047322520348042622466800728714995963897639778998310877452063748485228626759052906240102591692209148456165621774532958838349531403926983336572214859978520071277606167479718369396974841489585194244818003361348158770803694628847858159482390739402048005347288872082311193827232945268523098077662741098469579308412240173208272520887258645086909991728441265693212212307377858400054612555539477764228927430751934788193859194233335915617134817401659610019679446466452495894177634351312232331914573032719348761497200705980789581089036500817873941616068272835538273679286065557330776094441846685652523385548771815008323254246694094065835239052744223110792327160059274270763078075985269407865210711306922216967031089187087463923468240940273383450877536699570138308467772102845950188645673609162282522653133349794776716538232552919072511483800525235998937939825682328381796196581528591460222741236066519364993090508177427542852660788140493949876193845947333756467372275758629756629941873972700536409163413064473757577510116422729030122029832768004257404657457642590158143428359088603159957463816929222363615441184317349680334895845635431333213647691963900929137471274569829358429769672058168170472515031684319729314295184355931528436544889770836104297203264752112886439390863184799245107720960416946005070295126746693868958509356070099093952555295514813050353205058368823201636428005659290077506438206393016310278735438347782493294038359906047306763411430815701237097080586958796797740007202293535306166356683093759071872055719300268013463333369496644468112948294993909100362081653019980521894925790778802720189655841148786745709403781498842210678371572128981737728943722791847077859443486331990847872902429243243890850254441460745425005532182184684423851293185168306799082696395477921415674826323735344639389840798035061469222846747230693739696995213406641032914025604408299524045586858786016144193877551951537830324750727964759493924234381623886394802148240961119499199923451208063685872521670828872024960721734619951262358038638324117218433247194926007660871949329616892357281708490757824119416528136003931765438611411227831115018212275646034924016909761523242100590551261347552481213715620605878932466127499434447711743772585702419290036907210022751116054266712531140984254415096835650496223947113148993107839079681014731447725323572842566617522597632171873734845679730730684544078770794111779357217587902519821004381588634608413588703020709368535891323786733640318980222589432001936930611873212357407788506805608954424751882331989819889056190408133217835444421208182590045014304961358554502128137050283320078475127237310089717531709704155755472146556528912017000782349026028611346114258006446053992896501287435801988901469306493603961982273502638022332574447895926579896086787258359110043649091792808283145662941146706578275577060676580359090696581781217649556955442626285435861418014560493300184050628365164244097137745612896444255683485552408715701754923878218960475630479699511808670029200019514671282238702513380317242613121825690664700071006752713629189197398880696166235699468888967309146795074709120009029380039020574769025612043681640950420285032381796481336217319524442396003108020857118437660853873616241048725194878622987759480452610448640039455487898542677357647700843930917455111967974733399570574558956444001556400321441398842693820040300772271988110510128255355502045511865485965988012739712070933977794732381692421247581785508259976696928116905544314012755409179803750669946232184133112753031265105994651827414561715416473330766617741637264031530566022932555467840957988269533200106634105931894334670397176056034266254556118370164738662998808309497384765897251992837375154474575164685184381833276969933561465829383864580250697873545234199951496277916046465927641703910519368122822387437736201572626495632083892786528083091605692250400852944053629057750091858042357301655719288335453130663564099018209066682028629380157340990613726927616553229066191463577303910705798189639389567460192979361740065511465814474549699889565802439674786679008971444123229585043962093620883265970241106563602963633142165991548978192466239427790215701711221121844540972434380242212532114813790298516126815773484488870478649071379297281932385845680564562144335768670292526069348148700299787580801258478010566077795071342234650078319731547104101924605408095622821369627546364388702930481865615367271381732299797171956092271220981147862970298107676331169699850048055475653883602790783813445210976450878842522476690645408776314274404498051674837103204080849951087311368930765195959854549347401392224355655604014930369378872056613387366620678162328944380318907905714732602966874413590962816570380006627775858723939729017240315031889675234183042886726308290479204953655536727189393909606817499768510183015908338302268781650380450324362332425362920825835642368093421843189018216248386287967025432498972759383092874108321350197498760766257436571677563334846029981957502877129620976845447636225877792707813432589369616838778000355180188842194620044777605392425929589102821839478006039749963929677497035587495572281686460684179369325198198066547581081345199231010864597942669975451922456152921673976953227804815986705839219603504098396654341623310395871392676931521377462793534023727213640947505105951334925004295061261438375264453124620826359581192819773866908983190961464601753481919912962699533644530974598491291389923879659954780436917090545940083082362392309212619983405870501980286875646645471516047292552824813442989490564850657709831862222814761046070295784512990868055469609218572663040506311253832928518160124531088395337397509537939410161637269497576897670333543732218688184502757899051449692088011291949720366453854197061796551714920304817513799640729451923860417432059272761959126049557709848048150495117540068212670157537817640691574464425152830636983667822905162188068985563818859236707716110672487802713358247801988704598715201045265098362612801464582440657681106208561392919864349866684250219764040154933941161702430727309839925503302512329604399050583518494785055596279299601877576382332899375600718398161381780151046773265962457257500390895563206006199960299389382891781844247986470262240176545312609869138518672254024072482544201475134341452949045470145787431961207579294265342104160585031345964697813932357497774710921399719508509990411645707280192151118379518656025618514058149662857527737521771342702996370053808669962571511877354000865671471943508084463060686503955625066545274571557252472343707688086474502199510949360976868808911371749283356299980818747756373147682530604161691121843803089062898046277857097350763463578424911871923105531737903152890676137485466237536858528186162932563614326777268554294272244519205283639205044761769886988876190446088137357623193007479717797462501495279008922923410124400753464561672520551800538415683133471497571515689091360160389658208602137313472060859188440914571086787309288581415918084840092610418615313804447309373465054286909453566291271012878875213568894486838033473659742359340791194796353416744953898903148722832180353409810472253735586973146050644366336837184820056606051753704951075530994263324463562703167003720705946851401737840905110514571069444163221667602278560395348332481608221613506904502460778391573008304304964500771238601994212777279658775795548477588229122918845853590150955172416554304741646009487368655040006295201265009410366656257619765112268722351122231950343482701230699147580332163541533459402876716876819783825743616753442086490369287152586439430241399597253461428457007733306787435349335728084589268120886144463992275967433265069330284824439126598018608092902473407568902424564455866697686904594453018280478079224176715154011888904061083928725166793408111164500572217535056357317943365149503752236771789196672798576266960363638223961018124358024829774436082929886891798863242869421994222762524375069489859102916385037858132694688417825053133539031076020909251092309610025586482838237037236218071178966187616687845561023962445222481701276605485970861497192842149240188085126627791260824780281232837812069206472892958251188528611180938993930820970159301152563679803395242220612182290444382520540454894792978531119806977815275196477609389286039992909563072216649516996740075013455269882474689193137077342505405425008326662998687548966986473997273390915350818059305860964980280863407833230971790715037424111995894579814099623103774000590221596318184150763736328086575924719648127612326883338363934898966316182131950916086231295333543876345371785664858594736970836157531332667707997880844564690770801155943460370899716759501206155380666670607474626708286113824381436015670767522352111073142121863112210828181234251329756209918150411729775680972929526920343985092390589415506387885664542584875242670759664831155869026030531950549264276504103624156113835144256923479350872339793166448813100331733520415363633643573646517506385259582757920818573164555904890410025448851671308448229375035874126647349217494895535398389261221028727981083283660980432044340634010439573831919223397866885609723049754355101709721143677796987239298463426026737337024598552948867694258205470886362569192394964602405186985138514664746256987021148304639377570225480882032935462469676777136306022088855839495030988725297416746186463778665560323560325792327557136047580406836503475054074223003381142727506307203549889689064674240891561834997442164618118335905879204597433742578534044958198966529557813322499819790435280675110216010354469326443881565051807905266418232162247153370824418092225716171692520573750356350034860701199887049864235883345629739451473001077111931688419659651340564205688573306783670698616260831468877544064151853651786839920213605747103774919957885284231686090661655190815640724075482372537190511022277601681527236061739443567226210661783696969177701849822122712670145889773882441280837560384771481233618606734795621602350974325648351593388040865129207492706199696806306643200242198940990316088994080866955016392253996870736920963090997027757054661911639792512080432474662805686232627925984876706941152242150983397310662863418025254847723612727453195313757255499729001581636890126532836698455820087683488540365548860443451914645421480499546331221174943360431247817386542610223924089599389484958530308697875766048084198280177232200753691140166614311481892285531588127641781124740215637824102956552790640102850954073066857532523913377399741561196673698956933602151193250309686652276663020342835818734417499286035322367385056941669385718427714458550390862651360999315059639886406030516851771970991004121979392339157797407051553953018003206959772315610102393825592558462359413188881134080835347144941165483374813570808803077363600828129734330505304432415423012642296964649573778169985803503412007371885736460921437051945654204650342267725701815420878706379352969729482030407948261524400597519342079994884275309915055002374852319918025356135061311426363812896717600548834306156242354285610076201163404117534412308401640337144447555092577655174024564749623335295191326749104097511629353872377237558227014634448933788709753979111150173695358915180169566155199384066900550622893684667668219589425025643055931380214043130733504539452161312239966431758027301115097489592808195594464324906690201421983233174676251735711628992467139347682958537057173041677558187134674306563853599125105751814689966092596273153582482922588474329004912604042277077543212510318893905475267161406670628051450311423553202361818618250917382229245923857299797556096874613852843115455627814376128410940845325649104589987862570543655976813305158923823676720035570090497487718643172291526557867781844145092877203541138475588248093469610311738231645835861044454614237998511471807358810720679070731565619158085759438929208833221251250276921619382475431761496408254206469209900464520866345740627832628030566051384805664813524520918373162513686337719491363729859710848814543801048293479392574942851533111549921508097849326459307852232691316943719719554864464352861900805841709191779336224719820581222705886141954503076067810244319261070907303054660843060374224881338229195545656329491372139304294808277815568643344251932801280709068798303432816304205746525255551477350999927160157033511821726932228745414753683581781519198612135326950566422423678569674097174762646098727365957438419731184434894488102139064224829264876139969923904887483001579875790297913425136642160069045229133285859188251816424068947431748857964579789573991078411474035932868985647025648828757913821600137580793750316457333261546445365392634178858070419028839366525960616241561756766091219375726299944643622891426387922676256022241881732393510342561948571332125491432533981662986070515589491802505559199558148067130518302481298791944528421421439115586087209532839711996151845584641426186291159544489453266511540811145395332864902876108560218087239736386150273434782762106535080047538730777195793923336437982838024085402955993276259861728176259304492326690061904598342412626199402694911702456709250813020953183666073702820730944408704140488901159641766342767622556804121221787760751125303058453430290796604104300022018589111295140494573679088159199315228925390547055646750482559984479490145651986829263375378869317547493517849847765271371544930505716641680571839760469234262786959595509469956384014770759724577426259846601022159005270028064995916308819104813029744445630848512100382581279442705799751499686479042195199341960222525907239131066599915727500800789511352189019664467447957646526512555658068380239871960418434686590648388244843779385123556693109146051707261847208415341027904605889212669878513990881449961164388079226732817281305718058966044274686588227052836579711181976256994085286219604881029756553956007862719773011814930249677644873229200738501416376930625272074865929652769972215617674043270463957973637595879643564219440239780705335604924069310245093214508051555123330173409049374850609121921265009668813272054240713184426025372025349263319126698289962899730807076564948767464297456794483933430535189034112683173048621791650941595621423434944221820113960406366577603022235074889772949145095590864559440011673043427532307919667975874813432951250686262852545034897455406220033442769957561375550108144931504595362315168836172875173210843207574620951474102458926795867033532926255630877549163345548243246874817533511689648997111214388170276609563620232285167297661513406333169689836719947959585184281518449512152812033732596838247388573572795573353711872760032900359017086085013228816837656470895279524121066760467125915511490465056432770057707311583917478937865113662344500729689678944785920441275509079833817489324888298999581976475471581513303855769045980626028143396085998063363124242339284674876217681238387671102974243606091526268006365798708324578930004773875437675450624926147106470378620426425557434221071943363126608998850056958415341975562279307372866648696224049306808020200490938059703238809212157366409166922901832538479115237023615259372545637228216260082305096205145838529400666371160970404886536149394900877271847068828944999914592496530350310361505263067161515381134096947142074556674771114975433197140793455106871229930850452412981392812183663649082889571688568963519617847213096390898546079462860243427204029332861779402679170869332911623163371603570913126877509682014865497081623706416871243904049709416148756244497368832322675501668705329706120824206264536951967503020016476151997692955850409467346778615561880408406244676273332848216722047165941081194802626087683330426518566344032905090795680890616210359112910550309745098221501640422259252312675748772334764038520591647092890217447756088342963333824806829787351353585152449584890003214113177950836151066797899908688555664072167470982200738001071548220310836083486552877944369936903575504709630314802255633690821713182621708216669482039852838354231584550263799070764553316922231779383323639021819762531820054354901298809556622100854868219930763969129291217322548639607252126734178324318295029629830703421672487779181622717250195849084654874769915951524368993024407318384477283361797576670067162185946290505582213394143382444617313825789461958990020223091637821839412289803460238023997333192430231183475620566573696037277098639043325572252047433150697332666385061155079149018521493256371508775933906238537993828563653410570825767887802556089406794425065887567622172187541034142902350737151297623360810151627562476321172280016056799972354285000948418771335394718586950764989722817996421824098131523905785228766101221082372719880287406303239459947417955181895627484941539347238089372256415363421584006165821851245621982687250352150886982355775419156552955812215228748549599633141389119556050310141382495494352426934508723739881699077962208482142576576750524525655653865976592790660001047169630890839331985203443535684556804851916212543212781277613103680261703442661212056675615681044285720418239727005914282962662877490553607794085735867824275905705716447290037045827495671126560831787256878833628902603521914851530759814098965638477225438023857939973373122082126537795554585824058148916666101176583640137750571501304774685215069374758417915687555695157172670308996539474381268240107575311679537100931795876372420087191719676514339280622160818106521908135770228423929263072149827344168341912127762285170021996517731349156160526848210465536112866746347554596632955704055697784111587507069594910665006152756754099480979955603578485388485818320494240716099968252561402499034165365835225331490079652056780148736745565981346509474324181502385781163658913765276359087667110196842725662948881198415293762700523684488639260592398100716963647547680959861594187337034994373457391204393550444193395927303686457104488298127735144627035918596051671948538392859599464877447351395064381141179836580526541120390093899843391763511364897180510853101915347591366387519920569524661228512565922010065980985468377964675456709565866381251898958687907997049670004318501901959456529455423888709827654119306832481414907614533065227113349760650051824425710786755883579741199153274828976344831749108967914731892354008095110667118875028090690252214043966800387672879257938332444609915592721777018222278061670019841634085130056009920165726333853406209831047283678548575847143719563900007085063972784693466271322242437580073559787045565058821652597421375093878182908186085496487720806055653868385094488055967386245981788652766220392801060326321710700620673532177863101384254724409433300878072103583751045836717742748420578931001569045930945186418720738135394692820083510775084612098840136902764321306626845819982344733490239713555478943448145232193465591306478151407810066958390627020091319052109182943996808226996444328549627188586133533561103073036282897907324116720431520791242779600510175288343785813928366610690259404869135815293289590364723152186543679660415373341626204720392773294720647930572916614793761647600709048210738737710991116978266773394006180991857457844419417989878753387613259241112638855756406786284449431518317777184434888050100737710319537374174717948806545731522070573459776196795603935276023875658068388853038991345276284039918573477725982762279910519382841092572673876655096529389977398873837835273253067218965317280857601514425809761728656038254172706603419214402572853849878203077393216122672291478299653936704315576902774246795483497928267899316011256182553029497253733093409007043306412532057228793907907031711602585607830384049490553109935620240108315294606650218578400594996428347292880411225641551623129331458799626143222692496267891012880891035575455580077021555064788312469892895587631334461248840363817512126749814940730143788361635396756228904750010370392513217391938006402242104248261482555337396085922185231662561627082866544488635509807476564692200429948447401259645878614330954284142135586234617426992284128162904379026490760051939022182381603699019513165241897031288420618781459415875570345145547672963076714843694428943729760323279491274273077576811474004245975764956584902641373773568301543135726413396614913470880762863588112171869295969212850412683665206764443788572199033166293970683290790465913472336525427183763997496571225993681969846436689944799582633086074603567020598645192703796747973573827710671144916934889618785389230255134773969958296381018288039319305404900075210275165988648277990469429851066604993854800634809875234234274304034772153590169934842168455523511135564245438621524012202783861888750370665756219328203408640612633656224450067540669154723778544468106275839628033358086584727745294683472909639090992693240841859625455167426488445693917181880879531052828859925676655646288166826583945686886184234969337025346474341875747007214400279900628477647011815521013027448944387777680379516344512868184182825834014864246295732115634653626781469498877053678324936943066638465344066268566967538733082733404851273832473301670536043960525563332597612308750080691604736149514480039325820933590659239128468553604296715336747902731599255329918435564221807615095738414950707339295458437867940323207571435536653341678523855094986722609905640611742849718126143049829148844050755934407719233574109713192674800471412731519071580073559758574327355346851858096999065110108930099411926646063853712539017812588536955528796583924826093198586376784314343755876996498803810612828112093291726534630893878265196393879523959953218876697115333564308250288664815199541811084352443854342860245069252541734147334433548054886610490330845681749198221903242089311501942800297812984569539152045382774918062620847770777792356455908609860047088107269911906990650095213942644838939647880818612989533211869300293310888236210192783404282016358794850462774000269965891695843068728863824520994618306784755470611166792098936385172944598547505108481429572780825518116796948929774256516841218688699785826286660167488701619070109763030664594534065032626567597904556783598931178350431684242674044929157731912853911544824403793370175501607406769807308533206829974303702737461146997907108592798312433680327405639419595621033898208195550129028453923878060235009532923101978940898131155909729743746412285706793231973654685129168230203211496260348281753525063649461195320919616935142467305557326162731169145175267310436831992305024868958935166724736864558237586387642538307239904185458758670382529965768147239792750500138347172405104729511377562328228888654720958030171896693352489708237108359163343510568794880066254468886606633252573386689188865659500453524155622827348153008599448815244565182000160928517284279701656801804156842215065296253540383744980530929451013838257154863300663092897415843498127379881462552205524599256821166514505498366305446255809115303786882688089734932497584097522306273650349391281194106748110923042213151168523321598922668238680654806027754673328895973075227990865199436062745459185274706593312013522885325306111677934165987343338217512922346226797026013879327820241966151106976446886395806971566000819846469387794088118086591264684982041612095509486799573135725300021970438466869907938184656757382237232820523520968005615586499862724716486584618000126452497589883190946143374455801917832461943096665644939049863904197389674192724826258651072450471625778917233412694484461663333584763053442447869837170211361659549755729461848128465250675034445997926884502837581713453448186407850677258749092058491610505901212649910361756713917286736189660480670652719484366605179264001528359406067300646056229454248214007318577312246846419430863960498865787391052942665387427324327802241776131908223102061999085607385489994842068118962167163003495643530276385406341838205891581065264629213403935610693520115358469203333790286783363140150157030418345662059991841583676860860699893924407123805589475537637182201862819368418363437619007338589218480034502115636684165201508383590601574635252980529181970064340070641626712654045719480778257107897021353405455389761475633189620670027979293412675232341501734443402355879332327529449403236757040207882556620635005344317030590287199014003984699776134972523486878326223094449813421366206755441811932116371755263572657111193383483423750310799827823674683307222322213227251632146877725925713902415076722219678341945761564953549142291674410865303358446514353000994048438774021402653256793576791021233882356034635236969501941687212514575576280136623974097803747868058195424012914153399849648537040645810036193096948045444463707396228773440583452865615130840804338954456119189727400033613146434266410470626732873116620601020506126851709843786006975683991394277926298015458233838875169260747113624649345037298030418818714285798908176263426461704844966977703580242226347057774589568239190026252506869936852605950983524997532235567714838684843921464416030779236463394428079177611079884361726576423286016351543185929657863179647057303588725775853962550607343128922586654988294588288987502364778051474711520220716884853849714857784400048675366681719084593546582993586196036569630574066924050381355837036029473835034787744726627187899128165879870926442342537036222056566092235464699851819541854352471159509026982289545411641144401072947416136715307674600925206518373856081569459432266163237611543818345488705658150884854659794593119602423254253116083081277051154369209506994490879916572643544164217067697994847382254557681082924198652202901497673414392235286910766297739518899121627136523089329193793540181777719961370511239798390125917416810700153431512294633464731657458956170440167302746903469491973228789890186967368577611871630739433681406481525526619638127882488637058325460932830850770266586292165259898667165040636880343790586049537321715762532783598324889870471523847982842525249254605736105514038264076652705646814871423423062289617623210220354859445403546087472371957130711106339711354412430564891484075191791539918178408177846719729814840910212440432990433376567476438319472099371246685349883470069865887686924956432534903487761119790292909292672908864234102298831511568165875310325519810890603079468821609091467376869895165600205325053690478353396196868277101055429077987141062741070555040163832912919123792314708530978450358211643348831683897712817163358766535518185190092758691150275785303029133969991368598951001154074882727420408357878337641907275887259669427390841960222211658951269987479420806281114980651255499137045567752038972670370993665356642086350798816070267115664368377620679220606216425573989514224503128773453777561678880338902012279918368979045113151677325340575335061825857774950040412372726512542267253110190715494605484238595736370022888711463117522981699901131300837304092106368566867792891955060804871776260515557820398689428683397324773781233767554733958034257561595853589693763961399658622067999982624929653109521134449805514133112094094258320681764445481483782525489027397238919098270142669400793361686796288034080518395648319844143133825365722969651475507509637189930646734335008795971803800010256444587403482775099362816170179792434234222878924049954572409732916853999916923651393445890565663379000343339316320393497404080264176447978433294305481665926454317834779248965344376725890842150333849095350922855088686619672470435897567446426973112650912693309124303694843096102473320669023923122035173299516147927985689850621482614911260540767702512095922331030893283738971683654037932807017414910333880286903165699320199347800406123262374819275133662983784025325321463769378319768095057204508948538796953521664451608033804614549603742759734701993462352907263152111815444043734024376223645767985335096905892528363454028791449002230638076569212796373817648331934652806736746751262515778504203723788615413835009878174754215738694891276182818471292818395257067942726929500122137979709646664005211697334542927851908423275037813355915861889415368899426216551006406643098786089844890332097031601421065674766937939165651522567983697962007320123609441024611951465695408994335863736705778562712977863175400424528214569545264428570184797805489645900709917631140088140832539152680846959553259238620032098939145112396962360161841035714354363468723624878912031110033551775580089913830483644243498620404491522028319583563108261283600443060246724902172962986071315799221302563455202571528234557720990091044505173530580243691110098705439120315235710751505750251500442701460832517272125905223721852483444626034812752823522679425839234861978576489258769842083986502115663280388737579710468584455675251347927086649369785317488257782071686564707515401552603907306154625223147057314539837257267662237761845027633019107046675779905111665835872409376280196014675762816645056564387506960452751816966951690114429310867857684320393930685054046089535509484079884665396047915370585493389516450898073551937976736975983338992488536964744986367788429858205590896111444354466629823267929529192400948533396468988133187917865611594164603273609196526552221869380972166080014599552611659692422822194568532412568829922064090260283309543916189184793559185770691093839582656298781896981906071749120092301482608913608276228919880593359230281816233651226393542552139660412293235738542385596557286668356307221089973021464883657293776477434268545404032332597081175167958116131274175869334769038233865599558060164121088010531045022749891931420959599825705508341897158938840735047545959462886848034492503364824434876451319830344947915424466863169541920780801037065939428861945702394498114245553609121595538374214105600462660282464333487565194534727889146331669581918744515195568964901834285113044392695811758399651775711690838957005722656935660386993945389580521279741787467603130096009719037849636738837386991269165279565350429995058805850038814064805693265184730287575154086672800330127412989583569665586145468113775285931999201697274617717198980434255341411620880541829657766995684631280042138903656395657863139621255220506205451246360032234655113120107804721262975147337718072822072000799305740260930414880598164715183535183594946934035798134576053820546255765997461720179333085681424229952634096264996342375889316492705451613412835079384512593716402308465864583176467305097713070564554560145246358124311782646464345916730652241993530822574686333657409359687525999595145442593761354154084431174998207869056884945345384690861491623916278936195778698555387423529690094998252383658353499496715493711493005607525196129863842215479849405678603464926278484216026442410232916292688073315001515859980259927974646802240479039273163024913286563276556882675697742700599187908816581589282855962097017198617705943100299108732039644188866591284062389999529144278054832400818681979521551123285984955168736860849015240617501827349307611144027165477928701274286568601321223293550941679013683050268115324370070285858364867291944547433131007067819464820088411049356437808591921982753834847966320268361200672241555183062021523608349830596663905405941166221937544191593274830755097063648730132668779598219281582619518293371600338550539369377661548825288643867531300228664739022874032983041715576618601414762621110028214917693916088305038519580462550522678930819444850103162920492054864858453406062781804241337073487813715846924391297983186436219601508189198099480538880159401615715798648141553422648520590558382276720020902794270789240586033252901677419393167763447036548067772853858300470151732563842961408785233095392982162164026756039470289245838506295202212260808979996341199430088665031953013222966672123914256017926082415148421051831544132181474549419066535378469453584363694804193931909404798256708670916907173439860749669354769274457039859715418875968617788782030337266199510574624570070437130383898481141983566596928223431075686078536542743995516682054237236630367744856348489250202861833923357001784194764960368018358257578052298336915645156043674292671721861745288268636490737111904832979595197507929138061803990745525091655664629879839641804401740217315927750078690677006048845462594673358275478891916004672636307812265159248696349264454871570480119561949995474573784645249028452103707688022054825193815814521689318632170194080477500139046354836093294019993631593230653766296711219636765034292915204429006406650461685059078666539021945142612103944542971510275390808274493260125646844286703123618012789319305634614748558158571185076077892113270239359527584359073773942356812647390229221992832433218640825307983512237831003501925306644640149723961807799484289502224324253458591945182450886321145001891476057922522935358044047564364462804963019924558639966826425370083549949889615145506476078148171911183449608998614057125440466837648335226173297017293640996729104525660766220347054236098686940501150516781619497638599982783950007618739063351628066153907363885145721082565733699638167327117267610122473727181931026405063288481424199779225498508887423858469410158935184777562157229496502194421845450052538402063306837075100914244368013093434238177296234855147596955832319540852015338996638977148513184042491378226300842188923493714740207569979933190537358112079270243074275941469563685090179113533664522683693086429910523730544768638848047904524725820805457878884018795640716179573823274676242679955978714022148917846861175448220601404448079114547667094471942795551616440799066745168004137668527880530813474912923964994560001421638104318929118739197999883991848251461657099460029020092516299820228219918226790873304791674524058233703414383787216076712481166016825470539089685880631008393191424829825072917917244395674569483088817964480638744593491518417832701338762797540809289405785175051527167136901171347310561567680173361582171338001909049809508642247196059398473752429130296615963309320941707092919713082533415102169108260900201365359796190732358180665704966052711280588434960063100867563736094072708795658299207390824266145956120727009846953777276837687172352044130362654511617576662733666429758615626261232754786998081954748634500687169951576215983561425516200898401905700265822349230612787561791667537142715663538323334665735147011605998753762444210802886010160390014376058084650488874042921361067658457071290870654868653147527208589065809694407775254494300488616134830194003373750607708616790814365124625467075559324853492565298526268627737799192034212042028042503687148937030958206093160031995964911515873932758510813850437935203400286982543287471425783598978899013511977911871624448543631737436076451625799221302880155959331389029422456103318271356017368727237485605919486434654106593731944558362208865614971555094874902214009441645506946230360607220866184002286347314416099308916756255280416289347786726153163134630712383916868655700196019615275962959862597435023270287531378288583417658443152799239965303264789161873951536119752111862631990735618623227076786553786144222717691832248282584927373000443555562809926148665190516726000644232052635836309030058545452454606469824740407276070061407174608679815074772861281871543295052843839965706318421937741876932199215071053011334494236937807006372157852503360219807907849361991267956359894078100425221173950862124976852775257760122671958412754697710221061135274197469319479080249581640590880081866153104653016757728529249020899170720185721784986508895188396555227670586701174861263491317807001890712514780050378576961108035549211420406986246340518992144951343454004865737177175214449837158189191820163328536394099744897767077265534040061065805428429855629936361988126220587139733911149529997549089091596972911050296225488349016042593297104468481403793216712811627165202577977175091677851022781050273087777536414657597283613666318283641439645907979503329390135179815763784057320860425377975405625083260481402589017221672347157726429197468518085598152001885595196868754112328590181166745093438280609653359607436055268857792369582787571036331685429235439346751035772393532483048151936198260967619436814984287013331051332480276184331487639028167530038507790743092514372234788403381960996066962785678613175170800328635870221957219405036406738446590590132685328693573723000200344360909744435176430770333566102797549350983651455807711279563304544062129217257552737154237603288295000254947324159647495883549165591660914772614101669099036944653114818577906014748534287268052695755747178544363065013566133811362166909068628706643796079212468122918684250082973216956806109249797680365698330630908311335499622891332637964566798009298026675439466446635956013164560052701405105569168033832501290330153199521845367401919641321447064393895373900395200164073178532853513346804848830342704843639360732280635892600705952201677988486322943073240039962355004579724038879416664796778117108226469947121994343459170277398856259551872854056873747970231531899545095386186978887306842956273822020569746540868594807110226463565800628187117832061518318326667901066469167979534292841804232883649734149073102437298057569047662407163883607566470816172052054311315636895064527746194070642056956405480321795250784185089104482009243007529286192472702693750133466896596885709279603610466475272244259898462864555453818025921113267662235298381250386728631710383583778894391036004515880319241102497083097560729150079739937666717174805984447169241984767388232498434864191001824319103534993253919024226416627401622852251626829977856801035067291827175120365157073907305368947193963353378254508301736055883309367472265132286581987542537282008245960070377164054751185612600069926142984474849221527888700922512920849943876803623606927328403265745439163703985165531357604637248890837688198349465144464970004122215879726414892683525297226188277566106010406054136973287345160887112222230710881061871967841801314203204301413916312834485242295301123798114829249326270113474181640265657746301872117885438360395498746371567947502966076739026446018977990419748102573046580498052287847051980641682503544674997090474567027615871402267302855887108583089871039629480623980627729134536857766562774324531818877008574823036451768635109854807673152084639818066441207987877945240848680269836189124212062397425084446874683721319089465934255219730094039400873621913705512546125085162998426902052844750309183328960880019676273855291449501582851389184825829977986918358087360940002060990521531399262192539819010461629471208001354372357216326645584650688564809700039552537660765502105437659811825827203666294234098967441231238163925705568939125528642780564883775318180110504098982041258773976034450066482339298895481512745505190064630882034406742206692769820727080322551205319338715164758044323543204855588583657816816583440206118387749544200202176803098361909643741036623808239617560090130745684329179331649667743144108980979602471284092688228441093398708421847104709151117681152194989434036892897381043791912795888372067682434508730687379117052484659991489647617471579283319244580859122900564003881428711183841063741308052826903675554804280147587854255354247749327314721708130503725925033849224875211978441418049578574694558646673800055603666290685338328246109112382484279576004901845260354910526899118073385183950149771336451934144742680680495734802703829769507371318174675583616220341592292307818549976382216278406400847428917834332398800543172924585711725137675528413910205308811672728966458748404195669843706218063592844257824026119437727521586590690245183564739354221105914541584568441850409983918398801877548663790435688538221415843838518655707773089435094791396148586934129559948315716696404133926842448908151659969358427259001010395398168918180459910811272730639557320148675318235041574189022046139420029941092267526997837624020048150560527788136393471791161230576915233636306578075514053849506535351672126161544930503680779642433329432360282128796822727928129737227188983868282267805659886608459642815305766505176221122307437366340206405980958013282751995903297040591897428399579047433847562212435909508049819517856216307386386636422347311151002015619244589673003995126654931157202256733897311793864641506671005814063395187533816638553744440692728373532561586177845222834559949949761254649544441825811389759601386093818932346816611734341673331035888932456219789257949136135877093687922092281576808725950373140381751162770894818321156722670421850482812094566106513619731620870548361966482524140793169276995756640447232780406394848109125439019580521863101998943418593253559551378367806490778651229243381030658516624101504475276742764094442493605248180097902361752095444853466909814886777895520565093644090261059902949285753207408860745078925902863938919742247802352559589644854589174535976559928620289008503169198489003357734329878962074662830785978646023271051473974007438335743147580660858823487536464879021946127343442985692853261254245496888122007922103055678737637522978590972155590238086441895373731921220287113330525057511570920263316990791700952506157902676108043717004184550979548759985765760096965271307509766571907921815648919097071795882927677930206038906273512106431496677012580011537352412612212817432920135037584977826208708935296567438537354637674406254333097329531821488531197287747120035576711635070571805583368521091577825888394352512145983839686152684571197192111613965271705838066544593308977026372002705187562236873004258228977371289310777785194508384328670196605162524671576568525362686493823212644808758137494047270830779581543187412532707773825083998518195647256434794376760710723384674762739505435446746891035039741800143278271141635413978860497048520319291009958357686546391452510294215294820158498311991178886446501457871819308908772367226882279113434095724391151105415986380537978439656923673118877828974363807424061770733761565883637512727994036891193870347512486414307863432929357166873899501812861080170941943063415794806557855428038926787775005904099002971744313165650253507260999491021394122552394556174302201352238888190866413021739934288283438325946682643761868440623757323887243766948763644845406773573704676647913063741180917533009092716485891894250981441625546863327687776197430255877652691895129994668674472493224307415812288807607865695247077031235053155194511431832163498890630858291081880936184806819198876954560993064336325123451699888705950407686751057752494974782441103985092032249237465663153274945502121371475097589440157289518239335052350561756535395269449558492802839093283424828664298769084800962521492167817507086404260647153431348645057864948420029383495739629279539140583996894614122535892226868335286494145392108483825861627653133294286168933538449951214990075582330907525148875806428824222454921499938321945317161816050343500390566680635006475099059531762255241868271922719051047897725451638691014486586823074164870881765754333165721328970493762937432934615407895584871217602223281724208682257626688392371347882162555240915794120290715039968433238071762331339800531151808708323143455679922425522171500445625091349775996737539453917137995344186815052461161846148342016942560562328660834400921409313082119033719522162071219691216671599362222678955005715522635109251933478240795602202912199407569305196358394210109959294108278243538439969229765245779185776637336300941375105773242097677174177525773588122354815276689930291607099394097084652401175012086935668022967133629580214299517134825866060078508550842217183025226743017957505872652598517157234263368232451656317780491744091249286766351152836888970467691016813529469255996503730815706160043001292182683108220450142234312103716051815510187070387504829909500184132030248279964218981194458129356409171557676488316721017879446663370877244930159630541323682307583972191999765659182963229230693495515557449106032211299877397092501807838325894944796523473856349399298123003183063627481189097763250366391866743672534106671760899145723283241971436456064211128069702769432578945091885407385156598601915058743526245722834850598579615306527057031403459041657199943787245546632933897078682427557292719317927782342404955317572769153111214283050988625443037474356302594170315871481301533262106591723031408405880144095169751576156182610214278763922193650508693061716135396722498508881368074530698306083360456977301771328259968506817925252936222734227322188639334534004287771553594310226428710185027324583877204482141143856959078339638963821285843625866701914362991940493502905044596110881647455620545952367971374686914104896685659569658445390139532249600408839916744329654780135928798404440526872232910018750791692846834055458449177930039649958266993647023194150699403403400155184657607784281114339432341406470843514086422292816710755169765250767257684561602131679802917714778443894256389695709179513968174309110184004358809510321153061949964592185111713354382212745913033334750155096363287192907092817932652267057651061482397395263021794058968129224959465498253187093179232597455066160878293472181270334839708477209991859342587341731439057705301174436583201137282642005537591887819936629131661365952256854082564364792609629453225444562340931825388583877377629615248980174952414121261954069878761033822988074311305957972961200059561940308683182626948860356603651093857152188918616504260906020683816341331026499888077838029238478144224165230239533885248563628186957637341730855509243812724064119698607253702357617770296082294712919510839310472457723850818843523178094656128038416121096970999208603913877672899664462184385395942455052039892045092449508063634852359870545325079827298306612909990248654463975317736682227635740353478806445764837558803875192642363850480710462911928983969987330712010851351298066814194371769780920706778091952143240950412047413514112470822895120752673414293386367487407440180020695075225408391921212709320800281206699307109569504924272885906776890470070272412119629668693862505603127567584536636631141968775613095366903227136091006640984533209550106403057329302429500679624860806190731856716715831714392724878004767078674482742593061357124952242057741469890843380305369219659420567631390520914133246979823305844263563469439469628995019982489525826093889176541648824353743821063548316628722523128135063085769802260591953094751473279630142464983167273317493163568401692165878855532018531218489977234928305780689219265378930749178234481013741336499820726065919773270389485771147668305115672548206129078406972267545141552037281900282760352156384022781376976969367754070664275533782182179807863755646366646673305893538550583252335109495777872989486581824767191432401708942012404161973032192738613548435669900286130235588855291859093623001193155778535743246756527401290331771753888440895038501324632338606506090152458677304612900474950025417508088016542267336230984961137471431077541611280879579899824701192089246319676522178155598120685229259367384391784457086469001769156302318230054780271381241264751656659189309654195249272958145007189853584915888404794222050566211609451622351421806375490174185311193456870050941893446551257108372293260632757367104560037769490795270098371113276264724001951161616289601343089022020384781172782121058258708479074151795090301593171684714928020695869061316287004316242226739514975879139209551601225545480513559933318755458213788633182966252288384007167659213689688254873532625060431921763731246110087920376186944472795126193348919573899958455528958112001365224635519406541913527867847456546155924115577985827755726683648999949455910952365920826411602322207125701013674174261068871165032583203689172442558395201100122142367869216273664528971772743667510657470663260155504063124151940110316154995505226410184698528333018712987626259357017698577108636894054269999088975486469498020700298460544620261737449452765843919163202786219713628210305785777685485075606923439013878900046433744190715981800746647592107756193008509798718755083405514304623438303099821372184228750761370631320886600455123168678434250332275818298969401712719446284612634672086807584581706615339242162925011411190438035679509337433181888592643978155281572069736848328557987553685749004074870995720986467058324928355823985021647857369960720700481430127384070235120341892021979347834360793149681370154680633314729810053756053157109322398232459430907593539417618038808023365531013155757688139328728725056508858829907849781143772245901257041711383511266935586100379616103050942521235611910777393618672815347125108829131642287571697972960808759752028701032124065942947739256260978398349577422401247469546822159415394162173419905707413471676383729255286397740806368495702844094017620868408908913305368407788668845817937330838117359435126745081402968461980208345417379309332460951027204662787546472688026463598102255964787217828563112983435389264088430812782573164287166184591853940375329193127696098377533930767816278381209007658508912129154813667108892524227850524953616870176353116802703404566397864551896199122992017678600769040280496767880874785245249882251211305394209164317424700311850577627271824909503480763771802754970234461460970947667211643698698722474527069190708487851473574164448780934552705436061154742531122165661631518006612252170428724523784613258257789514307163911027841232095330522000291699910646552558011811310147372626607763741524899792597593634712933401250342293841133175087303046173727703196789564864928104058806454895920587890824043323185211216072887503318976953674903746129530453118685197874032497812467341620382440281389256114405981494796146822088608566794020871934973337327472613194082191255405691158222219039297917898810497045868882770572930739014332301826267340446204467501050780621242751837481273715594554482594775528314485102748465674415747423442322670881717887024768671382776989708155772769752733947572935566770382366615313510439632264556079502545156666129894282001464104244291147761830197955411830027646877794362706549177920591394404102463222898884768898416381195085761361483856634236164832786137063672344999331648556090486117920139546653436508538596339475318450191234439249848914513183124605806791976051322900478431229536983641477186143307279335106130500240357454073899657965483702009091682986897408758591773201449744033084836198583577642795368315018074312192817678069483476921716146320928482438225698778105383620750606600011001087555771758776938897327891451599889073778317831873664477307890813503723366688918344782027637357094533681318117637853912351567899696655899756118455890465203066301081070747076939233019387226519803184307675920915877881986250978269033086239758178150211799179446745417784644971612485420837866758410139130284573697493206297221756249186251679569115988611561319446503516513680974378846848014703112937489791189818157695093496544452851775146400363178933488191260611390087786901787110089734140396476934104388428688535298410845918519220713240522155085611558404114849996602726249356162668123435917108346083627565604676563342412878035205332501958407775610319628184017090501321375693655518841877373744086291148896760308921315525677910577429709190284100192021906751055137473351656858125876212983477767028001664226411456882262506046977264837013886210148963045823855356293237554584359355665295132358804187133258918592483408837822496316497358175888531265546461005514487556119016405960031368037494760019491516901095557968720442465110414241179947598079931150111849697512611441912166087621851653051575280777068474659638161228288764179724124198884660130368591895881614179700954025216324964781434974524872400436182677270817269238000416331462234546462321344774569080616903622203461233100816409578938487328722815162251733311339186723731167213824943989829693987417406827576156306152304577545839763512222076619550198926065964050090579142682280306234504038724434697375049542878522026060647020102494058150453773949321492769313995741603194074293514532205804052447769004191404187239441109666240769278664341620233632389965124575868080657579784110896840484708290880128331015004123967395286180210529554060262387205790410340426440835548785369315934974627670686324640699251169334330294236323020203118472335311749621888104731618659599733576505262795192030171439666841092671543389287789011941891269138427857760868235444767222402602231847827217329934389552460191903653460215809266768086838603394371744631273421136818077126617059170724203735172941219020107896108072229367686515485262642408741678675206864845255950658378090365536819271044813176667580693341563651863712604928788172861783401487771053871869005598685041892005429592449595096404289759758293847419764459434920350629354979863152570894828242319667551223195831561802313325313133720232695501622811543245331021154511711648818084026920365343298451338167829309780862267654130040534942318889034427371405515351362320070085750588782336426962676538279329107952444064082525377645589637437497918053830941220570687840373225084070729078319580528193740674595225543317948117468172924279061657348537216224990010363487599553988552792934894812242710054341676527242976848036965014740858187175465107483881458691609289953574651761300999712441347824100461372414449401791460415956691230427968862742013987635820055042790100561809131767463651146018198983150443189951693155109857560797580107678824088722349183237899852052388530578371195362310761239451917550753726244031955532738281050261370709409214949036972190664381327900988687210905934719033592157323886357248430831938998083699748849723989306235198119756469156648712170722403560251914722443009319191490469174565350042602078835240944825402531059889136906145243896563662284046316118683845944243398982769292020043468036512564668380869122119576068646629469376575487346605481576078866863244515985878273949972055407655021731125569276433236143811030924333059702507661443497477398399203152345000406219732019907856502175690222311910146536903864262476149480780446389257394622338272480559426714213859207193051591821229842359312067381811355226504889004492275623244167109107946308211272974054933906881292420015513776771623879307417585489194714274020362270205656758997513380423196196245597757105143329337287796456847739287400780571381449215217661287908056314951578580898784907564644152674500731398547273791766614048578145503876630469614730377366601785450163750291606867098177415081753770508904040880752039475516159455570181993017220241144317006920169578793837306927259446364822579271027450922373343354048179895140979399860176175462378949313573136202126085018750612826958889218883161922147875520029487869269194652187981724495300307200457289947815855214625704663366342381712267404583577515674284557306343996408646200857557432400953646535534006068200586463318740548381280488420428868772765924040790332517460932747188086083937616494121346676194435124428882224267133361477941736712124182996488456518325278146568324003132184316121019632356890334339144197656943538826230727610829883697165304017377230536351721066789673052144029564670377423236884146442008994121068506809653940091214620642815810939661618646743270161044358013167730502353522444197191664433374399892313100938045709146618749720112240438225329746168041617902535371479106957862719496330471946786343558810194136439105813824627365311432530840877363172867605952536967805122641241751425006347359135252023784136624303265373557450572298633842661836782727615748495215857148249725402087095476324176247905505482647011676291691700599878114694045052098676151057879916399487675911148023069887642997751216574940996264728298429669786981221723149676741755166659530509102241583933433799956372622958342643970345287609612960048653510802959579503345778076348334953986226000272332006655522629691340166254375220114417703591000407842273495081645105603219679895214903977683936623039207090289696543123752470090605456295396027797446312189171701195779824866679459549101793531165182391032640293669192319315807717152217006195589777687614472915382484138817725630939683558317971997711010446975162237286449780434205240824802224499830418792598999929244589764908532995326728293571862564015142258495773030164397568888752793154792137953120586166444842076240843574527094857577972750565742317662521964500178764284293804598268590916725327485504583138557698234824761992014042694405608783799771992476617333369752554554387087211062956112395868707549275356885997154207220317003579475546323910251375724044477350776809045285779976252697338729877249216875694856706647466960820189198657458284877822137942705772039977308990611645123409029986681484381015395444986605777654432038581294692456556489970481943958558817682022857932898381421521752785342143592388037970651373390997720326533507535583659669175303993647839483487259053377371549011277074303661487311080601847557018919527745642920760746482989268904527380165366550847192952868768157357638523342126738374197714776755603261740027178355004191057020247701967476539693479303188679411009916730264606855258960927991307939038918206821774176651941502551959710028128590330276941536349432656100829002149815020794609627570379711650951732493214931367313483738346670179511334253107697674909685862502535701566783511758570454833949542991571138816201270575809487420413985879270152104134710923933008706843601147515823255311233016294978164893524826759234595162380404727187223027053910177697513166598244723157099518176807340235996919619020494628952928051430590903963497628471815506704846522438701780392139805926777757491054215727140558780350604296213869749982037276301816080404307026492195351988510309635066271347293253732256363141463426873392388161485376679378852007583903559726290259044541158661085176208927255433159028690136883516075131433722014132613059506078799980735829495829505023865760198874251541322716632365849372817315167984008797644885341480601858717338800313780053496841637277024150171139613562178342666554542175888315081624792886716306009140463005413121210467389490552371716754381137494367673913534342301755807402516039057594522820614990083059850956693006058024739808578501846013046974040810880604709450935502817057482840386873311422664764301374704976753111636028057566503040882494234776085106222875526755878297918264944525384925853341777783757234286147738789399342633195297409084310634853894160778569256390558628277556221290090384364548084821183655891737556630629939336400754848039530864471299574998952597211992739326395691224189368263171390298034498931720618037443190923098908737040085527856862229821903055632161663178108469575391433171821609190164385717300799928523704097040049304882452114621880317196451769319974798667413486611230946329405495260460913442806755415802978536079961581450619634840250176689193499350462314084105111342795512488722723393214255501537519051543121005145614797859492537045069724590122700442802664061818771209108099476353285713108599793689478981672311674125732381929762946714603789820164025583981587312892990372705280350530630643950592553589234300217601735031053449688701223722207928324603347511961545481750753864949635148818590368523560297115327236846058804212057668266537914713617587783486514077140514269441002374026380516480957165823052071023794957950280159304606893271593979614725534026141795444036104121009455710872210194400405221126818234560703991363757644896561452899001872920938139241755787407021851642198281917825199442586695518907915319762676629069649385110349269325473573225695193592519451518492892286736933589994053951853841715277224714855433830482130399570047300573094706775705992761348941807608313880760380433968671588258985484005562745772012347298833074728533730919324346625521872747396911063896470045364609084010916919312685748153408378937952082414513954379085065399759657038988581282591804895219401173227085910750990244183609479519763020714481310459724367813179886014995119438295224222381658586514176788530364731473514905095368121951827933281740444705028138845098604083038517014803858176952603878593899586135358465587210673813174090660547336457037772025815030288124928450394143330643987553982987472386887010381421679279224252299636421865957721468740493569341334710312646898887268209941280777574779350454639748846545517092842343418749592908840616635144348739476782455226803211696934332227117801835124764581159000526590136092749049619712056127395278651580506060575407339392833379323162490577140645186044309253161047668593389936841413865051220194100310418696218629560467123298087814685399580609544525918103010299272105346914034411267638887656699467345704659656987612248248554903702719911307256638953942777393664063652443111560495642110550668744845130589307318776119295741299503824104254750182363451095053003495451732323684442628285471281408531863818247028311635984921970227530951599799598719853119494728987980090368338618120311815226125076130814075469187143832525812714541214219886711211696132394718769228946416973414932215573890196709563412742169731821269498297866382415404127254191277485421477889242898492851430317751762843291121768205613317998007692528847070950964311795642129416563116804752219280391771847252403921627659997588659462222645776158194060670467396356543347875285103043813488721069235423512460774792300443294097024791559663413255729387802953100015202619334040394682937458536834519367472370424119530153255783601267346426891857113296214553495587857823345722491075006612073818191543334225259362006900220363435781780969269339666819517315483603770221534687207886556435436613801123930694565208383553550758775409062304326577350307331203460048326517985453361772358319061631653534830993502340965663953746277468212078548672511660421619765363201848817828708709876160045460140481560732907475776846089307004019089069679810368747479101745156440178992718327815879194233297493538518006182420660704590003900832815662547500359976031355198488709647021939739278963554087083336029566214869462818409450573645494472350267344060373455507372962048374991423052052081656654494680529684356437988496016855236996683938308171391166890876547009016708002609313661328994320810319087193513121970105950139586961844443095786225004097138169631122517799362415285913558742829032734139545615577816506228587941782982072876077404346404034286565052777314299451755254074102122958867764184052178856035947601498643700997122250825996958579522064353717277539832557606467166290463062387667099392716447033045258379835883516079231463789646390784518777962695946983319485216779546933057803905220486710469292937622045590669332360296745606192731455915830997480201400471989651334042316337458860299134989423203469760196359037480637158570621272880288997848675067252714531534178047655678356465333863373823822407348002327810416808105923761418302605331537410784702727967426569751232214902870149978868150401943966836299391056922049189979047639123656049951510644332109715654254062245459732367633550774895530823504678311023490735428603093337219968095901894982946681112196838886825347933295283100833031271796085697906957176342994415794356100280551618120582402488983114707530654263930463731387143913466316414636398789061404351879949443998495820746647430415378632945019468656166854899184456985732166395724678289898894647346991344251342645683756036641897368676798571090097754544060143146838944671085610787281904209738824625017250162756129840044279169184746767931791894363667916122310343880536437911283120753790002012955055789906486950140989318507018617126781962780941749253489424292779931998937018523821414771143884240687551906678533795610149021502970125961040121539399944049483694848151084306982444854786319906582619671125404576919514005125735816873701304349988072356821845390202780061337919522012354131485782963073186084472889333429624785540201273492146849441343409996492762046268743383095029255796210762715953317675767494499754739204749531179462156947364483825000337311192765130278303134616279574760493219911281297668002789977244408433654173907744786252405343363349668841510975062575896501729885118828742005268943717329303188986480225643657629119162339165522603186400786076635791793999874632224869921971386192966069637905158857422933789318990918241292566552257861509444432761730172710137527279010876709951103899797960578050243507177878276451934485762996310457068676754767074236612645970161700149345874467238028530165478140999411925789185700794379835881281894252845654606635588337420993086119463527764285623229307844216968733527297815238599216179056370126831732279155112737802092781948251055041832478033601487472402960765891661735880972564231946118922298373319457779216999927639625574103057279292970325121795761105239340264365687895842775640468896719484127431228475931170383521869668459164184941363228000386303973353408451160379239061052532430390049000887561992392658249442238616473561586836725936783135739309608483969379060467826761117298414138136170779295088028113626809891245518584309145783164826033298659739316562772115108565786125708841302006254843099403974541942411786120772135310119159339066034131651240262573606846693538961968356751470714052618763627149960001926012881328004563718545661655679139634839724519787348140421041316442788878738054420677889930018505550809023793249014613239464583819949275465970000248993129794357393617226615015175843044542280228958578705509419508645539592916883282517290571305200225180053347597272510019359131384594219854164431021827480698349126841876631092563585290853570907459110636273507424207894063668870969635999612614875096646418133676026855240708824287102166059602851361824323640848478382284468451338994225727692227889230891192213582107749536148959906675811455930540394032137974041061209497433326012665318292699281005945937766280781418410757902767389367838493813930854961828143160998000379914800134873459294373607002730467373577150769547511699010391433259580434791671203405388577975156909689015188577702029886940610168342314248339907503782657661856927334223929094278046053184920968810369970085309989895238088932528179671781393336508199540009052309973441874912426586934799056727422187024681955270104088492526038742808125698366873069679046531274920003491309284011642284379801737478758808166990455297378464542682296630597866225501782190544210431431936514104373672303532713520744397609182214564275720347539959679888377496838979949604169072328850693877165649243066349114341218611800777604223490330646282898278267713136570191797942467277093116764895449006364556669366246441063418852295254936361974144528928757750156712994899972909531204308028105702092907308253714592197167676304174114968088706099071407556399554762951426185636445206946351312692117534380541166589843748925185824433120732316920934839739633026501063728281438017749909197841697551113157300006337308540219489942302579078842417476170259199482177222240774034729225212796544974673591876855301624367839812341958647807130433541301363057049785057740070671008847689927150451851248566459225374668647213408324989362150807764974909146668298379466397488085997108279205304886133986665095886743083516665039919639326338146925782179862820734864684966144958719395865777762002177153314506881894859382975222867669467685621089671674491970670064049829529273737045503893471365825791871355091315010264750207625136645406365928649573240659603341082150754121993689851914785891908655237802500543804333726631609060794818507663592421902262153921025412190062127583434122351023681803308048846304863712354504143311238538222530751982507383305364036106121613297974629386146906152575891723615769333349187385712600307043575259447789406378951364706903596560410547111443085891266563616290036370868372471154371787239680492404665172256203276870273329155241965557146494896248365191339608094961038715665465359947972844952684716354978159516823429367684092409853359794462571568626949066128842884762723847740201494046146144094883119323918004667612384955288311511730722201083061694130173595637017091752824999260519969204791868965194006770566088451952730214023378623544564704278768282397449508286750738666460276188993992356054474640170070248863502624558721230787668892142840311639498392074597721819975185351053736493262262530889853844093171270385611527183793439925859110250054815017758491262470724013403394365619821435457608881203341739521319129621803962990711201682657230481052032038360254109793188143980314409603952365823878037424075828970725323308299458583800046300992549644183480733877989947643733394734843114822753556581386381332459898337354857143550661702542254073796505598760803391148941467048359164580512223723318192813024918009869355421333451725787538884326170882210291620539533058071015498474145098709418405206596384026517658139515055932283433783865022299722074857343611902717452977949619949206539034333251513166268221831830855876072698955288587109457739967834643457794811637321110033152413536730566609289452655139870308600991167590484327160157897815399277587483697736358486039632520864919082038555309801276349704855743459388702868783494087312158619431872710043732385642052641368527603899592411255954585147155109588960039903578986053113480005309356341093853456884004037470575251707873332415646478764689813879357763048413669609154688003970092045967618023098046719358554596305326395739952712644195329356504875271644461720120803242922609577857537551363692872686115534836824700968850640053107610212851162802259252837525151670976809968090341763876767325841534157212907129158922184889397981314317828930785502973624458096642030562384467065431565092361853708348783762878461456396990840034953650402147945643719277098125901346940938607188568200665539871874792237703869462288993564856603265974647784270679732736840738686726951035917642944297916619520674365586369079084741280974849832792055500436753915488222504654429890587148612613238219455889593235873950971479605483485852824567542866009881609489889694004519002257496202856856035790120334317686134862948685794802916054364242358878165429696455939141534898601343302163487900746339205493990628325677732352371068196768391002830946676150702504541962861067801039892250756422580870004417811695372770737971781289368103011648782704328330351287460440149549575537386145841141339589054523042814205511981365092260697153510672343432610538963884501890643800551064659404237190673731110701616118291246706706261478869306626399749195823420033239240398777515091772773467570075474974243851098620466754796824538609377069462677645458194997611203130850586725532804319865578454070668018943969697496870505865461451912729593807580421757252775133301177450946737867564770483428590251140842348937480490570475572568603433952812681289988871807901579746317340564281749971312711319064164836835138700358330998045568699348315942828671396372930032100363223353766677011688150905154256227677764826407895409821169710314891015799046770002893554231097790288935232781485586404382186710698377785079605205040247299731244281961372917609811297187473050331806429355906508320943829170377899008245760316409342366852583671144296798244630901642110346026275491130547453299800030637715020878456129638009260321939515884997822286060677355375235230685379303306543218472522789583513804499711640479206427350218778746399556397071274260470175041355073664987510991885812173973774513735348735923995084709964046271291490651946629651646079557640755608136166412188595209588969401262198283467610363333837214982729686515066563333232643301328094081596671450243510309364080397765728109942358284101075069869459725109244865955183487049609075714522920535309425239659751848975376399818328843714320280106535411270940526323130217306162352599478807467056653534254696575881068101079162534566281274626069344815137656835878295155330304376775731878638816026741567496868872143363256469030580271463090997080294484058298587943306041459447451120315311344439851509238733504860123038719109210111529903808160703693121201393188397484115037317162386066298471122800608446701683253242025027162745444187636535367227735332921852858529788461985590183376395653838304284600165456815549650499485654716858583013040286672373254215870736687935595932846911087797311007745549243096150404478884781163283072000695428686695487000144900078350037429381285490889174817897980616214636662877704477274448331266586231213687781622860598629466605526441112334369912469060557993455782858492860532296511332136477074072751676686768543201819350945888124951263974897629219199840272000688786610536424214007261793567253835994041189393724954619810654267018310880694455986163296435243613125722551851592872272569773704585020150000602830921426929119058854291553426841689174167854565215108944563079189684786215375254586546358847165065925640829440530422516786601632168793938602569284635245054061404368590560655158644986406819474774686160262176004797189053422788083422672375508713667095080090092299087705141287849625705596080721150761744933485255334891060877101667245397830312477146205764246699042685432022233874102471578709985411773194845235574717382431947443726133399656481135401292102376217400473218949187652961220344051260850400907903958755964847267762670943216623827748199520234334589918905242239278316967763768797094225690880835904930579773450418284957564771466844728393577760149423113834181841596442816857066413014954243241464730120349499964099915041133514463514337596562832113314646599135824396378517636466707370525112724779502684864842585303605662978788722039910676291781931768319192285512092908692774713233282021100894169097141561240041035607663380938912421507988333151544063488475760946141626867981782228915763109369732467441372643731993702981286624289471865537336654592484952982407758505089125193639468385991806697838983687422746224790021832495434972752933319063799423338090163115019819560633158854621671733234611048279973407109988064035612253775337781872187256475624822301478435709187144760619914489220550993941811717885373840309051563000325364810356591269449503099081413331070436858098154639087606873214619168518015750983620868462434338096474231538607691411560869585779022758095151357872766255979100728956998874326161365150631791971763001780890343658823451416566335307190527236215549913645354233979980662672795747120581489438132980148051913987574686116969905207403651497354566066608941574643735366197171232116904265624555938290543789111609678693463104797353334700811277372313080560923657385016229584375140804582705945312195190924754059447177079820859276682366399720528301391923862981843560342763423876120941025511720340818796027279163143092748735663988490503382371908019175171399563876509192878306239857047917484049672128403059872626312930844253384600353891623662568112060934212210329515777507531750566549333160364377994473543975221085763266553189232395798445290612204545624229124027398852462624577047612886107297264809533761818046506998127422609800941592622377252712202745603157554545151637663698267822180367412482861513772001315388882639871919328862228660158948259783276542117166344073388886390007315857784294073754641471757915943557530151980778406482002610945543162325334346162068222730654240803834478132057491414512839494843883275176726093872719434416315245168871443596555573163470242635309296139400022175204567791392256883789295364634479872553978868779388521978744629608595693321596509330073140081222915647591831651165590098256768459816045818623218242071743127834678930364776401152685027104273787160950864677143003561330984497868011685463721118033679467822729557667549101788657545115141926258727355333255270924320114569635448331302478478527536544605357086321148344453946057173598803743599516303861401278638383235179368190159164128798871293872354615510414310244035934916314736155978388375321013728137230774808939796148813313542184744511450356039166331154419050241077778344273408877885289191955369262629693484465617624502808791125103651303220513696267126140529911408553681764318992743468883525071012866316493138563160846240424649156016316777189189579851230826870564670018567118878245909555089426884568818222668451089821857609677358137618634857775773762771378568601289263380432130637442323787860475364847620138521099090519337974439727325402143999833353269595004703277991764988886333293675552269655513525136119038176513327659728131446067835350647686926725301485606732986485637824170967374242320684871385733559009293310775314574463183574983066495488132379398240515898211000256651465303757212094846459266002458515565835747283528945093094068117716801866360705361694954135182688957190481418303461347303234696886898737149673008921612264357457243049170107042940283390110154460197879756355478319202208383569980512295826908513812745748158362265751036080785184226133385981176245098152764029581544744551053108810888596887081970879117289622656664612768313558731617387802801843984988994569379950287730520249587172025695629106577490695956774165701602458689902555268542369271741261752417631146376371449038706377329849403776934941588173194160601957132109116809529699482774260928763421363746823690632037492293356085323727764520464706382170146220046405695130718424298660693385024699543576347307417679713746762567457204442564824308720674046149904990477830522367785815914707172353792277071109741063511222382279075055100808119885783785843134505303272984477426744503526851781124408950096600213732261180814217145015002409826258088729202417354600442246125382797372154713509204003614680839021918669014204222870820191248104649645155549677746948653259123632031951526999309460382622092480689876000444604092285786926297966241898977360665517686220778883787829803526775026033108488730375815930166251999024565918086606044673081888235685887623338787625485158645202257131044610536167991034463986077008306754107508674114672815140230748629957211674246301869645625185193764674998067725050897736609335903610283942096923672139154228215854476525627552312867629075819801911622934590624110267845383352338367099574382762619699650097607617698680715409914631089604062084968775822319775655897831773053174668086081077284030027834385852486925904298387486560112707743632000067301465431169297442118663644373287309751862444454766378866315572983167720195383221658347255818817468994755569513424001595156516344020269870953758983406987080998222346977828217280923334284138114361308076043842482582184130427888714570078221973463949813835738067677257364774823406685272598626319038023640492385631196370532723863968786681208917882936811067324469679747898323820613132801483773155415344166711771221856064297358747511916399545998759216078721306498132279921487656143176442165347693492690324740833620977966950681185700732826807677693678161708639566202095944025026950836591840876789455563613057064011401137257584538040618234854421239534460536731982250154034817851814489720405494100544190700250640736219383184887265625178043528233816188715139093824960278348443829227644130965666356900509969297120282328648288443265197959558633042046682309116432253675143337709573531914049389645937342509355949329586539815621063151810390621324544404952160183034563505085563702628029645891480611903761259979701824164651260241538830770034374651687334444646176727343483079690151141748763380587794319361443422296609110988153888388737917047880239163004545166528162317967130983591999227663558055358525900428146443163257998322030198325049448226714309009974622139634305404329641798141957640174547776340610661628879612443468371944517012457538576699581225609377382918975137356217175039779744656197585704889018147311094250186136583225627171193029799593415461259300135062919581603377554828861074599658572250732968156420676379261875707410069779070973264906586197072254393555391432548676785633851774122664460054949223548254560240265640005894213422470221639234462981947192601333997810829753594178296078831629333178111318550965976170998911042548448111825963419955063044076537843573863479789039704199844393055381681318486928387952418105883037813136582765327375256125026585968233057065096002333198884581068124693754658204363047124383328129981293700668445697164528867953146976770852684052365188815657684841798227626550177738026196147515928642192820810403634579032021041896491778205794545457698871603373017881203885357053303497359300924370884538118096479073734557339055888049600090013785691718617888788116258847533865492748902924127839621134847812139528752264003192465218403288558869916686311006823250708459165179374642270306022993475389162036729330907346816989719523764364263230860238852802998198500517348130474687483203841281897044767973153053232556145778757125357360019691081504783312732455863019659788879241533905733820364090155856590186630091671587357869301449232179035908877054618591824514708633624429596919806500588594250529949371335832720379554975289875381202738841937533682942876098498665445626775457159415494796794513132856422505056235117874028780070735965873567903860849227681142093641968289038832746420384965708556341744296963521291479720091674897451031713744537342503510022787308939876413229728044154664819354825611559009568214126704757562009184006423257168633561288706235585222558225999118905303601859295077193286588686294633463483701846362732002105633896297557800957378312040778387571402854284599754201782190709424013015897759232074742492433265452743955576016963811881218182433467439628472532635600844142740931237227820990392754453521576454474988914714858200966055522190601657266920865567483259779279883605494406459608209684342326905020908145066756233039275254683034175903662410363300734317112703701264356357280059609074300692112768687631406932257009646638093355941934105470025274008943003667849704449229236103671904663897560343686492976210048772237623819917275081027363237513537178663754325909445321491256243684536676653438632736068159540885558022003629115204281268453411172019158374881978427902781725985358045654803052022129819756913105218354114430591055086572105220191627480034910895578524269400586930071594160293048473196062021490388048254655938809062651325069236086594907415965524291808841798278380037367229255845534625354636704504270383031640197587304865540880476225362844699267428028991886608161919275846287246279431217545830074984359931701364915714094873302870078052481061707007327365800772999437566083811521911402447672130855672473543086016957402751601753705037857780088680604397729587182434582499979606589586683519476344599093131891087837827848779904801857644477919516819548091316596171157552526023961149150510815003808560347915900659837722825037169831158353874862203403496463631353445159409529850203723661668017125439710979478376916904331609285326484027874471926142336336758668350192118391068872520970642802068535636666755169063758023576441087190932897585526535314712716799836616912346026362933709886067941483641162077328405051403269815890979112760502839165907822835794700336576548269753356214137657401034018211101470914131702943599989828901866449997298192542364368511751699537101840718191269661258088128506443551026116610101618697757155396294990087204999528560845670973204426796052177683244055109850045529472372734240951815342255920958128720871182282726146553731243341064760689589675178849855509669363755147787516612812989764734114159155635528428411966185120732865093375181643984877926101815735660397751774050656076857550042187925488605620615739056420373801262711753486029662872597870744443323839652318171976209329871139922861099094134086989002482869546207320546532148997369681513505223774557976291354777649232039904371782746245183709845178858015797188755651837243584414803442426202292476709059060801956841519594523970314688714537016043841603220937139806607475762810085850305961356245936182026488000168001774904251601603102113815182509772117083641014329237803184998251406077289601535755665849817215289951429169286387234493496500020825122884637786377004452382465901062961298359518734564680245066648927463854075295006329012594049463643996738903805003088623881746962868767425508727311219431448697629659017532445973422157498632824670856945286841357599917428547813463829852407013989595327574321600931923556836959016040597197972303306433100883529631750311330280817561712194267064621239558566671474087626872095430559665958523217183967805299480878463123140215731305407499241743459835026530040995465955101856644178707321556918825624716906028201119924753409321440454343745827592263172252652083906709188154345134057536928467167626453451190501647566722978030774909717152254295652355958631955418786724791100967909188456617911388933583038762808826748653831031219466694873068693076190238290105481653722319475511291022937739718942897204353498454405944872891577481047972699796419959084145988875517150680922292261220232769555578175628181379135920808440121345960846430081868308405594321512847421556878126626420189593096248722092176147577139606182721808485282129863675788897411013982130668229413997830675154615172639917390437834882796657292381371529431738725469595175892498660732632342638506483871846793462557228498047754083367080005338590006054701184531376323573842696907313761583890118243448114254821169323443780291957099320617594806919406285021571873561329803291651058534144630751469312908782955786885952208026666046569279419402442443102732963652308898632505082281884584520605043061726622126506139306818593475235891173240141327154491062479925414586933192616677658271662619582487057664518001771084513883564891523583495280274893002146572649924990895923624900830526874164206659276576420542808363348144967079815941990976299655151647401451422434912460174584215458180552816656716077828899783458663714615020825840363979786385133033580535051802012769900024680051578369557606698161964876172013537130316726596110329598465175093050170434552230965448205824527703004895110908555495841872302783301448057683388909233915385206289999541080748983348508490943764519420393578125172243771369055629921530232442818090374768599890441294976305125403474084596416478396818598790996807533797741800124557593705485372852060302404945701918354187771776930544237273882048143361745581182812408251038273993117416829642223336530069282354964820961646194803344429138162321635866557112945435215765915017773888069917320512870795618792366270016142548029881606373490569299850173717999232609986277275964989371310233787923697622862575166195633548055292342156542648183919829931636319917554832194910120988493275714758980395333375537852998091483921517518316075076868712643950485079149221141103070119674549786691493882430268115216073271242783311174327969848897266145083400636460770662786463002205560913529897716161506002540387729632864811289655627047980769892062891668009797868705320684328578535681987002191441817213638645447343532191215579246666525007284704022191375454033327276154556067963074393284079123997636219781808704421985023476244715807472469755903138853519170948791753412159475354096884951236481077984373111953962304663381335064043411935517846241947721391372830288547807110004384453061464702086081592782777415588190495666728921015938564136457395365913698996821899390093459329577028108690407237736360317951138001915619203952491212832430917045698963801390132677630569731186862448268624656503978716800671092217251102352062868381692703053824163272244064671728531907353087262081782360091642973506005827139776501394554044368475711576250765221594019112984173601521493877625639801462436083631002256095223255381693529012339490850292174409209184131522772677083867265851595133882511436048873905670535719884273051745910878082826836166386306912165822634242211583602172497047030272332910147941800536417332462744738571209201448894942410714978409185900699066523848957679303998563377675331829604318227332767991714977681228564113233584461903862980886960294129830331915569975458979811875281535615736007607615993579438837800384994617112238460879158207384947601858884316173069348046388343775937539603520842414962490408026381928407464391175211114614210174203640912719104348058818018408477855910907753700538090945956920868626519820824394320053512843389895777745914910840238109169113638225610682219266554356441368466714014492062146203261487703129818039016809254210029212131138433694690959516216771287797259106272602000137942237746820588598080824940511796876465128127671424585521130478267164529479405820734545078835791669373424635899271974386758553030418924411024531599695129320695015377702286969031025889853428867502347674887763972923707100679668120326009717911956804620805500221264198056308618239628040818953475165531818271904403408717115971739260063785070265490027016159820950009653583782694971233065427893586863708726475868067256388684903538386494502438676100141913965011796545701178903493171646521376840775814075040549378298115554172394018719166070474893616722996045293756482960659127299799758095597497833057587122131054615332235100998601053693284548751498176251857701066922530442499692925335493493153999852043880556342075710719868138887934024254272813530840362827580999763000305319462898613294123115247255659831564763651992775203895662245698397869344523307710404146431985486961366407491059496532235652585980502106382655744665307069572692704069050810418657508416482287369107038076024906128323060352528047071668987444367955711304651075126969262503190496862742083448947346229304379639449135862852241853565775082583290580204699642159118391531738729547082455284255683939014479032044276372707327219241850925169384343114971809377775923504186483157064095125620589934529727906260846492015122185054731532181463432671231822420365237867552707214626209387520865918351884377381826513393296405631879274437419902556902377159087016743261313879841119653065817087851261153738229935997477470542448840650312477723376691679625205847744387188017157300630821518703148086693800751443802038023505534439296630250060494584583323110126657597140127934126729582372292572578525775584587869761758056204496792391464181256497111746664889265221086471154417068330358146624999545210795746894283428054813011318904838328236012455630869293454175954483844030080226295555037325005083029508181783558382296564565287490488450921004854466559615952741196833083402212664853716879093837454511330261601246658625452197571465391266200245248162780962684363274965471759828997883947706962921626431746718983128891802239630341233079845949476739176043160723684000310037045872362454035064395106691997653923217055745958503412472953859198198515602125216637520100259113806948893333286497825178607260072144523387190778165367830315231695776149448745933690103582614273759846005933319351999859815092482109334440183109520024927409885082282219167120115360416414505409645853271567422872092838771656536378074279919108114522737434840384710146535187560711752012685092543055823882737365096815474881722126197560863675210800689221004641926747120095450613178383885556641132111274087365166537285574663262183702326674117589526610131476683144172404193894837230922386647187970506153941475108152339361607948398165047979663065163269739638200357555713593139907151842697894739863076854366127308889014049562597908667413790709804778798734389888199473620929859997786893404666422376235280149816071225277871150544080390971426986924465185646059401608360466673646253542025634024828477682805870818893149489692105580348751494385982715344532841616932904687361397125289718093890500190536798374003059591754413686280592858711384049130789455571899927293932209737105597726826196640763522101319854402600694837374758265908003883746431075884861534164366064821677474775038391892537442782278921537686257195016468875825070458251582723301759400067733208017128352154383929064982905157670101597138876196257692418077027837874050615438134789610529399416923271785639582850473716401594410737135829737043250326111597689926824854889790305925965224986729346999611198965715488726666903448881105050861938860157451775787301329880097126425218900210089201490766243073550374361337782126579423603337686691550973658300795473949522955325463715306593113986881797867873551431872596832656050914595691668722729875781937872433125663085936999448492644431073186987246157589382796258157790248906555483132484186747731598588751570316267718221640358933732615351300381441470241292513050067631294530334411486211380621584048805574679123935275195553232002599380812481277087952689695148675775620946511175361347915408373204589892905592249611014703415536439884555003842239945887118849661339887693254229458031767508413853717472243789593309829144782694370286632280727471430075715947522570282982077325150680096571311123328620073384594955594076250801604528690753260233664635279674736513569183154480388025339323109669217194955246041140780626405614943891438399234663696464055139943753875553110139458495362003573920810092506049018908784888573353957210321825445097407016865674307275238785269340494583631174014587131250827377025424936953948971085644026073533304520997501755369866403569303598137170769501809004151677746665132443725916832281532892676339794595721935419266046879361395532093294697098669592965902474310643042508153504792750206693239250233990934244934866003794739323930315538034221356106296340780235966561222488453014971067164033852152237016347804755214933039038928235096501837267005425545699542174106989610830680747899676370648862679021102260672107690180205995916512511060599609637204057314087137943417487044861028388755664953030651605146338336473604611544342881293341140991007758610296296362135727774758900886418819451911970601188416940955977598612687108475998469348679545316151988980931082817016702382987168452911643496976558407914300589686872695724897475495252851702281569371120751470645038561479871216863282161758645322046315861918922357888347676700553041898346336463893351937784060881429179294228942064756961049067193897688460660229575743814385257373676709306200762669811023502753626573511097370487837503146028230367329121760270048941368777183325881125311339950605773774721120403569927184871557009861611978800681285701899146649863316792979890464810801025498663500536825896160594035897541360348811089479399963570464298041378310126160762894980616791518684032099880941910748047030531824319366308075170324566363388046238954277734116513894601384145368973824753282522074151822699738073836170754493838229435430007077028611403348176117722988004080099705980562093226772246126613433944680509673681392743747937610623881777810779078965472869284516131113575042128523865719660219423244937283182978874743242474770262975099155472182381321078594739241829509304368868528743837826292217293900515365837199477276858531549367789062468965464838357510578767449812517698749472584807721991372433470408803199253378209539985467021439534885327324119648411978594633412690370438863120798034182935598012276537588392936392777866706351591723598415317980397794033436885686075543230789000282080086721222981951575399342129285178922162991428546231795741324694637115631091674260698332847321128236700969817067642845515203275131929184236132680348088452866466812424807229791949062502166159955193184609273519420294441299151616699545230160789358847327610217212102209783901128219237191042827087683877610009352662018936757769086813566268369155921355771585125011021146523429170214058531167274619106253556986588928946410672915775892774130028275945181358027749636678942510747077175799357759135753479380452126955991701901373390183949644228405611270088653096425151770580975370812467250759842505772853882541010148113288000738458202366681512556376261390877950032930010216713403992783082077638503840401023990790074136178453323175118489310514772027691677775730392681198444933080461786061675520167300760775286164714211699735615689346763494097359748784707443965315583954353991417949248491259940215812370518525748031625038031610782110919276871309120206511792626744305875894511421537973955390260208765555517141765366010487408426932550773307096415896457334160099505564118907329269668216017608825755560407417376555477331483324884039497016971363126628781554661514121598355475589761072775701475238264058238553465362931373164116308546655101250830410936407134067863398017719917860171870534761187569650378462830585464656787304455723922165596742698492838033543706305391902047506896663684217730729984484395617530261207795399565502713281809376925857694666389437234854772700460539475135777033957904209873556790277281001558869901265612772891058204557647944003598227136066851530267722687198394897778993181357279385134036646495570475244504249451768763666343338695000180584195423370427178540118896499900210052016955294914893472435495721594071950479968802817335853265928695372641464609401724465241437484881570065676703463742942441160596594300504486648719026683889978239944808048143155276435202861539562034245200877644821485640584226734602411121842460011007450743199329594900472977061474774977143761304302566445024002660458472035646604137406831392693339928837466503396541668284392129040168969555445417786646487409404929336593741294528215556349242987000122346574489935181583342122390750593231805385228455254964513595614762223953447554876887866635670362580590809885789403156774813502887447474206937796809026122466385813670190869913213257133203756149741002095419117145726458771577735351393017359958063771982092105729622792373926098764726325207145888509757742206533601234284867895435307041004592634356850610103992533535886627478143376869295001146850949187704075334161739319452890841066048688657480129886686331157571819673205502936549462837968043249884340426324804948929357959027670938028730889526952483516853398699280318433876993265508591678377319767147025811234467365814460417318726879365333192263592895220052863256454905962465087444076623988256612010335896373286662643970800700359160510793616245822931724519602559627985789046902049691044271493669877278071682453255942301967325377585450889470913415010687930679631211665938923541573337110202581067709627088230194734480203780210161043132175041734513904452153813053430105733156350345049857280603888497904538390005216239667203742906383914814561274764573608447027555517846753177462227550972126927259951684487909797145072084618964770741890587152863280945695212969132276315781042221469464971977680583788919403258487687573540547411759764364885906282950529787579839900024008182661542006408887438206300351519821149314704607471878839232793513841480948003430566846207495753328738534933580781366279292549648316453709554903985591971114760548327466684365422741029505691611324400130577676391760261505561321731093716350980601361060612565435509951607292377103979294489104886252726279238657123408750635770785078283227616970492655212883222479310581887934162702660815627889711239182518734280574667907578206895740681197654679063525269317349938225928990067390236206304330831151077701803452817407505278658065036042620711276503645670247935756511894847164289231013174288855720367643570584359371471140764484323622308471448694545488028244574453289000772320226239836885751241913883557651486868777464321344130952449574525881320222307471837171091661413177954958157446649856705665282451829381367299393516724217656804847392489414281659886170091645413063466056992363414275197890508117829058390382993270869900840632619835509237921025181108722971849635007298204005309799982139090830963180123482865644437669642242981628738753083020225704998646774353880037053009044067240327309330814680201450143723838286865920308005427488466141524943455850757025386947396678395653516517110320137552474855217463857412046381281479069463613849752899976813070698711850274596104629263671573055454944833527559738587498327512818556167463116718493696965717191880091695692776234218713586686079115136566835767534807289647558797487498269284318460070698670998658155948937473134623720649287432563113187618508528016807429402066813105714823225009414105068478122621225858348390476916639260589282991536642213527394841552881428242942036937051716857597656702906619973624172974444362527240643642401310673050456840807256900855042372337613400831694940940534917707106966722492132120760123042429431506994490320023616471986386616558765614007110295886419430925293498463845225402834610861174206264395589943473736247021140790838237139272482628312284179541407646567790179378720446187344284148161345154061491654951107904543646987120829443134774691536154059339738575922597459784046407276346942376303803408047558013354906943278473537995225578367314407717527613000457995479847832077959258649749599938944839423507701193828980797695091668202816249059877611352587120630895256282968634857191354705381376661311230705726965214223088252911288678865564708211970342196452155138638648765259865846757563584386259565927009455003115544547995904471530662776106435974754982988258481524874637975758356940958550805560118824150212794295727835285692398640316485456268458420252047708997562661170254418210726417694621282242374467962620641020125649284802209610727911159294369018423519248820871623987865044392847313590928254050963069676874184732470832629696768426351284567652333420953786152805568955980580976999904353607307612770839036348398076960586858442131128963230217946728255724485897435297757609300915965915946069378371957662101163046858734019176338984422470068916571665951220935041154019879003798062672062222530046894691638503276362454524221473952394090259528653051902925071589439045099608717758699936907119066793241411881860374708616122737489462251777205653720761274212625903233254199365282284998269907126268845819093272218577980863048627374860236095061701729048849045353386498989425837726165815836527501928526000032615462158389105919787229480912437004805630457287929836180576592412965755039930290205502617914174257837550708833917117575639134945949941594325786013495426922667205551720193849878956593703025911712914899492296980958880759715250655754993329263168564638146784027059909069717834664390495718885190693803607127783949785018867578792305886516259972552798852007454039852106553452771698233519838138904377470414483943847726419707845673937695772795099960191937251236824517646514300738228832372306683379354274646001940426956950215496551901615278488149810097829531125976034734531592314173181356036650461102599133184496563160740383609962667175800207547657182229591223537033078449198003051641139502294335597196064479645561352710527842569740731347816801012876413926553977481394310466239179383333095363927538682523144626363622924071533796790330788620626023981286368896386089290561901396050034774734491782801472556533993184782601673204667049873276205569994654906883076343972335819932455252452108785311616864945593902926010616008376680187925935719434554810247952543465634504824815592600714408671466673969658713683980120027218220056648720184421837199341621176238576819532144429689929226977464838353386755364272512638927252785770949345762849333778317298398574569220728321398545869022797274077716872664734792379357596867367572012133736444179905969083380052549824499778447829779017062716896883580704269863744295917000702329024534835414157500129332701378883541665909055886331284378531472499133053114875237035115492781863866422470992881896435021109091111178884179170605765475827542947965403978904298101930971730080332322833039083147275993388056593779666231212715998617831696185549011213626879822810206497336975496926058192422853136619175359924958537557917918637192222921574636032956904248749173089573044341412124389143945825488727507711668174183096581925615358068549061925555974461866112924034600836815555164855756875971229238246792409070497135653359742170137101027845339933596060368607489957591495885067628984345110044968960911215271232133336705139728868908803884133068261508704224191797455021465717800694051400020059421204485259677365958191806376613095289839864609302653247183397643815785380109604918549490243229718395318639250149865198706661677258968226301026952343118632215804838557575677972282673633178161919494447721650017782650291510485182015514185818736431179833759077561908217719837090090288203595936611646306206634200772168173596607639422833650427919229090406978343930205464312850767647184234946750389664269820305438092100584452669966165138538206506269661341585821108207047318534002885182408719110676143728999872621661757720221348133099459941474556236462983132839259088262576774069473639210944636857890048822284664466369630644151166293966234745370165924687504052524743505759786514728277136886079855721130559060033938697595242082119016205396292130023521531093993588285219174606264691178067277639688370143094662033378430957496262449586237740840249595061336800714916203275367440565221519234494603021771335996334891481669111913845045378683199416839650941409194477876903059219378500952122108059972026873690086356917580517004207010193752818458815744804164960473213318136334377785266111436293039340779850682157882312466613351913531389790567768221022391219518619362824207660793202961378087080749698037857178305725822381050260232792677628432878428203122413995750722337670098531162482642406867291183020331241626028913454063875606993799900573102839883810896865688221809776551770832940813482873308405535751065572164241847023937834440708164767458361877312834007815360660593775201610778892771800290357870448911960718080811865952803629012259897320808823331723479706632581536494733363199645760034582343046612428305275388566564724791230871191172711830216629208766002419944954933369003763127994793444500604206629102025947804002275801799555624841635732231479848719626875442979178707998768439486694785992677442050544129698177178209176224564232723781522803663606082046725206721388952438542124482011216282051005968329745165514282438621490860176326070219078337483139777119339555336854260601336652482254995013308502894502729959108422856079891546437727080523995340689170956361077730752837936542702691343938592034216872676363444112027668576618894858448180667802194620780727133199171004972576223841673252486162158038184579390924760479871405570246456259170600783229581792556508287013631060376681296208099689936287459682646821374896688539964355784179543225681377311409518597668992149190526017405045876652079545375451316879040472826514602466541704528682801889955906705704986366203331398758314282325640023477926354663471553616897780568044968834716618471864549271310204376365859419105398621163479485985504032075313221061023138150374906313251730106544896275724229844255189752143603212860391652380385402467861133105538077982175839957254733384311032492982881677879298281851994151505228093515608116651300794459298358591675419663436659467387589168613958976410309529248982674892791173942658999855690175680036412442939628183325781016174965036642631960772899273307132844656019421725501729131983119425370295761267789045699921375647994219601734581402400688668839867759880827487401301549662587209510103737487754112055064389780550012078320251190847077421212969947595627649549620240479925918357342712524261020947400442780680262140039029673673675359669640349100377649309983832479880737818906422351349091443950912556317915288787258295881126368919939172542929739453137850693775846385864529240091690968911601667331222175479481448315863106017229181872033423805578930880850321781029605363036378943482042250140338902034596035988173684584642620134371583801064882602540707957926063063273880123768056226209733215220750209647050730314456497764591581205141946027448881352882981492936055064080063726844066737111582348753239565474853205297431817750146841485578280250816983164667648903298550857108210119165636755841920803795325752808685104598512759140880409495209755024983878915145261768381442259962453312350855841758593921008132433765518403729668263015764468390593399205364764742838527856318007697629599039643146764297490748922104115043324382820983102494045600492373550671313340962776517733136945213623293976406204494812834872597983493594671847958166671977863311129707963274655212200002456844234914164580583312177072293156622734399340097799467103758737792871311389483896491893438209805290838241787309189581087164487479287039912973138303436582084646278362093982014578395831587353409110907995441893442215900632683790726898965408585106364377316268516917255804357996004346285008245241289744263209396210643471656712714851007904370752864750845850768482354446596109863896809680768196898859548044524924680448164810376815712544344131569602848600357057851647079154916232876825577433688129966927822675924515019908632562237739786573079555407545342645869856887040065955289576043667157143793373523560042150907749957732714954720784376325520344974885888056630713332433744441412251071658993535144371800737202366386164486787436699053493760113413573973672581635895970186377348838162995018505732477379600291786283913367156207756685999755653581761342204069468263015270526128203057999136969790713786003941233879694600507075101355586845360591547645524665479947166602136852489165884957542798938154541782812089479467218247556595487505605687788578854123586065451725495374861798568958945756964594527702340256575711663012854757250412003993353024762522474783430145378860373770793621890535582679605200293195102386490624686426659320130730602564367331935430392290135378243471776983200358946731120996819111067100585284561198023248054865059579621762697087610492930924783391823298879138724290157570729911555473757441508609851755492217303862282915579930184199144045688281297905393322958672835416793082255433126758291671325357134438001214300536963777050652033769097803315374381209792899161586029025813003480831278712198129183481482241556065149428585536082980991411972873281392957878778281225343747284634904226374455494898813537943271319199665368940256207645769075607124181953309785119651280071423888264264160136583268948136917078195943397417794516951758824779652369855685800553606420063072780220247555085396940687657414620580316273465798751596356067624080744034160275032636509328358897607109548307018058432237871623997657649118568254835537496883474767100415415529728735941485262729297929300518614120350292120035534306175348789934348834118130727824302944031876534582551728875905919323705102979003581308261771791577368789116715748464525036145332300936351979876177684687818080959972874931021138894405748915213087889042273318020128742929416730270469494457022853478132403353235549609987933054913506754338082213435534406418838982517063486589440055722212006530463668907200117854892084841034311142014321637949748325768601267913263851152503022450806719899581457246989491007072016396672236549648066020750987631313168598457434726161729714583389695216232944809794318152747956437442151246558958804472630283411585194356174140387073878321271261771446855852681781743182782465812419945036999418572514342759515143996988216759341744478157226883538405014858705115377342609566456526846294918096913240365249623001803905774101294358663272998995938134364505692147679487374063184933220802628325289624095773168356923610030841851727791622212737838825301933423905593951267654121826484460075050335548634846405082454296412776525028223598136251851445627854689619224838093844220437190512026898687393712705950559135018380823950707197260849535412412353190248771963111579536543124949904164234518235466170230503673111271841468428115124263416583771245113689949082184920631935153407070481113670107724848486474290185935370078286006571896734822011770383092501191244923913440272313389273445688900753086359645118235600316395996034879107771857957233721456798466194834349048267477698562406804890660053326596918277824178979487796657106894624830759947901596297613747370116304609261825360467967356212407490338936351929603370565042185033230232344661405003703281501615864839681993128743398808937621286735784307770996369447218458751364710681341669077031470299710486569598717036684311050392728996883619525039055374046013185274472113085288689451593634455874160787730752538279087555792289336717673845613363981218209315693040253811237785758721059005012133728100669292244885667345599487301134536701655493650592556283807175091379437936077131602098672573395068831196712529833080671283919284677849994387638583071220270226937627637281864415624261858472791262689483081578852941054895321860047246097940647543404441682320698541822089814242955699424053538234625048542479779264741334670639038781388965848457929988168234858445624809785523293383319952274980825290064871667629390973201577514532170508584855647052306840417421942856731836483117175301753267171177163783765858248842547628123339413028641243158020471566831148011406933373120668610696029658731950590212651388878377154004884831632717585830318663619061241491665433220412036965942213412180168947626159845509972555973644752935834658380702745844578985252324969002167115638423760801139498302369120975775300384253732887103006420135685768922705061290624577111727674921291328389228164431629072020640642193248078058824929383176689735256599423067728430273808755502756835398575472785167804713106768537706453394434775874596256461193034337888179053552316011245316569148292505031572784180180596885202296670861706104016392436581885243241911231108069884925625212386615130832361346317894074422863259618559163153566781920911642189866575905953504390158865131217783388699060629966633547665355004199037007847050476710021225027899120912806122288647514480884622720669972371216342966612855597356544935289019097784401551799408070686239568329676537156856159518238260311373831560427956752640516047277229535268014691744136570633087700375657489250018468282505523644173363722923478231025287493190376259847949327906115513512086344706956828400423045961450404093266317002893730989885055029468243105425228203594265522418093719798572256190767159934007508221503723694403346809491082318827894828978130368345441755359930646409829730595567506872258334703259962378255600145546325569343822016504251069831304344251639913041797497040573348557381611043990753177409965129280368696590194148956413329639839197843953527762823127483762752425192453678897904808461568552677577578396451928065474491990475320694619394949934478898271638779440065683709855878441881280662729016378911884520731933944935350138982905423636535954595653268465945940176329942191156538984835246026899528250570204550074816084507768999450418690515471173580805119288487512577146282510209114554839219970562561850564111686980302001682822093044150683556005062572079815860830567611595688492366639518788479159892432625146060556891352245126808018379939924887424480645935156253178974344674311890898968045763813195195568397453418780793065831457059318511578330084495394927397593377058736926656424206386004753892359376938976782599119617038200428680626438444682623367306147213709594867850198811280175024688653076625794002882994778150105045630550585671308283427005971950000314132433841239194669470583912056661275934345317160197348442240714347850172380818473493045652364501644483199752470088462366372264429513374686765014804490716071304392560429962929581700089191334880405620088859212378293347530634211115642901181516265854228007282313663356569154508318109183353296466791970769788512267991449467934752194478911548576428580938014883487096933863858061270270982615618445506894581873190335071391640556586641161421339975638954715123438674027239706213195267741448686219187371131218404534214222187399545882909721783693413852584357540022146026953706745644939181085825126945765968488157810995760155844823782154551072525644644772456678535641536665415565901508485748225179485889631254331443016638614365168340202316202203953633540061799747636013225290501928247458401010529185649264356980698554462070599715934140632616655374808804961699944811899082729465454712329980232039034341019575007522135874534570985038859151062888242852270590113175636113073524581122700976256082150226580830935867106527995340564368403797982890167459904341304669398194069038207709664591788424002620212706254038381745531114307000056204274372635109006000751964960024045880478723590441751201599939405023926660387462583192568555365859986967540361834725544827825432086901523001279826970501494774317177266912177988381425492099884826240274654580326764538086080811685274651218165340280892896501271829314221652480737544565823173253208915498519113821916538938144484393039268639157090361822938505692018309461590122490339214867837273958117013450466337465602362081334305319892901708025165984695945114765676547906012386530975503710731310926936441203047381228689763516112155295816603551561690900854286540822262189522904608227704421026662602675827684119939115858425964221110215877841553463339544775309706153086603212848941755146282482346506505225295971559737426581733789617434421296822182100210350156912621110416615480303673799985291048983403285060020400672928505593680297070854494571156963256150406629631012943959821351401375846299778643312349227855845718127982223539415835090159024597155698979354912856794253847179808648165283319513834249164595701520429313019785536667679158634629122668122113677812545142940093809978559497543865999841334469122409091790922970046933587845420208455726072480424718998820504704612057581079821994317083476501368080335263039510242316404989505082999500953203211728910394626992669322370324679630452610651307336295574936770726574881856872977759928679828769939709792392351207570637994470698220988588748182103621952002688690484433370583749498348032348775174466670467101471476915996929682746179652967483915768529225821895398654096670073322122493799843661586817253267311820399923687809517483917264352402212864550730310840961442491537623330195009217262610333727165953335422114975736646430769908102255979158651031420370531441526974958522844277658438096977435552183415415790725539393091173281397561803725880272333704221759010202135274467367876254183087430699363553281638274297441232149160288091033445759148864896944638285896632796699992757475957488156023111825349462871597418203883007186742594382239705587914072644033442390556502801418960783273636639074557936808310227242647349325967045341188550192528198772420899822998840792264124437824178215726038949117422588622129472934150608797759617918480645784216865387539444837973837190975485901359276165138265974259932222128544963143346337515143152476035720222310971488850864237792289407156688843643586996650909829689396915472537215050929543858765886425386563194590882173636902651691847084836711084728799145228967483531675522464875342226989784792527203033924765872598116665037452932216831100092076747908175503876076144367990802978862000206332083741482809973358979440267653987184719007654480943124147866077178682355803736910217623755630483279261639102004650145399927291665943460551299847543824799238159279998768737707402870770536851965158694588182535046860793941304608428865122659409155602541678915509853191355782789883523397031483371597156698734624908997247088075360880496235319536784441512292358331860822202480734259547475912485101719148172056599712918824452641032078832838756207477437532567582954341159912119561795333572399576489123822283891086092742457401910441051339786734068193713000044045330608129875530328793444236950817736622633976548201931376112228170918936819034141449449951310225170532392443755331191944874988168542075923831110197531263356174777028615391751168879452970535474223886203277902863162736383293728535812319050279634144284996108214218174624844164538111120711426991803465239563758417080994479271565297180870601061497343834577063704192607484495049506837789880306727145147059138046948945948949846697697866875981452701697154975157260765937905818401790325415213112096369038461058091139204474643394735098266322057009897853271196399998083232206904653942263788856502704421440108896519857476087242910281143464150735857668450716313039084029332539302794946211997367972637339408604888327209293464676131858274240004838709253055938723102665145159933211030326314376416321236826846336264688492041835618495547361397429362193391785774902215411120648233621914127077893603487150983099288464736407853825143163433933356231607996619068164029503293877049361633288672003544844871605219680439007686785817411372076117221352180895714360809356474236219845422890636646929926834654761940271343907545541994117848726659939268988558864260422502354940113779220414580588958535021866282250316561761771908124075938027592384226614642823059393265769900443746463466789687420908829479731945260956367329178550738054247790536682206807911202581152882097253507059104317679579763689453797247187057848217057551772970763796360467895508841483408979034865150164887749140159413710541005711525953561762094526145804376701932628444251430250539356350021532519138335564620342014542009056321878691667819370297114064397684028777430226676026831197632024316783683048046871788835648509646195290920638140081050132272749816600037707142420566196133240778718723525519195932291113604277954946978860680622505018116109712221048960763902888156583839829659103619354537333886869371649053101502270372176714302981587615635004374144693217225357637948070064726040437470712085679501927890060253115558306080118792470085847802225179245290412236864474099145025057627667189726370909228144576271634507804527813724045141518661563756772012098744735122511850784140620596273975568664940236345899525667118559610134088716059872458248306103415432795042142250236427325838393729980878519654295005770339950711631186497588609065006317211868679570114190600616303609499506097337603830556837979874785852831466368638211508924272252189813271087156760538826082629618925446142265584069593238619613263212209316255699407746193420998150292362266011964836647031364042743025327451672862091327204965586469068596526723380135440749314235261739366124390819574329166372360482737436135652069313419002749317168214298346403379825554846371868415142073305034378761038966411642298361804762577087377106089963534208698598267817716290393459066023578739721438260909434832687417823295777887869335247339309685538173606751726476160048448516524747330081905895303730583316915907347131243770202563352044017868380008745187806065599920157151547474707614652210883419181871336444856150700692967391349989720260264210958149414915185856775923627235601989921371937758836630299226734899389807362439805081495604367812195313591474637544462649361920026446813129063004593878758620117129828301900192664859367786789763025856005950462404892992122126125906898344511318934167399975104697837829715128867185914556261032498803542608555740530599871348363021264589933933362615401870647939226743652877552743425737636643795064398758448884689902843469847957702455350704830734543874630403457258096516267465048311956225160256517165612893721652168305896689393902896605672413303586154831742825994461598074772798808592203490301776007459713653346714621444235087422600858128835049602529042645909958607714013252924110076167936835575949679078345148623830649055231856016088381094730800564277104775499567177842575461243649427103369798945422574874190110738467333424555641992990094185283637792543214951831251239665623661102658266796897930810551579730452046637510462490258420662122457889421509780963688000932852564872040790783736661921558005474309873046613498213523462306381369987075153813286684355687576233960503645189342562167096692344373589537700572706039792410060121068919960967425016329714217816229597199790570786651287179548639590816210056689632920735719274769062187942148014611970518165498316686740430901879880767452472252253419989363562303845443658396852719487767523320603454459263800790837626510877953971826164857172422057729828200610464725267842899653902890483387471984151664480398496160755718096557355161082270150452923524678356119946496256440478317386843434189713301063284943149437573929391508285597254112532690384958099190501528996520482323883309432934280864578941607384031649592982414799891532173948942232094098418080387477263592756765180486540626069525727650546494894535075071927986387982922174871821735763076276257292418048894719436033233946935013184552296212232849812105772493854107841577239790533931786699798769556488729911514721375870334514183713261679876724804694031950736336100187163881851232448297675213914264940876285684771416724685362327874490097562391712489246888501789537164501422658397989529122790196219059337219246805123594412534211374389903445987629585177358424792762654608577256927063150817675761340813931909099840572741893604513636691783883586244835288562882523719022376218566698325690137914038810586868998486398799672141269237344357515152535147899116594025074176865375426205297664926665743688615409257255356572206218822037097975934191979894071167616628192118423099168684057148435825990891576544000840670980555119840077416004569398893180975002270278393590795470681711532872448931246320094552810171548590050201589864152362197851863804068888479284915729840206794375483217833651269146303748449098016335260252654967469898127409242225532209456991153889176188017738683143105146140114407542892501733479277318799390353767839197244704681395737384540851280132404753683607832847909563397569015347035056777475010406030383584521701493209929982313827450805124729215691717551843722622592361871769269371449288821726875213277780372705244212701837137154408829629336128944102301164167075931272246944954231149265456264408070672040719374727138081835945403413407891070461243152910176381220085998190918538059652461168957058284118772183560701765319930049835462816977358030674140555115099580643756088625050842494743743427867134488201080371037431642767277771163254872021844820170383778615519166105399763661529061637511721033665537333211295536003785529103164186790184141404759805236974763717253310456793688742875318060300756454393930102524658297712856668875746387476862447826002775239609324474165792478164512323393577126918390579548530873569149138207996479689223706117524278704201484677525432144295933954009181034809721405888277122899538567782228309244156538685832880337458483074245499089899977200075818399397323261194110624027353415938829668174982410286151368220810255266263695293936499607872856772396758996835859461709832237425136890495139553329688510056759934887271654412084759246084308726503309124815149497044365868580667851283235840259580561867639958385285644956522806159529262118739039169101008419490954031418296426734501923981148319954659062422078488760169548682010659170897677632549309823030191757467622712175488194225047901782182179642949298765142535006658924962707945671990900593386557355533435170593678840491978185073497822736709421074415159607297948926117549374630242728246833756882870737140944129640745964433028456680045866663208028699060479119187377736005676013834370372009354045689955468857492548016615139273385570782552329095860877269478290887248605723016249688851998966688605403165930251245826403954673389149666857642387228253462161308415158316954376923656982465529206672298301114990090758548544922013548984524902484047772631132975592704645036980047041071576639834527965249238111858962749750929819460108473286374089351312791783216432518545726061369431926959337222926310678184101265731021728530692471331924803732049758481629793299231878553067410283259056068457174852554144048232849881083669896946542966041064709827014887441192888346101409569824178535385270678652886945668612299914514937982602091613436434887696917128623077580777745355055820158375344947223687639717936240710764989602270850254693208097352310177818216195777072216308121758413138153106400612717746309897017116281625873644040100843894136326057789009780857547923334226323690093877819509611572744204220260141660798672720119755470351072831921299894537584264375417775640955040912339206760307506926647415150813842210639663670901063405540539423884792283393863181148975236059169944905275319361153219139118002027946898522260115525258061411191720903961995679078509747578232147825539675494271848364846287058517789244368248785567269411223259933889124932669645148413405963977028713146166232916075871813148056062802391131595463975036099385567142698256718139513051120685792689094980704115110400892514550450556447255592766937111994488186645149550235547774801483808434641261192245940290523032660492626702609578653923184365141918502812454538577087748894036622670556166054013157435609262668147605503693253652313444585997714861666796430538844813103490439499812652278695200470365288125604576204727540468064600813727404573160901687044517620014776131564024944874850082220273818657710131161670778598290272141879262616376660581010488239659430524355542135137328540062282408449479177774896043757183204172885714703345849855791334283905316379109481304834477893097372701192439761800122621702592586007627956701637564172801418093254291963658292095509713819527784553370753337810653697454858496270358990864432629653560633360278063211419789754741411975822613830766525349338997420851067410566678920481750504316754719282792140748926566679128249419529992721519705396799027440650167799458174882476330217285776631976970360427873586058950018559739898826778212819629886259684382319299642567704654688923400179745844264952805624120153367991069592158537067295414567364992784188919972442748762898044376170507385661658270515248536152904253509894231443943439575105446889814454631318997443856156929999103764638792113777165233636531764517058098363701895884403291643219524528054680858608713959951375029233689684269975270411920770298236083477085471947045083277566581406127622045828229482211294977246026088484330120850447501438925385912003897851706998408301488294754604967176456943360201396906184065666475577779501780780527285719448638201182214427025202180747284828158114738811426571191835114884951179512517828161860672155905154159699238802910238577819002338444408965842469829370674623206849622612910451006740416693988315852904251463309587095962086719632618920404961714441596548874308830120657620342533869654348383728573206453885188459844339378097932820293733226654319200992843589181319749440812507614309304239415405193576308751992647419880737660527562382831285419006676215933133969492805094819489594372536998609994411207909260411415638228539458326411312132515435679585327013619483693695804400458576159910330938394517126376947292799285428752594201065060953764525629802221658175679212520533272284369604816113867283324207183634694794449425169962676143146515021447867381731553648432695469009556862442080610089402731339231250211813349694656716334606540100650569748719389924409172817943512687453364490204817538094845914018412364208381579397198656155211455966771817465783632243806490845187336662914013462735592322572415600560512165278304302936828164417388752099745953448527822883151228795580444198665794614916648608897144340241067761028107910443825028688803323954735669601938224006944685601324200254723877848589195957949033704493931549374269778194873598296777983799182201241254711714133478349001378665313042931117854971054416780825547362301252958686069512632987704322197280781062701143843778155893616453251831954304065828100480360112605503058917903394644957728725889121148355326199878648069420298844003048801758901839935800460990167064495651439783897099788311289194667194926678768513084644285987303234914855620733125034350852182566187903627132410339331191278622130679016245885604042858001016156092617481826320152241832228909433187632579076011995549111201045490925141823875533592412889248488858232035641184568197301693475079998464287182051061747061407222596547212558428181992188580286161063745893576449724260713619336276441941623863360127016110373511939366815387237973194880313032003296447253743579747626715081304227277305740402564233267665531069632190092705576937401573599566413973722659425698052298183666292768336496388008557385605985595753552229086721587511366079958438555963074307682980981702413268769894480549115267390023348318032193995666721278845595202504484798165353313612835029368674608923312549640480213004371993396115369682053155773664397279131884723878958360173383665180206533182316443395232225300050211429901888345837795562023257986927827141079428506178845702563202573028223161984222189719305837068369815455259383034877699065772065721639758305351416829619887921973206326487000419875691058093771320216029999090077588134308635356923322384281480905989332143061673873831845939203596252941306330129669540209290934735353335739472275163224192956717065281160358319017710338975633025868826949971186870055959993928941090407733964437540779751613431135838825666791280653167516017314076402596128197559212777464411959409757388632725069102102580615807097086300219998305262453782479382472637781076937686572471287939686658011925028282696109083750722641401357171628051745998250707629575123269406184491960247018080825469010909567688559415185184220207511279705234955859082450625773636821746130211980426301042777996880412037928807959038633390769973126069105852330436052863900127925963878508466566622050160536194155545991477574462582769072711456472358314519988723779047385218503553251392523108507975709061425758431799663523339845046298297089740276636332171717409985281809875238895949185099347788067366733676147748814665526790232768258068677313225075133754028054561183731519761772411040791129045993749019861460122080146534507541808489188024729656814902443940530879220211626870729432329658894648034102100812811191931585292304494188907234026299824299103946774433058913159922467077035842659373805141013532600643525932061670159956379400104885937307414148964086969526153267358671332888816417279312370217358276537840719813654100192634820123849483438420659909546469620948487551813639820545336264763819418587679488764335810307924224960329499286764849493760764829051073627734054664288373805612034782163907092336418300716826115743350850962628780457965604561527643304760765711440369971192598383089696782732645693101257975617591531148321105171699834130769841813980797239821734907808976869568433134249931645775895891056180645149647884474075383241461615557246535107926166637072200919420954831952148807349335841318892376509849584923670615277836215461272282134876883194800063328937314731861904837813900950807351298486056081218096723711109125572519506371117876933282368869700599730798731530162046811236637337323182503766271137856517334913233611276711041647256143940226946756737709210235802402519179787265255209804385444665926293977763856423793008892841384308318781201439804993368177407006047532925557737250577610929467818815664279165145189097722143438245879604998099797290805466655426293070669668639074416946146219340346472446512622429880650398863987746483042851961962490793289552571440949735609505295075668073220462080984895766074177917239220848866834673034051181641129689185014791982170677466208047740291290734816398799100381636417067374617646621839652286966906466139598935787758384996393002484394866145050940526426543188329342840947238591597398703859376414646418010407658617438092483777584625191216722347004917941064851385785881847366799836368573068692826820010995337878175330224217292285912240172574474674108521240857625281444399160341233128703539945571120326061430949530899340323415366682423562298113864412121398367510330882725274321522280291675943344304909061667648624324846021478287658631880647500545080600344231727179095622144770007231116277371540867992510352527047159751866374918099048441617210300736340321775582890274809573929769386898496535984393096372241484173531689574628851831835685039010368552121403099169721424079779903852960390637196487973660079402541043733980532917216025536503716639185489420098671723288089241684561332079348655897280858708633209582297159052348951083501952021677589256147401547399119952288875351033723784581151067466796644386510439715736816759635129760845650244316323871203124439986236171448008645085281922420896388215376404661609403100195337419054461729389634246703710033661013758178755485942489573114091254201159178204746037765932265737777625384666302709533752329240514247690659842703744292856128245403229358583378052711975341803717868976818639675194857471554302771863954017157516013710140970997231252404263188628107226321126896660391587021675902787325717760404485505315341474172396919349947438296467638675310928969602663062725417919457645103719552684405525845373103837599633075771135043373265996817389169316136266363790188610344816454639897419261770512173938863039672943014581888640315580921874935099405291979898705240392653795808075418977135237873230650492357826939750727404944676871248374984405853110994246727110246023728330822766244721924384310385892932758046082557123653427357388057726196222198179196299436129195612170295175944326921150913254975279576531288156518146652744633372093316912322492972322163059787473228966334749233724069692836184560493165317239579388743784739512304778117866275764574324807588480452943393920409624616902449424465990778074185736431069462155474949124755840733996554794684614841301974216743372701585263467217969550388414412106023637707235381156788803759161381943900978396647213811637936222145928901652565161586294365208082555140098135476817161600905438755023220506913710271468094730969534369603374859592229338630937650569870436172016517190990590659566959265111461420402238681401333289709316693109632324604098273026111909373287322522277236091492072638101611911295476555749011569913579118970652722273988624471784418616140575198493192748922808174901832448167784706043560429118115425496368411036840013236640638512847964897804603901466417516005236143423424133207926917218244616628753568919492690960271921417378527286525974196006444509684634354029806204998085540172345626899412822217370394603374403530304937227116357943346925907598811995226947325100674809679637158443967197653849160933848006880809356325495870021238074878252834034150244919098058196146987783246118919547882933052319365841697153679668220752850537682354381975599125433702217932791042185920298707261294884731534553162721999670942179465354414528477121561087272572889377825965282008960706539964874423394130274135664289167677381317192082379289925812865951905870435851519316270159189804362672328697118193327047011800687830493262432940177296753434212275003267089527464260945840390660158876310854220228776060162027765224193878495417040603631681942856638348898850656541062484597936450476156185427478000004683737567350252099435844533235531750348847889289753054379655954926913017102833023719162719374890209168882468224402154009030742691197864328610071813394508405110196815375554229033463112007747571772646672377401617771559378580926710733008617649599428215692209206332095572234950170236009655369840574148594741644968529760702786891250461714828377072788230874470664536993852012909251532031965207444978229217601573482929588733738004853290970713787791321518954531874895485209052660678896118038095871639172261591693875254369505362815569007284239521826939826261383413863256173193305566615186520647885917286803565785701532058498391921961035159819200847874708427674730760977768673322631737240825459915785759040674006099851633747855047626854435544921717249746486211720306343060413251849968079803315256031058000520964071293385476220383499341341725591370154277866071158496578162970840253275216507093706298133287904181683760124281072027784672382096616665803968377224489836673123882753201593839695523761972919270741123865910980565748606548617350010140840457406015657961771996687542111016988361153928056145429651474736938559407780092336201907166262710671913041597478408902504335692274163304624981281769533632888940959721626835475537409977113616081849374837676627402151806636071337171269926419894450761781484695244604622784438602680831255299823864905522625021830484686224558469113252395307075264190327376235683787087894442331910900944692433034847864659466434556774153660578949680724279043300398472311880937111611277654411894949554738357736932202853962153210703338011259601729305972103782166653698203641584715751821197513622300120901107845309930832476298183080805531361375355218634853184620408603200087504007257139223785205454149807963251556942250863764848935312203296432628868619325569534574189458276717705691491293250338414771180553302409550144759160973382789859748875588800984710323240304411413767336306799296291044557325242402436264334054316040649373260964075652072735412083530924686694016605370580714403095077847775656433953514308446835642452401178136175299322809720389162984966634676554062292685287927995957326062065883954213286067975496035784890818750817765484731781033296425451562162923817289803938032338800530705735006143780832184717210190402187567649866820910743245205618929668597237102335345980720505191711061786753199385800963816860926898508164431256334657712988440593458486238563785840669861035134229691179619763799963668685535961925236869983738423947066826121859370380631681088079899452750260255264412957593447416394188044911373254800447006939851800218528224098605156161981292067682191536318726377351496788065491014807269783048613492230895894649813303248998503918270556790137276471978858198085426805367500428792959406302222463368065994475562969639513157184063558894736072373603601609920463597159746628216439858442132620693745428107767360551543945504568786308750770216253844944718020010104257613325480512816363279510740665585819908944217854946618540024120121794944119564385640371045354619841943524320032134064721599750541160032306509471222618698733958549807209552126643412988572810334301813403864664063341028744116786864263660807395524934545217594331464368478402666676626796598681200674800903079131404103188095482789660553375625851558813171467489359985046941591420760432598215408856819439503458817036216049814593288244614921370610036497163656529779671753139475657613178147860648816481621438289405672117057953343194864305170725781119351085329698441275084939245750757338066932524642722834603853881168480863016658442894586843225345595697176694927144077987920075570297994549096449964699958833520321599338668318984809142719234227263463037312480939920180648376721050193640499830120449513542183064803771375289675707198272489729616839866716891607907540458492226243511494611686205256610855502435366469884099951415363250121440207684495302864718486493525595621232031631373901904675836782701442562815865243537114578385282607686504698754312136509853201306310897809088246113924677413026804619496660921860326172585190364835684943875905174196828209738737363842547847564246937658424264346337175729410473840634314979614950578276899305884435340888102791070882622824727085076510293292692718039706701262921218843563608157173785178554663495447136889946618767447473985904945235241345335905123754618036255821091756734886036413684232722492624796590933116510072358700888611127119138781964750557254720171023063311643502020366305062098233579914575285736203275948834263167516552933706041156090845812289680175088215840453114568515761504520410394874002257579767006756039042927152537621679431277459451455539790764937022766230255712734745033332000453545884033636168280224381122451716758528196029231673871869424056275525750116303140688321002039056915953068243611169190127838940966322790933837460007686770724374458153313726037624728765657064407871709197166667779643854633962786043171893587187436151489525410174253819262764400044062601907960286460700804774584903010262897661891046709629705354071082704626304482735278152994274000637281752473126763059684067713604660174414475800469890089930536261250130821833189779534353927746615519288006067820009483154253029796085066509227558744711773201089238217201985682261389164214842196031292280510026101858401078499497319022225464814873716527286657864288670389134201674938580349750745162025031164863453325725468381342978053483075413484035595107480848723541223000880456519726263667117379778563622440590392164848720818130711164219481317474933918960040579623914697284587305570414904068017896033526092993351866798267208478204780796422132096053190230549127927195342085599258444362803303660671745950127835741246570317382250285711432930728634440058162357661592739913011469316340622631616887977527963634102278578491691865595163738577887395997352478312090469711605713917584973948621681571827854321916373644840966226571787019220689851595374195771766746120628957376387795756491274828144185556120422997106584940492675202953936366619733336764638337503405457624726041457402911049630630335432219959247654852648794528877759633180730968665736753481405658711590760305589401651069231887809232921849280242930051167277636066351225858505925846615679935340213322820861358348730899244838684203135592965504453087893617149035833512120894078030545888273015144357376812686849788723102738010472345750951017131480808295111460051248974718076098183745212420639580435714376585116745934335049683579021692537978664126844279893785552499558807700697556928889735296890909537031433232413616647441042522252379450882565937890837204515378190659346834068555127119820476780326098405004428992516584533587873424402382087463500061086960781337138445889402788498660881236603008164208528206006446569181478126032276310344509699671572056005595358745087821732231994650303670843173195282654522912716418294424063549322302304297551637044503819636211604238002682521108315756028191611708583273083257683998357188698397527132179875192594110971114496140860141013096461843128091186004453253949722544421479895098436538990222920322969680240358451652297597327619381593551823814151056463670525515887094371129410595224794744205522328088151018295983841023249756374256107653000061263367935856563422900373080055700333064871492438040327955441072429883022565859425789147400502434824828638044686040202298582088794879212703613681523461958754888258342616409070733381366969381654927548359961032991117217390123545160860869853057372941651046202438586059122861034146465470289209293784968092282472467591309805583477803600023669929608136424441790926767645624621010365637175825313198280585303045970440501360077684474939952889037078656861522014737800340653523117090664996923579888984347986237944166426652542779905958676799104335986775253029169258529843437368692955340202533430393720698073834149689133395514859274582806039224241464669877801712413912534793779947295849740855885807870466743456257393882066387292184058986023331644659343038592522897871531091623999814535697234200982287332453224776125693879315075711536913360503538792824235994491116245695324874351411120209870398542673799133197793059637236969857656066489752473812867936067778912941215424283730651579656044301027103806677909541696158975720150707910476707653007499433242261585002985554777612059481970919490461069090459553238197357330099141504563671546130876368435661081125823750240684757069838139799383514193348749666046209506084260966437220835450566835325091190421950177596594227758119085048498548339716487288730316919231433776358756639675528739787150908038158437863050261857567972212324591066448767243260433605678289801736992151689115446682446160936755291898256800734265307691154620859936645145153052726809508684147867051795324497653601105221503475613679554934270682980316142705607927190562606726384296689866649270412141955189963581226557512870585144171089845504418103356241382669134693560888365538119323308197860287259173137519038957163280095113958399721420171434510510078976017095262801903460882294951532866929116192640738421850324180068468640299649148084768200129270408690674616324535892521733424296632722235614318941711477225443570001473048582246174548108538226630098397459509350707044884335723722036110690183271757790178453528557255538542682658675381475417224845328271033126118653704102242149020061032828073941244264090753683122349736094205631174831112892978458017689909239353092481919030752249605288634022375825648778138629370420422690822267075336471306082967960633556624686458132701112948960252345431863281223791018752721194753587440185104790676671732118345283291753919725323283771205312579847627031440834558688315833081386417082769659645846489019985233257330078320376663413693495838060606681867613446430215499155854384160789286586801923431119856701680451265456858769921671631620957759559752774776482547349856044193825235211211546420858048931568421130647817313091075186540004785696420011902740542668925614135838572221600806098540231711930269533161402641840234057842890666543263328236668357450022817750127427676079653731430135939946667888155787861383233809532251147658981553904703211590007685341022878471326041057953948091027368275488733891034255768801036224205794765240836415585689647652971225068027506151833356576757954132100092572523160222824701412615570182085932709533926341118858701265345070188108531481892849546766466405728888557393613029108732875140429733297656013986750250297319907281763148716350210494878428227283960463291107562482964031199547950633033499349243613889000204132417276099206109146913078827932760840599390803897357088758763604026376441233504605220806508062181483246233489304053835142969962927417423957729906916130966306230758042074922532447576050732152688219863277930988599675392743003358473428083030060258335898773954901930364474094309695264462210828705125770717834124472599242512452025360016619302378040385790441654388563066016545406969794627121118429717776512345275682327928864566065143704033373045066182769764675020318955403944657939873907943935841846316193130481456965445062275334272884409612445997961262664917774850834714324817387986761588632280903287878408189710533244058454473266349992422291245525110446863031139116493286094897258509079055672443550907655207189771426611197670107500417784124729003839494278201002742630139161402856267857815007665681823361292911329487906964461705866647269599972688640883020973459587669578323465205874970220122461875604501358957104603202461737695616384973307383612890697071809987163511487494042283800874841387745045136695076201386124843434364346068843058831529654719585106993742689967404301622363490159138836277498642122458252183561030092812317822534884236267677121115385151773459418532699925917328011163016276705193857974256939210188997699801042725640410825109384411823261940937183158475267906698286261611945247807509456648480176077412809005250412455712784498897158544386088787200934402864142184515022383174797141978950491840263668961159476470453197449850172324885859850269385630974853902813191367369758443137285771997716692412187930539891795082282435217508395778417406856693336829189964905232402402018332860088694609122889858371093852645166360040210248270430237322557559451201299505741485855190045430699240065811681346218667866160606818652050713761601080172586616430236078059317005948630634328901573473829149781788937114232650388430704615081989943158142265788808127614645420946076241437520379938955011976905636931458284404651110082653694662672161748544251298903735085601165027543910073301309392143471222284859672252372140225749955306200139497264020114207760016166588943763140841299455984044269464492645735908357555349952817092213017311958168825043845717960968784083288439478283079668721259807083820975482038510155586329959569645093083647451978378267826659888880798579958095330345411756637716877898775377390948447025123509848743180782021839481197892202220934074121356395816419036922819979791320091505938122909097061923049609048453988781093531404586198796505975190099898604775258494056066724483024841376938602688696397305939145001697329511178078319976381053912633839812416299388209856111748159462408747303944519412132540230570974569787247470841311237361571290878565611488186751417894517107246162372561486399430986620215035108884006411448822700140578367023262189616554033258279050579650508278064442451138653467338895912307915804105079796284715823573707395039515492324688314720896948771073437340979806388439487929287771318889279011810340415895260443668580653991189210350124976684508810904093040870613071665392298760919722902070023958503929488892000122790534430873746349568835582030952342006794980187563416032069409963952186668873988748870534595060900733596665558605481822641896135592569530358969900452252642573174033871663368777503681332699515965225228364383839171044000381261126758568154276387061909759088359084070568093473799026472330937158812074881360153095317046375938862801136410920656898346264790750443301896068300769017971912947872282497829013721289577016164122364918151408852709426544833814126114464847203336960615167048810210310168916754244601942107476421765924880834896220958041147312205192389999062744764144088562770596270821734933736218835819808431315986817657399965541779033373862035839552886823873981988738720217223279239363862469908087031131452668069591469235243949893905935244997009883374468268183981527560585830821869585377696536372394145785743178194011327211961982568964474739999847205584412749013688029968294255853591656369982814134343365420745291477456150888247583996825183944185473198712157639607900689263168743713834901506999668307990412451121298891353407296554737222351664878388072585881159498721972763631494164109420061826924028215961256416624983166221508697115602820311972950901162194908941382886982429913969764288666862077817882324091638850729870590507949307559917868473126923768281181174788919904955248132223606581102799050204360469497395158273488094347813485195826666611192161307770531634926075995783392610789961812525525355659880590209469310395333223964371723831973412538473196456444509227732097965309692921887831104454777972173347785775053436271373801028512019061093335072389385523661398489637047748557584144552309582070395539660790609350216284701685810958009277332577861208454479148105335092759518370759376660265206853709567118517316083112578889188771257928313022780075801826111342514469694061994872371619373415405281103476819960464984985072063029353309929328137271338393034057454989810402482978921120086691231556383600315025503739893761332657292334611311631991519377734300863278562207970866885387489717489053728465644875502822322322571211724717966665992741212429924285446475417379294911744657995345298726174666572074707983968128614261862913929063912668939087602242143752666369520757065827691921578954903844908693366656421208832792066363849985219925895073177178074664625557152211581791288235456099434713057239339944885514154194866927783238468697010502006403975726952495710608253359975393649670195737245237306382765000149199090437684510255592048720933396066019740700587852446252519182143830459447277918363430012795807647790078448849438744272414074385424969499900202872904806101939588890442123030282329483703411565282319874951388711613468366539393069459288522206438484301794626029315828258241982949255419508711213035377358521130076801728115131325717488387866110557820992458000705077718724373086652449255019081445862145115999063455885604872743724911879391822727579135008958425460831212423442828325335692050929575700785306663786916555873220868623220108951826313965155637181097298882860228640290364710627418799094600830496610366486317081858918001523666954035249172292730724778676533505672223211355096032448940017875534234127288374080731906160905828635386183708621840487495462564675458258856191568665008422987406583500266731138258229124984795833785699466912442968488796409628098803168413338322661372931215832389040466190362943549503783406209751657229692491730316677348709994746201647261961165100504605166463344639337387471086875701061933867460780230289917907838302840671331275840585510519665697355975053826864167055865836669784572243451784857823045893770020750879347434497826694404444319466156586182440197800614462556415570157284041412713952033434388409117916100312137341819263179338309730704186551124080453212787150602324374262583145445275785457594442405229043777641404171885827525127435890994490577830402834481847781372983211019506051771065000848816638346995627692629985582204285624411714223222539609625404723514528326933662721172715407431955372150859521482266061830143801545856180156565407796722159858732279934067509957935617838203431775371267955011949224528263429469018087452222991223519771977269732678532180699529104620042908718982418967469081134616269862533935590844520122754641103090884270423482327616829707670614709343762385537367471827750525841760600123739601054496200156617743227408038407570770109498580076331613108083473444887358433262399035240576035347178661021122221044341636559055733220390717686730714833071470655438429562160337164344009420735964788704226703945527666526820244158895885823762667298683446041902404163341295592609092280694146417496285649491478361239339184161505172360104364492372402162464837062941423564359637601766441208084933017406243035757516158463395904371607861018705051899080145766526758091312493973222824254137181156736676258925251296128076594655621855639454812298341328120618598821290822553137188970160738075873539182637374083631327564898961159490685265411978902994540513673322595652624975822914794842835799441314787515046601655627711659119414565600375503894124313423543913570068739818422872494618969112253623976733201239346231492521186688763467960692770613998653588358772557941328858837497462090554899466949203788895525417016690812897498279048535877942755191907775563483916406439483789003207460672680226169806503030581621107268694730577394366929712533064957469739816678932469854327757505155598435990516532837516896973627093129203045982468919983032656812956526331273013251103887627724499056400000447580364893178910117087985077532158235255616841186280575774841616595562336162510493067067864781731834453968623820727451172008184929491559777981325418271455755193197775987755197181256568666252937568803229199593025259070574151589673382269137102336448525241061121608896720575034351453729923589339284286766757880917401058826153078305633250727149643450134837217528959559013589978172673120100972858683172656228836291580180322661080068553571728476773048414516242173980819961661053578135340701304741896262287225242119391024380956238614601770536961741945776850603710713061522435869455216830186512418531843272221377509632552845561744081927393493426791081287751552749125500599939897639365211992577221317467630719288625966342253102890317258146801185392283173404116871740993368340775793175395905199742511419570866019679570369433758021590794932150727339021081579670501290154974002122508117078898435626766475017169508871227119391469104202350288207466689720467583038851894991670417716929793616009472673125499774483249847088914081952549843431770382194297201979809682204229719254300924839740240243174399667559181096403083567463118543471648533378859622793709848584480987609244554220650435374856990625530874633469813164574903533257748788524127980661714188277492021049555701675705597783688174861304840312371236744020055321221402023732556059713967885069422450367796607172554983412464647724522697457603419444375950087006843752031768161588648974597006839124549401528178024573664375443545704900717359109629291290394935683369786856758901389076991781039759360340865387291223014561402203520220326207612569256690944619801154481885425624418369576628621053209799953121285212169498019377019717921941800653513924901742288819731157392754418418266062529895439926464176862201669372664334855154570858166599383927573131143562987033181058061065324259522568834720542437571202212209329029296929474532014644273425294734430612102979787663435489615523793302169216525925348359433072759171126959375358008834594159206868166247726149403827618579768854303009988349620173489541134596986208614754154165151257142698188993321878953189151803037867959375611536019073535404935501251150412024454519106227473477057226585331999166643737830983187073768174663981709441646168494387782818866984762845501972126049318366803100441888848725917858413773200593121366169380026866294131964558792662233428391399621965714299859352266566084726517053968471683209189638370226175715617955900531123627855398544664544559347448825478088392142674925009696829995446085809503369993643656173331018088523856017783331648778909188257844270687445861064824605203087302395864859752997212849010558628349204236233901484592004549774940555445460272507930972993004660832751107090587769839075244446897796381103354492994222766859771250450832631081073269007091671441182840617106436238674555076614035762037927844725854429536147111193133055609204261490973330899328105789074376680544386215264605258124829173210165694186522281868756681774234355295149143702312569543514829487199819690263123803414974638558869680185165165524346434033754712406274485518016917653385014426827249132788826515983509669260305027886618708719797839100683758020486347981155738894707855781883526845723927612298945237175377641049739525994708206382678741770267374510294767484634799692322127893397644156372695136530424436667380624639051079937283670378258062552419438082995883211066982198280836966203531107405348600516403399127381250595236672854915466096861709564303294986642754387067464856670149865186065091234201467216370974934583159598914280904684847498629541305893646073014321134569924166276791685080803298393609498815812735061664142388923792648198965483862542390564957148083174422074915265065549202546670653632377996207438105167932998233588573947236968622721861464458807239210688979454115120452260611380703493739795519475526554670549258819750901246263163901893406816846432998896637071719225984663122059516686099300065692035855858198609802322871384932403062389456373010503956307197586769007645019546502927565914870451237100147097335559570169941543655344913794154017958664680445912219209726097245368431124223956529333421682482822959752945314385028621253216476940576106631058728342809135366882401894906778432198009451544216037057757404100570011661520380578679716901922162399314398051943121006905375737389365985398613259990154163576671599326824430197446351237475484633463798763194110362234639385351463069941086773438798913710327708665957060618734174010307090924220213932981778888091421692343897975212931290514590251572443603282406815280054068003408483239023472456000092218983351198130734548589238277942153205815636231132133622118335491642702319757833929765075783745725008516275902282133644282436617763533100143916771076068909432565127018705550454569533027718893516736024892872529833779392094496229274276350609429108335669638879269838110956464327390080724997923177887832396458693909267753656671740012827106241956281443628892721863129566027676707526633844316983569735215768328281003915156703867091551366288381434280497709238784453124395440009030705590924209758316513233924058316768452343788442453637212723738387783841159444543370069047224450938867340849368252012727644637377824538402370384617831122480721314279495497412545668156927548599012716536094501263045612998733494984159541721784847237617890362653310920776797697771947514026761687690591685781020290637858254100932547353738790829688291353435701646150386964390967712682330645155181711783009062503336949985704730998095956613025647499127391575307547335399239768829498519497792358369460661105321562650638665480498012998959495342082735323832847074007664676483594854313662612627041601739272414727166306933840689176989571516062786271426502916760568516365420021766456288066720593184196816482589357661897582222125730094845002047038639705157895553505928622805055282866503576152799030891769075001658175576769333552479848688347267838384689899285119849284224048385291505172345996728151445232372252306606532018845970035320897726017702531069241446603363157615736695894431523007539476964089588445271664919087507450253288876357549253811365395840423628802178140244896269139274912392383274894140365782992489071162313229812439693646923943093595967661646697017833642896558208555084885708617183648167273217624472601481450567830543668247610998517103621197742529650658996928552445207928549201081393527577012993626899521878373797965612971502468875220217205674186167114666394589457047387908141290324130996507905273883654697114205492560936537825688583689829419689445318075802260268952098367861111407630365356812427605099728333898113337127394533710421034943322714486284787970941995064891021863632909087546744179708854198340187933928341169232295883644230210381936153638112556448383990376623313665451438931914146746235348927386297153217520163305433810475666757371171360112599441680387086759226904623624636057703728371893093993275997727598857812640825572118315861433716257757770565246429755084687109930837562405156955935894768373464376899978347773786772560946653112379813758605169034522241630554428644935180334978518783496228433706996974116202310093996870588400321743182982657830909433007005495597945511114280180574827625174353652634760134177622361409609597623556041383236791141999955404506681724659166116366202154492117985073917956888005587655274787787043013462327097563201812173669000056196015320299675173299175922961148038286344833787558830926363209324525269469584764917570798506320751748085412359191272661812616977641904980999947115274376938164989500812310187061761798477508582947341095449047881232493322327682496781418709270289339953356540647879547488753588781672950079650594292232297567018954006644519176261414419112192439715567995557944578402629914680385500406147744908150336226957491833313226708887505951708849692106689943602771007139675046263568200473088572911343642463184297439902686772030933930804302483692402166527075264920375162361355568447842182706191275256794064406185011805275325089949870233334833015068201181155589896250059722368182241513606336958051062349496542969551878868735545602417155110103844838337610973506418243861487179107641297244937825885918549162232828156893397694928738786272005257075034300080182400885795335385311733705655233387469508723771240773201990819253236592013890559345427402622349438222676512332213527116544825334577032443577672360002211411629999783050558124693897498264422108222036486156247938645887841546888655197521844891932606753014811946901274994848438005738500439729337372797354010494135510457777515393376194863076571151571631983120367704772185992382591483132120281539774765343913088656627424914870142476907804968686402700383913260693146573451092134377998819374080642874735211823361529213024398416624563964744980389969031793137933371634035889167156837249200947027249526233830661997927468414463100044005994428210693176940191673232273967068725781292682520616342866410041763465320631837247838304448372322711831934552667018130700817618575873917763450328521469399188435693912763077245375435947013828411418445753733006814344544942175490037179098747943986094942227514489418833294865992993726692585579604903849988603864157494659807716987300438145736997509461210992572178469491531394210564681628151790145162710623981472578587725487046569239178240285473028486889668479395002544327342002973818039145803950709291019613587580256352965216472682625015980737543369034094711285477205423466833565798648327314907554816159913739926494223112058639033267457124925561492488324006229578086891066985289215907396875513355436012630401273564908514671310602168821074488120058629042863924505867799206751504871090018828111673499501762289582637952193894288514306151426229265350432798506402972416150018091990669652406794897013902373284021743364467856830589149055101482815338877127811070268083025194079733628804774980089778840820472135694266404898130021937949726819577156941824974621564134906009271074602580198578312773129298693586974170044560150935371767875759326566500297980222560252777181063030102163072858720222775778369665180752581368530857389550091193576206618852192948399634264012099204705898871480073906101705909799994679621668636153996358072914061381145940744844886553338349450175480638338675729890996065102077707419660231358885404573464422854805003393850314323666935182444614611588577229535830820698479420818976506718043561588568342753365707763107532992817123714539959400697781622912689594861011370429994288243057399149268350085936936616099666916253119086236369640232348251414701229903506117732034139894574524212775065818002891373175754963533721339803077309268227298791773921925585286562574418260305414466992038868347392964978525863093394742596019276185003078842478294740556006255737672222368339898198051370839483856913180071270907546020035701667017485912661200357219952003262896757200578224382165128460126249271620566584376644467340176886965994046313762812811034005861709525537232501245038375953235040835870752501335070938540347816587706216388839355892622260240022107257135611746778315059946843508323837725272520660744108051840132000522841068165038496025807623737362823834990275475319778480195316292459338561532735010668781268755668800102291758388007290992691085220895984639324804010716587542924558223228318234877525126145214507115341016681408482177474887865976872045969232636287313210132814515626629317098568574553627604822975523564992904853218324498734520139548330215039487213877127846893699092670650432457911943832639487344640658953317301899205366884125870045287251247850657540115538727745053402314257572509851810917710123893296606644420319415865006126201347684438133958913510820974852292296992601241877901574013802443842696143953309126019931323527227910735308553400076366657118649386182064610919035149950677105614859468243069163894764469654332336265030918290950218304356367142425124852469911237844651106944388651789841126013876088678844676864481956601142520646724157080712060449305029698907451563594933983409489189038057704207776061325117480514977623072305631264270456109083985834425940305895965307236804033977063386959323807180393910472651846784627301143882978383559540641182871949921670334842545549105137159241610336311000368004031680733476080588638009624184202751271752822769357563794003340660002413619789607320039016339890129909717527862713030492625273499241442798409170158180239131226680610900881431823130931607767855427368346247040940917889698964237818443761178364167783661552019504483527272859896931116537015738004275242783672377184657003066811443644019521769723895252864356352104816368843173840400740777065766991110722743955822633000530180422750993174277595842386546778230332464317985102397514583921426058302244358556521307833577817681698853327665996854583907053115938493639845801898830050035529371376652782599851764896247360811608576085257620212565371614574105436411510430835423898265022180356193520485265975508061654085510486384933170090610795181976828910166173300252095479984935627712275707633268556233557788089496884335578317018714733423365473749144794028974666702563466894152194403094122140414944040369462191371063955054932454496307729892590001760968203727318713314586251804494305323197756190560502277913995065565623995057220460994283589647000199581491217652156933746196102918300587628189570454777397382562115303370833592874214232233921834863839355567606042727697135027072399454116838713572951104412152867181108814115614061653700130692215717969639060408910767998155559564953489707337452812898760088677279625333028991980938060661106974668830474915887049861112241751066825700108237660391843778253135972620916375840647721397588889148584093720857274667095475414541675937149156976743376832024901751359906846772534527044738704182443729306682285757257481987398799903822172194241638340495025255944533718828945643333874143603751445575535187571991078290268005787278251946308195903749412038294308547508860447702238438060166111261372103845573874836962860347359920345453964549188743377699779222056735026533494970733282589707738407179859080177962083442678817971213950100077442791947557218336377516406534857635942784158483911656481956957428831614798919314973674621221086626897422507729194250030727948970039979813068821140289145939549572882460722955894677385229705226067908848490117577457114213373089576754550641531296432204843731140226678104184156966642204579458698443546044350973673785798565917747245212093156787855079159199824845538403526927966174794341641719748570482347931294154783750222802285395131295859738072492301169583365448814435600314649496592941426019991323204483492340660361355473203030234557368523215643578735353278673496077634955017676854763227324363084197522056125830563308700234804084367348760672926134191345451385039073105620342689293060312967370027903221762739535755566845963761651750246062165650202798992347610582930198323111649110221071296148900053716466393326533220288729907447436793208492661342058112738823880620186936211905466364591349143819296368360679871590459220360135050586161831831468185659482099232956042497852311221523252654126325591873600639987327251332469827551925054227501757459634529915360644598704095943904329652956739271241578347326213601141501364459031149806937714200407605045672684731942507027803611750168748000719562242539765595254723188858462930554766805851836353321403476810006860411086339375882155788029091419514589425732416109314879115055813509680708768485463044564085266766889537991770467212150319757186559040319222513177030499286612512897040124798817557551320881199994929453343515818443997731127886073315828519358928276433974194604430638037363828882284377642035973800098184188057682746598943873157573249227417898282419078096805935853942005376003360653354302657995778641635443697068928742666718205742546436299660801144767728239092950414712943374809473147730538137422448509198061842229454966188875095548175754241956670763438212157078443729005701159311549684035218834176781455294550620925281817370899691780945338177662694927065569537652218205858086813288263492259645242136532818002037444089243299603525382586645047995987899118931904118607411453137727966648419693217734166881176573492162559686595914891312588687089586088800620419174856831136961422197772505749055401485985785274882629116588990752506681619585235501881613744569892367679665617267698797920337705645824711087399271122401477006798944000249783816215846090400718138108472103302776066459403365396702874709098614023286591413957005672205321510449604662231628546102115193194146651818402664456845901679246933329598714471326134301591079165575540176468619526673055866220653406206876874089752525165999878731056940782913805215401690117107475726410426356971307584530764991188877351185825950805033384606905584781979450957873489364552066679045682948814918342017239310128903999100186833854721673174377233071174797458176621752425442509456485379608082903395880360759663365528990478735491691500707450779451852283262541416971337924684181061503239901576876508746549445471987995063377218231692762506989365671481693003642854535931876666126642575563279125499770633417623002351931903161001519932294269848899835586234893757447655439520459569980597585970419577017984935587115832215292577261518078465027187403889519939575273365289086193068990473428560050395864580700615837621851988699047350740562002791563085016785985481120665361382744159469616852607435300700444130109984922817948895901646445885781397818359159987645100079481869356773816889455175213477503051055865876320230669516467676596143386811276175939666342186595194333540778241075332006582895722042797136945666458472320832237625492949038803972352530042289589611750900616426827411615709050821617330665876283477132847481081730027389354076826439361113581326103435924775611425350185078065272202461617022242120982371839163326583013813824833450251759805738687135667439573077839832868752029093073789768814486397374461941990976649922592269308250287257580365645836678605924642366131612795696196346632090859061567982886162540491087510137520461962032813184565073174480543157404170464138445271925478133407048357758107650144401091691293054811249599852243216561637376823446215802990812142225383011803029765488514051294340499609704890541297095088654050200330119728939347565965783933785679848603123144678656130132515820863670361454639002114563459063917866680939449843932760473412779349287896066594289406498244546339718479135635683288196074515675572971234100298565656955143267548017312423165146655162465083849548630798279776014404854409664999184923238563358158498313166487244997766335536924954455537044212211828201470743677674703114099362930019670721117535680288181888636475744404526529530428575343710270204482699009739042502312585767301240232896394314271877277974093373125431585050189674147160089276565035916234983975657416721134816478008164135412585404081832082047066912493528038085093652851652071122366183695382272896574391426912053745748709610361353648213420366622023539901629947347866308812269917455851580943434407513466317958497587772497645684275274152096252909128181958929184630130307730312643154865669355239957191747417411156263404754898012693718517266822172617727396675495004770400624919148435000906955299936433839894995666628706551113121347454255037695378248497699015288035135244892127096959228596514405868704948367738696203442624270510691734740428277304537028900980667894666018816625214255030676938268783910056119643522450358870994443270177110458384373480025519571559661110532825118631909257299273548557611755599656714487919253484589898868599349673334811237958083903970919463851291214769659618298893767424145719580886715248565025229866876852003565490683815980263742034903140770532879709712925400104925857328014823831440443484294382858502872748554164151743132786950498559829414112781969230331072820566624781410275825903065473447397735332831635924510197380829245419874879420937272925201580526985257706824381631867452528341742503560759502547306554922381349314792993671403703941419520414888573462936031747515819424953517688820042039538097199406242164572142383830599912960536717739102966347279399629244308100389465821870603863918551595058654535953507472812925524201898142519988570519946887205565704930446748135092352250405468785935296899321029770959823095789367163356109308948502456132520847098785158141744330054638827470901009094083619587912750213182408372288596257423404495096205009548736503796360224725294347730338669158841850170634472261659639997166630545246242871707942661976193419979423563346150559777183884060032132003675498764992903191370503578542950297528762978771625526385295526087997629822655597250191930131600750236421774367356550727524065885829435379358537488599755060502710511383358092901854127388139546944239643678752516066791790747811220729281183018426897623437618835250187708277479363491048703597982455287339114387860918279707088547737100991876544007473166970257515878106195542298584790115852027458963134610092756356550851443184058613738388045775909233297622550598497671258748706126299926082938575296212201420205809665636077332076186986852545934844044069767176885900229002290832755742023194332536783812694069755524694558901118441339493957625770226447719431871073224440789780360822505877143880125109380533399442798478883989501597194281320021338606933867398342581823378435488220531746233531060583042263088310799455387890692120625542890478622571125343844239352700741733527329851612370278486641739074761603397870291834571278990281801529466639732676579715062392071311020996046731122260518007590554396244787415791726301756070995754352441254762222783919826481709519013764727594215435018002451729892612431642313301871601023737887719124450303459245226355363927231902927222712134414388773985327547496996704175764094300616370713950203144595489122680513940405069977874508068736512016174036853439974661918068350302283768368019205101847275150186142098773812713762544492600036122837715446768521481869950286316913650271966858714418187246615830582097398884135929838681350527824746757515460945181163692965602422003615295510579398174825293022852751842059278027204086819784067331607186220941470667376458775110747044151343441404182906608525293007021036364627563816829774941308160978781392341157428469539198815007594270475143123848347836697472845383551412767098423229669502587044794120857784935128684431075921648206881074170776572977417472944122125431564566710439871610230455788419400350793531344666692463415907312689382748481175241455671405730899751227205035729518884074368285200475090925329727903595556358360836448194222911976664559088470109079727533212687274249079216055661689467805126920269949269772672981461669301070557854814370887595807586672095296937066533143485275008014283236754292019677558238356610911902067797881162150566643786459896371054563829155311860918910071485641665558843652655790151946014730348293005018618290452557589140797680532248910381326453492102769981568746330603951764183031854851026795341552543526600712637662771992113818896397762502245222534646855281660300968712709131849666072500753606520733479142955663202493172940789759818183479867726247631513184370536337495704286213209194481777029308223672658132560535290445379009867729229396890260079275247439452833747189604043239055947691841950126921913190737048653206779206469899933613262088239686170977115912081397031449669264399031905730067731434933395958815496001690686624525207367618501263545325732215935178553618459761742525748272241445679386224117207027137735695441453339331999178261295755410409626574562047289184105437584679751307587367555748451712459443151120097418788758826333877017953780942098669860261617673472211205861325030167010627879355716507773615261607566893515894667023203885647849364554409578226453186750289550509387033550204129098858149373556999846797847552378036604633823524226342209746590007482848762360813667493094824374779276886372879518835147944856384723886289939440976126938220358580023178531964332906885900482185205103922012203079055926717031546701552651457246769126377201883672532027900970748162851246995258586002794151924656097512668063847076310468762957867342780967477547611645182184487502884377086044148725062395114674734067609913835402262380276886061782116738846163059129386278762627784834122696499185960577854179958837847374976730280119834200969586665099472829414076118009231010618456123706177981193421946332851891607291192149651907586064534826139268541190836285511399755268729492660224244182150151233017914782193929321084476154304688063013828876268643054541785272560576059243685344491317816161305058877185914353641891560908997148988400235951797228857811386672228582869308397431578112875734928613694716065768252480072168981240327404011861269599459067212245433521545067549050624153450116988081763663766514071088856571234835906482345769206966617839076262325244948103249879018728505068505762951118184646167143275924439306011345913912705840543275576911664462429494242450611613407380496949372332367549117932990474367435394672977235270829962604854865722993389293584827217698811018837667973030278918885808238415968815014204022442582770116116878024436992129649209733975973376255136747459043637831728645577572368308312311716981277053490464943949212661091749717848019808612419446035043273334722560551557232578070144272265942757712549809988397022141425563916179788812349620157904662350941419025496368414586726744878987523692304404846414113646749213968913170604010459504740060597419904294968229806851828423488073013761591979042848317569577468033568795481093153518328571020586778805559160402863140165805937943660594536769994985389902707130894218504311572425740989506094496582612646739627360946859255876305224208687383226725949545813621423115103903191798508768647717532897690972945082746251799554314099557468007656774001465474190160590630029227803669944249090904806620486446045758205937232992220058791983284276094695107742494059451936611435878472048785331462356870152878943324482653264119919417311715077349928227503917964696273025237161487514512821414277838783252554208039356267204148850617140186335209076220471214203690650860751695160093574425581361218354541527542655388396678029899220400415909988991920101700350301584631953682183204452650656440634883925843680114843122899189022403764537746440919725970136752515575276285034837607939959738705104437205884170234986342682259859859613449945175654446708441249932720866452107480836925026905457409580117493049034880676556436072951272192427565001889779581649725143758287162316175021037490176250456692091589964535467150032380865006368225097589336222548036913447248474103172128722676768426613518620016670153696096266381782102187086287727875317269542669687931069970915649967613889185009419280380136159174603181222574025015788116034372977609012272140114943468296290310360474428323063125625302276719961042716773152177448247983664887192560137803867199749878108478174534246635928498207161897637928540424127285540168869080403401164427499754484065655139574430104490587191449758045260421565448728869918467429943096218373913064536131391427296121083069134301106598247734294671993688470723406620523744216791057151935047237979024787986726809186304940544791080232752460597112156549580112472759366984784174749785720022199579655255295228834970210451356760655494324762558680415605441897280769672149438327760273966505678712957308793422810369776063615665037528719150335556694838329365672556160025729256716998919014646455806139347264582706808895953107539295517026476736257811292284029867433363323129341914721720343643544954593908153124130192846553731403700335541498064129207403395305160816099457018001854485518160630389930745160468119182054075635690448469033159622151341116643815571848714880637516483595716185050208964431817228887246907025321676658955244660601005330233407394515351589667528370155941023050362140038570918125844024763359581852216342843895627417351876448872208818522380306628664177026026190495665917604055073140481333852005537353205897514991387120579185251128169915514957932401650036653714814039244133084023498389163451395117027628265273076839134598226476621627602366126482657135663482986726528022452566061090404736786491682916379224160266635055953875025218860242045080570364871956692323886277437487125488885442346396741973936147615422166348608719792369258263510448250176918461422289229966601144571463905426921058308059315771955018881038902341702366520282297306029435618000799326945885771427849490189268609819823681545372946830899010461347246976498455472476404488807600206985096005304626966745359572219895228680692298660480589408321677255970040000641792914979356570356933141684546455694788620614033799278204086308302655227094214967107287539027176606530225028629806137681482739479515815326171117508932416919026758204210126606622991144989761187205880127921859025024311530042076740233120616278898297201084143056399664472219797536664733838483122534802436019160990816907671891247202124339142354960843170408859218913539668299937108287990813891880565926568031109449302683768797085851623274870273961428824457789720711926608710644575627633623412242662931550567675812986101187822176374206973755525557607971364951262799270493070537401055808137577616859197172727392596388797232107099008732393265553185343553822013031076999048534345499760847974066670671731405812596690766725617302203007937923018147679514217180089383450666850941707315026460811967358791301451394395072639220876124247993239624485420246465089489771482509744163257115872107400550775819034437444122765008473195341248605833817472481241243200863603609683563048068046631010522220110929391847727345421155611530362468984299230241254610178233674972336719402845450839146950283105604466800160966866964861153606546307837099839591830523254950995024998011534827357685247286992818210795242375329102813407826796287747708340374314557535445672871816551690064186090550530526674987536580759446319061614915762489507518594824319129994564265686911716217221936925349694206389396894122099605454062072970369002459561434559310803960244136993142794289246100127213589702319248535050206816766787889039838753809858068989008741240889704282335577781554542170811417721669592416701784713282147365305491326311991848307777418168677680591568701220194627814418473422061944592993773737921675786909093149748717837259459824901400568031075157153096099284202759252539516522528573692507415432010817390365113336137447287976521406481869051373450312013732406729342793082514535373049475951065154999896609184882256647067337261971998949149108309345550262539122796928439006333234655198938699470392817225194254001398277257192133449668548952830834421793824315917060598222801048265633914750141633262508085869053860872864064195435052718300673086081641870927889684323233545584776630350492894658661189779457897037176542341716765216817968624989101321966564631638079213956611860529949770889974179403389185157415724100111982546158825215725217107045398970883466593861070595496739934981131003790753643766889128851928971491929129894148593727427315693714412022212642936784534319696002267818902445096176812129337044797135628313936098604378665960823648977361216170253365317547350715274546532243577389563554042128286942091958874920190644435735586335622841258134905345351823496872193060843822908926122777853422089195935587786021110370509365958973961339977318538495364901013169283904022185910163141992753320845974393446055463243429010391666442319881371919443751153098012309122839574369676094290077681366845434156243771153984988300705707963916920156550221720483171587321788110623691775553874201875754061039324144652258684491643946081539769249925000630655159353163812465086179926337311028329702932539106721420738940165897294462617240127214557618319412514853263905943902802949192118181405311324072288978926209246971680290199211003779325343864847087747487302505544900512589162461034008861791625984602187152199972487380207993537765580682740214535387343895341906848514383845616430025530273801228167807091733261894567370429513762061657424928469844433274458468437964486256811941403246410999755837169787036138977570025404964569531856619402586979778569311657895945188020287882715158916488135347338630687086671354742793671511480347259601865783180596431250430369594204187242872606787018664200906148274947702488006626945906623483213823446259113937200808131214167428703338430042583420156056625715183965603801142753453326711025493602621373489168112213358533181393755348127725019601069595655992301407126397142621081186466339659510049145956255736990793593680278326262694786582968207362267949011237218611842438236392396428859033615183950134363193853442024249817275578132146722760502352856753334417054729653689185557684885384311934361059369499151647005459531127553170692246808282678237487304823060468823712402153583515297639634352185465387419673018575071820223248082192313419576969445965970268799367665750013603238649236651843703065698025570204711588408447655350052497228276625274570625304679393024087699678725799506708086015035729973257159429835474595556703644998534293009251182085055892677132755719896113583507681969065091190719235447943573979733996049894988898841581257834320135199919328851255923412790429691309085765618697913553186582594483098859344178671680557058597311911416493422375812451952578809078219294075960715569199834902164822722662901439391190379614977033474753258941692012575923949731581144346136071256488537921158532528339032837195906164815474258690707600398822845641181525858322318664196901909469983236199280158335323405449550454372159341995121207469561876866310842843653846348413325626488862361122476276936859101875594352198896905799857125593409370608239164997573512486843147285599184376263838336677761809414424557979844972186311202414422683520223035308822463499795442117568183380092066578596266282961802881110279403373519027041384096068487863927405232355792300338700096323339913440070965179540424675753185330166982538805462298605084877545886211556963381598592128181914700732311697418805619857182649669042764871534001254824839504001666277997279655305552412488640665608005196581805342864376007317198061154695499937506543724523516202869017620558297750980340805454453947935150022163267110834607804384818664197641560196839951191827123936654651010527587582676572236712198471783272980443840143977586433984944561724341298099208178183575702818842151806706363227072946077201681282910064306002989210725362419916335830106398179835397930908827344281692180323855383470879846403493768070992407755212435105079460373039458921011417594492522206190372863704061558614957116562115821848883654081335680231588310877182880963979290313204811544935442342568913828652858268577309226184587732935315007522050022086643932934519484303849609488022968784630353654874815188552623896535203880699436303019928633513156362001338233645094877233462195725742229135897307058277865273425840760526741913797693899038751256586212634964522668466879701541362952209524288277850396128413125322882274028639119653640620605296509336576949332346706732547690907642058281521954188354307595761194025189232614432329448058221667556753669740365944658079515973171990365401058464554654874308206136883642813003871151984399593562641502096137917347302785071410551795296969713425577052735860036213988944610092922095208904254487665947497841561142144472169599469218635157324178884922351796349085238440130958601205297542141653250441200593522344703730687399814373781570645781504258710112621816774698803721804711698539912644883412777686655696832344368929998373491485421736384978931968280522653636320363171314499170712564631274591910186642415828291329257893839586167865896514018939977205271557394431953363517343346066740657976302676252647713908355509899483044326228617186623458707370732927422500775541308518585196727622144250255681283693375251650239746991037867511892358742664354323097984106775190947580579176289100084524334829055704205218937333950102146215701909789983971255760696878316603507961726143725462912016498303157746845375552913765350837139956560603579564991770977546426134678478704602539658278214085562742358242303289731378455457868060646382878313621722703945612992001066453680546174679709250041634057671794504330079234771378984614588533652360658330028922942120410456386154906083789964179466126012388218808861969387015801120942671069775725169841720555233523411459037425959590855097203643784357718579922711000087566499322292643455523078887063592251291631407742575177853537534520297466072131558968652828740137289422278143207509840112153845378265325633876310523237135600743830357174439548316334629637192141928173832753350738180555309780974736169002486914973321033760220243802398542556130812119263761414302187717925704967741608098324731012378304255581722908854217598940099394527090098386155750871022377839012733812189456750377530925292744621616658645326594831182644307708030377305100195323824653346301090956422680268232228824063305205947509911357173503463846427618228818503780846247329437794297821093663228700905266033839143558190488792605768458077128271406016248751238334933799877051286338360725493026820016507261019647864118525867026590975379334541683857283476881796451312018328956932297799764415226172391709152862800835251021694795706283424647344859554487482450936800598990062258655140248266248961265432118686216642997786530518544543265143365652543094396977463355906106537714565329051793394497422988732478977563682042947730409218894947550342362668031162476132943327338646551506453913627080477580906154674948768144742106975950008343203724403873371783849233010655824605992848290976027871464258135206911362717117355273873229101859238573979098372085836736477831551655292695556996349255683258852216871804193200131958189284749306083291586158696109392050931392796187932442690574238791838824733980147821407215921722560000467591559867128409353500273649043443993056622768405863910009834932005787427357781447245422156074656952648110774526586945526991335269544351434143368898525084284289145127812689604461787822201982857494425813531340411763169632833812111119033929301371512738727508454837840485214137287357520808275759056051579215244595822233256614457388524756711698756003284989182033718237448343296074029036323058293603886363972375539445660484499201715945442667875087878039117995920685179055617281897953593691131692208890907788848771785060190727058099126539626280131161230684830543496587807197690456250886447185355322898230764207545740767211317279665805602652610077771247321329686234637340727351699311311471026046969556856585903395675335187765316674036070484594589560803601476284548875038683937578850481706658016757822800134042290117375148858268498593791068351599022051998363175535734779678192381442494839290940388051963313463068136169181323838608693732606637088295394020375749778946347488435235684379914650764982211112519650711527840474178683421326535328891854966514023050408915786087937646945951895735979591637440574171807346017755569960741811956513121243627414561226866814532687698216041749373764224375941990336012531934427485195027133522762558743419668229050611571044849829515418148372908028280902540691048470470513903700168948539187069467918655674133069319475323096533546061929245696135960319674215188370455253619677405740729179744061084627663652957530387203870794255012218295632882121414829230059940222809482784694942800530850261444178529247943362406295083327199649622200750841932886001300635295393828473260576814102401705298304701012199015368309540854802433235619080298185807343410744993741445230371771022325136708670118167336178527565416499246282906836666156447630763245341647753092577011846382236976565755818566046579433385381445680146194119127963897123951599030454388106726756712972223956083930485013314168494919336686007401211934448154082468335983055862789608239004059786282264875465470607044247414490002045660165115693144017133120321783346675855242115873697017226792324556130839429289743926032218633006159054303006207117911302057834252311183608422774096656614854645477833958762899500641241869925842895123331455250146736281515514154196141332948231195267323116489376611951441672099774888729531572634014838589805622622137699400006192516494722690071548696164269294620932800712690517229084277167900149920270438402848638515182818584725420781074306197250489827746422980192863638585833751404718813986271752211447407574868386696784515167243933245808620544495856524175823056932414631048074662341660672947694330137923106925452692655391791225893725206185968015068879904679797571637255394905145227337475934089441243306241033670522714091283598065290922545734971043211494243961957337299158505189080395568279091112859208842452525972633528640752670872946706892081964082190923911329565997400928501486360185921847262051224548894720713799319098148864285137167427024761539689315758232908596926412670858209544734733971080301956451429425263948796684588087499667176129386233025424797185750854199420136490299451779800911851933472909913322198313733850286511102139403479794011143543328863744741336369860010977073766200445390216303303081979645284271285899231217362705181085640704210024739925283094622079356024096868796502178345604635397188889021898899076718820910958984201990915967589056932622694741529413902086681654970992005521442915513417105930052457828813451832833642638423268934076671747952402493756247977841193947752302021823756376541416694571984422074138116953866926489287347337370895341302078674341991016827069710949197877831124805249775729304807008447595210998947547117615510874275467924899513912642462976639471426946734957576830240702070006253213366769536009545452594813907833111037748795314357222841925437646283245960109778720074018412009954951601564552144377377570122526675150959829686924588187135789125154037868029923746946653082991580111238222124987524274953588991148461738414124797469025530168264906070053642558942252481193390362663974524788845777035228556286500287575245097665647320478168892189316118230271947769219704661052813484082106443269465130548329927336324029332664336468841928012282886163700985199727656288882290856790211936192393080660344730807126895830096748540654432812902945320454563653861451894592252605621098226352389784507707990302936572557130480523829728278361971064863302357440608350195169767781193466158154090318809488568185719493945704317095326140614938547525400122335355613477163957808030815173581543460698991195818276176372558293033016663917240860968616392498138237410244312903607999583149046819285836546893362874091100601632686808974006851591393848741926036174629413431241962423425366096648011502653520387992277604974640217661592306599024528501685077816962229915764224063213131607094454336927763589172091101215785300832658216844194307855041327602125014403486012155554621568693659045566860127654539770921587909613102294003340121780054260575778136395633119799869603366633963166731932166387767267458097988155352874991036956125397298961163186411683179014491167759275085063172886814631021492878118985319139004339783613997022144421516503879344701437414683138820271008633637654986551080173259684800833775067578807455781526607290922979572677299061759372507472470789176930476076680641534287942639892571866313185895236487033413196086229803031137275844890807970261883388537306177696105551867438276316711770914161893709784978357586599720746765097493579558946995816837425645608978357234580939665454127391388444805871539584436339829228597065173668934131047725327470386744856406915089438166392124115064142515801396043422080872276924478874539944611729783294189656772365227340774725581290845293933002970718370849624079681285690891452071603700323267601515889563510207310507300669172349663122172028387941849667620298563288956762638848433407156338425101084334357852536408770607269477089707606869838520931500508262193848632735466774066447118731849020495148423312837974710657563617795489708406508388218598220653241725196394454605421122856152963984723923862486109114589668784599772405065733474452943571871644026303313513025510146690244357449902895003315002627607332501338502344162530573512551696075557717906794270540264699483998540436675966371623590023270479854348488596018186418856869109354365966419093403496956201548743534881431850746926446644189285867180834967898072014013540879057453627619982799269504841174636745186867947371763939675556626857199301560483360476640783423200210170499336520601698216967571029175264443863546226691214840654711106124107901780716976300824705038243555584780149971279915944372514927531315151247850699607569288111544907000091355253638543297335431676776868785255090089267299523350615786425023095915627174817561542238511553335516242493364105317045944709192218410942560393550643785493766686889566116250124075117483350538005049320299859733858241040253465887269378183335446350945984299358000494191820911649403595344646676479428544014068651259586496325358980063907593888532859994940823173607165196446422224127473922744672617615097200804134656791526598942015938954495167197437629581988508953925084851600829978024540315015815004064521025984899240086060531841401283109395720389415463507489438987201657417925802551299123328179636672600158195661295469475664196619542698791711806151023883129793233727679819123367758886611222873247246669237451509764875051927976610373069274477985922513008509009050683822485275294016914039980876908924050220120698467447804859332608183481232206297814683073155914852705921801320173653240126896655202176170037188297663632667843576307089508065816336333152533873595010756248571767154117418000800956322751728914470240538119879110134133511258077689354598191960795815110329647560988356349165676538033420242441620266024792464036440608307544604999714514235693896539744513858813313420943757093805999792843328229346738659919312527928399944374593204833169929621213682204140088414555830166905614928047227492849869553936578350304084222150423830913135475022089749871617221433091544235106336232013665526117847346760318151004198567272688848671243779446876365987912171247045454030869472419361839995468461984293307406999105055193286157934691135886157239249815765783400277379464396023806104780591693872204438065014934231549785601720495695885325190720087951330147943130783517993239517837686580040548293905687875775004738987961927295710160172798302612889380816249115917392258711634132914877574672140716111794328650587967542325783380061417745226538488201630686572915045371996213634633071874483630788317885042612594000806916650877022620631384576896226783707098091005003969422985369253215313495919846291074142828703692803475919823712443682602142150640759266912363880778646671708284231888266654210211128649898755603922674566994470579538968615276127183346494048906309752106815027224314363896542504331197029693270820186425632515235497199662166734447014126923205392409968693863014856791989045762569712902051966064210404295152651879584569875222214257062279619747135355270977122196773146155210586433026027950561752954082698530833181262110497406718960329027531902396101954460589737739718375210815169158827198188547417810682810620749949830009089258197177343641973912678784162424387986600239313830646746100162183424480405186046228364607161916505354486824161579757148658387564015637307922635044938716848667944732332526335695966208139455412335791433118526802291752041340631100414975526727927933128696922146654005455203395102607760206360661733918358504696989272657303545516982938443082882589520261286873231864049137776687912083628074215532738398426902406006224490930173673861444974385127646461365912759446544587510586570920648216116368612423124315921642094365203364255112733396386049201836551447616604303652397067449227322962338962440893029163231226015990330749019577521395348012775356298296345515065916741176510419066391792621113990967192368791431290155235137402897687106593757921390639496166143381069830504971897130576604804876797278717425101922142614249071616946027463295609987861206074130053038573976436922174431393401502578907948381174601997446781191731746039190617268211147997193425870095296922066389067350732338684441956193562544700367144639702571164634710862142003500801216087631757622712426288022986068260570410902242969019910324763795300348796988671204349927763697286557540208826901039985170143718919601518697495334368829069886333702872199764313270636136573860744018786047038658066652070498946695373418166462233322926364324253387381473476411317865475234456582083848212236598680573837780640449411464406449207122853762286358163658775583212180792424425229890801224361501981104239995403501101025811830461854220649897685929198018508265425904671077702024861345665912347369039919517980230150027786322402281993491655139895584696738126555109404271043068216805588736761853919492602790336379168223264576416479158549338265886809144025130542615018112622557138056787952521624889683689331099664216634003452105589028534492301735161386624045499789278130522667327295180092083103073966287019111610237261971796787173573986361099960129954092426672703748239923888448414483292527627984333847508904152546132161093202769883252510864601204322095556750024906194219373029365613240827481317444432754674297067762980650070472680143905227850840972694862083977884366690868956440642926500578333693846280928342627075060235265230001291789871766815068932915919470162355330811555647688243071823662669498475633392693668383719250164771159935337035202947491223963224781971894706831364264025143637247558037165382986581364568380460236222395073028775644521366992680204091834387806433756104636182136022043595368204638222721018532883148620902100598466100317397009435565962055824853118988984722616600501517966390225656207634531164438932309398229843594509837646791131971571887077172325182297539405978332750268511368662659814722001751031439158978406791347417532639759506300289095747819545401060598175374493235266916354863942496671877044200544624730910800583390037349819515390912340941386417709856825317334404284405624921231743815400699635852586283843044346532771473589513267084494016880792867611069135578593759851034334140278902933265107858532276233577903553503612971888707523573718243877283795647868784083908314666431194104580668914463124529443690906291524935559010589321593830403333811976576141505271869669993506330227763479911713335135692972962935714572262581685928251399699073039689208175103761544527833672429258362927936907698252181604021628671078894981524755393591384924729897644449350441745401732535433628738193011972943985340646048861372225055034215425651257880115273755822516597480136693092425753405624742183829979092004306237336390977479783676587416449400747598479526167372943595475886719307637941093676616559299467383069849165863590410833794626816389911224049268130633501428234769766195347936973639867376765011780849934786308443082516822900561714107669505061841542112521657571183718592607427025551908992719934651815591823759272777047503629357686239344775062915474179563361272889800361189289878150491863892335052068020113199784137899210650868187894042555001802091349148875663782183109676221036269418877293344021689279012052888272194193794614236756013364507987781053337000614294610175180813391977703126426215672083997235271602768923316959924487202595375401704364516827347508393045068513892057755707723325178981911392291657751896366102157107626572736884521496631974456668648856783158836730309338428628155458595047114670684619833120199439664852031744307951109756565420531561989979276854087083756260995665732757073280602057570098975738859313614227642857653880975495361694101169328270871768555287659639954674333669581784717625279136206259200628490482173267250171722325561961089036327162726315997383574454613428763115215950480139514576947124889438203239261272067566193957083602606490433150125923101270212374573462945687468779665981973167781700951062575827967769555346949726195217357995428867260086905997021183413160205932256494641445264807829377696923670574492644032387926405617986864986826949049997046881049620421022894003187588807736421233397029921191448168321904192472880187811377543112813618095362186953588173651442230578548368470070664707013322450630100494543235125909410703147201357706847165685234834113868114955807906666918803806718677144184347640545694196146921789280870778380802118635632720361726279682695093118378667380277964914997218820969315256792533973484402416094653010285130620381415877712497505056625145103045548938628819416569933108934467496877483135810675962836329431966899204312527848711808929563693727008615256648430262990490047854467494508957835824151974379278407354966672868274258645330307356933823631175412849913009367127026569815339913983412970386924369913787739450450795710536351311581425394967866616768342946430210908101587017693344033391758319879404946900395458312340750969995678446655011162854862623804101751555611251921595253448389561669502570615070377314573516432046211224314633805474355412097435483266507058705560077103672285272076301364931113405617954999633682912168274950502296211391492221490661078998898722243742180901741238736335211597238947707609130161441213995600604810165197387297592764640623022123527752220200898961460256088111569165010726519780939274860856333347504407753737242696072082472808829655902653674620122667566162329356535845574402610617336219317082593753317711471469821400296399249775162539991280489672796520336233222676399697326841657145420196507233466462665726103065810366713817388407792651041680982601856118311657128556624047409196826635610702003390476615134681381932949334889453946484633076528695179251900726476830043496324157325685999004740582831593227395554284512254459904084587732581380563164414718855730595481108336589805237167496977161331019134409343135352208258906762619570044386444051870062989596411850952456802129731356571869760468608527611973603135000178009454284343582231911280278499640697390711155633707775675830212957308993160261818673413804220717939749625882208798651595363764959517558513005329972269658364976831619744787472793656887378007290916673965111005250480438092245631530918214831138390367775972528504730172118248863395254397607429009269963422098481313624572011896345203895276607458704339286450063721857089388083663051771909667559334481809555221612032084837615225059811378502434928656615273691559042219966581064682908749878460829798298966949877051830823210518923230668134853378757502544462449134906059324780491161988262327252794955367725012865917527714972480113549835763610171712037757814745381627491241514460528389281399101243565996025743776260076524885234748834841621229577839441825864377252581798116409389416367357901753754854991186727946011760977649049740114523266182273934332667321952989378272924082315471978096084312090725675512739387222950912494213672415056292418294058588546434682758863662357860588934442191321342397853903984123601229384714809622067198259784234080856489683975586577639739622866124451460098156965100301652150892557587352797174541724867094328908922456354992140571448719037238444676293842379339320608070621745681006587462557392238773326715606226647308894772978192837209622658934286169557042172191601086726028769069199390077544998128806197447376741609769864109586139410730586266100011316752750265091579133518999420714449041544344923860278577578301613826381639367767613460030831236456287644498035963706572889413822107807537147561647457243765705386676169318073361445600139984193204935329855802816650608749652685463957871841618496160967827780078339775455354396525248824224742245216693374919489712079413271934395814870501219077795740540043209000374308383035067207105498002185558154874829693303298213303614351123897909126485358165923078264687630381970302447930481201066471910332700309594130050536741072353095426237256772824992816530284853280625139043591929089626861673772329376272459657190698084820758503264667434074061643920805810306400157499947321068223550771181364765105614455077841376978152272646054709788720298315863365353867954994789535644561017948140418544539075537886793094427784197261789746252062902519743488285810320962563072434413583153959471795976577724776778523887587028218038789406702608526958678504733058668342927976144867315460578667436047113404485603625703876627959006528619298206140109636643205826995627387757446655318062645252173904681253777941338662395022398035526212919732958284655272028771082254744232262676497416694292422371326168817967423176938808946288545591323384742713874777853059372376833765077510973337599905236616282813745064695259078610964110984369249531171731557440590198482008483152298587306410084590090846390784413162414254681135639823993743070455845816517054579866325524161236235049628167885196206206410624575829946453472276263590567013214003703198902430618313543526605901103770620641925833210887502447278845791202515585169332876984393113186437382588380053075037416650951998487322694961549123029653645142212494941463705579909387739879872823449520036519990748331617473121779092847651636631388859469338038927137406894797976450038540757523913629499805978662778004242903738544620696532809572660492036667321815325359022266087470226036382113872542869954469813068587723967102614349688495586798120964189696769259270606716603597895652380786313582206580860336202159300032084009334220034612694105250272314662125803580606222152148348493860841624565222721577659478261831169302914323682495160840450329472609029232775158291156431129989452994077923415854227331811266720753812721219007560465966232248164994958230592888492069789922911950896978888685139104392325172615405165889478313430826705997477507180637499577455619364086043554545645556276925150676341160303838327839855491350728436939473399182800167610890805238679038185494918907499036600278041009598243069558470449154129944240542863655063030765735986863362997552196998967512902579250326894573855704965696406585835774115290913674630165589684422831601379075848264279827111257700921889698817068549262430271697810779949342174309530103811221651996852661297120546552982210726795930017550455407179698334369229008949353486593384688257259665905623629636535922726199729257569562732011783995136930571822080798928922430691195080467536796700938083095397714350470084839380934038617692744162551839664674687155831044419541501534165025228777868157444759413605008726669956676766321912296843479992314342004889524331325065581630719751047422983779595328596401826531793120861923002914637281248447114391732704312041912991611743109288642343083278102267741446743834972833628064032914155351900186047021904695589777206548757105875276210921350655723174941038155345063317735420091425843017266846973452067228042792044952201906275803057597537333380734045918202970045880073189647204550182263968088116171732096246040750768243474527656142367469529409999063486364732081107385739181366978029407906473915775759402711365960905760603515832161259097948833968689398941719241610050521483097591340318860748315024663652306897107348774383602831863298632474523371879742670388663383388736475868558050991625876281011055886291546631219529498267719269472419854550026775818426559090254922278440043269819524780197332974262929611365452251690964280322051475006661360591220785469365918574632917046451035191199847013816822585099613861813158885360142281356435593463279558311290828972859895163200094141527147096456292818148540564061698097895729027233926024367648333159370638330580507467959650569556728445445033582249686108720158458642136740660490012353880226948558926650194971880180555612657204875707307304555393306931074283836500792340282940900107589866203605378005197221636563739801277314446590221840183101880975888959892020421909481213589649601139164129491029967033208113828335240767209562047637245626424074387415330991375646647805167352878010963789872177003087775219516708627167964267611400301510974960616638121684897245882420133431189534782846192953380240047997713077876402630471041467733024827102472331881826797412991379739501093074328411626431578899189570774344709250158811724793776016190652097226969988793767344014093865867535392842679987338497259890728688009743655903732087204451788338629638187583290482867382611346371368850159309766417843791796075645256477138350758572968344242657770189157286684111397299659827971820263094951136525951315736812653190410837496381847835512333590039274850631324692347291364464247649361699629279808189068564764540007488411178197329644973106452140237547924207459405672776888923934507876915587770724421050423862211797626781884534886297546941921811981633678377964160055875877079348746111608050033869074076794796105228568696430197136910333353448032134091729312384153878333921596780596572212568338711481200036524255984769381000136604392937318815657159328278642729006304564396424914318769413953616373092688588319455746072281355588137072298159309822206010520924430020316930116000237000006154312966155100177341937414667173241436564689858689201829417866139381160381701201904734783412280970625562549913808966793994713698961343952910678274821763199789807021093363316145836311743841914782633790145511605973017352076111214869046643893217926209961542030041507014979518007423402553192861589850569619424818160317230782314622558670593909242593905912846151005243377571049266051268528690400161394791810603454823360872392403349346712821447022234018024603763125718303648169343868720196571686168285250773755433002253665937922840819187650281577064815700246241593690372667179692853393182693460594019618686050631462714072769583517471459996999306822273265152142981911318505895342769796273208657247289625776929207989655794590835699423830562046286169791182327057955408864098900243100280686939284246567412236975056928261183284909328218368173886225335310461475608654361622443679190976792603251866528609300582040147822843952754933790045490382088334172360246393834710109801138414818959616800689301986200307294501582330115841667104859573722295651410750276272740267192486198105807492156404436935549156557871139777925010688745842472818166505994759294577052519600495369575961425378867314910263896915423308257700718703247393789566872941980016833139793789224834774846367460890753645035275045885510480094189074765302018905080397531028722001806056055290792791980818288469514992965206578967027810711221379408617679364195309486344564188270276417996439508147369852483234356754064057291916849168397135354169056802082973942654679246895272803334738502263813372336950287280474498993165443256482559675270531376729687711529952487838447785908507407589133123673528280348714230162537789394016758249887611644929783008713448472327399651334491300747453817306285195371010112385468317011340362361553029918860603170333791679468577928101110197602418497523970661721319196053462945598050356381784210017528102142515906540159650496586511930602128750948479662514458925665850147189820873104557809479760859551069636930688376130566696753798099218170257628724846428596391921755841999272073560050637795716893264972474572735924592055820598801212895656732079097473248021489375251349903504483364409378576232960306477724788174226862029064794752342261448381632166907691136689957699847345852957665951897551822312640190979289890334093535060902350768375578106132721944923803282083169908524939531550426661049832127208000446954977270057459611521127612247139066551181699864877083981134257258966722273251882283645813540769513649979665898245966028154935146841161728153309597450754412690805464866350288789912632630258347630446278135911273850251210532004709831256512535752001808986549168101097629806716965179570874668953071874268592747265959596081607941159296076332732638837130616417672620818175832959348577933467364235062054161354590381772899959325445250682655073636855249670336945625499021960612596829464207897715126121969825339451332893534820035450657517659853021594540044157525555146236501822901781251507238082675684461606364383174394435501455399396342934856119884973713510586254080067363256628031027579584500461107445740978339854843778675895688896261167085829337748749870989921630268084135100575740760746177097436449534182071723997395357157824371263203981629633655619966334886216881056980391982873759344520533585071369769490722927954201843210857332518070829015066583149950559514037448671706563213541000519452141079311084010165957249428230480441672491202102928618198248078872856793988071380883033414042857504601448272524909554744514361450647372179371784783630963744384173149714959626125377852209529561965900928106742220634341306376397468290558731175597348744467918288716307218562281885832902980281711182339842962275203814498584857731164238205873673214397660276188482908335513938672194277190492567358121320587196666234743843787718372097577319857286026221506636089863270251278960509704841105435827157912778820834576031402997002646350189676987022432965796449810354779885917422244033923565960417651963005023115492155941940095860664548251774192436870260643009607036163811277687238175266475065492650474233593959010583200305683497496197738064686266418386504948483004286611806636171561527277102020707882638278548804567514710443414032696198509600422138203403676527112921550898739345928469162675871229543560411372806785006828522834668149482765132961036427676937661397676426071912349470811395867843702025973994525556044679368307547062404833098623252989959890417966944355486692388693032857837439551478407662939966605877771506200973367654192465841677306993005634691531254341691488739592975131726879038561140451341113671368849220928350154117187041942455238858156278861757571009623076827294711805973985740658377669164951000597332331154264603962341685682091273327636865045032717719922186699230248758849590893454379338649194208743154754464989407394694963744400231365827145219129705276268196122052822007130248245009563466559261182246578431456855537070882877582096156337687615983569757587889811549280633926597181432693247966445945742595867574203854501268077586902495681353092706368495284744514938032261972535871767317705953725025032423703184340690124320676581379061445570891177300915421358141891720521296106459218832822972549189780000838355397558664445351929041612543497581022351670086607020304426122216935835476449178125129261041288723667572160795058968831173286486258548635045848730991386620807692987240037482055582884361142256516788083261818543129030722856410765678454844475589139314896773717792123295105607304778667918891438017198957229850214750253128808441640786652978785350096678950091102581780038100737931212922239811049303915045301536562246832581971964432668179806543386408348457519504560628139008353269203536898987131559412130814697678405120809932419992797086589365709413112518203150606603601630838502365308174855362346377875079300754572522001396349637384252990063378534445485101069066900524935297864625191036833007056645829821059848975186560900455969356284543349913040015382650671951812380027684933031608297739113201796309354404117864248778406316895111339479349492922649999628799915829493409665709582051682038658140485995655348396348223504720848417551130394598546138905999366777820906702527775502889722311402816864297963179757940500272296555429666407108750145202109474801471166277243657222567958638823524217395111432624542563043485469529318746838912941467381807183691854986294981835278108860933397500441198841840254613738511499092647042225159472667093118725844265098600450654808090256492320684275621325171277402618877246596250691422274121679843603170402212569925164121935767726669013152303075578437501224318932594071979728648233588117636029046572822372645317881052666273738693741294110321827528850978807555370837115071638663757960655175307666692155601275966032251188912609916526913992357264623549897334966002960420467475567509519460172474498911310067754691630932627664552497556676377358554386094655494015892122515046764401591564062115143606739400931706676735442921618311584880889584922004104053285542119912156687296237698330644741548820771278707849772149760670921512180432908728513598906813959622469529845175381467913185094478432743682725841784703151395963106706739841006604932498298517921297219604615303657781581726302342751273598444503830998492377083731246306200930454209120177628154420608109958710667004856808531223313694271241877742850082447812284798571741302343064578866792713976912705449924894549819919616095987761604731481427903722215636599030944854337584411751164999719912413594013102185670861652173147903615368938675647410788305546132156639084523576487219129563222468488460839436455187488826141547082270997731561229466047329120309510988248509726249183183384151461079295960735556634879501519208596825435242096102115043720251003874871048010672082453078488047397080396768707677261794855685473090852355570480852438798517540253520320742417020285238448379143087469750323822127127108743273992494724698491251532052267082989868129360415370282273342654125213524967525231790901249066835559931123052403477707212258658979109706398545157631841389210468942573170516353652193986612787635853018768953121869023851597673085331848774542102809667967958945170113081673845094172625064201088989477418174447197528765249304871914625391590936596233178831332341995735329742074076680496470395337075124775617925432345269307958263198276857129049619747361899357688513420933106115438653434550977951266176548288755705438873741794401218062853410440101808437988681047839303238627359614936196090087167910744065022771406155989580946751249126438303389704779135082238034178449920502814021601109859300798151636236913979163448986616576661179374179709134865546894751698682760824729923029792233067277451306897047542740951967664046830433044263811059640374181131876220920645077862463389519475715870353785072377814477355990356973991664521450689577561312760631695196108012009124353134794006145969619861604003477217803835182420550794663577325798235726648808693966880068183905031030239558316558192248394838852233140346812959561299146847143219548283049492612405348965352869270192432618077107316352601760367751398838483794046888987822390096544501967291143052354424469202464799057718873118439766320277133184096074862850804675333379460744307337701919662666554816828109428462371200683041515334649293247783597717842002813575424363318494976701311856494500913923500757160821271416508080819336413130300188475835033620377640960951080301439876329497389815742576463150583096909449837663890515213710241960944733464189761066800617286858463386661373442743585219737413543706536626582975967665620215517557780185185207394189126092640083910174245863200925874202898707076028600252620317279088743211642838572887255932032570133836349385052188130003228800299345098005344983768770023572945358529132250069485485352459184023219251910871778744893322379689649202772026181746421626287264484165052183490922532002267541385189106714485809878173137759573608741514066295679634116724095210835064635899817869023500336608320031749538015042822724483540932769684285340289163773282251573339119755506967708094408076315337282368433961555843387409349195534370590508706144152842699003498132757736124570562780085959751378812370459888558712340411838177438492948318097509398426647908946286887300775165163658401380179537040443664406571664454689493149871091088047799671079291609119689905445615057067814127358132796093019350535615488979853503703143620815656600545819379369803667898930212653442652454667424438188816329699124207309538231516857025423097886462995734960389354846972182404716509300727730761859057795220988292092289063435842135922538955448575962694876277485489382111680645540089471748885635914130004473650447120752690300236517809331477211226119604969585720652570954893280759790461919419546897720679679928195850689096968112311855381410392845446087332211159798933042537146788365932441084922766384661780084401569440961441631514113199070521269775004331238620578429690440431928761800696320837672969739277063898702289059844177166780834801484651511750716840826899113117741850801192338246206182705406078674730501977876020361400736514816753042628405849001268467596641322307761516457281242162959331582874099251744109831481883049901137990979951610083954255334655090057465006798239144490463752773034313684462125892872740631969345353346520687608730986068715422310666802875867144663554822436165610965827514006853693185796404548254875141077514728740232380506085056545146650193355196964616989688186430898295547426457404785580799316748517605778657994775076196999630554334364605146094646476260430727041067601088281168029925368902212546351208953149547122200269832732452516549468987226119424686175787725480877634208096190918078979802739683045043020507219480363789715221282954243410478478981308671060338923354455893170621156202417386132478412520856937734268255994891046691524876951187999478160700928573809872649029861238050146455292157363308882605867063312022272767175499976570022525067071935064102196343641193595014834494664003742670914856917885974287653130786232285183998522472166626129522380313047837532459120299580223020377134420225827357705779203394186900329652357993969930538813817193692868008247012549858538220739111391218814408151068385342658613322677894108333224774244957400941011726777201688965466634843932779505556411594161559131780196904141953232466950611482978274354986018128775174517757947346775227501988253463873645767537783344302028209767922237164884939756623114834810007847376796212742625531409355245175356142991756002349774810109208015880611776276709272747358638936557147937934680791992525487846876663005804033124782363804519978604459721812317907567871058250020788405057425466143603362991252451411545672625768345580111702547605248504258114073116794055201443987350190804616983655703510212538993475057859625006987228290446871652446138320201855157963073673640354384615587199682997555994490039203663297895576246665918981071166457594121290273408446266333741755784548497000283803594830778416891888105854464964357452584358880033419665357596648071447698087455125523015123477087128201936348610452055098786245119267481459077241022590434914781316437913924981024346538817368170152585273727722900365101633087043838825703479761883015401189348190005581971798190366625946344867463774142367990183917209955725002783842461460860247799541308056756275222959481039385352749785413461890142262444569413319773955029921707720344617787390901694051120093517779715361375752684120601134950309947796063609140323079115422181720677654864016852423128918409995996446076920101281896640982347019414963653393397325554301532069715849055584671466583369638129824029690589705941508890804438993306899491998975621421644910647032658466519041089898466197193047340195386631663186874783762432088101417900739223387592133910181350122336331176014434932853361198640063315896591001348720602400641216410804671265982475644576947891602258581136078280009706779452546224187500872614551629860760794295392067375917034937573563819909218727658025001381077383187629480396982083013812132296420954816537014317635210761957519891129835790495007989071390786019846324296052810477668106550816675945511992509131024677570450067617532956440534058158355039878680270842045356147645440599305263095178041986540396409626144207496246717217210529143239491561441674015175556765983438222745306794720532829291302069084068851155427688615532459327103657527913154383186271689955279024613910239293322451258056432138647119122351329233484425829099683223377871409272426376101844805042811937438235274170218798716490122095080470634271563043210104522339932760418288835754738525189687827834549427830275972640441339871317138063442296542600488988458497594471391795177864080535064071030309863362116225264617934948502458806561493581401680981323579294937901886732202452241171133474085503971821689300083557323816184553442228888454687918597689907137153093015588448662932807969890585748365375760491492159402883932250814844584034486807645229707449852417401966010722621279684170717298101307594486134683799002486850910264203663829128131168267136368235337618287037644246908114962945587731406265669143187531697742676824659090284897029800807580293470763269328690285431499275229665114357625617521303544181274731744740846248282856267221641551973915680478229979407449616424375520049280117769391626838560198562287307627238607717088468552864491698802989225647038079065574120975293254777870522353391069444250477315529504334849197584913696107032828514627817319781662836394911586455352249549154857906045027416458126606642214002333839937628879604635567644451851185636497956517594320163388046757384552312923562492154407142827696260996123374494086236848690462269394762852699894125183903817451916221902970730199896960519949185608510164981051538052555595171102320770231272379521267007095042147801855982539770028666178059359033563554590676721603009827671598809704886215526951990618441476476265132265943407413360423058129595933894251599535341612914803814772948544389038149329823849591551008144209741964737763356980123673910338672979292973386107219915273046468590596676952403291165466881302134344877748200192163878366629966156886652134221586222915669009586690404412829863476395440884024634224460047853796375105101229614784893472805939330226406632563767644563758766256750262794538426877580638740656552180635610197468619093116834434089361162467007929658842781303867135452558498553355048725395270437136064735703287008492684885276326426645633181954042280893350721867934568605301281591434146406919273585744121941976363462514719637294949024708039448041354381331938841401443452469398270071756519250093724292366088693469910281428139733809519573376922272432092075668404886190130897133270205685992426908291615422433682876734577677668172659214448688500812754308130878318350147016810307600261908759297162252918799259333776600249452310441831573405673821204538004383636841505161997347945995763843761793394262891180611680737289754949759056056750169795891460931859056193859944000241169807087087162386302085398922165785093916230928152959936873258829723283782520183674483216932433514283870473228420400120092879139488949531083123543376657992184945708650027139363420254841432879703933373513011155843245861610860210688276701652766250467857749359229729274012824899228596958340181929192876901785431518106657671523270111232319388141279578990777230352659208654969369493103871135272056903977723548923404035052636985383715045235821520872307224572576524145970160495217905217605864514702126835786297712579670744402812166828332031002334551941510464891964250569876162460686634718525185705354020266663218547070372749782290529209229245054723735505764148867552237179011382870654004199162596857906576161898669164803443765841648890976728526491748393082718715825330632176014243935250193306039337292119779421589496701129263395239730738195407194733587431839633991327166641810851288950390040582961410125346715151169606011041138750612005745704569731517459723388899383722977023739023762683310533947459274118719535803157089803647186760317781522200349643246180423542209125499231673493220130859858849966576155251511643892463059240922871658875517033477163909134889711888879801431558133312458212088042069563759434568529790692031953946725437527385197256241028073310230691625613821766015759883936559709778811138430906395419323585297151048394630573551214284227381087086911530012503374711151822841716236216276393116737013454105532948915978170879782336639640178906871240386148066979683445885295409048712056115397146343233101480849960728479370767802488374088363060207715299120829259690871010965909847622072961964393564472171675864593135476088646379672036854571384154552593295704725410062270204455565381534399007559438666802605209769262278900645577934961108518301814154947232037054849194223725952504587042369082219253725951096826423328676610480597605169719836092287023591261618720804065150091883772731966249964629226658994088870810511951694861847572270200937428825237316673545160159846940846578645556627730200514701040520362340971905527416026961974184107366080538832623531367032965684276839547369139115888806514237918377871335663973429101839427431292730272561240247336414555390751156095328175583434335255362547306044276488168583077581891626952224372871293730855834503467129482826639635308172501437112850674769568529184827578572739480542013707437430163094457795111479755279071093824036555317589613273050634593529270945309908666898584694067100413803473018146401205057743611235667833582766757658206872578466218383816574320942748957801492056548800001094516940635836266628691360193039614363339226877392688295419458451629327218173287078838740708984183457694746068526990445615817663025912931584722450328461512219732785064273829816670557683102555060320211667193035857771444274702634414392709701694420070267320196110649180925714365708858748798500136012373076837582735121152421809333745650275017000010667194809149449752561443140279765959602331042271209657133115322879523587131471417232294621843059654900329421114189046381008712662086120911191881614889365962359232835765957697238225213202563457958062867839781025237797357523404860503934403279241210053830802117763046651712763629921092834133124089355799776538776854057837826359596811213884851419483207662861822914011469452498859285093893758990396808727028980723847534917095893293544749109954197998256050029842189514054403024865240284853202746227494248924627389566182972717067537163414936079533653572028942502851366444728430428957338349073403991139188597407216103687204344642376388147107579802100273418315225012492008083890367327796895427402288958386340122911364765679436418431192280065638962041962878500852616452298820314194194733260785164966732535319164792494547445049195125292832197561030686417956667466434262307889910001280654921937787922652747642605327343413483923965245685891550909768925313180333267179170545107766368286739416284601244527456873455399325222476031403415187529605275663937704591825133771657547541851695269170713459609536886313979494528707489293154565069115973638616354906850658669904064263568937751209494912734992327660180870501803701980096343818054821285788479385476227839112002223671087217004018711109187309295361769903784326865438027666947563998308886979758011468228855823836039480885459568346636315559462859494329688676302003537947582000591914280590490155395162152645769808110780154385725179194258618287453049467920860730026268442381153230456434855634145568912268095546212420783550906306396304752985762101557593813770559601142661409603231597664351736840274109579792961560455169044833084058614614945900757438922977406766139426037200106965055865971080141760139168289928441632734831466376175655749443555361192416352601687100991113640253486453056444773696937256407084564442665071140136885093763930596054881789793271938372484320983988741914787260865030167314489421661601345138318899646094796898079052896847730981448475992191156117390181249801942731585837025541673021339252954422111238350853436856926943996108732511544697630138694988638701289061308832048802202356616749729772498208218687477840242536431711099394554494570746607119553359643019568362924221093428832243026200482632836265371447913006870900046009873949390074238454530840158663692441111650886148310231753055235656556435611852676186824547396360342824512444163975659330450247089775164960582605693439735629314630630251627330295721009993224749231541801841872321974465426253422549885417750854984024938092819979786247689144329322244249065112059763236499756157887490168250920376705398744355623594202405995316230188154098645598793692747485532566290007279468289940989728583457410906448138069435614209231983374501717034260269785610384577037465488230881053927067333589025257345503328401696271052812132336140535963196166621370294158802531806707809551072786770756601200466932042121869906263521167335440454663780615808052927939975156311934707276257684719607331815667273055861620070739748041422730051436332383811417007623672904407803013513652987362856563860544888373766132213512266649524100390506569562658769535681973843688960515535774242193066378500525574731989520739357826262041320337701875728831534738569898440030102061082623935694614783168936873583040832143870591520723949336718934668862104201223718764507249127505045582635544766168883751718369019761583530086538422323753979856921215380527396242187707274316702709411753094704280646928805673403435086958385670239176461168142047196836732292811186919148257464806071511319696157605375206987763096451796935220083196714561372229519371915688654761761626428230956133497369693401958297875567745140899000204727079552954299308756808565694035510678946818154461901460007397969640018210678619309816584582046060195847816863723574715546819612019653392406242333541816763721384699884421265841937631995624818502090002966572991184738200143463858604145265719663423559103438153514534818100594142565012575195100174230355010465632167155386530267422052218195376497945574112829724517906497633040908284237143632232209719341626082914822529953967554917451872200100362022313180350560988688468742581954808433810661291158500758893641970024501137452404518084253683146231772514586419507447671603870623772033697746927298052503688157288089040546346998022777859707047076956151229481853601320539696882675165781312998386952406240264411006964779133078395034028535294219474100798495518311079866259000513430776991506823299091771923141856025895861149143595804310607520702673309206970880581307323864197112521990667024741696619630088901193082662534474008146489049831297496544240974923683299139678879771223218190634468268665776888659710377207980387974867180880687235144394053978182267915023317359928398902120981307023249775023537179219481341406998206517943637539376008827303606179033065894005014454953897784439789006335042378337877147438274291927518992158744433436750785898211764854000227743887654862098542634329107662235797898184629694278836754297633723289832332756130423343005968140012190323603415833186804442250122999091540305194490753056133038308015443986199557496797661017525087960792791747143721987077653197163609546857275873663543590081008355446248779747280447431563203065270523055017712168034927440839681835372315279077891660389859930546711220787278974580696856762249935690348304411674356837878669688863311212110547647894789991428363314282874801875627207642803311492641364482384169435236607384803154512832577108120499790204168406148628761664703538362773694894347908162182399378274484246117509770116907895374735806942107151927267213205193028490348239099663147005925780618218455072904291554037771559559243280769913196260341212943623320529327435139020165542342773886800432555925951868903301098566391076976345715952436055583348386682477127712161253088296543972404797839638352650594600455853829291653134223967313199697517723224897185535198820744430356461704862060595609042731525076517193057984538023832380713118847330697743981486432168768639822648010345403876585684394002037527657338496111167216556569298146891952557502169289328152532314696304111735955985621543452825430865861571915988498970077994062510911846541161433713108666365100135465686594830840689158314964967327261985252655358813257660740417206790759537576997992899018434845178125210661315274893290935938653545119790400715073569929352120495671247562010190534410235183006991920213918159537766062440474615944894268447699422205161330556420768571068008563940769554020004308687933801147229247909008558844261501606482977689926093881960555540133849037568153591104836443479890052298450639727114052208747076540726656453020703915791653750578500498528371507374261245219012365961828871835201542618047020840392336994855755486040135220714553220746413671589744941205202171767777461861803797885408022333585454474449088853189615118382326128816020001306028479895491867627449631521369914403874836776833895101632594366938449253040155723140040746179877448571948097501179693676446992406613294934239479671212400452315873072698268394378432225940729471757798420740911281801415225786821212361435002509858134018640606070842115840247824055117898542920291977868328508843995436109733240710721695897201930731566444296717553721059108561699892242098853857385552330533984271955564486509610192313631097314578798785627842446631091976095412518215480277331400927535512620671861387343486361750985746530906012508141028417719734631144883191018221734090680478618615224958471542280136133712215396407272502567983789554249341623705855419629718291580567612556571350196628830618647831995131188126541587937636905688614402695144333521180993251624863425584607768085000614357906108798796935087104206831115795900800356632001835703167322720552507323921381919053293202301773163835782339632709178708191053448780200805078058827488945407342712132592972204090885672336566476393361251057938295991103941335343099025381586556444361504807702716550651824716635684151994389009243211451759886887913246049439974635424980817884126422135456616393617090211708657387145666153147758972958045917752808965439005034340786546657124335554730506251492532488663033632642030827906962016388095585963567944372963688205646805745267176041336399790226043554382453407128858492897908520918833257443775622210860878998926161615184836529246525119922601858680781827016718509574321276498753105570190834350329005697669702035702318133785670665273973197310234609884623367982451968601406992451856630535230524416559280595436704733084278813272490496119002968587087186227895842722248577278716838353768491263546203960943011424182179247518611980812433396939817966146625252096115391277812885905118610886193692604054712608178068450008208466294703753451570791397199832329769502192613600976344560901564072510165561250388131035464973654243611349138167217933457721556866130527604768528317362385006472968656053016420977010679925593444991545440545162767678471993649641334302439203546489395449524145618237127786366444228554445952984108383044010340889760533485968684688410583036129213006835816033282560916252425407718382768108037553715076598354267484297837700086270133819996015868335151540352738445545771896051720920169356069920825262049753795864555448419175352577297336969967225077644817121538017251395600667582086138227758348730413040070837301631529595027557568684659156899395038236737271380839418859589179885104471339346138180176582776169255425445766682556765155404834581133795582383531928935272436852623848141758778629411047337764949910821710476359985783031817735635832166998477854266070297566224936616549574915343512282040868345262635827935447325028473161707699989837957613270430087462372401983031889668692339483096581413814220586633119314465918637444909572189394630891480265546215709148830806079332589135565830813866728151749172141124797508726907087249051126156631809161020155609938957514679459780038706948187670413281152231398559729709820217035684290451713190146373326518735188969067908072515536178902970126210051406108559025148580103104948352956384169936113407965797291384310171588916828346781719294340593967250531490777640669846750560626096736063817857664876594684724279448122348237520755997381143415823178356078962936239699850744375313676300324614455083285034147533286727413071793683559681366557279441079098319383653653797697993503845722154508297495549303654910465213249577875842772294080405945426927781165225236843775804067869201723147325332640401058805793553027212711194950711866148645273849999101547866964259232709756266309067217139186181945756947725928244439915572147183233122389901522831904143615834231293108470811833441347950296618000019371488507406239458606161587922164236991736448163043148880608579131543437582297058878039813581480081599361940575412504462081438118788915520228235211166525371004072852969695182450647730029310939995429033112948496333488425936564933189534160760163627373194846868125947620728692081901793397766557809194372627233155418420313441300416500371905218907941514958811593145517329342152948428240028518406191815690206993611965307894393902477876108412537368569620495568791563415171109996452350190780421120710395540578280242426528761919984415303141221043274798552263683500297039780932482236577417803921584900260350875062987653177407942747993266417508369799395710321134758530202027295419025413142238670988762949827887755088640642584672572324730786413238676125744950928195496342035483218678610068594333990108480174632268742240995287804841885196370217852410867930193993468566640577455188248535194308163628414150662934091256867036300506316928589119196407312179254886748251169924990630854345590328880757752859092365079469489570449221853292286763173852730704327527069300686613189184925331953024754544475734728776901909292263208316349610460604360294697184591700312044384321976364632152019465359169997867016894647136695309037403654431257465043653625822043928045103285765586645733195069282550609913700125193680730462313021881433253569150178140530210265261088943720527533522637949577802550349997698447008237785998542791531718536271701270007688401122682734031632656189053919180094803763590248709104977610230391259368336045893204458645661820128714136489085770927212509797932972604559010421418379922942144059449433084781789763127961893953654354233310222394836776262052242865503641744111138572947243018227154197980253364435931103769618074756166899642979358789498505875020145709580834064066641014268352044952385506051688727463070550430442722047209512766249005630362971433677795232293995088276205989662091972170484903135930606091245705836919750316112649661400481912014591556936538612060233011589028297304226833560583042125015808100264725054126854632459529673313917703678067951345783145506554381641864654125361549175131431938823333301032189292224761264440579669370252491910738012576880253497383882410061592202068380930979939784737868861776876674686061868951469984964216514646132974073602105307202517477881504096104190033359498905304190080700411959585678773410836313821075572145512089336077106772360765856175973449467916315268368437249870652278805147817829525854663408665299201403459359922838811545059503009098658521934439938965787188412995160840634831193570342513540595222161041825819580007741403763137060106251884612941589742770572970304246762063169492071290528888246595688057802892863748752356279014392964940246492891569885887264815752180708261760207300728523802682397260828663503598539153306346286694562799448542464941085750427353648401225040683836924356455623259432036618837086162318875874749986495020466411605039822114551625846355724883595551248211433753497309913571473685042434261596536055947539869105078049563801292579924629590200980739366929502385430793211629707282158768891308282125420843291261799604970512288161757227020102926737530470823733709271312672469662757205149587291390833061021863334319633470146723700661142209990939240948316731108956884672772463947609001206385531056256682079049381532195297270309548560476683321141443089299202729942580619137532795647831704331912924927134628730523650504509742176350882877260201415755827018377432034555902319754719214635912977951442299312889830258155917897714867356090811087558440927999672218941009907735479851995139434933213624841595692365571955387542715461704369232867356834135891576188944588733842336326041216769198069771167408680356581540471487932713691735146904255657554485367613406424052838183938966139973145557501264735760537468824406560747147721979504904403849923312729892447891935886376076324746623069827537296239096784448281036606640791716104608722179030371377666133195411913185698898445835878054038773153786223444263399749692595541734473023183096937180782723871221480668885545980740979506087317769684177102943800099358601640027088666811056192536798600253340000622300314009718896005223685052956122207843768212797174958492389540875080649690958383850276190141955920488382021437350632468220545286268716414541470893485999557118891221237186322519587710281877065548831717633409140811291431736517746189773412976723123521005846301351315713162437139205804293738397748171914945053913232754803902039334592187105344115723559208181313854790626352833765322139278404964936062781896786140111589525986305104461719397029122140992363318865167949523285073430104827049745740408882855800683473378807146967106628077689213444127353867496141660856925770490598175166913181349063309251139313547092736973629815364138977254864214600450649650721208498206251521279819960902457847836970220603632151750257724232109905065126991135615726368576855780766752745522712420221913958005213643987667616021587027666758164371461240793763402490471184524256222575374014556193669862239178799267628466639573198778321504773394788270820852569198854090507224585286953561113106224232013298570900977292332559098585661948759580331974523407293316305514979600972450399643380540473309433001513440305271628846725240870818614128234152593833052773770874471056633772270309502796462178762168031552209566680018412586409146357616813589639338732657972226685662592330749161565168391182068015579308438300373829626085908986967238760906473653776855926552792909635293270020310879848671118150373722667916616047772488062261896179846825184458655454857110951345039565751703472654676463187683114456600571816179176093030766768203416431211256932012453037700615806999354596231383036839529576746650261044571100602701922740388334617847388644810613574447130025357751585669010969878098513577023901901187783596589882835911573481471776370275927847676248109567967805099358361433703269372846429516138902494270331492422629156879422713544522124758202394425518259972984860077626372764946571194217951412498271155293112048468622173098482746694175458789603806218121378746906258271753404388625761178142160866961702866689164102894297687873479180916966721188812762273934796085434865980927240259821233671184398828045051929791903080910566383367146992384813589630407356840074289648619982364653838934486270918447473244710875115628682981501422782027182491574692552874684809379486025832319565186561069789450759746018249834919956017701487832688064204384804997961787529278997521834213633994603908301706561219465525281545099996303448370096953874628818088858397360285780969622387906672189527703922843140117779450831941317517640056092730962733227923616525442436553679685743566230555817225158304327132516361375625764358293101751958764951055401066593942614261012623506392708245456168386724514729341045179006739940042385168102728330302703579124697276411436171221654468606741658087866891200918199147978689382799291415117657083779222675853398545800644037412754697081344122486529977081246303227270804621789371817351940493801915023634714251278776236974784354674784618709535901102567458842398477102992464005188262806486801283741028103108107987367426363351447871705797990390554511123172223526255760496146864970394153598211374265304881213077047792909948075100183487219916294865079951436407623828790177650107238855447593167199027065887884813837402148260548455596676467505815827848073966356989599822270915238046315874717268184981598467806227462775863036766946534510599140341148277386131191315416614141027975700928762001758013434584178451988958924682064670798319605931631439569049083208554712079492937066822462318251979401866903529986001679399064584264165154763648074646565403873239564146887350466893887728132753647514816011482698716874910193674642158655545647772659458374070451074579152296781113319616069432471086495182524265898878942169021493649555116336741348479171987747300128629742420563366869006672935231913431550914560643056193867027923409837222961049774451364025138023257338669976432538369168073872302301409937915883547576594710125677839250811806231224975117146342653078761379967171609087455972668967003068947186937745820850359821236824337457924738105654680371261207966169332378106988166864571614474895496479105255192190527985133247454642815359329802034172392539819504166937542042301826322417440111182405725283424068797744216180339164669013951075074026919299745222183251084154323478104043703236012947094454532263442770104173259650136745149017150954546540679204354521907097030428811215038537935017899514006407386121248139250507613708803241893076858691473496944694086071800457374191174278525039165310697275950456773951162541867275008136528287740060217419241899572207104739003927998858010716634569567610804133671788827760201454465422722076095499825462490722229679797833334441488473223050504841437021617862696756518248689975511413456493462635820297681466639950834720067317052370771759851445526448810036415380605383117335742498740129207983694833537767059311289918172112841341905454109502751223080284032106922207803669419107466192374554542301364383217409708205664818450913082703357436634497430688959641317961401814148749630058060376077262030843537437118837166042512145321475626729402673021227243962891576277421826198022596919805846082735585992742213986791584066025303950350287631183270164669025427451194551420220777507804016399450461652409502200398327070327797940775992134877705735808525684753141280746990515015515129861189317127193922012650315281309611036186619555397977617598947948665379604708355378030143773206581177206933314618058082181810249177612426721441896869528138628958347234196539887324456543307491021476021373394058120627031960780901789703585867502026206217594304347158467544252368256331347271322870978007531271881094750099125920263280692772557653331747817695836557018361023656880142309815054034324018229276047509856713152550763570167790801010664759420886990089473381083249528414277451529245985491654360524640290850301690970774684723455948576599052596195783690200321392069183137785617311098939127614701697291516858323572726130491040391118877008950421673618298150042333637938344038978808542001269049315592779463087166832684041835746761981598986603952304317997640678319706482333003197263947619273666037240479056113235898384635878931731536053049786169242622861054816730075725224218795292952845046969596855005053309621703089374446777005175296259559941094375123772448717161097474682978560562015033270600948140762024526483041522050992404758146648572281013661230877210545375857288612343464575080490249746668183008696286946701221559883560533692614753335729428247314682953574391193665436188112754031700192715541678139156799017003368427304353810288553973308080654331556734730348524105526180519057344657293172756355181474793381913501417219304768664461277659834031310876720438599016949990625286450450165698297557374748460703552147459835046594995558803292019344856509435993036871843676931416612828520438084321404828791376454338891476035984055795900619953458181051812343424935243844795860380428498820958852842129656545250701230989590036812662720808655953647473504120657177414391555565379866052562087489212564060916901464590524485345784781742906608203866907022157429576684833646105913083677469771153206299100544901129961253940979923025909595197652276891889669593824465450093038730861262065826750995366211455284204652214357641942891239581584696415211286759217966161517315892245820742305623369873509873518948074113304045805754934289957205678997853639983345338046294783153829443815791880153221204368528332971330344386777074500093968317962459955186911379652668573313777000171812748880539762263830903231156258456662580414048255348946703580330598680957459474725739130795187073712483858934179202526376557597112211476238755143148885202398594583423371708699299273490558776353576504809206744034580574526355646974616590146930896970422023025331420334353235914784109392822451176308491852005415519192891258697179048989239984027084753599804979525111088159616235513045658781714950350392565248484131844640199854717076402745562974379188946571361394974339259461775239912653333460232757540550684168663695714725933314205236065602194340477409938019895548751863586279279040825283165771146721364755465758142543014144057395373724219730168776780212349519484889106261676232999760640334111409896899511740814970531232019641448666310577811644814969223541408711469908151301212752662506971428027590651465809310750362009061403434682994554052412119480327460525846449747396878936039956794557505109236602992480082617813647595199332564297761369317127517907499070805554814129372005646728177409490952606191617383267969710694011270594262864974392233944605457129416572394273726099288768913483763178169373446515178953183723192749362428374535564703799927865412938888997185687920039040273450940116252150974336372794809268641321351413129232666920747379116655067876575459220206673394171581171569430508733968291230460876001514255211953671969707966781106675840962154888927028998613281852955985007994976733508527001270776182661661766908338372317439248063862610895861473392361716363233919528666424674237498901556401725551166908740171573100360982747559211211253787996652761301393762588382766821377523154064213852171091722960425175797779495120383585753456614132257676709035137248443762227237745560434296532652359718084815620606694255100652214151806089505324689101397763799506046630859336625585353309096938655655982471901536726035256816454712787046908430060808002213728178470945426252076726399343420166933433159551830386303556699301499729359811073458204982875779307490451794105268988734308251961151747968977685291138845938040818569501242240697980075771594840301859775657836933883363128188507346923539850998123011082832695122468422485345302750736570855472926765581720626839102073354222851615147178391180249928927900515519532071799512963115580866839889826578565435278355557619904943538611022625136095807371510058610863859384750629497512453215471027435177221299427934834547305795993398782359471886672248752619273346768542660247087365072388240616780574606767441435867478638265134319839837204061056356223094086788381139620490427022589099080509869020779257690936420133675870737011390514321174146181159977310194600687381921327120409390109625506137227880433079970315155125572276144115969658719888305972515315419273860839400643318483928750244840074929523182553501079586985336278679379014561120047342860628931345644040912373353492471133665899427600848389894046012059392882749006908413331332433670991224666004188380611007447766165854422007410761421144085729284679142841468633703855890040789931135320103478677712155566219987368454444430288996353977216353850909499684340780187008102165685337400900202687590086354673766926647085364160255661945744374002188828975443769418491009757481633272844536020417368882460401499241124884651111314317035717218256810453438619201009551861853392063444015582372453899563182504584736386226814825957917755455398805693774058023433530371064260391441755655334117477603829767329076368116917217892608229523926884138380877485701386455458201431748714530710577666661362410359751911910173264860884564039083902565917446598374775265094051076145162787858044783855751118296246428827161023945352567039240799792714705579937081105557839701285974695653318812344841333113345913918675969723228349431110559324551768347073192934380441797817917829778269788616362768382553046259587875510378445840038424063238357131307646735006319675542806651679478683393062106113282800759034706158247975878187176179189645700078801583082614713272418528560412585429051863269893296419693481194030662568145333208592100809949568656192861463900609252085607522508765248655084384996618760484978276024355164245603838726539128275301793004308124396721193855081765277365996552144671912169579875041515170684755750809909849423491675102696962088292526181562159234925148513729894132656696620790386889921065555191663111434626917489761177875548547782375477114467721014388093109858863599845074050186160788516218793794950738889045949421618525701481895812958759889906811633353554892817730689693052532503103374010898404326588279131928712719993312363850495484505114395921336490895130364965251504044065870813894291218621720000996066558438046028995293672012124625828355643885280896189028896658943142004488416094848320315420214017248579058150981601166488005736198002146059884059331305557522322657876297161050522074614125260382126128708056824412264674766779636525365953710011896854586567620597553955735119886097532101622968560716395615300182827065227088223164009489988286669408198613003291542353548276673139833934819000482049534323396170023451704946278806339476912705195554534764735191702955418889969259163365718774567768039063301056609725741283725157577794928973422042628740938146604592605551507502574864111461249665076531035679364455121677960003115763037060974126343325573593911427472963291631277077062162566680790554166626099086896765722296326177761376410571353430897264340138909111734354206938288653182727468358323555106333396579170598151983793049435797739947505509490540000886226346940394518799591404580095032962411983376747194012577795127947137682647079527537418035802063602494956443938895114497449086244980862815746229053748796920851994580865974149608857253292679999028762717247335241197660735576979165659528160376399012713973905170778066562468459600546756950651970981916723543910131521916813366873156153913378576178095301312480616735741384861851746880380840317800226098753728873568265318550809487528715106050221045539967964133306218269865587679014714412797507851424525339946897787955830122036204159260895619527554219342663176733504483945399771714431241054045333673790540635302196215777911574241040853611964920648993367185908319209822692012999513958849067555570164132221363839819298207516062538431847111958373886647812331027173787857186313755990149635923987550587892476441868033493180530989395191180090617948803282778682298278197305914961116917499973863215677526385438232314005355321681786012209341908702292465648814940015283296330705393893246601762123961250444056296865086876522824977941548501107627843303974894150097591109827781224203393664992792780163321977341471938651890929177594758628537968269447580677969634937890992860185996868972908635327216574550792638647947137829214041751021910898808331613623296376149064456891685543102389759999925215471773813553783562058536800487928068104667230990623512922800586739627086580939744748533926277588146773494748289848072581621387194999183026257179040445505608650200048093771524142676229073809910613351569514096329528197453880128444473893260351668256363983234733331747885230071413830574309347348499748122332449285417541738762390268199666618452255424153077708181155345500588209748345253228409273517593933241516948873524372909294137685130613322628432351790452920376026779135055400766975714823016350941759140128877326101643849407703519661963114626902486113784890414990967687313269038624885171020022921797658647195746606113879829800871911359120584655076455532576548980825556413658189293906886247270146091586846186636493329904198203040527960243570257827985083017083927067594079082056994208043342955796314205983777465049457402769003614502550142070732752106212943763031026798124507543644636969789543101548135577060511542930188438645604652609669237337335503908137125183202320583014052505911372674119519810231253122100578963156636604389876113204002322570659320018079699132658953774391371644802622574025372755884459585905481249808076238044796227047756568322775067287041623280864096312094919633481001718311082885204131242649763376934765259965517668935594416260523609605194916624109322459284831318830936400624209346512253542053898568069569036168064116790790485782789936940297360047864589087175802469609679929114346989094592928550495861887137766345051907629677109392218458563351984747632557139954535483442322838962608912031704914425339178821157954691909366122412529343610387613204890848305647028995879183994686707483407378087706640155509603752155757363074466146918597607399892813073084951583721469634531922938883756553596483522123640719959419636169395292342709053348139868492058582621399702828853382576975019804612737298673350925717125726567149497965299027471320964169255538870461742162437189181315255125017632220424139683162046247102438298820606503911207204087448959642256571380274622948899123017925578274043517547816419528895785451824207596074491790333587832215787922137115656267779083088344452197778225444431234127269870303333051869158539444725198555949164022427770554392923794466122431708975120099640813390627856739155429631048286463728208610251257315587102919961985545607231676592569763938443185315531708733690387129030802672851368736593835854158789642593333900510019154643048714185164193186683936297775690433887640725227575091336878554100568226712943856883568748053257151872335793516414012628757635664453287713185689747902040966733840382770350406574631796545586137880222075639449083942662839436776144074977126265041334220082755018528809855278289311241385437694512962132705818674421472700432361198289744881648490490553916220645978873770888259779347589177930011472582928165714728783542846691717612966769190766754471555888644757795599095088796113402049706785630206319892664273506598869964709411713861535053527958480435327932679364054796396185593552436342460796454446864988068626642494666788997333688256351408637533056342380446538837774081443971312327173531451729399844215466953154033360816379273250837266065848512802203524892488035454401396985174802571993527501236840101584202559242695164429908644151681238686642680995640846964624271671488049946702223029332874294862502766492041055751050789388326538207798220772130512807353940597045742187676323786831289549097242056798325691040776756197844066796078496162059729582164516764765074311998088324120842561049986365046567695628945961505580625186385362857633537336393580723520070417152863072848316369374902045065566273475867637400472500609724288790416341194758043398674791722445341891715850049315232280172022115770212837003502499924834422117292693934715703797670192805473325073931929952607512499302622792302711329578873113086625049343223287030973980347851312052492488414482861961156165614488386981772553456284360359088784293658002113687291839481381514395710643422272011706129640426906491149692157820741017065250726885738388807673461611292298147920927296987013497859206230512955052008609831999765124971507895070138775955460446367508105059959724739713688341707034132278034333914224220152033737472317400146893548200974130602692714576419168473015144381492760597377325176708931618387714121571938839372582424137952577868887323596172800974434531035569802177312201356125026650978429391621445269941077071601499917491495758918976675637925144005960866377825830936267396428711669720074489940936569076718711197607230712962470351659645851581466174355912599128205694228977157679067498412585964407581758108733332191822851626616707616956207763163012889869574590184955269186800031702934728726329251011304172492208236616415622994894927537337583482459963184668255859059643369022784135887755382695870456805129383672449932333130966720865528693662662674528112688566256744626768172847512856177596053989383801100167317887059202885847496961793996862624775374165514078398970273941555989383114601860597069642012019807842364997007407887232666572102984988402906438322776485181389659346535989420598894304824394090921735262131323396095617610663258001639675898130325995617737801306972176963166695859578196885157059134448035302796738305772832485654513409244698191762684543814629820319819968502974941475197680901332849267215683488468900172738631938142005822879790276886410928582569842318651259652906393267532954518641689091978322096828297193927815946038520065568035386741230355470853878965306906806415389328451316317868509244200111212264002971747555036122914037592594067975851665609764271023289723075643119786005631291107119627769368964442483143897527110561070411222063685425803936175814358930165967257050457647267917811606618943960716352354349889398380975027143198968568210376798033807209682500173843808140529396791592539164559671392086501115582486147804571587872339117354269487231637017914433598543747749640713918142171811532807710860083698655816021400124557978001422745135161422691260871913318906079509393682288714920319114637569985426880971771708240571497383957325634948961188082511037586334150531753489623912742174878214243901038646061606506193459275995063775624926581303658451148120137538827019198132448507707038297802346878508944052247623665614090225527056827933505582063024670920428465276039674988630021550195585510440288679642425615686619128598121358217026874979822517360877040220810260625800245017531798956777149568675819058513003241460311428922566179680481323176666675240366838216793732055702202719805994705538488311365117871580902671898663600439716377556981980938674339280978356707643648012556966557114795792651291633865403987350395878387301439820441146579057380901103524406954142065305496946172818566081927157601562332327258672906422068940856768376878909718162384004669654277420003687505253262496228506300438925753324703723038136400751133777389950116040718621469630323798672580412943403548777666307449827304929378047714852693642262365353274245326838470610523449724509464406977255548200827309902533311748791575208871056110059402243267785493597557760951121497881999396272508179471747691475792486566670635394980156766968173407890426742406352104365836747006051768772201094488535958764522175882017722158083621328976825395650372159475563378387078160231795193436700721695821459521037876966007525081367829412299977787218846524873113372081258786921022982890254372209085977877556687248916726820697118355387363541903102215689815143974850328630008319951176148831762499334771814532142264435379265487142741694658053816003045134682711967659793294400011631262983210524144140326718630785723368952072567254833866460468918973422058743274073868924627284289312855769580326024977245196150400436726351929778123533670562293165372052228850530659955387315072439637315785196410535230071382024387316659466479793134368506075081855936039795220548958031202061110436917653867379403362159283749806270996733997848565167096000499885245568547679596613083163091265751276450685262529511192898913492103639575983112702385820225619851308557404378091345155596680487908046409951939479439250804098032809669701450502781122928337770901657150386814305522854763952099806270600854873992625415475181520466022377400863476695513937871593419055389096613871447977471959983594374598899772660727819596665173048763169803362831652110362571543936683803876058266338972923231982432882578729781190588142441063340686316079186690527706260625685787936702726268792355755039192599212811202077281075995648556364511871686891226949525963259264380167248900396806068600780074837573083923327093806036857398890387587974898058954833185092449356303083183885346873864138411080136127004045645867266404716051161382531555895661497147798575869245951890966207910866135104325226874965943123710499619814153600687471829128601956097116637548408556451049651016180041179002026238617284963798696225810134468743778528100157161684083948407458135519996370732054337565591431876821292425363052040996257123970857460284371979713134260795722645627304054710428689541605479734866938764390038184588203727644158910273767662024849512015732891393842305549633847254875836916899618506992317617346494839816745403966054821154996192510604311778587200645758033599657228033314993377405445883623921977334298933747403121869982789634178958664914243068490944993223719009187444575637084724887010996525498627586128547220208501735684017663322818604627586025693298571794451387723707589310908463100568234581339897676140160735693055920625260648590208540538985016126752536672105104371518700329740182947264566436434145265854389559058618842574256818678730200886014276646171113867018269786022035750054731212222057784857464914407725323912131448240985249072196113048778992634807379402652266740308114126532984340489070725761665301921729162583196153793964875574457777753312079816438672576090806067260058753069065994267137380184374846544936985776863547485803963595482392790932412327533505430336249735687830012424365432810767061385578615517771632380771757098983967125320758476485616931547932674268169956011181029360876403855810764253286776624367327211826949981098726598972565262881970513990797727510489896370281800052975368143683827205382590117375013195981723214658880189447244828160169032020099579023736292884002378848057049258182479648777543224027310643261901722635846278807819120146507486940855787077090869016867616665181462133838858838774045112811489982358621934278654459506601802388764945975704295820809141500759918179134741814686386443782835114450714859356350540170664825530128687943657164829392270847116643318377571723566783521429433967198001425363984199812093683073076437662801972706994716871563524638068596481315036281679132120624538014931184407840458360124999363821037289848697558450136455262380514401369027999508283862010200492046040801361554681284482901249378171537675965399100514444164071254749079414674096722454775785062616156710062865258102652834963167393322724642828251503254880671911643124869096890946706985600870897661233907202408498980001271923853887538765914967140506645725184855872428124139705022726557834901964531945840334065776388719637845048093793022498749756931001043888391610068259574020371799697834629190629281182303113076880291595300951981186392667009678743944273851275288203334784141813484516279090044250351378264700858948545629927476394703408503013435647617286599561540221501823962381755574190448828978849513203798940974790656956431309267846113968538714575359678238126011564166502624139675330725567971556769051649664594337078579848095041612297382466057365213985859653479577095656335016179987595745013262570927042563741826562843769875975533113212417303884388037486900871259659270525100513895443644249526093630447354461171183066020582126244713447934953040971034614052940924402002062412615700286495541693331741829514167330361214874200009849479812584561685416802170971776813714674982015435616175015468739965994044056188513776912334255450180907748550844516389455161973227466324994539175200500181559435695193140413614147047855903305781219703796815564259670397336927388074692361431720800309191326416020614909561981691210139087913295981156518827619037292971318062504666227468922662489362872398236260147806105798701881489359678199250726953180557693293584313683791550148889104726710444327698478221202860989221817470947166476594262999998679059780748185016398697711496445405683555220110499401588172098930991755565466939557356645275228311579004327808392580708182170730195914117351016307406678713157551273357968242025382623965068736365530084576214174089911209291071603736922840231499567258681675203171184208236131398228496233746804412709993934579742646854962124013179064027348567779834193586779484357218894493514658790929145736744478382656221314593517819102746280828013702786336416364306679984152838542813329197292044552978548432597261870797646463798264046465357549247298114966746772916030455798344629643553809573872315194333372170761301863081173755911877302551615853929910814150122422349735564527990777552630669365774101178610145793488526931514739212651458944329281419390259383233585919751013519010232368587206011775979542634554720879111636570262226521712227189627860831801744223081358326372071962477536854943791603220135356437461039067252717982308220174973026744852779036362083444380408215073630735382920062139614599530894444755917948011110331002537842192961505385953331822376625539829494642160187053546504469195877314805759369666289030592386632035787193507555791734874702181085307960499226413460294516466259539179615289560023425141234205272101239229085919635940671644085160970839839545262887929936004947785291866551833571842039263256669003074477966421391830081359685231332280640189722562609209300827327912685704967327998027621152964470167627668007252635591326288572669275709822317827733809975082871346601482205858160607353846558908461343601950931621751669566088296399557461626735746169508020681829251723979552044418144759045058619248383447406301618213249434417240620504638076613631072406632444189780912912815358199583525825649330569607612844500916189904725821011379105478618998782898474420096875200764298770670477434945986142234559541283149889356820920619547988444349620109522700897659950504383710122608798212421447652505671905864974253234389203904536327252286678179269544030668796561557110355454479748026295254158264235027044765124801962461374592598513897948962056613501057272928469811847189883990578336253628742568227792572622065608832398616473734232933247542719272878607976449885877534562891650821139704648554956183809865972992364139045418667035759927128750207505753229361527058238376315541011385657183208182859236347387476675774523223657188445433410813449575531678931827841140031763377631307017180694490709639072405999077407475060266716605628877305981348991439138754501998751487573257658949794118296857922848552004354397459357385398610106028951180056733568027947769029699581168889691329422490190642773551430659726709419790383258281271410176151283740003598688178714215244406859557091654993881619755182288806351466762569276966885114241129144674952273067076545439789389955489117752320186432739855177474834863610411602332094871730056011224704255315331954832267088955792395273444566215176148331927173448167072729785985174732751043288987458422184062962716028976824136523336415099060982497497371442508520439366626710448221585541559131148429272063143276843680142557055146341036066558738072909023203104417767258631121384956431972808149806826033951912971843053502121858039252938075563925054715906475408463570413615907131424594071062422249134138969470314607332852269093739340751106220952569162890903228154620579223490163838884660764705479889423746247109356149882252216215381282043885916938565088682704011090788066912204582675989922459389394075720677558823079557669046007433482486385716833811766874784385255536118612581451208275703228761000254130963208828730142795672647639486247885199077831960990959279681467267936749288128940523179256973143506908401406323580822619314634664363364476327049911232463384502552819974939794490541374927393071985987387363644649944584368484503303823144007898208556958371128434316730661337691542371036287804027032944122894028522886216805649227031242522189062332008894899730510283248857588860445624336202348814360323935077420860476243381758441055383197320304846987515054967597318584260109237038494013616904050886736868313697871932546190593760360435100890306640086768720276952504220857691911265500962191868822366870653831442794768799902515952901128322865934742350158728050031204316203445840229844602033915913196049257386685478950005622359551642689156564391170640048399486593627838750956956037664891236262518775195352133880833816308161437796125531750290684762152100612135086133273047534221997530101472888742965428479256261294895423431153410754270528087402701183670503184841969725900653044837292665461507862329001671536122278944709189381940948433387811001843246019273362374007161644924155272827130510070922340931631926780601110967973516455303500385349641387316486754092103583204755517585080816510545106493513814281419200953589842957243029334863578494880377349015833843954624018553795439771576417493583675565058229372153731218647987741533189042106125462046963306463204770616090247369278889431237143425833367365918054268492848880384636215639842558938466232871827884323669046416550408718212952055689010170987762122250855195410426573997058337627533574799883741822674964317193229718806061195213134279184849530044469551368970942665070182320164517556230696844106422881278306125614044897364476623638777966748873940118008618253211231727046210684667798195142638717750374402379549114930012579986156638241838131130125789732984100804483466590595833164086017225101562768148486821298956362163199188034760696437290819458971270949821741808182137234554048265628292117330677512859877321041300167634545757558952447028113382102350396151271297166750516772253439263215006876787430101646343293110986782295753891497400178769870314126116335988902430232972831206402580163283796722768738943673115245366853763982206144093039974063960778504466661410314881694732962392621556799815937468418461266018848514543012472225797734504260339583626665226436007998986190314537513852350563476144261859631176259508133128792633036793475932784344177897156174131085386853780857400716220253630735577440951969969381195147765449009848405586402323214439352959485749089081359965985821137683827853033407991161915215847728630255595094902834079764745849574130552402831367763195902732681415304327676058828829350784935226359595914383556955127329482288137368156991955064108186397023269783431165942782781196451349702786863645745173728474507277371233709741083312254914123623984344771277853054244674467549571464853897145592919992767589539096022696883699316598328830526984582001688277953988672951659074497778916815313775533721513713465309132481277788072920421635435309604163249437163356057966574346466602480997437754026419570442733849621719502647726365621666927073252398846665703755275493900901521656036742763247984734079974818634024023143553861401951820434469819868644389631354890685096379503563750905172453924922860098050459155551411263444498816276168548928148384749521175116247066560689264389517974302364353813927929660502683941410490664229725573746572653802990244437883210005256150342335493703809817884444827331575824819925577302487752122532547724314614237317543189278982191097516721845205202607747546944856386754936666096740528910668586432068240159599291122255316701544676836448024620442734538292392110067046732570979217677114714611635100040636953648903496919247104830571333147939962335605742030652359912515985843503394415739420325228927054507496952642065841205117360896902967310340401645215098903526443830076821963703812731764091730928801695502931088247660719312677197442472319301682068669125831511400165351687764768992723590533826886322377027962400024296222122279216246049523164117189808315598425981346817643454063040783985239577047746449579741223492588319801894838922152059079873666502759269150131485054377070707930369503750155619477142977918814964239214543472731426818078441985213737701419972199464776668274479102461261224252382671326189585345838229189571125770778974581741498305249696576977544513135828780035763715324846799318369468383642913626348536232807427489498686874871023184699246326907925795077674703975468701119108695629829349444827708208313849851815069742652241460112295250738763836735592308136688105869592047402165474179157245063633457294565276559328681969998184408551874460377268484600622881294464860724996175171994313968399258968174577687350426080869664116348952690888432195215860820471082661406844621014081810675584733163452780850641956886767552150321837403827861652361015441579675161041506539747970583761925208448209007301682654018997882432752449567355737391199592745599872294601002987400816638827729489395859198640323474104168836814725499219621058745650613207206586586233940939108369081532376521695003712722891658796573049532458619760961633265783051326405736895974214603146164233080226829615907722885238284689332828800173941131118440940386957444325446977341650162804996126681915622920318499869860333158738804954628803172249128103870566459136399737770859623439048486149317435888031198244627747442048804338279562849069232413845156974034759008552135514481986213357214568556914786474958238051979631936929141136889374080130278685157825947484845708383881537231917005417352596927824900555088864756675902761252173412375893986877383879103098559558804072282618417944022179285570899260652159818247458998256396327852786498893183610277754453696107943683076391812980646679092314639440745647541051872477782689132950661220223812067844129608885673029191785752176574936626799538560725128119214336071272122935717853158151644085137392120027549401248526145792097763365521880774958009722909601306371631511222043195045738710091945328057557182750066921328392455574487950424135840801794363379692400732933150580792741277125624402611977912669730810866775138672678213420631624715703209877242565519524750275926957957529126494887912662561247019694908657368908479578743056741795901751202299401723725257914447807999258520861136550009633005587334421349750130317131168187086492317770176789640639528668252640778605115692406566820543738227332095116965575119248594854232363491811945753915998512143370402885262785542299686302278655710408794619433761172401233665712121228222385200227981153197706697025629270975180262462019127911999395865640503950644385981037508917026654267203552139655940503900186488706366576659581019407681526607574068862910489030785629532854517229336818191463412946268452242991767914319470184528839669160054907457445939281425160997530321941968495926480120222534271953706461957360251663531766495797469142492049674224630108871047826546136607974483572880198556718242121747801027698073639354285341489999920684529977845859602011117433447869256256122576594596289793591572949421428512798781563971575935749695427026069550355988009056014782332905422619295476055738749237614446008753120297308733883117599368461500757565947809512907172784681200186069905598337419457670618082074354407527903987945041482893124288557884105575019789270435795158537387624844551597836342212859710115510801078533821613203477850934589832901222870772330040017644282167816410752753366135974069249124262331370553598923697449478528842566777252489073993511757846941517975307880529632406765047483298196480547252245177874560216100233876557059781500549158184622461640286760020276941360750475624577047851938768265226326696689114329739976664316685123529340020810136957200417869610113660435762796431111312428552498470102392097279507069335525702049669519779736612983624214850334393754024451873437642053672953922548787687698507081169904679757557427870811866426966742795864658140606236898411635563860413184792650816589978096763951171276152800408156726775411551470921645992105475806494086379656885007511883694604688194498872250077533614393234543191533189936686923222144522607510287417503918809891571338374612963324968494039169312951581183686144997631731736311310509720285180021731587417667171258466330433477074032436739486319076635516657129151618097236294790706572061316261284089189256126824003282408421696344929237502512595203091318874062265865946753225217932841031012757780945196704451618411855549083316532657850267342973917444304311206932992325477462967675542591871668389215152981901403402035620623729551906670309824768041031800892116535961302819609727565859379704141966679691493465280187412468811106303483897201369254774606605020651524033846889322873491255591428726683757639740527307006566459433004768914029124630189063530524020221803924137967367324711393134558232669329621317398804025645410239215454585062977502208511315211802366933640445179405502645624836880137519398363246010552354762868026482258843191141429329133249408527976405738694660774126017506956028375611529970585816482779109209859907321783386140580212566003880038388538461258009669808415035304518797997223844545492969526391434205507664818514432952560433465933925639525077836241305308618693466285346684159687419311754619590322067669690654494369954720795951154139782662471925515951472483315668181349827887398513377425047236943032229964006805910014744476212172554606465067353922217185226708092842465385325930148760859251221290491759459968915622841497281103696531617654872729611198722320472792652918411728261003960392895811420735819979885328884381767864476855370263823224359375320946301512947454307250144959987490826360303679063311325017414556515370175506717729194037128771673739533131305878615592403723794276939283835033214516535169564791395541906709093071876650925281610533153015612795407571029213479961764848169059016313248198703420628524552685192550518785556717341236238057695136478377867476656637375108130788119969052959150527842471040592951369860160202914101060431036708539121011291776025506466783635531626773950339251204361933607588949743833917860353664644535109953086834967357210764140895967878697370343422594249260138380494141628208442333560801468825463738839521473660145375682645154784897925445235039320719322761867774161119428455958458050787136777848685061297780564351860000157519032368892023272137329204341097431970034864118144482583044183211119853743756253401061777057138709311358405911911901752268355258550823583349431642776013205168152036970456917056849332431496446566938610121548519575496324097147722518450582742713677489205487689177429832573732813170589362527848398761450013307858625937742039203160977189853642354817458981802774895695669508474718405735582374513285978987128876894095782791534363757173719126122684268915882698625340713654854245510481170592595859376838528891492016864765656293164332274801385361315858883792556347085012968564879831187894654222738691023369692552738111487303250420203541901682451480824308339430720419758407932657373625718999305281286180876397491044015058770615689581775210400126562241275881861428912372216432058894080763657784524431537052221687205308350465483871260517580159705869727874148160123775239444698451538358932068059254492087890548561888005513207929925032354414093428767416969131356850653756323160575799918089802392191875269379776808627449398972120442068657048744426282514339695524734695797574459760060890868668690098604394350661168986241412479150061238798979827018828202549465913441510666230040936354299445489526704358349100696222506170233772622738231826643485856564659385735022686704111352793163762110248429464587775614582006781237928527786588666632057906374192097405881756225342238543339966742073206658194194126662205782847515122781662839785437842042940468913899700359638688685418302862881261118687121317440620573535759031916445514101933683523095202454148839039112612130274674244347984914806124508722228787785425470170703098892456799416611723467445086187552194531250064531742086985445732993479363754214333705893808963670567118869499119665229408671099534176880016366273255133087259613568965720092645254085847005988958109599340526515564626163827735501292710961867646286114989774433529574524621855013027911290940339437229714562032923244385791605207355595387506201109512863541332193958025578036469228568543539423705598671708363658748841515785845609650218051457996900473600146125045601073290220550424273439266509753970918472179027070447932521425639838263580417019467071330829672524960673851116928056808170486636779083277452238693106708428728262120163439261586374859954127826629796316384748439735454895737184769387866315533798898701496145296622891925692539105843355983546768794667032682833355979569195498190054726333271319335265740317598355792972327403656937719011331188577813513765681992229478819921111047458572961100396920357574078564932037731105934746942832811703946441767757355376616493546618251170659509929514297260082147424607894298153072406170246857630877953520631563373453095450062569058482306097468483370082574609361691669038365690492796328772002728159448960787141992943245775286616310093001102883398321535565893880632852728408511044645231696469666905849867067632804396944567160106401658498709962324930686439928828404139096719510047384466882726961264708417268465910928075406157936982955622036458876417697905449511467078357911140761449538331485226518003393188448617200282362159740345110702560083424632817319891310153357948767382004676269420404434054558502795686094373664766072323064065543499377098328024247298397398127694672619360811030294615325542514604538619615432448762871201124688153835228372073215372449612257732938792020951792526939289780389182576357830068973653082060591568696641077224269386118280701833029630646097675569232579481771655464294645588167266861860029704854852956109556704508609875854030744968728718788686179643998124279547236693599299398055331726740800167949928220826323089158426635776156050220541541920931814331750403304594576273258322747277768193834228632741997025362170454141013444813091171147595117335419516535067448029483566004131769478747324792539835992966710512880350751204329083542220585542821481422838591084052718187338708264694619685655170008143746613966173373535685876319204642731253709567243435776581746972136390394523916663848404601251576376742699905112004211635503204842106496501512901248300841143742581213936638985439456365300316714893224885101873549368376856194375874902751370639102964566387341703584462661646162857797507258423669267606156709569638241639466977800081021282034503537934357349583467326497162060730750172400458594886145242450891484100579416058640569849673057615897293630918766508196030258577545333428935733752184504703233788595005885280643849532857280406475503286928094056316719216271647466568175076289514444343156148616514693771103669241625012092869024263401121953125044219106695450201541641788427546336580507390230628938902198399784695208398893492441732426236278671674064660168054153532488921922125947524356933699637661707965755033158254733058671906133571349418633103483237416164779842304475119196019668774735057140094054567499702524729786983096231919296558720928231040882588682738009892419460240904137950104886127940844378975561417393495745686756834074538736221212413031130533515110442908790170358959800983015084064989844541778520905428254242979840775468943743489243232549141775464962766806599088749203227631886440177687352889221778767779581577651474973633036311250802036222358617042490701932365762302567577446841643829009268080020561692040928860888191701743942902852193777937850388865703359428091777747094429365379647628809934214078348046119786489286247655562248802011990370677069313578080548801521311957649147015836055106121183649205689615556332755293972078739903074553212185431306578658677899938431973869588798112541146936439694600922489531646373933530419926260013162228366823708908214514196336277240771362081914649218771341668851365093765379994227045791889148466621098099133566958657432824085310659862974822082304874381293917523712008091394602254458920319764063557589435934089132672646640660390941573422554264343753965496848661768007860865627228366286968426841564020596014369649643267302908765535859022910785524353640995941494439638704348263405721893085020453061342142077200303149431619154050027401411868538195433367467103325780412951909014049744161623087866441294518962129504312101264678035599990817441716962228058606699083259575670533635125387493728072823548593272587327890191731024728662590483458070308809183742290939523681547463937572041301387749603208826210089229101265950285168233226685795794901269897343250056591350657547018587837287308070968026197988569821480587338921140622914476977248080117792867802715957804983851385043245940138923037663458750483693903697762977128734044462679675717634020825806378661689987338542461517970802764477761097432485167989825930190260619613120160742516370075990670993202945771597908863578082755050255757284632128204359670726478000484182849819646560411930204237959250000132586529558969082252104203709729283379158308833159085163795299071670084746029785775964869643273999064078124527929544670175582153437129706709361729153683430895019873631095333198100001456453679623744779258526534039655764068426618810659526654796961236204548577391588371524002293114950733575079362339525956227863190370180105966720950995880164168266242742120249506671080541591116535551344879969025867450049063063850184469164915834966025905847338712593257536829370107115882133280122555570351852112891897542776435441360540318900459124766247376491194617605495560930391502026539139246343133123309583859350185209879466912105006405028745321312655332293752719411325802509155568832201474758797146572156991075586477913348779242763869890619706416246617432624375745932439604807300145939289920407268619244084239678124809532264302921297779862308203394764225099631879267566312059077855058747668376370853203110234257435692203534131543339696105759357000640155097550445584191296686086115117781537005498499430798358153579621428881049410121789921032347582171673609296535981369211486916507307172497643034908146466945302217702197384441767556364614740382165442715829959071899303139794462835117745264213238331904894443264906958647024280253703476059735651924824242737950748063899919133457009278543000627247780570446186284423030262963492100550760754604874690083465811120058211905525115982065822076780185094692558186492366931219067595518683851356092341637740718870472104602566888814991597828183076550414632392196669634961464120169389730643662947126063158857556039758272991771016329353319974434168595343974239597832555796858522312147462783499920235270042998001595841976998999216516594431051855744754557834100515518740646542325366073564801906969704057432848146354807447592257017596695752737115422725007027705633274726723974566890459630611614732560625500248392171459140362057743194005797256674685133231410361256900089828743226306180014431501067941696221711630722744352549664394536576497159875499794592309472046616895370995398604193096886179440053643887364305560841933125403368845017834592031797831084586165144513223688863593401957250010782186166934501765864649129879657077277438053063889093922340558447347302538944302234558305244980077688234248946123261835249272230602218461565557581862732632493086959351201341285958856096041446033103157150459743631141372681332831403116348967690886828724881446617026320741393688509941796303119766391282605241437252592376009558218438753608802594799139944891564006599214503257913515317093381283561025561430523340552608453667444850795128915161286056323352941741158039506940674158237123909543993898634461871474380213307305604850246859600845598862458873525449741381256973993425697694856706886246282198413050433912936055836202003495889908640284445358973353014057438626374150633091458553040332738976726204634756755942258957784239822749668910358836059933097990094551325624372241731381367321648886059841590867056608974838702644457612686558227318195936805715064139790219148483789392616025515892670249036013573025092661628667090312643555177993954057171355981610235253072645176598500515646664493578553325792755096582853295812454058684507393469465151650494607121543349142709718419902010880591598854101599580363567740534590802286848506936686454083128118346699731177382180226026816033056293086429608087456315708329753344627258836058902125060831753765066931537642684215003361622363229401699194327613078430481030142764420412592001905194886608338217452853575603598411659695767201122296929923994571994460172938698280491820009007298361988323939385071062622902864126204930431239770633600062047137224264475797161065537967153651915264474407715538727669550317726597080826326456087754697639884399728031263895248582917553969332793442527936019426926173556017741709176816372044052421473460414048814230266938515953240187189058802933972394175713433255706105306665743179502836423494249076898410621261006130370606821190569961161758765351778912852646653894226531154486544959139054075128051669519427166562577233768910372025430063398203114099779172945379717165736726375697275220412247706533884496928320691994326624782570176515371002375611085695225191674534378331719961686351971408381043860083356307980933666460370565245685057499829661671509343420768961905188679081397194211506239204833389027880167940150165068198515333663383681234443951013769250439467868525227759873651423608338140423474976909085448025095256035058532491669380804193058334908786328123359573939072629590608468423399367099273068516666970130221424594406190291931200524335794918043178304195765610592816706156185880790386316667021920471942579030098090723185612115214482139495720673135964801249714387359574825470680015714591181432321929393159474336207525376143026275759739890579537318264681471322844362668523659048609025299376136176799056226464831706704068473821394577238928267240952046206979517732028817223484191860452517588239643666253780411501725668190996983995913278731145211964247217572932390530666042518857610589326253526065148991955058885287083130396206310339908653049153871561989999833751330224723347922582638583698412372415438166749673592138599816862604938233484987115362430546564709838097823456816175324516690738178557179512866784483436988358003418520202033041472108962015362258484095413540601664316790326937933470253272295160820484560436638302513233000812684645517412428154342518452222458650287405765820694740409229379452351706184793357666267880540600034264064802157658276942617978205649998484094682146103936414228792404890905352681243337471233571522704519119947092176004422827305436548986291409589281001110551056586751342302270507000200864196838468961454198298230977830881420001755738787331946958372465161530268304950748093907317485286445265737850036318543335134611729882472198285545728507425317028551815402365305135730591524380576749408368619804032798540879527896764736816960485073556500869499283867115274173556506061848946961145770433483657895396084260510634027866083199201434676583044985680414750557659785678976178681757256432256096970195777107492761213968074839418429759050092654874103868070040649232026859311647431961971934778907565592928585713183197415622466663049482832699982701611630150393596302142183513850805272439433169253631906809169845931830872922271960763051688975925649378187211277169652770344333437927138888200967717275381986693801125538230752552999556017491890118685396465352118613282827102386971185129151393221700792383615393698136166847615374317650035817255430095683611515848187489263286391323553368794057534893283829795138925184876150039557056388258300577339784495885549274889967882121212184428031044294481957026938026357509915831221317522017188880102598137080422642359490409145251957194008084183969652661501872091385236436472100777241358324425841479826548386685503586027227599052115726793355942424464700375860070673582391549489028042700107499047460782683872718888736728391573557028908275754260128542252110383205955490756528973870727577157157916104432740448984403055245309833531858780126237149084314358405278401872355705813492613619456988848697145075186261724079725835171130855940040151734867163468970056409316744082690829901516158351674613072363880516530090675692825686346703824980515474830917725986628057071473514702706154009388095582769533370937291650485675382630401422207636442313266233439044917484082275747442387950539766048105002599483590973166134524744254459496180472249470356375451735866146020852516413668280806423490768919315321221586538470939017268119661744752329572965466678016338565179595036893714399005136540920403423719652693779855135438437114676195197963717768249541159363410115510890587199254034892025178287150191981618317540239727507900089014392672808440200709795654818641882293011670606359020330180606864299940516717003212568817367600036360332039422764235419130156143851025253450826962481705125377257063231117615710419876394845298722761036713889874112694497203764802233797219287591742220566017414346835611212659535574306459777248445307536107372569952872004854906194824746726852782110332816070652227613328652183489228101780094284062618398175998160081722424834923863263205922307873149463978427117265468069128615131899644515763506415637400412865037208642008516879143047616568130644802444091818263508168630540416057433967795175958610660043637176594153286701125992684942588584836693744633379436471726019120550883883600801988979215129378746246187378218360909599384913775829824460252231589678064701188303816666843976815081946637473195906271924597585525261111648281879157248673665097831400828210568944196593888638843030742448468602650574533148021312311929471875363603145561663642013855522248652991785612409584236661165533870535158611446827225027166100756738173412771733980134287393484259735019337827022586371902956256981331378431922564686490589914112852354581996227214663091195081090705539823457306606539328772631808375232891385660764064814988961038536560964199335799423016005875287127874787482861919200350598634961917006613374475241483798418902427106196663346016315177633918565975801077568256522918109596066410455971977631720972690946186598096189868127407412502537417036336057790428017847697463475061495442780624363623735829525243663240568546578641168704865322823118032599562397745585960484299613107847872914284759557606890332052598877071093274219481772907831171706561265152735531100553816179191848288798630949448716827706470771519450334377047823251993249719981323364504759773545907261920957536247034337087170443357498431230291231744275111827193918695015402570879793909949969153785675306993277109898247595418619738131908563540909154434018013203434098706483648626463858218956949136352274294642901221362937661913464738398915771799868570197938194551996399472941234176465033512390265212942684328184368161043442830095919095775210024285607251737975035914453274230145738055146874378463903551210460234278411404661283786202225194677790082837270860265897939818298075647458934729559943362457665602550621715567452453999268659451233070164429282376720345327129870337628508253311230522819423135741716286481347581283833889450970147877881775596051273329467127136700463610528982011281993120611157849202303096365071819094555422625190002384967424143260524192900350184534815250789496382528896248054179965124869739105816314942361364864588189760545701478224013790378460051651720641058222017969790952106484061331700035212050868793966263257082891277185566934552980157072855640435116695149405796780916620627705881497916327479035164210040635558890929923058562243207630716773350906634702004784797251037457506425939205182680489330205016980101589367680842400976318737885252911904225339033248632394047900210436600652323598111952699546047310061429188141464205699277554533562923775567028958419478058329030987618461377595611748276297101522996433640878832846342602641930621136715564800324620287115098142105696666492038394153450835661700192800711468391220922149941223458332184467853514069309998830331729791020103411986213349818928588149570508612254713185176741948620538305911212052676218785449035997415754029258441019968166735874345658042024906690814036949008179497280184525271911610773587948019260272890998483111980158476874740078665023947729409815929688632439122703167377436067684682941965918220838566926706803834698759144252033311899700755011115612510307427008000160227834553043485288261853516139751722820016552851064334486266181771745328278136364469154063501424077474449061501923105170070012638129221442955281110867301462152767954848588832754560119664300523934227831462546458980477701681860803065253421758797665247196532752618636057316610069772763696288243418572997435212657407308577949717160077088403193560349268653618823403735344841558952262499100739804114025721930240157152961531779447525047433265544161876108381133647100578644049930135024041181574776101478889078282424511547392222772227945544019309605549802999388450205450694659554448310336969200326296891622730739098891775904344103543152415700192241137078600675368042468300259541799274504873699591600692277136920834720069319421903994804047053674691979475683465009335393524096461306937574199541026507754572036887316878628473833932015197244908392280605442887364207758910153827699626809586360966030090382620984263655188385056704059982923336575842794510192323508338916493630419143366909617932462450468857679845322006814086017017538398084946830256761939813388598651604746024009205248176510088037893822054829399351562195669629964012524441000470139116657614891445610754493311702046088920408224969010040966569434897433611482912907832165359763693191077552447616013641879352611054772919025969828468988828570053103763858844570894589421307640352493176151622201159110079496882899515926055635467714547990359557727455228485159763291295166916924275554482430715511237092357047587891357252559948422749891339941301511938884060289965859217417932921992719468426354960125977243410418048768214537230725032022824312633677659814098256113410062529365428720817342133536628309350559853679668798942171674037269460564360150168667533009477123472469826315596733078762449432724772068821010508738106237248384697842257084974372596813465973079052393448830168763166293013111543023531867661884370098978533009176906658833625834777266322255699380639028629101761737327308295079042866549575928309671562826982275933988762570386321371678581598364192697329580078635618649285434702339365783811081459918848083115177391435381203364039325470780355644154597006251233470255868616384341914643754468398417375032231301922008447363366147255022332817721263932905891244069912735156806692223588649478592566287715703330964762839275109108923453906425570009434286934966671093228053515922991100637863868748727203990895456608164404704459724255431141826054380880801023115614829131213736012320371346885246293355381396499489561832597733871200394756608196767656158121670317138188489837043390150463227661124614505585456496264286669805426087105611485591596275242539273086260356583492132312212058158051664466248008773144398945427321976893121505406605001376661089541477599839739435603319813815995461187153245216318522145751053432178277385549362781839140489174673156169581236801535644808158163228332978659994269136656055914425129469107770234767936740093295334715865135905987174659017400477103923316032291924627568913778067869974609522344813778546357986708523885003624764891732211095644844077203360114231109944046859027394743020971213231553347931471640511909470301068053246435092392648166574918607768671975468552818047396516287016088717813190460094895058006058554647397299344319798861350512419299958522694052718022739925756837280412855525767133883325284604500051575708765323827771311524593074937707119206174057043566656719741733255151542748975006692515290069188188110807324798478722147832500389651127111625488537897858046546302897694806513791940761070269882178286205964030490653405377408213928215885491168024687872554974071101550014129091610209967460028804819566181338327397334065509872742273964572603391347929842717923958434238206332597679998662631268457185979024210388393341236812648026051061800161010826803366192406204546011223747049930798412925737186418641062969681057999778957524652184541589291381547458277655042548644521406987392822898411505887595012380899736047478037386946752378364791279238802579798853787476268028073830286180274893867956262370392116708625045799840904750293282289117476236863290036705917068726690040228969541705226456058318585435193348914516785619608115935642144634817691107099883925255610067528518795777452188205506640685664669317410241633164198018324662554632619080702727518396182284645480903177703968242945821693838795721682546492811992855699601503829399907737547531959198075102184854601156062480747668417667942109891823293039886051333490541649955967880875291844273171248270319463330425217020138851820137578051660040702895558037713088499239979355260673792588756476874281186506249999560214253539056707958300549233040547667787940203788876310324700127788976806670134915990815686345007182463993429210571725230961997509379823889140277894834474596576856425877259290468152386170394253797887979762686880597596532101676479448108706264307106398358694760908051933071887233253917795915155292298761531353754873374694976197274493636884944105204597756454489126935099084536478027953605240577634551291152759718422929011060471421830719714017006221121643368846971440390815365270673379206872276726369347576342197347418104690591106433057284194308904953636684030879492857904118931158251559399898744776123427614183952187101055885620627928486320947577804263891349728341671727834224075551408727656920814214623545647566016752399747932084027089433701944685849378338099640260597310639017350459112130097723105977430080357628732523143353706509072345398811195578830972800905620698736601141424215587199626349242815060904013612954048916759313320847112041024762966657784733440216494734418127073932013058485887586204339301970159205672214029296744486383178057534546432968162312435806272887417119436081115976214656007887249851440429003575307770659338151430631003245173999517894150862168047800418222120799094893189637388525447898983424635934491078542177542715299827469190372490082039499264573139998462803463690728300334217891645956047921504818058116158770165948723515487433395534642359334384869417523971569539327590691426057628781765172830794393598037637532908734504611924046530787385952385778687694278034956490074575519801495106008787045307816764471260745000108711196771896269172543802564541010913454435478358025787041068794804546288114041813612303747982856373122465685995596958083773974056818642679363743692216195060305357441589056170079478385619864633527986885770120959042712494170743269382982908966659565164751589127110056565962292473089696571519599874819703083865117317943272949576196118078094772246734815358900777127737399423704800292784888689113580084233187895977342351343729845311273723242261066438141832715336030755044889398727744113812124561014838117253263561588732874467700455480950095706309950964882145202122469754955483822286660771568280961260455075175348092979889755429487694485284410826834050338354868147342272066745075439856595797586812147745219815973490532233251390944815101414776112683469939758453972844216392226393384500372512908800503699011674313089625206989387929856905848961258388817038963534421947618514811818697015180980923802643432081995244447117834652568498830009565054154398927693212327942793458448396994866817811976341720356222845717325148386783831574509831208764857075301574305711905208754867937275726944079987616267214814223972741644194775213162953262972632313310364902966511407856039608729146499286958466348695969688422476015780843569787960841437482591109930565764363429204409004704571062124879029856529084297018270041320867640000100222447869294706184590675559242257529131397249579071258736628355446478894521634916010208470144148146746729000287557937922199494327215323886646640864167974430039684582169739751131145566627641577130444985735246910870560231720446560095294547575475055886512832669603577943263561782680626417343830564044654441112445063110009217844374658283618680265747984019735627388187316240828926367694291628013103852581395474825439242251265476129992078490791134333322125211777236460598817540837394926683558094818428625616638438251428108716252632815638146609628914568200114435552865376938744318650245306239243421678949785375455346193621588399221481438678925581640054836721989388895344699872905307078541470352642341252423978520130394874523585973293410960472673250739930069806283389224755243614330407686708479168183223761568405301549881505271399366614350370312885145301701113935567892340039055483269329579133246617676541459640514810642230701221376188811593777424107644957458540538660200079765674166510445924892276605452040297758705221792368380315749115889690157129159746666877808430183393851094997122210512558233644629395547749529825828666911281635682723511520241148334565457757326936125650427216241868541371640073491823386088303522871679981832740681733992838562379861315209712053786687178644547567429810363314628320378213644582949315524531048652979031506005893553790515630277299140711434593015492271846361459184393873437078971584773842893904908768861151116557515902667806601838440070355604372525987895822423932707121353917629783785420238248365849645530956756186028032759406714551433943675770570121404420320257425735519847617486842362189702654696115643335335253963085824537979790256161987821196198102286761045365750729021772317275499733816616617961171568393602775967750927765584270127658193027553203053093978159727206297585425203206582296892706279091895862712788740914649929957046631196365063510648832130047141169773028502657321191052639568783604160821420151253020211465870929277040270225556237188049701642237758745515599085892690893600156161894759096680301841743289485785565590596747158393916163463323043377195673625488454203061013929505804811587090039176555056522981399343611581873334524871155774865862103339627762895834724310255924565322523590941185934941513649179357967771486656106570703556130143381287258800272243213473568228263674212257163390987961276937342289241268036267414221136828107991838449701313935180757553461944335091164993774307871927813009784931778615358875537127137259915521222508734859612621152913885474109694084342561219319626557695587670602134119852368356547753461261642440951724994127661968480560670160704482234812066716521441421123977305577350119130166670648352809350370311263027001649849240015593507054624404242459532573578995078247940822835697965780960044316260514506730634558994309353860731490033697809678089826447845294775620480033856013670236378089299574384537897947642768171436473668620545824301729310535878308432623271548714672373688495885084674543410894514202473941509659108001693735579002189185402609028023894807281895702631991654374170623967977051994807709922643857482098690166804576650811686349008444089006345320599350767002655897277861685115561152803887639796769260648090799255664390588431370090168350599812057342408580478652159972104845122110218718885716973996511724624507171273651367862911932905448395557829200989565515444359374022844808365053618881773084245749383978714645243400821272087532524746294219784528219920275385257807903414534007250029303573106654416461991574296756492982765317223884376021337476847136719797116686067353989503382407550954129724967723285502122847959468406321222817536705403768456877454166666211579062489198229803627886669845260736174529835514392967489563947610489028408179674901399018793613173783650271427668471299431611937939877305157155125562228720643770007512460937547137823443770152507505988428277601670660817705933106268063916332518344535027096157105846790163208622844573446066673219505807845561917437429389375582341093427453351024207380399721039234611628820833487430541413403843574412957108367244032342880175994923658126671424574229169599182304449860081247157092617560138239133140620674159145051323863088375808842526532898712225030415953539624436414309282435953639421209920555446767292262512839621862233368102456674865010850544016319198325404341823867283314646332797092194969426168948216961581941262005785155647920423977093363328598595112205380069176593490022907752561648764279325626998696595931530329763615420366227674844878387787793751398932082428080087748880476283371907859299569830817038826203389049450873891131475589852152328715811575922507529537730123860914609623372826473310563360554503843292764197743368346234908517490076558361223049159200005826554413966646581848159654966997686543411972248604677976641439529370138521682326999309095016957336761568664216208882851430287636148233854806991995377744834576612676098864856916927527432769429860799190818261360770012074947777312329782530057875085701766018078683193137746585704804679394022554810639607905627805047888537062206491981406624742752810532021511318815827189667513162450675564829196652214922178070872491542670139057095851573629725571972420699304748435900089414267375885511183137401057421892641545974890231702233746735974682460348939208952857994575697618416176515022250037300943627899310783364262700724739179117006895237448135318934169860560791072052499348259324170886334087069644002094396061836777107242310699804813513470647411781377073870311340267664353365314351530804665815214453312393319155152472643916815857019253008873357108744242046012481724641057540167639535203717601896920243827664932180766585870895467024491899113466177834676352531477971526296124492026986731561454351817724622449709086521701644949283410345351494653517072296901760773108732331274600969352334440469183281163435871137338218605913470364846642163661333040526614272190200168033561328514597481358221273514361806199422984618352683143267152334704048022760317654233778260826253201722411530370416397205068729727406342759396159223973081187238081021885677881037510383197151120911835394651919404167698790060060615819210030204176493544971579590235703627974806091907369887695245888763728476951815873123719201369962458768072643269595939199368383606344778672630009599632039875228194825035671303838324929919561712408785394892574067886715069193362915403938884043534867857634177382928704701402154236880628411924343901483582910180971341044432928363758522732663357143158113181481298211784619935556215627948180446856008302342192591150204434463797908122852191854588141547488457196834402156854123893858619014193907233325359400002050896661823245031649458750557115048266080391628800830371040143645603376260375272569213149855121299991549844158588809840257682586776345147719971742347082871548888204823512693150041193006048941384731670668984093163914801033235427830935792278596796078296453701243063652613141514141763151287426986360555780129266066508621213138879364927918629656687975936146390866614103386024346847574630628254487559207496421057042176274235161832112146141816756631673583412093490962592524472713349203048031042160486979529405641331225646545905091916481141515475790919717709162795969098096806806559780334910372373501463247463478323360237298208404898482440243097257069958473986340675512832667475597398981544832500997479656559606720277538220642789193493803502038411055034393524544491355712005584441357638322866565601277956259977516488852651808964397552846891346535661460657560075593761424603969619176491618032750625169990007489299766289653616365509751687146828307411500050714437903961323488777477940705356763318035345572819542383322375035517797399740264315446016466397606366050116080978576541884313513958585994166526270464131564120240648233429270768428468032364852988779502164641671336524715329753454062355498592184600401028148825627692711998924309095865043413292470735259106890585127748843345559338510248458775541410592602958173620140300656262832292365686604760773619948576473769888269357648429409483588779063314234410772440449974367902040113761883631690029472868021771253548520994581892871836228215502134121394600567869133874677617585175696236307791601575163073168589819763051933378856080330092417020171111005132422753770040710486212547076386091071324644607755683087193795193929176456926091502690372973776405718499439333047786765673393673944561677826915573577466375655525819341482172645860123415875359748805191320680469447251765689319945880857117834301772427371655067255894911205663872038947559899109670853512352053162802371948467873908297898523316315799051319602273593428017216022415073772317412110201130402486616725383024492801841835652828499063365435308828886094134592628893468512374537456289583379929389806048506962642367130704144702225581880282368799900230439195963409146953181223668815731660163148386658331840302967883025470178949819794096552920068087914573206779552929241811306284729400123752388708256713680043088657481518623986951383430427001892351750645860826660983218687172806170106598624879005116873262726703200317146833407313327669787424570444050852627338799630788884522835283097225901821446303505337216560583977066139919679452453248044825062020320613725163132509953226828442796062322675520837449291905084906974737508687709624453794778590138332323959007441358918742402976125282769052267048439392400219383164137770796927288029779523312628343135590127214677130485070088262432975088432510906512500228309087516346622685891941934198518689989227477247671043213465764006158863148336061028455891443553047097731060477064078108673493945884340457762883904270953702686467036073484946805148678766708009808396501949950783760716500093317792563206638763327912325345569584328129399448510427049621841607541506296559959520890560174072842318132705788137523148865672447192364225718345417573529298101035403031737635488708801795854635431466349836185788101480168276076191809577504199450712795125990932735440362478277568481949858180903499930749199589675879699269146473835645947770057061696595410318347838128577975758473702899723296029892931366926287273029920491173348088305950922369157153545343001940217872012729257578982873849478173980571062427939788053466164318253301000249291573356662699548302549853557840500274474992645026506841665847631928849050509405396297351792494448258212906671464272872019393913113494457078614824399978248748288060217917670884585869159629788157129986957864454070285710705865749661960263712458970695798981722045921900466392627310942949338314984472811533127239305559627701550412871030274118658914849943872873252313873639699838918703460955259413474772646275271383613309910235791889546786698025190665646104396049014343609903987118074993266739231089823855465823492611936963770214390224395710915062315594806837630656439805138176296139588041177807031938681249352134479002344782818216621369660503417291673894292708278125733462380140236327117395331048636533628537090815133389473123804459627375879136283939049712044959557491794162746335699931652750695675203964970078898745360966816732701416950752775273103425149665935373342607590592456889161631418725929851306552328641365282296411590863871533386835840184654357264753140480980874175426734585682069336834655647790651784223672148454771901731014017769069581512551268196953728492131113215785898064537227331479068926202125373665147097452901672691057945973425304033062762688571101062784614939275022872487630644451240422506728641546205436006368642581734402021340527918401935677219199341325895722922198607800261918674132735892044465659320172903926066589752599536487195695311882292415839730568977279701455582760702383591751004009722053642108055379979687670051377490543821652325222714168164290262749754381716120034688999771453890099243719740130796075857851768684800696584036770906579820816807462065281781491047708155528987294694413112881881975693848843398077766456579123373844368192070296394084143841403894567062676169695131020824728750694157313479833880678194526322071127951241446682716774651603891933880022303584392745888169079703555499930210506177511532210059425187641845888380217831626592969750892478233693131656674104623541086868968338191958968924514026664583361241455880988600242031108038735533084367582065379994445594098446477963023181140662985775786498156021575027426700793081464359145570006724237780827343463593988314460006256971751569404426196654040319449840581955042955311231359250674980029042174696705581216637438874930311202802768664962338644636201933543537003254522879493753966039435957665507097456096382061084860040079904494400613429569507253314671313939904489218576009539018482529113531990570862614584005737576947964103687740725117792668754532629421731337151473876509964741664893805496610861955099200690640657278010993601034282648188565856492883701189031685795194186465579710685522789310162884824653264379681414806536825962030137225784840878381487833929097568250925140280551349013178544992435964287905715365916157102558956987616425590877947615362787039992461979935668735158866712650612281324242200665568208120127871545042626121940866879614483272132610940195315833594091785804842619752522872088054326040401632552144256282841326665274631614888102126731531765480267202675537862384549230768461271428371803930623213684769741714115472191662923884117294816598875844368965986313631134871780668611448172645996501420721709795879238565001544637696222297446925952602997051502633760253335463537392129006244777023301107214673554762515142381582931031452404261831501393703484687738605240799877174259258039447847401464468439248010824923451284152535629628297577160436381953730792345396268788698698877987163772015297771569838632125717272688773993586167680290597940515005829028278212125871002325672396355895814212771488187899077649183692371276130745664128714142595836387754367928172399738877493730059764576698066062528023573527570809656188677718873754908567906645629433473821901279428575520273514578267050878738523828067971720484782963870552031859472883441395434768389339960099798689767592409322774908298599633133161682967186294320626204063526355379798838878158484165440891681053094727624127398950087406882074135436052483977871007812788900585522338353476974486639599020279896379420656254727275568730320655446623093434292165938819961723238395057505126392941381917265738251818542015934251603520480027855226892252117189055581780086246823497743924975416948946694229925223141715573532398215624638681968456580969420729719174855869334692965899577248428337120794496014515055174965598855515961336618553881715317236128447158664062570867601945197571932468808601148128697505483515339504227264743898391713109519284317700518433128459405160007142636024900019043247099027875790118972368932665087399583167498697332490024996726027230183645487143636684412172540282143184763523601611798383473263517510601515670004042987129309179317071570475309879807604847414044744741649953399242328504313236882047679017869319779423225444021289695233554714609942169971374105105178295326656835924221261465259001743625997684209189192906729310431322262290879093129106172928243171922140865840829406602904003165601715877382442690640361008414450740049343832209765573598131242808241319742986171409096166569257716193768436950454988116478641302576497507555481043310657590599774997849215438209199250256293550590104159787851646032382327661162551993086041437053693327001535266910462715381252967183249537786661483212663453252266585313902245976509663126177711159937762623707035840111469152564007168464526557966613365227707773542512724457873103240051230481012507487405936933244686202677765050168330124843703197392266612242926015076828115747495377185322009040101292569218919171270604328147479020546436919539609775732517337871680760760114519533045364269510912566917928992074660957876226255179320380999445611252060092315890752211583032987683602448327533846070810249926644884769147352025221385630544750481022698431679599211571615482851470738311585023794851550119653766760180322840146791877562189526337561691252819601836623969749133495561052948960921327980030313974798016049082718133821379715248784253085284986774779851561646791547419960784579643321564707316718761048751230905776295574879485077601308833126687929734196473392488362685679825465491654428895895113942344331710336960191272840388148401805799299286550499549928068391073772302451283202880739030444436923559750209057292245426129932965039027004329095459130494298223048478434693276046269141230172634807537404068014823383813040941380261333641786730626192784358524359259697010043635055474000684543959936119962953182989952155695629951680419981849891364382890297512402015896448528491445335796314161745259907415025363484301165647281606367916967563760760248052540489849010697107552970646125235945664556310391909515882357415407246626794935469906706198352301630082708114492474337571919373201195721772351245616570732182412748398528124167767957517638183592356183653015994700098867161114612012637109190899603617000168476705645693729647752281729376695109780725180945015761898673707592177066392560914619121599840118710079138244152930772315015899758436930536949718091616891782986795409972478689264041727151968223085366636458081126547157327023965027958399242259640183226534788111494560647109621336084716820247547318797440079414341430702187083651099408215793971063609521524456978132511759582324354509082625207133923092517320685171479002381884603736701248849600065073043042360428903838655201235171909154458639022405677450173005853110624266171101680914711296210036474842315196093899307735830627345360712840854326945738540785402787486816949758482333085715941213918725729882826290459637157396807722663630424964778956252559154093774030557689487531935229711679106810464131304689529069581544419880585542649164035251325786059292823703145212285992117781381702380978188944891066467608226248658195549886965413682182102670024447771508208245519347108589091131348113228563448768790891173375720572157002317063266065272378184237348081876463852290033744939209203067400622743315358903630721961805752377498498587802059252035581353422722519700993430284840434026066139577538544153701550277203052074794352389392305339277040899583468152231678361346569231610493708676559705642547850345666914919563918663366469386490407254921088972117908533686310318193027550501001204062266261290316281612242001233832400446139680503957597034948687559159526683652647875911498561478479068191059102202925562720488844134568693037021504854822340081501995099955818781501906896958648988161850117209221716507395572349503961343306064885960214244995731168674325670660404306510364614260352065770574453692271202013353666108782331417774751304763384621357579832872190347229176606990087611587264090611862867165590019595212816947154825611037485553175078534569305383075947896895770219973798425880625775338419700312520766951385739755747305227768261756835054437049318949411070441510847497710469932295500964368021063354046042002638707096300271458376362009882853427011488208689280406355132525743506031149998477113111706010755729256262912697739535900546511198837385811570530912077657975451554664933696121833979801851536351307708516224098929719325272328507994553581603537647288352789200878763461791738534343864044029949569960352588716517431387807578997087165223350050447821050815606281604115761907560273649702471622571765866480075535863599934956094223062367988705447780809366891137334104295887400373184675004184415117079075464783861399197170855954725143727331619904571839351811516744441269562587705926717721985490995609830693025233263367644727473961631258403258136216568273612604780309197456916408104283802770042927166911090860654199370911919860150608839677711126516725037460905862032312399298746887225756589391127005578528479937875335040508492439790094314905472518988343887402025042242950023662599320824361702202942200155545554241175438411152001239875809545792352372126250030937786632091095432522263899419855847935665709597357378627108033449530485412071374512915563714344578955049954968879768285308881011990309954878934475879900485695207149751396047643249001757445600430500941230557739193532493739348689610881434208779178682086340278353552434942443549693162516340446484433281879756090377592260303736369152295895803235985977679416012170965676444130943406892528764894378827530926558482013839566283971509531263157156346555717049854890966508237266149569898455049786774197221723909213035284982349240600181429567102771646962522086166346180987883495104958224684855435910340332896348524542070797694369347182896482953286329934115507162050952276958170122938558181308473685859724440924327056399856837214068017243179375981553305662577242879755717442267931972488542242357457545957143210759773153341386567788876488643288267884716571771320100732727047426634564302476063319941061814963101087837917967683413287387376348757954819680550451560057268371874472594487630175093558803321202962882988415308045785960994409897205566727479776919010208221625066560434985789006827422013799846042492388997810606549880720335234276685582972176313916633311343300923009065787227479283788046112437320075050998457569566609854643991248097233034460929388309124398754295787854249071298871284763440207776115367164007319864549644643563091091739088050153086880033258268592024209777358675169730321239226852378039643016663126643512406188115030210013090659061252603180849676223244805689166586679785469985912408793685235400127475189213217691163112770442879813231974158681096427283080455595817573861441385228679389276537578869480063625501558515597124658915364139972350736956778149365844084041355613155053892339244686426618254853630626936078150965140554999936252867812811116095449322992738647402178544946984743362082466257014772825337718848708247275085108362246949061556689719914826122782119248456798474385667248882240184927544772987449763968343868815983672350805469232604837757189997009769085039589941418052474805980255967445381075783545165344188246598845525774462840278516811593335549483873696494697218553825328472148721023464748619265650116160431908365208381330317087370493239512842384658588031829565886101067714481972822952671771270647891273987499090312812088208994352865064239550614236496817110420969544658627281042047766161226299821806282621798703931999199841110615532685872125708400174564569255415058078008113513626858124272955686131042160847601371008453481389697247345505973990505282380913373924780093372977092158285215765009734368706957342409562764328735215930873814848629144702374593007221157030262054663281437639238844101686731695567232963462226365774401171959653429567630534515205335720151033949846974062093489916245822440694471699148482690424620718050913696328345840321177588117035751595010074887137343619278299455267179166850660477454917499162974993110051736824333573331170595979041761425219977640806481935189303148039540345286116141392607580951463603822208496384240926132869193519854206024253675927416975316403883157288141540775064488934426288194260766491076936192704431717425738407758987687583886779559319534575560747537368322281781564606963051013350317370144535137289208247530115500444845907211817067756100357574407916392933846586216183075558428730780420043293549980947043147180272530738663523144028515088172427126025926757489048484554464519738439891975818959648145291864470276769876934489207995103744621477914778292969129243077545602394795099504881412549549515944173220530146260381184261721228614878337833293377333003296689050238266287252455590159017910269294349555972024981802860972047159254840563249406425610534301155557528953982998369268379177786699220057758155371815777375819945837959937791311518943468665617434073186785091014280662968185208735916332799879173531783563551638028423654290090715089261418178012694870304635317303743017484200342895875746292424295497175642182474713172105297207675976833146790642537114299197179723444485145332863102246473292586643148434315817754729068098099685883113704287892107709020194650204879330133576471243797969422634016411420940842478102159566710920455583342344929594219572570736663882017112916822124631746967341694740257823781044954440209158293419159662830329563527629087896555279890516970678380272513671940954706742895691979102585257739977692535614764474194762196915816774841011037103075788009364610768471299698709977464811156327198522629864900170886893366980465369012723516728653347123911468711648435984486103031889368531818448678931744781659420606561532588718254089444357983901730910790396210076048110003835002366861210539672674460796952467403674656702215278191686456456952242789833439720166835699043371401084075264457586610462799702818928871811007870669422955312867663521369041195289340493148047268486444775613557641082490623898866007080480380222769888117075136072230457969104449154599250807590744605866857374444977690461045598384249488124035667360201271238347374056477906999374801075916259430762625716433268735579455007777158396450235351004756541899270145810119124688876019668966366869875959078314911540263992138003840995817741743672687827488556719312495734450339705739058004249146774156509867542624138217897669064938854360404644845117504228445431857515361813350873247511932542807934649113479939180150094041384331430662871351126109750256340854664164242001096623306100025612152109855005415045309692903425600541609628599119391477506173889407686091318765597409087869130803098017188397279666865904276061692904544076391216297141899303773764211184462498258529952112139257164635411116888512132770441658678686567060476835248407090223937829601111320293856228173174377821037126994477565049680925387306594252398928311052392603172916427368397031757089616048784345369095836150323480620696478861828150468738229256742629193886393110559592286981838467006079440180953851771460900315060530590810042569448104300165523854044704845433634799162528921549863144825839466476739307880465642532752290605227876474396030908840488811400833017242112316208756621685389654660720811622820849674676765447554768992675749750602958364757053346159043779383462130260344000838047134405548747162932346828661405597184675384818132826555500852772442797752289391715994095907459419006044044797501199034043527713888929971417913568724046870679990952258580780773308101633018526798086704596832273505117587926571086159630316882080274841663253688141102511236991874773257676639067549431065314356060714143715449261151398111517780375221898459225861568865178779711220287196933243241179243243835470660170658119207193650237164327084822174384422934516786681652569496853073045676992172697130738905237434099312428483778707726188804482358007950700088668638037056348605500237891799016787992629842149572596821758835688101418097795585829510388771402904376441718229651520773352286457361404828842122914772720191182771615683953652949720907593051027608593483203710428252769389611659659097741957655703966408743921501324757911145052587366276271853374161688383827805830706587931483350122225427993898785693844193231813712548629958492790055649989865205943679332903172276636614659596752469684966016106077973433925490645362717515960822758117663989122864319264605467228945563526760138491530325769637388017040576849878381185448020034784774625114719144135018079023224871807024095659150717222416471695789895716751650127992489064717899852371410289151435044731696119746134246745151451354146703445527199883953836825790971678467364052545616740516258259468150934454639203789544604739571472716393897294421568613221632465977440343702801749917334885268619877745219842166098121672013947585708850401926283806632289322685872352980872932097162657933202992059050045368988255561052920199560897464031313699271169586109887474133055163572794029522093384566180419948980296110158978314326205586607737272409058024795893549732392786588739389586661045548079860759728803682724758103591770673206661510824262607496636599500358292342718802029162669810571642865395567450678238264091029713676505218901937345650679097219228631762939327090745378393739593637494290579451707530955673324123725870496564058532708112824826686318778207827589866942726803559055292013310965389503325807065212787516166325852063726378196780238372344221614514083661751047776036477733108497657377531557256749332820768083255141546516775824470894151439050338449312416092071387432124437621538503665170885120231967364672291328979652752469662639483166890094421064086744916644275803585552579448392114009254932424368793063409796261587810597287859857432220057826230611415994364499525546203691768543613501642218321478818996418264736693600814929052378927542449217246509193341753406729890550731842973337492229445785619759612341737216117515110836645504575432816026525281276307391612673553077233040341515770966758979139966375022649565072790680735642825101400467135886136935660448126136235033893101570827067045709865113469523317879939918700344895916995185673971958514385737973861264173732069207274623905273995135217314999080210773072801813878915092861978668825702462845036609262793429420679657093277990815926682340635466992331267795109128880496491614697133536620749536752943606379103261633051567195797097793245114646949603778403734340576366258800044268980344932335016159228867806305393228824517155671193506332817228695000981755078208865902040160780117151658557306143101043360381245847494663129400453836086964179555928378446095267447502917004225413221272247039264764448862238935166779044175645399753918388192684804498662894598221593294038339708595681636046606291500023163621393752707994945772885328424183096291664630602707725079742701068271870588454949959980445253407621189371829650918839748170112403883863911203648478008683444973535121165822758586565635225214090531378203340954944261574453340653536810130775241171699069462308387757821501402707559802742354430372622684605659690405501993053538273103667802670231492250187464158435676276090500968432507602601515680996968854738308953050793856634692311643349230438720381155031758672879614410371878900236566828663131885689257203564028824838156637938746610381889774516523490185503599390720842621002823994348170365145126341741829721672408133004751536114159892418748071670296452779515557986861105256096497589714178357831579189273350715035355800065582030941608423644951172478926548607176298579014988133837294065104712891383538614463397856440087830704825809486305628551255824554453587775101222925736748171841817014858836044235165722504753517964298292429678864135483042417404913057173804780797456327977792771103125973515252560425161639065938637125416356229330402557583338375836589150437170682378760508523026853702020581906735491748696299840708417916135137501903815086185229547332889291350286798022023542569559398900997057133229688871937291249342890045415522551071717030577262024019865050196061849537707603231889984784049138579958896266259174022378146426326267394090381084473836090286872456355137999410406255382216405967194009867202883460807714118246620590657519511610311882491321051887460499502914062875744707692583140156291565664579617848803606762298029985642060262900939384369031871026068946819501289176272688543777154622548333932507412710881622018124261350513976399264899061813716598653231767702262639348448823696472743014405197119757828905873692718092717710922687126886770273463549606423752092793863275222286522057259300989026064016146602753691622447085055883871755516577421939352124675135641219239506697727105632586513655771850768081302808088044893487244074960138905318394811371214724156821267093977294412315333135167360366140794793796690161694799866230612575685435397876100899293175314689880002806315621543319641154390162013724845399838977978348333358282261501348658614283188042011393029158457567983667860686357828359445558605294660054769832780044329281651029138371349617512411458834307256025232268278802731520218108777295961242102687967101828573743638484945591918772444136210262496623388803407011675931361828681716890251406406391890198755225179196588592037315867146972623597957679979439742466237722225941926419461501084904065523982648718264901626216991230511567321634249446809687096191694828094229695246324216536397258037136422187493294057395336738228521923194456248873411902658120284899405534486579974586717928270039237725109461638310773752379228339651527909756582894787070974243167118266650561874651381107041616448454681630065600085962691003283366760956455514245430716113886501970765791076464075283281537639904604484850215616509593895568605041087941100816392331453716472484188534872912580942185449026326026391680170956422583608269893529260032549706219709332511906335472519036056339209304340668958463340422559091964317174280078146525725645870314319351799997984235952423559273837352538662373675949548840598992631082069546315705827097427504550748565329174033866927234257357119979592287563977835635539704004046015202696250198271865735498527234631035750912623549653665949481703532528598027659948278269998023072681562383711310219051089694856514809424556442464653178129465230603416149026648498825654806275715252610798068550066374639612186080777910321748281807739768185741572271521926209753924550765330727994442090654466054549344574935885680377075017495051405640354012395474660207338103667624450966068724358038766011801345807914782454547776264767668385417358311227470608221144227082870349133410337034756113028941240411401672755557437320217824389710682732711252256608638510293855669644627725720203630635703297648863345406703979254772333331984481173186459569216446731004657058824271806780971305410942989961051692810008126696897551348551661344173603916474777291119693427573077999728290914779621283223467468789649121054831402584387475984373073602216814825760791860646178193003269693368200519224831800410634001373033713831525008285734337250704943045192107187016274080827258852296077846564737635940522178136581335651463395699829002291176728731221048552865548427620256836216499827241237897454473638998416670195745190558943287413452154780359826828559107555419444221534856929514395624973122174837049265278903356841173830232880009774492464632100279861536108815010322263270264439260022495521647558807084067422255007547846896567969123045874734387516349443246597344870440648366106202534958424209295065565193146656184590608785906942243295616494394693022201144928645143532931213321473530190661384735279077284046125181384922058349789398644748732175967214563686198640555304728997144336949267684228410213260130548522207351780713046003315350496439394281144470592498531451931846082829665409874107583186982998002236465975258915917144279459825530361818416633317161533816683475519292372057592421760963414067537365164386852191304472029897242639894232744619929019946202477842988202942928501500618244789850873868771717383235059337499608898598863821236822994062244927111448902927067036610035412609745878208288469586740202421334360121929871443184404481004228781486190280219096892681321781834554766395074841758058166883515982630433955841330160711390976942140978755253496684357925201484555426622012443107484105747561185768117913763515405490069344455163264611873075541655867201984536882394139699606231517316841760055977602495936674784854944747237839375520180509759433268125682713734407743104391927426414512520113413700927019433177905869805147708245307010423049496902280799549979117505012685064387533887054164290829543551679240584430368260609590391985684171258563012526063572806945711192342529285902360311167280944486314357278210860423722229897581355435187382574208745872694240450774191961205649897699704317259998706494298362223782383282620903688236555170277527492662379964341815780700908121073464495241486206429660929271448754588775110805904545949812673322316373812116645013759889342206452790260957958927967346812694270286980359913732934067455896364582919699146815533594012472911842813453769246641204833501293888667845896488606438367237870937711180225078485115356010495441211004144162328375429170017862868012890460979947973439296702853165218379380189080664651186587522810908082017577812197942821840206162022994404147970112745797836088386179242868600522017743194367534386338531399866957292079665927227414157202170935223583592266529520580200136514821415228945808553134377427303417947183074678136633501207684990377810830969142382056253350695031729373872719902417605920806636258463867819047436002205229610952524372474708598616806477693196126136902134434819676299423793646686364546054071845720300057487207899662584130416101526676094333008602189546304281845913140223039644901182824982349079197910035417876182808541316781368592973773055878476990827393686195652451632931667384629199785998837790820058823955194385037562644960806258463616038869852108843085065551240293216704160153658407517535643687491589693292425367226042353920199217185822644265482804397647324341817065557032743332177569141536642228308292042587246303694419216852885192031872541920966789174263010825602087096779594835904049928072149635066182957371472745351148633849662791582042584590390274591764351736328122674104227694678259024974873941064242396811098897852396451333677619913226140104934097258547974298209566162406962715720822933137266863884711460607439676174280413581830361883302675085305755316207388468464419108374338887893901029129653993052365073467545866072417365491550417225284680551079100693204815627009400164750500471387990511252173090725296117868406836475351280495835025586635738709342315015627362513181234773270145286667954901262461991381052977723833183810956827390868377014298613253151757646009363866276330738579544545977374786696462570746208540828072602370784151796650649445345708479761779486435823825345583778380554770538628136224550958617790562355651224455700322803561295709548263465150692137961702926690683847849530595534706478842905388622742821170175465688056910042863817487295247009886848296444571311626583007147039711631317480896385508495942274295758722539293544795734491813487444258644220462228011627569094955175767496224609648707137311118160530666708844110123561961893471983713047767791654862322157626620708329360578680737565155796880375542067232235285329797725344460169402821072255859086000662493686933369329239878444443331228946033426326555159683611860205370483589609004697791070828403055611532193716281264981755009026031632271009487116098213683160890653647590691349295184168660275716889006040758784814862561725656104499874769763279958762226826697430885129216559863958258765826919479184470530708941840118894667208425491940993975448516902152407673066874300878210173313810262950418788464800170199910893661162224712775799466721670343055494536518270847252524624902576743397406047201312414196648380581630190503818244046031227766540208148085160939685487106280780510479408116467913733479113751523582898444087460033119844250063054134338788793080798243730314557886767286788012600008227147971598073972966998812775110226148834209571429569082134949241461868686658559261240552708363099351956750401318039665282143693549958471204113901631299657336757701041693684307007985515182132665911632704215021374222522896702102754914037197276726692493865225405359786542892360213733249532069495553273073858569095894217613182346177180339297440778981625417124897226123272384789547997193381118105472369932726056325116250686967063496709142081573627439229996230087270004739677048405418515566850265547570442797278655947627864057724801763134938241998178502201852674167322588006373738842699816370111951877984380463082474474790424103336993684073461695962797943221532449164575774132821107435507177798272312287956795010524687663395262971140095890599061144548848134320973223672229284004325806599320000587109394945150523742951783274112908644203935541227000241258695083589291882857810532045749328893412800967075760016528754529332999441064643474719962989794632580273590761789919842015759533629891313295696685044868955178011261876295699184142853451428369870521159982413848139185335430038322110491796752593650988671401011010535361768872012267181928885769380781413444282412938994670779643097051693440818779176915362106568378316037822215698804573530521379826380894261654220944668872201037357619964321298667018893839620455183922642878324257008589768099556160663517837471945335530277385440212171737594936073488061294352261919493276471404708137997806867449398112763187358267221115395142022101033849898759584006582599670853048752585508608959072294995672651170059245123208749926088121036457894776114107297995643072928552528856009138472097909995935768243355764109979329191744084344338934733200717442651099823689482098400263765925771177997079688868626336785192816178716718581185025753992384925453439196374620601676494125009460746648003097169490147629259788603502405082687098353131608287659647590471501056013835812263941182231403980769415080029659327972867169718121390644500117278836187267378193357834627574040522055695760075766107443437417625353793978442298892949103350247783927235319472240616740074579291610059147174558744399497338281633877179348961685804596512488565882013321346495316589744910978694943996066222690757336003022896628738528407453955692679200417699194137539451486898525986533696227232225949358649584283849294687434901680126654484120580794640390858246413800853819986097283616614386162137830776110131139115890216612815033083785538643277061785874204639077902403805323509470042482229820742498874981315947973966650050343587425376830025985862918063443752151802459606652709292820383624849007063096309410993382598801561588906304644534113809902239352502731691489621450790859491974995300925145808141335586289787772884722475246079855078843769036468644292908339514181026256175781216021013929024371063397395216336813690413572805340931842189884866551298176480029055269337727051558699605315134436589341665547778925575893941745954638075351782308913874188196077751674149215249455072587252217319547492529126605491244235967409543915207621866416547555650009105345873680593634799224330012283423357797261051560364285491339954890038140286723215810784259630677714625424896681796209444378008498804414762503287184306290289634269025991889088094081459738371146156105713331473348363090392150615363726663555532076033086543215895766247152331038788751435587212352025389877819717540840017929138258877710666101087561369836996328227738247682618795011720431369680715527048359137792138322501554328703402295754299575448791162221563729293223569471043807196026234138014012858458596059557471790464297891702518086498230679235176057193459542392153514280704842674234043112945910864895203333170156815546207668232321662327892452182769837699986744975178233748109334321809242481495368397458801529460203879670917704421943333391250464906352247210451137538108644515557319340316787788137204296101883723835720663931008660964007689553923096922467022931916596534179156498934813304238981811954601705509672082732704145536739715720077088622254917984664613166008879976329149343200339180535596697474382965207429996093286032391624663389579141976196562528027194486883907169913779185061985395765693998209322982936760425373006132371400733626441102213318434387887253219149054450548821297553901565882381649418214872919915889317978658827040332156830715885195027215411814855847589202671478447709701331612253618452008245510501479679010666478043102674780103768409172179475297053095685647039978846571007279046104752178741132346864957219071253499360590445102897928491120559827452712015718145217539360598840159186386058722643052898333172741501045446839449498586630868893024152033307867437285836411919782304264155949221267671170805815182638259195808698790972337888829876060116144801848730721816961192812883269262937256916335183743023585242330009684746996929051425233750727757408373545080742300184974484416027925168249564099626866676363963744924884440580508001592376171986158319217856768668118133546350750194850857835855656282184051448944554823057139905220313842245701678706642948112472976168053185997020955971594095809880539814840276462832465158947802080456474332127115386624232639629255033994750651590683147841683782015791810650405904847350121253896455679475599111646515284196984014812358153904272964773532217456087305817795542691380203763597806850610926653712347913961410824726172075167121826451167013419087683928689883310700793633896315004001360859627753320692666080778248924708218875235004253624452784389392345563702719979848854234065611321182311723999847581625852341894369193681764663586933149831980486504801683975154147198067591544053173505634958422804158243818270804658018698300136271700590479192787666085041728131315809375735702740120915398303925652528702824371558197597085897225517119631398197810854429482598639590299796128787596556340614622603548774167825848965757199659278601816622106329781223396786003131330573119089118346856919327979213730642043882993057178577582803949614557333521016759093099718094667840719774594482436162117888413542876869110624150245523121580466632507107219428981879766055169635199878595321440905161396837582392131770579398276769118066200178080775322052134375850931578616736781680139906029051856923308760597704064070970961326572226577516055086323827612418344047312309731790579905198849080960260955635784008965505824957771480366834084622371419391508954584588304856158431710112359730619405424925854042885995617579496392231934370718873465967386369792366536219590156347215883809466618066224529017113009672070234033090521241066729558577134360441691901347254842903794401194206286616059833625070838452998209339031722434533893325021070233050926039892406884325060962129012403816717660015608829914773824196070429290959263815815406409067398547200714989594769675295134079082327659037452251093422186573316918362381963204146781854065359305013928227178336650483688718658458880161833152692915912801179044063204956461978327073136773626157792906391962139564851478589373939982970628220128500348864533200563056163753805458546985834959065859371622898966254198492410627275649566914673133065359977874041088833951750987017274453840552051550913241704410189715727845389999849001550885385400540565249215472488250569999524674169390828261199312454977322526152904883028016000654988435728915280673434790221296109450728168663599519861160303899439573705798277646612412173699011800821299597746056956575232392086402712824243530976214774369357197584091742684079949594236674250703796851750271867111070507985388867841687603877196215419405485972788154878811963224484611293484130017386164841060151335717251372663161377444388083856214486186258554579570021395854889673083367430087495748563695661876332289844097268499727726742379455380256380858178655558358376386868709651329995931716186430845153301191807083836036231101047940369825033089848219192959149737430460294607363370905853039816346097144761752632155457413959297483067813679066626235461392122252578087540827538147400477689069024663666451862954961940132524929946706245065961691962796068985466301309796828266357376677078771914672313272356757525004983542930481459826717183331411725079911095575779730283868431375587835855180293346814089689961360896065365188369941752929602531784676636015448339662247526103170673802162736754631464097180039430439349143400939284648874317615135215359932273413244289911969367330992651471151385262661406324889270236575920708282371033267316391387639739188799862257352474007750295693806435968460044610092033329514917628656996855621042321817596752956188894893055999300743398553667546005916152229355112038544995071891041133810255272226421532827490090296570627538734849778443321688039560528725608505838395384861190725772255834430515997857431881307339505329963339966302777841630972882292269672276480119735917111861487628012619333152614082270003928608231369652755317771305560796495082604147030066913017396864135235910479983345687421329277726114579338315216059274950131087658600898624665193589363944084414960377921603468732503742697827848315411353693553971464238941805642528161498551801574838899388098490226210838998289984402030798924178901407883195047427978221544806689837349212104776190834463182599125514370824803165322426196347327786881667142182205349535275036232846861409310813255850637427101310858198961438806951291298124769717096054540041814023448995651939433098864183708476602851093997343665231523024788551738105131628433603139602110124153178634707146123402140056300175005590331797345419858958553404660999827966714427924797698756452729487274551267700436816551569939987649261156150619684382662368347680727962837887211883308920385255286464745305725926224273936632805482944713817666384142831956621422167434614365840785968300937069519145928539771198194488230067021246510056533387458584296986242202720452880273221357301825983847205120224575447207431651943787022218184812381811747180898223937992107418671422331797903796476653897244930566063616869187486439242513136977334707826267920456311024533122386094200271923850654914748719898465831084237743616192798176240606161566787547087856326414226302471340465836111422009278988974387010501554661102064828073337535839428799800527213215361992999250035251837585815871564185206222595227125323443755122088411367724873780974148688715611470281261302251283838770259091671456129980775616776430162671591054476023937381852628711628772324451921510833691851617804286767169608581784570432203648297878402612026460242865881973703057467961154436198161377092469897233304192378532684325562891179659843988780610698466900723072945660951520174894900078087402623874079047799100983358374099274414308967220638669223266299064187481893958910787229917951429887040845545412764577228166638497066245462457627888808526785567777957744555016745965351247646068786952031751609883810424217846115054681647449529215900963617707189032103744223829095433197839660776724143653679181993740062712720707389355811753682853807868550894806329495315437052648562743777253516923879395607713250034767678373270261332567148499917845020199552766799007300756413779991882980122466600287709974194863867735139147664522289501701925349885136385225058287691713603091803754317109749326105182154958863582537405033449971020575767219544791647014137310471667276590209391213155417146909544914273722447715720279459187851494767959270147146670935807230929044316255899507582806589588783678854362840392998812323256069834947210479088623057338239732758143833565523373064876203386164070868683851754575721276347110427033976859280451959094273723716475396067862214382889363106380719814173482442939734982813725624757149644663998948952706435892790131614115986343924606750007424381239694392461145080187491350626409610410764469883660045144255258368651127053873990452520982328395473289015138497026663834409944094325465002694497877671386876019353936909613556937420414050544958356154879978707822430421584370187533180338484706403098879253147689841294216076118327657059095912563891405059789767087791095321082609596452299813514572767180767736643245957759287257460483179429921579068513314547692233356983258318085735623602451305371093095853318600030527077291935410456870854228930792006918779091484516475567017403248086958943667885221783213675366763450583793089096440454582990641984364539290576712265731364381554201837974581488423827432307650331968900121261750774970871175227287412939156794552309944997549960735226934526146770521375376634165811875802224392680330109476941064984865939704468115274822510866755847874371601163570991665405921407111783781367421951206385740152773553280538587281193612108599115485053935713707640625675672816036050857929931827047086144599513360917785455005878980529176282490574368812580870308419038567123613521075320267227866002738865427183652658517118848260514319969819850609871431466426397231865878615580818263919589169309878584591940254786804121023762515536188276412768408010337754185631342298207764883992763528597443876162804034186998343937598007472162981639630724502315234437772750154426690594362537468549122038155809423274104614601306578034562646341641733397775613477065778143418571556938996056634030242684538013230645980932032033054270014777501424135645854172891149952193161036575960534768059185223109474606038766077861206290893154930169047006167228101944844832882683787505504409927367607828316772753875226711726481454140944797709966691372632419381013317760421811350454081393201749961290160436186572911434442760904480159540514146541358403438577042327509442381883049123267928505616822278949445268075010226241115581162350619815196971229505703815020229409308044327329843693993245634934055849840613827769916514653752657668500272180239247456170750681090867747113404133099241171939169380854985505378968132724083912341276774381560801593714829511086531187513388002131879516842711798902969656040799438867074364912723359712927833993423492154840497243656560739695940195966889198611384062841282853087561837021413555650959852452701786165453007370655787821402080434363577639346716393094031626477576207103105763911322945804845029906758197125373987863447610664676875690322483806545773563886870060716922557849859359517007293628156096547178696692722664313646377939269250124238291541288151793841626387356236045432047852113981589681422459734355998520939771509757918690688712819352145997202771085871688229027979452150434001866558139915026144881116902942692388387528237680283970236242666151376851982424639241923369408696185046315180946775313371246045743127351865153312164128755124777583293318806192713728758983981839902407945806912698167041174476773055608539487959395530610066390455239741048673709166463911416512156420440374713491895528901450550579054431903491768138663656099553189439603461094377709361427136127150044368594672082708001125923958213371578434295607048560613801563131284567724615604706724382117276578431054718957552500048401613853794001463496409093578736885289771786535305102189955258538505287231426136067403987896583029513053776638920592832614419742693886012558928832948080917896738471595475067974719355404291985740915086610395139617358947619740496217283152188166072366197410906663496052690741569433408280346796519844260411652789985070914474511332296682242217219038249377977047707803401665310005054439015907496942833689680229332484428073478654899682952160422778174000807094846266996474067100824871917405405293337757049903548065747473667707809856899915815225960943028871953219157513700980377576698046165496047512224924139502781509485607634716734228201363736822142355237319353766381721150898227724079005173853323993728988622827820334592907412293983709812263153887214797343962510649329472482796729868773905202339838571507428981529180869357300863306475001202659631338845341698708883625784972352573808975648167963961754563740721334809105288779111949394301589194588264819038907613763624801862460129768538532837650881628798582854650683344829075259787450728044259378194423021602205662882312187280525435302032981642863957958342805731955337416743504301956096683045127712644438124126601229164612816687664905188967334392491375687678331922755895422752656840911349819236244583501771264127923214747504613456037912454142348747732445749199772888588136894282990912505771101865808137023705318355136100608556778757394196263590515673527005736474904425233780437934955077446688751882713079450555712866078603807184411138526723428219431556796576345317093314446085087381931201850487746981639409842636016710759466435681680532487665788481498343228193899490752908554833984108616644451238949136886795946419824520203867822851314061743820028076068116224657369457112126726520277750983925505692332046061776521993850391443776997579591377535456209318595678416873198994219079748134377087434542415396711331631398719238433400405569363549317584346854455775774314876526867625006771544896225201456619379739954058458838392710540292225871273093780190439178296231881205685835226997285467338053828302255270285412379099754190564371029660442072135154407641230096034305793272892311243303603730114648073176816177958139000832706910259642187561436829053876397939393186867117049198689968537034808282002889297105435816297906606664235799607199111492694213726044873425620156000278774951377537279339287862418960794357500707018000009410608521226804178233472707344830628375699142037210458560806379567673482215806807416859534995239315399063990863566321703695485203911145188715188551873279570223001984028557325301367195707732987159540211618821987801345832674585866752138601374502116713971510599828860780770716528788012320665523255672081969602150160290090445573462854431454454551620110391501269322588663214403233449358481256933900102121864858233867857560540124777207598056107649828500047872386000091930347568947682806225296676500475639520689482004303339111280390900904031767005322144120356420469257477641242464102663408909955595217094513841205921634095371303923845517310253919976353124766425169871034041796350578732571796836463623322264750242042412261541880728647538988806619941844901815963298184321694183396831251120228560593093569363215601847240336790444054093316577212410100197327235548690508507246164536581480719176398761425059472505322921896375403460398988757441925736115375644248960199183802639819844292752049552124508903505675354256118376143457580529985582409129484550379612744909526311802496417213257896401436162282513890436299167490377896359451271283637428523023221436233822536013158431609937356161782459314675746166977570539395677333214869339443007565673652360794375866506557904635452107610797419449448467104348334247541139078057503738508949892067779942616339039387630584705638621306043495685462558836991943647708193558684159054984131383710228505969580458031702815325445050769972541563567553757476523376248616170812425629181323607014157654593403772302046876602388466005821028253876546105203836655968340174468125806880863398054119709597902710850401136541013573911846248762428486556307802888834324836483829957951765673528834467081251091407902008247725749368699442581856083112007369348137782707578203139867577305936453032654004510276660022901289856440983511330707155613269680092081253580157899905252715863725527214279691895373339836372730215700835025600393779061540498687531373242112324571038476071390844226064577690828023530597655842133835789482782756620211382434882549509925354774214206504802610774268478376101119994249251843697038713746265544611925006867533541398927021082155818259267895368846944062394419425067783194196426405615107150636645772162135187153256344538884361275497560607738953196320823832107371917786085980420195665127654565530188507291924691559431460485250058930803277350971978023984456078111592273479837787633913958440479559432190732236798088995644911982338282747574821491893939329801835912744302588789605570743564042307869268304562777849447829696929679474025418271822948984146592565021150362784875657775884172205949231112225904791504505795212412346102548444971826047631221455889812392625110418508480065067729248711186741236304466674031851693946702369743510917642479168688857272138882745628879252354188871057634671812623809203514138680682879648644382255371725863547608004138409113446140212895043899447048860241686878559271074474155083285669377777314381099505535019793155568620911352470806879022542705245752166249457888358230404658212450154553175445729545174720952944493728362990494888975250753676477323629832154796011239141094649799212815127123498141747669531908398542573493806641557495566199543390651949530437931440581285147170236309743995208354476829496359865969671434189440445995077604435360555150355428680052521307035914990482044056133474090363810140094656475421328849711797141195494143800159220811614153525609290088537053684718483219626393372335107449908181445375785781380672788632158755577779636432040960131085070409229999734235916895334805102911618502583771749767952749823220906280954024380208906101298404751182849639067435760224466477060243076968523529918786986525747069556235800674150857093717883111478571111567147468035835716128361853982352658636022634467817353630062222211219786494102117087703257292999878550762676709581097927318511841794962666497090762020741297527020819578743164015566618023931422473703435139554191030453348862096517328291627353426791530466377791067657730792352013157328321429060994375279437713375130324462982966050768559688788470468053109548041632983239409019224699128587597147123970779151766501452071104936274157266564632059261209474549559897098467716822904503304333660606882346871687936292336902511500814807781496367070054269802464664684141029756389559109132469391581169422246134248026247273812927293243586564331737586616267708589793277725280038424767286386587544544811092435708549399276302545551271661039483053662337559594182941424825475390988096846620372602418625241800980977569674323090629840445034496382942241421642462261311356303015196921114521111848178569697559899719145378606076213622145956320768899333652308763472092226972342736868558459373909100821834782610943987738250419906047889032937865848267124797827493040488804563742103071755365058256572915852372727746077258012625498921218591966509781791382458098444124293973332562627419880476185695104958708787781246234305570250306869058763737679294156793724025217788063151153056209693455167846206173782941635771624414844345729703611832754121006201292361606696068442384384988689036355718072523232408910346841031358062517341853422389387783084113859154141154900411220288601711732201053327023335403674002321153724797461288806277703420700676530639045227968572962049942668198325188754684343736013799492850548560392626391568362352833955190011544934356928189858862169884977101443308514023889157019073602127061703068445611301308123125178982449692128995371870249739133190298187492413228907495184718983498459975320651314566710388870704875463691826098655204953544884715833930571288858500561023460122842867334992580542688330181614614516805368736821353851459682992440746263989461213372319184567585749793558561677019563677401000483153856200764275596107344170565811843228550397371913072077254289573123380228854179968820622516202433312087052376938489005702396291422027090016101476056550440935496474823185544371237789991187015256291438977817217690158387886077488930368549944576675510048191673657543380335708119625522622416659626541353484824873515880651846365224705441499169289227676177816249383927836858782017700164751875509855433483162716488705987134292201942900705623042419584132448329157454547917147691449664128678991475474298819855939610783249359385847855973619401892300121631549111657665405417547573271263616022118437073140618345233513649098356092655890170885461575606233078325307509700537894150461623570339896973808517006399259493828822148553804960096218843189877777212137307873934827439682061599582935585947392049824583045821861921809200415376911004835704415723730346383799567911287159689568220777703157821327054376768214631155888903563697865473888968087229139450517015657817519474138656255928366242657913109581964273419914798746044466613457652473544086006646855989166316819078133908595141845608504628529954876265017745181260200568884668551641381696562403670808149531809082178828853984000510454946552460075305902170923647394791962382757636757611946927878223890145919341018900500463307996496071065282215375776280336799385787157673022136197869052285631557126153537634553434616224461992903270176908833715930971036844326171695896856504104749303882920803245027871583903806860463057384966998697201788320003930434504655916782286215853544271620802239792408912799400076927639004448077280524523969335669184327233787659787900067436277157578770611702914801060723586097925577446803960342248719011726810336708132664751317649096743085438967140173219667797436147932586597751409798641076516714863772338714672249659244598963858332905703599248629250703144107989497685407819445676634780273523377616474408499572985813538861141354048190889129055556815327401517927877575532244083387668968226647164173713701158045427827684278902233084981729715918363766332629881738372466905484306948200960362332944829427658078597729102815848319505709486924459747496483375926956435317826761839240565394107518244458062688879705127383734514496269921092823267016838490144619775624710444241631825198100826243655786026622710241542547784695777992953349396903162300645091283580075846849310928087702083635590472682559935924162046978767955250796840261328753466239512129485554728534673990838255556843818100394662305950629066220343805243293036908371791860331896732227906967549431240826830846214379922428066650782453498252208028403237110248926840871033797650036404745115085458605962582384351028438625943905293968820755970073348369851590761677533330243059855856531339562371655437297157889307399033400101941762592332639637969001546512970377527098329277552100533431667725771882121553822516192721791799650153831716472875403797914728624528887992187483221575027834017746362168471737879981454293462494597399840254594949872421068291688818987749691146965074226539308543100697903333659287481216856517615078515264757089765373012337720822248969286692316647006234872224960109022160391630755418678285869500761391164789545473014409386526735604352263681920798959493933645461015735712164767841680734227772561066906070101604903670288472141988913627437319410121260141395210910603588293683315532776864375563059710103559028394052988464840056874340297210992438797560045693086608758861310598644833870161153537772500128193797298435481234488996623032156581210536762527571142494749930597061550938606872568072791842577987200490116897344165398407008901619168809989636741199031487775807532271585518321825243810071920543431852920289028913503629449563939574386793372332531804423394902303884343379275410447891219927940370018519462220568962343584627800444962373693091022820284981202257402749281607867548887076848641351927952582162684358234352868445785350626398875953061775494467783445762573917347392209789714554480962255968458670067938782874951140397954304269500915792300214280300584175055427517519773647729539123610120836787012699850245879598569687277939166654631354869665529100745717448148999058230686432039016579579161607229373519431724086487480464683421923691127038960722733162386410413768959188373978647428008951864119733333053723556575431254333576264787622634970416068820189618097725459267500509006605706259768972381513775619372348571439354874639626048653016803720099764853341854491331100361303364908786504874519647650101643221709242632700782730395433058648735713213264691044218873738787627442254703736750059880760285947504918288604998244806023833600873447494902203388274255485427735784631042169367490673287174184419443278731383767370944888472050305541574287119760961193582196413707779454892403216065043147438624920556467010759703577733015677672194740634387668168996384548669996698479294087182422871939533464478850854363266117058612276474556982634347240382707551812500575789938518517278936002321326536016017378263572285662266020762222607707692106688827260556500676263937567598400626996588923594350042227306476150278162422531009282238816864737620749755357337874854245442670466332722346430593795554663536928029165890816664879723279009460094520795045769750872441272910413557583560981777758509740819158393257470724332469380844299666198333858188436015947236087253861656398342776189833478195759162340144879975839409273739697074098692629118316192567784520481754731379620420386324882871442228952351642836458490784561783441125638125772170973256250798097616345327061864091718541006436136325626686316439699733232191862456542057984555102475623872560795129348179813488162325458268558745519664110671876324274294965803995822916102453383584958484676759323207159165652916482193236615041823975908448249993366718744918272521863582472573887259293457503112293006892926471640270569372865987341645680711949772281657507861290083275119485046084400260601379255043862646942064300704131302854329731421937667076992352100111577888248593442894829215522118779763153590062288340853424725303938996976840790444049500280835561008124119834863333754012526909280486889238367471665704183668985903501159595901320233197515765704109784081183425941579815621393592008218149810103775124332838548009210467598774507051869906459706799158094245565301454395538905474449909270556498419724151401140840413713707471797761832089326132791429215974126895133275022954727892731290926570709067398915996400557011209569260995200425444869293460687138553805941079206310452224864422321374821494452053788278420032968677669033734698211840243969184002007533417000326758392651706488487754030636760866474413289998077161475847136181677190546634069947485039849527430770734514275293255712140544339432803483935964691196220407622121499584947982500745085002186329766929853028527404025653545871139439653544416282211818276965065220467640881252074989896854396462442979173216402183298959825639806608290765224691583226921701445685294301783797291539550586079151848548798764999895643861256165284111974951324112789546272667476886217288590698705351106869753790465647204420914704917972980086963543674900006041458167398693696413595352686663057143611457169717215270276909894747678271666537216089454956844966665457279670906918551798872324644011644165318904753127708796537012006931311435636073653947208366578715746651834979182504512668387781785630662958025492872249058601823948083031167874365409536981111359832717553637582546159423973254389528796090815208090175867893604675761527995910905902491341273225984762947126972630348063034822879274971777672860094357659372897986640056869255236631864742733341956315709670989889864798587998298841611778140043878828007978644300568273388518703550471859734088329769777906234371483295186382641161252365641933044222801257162991325539829981296774122564761758185966604792078083404142956647349503865814258659963649748067300841279519532413150012790880311121123447196418203806937578210445909746229394579494466560443094393582224062192181132267194555694639679213041378074636840606972974956395289993372982281371457693187981032767699132435416586848195938481406238541028150112131706317309973294371503541411061041188147237663274641432930511598364770806127907780529356635214780038257900273262721091282352523505581320299513495309737219095217566559042063890688273605302356378392536220095898241036657750670297351022548053072274961614663136842490309770651168032126480892162300689047262462851604825037609528430551883416916360759114260376490138933044994396444530471278630142815415212867496854852473369134881784715469562783599084833546780513866328520003758869581917444712354954050574373324707770298702930655855312393004289223352550873563206202432873677339041626528342043117796426674995606216476393344527631828438317166507105168051892552659396672626832327456504871127434740589926740424852814326845717597037126973888843528459283193039043426957785371756137547700760273785996259496766735522012217274549063070487263068902457193043993787973836593736717715113007753571553984875202795664205325991041508097583337380190109288920340831076252490891178779569930315858223286225777885074742989175848194237377671838263572687082153239002202797322241926149146416797688374351042866555758609739317019634159853779651240345565256262583829775300762899433273754776802826309177401772289895101047250625058031753587981765976242761202840738034918078583129712555028774151681098017123404917681822962253904227022741047885177749962908540151758890622451955863778825778587756729980391727050926754676465858273022273691310462779368687279352294052332392850645486441133047280027675631173445362961032466912935903412107060943855063937049787388108296446869451932475661496370549312962687203578814874258413267700774715278670980598998916817626490077386644067206766903957376850350794053834137830206794298696448433529169041741187896434563714221981845893184089479680986794547317783252866800771605610286961341206774081131126967722258831750125280995876517582433093011211610500307236655364213707776135801904078400992239728749204092999725872259808878353980832844346213653905821277666984119339832886166509649163588797184768579046448452451343567247583989263176853010075289748731851354268315965258486521005908586628647188669585768035653619698668141076829405788124752183477508415144009232273471781407041256372601608203346175888004961306460861268035627933162252311887501052114633132775010325398648585636280217688692510587037453564050156601427579253185900342927830876128422945288170166632315082510586798017658773790910586567011056370963624107854418321028807410384721164681452889550191441160657287085607855652638142476061610858641264233188539024656494448755898589214791517449551156841072296751792339765428191036753650534943355531971797802652075436986563907266029014048998657173926833753638264515071344402270079773031722388215015658553829959287122744236580131388116939335115851240941884426008036941849944494868294013278660414674339558063260759391115587379138382210260350682164565958108663482665780111611908303512544883821141568297689067444450475372948220461272393931211288171621697780424515762461925022686725122153376268362680031129948680947891268460496792979228631937337604431667591685727080572153411444708540101500808499149877950016016151654889475355862760140596738647341270023425240698662128806304691699852410040474154822950845590424497618782513230227572634894547725411829576311043330135362337703438367163693562922501348255267843015320753313509887289848495791370695879585722742750701526368982777962288951168385471987639750933811149099119576805878190269644820831268049994075506625181395066406556144321866008165972624442237268565801256282526926638189756711889103873422953137473914761829070533567154347893029971704468814876130016648937741669361832966458444608368831991665149902118195440741113015231805085643740905547380466549527063243730481960745089594626546180184081071997990800408646580650212087593847036196870264250236504990917389452543418447441222199632557851807084009035862442972260920754734228473424563802709517501171781907374171545912632840490997145926335209699192259406661943737008513172372651708992480315521948982478824597676754267250727512636475287964231793530617284796343434294786347340518394672558501486039635245690542190456245521067673974532377023481257921302679105888239591122430678715148965394729443698441447891059149246347617641761187014695093905960567515733981781278445876523355970494382010065003260330165659850022278808611047688254945839290595825840204584578569688285343920485888296467331799246881721969237478437913901617910255527238077239249156929474708237673478825874642795298156810627579743031613066900589610579174146519745039112618204742509113524614849559770294860523613513055940039660724258193134076232934851598865701636917594829068365412753733855864942769493012896902438740081929586360830375116523941210266061919449728429127319509978227063388280360120888735371801845525782323623615042385598242699325837196676006417995170533065538282708268150781658983319527654889025672905678033826230824747957986054067188261452155415005181756557399525256418109180781279716850104951205239548368787232384527681001957967865386064379153251693883743256167684025390676852124038337986074615951858020733109866110844016650052386504635820625745188378291224164363234101719940047114380519315052102445871401079372161670241856693769397884319414832522833697614240761241019382376492936206884474405073029486667434940370766619870989170453421902646785433657694771970020160616845047000409686979849270052292058603503440088619436960093021916799921968925934274089869472478169602571614583705451004866160654454613123132608492505325876834594386120343376569625407978492452814397790068275473895640073548672592288193756071676589121562257133295998706566843145549760960542308989550463683226355058184741756620799317968314772976971328629811624125359317371958681451883349957636143232787293639975104800978525088782903949040003015003895147965506575729661193678403158722372317072366493219364011470974151225926555762902956068066387921068097346391542429811712248704771612760172432937613629078110225548154041366381639698092132419816515991704768684556791853117701753152988115995842392124859263141840321986922928767303973363014900171388643776822224966127535715988199983461513730859123767441562278665176248916834822105330775004613265516393197664399107694423899740989090488493126846059044367224998110901530832147546572431731343151980191968966795768622043619473813088540238878333066544077044637905345275306265213225722406700771324683287901822472578635861436789938576389969069156970064454442357305707283537036157862165478992503091307311277560255264659053105833776898453646799579337608057741431374100716284984873778897903636813887373419997397670639365278624381124937459783625370208998573322972547894312941483114947064873474137816344479851491329549713910169256554883439878979791254225617369047059285758975518898850831121469757849820121945109336484077122743817860013048292802628460400378773524426550035673519259966904457127217099977408151553316818113081236025880158475139720042079664780457098072140102882664833240673132219244338844827782596916331846081109808656873501576661985027464943224675348257716196915395012642708814066661839199066882220772457157459639516723754434295279570117544486024352295956959126248309755788380882771993111910720070482215653110573293599931147347058587277458816202369943739578846572324280440592571680530211383582663652221258381305382289870402191409914928432873862506133591103902893066028085634448483788856424567857731258387890810914264555179798075208328474095629477994395930559267780034058161790342441266104489939491936265398261657256015073787856177301203831615031424459275216835602913255431537992815419302887267592641438241326189569555843242829786052383931296014701835277354070172610939754264714620645443552010899809753276600341015482487592616609010227730397207946673352102799094790211843135087668793206496476824375955038371932758098353294728041433976014514162811999942007460035408582485681092652360874538765657164410499524545980759588462637089906999386940237528991549949395047477354012373468605420318759840626192409532715780125474386986704127139761693654225462591103489003634896486143730777626743923829000159186688785790445695183413635048452226548559243439208874343723966031388082552278852241732721695317298697082784395952880276625931388403855876574617589260336892018104339958491203640877784520683602322362952626876919996096587501280213597394009749929742426342059390130721610214254556950313953901819626744342128194196101707864845648093492632706917509466157383392964428779557121511348215415267611410598434059737892391966034364189244537011727761670361249455307706787908113446265707628597447963048501164017948980059796708552935486015532934226655364218379697404117087200553949740919375009813651328406643129414399732441541245325986141569583101808622906095898503304320476093874923560610405315804633744254043734530658211937603977956918234756896557484040352765907869144098677122936958391809808229082132660920316840850068968952984698664860663959627817132774217334339953983401740289564905123660216431501926790975979350172791192882298440797334029919811674273129562511288435842355637003753400700089234154109787839417617720802703853589006932580529478089503751813447083790517355466672443753104763587697962403973512485285710742109526747775802905521438964458767655647148224433729586555552169696541102449188833950696517401496119521772790107268301027350045188434782353743265628585920269436757418519845291918717201896184958136874575247046021390423658292910174335327955988552041802520420663598598452129940746617965877985463796592065796256368117550241069932251506911722210530508093297618940912153658019988506353895305370981256773759584670665264094041691191507956108403266940587296392598311699101699489900264759953011346238990894205144618960134999916083009794683455569561648946737143054634068489143241237272200455853364605285828000444653451570660034346224331946677721354733139368354684973540923769786483303233652162096680092233382146563644700529656621238835322188695827161882259484131300355616475971563260660046672474093909272298491194586780486566654055510773058588729489845039027427282491752532154121517533244803893865683344961050692635039525978491835260531515600874955040457303317500850580887357276959361618141998135757451357354100226541115527502498278436445960067933144457821064964380117110078612960947427114237472216264842941917081744843681296980429445664583577225758269300316222710733614974060764308842469800298581189847073276856013785602821726119031899843030537613842640856512573649683577716356229404943451097691089783454710742790464389402320699445493176409564456003067902923857833320069647240062353355589499003248812015145053883718805532929516596328253100959219614968584807780123024460049733235421179965191147311325368868048310722629288223596781947352201806792591277345722291009747503830234454430124809578349882807695685650838747389608356541549991250694743647037256048196232974308145587759528489564537150591824972249493178205211009593515150216384926416432057994656399847120398856560869969142445983922797380972542024365528841129030048744523503069469517103550478102068822398704449542964413071665342366551964643718848616449667691334621100702963069618595741589564794147819878196390256640174296957288908849245651246303623194458789866387803028262757833356650089091538225909742535181539216971267443919425734756676575522424285021804729545873206647538949789225435898339059186780926371693710495607261041242035033742455408375307972524644000194584185734240497521579645742793338514026113880097298254440835374826298471737670752991809642068421802556944597544047893355067619618833828094671256962744597064892643535384928841643629690708132459943798916848322066872633071966815764480803481223745078271239290752499141989724716630651419444516132795578424963669679787320002461437502806939636573094715959293656310399127306328644058644672233836437403046890435477451486221176639660874637720443181474795213532413124278798831254505554255347734288225825712317729977782551426361182478348617691843952725334272792357064181487683914591311295491180461427071686637158629871304898097574980259337992755919694691007932852962087132944742931023191791631900419483342230048910203655556980615082706395880831933191901801731486540762087720095356973914210573551994225087320259085882160645065555973790855691583901168141990054734635481023284138160043152223842002275415696688810516503900328346927841668592015602530820576541168185188614150077934804058067216772109442195955065211853160444767566527850687610011164067935408546084141890576975469374398283725232518986319153885841640049335109068457994106619388873171755401125466769890028809217678055807917825359815726177437493904235448581178059201919468330392489451259957833986701156009670402688430057568613466452088408993995048387054463175085851715041749245118654172310171296608279474672477325689625236270405115358558768227715558602728576435210675731509277629472818331376975672653750223858611892204009134300890908151410465809178887386306460096741551218293396858412023322210052666095586137929704103876334092463571642027547926458011993268620123379430267321841133595970652833519215158579285621982051248931080735354658199958547575617292176724191338852023529747339314992932228323135961622683676335382718244058254682618291069193826501390461613619821477389506325240956549180329830789231713582433076231043503986883861430934351864954949169445847791689587462105752219392025922363143298365753542849153970248595119837117063367099801980534818076157989110955156787720491548831522214466686946696862010150087596788906624838871125367029100338843782794540104111231591160533380488643707983244181829579193833494728793707985963998406950370579991217096566544204411378851104765521172302520229810321472296656937823275042322327419351358193870089652973730408553975449847910949364779224853096396110254944698503551492351317466096685187970384465556836636536913367439996359573059949030510619284922148299511835498799057810651846759076356344497755787063065396234981046246166918777625404933773846223896641449764530820653346593135689215335004273551579577540476342063204345347538696068716739413572619612883241565119680907609614130685868888762029796973614819146472859756526465944445595576309240141805797536431704750251907204232237586294932129376711121812224040712454396023568050539171577369445775654788720795446222971875270760627826390634879081748424445221148854669671152742212629486724680615870055706223752002362953649299965061017666718017854206115039329052666808342430098121041189185134913861576965680731766412300369588547613025732128504279856463495144334606824222095261615068482611243552191021138057595539181813397597214535994164468342740626910414533819412454076146799652207569626887908810812453591303166830182522623299924979261830109946302957429343458625770767886681288517439826733462741619987260047682852893668690783165653701341997909445158969632769346024820717890202105557321412447248220651278723726337068931314608762594667348772341179148192767024744235055631456548068181919873495041031374106487318913891754600497348853661365723362667482415062855137929050911392918119937952402289684168272449914353358106089775792340448731468447671087925216154078566085759215296974325840603523093123008931293239267577251631579046210686566881456791443717204162463539488182705041725414786672710542180236683355564878610195538679793627620982674462046820348174429045728544077829429742383212809648609143901428748288624833635847455069756119917821234292212027524945632048947672997394728985679510503871692735537317150767201910806977207136984173156785221403027556035091685241655548329748953723366509963397972724250582906690169493364402971610831567707341062595344260939709394403386430050162382063059141780175969951719488021239225596991231565700269110017467375481412565258551431742173401864868992742251828185106040160456726477080002939173070460300965864665784161952673317039096084314513500789655940289964194437343767293606036694080854118833875999919670976125503058964425028425636271671275869760849997041219730342657632715754724324069671707084853435201277926080947271283945128666545069807943501493392198857653499253851417445604903258495744585837730784917776687954746620199932920442813697670835113262796186217190253064915433173967774819653294633721267105254336208203388970922077849631862676728991058022792584655033377354255835438665404546077869151613507013999231631682646429750144640071567105946405395405100878945685505754313639113758235469209980339045473965076125313203568330784009542557856057909748807392304722926132491519720504701260033131921113631541918227746949211342321816265052270937061994512952607788297598758146325015195253571796999486169947467827990113208292808761604180589975008004187807917571629552094812799909069188710917576388387678591805679412971750706521059050460972993987895394351836321623285355520761840940985165923777854568898372195781621678914114543348639682691628895815172618991504570164631844808757716245394456594186458670152183556375919088720228159143016315374213386064035543393034508487248149501838328148230130575369128847228758699587115838348711452913966083463076816105714611420072303678895964859801745757877471564768809513341086215535467859748162950595490998075056216157111493186887337797412706482044650393161905307610502717257439184762209677519323309312226217404007607422861331130227808772125705541992171021324834848772069075350232320667268658040150598617249354580650838586010342339947409245065700057508164527100054649745605976906744914533671481854326725521824112728868374516971306800532306257246460268339060203644997710050548637575953673580144443412481969618357184732861449618178053968957985311246647138475640780281667974597874150663912536202740376747007879012659806861614360933171867513438005093776165398467648004869100350610614307178741578009893026508491972920597109383471429744267718318662898643021164911470284489099453989601001596130551976038508858745468679059336804195640478768718870430452858312329417853068985823327210351282929634025530548722657079062079072926152335433050016242356815006140814272108100028723793747302406666027921311645366828794683960020981199526524306410305577413046682206208211848934730414839652890395136796497625648241963889547476640609700332965163040251983164044194820408167267844244355439574373902308264219944531968788228191787338464187909814835107657980926658791520898022498629954651570616203436390267896130964742104827181495139274878861643559722163096984370662160125931845346415004135853773551103971607334565652586651524293683679313944667735629722206384530417621503231481762515588203731728383278878444215439957990972376470864121672853278434111819242797590387918037993809694175402908266133642346735535477431947210402162253382940361068563616714576308237226512648292697503393992975168993808257454341223877180209918541150974729302720247864975274788173899422196669087243382117420502107465673594117313356553801271513414795508595263039892364918415959353121553146409373461331979966280466291563971203918141536132745216224927436085675024403519998929450616918740957299710380860990952432713929894206736176951512916239848142084919293539840384755865905611767420301666225098628824541680636801886280602895110676877115351816586283751573580185110904101658122946662764143965088663826781352486652773089832208695640645446823705786636386759167646213909395152770110627970769849981013411163364766594764954889767666007802184281973966235297618031741905524195415254761453317478238593709539148536676106181982591831501778921204949590780592887317560749460961576388843252738328118026140527438924288818866861702770405502462950202400652718107258997266943920492939511473641541452629578125362475160417033328748029081976076548661725645076427638712915160064281192119201126462331717754998379962778391311147453775796695891360249084222930649857827898230982045217010785006629642801980177176069210200889591810855949999231698316773281443935230388881022691417691132395764580412877566497808952194803715506839094353454051709996343842882832186741113414674408834107888240821395400165044648168019922186789633685883719906735117286291919224548302448570067687881966388720470571434085442024051150549780662114279739736795183752132381827131878466590404228435541126054022195585110809837391589272687385451548515308420605865917348965517480880232802380659874429194138956542889074012137824398011710631998521571710856130928438157577205497052935946624234702480585072372228700428154594364520098418022045570926282564004076088008816005935245711004304616792958816245425342710696795418572562223516523536701484755320232027917673468431048566778316040010297582747158105048819566754022119712945653108938133315011872236570840042212741447946568048098428161499994165896094687055805990444035514764973109314293547958203834427432761281891941092892987146917363164285550785360348258322116492887572213550162500500615402146049408785764535333224091438570435528891170567254733503661688849245039742330376686546899552388793172625747899960841845954526612062945538157815102198852498225220602950755527956226693614179335341020623519468749055449587137834913946727615379169541017258866527406889504299169404822655552668780951913118507303688066934744750071664972636272947806663527661660518650711874217733546798340068459024898798171152735203254280175384739566354850562758279897919028825246730964659966099904614028018912881784071019062750943949317154951716946581109000951700380255312876302559268070228748448071884821985642352270398655238281673267549157647013380014251894494031315733848575932955726759103474283630096717692905123884652342677169846710636259786466055727045219887626756206579937773384948727792242166783278993204073441559166564920281594859703826880614019881407978255858220804113092122618685887768640199730819202794101583459840612915545481822815178431251027119928740966835124052840205626004286588558870723459870467695399769894448492001639665907226181093638864499224592431135090587926231596085636800095823300120698336498991032345109629816583091114513091166204582776049875093503533447562856150023419230479891855373901472019977400863817471465004638525403702009212062034218531978516756598180029316156681388020083627221490214311295676069343950248658223007424400923298223427621971232373304348658797193636495039804508128597758782029649395146051998248869351043116731967872849257150303910113060596250816153314390870763720825607159329547966048358390963022634334435769535918472823000429536003332938735766420403895923839227093095890153531454935228111911094282263947256109477281507670777349204197231426007149001307982785017158270127484590453496826583275792872059728776399516700052657745167389556426103384299261590109770975913214181746238615546103706953611415798829660445792597404434510048521622123078477986183022907099561328818624850345251192566747466139846694583529772903140793956276728409265670067547023899489032192330601645403827165289107865750759817921455208223169099788353215543170558778034744366908684525171062080443440842340995063456144746409063575875966037548995846004257482624873185155937195560857787866380536965542690199250631802628547183186232605385998043274344321111761474698440347149800162458541527597249365256648606621286603518801622631586505902842535895678785944264512946287289446987196518785321264275589338931817419678881412302063091309529585943817127302612324253822522126932527318762143734675409534657958176225491178441566607025982394353255053666575837717862135356858023658275860519560964085873969248659859375247564680868054933395642135096452700955230358977773118508409415861108886698847428614044374957356589251989749549277909109589996474256833133990057686248940457793667264913952250883703823180096846527344353845011171054586283434821498923917637491447670379402308636909501628056848854660735223311776136590706023991407750298374524186029844624650835675287280909525390115420744212957792837310297157774410397377002197901307988039316134223839876965415372020423863666496153172480867354741961855154230051266094184519868352299570284963429145384004795976379146218053734146796156846975319893467507591645542345167937259733563239902191017143964683343367356183199907443195385515412199215676974319798928460813406690485290388710836729216008068673781237416743980581186939282647179430128914683285104730318197696798290182500860049603995511994765495270205674673684958978518818987437421503668911485625028638464529480961482455557674296963052281499283088002240926492696326191469687813743161230588787847539486205359607744029635522307438522041592841957466729180089925486824123975141062672569850690716538003211426436107783719382937031256617623900710634034178451537837337748353202406513283504958755228019727551981222151478085620679091824042706838195704259068005708641182817604555542006235222557825496566793072683071218064156808664225051982291475875401113250600855566529594531439447330668904482465229920055733812338221514942384377643737520825955386405511959406944070016493277488134051857104652900820538764794453188658888641598960649062995154329662366123226696566149791078098695242318003496956837311168449722839012105059769512209195973023563748178949350973360238302684753751363015695915238078696687327042765418606583364036321382656142457938288654382054953512033118047870089359827622881872089287602943645657051602919836067209701388142803367896407303039600885280830327029473051347325575886260940179627640005246808407749829830908085703220648914124730247300533734680839999566514726527554282331080361345325473441292505181574000653629608244161806680983326210121581119929349700219627676531778982780231058200677106906840916196969738164759399984801056790989226804791756766711620196681984959007315785080782928000891062021939008504283915606414206210666367811063082960841920692600782931512332568843571475165115156340333352604740745568387066140743779372779025068653703554230313538807667588950616147324412850574629897777251910344108991250575783332743810588737121695605519044531255265786422295904240148928356352796541523433761608709724479915908268380043021536421951003508562777034986078973457123879370405376347569670508304590876262912007407414125519573905873693482713159800054573704472484618745371510744678605381042388060596592846300542337776159475177386565331673144247397104242560842177094054527635559733634887656089037440561063407825211355726324206110859468542839558218296917285619517693117618445321298067096295109141432014113936381057466414095835461181702120546396025872059332464758898615234579928505995783749563566681741257600906193252690517742063159167387530160813075513941277323570149858484514828481757346102595433059934105229409159568732902417726013475651544809056102369932118238577209160824390654268378392537625481979853222100626018756146777705518334874407464397270505119798774048265659500629313019365338304955431904372264777172694210176878401785441738677468403034599233117269920291953521086010302227816461297726270414634254768755236154265710572493294970317414572858986992619658529306599768381144936391902575748846255800248719032043979752212954063872330731710325687094817584884744972766334635446178630393112341000676059181081667937542788814512205433384039889158986018839814108852823224282724102745037844684041677066061486425262278043747280556225656427892108892538947894886671972339065263648045885095196973628151854725962092574129593385314600002828831076811707824714679831870028475284631546455054170700704689095782314117262228937384350030394264962099445025110507904545408936245466069053114857804130465987062867591267090710248743472131358887442386495629335260733616218406437894816659457491509690182867916296369040413014944185686581364065720105071374922893850759549860447486985965874318842003899896137622840018700204632210372105655256441888860010469901331114986954351103780704948159827547672055949701258833110536001814485967661740224894532560879290037392323034515815876264369796587809568293435876402688467193182006783370835544243604742959382493382582464822910313083784384325553852262064778664479273911009043593325750941587036608352375289548479917834119509352349153526675590746706186634341043538985316852834669407846272518379893401874027525041838293336524943943586742283329224227947056321425550220084835964903331764542804216447527781684478561584919918587613116367066030996265057411193858588083070904305732336113443665871250561389777706697562102090950233776033514322274590674055303778574178751808950005245339004198849270715394768885100387195734511814908544989241939071361708399326745241195611430295654063876525993987571445349686378834504813787894548249814550355243505795425207162679008892872522925673040506463474414114090532087870466549562393483455047749504172941315399248364721350598989506300254432988720500140057741932261080576973773944100854943224679644869298452824984329262741536808614676772499638505438682747196805079180799381072341889604550168356806149548983676553444975813771817944783657003286700007180678743419463432296021655463648239217092316576995260619482049311042953805569992612362979393459896066652180510258303349198911949569385080762869798628124410564563484215094289494289525089033081554070373616623714144323123489315573400704165704639282254166722126842220060889065791844970064973444567851409810160697106392175341252244711414957841305213993327421490147382994588824808822952777901792998754973852301352867770423240379111042877572824364101082072569071088164615627635541124419476591438041358478735559606585400271178241525076029252903801832153953637385124979291322658087689440572783221260802154865426890567459731622002007100329961761128644786394209011297047846596523496344397614426869972379213477610393379075695485706749794919914677088829968106857330515104674895298902368760644691428078784785237049938296135116536815255372931034485532247603923298696170002987202047955071111509916047883062468532322943499369607151667783201799695127850434736342835155769087399540381063743084666297874649668546153352840364569569311326439283786501871777330610628969346907695261920551034224283475815285128608987187946242085418787726807522382076924826033176482042891737721631107711310971484612322386558288364807866537306661313653576415481515303616202409588947752250742067186851619895951504845085770464231499618265478493210994574896178728181547698206750093535820660139877643736344987175909551920759052433664210724475533472966149627410598556577363756241647608439080309604198733278825959373297516796819485968690855518906877723111953877112039769334370249755417089898638109975703312377458652494213566135583338943073393027912657742871060897776011178410860104692473893256997463341829531512548123571813737713773628022681827438124910220108340627710643469431016910078799279352759730371583648630828156791752051147002659386785476487844126239396856209776237531306279160505768764640599999833713214343580382473060479979974600778300491942512594284916136016041980839613937201207640678387510458633205496211592357289314557755899203371568430189643901269663651923302004157524471643479045936847965152837528781898583896825328839114115315341059032875423642943846825829534255508061780288197200561859822800495434081958038490416046925782177837139236260415908710574127101651311522050562435769623760070808783118284034052569630242051052606831467346617230709817880023651079635233422543712489210786143537087973973800408731559890523971683743377801911777369592316863947721774087003799588989424540529661943170951304216103954408447181676600291306529791887615442979390565742809233472030880297848846652866476933642016979328313935903476393971364849983607284863376233005512902755616601250094126220801231581051921831055912701133003739224342527616996530964452497427705697806039636036400926453180437319959317013942552519539394128369409825972447066156709532946168992416618062651880205686511477580405394967714736184193725477934959982422504795814017534413358489867400352936473537625406033714076266118897940684710840288662574954538101178595855769853915356483002725134869394911647165229928715005389537793941584819688903631427024284095830475756344194540626029374718003866227255781837665062854175466645298941761176224301005633123742736348578277243355906291256018792046083185452986583741522251707347673346541644336636841206418881985623629333623519510940936841171654348956505702120181167990578870916632280102272468341924855810666901210245230096491698620882248937537514670985918405038949817983828460734386223075302867673399164041832972735556074056652909525441349665759962481326628214330419389586087713324967117527099104605981219424079615672013068004382638238906715939062043984954142940425432067522747936914266031318379279638789913101955858975384960074657828797567634982102278834710887939087237515890226852285227022311020810691509752593525825722696362223159427191970956597227402219189521540446267698561352800592820111014299165695912070152595443212104186048807407081328356983145946631036510339998921525773214449804221291119874969265953461530324417385764357844568161014917850750640946687945051628307475455502325492080771124136247573302155279672867304368571765393558973870908200517144581715977578783022150913780823825267029032712369817864357237905105438160244297362824913685472175341465428101005558015439953308858439170898401727702246230813298692619561790474710623524738968503696447370524614135615274768095850199603220377397932666271755953495288364160692401423271281231364941604214731162967542059150495537141913146095199767162670066390684725368346937858687363855448376477912374287068120826844196496868841141775659413452714460059095144827592989172991318432716032076062349433465342390786576402005546383062203394739639724224809837194877487904553367347886652538070972578341282726649022812188047708499193095996853939515026903057654258536732346525481493429137007476306295654815669733099360067743071613844341828966276703449825203176701079393904849282218144666504445999283278242967250755561804620167955550703058136958051911048981181086899143541928851322031484880452876595823820494644637817709428930586188755883911359267246661761299275143051532620328113258132959535401320301489759564115009052396267293572033092819793642557432575689757050249830450234174170874379075008762097346901039342932406359118218911221439396848179172210262455542319424123677308493417353284126371338442426421282625913408485363972115820750168084248687652434256734748315025602037100652879472744043513151922673256969996244141050666644207427439893090889926620537630425575401991559918819999477626776630975074039678908984735085495225750065698963782181580146104771579498334372300472557474623134264134682567045318715624241015479088402623028756201694007165828364756572960370818125332864652241839543854843988706366692887068311782166392566910672171558659629044193575431316803867070040306042950861536288655822156012658777314216721636454389646149421039026816130790320312648653645779753297634983988962004990393104965289917886248295761750301790146114530558460163872469271449129815051075711620794309666351526488844081356036518002353266224107542736052081677079732164153274264942439597198015199280435606852326923637091686747072497965340637530916952824492351665167036357968402852101390284358800687568963626747961469074099162861206818161591111008144316904555626050856822302368697526589028402240330270289146444611414420974971371599140850529102159982944300516042744446933012616770196593206344036711931690145168834603133925091824127460173821352594559819068821627615499951883249474843965703879125986227200330712361594099198993667378604681500892839058243985964691890148207777845835047318086658279241088932099589197956410956586442168972371786467468029765986588806360524117236182262239831217097834384163028894977321921465290933102229043693763829180326561026697092687547117984564599091679041906667672075911265389279170660062161813039626737849392405056836437874212897637210436470846130093267178558354398664632182141664951612826405869278895223236720792859602189838686828237171776526904103172347782222970048088801360064859954618989859089976214756539717691964036523544235285791692364123309787331788917728740392900836489198690272255142455348986347954749443948603695592573323609792744141213646044533300007574602067077522394281614154028765422230141410511155026498750071067752606247927603089966616179080939815064616470174777634091414161309130923898291788145924930081693947472714849539720044920755142583135579163984273911290052369863400678441299543599506637626523498758294456077683651183608241289137259352061499709011793697045191945908495805891027048160136489136846377049981700120030274410948975580634810947105762867182156473312390663940043492841829592682829784193173258119415054477057544348540082175325790985166098170023026797783143011732344955327694744899525556155119938667748687321321381687466697914260884096640242702289525284734845816385546247057517800133014324468654367066092054425639766087031086076321375097770145851129832884599474468592252622079348953316694358410929645714851654528865671517729740581065420024861775875613474000366286761301727159613103013527637575184796561859784874452237621998087218418729003409808323615502202216044332651705625365606376633462619771743332479226914247826760294819979170938344767394932727592171163683711629710721227399055416044045901860326136537979065094909887539695992675051264077623001230660328371447406693952437512138933537718495267213805324561338621240168015476632865195424603742355711027453885453899104425263431577499265130870695065839683994578532608323215156235852098765864820514945805473508430213292634478851816405948028946222573139269355363017090620663053677554676822570757133623652967895458264033085715165033676632332733953801376009103265256066125305818127117319977288625516164768521783002141469363110190093531606602363260971678164645202881619987268738416833086360960745965891002876468688139921691861230735444449348318036919912549877695056217779031525388207329338438219349069314966564151169585398954116821618096972478814058777077896085767324748547794667005790878891165506874043488744251709755746795148643198774263283185425534142392235442256795987308390215199078392398587963001991892593270616493203777992054966596761067342789310068404920807423658431660159615618535201149098599830017026038320714326766844545677875764926914196117897856842041720348160181331824240754793478013294075442357158713421417023895761334777352578469037076365620382159956650160520941570840800560049633951308237296791445080271089740716408650433682670515120960323225792717165453910635663404913127745137506614784036709182470159538826619433324408288214682444793735435489569508468663317376184266367309480034676494434271008612741208861946282637727898404151976592521315324298308987305423108995424142997192776478930237007227591381456512385860866601305238379769022389302034961020417719420702828078869254479789209484563871144688111928286635684125042411232011950758330062458491294904045114698247314784932332141611704334604649051784214561759748642572248369922544582645033545523190032182231695209207195469860651670113799135536104747736737825495442623456121174076170088939267587655905401115261838764646017180566973432030193912343048290828992477723776693298309771885716173118116645302993899271765420663642909191381101226903826734234013788059040943999321456599358928997749023931297015709735727857541597535426687629104944865544759724414083359681442272366864718242078496207009701637127279654592668151607908589853491594711800111037870578451205168873673229069780798018391558637595054799568904552032792321953042046956961639325393085199285649187706029391774911461118327539926229326205014733794892316890173645199151201205989825060482732340570358731489193460074040956244159646866818703374132938196695010724961374875279726013429604957689446194415658335840296392798358552368829121999038605237096527259540381075864209911926842274504168379327751921134296894735676269757603357849159733615458766772560847095099858005515288434171837806236353509423627972402193249255968374661731801210995306526001980488713877674577698513483053803819789098285954493504276030410518693247098667966855478394434410567284760596514914503911563954233568487948706063990247900153349548834129497864927219136270087000107768006618414679261067466640696353450190416909284743739708508627491708935467479334669566565715858103173742824923362976625207186959740353114276608145554450935448053543499763626415334604228382971702442868863486943685577403205181139317985464371488461216132023975753219230347667406280369681062707852101128520610572405616014915001786075703405335116506534963289955930690888495881961776387724611934083621564805625969742140513082137739839914535795096324177286965612216665587970485003155666883167605848441200562808675876286853862482425280784493040434996550185308492568062048884859346737018312599024257211547821930245799221021546915375665512433673777739268360015011084486638655900877488839673790284498959414125680486474408552728970294511354829812964688130545326443089169524973237312442837939714047264978930267350836849251558344121231720589544246648194198176156398961421770492836108311265192282832490912106874516140923455912856864974643149714752504434710405130516318157245894721811768438835388944554985841620938510109998436228245839891006411276575643719864374798841762776365983455520708298864471610964825658966521877494218002732448860459085543827325959800255258750986719469208793104983729613814553377900215622396693995077836148439692693965934626967092098666881387966185574875396147658752137704641930308170908980620306405126784789667276429750735195245694651089225058638091474164876607726095131483341449628655744173657880744829024262362220272924411236917554046829318041574553114648196695538530818621664096739239454964623463865565791238325334613835343820210459050213596355506701910389234439772240549472292452884625002468817039316060985475625153346870455936680971289605856347181228352667016424212320199505692061092497987767579518669641011442703448957904170955733620232891935128230411895285229756189714544567496237313115027232029282593024637310950576980119772847246692740256764964993963153922247767998806148572432741869005914332301484277748526924876885564380287025132044595769081370513033387003329916721524796751122283242393390230254853421166251158410308919917656272273211011144618355160719179510187133938258847963619568264815016970477573320761246075230231867563672217041407434339701751709050656632968737106962330312263382832190186447750754160529154855187233515640345746775942147005053801532756054987681933591186339289733302843099697258362376509745129110146676972378243412276831225438678716364535894778545075776652130824372020266911705410864046427891928492413533074388141451242230682458180260683802435634924150103055958459930230081259155540713558149524401583066367118381140040081930778859349155777879352132155402270815876608937326745011441537692719350243550472454333283326411092106822264037789539236732723216380472554261801120946492703500983221877760207259030634788272090062267523067751961503813398438461251882913385616343724362783669713845611540745439088647527493604303595774307866420060599991986134881244415788540515048659065872590443740180323979421005208761305667020456390062524777693955529408660829367993400925683381673267325186800621800882158074313999276477610891080836304268876943724956543103941294308416429776201616427603653551045303058599812872805442106099849959106496113665731793186048385092092295269487058640766646945235129836864655496880875306545114292617459431168903082402400075538987232835078117098396693365719752069050254581238448613512013405599882089941888022715522726323637381275963729084854931709126851469243029164702543699618321977240523325467478997088744258514231819158224308827393332443061927387973190360122212874889024818061023917551661104949272341441757206858450635030958733109574983091882746489692084618601463459107547402298184230172795860510436928471036809235563488761366465715876637953823202119825751295526913583633236294887943343099580886817942169788620868561933481248469041896334606276823451700708262076042292354535851986179595734229334705881178121329311002602911413597065387788109344233754048516891742803431760775320997023643186468863036461532044187074720695526595894213792334578233430159811764520694120764621583023394107994377419530453826466766864559963330705457431198514421262734493299011005763069357838067823551084516577047026335954015808675263256422268672562249945466696081023898949116137372341127736622427490343869665785003507289701998037937129376284760466079608450737428779787556852372272997611365281420159403528179672775608335568509462909550322400517637473836854711207061744136389286726493700550019487831185317813551957623453894656515047078666072795140900706441718851609587040518096970876932069924959528145823010187627801542833821043525855234756079517957895444134580239985736055696154547026423222798645761832931228307894938266604217246712464072716731816263582384585042813559842993786167108560383689278222089984328173297942599305483876314488603175889470081705920850997112583690732973695214532791570578455234387799520278928763426263476458661626449555586436815771069560034774968670133909670729470037967340700460411809342928225440024233954961052521101081897906912848477065113471599420368301106153033816360300276314518701144474643544418973874095598034355097189134876622112625841158831325428345898883624624241768875548054782721839778361427181407946051456655168912501975367141965029842727669482602635600922084337199528941920864257974984631871205162381803666341429174993321048051832559065912422796285908012839249833742069616789856505491519380901456489369276749924279859389069956439919483365633250564072735481807747819894702519919312050309149646039625706963354726266519661731743644009109192370834254097210564623173354286962936311545661145113017748678164528892052077591998045279283869092767813346337849725841554214278895131764799677854695061866359835274206882532065172873020893208459461462384925485801260955617706771414433595958098532277921964489215244933575680805750382856204668228513344221806269330191441046543873966123910818058949928655882256286896946935781846480492405510076658281301551868845747550602890753136439614947673061129031993388281575580740931405925241692831861497198727679778866387175811924957974153202198373204837558537073771880053442913346662040671808602909586193508104676038443367077380469746621338695233603288058847415982959547453745839285743351308639577009294624296009699173611794591807596480497042921542098186924143506341198898351058272921557926854893262556955832689831760952309182395241008614048493939389651937447597505784473097438958027892137733336051243972094980665469950477640296349653627878769083447423613348823387126573700473780810313428637637698192197521718511892686955084614021278667563509965776366941661121170012383605467104998090845876562446164977126695703634349495456598067702805100211311358716110866926006044513007501099384481563933551793242104528985946220862665480375251755957727524887610679882401842995023398373096697061272701431516151445643402125538819699073626920470684090283267916975446863304138346565301239576471217547065125963290275466328008558227833417319513955080968816903718218950622402929289242105926321476462986386566728236720415255612680929257618799863273735630026852203428498785202492736426171549526819112722484276301783611311403245907953830266726076721360524304248370615464217959150682786389905165312018356260486206605254291623552521620532022945573137268935978854104718552284222440585538433251724060452071771132423891115046654098279766933741053658890874844130902575528060754338246265653278152013066736906831674123204779944638924274341913402532059507833707041936357446860444784871769251487905022840300431264104826054984894891618958577176565582772080152214095542847554312440260569574732143710685386370992733567198752935567576222629090653532199705319450978921161179397259971415435758467726702258544721241545651091356273250823926608103085275703486616585944397034477033751475251307166081547956325839046936394431727834307159889840435257257394699210781109767775143488012724046486932849567944656475882515794522488973636602518908692417304567375053738306337225044106271535399221922129041974705450698132413272277568344783374339595249780002710601184008011273663630406828755539733300443391695087343881248336533716663321718326259102930844612719956697583814646137224735836826546027660923657952464358738685208699109583052391815708228983740248108268191303261460272983886793022845784075750968535800336316899848938683893409760153500722500907378229811749110308823202728857321526195657190550565513818045785868594902118974394163340763853803860016806010586267950679617050186592938192442839422761979123256045885015791267901066767846343254927988916458708966420905832199985403824240078949181119093710540052432470422420881835471526391431805519919029443032876552802511416852070389699517551427560926673779619058383540061491837427611672745663213930950218736346585017080337288915902361827290105926124314846779828661802065729562022755402748934722002251560957608057020239249897125011953427145571975162040959918457900077550401270631842281497405881816716333177988826863606709724298554597619636734635591601232103030033705558780799644470725622940663258669898614965170544404621610090701945843027361112534633879479590578816401139712946985011873698880818858697533397979065879172945064234473808749825757585284054864797990226589693301155871538409134233928102088250723445006095401582663269780427220246488557066509636022323151505065625830160471419036049693324755169363759521634411463945296946781150968038858181624852183906460303349444077929676614559490497726239952552682647686714622963223748034670680786628239041274178818437783466239765428792558343932209902408846990389064489764111323853665879988679641809841375372070134708350828920329956594140353528026834380686133432775779957930864574733446522005093044485807575900680976053854861557161404060476899204908644554763577069456386566623713324713332803001994045623113876307297290796596799301964482718371539588707838493650919251845979513896465450256792419425674511838973855360854174424281472398878499720071128269065251839005866096697879219607723885230013446727294905794767978664239824948202405355412938193910501626841897904404015311515489821325719276283355055488175977125758226091660033173927046290619696448042147846826831197148773028854279309997444370163705305342852423723356302204254267775730454505092135699709955800483730006745336803741016901280769437558900411553580488897160560326288114114633298899418323516706055728654845009874166520595403229569831539495299313469548402042259346485847190610135684536670726349481696641560365688377600228683609357515585339120115908367929089061664770089318198928262657942702512662101331519318383388128254592280740558770480107729558266348662662921411546617855037226111484148321508281460140388469714764039873106387927892024504774078473230598418577825357721603930832625052071077290233403290944566045208508240407299247134668595946796442998348979894704919047503227950105832815163439384474214189181922798813242520278993180624873788680165145432819703584227427163874177721133467553985132856088758098749921793590010875517156278616090866397325226994292673176231619635965751248578352102749588404978248310094194866328447388597756171697902203742533228225928498897769718983612570629094352182783034718403572612995431938458779170939180260899686444042074791414145605280861325456302263625470561622785693503371097477908151044916497754240160039686880838416001568396971882527391027861731984703347838677393761470866001598753725378788999507833413037817184962750030065646646868572313995255965142118974769107069283290788609578136228212787839002805130627894490527802058315339989854583757780371547602342457263916189469902797235645979626101895349064852293415051982777440710706151703717258683660337311120044770967032945876181992587163795159165577721532251976596189616098718711152138745669605264332668783941382816433383398213103418537196818569457968018349349348725586464280472139568481490802994915673160534690285644676796774230075321838906323790795301507729128817824582612537761646969989055201035769939895045748720219027217727110296972195471644587337385589170770602307152652396170443290513019699404896885734107203998847474169885184716155394079977623116836647156298428322919626605191378061870285042560475574839620559608034923694876578180488771438759614797852831211221867992522982621189884794310167286295210484503807179394133322541758840233466128900515629104077608998663244509356757329145240884037418126004668906906255139417451306789426449620282935241269127608581922491262737957916357096106738626840538810988242315782639906063313636840035568400434704802905215412667550104323548480347860689628448889772212722234813858472318325209593109500579083773028700114447932938660430664797407996262327711068825647034886691274897758135560818174184343987529843315387456199494467450016889587262998107293831768753775993231543338962025452361736487017287369965345001826258882533916323172926964527783805671253176270561011487729793512140944698382671133788297388179197519228139871573059097180763844483613249298643429226674940494308176979399463102174486442178566267705337103067610689089533209667864965608727086397572497177123748362018601821546519036586795215266937000943890735445511753448478405683412870638200876322279905065322567239057661084913340135741737018988811668941718464384428708896217814997055619828303533031048513338707075269231496365542879979059123421508613244151836659562692241151837954846989475482927354482361883154150447558647792039057666432187810604285878979451161638330385929869313086150602697884498472934825873945021706597383483955448276189054318218475448397596164087806988545505972895707364801603107048885421299930977874444390705771607362393552987367061606362953575982853188519104020920733178330976593382212962029660436423587469225834032658381614260132441778933583087310035909883829867235468640067928386118999694702369392170664633238895051545672265846958197165449132391634080172303788958908388610736223295355979475126326519874397368957759138081254319850694162810650756700154375411449449845901638063792943345533519308304443818549820375003742967225816439542553113113694698995435371551028827425355582247865414757604886078438393188541189684347103294380051865605608478709757932485171086088880075678105633065344677722300347743881336619575511120312055261004297115567008636541631005094907786609420490204709480147115617547610277377055342290811609168600672028405696789802912807892935566701339806382329692866338315352746611497647611806472159043536713831245901804832777865255855475416730240493839828680558351649694405940667193042663934822044160807952561771931219632475759413512962664153323684150953023442643679098684674828096200966460494432029587539699516395603183124261528771577865986550882902780962453398909482718676844692874806896220540539862725706672758966673128909622885657510748203881470005595816004629302138556194530517957756901216548125855335051285015370331094513764024925987444041953350083541140016144421108135325319481818255760647431588746233577398673294343143770076555361756739951603286292707503883201771745214909446119622494844012815535867074426438721613525063033979164928237378316193568695446224629801008806963893261479795990838681355439604228710539929919014858871088472663029095025137166869457858168828836486362806192938639989050149310003245859788742403337479384716691482240393737313778440329896482040641465605596441077246595817249171626996596869227636051364037457413093680095427967343071256372735765297069685722539740775941210279569940177388119280125730477566283660436458496797635141907318827803666785770055537423481065995716986568788317743359706025317811782972390197652510760404730938338962905123537463954946327573486123557286695607964125414600448885215369343060284005204810157250933380965271949700149431210418066838170413437203983580998137877476001739818805455100882795781598454952849162660673890031420464348978890304693082495211016548848262320169341766747819537142396498031050643771027883280832602713171012533343666976908009923570186114284604823404596019972348436162462245815340922130188120807348859515071401706256059625750046104613998712003103535927027475585602189136717600749151421259638022594911120754012548469153505333266339908349733945972580899723914786350476941147042750950393262381238126884422019764758792477264903062957372928288101653639259959117018288284458339504916206402189704749761370289613547592346581011747718959080073857309639655663148971782502573823070876225023117092704924065412657923247838571784111548642220661516181539899350814186783504561741499252989681751703353744810667204296378782000374605487868333466278013784392724628656851837733431775270645970046265661497268472560584085965493003470800069472146227791468071770596750607128288972700811712208719384691167345516322062935173668742012668200163119499900784380234111849452998575680136198025843711498172786569074114952565202272322443219046865484509940898821151781764085425614138281392941695491770769114196723930264830864465790895163998232873385582153107725080070734884256641122347425918511328853065380705614285933179663568466204034739169313551942390649582250296644524033868786789337009801271161288865455888294675932840734671169573627571886881128660637563769404148281756578336647561352310602295536940326142791189889903999295855773573503973155513160305924038253900679743216191193895198237261585553287932731259443387674768530636641382507439044284278993721074055062111732453197687442311642842733720807790853803505128633906384656786890911994065534935172147626202651203031266122835083625565865505554460513456526194194791289181391141109225037553237174584631653371017347812897716309648514620035492362965605926014768194946168128005772428109308996405066764803461462076145459193375506871065953710277607250748479412792901713282725581199108004218098661402606962054009723206563532254734638798044321958678456038709407580159045732682468502216009336272254152261100975069799766874570676553614516822048221977159512195727099266184441100823666867492917359183457444263960066112162739521194577732080922205238025608303605607903780291725900620336679048114280683485431591547298673238873038279529437373696023089095165308301661460350475502950847450461841637597370753003125929437125998500621039030870797085343423260497237255093309479017516683086598605244767256564939347193590060224743161134026479952507291458569215720576871676059395895456830211699633285381828038290808508127357385913758894122310271175154019205374107785301907765775236389300054159223808496082137334386231598995402306428317634238584849126239592109190241366128419855984946497970963292514020828080032537951565352012592988849104483064065513363107562554334289153627600738408952052558647290916178503175699079930846279353274887058071741703276894614435390010741123057120618955144561037837250206324203375891408110115779086225696601401507355063442518044962503396867184198406058957941788798559219078577077319601374445541884891110847735385284195128983828957317000884926784322858913306270007595459244989130189240619492684553825021793459145586844094745929923203208609342455467129461539597349018574251691005393748993986566489971945508180565098621963050925780835709920231276252500804002424721893854185071106451264983322680094567393955692626962383686870487638344480250499099654581165190575320183279462965326160461366977668646586512888915909640358244215192271135426453518900591905192826653528706068535670819338493577079587544632088980153715918971531283268697488717749836020222576836034642177906242103610337288700204416021283592137887094429443167081766115277069889148592311392300729362919272909627631435315132708680975689489853039292380449637695946886932613820091467670380590717617077325963379307591505538949596583210165721949142728718938363515335155970648039656813329067188770044807493476266353883936781195584780433043233924151855597815700409062338066341809490552928628380224840195964313364783096478282259620650987757666888956156686943335730153568854469963971920565143374250139942207923534031680573649791396643252520011096702284250539128504126411578272245019075399956883505608540354003284052282697906134789685997582458591920768424683019987617742565351993411005351553715270927227439063170117024691025957072379646040771009787874283149115573202066181745433609068607281608574910484206513571609039333480548206870180171307358608460529231927710355393543714660778223459554016835845984569775531967896603230739916622662572940470927068954398109190299979824067996588698175520110087059737968328777696379394864770774648164904043447527964437916941410477219540299161846060639491201035341610277142232460430307251110354757777591143019112180629686655284766615694317124846471306657929902967851963453404349225192014839244921343261820278564361019153435006517060118074648751351077014745412670098041826889301852714049538577758224573133356720719331135340475959696427704352190990464293999442776331315731882050855111701927657169214999144994941952216023454666863698117466330391894732116981053942460811172117614112272877713891331078634390064330434521606529848774979625226575794062804536770393311367754497174156940613847611734607706188168505751654152610767574185697478629017077089269170175982981728869990198122645347399716892516022618554588600409619933920265890557164062611245142013391573966888567683850214937295869044866050562597360087246020446132678760515017606625943755826406994634013616997644122807197865522293366019752387902054969220176018186274422405907403198256404021088637932222143277310108218111992609889470398988072050420608651214954860653177500200109001721008033424195119534126036225385990814206069337599216551553409169881018450319307155227306731582794579892846016383394281159446046321186159617536233293094032315234508993207587185438550348328922524832788173653454781858084644496641260550511808025731423921756675067552460233164418026739160301647833052704319764596425486686357317315666328920994941710024892813671992259453608805646826901723094259890097344163373222300696598335301177503660902798870291530404543997672557503453893866191947279204929115509555780901329587349674548000178737032029007719013180445764341501733622798013942817966078685466889948016160629169097648158047741952480581061954914090488279817666332016046581241091993426002819378120898083495295578569865697110522031234193916811937849006038179262761578873285100501538156132580159014587638922008335083928808537157231399125583577682477737137345699464279340859796805825945459243988289000525720671741057274303639666352084861935246406110868249203208106276832744641431682003005498051531665886699631790163061561048993593974902622800516559052332595252312852195139311881259079670197559576127832096370130491562552209555053000860886573769246043800845731915306526756150681296322777111353555136963660476155923820057197087941569070889401405161786051299761514773405116491209424118399670851346944789921044102050873198158912624311195274560284874848606597583900892655502372227386192442637364880918311188945805171220240882986387024785124788923466150482912357435615777815160177878120274983702102492152699574287183803733183663442288995974643925349340335340381916391021858977191617659064593400714521758751132911188185366744525440590452364073809018498229406527109950708188984895048578870536163625632257648903921924604346317992153914486218968170007501100040399132274277283004708332535944847802733954352809328875325306963673248158607159242352629148138555245775970880458662949463867925971452014761719393500871036904227775347741123661746024950534197489426625817883286337633147712880864038202754603538765197508762518626246441625227691270638631338383167570835395217062475633244178814577035505160889485382356874877433004384914110896312676735670847941069450599164723176419550461921302373737338324410602179861998971307057114892057154046309708042275671565374407874387409816767275118457265913399054886149139328821265615045457763743875663603646631032610236769959575628765250535481933050007994627386156181658482242741739666499205192669677732324461882164586773290167125241377058108949831396459053990065184773729670239483939216185974141803166713755641440541437456523096513502292863482216271486744164011209492788767245565338473201037760330272616763467439132501305995239623587613100986847145370045378973446018811939494437286437949393516882396154515067151475419711529117441906036960505274460834511589750771882547460195372034978673230696434386653946954727383361631204204765245068758354105341125185276888623709777568094176300509623978218236584477649376144613897806415037297347487766335542030484755114723145317658374206155701721723132006808743590303153697751769698408772528402000930928450902336311350322432933662161580061849262686652040986835681427462733877486945488127752163006816266605225544277161901853212789984498144366122108787648213899517601172517616623358579085576327468642059878603975832749360429388146752974408512594216101182464214884488430221623443967837019622876092574152494355996890890319255630931705172707808055974967300896581524091122707970718801975085313440999957094014956018058949752010789040401098297170434598667199285492330353680447376592284569534492320511849115800204172872562889346628375377342583940729737711451401045131895657708494005363032590014852490757663863673737526640565893261506928505965699018885280707534019300132318695974913997489178321649989819898917339341823193777693484808464019411293626577931837356886806376756402516594548906402362647051103175015942366491538376551203588909768066270017640374104291727293226822991850252848312666109384922578527153783958865975907777251087252429412269385812434756479396773632459704495403284344343932376877908859194518748682758257144994283769269186241249386117536346948083709892896052681290091436442323704196292265824704715264511060029667438701010744639841599057452325988209349565814129431386111747594906648687050070925050860233819430866727548098372001980173260494322871759288857611533751695867186689753316606198286251214929412384565945081738830671264022048914130303689579163117333143278068507392449973652005259581001890282322397930628771915903551173203821967354517679441304548167136742714261770208904404195373018726774456951616244440779000985024264159863528349129097048546430631671496354371813402670912847102366990485265733714313517913145426855813038594413469154713481022543743641978390275263482800897406323898337297469155105574686975761444365636518509662420861580420402472739443427997936149192481477691408310730433042496524814843310588692779360873366164854242406449455622845981903629021684395589636500506130212592416770387588004726385764121197389813949684342820798290423404062756506363485362130750511503177806260565639089243934831019143970469828204370069897789071443839633391000284066749456361999357551433177635847781527337836378896983564205853910274474247808406019970906149012572767046985795278820379797612898745975954873452032757692094513343260152834189172281815031217977387614227626279642823399635519621363372295972648472423355492192072585918493521993659807043696632883998659548097090186511108962373294175953939463620164120745171465775223909209256591803347428949342129009959020270766010563020090686521482784975111452694621316311192489305411154855864225652743891548549757425426296722229729353498811601501082641474988770328031477321698344752884678309294414626933798494969038127829433266447338278978423405115595031716763123849415909023128510214132662781509220877452398709869510505793390081976003893763092338048455399579105783832999641808534927104720316146917674765978697663464573274878257837406888669702425687973115093316019535423778458303260966623947827125042482083531614051959150219005404860385816615089152798771697414617850909539405401786832852430684733118319477705910638112818673707624826915886576947740239017157662544019244336134602865755383650990601129860669117599943625407436972493152158390314824967939251097797716732837459639986175117809452396345265973881380776271540830744023882778327015992304207245484059641900651672685990851492040425725343511378261644122123911191669024165374186684606223439689428690947564056801246677241519162095956939605156864589956106462320100208368482963634998842255052740048082023493944575406997634159467092289058811421790282487192332857414734194562403405495153593569176358502780095070265102250796399464826419336506317368438367806814232646268858479712173787875208704161463181902063711455223848023840825206025262145210977231290386337578169671784175786207341962063475373390370735685660068317877270799287570165975335916754901221815518185308667143189135120394708958505292734911280479762619722980199711058156031127278734607791599549214767974282241516500185676720744537513340139983199692082304242642808408341963086959014889664242178361467563390857724359127213900087819524352486860385363886425938247676036816593513360232959086085851208440743410489013461828082437128911741146527674765085852036652572127311445518440027459749080813302365592839832197158652436859346492110675494366717789308760417572903518854780482534223313258642984118663111610203498997171399751950957212974966724618785828984388143032798692492109751029740750500130488014234117292554181669071165376098939489819662374073517057895489112821709242993057321394309073086959045381856392678571824876258127112989229778725891606719059787294344121630122514944581834592520796579396768060049049299843411280518297919961682765283549003896435521213213733590258089230340067462753273505115876276212439465552980393219953607799338503306845512360941602501556757527898591644322679479056314333487786911193585794107566509797269120764327603585506338140171193962856798983704540669528092302672468798203497390076424381425302919199510711138010622514514138564663468969750505157938718245115383382286513326583596683800601308919750829575243488376838010923505939589025881275147037736871091829087345638293133610543137439736399863717559389209972754389185916698162471703237806749485960342357921784870301482774270072927886647517974909753675629232521479149883025055170762685942769390535385540921166474951132540690212496104908248502651633122918100754978979670978203119066763206051305809565925076373086442202499332051347807753641811438502876338551183680405860432349104862044358210995879907392135784260240935169714488051818792933129716727959783439303721468499742096583744679301863584680939022903482808245131398961256615431676566941147461143888275470211671974184690231146789333974089388951333675566304460733873144126310078383951900470876263127542420327383788994018120702835940436875129752272304467994051929290997798928259539539551025531252584202021926587411011420494457631382965486996839097678418648641285925646010730204185777188259904161783816095473544828514750894894251982946650561288480307708207928117924710509345405409535679132423596631826412272984536651618143671232837866616473569270709561370506251890351139060318534497558905363915265363283071776195934316458953057081186155377542716725118240313716668010900551482483954982339544895258683202518005183812421938072072356585961872558054007142600087889694217437419894712283256416698652698883930942433118815495366506993510078781181452738133722261157661569183765273706160875445590398384899471204908978805359335083459305151884587655153140776591110621541221809232341552493094293833839658811085485898378183822702203901661803028428314774384333354845016833933972820771418319014642544227012437867443175980014117860960023737400945763252327574042118081440587767596269645183192939553029109506969390350568803498433908183323986668493467638541687644197763951769498447141218797560620606210492709848612689724916070260715033428781006168212477687775712456121705999972928338732174675833704259473282613172566318571870077190896205025015265084602754554663750573967382148289577607127236602854082646177383312137213825964285284156068590508852609072229026202724853932636283976750675053143340777209396258246586216484619716079429413940607738425524643084962311594375505951741339403215642060493116917841367024689980114553877621930969215564764955320160691385738547090032653958860484501926474701315778280132517624136552679197277108126855893592651392039010256072941564955351919060988077202652395548133567221356671661618728136598258281461456844440710956337010861697700177196297602389862491130423196114691853523893327225761342165628763474837480268530896458200045773978525872521699565443823057346440029223255742203926924715785119923521964284316788837557504655295588753937760520902014388207719846437058271452811406453089914942839237106460142507456752952636612444410405963661893886622702120243029128004711080257423398332179168351699754782290612363700079027666970425613285488959632870391775451140619615840405082926719720060912699490808371713499125805220120324806726759701314418313936286679012965896578814015924867145061976773228065099859114859968569014620799908724494776601325941703242380649225420702782432430672621803325806170616653099933038989483572148156654150337775000561107050362980585627852504999917461389139931604094567418393239595763684596468230349345666648363246456398045620083396698843243471610959587446968213951239158909187556985780823295330240791606093198160514371230582343917951122531131361726156514512220369408918420275059685389146511330053671386141198443154041105844538362868458145414183207503102796201188460585096500378861475059788367272265633223655248930285217953632833835107909641951439954086364609578594522751884685715834634670184920114467136444649985153206332237978409514456197699220299687705486827397906849488833278616063711786609502434265421024118652570076537325190798934655735003495410081948035349154559321387087621208464863896535691970752095397387012648740709791846510251731775066890418242841762202066776587755517760721357573002623353326637350385489769869811049589918766398888894852319029552079946442867071995992061315555713166085107276228785639065277395035403095483864099232665847253260400531411739837075771152164456471668858698371541357327141362816777924336361001660493076752386574447275893320540064578866754425451972317248545602521972855407333677496899326131045728396919348640612535855680184118223565074231219618362208673801651400436107939734725735448432331472760968110363133963522054373502982989671581187694884814288711348089464000002051926780883613380307135820660446797174722080738477065956972308085427727944703954362038045535793942009589321620889547983612186322211007352870910206532819302148456776941402421755866906125856589801503237222432153187446169900396791422704720964214286629060798732461492200235332046172202400122155000275234006157416262054716306966008687204534350826719349542762349620260754154854608294429666069828668459567394379679569390940143338262269624871515778429414787549864349103501124930926849633586716550529079800302612485234877159514424097041798650195049527161039164279550914295077221070840126240569370682946295108433417307614989281709276677588332555283485917000833762914121551125451977982436083706334357298817072729484506127758174147202553909510507971862218116243111707097472103424832269523445312574308803588842077442521453735420097680473452580148339456444127353480393400088447192268628698364060544823617432139630762806831591207063961884256907900510062510962410296661324899238363022127701724987934802132160670755383699252994232544721117754319774702694110602490473459065179050854559696698817269121388064126945769010610246376256103267852429409062603666183996634529325036808048932217046180419224892585253144783256482870058020860692749270364767880324354409718862021091205665504817911387283023096498526199457280136253400831664592430320122723239029227234099390388288230737705045793983486738298441634390463970857444109250029654844825691237745987514195303249036721712120313802616928314197843228424971048312630570188415812303440619155616762108934088423065044906099310057151812535009054488070323684935156232574245439487189755707840585214726155836039093431267346750234563246159970498090247917695670629993749207198117011537146346206353971108493428735126483988042734774286651793953778468050500847112275841082722402518663418440191434658883291881525014255205960378667598048505984878491889358092797484716655128346927136077602446832330518153878877106623497467316134331018125207034880609455474486904787348731276610048941497393671398985275013406831298838362393284065433608876219683552501010537453647474357578893757374128409953534251826078294489552630386869642223472805055078139680696847338746598790214263385021533712885714756314260649769041241932331756437188549751491703639120040983305741485436992554589676059536439992739375176941688566297329975171463557323418986320209285302599992268094431026682937713610185333877785285042191550355903257833476185614256885563288565782825263576945261944385526198268571180740766160675159782766337130813411217037252994550956500893077852069122502821041957667527160764726901233095979280124281429698850311681696032752332359475778107143401813195533404683238670666882653174872061827335606541506878576808660684014682488124327057551748642073423782783403134915620483584843169575356319049940106344001848819342779726287061190766520539362609846387475642751393405806777217888884180054674319572689277263332385718986000342863202012400900364656944092441580223000365386025292718301214558989253095877501272122558724112924734357824659655221960847936589935126365320800013962427838070487838118941831563557833403343617021331779104592041877802627720267581482069296455694689495854942899544794913249296374258363859980813013960358582188338473791677752702536635733936009131563595032053815980137880232075973997342941943185369687007088548913730624549299442639335822741816613871051867314503195387822191260361308304633691231530893057585398006146790556400374462135652171329132537671236387805762243146271616509215145503338160844258992636096063954485735645396897846299034741278004114916485510108147529143400279769783698603482575107688176145536475553444792176139759939959836570152688884899038076290249497106679243185786246457773254301733200366122696346806852940645133134769177647969200523234603823888076145520093063527936985321196641317474280588662094356293454652367991378185891294282110573695761667211313138038717080741430672533473827509865925218355805559197784010883952150259525716317366341819006145249951364609651215525995134892899904431297714152179059227633517910224797997504279908675730830756297939950474433134790457583730057197241640021764530634400746076563733411037532423710850841427437469818260858285561399951602171947204234084067147225671390382299556312111615621949911567539820097788571142854786893254522445835572324972404911610700566777375410003499060550608126760827904397241511122592062042803944739550878391117330506476483964211852004353673194513291186521076542727732516445405093312227737796328387261734540918821395834610091828958072774423021811875232963424047783740607094233901782391706280317314762719815528854104096989056635344647296761935587730300662848851498508718536540039773854447122405088479892651441106147777371734138540944140208309445505606038627238201462955650224335076964318768888281408192472809186299288310482565137256811171004492177867539351601312631247370515010977643324464009754463113279385432836481420448357426432834812541314659115552383623053134073008360809298521681865918468954742318049902660849018385463994203872045676982679608833415585760229754324963901793369393049023216615796341264952038859017331385241294682397564002779405688376438237144630721651262691553475860801978828364273194938328332337639680403601390620954013139763868028698258018959647136874089106736181118042416900699891738474731675478246754420511927964921390251569327756582343010932236504830417848470848627748078820286356674897056434483026869886740081333890257970562323612626204550245071440984690679623219030223689636146526838088959325932420943624484404528637777326706959026442405782776866242056150649230948791377401000383216669011011878439267387947402752735294445318646844988144725384556490031242852413958288836691119473214704575456227822334402056960205020118973424701076383654490012295959351845792828437066353488554226366017762813228825569342774756046827026786806689491668866740514804543148727461939093801616339687544886398255270010689978072657818682038143408743597988860423560983906494463769616619617212135002695797410349664165307218600525026580524497500349365034225968464308123497858377503129351707214185064954185234207886857304825999675362725265372806817122402081529209175364109306385544409465719107736437555455829954236477195010002504480501777932745591769826849544886769340070743735871599260485941600950264859750480224987171512268771209151791535566938906897311398621975402885859227750967168951253140589230715165271864282536666155546111867978236494508775605575414247308273627538368711426528375072562322103709494641460690689058233926832677776954274379918697252963749552503844292881324250020199749787878856898610123318239219445525846325270609452990989841214278568218081401908124189143951325649325694341001207464964961315297122425778008849460448448434419504213441547649206827828287240153089494126276846135558248104358966962820334619106658748371018539603083275568173890019619853331443284391842036040038612838756290399659988494329132653288680018786650905510819636179243413407645604761409683452985965574044208636904943643632773090511256910706836691644570623457671590758297649384943698111809784651972745015839244322689121078783140417636581668488214936357191374659867319144652702605481895183963696048160969043942610852157767016339840968900070165956393226945021488118958982470423810043005870032813317710377871232036170193458493155682209527246048027447245097034821458092461243007064629079756523067083150521323318890979743528595241326569754737463532516603819223282399810933173202954039025963763734951793619792857434114166352915876468856271023285771603590291664964270502886841598042006658481801665638135885561455728059433010635868782547165689753494171300708756563336460784270365824159729299793338585557266046682407097075424546754941622125980778216272687463907552329726187906508577241935594236558924122384396192022043370161896101473184505648398051492534082339325571728858382765319410923480671081330472618245963826887872986191209194520481563773076149329180019739560985918665478853132493772441646739536808229700581215598563002019260130778052185664877886460442259900196183195091947585243366007408827830642594922382830299464950983789631290399183370074096589207362880958444129013097102046126351958499366647228017149602364410430106334097472349630145892183857070701183291079981865685376929454895246552383832111465859239721442093450880673669555540793956678637889244030426202160656952239889131700383250350139156180569801700825221953321665017998078843853745474359796692041531750719730043323159558043734915339901940313615721988278365179062724952704315154623516611947652856177477702077129320617885679799666307098729915303237284706955067261873804853376976048141518237487254099727363152945386088254025670411811429063849829966929428429422882093696284131645792303465929684085211327591894026180716416354959071075389899849465834734502905241861764111725299080759988024419464049350860241841702453537654408576189958183650244441563848044983160338424607743007197641212292799606695264680426490238966851370917237383990696354119114694885883543869607718197244253485633723774744688189904993522139769386079412732647895100304281868110693138493086865302976425314984579764090905793804458866903640786054494372544601075586364126695447127692073611297886499394707380441464598652942048161454242762641641168975920095209557383164231596849719817490291425782041918241679045119341137773590232081742336135714870342221529740059866442455890267294743208978304132453368893041475260239342192468362105770200952419410463749290009913522924401207685126699091823467353114107216251380436709337751505768926711023059394379919033215806858593884381640126795001220977861226668275541914611016484843893233348290235412088809159216288661133325415995272746830591211592208904675371956288492783134645670855515159734507075045283999693828495699840717567922040213994450497946432325995773933069225989503646797559467881919985363131954101928337017454753021015187025465999201652309150087288139990866003588009455941368967696704767521727241130948680002255016402165781092288390221603720734278770101237162463704370539711230758560389105321713785630029720969376548511575868010683862383483902446070420104808653531305368438232596014851448982007491590936556484903725401194379783499350554004920225417001458034703407499550250075454130812229007839201402930288176690344998915983580911270370656684412342913191608971393772359264793971957419413309841180816506647778224863597205082874058186935831105199449834805847193625522250431873634541022650784448231282202098398756685040959902098732281821845500501790357865820684608262543628194478988280617011921140457589142849310936029245010517788043063056776559005563542426167193842493275017068588692581199604110349476408782923005324146293029052288580395685679876585921927899789388088770779027318447374518806148264596450502700850558942066085368108584262909032696402595038493405354253193860454247696305777115284919839374484625430597030853744274447917215586596594628777872126385472180502450587485791179811590289084369838722298037066005054492708823975799282024557173766436331027742043482646624235357922410801635237019505072927973486117732595077821429926391675112818955341469055536315928696413113457849092477822209056266375605461001184109157567164823502270769116096290431484872063360373346013360130679057986399072263947683098009704544621402574573206800888507270145209538972536157164190427624978499881161122931110760167950397775685044880665474417197796193242535759227920431290746205070764206019603338019271452733908452966543160648233841828350750961874979012163688520879202066996351933084144932664179319093255131198892732547461946942679633472539930253760632680927728129505993639933334975735166879301830644544997002508898674063182576435965744131735213078504552552942468884621662666871269046941504369994467886637622746718552941793250396981305423903906219870624316628170427761890985025143253225054642449123212185078002953408142073769621625407141441404992344625361016931877042328102489603683494030178164821875062814548184216598698353694201692359577474352570800693026865490709895257104788923681036855999416716498965841193415230043481836488218824288618520456370511700257795199285894522819784643338782760603253131485478485106972052243770053571891627061089505619295779775354199771604996875830737878433566694426014896082697106345561425535950012949469268439257478585353598115502148537900037630874100344678729141629056272514682099447721055713611640023309866613600370773736257074431031887531662996042986366908065522010750322916226650960280006070460796636175888704271594566806451555290499609855445276374615884374019004003694430943685875450717187929162656587875168732094731725354395143898873699294175429138778329674034589777354848234490438082129688683209603053085594889963500205181265218639032390217771499231338815802095021908441501348491591696985740846291287736663954148496201435444941338998585074684860612308703785302707554318420104547182837624047068394467875784283364764902638760282319525057347717378819050587342432072282810884032637431241574581143901155372472914786064075836479558924061021325709639906443603037684837872187433808270249013346502901912724251466522605294042229934943862874411614979689033739013096459157055628848081598267505213740892207235634006102873214965322219816200252942381350876050477930087994467600553596625282795204445647506388941319739479313431262217784234216344511194272819744151958239794843462125644748308306894504176388541113543012937532081455808522579601417338384541154544540044618508817620344207910137039900702749409708480178282850084441878191743268673091684055055117171412264233115912710932407109230649095044929354088679894762921974738226478387734833654840234411352107739053788390696381370034260232342609994541122868258214822655779649090733317953130264335641904575257758852609921175732793505753002090677113065771825487264128318054771005624015008322841585013394269813938224790577110686077596325334609835152872361466487343331942774687199970660267861632742707531970884599331372173891891194196141754411269518295929061965192130855510559206097841947353202191469851272613830767212107188517684010184685014636744152580901428594744012950878217830993409629621932047146138212014844005897476476748622249533647025398477473194077255812029006504380807482837780868755770452234411554876065667905002063506839864861531511382890949884350386448954968432533213757801199627352408260023128044789578554574077846120603497543717518938373532354958257047605847418731819807064084790546971352482617420285185935255846030533710700671309699567691961004671901302218078179200945724778840534730734765660685246146277164869453494100779688609733504682976423547209236561385195102619344000229435422610998468630851551885786123470865296124040368033785518511384245809559583797026386034593118398587075395270899356822169592368636243799608083469302590786238563512979977638969066554372012620701302572228722298700950939134347593331372238578383135501373843408186633991208088722090190684198427806861054767823354020746482211765997656154825153431151932061107256924763255119699843690871967138304479353083750618575831036696144715490858948790347726615079147685501607114477004783411300610761394102409875059348825417673595636566207836915367811250575173111265602862876749629907583476262194752311637313982314251833930401253684940561629035949856011569018098122258604554867865005944239829607784347002480147947046567698748293054957373324892611728606817265259866085231813592236016032055212679983430373880354653250238413354570805999188933213619129497767331164916198544403820253142964898511547552304401362491050794463040274915437656945629863545427001546228342971879846828283118305814619589907873343133390669482755349732769287267055510859773898998310115308699312602722341668731491654114466956768695634107025877436519004367463885002013014105237615464614066776687825772445739142677050520231765631766047513558803967071545783953320661785038787863312836032566294112041618357887476440655643748084424886418143529810255945225213823614195551819185924625470999674109513632534589874446391311844937931077652082682951935161465698905599964903879075296152507817202534692871379370744790022669222610333723709237940081869868475963770872731775119690421689267118957100539054053159867270098976774458172822445316575452709915162213240580447674989908648034423669792016458110843882163835299942011703022339344471277791251862603961698642445346578366481931176262459878564099117310554289840613319902753248924953056985667730389993240049396783051599387145185388525855773885998778136336611556171005159251151239651278920727717789761682671200702289921384661634351193000082191516872884309258540930230125951907670996075465851815808309705858010893133837765510407072028630897474332549472403116067429410225061087516843471798858521242434933586255936480994341937808189797263029488391324289547262911349502075628559580145765033082033335228033680369727110923617669922502301185622019494487005453879537935731870784361358186484975029171253944866564887140493053152045109476441340778884276330069064201302926219942188095574837891299774127238590019399986328878025010348378419335033781428978217482877393241674022220934444337094069813738125922930791589622968029367155920885163223109346759734066280279767971808231497672425960129443758636797380179278697230144450284414684806464586147931784389882364723900680600902670752350223612785380801297599789435633584181923375676555829801700622979234102369699798641098575713621659056674744931314681007959444751882847890097282183668802228267594445673826685977503789318873731188376221755387319271196883549787643727447566057677880489761637444263059777691548495734430947738688990638985635784861686236947564278323321165066252504842229690051871211710330932658995956497902785557115874736564070705168609372234932611739150545313391006982872311396999645961602436714325308378581372489233538508292999612941770318965688120495335367958519765467030434140426554798605228707893038785769952109777333696187759394197235726374444146784474323560542839696707612495203722142206767232600632580346235046887568461434823463692415318166313934354931892979570953910164326608398189010870338173957596986072639539327569045747206779086879121728783369358155695500222418466821940644262294526852647364111443118995706275387918209030156095851589235162255752125845119098507106250654179115074320089829122430562057158872901735061954886057595013096534996584805884136453495608331976232125598048625076392133207217544688552947574160616763068929019681120476591286783874306452706342489559496109648139238014395309010020936431276299296123302693820126979178886149043072797001565676459704460697744124594370948456481711737149672479867265561721160704860859802630448022838688861290519932121994567112631293663130542251337925128396798216396673522416973590116363692180307717607216710004718413051899850310277133510779701280853665902589125873120267817438807506596467361520043224335582124513130045276016379285632150634561703444258902038572036839149186316453859742277642699903051523282329522753699356875760405303218961453614295760515487130555072291041428511868633177442042566697713202682212377884894425506723671526539712245745394907075631765835739307386242974668700162377148763596306815955436497690827745938263094985209317946739442018675887665097590253286922725315931261005410888328570443971668523993643978550057514892392957948466947233920081103213770869754613709274369454348705733622493329243834142511123043692839038572799816618533940919284774878441579091543525101102819386748682215960657054059942332678756883970453713427622660704718766606134018584618721273835352268086418557626374064550778401931478845115737350243414799443449906763686747398208292606237508276736589225213710321363303521442538245890194546840953874171903671079456075328936260434159364687328636636243145951023080993791699207235767821706704770908820279604371557930448580691145220232770279652612181632096745682297296342718329433860943158889739777392442060925413883275923119624658464589024839730689895615432221884387619283399007014812895107548240895630432004951032720703944610607159466750028972943955054185210455554308938184049049685114107820808306801569948735337140810983225424010775018671507052704181180734068224892422587220099121267270467557648458908403169783099625913944083736989840669294858131713890698734099564994097433409861076675788061353128391363057062190718361987648556550593772571738198642077031290097016387436021173553351160946491998055147725554589036417662944256861148497404270134109531653291310813107822945479126278787069297194893222238047139872620507892572278635952361457560236589804976482055498307362268475933956384246109001917729448453580449112263952529800153050035648295077228446074881930833286731900778359127636338281669232502248912429049272001878219125351573689974592940419185801936248552078707601204235204736197106194673516449755198930810703488843502767093727546638355255068381574730035433658440534801871947568248042500679622478876446031302224116917094140084611078282191088798791935348436286422435935029991122828305530817784823209745235114428756838509651592305850061341394672870905934953831250321788713261036005582727157666540597316073705447217519428301310734058843811876018530529142227348514000215967225700306311918423590534475069411822186726378835875624389420676758775507699888423093966915067465671486276329363419886366029025009549997853757656584450384295660930245483929685283533629022805472282701404242079507654511587356934376527314799817328288339311189233725361403732805956536733801179203219896233674597566467201967373300406158957799288678337387333064066838241728387655848584549891801525661945579820797044696592143548519686337986960630992748031580436568238413532184656648643455286868957395749361785926402291269977440343313232684305050409924167379349981857734930065656332052216942838704036298011492189121957657404589699010564839909555680434550494050156991506999103145516961692876816253845811780261649237203384450764939513690145010876807685509728449574060782875367126354648980779225739093114903812745023225128184655227487200626196088976227323249546024880917283304765187836387395256515730394733546471270848640872594403881350932330244954680559004470985378882759702552006667043380618093126530468262244752474093710716168016226749956503442835099012488029043435968018774195616898390797328347268488153940546440750668707160087492966232825390728432047886031534599724389907689301993764379646810298467904541507592373641689318158760045243838732793471155961264108832839704587779441014706185794686257481801298716730459008696084955975750101504281989462007923556642446488615763506750974149213500511720464529663851764634394259618673832667476287183598465407463991111560294992414895496083918286143881827154634577030527716075884366834404986996770427456760895792448145735931201226504399735841408530841865194384392110128023324978267166030330677141965720056344684165117465700872768079208917235059488858673520191409429636320325389799886290896784531214446900310976403509878378328606604392512167339706124724535745868974684900333692881529171452804651604356428496956738278116424163418189873087866041677861701747112808442858674329061118262502376327726897445723266362022299189180908171897777920558002502335446418452516620020391449992393942016189595131527741116352195988007592670777266679174154022457711756939382219359505406281347163143837765795440782055974742462629562884612750823055989793659625364337141026907653202347296754627535263172948106275330521321269782861388667824669639115804222980904473384006275965990405209259859845108909272604034495402733963757648338397563732193015432564679756755262704712115387987530833419608350797732855824721971243305878028857859981792230623668763761380518541904192236933456106547044186890719581370536490143784764073738127049765552842583673119148741577902200554950007802354004977990792792217753595179570281661002126330970732798861560575397705342519937573848241710538717897816513176734674316921878396008079896049370241007344668976099937736565163021199011253129136511016098054139857124802766810489971300996001443236294687115064821108390330049634965662582603508279578317701923213363631840842508089353822390233913730696313894475491064189074282048077378630466019155134702480908950151751501088440308233318452722804075610034407978912703595605762378536303003629595862561319459093495928648643992298222005992099026466879771144091969167325398256973716895023744756664183987861334677029959121218123761024723976640319078377392263304175927610855026164604803625015025261030055980549156126558359015606123706612547191653004307618321662754211278872482620608467265421638590565534978574466489921174282617971553223009269512531342663621773052785328740435591679212745354734270983429105227644243372178312012153423323878083134146279169872605946152324145252604024239114171997322822169966340302795196996162627873209512417181250576103240966304521506522318550204632918805853280236268657333842099393524851673781578996811352770388609335798545904297875729063705123706657321941671024012573190300709615804561218996630710125500985375742776399153933410989467869439542415771085963826309873403631305075677816014950766825059012888454021132328183347885347466726602284876438934257961357857988989664530741992845668195966959946193360782658997711024495502011021166769504074818629607369432685984105394995135895193996550395728807490706752837758292007159452118118347656574813739669586739490586362495034265541596957353640707167290627536732880812281371362655982168802363825252410700253182563396904777291386627569031801552065084270284248595089717130573533533898090094976593383242868890595025829145219390755675262020186165027263362490625347722650095100620816828983598144945934168161523680014231152295953023818186128628460420154777624772481769245242263904916689049998105247120222305327187234834041720057040824499400630662743713971578151125170291691515364084809211435493320092138179983449059771171746522978815778902637687294053340094381717265467277890547585794567936656787699056212131867099081906814603329837939326413660115191201558831539068850466886754865923305722096676509714280842882172477107774736482827672195683955961476066134327370080057162830347115461428707337080306827330175265785855329283908509308991455766449303209730725561473528628576713334263359203109935746382559246398843389590050879475645253167270024257062585414632694136468158125083626341107007080066796174468915072399705218552506907073190974779385456510690861775812190627709882928320655360192936531947341519176024500792935154515577711747677923417367763085420156880410264361869030796176779519415064232174601516285229998325125029397114301875504728109596434311638577323223418579479265607840560768304621507498997284500398477962408623273044408757033713021375001524610246666399434219999200178155325431598327111627052914705506127961296349717059738222723876978306356184642770760861701242972707544228088208949875368369671276279142418582365974927222703225711382477151614477476217039928009575422816801671232526344150505610893229705289752947276661282610884386987040798175166026009338464382488073701509159827765452779383243138485220084541600849986224805321095870286464664402489123906920730970322405856014853014040516926777408697930136344240879883036388284577529572741982335542864442970189635483747379890423202052737467900814999553642332952074935143209138698971322217761305843735429357002475707207062168614745509805711316725589329612184458100980731205252323680610184229120482258126751737064448327607071594230751626171238219458282640256604134874452573560272368787923189563150992292451425675340701731665974257131150637954282932447180339409924400596019162779087750698310751318113644425171980981216572720842459349368392984632568795874360887725660828341275755734848563656058960796702649892044027121456006294350890578648010253523887641582823987086384164152870506097311998513115642070511382455394223368426876583014062693053449005077790321847850692496963584599554177015214353929351388680757720180421913832226103934407350052928151467673206706974367376641637472361080425521543438883467545421230833902538995866507526780033292935074689843864633338688354836532477040952508447430958843617336021888805395175333594336943463152925648108134733647671982654052847055405427316366436154820380458673040600539155658718220143019197658187423060573370610329385470691958843710382136023293294993050208601127549787009724707149378973507183678760233708996881013890098645739566055565660982021802188140452921082742791579814215158082923491733293720861044029596716025989311760141424947360349605682282807766231530056840543008430076153448727926361487334381379982133088907194822700246741619742838845723177416569390368472944039770498262895867110533513115371669813030764952946578895184232402024673368054727254220932854959340822459037676768802321082490284126008855643239534787527102819283657479013848329837856649286119893286285549042655126160151275871925513658628870664017967710606480662910447641588742471085561572250141431852949407840255802719396333355108728931431050995774621801596418155659809114491140008505159914198847199434854376229335088731869912326414668750326262184672728270502490319715328310198598840631875040132442684962411569941564610522858735760046269582374890404775460414879972050090453690607351528640941153643667873641138191084697933318534481130980307952520410037408329590645595722826006593597729477644681785959716525886276121478931509119227377697853863670692241724422506597508589259160982655412541615876321121590189519131203683983810165979715100167197804373223396891941169012933263532201939248809917932492250059150534601211248614346469175092899849792445169160821553864554630766662923793055450605593194894684725117453208419137131689893853024270806353890671578351654111014223327485318251793772610338964922783333979436367991973293451406223850040024216339313767306919232741698425986193640335045996548179904722973617485619099044590476498014323017090411932709905384861273086538186350010201186213336973991959962156079391710175330119672164393186772274911442146714394519938533554205126503267664326300748617917553649565098536100176383345556108703437834356329535642442902693380587175603630382459391283900242296657394674944873339074345703244304872404323628902349323461134027651259652939509574341819870912478380800340148421299886647232312151928106795872777316267989395945990321529535725109618433754943452857152668587088585819147485107869343364891719171979037140461702190987142748105900815212410679293537580349073744422590802418162439332658197998927720644213427695585114576639770430995663528437631652368289388830910270208857436805516213255217485382466672598885990479160646895881650052635602016947953460712952179747900594376687444203635639882373591802956049724624749889083209220495667919265965604205128103412096755591102043524046640857816984738901672296097845455154092031324896296121791483879684926840664117081529465640455560402608512673522684055359021969638511600755915596182633250107127967281645091931660574811493319751886252076643376023000043806088533633369022920419568511649990651489970590046214318097152193680684353012398717054144533046607848019513454274579663323625295271759729254576392083902270439345528366689611437782026860488886491550583437474637994812807441991480938988450395159731200389378048712576270010617972606999560180539679874034210087648337720265412690493499315999325647428891750519026852131458552665635472596794172151829674399252274983633865267454323994035355024249677003108334361845092851460252370588839224723431949212193937812102960717527258805748618056386372465239183213689665432120448412636155641646405048452871656421179521188953772838007116121558876523008148834560623667872407801589767277856669931151707231139927052939425080184841543504356941695529002830127136063028724800309859033490358163944130119247372067874119559534324709872422723901990739037462689509585959752980616565830476475608395347405181980444724251146227554647567879513944923159863610298930236123051354818335918865581009388152419756576615487303393961175514519370286252508828177192331771324950313107424004375402160002775850587712928779207728019695483552330260291110017847568787901447810229746348955302769099069771758477915486966680727793827593399278732084924146038147162891678462056385526880703131520764128449541725853024869344177206762290870246663038667800641836782778382239829223674790514650938256890608083260879945427623553406295745274457809170005138158557980501748560832335457177443529451954281580122040711681468283291500606301230245043817280454265156319241051981890017579576199292516408991246439380417930475446017258007099736098491673899139186205482226589239947686747030507929103112283126406740787195797825523859470324769961734978969660862175108340773286265113569138485718736867838156531644527818360739851679487905727975041660974303977214283693358129084083385539673997065502425624840146608666164813628860211095915102665144781925322629541943819410788532167386953935537936820949697633336270106100551565269192120696050815528228408139541608371442711178897907940980156033956151384524852191109933505740599198164913636610432663805204111322043199153298884140097198518229603109069048432491642676390444812570649522781280552444786014559783883276628957979336132734889959884179500273677511838848689903318720816257400464468723119407823476270197181941896795837637939965215139853361621359605176099072062738633422966866412422410368084912194750619793695572869272350573939617567404975529335616948369585869124194767989625433328168027455149678257828881491900917652441384433037887634124442597566440289677653842098786096875260897356767831947445759187007509134769655335175289848257720438896996399672034678223282804330155369414997240775370487265250631470870819494985489196747700365149436893930205315737667331965263869892464444453263011518433146476786679165620015590416279482425136458607126560270951280821484919154684514660777100158929487946444253343451314586391531739095250068646712521163151459055625642077288214122187854799596941514231861341544756702785737598764890816012227851971514386496417267530543996214659631576178643245645588660719660598965988031545077746738498751040464970584991861656172647296318699492384794536657792772189434321920217000895707247385818495696803736185340426234337898496880151029718625359454603145657831003263295062800570687320819795299744260213932619047651396256820458692431981274083173085180298785286395802040432344197987690181046619826048739258021017717397436686248022735947989054143305273389630675409982631122449049406220155649026489767139840032069583980465780367798078198083017110068675138454556589349964594674636938026857790844711112244934251682793422627938411321885581610735538682481674264656748016371797750958448746822439196714317224382876167759897885372766786756631544955943444451424405351313220178297416726649254089716529586702222644192671030877008920805062043681317896716331129409192767938607058508323489295983381929312172843031983958658210172929014101494401544247489808791972336841415715678643424745040244566334787594014490257193551804792103734573027975860241402409768069456107741322807197661174894338033160299057827872557509247923826215702780150318582864929324735796744465547189995456235668540384811897988786427174328853008303655480453261791561436897450190826096004429662044853852917280529675121906430014600714900852630761255797896574939132836250478215604315044822225749348111931911127497138774652128994654934343172035625885240525208429655225308201920604405071087586972376817428775043089859513333091300681211196637764570172178801958711634885964355163071333730407290257169565529375396934960760645331978025975685586835336879346735561831831444319252446337271566275474059891042595334721995003286332797034219261632097796950522942139882077469989929195381185906037583135473011396009684683955304545255723366099637952502099412460232756994351596236435230045104073927389861134830743050590100430011336608870213307163079438469742072816377014705128610880070073474310577826018325640320554318732482546891778066998514281219498608566849122948298718445278250088083221653231713490410920336755000967427861803809199936223193484890310288141748719423652403754162814525079533876447066363667631077285310842719293047835784452022444884935668654044975908582087210985687048335068240064868549254450611803090768606502490163306845110048297507786279369718505931273462247491915319679948041709999788805000220396521688561802203460800575509673475412705801473696891867035342109793266577147210885585646562213215131484227488044122990502983801641306302178740188798515430815052994931357756747208217547889502253667631722825842292977851610818207493218902001021490040365695502322690123440018465264267370828615857612100634876840133897923232155579875728572272433662820770561554878031381971631740443882794738592916079366324818517618174932120884469520646801323281768327479558601339433909490814343274982327466038066610786312788344471495194775264612728407019015685296588347950074411081895036695308059203506347151594291386755671156346794739996804616103972224301534051604543030765641412703781620853296985381699406477282164662104497750253754210841825635216757076711105166133565333976898963249915350475110158266926432113794379290606115263832863391263826930461596290735784086828299029124021336570461363313514408499068046148141437836059807963359437698713233931047307594113654830553738958594370302601540262567946454072728302294591220856236937875555489606463045792137478272601309739914404630606076561779954809188727700391123217539785798668072449930285099152559861331244175415185026996199414468262850420059865290536391865230336478072725300900308882164498218751573467362825789532204903931060405136252320195011665576667570364135633484129029591234447688334298455697620717358783048281903774838672566449077438268199848493333510185499400434899088918559911180276667636467787172314382420817093333018468758017813249643783943802908256608282401151012992780346503176881801456501682501816495783266750275744096047291103045892988588528202182471456391760430279395930259153343146848577409633745462648921446692927528381266337723310227957391822233871485303109673144590457617793760468323614065235451855202207731224073711127714139891396841668422889975305602764843828696280711218809018275141712691604983117186842664194784249100601155621944305241600191747357980353390500220993940716312264580568127913901578659148144284750129232381355006265392063627018978460764106498552794298962820666316453550540314035027386072339073154877660991208372823913595818330752027900024456918526983658455066226244853564703312773131492265683726969273009097118845025008148924943813638705624626473408082135663007912323020372135378075596025223672132876894977603797904794101188156014075744903378914802878179273391063920259471442282573661557656811551797495853985279756898253294429078960669252523154760025841070168299746874232572204008238319535960735212026313788691809031397774034917912388981445429853479598641462077033188421622957488750371572830634831213400840079393525785068178200869559812028393923292496995516876771059544640277549869896970843872055453770712707809251636433205344740947034662115261112823573932424096542922039842703847518741646088867646920295403163358998006013236949936890355534844340471854301169316573649584129533122147188295546508494507471332649872216556979078130531192053103189711961127337870393272086625140835251485620122356993136537319420094554342588034627277148373032215582045647170758872527907838096416051916313539597988799626176011041333007865609553923123791058669517441594590741657657813961772912674163659008989918258346630634312745834315052949498674563701615142725866828018601728699162171044441713267009802684035340062737637044985408909881563632949141283292889960172146737447782020246644685997731622148597674366385929657403926182297339724533944009382828247379862383604385247112590583626829952138773036904864692593156872374351019131828494755597542469644533429743264447893912818582981238077261043543921145287338449482281319396241316487191945377642841839692964779865000861685913733714493404712260670676704138519174376978982299752321289562885730673715663043764194780192144092773415650247944662257969177839290278948391545270531703530446769813111347647011595237646973821984970080462593837494259316439566074265399889241761221732091574132076185351008900779894524990243674299465007361039663814727638132627375567695271650008852212878172781827026760355242345593576656953369238564034198560691672291179107061212561060726271278947448602166337240640637697398923803599540683794640456718546036560209457983568524782733227242686992541240462149090354872540217463939989596764162891952896441178878540701541489421791356909957141352969607386444546762411896637017595772623533631986003741858908963072111712844399848059843792881852361074600029809441999435975936957253967045770255798152519842419917012583875092162673911715101690317579505788349814387495736702243483833122031818808973023950380353212809957419228431795977561063680303839575885670252237585371356690052050657751472116707028353196096707928628783260349172998970582475612656031515810199206042053187650924385502125589545413536455434475669724539380321047516562537980617560148834249625441960274693901216162597238270104531131385777450760700045927176645697592374989866506250663263051255726842975246111942950058171560964509055132923836441314886559170139596692000907931209947874558407494385706552101154189130486263788646647064943318208504914265878137304948240231559723667838591156055579832943172831955890524162507129719010462713279615183464863945036209913312868637436915789401746399005267930967097502713282921396817370425156654316988290822384232948210060460196445349915343226300215431633041925525726925057588364488143522668463797923308683951078068074246186719267937030194493373306762771443769172742210097616687949016671323738359282712921924438693164766867621175084315978360165075131783091212126001695585783655990410284527659462738633055760157883350188520479451381295146816536184225407320636006130606283600752397833011238222435832013364478252729659251315924288201797280244163121004702008752043576597486173211529238664209362412518195740944610091090511681984372559889171674167545153414883821454240079165293931177817738062327458725900133832715267547921403196627055402161079574153617283313556402256070637871390696361716737675933706487368446982512403225814387128797666478646625935964944078111792458811394938515773729982492536190084963689071054548710668941779581997101809458264859423603874687028864895792911489851189221513284007885335929176717439720594355576157983222743185603595857134020207591857760371460853758694907418313803923640890406915844817532179848157267726237309411362565250810056680314710397262415170533327838567334663906817035432098552964857049396448244894855629987025953931074448784595359982068754337408185608617975551741837687023218156500284162281652702023723776105367603247091510699287231058926459971950554778996823084081277325665437425601197759603204688113532028734502528107972339820619124310795624476808965589471499728644291378508239205070507231121940946831526060214553924586863651441286562495503101935151681867929928189191493155558101811073292509332857290184749418922701778575303863583995537553717052284881038375976275685486977029407456448372977780733230521584855856805282106201496861359200323892961575683640870437209622404308501524845364436604068584755995330600141644495495585403060267438136052929041106577616896115409113448963031288328931896875731331909784486452719969942816434728469449574514201224811118283089920959703964205390802828937085363343580834230549641769721527370892416324169762728064916786491709889312742343298305608900775009752108040220233686391869724708122399675421852587609299130562723554131807687174449561868474184844044437475806258727667991292475147158204530389506707548206549326503909271251730701692922614079692800121382820176185535603053830621840450133633276336514732550898768942144105768284535535616299706459330189139733393870839626643918150274730747814462396624692650581734829350127603685755005553892875064662454681306431945379687359181021281981643054233010558970590403579093167594632601253222636164382266121642258236499333939192793399542703901791704889691483440970498381082588818668811623309251447287940830405894534442276548552605363168659733359544774518352982119280244903213120598622653048882358122827822790146507355934015123954978260842029418788144704099772245951328128604160292556740155835329133839178457380305268794266776032426925805278271883994600361555865472207621155698369843642394839086455860700972405759402016171716252790897239204956977447466544160766587881359352288962847639341086112063976471112988721542542605817800390525214878761831544938725643176202493089378321732457496307114936359243171262478820406577354459142179352395939456389811275566080202019488711081145943318302705518315804512492234220632620205569560501153833766704939981146023403083873877840581041949943218164250869583282391863878906330113110066308372291054284105149873294848173132719523080753296179478684094776001409792425603382070813015148746950227547124016618858167771863324142523937000270678780220192192028069598709177634171947340957765390082101177369142622056837841234858453133911689970620679546613268164262979991549023145463574229919708541340692180127557030335822836304327291163639570645944593219451699439848560767079935647810988839916753014950981665750382751971050384787239628694806111975551776832964707872374702985580325861079215257643246639973771014108050484759320591271758004214836888797271337107153158371551725216763762789473298314686103125659445760144423263426751242058314232453001213808786024593630800753936364140372303066098113035622850086260371591269026792788537576928432621281786359132399453792061674255208981147329768882121541817682679569018602947099901600752548906509251542247251714017379147772298107046935024250959378161852726346314771881815137140774546160606394999152498819040102838555771213434620730566759439485140678534636793942971660199678187681990691960018144375476780300446533487106908653866694392928021451656244416658499515491151547407740552614515960440759819330752928838342220044433144920401800200307711352702771916679612916067661222667839564859392980092541266468966949666698478501833814950378954400369561846258127747606779785779663638347854742197905731762893892089886451720581079204021675771377824900442966954957809574506480788740569878511440306592330710675166666356318434041005508101638489729059874426481320760262755594538422017814823698381151249570551475807433372296963293531870054575836183998548091049045422997813743276282141450196856671827468126269843301008035150073450075562346222112527518295278978774665900790754682470671089872782497521308048297197702688291279230825411222612319462741147601872819511076490163525602388371648374057136924847772153864570317250112705234145498278715829265884928172321436968127799422998964043047221017264719163586038677996963322542989454377233870011428955256569786575684538404689599595436208474932432167455139634336571379411028559860508849036708454410404121494063931147036784023637825884869574287721927114316567194672809129281460097631444659503218656135897151723041822771716065605575304841015702679430570945586539374985010283755864552477870525358793541193491265223594200903410768167431890353725782074288995558992774973206859677865198763016175121697793703617445047883617613963420046747196236752241403029127303777418895003051648764027270181628927243741296600773857538917617852822286185236412096858463307946806878875175292568895965127402218771843749016220415527726485183582343196995166290764841648156306000986365143229191302488385919056024794498541225650449417287949470630008024549011197965741986526600681373833338625773965959884975622021408054904182039705471667052131314548633103226546103262180270990517756829349564629790395274718123912867853749166245256797184147021420122298288811528889059653666480257609847465877517306692329458788034924536387978067121826423182780342715092342062463523103752449977180968634078369610535727307490180236639333887753553116137366389279174735922570976357263353952289593114499795541333368646833497903065836447215754416757199109044569882955815576514328143679387241955912055185099466852378271100698891877274664016593537616875927601294760648913393612162275670226951064208966217938084423757508488980653803152147325685579088150778367690223211361005658214722814445533976501887459281740270327341462746155366137115988526445925730688760757985591113262790815879591465488670945093251614554020121096408901220518329070401645294896430119958120324220853027464200863182353288791556564594412915317788512787537878254741759644069512600974013808690861416240655692760517559872277319636732887349686385500834212511481572645192024151541473522773768935706999770833402219243032010339690881122130212505820235745298133155884130308801188372676798605275089914421036199992258785551121502147015131383644651670318188885951824778443183147033077674714505775387524528863349512380000892149359376611712138284544557252173419698952614991703705188156263298276851253793170911936365305715841798925702203374665384698784065717914336719264829885981402856958735162779058226869040998407352134572811694000731383543471113959438944379951574229231393398800737336319928571859338989413554015578924569718565593583708335074882325209091113858381553661610593148519693159765370945555906247143455365276397125511885235466835195235740875582503630265571858304121497652938470896562381602885739354053874386084048197068795883125635216288411305906188741143663025782722381948831554201767928615726078531609642477521251138944785104500221868894803693379371791072394078049701903410691573457409410310803632628975687016337558161400631807476783996217081776482263085268547071726901416265959196486762952860057649395570454480859163478045808630230407408766103771273054839793440846019672721057225500305289855142192126605791907992576645334351621002322415185106692764954173937713949023892631246205752532034179922404539491161103363591924831074924418163926536140702746696903609066487189231682291742963738118704102019172060340925855847047610177770512491994523039850404283528175717620607267585746384237473306759922215615562671123029744123940050593815174122854862354915994994749218368010335924147636299238816742768745943248466157335716693121387295465942033914098381769856658403122309925886831546407884825742033333380714955529963425683864746836266349765780571186772139086568512459555140604591583878420020026481595236133695044893555359805217717449267583827704973847184996871523910669604818500292347608824543611250267116117012035821018504959673999569049880152949517981907418964409337892002979756375455697049700052356164161712929407796403741184373537236049640641752963785829730676019943042738819769186654606150760825685298983360522638848773656820570216371096006968045804779949932501313117069509295032293071224722431133450911321075505744404092994151540883516889807020594325476053287699987746962964610235335436224461162691025137162937744680587677361499158560980778106245859432024187296785256696951422805794781697937698187237665810510839615528738103585150693354650792828564367065360891711933485793398443948997725104050759088678359589810253412929152594944392114140493968507272139096993229167395983716921904335437115062886786515313972835921836335860820183956753801137005898896081002154734038428908070478312284588057092845956774348030476851010671512417133602835321213072044067029031080053825123653117711258406927936737461885167775454379696917571344435830324888478042028206621815184698381873214156443336288673394042073541426864609631871874194530309281858035472532937049609527929009986748417707700251649265974351652492570207928172263528352672597226612286190845871360826250136378255757206937926405106659516841409459824403139275643710096707128296239369166547410393230025112236000714072574894018225407354885696398036425735127702499097293299233393921011420352080779537590003795374625002832486735274236002811306117021492867030453984475401970016083588537870064813337808567749538411279275202277448832082958770480603602693348583411856356038515230343570942906934188038870335297168250638120893525760030847168416917742942657930625143553951778711198586875162005749686242879981969472932374051541532580572655762158167495429268034631467079826455219909746111199687570017991532810486692634164553143806469347691990937973338575722925781409171037401233120082005587499946289642943073193649193588483353035638153050790444824482073288814102023842455843724123594711148770186363410466405199586197597374039185696770432896857364729622989401944258356363684277641548599427941532245350382960283338179656216409914794150035266040849041034319672556316654081713444563998052205568920384045919810015219602663177795998178097744363408418298074201578996475807205318018173775094499688313364358727643061671776602383317979015650541477100187009726757691687846001165919576748639586367949205154934638409998874878654510805491333608327884877619257275270344092995624682246712999250370256666929343701682640011065771823946477137523938296043993576828955758563221386879812769481645217389747367215180496729110921026199188298633174237646316708112616464676999969347568998071071735091971272854963014931021923506882796102567698616755453418960140627000961167847629945520215423199709560915567865908853388496401662391915152869231942712237605028719301436718666199668577787626754423509657030358711090833618526453855753648574743066656002052766916403752394810329477323058607297244572042516734172684627631912554521940152059302505028249780143419836839466657781719219648368750864074762814837388763235764195792874697296672001209710650919590408834944764890944683876054930428888994985202677877888153929768702653872088721443788593964887934291479010987437355265618152374701382895133524942910550652910595931474550070827724307482010411084608536248498535212365710245099232978655326973075361004499390786217106560106253475150592531711966216530467982869486404464180562586562698192960822562943288129378607876903896546072311350001573276408889647360999903573476720021847686345742963419634422448694527721033537184716307276183881906228691892510930545474671091721891212424027615240377207661036569404200744534165818708496546446049198740218001355144717275797844659539770075246352639301616042885890757422782918416320830032586195883545854333667492644454895019365469044910661093020735270062413907304342811035612223149514647440340816054917576460271212159645151990473031775938214324171182139812443699715888479113110791881173360717423702232157681003946610951372240955077496443851413751713908976945765802578776207201120739563494579532072761423442112397864450407201463876423024503592809141726520052821995287220925828392490085849803818194537734488926614321535166915981957981585645885459263561695056140558234605714497271328035445989581223426338709017160882325528139044582292327188258287889395381532954251546418189999596143860458030927773566188849584173431684443471201321920792009593396598122328018914491643845013940445536314647607951202783417698631409519911744890407229228973079372722169396421100255820810702719599608869926693761006873581530926723319059705295476556566842221950931909721093752270409601843949174659644013733888641239084959219905583368892312103255165888249270294966190820272241897627891706179196226033330930990262442203138584243863988626617533197749294450149941064801001985093025135232544038954347000296886277799754201590339254380791398692685618277069152382312406772230133615461822993546298163744081451955279466668170671482777878156500984749523392638193219764871937820178308884066867379120661651971003798333262555002734926340724254413405316028985749173749260374938163854749454512542934327052387486361558576220344600872894447349067077138142949847802031732708012455709163050717920879550264718391535657445945505090585859872589848868019285682092593606182306922647948773388531504514920179691863198150309086830138970239307837377359548146114512797192602300759781219684319529347444140598472253151158353810004652863344189699413076472175158720049537520275155037112550641541329218481891376108951747332308532351417470285835170970514522636576943533439321574332153683701239833945398126097488638293211240513033430368595578218613554993925667661693593773081084545234251779102525456800494961688841348170157370796734810078730447065475938855875260315324338960236267783760093551768235043681630313431266063448775222579286837117903827092130033482513712556516024724447975781871493724047931818376770635036390915630177867579259953492146526732212649935542701910180202206485220989879378896383127227011496832463434360193938942918261284015032331161715532019264315171078252959203195407706082123124621071415129403859708580347088141649009363167437016939471132389736509692177236628359117929515991754166873174892621571576503673497409772180633613712667709373057883719452593399305767443807805244028044532476151138583394589495928544092273702820045498427011877450633400256275273225349468085604520550985726241914535541159978969381764433495130430318653119600513918578067800901744254108651643327259226885805853049205665069727273466553206541474146892188651004744172047943056378067792456922657886538908821999550418108652420704431194379774200178243048921075070258429618846015639745856933782604388781300098407721458607127951530961763543576896937299109200337813397965465300111622502502132449938372687109780850509661806859205549599864983743128151638358910153876416567727321873333309527750963094258251459024368834118074606338356076929738265354058053096415135796800706344640723740881941164380177840534757794822825087756793155484215082116457773402326171616069824264243418741628499902259534131516460716605116689091375218080224245113217366887980905924571766071000862720579319525802928107926771886099827331521969400776188451789894103152652646013056032540009010533009976691618493871639810978291596413528363067353806266257936269576628199080566412441270896324928755414768086518796838719264232727323868205142810146553979456881763507020870534664808662963660873660093388203402049248785995787258817544614365802836543835976659111411456783430607023039332641803386146056805250912607957882591729599904172038292957101772178241251350956022288688893722087179241451535975077890250900859324938411392643872854770710136487613539579428374319844608139946764703136194940312136017564559006133312154875597795494517192751573031600785135427292077431779477875373073298446607079699764443400450195042035506990321710622092155033285199218225690115562984916771659897814895996717160805182516708826322863593984358651337560215623618097442421529142486457428617077185273824972019008073264869147105229661435313367372802496073821268619148979659873956537051661569191769390844594835289142394205935759209993378655000451096792039525133347470329283609693636233506634803187614814916364485395345435429075956339472480191385272006574493129603379932981653247623418224402441139407194757659746254057497254227267218665589887997454185113560679780111963050777805011611077685397442408983494669723129830546359121570421596290079381459941147885327547606465524526319428523333347784384230572694329269256473161071438739895857535537892210859428467459701961572723844409885591693023224935859601699596573377734634514121176049241188453358826349844590837057991535190233863102773844418592831478183239661886934471940735222131376501135596345387399500598204704044603554983405182826703067525353443668665936390248372429880991922520774096085908707145126019973710850061045965368048109831353240234639016524967053990683453847902045054933531332528523029979627711787636020856761328435342224640995982847767466561701209400581199112591038568921149991161726999033031812506671936101966425754786486452371733623979900275211239282982996015270372259638226646985019022975121074716462116040781405564454649439813801890189360423519891143241765221999238788576855453197696613058997864102178522449280923525234898981188145778236423277966820945191799508971242722864171085615640764017417508467721585275863252091240978234491013080599746184899247112125638926105053852366038092540445848741404601435143813333383691841153644328537513452057429111309884411627981062353402732682977837099082002379608842174369247357856263175831471351342202037326517683680211403488150829023375657323871564576969284288423134144526068571530042162745241546277641681364484977214890910845280488346524730286867332054744307357624723536801495450162388723321721990916462948384798598586283969689382976427424451037268011693492040236809270258951009416559452179505844940237680119739446587954357350275561398274104193253310933208471745074452520019062002839553427733374658340557274057228139267813547961235164223612589996263793742032943792246553161677535027366577424272345778699485865882220912358109941497028159638714543905919642619708421177241224061403787395416385029359776620684943061042334599124508966342159331548864804786146367547242747929286215245006827931755133263295753638453636979471035817475822455957137709192281554279443722712409481609094266691094634348273865259081314815008293073502685032825981295596547679824487760855236287409715074410924893812291089035028648966758816520641616331649860825303657145063452687530162492885021869789586443280208563479060560080587330810646888957188729267414411958549229126490729646690598302782183615042993141149536856626125849166481432923960374077388677195679009388382922722880158093328743602028355135577259308118899654764736617502058040003728071435370702425471421513361622125600376354947371705106413712552753711367685147897266270019347282210370429773112412835516677773274686807891912329503785052605348039938233985555456583281075328787189580789832050658629857715072044453876987172951792150394898519136062932619920391283224401527822199079571983838867711569823138774462429834743135055220196235997738349745047959346269609634090986965572450595133897034017791286447910957407688824117398174068182223334108474205208333380210663021512126371011904074547612502292008424363972130385152519492900948223634477511555150819007551188900350065714683697621778546228909961410579943435537966839347105311203951210999078666445816382448744150080719765247036511802107388456846855372682354455880961082048543934839783083082720597729682149015178920194281606455569168284006820693060643287970586255857038161277042537081300938387982431054154641903141848475747397267311738997403844901938234898973540005838416526306020233920509985155210510507655382708873434723021809178056043766299820598201059337736470096009018243706067722650512924936278273950877104918462366196323164400758304905523789345892395808530133319086418977731108897300098474874902320672898906107114272622310190921531723025114432667791724442811110412690149522916735671649986204720230682115659708381430571914918359193808101182572482331069372040537439122565236102486673181165087939898532693566038351666204476753749338155641947424233732250520238781776681469355044056735414675301166928069985175338734766312271741972211926823388939680764405734580668635491357900909726249816162701670194528197330289441619608569980402015992894077500525038686424176865392870045364848475423240244841730842272560088678757668453373882047736835821806835287725747677949141458475918900780410414808486620237498487241068150711331406598146566062589675216520341670498177798538352769973680013547978230182352357678703083038524732310726492557761651273131303882387309573122174179367437874248500408421058674582460235264828326108734207465398677488985701637911026248750013459652856577077836235069805734446066681384352527082051987983459570153949551436633489164368660907772573136104993633117615710961105268558856055480116836568370561386544810045944830794060819874228277460227225031062584439559796647781151901284229808896231507122953711155880657715257696238570294774042508828617212929294660470984424887879087551189162559764172883337593551366193552254286740689298722975122029505638613186266656684534493210570595138229589513901635798368647893148930003698826268049529993357828042287498981077185456978089423329333336332444704997448557761598922154434550964097871468507169229840415240874470991346711327506664462372308025322603584273914582097685095157790829510806963251401822721348251453775109777530086268743516720595058271507509205410096058203381603973263153427666136748863339102639906096103786966295536800540088235892786092358466820194872832591266010776067457587730959131077335178334571510817696223182823090673042568250027573692551613019169653181880269548381572835675434455956324825903381336936232397943153796929019744934741183074893985636573844967171261584910049654882375838647482764912820872057501109680271930322413778985266153560578526655857322033543679562213986986611597987976666995621525675484142851981554883131169536976345783441194596612809041833028862229543869363476412461547074391042397302960274795057405671613814619721764133466129872694933243471414089244025972999460152197439483973727433806442954442995059104517889513242942972284130020047768932917052378331187429243843998253695973824978960427602733466352522239872234273858555017782437379999151074999531964944538064631412589532713505696303877092954259135413408125556507750545514921772356956817903864981634954352697306375527678216819833652015800336812723856376994204392710879413182705972894368771644394050714499246144720724975591679331259621077132695758671030802072604037699992712058197685656793490216729942625653517031206695305832432562422752199040540181828405720302163979036933143209182307829295379761472358095939925807493088575414115902368894652606743866109434870881845825588242621055013018250763742255564986638212266593018039242036035395298097377811558392517320641858451485193252040650896999240013016530346772305866910286734893654316405267006231982094452951610008031080479264568713062202223869958730295928830958032120977608125196948020223675649109338972912174670540204616096603454020950342418341916691422509720438351954721118634676419860419681292920300836954856650337379533639732795059892468615230795473775298304393509428202689437194452825204968615769899873032922933630906192709949921346402311116006307624998526956714976537294199912888266166772866980003006338813923763817323227807345914557766368807515759190951310260816672015448020963833492816285478743916032783052437441846133837452702085200711317377048489552694256539098199622869571244663846784580557732425823621178091851012920238552483635640915979916342699496219947751434072763084304182827964460751877198358729152824931632113845071269168226298709659341141448858380978180563851241753939169581926074415588098801888402703776472839947253966843672916869544539162866588343643391884575891201153098193754816539722966848647023886286948177331144301136602593191273064789785329192995269587747876051388318660745203802254872629137484906936046512881629505653979401136520064125315095113235570265994309662535699986738115431252430359619517473738430349220381885519260275314647336449744784000342428513294919687436363614399511328806502767039211088393997402986731392262493198144448265468625680075499157049628698850868991378706567643124856092026037563645926001819129361235809071857937392223814478217716025849213756823989294910970616735740148502792425210903076549063553197774806567900860656016176378019812144042749711592345503220486531945112987090319220991084194313968924682936578007358338414105285781542017345944038239296629286303164268596074501571037004474690443512703911531473543768154883860365463454336011262149816396530254462614610903405549923612871043715150447253278639034769255814257607847083495451374883662611805994587012596098693165121642446882088695268909454115662045275444465100937378911612806150044388762565423123176939065924968023075782375264881516053655076813149871326036361660873815443225128347353722132960595322543084349200363768657625151772284572157375745849547118624637698955226073295765071804200055502816229398765010594329934180986447649554695132782764139747839207502047297945323432681279404732576384853452861051446868333894247473911636665648829689044195595209322079058977177692473012190370054011129130546215200302108844752936926623258268502134078052759734283290910384034041524062342520225245483894097189376251656544375608975384111836536360140292803987021425964856124630478812029259480905811319059728040375240979714909903672645992796053119521016932426711129751174474004752443849184815640712115931236320891797176844806061970025736707114428015255004875580882917211570411432770449152297804913516965014753061293097415167417094629850883939644561012234312680691369219557504872355454122226352924800352901805876628073646912382737021160215992920137348758152314713257055097725948142368629457578672840711664025756242248673477373040928414230275360372995268027792268460368687513986279714182907993957393982090231194415240891685397057057355123301816207896459869295735951735273489554731391696165333736690728074237956212206195314705003476745584608947861017241103088057173117000226868143353399959554925579114541535697885340583961514412571634477071711383163299654716629239112610020517955428962414797316050150687602881714466887981414615417616170252187328902337711151245103952392516756008951951435469116295126628508142343823544671705767587779806304873805907367063772203865761688978308936042560369234740170608660627348384728898882095290011150592070520928781089135223639576019110693962975348461836559789528844915420478848597394085817879357919854984588339722323452141757866517606069726100250691617715093412343061904264147376236389442706292826200960911975083293785417876865780736533555851055217025343451978261588740137673873144685864738009810877409969403822422473523862016909565913473176796146342024966600667985016105155690431420441087371808439592092074292351389195347707644388661136345323385877621999690157147304076630647126787956324583175991248322002156946701335743986864212403909248850576894233682946681769849267717113122083289699050617371872800708041163789265657226006858654448977684857590828415040737109961923960916933610398342688794405076350102232109194627394823919284163830898324259783456227548230654078397660195041702410275306639791225492374087590282008317424849633463958309175399587700755483202872717531979879424770792829647069537003700704679330587141700462106514225770460117094612656579112090146861674454614143069037697033565281835874659562173387130912442215057245448811299947723980538560426945785056211357172124886155383443877347598732276938154982906119451948711139999051578758940876711291902430873053334737888799213112618181034179222159178494086697160063849027258587812436007086734784378027858392144880416419851411366836929850884165548395605847660640767962435342147945447094863556479769306812928128963888539186211866000926748952679955201903224371328477874513716119093796472796141981059284010916746216317939224172056455665743159220107217046339701265024286668360712064802872073154723276407316966083818304309820895676756436287266288317598090004884533005429607903376442603495794889848115416754315607810600311202105958691989657639384688205255173387144996338566200093507657916442350607857677055440873645396857196581632103584771672735121519803436389375016178920356258382320748951590019680200838836774688157553023041655020915510774678974126743221705669912883307057868134291630488738744720189341868409750235207536370440530163897528042330385332076391445250394354700137901049875568568402919175142089491821227282330407846485761212290785112201472262755868818707740626135806768267002426270697307211983089139985474252551525804821528950255949296202221174546043003872478637414971141226401316684688633890490250858156116136187619319477045925679983018627389379797923055409772766059552649075934295728564801061393287727435307068716621932119184321337469365465719182601888968882314118849810349753062436269371434435151196317450405207051916342348835397396175448455401922149986432862652153160475606766140578759350470002419474956530603191491655477260705070365403689314562565127199925074382981888267808449879734031642520296152981874131355109571805895226860918679431600679416289410493268788244634904753248236147657637747229748461780996035492917280304685583358024751756158377283372226533386553807633445637435721729212668211027996925192041914987558854733486910402472036690901365816577252630605996116170045247465045286428252177730137226794054185356860032162459079643845409705327104381059817150049070103688363795769427740926590110928774891126391344704989081970707443032134978376699459385697267159997307147111579575897920653910570341833650369818743217967198554872437269964100149601302264758524829175200941531052703544248102713627296867604457531663102810425255532216520284230036188810356549443362649460505541677555548814719305673380485822376489700897337869844629214431904637041785699341418327381463551450624401424783539151837637446863738265584779892979252062411120169931984375495355540367710395402139111182512450210409284562459635374000414463939734142783713324154952059245012391311970283110418021380012889998045081992897545080310628811190916062673908483756274052228810680387824954454418174256513993725598803521102383702443222569740156489123472614740857928085997822219657990067308874083095379041602628747310361047406116501428880138423258614481325561638249260523398726311660148895746389006090376914849206813964416221766823045574999998150534862488055682620158709545191857908302580504402765747123740322441328437089391346769761736440999266482737528864035639093331030699232779118158640860991736779683554172801712246577403131533545468886721089913630570663616716903089680815131167692601595127626346772683005317219850548812016256768781432092435917201113791438603412941312271674008754755103524164107957058919158022426154357568425780613367957331500369932913442645612634378155803468308418626457629439574991007303795716226832365565110717070702999172138030694277000689108809210794301642766429575673103109671977544147789002981790846710934738606158947175749194658769077374594748852567218644673463578524297965615730476844074178806616989674203295767109257327635408800145881032265342915791675098149600969675581985946933970728257695190358612915514182639737786063889348024935595677634110424404931705312012694713449966339552310989153029155474449887755742017487272953207544581454232284219626354805278495579944479382726954784153081982134646749080369677621263369944667247637093426143148701116443248813706962290051421646413273461676847685871531724733145582574637188756420374956904879885334168850074571915948987378174669899345713724578242552065744870062526443887156744309393403750689587315079621965613418580662360190745731003749662308478234851720123329019072720746065849243848765149061809487399845849001891927826926635155642564209268514352507317457495141366905788934410535319853104345313381999525722187384630936390927155251946207178881348136014983968327969232580102566120587739490501874200545044284581131884512889653739129009537070616732033935066819685490828915540474202530133604815249914778222999646736799558415619271476058221157215303991427535012966323869199476971087658631845401404650509401202318032726441982057870586569473654437011650243627609900530618320253860190659452857134701698128273492584756765049065610683490397459115429056462970474238463550511891484452490201380776606994540707809665194165470002079993947959580565054133164841883099529623558262589089345569055007594350632502203664722916208155480072944864891826831574925985015560610338055464815633464840788168542724483609355593926465052363227681267539616868223775869961296081741076754354252789646728549900173598200033967857345537982811312983639952866798297722828185317823152258109807750820422779186829713589461440090045062671247070281922529252098228173327922381728830597054447287514385373572089439008462736483514019942110226610088208781809691486195824433894317132071320431296123832765132276582293933158271051148319927042593266729919790403454943520221586092933291816145112803100711281522062466396654225154277448179286697390560167683828899169389169077016981760577395521325011351912803049628127973692539386378117353466690522959977716218349506669697805190693688298638968430231753514211307474294967425722082329357199621353931769101324939394787362145563057383589855572214109952576790962452825791413923933704281811243074316202119327518817620825437419498389731907327271693221003872359285285712615319954616212253906667537521396085768528926114538899878890897148225727694142792074039449859680172475318055822401616873428759209980377208290010795903795795191236045422472467950946933237438112805488948715488068938622255659351935643957429614298522174096262755479976928529506310336018235681059403167245192910111285683188799582589479869600778149639596681884914397678855092566545230232420950690489538755380881016867359944957002515119068000727551161207800071691417236733337066708209547395683417186490337447107464491423997590612001609353979128306823648572713643499339669207845362513520124452286125699855212911696190149776991089109155913263833089507925611214135691841029121488426036407459375442370855873103954840955581826801476657910882411064235933548758008416126821010725271322499122620692500308050846545354189813216899798088768310564091529935280442124259630771345097464286082741914333604290213350455183671711247436590892309014179846092103909966450348053968625252768615943943965492230220727403398466741116485194418642665511573415433904655969374428596668690417977434960506861377516891330817192690546517954771551761838397226992560431816714217481942170558938784537952556691337744449630669961817027293276919994593492892227916213010281142533931188770726853699623772834961523192912443840800731207171695252391851722051096092962023656982674199852705321461692597337257996943775770391792127409279310970291265826129298905649681610504427734588914962358233486737922030843088112381416313885536749236872355381657719038772982932148585074944952138412521107366744594242793419703920249945399916434956032694450485183985169377891551774112936149611779312853666183822977063972945763377394102945096931723120231883411955803060238843556252624839848220245561645533366889579545182860611185334738691800937480504814943939925992502392923127699788850244582978197115879698682586425697461349684302661187429665121638135565539267768812645398773611074371688296392000302803399446944192672931848849304037519643205534229605924657362773335683053998495413483963777447463789739017332267577716983915718264387024489432627222225035090129794321178775326773935494597553059963703356644304323420480928565116805881654416467517991024405629140025210815687941790211359149048212697696614357971045319507966130401543839346809333260528170200271504008645547894081677532358222575331673456190743994571848522362826773315144017301345684367361773409981746601622773669999004018661176706642955668311104411123050852147443055432197811739099820806201558831657405862073900325667703157236537655494131894589448931232975214462736437251138453613541316439950248635010579139347872462330439333656302697430353225885284166696972360530922023763041549683400623520262314684635916064401682217941124777534035041975766756756001640927141241932618978954564946969492431017489157673470827013555711894629831672531715571434058118516533693751265585050798306772195309743791890125552637743566690605210245534203093077402344443967418712307172736679963317417512083754231931034755545729015529322004892071082679030715004106721542128270311112242350786083086917858812791349320558426353328009742973188462878507704331416975869016878741760884829270406520098583424144913603138664241462585224135273251730149734218330914120712009386080879228045933065693563016792884697050577219292043185167791789187729710588680727165064699461857594732569863785569377830648814716150914714771804700312248060347228946818701208681266409084318981216532906854017415664140497551505357779385635929216273124773795969935117572355102978914476762177734410238739687242875724167905743365319025246709270898621848534256483752012787000661959077438790873152320834149576112208308670851512209217522079028656374915471953569116196274569894639719783367816578588026290828893504030524685972613451815842281974529602390750066624958747068816793015623925900410139594918316514128991363232820870846641387573351873250928286588704537062804173771475220568076526077707550996594168629198542575913103135155918286951848804970660385167907658464050153436370266931660420182575992125510884023693116121617100950636541668103554046907130573548856004397589464495152290494957281382369967970667013067400424275170061552485589550708636639550394215856593976158523422506554550749822528692706953475490429981481557666901515847571619828314691694532447613372146023827488015327229581600405127306149881922602401244499756108399117395075581425427052014418365119330449206109172915322868710469615966079260017588798568981987246733984687886426798640650269210842015761127871484160688203558823585610122294393600173727758725783176738651670340431537484556469894273027084692636925783120553102291938139843085878235502569352391264372920008647607280894199916569148329746494322475274924147244195880629715269343521873834871611936628927870995185879706411311613213300267429156743138165917785306390036634268680268547173445328762825111459198389812321329207678526618552131151259491082350680959893485619076263171337165551492822722686901583945919900202403715146208924642710226249990301664389899655261247163057687573416239422088633062157919451025569416270837175020957689550020924960955822531845427057322213068996133647199638442542972016944683973723006522248859209011282304013384173691363159789916637597236188390644830449615682497162647479290719533644376317446348192555863666506554783713914325558768129007364610788828106173455972557310090722074811769229707398303835546761841261296835142134863380173123503072423855226196509101379236071588024351470407623925641901328927459942770356875073219404110144437818589671188775586148604843270063866016165132950160345822492236263088574467695170302854164398088536755263657626317865961914037084560214748050201326663104229005217993297644804466866830617688883397319926279726682447309219294492370666773660058900631125447461559329712402128582975740677858617413574455427940837500265551642319193818141180145456160731596324338146694513193932414406606208876319897234093640821247994082724019262440742491074454311179127079476303592044512641154137958399961177345469118405167031411399018682145987841214060946647164294018575107511245229780310473581477502900534463143099431397396990394545637857417782142542310517396031606369613830421381396860352220671490614135839093349408745873126530685011542039077880641715718296754723703304074800073038478997605822420809619162199367465656172804626060193202886893371464777152161600056629017885857035554284184754933548347690046051284793318776405790256832590220169792170909169944634161630342326047990292526356762567869669338265258011794868361109554300136256984255813845412859767151326460019722810110677019010418722538780492127459824213513506095899351201618278477952349884946196821120706999976732139179097732917672783379486513571793570468164166115673532401979613650976917049740097930131185011127641011938537327470026254371650713846297521733966882437440587772144052083266582342407925820941690929329705965310076199379827434907636375702607416411515208224850315540783774245418936429040775148300009318874334126604231566144098029321392988112243602678119884920286370514451701658361071963428667775718770365482110493620304088963461797883983074717678083671970983642513664537135768642469200298602648837000373152310140003593021369998904849914913722571324909974355583357941873367241012257173424016257505107430549310554768919124078067177722039771089876273788133167839660121514165683456829536754461162751974504169275989577323391248129742857534677205066724573071104358589616065455751118965997003066319863474409024835153031163421918566434797909177828853871104743287342559633913542751950201457438539100242147499003231249863970929080837573187463826294762489124478197234284846392400859595545563047075995233197482882300869934803191047460248824312461332719973455672193012175000196384199835621397028460856351924153710270085934973844310750631711686592813087970342539717227827781044533207875259493357397396181824607167368984605687535848667607824542420944733109833563970967553756929808352740684853533738739894582815514641371355042291121682899609641028696807061937857947381568099392600047536669962890120408065285815331552715585002457572046807006541939539380413727024290239146548085277266894185989726211549254527856412570018180080106011660516310625885934938241017271821669547187442690045722028289456004418526939999469000988668664982889112843124820814991494150410326852883491702377656988960397347627221697000675756988756885687618348776863089530068023121832935455344029715939717250098765464022062774310617266646026060038228014942880875204554573813068888144206933618858936206420141557811166685525827766827802133619695537934036618208019434924176145569645484255355468755477409641870321610897329528551520648850094924157763937821377518670174791649008782588459113780623071093050011859230551476289635948454125473458956779403391541647022813035905080915269518424219954157318325710707803160082826198845331957945538752888320745079040368607787530716884199902134699647795953798588144335109209831532313141645939905921553224104501168941881675168385352953514145169636674737596359323028060877930903028587813333528933675540961519724161010372343096875219419143675158176210198407965782862516125509888484906273729159811109540737878693630628000499335677178767901514713413230980619557093204660540153631432931700722229368533226229233778870797879307179279172328132345807345038162128710353718634113680868561389529964546579987870062311312134507013033128922548146886980244594799260585259922554889758414587070278304629338229866445336007550419366526271063939213412097660201572421150896356383602617472549268314612743398885410503124004559491886952071151390456910732700566519467440508675440779250533177703168134030786624774465503980782818397538584244296544773806644016998898816332801763667809919328266311081989250322384679945562369189374706206315233557642489243238590327315713054183190033917546763687564336893449033111984836212696130759130101204583194831350110750413116498547728282243463044701789626004745005414104975972558817776027579235424139907091094077526710363172408987061846784594093902169143652229423628734034456218741257296996209468554477748612387085926589077426627270548738634156391242377322016215736302387597848564034784809133980202573541420650247934049748423010950069811135241726224766070467631395564001789257944502230234767104654216615607576564048285628107779745331446242141034963895658821902199154999271295905106152553637391715628730344673858140612044660040695588573381013204163423664166887442905552010953321847913870524581583253868325511384245642163144209380623558103949501627289022128659328419264686827009969951823639890465346133916492885907652286545312545623004605552485703367836522378004256169682133249911205264972877300005888952656404268218963198225399291078562354412292390777796183085265599878739548088606665389750311723678232675313873995892275470647261004747887703989613518611800869063421940230279148890579791390608071242412918229514166976139254178511661261233702388834660320857484972791427959632154313433545583073892404161359429096143544741151582772606223827544817496922901032819503047100641463409616977842804713433338924724190822296566254884496440791860633898532733117647943932942220285801915167769056064422056709289546646600511512974264082618735985630874772674852932345551526391287601177806001775875086043984907313476435229706378146322000635424598183305096696203544761000229694116670211345397427851930450691066248725471588473808234653821653347839621255497169246159851909704276515154643534889568919922690678514515814480729970623955153596014643714771310099836969312635222267742133141964673518659869362879429621852016349679848432339429503258251848436528511850974954089168836361172061995702311159116057734486941012021631703715320040088904271876271040980949362467997852075280172352281055518996523068216925127781733786417569897582925386316342268189102325593938645567804401643183051920455317512163320580841171000968811414239842093667180747862033345037158880687010908397730958607407369150667358396880949583491951092133313887900768282687395802771904477055289136909435729738697929531358814797252189442803856354622048994878737787230325560971217298025806406199912486592562357338518274385328144811788884911619624144220915481050584885502862743468689449399654773242091001187909467654933882254312128521969612599031123781335367655255325603485017669298604889830760922137439348501568867541967448209361959022405403565634036386543667153847017649927975359973077610224497237071974634379452132524960441723531614757259346910178339533827637534107318197235309605632216733663158445920499954738170199184549405940412829923719945510372053517916252731560513205389897118080539568317176078698153949917800730972807433456106211611405563842123038033082064059451887776750204792670229822307591196317322415990873415149099121615601179319944580778426048053623798154858358699662200674099324021644502770040813669989626262575197392968164070149559430854971374467215359999909460468698510577145282735560824252762946901469016996494408690330437108128526562991796361398308718837234956112027037906387813698982055787510939784765374908359034018709601928809227581127750939054048532089170613619540007638961348987077353043377838574885430026021154593473921691534133830584205085782438502778075302408853612071604719209170615959926357740578440275669693859609869435188156816149057040549978556274399182153153740345775437516961896541701185540716586091711299745502435035827974990489665143164662497428666131600928461421028833458161929052895401148799284712300605882381311796697263080408864181430231907803130416534002681098990021072840901807471114476261174012457573098749318651384087103491867903645804028239192233578832618223776026501486096273642111455340287747098107219467752000404250697290187306856325947628097496216286741781377254647241079724111538513612011870674450815808884309332544258227581866104353582180094020352530593148169217261311467992378507175878263065427721065038084237255561019716440026348062363893300723756669071970665973641533562998932086358807590420830268431166145828584575463146352732825900295947797237631309946480878412059939660206196192020201091763930127435637332297630677249449772425029534052531146690931070061297631469716768568164952509520814233896678930666592107150942215035956109494046387660977072805162245912936541697280837373195726567637964530128703831750883881247628425730408875995367869284813228833837102044566582699886783693342423634376976285642176261742771341098836823952862545892782743959002829738835201512516072646206180128825677612453513555589150557642954616785545490952397341940885003986254158784912263739747230992509692021884017852772504672281440646902644085837326199272090074661775487636380930552441841399676433406511349585844909313838858669880843868845945747532568151174061964061057322428173536498262963475241527570455480051189649201394338795462420585895842163605246689256445647531644182485967062584846015811656356278686563630012797297386170353140672761857332564088788821743776136659148099822405810075895662910489376136322299163948153483437138177203295136541010539215819051008795428944150143840614255282111927333772832120522058322031753335626256771355121223960624764104659383428119725315569367165347102076327341207487525991945621905860263650380912865551481651497003474402860365639656061895505997054588202039695496643779096797063136259684536337749080264100752095937387878822122975838906124581688296828119000062767848038611087851461384872344086274379092991635255883311619122369821521526335030167768663244527600251319109304691228124629343533874970823041331034258983119393469173141600478668337650909141713143698712466307022029408634507427802362707087587894138328586164904314605173725698020212267810885946545735732858708275074520812878448132582732955907758866828507869965924311899003198414983608817474840690251771851571243700626126525047248759387474618989056549390105134993142639632194819938241710784484942776357811862910612425228215067856031652885316212722389362956007084600012688257779830763457561153202000043203998771298854316116496194698682524097670013870586737878888493659122956534622988647330939091352787811189571741628917661043250125675379213517796574825875193518317321916745747849985794161912636504046535976241956525155761392266080216366340067309518065396879799796802683894128135192260211918376671575695015614729183929738113390289967155354919457046083607274300659071126849869655290775406003716621855493655915673123018067141427932883459803891483059075032147105749438314798751318749244594486329652200422528626554353059024359522193758754197723621348123213283395766534768813572935507485222677390698584437429706041978124316717455733542084440215342461855906969667106009361635498669468321774869643357705113256910882541915833663431694933783660152749873810065609225757048687290011707050655810972101289030408517511726727110595087064878597936309961325010918774591098902936225656896295953212103992359236458808936191263978439561225574015146043708808740050929941006065984386488268654102087445417413307887086941565703937638595992316296046990216834731229413985112245372895058964786845735870667142676178294347096605328174584701954239625606799524705368296639260501368824222568923210990834795743947977420379632529293571127744614456318602572459487341435859069515185105576651055292514117256453463299986462165160165062065282140205294901848962893072820068686202972802224363037682441636968123366084364266564390682729386709986594558834157185820378115642631973563731808972535637373689375619263385830425779319220939332804297488589029249190030621597743583104760885731187393007660908030471572612011153083069679470479943218163577072350721208905819097817452085402770998896319406579857987446602233946677360744418562823810888056414173714972240235274253186732329611223608997894519788640079117245058562394603195850555262935989858556020226746128462760473254632335531251251219394555772095392398722830089517246332077563762372864129566675362898620565974543967150648593409008351011616052591979363281928916003208936384432205847716724091214097810630069245851590737208876784412594358631699800675189055360912818858855566406822439837954979656526077890123919036124004576274830763266458855155064693486225187260363349991302758175093278059490689711591552547424561569455225517033659720729973446656387360996007634835764692668679640676019870388248913441358436182330584462387675019498630954930765829647102424376324767555390938267334488040637593819244686863837547915230370284940704253553930796056273687541021253183639633274767576923205968833149979053728115350904073113185469265893292803574559123135800733256849053994948206448707993584242129560043005693998634060984433449900139464966992860488869155907155205617628163697438738235861908765839930956947099521615258917265086688250830205587560321196513799102164104437085816742005525180268526848736810433916488945307545706402386432418350470227322340674655488964031942445127689443494492565366707563071767401410339738070584508274504177783322341265529111050786363943966096622041433557526483998079768893488497335095931189478640695240066370995277505779107145693834953731685335951829082931657180681753845005153315975736487541559050866678587519475630929157450837207039283398056224102590274234802120203168261218088316837689368284119715275771353974048539898128744258729180912386465778650661780078310703129080886591733347252975671249205530442758445383790252137298859611491932380018068550264973805892014027245896444712507859837052894794691934120652921713287784652652317813790303224022234817934161203359545056001603102804432353930630467453795803664721232026367249491073288231079977339916928573337013154976338623803810373693860523207321740890696977509729606824207301744277507126065840095960820359828411369322179775725194909142315054101618252229288960818941055288926739741712752619838226204149157099221659525519206802882779024358634827692357673413432812749946197789955639886296040363306948650529930914258109767126643993241442113259051227828017388647035061868898793954263365371730067302705699816724155906289644603055660110654339488214224646310116123402354890796629078808104793977281723299109220157633588211166243684984984957627587990180287690371202389612022490841572281803100498397678301949290089246811791876521142793102340881293411216245331674242314744519907866669409757703291653268552474506592661857952693968004795515101776136697873668781545507580386640752136742145165858908641649413030873410504635744749025737315659071751522739265378262679169171028796155335009535080206652298174317240741546123713758748334582780288176623707016583922076246486787697828539984280294228759579196031431039312703106376031714837638438959803487347811934693840715723997488179804157733493940326865682712099410396807947239287304746640598934531423213671096712590973926652852238869921644295940924680611457862037863127362139927968524938654395788507168739861840883268677211013143275547215209398013696771207077186513837557854094788231465259119336233012171126428302481535391989200404826933862571491014367442472540553115343906111756132576970671337285596947565369166384706636172562852561223029106793338636975538999753233613733069958042057169920802818217659761833229556046408987007984076557081898491272989600101594864864677561916034797306122478698738720827466318891556069859466877078687995060887078748187937639884848368667628249889039750122525283216523644515003855574943448147715716605508083192394821010645084896406086699962551993384257302577575688842407865421548727504354283739778320121789429814598544195159969662128201800686581853175370044858628264835592194316922299297072825452846848557502752587258517969268643351873632597363566244837328682354508728860475414959840783118431029973901145657410661370004406708264306916014425799612441227611035959813076867302764074472081174935375367470467433912161366992273424144991986524135316561022177639769133974780082912561797121545712931946048663397737642513985126096507057384144532345932172265749956056751071261763242995514327116584564980106646262829656180923599534154514794435970336727067112967065377713425950798299189614004404606939185699629911265937162631513097137901880089710356696114643176512496790637097388985513775465950777695795563383704743122255656637244141800280896506305288087870538725507996216091967627232711715200925138424541722272553418837813190988691243088631894460647569563129899880151889402882006507471865044802197009727049445282472680789489797411811466604751123639531203967822845797348086817622695693922749365703330033481476743062849170374817657313457175869496042300526098712753901624397091019888132202161880484028151908358151881928688741367734174088947632473158854985186680435869271076925705315286019931084344038796070529814476466199543085771676090907743869936312440603538043275754173755459619611225114329921656858921124404655042635778510875503661224774174933644558280737866079923178133645090192931062916835620060771935204182221955733884304494658922247265354180160746415094375294221243539052168813657302758835852683045985493660818016059883712737680559030102538437047567087917053851208243128770579968266057212610167302301768468983664566192936497131140137239260659654228195165571914039811813593252385694379476425217906672478251784783825553259982802527980292633498258459728726405328851810248145504243729124359701005899146472689431539234869063853437871464187780609232091996602068621325215048835378400129355225716322217057033150055667810929865012217595772768031202638883833672002373478977830937956709105035036314645901403859153295030115400609501756001733960824397010856626153943577280395413583352078241061047670431242112649667859868201569838512091191226021216950553634569710910905402353165982676535679263454380595825597913033411885556770278216638374743419349172409699469386004416088664113512351096717702752301396647902318626714163269093595884847464421683803914590834422121617730410124839094663541881316411214042875193480680883571738347973313894926845713574806937000965285969662737590082548685854856865516091287393063749750484952845373463295505649370991499480491174374952607769993809943664688492042622501650229901562760613062430503826615953875926904439180733452681563206756610197234792633471662998693949885926128859407352038948498916818723715776406787829602045464763830083805010332935344091423159183441058608306954988340162047853129361324506494663045413858284820359305735397499337259211086862208519879535139256227104092572407807512729056218074128906696864760797535562074743174351591273030219594882801524662407626902545845236737232202129110447351145005275513335663481059588537342105644891683344684999600633902409653013249198939438196524875137108625289207714692969181216431164607571682077691275779503845549860493885737304516535777246374404315648904238659820068116770489135567791035423794971044563132980933638119504106168476996360518050031654090287522561727597014845434077825372464829671519318784975831751165837172920746307109248224001974323660785189042945500088441158737495000451792071052258922645002075454340772385914234981521861773433313988268901325816446126810660034516491754599153381354331779771522071879731616706442968863311145512479793865501536440410961040876801734274326223678565088842392962831371714567253448901155931580438608235596371049303791626754591804606853151935370921079271527228438071432272742094736970590204575568503890354773110987125721717680156608488564948105675530062990201293309886165573154757665845382891588614413615925747910882402960981775054084033818235272842339401068929604890332655524959659683929647772051949047866583856924870924985258507080311559659803500962581943061657937307438034062900099183243329013461713262242895049918488395922763363234911877014071855367766855375156790297245163092115265404981630061259856853144328762801806863322363288321130262950644465124054267859026443578675536393064178115983354623930259950727357060363345651470489727158577584892477282897985927455856678038288511359633751309967130008073591562970652964870430214742616651438757091134635833442553233141049817441405563072383018540254887932385802922954762061519340203069867943647905061390068361907221776148169808006666883643106335752475784816464562322509277581523348628626779925670668622153910650350177610775523422489596770505686992255600454994381457438793094591200550504497984873338198414806406652604886851591302324034803641847396645784728358762722493794942153603011332482903787205379016260360822029813698234284221842331738306427667061081588180665510185216205195537049068946089869451361718759394235107140376220465262036818194136800753931238152862301866303735506704382587280870289168549112478016017216248814621690268209005056214626133105169481726133125370979537534311903390285348505498315088614298206694836403185439413967659732641787061993156961912394133905545098803484586455805734145396630830489342421220671646467695214926092104020226443712691232015523555876761187189862561904020366255904644547257385827909903893057412530918943238995220724397099540891417142751416010186600963352652438582083114587108183710520438446911106768946450306127427214957815743389217500234546090708558098554813147688915256937097940919806986729746429978961225641449363478814897112903753288041208824017810961193944363829772704717153805665551134900604881622892250059565570753135364042898757309110364705927594218768645310462045429603803693464654620848400809021638873157192014897317219737755227698926266332295482301844746415671420088638037266841552756888880718010733845395740426238795667904736141338973381138310556132288185304647530754619880790949959468181777543115533353233501786537938037348666283812356570246946484910734349191227281150027339878555946338679557422013542262318380915643254133115337932463669033091510404352984491501560208136099509044130652215534756867793984613656174577486644585117235263816043968214042479451592817364921406917699384269482330540101857588666157609365959501961973792496270647244169028627447503898928026769431629283474009693078163366609935909565465690030330226713931503945344347520678070671820595598180274487967139727262095386602396301308337355342151008471332447631294650816138139492669201749550787271926588238005397734439297705725056106048584806809493216161862272842207246399849839482363095506628167727917352361763247203524571585585832225018677173664578297771079779529515348328838304464787039726884914892424756707245467045856518250600859889758595665899991935374299286998800580734150371874825870232825898955406503733510864065397254525891774613520028470815243404173058745810830971880677477036235573416884680537445893656532679261823917565369608514251822965715554186293721880914726643560583082444059979370637709581543970930975084975017951768145781999441593551101545330328475214602875272078597147088731795328219755065907190593560249528291934394589724384345128684118067683948402088452932868230883382829737462624986934024455344124203184715704950491228439319654621032949742377627107929295443212040816359079991657578823921632265650558650765642269662328870338035642091723585356908730156868479582647783208469860506504765482177551208729999987156495682081448675085630727910204125473172856237429121852590253020455680381582242156118901833830518979433989785349848713031239909849745183472967715729181104855755256458195653704527054301618560669076970476575718233509020313261169385414449586599949150540989606437944927830195166318376666038785967913601249229095421181632899780450918156658087116256015306897272616041995588648571295978317840080411326652952725571675808489013900691151039145594332943746101624508065469674423499365961322329475679694445622390069588535994511402957931163776865177917645744633065684889302400280699130448674216172761676154736220592712627611713437564230208811861039288579935041245872538487936985879285321382430631625318941949227562723149259750428642314312889031591261060614676088538689668529870185586858897450465112020316811676931498791150069274544787887325885919092403239569499202640687962412362434321173459560305596501304343008987846474416214746174663677397703353950553173713778617438664665915415624050762017442976899846800808331530443995825736844759788541098147007092946729853949318897605130957383903578736623309759423127268890405117073928258242037975933183898354441678258587780341861341896513633187488250103439591861963326027460666430944974597069231072070905239542404801653194918042164919764900901912283349378447996053200431416404342057716194983358445755938853464031196003585009191755000793870677144562455073126451074874903540292346957571970836481453587322539185064608215628263827765083862171876719894576359609606926171279454588482841649314453398922926247144514140333731721969457812038118095413044121275130733168181651351633249075987062859478038433913679852495198994920621348423391099508267916242093213259892563779644092141814232760606365445252598307724371826442937483695139990782987434026417096445541370692371194003340717240471436924623456397102877533003997502315142898633793487496563891993220600575771174001104249961655663797981461136873350445298338472123783158010814537519012948021710341657373607858143079747803184176022985503772062380978562820253749277322858438414600484977855794384964239126951252291189129901209134563395695677135004539948921052168553328312963106635465348524284348076373878633799285445018374941556444938616922512943559006300317877641347492913762936926666434144809348499182573024653039199951087975058361950631387874769697915861387107537318784854008087058026533282348194245208464714989423472742928814962201842052331416680215209724363835510064792348117012741319894511322612083434640503452376859695876357772501753224351042195381677327267443875349658154903686028710761811273855600009518895127674461258103862952025354064937832421127606045742898099771633020357833133853606279805404842596605912719757823045032226238775211600322207124731476606530101504502061404599104929007793161738710336226307873214112389723963169511848419252499008220712134025103176162402447453639445044094304526113315707505559642707968222302400672734127796258807581512559535491741055069550920471738732761912159277054995178711742988496205847925894052596030332068625563305280586560314660247943133160430170418348390479215553539938673072993668556593991441572780126580062589376309081217263389213728182322474736855608418415398091233294208343795365597938469423536245929580282606437037323587604079812135101165982726458530919783416215251621761966612317913784384886746767968225533817915732647686401404874648652448108179480142036969517488330008338910626634362219984725828229477220151117154187483792800805710945030393337697971850949890480452159714993585513779583147804324188955625593539960497729665652658198628468738477994826869918759171918851276744272686901922039195227038213158679078553436517096796075419454328009581618882659306766353137084148688257768424768279092151871894575977602552473967636757009393104062793868996653513728890684864154830382450153726792914943912981108170100017184793897556639213267834722603162731735238103987169898195921135692186919618233941150235789499060451427702412238969893953272294184066768479924237601981471945446517807322264326158559340401200350668394812574012420681717810861674918884397389748101436812321844087550025924063769537683900527788276444017622621338687597484739929209667172035109971852345517960952414619898690704700685431138587716476395718662170283996257746003038481643010609442284101681250330381962594946696012314431983648944558217828147750206951397413859400494528333830664946041190031504592220579099137687117120802310449093666055856815341149398379649186264526768127926791536848900603544138478315290501921764352860668178650713275406280750882916035106843019445564320223972117844661725843021130980314480689095639281775346749340720095152759370286569239402581654997499835268405429049374867810784194753518190883352281408117324417916512252760579727038895099336040004756828582858554795829134317618321231205778088368906354052438268576704613990615833049588941244029098416829647841186825115249814830273743955227514594826418413357655880432480400569610090722930451129174633163196588640581805775396804635076819223889510981829721661338734916696832048339383873093635706771895162397358714244085872587027946016123545143863401085029852600451685023540098141660715187928698326306458495921215075800527849957746708337239584703053247563204681319389817507044053771862368356521121664838216220035364308961306054441679266610186010375220721080450099711040631711924576663444686251041995503136170966112162142325360265968867833403010924615572264769371642927581494844482979644638529107843805343369200951194825994665708462299417718635130460905151668821813196351256250002471601339161479413297434163482132840795024609835240376175307266101583826075103482287991213595265772181905311230283420122767928176741417259736577088084336901583981362061670720036168546581163192238422673472708812161548394583994522239510380165258353396146029121816049828161441840555230599964700676546027116114027763295830574905469430598336634277471395415243186883910091541182334164959583560332247949686302457430068952090581332658716337043220195311236797404922076323564468790966347830212654616094676591994681137213043877426341226466423532002975057513877244969313842963136044911191788305712737913967309761029874601657847490633865923152675176659498155811381689138918567035961971650954676973699351442017574574946169365504677538755043145211745912623882628552210098623750582583058158346282380019074559036914784650227581388912210401568706391714559127582771783890754479388294890118408900190684316388583977424154375491745770461320494395888828699246688021077692674589538602561717235764427135318841152512074675800678538171677771457029575086394471553195426708121936117774411196148594920279383422558138234437656342625563604302030919781213779537746010457184658417341933605959881038609411211205866667354628123485816025444871948456381553453456398875137117404280517291275318494092178307459210535678119953526001110438790581252891064179386926106734682606641470551864207309577707669887812506430235071289245436619448197194530625441957591923979342175619424459587962822133086271365797458538953137135892525493107220328103851030786910718714352657127677534293499585475977259780183464426579187620318650726269326964674228342832587752858069360677488670596450423746592513408881071112532037907739198192451459728549920921065433536774806617967836527050997994664857519523688723837125757769504967238602839761978293275991418231860033037005054146923053589263096952227740778895499017627860319111072257314426626558620534769075424821251483287917846656400278775877251075923893319284190923811314077715296687127292242490774182499239309527494400437911980108695627425269952679797747141838368758689494200778892857913823696506121592457112300283049347512332009890937529104826407515738419338325238631334611915819945852994078936251193923780867493686275207915024029721500207282079167037070373561699290943274020420500009604668716073833386401834206895044816930283812984792089629101847027353809024984299965127565431515430840254137281458862203603566562838372717112619685297605242918699333854049135307182531958800991873280590493496215165045595599538367855526588400329636243331944626939811003050072847948351914511609151195139430280457467076031127177059011769892290414017418826084405936436862839900724408280728114539574416530285017685826806346627498324843215847683505940058296959126690601338765712756315466034073872155820608188417033716970722044615182836488888195470562284790070009930821582987222738822481032982247987269379173371227598458680904387944497766968125170987909221895536723003497465247913071736375656257001809183264631674504696133649479582744448363082839208182310515115632387325318562251428557301383952807330072315006684466993819003684789685627620747065280227228029042514778534000657357742888915369849467117108080103765385163891144229836605604741154515274830195289113821639555532970986103952207919863968673548662710388991452966540528943292619811947850937479093922734598988070048830613594352850473925975807873983842332246084252415765628022912350912380810049062230620327359526042722549960150327866999242517900844539645937715421793941768508917108129074431742032862112153740908938021339054355683208902338731473346492891331220205830163509311081434999665735045880531313523645143994194834575070688401244700384410554854886548783363231251644406837978555465417231203806744055672023094607207703431210551412403910222048423771065144694800296026206840014333638028056136346193436894636279604892357526500445410431628778120716942326230329869679404119789092406230379370136665094688039395030357277758454448154828619815141252305285628730258767546824469765071564580552076369393964107116070284236053012084509275290959107788757830892590506973128851576047088815017291666475228504152914747942404417413191268051580038972912209662709473594190216959459928772443629425267431625588728699739573971086536996984718226143504991937425436339516645296602457431864516091896501289193468442797636686758217060873600726054228253630541814210342418485316988861322043318066654253998030597211620473752680704989138918713384400064798089514365849933863460753654133748621224097599279659847399722186624135027234120422413676730104197441949256103045430739970065189973162649135939759576030395601059057942204761528801901399461289428774040303710404104174009645105637524003543248136003722709737565743566150978331856711130994175599838666108702941962281855170490666098971817757485831602741153294624433537672763845391496897294577450180275976596949407031998376437627707574087295825128539574008742594413173039765882775880767815523360345057851193074049581329673536992531170627890689171937942568373997224789743890393846233726426127600101870261212151266323060345258384694283602370955733848080275994353800240937408933974175753781275295780560777739432943639572081208646324387115458462724577501750300242113063987524942906134404250313717788132255772007943505651435512723482477094477194951935981140208917432947605824482078286222520789376888227633634815295276299579446078890182225419746156531753180669383116457668151677888207593506472279062885070011803275827745433143166775915668137553552046812479742577030474224697479557021714849326109048251158419871463381815457443297211425643936693832923637950809228290762896355764475516357477611699035656893964968233569056684730239573333030818847189893908697645635886766666357765716357513435979749663954674697638228646537944678276608218296134249665060088396727327607859706324360015315674095955705055443599911677830414557872527920775204776097572591651376974531443864472754973892049483675394189226470184440138502923447235499508554171858815206548621003696363244724747754965517421065754698910853837669808344186629071137958550102953705324036734278570463388439548235881131653749759755445803201572506776065890213304113258093755058512145623468815002974835951355325064662713484561370507472284606124127217867180515400741318967198479440772619761136498228589201362500687341298207980913419309463803849736213221116973434364311489041886770436456930591958928810578608819668472114128738194865542813669675643168711840093643944857359730000806734938054674393979015911931883705774263576127280485269717196115712580715508039545218386001686759116247988180299218202145528937027483377473441974302714936264380844103651982114543076996840581377607521790922556295238747944391995755140470345692876930633327545331280226078631114790485180509603091262770676790551579642040023381299238405271869917176174150075956228493204864035814860757441095676837909593841915441676123648097025034132893961890332159927070982995229423595144533317303636425194713188959017917494601277810800096078676184456882802554157276012141049237054362432619853598385491028877175297197011783196452560202916257407339518438765762979045898902177585112866370758448129184958828028838387836674265439012228077419728491486264193910876636521380334865902754837485317312394807281256827983168985660445611564350512939790659227196426978176592313815023957131902755701855307257874262349222635691899039995863184000468689908499966879247769466941410737429660212898889751845107929670695926432568124330369592873520069633307340083034361354748244873752915412930143216824615754990547561179887498914014264156150858586880124406018250396292720074215536941931331303377653067301390988215146710797201114214795858261918259704821358406851372631796574862889395707774614331615083878227263894315013377424118705153424209514176300706971766381305824289559781517148754212074660144060237141687594190879352074960170291620973763716289030222339441800121699371275406680642537141387800210298348119229940365759417450745121408097736815357905632864347600077887214489844359046908266246211810375285954401788509521841663190018127249527222751438667603363216122758152417148960440753882365862934125250532798356556740834062564616789344062022326143373645784357612838621204746040039611333564335755423223334393398822177633888629087890368334042025660181247006132007255218451736937539987190647137479766632592640734238357811364023913826470431411234456065490374985646192167150183933660136550856521627802219961847785820623435550383650391850940062658832681397679345668207431135252023216938300309042839930001988485418911560783764752491976821243107822631779703801341498958858959374616545132123354222304621079064683606226136040424251565493000323231551397084931846225878174813225984300723692362591345740635893773841160061289704240346500773449072429539814697129726195744145159662941849584755676492239483317733903598197648564181030359950988262011151820296195157164676396140049863847407467210125303201548034417389002613201147515494079640583778648939233031942761147432678475117758777648466457763597050715160118212822550939252203134573672999627714947376933593063330228178294056174040418929084104356953641112349566701945357241930849454952059507336590593835324484365203584414220477914520801438050664819652961496898674843987381140688662866832193216804729044774250911480245106398684061124657545768164747240373411678390955239959514346979267715554230705769034859743553173307853274131568558230863973294168508990016020183422498055621965686658897108933138945219319865657637032265543609002333403349155508277771777703561120397226308938365618701456962513028390766669385955977734003744538712755697153633009737208023401380916365571611695939304144913212809384158465599702140730315900111357683615557603393550398679719938803302578224100220660504489495172173030948769081455475691332823432254170273002652093219217693060380995682072241218403778060768703102965960763005102879349607144810791395178114057090355241523534877356826077207587783184129071875858756894207268321631872618647903686377854131165662891667910752428142171684277347510151914051889087992517314590550904047566550452251546314451190643936744829492515506723168762105081817891047262994630546972477741553441041830620349125408772142247120981271659032562654933883425008068000128786205471743852541932173348721024742163086545209250567507419566129554957044632168787536119038425469699134963174687069064320785874525567075740169206685171285753605217929325935033548034559725961453188673272594819506315771213048807815036560508160538281952691142982645077804881329057545084579974253761381102666241884437146141144912601316838688122053740436746398090227895934052235854914499308080669220022902214336918706806938980957743634998997315391158427777762543391779937727027166461321191966976974351304475988073157423209210581181180263533326942133351391219087501240684029930773920367613512008793792861828328590227567154230544335478931548320216974287745449176187613800471838167724666756039517193481844946011366705184048113928784513319289006218003599122466883772404217142973070688612731846625044196512747808297138969908144353405623420140682860217492623349041148677036682082074267308554943573745833163299519712577744500882798943067763790587179612034678297416793230308576753669444449150738636395996840461736340331132921319137431569594682049719004697562582708692859426763093612138560134637926864922176319195598574419230628618255847155581203216373328781515367004789802689037496099507192298595585266693239893473983491833315296343918205278936358132767720624034613063677356222900650514796781751825125261912980443509552775936888449844080987839640118887089153986697878489082748567317235100398362330626779664596328734731322615375123768632956783414232937611930584825440509151425970387244141725644085006115175454417604745748009457539596037027400618237655092413695453313899124443741098276952541704105968369143090858251784010522535130029403491628506134402156306715795275510971870755822616654017594226873210681606276797930231257932868656809087128646808799297816868097328323272429148702742245312889441550154165936027578867110920127241928049359803119933960087282869637172026082534029896289508228463848968178385821686350248946844400041618489066787547074324056884943435949340331398902514060964893205171584929710329500197911234212023336559418965662239083694528779497187634891066653025169814293092193442558869612916747945755896929638870147130379338349467093497441141678279183502999006769487405538605781440361528520258424452080029301520390979033553372219432877283785113852621554307792219824955579917845982423336039618798009984859614592096249406938579505583876320564201767624557420275572789855735470879236164125707654853434600842590096440623852051357617806408607931236709903589737573538212998744725957630011707449552456394865467866460249796851710603901668703804057397852581507098590082296932253974282919443783123237721186903157473949451418807520938523564414410961629659512776136245243118383805509941848384142317469776845881986671533701681133693140569603711114149398235397723138701722043980036971535630173232297142754235908399594356167450940462106990479979710393504858869750160948525361298647141025447033749972833934624796000438125712069901261893895105433271681802568934997185752417925226205781415915499517502983695741911666440885350556663914576949983263296982714390453916530150639036334338941519872730291069893204712157384232801559624845461161297449252055056483211770204185605469406252332661914822795807550192146410955559267613901637592552560450102972846872770643865482292601370370190423611795187190070594810581249694931287817751237983596001259548413758026318310678716380577369127660740326042434459200542738238684600179994753070764029983806175126600884433827949986837055565606393919006204682712892056952091919464900709470627826898752105329237898524676406674894383770846491270441886103793859629188562833989202468036751163395779865772682178885835224537866670608842446222454735319396000630678838923910726172968936939704265003046522720564937524819352245610985737224997589235875541674909178625685660385666958126715370520250070982393593192754746432104712294066050814885730566272840244784463919781084171690027954459995969407912805712301122366053163545733997498856794168470320944625099917083743841193916399973735241183342058869648285177357538365214985826008940152828515051910173803633402512600523945739086337465861055008038913025151493864334772446267997754423299834334363319290825596322654966959281941058666547211786028044090212851932148275346859276824653387280882491222871806818650660762634590821958707516747409285810306600509035313946312458582546611964740227027146861012271881274700718612161217616066549613250565625685800027545550974054691682464108951657950129131491797190541317043543123211205494197322717902133655436224976902048667528124654278320223824644303915851995063439038957092201722561779409036060655148307146897129810131639196167129076882959158453052993976722786450914310816427970288449555164149453771205383912344867283169681128702415047405025744194942816683992397048547636024363296103581715310184931687010862145643006205307230981710208579383805994600610539465199522004604997052470261659355959000287219236501914804472800881138830135119338356146916608843533270218266063312204032383065337679795244511585867043418303144348459618640675308114561658188883248442566810023988127892309277361756623466741027930073059794573616482936002744585705076428580966178802272154541731002324705653778934904923223124584625436208642547750018660533783966086025804569796889896262316474358920273881331589215881558591860695838523009848946446728479124887873375946462422049436108943080418102430181009472401776569997598134315640175903933768671526289493806850393513067730760849422228223821473194402377268862772471921475894221061371562033167303605816778988695005069031450835896144860554808382616247086433817701055756978665507629680312886649818347232523202557402266438481230971430129145784940569789850002492604675249877675738738622647380330086060405733364915075583636602278908985735770510577666924249958693763876944536977307226219672276714508176446390882862256544955991257464100526580068981975422213670120765348684301641864459934809387742286207418177210033914896527703307495055433843328517557635365422090176529896029236909059199190183359694538011468836148533948056466950677989071185757131054344096979142334674644465526404364161540224772281122893737955109142209461115979512660037499063909328367520389276311661817709254344989930883072378946790495418903664832362893182727508126915176707614294159840324924267558546470030115893185074055938228654834986153659891664548030404262184226463686991035883514175751667181537370240931308474775123118758105589236810631822416197028293114022291074050990486858190028301465138587290412574746645522734432621102025413922468763131370803964622116696344398728885389292385979925796297522423677587367645595763806359722692595070687309944853390843896611051151567303318126493206618423985286531285469964316588829692850863103456346901178915906655258706708502068963203268124338721910220203226063236419558778077628445914420951278768519394768993542444721614338886233421878418294908054158682716211873495201622431268456798591853604252651600221281205345731011903428204606462101565604325294590281353211312982566577703730084197106827518356116467072702203256139878501659315597052693770053022861248865901426685636159194945427266006761871190573017579318642770376658750059598123579262717004898410309386737782535447302024107596249904421935051426530666326992566002261972565167364884825342060559168322757210822912016614509807461048067532857276157754435826122083965157226453961435468596347800646227265369199811771521547223665661629898763999091336437078418309968800582826934857503805017169979517188466637743094556520708231421915235478793610424255237427504739320710958646798886898614650138318177220238775364134703304607385679652414081448115540420257525506678390535217253394273034885339357554990168187471407602089536153467551102120517256677506278894375867680165646034906557617267295452990385121879212459991840573521087827371426480781201363024423577452360705315455680219056654629659525452463469671626578817533347095151561788050443588021792065778632141596046856227555437373782128084102180152643389580979537879157365028941583063920687002666023332830148522893438633795376596185634322961993082733580332819736233566987017878489676360634886547028935672239529342096142071880234712832098980648066423285704016189753366211399192999392390517229476077223594889485125960179190201034293867747929833435955198193556539155273858137001229794411368842970025475445396997047429534359435855236504672384865048385072785874794564782980805951078622249094097185773382514939643482281928570919373415109217246191360228635964229305253428632379289849347016182994967533407699822482911859131576095797056529994743572722947052640465842046529895157989869191587227599476229852110438083575772085927219490209648276555912572208035273371942685049602874714384740031726303971561585165194582160590871630022915836999200158284292005795957978032318567281927493190948309581199777034591108275296142122373905502781839560256861344330669475481284709573143088592184131187802536026295357376238968960602042138415054921662829417334500632765844169125739609133380730878960400184581496668102031422714270360946068295542860283305133001145224640688264990295922441571056173661614932236771444510288161112104169836123700907974685705774889035286225823716343214906313913800924357805396512769342287016543065379684811511884099092888455634998968014325670899333587494024488658858654144300887292094243662522892837448290167166837058905274920525670088096922451960721181312131321362889859570627296432191888949147228211575660684189876192431017344118338270917635383553806743572175920277841788648149113657924448440156601834612754869758879680946161030167019570450131826512221970928195760708859281742190670494333508223556101928025873903162427695683557528895496178648856813818624885555178774163379558025774824787313956464490020437828617062637329539612800995132265364915795842316207850356483148103098522106725566660915082813241746004636324940016297166270527731326806268744972375472991998078448308801526819643689278096267167496518487781941828684348784265223607061996077044126983134887117108396072500160244259163588644953333077156054405449408043073674588290460877222278954386480986656147433846382984760666082791158895128581065373963693060089547129120676429212468181217620481835985043359581276327713286956781850877112196368610020474693461589323022420263434558467410750925194747348949531456640275846129900253848624532148492230130962104824426406286106019015852222267027800500448459259326344549873491762350460915880694210657541780969967941566516020483058374062133134110342050215348417025867694995764156698468262151249536753669411526040563769765023197176200909055609535743892129922317098288926197551152635672781674043729096566193621926071482555093069503559958787176396343568805394311551739409723689547349965703210390213908282683434103156478935991049525756008444367970481260478866159392737596382039595664010712820719638294473720103797979907390077094977979355871408355011185656048339496891694839607167606999589085046200622324695849043417586468037125238227466752835265529885581619778864841566318553516085376473011458055913746251008765457890504493312217621299593845452955204308600455008688452859654973104430176818003789517383630314779245390713133364786438517849828717923334420478726446735575796127258010275967867468651100809556617136569700321419877798854921942135534615394711707094969832656416362950434835902320387807911324857366474258680855221683922477634827652704317635082380972901297745745571147468333240615540790205153389728201009399390546136041246601386017588507014439486588872204643210973358391006860263799569777324013241604242090440101081265809305061166893460510459377969252495402878351486701655157146940266148003981009425846172588544307346435278713574677187494237183189272783881767411824394179570872548607257035563119054705203257790319989921678039333447866801748572781394639400649366573139193438015293779170518941192497948495284216163780904172203148403701782283424990428347356500317454421953766352234300683434752131764896922991955089668849388734214349571888879456280363292090874918447619526028949283656118697870374802277389078539303966140787419976591255382118951574711199907739695577707566603983486548282415043084235965578129036546029285793067145354501398539227414428588732535991100836770435496528752523349389196675463245002179508190913115086856070043356028523229178133462834081001858875425469728533826949437505006733738521231048217282307525735737055909443564192047019053716245126866674842957537834195073492326416733965603805591933949504451346911317524542323995109162472883463699922672927395382601960134714148590116022089782718182304846604489992719514683875373674403186047530665579210438989385316474395630162859193938033882083396364482180139059680383319502035791662462887487362117877864822529867070752135594289585912043696084916949553856782513201459619905771595657668563031014582109348017587723509057730205105065717662357717828664223018265732123057752827538743117839402121209760401153476912950613835833830930929922585095988502394859518358186029225461104986065570126293573219777495026785305383434375123976098379356133916352898655952812717139386031836089142113682225785530375978242446380367190282227997478584838830136690180976849557471021946464802322350228542627978357742474274413432670987991036362483478627734736546472593333624267381659739218291579637148253241923577999522038840963505239365286818813312147299273723725054580089158635812620668306950456433913901399989944171939900220618637518176599610821817868548839403747724306686324093253085334492876125308553949014506524375539185797351666270323517334948970002388416842266317390585478080546523938655421193480493862979311488770074501027681183982656230007144759440148774262626430091579520856293740257396592363135218779040997732768369017303557242245328558141381542796806709081868045447560957332902421419804333303855973576204601408715894911895017005927877838193618314305760461876772905621428813281339309142227198615857277066813985422924542949531823305952553120417462981825234237319650201659254003612761686812300831679233771252082050057969179257977560069171532281624167175904094684457492178152356889537806067447424414706488896872652627270280180067730842847492692399456189299517553084393141443395096975080241424734212338125875613611843055044949085146701204082535037940880045911945087678996849228362099784669965440137749270009415305565469024197419305288701700258513624816119054518823589645196607839961697220722187285070296659455282870199401786815119097129307522382900830472607959112898566768638187817469280877468708057615245458238096558608202614163181921551976348312836397985425905775596569248126460681204410962685968316421509931239330596532743076215496188023838889926183107700462320792959415894071993973937013164063017847426110648609293697290489153628940558752077371730633296864524121288021059473598833860000535239057983449321507761005534994572401061495605450852623205280627225586358208784557104731972309042102704569448327434624183258688968772958143150590898823184825998625888898332333812958560157327022017852489514701136219042402831186168239619539539396361303301763544590408814683445370546527481504001259525892479286887014386372141406423974122807320979598430503289040992691260708525682243785559851221610209443773467851700959412375648676681566136277208288624045688521206333176769598337715025906336449676717252326443769884458979469446211259635167870926240318908987906516389582852456173702027345164755898901234649489641985848235507623720456923963644033540106689320266174932922162611833182935899291575055078863941557970643981573424190616545110196333849740072145949585774198257956537287584033245662100868123717983294124578083907539335910160175861618405620691880035390536328017976010093134748272553554720014877433457081492534805683169257643058625810912396432647409159623706605663804429670029360364263004901162458307741164352097830611752146417622059927180534031542828981875815011883321186124722670025938939496932621134945618843272092224218376660029032046838417962555209956762102758016703697444463018937257702179666779229984234714730780250686907199234984305023925763839496737906090440853409655571541293693750227799854758320735391087907235004600226580539150777988152112545792249092487253577593828497114082155267264005956617020304272997774922259402187504772525251558272226725467579192988806092083343593511596579068929205421647259932231857367920789534834553246825608989041046359853049927409350282485315014946349163956880712287704088403709864945292567276452651485091866181389045377220925151640638607876328633805294629251105345210496492235765466110304219048197155298679436127162255060368208385159934287244595026555765890037584425924114280921655322986297177833804781175733929886775998685164524556077184524743171802657528716400862378278593643905167705265837824505922650823104868179236328208730973778640480427715113962324082266817617299997063706257780769699922181880961997151885491198529489435435712266650592632723492657822699836242269207439394010905859382841884394704115920604210914594639343608857049424585246963011511849562052312449539838554322069037221202948732867284110360921266505923548995901466713312155656909160890887448931311692866671826539332081029903443111234599537649878405560702159390635254404351213159077134735682027089541005270710574698890600498729612241630536930279604334879891840924328671407703037605507975325967572443361742193578248785061246386911013989162242395254744258285561615996451626750363416547127913817854912227892804711843393208610535513143978089512458657570945181603713662122167239227597817232112524358956117011049645768801978537648987135298322849332332012836179225040554079683991533766305407854245332592537229661360644061460316987550985694278342700308932297468509108339241830227286918629085124467762289162083750685547554386377451497159320639329110144570534101837714683747793268100221815770738496099668766724011801322932424906457409062716935309016260303629965620656899213373757060847857220188622660295941180182027552748645650352334274988237548346148981392769345638712400241500340140340477089864764333600984192505089222402910594591259345909676892020334007689559863111017012276511608919543983677764793512230558307752871969211426870883742034216250573285606017280977330030433989127960628932196475004688746544107759674590432394880411512131493311193652572379191552968256365631985245278385877539822659083643729550558362159950660767266195214432770454190758117151226021170918037650931722426160421257844913938137918919659266368899372868317363973991441283289346364008573428952044586613326874940388855496072187158050078820913534124171832672174875896451169583128717202730667372585513805814257570464085695645127788468954955911581763298552396312879630450857595188615160154926554895724633515300221642447477226590826941352072504657146782680795505833766471327549616582398925962040241318116349783947924960757304989716335415149619132670084202708990595243649667383320925646766488359707349942536360053404571666300216805400876237072546649793370024408989488654803793965245488232081289293227380951190199437605325592518197867505099551497667466619087832224739555765043503718295977125361093231175956139061957517579999017508109051012515010126052260235273555531619242786291014413960829452601561319643850563353165882582360952127295982623710404883128635918228450333819832292034421920230406663780023430860838266882492110530605442973169503961904102749714886096904091590265201413907145765737551647837974616637967692371021019719109751959860557856407973551766392573693011475576192166439257882754470743586822124454083801878532966727215657046808328564454030801701812080818698128134041171273529370178045022576221048361437690755060287485142279112706816053042659262526428394040684685295784579180685624111409217686686100733178289409981455299233035924263610740743475585827577901946046135600817721912325991148752522215206880733594759465769338412877749586293206086522499195195744971970321765667282732471713589847919155836222568461249490568258618637596364034200284313242233747179499236740131490358202681819946875218586077365757477305048546495611753437364070966361048953829026090182459319556659850047011359012312608085644465991405664478818377608400157265199142092069883331928144268651964723340575461722411078544396322453893836306523869882089831541480936062402824116763372691834253816042489918470489678891544949734880375900827047150636608175249213312330718874131642941054504348405869098187350430980865462514890679305458243192717110881493697363115543592537393403525930956752445977841807268340912756565586352090087550384478438014602218300027440151637294623975598718041243077392726256324286279547375115096457843377864312224119994035740600569461070129345653701595500136438821227784851006610102794815959864818741339429230437597729066272105292703979370265418685089878603682312786291697040211156531522330695570845455039768174174820874650098181236902343985773071469995057422088131473663977980020156772180728609796585034201086391052326307130586521656616024005892759279718414493253801287835496932385188304521255864612804043438002199637266214779460546204932900863602037036607422841162795069328788161294343757286948085371258190859184081757387148655905848818016117334000954091960217186638261897136554612119111080037919048203957356867481265981919812205161474907347893795781496306950553891047797008406647422989531396967143898926055706853624815598465117346846241888364115264850259989710783538266695259131711898825086364148268348134662471345618041026864796898970635712080352557587269483551776965117186262639345766217921551197916035920002358196828164853252707898406148517330117356093700794645750928239765534703164883610901653593931473253571220436202752117349898513091205396703246183650815829841199169148212978775417206140709146955128325571956393508074491879302320154249737364754658995340663589867852513496634508868279346597999671173965533055688053351755912061528923108864749061050095257371485947618867040950898129808244572074544899121987525620619297004664113409011720073486173178615747175888934739920179042371640281814666480348605861680459163279981260938724301464092371177629762435294348163228739292395670219794748048202749511897525019428366903774543066211288948796110392832003813730573277413419267341363001975577138103397533482178229888973119736524071393165330399568219451837421563578123674778875737340228737530549671177396280773064057925493325202448530112655162563068512559644954759598487035082565596110333762236805963371026933510955049379879292775203696090416416947421821243889095390843332425291166356239023527788290025612673971103925427127952741313871538242121338309948889586749404155372599385898153570002466802678320192404811428453161894293380223766195528773550547854675970809570070844238255572232254881875746283343170560652015486570895034424547913619574474980063787606566609110868419136701108658976264434084588064143768519612135092380659327356905209672641633209109917837898491052552898847844886875825568657299580184421477752861110629333952014938999422517077439532120959079629038170872578457182608273594738223668549547276638286141761637701060422317296179857054784314169912325136453859556842426734451499959489330588381698885600018528820986124605443651059550608094184293142660618685818718982424143698549867966251776825691954836562062385628590199902108971327211429033399116551778701454342619751447051866015320996722391114805719042788662955308258169942373598620954576043612889380110719087141104582572417130951238897021611244693596857285018712591469119967759925121129972042899427795229143611435236084786951972711163791630675420097980779102659641820256393210097831295565262594166666398585078824605093158229016673347451630466566656098802185134405118275070186851372995933488840013021889153692026893829602082804137839363583052088545158017363453174505977931470086091575983139418594487838520199663127661096973788872289588875976990637037961539951128180153442357016560013472939533864905566120437089912713513607683613162436891488896981567266696606049669524471105522856134745889112595611874654854207150421777818026155487841685218731985548508707836697467615015757620678863363850868997338805053530454649403981944150641111158088034595887256390588907742388414700693997180465543382061943055209999588435894707538865047542061024351471098768879638519753857062032596758732454926511615059270725857420393668314896313240085778300043520132152699871406227728635336894945180839772658052041753156161103926571216081049083233320452323761245700537974392670202625415399634595737290096811352717555550664555432736595173620685078320753227348145536686071899230838320409735995381962597397670946022472044777559135826642171122070118665014845086711596537919409094373677868531312662127278857749212398575399651532656395755193780867940455610679642290743234056752216164105115131177794106748645102062059609071706228981307611969294479380205744179899723000497647037893868483109953813150735150576186364361350124158813487941817465039110339146019952823222460919558890100974549024110145096568121280821754565867999446865567523158906036254190701966302701663361041139498657976865173081095792771831617050812914059340368059969318254012493759127785401331942817703346025264249535647523686716603283891561725688717009349336202254720073399503658434178176610242225698114773291045358136399207351801439326435316690407302443671749055220073524555833630327957975513603259990066709679612177291914323229535074401939707382553761362175237780875264451644539919745795538998342000631151834567779794226097801597531853016122405280002224169823594692490271079514068601772330158462124262201820935718927950143553516148472926721425872241394986513474211189196588927381450526483291829971215354574814190662436301395164691966183445157985759025909689082738657643835438911822021855596054253602851972638305509045200655756668855997617424089477325436817996077686938043938543134388652351692570008594019909941623420871956080534662604994487551831978828938558936253089949024239200864249957609444652944022039706288424131183320622596195347380196597189575809518892762916708217001484141857114626227286919144597494854779544734801163502730895981805005503621168347029614218588316577136363896472853613368449229735920776710524397840325141858795325235638084873895173702197604314904964399582208063750369948822610575035767043855044930366592852210691081956418193076931712826306761139733997791068314378057154551710167206071493730500245220202166497908704201726567390356987416326974601084647621209686881585205163791128757328759236144953409085333633553937580449170856112356692365876692169464955549144425741430319595052601695685281289947006748654605523029643837811444915874592245239424712594067124828218779477309675170497371480398704301367240176163627305141189386889248019198484614854396483202659456197763511052463993910333396386297044864507273488405401247205342445584260589969650737512768939212385266820311318347479590565897899995834521846167320628575332368663632508711832303735656454708019762738844213468842837626116078168731006013120101178586507412480136865949744208252242570899230360396099070517832690066149227223535076894801835437484104574335830524992312909622107217502004628068653813735363036422670559526675687915397879786080820456438972994827003208919207665174814974709789051904460485136464526645708324029776057389656892400739349050117059670500825721783052968072369462697204901537671147493640761320709890713675314826243738101698696568453472572980054130716390734435071626708638731364840326201794158913003904319942871154537332527142560625481146668307673603352907184512264227899673031084824428845361307287414060454858377640514626344052751518372397995334591922668990783925608396406436714938642826163240895542301734273149623892334465621234220319648979114970667782135637156332490068735648412256536078130959655559850755432916671180867417733979884259743874303227762216105069228517635730269865542839200869171426497856832051614943176266741525559230557350150049496207571967460767798700122796150530717356973066864034713131501231007866667062770868289970998212183762819084670402098438198919311255066788864628550676463153219297817990143360595307894553668618953875906774687159793725217663528428114386120145284982797402273994314646391458446255896198289763097821315811194309942573810351788802594211032586807338665110173089040868141690457586939324542159758288880126347524552347607549247254903748226613375474743823528019260397122832301051805128239200197570507522110762774967661771400988099299424823756657661415785351519947569177187962981440479324957074136746945926306169284131566615425222323538809578544909905040760260127522438312417215459067976361990476721083401394579610086310515081268548900112450908940126406363043196935057794714171798799616492512203469313159642072835101547677215365316961477455857399340933266946076155217399558313889837156263729726187059202434905568282851274832513965451803109618292766335165524929047259328234161751674431431092367956389570054643004045485932126405310711485894886169353680611704617492707969144222426390549757447173701975656928636265039846595641717278060490527829253186865736611611292768084952700379627321618874174356062093620354295727542974024860799600764539905605639197222494632605170800706919044945703149788769011460452823080817134842363373471626891328185960247774860736070802454562516872514475266297960305725487380202290702290754889210594061677210008060543604583480662885677907847284025096357122616600326497820690291636835247897736107883655108407294703695498699664185676660757221633840481540224337509754952792142960847873387229152475374997429512566803479524596731269930676489145721168994826273959309560647277215596208932330258899687994866252991480225473652932149661162481089565139908158787458367274459301246479727846919890132842702027105151804974501163702869044786184339016037614584818002178646485436903242518936837082467971383669452040672233462942573634639295309519761857916371975782336353531351907226889844670702460531756337192247881314935654353215956167341090070601414425773016698918142169056025713625591476438088281437528342945373236820201960979060714235529049243069907648663139057027416429949913692134531365022730082180810523610053332607640132234209324871680001209034139419283812610848782796811898353959985877620148670479093687418781593973915070977075512626295617366153205903838167093268855011301571945093022167722120054439693696923529091129280867383248136052138084192086114378825060978516813280776707119090545456864493905525944737002002007419905312195934212957495305574322379136217256055459759303125085307878969687994179389769741057104026279882855853477566332661394781969199757433293730641993621453570942440858750213789236498213062206971875343126936820920532943772492817884418341973396528154805672832541002682086888709164594493038173291714539456989349374903357251120519187187864797385011928601686254295274035292697345464770332433298589985075512702858440021664135126071964225178648344340960307999577014383903788065145140166126790416513535426822912589608217335556007296334251714479590579110385788669537016445827450746821451214798437605924071344264294338047291505128641745160677419862160496190556638521896898056502095553362608758586536767269228872564931906085123723886126290273381291531978637410948380848360420300729031582130420802535257898835679199224939207014779364592123433396971050480702300050608502305947057267626357174691138309326806951506252218385143368281430834398939054757325249894615477795589036455879757865943067576213459943669465839972959057568352767228347923718919362364698472932753141121868998648890288407873903702456496515329323008376938846368541575617520462228419341367349567723095312917180586340866533983821821745306866115169290594895478342848570543190092179098312301136862998558756211302886037839181666809232357730286560907422963719063144831174678636244115378602954266705437367003922061450962618865462030679980763653864108635419230742564810825454850188375471007178491195114379839566890961792556863241626681076138044229760678232713838513265034107278741800330522738256620603703697706418182400995063214918330583695834160590300356806077733014661152261466978154478179912133252490414644565452984663708860185558352518667378860447810227492556247625399801923028438296170908856114111952427362911334565935038637788093341425915680112266778632131802302349202173742715476551547402742895953237045764662327987237104286066453222860097709282613805627299065964767050711046147246007859076765993495683769875946402708073562058966294249442462722369332204665937798909532311940856184654568585784464302090325070976558734282769067614690509029966728337381715482431881607227941014262687368111750295150713661260190439443775698117192229898455195167435299414811055612158110178228845733791094337829122142039818097161137556276429392513644144385582083240667506798836580116503177881309971694743604328038995864479007467080755599546625692571301032859733213716168446976574194654813755994991050809246435485276095422317209646615133491677786416116160892856785857844843549197809148453258637735891567935180704595612583604200362080144748906357645812103512573930386272239932178652783839422207734500957187993000253612632360074391726682087938240839243159818501931107141286673519654944757227998346938203839923879241033894279605669101915312548433126369132513597769429141181145853284167933036088953309800562466004127162668773200837122053210312952308473325727302070095965126121322923041808542174353701986003869466452345525919090985529450187401161964609802916372478757815393131697145889464316460376699104238305829806666286891912208550853851352865709081430931617339359179555142875290643545940426170326040408408261149096634548642118202090526943756083905749860905560020680410272004018169703257248930766002010160375040290002705473581655023777603057257663358706772063393747932229170186865896466902384798592706380838696732298448186871383535400207633400839749871361001981529378212130279838690156334893629825870672041751824513768894341610208851652132678582699821675346574280219862728814415920210705164412057688565507905052531247348052884682979684888216054869480147660032545707648363192006403611296103457422359450814466404422711135086013664195513056361068198312939659935386101239436354512658551498326069607997616044328801977618275587792807574806405671311068381829950259156783913220406854402910128718207345357507858465813883194538026919833906730076850716813228887496687683496547700142812726761709100174860507432609085805170633351013575321059896907168209613587360964219929930641334912530675879250405240849187151292766321523918458070348387580711179620540124447617815881500489014156683338627225558194574132632294630326273605904659213630412211355704594801833821752651777650040797330212662447451808671967374122624868668833005562152595423550715744415571190097355019382123473158231676295959390790930825872034483777731628473644339017297511704445261945228856455553282036151752213056303377851669893938275119498805684227917428906869568908774168671036266437832506023920565372833888188140285612944711907287865076459179335233606453743819550755695475647785916982434364550994602588911435346614880407650156589737375932174903998904203387489750836027482113702828455241497697837070645021876848370722120380752958664859702572870933103291162260528963159191235611102769666630718799282344606573591148058269115927332201141888654342828065044729219001140347103858147377095659139113228010881667053645090609848972024056681964096288212278270142495076206637168963899933150888521715033154338140138945703620246320443698305917739617708611678374471947620871572198963546485772226360564222701149323369452913762827074231225207968800219120149392061583673614940439435392842344343383424387452490564861790212686989439807913882854727331362271434481336778408742614533978321439269732473235092692916603025817766697027389908024187382267668774980238877014684983448209303277271592735308447459036796765903817831127906684296322434749358440099134900609265249698317056384476408833863077066516041608150543629099628679047847340930975825443538126525901330552464812317443849313398365840333739101453457399453239144678983463265576018141902697302284603409295549680324513159245203612149078467356205866165398246979172930521690895868771807317573177035697009327921207459237642683134538758271183006263959842944218911144792424448456666583724995000123871843984353345651479556555783399783112496740536388830726940898319773339685576357756505848021958564573977468063114722845868307222489147068928395964070903289921127581261775478826097628350300567370872136778468542057228187730530750900966605296701070863860389311747829781966842798587982137584821147372756272099617334851975829984978957812417367254746852638908749804894710759264947620054426802701556313139991906157915032609714750501390253286261557375160247179204744234419214845938881292278224039283914250605486643449420737832874833409281504089923174079895251360834328036826681514926715797493578467741969221726266156013217995533765687687953729089945623148996117885895515278739815351878436666125740170585848444765183046378572316389875679912398439782868928170490878028524736380242361455007526294833949118193224798693350494417280201588031021366866819873924049661055762895490474062900255965588297097451735833482199726719875320321552767227402354057732908437269730496492915319576127775348521966446293339813845516952509955138185688360421321543671610938453119170524870589527550560337029064053380442047903616044245914208668051596555383589670435466105576475347483491416629493430245933654363171596829567475235774307719052177479954733218616080935100736005765440280183133733231159152813130743979216569962805517688655786956046322126731233133915124216175576368786697655978557841174149065464777160466357049377036736552947127164729457050915026149618537317777486045688344780313528044333619816049780062624740961348443816636675920896942446529267966428665048515613080119759450924619304022832698611450480418633290993751649571935043926891645397032023607196468054336259453635671819115861256573379434543816474680041796428590152696124713714919747548370386532923436140999371877236550344499355291571632785033386776638247912131416053779051146731194096700844000328570187177445362749863401639833848375361523474857464592917285800297098654469131104155954857450085849288215349396369142834239437079549141829352839812009130231432474627646948195191956076938802672116444108028909563673583586060187083350310589292823853132085433791121374530569787734788342033645782353596151838949925865742302984522405611280823100355003138579771763370867904798340590018109117076910590308192218037843168578804539343702963803475380227554089713564012969641270631107822241057800695783658754421788688286395105167478095716174531306052777257132910394301510450883890476088968484267918529932136584754000271151192930463373829618895525101798867037791810744005497357485441391360978050346575850482464396882142659019556753395077306312619137806353134945748991259817784748284635550031435904906037767378654899697597080567938662141621408964189414801751388568531336257295719065653189683945595439268463760862740590920483007258827572074170357059384632048033827432896330362837340298260818025063327270635221679747602556279026799931310081964047317140585030367002526732469783712147321232021175083605621715930060997286458478746602565866327085927321640189868929284909180627201962231174314144792299408267060027207113955599191623845353440073215459775229555058014553922534416922006910013670791705452794095027855062849970467617879728684647698598534549274823914151117285656748247579671791851280345025108171913018593980689548549341694993730306261232822658972271660094152762151239736314375004384593979422840867179138046928120532494060767026055509188881916077075983481894703269640749350039301971478932025488541638626855636545685220352080535550550450413819192758515286783692301086225103107986971431456918978256222197554979508371374033419851407990808891165167536166763658764671055077786675012367364537398007094838852872785123572926890623175422644877142784862073925356801348210931397641277896802731677666293766231031729595610552011173899839575496261171913536041281695223291486756767884098995856938950908226188793115087417919689889156713385480512413207840831664970404124088253339859286011667853061864243012509235307763604150877620625702044263575815732373591212087681963397978842315054445376852163646107712862497931034124088768788941177110026561232856826740572272350415790291843119625835068671769312177852553733025078748131619002498297193268288506765673611386932094714895924435371068887196047770129184158776883293565918175227458849279416137180347435134334371587029621297371093139273736202922585946273093522409753172706426653562448107507678319945631626089853311315865011395937427787910200712562312712792518138784579582214251399121284084263823751205340074569730607452136504262231861151969939999690851704039182291905015816339390146635087437600799778876308411184297875037571573613704684096116301278064058215641199380896481688578925618538403555832258269891071391694031734777181275487468468878355112841748531804957676357153390105976285251553278818442685084618979473563577264581859004703821528754838586551304224996056805166240047087633863541793809447670265599000371068646190447676960182643617316144697669202329143793062632787272369480215784512896514122657502360043588786497249627569528020503983650735329657529034199365175056395260334420341199397872630600958308977841435204276873100441183748878364693564681259886220877895881761908256724148590902804593320923115377406892093295482751184642751402397403037424079726509266120880431578611010809741191108588584765518327698954760801297112868476994469820725994034252655924321731250218088721549157316135354725275310860859280716464433466426059797928656881800004236491116349067951593665172764969376119841696835056987317396561755018217248503264397927832283296615932961763987346826518993641671862707768887813489433815807236551447194534632346645558370386976920779208491387285338171682593601137609180624579075167040215480277230203813881540662633473312686218454349321726599303768494627309606931402082831003805097140664975933783018146621255932556553027390850416957856311083068979365203803760354953313322658786767810745712377104737054419628351898873315405957836241806536118486581004809333797507681862518486609393957850158713967930523356341234247165713747986736688227003933733106531879912493126385501956908500895885583969833393722493695974157463114083609938333401572117518992955612690781946960824786592666279099249165852700618124916409616764269050125722252530108102072034879620268389186386727578267621878262944545781042369325423428350203416027708978301995981896177265756460874818521694212700093459681708696766123956455819337038668713074509360454735740823344072454600455802364863770774048356214382868202322289071135761653377868356956470695789133072403879555989543251997067766747522944755654595994370188434607895943538105409039977802001409217564942436123029376396932248929523595469841548350796733484758941196497022109723366634698781386363694066832715387930534556780108000174706747229489890824828833712590708557844779519366669655809114867966961299985202755238875182830334962344488234642640838133496225424862373910260076041498206574299743701929945858540568105093097300341318841792433453133699133553456023135335549212428031385014991699413732592623361570245277281959559053550002355014723105404316331234232756138578197979601939159639257004574442980159059298793906237910974764586252386103473242285797209029201768098324403488373213903482229617328838159669071745211292789208546962678206759345250524003598409966942499057912414987870867521046085075884743114849770357699260474569326133030176114717244100846859766989707378612219870743155824267614831063458510490055059418845246043372171575448174771789819260818357533329498254049566133625406875898998257037585910237272960051435598480077330244225807166206559264968481442166516958126951152454149090246604993625074759863844130601751742317673161440459418391063171901497300323467540839090311961663076258803380942411913875109451142967125538185358655027208657391647790832809180452697319231779083763898775349155440345619113919910145368949059045568119691576045643127595333740990632610558276749140500714541419715981507601066207191281522317024061186100448004334073783808454577107292131428494825504654257317148642120344271808688945671238710016129317426610283253577904526667939880021950734306648246723104241260520251641220783753182192499931878830887441549859140598288656353778217259280385067463040394394962643606949665586008896026263626760207225745019352528468880683005134326614087123593773021253911650912409778674178217453671084518225040891964948679617045134932463974940796228002143964782759769867431388268280032234661838597245002108545205745511471313404656132736120095450401686125487661661751513877559362863347550721332500108467631319541384399969997900759544689476290863019141253365603792004982312577820780237965121747858064167605442579734099078808699312137025288284896200728169520046489241131715408032897142891696902472310863816456727197332795529546023509445449427719926700604593005702238382209655014430826496298657093871206028698739702672994762706792059482718923711145410176708182649450327678670695305417383190214353542655889049368463466655729036804361311091440931641939684665927926489124800198152727292457298561984241102959695005375132091322441185584126231821061424760019887758526363993211215051780413316441074538325179470473844657349700520152458113739369684795936279138959921986949992293968024097236279524426651215541414064691025142156105276451828249612303494270157126222040682838984420486601515448575627012773336921670980107338039174420232385700968129088053015938749233921754596311392953092822475903349177777008884462654331022928892268706479821018247990555071907638478447187205032453376380445475047853915972611886214766478177990201518983627856217833170330227670876126341729215974960688664723810415711141586987880111627993593674124166943164959561085030544293003200512633667606505940223881598504817806627749928213847989780055933289416155611308252285301316314933259477702004981410477211170961791686520392053995607605299558873212708504787595599173957809750205282412163290084696259516178239547103506810945281582252656185813026348888067050996654805341455591201740669325423299329533391068856732644742100566974649731395924584863263557159564235829158774114959364098861928125819044463817562801909979702151007456661011904788244478552551200904346064682886076334589064570151644325429977803727684640960529721940548564800188542480857758547064246935978105758150418973635976238647436850744653534881814821374068252764195262802596845797632492411969662481954721703364318662635401674450722558934921583934338689384096143602355549360290547235879709650289122128848431420398986629624028152921431073990703130431979843219669656148616956189495101469160688621270407347863184790503754882123350444596545869778132249380489681473072393493461690206725549236602159962307757609366615890470629167756448858416187605525198329281575277127832685353322055479091758536606607584968839065839494128684196541973197914509329956504230455490831327006017174992512130933846349999744513815138406266113112088380241126995723376056799389135409638423889155070204712568730248966989938333024999452685750038226967756040538875325133746213041518510334758206667018414979062709894210316255911455440123666869030918372943598111054638875591414733391101880448039676788926066390644619253767043960976627489044006321187662395172302310282289678549706437750574834771689924582436248179780399148699253600581168722019710013485594006441687475668812763177848921413312855658693116318174313796909010981414196672831492355500468354434107995738743800651196389160390883072698336303716264477418101621015956807236204539850148681744800291570496123541842640638915425835535707374838149507362592810602866003745433628268330762985174922183767508613389229422526912662503333000791146311120922985355577059897275538108778713992299586333134137501792423306044778161754168594020884114694001280843824742079716009300205507928578371607160216072393385494124340213246561233231521589449164391570560054087278785830517366199510184464445499329539301918976876282142164194138447891017902358003169753219349227285522165419341815244736436741686177157675429502983944941691908564154041234156570946425872865625195762908905525798407808593146312780994569541341009894975603093779929627291946819168501610288008606176266963730353521426732832596928699549270322732379757688930101051526685467371607006269289250084101239552198192915986418298167260315542432960999671693557686503605032001232303127384583513708888506389592773635499297728939187346949662791642563120333292039191503999539811192482317155213984775928595500217793881602348091249199839251662676009632515129393747758186153109087408849909190870246326366843147559890687779403033386989665194157522049422698583275629885283406979079865901907492540081742166146753321361824290172094356275186616028144400690050124967869593892110827011399081458991089592053803184440816399653800973480843416033921082781992711221140426617049154534063769206811309903810205525826359077936062509744826822854702852126721081994953217557656668817910861470334735507696556656227137929751231858579387302009822231546388163193215554307083033207712134185867476456429729077250770724868669619376106758972962427602836385338215444176022288218450039783508746291840578257806298066807386984990090217555167118652390556883364044633842466746609374084448486097726431789421075641781157702556322963452810985527827492696192700983536675902942625404827445011106981607629798036988118560950883610725364918018234604764606369612937511620805633330801159561646778855402773290469527674985500835650119574440309654386359901401848032564184894749117274012777950918636372760876572032167789264098564413026690293477804551303974667380915313783026555824844751784084659331520103299708870169318902284778986978959134916096020132285103974107213891369245347967954704871159595554977915675638931629144296374733952094889376020032210956100524160098601887706187312423160702781107539389825495053513976890500277780639659571511919924990108600348407515927316229698432896752590464491050665981365347630314881918936570543229398000501311841434003382143671398440964807008814049295421969597444762147007495273052366703685502252378493780456513834296838972274569516375865613708211226055368218209750918813721833075726635346545212235657775149801227131495428636019691814163884564489839155151891418431468301980080991391404874923450750161775470577207982675775232672070658464193756074843933173146245257550062232285027373074893464898113969631545334598027992970441155687824920300436959553402474084876418004577181119263550127870342560305815706937213292741888099358632473722330607991188273566264607999470078606292836103530723048286685070875775672611302683396120743787300182039914362748750660442335748591456734194149602749102581244220619043061535784266793213621024478149020430778888876144139585979279355818510238791878567438900574992656114720580187493896769438855100370625210196773573529580453092049121173908347435191976528573203805674241292293574170994675775353496985160375379893937967235564922942102885678142954334923835687488094915287027966960824198048909655991165368919524844343212766032475351930001974761197296228476821779283070432231361360267222655778580520331416760550021048418027775395096831148744567983094320487465915823167775332854395691623647545407985411102384147938166854936159233872362889272227047296032257725226414857888471323254543822700191927757498448515317634438959128769783951105077586946029920858286822807911453653936499819633553910318700642754456964176758516693464113633215917735832527155242885417574289022638822757208681673880907980920115091747429702879050835123474737589679908652381500171236694472029638204726851106864517577168753901450656420896805348675250027588970749228558072764467072477535194474434405314201166190619134187622177744039712810278226045393941712315691646641984821889865415057167253824984903539495425683938166060321642725018413630531719780414488504694275198307725333542728091856229403952018853002731201552123134544033515700901949480823465899291343486360569955721644755766997045326550401803813267418984823697898258869396698833732133150864539888914452112015449220516989149348414855337729296381643228839309933453706092523656144865473766447334801390038911432950906177835885398714467773824887462294831207399665014953094815371753076391294961823109134815423460398194968730519478698509217115633596593279111549322430404827523949580811045490169684482753247916901317905970371565475439513876669940359623499944300610174097997931534529239493264187749686071812106155155406599883910477426519087931445363873343950258675830558143274359613710404791627743792926283564985767453653149795872814489124083241662837020756627430040415859748715105995728602841878549386350487027510926983802099187398692815295011553671132571579285458601023424783218969436594398078169987282672988885132922783482475654250480784179702155592709588884654709139246790808204571804636416118071573526226685869159614215095620565023618058028752267386737886619363592265192009661474261342124020482098733271358738835708873229522058169811431354615080660752298204742835964730545071807608088930436777246055365154919327645414697005842420527394961078457391797736072186933743663974823075979237995801127508196127947555333837434726503828647750520542051993395063675533841225895992993942993830430880236364449652510676022230193559268439471159070080721373200803151637801302934791762774473205546092433157661829942971843783922690532751879371100410564962704076675740341189087378890482584089268831056342607260344576820083084329959843857307750502820931678148464615451103487127228133487347709673869884621600753394548397264230604092978313054770796268027641352680070475277198533041964148230807084431087861007552401165077076836742573562832538996286281414906464117528581248646743431284655268724400763450302435066430907964144772210092914229599907576121061273115749063851281971807825990738572560984211237243319276623351693979198939295765523132775655077186234511056982300513856284853337034021502599120831138922513622595460701711040155339834569328640769964693502523936285428425728396586918670072610049495085080830537641314248617889425643274511774015896511694229059033322955992127267617878624073943659055526541482356696161034954792932886777626885231264485388738338926455562066306416669564865251260676992902567095229394160886426277047670019974285073726298923545936054790806957937591128462640844467686434205357824171478770070683156448251655323397252957070822293388288217302751572994054973600361538958753703723317685710849181788872429779640483267177961998973204963100647637555846725275303531033467946770693692415299701410356149149538939698430298721078601770545752326586349365743464165565876066649004051208528411445748714981734088036259316360662968146807262442844300843719617474536274316897251765670454375318484523630240642146295464708472456272345767546845775692817062262425702048342356250731098132315999153688834260994427783180496281851233237062965954085574871273869677994489939180904105002666541006257860025360624615879758524567912121260554371086153177139407626524601396989233405207343294057913327993915502576702233037614599420071855823097530593987228146068187511280471605421427285378063046263949354247769605428027124182913401431315538511727704193219461783861692226400529126160354258354610084058789128446829661168721284805222114314047719229044342454696613625517487621128415566959797456647462749127946814517700773405359104871304405913113201576204438275165086138258226189287218531873332665621893606615139302845792265166306801327165054219275779091058882529857286494203669372312639716309722025584766481442612265780926071899387547801250845456808191623957109641699787335341711617876290029927343256250331773196442931612265652809056697689116900169265050492279346791763233175821774215129091914628303238928275502753258907486261320296417264761569769785366735636079988335362284544203474316245887403801326046371572016596488158504406516200266071407739731064931462718508827399906610748256428746921741656361215451130993668860443878285886402682980483273468668488839027969358563311801416448448018228080718221110904562905449844632843071792374847868226360063925092262453986225874496323366519600280835956222194177958187214527515781789069843763316412987836593790006672595193899714096615828250950937527019166263874114403819522029875789212642777519609318321678195587865889844357346093657533543496023971261988006963718085987004618514089626362934499738382947421721398564459319052605385311623133213961233664525497927067231360005429275534679409338563454860519243325125986031426063241463241149848332795442109140072402653365951589302861468786911550454732934679368038985781083321725781847657886075858245943554749693012017937569554909329445697846099593454923867483774431609398712536984081893605535749963656329054931435130763509285471816540775134723930852737363557116222556924293103222166524473683800285151970153046438298688095335505118869038811044587848422801885202870662290807725257805334787771262799426203909019101857753629797845123185147824869461669157227516009872590954312676939878863052658009814776446379510774322034813691716398996654865863228551634593512409712976139881836743218793886231331764796632600526427722882644192928423090850407898350762660298813861172426913181530293239762705581751491257022991981203773389163378767492449537286164695482859669206993427148388376828744525473175781969741196452525653932121038827913548248480436774470266736845892872135629455479461417284185445347012953847311156185333107484327091061718007662535427343081428156804161629079606729295672563056906722312996688081469185660539650791285199248845706728949806114055899270166486415447102972131864889499016221073047868767447065291917352205338846794108573161605631714355906815804798091993781239985650027641722362030650059817888864966581869365558091156298285027895463614467178530174157997311539690378303216366904859317600060077817274593120643189122178075364502035373658703165657992623408887076192190067981449956214210230697409824534734826866854138240403619660710888000955528068359669517740354814705443338700764649839449825692293163522041042002119303390555571045240345277337483708508152853134407471567495463513231355644482331581809603609048254503172741958347644802675039952213411984337751388949432413331540065807798766755832707492844638252546071512855080859448532585806890716161312413920733240212836132509490827602843988055919506582336241948727257123715426749101476767125425632368049532525104736886957550274324855166136482015752299322366440779540881110811835544221460934636032341881328705966190645228168034508628559985685575090106490470051164000121561988857036468791615012057431901387492533156370644025039647819970190827241623840784993009514309627356866640420484553408090254644192866386506583878666493648275508688321410509660211213091709008770810194056850023051257676694502435423014663740304310708752189258518321042495802611377169650565934047095885239868845387645915789219782049372246815534442888208388352669045277917404858994561725872766349013432731410446816446983410134215949706817636137349631059523668871051468935926565093362560738792562189940395204972394727850788805241024797353668860164414505993081364385800821344122012561687715333339347024448428375252551640323849369944057833763947819946926654725396252752703740708286715580427562259585291241977199955339322632704039322553252481932375720876203133344018082266598090505355980682070449699738186282210374314403047908598361796014521525472544429402089297910385507092837292706510611017032609614238822408011134543352831924986819572831260374143153527011680027107630868749943134441715196031528920556318179136012473513071979175483462164394582482743851033152766959637204185588769859953089253587636808408771555027892259459133430821312394395241151870682486062154153860539452936896033608250632907223690205561498301511137274578274545289394264669426049743431776796660237286680295260758670748501899722947047727658901750232543403517600135196589604018071553595954534650126133987244710103635424798904700865507715781025263796095535218208197979369560195582970071894445917575547264600460855969235869777081970027695710624133697375196356565898547008350534715048811370870961323054718494227306104762283344929285705996116365295519101444350165508059300670734952960291212406207656908304017067520724456487428387272404963112446406371748611503498244584899817437893530031107547948644520304676960115384949744429780005901204648040023571725810835995887876072057307240022947895213552309403379237460093678929467598322134114593766053448189616487235771675134635510062243754059153689296533443572535745157444319608507457672834686772509893569415649825213118228354690043492461862388435748281053764640703218887623505728755245629088656498246515473241845303565544037931982588427128869155362474151871900600283019211714554933942599277964759843788367068261650485451942864695452641748308494804232098018299676925298111652011520921262505236858643129941284911710137965213065837506453380800507181126492092606282427987244855022429750723001484243541883506637760630415772687472441768241602358385011759911298088771256416434614886970343859669834542797496464413421753307531678938100422374670242625513755523382944229696091290772606736708206547153430565203645676418287339942303895529074788630560923546643146112686359495163153209818184777489340897606496245574694124111963298230761057383001084513815706989542682530373424233405557038581656219014643199371070357756141798852525515830400943443956422839367050037283583219305195093750586895084918460467939578295249027096369136824896160500172999365458337008500927712765067055489422558114397839573714187510108394015629973412295145382729736797805135603925602164176550756581306881661676803855111512463833103572583212999202910899711689516999339018772512294300268600741082951239224436787355496246754129014600937366828304863698119014009929273307845734181386036171450717196941106840131944390771501381579933257132757242191658879592166948682819014617942295552924292607833922968862742599135353235271076284165727231086947583840740436743213887864057008512254431515094277493025707540991480331242232091829564932063146868641310588273486021144744659239856826198116935750899766355002366995815659477477521985275949391110331611563961882902142027165466959521810049138296967288913392090387613443390017416901428036223074238611921394364302245658861302236119081782151255646238598667481780752782426881689223910144502703261165165509193852641126341777057329007257196071375348615300560266062597889631088163178315646603904400404170714105778206427899383950171817873283314342616503815310962754326114102734565602943375741576850840996800718796208563937466603762286943450053874668355114481193185218511550095572376519973404517401915548659299013611355550833840849305921745516948295144037979948667507150180324735855016695617739302944226123672273280031410699861510791744739031964264154242924046086466422561498190730844851819354768174487064566414917862263609004859739913525390178867062834573535318960055921337181067354070610956490954774845303889888922154210086377342985890507804865574384309754864093180484396015443556412677578074408084989988346770285918095194623548962641851568321194126615522992190796920508916915713460598316448588516866755187255903499218464298505080177446136572104473699669930550670689851161051352219452524959011910148881035177312960259258917347777162613654050596296956659179044312518462134235550994498272981525369577490870337744391033485240819904683268430243128325335307422315556727231416829987823384063160088275914986724805817894406700523342619877782407284335862992346533679766740683267036342058918329328149931244764286222000673889105111697051802445323167031242391237730396618089356360706699555819770530232952482377729247697136034267745924012597806527004102402646156935337894163792493340481568791282629538165332274112883259623800407006215400917247066659065616010997217325742048603936823251571760995341355067532083783921675702610396054081923475125114932280631883093340834468983126866465078232438725147392596073471274949309042901159951790042560773333722353667321882593746515927998557043890185434854548575284664135678860094542492186842210721262479064421276198523813397167810920247509865296227554266514037537768790597153686307421714895217136878821515291083396745715829749943562785833825122768333175129391191302587641313563405663846029268782538029329260761316559559824536277997660979820520975976485348368275492059019154932491176776209239786502077582460262974560348148342086965251680013844229885151534868863150689089854149941467581205839516759377294514277142986948888206863972843242826966066044047809670428209260301626871061231753134747786058551494215559126860590208456821970404354637497555059892709356599292232761632675966017057491854865989531863994930948726006497725191449534006271929209860992785594220084403234520206218010325035620455832349196729923779281805075685007812303080685386929207183210791427364777926795793433465752795364802000099898405177340198802503267265178341267634794177411914423050212466208547574090602058717311448225694954787153864483627205274127267381970025272058180944497053464261367486449945419475092456612795795493835892258416769617742985165322110107311079626567946293312622592748019436126702941351063161798726842660796937128373676689274277959441185626386252892042937723888124701069344527302388118739605661244777034557984560121252903871304851047449861630964586514419826712035672039841327704700620259408775928366525179256873106873636570655623920564483130716020678465896291597994986410526339480832329362825047181196924052964833377647245080370640428915691014249251637782330226375521021791040566130991502641561242455678010867049158285064980545267142632359334999006591359980250040929536438677786662265085454660867011262974006980346906303697566836004889122443490079501198337701233895510714367752967220703090437140775775491762598982143943660360960543934987786425237146863295819261101252687823412546507223150935332647901799220101127261202022630137517534147122518590508419396400680129702221002856105306446649703635909038098460775311325615556879621045519164823934337650059863938813261279420773148693342556359492903298420886761011292833584675983435015163410733969342032352188354054186940137913391535148880542518034113085552518337406383410257095791298519938537849266706133975769393683578825650046530326290880647239957215735631156163523853002793190814135811905798209862625626457825387139101715575614318219008010373660601745141146768283696547276892084064060742735213632764885827563244768134570100926105056122503424780410089910016138266478154924615028598512956174787734950535886385109746900968285231127638608500088219627277110205924937536772648047390702757180839883080083662307235589931914053794235552353412768309013953354282199773107388291673818994279125023695466000402129857641170193619937836584319370671138462154060763146948275299563320348817785935372170019971451811141342519345724806807013836161224169991806235822895673230166337192595773913539822388629636498644491814307294589517661225772989584896992155943780367739311672087339236035614444925214193978705398358194254375300215418395951975157672768768452864622043463686334493419568692987892212900404133727826595926524083031184504464201431243759321457900304550265650447976092568275696396532111642620746870237778811895689698693991150081514953794331853483112156122896514069921305620901306730902842658969244615391784983716963830456438096845031501902217451635485790735694519127584405995527772646751221521383062587858168785377716392218113252766554423032480038222684750701395555844953216540297958757295569881272252384536798142651761252889199222115226210202406772615502995074007259109955168009928540646613097100342630980261918634346994383851402458111941016218818428100404152257317579354038844712634708172909447764707020153557009360871434141584080718950956146962047234285816844114486555896412016145005449580815037034880958731573739515763439759494049678189586889813510779612958175417423950292590540561501924571176136398246778745513708483051207793322331939851999916529625327747178533614745947070162829582535913284650300359969708083738188413874338848652006743360042991727295129297379736040841167554617798282551845605281366878568007157347506143579740156987357030515421092255439622642391282380968147250208554152355351554743026495176996927304324794659319319187042948230715009746155410865912399664666542240094481488000761092343374362918257905220364593775458203136516376504366921674089438588182199660419484628166276599963183328989794829259433641679855925909108161710866730476993714820517355890195552866794518015342956247489830234217337789654264845453547780251105756230203134500363425948935621805738634999244259452409130000414721308286977130553493597096827687295527585039828421602329574172127749468074139502399353753108398283300642016470715727557003370259840333280617840875018460088037725748484393539045834955136909457964420493022936827839677365475532954204256978816298519888805041272866163775607345786473662684865367824946105552026471497740112101010450758072939845610961678254626148602807106771407406097662027213420113571603120556434344187360582330260156887395099668339057633862607161515437908976543840831754641716358731324757510790789005529314850766872540519097610582630391186740243607644916330595635147522337123753730025741485800564171365688441138697100816127594997987626430644368783229638629801908056355039680073587524391422037231905914729222481767232332710181633258260726625977367332046400301211286871733470661502308724242691994048608116861783027677085566124147880338100584717471604698610336395024461051168113107761428957507752762827614620650666269185805003726553035726213965630130165954062297677184254069526884404958211663077306763366351271868128202701675154606746567886219900001271893803992749648839025026855281486798566383079739943082261494488277885425746333048680933961558141229272021729873080249531406127379848909287704727497208013662104148479557360439973966458083690305540663070455167929753515816707692589682612167845328750809041632132245262341387359082806464669005786598906952709571197000823671854204540008582440838131712289630270598326832977162919480143942370662643693337262621635403209562149357910333481651004812920828663281930764626952180657809777324151141755067796016993408609042729372229245705126770993203718040805862772596086124280399553835331808527501784361379117553434459022557251000514436259736762835747078922293014238440198916504629956589067468486147239635485158702735349233871803167114008316290184344258639253425893194056270592278358510810254942835026412358513949077597851965722420874815836637691880318456470364969547206332753318295095672476007746181002752839197595182118561210862101229908819321942880974144301800471655185927212347837950894984365364990679482726176336029553009993536790403584527864445655688458395462174954418203026752147717164501456150651040562201170566390234811070342583965628452411038885297172700234816765399417461742974158868458501024122104827531730186786679167979072312636211862741814158840035106204202899203148438236863989527913866987140135651167579397976834225513909874033155433170663404617879314814203823513653158239377086829966582114986056165931115338450692337145403751923519240002016315940808553900506156610874598257455506658003858125455949082019107784442626566388241868163328327075537961781866286823277815445937172098179631084020815132989115301448532890332971558540075458797189802933121508161422725477939473106026940987562689687979856165658918229748753671341626876060472260309174889400743631187790258070825024187690291089441276330418941390673697373964073434150418211680389809169697366880780858781133858368927588595439102498965250107358500703018871693706824056805853603694034351058355399496177253593703312413845605317013804725744876666525333371358405346856604112809398718673185880737371181379802426811713850571320977094216381465403223504885325473477021503393287314352507294379103634160839616665084014146535943183061282363730547298296342577343386563345786566066803560898075718392837899585037142561599769871461067406257002210971734139094707309897503642209147647882246839131089769583155202823366138989596442828020946701858227180078167573210390881138380370492615435551030950923991264455663172228412939365753766643813537023934719070528247470343230763339600724631598912460745725018513505703558927438597550256903436214978330238802412257332300533483301995715926448919567183302837603812173642026853601231756116665293298717128242723127960841683520997124111055100719466933517069200215821350311272026246150922580786291506780705941543150605873756994048578429119019273989722050492642422387886675008609694563417751080496036854258102931593850942130281426473894620380766973933837804857094306660669421757177416068369651038730773544437167380061053232625556309111690694588409643376378110140160076887135696157322586710429881105001578327470575441450833407843352300564357874822283921241561174324896939792620706975691629773949016037360770335520278423228233348532829558988119524516618630946730198517394763507835142801555549397690991032628157875642988278724921483808132351235492410400398513781706058883365290981345731445097953238233781222651868678362380757771971820775458824334454201444992332553022059375237154023445801954348278671120403754458995790478913484387643978285289542096246053815513824492130187011451827314804997104178648897014809751508606225872069848282604320191814427853302897902563967858964312065030408996887653261393111284545230452615123097920509305127380527112728115070864152016874913442442175011765759233474374791748764994999347884264368756727292823863389389701538680498735215145990914786769353172051603678852897637296325737739075975490999897633272368911756357343572107092595087652578182709297943066467808795465664310718897882363211268358009010619924106768820907247594441777986552167043443559560538836371831186812521890484055770060842213292032050094891468595825482952977592472823994784140382017614429767390240266165539676181899878407896805592020272979196708714828400544756497463297838624464827464953947537534807960936934166708811127076894540214916456635084656092197505237017489943432537938813213584384520418535908386992550060915343120250000144105105486668087350879235132502542321564953096168810631219975122076579349756243906778588432344702103716173637198696476285020595014364967639469055894985658236259037057763601283221250258979013112974617052624532192202637084935975198460910860490255388308624422138300980252044441336278777735567013815209620068155980935589940613397153535637358477006311295138050648340289080027093515994514309521620682123673454069738987933340974909188746563867208517931205025836928201809741095364163890249680870867007142139345531852037873052427698748355979389305013447463710037500459061244380512173656349846342578180723725133895875091470650259106914677118682931964649364172198602088549927683955972637142255097394757925938464771369149285847322168006472956602496256694487366792573119054651631243364070055477324369683798155792576474507213636065587642779673655276162266216912351097174353330328022821510720552906031589677323875833524902976791879047137054473010522166007096129734035576232826387525083707959938102963095342460242785043948438314714698485960765140756606559537967722728545692517425108803227489651216679467116802767453747139891817736504005760659962844521526290452688032114798696444962576340782443895516552476997729699072509321200332227896323411649379129288970004649155674154461882555751296057147292455302824448908718589663530277428498613254519599683633749055495342403504707910785740066355718163798530602901843964197537675083542695574243050810136337710714640681492848018825574558675524999090861686705317873095791594798633322823736331063034343543572642279103347359858915085018804878369487111266943007030547037031724234511290540027254669642357817553249830991627777828637048506762671933192552600040104355493639398130603365105386098209111164714887723306678162165621240631948493948023144794534751531832163709017835817191351548770553742937612147924235008331825517968270224336362326382902994178468305066496137705193799927246711623388029043384314405060340990901109047162385108189217954300838558084317673522811823898321360587108144006828596432376841189254663712117005941540811422801587730555448473917133484410833777685566295297924480903554870531793873707551740260789470870541286652067881400678950053075877708575936179044346373646814206852138128802890933276544063990453388568791827390329705669286924786838572270883677414685377465439541155066839897680898567993582747842508409686823254362454904001453890330393759153304387047583822419648476294498584872923767730252848222357597844255282995989528677924394695813670440584138693906782860556764423543246870768884567551864271436603240728440678386270863585726803820694360259706224383959465599429375855608009245377234970883272171839336433462875448565786730991908348387033924164165765877376122223588813596086653224221794297933096426340263591743539677175648789590930623582468127141237140116055410331108820810529965090536997274903950634653225354884438843692566925146428747517467620424060675826730974261878222798771151221360126209730008132080876956763129554145352348619896883138199849985882115343722185296807597568148822706167904383493143106085598387658106784129460113548379212388185565940875896544484639311656667873370176184245939183479852973490101853805006079182500617859383039976773423502759828219125451794325588697226373910784827717086647360001698032528109867155434840694340192308288706355025185624664929103308902503963769154105934825697217789236803542338828590274516024040968785474408387160896204448079162765198154813762363374909780369381707519598016359649547378325187038741097152179120773001911453308274781813340743892283489071104457483777630928695745946774249737910409569347533193331911547648919893651263081954338299199539987057687108069584647097242454025938184017366562054009536776007995535204366485910253454938044327869167680096504171043381611688887873063520017162318535417661909858191411081272458860920858977585493065181582946339399539358052028955307303662237599835776883905747737079137546539579741757906044321079992388323743108188137892167093183602882926639531082679471916911470937864064442181157994625124177180174312289347526211273632813551054202946066851183676676795061579873557773681056916264339319120439242013376520282479322489687345660561790766646380300994704738156957163410495600131424743823634323318434008792433054786484593980262974364784292237795520901397299930923966182864931960822350961829462691725369794396852319496848464848798129507456959465770516811342128498954808640138306850165828008545619953871515371582045157263073569435897929809365658009584780804969882226409096791065201594144105623645847435064757857164651173169876665765555870593233796711678409752056997095888965736979421968449115042927337871354873704495846919982048036348001432432619128531230695627542183222713849175113343056447361224313092638493715235607519532059301935121691199792716608977750782983324845397330471823072524074411982261277117730079445680426336197337903627631375448777551772558219590309274776168726378481308105614082564872815373674351141508751285291271592777308704753932311204209601256687565693113406423215320588045992295269059603809757267433867755045833412339468684754555518706216800985277894930177195947088134546123927080902258744378424934591428190554435889247010700139705504081939137697143625350918338057916813855276325210532431465552238757972551063045328416922879333266164159903111479721179480999239284816246447356737190917057166553898011131942818947094442067919667250123371212413931542672466768113118242071200244709297208494020630684190075161430775073102690581229745404135017574390333904145559861475786819047610352775220461665004535968591418556425331379675057326562849101785874070986054155649876192690137764554358407346879740068185012896726265195831803260863034648769653244804245970421461911522716689764308529286270309173740075555226236955570664133220120907847815332330023820548006290991199115764006365676543106398206016823154261638555311453586383624186764554818004181455379275273065820472767999594159815106566436996575035960135589540754136282783085377794562898246346649542993513306676057339949817584180476147275568474296842459068827314437714425763700400667184991206087277675019101838156806807519117890466876542954217172871448221692989301696303370527509038897628883695927570879484145090804310355933781427108983792264809923913805934570701798672672269068168567636863048496360679486318536902348790285372745854008401045184115710048215322039923506546153943874214293972616770351181116922052998388557945259716274640945352741821537931305630539532587652068972561905259577873117021126191345080180249039983649468830617289360489732421336635762621413697426324323421239893086433863152363024858828850688320292476186945292667720647866442865238959169745415868122437859858327767375112644755964964310587478944870652687296245453205774855189036877946192939414824691324834472194789716686881213155611322357371099533529970507603252751774732820472309625336497698794498664441381401922595163888353513000641392421775997420907220152268095201217639565964159761556403758871675860479161959778843568222206666564884061106713622740327289933864310325886403515986139241355076696085226283120583935738085300344417012711201465365692822068446704539931495679001376775668181032220054396687058431893907981768691780239821240971903110976423683802463283054750964664100297995721113734646185205083691888169019429918481421581436226441650299166336255189489571272709210008334817016502838071095500980246219455385275474119967285796350587915410673898549101015855231523820612759448405620407278907479241080741188470471426264895474450728493362713556827107658188968397461351575404061900442612898420823636956240850277656794311248821491281890212284336166738404889552558269890310013486293090132622209048779669287212170853346063524765853389939246659619248148710745228402252899580857318943967798945105795200346559824447597151465912776207346944149158436690011997341393597265251149238799056779982353362478878729500435772773981286824043976731662845700875111196350181607881564420592098256534098650698937809768566932552247165139531885404412308679364608421678626249816515979429587795558720714920971387034948530371025091115988256198319685333412979957157510506535642619556338538998517958562161308088008194906569326866221848383354106198447941906066243434169281502467319667768960920979326295161767313290541201433940247515647334177244237168715292972653307890669206714247912434090525580197495458285394535374448255382420526877161286720882341217313530103331684121108395209193611160949807254843040331127000023361756385603747834633380590267102443834210411274362337870274997011544398311589334952987437291162534896274933307149561364698724282564557877125275186758434331462427627879534433308363497429783568190247811986067317680393496033618552885480012031644011233685884858608446384964716012822716673983160539768570715625570990913372648208309757564376414213162332611192266281795402749611941627435825308567820220349071349858887061702041663213582254040815330030631962468901672702820750374858927553588971512728620859152702548914849748901967241537212120754559894888761017999941559035997299260629351024608890893808838837853593464183687656325604405292308211160789709722549062949788960096116610307729706534489965930059937720293791774274776750562890207872867407882385494777464047773229139071919407855595032408754536578102515183999871210190316308836700322522272706374760692548177432142024619682696715772689212029458432504054234392121184724808122909490090266451996162301548391186012153256060292731078139285053241719107059706348381760500902728326650618877881411715557519145512331243181629980625432570684882008434848659449716410047899831115925849730180931746071138276472975854547260329591806576863237764963294444847881946824738943659951871516178409060117972868279817090857899259143327401977462529126528857577374496763626182848897032587568871659734912354109751230332196059387143769872168677662743808963175650230497036503348702696641452762313522525633643454094724914185589690305815355782137293529475484271634283401250121093353899295623397739161137957489917948502378686208813136687617377111591524219719513434874401771113867102756495489561055910729880226846566708950381094331862685385403742488345317540879357774730948186062781954415494583515202611925712712210647163048842872236124317169448241762210051592897662165520485162825730879059159960215476032887724974839091374628487536120946980543935498266170142821878152900211110526801677331312215997543121936079895526681322393189700804512670500819536508860577622245924851602419082447665892636897851761087302374588655969932183150633823360151186350361487127954861432045862576275700450095607389816166646049180178732618464937594128192076266296194070779631242923999722823635297995270468625860409098270818135277387571201919899595605353976084398474860560068120419967522075979554916526202899766407392355555573227172757960316843039613065030309838942807902501657449996336323303002068985918639953915029030762460163021848080274275575829973430083566586521697161289601764216168003156226313465426663639586819818965207224910539679113821999451388520387659175063189714670303042581897169140221145937140945873877727369042688811209694969721356683016050843854063944324448565863871262951859704431697596072371814985179932866826802049840774545152326809183180501021685215692643801408324737879723944580098407151407386926549354747405442080554600214643429289322681819152809939350853778419383427898911809210129709624551864860369398334613708397984420474661319494941974873429170799524064032234632100780428752673439251184387545142411722791511180922276519510335128225718510202310306279106339163541395151987721422269615534219105565312510072442238674801854038665278312712235586194393271460312765501002676491358056414605279211298826655149625327481079523441415067410302226797678167346519462894646065545044305203934225352693615592926804913089990069127772621940733124326799641255422232849558316831965453721669212793874171551856181939178636441434361286720163753763597541563929232042734765237074932363394385164373022304371114183717107546711932249004913368033253116266046711520265107551610284426881110949498874409661655693956947449869508146999975146367780534270400845882906095079679661729314844951787191112845336819653493227273645117834004073964499470911958897157423381176914988026752306178354412246377202226923488855289659723164283991185620255925558875999137467110112332578930291409332323925968857424120332995668266928224299911914840455191793290348239188293501156811185267609561916826427774141180674926480557867791123565281614473538011760744891995260436709041226620320364785578528148424831517716672343786107017420007568019748987345006544173664245548393372629296799840724825000353501037466391064551749035387308562680914034733357724017691149343759001819129888739081281130688021380416412569188291793466310917173061502075134309116880616308408611563876626868515576740295021843658030689588113260842831347581902644328838770198743126070155131637680473643698418473639492759638293671494471926602531327259519004599081251064867830364637611175417784965252423555879491666669086904364528499450653189820938687477448572384808603356439480370694764048785945826478212099401095687491467769504476291952633691341398933648690654022986000786202906240073071587456075745632139188095718478355650007584055752196700105083236740282287697260616840672306633798725767338222511619881435979008165509165763506786699798952255341733986819721372547537496229834898647015949963802077402780822962268583598165988402266566556812904176223698075325770173514980810514799256572688502794124146870717236273978143162898871473031331515191658430520495769328320641084741066618553911359251941733457291519234695832857981060899249626382212562637486856345262594244320938090221518165865353842935659621215190227829412286831060725895031661878734295815888611426328092865839185688860151310792813670809439231744344796401110440036073239250357378658461604908726091778330272847942439439916999112711920581775068219911505251528761695936855177226524122237308912124842652611383895822152180970836707879961518962526593376128707369390931880759247798629101951171249080712245462590903655963238437431518098587365865852540990786467454257066205746500019724349524338104289657829306760765450499957177688116922824903849898470437322038404556875168767870083153224206493558669090706744614777253935112591421855287900865957891642855210756507972748735658810306604520651339619782851636390164351018142296858571765326318716313692548834680150404877088695282018716717255031943193567387534837493444152738218424670587103792156500358998678389119924683605026877278232816922138320783854762123680096047897452329690806119486481770528025490880114030643274682767017598449221009354194243017370698949271128740095118418096928175414136855243146756443657032791585801446883827174403655637713888642360731237682583233815091149839912964623885586325176053313575093106924405826697669705809617422561309690164231746618360007158404118362984684681342262534680074871306797240837906469557886078142734363183443322099286591973735525114352016738035293480152866822888737533884316302976885114920937253496647224517229577569802288593261535453283813393503866166718621127737618101249412384723891995414173290222704653070046773127148418126264494336321503680887926348496665773001740487966797343649480125366662627011008826763717605653530636929313608217785044033323532143771182043749364454950442009499436799947171716885987779023401726520656850518315550182875781925299580114180020454874451803723198535987679571149162343745671388753728201376858315523770553188333742466137102377289447979351686948447999099998737108657863069555121238425275384909411102716475447323672423746234054705380618269006882880530233902227537269933789730265697606422745493706668983851148465715786479958187451277671580256970702503457342031838780605626135622556468271769147245978986074559263659469327279690602827188314875277169809222796900109408934660890897303684475956834145156899010812809781764230734718936040747781346028804641103364799214829214379227890585601840341116043182834009937066181075375092457001757120464323564213578035290311911902566554972937883679119691426739045645106276054591642309895752001200557840700050100697040453650815139541801559534304376481669529588573975506036611480896825618725312045744182593120497607629312167926427474893051439219108680409158836498059705816918141562572119427769290754537861780430887420355268638746031979363006366788865892359458741048006397632388549624877101587243590371424513687486625749382151823953798087391076819973376180854167480971153205220388723055480527989483784904809733840104089039866783032015281828698235482720022146516784071799515724162828812498910972162459487030543339410872706013607665431271895112024769806978559255966303080405735803013686400973976551038742066446524464716270079685985490300787716383408337551903042884353535806670880943345490463062003124326247999867256261612520495280711147914364800423257385257950443961198748275094205818632368440063775302698023203874650846946122190566879013066151633631097976454325783062597205775873355621866280173901841173557216002471359696923426862087934882769944167467176483303611484728476356569527611752630351131392468806554449493913139608097116319229553107815572096942193442130255536439619527708505272793208667990763044121829695429873546626222945852035028832687159600860141315634020100304013386505669941712756697262401083589057372516461963776039804349469552718047867813621059030757071570793031488434903318371078671781813093148446890207501080459235936061455827153983724664541239246842333026796115428984249398675252901335736337570170801737354553661187044785883855794571243091418255227790108210487673637363576123551736613726655052190311356254709005200395141757393452461505296436323141017022363019896866737935638501024447674910504043727480119831709251752942189175880796962282045068626860600223512001718999827588768964971790720775379506868781375567023605902947704932766341912133799093824116084855916041375884936096544418749326708857247071594681228159968412140969532072480596545192668803505170158482139421118579045832876710174029927846433895398482261739119828865264124485701033221456539470036998596094708351423472482673200159629764978922062032865634818845453883169349410930214241226393271033942727710243739500773995754663404501257397240083412961431899108852505215632268428219166588606698697821285011862303917012166827719045736972782942713766498776870071594836846594797882531073225883911620924808430173501745682155719137106255620882000144063267484128410350623291104732192671155030287919335059604557663098155627921361692219013461879632335627256581615539372225487510479247581422221236852376992426626346303107701109176373392016998012599751882350639305425583393702754481292618857272221280676140923639159871069683927753116896904050213607277621534000889349177447395179054922127061295858350087656933172865651966708415058507901895034521677984088550127852413179903018056027164568156300629845500019061060126176199921004990650957763728731961632243903100740577337987491624037034427680107601286395378824530568685116105707099823570641209546045942494143030425687137910426930707810422956066843076811164789522839392478901524322406777587220683089815500005909264500410426768812857904772791768029456768540017042551428456785401307366924933775809470052609500970181146099851713508345357810967696476019896889937348874362039855693062988288152236219465363448903410249861500586590203019233928568058234469601083716394694702219606219451649525382034103171237925685962301925070658198725295292827472143339573609655621876479220448464412677694269467268996401632033260645694270915644427656950225169908320678171779455829564667711343109358421525274180257351379734666081382990295304313083041218329615275756695262286007459911366412495494034162556092347422727424153293824434663692967942547599172764907758218514453439138394952045296432920405941994817377580958156229527270267434298010070148694516774248687691049357261786863526125667559460969196529034198664172487624440529344139523369699753059359780908068522305693881134156706606045330900857807040593430471987440816447843389739033373919368003983499363412665089074470159660390473321799275123938707351684179319773655975707380359700888458420666318021585799079596217770729586007623666794040259370860958920890820276937125942636887010287716856618690135123541988714426418215803712039080395377038558508152288681497513570009040440091986855315999096658655131840956009295682870775384387159614385727127311084637119365321211420125564720695077721665222441531483267312622621192773250831707536900048623804181164131101327465259738628568498410558515459457863637922471613421717418563363349753448643220338099882017713194686999456762559476155444600061076169650511996341303748335996334208238932332496690860353864291990585593694832807515619288532157423890640582913160152091910518997272200044541296810401271842571917827814212808155707459988330385261231706775579062663638075156912531206365904559890665290241141578596607778105720561346699177314060754227122056693153699490352611495773660574914590878556736665756863823978932777788271698096999856915731445931888981853894891360055101235953686515287612797544363195574076318247081197619235573393820678105126313284775299198050094912427141021720976957159153881252451210160456200427962036403134912994041779402408341674854441210690343216777628658462901612820239193032766617796383060136387214950992643222703738831402413996898553388573405869552853209272581469093574733988421553092904639013609069439903338288155830724098382989750340754655310300109369708665338430309625218146478688311546961023219469192567533022752382300184056879811666439363100487822971971231330802998190273607989738127727385524576359972103945722773642727787933570990241492076475381540295882908864508338297252324569845573747164166894566979553898377911039345132781351057759108482438795722718688102966102989419970681755388738152862913014297104267815466890916148689328526472316006147319070373433780630907262607273321103319033911338216493764967659907488351996778412829463825611052853927735573421434118239213690678280217352447475202370598773873971320975613639052976520977967553789837806544947229853882983976290987975869050887803668193078217313029753564287129860022572337362374166393781793885322516345448016239386451938297000296103179842742644218205530836059423976793757794875624177899906360853917214958268859372971714875263811055954260361376386868674700279831795340406329309762226163707090989211401299174780583288488387744278357354521544238043033634346720608253718755082355875461125563366009751765763022000494416682495103117971960572244245761027729647073427815409372218980631600404723658793519787299338960289749473106172257900706193995818494703351551350577018897724103979326098897110959005690896330923650465769372965968817921375569661334191524339669747516071409554758205026869396176027681023120707147415100557658957007745419047795516569369769200623436310543427998464925321486096421044764937933205220970343555743836408410337131042991774312229730689371618789387492876770498339981795782671458545034249470729559353848052609488677977970131678115258237489118989174478506508371090438485006159046359206957580893955961494407168806132874411617561427282407126867742069185140320289865680409276171606518667195237766709138087482268113305334834635146681181314943923064717680589953818127786663114609707829453590944810734034297325307898539134435959548318806665923440440944890845982137190332742288437388842666803015097241158135764682067135597432206708410306017368719071923645181438979621649250106596446039548892643847360762670397444233518862172492149453581836855707454530881682714590858467508461183681506161786837400079696168114316954312820912545391809187445900818041306077151181003067692836538822966767476553681727837775222786066106002910457321505238804449044366949272554583998332233698778907227303155022118853034149299619918129204440788251489977462077763115918939841374278262639770357611720858495388309339493223082205913412126728790631406454267070131609636156403773464713771318287607750230981899438551345191789653518424228255854928245588291114410928628503404662906337062576861217480959011207234839905035681339399473029880033145434261811254737118971239044359387731695037985942282911599974757377435980042918184443961777594718882560260791122847507538070866514426981606864168751321215332460639971439076821059596833610676416567571097355298116868865523298093347374639318056706999784254841878612973825393148215318553473078554559839621478896415225384880074341457447952351593647175366022244671092739484916939888451812112267405613903820349197360832941363632764913477972694771912220430061718494911901501707750945224271247021580340567140185245407493670243309222244387218055388548766819343495308367815164840452493653504866340600227499244396140345600258574835746767545663136406968241998028104941693003358893952280021832591740703299860956286490046310097472077437662109456987775364578977447720736680538012260206261796744481679833152970905334609672847716901266182680319374412345079426675650774497551391975195890665959605569211166179116420061703603802714914281495752786407092954092209551223096785799939964736134293149042536913496224012885555542165400793518929876694471458711551589524056506512267589031643865086687610945757236925533228985996300325533310452630270025168595225148530505732009225475371369857772168100380940656118658964255713027149284244014168156915159631466465031276335456770066380055774336068685434687985331550527488378150227244240414514604637458550816783206702942378585408372923485699814720952787178389574470091317691069028261366869141437963874235990637681622666375153316550572376311782709209264402890810609110964001846071813804447853912021736468038987104792442061820582246308425081462163390436084223522053166224346532624286909113144512429510466820838733369204877303740918600651320563603525328041980071067653671172192005812249199122916311273523046727334553170007108925105870231237833290271462100011467873598424078296566467528439435075397217066659522733653618173765715919776734253935353980139781710317223168998598690925692011695830478424604246031314678738130209882047353631257146254499351408690229636011328347757415816722394270950836346236367855057637992518784112938176736982053636323376136991019234084695995176718495336962806888515189338905462594310476923812934840778941134389345943671984200703847775507951499010602161877702307374399072569705277891661088320951273095162184831288600960205544734074404279485844902020938488860175304528373596581247044113119339675433999040574721552035363086964351416872995791477832873701318244461141436479894979836437296659088623184821915791523054189097556857608849038071773306429783285342917888910202881503345745401044424221922579281114405695898837726879115761477649344065354698968142848466363522442925089601735105205822790588480788824207518379558182015517680186180944263576416517787878386226217226071994169624583500684878780334619516323938741555379989381132730398927727637383580047471213163638419754157392080848568623121566822061043962115476227813214958164314856486791142568052742266427025597821350493757447248648528743000839104525782958825103222706266762284795078915860817585176183180467455366192962188392264149449742703370757529033437258119505852444212844952445989222459581555385571154244386104751350509739876253038988987351674100841547591690310301246345506483902014328281231362707207971156718184416392543470287781709229348917575432724763354998196727492043027191467409017811122051290421674696073409145755664346409580495000689367801246528508323802021358654487589562225227631800225865422539985308147682504985502354000648174365288670046135960194214343952656711098766859902446832603959894825254330596990827530514006337395862751116207082974931002404512960324668104775230213279971324600294678105218188051973763325247217785588295451665557878783083928518143043384536577612937669314591049535889134240944704859237564249956452317287150252507376192329710598950451737443390114663233939174394590813433866472070402157851139231348307226982580860541615984076359131068652227726707639147970836155995190137087981664973171488098150305529931061061224812547034121344361731086452209215784820085900160115583652671022810558573466181001752660578761158353761793194462954202239785743979770002977147185168800376701717613597381171298542252713696030255290397552653167197089541606366009350384494414789670498016578936452328295845183375132085210709869721232124357141449446724086889143685661692012548873046626803140807981065179954323304395479931903030039705725513989061709839396432198009657604363138727002086497533034798060351761557637533332544365555849360667985204379525099749232011689445134772023544909636719769943802184535292143094617099426757666572784840902241072840250772582022688747723232707955040435142349795048918871053133051695258926463495919632162860297181629262661464737801783419371651234925988005473927991097734327490333435219682866877592891861711033225314719287965078327207131184286957528521781654555265709865775433491639329873076478880666114349644479385880360349257659609104258048808261711354104923951472109710251482428483901426847788221852766972942586988616439507030553211727729411683605469753972107356242214125507535441645048409721974476907708132066690033978852646233498539784104920853578063989704931212558901666503692225982960210514701674390551293835961904029426386722960888674271645337276600367696690096073774132568645996340357677471455012003459447932914784529243715044966607797597200843392245578201127663002355790426223397156396515900928703709988831342429241877426048895896824105610222237463895222148285515360489447724387897669313263053299716616837615692224104451846612592019714000603767697140618722892095793152569511061575986486125062997420512877246822648191738399010008873816461890941935610623877615114316640225190093641799759430252537302381351805939293413770807802305302187118163488028423399137238144482833956449947032476900447897943380790335164030741243071394127638859717186946209971461925056313707467659272943984676577255711528334448467814484829863605210771191684292915336575403986178633870358196433245404454537854542145537811829557929761214844417096968805380492046535031669515815094987144049195498168153221346418513141260992750111008213937061700973295190371263200650210133376714231391532138367899545518441504223422381673835444692625856670857107367709951194181921101259451076679273557005261566452455338944112933449601101744001517192826263909816319708708371915119559500563057109677007493522105319283250784417758876485894596106764360849591805680940413686133697056845969099696582421439429303890996797739102229137776405828159340318017315363597499001171695587546553632717283360385973148683198605739507425303120597015010353728549749998296966218497991197827230685650771491015003921645690074497753459583957497632498227045232617509561263191710267968430196534479787301312780952574356058041102834423921778625509193906001442982990298165864189552140971874509614224476300900226213872981785304703738273827630440079136548888433335117501171377294692404362983949953800224609229944036160794065580393996516069572513064527423373024563350613419268657224714947459261043454791831607295024459634846630362328495750614024940246592634574718731737155986898248931340138975469580197444545349909804560231818161394362286535447365730162424304974785181228918105739025751175388386814503427749794968485071715184488895228299052871196658104850452100430224642422819576921662551985639845760412918497799406777346531674789117237482872364742092858707272717531278790745817671653072639615842303710517600628097780826734620198235090891063438129263485155352676347036577798986125581091502173052810915551788002299150069307692508966826911911007934652301642573468821057551036849948157534360916533960580241188880423611194162043573539531350802878000608030505680916342522972594438144588089491404911668104252659580230587266303606459759904783077122957198475444926901486574628631304748292261794656612703351601739519344018277209808276810557031093927896195301345695919734664014988722969568693500379405319437499745490805707297627566257925560021795359376795722863036195115491808235998552945689385481974287477565949207310327321474322366051029020006017673172826504768337005205218080770962578396328078130317736517046296835211797804909413646766921668769198552128020245792110432687575696174638802076843749630910198037056449749014500124408821188632695376620633646531602466950751299040370513704079983014205567182766533430705308457546145713463797950806957726946859228108090715334974832052044635158498409545291488275820458554648642743320477831894777520734879886716404918106026471239161752262560771123452193766772697899167681301160670763749166260225990266291294173379591689612185811249698761779288624687762094016834516037495435919835082986763738815488049490920969495713756868744226209206668211353073991618257865125097978500992553237344766465035167859704194627145349173023509324670469183890585839731585301616118395395536855645269027098838449774145483503103190628816428066972418671620759192916941783469539671511745818547035153277619223021659731214056140194587683999658531908995197502683163426012232182734866601334331805877098580829287575602282273470020571481467054222424728374227929112379366249459745548951943965505771364144793395513792175799859153387202931807368046631575066008921994503391842289360720583418265613701219726621452737594207994506635066910512495045470920392990245205091872162285271459274465663599907930724549748993600957496273035495627850477500948095083465217998743227888911436423976639866453153564911970769525039512858648721405223125914242403317865697800394198939193297566436886546222425362491733172697628746835372167870811140917470051461655786894091275937539662129930529908265922544870017195040662166707869938434994698240540549409723079393807831942750526097691484514365820685673923033624803708391504739388877260637658709867914516584914041984693046694841018278633160694026855670991038587120056075099417173163239624179801515581479894213661446581745873767181056570936594486675755811354287315735624294917689530094173568201982999083884205783267749968614278185311216105692477042112606464955044233213675002370536321516283466565938046373101980854514496183102683030129238240733764774930966758164608126195963974866157303607574215224025355271173257613649604168714969978922013231248462404346366950364050033933696705088245861500488611305706297356693547134828802239698752616023345077664714585369505289551958962639254001847554626942856406756848615761380885850636363754277963020883854910963589248553178690620370536320035494255850922704998959613552863427064744261234121727421190401933035769059292525239705597283634132474284085771319728074422351647188496931138219572182237870898223074117757321847350798650138274391320924553930717440175898173477696434284573321178946044800228804034383208995250936481416604247088395427765145435312370718713544842570060437328239496564924964872278853619249347360016317460138835419342106689468780834565458652484219762735781429055195990958095653502476363370257579166218141689377586256372731794163692738974715967684562329115610731182444620687076020130531708628109409297492144902822160268711112924687834442799791395461301300486436031070303321182166520734737567293017590324684948800139872951236273465255010425164163912696347532733900487083724640182230474867901164531716124663984067172281640986410636079418016328356755354825771089913061852326137626263504390924461045575182443360972358232016852156217720094498201349769955406212514184179288947760073961681775492753439886473306967380567555880445768066218412517227722615482985842388165232879731115725860444823480225517364570010441247586448035241069544018729936860819669115147894243662797152721065370258983159364233119395733000853711579677874614751325790978851343715143477331718053436707446800918909989129085889138746869226203932697694399629883634749780047293592061282801708199084418925703968415039336338662915743077320907209818383170638989458845810587202814929181606220947292856488063517567606289185128253935555097632737846067114690002337388546816886991587933398322427555267752939150643515213502075280231691010740425596273329339822878904246053597035151490271936312865453522527948919523668193125098489070497765546444936166045232124051102957503321194132356365448363270589320760035685908189314807145732404145948704013045821093959411852305912245153474994818875140877074961071232096105264840286525130169889476988982449184316467300335599227885103537195727800446323926737666172404272109308983636473718403949308230403510867391335066082277449617081389709385769914931182238423154749310217008233362049724253397131576801774080288317980125444693009032323552931761706304170323095901572008625263390846367758914044612502467085776594404517287438757081390582219932466576644657343698954033377266675098072343792374169070592553893315451032133936927193014456557925116854240868106680715798760665417810914984844493802895963104214147737060839025215778244045684622082228538442205596987696898198499624702538814517520447995664438771548791465461549710535121155112156710705794618418210270647246734305713155994632152753057180942967569321929028111481451493813169936634402654579387788144296933557768291928166945859023579748182183945145208838505475231322775095596604693008320145327373107991101759693498570274100563764011581764930031306061814564925963476804587677017285315783642923003726357152991271351303565238952259152715231785228348623321454687542555402617695550510663544758168355282012011625631507421303835544003576034736275225812507440353506721914343718780992278174604075091881332161346134523787519916140105686036774602326400634764153352786972374169395067458545905663538542688272968671860271291984034673606549148983284557710409533182985862435203482920120451478192225611956784490234945701640888739576151424057083862704657727992072264540095263604298311143536214431965831701736983166004295647186567860863103604984920615753357330696117918815449878797500647420440633904287961322972536380852967351562963683989184435801346856229578921786444435446932874309004978694501917640553225567727424614246461188067516225840772158627235521816883237361417773672774051391401122318987264172177485719499555371154525895587953513097953121648339510187662853533753633262704598412571892731749256415208018401484822359286234292026308579232486984714893797538582350753098874558204883528263368927594136615460651238067676569752000302440811975691945337419996340433898335633401466055196840116924865397473291209017369414412751918975330637358316725013500612394520093411167475920485552184327899480702102282505294394158390155018044184227572197606798062146749168247291264990682039853712732764050826134434843211694377654607938302330881666421386958721788128231526938830357716950794836434857077612548856993879457323029272237218771907557504033233829158699595067963729153521568214980813920064308178707881412455315207218545555010590501980565638821467858820757634746231536669824633129972604161246070295856285817156860264645158104275125532940819709387148217743104268862107637055817903944000305887749988976473264822651207878586444358572645273759043081301865159048351641037868729118839988493121647694872097044319704619672440377722837268047846678238694353646173412925596422580029464887050532681478532024744432357755577320071655307825547778766767052902390489184401095501887431162303932670791700195055120829951644748275544660525404404221351094138947545043988033620609049222189200043407160431635128506311873761995373667464520089450287515248311006323655394618065887884505427718275051946795142828453804721236803839629371142915041714425354288412268039983959574561528857080340625312663621269799575712791697488401796721171876896630836990785897907569268978068781687098357772425450068784703846687930093143119140153404669633372421082240008631789639214641972951403989184066139435478463602078736136307478844923304373841002831729234463325153679350500470346317923414480298266577324466820162854030286197105886499101539551136728753548877547146795010288856993352751533384204808206562381755034837326655422694194068710312600495497751362804587179977261235068039446421735619974547664083261004819078628168850786367048401468301425722511855159896078448395407306881915354476652028396763639519470918165602566538345536007768638608744373386007442779145400428712728349621087319168957673576661206130033625760235640841861632112140672959477194123137814048968202933396689833998101512064293597023156172755443873910238826285819103603365202754350619304473913631109794094080564657945182395055809616706312617727058264361442604697591089842970541725989317256007342115093491993410552260880330337515066002403929351326291678306894615308057039528794417572622365672456055528873619917428313342670123702470188771669889963103846577179882966441827751371861053620064334431447444353299144832167770921191344284330040837657116708159735834037376159683293324922158685376298296160700039365929208502196297483895933060333799449516787248974797812826520767893997386363605409995546425900555463457927311947293880714386968913864203797120724759995141797738941844306867971707284121885428370478509026687356042812414477480001226879101318201784787250833901978866229007985078266595204018338610651313832872707182765579848265635004675395003473216219903183518427931124970467399656020060046073812868723064064274199850080242385534381724372023106106877261615614737901473042781198715996167859168471615609564334852195352394204182806575422177093534342538693054073508390900226450673673780330051881691520786544755375519874124677900635686344280525608973560070637144518906998360204872993511182231309049426875209690421304005088814032883488051411701947329553661909079078670780072340141312826500928194581424285293811951686341431396209419508112731865688187426139308162859224746348317814804026922498852956969826178508653395754705544809343684233805024163372968954951286676895008945235197653277601469207770744146246858559051447668848120484341380232518065557111441239748163248806811843772150692683754017779728993014616406707539658134818013464876988255607313907877526808646583656801167611242680944292623582202236362115760902129742083188350678017961271275706762588566259229229208092437187114036744666087833005880557576888632479342960332427928581218501343213391290172476255899452460363302440359701610003578003632741988106979682144173518417513963556126792251199008370656415918652888749750324145934747681560007649403046685355092098446347357994160104903617027869114381217790769646794850051904405685930503347647512197499161932455975570524827258499948115001348537957829706041608352727573779120696435590292982882210564184691645329554228593869226840804077430027921024390429861177348483303498732411592969461712242882255104250118036519918550661011545175654999409014510343177599997831767230565421199590119653914155311035972231822282656759224625354308578958296782518597810098162902824298313341391605833187160412175586420375729837398970110730521509567640134008925472566118822616927250918745233746517367476433734636538583889220602564496696493089179887365130850268326344777911492724206283676177259691516253657719440642394423104129477792470704688944317630426161069074261686109089597022944127173595372844052053237592590544731278181592754688784422784871394304319111733973007593123014984292920987564280254571893865283518250288698789751830588453453043696427996702817397927389997507349574432193302736121265609388028527357346743281186614133764573163263453080208429399079625734327006502477205735956498845397580386071511727979542233806815777010686995268040268879191874111138630257961479675805058218697041400585801157688076202623912053897462001102567602178778550462470701959068471379077362941119237629749874661356247084389234091188683847197673832309859704965450757776389936162627696339006985842614920203930132347491217115418678175921111647965579629611176345910983917852622069963361172883999024090286578173015326995709506366739865912845114250699177615758837237020315495532972171209514953351766041351329528497327132041644062991555411450560660343466896824618092781082520042714038473817075509219281181458389164455029959145084432777509493781681403208287195277392862733878928588404057885860817823871317282635181585933896268193775208825399059640188954625473161155813155212604557095971815981809075588483252835305877430409494241499546353978191258001311196653792197680949323811451195146093121481588643426912783966913098832566771201865243277162984622486487268431239672481294758382573621025600631838403126800299221216348398878888632336506292714668814275450859950663966508939957700621143533552299838894716502911744579962129706945128778305406661766243225583614605798164966231647583561670944992946384168684041495724887352270247071845891296102093103860520885091135606339051607018812188915576836498015114949273449230871269824652403558324181164091086992514042347223565681973793789410888995959518203635425352043247436211120175782141570419307561689714293724546942132385494505723461993023318907121188198295887283085474473302373313045318027765396947748066129615143237094976987315567792408482583946740233590077852287582284060544833515999438827539039593167249817717186987102806053921829618369352493806865886536810855442644741523424286780540935632000051214897950934124923489141002140961288897638968788888856274546781844229264558754187791814652529281975798325500707866400379469873292176783899404012225263075317039112785349473616867944096230444159602729936636181174649282393423367164996564852856155303184055388030353957438911518357369332348687292538942891350138078081054791211419627110971692211144140079338036480086208815173553071918118381505850014752852090784490800856012781872883821649551642367359130790969195036766648335838790849821641717040870954219117644661305071821547331282744679757615470407324431649216490465642352410670749148487706745480465524951288561924328724638310337953780363200596775232990051047511491579766052811382207115417361867447023979885929079529468594361229501426549957284407038253450674895525786846372480188577113594609700922517218810762110539049550536916061290800778774040949546856265761504194437878159068808531855602830223565583765802367538448232288487524060836105717014037469544718721071725877876529190896138235318277084660080062070756657137178942934163612266612102426725696262880534298066721452899448938117657455907820548934375112929327903522120887017442464615882068954282313280859353738091379432972545256148806338052441999556883345806339445064146347359519770031329378287722027122126801068445495760678388691401488922463590579077115861432922820427546803936943481268506884001980894084532150447737159868532618767028538918577960734613012354716161147746943857249588341328011455668308991389069205005760863547516075855209337578585725492217118076973798554437209606637910180373039629726104435749162447189675628271221189067085598450201232582057966758953316468429661027408813319490977830230422503344052218987419578066897206528126214874203002828031978630008281468336369466501773150056933029632652421867813337914016749688782151381256132407981983974716582859731547769172874835081656903637982514278650284685460710491592371850698543862694165675408495027854578852491978116132267998905598031474871919908409437077339339054881767684375767512434672046732774403625298409083606267994996453364217120925042699183737059927039574400567836137052946825056816920884614016759393855301390549081590804261010704020927987718681493706046533638052372501175893063319129598246690033625388196876956498803026786369962397086997474722933775811499661431180846284858655334430179633759475193729336915716160808936733990622692961727469994422953960357224713262639206108953725245854121831128593581703313561866475087192319650503800325597103844614464453654513392336683523371328625651856829985962206868904543485415167828654942501373134331937897010109993613589339792201250298203866125806710236902259833791887167620759244670649256990148025333696970579944862141701227475318331707624824573356654224544820279552719481870792093674967002398364144455519726413896897763267736666442423092945235225500172776494270380774110085986496007284620378432981029449022253587760686432748543867282152498215459742746055035129731906469073352501958323574382966354102125233709898439899682654157274870402364458515948330403593273790644303049940964449330996817276298504456069323099333418001469215355397034176531917065255524234471062994668864438308966596356764966035921507131555085610158162896384367335678701897965852171292646803153606265490015362209738863918414986075021668095276013145593172228758529621649643001757989390298043920844263865676538464129480857530355647022095861182341225432122796655898704666423370223109497790494412360595265618786089216473644596375870814599238945700917227475253330267227773659800818109736054201426977075061551163741498130899005572692014701186027784360334909301395789508071737191828087473297148201410238548331111983578251346155806135052570430075654645425344909290698112636546034930331043086474538642149228365689360071167287264077897599938715892059669609938546252601253210824415186091994717889945987493690379792187586277157812225512715928797938578759162328927131526145949812519080792253834548066878306638433003468961685650759346765694396735219898264895761208507300344080969863533663449667953636051967163264203400076087335439703850395625050167684698995380548678740072197689857755342475292773990053989904858367890704620760517009579395399795315222831413540568132193636605804103282439430350835804515994656067411415291378259050563182062084663813038165724751100620900179464488278403152659188231905952986555621309865376948889623970586747828685709046142068687793803698239674658588887226125485242589017720552028637100417457556697333201648652160933346687831114961976514445694571018913182641916403110043349065044514619725238294476475192369386462309965925540232080181067491465200306641648370042696384626104833793241155788513236059966775669875042279179716333843106223177222896827172571025574451144453819559194306790929576112543184972868075437607082451774135580289861273933053060003174019852633395065577057813344789618981323871741725114940187930241913320219007291121849998082015567016767916783156124503742502401774280647734890247632296567245458195350234713885294660077792613359244517763104630365297223604613562057766909500100154589682600264722622813458534105989509454326582392058247254937350055512960568895925538487926718059870230152923305735960071735025592048253150310274866103592113668957276057985932954203100717764770736010867666789749456881449439414247451431221340298634342039043961476211118836540677215824369682583930904510278862729496916163923269014443715695270893196970337292163931132206127919292860262503178569004296317964455936918710619386255434389314398004783047247940836475551957640223071889320009932011979346054554875618037691083097833034104162161496112374235528165182755007757091336970366502153853366951247906281072815323091897750012866014438555211646073409661781420474576383785452826484253482068702240337493927806045863151063430419398001059188190340363558960773392969262051991291406769316557327619644042212189375636231229330779002907025002057271279076136569572883664772562503908913273890101364185954094754305515555043053698988620658478151625880375422820975399001691732040274712528965200858151821514677867942831044122411238060605131599013199191542713879757051115532999819513092806162815078909675521604371757646711785361028241043552105584484072049019091197949061185888934960323427956366086570971158139616217739814007671380247666405010551652936112911857591580040377712469013772031314892494312629660306860108847569308486141717702869849615807769001751207816122505457006207445025701312671140474112656348062013241383460486868215231228709888489699278044565278850734503085140383547061379935044838826056019158092401337314531804528886323835273297576755214627583633876468358397745494448216912980130772929503203403936552473434622557168753071468822672231565059334006270557676772869471263064523546660341420219418309902192674354283325277106910316661433903493989159697355189849438089836762427495511309104183114684550779055539178370435509792750629547287765590772523988526572755267115615014673967352024263675690206292433616729218417786820551777655652367458738846312280885153650312117099761235587924798659222218372999835559284500848280344683776112078873049059501656799831471205259129310026126401334164139379258070670809872692792889825081856221625266410997510090548055033999792724121673522528528013959590261972078910044717490447067633557103758292505885013179832103550628789433537720452527667321267290382526329645004898173548797957876165070592978611627482359117868415669002437521879441210104444629278691027025006859372928237349374642888314091661426737739189299013824183063188564799197874625400207666454806285254341458579680897278749568494574819423640536303005876130427188127662405417853149207849842986602357119335213693364918554606099008911182732573573193687187802465981229163205618286785704827455560746576108569279959106902691625639792915989100560584865463868270409778404296835395144617956348145118787093737515504752827468180854266606040688138146134368093365116418542912693510622038724231974805345477189848285157193328848332401396459493927816244041221894292348953236630634546991751986109609949431534707081164818305849002679557968185216645718000115935481700657571742445488923008058324759101832245700255351771408379253687000173321892727906246264912588389064811032964875126293962860315613212252771645667145713922162964171135054741503872291320841037139987638692171277943597412291601195216274796992304083442435364460089796438384479077898040895990887729515188999883311028243164102129906180305215074041963827529961407349417080070153054921975487151236065019650877698060239401887171121761906592186605251120342834743899532262949753831396835661919817232423199011040065055130216738264090206717393107997703869836148223089489161122998718218883608799611185244798524540026069146398280367935018511109905441100565585973542327640376831945199701676837294535090738650782516269711094579145154670445689435507890687329224097044302885670263756875943965373840305980018349746064158072301976199508852655501116997338624824099594677974782845138973160144288546465569741164947085386121783006281272116149296898701078505063898499811687630151469469893893662603711781788852472533415595065534460474147106483321058106692946466679583872969013548912169417322785598417958031147076420676626460702373156618631241889907001076128179377192198950093760890868182700799423541042318633564765396840746942530296373387058701993951879315521394387864248882684984714334860999603502165829884128404818220290203991809495967427745217232925131164212345320354603698989851228541801902066374976398592340972414876444239284623536470573700039641416524593934715110130402654718972114980796883656135448383153558994307515088268676681079911859594333776937540417773023220171772205249633734589218320865692714330580335196237205102818584501159996980564898808375427729368658323471421666005513841812611403236137309582574431625325277069480816757820684203932485801110727817346996341380220932873448962488065265281606891856433126469085096656779037846647865127868434600025469477868814599742949845418736672482798866665385307467639557597880795710524727450671995132455118378040871411575575607569172644320271398560474389711541894344607679951399208454473598240141082378195591423431337815030678035011027502007633693333682148538285799909603993546085262793900470462561813643088124761008483278486114801122058237996479281280944799805969315307835307074825966440342409680967235498437769239930588542572890837226567538592838160094678847890011062546255048511136300387477724054579376704776219768395883537265137561419390647795762456429672141779280248402457963546253578909835583293671300100212783804279532807881628023099780024936143749614569214161868126460894704476765708983429816591688510936637946398048279477566278370246007224158122769331696614965698831178067582870841832191157313969679123496753986150359033550017770751705878842842774899119656268108945681616679233106184010815387405325109065047427788113074342714515263361302294191077281724690821554368567754182000488575489330733371724169069612992570175545147171506451516809878107330154342863414241475094710437735925135730469724087165988181226408307656331253713861439486362747723228722797226658283880507280594058523103899638363234773291074204107866553093451003238605970312902943505318863789850162988650261360703962069762064580323454582293121731752289214741746940933573004100434539376809877887516832197621076051363280208051935137381946326846875968365565055987885692420279138424162018661301757954946430010432121241368160175016712613388280202421924174577571993277708882990872873809360911047846680544444043159723345342261370709221230937278727951797182636646255594578373718918881584717790430766529304598477209127456140046860209171182893991210719429844719341567093290270602796084008224512429484200735458333971129046259784839344653656418037308320371418911720897435094580974909470201203156385423780815741978814033353098477002724483160849461631659412654011657361791581648756794682606901923961037272985198116720437243036975418837638235612612397880560747935295025033964583444834878359660495562831373373953844490366923697181149972304955915312282890969341910252322504757179022299453071546595579405591025943765861288250111264350694549960988879345605415014802143782986809260315925521763522238195615449814585293091304517182507120423454501487189765171603885326090839442943982274468774183867697319054567287913589103833491644788887553824635935551616302453667709878562970999520205484434685195479005208522419037503363140426329398238603105046050152800526762215259470063438647340397629388932989144411945831548622172264108525800262224257207542032284325054942004653303111977915872382668700420017109224412846703800386276681790916600154936312926972997481597147290582342286044677309153437131527624655085344765926052968130055730785127736927010611903647101193552671007301534579836777966869712533149361433672211647425942391078307680494695134832035231705395252780269887362605008176217825137415859146157782869820830101410605523918375082179841085332206999078683191199676297014388272249928306288514578772234932668252570086412960231571063127195730589289001408137117210920977352960434124655113522154662602925442613527092770785702093683596619872726087406193402850232939107639000799631299448152618991632391162836260988247316960731844593560504832844176822890307831705862727800490801797392121056262059067430515924047019150138966772453768427421150955857228333668845731686821739607888080946848561369692936899472452187343833758808190748014642792465464386145508870196993431545024674835867303383028665977902526510172943614236725359600255854310539902128322249598369451171007156492023624653848655714704998040830691294812821336671516988891774231320354175140367262095320626936428969011974975956648773659689549160847951882607728812924209707953141196188881422403441583615995082867744891055435732244396796959176309463108793519756191169731549734040059114129483823684611975736401649267348846126004636343734527909987605363202873554907047484331626359969489578509974179344904408597397701001901726354888381191117749522414218335216289119892606456322641718866704827931236050102042363097499754723471987409402882522911446454514307986547122747244557271720744177964795869976841536976834530107348436932511215915044286828275977314515325095782164353516230834308623324452314539416541261112732216992356941195272123848826809330251280431497948186202220172636193599004056143572835743943014421101533489838556858182674841043119950879960089230129402882910176535168862702612762853188670849704306215212354709954562885114048786966671655736879965591820094469276515660196964813127394217109413569298435106525757558859869438583638838644899887133229955194920730961137970356913857628595342463183964117080624794174156508585294166053551484603415676656509125616211049171127498594544079496273442110638382560596347731168122413973657710903743627776097889391363111190046430051395245157201993065702155527016366192241761587082605769055847897504402486921341981991839518245912704467151643019977961465811183687149943383296469355048153774071861537428395661558118494810446802049820510950521933156804934380323226972880101085074419110897444385114479443541208800645400291253798260292838776304290843584103726825841749863456745989788907828551806793053568348676979551171900369177610564479649236104934376365762518212130008475688753861497611456487159294685095653985275518573851928878801330440006383715416924754037549628419405541568720081063681777786197483381776590951528625749176403057204994203945912662148291428617993537020043642613029372629892313999071472908170033774294668210996466147491979659803437743786270240701158515028917043055669056057496999584546617270209712480569318907766853602601774360310257472060387443459027157052632719737949206556506340239878550665856313380207210494464936919820958409431318185581877212374368949555372675991595753554780521871133917197738142840619147807597821716504158918196769520642918728360665966344621508314048051533108398174529079690537975817484392183989866305476640296295026493344371478892556570481485833291337335217815207596428469559107100921665731607294731666829775918504416418985015265064453428937890627660358901418161283515473917499705674328629866618477071945536187012519098667874705221391609356200442185604319503981143471819904975930911907525165025344271923522902465579186724984687516370263469797980033484301127175165718344279254341015378315885069852346544412012214464037082112979834104837303646479241985877153518444449266228239678939316599398331937931865733274376843754063460532428117399274323488234740676104941804568728381108093203559568371312036286811823781613732375283877389240763367501058888357318250302671074892568558808353723406175379383826468188559127740497180310714112786989412452649441529858975845793805948009000112232172042905748232408890378710090471715535766351681399582869559522520441463505283398823507058651350243991657078536562522874495339012358369635069580226920453774820500880286498635998265153116123498987282446869971692223368018833083718576617628767208368573599706770764179538437937344485585367790328604161012306150645269735155503805883648935549932810588624510991773234061880003161194067602927309459106954705628553677114487793370352139954685777594815817505962156841257942774180110995291151360914233758665151751749276956942690196118275609260665497845981761382754599709155862819568599715850364157485981954308337346214973213517957980336151260483900496268413875341836219127255378267209152966363218208372588495937399563190118008092457102550286552994958412602676906816255166184703090759255140388159297250029562570408934446229839995233208365998293914369154798332042076302699490306300365022605681812309482827222391057778622216170008624370765824942819704552932395470009903598560996095813751726876998443699864860104205437954466063044959054114499598039187906479412406658630762282740850123575436974365432339678906008479062199627373675896603108067751591457404151917309967600140958894152293249723640396856774585228140083093480141699675595716017661917156680441050429971069450375873603179888290360811374595898053523834747056609581718169092861162975076190266781550494377987535726060928531028791719162696660171692920143245048147282933147025770155734295374305221837116434257245129910101080635101906098050018925362600958213619103491342085729669402398146229129968388061646202161171413405939363756661064612711512253720340751501400026398138263332143087782506395266672534886341310642037437606533367354695601908867645240025495832657684643219742284055662470983470551020602385374259779981867342115246409676889471782779033823913368612770476272800455893509491083201781572806938071016186515639182394503759080741841531188969011298776011552483715504024597283626097835357749935518775969415270368996589067707717440527258406236072040246905615117751307154863372099216225733667798957130127311059219875015767646749635049963295806527903180500715408951180699566468421425135929751871135699076627968327935285704429936280974038101841442120743091062795011160655914643474545980581610977619874448935930389608064669744722424627883147450881363481086447990302424974972356210362449529113481572101608067009782677390996866949262600349744616604736230207826486585949045607126305823868993103158371281520873666713743464645266368514576053284743190820841740211577473070635455954459311477588460676404835185486184483821608964218479785763190962017321451222873713396038794295228822871497435756111662267954682466154514901781775927355674091889420546933575949814098389839589367467000010581389343320055575354377981959462561532271882768337234982377968136078298598408074187257522256391982130569131278343338248038738754345501878784856882960927934515182748321846979179987296948630784289022926817028731428315838151552749579952457176819094955744201513577389579077666300800204411463243398735033364616827848683033803828429567341639489036007260637372295452433606287485080967831579656920042648702415090529963371221363540271664504390432897459391103939980385837436313334750722332331906939188223005333328099670702604149854430386441596796681289430835492916921812656476981491475759504630818160882665328348452337386303917414995509186566066562194202552323972491456122332205834820373776151481004233607225140773134412746436816673673338015441841335790450058659388063875214646327675054503420714543160005383589027033956653891460063403934667107028919781980159443192307373375542439078976595126119685392172434738664799338114566972143075385892602613904995642288717374607202938942531923073500615379747039266196809138704732475299505066017075165683192239039166494787835698161641027550822094358325240107323109231000214515708266473621675878089747163033244388735566033794244145843374126618384880695386594705151630805428942286666950246634301305412783704789948870050977712300519355901179255263319737867548164539742271999937676344827417593412999315371610130886602540730022269227323045725069775811694603198326885671981124658777728363249670126622490953978529246316386733909829826477238283753681913960297657821467876501671107885597768342896043686678696182459967196264155049356396531838887812195051997177743460657678753256688122062401088344189736432055743990330172083937252648875714846376364292094196481369325201089819537469467047864983309380409825130220908353625998467076620001336856680650645909231567694544547345357048290247622865047626013463450638114154895678514797086471821966758950749631351306500672728841323528132282223207570183612031109678126694422819274595858518589490783971140996878721319371315755709764816496004669946510550328276886000226508655305137150997130685618713863850347484771106961296215861533329361291177645074475327963250765444139630465043809439906801663449279030695435138843316072790348552826449626217137632195921422283120742565043425515939006927683280359234561474391929325916798880868330535720439072079736148722743457192482541876416217617621597462706062014315067661865743570210615689409622613517458005822170702211398827686750876590940831123816915591852757511088899418679851017528396260724409844786908778723939350605749626617867700922208105075435457074216278037732670721986343023256789794877810062051434144280293209842513234830369888083293220303454298543100974412069140264751807041062574022047489413472438659139335416104185183433387010225713742857307804017595280705517646428916377220796453403293659651605385486072323552433975669985404780831417205314083626579995765429515463414666326220283965070762796976884213172428149922467511109610587926790559282090643266560502048880085702291380640174082360508000812049731871497654631648183853037216684031828851192495557101213121777671463548847914890983153657381049235556335932667667336898807703209414396831445448118153456430517510765602346067556759940298278524543926193898160509411857067008824490164621830683889298799820317615819167544689202173877061029583405540286682491288627709863495524735791002407790727402852381043056315832295106510665170603106396758547298172698571125132029083845101486721144816380241860938833107828875911481227076969614127462697701408651319619326522887314648591607386583246126432163706832054443574558654295649920709796940410059117963191914857377615301801238082929895675864200101109669343828276775790002385082053028098432150943863905642407730893601822807332803557402310788195460162650828302625137394765486041465449624700582716457553114347284776137522417514139691486669638648960140383653795546422926399431782177528274214323978501698437820824152112740052241009936357385172463940497964534738137482716699088917598399709443520299496052696072385119970750025723699959594552887914815835006963812869210119014381222821414996327312023790732398100661608885352578406288968644000310000711173052471543704914164506900856387677110511831111439638816140331331295812510278367549827057614783328959736895475328338109866808493491202953765809330292780358942490096255068847153172400314519422181520069707445664748781113993217399137052391558866661863645072874665110709218869528473356378884775577234987299283518744166823291202066611577498974250812823341364438555281279154484569113769420396027957051580385749776073113555760024983281126695498861708050415732626390892746160663971878519622038827240935179339026053868658823441820954564417588014562167094872494763589482216495335404573524688406331031376201205360818930831170940942250453296103511507432099203668914354338136138220348020355145127952842857644554796926916765120756383414651292851922071518310504625864951019282070297524739410146032029591869157816747719251505172859711624676810056016246518498763032673322296426416821846030968569924095598682134329300100574623673545344445377255352577703316097095441186161168642934887751397800135884790831978284382156042384315408147688453381156921254912666324598221084309304523893651729598061553909299702132502176324145852765593738693940980467895342423854500405862525724708014939497912880829887519566443147261807944401889756569233156608744938284734060080372291185554287587543896409305222839617653906755443918468245006584380212086461454374973466145552784185965324698818478509422330154633783295683169091905180971403963456675301189893006092920350806114527178698989541125976835596990603678780709155923731960531182459674031183578457176837341511573080711101779255085223989121518763533690555033050294876441635386446300387901976019964635056333877930121492653002223114283150563569943828414661029582349240852189458049136501203823556479183313019995284123053096578379481896107667546263867683074728633979113159629924263339486421862955826678514553118284913795053835808356345462287990056312394800752327013131486473422655766130551288873262971161695976497906453605792504396976993931799531310499597451050712334467111509678871344314274624589560641283133655451133041321824761557220641330564260518638807323090607784837130528793579688866848509144170362822020780274290621348368516395925359052159309198039950908503624735938553657416078022522849750660331381373732284484238258176263181375234753744256295149309342461396890255834514929539198330063177931846511117667972524357024114094754443194546252727424002801646493925198242564219188530923459567368426649573543947330660141027024783135774641389001727725247318181045818902917696743866247811154557935979008571947718908536066303688276202789385181846290573734117670341273453697637314467235566542643350161611665309203566017176881162963661003876690830335173601053797456039200561894683176339664073460466780730533691812357939727985829093342407501105512062913045012307079724327220325757573775374419823669737529910173735225082330254907320456246523862194544815517159597137714971522457660816412488782484566529494488271853896935207933625661698010805318463975507188698749089696462826045697037052089789668601754624106453750768770647192891451099573411877640279951547149840353254565400344325074165963895699636907928304848029624967631930641418192028360020500246752708214289080582859422661104169690114351376416994518872526571115600065389213297831331079435095824222614544684386321898899554026266920058604109462033168708964227318173011068885753548749158122491751135207977443377080833100607043676380089486634724105922805365361783219626236059256684013388443246865236481799032772207288080233977260968565533449673948143936936811862766274318432577993359871895253265478413904303619430190882921668570084665719083068561087254209203883734568290918047240354561359030868634706051164704846323428442879495755233603826014808094432142483051286935746226892523944024434747319479671805737962910725161322820990277176408829996445358624061524822132037161603263352665482943115687914772470409737025401245151248646631474394039361977712921574283334654347387558584018570025646766157799322068986777784069427648389958009280862200939607431789099525524486060662102422431148380828611984818301768552670515182376076540835904967757746281799818765254633903071599744113699565908122720374137175537107025741713625250556183885427823684527662713257068156341137360372241654465444363378443576669195310636422581513111737908465317741729976308489520808968778605943621634616798990609832593176908307698287138907889497055238324964555160905314851749852447656722982129434165197912239835333146241893579399467198620078150530262900185398539724984543346523213632236007534940513224052417458022178266330494713661167828556908051575555542511194401949749559927420298231750853271316125899119904199304040174760562309651013604026338402571231629632926020995576856841994694316566654514563928311607653782650324164687734484557570351005242695001661092010502276037759759270539377957711227877413783187564459157975943252891551867051241019659519281111789170651040743484335353115666969960750013779147333413253922664455253846539820133763159873576729392492870872253102998842503020988740633565925881776643129110201754450609625435402727679079461697215462812095753306105201646607407566762522800334067073305620623880567522778480068412517578749845908758083991428196166492028184873524724567892427836305141983128338866695646589913098254872162872401783500451675033131695329455339707896540066218140278251628732682630236644217095144967267767022003099921140299084204591058633542385602799901652297225787010038021356488792969331319005950675004768693911088054011204153016387313817958498700497047722216653580244019969849246103325075263123156717274969996479137631167971522993697347998027796277141220160247897367659290459602767480070637000874916819256603032835904458855120552865131040040201408387936516554975282891411108858941604058251565795194368703343200603826321165623648316162915336997644725560775268253155961754934398144908306583111747125837496520629767946092184701835845619223647823292901109745691120159404831341641652213967628935133962582270297520885206195395787912509059451916189003409979253305351992161682855310288665445074784399019896301622314258040968544375283787598604233007498834462130350951628164517141018386235501208685851194780132522914934832381433373706261414683822181441621341419180780154688574783076968673686009611137617254790819163278235363407772670725081256773462850636508840807814425159534971370816996523146129601958404560916146861711661149961406978335507558552717212828941847739401003432221349219193313284106371859006205208254085786653234517505536091993384450032454412839506464759671304806533866679481432240091123258082896739096962646984102736779406106412341846239065752267541784366620231754307618779054433167855592739240847747882383859134799885090782544240285459246783597333288255442477485349969252148834782083411548387046411585063355164515865242677930285470314335227546294857710804727371908581516283012343420438110488813251885708868405181400793273330737113810332620649279115816574449402198955726010040314212633033495096635382202025085733469230921104854715978737147175697423148000637390218834671303956672375694550000586635839713770443639542467412737983407410969625421086774383530350374953904542018822282375427466720825999158820120688213243578409240788537954532938401528851785348496901352145293621782142679639417191033665392282683083047047122658980931922988264905958021654178810318063656132425100670055102347018651000700755136071860779498656331788891467308674039747461834368844905114206605719365179249373281814691698896795779367379248972492692801576292472033379542826236639562808199740959950821181243757386395503264108182774982262279225295451619770696950876874222228106047827018213044957039412808664019656148172285958577467048836714336454017852826636849276874531600047443854132564871101957680359458042325679016701414931783232376826094953378551473878676561193832434992627870767123635766760494869543027024711242741402708292614100025593306338883182274245998453597503384184024473312733361416271864430686392062146021366626220347566032186469522213184054418511084203563635462165004605960638537999939469296711817534926207133126087990018798763021805084468215998303850175908292658334604660815387367672969320922324477143978881332524546206395577388619657623271749637384117666754717634795563806810156692747400260276813976009072267815157705945155619362376029889055985068008992486528981313094687047820399642160324506126480005111665788288014067819590483367622207074711089090115725027069417372729249422462556282915990376930365390737332191514276555718324562338475870230591218173522370389786572509796441214115968797981949642899114992646550571548369492772306526498545226096603071913332175331376206842533606582841135290460293215629499719465510865209807463201583771750268630131459946721432414138386769301428123355515942361954207359600045083559002041484380346557159371039897053144105476365208917350293411713534404532454784579074402200890602490460388489635071234026523600842625534183307358491215176223317916208532064419144574514637058545627315162040459863161166758339449394767412308922664837276780326781683358007483583544364920154287005433811138672739697378261921971925346514949070514828357980288943603909622331532577099645783443538709233452371590681851171689760510396961913531516152807844809007599520128209996813635911453519169127842350877450976404965482848860878777251301249421591781630340738029155038674251703501824250842726625666300489699474431303597218292247806105875188264696618827503200371978502807432880817479206312928463875361909611164499731243463801912202408518687583566045930358404676381862418125040302867986315634421691052174289273607823275310701795127047943669445007461637791356392678315746548662229768443624695021233161042598425139216713945363881743882408578099855119655665223445127989110793111371181882193728056528466967146573489148337498611360261688286495151085288655553325895260223499576300314638388002823396766812721614433118516444089643821267953218907456767588557939431997872639661444147180863182450226291701183715638780797319619939561821410051708441333457990323300817934813515295380341526440225613137006942770328960437601900900929725372423796517767879767604167699909459744855557867722516078009296276658007737614550153730793883441452252910414610485346775836524982675045291798121712074857038902001360147000422475546103692009929223855219230453761366134575498981179040056500701999288218034465946247850917701182317530781700743340918867972085162705717162824780755052765706228588192693604884466378102625642088950123794438428872689359679171274203004911419128304822916124364090371439741569590419994691431682147057675606273264933298438692945266882538142350930532401966304750707377850686670759542351754088384976277070752347409231888138074041589274230025658843601765343780864084589292188769486551861798536728317883560581059517486297121415092990353766075907239953450666113767862660690888257921720932699812586789944001894505742228971214115571943241878109810289658301569195571633150580233919346808732064955517587013292718612417817008692665510816365913101212101458325740746585501448760718880803555866228032437514535784135851702224910530361471461523569471214041523344508585385126924264216481000289713529877514655984445539904458575577456550697628689436412163200245214561433230685145743057903173494630326334059450760394943817194833405561550000175228466321334544369923563822561746017826520864453172143145777137458340167108182376960151467613805549605175362024583235819199913177598798678843531960317623871670915855411371863049109106878303655302118841340517279718946786081456736096179982266352956178491195431182020705262724793135634363137932320455955138466432252277695443748165425571471398481705694334535860757718802297301719617819855124466888005061483865577708554016383639860800080124533365814806746828190579583790417416850045772009702341551555573492174972630330206834226874896523919716654841436618124795422097463854924125541324346060411482457131765314727289231534745358305013345876641590297764088525041912653601600753966188998687962367660965930604775620969839607434985336380250813538490031009858742186632151984529703741509333428161101828239429945619197940473226356233934514127518983287006938505070261267130159891714361664008164215792593101188236662962644290279673859899100675192758948573422160694939345318688428539532623247204833335287919397072067902400131250694688426653622700258957929375925525182499358902897718687797720679950593211835692479541257519502467748726966127498789064457994747890524682686183526814398530153287607329727732267087469198041225530930366616663904264117441078988749351727367114465773957627931858134256604049812684830247900196330688176679490504125437627084714706468099983090210510311053086042917292185443289867768698179205844778568037244882220667169707383194437887301522820556342714752351316013980067973833711431211711058872201179147010860986349796019686219261856237030648584115835369066262990067273235987376110166748827465320336862798377104309258252768086332648515752930951390852331345923957821288668575183678399150922087322647206964416042401023760255659986717210167169338072731629685922136670110881219472457786066301786370158976039733441613981561603685999667029537561016733278000257907867877523972307321409887723398815738766971509994388550573133315493326803151715686401844850069773465844867884630070700624915280137680474937732945073034047312070663685367704039261650736383796896595151808608270034546156373534988549163583237242039716942188970852471937163114360621905642185695133556444560276572898902045444457792560432541420057356578192404005842861748550579439695400962365847163142580518804231506553348535912606405451111426150551097650729583133771280982774340356636670670145073928703221223060679521827223811804576434346230347177771069795429718770087674694713020760365869692010530293445805047995186555970283463842362023429788514390965644350332383809234649299235605214890633114801908980722681305377780599144397300045642216195544618455149150672944001467593672383208953162700107226743151347651948464383715511037957496603369611675101351317290268581162567218374520554590044462010674399162956466078461007380590768426852437001458106375895491654147916326375792690218291601621117571745637722503910375459107877191336361364006950011772716951499645130888631442763065258243526685890209332050372416714919841393155125793014844318144648828361937508580391699168589895114311835165305077132400050131799213983743707776107743046198818062988799480573350323758626260810479805245858607127914071430632456440297028315641187976198102928639293885972397456111845863790716867602872266138380909805349042086151445626125956399224356821702741026950730724344982448004384377113982152165274117856498832420113043396746954318265600206078742685338347742143827053576270063759851768648632527712218110467363357682111677640665523327749321136123372824094699351279152270131887861525554292481029582177785266022447656082852230932536269900474189611623534845249546961857487094592160448979384998937986794347713771686245821140056780087191443496902995059948129017332269675572243992193067832594283331260320797562390610110911406523082281799806493092040765080376340358973507112565545661069173446005892723901532225371213373068838668908787442893428427570002067369268062154250763788315087795909522977358813247807501961010645532135979206827712804915064568815917539000425437988082841883590253729186341018476817470663700211056362017723378086076563199658934253256242172431185325852822356742908183349313514319931139560195962420792042116334901168827686658717006172404198914593790051099793676973440971483448318589498392535171615814697491985566757347454325587176209511935247172900203007707751563658356744609569651479480013749846937931706420040041026490645126889396293989157672331155457386825513820955111661530752323781912369317456605293857233972607342794092160603745173785578984134651196815012087523354293071579084641166000056922652282106873555939556519376182215882755231291115879249933709312407170314127900319432834358674562099608164174181216680198347435493292663658695882024817339053291776202645868647963771649337177757933820021809583439558073850563558252337680527369190463223852116153969458454121637991015404577237127847848983512613362450996514191012272925895385965972138777818258794565033904599667429065737883020589160594269507579391149262471398485489606317176137534661963841804331862428162686204529381990443173768132748405699217354775105539625469579145704774864189139640675824506331456959579627871516164914279169918533595325191045863745304038153159453663494089915339646699838110914975577284005641773831980776491271462587394378414249022306006595258475797136771938686990263514006979018710980325119023364616562228265584857934680278042023135104102383193953603525607833387093468030497027726608973639492376333742048619332239121644208305878509579207139537027765017902347333203789388610545917727601690976413466844790354688777153813255659054725124967304271700270433534765359672164288172615522918553733539389799360276048756008080366632280611465100722681046394562466766029413055007881862304494348499370136506690678132789570967991042962270379238441467507488515889510184138200600289159995221973591824288808276738599969608334479958586866353522941278436702405755601133962115343537539132254378028040878731919745705088614478538921603460426404544945668942330617654502455494388205579011871630065308708722636700238960510666873266960164606751954070127001168541671870109876775202985066654851461913177891626646768041416788073973005878794655867778451153134298195668317287421776575462001126104259204760474070667325013664685117781898829832747611781797649078838765062093286932359441715140743689896373776595586586317081675080333248634023355498561602714031017029953244917119288947282974513437066660731944982161494912593409035051174506438939313269391914319118704277975095202949762454846379511325255990594082919062410791513315320717499954290421444878481352617325132245194197648011945408365114720277892670228058964303565658477203197996177464133220965586530126957290773142672336490669011994091579112439600815773043540369558981577745231444150384191608024965697155156084492073831809696345419421914263112798308382972254009185628690485613175098970572211781551965153934781515716724344780413012670691455829569945574883847959841781521463088458443157077969590032680942148665392544359913291155061582487404750615925686995567654712683179842735923468107522031201809590768642574162219413797420142098467958772484947152226532046378564497323568253488044777022335243390914465524717465355418306549728067884860470370937980336810676953812492469362659238535019510076770885132864148627037928517629201510299864984348985621510491884766957601888513139691247713485371125613311703574209878243688937156547101922900477896692376534694197162614149775023138014002612295307808232240271609388286255965313400765116378472209916816249342872596786171575276856481644058728588823538095822637202897659615026029108903231913718244336511282169227594035458854554592017971061362031688842978546535686919236021625546973164243157552733431709960342885694662675810064707069862538743509127798120952459281317788456587450336203838564423718645290772838054184477947761239390133987913855440240523509780541539870888408024950038132035485216024647315801513433057999846865971207277737576423010563151468050734812911630459422829105733614232137416519523145453636326826451777306065839126940983851085805001414649985006234209602201590614068638676141508195870669916192021309206481198373083523818755255277405893226922016510491359908966837935808263853122337596421570381281464189955040244743116663701807095671907913582279642988058473010958923140959718437075252542940727494624526878795428069216116999386466370404038821065401133880821852775550012590810108271559323535038202707470322399026631788194246552195264770451451546988318448295434676211225178829000929826600735004946626770232385950203541234924889251132693467002010999684098109888065513611669308927834757408997449980123089331161068249842185274202760572050344308658010568673504980545050436968442035606109092743175440873417852237699603155087870723280032469711357854946945983392259823237296924548662785040857272951489995230699779184218130107150384794275333916055837619529209400981181655575741236310013366089154874607063389145413426542307561895194817005004387412895052791776010628302184871664362150198618598669047818639163457364908784097711076859491512801528303581875226919789398429137384151298856177924030642045206925109286451806104996549663606833918647464597527034070536356578309881778179741172504687798455061804493287086570923042315036591245592014995937676699744925097827274747445359783780942116886993267368054110349805127103108365535792666723135174863056979847525501613624058979680080362999415654994726659928949947506287240250815011295052848567434111702369503912179950295700315924795864792143196991337208369513414848164568870985374756377005612303319690569236028649676005016743962466119063687810505360668149745089704529100882423002853447837348367363539794481413654835953815357176228990625742276271986118478043943150878041209441455814836793655139402973669498229555745294768176658442698503405179484309021826868386465495250446007956897391435516838459949607780711011870333599945491219135779655879234217094782489085188671085707849263638485501990315409378193413392299303699313819583454487258596111795420894302844260631972405810506785325588013038869031779599483344040735971162060708605233531785819365438836002767933957516315755117826973451844403508359801912864177593184762869011228016792953407592447812833626699958428526571059482724229976605941165820944615172590069154621472626131427517992626199513648039116727551400396289071799590419509870619391820221017355434900069693033597332862227798276326096375689463565406673236974275592933079899228306659846347004280160470439974924266503112364345912835735971221099673588268162083324730547087141035249567773744093570857606349779229665644923509947268827784222699374685422230326358338156538212668439664407812031305383552744884592127708560356627505550039575487710743636711938281752415591919317093935109019909838254259366852668394274052572806859822240809092405037176205559309411680139391861679198758320548399614702378213449361801797592638607249518493830761489702245962633188782327267852482007507917625262538778993060579410215313153798317586420847317659489359125678232359730463789190120683201610644157684513926107776771626217664342922362985650717377976707966536846076623925239974871633698300999897787906836748739338441359173159392514201914314019000559044979290287198417128021403321709926110189332655699145255972399157163371210655874286988096574070633108916955396724587305557942161682689963729553809929497985961232587874573675365905459929976113646912249664211114915525286315392959413803263876082808322577717614123785096498618235772351982118258169712923313333011251149354290878644848344649410627544922367642224960031963384197396261956682887814589476438910089659213841193251991999663526310012737272607439289258293719869921977942206739664920108605093883204689732148184457351132508604266997396579943813262381412284106315472534681596198468211400472040163502554319307568064198837151361546558507879528129278067747525640473031648115219181530185924735037770474187535339922169453478815681146580728455760546237602956749924429053071815715360151577301036009082863168933434176898965128984551585249714536466768486323491606149835296439550810100639479470148463016200886302873425401526314869393484822473970893135115789596640675975150847264607941175109694647987328612106188780648519158396746156701449756584941671114948243704941356204207021752435471323975220936193641623586134973072712527436765218896788618911264643303949121962503155458313529452606233369195007971533743732446619149747353832946479143427737945803990183871446451086001732876705463926380219410834795403790523154616267885045540362864919903445598424554759094025705975334261682599355589137058596590057798399262570468530657195636383659377378695472916628730361473145033093752442141522002507145403150132819775997389751381280337595796509473452881222859878108029812580754500858023844994794849488659050989793944703142245481494296467002345686934452108031107753948936821127617907748008549745410541174829623953349734301255108806490723850217633553748333371823431405387690631063657025396152940470147911402563409301819021577959874302113145370742803510397227374168237778659620866688910220857365686508194350710011928505648482328984543551375960947131871703828222258823801177637593961153026881865183650561129069920625777491994650990480023011993600083601181259809042302174044077593652340890282605836423649688009228307274374900001597517572385088039979625762436600772461697720247219090586576422969883067698736719866636706970586342611608701756245556430428770457559134185055678752345641590398094287407547591108202953601443631992100094960096958520007877715890192573364453681168459405793888496144634471788722020438609263369925805203350292420930720970050598436185906969342772570051659460358973939264494102942989197392031772672420164480765357991076249324582330971762972148850335153147826478397254433801465933936034585222641857750674234797239046425137972470606984118774271349052179176919829871182600235778134833572279838982442584081598972671906998462173908706496758667090821018821382674325422460435868517011730378039952394879839118717788730165001104084385686260695678624576145955575635781764514076761757846879346018311384935197294442568262453869391758839736880907271325257203208896252844554908770898231056395147935212118799054718285742252559274915527981416240016809350732229952418255123807202247061126758111833318851527564607713590462846068626395690749542355979497095585641500037276705365562500344075827054424835415342946058691819458411849125448063996862459475024430467616086353313961704436643548223610775825979269655626704584762641728933936685809202958131039921514772628271296993057091927501780767395145204132089515922147433127499578090537590800528494645576444769821556556799872745875949010413508005223643467063920107707714552178873774851584870111962104450444267999223966952575932672780638147056404539425534526605092682207585001882412571276437581721876921260843562940810755105846217991550054962773902988013844915315309956244419737303982852921055700508738596971569065035571523708377114964400309285570911068246222177781197677961500122568517239084889953374364835313650660343089379228072884487316698961782704167221454181189655066202074210359331417990109984723718570266651775404227690489214292946012844225198880914006868916371875388634582772487356081948455596650615667137372239392814025155535689675212875057339457592221499193050112286987738743791336517500925026408757386082494740592347551699080926993540535953143315719071953503170405307622134919404168891429191493938499645310581426770924601805330869449183610961427053786142203897630356696229298851523868235718218864903513928077336483424738485999659133474697485118209200746622609557348534411850038418138952425544865528096838159874672358285484332942650355694312551006495321319271424434199812615969521952288653424873783323839153967423077842710749022000173330741500827125814547405349330127659200924005047632355570114004775052182595449495560233231548193417505814410982541503830385291739383633388003398618297098379726127749863908381308744431441604209621496473846334830680251236353361450281635751491335688466564186652249564728421764563851432608037688111494511145318177413316123406432312511692711465219637568773660301898284390549065280226792722326066804476599339156177475927858307731542510610156165462877540077917017868596717658814410593164390899684216746657531425868150651937370021811258057139883286129247885776676029365133915369345998581504448549110618415192574646516310624226140619801991159677937190431760094346666512505921349800256410496910547738548152746847598304215451880310684635780724524074750451728377938766568293001393462915753725037478892698768809306025940343744282818202825905082773953461102140733281858787561737770207190938138465496791645611984847034000815945812726591109313553858036689318136767903057143166724629474017771251855428371206713107736445990168697689154709312948136233986294655811578227096435480984442860648494084900459623434257259309933751106201614295603444121929005740984381063860427129860964042331245313121556986951605011904564883878595768767101103076437006461570074586547837616221342987869533600992357071894506136381467457258631065852513720355828394780638545876076569285275801821951903635331932835432709155230922942713491132238533629516469456249656829735695356444031143247878395947839524547684007483881611218902015302605047810082862984096425862105729123290191953654212664788928769764828201988241255184264064698001234588388302293588092504547318576624796395462733549926521159223926865020303122681357758498190876365036142650466384068815052049538623891781282616472764371046437169003091581128643705181727483670730284505408939843338134098515838434281300077891161624167019786017698417665083260217154855207816193998434258003501511962507959365345664985358144366049764103267485344135014192086541929758206612965561787582704752427117370876048251930579817228272348267690128025704052682537708442939765255954175867666776263281610133151931609879890620353372419296678384793606193654441210369627077901736486201109491558896647337826020267557450080762648140088339712068697103596847020353682802834367427759936260505239506205203076195269145556645118680272067298683609528555625006469498747764873953587338069794689364174884999389094826729564179038765830290179522025837687168083417234668990264128708720688397769037263228814431298167322133034491361451637601165094690582353871461487476607842530133107071522269356872642483333061997836071717868281371780518781448971697708339257486701653725669073363725212336401944683963479535607017156718821405402353698072168793740047097532964479365653811966102653335471771524092631334124811462346978046311059417448085677100993153372344648509724290913070655765795712219800400122845739148225025339743533943397950897670547559537894757880008524714837526628214032704444970047880197282215946665945839845220653292739312425882749399709704525799815525455713027484312050053164655832906767317596825518688466860809306314318495110210045324101692356180831717838781645393250511902805868033421022675942606456997891275597506938043055380353357273825029535273038916681470742652760957295657370721527427047927375120279375096108799109938019890166944264190559853017158078325195677631068418007600405756395295692083881600095289117990531399821960589720687990384132399077172613144099438731700758623545068394989261324336022684126767757939646144863431966142939070818940295356559928643033133802086196454256917686647934248544163070775947182831035950753818105299457394568172830562161031306507253701617787309642502430779604862511266928537505565393301222176644327441574455387224444012153150438721109346916111397001940170628613387203225414776231755220760179892217890764866511087587383351310710373427079137946123036064085590385050039121828672037365434688463736955956695772213072990129382604759604752357011353932915971103848136131737802615035007728364898314402251103500006574148416899035866476211818078974175772758131295704563369210245139693557832339013099634617178850698714636201589808533773609643015249751420632040957553287067286353587639161675979147931297455664432815668509347118813377891613492070909655069640562390402798781445188492558494941893214757877335793925396013592750701784340352640844165097515807338306346212263460811112036365257484446548669137868860649798687176800160671419681880795164692407003393457557928838562191038842521776296718335956518014648871813445062570803373384664435191665126533117785105439931770614928975970874237016822452373345942494062107339938925805322776884017507006795418547298915171017072990126049157820306153206213626283385377084990795578887873687203488085965438729553820093518342653083793873954504216975968848551583578562149429932487736517978445868724148246666538803889822534530511589842109998704896892483387884238190022227769665589492352092914443841446878396465573736174575101869314655259732317798992037516876814506341512586256802335890261925120603357043943178123837008705399086386410501732048817834708648961031804688765989244531614931880887048360965839995991271271562864516422167688513835803531943902154255201675155522652914755921926896061686805190257428881022934222255242363647406425434208965860347952191429543549977628574421404922459855583385738021899066222159297253233010732967180148656251609896440125505394576809991844019303489866264160719262950930917396436389310826179796504902170445592162590699389251042054113381792655254315723730252904680584103928071868222397921038292904076298062845371920413442301495424014638267310453892301420316405773698046415600923554218488751567105822444466275193839559355789100136879775836964218591116214976536056926414889482012408036987940150581173687334108020326394591661223771942096662875026229722533937451546708587690378412343463489518993056444775667932865940066125576334717927387824373885834499531352527133927751389077258635292615777699304190269739331693266162713927669669187303962903063591011632443780517720990365961553639146842503279492378220279754693578312626681746364874452861715741818866685758828904620688447256168763232258567507181214811583292863882690762058288865053460381296350171131537877484465899105439055474949246999690573945321725651848965728035328429218084782812332473634427753489350312582606023520040303201720805863107003287836363142898852041796468316095618547666165125762052773968543105354267988117446116174980107734560431040045157091793721622313334774974981112088734108364377687902500075698529292447240886666598844439161225858749493252485046842705913016020372891649571141528955772969237773453985047714005505357219573551578876346131023308888842900919921416492180638259625465062782727472831491269093340936268144022240370897650367227184512204912725328224772831428850679915056969347620856968920917200584956598677677594851726661855066840207705424076752597330112625805733095030322976650465216035232836310982715830932810610165183299689310527344328169382001564435622029368680948090353192343973554256649635894736202016757098624065874810637096872890110645484399327829038084709911386204823701259528418102820625462558748307225788232480050301545947627304828099392569908629536761266248058452036795994636994955952150132329648825169787606586783122247853645423929401821935274558839831978737516047159961791651677224893658172790664395652981874709193285011003241701709834269825182147173564862550897863335278589104308325224884407595040390769934934542339082641069358766892040927052715787726137955848345813368327903583189628282546971100473878799208204926554411163502975581574799738174432631947496187202723870255052960378424628768771596205164547463258780316629142993099341225565716199013320473476364312249564915969964501854021425695793805734983395378292432030797854878366077584166173427448119691565312608147338095145628293131236915430502514866758643178801395919388353965979630375751226501487640559463954638272775624201602605311940240977572924443468388480890805727991717011924804965627401374269877459872247274327469238803520118209112505309088967931288221203480668932663311382950997256041172571882437847719624818026680036910004927077836154185424284592995074746014900654073060717616938943690521231226829116510511970779623724177125515625736869040185897938262081133850506206851018211240522307681591422314899398024026910592788686721040945325117218242271815303865080272848039453534756533739996376851004791760907461486671797060578463963717927560972427535005236222555345050550256917848915550039396091302257781757843601571814855041142427026024486630154416845886627624297259270963575818777796870227036725573027915186443956461871728642162865088138317307292410835011730620362154075442353432041893703924636742474847468571274357815719094667132830975342242660169153762718643001160903898075758103714696229101236506121628150973378300322431385642762996515989506041489506596225429919320760726111174552711892632184362083135794089419601252664751934936565847155037626617716332868196113748166322322175786436617606370718584607100750466124118180184539608883392769456357431453972558383691997170367185015671798156778020678462926729141772959945859364995111949944717244931978242533339836774815713751734813802811262281047930782626640939688484303371118007841368407370548332423054203063478177012755009584930636034398322364378269389983634676063615646516418075410449652343085619921044665874943481100957113557894740598677814810864164941159527643788503616625589140175368318726491789192931640118048439826169596455369007460712044757554969179087658126898946417192402614083284120462244990699100967791552221210441639208010828032470680327265864264779661886496771351952926556362928487462760439459238033719545594382220689109015061452571490866754497688774460286010562294657672823379937905300469262664037903411316650856933616008712810315984520320011031978517189750278913284615250909163816550121501996323001281062884829094108326627554462669221522966308381388109356384323839735821933842571604755916819252914894428203762697339837608260539211391544096376837132537995068905249572500387719649136948227370044581444045395917718721649673954004529883465055611310149860732395003471923985983844240126064067845729179024917759643477378776546319397118287018350541102192827245381214075628500102406150839572838829126949608923183895898262341340185513922226988758385493901484716517035098709614523133132377383105209308980826053501947493163791237253222895797145827902622628597642989625779140706998287110646887226943781213909384496762711639653675600930782253567246098865958316501060623301937778712430635921567577262113885363761488732813227596124603742898398168055113777956015525272174407278944782246544281501718162819716965663510200275606970160876271407295051539697883619634492467726670409309591896586912657906883751884768285755924737190366262602818572356811534865742496750786299902009746559724820347317241073269689164579495999971647164575572947634667380021527684055275990582634573279470616796991986449399810032162641421128108966155866465285785770011089704305499344640720772861322415667084739842906001767328481283434248607891433048468179643973303013463302429686551487974724055032041225593324965362030853570176077078531929131359865870701422231586110852791376293920902186944316778689955667068636421435639796106253886981279301848121609982626167088039181993111522868774934319803761402187646357624763754428177588082536316074805050482684514339907389533839505189733941996926754259420489107088286882876443632650309870562796237456859157915611639300966267946348179849544701797616695976054244886965043852282585253096076747610160986073833366248898476941355378270313999777560570886746065151220349018260311208016403951627117026886901201475204448688548501284394857535353604138559993792745708081224585173342957957729348404452838515933236396153021299672343267338894912154378346393637569826460802876442380058364647683682639678836550755308533654930597448651239506418877436787592741279032074795473091400692187298058508385993808987416289384416660957521840123365015425165262594743863125602529262497107040866376662194672727919640153838307692080619362690273423201941110091700817086925825728608593116097776408917968352240941550520889981026512935542402003899816606414769175574163051729576279902185407500812699706480953207772875189215762341838188776788871582441412001245865034000109484051611861104585777697626422933096281920007206414516494568222730959525951170507779774820735075291488975720304383185403298726872007513421010704277700130801064447638943598065213250673090299285513213407665124327588270199029028093735213590903400442240421096437459903289832544629501241978222301234941352162073936930766055370152591407042177359126991510393595858087912259296770175317551708638601875401898821299557102331547227598918866092126001394007012316095850944676606912784114861433271238701564883937265975716624600801576260074262952535000537656945980984887914130751403634978423657816132360458696284783670187207444255130874315083923281758632719193928336480033695131953985828253343062583132667987636118092518347034754687252733599639175492342007655939858885260185785656833374380966540482534809340408696631056763557887529383761452348370909771307777004103044180565787945874926520780967798428909172104518498424982973642024557498904053614342799387664068956005607567825048366676904154204221168597352647634912432103456696577225440053055549726761780945077419733709041353335744460211888323370829983517995994125691200959071116658575599506552490797913264901075676599219657652538711149585448116633814584541856918722307576440810331954302167930674748172793494120028704882391495168549980202748370758102810174716521744658869507082917791787552738244869882703235034948361979860554958944577190614667222246517957746069011505577269354197381276936222342112148403818718324516182295916326764841059936598027380388663728481252569022867180533525258882685396195016671833781581276704576701967532578669700995341468309937715502588765351636102870323110325331486008698061511030601518552820431630236935812273252658006037713029261285333238331319341846707406314107077756601071700922313610309819273448821030034394447519507757182548331068531745092744909366964078927824161467064040010521371304163638435879840888029973139545547873196641961536135345593750297120533295353800539540710219851291557254550018215372364496381473336865782036971625659249295093783843945341287517788946782353711638174563221183087597952558639784776643996878157045054484853650607846886961431475617748981340463463213375068499925429965526878780749074473748116359943435840870612554139993897990223588236627133246153693596662795021075926147382390390629483885822812729732792753306426024552036744766765424026124250343778487440333109159792370417099218979020036757618006291715638660413675925917925277311013319849364389798347259787576878204400694949441019785901472049222239395540999958000145013090321418533628565588566302961982700370230787927089762884308546949311238292076238783280088753425240886794084923837612694188041516751148958226203341373433724872109537032549603458541393105488554117105534295661809117321848527810014613602243960569311083497398499720505222404808887508281984530276314104549841397409718677735056070385671782326611901286876856864709727140025666969509438651987723189974422571986995928196116239609167867095010213889081439911698307841301440768199459615081670349842881530105768024088928113497822164081987812004076040368853868718992489317676427246041542867919361121280561724081534045822587088956412064478557744387960889479600304860932913947669835349242727205926728699780061622275900334164645120741483815800072185197398745199257800239989553135560151506170994738250232547204415572458455966902815611193267862983786821700551987205319968747099931113909768824465077114866720635373940104303758266332112399662393178664719982497863596665837297330384300050107894490392704827690270141383899638969035374832027640036535923399747603900864226875075868164145043466264449878172845361970861452067940965401707127499473109422425413085356737688865367905925735492387444240226478028442031324313616553380030566422607987056658712462117992785232056371204094230763278731145734037523308710166306799142209286204903369190896066527211490615354666649296530912141558493020717632381167318170635744007081459242080601925960890293356604738816172005498832619411921424702679728802688318391794452110437222094965296438411839620816642773126898910927739820868476662871685461357877394024387911892509388649745535644073901599188319978978104061444693305291839040686205029056152028511215869357378478897484553628686887834072811607887675779497067401074604320434449525728211895249463979003293952305365259981102964474085179149062212858349705491467845736225781432666571925995090592611530824430285028995796616904752564758366420013676016596508483380550528708669489643482143344921727230817602135106684768315840762726908739690142270800238694251506664736858006231185563862269016099976600455659104048970643083681647674992648606490198774141872238675771604358504831529085416478802137822142609044335593116459010234051031794736013464749499918074174154095178184479205042061921406422142571218876460335437327799907610958413442533029422444629266559415338393368571832352113213988993436488229767292932147729428350240781012883763863042106355974115338464577610434540476895994267697792298213484308152771609722877660875471403764365492782559045141752583012660256636263453750252077102207138949827332998086789080370171693451992094114459259721615962635187228130767170125640777845691298233171677153875163080699443560574927623680208762581723335988237231678856043863306710082647993908120918728366908307082569968709747280410197750003236173681047099730692282308059872181863773746040659510547887811056903773679732533566300370965245623457588062940264058905069659294442154729797462286521465015712689013642464268586386696656248393014496959017586586375309400204814800206434400800581372503110076964142403262273628781918674152360766093028236899306264408092452683163752044013209238894026234996789829552768442908996252247002192349186148780776178887266773244037672969388779405999323140499830858112743725634895209149425943472329856015944506713444964044060375398040372948504593488758879282043264493430831627909604314562480634873741737917720629078883576247906980175765796427989513105338340799688950066828074424666029894981877070304662041384348837303075112280541182041779188389069623114718449715789048534641740199919050595074835229972248842325074894947673192577168868965814311478051702420289779580669097053221695636209745459812296079362058501294717757165174790953442799774951348081337062112951699105914705805463767313089699950993598173153003304226963589616856749996800622197402626531964379861133406379788381196846359727816460175463386459365492985251186973337199342973512010909898329359512642691684156685022065215988929675265340347676391028572687990089080607629675060060937616558541701118467525578352719908779171148185465059755910033416752790771526433867342098406848226285388496142193345436796375385834577829842012922669623613500256824956574285751462987200406021568319511974132414043454007599267011997843783306471776045823823879319530426595732232452303741853866533252637962903774412605362242002166961790476746740890984574896681477699123444641097826691130662205320204085938516141437175642381730128460667222561952646714673908821483562391774211551483776011891867432919354405355919923446278040043518456021093728392834063159522113768850952477342942432531647834986416067939647004875184530294248065187317511235499427168359668442342351021571835980920606668879060965268003612231697231900646218393806805289395204451546757231401619955050208923639545161667287474414588979140415820393381896628575792716709536939219862909960013384519809116536025514873188385259863237842072259003555382561057591300997319412306346578590301288030979018156435743908838900365582382298970816956890695273669658506623799191037943598104389327557620077670453440702926913039735136529403843785396017048751545074077109015316334276377188792791550092229713600153542877607050161363854232245927759380235422201941912778675094142807592885983252190454990191920116933150756319565568439701502480522144836385724983394783319195393044814817634343321134104224070564870635522534271686548609695187578775002028111143002576626124017215690676709483287866190372642415740581261066055679330253890621567854602235146784515017221225015059146738744359062072054254859370163205771261044988543041555019922836851995094215026342536953699280433512455633367422327968141014424223353197855317840476220253832501754801811791939569539259246502109607334358054956257568402891900657899486512995783136734323423165200331651945750382447758693324328111175008914536559398977336050045074841310419621885672425594947576176975976654267827480215001195522530904107777617155250205726033127163460085083106201529350319106212320203239609691634165547469592289154370274694356782332449273891146575693733907225080100487101584660034153824390114305138702482307158709472331817829141236353742471424799787660853223194406400831467740619228797434679537179694240640446366748290125358893011554917146852332277741730861173433972974179826812564632477006050990130973259882311626946172089200364634957433695730562483611113280526011351566483393380857575424289921270366379556655911384757971844527505814741828526444168103166526841848154362478803045333515004358103748295339137498623148290406603378704123631133413667458941348866901127024329050637448786059807081346810593280727085817137741356003220789381443592767515938950259461976517611336630230291513467020086144771087713056667568085948904444515828418942537321733987180529434165955773173458461436923963698264066803122362849783824988037931404722472064307680721307490997353785959077474832585853901899339112829145139491012737593899387075800148816804331088602912781278973799078727336021025475006974537240592370959588938429557382063187854761888636199038996960104651222400771334112138046991371447324599927288412057882105204917854435157261404116708275448438937272913050436541799141691970919094338593431010976830567558936774739283164397078724196198039262066062573429044287020575462222296136105346662933983693712380622454868871019024832131510616192858187211775177890424393689491755449532028401914204900943333420882030413834736792197460725101544308279426832614442206475693754149691252381486442209402400744646070567911373196211451936503381252927401269271138464959399476042682560936518357712222982454775262210611495367114027454475857718338600811313090923067975832997010827090427169490542979126613851775260931544609515403594870215991984175175964784070121725583956481649114409264516004121666104451996618916726839680062790357231384702591506023041063673532274678811843950012058549987915316733749747214922528811173286079951455663356877161650203259132468070401606464163408938224201926817735806547456119875490350236212736280546984648141509468782829670026334808818210431457155850239028282056053217445534445004062538261857197292487044887917336936790306738665943499654771255088202377774407711283448346768387264529034270481921477763840230342933446105384558794711636804449017722813590469558098075656486029762014070280817229770706161520146515048399205371271893579272776871895049414802796599070302862010631703039253890424699984426864962393225045867450977042928896428462530702537413880347071791368968538129481849214019344509592933917527136205748849107925105650925917241262445103213746349405956118300801806537778608263631231515310282625221485728058547779540632760547700857483631944866929902614770983076806730879381667202556036011920381543061012783209977577115915254001490153020253173171298142835108935126160336465276821985642843635834877267437621076157734098608754206000579660600714909562173947590790756753459451203068716624098452574594793149631764035980642276797800065221912655413493418532945831417586412795692814750704364228778928222723198177360827075859830890162542134284718725728290533381571207607583878413898929374070004233288503032669968454293329775211725405020622201750603890140619114018893162484226479370328642581199240152549682468449084959323388733194129982494595329422391133609653479076384334422944149403839594925962902349470061909255045014501008743488164392381453855978751188940876012779386512897630869924820395163373482346227190348336373144000994921521806738312610184601743471190487303125770221047483434929616693547550706974709363242488023486219726619829090857341739130453198491708106170108640759547524330655804656746204292271355502852388288093240646276688118821748867688373320333548750623812098756387437616155183189847241829262060009058778221499318627880895477637727730752646785890179009775840710496801499040865349828642031542047324704221006182645761084731465286161360278938295925823514325677644953155297247748349128367902997267567143859095979858086050062137970009968057829948704438308761923384526798001954615723074489924294944701874181353034324437072579296545406700437560141013603391423104812212653500169257550314214788028685798551538185632837199897459246619962602294379912820527981913185031541255518972244179533167018143877180911027866829263538233468382664047107332804100031148754710527525524234143667327013779541571652117729488461690230029379619249840646511173413302912167695503742195260025747424320681927988291910370605874454616993220646914708382680478650175146097368976557424366728027286667941295543767893571486084672542099618813092996658416754441931056648008869948886095999546041640109972939197207824991016598548425433440479385846025709441253135098042760950591740984786616180427574588641682743209422478469894171878425490885678621069029835011485649350736422683003986437447923751249881507329336471229379266315193408487731611494974168539682880309788219849327105988479116629313830656601552922687098701368159145445614719268732938523853862291859531304342420582855184341111699417939661775119098466394078604043604707246727402275453995451873026298138504782074878521168306446890259552094036161389171561865975862245424267935421181375437030865921208680648242900612299685528195196861260290602382335555055130337726207467630209545083382486653625502481207638659279869272142531940080461739186342084003423912761437536130898630847186906727077027203234434816768355482357373872972811797203626541166351715810820796518063528464565953488449842664264628449126925972226152467037902076582632460813698960406475588848208014244468275418620480092460976931946177415286695920642842985340318842554528969406750136179860193435368839300279743545663328941875134147000372044495522267186850104819518230323030920898635824660043071659219201644711150336394792458956927882602178446227728950057170152961973903536148102730318475874180927939312433175224768146881035713122598907354695152408890917313910530144527375328614030203349888522747517044916833896460648319088375032547509084848949353504255278461578218577383804219492236416439069188681908507798759413698586674238593843745986167303030981747100002252783542794471999404672852762157612086107122506552974288146764868106018774280838523753500856736711527376643654352520585391858054192923199494924421686138600056059825839778849283137488685545615942974358275587701835837250476956840832351052679003742087651425878713410115623103346346965833006864855090742728264180852617095116164607389822285679477980997945081061815264930945481784789611170820695245682094784465029365275792717861336479619940120502310901993183958131888293488234635497613965783401101244874767968530008487104311610523789157122125914479783871769269465043760085037690879651687502131255740103132153919966264711921639686154490531998624896294565696035204954260064977033286126300880780884253030249821120066114003800399786802539833089849242188755597133280276174346135811432804907311432319217220284487986777168546448390118306758532482338980946385650308278083735146921488587235428521061703662614883532491962569511480250685752190651086276653636628638849464771501012051651140317983564813097417211551384293598879700616436167381943114661196272265079734224477783944857251026367552916424249265506039736667310010991486137786458581983995604359453010745837821312237210471623423153185636913347357566314420916064501514387721750956204395665263484950011446240075733119036126055587224902747035788580735252307648502734712411915819140528870339711017629859749615131854861461477791580099536106978950085765680820130113985392356597457180497619104947557916196364986808157754903042876645288421924797964281555844586803273811110609286371593004609461153558092942987885981143115205195838713590149922797675652454708134232990860079325564476434913553761492853755587509871680063885292783157882457456245151753975641414993596734688347020643741581074374489295834503293178226092602901073670639965039342596129270402401880382301603872780306240431094253101858717570795031764498631789899659379450281769081017458294807853296610072705852178035003873965606377286679141236090246986498270415591097557650629351303159419819777177507157439270251518034846980929694527471547241878536634224383296761007593118195509958876390734185271921029972074011292590372097304141950992248008884793542953679679839020571057132811041982881289447787553210212548283389203123127772770828483177496644588982725203391861485890096917808254455751152260929620568827846989714119322771731872033507855927906784498462151491525353615825165248830064535599395501671518946872965492794795516032712922355613158891503415470143982079622656429320063440180446656220504379154430199836943995483944905780136412065642265670046596288797809514932978743845370271117526307993490327326761157863948013445132407234943277447739802146226014888059992976691160224112249740919839510500916905476996159228373870339129718602306924296901602140451207877928317427971440617667945745578066903230975978838356889588093922497625403099935231910475413905741723064693656478378058008247635561191986500269590901538804235768443506876381734511655570953823714708359684342679519479726870480832378775462411593397154576945775171280882795031754092569850062980352730568422166771315495838671200659125971824789264017077908337120788349197741646502158724030015585497620826859683500604730351753993725915569040331325542710057647888291708514971876497406280976797150486856009870170832816633713676746629737931774001854168127684616955657689735799055495625946670435022315187113839573381637073812079521168575134938753555424590221690682001516651133106424052654699688340688726362540451650195618483300130825813542673786898364310341829920150568531221125225767375918188442549509608637319249167250149987703614775102221514811633143522952538413433643707027661399118284380670168039540345603947429332025446779424403326033103627627703094033704922048735604298506834150164237325805295022171611471754221676321861851011101268616795185598980147816816328840673409908402476688002018587057390992191724041869301500716607014252718163505939792527434499924371684290577594673212692587409375073429122276903216833276442315090082482574118667782129783704106609748105049695798070037290268229101947961699860733521613311085068881802786886793091687975716030230814292409627029585366138874319527046979411551273454175669317316990381089145877343040177488744453281255505073773874488261111587762782713007500676991141247426593915157150121380920650874865539853985507056098312079142090417354557385473407856566138007316237901843387313583958682209915908402360571506810099527445050490732277873666782688003856831981107478769470467937320671964684838898218974021438551238637245221378392757270125949799030241341250335808889075780537988216318849339491161551463388569118306744915124598589150521993375170303748373393019993905528820406278521666845709203247679543260344073501102849018859329073738512493446055611889497518385819233411632875794359150035477533196558585756777450499314937533021813735775000875514407478849633597233466146281953666838167193005571783535573394984282885999673275054234745612132194801869904963864865172225813814183172818254469885185762479100812017152282250054387551398002587862432969187855037901498588337631008151946584711217841343512309606483319824944403739686207901206320896975662417341873064548857018301792193181774344128321015347163590987540274681670026962730178732292125350243212611961089039752871625353519865123076200825362528888096594225027799661494170876254466649104970570064035268764089231700705340385333384121772030893801736623238820107694888917037186133875367207728862638467943311569610864340869512257532632861231896576168818504079378125826914104023604408410679445089967180116020925515914509274870379316705467150683918882842219066294534541582772653214890202483074710666144796848831454389656835818601943735328006579220935568504957640332786626515712500562000171234258346615890245051843630896995088746590521056735339164027737208324436588451987078081671253358222453033958045917737122712873934917393187508206768073864711238052908398475865456092819258595597045397516309705788591770481363958819305585783945525401182148996897472324000926352458326535730856790360230474795417388166950135966390697739143583614649970227013186146316927109129074090172178460472676492391264670268816796031416090995725400262539464872537693662588812043609554854273972421709243296948431274041618045897594324861668878174491439927925339505504212302904954588319075480437535951518026495482133447101850857073485242979587224882553991931034078003145413278505369567410695533106354049816096489815617174666707331480238451923828147553467711771830491954614348326616675451503027047152381979857737716014968841692375720371300492238957184685450019522825447984717515235993833660554829829873976937540328047824697981434459137840445770404543970421157481650844608505680103158097300129280107955878090130128586734169022204971641526363825447002409903539309127577191548201548253075831978478457912390438350417940609227196021600615084847857620348478511168404438856749668637941996178112335134558973060994014801560803744199276490564039616491662574219994071377299280760463730771704913007894124671298513484914155041625569232440027476951396701079736120679138820209961277030363509963277240538589927917204683922136727306536375773089031756681837515007299136065496900038514384030487386657165986375724737450158425521650708891934609910989460543231999868523453123706904136198272082793672755020213844761689366496738573100802644772768810035413071602943509110052585819802541425836186276077267903150527790557813636809100052514739265075222354755821230255841994762004048009179427518436124445751386325276933222367087703034672506635867744956566122028083979865602513604953303583247445092303998090205438205359434944259052881727284956934202190170607341224832138262846507402739324220615516428438574025164012472008338927509801407696767562589447686855907130032576035460795699964571165994142574435597670089583952792874089456175225710041513457408812335126658822292945346983511479150448431237209841178502564508823971305788231900894860831557940696961383361842404489592620615355767250244646214609067536623191223901143975090682105026687482984076007216056611430980792713190086359714882690075296181100468871579555637727953047836488496315571742632794273918537478077293308172515657372436842994906410954970188254876741977999902270500162147316902451493835059402301258697667364876814029488376710174191342909906176638111915625188426919642205397929161195929448881042565002987794383869460985733373969647490677770201390241868042403253712833642176696117772261686702868720983117708543280556883275531736164133009196091819409663295931890661184294391471666649420036551556547197219773808949419282433930266202357300792074591253348340413916425575880612427441141011689790132920802759564354982235797520304948936872451775006125264782395651257503049851075994143211923617463637566144308668932276174197223685345369775453370835118748048090365574715332399942361515511727112786161823107278842661247022085519615793681556982407473797159064496127072366300236949334473651815464347183890321642731211666379765154227548456721323227585888419089218516135427682679053488989500196170515546832663114294503226915194941647436173551440409736282112568858748320216376225382151002858288656925946814705497586870042815405414413108960545604083849113515678780858861702966023825021124380713069175174066368751632449136512681037309329303439855393241247842285364262982382364496159610020071846516870867283551024166306863704541535768305317769084854301058133199529462280051407269915034717957141285888511123300118962527464670938783239254497989425732387968183828106087833914955538953975463312151235174678466628492725213192443573560542358049301873772501441487802700072418492911548528651042934112799306400400568499725264262332490567833899010257933920968773962432273303853680337338991046540612037386721178352092555648278906952064922086968375960831369531283679039891523481193840560577045023959260641344862073158278021110780146214249098662047689009035661737987347034486315196039341506169739124406991523925440667877125216199724488002180518919449016599703862273511764882557764452826472749366436155529056874642967473488756073671024244877510057080949571042818108408921717488959174272190061486790095569502682346517474255887713315458077956761383483700775235774562733589748574903467217607008529552211159176888044893425780244729877453027510633357963591902473978612350970288737146946891354431149565874823804714324692252229356110209457977435963504352573528216804769812656082005659962469822072420460299558370870386610810738976375958392735611440170193283778828622300523010766270258110253490204293286770868173193190356669441487702810037082918821566900562191142130292737296793252520972172960041336996140651702007975405030709052057823543541107091737879573648795099510749080211391597502075847760720229624613934468445081564482583850366960231446468265621414772884958402037909124839225598330981195924955012403549954849552624398253097472216413124239167345205677653934384357437988250802496801202149678662335724435582493937123055104324096436328097944178203525011148617129798562905271313068379573028722639593316830794068676060230436868485528946335147263655171389195513770480843297353034886344698846576776424547954947799759586661032364320906707799906112017393326305027330939169478524321812648157924477383469578430616185537937640300855895676882878919947551004290452670192703246937651454411824118735475575360628124836879419785112450992441210359396143668120879827022491300477782234899883234204350539305016773345042865648211247714717668205155865012431375610278378209688862614765355665544065989064574396907378808564117554197321356334149233009960642100067630231003106678081496585503489034120504894855718593768192138549230830306149792248153481895868332330609513598032146054168228799006611447919524925227257634478583356518951130984759777670211403189789007718851075240980683856673430575046666487510159229824896062920672240348535757091993399644936393370001451037759805439193773613076545517582913982948452719003388807871721825755520835344457599691533703793802103492326968266252625467452943717522789534069915081223112718302582949500981989631242567680034116537981169190722201484769040099291452318497381438412398912779822747066298841097481528106199127764027139322658959583887415643515896628984536145371046558055998866552375408719550891214520858905251446253857428267106895382171166053726598565339285651852197875035535322315390535001024744345558641783448795285726628154279230734837037063303313205178593207081942524706008709930354002427086742100770136669730155497152352810222425788191817671887616001082322803284583192318241114397445596447312391391819373491233595824094601742726598107488146838640748449869172020400807472046141773351837763655885974603901365005395928994067723581048875539737201676896241413523874002306246800366773354363685520748251936356992797611400151041012709017471773432499930418211985208829960016932718373021178163065593355481343770474939958190081358156281163228083883727260129659187351285706395963888950491554419214746531563065101169991042457566058915051172315634987521713322851493782076601425014403638345700789189033512635658046683445940688695014100931168952917226062037863485269470794058877110769077433873579859117238529470474213841795758599917428290464689899646483939116224817548495900585428012815602826165111629214910582896368901580863603050916825039281217031411807008951457168901723716951799001469690698374870424465040734546763610947239973150587003595664941080311887200862343536134351376749014540995522570689448825549983982673630402772423207873943253144250388968745871589797485649178486180863616573533033033711705997282590417655804737790725947909731406003649854546311497857491896165472188375933881865839074011215449094707226440447107906261843478652836815095175686252884980292359234883781916685175412253650889837263774018155521747352392920007404134689732312268404267260737259107375788929120324779372940155617370396393761897712790147736258607330010552031790108057474246710809552517610425538566889209168489660161250272645168238864633930513998779953843363798970781737790334074576511279198194691854038499301160401075095917138917898786972780193700295781695855820322992837956047078418048295462570639777352660381362095565146756940237211006835106712447748321124946163726974069574755810195100083564218760842597239227221947485772951047415454525760903908264703767954219488327050234964316863943378419429134008784437900381389976057580683731212864739036893213753239955160015114691284953145032634869012822228388731821551682614137732188065939982762480478497303773280704038349996831946503321868290088514584318487556313096091466761481439358493759906209409703999314212688878312070561708013874781578083464517051394383143601866467011812927359166633390034934926967783043193744716547892218241763777384943115681617787122011559725796065125473177096688123038743934522419128065280153333126224243731673660163386775410597282820035426092031194463519695861123208223041225721430789489525363059152758688517991633575827018935553245553156312505059848920860042092476301553936412297145241836808408027783098988527761280418899043564154892625263978470707654804122785777004610543105720467512339999161759991240165880592420263509709391382548746256784977355418259062328969422945070492544812846890084530355869871473196005195614210029841867022569367746146263226366378301908082072847431611202776015706327863149546732087172890284077354495793180201135281874638623241936871613262887473956289271494958443118491811094334260758776482849430184273641055984000868943257217254985706319552331663760478176385210241480963206550160065610559204413025521026774864875274225892788363383288813441941613150215570814889980441486508968768300153506785164233343571148724262170353186860564395098878900259532429369728850104185553047073144448464979345108583991475912212100937553488135337888681646597498695859969191964864395134545377201101371941436883905186621981715618715038202592705396590299363102915502821875929968406306733289142516523442337998419888584038900188555683255286613296249187966584442196029801195206453438464291725973588619227473464428448077209656319168840221645939827309226395686981586314551978679679802827646707567230034426604385478778121623690102271280498706139044359384760439097379263285292255653931173698300307458157221147229872994868853955374297843050292941994718096414676832827985500396648371481163022812510269222575675790553680967189662384510200979782053665350710262453908057674791611205871067297962200159261644974218343516474426668035011683401658642395662395495580092424092831701703710464115478805473804479259536221270516546640565179330487456607038086050778054759068701702941602397698716167745599280434423486355583580721014422613388975922359508813449331156568725480905006520365850528044468504623986164535007526363949747136584990902178246936814228221648487985828833849260683949793024541025215574600293148254739210340066087299571174668449023519673167500725973216499317166459686221902831661045517164468361530486673683745332194153924036613877062929634857549989257620655953095142174556288635978256845380132455352137285101551586478364905536499195012092590118808781017727989345946048873939760365391176105406953140583547739426678195099229737856857303529724587960704618301361837547151465561059703712851773139961358671938443559242122974674728372964973275623182290061466611672048631214193303849473807295385143974740064061590593658276548748817983689173001192869003649078184032964647743781890361290396576080533320973993357569123017038556092534038839192117419951189129219282212824035313419186573601895212855489348329900093172488325921994759153841407978663694364524435709355347083613030543617507053429236650598402039684391283807757470718249123708200083833375379075478115487471513869491511628229328974429945024447030041969003318684522896793110579732692820877041664443781500696696895819067149950902468513385429531064634317015441162672762632326998263242920477345725858953565947690032372703077757462465176627023230517982611162005502078147196426891563337894439341030942511860960113736390833859420128448684624431051802698609839447357758823689489534802379443012350117236411946586869482208894287696162956714083184482010864447255328123761831137522621553896560225256523828521863875859764982454109316268731155892829121726518905163540975849040037290894216565664549216710962940505721628293091011003772328741279725528261961125520268931510183551676502101981704579573209289156238036629002108542657019454885609811055138030657387749795616812286007066143072221877476469815682595928052990878132385091026068750187563528249330842526630578807920288935353795445305921144267003308294894511742581470652117721007449552070241139752067057645059733010432013294916581990053720820926982855561371166516467505714624282294023412797556718301689611297522283733619722645304803395705119101444222874138176496372758251892084202838711671357373222358991329525411013928131950601559276485570238263412091750145111314653704483782202410713285001010264367729706927756602528906452763857400495768218845360538093786841271716330020684273988077010793174537756479349855623878668559668302217845258171519961176268852003885037003402781828062003314196887809004036939785323787640018271285964586884571834480926976253395704231080562310329747894590793728329927630830110047350034435600512659782537588163840393382684964778967768584433285263728204609411958757639283293380164745598563056289183183513810397233048450056321140953481353776462968711399379610300229255762764183403390485154745421189185421925015193980902439708656074883800043095575719075548777615667211269423790241510141902495065672490159787171577728853544443882427883810673115180722479375884925367838121997171988065376205857467365731626061886550723448836093197023927519807462994837859532488952315869933993058966364709757967267398000477613235806690967991323288523772880933173545182775898181296592984640636330132950829804957574363821820723191889862692063616557072239861799845318989020286747155693947132611875543842769606982727345449186575832595151623156108205391741076716649103590879559872697202696108059949386025798354058960004995326566574828437526830059504252926095252253178446395530272921183970380854323672102276758401680145301331071036372310967978255959480076038162972476134417452253479896182076545400955453927623911669048328693767341260682686729672179107303290654642748007376609053656573100373273101818674312769581649840506134809144123236524700700544948557053918113965272712384972388641986100284951763487912022380872230613011829716058004329105997901434505371051040706051580661342562533668836355355979563186496788654846209806678408398426615410234430575088411423192883834312051660086602776105788055177078329850572218491989251745137468628697193845384867927560035181820718699146767192094613149530109022260149151213765581631736169677707413973552412965838307671174796704722264924392106304648506789786179654652607661986214384295284152236434433783300967164047615722910667554831963738641556963708803158671668585492137328886451013124227863163699905837970003035549169902887913108120527113226938711221673439620606965243665916493174107663474495833759400072692157379696747366589748478532158903604243410775760944673945272010574615836951625449649153237975390123052069222246542850174655041806780690315707823660877575845041902856995146716905368705299765468679382993995376589725632676059195558652580788293146094034342693081216131713817220851948769989213620292044746868244511596770387568068825178608863388950650494706591362023439940381231815744035898445137515332272828074971423336535593653336722988428374162173527233682504967450180103457775577086987827303113563783543667479258119361772856292011996592143855499629059203531545099207143034487263634030071184793770941533525058682158423778062620839877303450234033474431810905416180116648464272083733773869007843946352748909699759859214052785537852862592257417583584463946029080921252432656008356340365601179042609993580131166042461962124227481446596933528595381212046828500207822488514787318954474989487809330361651377400675675633833779709512885473718190966184555302899284679065944213517290816829660672577374554398160299535837307960250269379464492947113032841367100938392419383487755861039320913365002193769195537001381542895763033714020140181667564939048954928963663238072395526608184196977604555655308839088308959506819411664358955595814429830762192897730810416260711987816399718753069021686248953795436197391111178379984744569318038076603990744089205915947071029430430920024471049305186240979455541391073519506361618565382091258028798774205704812414871916627355246433558879683925383743656433522641235720311231482853828211369337448954893868591691139192553499154185631763783111965535289613168366484317317448863027703642487512523974210589730162426869852660214827862123711356307653519913493922009785512454562806789343419860113375513923836247760839288164245760200386929987216918288714646620466418809265847798622735254341763048521769438540053831786316936671752410381612655846255099541138507664521074600146374823552097023018512842964772070300595470679746308208245377128000464884684143418147750984866990196294630975193873462408650847387399774180464838242593232903938458940879832784325607417537499142627037190572243210216931853651221108219033842680242539097487806083232501604480118063840546040090153182633835823533891473412682926039982038753209228576151474857698956794853582481802523089497287778194262396007932085905686146386585562726838535710320058708370303635316034739740240947285406115800456535523345210010921793549157035712532189208046832476173138564388908468081374754986453359787479484925481173453408323169961077195099795385819136337804412095987469038492221376822167432694756039040444815808709009795537272146972780169909873552443239352072751915792509673635357455097612202154505512331904568291509691171853524433993094585801566845686615139171055601110123290994980381985686060341626140000773498333781455107790377070102651902892648627799158823671784819210888830295161774429405067294031772718153036780130120813944071628748965995286889991403879432938716692490179009097455148566750823237639674683854514105296732651865489094562534622493049128732786677661314660369261649121515994551648608564208163307675290552814129603486340120784646388090311603396701768278650318804226685372549853214856076570806870816139717732734972800456852466222288109217216782609715170776020471881562101369625915203271913190939777073057532830695606650132857944238661288283790470273159475407028713566701797945940040873801613052613431466847401057272468508007598047581180425863506666429656124419082871121435474581160206460429283020950945584068219243979579995450198378048140478050698257342119575352755330826084317694269586150554128747642333784840885715142134518627371725426667179757555810959926681852648540845495584481570070192167535442129917280956865700726668060453171830709672302812809017482647836190871488254659594746765534280842287874602967561900552665376748644550241993823806623909673651118452395454831014125175750892886095414746277322473506236551450047434694419021203962369566587939886023686165324205058148821215381455619281628985349726159282640698088075862098421400551144820516180154937613124346897869167397781679473122347867278352988825198036820200546830121853006151648654197974137721083955973663291775533040941811346098088240884099470370702655648265385936328086515632189116135765816734168078318617618707883021342218824760906451232675171416925853926193862269740018781006424425508371319854194739585845832734873113026552435622297599200425670281404267545292315098877797502783539715239234630768203445710454116757823309442224316315122009042356849616673077095158142494895269204675817918301288674305392598911753728020375612798181926646562011174619753710106250709631727613103249388444795644869454710910012467321180976368797080545016988904622434382182805690937936243899545218118789805561791051512612933063283667309207754801177769720722510635883795473547640122061599600455911256027318274634069534339056999361767524261185783819490929600960759237340607999450580272542232814475648300303606662540214558999690090023943377332207460026528132957510454581680769715896225449113806471116785141281884315693897768638174510094731849671285965212451651093654175780236474006946390305074568711007459296057345873126058470526627653097864309663332199082554926465664786068121843607345517647248984597875643947525011379922283781800370328731121592327036080696266179584513772909230396092040455946891389924739306569674831346578775977866279679905672099417703800066480884242896306368124633141903244856705892094178887964777729359555978249854993157570039219363628266675952430001548331895008096165432935475121179918675725405634343650843411933171780011480810317571342036817296914066139672474836840861367478092570519324501402178424621902778136117568262837263809201156488404068740716909186280732278485818687841130526206802190533201252510325174915628146109358045695867077481139306621290488624435763127175073257746917822340416687066881082934168454174137623943067112214915338188504423203718215459720660015663985868692957852373333137444910709472360917166557359463468127947609925236716800676555642867429094438462502917938767069640286746037130306225362536714696690820271045454455502311651291637681033883355752374027706186359445546731133103944069447748600292386228659339699200076506937571173317218737771376487834070457663062042614162018831419197108373921353418496932704838361647278402546534211905677186811273978960119296359302074813496076350380038370915788664939997562051419431242654892752260326691164498471647922271753494967219070960717617525143185581577698022685469710145416719651670428387215053446137531071173868185636244813170136942847570530832144470700448082366891735802515693153745443593903102761264467833520496383133086722261664980179176201569940966068905486642594443784319719763350578379494719127996613764829031925450717372447034487432051303529768211920805146481339964080621335432114849352208900087377512304472659377254495829105305853087430458933832208480009002222546359222536355277888630893181661328536432212702788189042710194599420217189019663076408050241262823702739170047975172768494526724872308565529571367739007153098519394105822021085022755189987249626462597008265679175645793327419964564620374502685159858939576347829120757650360930418580336356782106013723751597983927026216731453955022071937553452237120831040825150122155065948522878024085965444802877379426032184785367390715912355606209395383803186899985031247465220912019449854762461594084068473637419017057082741288743214847276899700079930263686221781029380482621288826038431917611096052797163110410241240245178143013479326057859845089811293839680451127841618136601739463953019215778622608273909992787065234127875426701138330501439400171653316093263974835424675099911745320352926817996460250391373229461076752103995354144859420724699808113582164867758985212139831493408758702765840826721752674574102807533955164634717104733585470809703076019843337688543731533515616774668309060985676140518100920728051932576708845444426686191966542485126715972133250489387001668375782263456496638713351615402921317452026998025215513296998034651724800986457106414473500544685973607562377702954911830986649050216782248175106706863872751055865012278912113083290125798194237256802041459219605972220568359995288984866924077945551321065697319613677310612618856823755246340395039181538157227716175979936799926141036419591089791493373557801370325594501908146295568354341131742032412808488413074890825312333006225740172618266362511426510116128008832561218823247799940408096895782156841258015953321527274474344052950877213733487494583078700907338448235990658866108859782236807291996695040781298477381959355692971257644739787417501873543044443454040373637121685018155605603680067451227879377313242282093216502374803412853977594500812165408423575297466784764333721829001148829896835283970829763100422249445328495896604185368261523309764528437421284819836063414425899566400909428898039828797446131023827957919410338938097949399155964871732081410557076317067264291790300408847420952116224486844792122643110894023981262516371865011715886936120053564088540413738199766317219235208954623197417827381004781670118696752533649315111580194426920396979849082622568628631400145948320128994449519149728196286337444050417935794298794483077073224942483222817119643363415424863641624160114094474743681464897738709726531243967765877017001039643386276587300926948652590804672752059472869629193356805596577494619031616239601872443333068278599996228726270558423181229717804866977182875910103753904680419817317020802512773296164068430038751389887410632030309047154609771990806018219473349379766600916220136231282732900150282277937995156950215105275380689014609954623333531541212523258463100961368464078415946071991830961164205524844023835954752253185516600117795720176761545676766372575044257469477023713288029833112134068262554195145689031006907903151926822782385791387871361797562158501208581111339363894079059412196445914472869905655242293469995443945153353490159332095809752207143945915044688629139855146883776531368972344597316239344148452645486567062042833553169751449749589620858158294110927118317365393281362736976833423372570775354657683294757493928953384074235596515014121846833110402318541710999485851433593152692888504042349111218806504824205476404555705243700793941826319913103845296057076995611572283194424676870540951947480794243597724468202442263179006466524588647372537609406681842852548967392025266177049329699011183705331016393306372677603414568901223222962427191999595186721608745983203697867346881333992965564465490966938508518326805690343021178885647558379576990018283702826562941280388109416957423465451783461654933522975544330708010857410416588795347777830991932663155650963298633643505154774853193391776744096293882994286038332735616341492248834787483389052892532530976778246037975644473171846202936696742550144798770304248727950765036453586408480135774612860281347907029587834202342860333296460567102955296269619815139512022748006382491488853584881238423226642325238546708514905453396086680379516974251497870735420248624086637264176728148576175855151314578060194322981934519506922836659189724206516313686976631298994299229550586262178234627376515392220026255911363149696239275625824181427184761818243138683343177661429341191567581669915137681298211282648323756977355726724310536689150026140940628557041893184503877172004150297347634412909561569954649359100687391887279820053819710556348293310643998693404157780400687040105114435095057927155605340906532837023556990999860940973114352288907681971021676229194236384492402689554198238257073714949236799243313598123573131917093601288856543196311424262100085890787778357078375198664405848659050582842436550738189216013029302128754942524082854065100654623227384105066827139271482596444484917855230089260756418456843388057298808096071804279631128565285706822421096827477219273684502775984848541489232928163267944854094130359434606836579530100637211930580987382728785828464163899271344279113847394905332050198208287791906937855322707745624702870735150748954368002829332773086275262267314288555281527167197413864617247597142537077739328380067676129173315410302664808405891096151975772977139397398634925435818428941979173122879075576227387700815635199338030535167219263576846184156656661657211115218249183788690776980120599900021841281893082216624886133569280327876907307568002127257965224772707576926562547234573437151145612483530453351871942962916804728437060515195948432492728400763825686829381600540884657419250720161186503930181416142091205177780944464308412866959045822521672186985052726886860394539878571377503290548414439565170836902307685010986840298440258489943384086811608237134294573438828624730594538979694960342186383266863532375549288658997308899526000667237767828347551771294872223743003665050800537194061842026859336515696674676058397406350152892103524342397074296321860450266273212302551985464309916550819266011715376552759916851940835481200012503161047011337142592503249733509091617254628713736335667251624911798972570828192337779924549742097164326018606394509128644427835069409348103011854740706712737232626557864754048171786632271847027828445551599845824308857151603619130288059478508101721000568982058758255917162363363250408470054394697673954162770576135471461737971103115187477829666082545169950915573976997362863361435566962229144773644896236642033307872479184245305776544588746327518659939764475584742451635554391694918340667834474649892322743846743388723456917851977287653806134583901536402329076419103956433404557198904388818758247040077948192314700016549612342016361676904327743422404657307330585618546228648461117405035822187137090864048173149157857685884308102409959156456696384088051487924728245227120423365556805392376936945559302021415736708897845329297795159061808035528474644967168816806763339043190664161032441855052112431010614335414960112983092386437672008553051247231547328933821835034509787559937865112083359166715714279064059954389975411069098468943610344353041179061889067682540694841069634167320324123233478892193479392086790979519595836096547620000136462840671444142726788473983773163930497115287480719574934937300899684520035209347317157589393571297528598017222699297723607462799424743791792623581352219180714827937847026684951281640902183538114012136613831649950605312916091411304427023500371890542263155856562470607522903777210958709399244977147993885222091084017814389905313231234716646485650578116725526494754884313774915531919108671505581501320838347962053342620880355401819678271723553527134359609096136747425168258984378962641094702769158181650185009785353779391757002547575476018950453197297672114430156353623735012438261999073403452213507063842353123185325682683943820460392532576440383306419681243010465403764170215024589219748829576637655397323035083706557702226753940656136392413658550953816295586531632205294566444480339280759335179037577546197617848452299859297104932118653300830687584094037911187978679416671311855299502329165458653861054058457015600117691032590368208914684099138671327319408890724074337255749978030496865804788769419109597556864669382416180806508492730077211813533491756868001248845245715781415719381235884587041128380586898702430501834364904715150576821539095027779536174727512946470075428843813635928406075125132676697183517592364193946780554143343511149040141478636925604706357259656834441166438317348338543041559115595587374523098979026173020205902077622962018258426320357140113371200476368755878171576478079760097485347339767041525027714341270852635243438873783992302619075245474558101060457502710777273745387430827402981238341427456584179747051967054713743375895816727887786826945202693912734542167077649070267868720464621858064820420755130632621571446224438220078845894327124903890982747981862430822074243508590908924968363626936519966976135970363634340332358881965762756292477856736037437509943622378683259308102937170923411820310778403359466790156362018901904622215927438345773320709040892799244540656076650680077514049283972763223571815572771262151425102961944832206967680434661283027817405300937635469969536662229766884291825673344715833686189717164795167781805876928921711454927489521968095208489554199699083932394134147157041894971172224963752684769764342594012568518181157330965121658722760650333294290677843244895383981317834509527776175874721990775437323302323942575134409684644930399363623984836813716531134117076178070315872646217356637985023678841007728516358022805629799995849213718158551647361244539772040951251694966167746692931361117380636497780295906377668214129126710648531656624511023888795578490142669202803996753913164831324070181759600481825670655680699449640842300536914271701162576440496306879707717785107382946505677443110787832380982660144238268674816897045620816912740341696126451156953405277232917585410362134940034184592181838017973097457279673723344408927590571369167469744743042554994142433171294830371643365100255393156511759206283172764633796354560837660751259302120816903991527004294131549969775071136435975110593153614322495584222123373704732277667984627941214798060878527400305563160770833038348177709737017759036315489186747538307955564311065323821514691855709910625933608404100050440713988744337584064033503902020111555912047593125506024560902764103147719499809626072944654473909814070021035054174878812310862456212668588339177619120868831908709172869082026514987632528553912909559036646195018605148846124880149081910386029945849716223118494554480045011636554079587325968172014447346437881656507519524724991135058559029467508057421688526549187118263205705787067689476190819299647148031397994842462380312557210131537477049148137212430557734882980270995823034862138680683667902094760582307312855019986402386128991727950431654558700347406448129751894109415705705509539388570079890715619817248202594714634168771071560092143813341007734440581596747810946808007071471535429144596245966669737032635792629999031749362445894211923365852661099096655216807159191910375682559125455807260580860352499255692445051115310880730983638034722068584625413136632610382450492435278502269300423800951272798143145623681021942051550655837706698634217569421558952858111680526915934151236944928106212716709003813464683952842020491285908718794506875222847350495244527895342619409672017053914829143081633258569515055513094890852951152590713798345462698807491064326154457060782632906004821385479004946840843386042824596204138512362155802081765004030115345275658217925722771445327405919120640388776505139595338590228059127983866588956139723043376181259726477986780887519436277829777734482579973284871479702740707433959064930993895647089883742543890842784458461702391983390748650780485207217560256925509028359575373814680796917350168646263843777403942661990816902670319249169204168325023335828401479198852782428292308716874691380027233298203900867537021227410577479763850336430835727243050063074792242635661096270308968517871899217776150040923542107567109096413044302336779404613956565085240823094422223837838201065463811681253074528186601462265866825443447767649090050184813045066740649167574503967080185620960615879776878504548867753588541433610891519331447259736110618182922155658691954293940442427918830588600117437439093862369731949859086207393003865525267973610584396546421153602838887589102531264133791342339964720663675474732708962788153474889036337394288901933906605265950221049472460768229918463150030914709713840150874093891228014003860721843710966550433256431318666508595597774202106566788093771478497486605082415844999016315025347367467780915941194828437295496243239489076813412513913510706290241900384594044274128558437960102073874875334343283901536301373210367012938638914352839927575131455723803785405601877152232730061769006095500587895021459374275042741584578362287508868432471902417631487282252095572464773956688011036543582233370392365415288306004066654000281826857158132368100816887920767813660793884553240528615790115624806972690475660916626101789130471665031997939731912514300399391490385726800089331829201026308051540894447296877653929214617421384793114998692031014083052474427123323869185023257832611613219212975692457605155320012125055059761113591635365935972872628301276018924367798012945333981488669234025327078936369859766920149783608628253215680205573174666766576224211563999592110717824334103785769158961397538065539405715971393588548230254132493382938529651565813754758197140998391035117249993725344640004210207625590150183718025746085799438822919634167719778026246380589693826192315378151633596210268319971091344187497004586213707030374863310909043348478968369929014920975883954995954196288750987541446744375776557180250177898901283134714585850212961422361513778062545744941327744601718330406308990526682891993674883060172417348983818521960276195849772196786441475075661536143251271245958757682066243940310607631052024367185358342599233117529067771546253220288163584280597482092810179785315205132502141129634848382700942875593946067832726703553838507665620071812935827002020831257298544335698465257706797207500750989085618563756162783207115267610682903791623422816382806318453905818558317788699369835503239938775032168398700590094879151653626495544342098516851880457974076822137641625063544925728276262150801151092905828816469240001292731141269001871618076211608654636635740075233896976172404090590714554946050251625795997957413682881587290238394606408135610075859917805821364762781578597737422285439860321348691625821578680445713381169960885966845319332878592465489544240844524413542819886757300763185577231621985967029193166920311570286859711920337547565367745946040079372432236230484352727788027779880332859551934125860226924483415093777497459003727382551112562195275015368943898328795034909887764250722532060649779532703767409896150111246358229170085210425348319736037835279280747684203882719795389389806429942746359399659465390110684186127993423977796183624252465727472115219670264495831839902466361447263648705775948089070440435887381765066026771181700192996912311991729616656619974468081437064505589503349302050660931254553661694171790095820162902179779573876963396227873161585692382098000154131600242306569822764394238022575769937586932167833569763092328160839399454668046844952635963578387769371494927831628721797776633720006482915061113814340199288229336835541953725386413523503911372160733894967008475530254824711780281937972144395350804429488605592035794148474963099738587439890224848764281082200188339164547163234549694182346649607633794100586714035782569192419803349009266196930067545418925315753717596014614494970879060714177440901579544157944887719191462748528094243193058572226062596665481475514760209415726858957876217867868015987996211335782108595857160243548820241404908554467181457504149715957326039610360031595422848780627732979106362509831709806650648908287174987585044707412019123196170646066911836257304488002123928127723744072091882189437184950184506540542320727739780419065800792744134826152116423957416778197469332000749711382808385278550253646391721361420605802236511899511080855842273511053343124416935665649125531902732010343544540153905081814762856362523242436148612397995325189853192082053704340312379556186012709537668408895014787337509983286021639181887400963749946345480962818279366458977724828902404215781901323246277296035406573889833273421860518601098625701905351594628938700940500213323843795814833763299619679525978103292838580469142818610044814143413752649114205131376413603382250406628085798439286599310035498431501284027301342368345662468719333115234726941515553168153282293661878878935321812772970245966417274838032310643785230856581797511726387688877678135958766864430263391236377755013846740965990731057976790656515924738702855942828557551276822080560561298791310368059117018940593936289975335719520163456375941113677329216581128665500468117069303007419209378342264188487782119525270469935592973168397254077860772342574271868428127559493011106163654981911270591720535766449261225815517643781829471117782193205365029739667680008001737281237285747736202091968335091473510898531876953193241227725667850322787925990327732760573461228226138178462191842562802414308499817976795833382370167067129722242896111980281350147067455761247538453470391997761960539425708038700749511082135403264136637564700806380357345163283260136378349821444371707907436577193357260626555784301100695856389342564625851912822785581504233608544340170138564701908723685425032733807342192065745617691722662881790112201000697555489442530610754937573318323899760474259522613924069895792580463478953831274331160013869943526833900750820798426701411549044445349166584190411735635556431648257999050950622770274216120537509666459842011025337069824238215156623595151406899836933470132566646508769820826211090610316585596140768565320535184627531493145575938398755262067490143906883422698351394652669025700806120230647484678883162108141777304290441274239179527460921780704519088537436773463997796177601128535242261070227781659201320964736798448794178847429252356473193609113617058437806365578580784726026489503307492397038230129147683838826513194826526944754307563211908409500299245081367554130131208327387614575260224840006361694105372954638795896044265964237637315349878890042066265927050591484225788469035011997658888535822124303104448396399295827724105626393101108045451737994452046450538278370230106025754236556004296719403931211965836362773161668657891899775670993113020778588445869563911061857055955039996257824496481389964160111352916436734782475296817055057068768892278431744274786087039713362345453822841907034477807979344392852482092469013986604620633771077750185121826881387094138347279932399727078889184742736277498116560892322034852273668717259151970854009262105202344952462252601194215469485333006780665642734887437491502516100568566223350196059900765126440186285139778889784578822127176953613709232643598221075690461487429600757472282609182219918520885973043796753456027744998696959492921190626767129997685899149517916867937986402550995616908730441184693056048388652674857000597800636933177278333345914866035265425179636787700766999604829535264246593472166845367320651564112833422113157437513688399969090467116209284051872431241884803759448781440007707784060635136677763390379460617340651447683047586921040577951026410894917731661697405160329355602900723254618833600527410918417898403422843748271912815172195821396200721350069815035278247380047145443673041931892409643850792528099299636788691884750971649997443900878266609597812694082016817282283873611987022877910624539873701725898215282559464089250830138126791672206173784173700130165599783921583717123541497409424295969682186660381191761036269993160046552298043921230554135882111954968847931926666569742660194774128653417395574100169802130543292829146588450616613615629613709829679199168623013433333149044117590191562141201150674373056253043535228916938097939512698107760927829598758715083882313032940117840903413028898445563325112638938976611692286112229837252076622060269617256133212705888342374536752770701692317447733206306642988343527875018029281123629179983342346165377244638354437358892390214465577261998211840288185216629598028162946783833402013894975476477446648794802426277613309740912301917297541585023999636141829956507407455457834590132035459080855424357699065580972931615135593592934962911236975627088526693604276837041561249006043771578847804673600470392296606455784276927026397136224480632213895922530384727612664137235913752422971415015960314300595705518388342337927310906994772340265679545546132495239673674258559477346450715955493601183622930585371226091750746344369871539953303142614731408444531899593145561179077377935072430410831392840703377633336459212042199280622431353535373924920627991820696165023960071109473505270718865480345027077361698425424628205518170463018268817639684059999259766933869581063389512964957311783086956145747842577710682823455069732809585051729621787976179198091604250610145383010968721687515030638392638833056747088662753685427062157835330493332661809242951224362396694728534806133371082799339068623445811567439651796822520711591979541312910389279214813276634212470436927382734999997793705728791535273874839442851216069760727587973781588308973623461744297461153030185964126484122631103971944796189802093412869551055428819286014714292370764298773781637884442398565539440786925406815043702199570043553778138003774077953365031379570437467870493233292374355817209402924266263823516630754479734605878281140896262421756246375189696484982536151415853091042298323955246993158728461525505989759677831892465368478476501830816767759158619648228788864682436614386583310299775250908616326076815441856803913379572384533842593905269379246726150251800094922216212656991506341793805175165903081326157111155428002923821249746952397267228809517608742371976848067892169613271370488583140242484954394099743501677534847150171993952363100789217663634502764989370418524033689685720455065290079160714354675224049763502691887632820656618397514848642640974102122716988402862648031646388745769459103589461926273814005932249566234627553295303463467426286048450792269090225158913050154548245605915163922386977947721483806861871187181469523289124817370174095562799868774398697964607186271638171067305071926705242430702128314434771191687697139643963641079210722522950292369004754779904894432045058500538719253891744575530755560083123311312320115056739431061524515271638223545741962861300156638030814759682204771182962703987221161410662177913933955350247915960432827646719160549466316850413998085194040563439841177361281860622999453642023095412833608275439003996294988971552859148072434545771101737351996003654239465489015389415877641957871285540452741280542788734256172560890054284123261050575704838768671897233221928551353951932109749369300323130632771893457572481857293012792078630450272500101400609651468657704031718539368868313204722227888554986680901255678175526108077831440831430053591194729833068666550390511026980796452085509733828704270143715460662931854281556736794345527845438801809390524532089337025839921199113451393780786901101749994678879702503986873850733343536353246475421003451313203678837233485124888152187836734606664380265114894942350375252145867382681503162313730085166900092846216198024900280044729748411339178034592984355287021424967747953097024503396623682827594660467895081833328636669265148549452209945457669348904063375753207737062118491488391372789388371746737845419528649280041824938459147651423655061925082105067657179846364976743937939857692020937057194761173424380765836315976054149068836852189872638087755784496407933109955979380325038752102804330692458590104896898278252957407069642649831291384742677371835235896111560356779676479136607797189382299815464501536279164765513909010370259958970032624992829139733136678941418875681783459827401158853123380311278474073989088871129481497614395367903745889624952716022094986981964063998897032249473736756214818047391833883744901799196710166544755590672276674820261383342687376761389144749784194847436675847490664647613228401519949774135523394925673815145030768451311608594443521018010525976337255503001680523764902678557034132079746519469296583463691306726043486641127557923248874412651874733470900063677413801077926031657160283227052759483129700297462275247597728265836939332059236629026017690348018336570186604777640040201697396113819109365957383490679283540101602413894109336758514931795822319079723518560936435994277815815170278182769213043361199799029407177547803863832113945668664099654883803980968969048565272911982576386128284495494127707550038129961922427861448279777785024539506772452481263448182412578741597594029302777336106417039941580716100275224703375983202990544977627301761679559286779073270005931090463589689772259612187572728029792933399755458824716360578183446797027495101458228380336608526094378883450106931044604097306781613344189172756724990352119596490628646948838992652407758561911789481164261647082610831793439930216512884160462492699514831267701570380778982091004322490710648379912911921807605003144268843644022656509820995632002454184557227934217122437348364515841458169199815971552214517813848698382067008037670988257085231438056052817692714740022272433942143108465922837571543008840434211719499626789592689179143318224607798751718470294022672033985025835772466009293509201379857151991668663290298469949494503268554008601203279491134782311971474882162015320080088696515086470568499878400855756285398242443279828910943771430459358272398428485382155865038179511808622352903378123049539510985984331878699210838399043693296121619313257708635722802495473274821648057238679570429299001214043983980398099488686367465238871791037955873334439885059125332955331477927391666894099854431405830685271382951110337308879124258901737659190141788561845242183205288150856472905691876124263724441657429614631718951221285788669095341372445459568943969270064361185769952160341317840719659054079685110181759089076576115419100724840950538081741381123410555851479485693081937439848222753985276494101283792783635577492098522116133611452326888081225492667363469706624626860166231275923427870849596981952906334881814660952529299392857041482539407002988771942547916642092708072710144887881185422558175919556846602855076064566530922157048442515777947994331832034445980718474027213776648511105900296103855070873636817483717240564067104385645049523346760941262061870653649246585486363080473738061747987330561761520391353571125263131829090674139943120079371158060835916901034570733146567773846043126839198976193113728289414236965131375278477349816686231092458067720878187941959421322381453680067008850047874437058665295644031332459285221090131554727400055358258890980687508213623836417425867870389667977418965972165530574758472662531100524954579724974599641765465317804423129237910478834207720167855169715436521745988099653192196182764855028071212968245690859676137594385015229252921376445686466466671447598845005990955785615424207403980279730040421406743987572725236357040545996027057460536453365944645314143107687711333113582245129548046327393886276059640679149603632900835821599015934258087795955890084959841387857037785691582730150521183557572279892067376193085466399074746884466748224135540472097401867529494223463890863195172275288955137856472194613363310131638560041443499107314240778868405346869447515716196158468218388652032943516645916107736143986681773890851471984227110896053981550239571299829173187761350851601349535089199080850775987522158570338457282118510365052587560881679736499998999893451309335376162742569406988324854538427333831513419113282106676954018396786634910489550707657492216141538648892200059724959094908933686232643583429299882717202020199743755429595886902444798832490292428375754574308645639658351940603667546460414933724275340315412616778183707193811966899507729322311303936320854976733118748335708355115848337088835249008447110154604921840519464095685308171778314317819681895192216636030707737236003532427269281361006132997010708640457257594580133863163920139556835602850955576810913265089234387756691250384581178199093640927362297126213590241108023211472769709674678847094072385176656041586373455272243076374852083332530981270979819895698446920974006100755590921773538270798436030977476886233440289084684393234978434128245998571839502870710473459175321185964925116623032792682774182873190644161900908177718579744436703750089242317123994252489198953031672250286925222862640072155471883776022075011050286734253639377922842329270232830123538778490951261654583201834438024016055666716914110882368346273976987331129594908848124363759224249926609127047497925827668056310453076038189638507923508409131015869069418901076155064052498190948395367270061304273247794804398479083543271039777861283635360726444979587997865835401298602050462771894305803894507408526026974245481909533853556594902914154633702221932346295984705090594109660873070462924382619539392452325173119599658867450703876137303170483688766740070005304379360231265673547620387362275959426093985334950893450827549713146121942132719747834012211673227384665498177273302148957937529567430750881754200837467704904770883264358211610837540089208513859655929299580356875382553740134331248616090511304823609573316160362342236182099419522226084935279973338368828472110350230032427864420058089250503875286351557707782483683281648094294659727841499207235868181187952702524260468218933508723397034846024384966423269684841847592893320380907962632261370473305065459648199525453610750579013337074556508770239850374172243031564840112062394827670157581855582685407728575153764486150580035516656823336791609947464067088591920531424654340612564287980784069708057059781819990127272548962472889892788782365143324127714259978354152081328884407651243265663470756046183863268091114892971819607545793503788827063317908655808644767959114105059305463985327084257651131361921047984116228203459833503749033779749133986005466450719737249437990507738188805134162548238972887475753233561869482639853230976721180019023455343409438924228547009732753881911649189763235786345083188982016275496500550754353961295805760800369603969373096716404032821929337068582556168814292256723500390690420533348220092015297142354529323204196613380643751997423318739534929938062161665362555426026063157011643379047041715384766149478615693814682139249067147772646400202693711025873955528373845848060942776197234097788267802060132846254644234311176994765504881517285546134411467479428791450038567248599215357767735873204556895373860778783246171482426032303747023740259206359488857075692644731703611809794308730186642388065009524567895934716918434109924479197441828637400262867941042404642133622604550989964330269463869673014591216312731075615210133370632356676317415714944878953524493769761292645438588742171042747849223850560535327648323106478320527526523913723014692790393103642138687825601662106221578736565657191130592296299317976649197790950175340231095639080208659825299400505163491526956162225624436044468473802639463809517949995039673519606514702053573128748605928278296473365954071045534913901618976707820687444384206888622623176679167148060172873445990957280785877403993506307191163395479511125757660273254730960766011940097396116073628360711778974252043408716518333802591940392697459469142079496437097698290428245922303498889350657392968252404918498004538382045140182958130866449965025109922975410850613208663321384114700723301240843121729078958518385978853097827317780815504435895468697064021055473372422043677355961501863106284807644087698164565689507817669326915668893089454209056308034382702209634054847202928882846930129512575504064734523104483047842792564231956523566176325501476375539084355210442783247228375991862882134248186512317016643048264884938066966482528632360683957457763486129523506502861725630610013064372847642818867847848340585948843357823369066335634024670028867993620463203392537951665400183325457945888911488940079732519683972209496369344573796534248995019354595872527619745945780481521031095850306961917594740389719697693148470794235686932744727213119918727862327561673895509030363270826705563399483829551729652571002281050573281191418205375953168230813368755083039218978957083414852818982165036646943281516805319654581885103581199763227337208087345513511345388135083464464686385417879013310011743839070050366882378903300134650165546426013485030413806297990601501017511119301912399342296442754109182135582766033643360490635237342863442003287554656956936645257345779433782373473151713785091862025653317205033575469403840760727022636971906874635930056521438123432285674862463678635694830810988610364279994032920559889817799419494171458630441669368560537616263928947356406066014377408294261250782669393799080452551736997696400884247680368789222465227421656599554624813934544403274592090093269399688146847333789692154074034946658955550038848956138199613586211740810233600682451786117437098219501021275153439843486691717950894522996841022040288112773000853974047444374131734287710066852333222667236170575711660233405423104586895037484239351508320271598703267808520428782140972009171096380947540828788480303681535890634188320984019327526045002754666407372132936683567333873106340468563604431632416195736180219813634601416156115265443536570850787405154077831476863315826371898792638143889335298443047980176746067406814559813776699445147633364334177022113957503026192262954867632297947119700202325382531896781597011822483714536290842253327664932537576198986386184043843717493139251234602655712103340094230005078434372714008006397824124135739155427410176902197999981178534907485495870736112574626394456775717903127406754594901071389047148452426612841734291767135638692340514559355092690401983430883262768766181120035305500884952319514874956419589877086286455139103543451120774846637092794747132686530758456338049330292919792397670771719836022249264107514896597303392360274036362162512277807969447023841028678331009696485071496312253608510424396994303840345300520304281694784518907519069057555285410654711849508503840269345134170973881628694543193332858487467033248902910772197359207494482847473467590271688618110763674374151712230924165647749340639155836813184589652574993759573601498633206531671555166429796186549517063630091886671732676523937141387650810085386023414745509751021423753266247663809562268095888154656195384119449410358070124500637201698418356353041012931942693917864016608115775567415197416355434697966902313157002194006890681775840407306526837778722230321381044067507197382104056927209315531864274743998942818511219857856795578801822006032878249546672071541253712647226298807795809277619306013224268482729830275842577894262660917112295765226347013639664087081568766441747170783178445317301132045024070251950682267831712048126410376170732554636922857829852518522563680088297299569513814687108522768474494775923773985595450846056358622075790019571761202285326873400193967273376776716605787183835229982402182295728803870064472472778643915968891775215058733191336290290465674227704585419333541975371984556672193439145596221947157340354396071254958792933148038734438673602997569105032104578391980649002606679966239324709877846077446265746158914968624270704064760430929090546653135511366346867664967343237193824580445834488802599815176057959235861235652459699243389269732245601011310743517714502262003194065149437878273372416128042996241553835827140286362857417681570685249558908212655365779248342635846272593134984555337317011298400637651991570565705509175671682343306521515818310922428775725917990276713128265321518809780746190282457185098776018022871914127449813039345312319135983152801382046709615368670548341751620630191110536464431107556170716699480155275559661990201765434057309232890601080387374704695011208683170075191374757036987725339084583507048301175347459680152716234912642883525950578353505356619990156899752700301941745392561606883928446585923484838791094789479910261594455567553881152559776637687670479319258709131169157452091610511005253853463594979260794604079376672918848108609770254404057004108777756478029058956764997760830585542144252705317771509146080913927496948475666799113677468026366452596054303660833258744535695758890714570004686020724536033501741695849757686082270460116462802686420836424475611648645974240041420260933194891949675725711930762469382898091866959125688369382189305171560043180641304903075222392704418641268792988941903432581130620712465096178589229515112800148713636703368321833612388444316093487504722744410854773594288489332709416245295352976058939538087139087810160084739067016999783040949007418108871838908138009552304860359944721742872235604109177519989978577855822899729761749447494491330447603934175916145008837008161395772723394647215039386576112563593249881809737805685389775090835392830992104963106813085659750323467484243392701576153293554704160490477237600101350605829773178351637297133093705452941736389191279588115771804857542767481787768430492808895193503887804193399367663774126115683550861636431210522706653662786976685243786904036761875645725031515064572961310490343907562377433267326523058621166048133772954997166403148232350139600315242562687651131131672379019468615894763766071619445685739489825702065274922835724207495470039926907358116579685076652074203002584890475800172272931586181532577477967078930240574511897704665464185513755619146721007036147291463294337608924599282904101230892114943756475205964595296841705965834978000061251831523440868645043653061755982650781152689714898718056801106310391751166328052220005246911383939341143709266390678944195159642469703733107734090301568167805950364045436828753375500448485161896317870575004112782651012836788586591667561880258764267902467162840614993068218359168533493975988634791744135748207669190023308914014578222174294824537646672351000234044429387561019633699651113503011093830206504666668258536349042518866404303901293239346887140998257172871751727623136898354157188465378995605931927374832004412266921224001816045550775070470214245754822927914124202559139364192130705996940343993961187960312366290337719762724957733595393997458678893295675910498837516466823773555299616158448453986323566569759844371174093738353601369571156035012303160581857883955988011285357075656498333246756660429708132485095628446667806361660422403060039827960716248043655005925340253436175948278405246391764012140996981136017194239811690508672869460781618709428840724123351918979881535835820545626410140680225976446856250438600648512500105808149142078254948322949458741737065760630839951908411463425238637411088352394521283306238908759957514432429990253962401676815102822864961746067231264345304985035060901148305359757471736360056848164300952661128305891163660148419460810736269743682322018347696732954223672349081567228756930788347611331240741078170619179315400403534353625333847907719678134765291641230483588414795961864389820842483564257154019362522174498892705635341258254462132703407725346555852358374443616427850082820031822209870368871005368781582377564806039182112816295166454640440672229873057070361228513205230351742114345159689041894454355837260451832049050416566736526266819364700322526290017975017556993967636490743133903266199462770570904842341782133376043076054014626222565219474110421187128713341607682923827372004945987872594932692679623241972512813512821016668150100012654625991792583462110379721507567088524636157310599269634638462704035227541687527654216433740988868780540845205623968283157038262974547662237712882662950536535537865354169578169543929055448968622509959239614000627161275023590222139651088776447354275616594572365195141191895551386071588562017512958316238383466126999805018807291387262871943603820898767576441451070732696959725152334030994017865488939487194918046205872750190783191805994241880038468351609147809966822117371792290715093243034117164583786515543360581528451343343093591965652659127154484496938709921742105677547325955670582584619131669505943184809325568836798090135826454367740070240973540315461882967128213798310512952511226868354770567588633388030922447247765756004782775727306564580440247062458915241104064231539899341325031088693622548652227636810633634355779759910322091676593291184323270535258797779910072364144245293299633430183431144445807158435718825305869744549376976642313599956517732128389050169888584133415772426848859880664147953455336685311631922438031031984552264179231970938088446804765117497194492021500054867576742620961822460224511339595787111554954806428270305835861929841429029969649341190736360053471174403176597383367204980567713039117156211416244332180324483008558425881786060298784997677610730725551045028592176484148244941688829534911755955263226613834379501820607537751991464609193297980167216329297291613856074748890298274392277266520306003149560817939823733418102691236840059334751016613448559829346200310013709798254875693846409355170966167868510930285020514741063542712767019672030628885954968705572276818791051804835727670652316992641289666612104690562471449658396940473485941343953831929038062496577703784726074783267380994422294966370189117743533123748257128158069256872456928784843426709257366670942652360257322252335353991930140912467787829233188300112738888710680156913607665581199376742291611096024011065783835737229770562428432782756605702339990809823218868975251062642270277934812143178255765225682508647409475385985278137475509778778081429878468214274594470628053496133537526101294799742563304020366023887964014031992549033916655102065545757690869916608572052316385740171831742751530658895223944934154567711496055684082553802190716692377012309651284540509369488738008761731560993777577733751262171015115666624394862468566580742718801974478960746338818111043674107268123727316037209750169279821490114704917675767787718044864136694970907055616620831531866636707312739393169354454692552677309755545323847868187000806840002537376615298179673524660802594607362849348534330748899595428048673001154832005575048918484747613065750159674236375593857592281069955791559481137458891679260808204245392070831967707030565767824215931259439886958807384397654012547737534538496267805047257731527826490462254205089483941257818973734353247963916100647794129501172839456055912644363193510957733676032636980473147854435835493532642213731979914177565710453599279212137823632451216432319917780721689294168645224342672637597753452662235032619950491696452793908764327123178122644947378184594069415654712012630448182722181170571366029229734616914834374683874697934036367625441232180988436473404395748792291414426748708426654115477342799911468119956952778785838990380104536333973462628371392283583276042353287028985764979774838156386712939916279718033628245699051697291555789221518626937340110011893370813859265300925370087142593833011060321392545400462925809183516845522175389233873455174031904372698823482082594806128130541938313130647410386659275659044430565223014722670990342327387815535565653757049968442800705654867456430310473011799332775914078856059389842962762184726573964384527937838650833323606338922294946271024074271968966007769362714865147542989552887162856480165722017782509932518714933809476666336091253190256360519525929778001904204473239548002185098140180645590126513407143834263120967624594659204687596483282483917482342742308304487830186587396763889314856880659834955863106683367592732349675123909821354223288455870815322192415278613581533446045069335540567651146721608960173269471300414367084010009662232505413682396578423131979109860280963393830958617985539062338407157721688776301199218818731836968185720367422031020228563757000287155661195827536518438117840918167703049434100360142281504180684986149149081314541378767169970752999726709166012590141127728674243689826563714828095819332353338036976305366734656399933724214348672632682124927332687315792215295105357997193337575676044588115116086730714935810661395399109386116012086169870580202957419004045234845556204998130077591883062387329146694163065096132860882905801541671419805488594715637787024745825795246112064150456693276590206845613880233014932779615722796218370454714722488422080444429445468112012847675473538830563703092100755379584636100016086466765635135640180537687290857649405949915463173647474983452327405229700551394602266542607662666548186806093345033249245351089378202141433912848199353321032616379251005400511203253811633303754238558712656209540605957156102759991934939100319372432743874461508159329911711731216806317015413679412385141060953367475832252657222210013037070554783050848683978946214301449610213529701129003539114022142978515453275329440604357111300957722703245752607303543712972858639270209484108238852055531326835697715634130470556679948716064396806911363827552116178539366442796372723216772811790785434279162247729050271044262901779441316230930065330287241755815899006428822469029902649162926274966787608897716927018021209267607691108132846025496946882670691207092059767003687601360856915452672290390719527854857682477526360041022734009364872032328069643899627001694245188323262134449116223273119327941692916036439172836546594370395260051492564693713449832257563860909658662008983043959046283663130344681390464620044501684417259735403471651056948036960812682053503877649431234381559825630551730062355578876879683363501575026098588213454870841922668231033674453562606489990657362411617895662114194777746394694885335317509746375928764332193810324216419500953932898418194393983442675125358030717597352848709134016202709222230217614207657375064775405757075646641647117254736890247529930535240478990524312237083140663417543538852514163550597643389964494453730211773189513723823293340474192840921220570604534649570006613129404392102924571780806014331293461158291563553081670947397137743055218839693157868736445529918728495123598135148632477583341092320128955868937520303423421852127506923719236235317046040391550835979849017893165745016542322659290821109623740318729376987054833081174939903916493116495897106958260856146850214203710069129517041008562785615897480982767814726773650629823988910223109227573979328581148190554161480635311807858094942556080549344632519682802362531057859865911201235099376804159782929503088404621393298690520563939704129961622819559002887875923772527608922358689763131011724303045915105205095740943261435025835432158296222705651064720408842220596898284117809042286003218218239892232789531033493331264186576295661973012275261889597777649923154292256785493348040265284670824311182752665134910267709009269622651502146273686991157912579377664224128642720461721339975329403305995700013335734339863621472129721040320520501617247575466337200139074800302170687507390452954506914038184345351304834010827685650047408419969097884431726565850234299013732843492201840043063274518227825128980435543117002325964358500491721779222597839338407888787240554439260026227014466744535488956080314748298428398151462388611348133549859795613499291567001904118802890250617121114592717421071616148489911583150532087329179486645653368169892792764904906088460981578218338856611622455164943549590718802352715735355485239662062455359199591951768626006822144159363835426629996289550458997388477932947837378736946196299117183780483319976794350714134150991880554301915335320290941844049181252326220610166821246794017818969707345605806026273222389793695704116309617374591910252927963819614226978958685464650956846706485714798187043794822525753056758656549975096778496216609471720224738305967143540189792651685581374317956759247347220763986128216610281837362521031306784735895489384885951251305732204229653411091667568208036096295673567584815122802192271800521539514814386142709537531144043003400754585341606008533318297582849280913157680862402836543607725592254642836864887509917589050232830835178025701922713731341884865943168378831460704217468437510658621287853246061264040129536954430827769516355286725740127469365105431878595285517246417467886341262509144847504769308781476488329729962407276429439665388527825815940992125705248340884664898548758336722343067913804689462980307088982808549724571082925004868718582365160786238301923993928112478970575536193920546753389893636977646445785860521224464407888050067301703029628803265396400648086893556851511936911120470119680350834969156626981663994123691503919071251488806144571839228015200708695317072183315241276698463272106071970264203881356932633317982302398345940654478492086953503412091711225381245236221789124344482601979661330801232026001592936522230287668471875748033501845623307871960755115221026175019140909638060531869923554435276073429131516407184134770358313849602093868486962478456292111267980264973811340071269731063536432090574843231049633543498151070549637801313145289086024338518641489994358661303740306530390338524226368061606716883307721275474157509628114979566047140842700056749768891780145028396270192816401015630496122376759382297207475848315090021573404649148772385723249818359864697078900314433064126350465693940956676515731601766786095664033029711883813510695686266580503461547217766321591937796426403980484368441766569816241711335960170674987855843561080450052110141230679876778139877088220283086729026503486240512426191889167843526481165005640339270855700558360919839575826832100503248153154453863197169127307759507669563473052106678724174475566676095229727093968156933453249362354356201372670071113063490718062246166832792975613594154310624970945563583689140464849660926335677418329047579450308911422995966516354981491088432371689412760009507015607169133324003664978745818324538794331067214282175975463866859152517529396754699606379778539921554631256178190549963767428822825815331370362854747812146096846833180831639043237129340157205707963403494039529261852172416465349741413111361479112445192501907374118273435411275904985463146274846396142075579381843991298100536939169756111782093772934623010492949344038670425927125067742873224906556871661192772233343188886498326461279909240698447359318554358558926463895657550449075710197559015822627519613692971956454571377194101916781899538947158141900382909344916496167683912602060286836920994733272738192292767067460560424192732997380207649874408172551349156587423052905806062147450861340691155676260393315996481661043458440986572768361168562065957666318168443826945156238235964485206780862900563814376762284516293325814771461589397313478013343178040209609966224209406815163133102391756845369313283965101954048288925697313893463931170965833219505543936277364295982482828293826063235268069008559460371850854908519163116652423693181061897388750724297748917291197708220809936398484793044006303374700151972750941265141628055627102972184348795767827822163606988359762398491035997063670151001617542959040175338184852413288145691918347813231822711279382391292328486928943298773082992856978613617473806407219611040446228917748777944900763873428234467807759056860195726612011115768760856134079619161406855516361595295741129884011765440804063559853422707472604590309159857503309866720656331007176112029357331153290916521601906013792392787221754308641220228536995723961008827556608066323573469041253718994973716521298632151259344389037915932478626361070562262513215523568898126028717907870820790641856204395746054986537854708509975253580433130791852554396884827124639586354083527473816048980367176634621682963694324023267281772967540762025837165924296669101441760443698249469662587118958769403660908966392910510218429159939327619012555200193599067563140806028583114904816339479846113907371039240086915651854341483685108095595497220536250348898960046925489625144387624557957463029915965763074766423479778044913320996381832314228586620495200889775265690010717434049912596696744511415975867634113942910527080780180293529106723017239341937757166035203524533318257991221401766179313673014530749373081397247828330372873364529544053591465013984320274516083806779503817416295774299272011284791053676648652474197108437782315089603041536759904362518950394880925203410295490434257091480848702846019062818489309683761955446865036960435964640460719687252555124510811840614531961385412901479819777940856911418137747487067876812108020117850414343490674119166526965998213785660191652557447071414194206019774231869893259239593244984619160824201895015371716334996034293095770716751347672569774517125552105195423550844389428027689052373008807186750324077397421793197787571061483948188113205973623852715500054310805555876371926128605118530153272943962058342573162699413928222146561439617858292497132684320612413865989978869281910861237149813849121911110230879547105952105870373387655936182203183357967794278995678803609496855094711427975047439492216918741627383693444435532326724791042859924460818303243588702335418400892696252913673588920640214679150382902893614063958504843602136374089720697055509591917001620263074536245909868591003051508477724414268272093054917956274616630219354319058455087795391115493529406047958749236449777084067566255774978448568962110588622886104727205795311328451428634769308969135596460037089998563256514654187251729621682650047952985847127366044393712290506102626656918024234965396871166508546971990414922081842984036381235335919473573197804064090894910333565903486708215048559290934761168756043671764613298010756999385530485272871200385696193681188632164228075350635918863599568370684716050531069499991916661008623633725046425291120409077239233543183407772450122672832000299136830430102544341449426674776853157701434303010571999013352255848570887765406007904193848365770491387728106140706078240431943743456609715724863893990090888038219804782046281517987367850984964300430138175487498956435463107109997093700430335015437139809611875183556789594392348365254369415989424797698801516212277764849589337230710249658403978327487967818405073633817723643890063500318764374614754889380195545060825093402456927317605477120312373781687083734852491567380052138900791641796658924818322546200840169313148461261342142451842410118270451708913239818477762675478298169587737109904561190369138073652204694623992822532407474115567766712540595044482220646638900409877489971523343531979261018924590721374502131601427114068244727602027764802983343869625698750583709583831844319403468060075774233458207508791540385235413109233993554294359952100167091659296705502525369535541005768518438408746118821443049988942949112163440362659679355604595948469208261023914296381344618749976051610834656494690436222043990797406606674873651556970791940399889130125299954106285527350212982270592547906935350015097989814684217799386643579840922685005989941121312886056998528643239423440180404206789068687195251178084064014972479081491720670435358447302707403247603266615513930209430646219424930696664977369229327980608627816676346685102206562325793654196425289595448363352486394045361992387760815113464713398788763703765921819270397309228329901329211203270710576646712913026082627743850820873422632179717725996338953113164318964503665261091582259104832396991238815986984981773980060017397018783221363456091389809876824721004350738480387005202973184259993547612952004032053338760008219774202829610790258923134511045100859334010452227511235048513947819346965989264785710802501466744935360272667479691222492836832847960529150776424495801403412286454353731589491808318154236159843633879107436961298816341511578077451129320964014862464984980656250825299397222151801067773558624092306310326779769771470183957326819909484326915352168600057952603780481693296880783279857558378615311977939431716527981237621343468315301352220212452546521523822109861783970817839040749247126150534882078038816480524726074376337625121687342270753220389744560264146799720832175562081989311095430670779057023884201774439364115458741199465097409377984211504339873357683564049089469863317466816950106350545017508933626647206350502557784982090401145022403913192783975051538872873764104788638510123430936580691591163876326596459522214191580824061912040572527907206713376580946925548754980176121677139084557478498688221024628085090236325173577818096207877694360769520793284037278673588731556562507410806344989386852076433297183483932643492444578275763142869569652591126742627011840875137123513530779870265225485832697205196392494542968895421381894559984789691755889554059897437909638081510741305940790449918623183663959053582557987555024772421922727156687977729572359048864849863760158144040108027491811125067909360919938789878639699547260866387157047923088605590707668600615459143044274582984450818590651850211513221425699028276126005955047056186708270576578470852780803867442409598353826270002265087092731061749673091856782387190450605112718051659157258482045255662903726613909534503128475393435671197669681888928580713402748323630915827638608809463466329783512656362370045112682539805940623689525170316685047361983270407370695644857973686154519771551461314564497833207196723811638188037543906532709993443781901548139902806927288022837553299048818766371890047823276583612557003462401781106709756422540805738923310168266654831245520518999570907870485396925962270932626032339317558078975287470351911714183860686338870407302680221191830090783008438459686729285251024541619321412038798947529240402709240150191988994979633929034490074700716692032089918822682853442751811256358177364728033449010305761128123667697287731489462951290125880110546311898812414137339625122015840026932311139583793129032327224189435536647857572308429688194939400241887355267961138500391165525608665078691180723754645759820459063007021294943699890249059139250455474107945869496232870230021572511217049784251513507030627771530106358650875479170403544961511552917622026918493775443754431776272341140603179032003467836827445109481834233453166314321986459589793141945703783750167689524496504775413869153715010103103199214954642324321264185009992324453715897255852553018817343848166771884920677625043711865234091024274283075803468459882079442854210328814749648888412358447702332546467822937309965299272431000835393155692198634192264431908979428861020124188229196561426595826155738703247234856535805251942097649090256033860507376469438382817437031923598531603145904119428586104932400521325921373335531310412689406568046944972551583832863595902228764180495070476772884226194646275325035048815332783979201962657780531102622076776014002269063110667013199387847043611979328982085175546885029524228543842139726644601941413503220218823320639097433636406074639076739118035688688621367507706067251467675533383822716577315572495398496565479360873557050028760209905918438930150689161684760730926995865057698529754358491156372151588633271288561657945451847591437627190521076153697972336238787954420163787836241506184040449903015970070978803401540017844051706623615747730847065633536162240231566519601784484028818545929228587640267625599437098655023204746289607011344088523944028387439241186070121545107167068123019127560682154061323879048808407704725679028691862566281606735158465949812519314401005986330930929503102844783829619781237944505091310932988089586441552946623345801031729742945469950195096609826319238392254602597995223031831966412315163826431273687512614600427729944187855390901719630461942378029091637937261370394359426653523405414725791032464274350745174648858666023590832789509514908110634518276462230231796964189688043343126841566163420124201928644657943945547333905981977162790291353309696145131097389413660383342541566285024352908928101344193388906251738332859913759480028256514799677509310480180407732861775617706816942613137089578603871263440367724257855446603574252890110619072721012492948093271279702146261905233795997659900368116340636281624379414927766973528753365716430752273574964742752703030538770873794984026254030020772963622167427982238128340817819861510163859543969790961019068233312135992014199716716592520756744970525472203867260524714830224729314563813881157959275519449353947366856129908941493090394813487569210793415410198697733066044463315777601534229993579789401607890074822626623930887590583147217287711130783028340194609052682346768290853689917520234896228152749516171781498311081614122568456967395817164403706070115310381398290852460260245951165273304904710022863191760273362079991557339449038428298476622512709634776704862942970553337137772151185399967427822333709537594434357689479552824514315259740478703026576076015423240937710406553678668996811728711290803442390284482904871225160454523227196559063344418124522329683252762653799196810133745224989097547265009935070906512260448759237036137269805113965596861039405607324941569409709726228679129152148106303447793724824051536600499449532252714858249848431546657882225672942509600697664057147770430524567730678200708012197571350963714461992715376159588727606385977051972084322371113577555542504223366601243593164467408041992282301943328871461939206988063679317595711288119202050578102898129070606564658631520417329531953747524414854281424583125769444697549312117432017335822200304764977932801164364765024441072268773515037866508951031626823833389869689619027678299786908317573702605820539101343896084935368157611539924632854220158793503786650306610908424067506805398055768048620733183579653678219782321053768888211826516509642094121696332614647584981213180720918435337952106680693079202962080383735642987558216033379218822447871602463732538352329243853691954262478943112873004021333026496232702855927355474362683148486437268097975956672598668381021012340043046655822570024074146991438758901836194117511227990950854440506652583771157321949729679758744123274371379969749959714742318852484562497524233218114430908210943705491229707765795411977458854607320052912469225166865251909976388083435570572192807186484931475279532855455059026339625983028207874124459828921970475708874790983182583313320292996312574126972303284447248971755625868746413772923105721202548349088633466838515193185069675642872669072227515345779061666277489337420836373533400495157064732674336471620540419179171312200457403711851527848560240629497256943619756051593656634921638043970138778015006668979357198766281649673827226430659678465810118450618440669812065051660454566064416584026627068952445662753204324788380484839188418059857255743289321565765375455141406345478550879303910978733971535186246190230226393177646060675623650831162107421738746034125106702770686465958598717359930160234168773293610894257976780857496791296150971478947056187392391749042459049552706699875259189442432516233931908706733570926519240073989915131114241782603386832994963159447270867573914869878583661067672025415481597896789090602537089669367460828724686600610058987466755471005223185596229576460313263836759402602266311884611911250697729011352962746565949317580696937179016483411995637318144433471811839021562491702646846900625537495836356873214424995507959860381049760359419003235336115417481703765241282423396111106429612328757120134026869027789543977816117490618090867687124623652944465676536637050323779580182554936427974314214108734562671220930735796714848747770016540993807938906106693787459481405702256128514606466426942177856121850832314448600020703667097038452910440359350457745022778779691104754584849713774964788622540063424994291920639461974409553770526671411653019835271024992614712157117955306423915699050096111482539816043974610471157693210379301915337601362897985660823902390588809812622483438584925622497525128516668413791728715240325387346693721758521371386581395914614944384241154105327159700240212305091638835345918980464431956295810724252631171042492493329133160887149927117045868667901746333479143290719719082045104605516554123469664845578307536682699399843558225621462007612575533725180771050039209950883296101355587627303939472121407867955239024341773186703349846904204830646156071131151892232296706119997548671917420191480134599845074017334255197590430853118717423286561675325822108039252288881176960679110804911355607773487502427755947279800858893850547379389829204597367877157934744795917328106043984322071835631311841356767258011612177195652006845325207749595269741882515738056802892920926268088337895749781233824996842002514675411821485973234366999695207279673180317843007337529554363059961062641105079513154496074265142438803266709229226945867240755153315982868124786069041946462708280690234922860994433201400423021877036447329375137858771502400999036486294085997108500803971000778930513861026663319031619661091267700129655026723499063274691977637124686939560645651841320334946289510441967941884332236342874824543058448501575213248065328937383769702087879932408845061103386826276519450989010104836206907155972042295656126181314540773699300971187432131419600713741623561904042613460853336951481268990997362249233527693985488397573173216092037793961083719120130685825377679088513964723690564424232491861555307197941784941590878483362306887639585726155697102641559950182832055178144487673572926725313595634666632112734761540587831241815337792208863203187283042514446586243514506020358175553341326931427429182188301625408336113630521719046385517346827689569021193218964614139442994844073542541693807296664337627897927264914860457364906793137492670539033642194016370233714432508987706273184464314962093440588263146212401515893425983992096385451725671883043738676905489966930689837941109583864167905667108314719577767763297912225835267723897234364345381096678716465690794660764898622056276909806644078993100405373307624957997717788252444677491117766000384286567484034969889206237975604196904111256605105941356660541338886084634695631407466763969424856095363189050037703479230134157828182444259248015306812041070554541041129118360990756343520491253095921893591775577334778741336876475273191191215411159819651078405109053220740807098138459437493979769478866931915015852368653658682872714931343601305260915226902108634478928651719971789215819736843285864815727417957450178262821373821690793673656120933977574861181129810821278302065644315138720540941342174941385832044014850155846799897470494219157956831942702220334570590473692268394147212354774975501521660715275938612866040605741126712672683597267645841965043175026938110125454913338147464542715100399226467959224890646174512597784326645175879767459558320634764825989345441163353952716278422951402959367205194240522049079381086875086037110693210563918221901120493364010983700913944785785408522570222500690057860490041273041715355663683026029146428707101632218920485204254368650805477124742625118286337587911126130655046461067806155008830731405736546875479567667986544444846356092445556386784600660023003793126105897908409125065367954363845506077846371456087095963123898313465592770656478726865092433480996201733442976033887619715715072926475643960606876471574615311316633951607374662062799593239984366165511407558597408983251724404548232378273408783410286065620414365111242949609732621163815523413729658334219174230352496753863542953817075691390304099660268184538986811070028738368411551235676958309575097278753874298383684093782540777918806937196052579023774424055754558497662312717911435827150866073745143547118479822711584285210970391101582989080160783894240405758310254985966531295535007638796736655695161111964005698762346092250319377348420862340057407235102636927978792653956451965654436435234285911376641339971009839950853869233092043074297319082048279238436875662087835044685071247740996318394472015855180094529841457156640504114870899683328718547546151048658742963859164317007424547723164446105696507078813397296670485648740861438560955786187503861673092710839009103704842928463922359234844243652017726045731778232672679020509868426904808683326634176554867356339253797187608800000875317768376464145724845587331734018626800741586313842410866421605370945726053365131384435700645358074388091762383927880042910600540236546796428342195381248188543579541221169769439058313804632309191036201854622467547080549222856013087466919924254897252114383863791692532740304825673382557089913369098050088464799679544058776054920958619637896604219466154981684662308454892541018143082854770547257047084744150179791488501768919578601819072472302377694548562806082379331280247500697155437181389342389462358472005030271943782530229338274604422520028756216809975249821763202574214284489414433099932497429486841867009091555987206946331483040363644027771642660948079335106484970120130584168870429895329929295153109865068818887926959858243490904753309937500066185639551567331170027578565032280373458241223412183859394049726161580257054388761649454224209718891277031597059293932687621502516311721414051159901950310130634524855366434310127510511275077231210991632999345769984870783139620121097597289045355728917819528132535779331843116204580535046407913358247599703592566593617877698027182537016041801095895999814094429985054848647388445821786463640495744285861055321662557673532034444389668748824733811677749680890841071565855890121611204577282783172788898784614085752346946101529516121807964880606464227347280038339038340459912630764296807262861550326028946213738420315683342501019390317250391702941415108906521660309884342706290260278031061407473822272179747197457078394560212189098142834061811737523903961778165971275682348113707029880008255412839914120800411488846438189244155145038644723918094106410109759055640055920422581085217519591962495439731299073350197317641467223602139214065708967778139110963275944701751997208452824611988036012931533080347821956858783043027726768173837629894449780190585267532722986537002226758388635112646902597334299083851234476849945148722081732606771422590443830294416802354587696788408185133477100235941775891916452486750692309259502222360080663324928641264316957318194754302070017451003468016490885613458549667372489543078997046115975050346342511302746578992336102422136114913440670740822535953348440680702100171054904416480023902270873421061990870713143110669509013959016650984755599669267062832779144397389486978943843186003658637734418141921045801352189739350522721972298489692343502826974358517869153032824390059409632733545266025012685060018711899742248100720473008828257896262469573907042468454628470107965038156285380717530995170833866457593870461343776681843003330411305218314698879075264984190475535791625004389166153998788937009813712458340496121337260279850818692369565690794959231751029110120417894092606888239456532155894922902974140289453739874746549545262483335873680231618418932500665814496724378243915937438500763629278604584981782873815282082742481900115894915515701392713636701943218904400379858585172289502914771355069706293737491358762693425936101828066694663166234410041248322882011636688651788786832856898425835227236789322114216626366667524305175445269787802629105267409411466084235032981871032265455577919877782811946044594187679833038029493792805850795006115976530978288123538815176994242111729969948937388471367044649932174193836400040608193773715693672833291152343882570833025662017414029038456793657546784594058697049835577229423515847730270489581753766815053715324805800837326079894456117179679841528257130538111952472352009477534173045935107454823415069011812000567947731098169491469719396468140286553686493089324266357468095569112135060623808411686222785256359830385845494006625014770751620985405424513785479923807483425012906697237869271551501500699117307379512908220922806246427907732619843756555219102894172501896553672424443353386379058168912673280680822574339067872601349801854329663858088473101414147408426058725809885200707482024414994482339804756158090706108189336631373680888597914373907650785211216057079426410525190740256194249787781269010646815661166451526716170030146840808860980530955169483650261172818421844391437659871153001005608194757706034434765502601181639833672181458270148309209177558982444772399446944044460127725848429969173533750361514177331035621436014912241943959515721795886280039842850371710610960878939045308885421660407651171932328192859099019659313711739865365857622891637369409699188868171970697549510536729957380177972850263066866573473206255849395560547773402296053363750848127903304511930112941778750215521410582109122161863912160919753858877518628470938586591327080550322942952924802373523735838229995505146986893843079049920217417503432448208124089056954012350643837218211881990456896697364980451273750736304038326456663963336647733231962861625272320039285304067258039943290107617747359236582229767222019971542516363238817702221186169313249319341106910366873548893257092843096209880476327216743285989568600720491818042483769075641324803786800215432786274603370175273675158485408960714699462736332044532915589669665413553960090565358745587129913960506675793211265339174693633722146117112993691940536919995563610857801560112077804621945571737792085006077365989429367533234444773409720680999134963518958453935362684535046330856520485070402397781458425623427899209339128522598184318856090681001758802283884608433960351267096557326404564457874577639200333353922359952250002066957683847873963295999296676249142834771421032213402924931440664686977731578760896639791855319514678969501387401972632627341169790236242545152428298529958173242803731486687565502702424227389139274788726788492660788486968473770101858472452755162459967164236578466493390051903746319023522923828863679082700202034123066477480028703167270471052634263103672387669923598186931851712978683537235030675152372494600049751751323600253738117620719393026927378362004516270001828367835410929737190826408873446035148946514721019906415541721494842516709296096040825951641031212067418235608168270871239846769266340305213515818019196998752070010487557939530978470701975940607055814318692195600980788731413985368003353427775548272537035893166714386212688000013212207732218987489855092295605153610773490294242423682045666928300270259477331387530585821628287850545517639596245942905392229670462957752003122256246418646813026030426074543876389806733843470045215400180985521804904892353303674569647845181242351896311076183456195106640907867678868075409434179998479471022365170190492556399839992013067524638643785127117662370740624809178630266320689303579160231390402583227183485584695413848429200514741108529130378252162393975739912672256701256422444144241853813245629135662131826984368358316786947426053910195623815384357381306356561266656340441226503372070914123996695210959322867972221250219755246346464985402154972341773177386069237476728980347359682256289185269196146070367918110253711456535928766866886906278867714027713343438746737493559629615794300593839499125769341202871985544389411762576546175324209505715869399936743678047439975754785847585937631004135783333945690422648574506880360925014848634212444163258598194244931142692196844781799228365556312593277527327259195311818188655819395012186000888088681909203480831420356459162584442247482721632905796501464511381002650634664195591618941984315402168042727767515552882398536580311436918171710379729570139262467001681213168212820287074251113595990844031722120702420455985297011637256512240892636279434808828497663113367790802958438658106755463697680159678766493438320576793672365682455719876056013649777486539178858843551998160520342431659691672759570462607197977001047523860595254553852501100235073098679778463168157457466920914031078498119150477093582655797433439307159004382445301386086547267580019704843483929530534874080442500436573459935929702303948758069101538554447826914950718563314830880871741370970679051029220924312703309066731391115714678355623584734187748111440188114225163187565825668492431353494158590236407574444490646794084014659844968415976081793337580929515040479681724121230287823200826585147276731719446424578666486623652246220970007728674507246767304572055924492872588330102481529739423219334963557848789536761119003697199430251421328216160534609267888441189568930234355657613767038863342175621401000363966264907173346089417685460430803368577228756516150393705699785050544724785916882978723674797840560932812231729409304975115773043061529304898441433875017707287460107734216408416103909534672970726066036196401838110554565457580246412261378362848282120483492735204876516571456973593248421745849274358438475012468708255701088439067120928234536851778405606282130905768177843874150450206732512484695484818746500688601105884603206424065691773946612161367103197708134698990196097248638589189438060414569388023529172263511130812873489366744727759887526419433396436492925934805803462576776281854423260852314174568522101681482221494820566214744964338907353145307965678114696348689753922005513617726216117412923543192082356568088620588410183658642197873835829728466629860605240741112341216084074856996064203145469748369726954020240964641147865128115944481587630664532071367120880602294440938914944923528725797501088094393620199232036015610862652335901342659071000724869635170899125059814561924956700085583168467228244560088256352563048440946893966785015820490150266346288138061205771711083649122724732994757486836631670675526994277511099220507584442791012170011342720986164550710637557611393107301168493219389899540452388832039523176719547103054060777722140351660950389609599781242200241136451876465029003903494779741494106361607618562211539553007936836901180262220400853985705662218903437754423528484689574997663349124998824300792398669273297222671986860124954930895907813915753819487800679263612044753922161143464439451051246538339801835643873115000245531090959212599299847128574433247477217039709897248518414068809928430282782434458957291862635098244240963286566457360059872325580670432473466204783498272156441978963025806173716043032809439510241403506595671062855509773204142021463863487806158232432519212851509707566029239958595652837418141745073832994199621033928121919322487351284404048224808874784897010336060246118746794719195123074039285844988702316334829114068209924210826377148022121385531769722815551267167617859709359847753224829146830191991408572697658630919299036302499476953782662895388203587342147966729639693421616135639599927204688644865338737184851885052532112501575254685579936822523865292490529427685850877318247123448577707894223608386159746275288982130798672333950994603323448802177161080663061045625526120259959049717982867505607976847554009144672272681410632443425305016789211479761507271170056732572700254469239839405457138037299655366044658008201612927891738885439712554786431321918733588418497463072825999860314424218378711073859494820453841465560953627531380308459646362147751064083495956729209226679304024176463924358381406744997702065010066384479616840145892174302657105084027361911415335465198562956296729034011250390070820024744213050079646439348717301217815071433853977302361848494153622228385367037489891627711785839878441802756675579355951575851876723160584154718319709156947556331339872323970848776338928778796392111401243873913891199359955515477923683517326768082775965868476028314198351372971734015520046993924172442325375845325582012420010949736236869893807281504597411186222657004523121977908311646136889911389499363685520595818991219545751071804041008145989477947497436519073165717852267238189781730145572506418407366279949847636280934918084774263599309651504042963509238916536738272334072828816168294064580526690475361687469850864312542646883560701251175385429212778718941998830120434102751685846647786935176702975993996318958832282327675533887537040377514625688255788904859036485402619562955625852369701189096124723836761693975450981173135965493783577851476713240014661943999281350070959779311516147608272239447578927511987189662065963304553282723699075852840617243689903149128623396849591103276390455080800565382574648295001246345518240158360694491576897259555855474828729605277387439064052240133714564524929909878325524796410941483109315346402956594767717677178071089408943504974695102723731960270616152592635540531427451107685709333122480704778001958873069944986547707003215103575574237294744772978630479093589988314812696439202567926187557708580703158990334620770106370145704706489278279223182364853557861121245967400213826571734180890015316215562478549735106107309816103742332756928998264032184888190264001447739760190724280287800087669300230967520601093947681484157492913176407872262813471271917143499045706951709274113236878381425124082698660169392965596414190011827372780651226397144471938544804579446944622426031880256740370839393954292320945730069010859870133190106605871484628587663041134763681331032181711788322442475630729188697138603310966182580959247701816624094639788164647595178510312109802485954952728420226616630309924759563940071609101378875165378396156535266298980930685451343701404574862441275385923497399961487584850284217665545519398964250831195408090533663380562606586323380144233044861217595868319670192867236468483091933493027761284902711398311522612942035067350261645596304845665419116495843617472264190960539616981198515570640305542154018379593443422147965616976243942522452361725635936125938898663263921767186147916347971414102872871595013150997181829621187727843480999873711841893519163969591436858944337942815515265415444464261160324199913084663986832811733959493076578377693294658577646299626831679212087663173607873917998023271287299714267305778814834913208229989335410080290877922047399509749846891868238378562133336751357564641443755643108570170389669170200033718123075421655007698472169008388960587541345151236594337950654021149806268328434942032473924037545243125784406155017708212138854890481365541085329277488270545802475529590281210902805119159616201754159850142368020411824914931285928092395628728668025638116221583185405449160296157478937421273607348652405068641156588594773101658630213994707792432582782250674426774258213859831829464169414879871237566977071700524263668412706508576631045227789914898124242863233275304472840291010276380520416458348163029606312644326932612864267880076728511591655620621395564866502071090506230702232597205740826906041581305995539920477105824774152644982941382993100056001226290485542090570451290039684122448448744281242139183176394983280487561755809277610352362616364929996470222889107348730015731094934902703285092315845193565342036105231538140778585379215723653731036285891051496458415460725219321637952733496275007954564655186541734954014671885156646545923576767784220762011267244314211485846883529021805729240415715947740089559775218186068480908664410881457357736404761173605074177106726934571942829755134679396605645313966058242238080441340837365210947671183918430622031643789919008122147335794296449368529616425598183032349259519915887711648613384798251020900187221114063032832956191059069905275289588356199140148768697749059704184682086134103353512663830052706987731647574720761682697571191110954148866543861102559004684521001039276026485229506835977434349167533360136600972946826211492593038342091393558786561513788065914497757230278127648932208879048736155573509687790989373020719162083758471886458386157565514883335179206409533224905542247285718714857168057653234526495763779089651335977254112795024752568851696723077823751830075885273986311725378907009932031448783366111027548640892503331903605182331493006731913078299562932033636881689330896570105810260095533389204587627425052952456094217249206070090415328022681974980084832372316709361969655106220821658058431769933434719921460673641953315832043242537403131344636338560753715720000566087667043059663933119261170564140097079125955412735854842401683987870769358402709081764865341783302607642843654103880867052834861538233871812077099017468435235578234164835866763405789915395883685225408259513482687533414828701210443095292064160320981061926074101647517886642231692256499914887535340975150817098720992591385503980778253114241704186244797750170744649322273830881212262181806781872790676226212543891956005190631672610342043577411475342501218406350995076249430861835062829173747356925063795573603395311268833359943050683479097768567471328829386859654203574456689242542029160476935849618011314444447583055150762056693806388519651319022071346494062491380293902729672332855703808909928257374643654131421129666381452825732008160258462009335973046708870681702399362833252317531750007595456524956671252563193893831710503676099522064819675499748393184229358777778308342340475540688738422245917534932831779656473375549222664754362936978279994762524394812022782547366098021881458640774924869664854580127590668300231055836392175755195884307823552996831426662168430689134132116548204992343729930969319172356076225376640093881742180555851774664152055148562817429058137663892968045435228887256385087868016713247511529512235297123163752757566369915402856312073920429728272452872547701980738027864913883732579133961380214056356743250510441965702957286084199432362092013260929715157450595827191696235616935464615063466013467987586061420487375009228443878846157425327839731720402285098181978347465144719631499797987883999912284766130677154140325560322207760933621553059957325577134270101570659362259800862863677696423784574969384242494530994134295966855176956180713720563831347732796340874253581797249855075290757965458034275651996823772428659705472185905345933277780317169853192464916510959542972733327891076923324793676470450592610772287953269084155529654348137330183237779304033719037223443600370455036430029486991252089228620624930145276616225749016556169804355325841782249529260349257025838422747354483405645035544490435137861001436239512323416729775072772601402421299559474863524515461401123577017556366201910641598971136997849668443758226835616657005243603376644018366975162293248270830427271172904022715341998103625531595542009023666999910295852106246679182268191061637284644702837742126670842849502620270594749397239482449337913169376541239646608614514485576899074080924324714343980101612677756031211910291999067235072169911909787159734141610726650572038140372438513760405350131881998194485102948346140568324845834091914326949323380255268991924798370117725833756717581838761674157643711286793434437244270921605914882528167700269792523410825886958744815014618771496688147910776254607719066229491206147497859427531407509916125356759154062173678539557191741051781493480507741859167878413975899011903760985587156634696943031125485975999128198820700831387145902827021014794214547561027469093988725675971924155013842122848955137372140988053110973077975911544166217914631387732953352188524096418180809077075072108661097131695986494679031090178538063344563801248061152715833958532237432715060856823721668124994241872966031713401585742927927468692530349711207104892237781002499929252164128725202896190429793617721346825299966899873607223955812699377552535923245228571616769833112823485307227624461181827817577431116776818665378105988319763996730229000440090479257644438435352452646997606142646925354113368885089438064274383443106303859794354979734014545949172086049097925369105395482391993617595318378185258192432568392325455969420343393415589514827864139416339115435685599288984464246505955625851196075616429764775437138868460387961383960445775647405773374843866842141185024675502664357386397296176309001366260587191530905411810236781249455262755267149763140771199624096883197625014679741435461574474222040999548692259827920509495321728896808304962696486904851835988407108542376262173418940773780898677476725931502108578217856730404096308031447828290480359351324977961432067702574701132191273961296189038354055706374628251027173371029370599906882492691874460536278325440722357119980431107154135122731769452097286735981866502050634611937782580961445389488736321276471909580745183108180991489358049852859489682378447475596724355025364847583663045946421433303932920115417585768100426367607313996449199827897332163021823983500498121012231871775275919982152111563039765192710583044336012370703498765978134037020112830238940981709749799290738865253539366053422923296132055008917734550184532632519400369517110722869108433938867883258652781052564158580933030458747569168269621933709716635372974625615131922951160990284988111096100124434015254226174333778007901988365025099256850209885050528531427483847073251028803619266065769500433513064638062125938820396611918218795219953038636724204005972784132839787974499223910318451082364566279094100910674775643864430801123335672028284370795600903356929694240408564692017463634586200807019071121544961757740885463712466136924314108208780393965792603187992306890131146355528373673670514384920885112248102337690795654729562106564804137800070812629615584162326303797594270769581491643781304813892407991215954460456827319342176644216040042000081985164557629806655153807646490582591594881799396012056130638079488377251466408126837372026567397788460828763505189591484532683794135652202530239371891915734440451168992358786257583874351066341822865956008139221558839863580809277395948937767562308183925071864816624872008665238433726190937301092064467916695123758002920133851146262302099752366705747174772950385243903539647222579226641581804937783254345202021428049501371371223319564643166725734437519828582578185741005487016557285157901925228346067593343903485823661871816393067076854266299483365156695807550038293422148482605204322512324164135848259768417482942339645290261031169185497656873229407539738124812571343259937847874083842687924007750719942437443404733332668058152268793483819882739674755493457534770776450586375120737926935351001251557028692769588034034914391939829908185479703994227000183639086046711141813042128036234811982328160917183151108197248673764753506064356711074242297922978453782390620859000135986920613401496756181500813531773484918094683389118598804883247410486693502788082978973471781780674983502318435663091877056998537941161375465296529047014634964976331034248517127505592227386158838640932725795886143222786675985061775438339898776755766018530755889827815571616464580666307155912323899422912620650811126405690109403461603797101319127693002204875969875480039610382352458246300491736656527861499283653871942336091185809996946447045910658212430556740345685972656045246098423788287713531714940117356932746825898955811085786499825738880740745091283433195942244078591870109210401716808348494411747894815337777834247344392860408412736267934898691025669159771764173256438298600293712414990751576285606873388258669012923805814322335211314142741511085346134568074731566524956989173777823647531110794596992185170606502485097438509932070605323468512986165493390451708009143626125967066494359727164120206785164514328719008754358735316754903955358097070219521288586566277830736197731956374587723666642087734980066448229877696482670382875004060938422153537469688051698210097648016131610849633562884305789156042098800179457302076480971736090175066278122280707309188269789326125502268383897480873938060778135227011911015133261623471742922113046819801326648338424894825584705947296844479419185535455460678457292755570818043975555499325542465021318858590793154385517705233689621238784771249240951596018097013062696558837660653996696078329741734903679979000415745848370470310064048886960344848493740656340461830323063627595605525737129614927523607546055872435563045811666513319936336211683625941929368104193537010869459042828393548398072188512183909162676310040715852500430327222435202473583588599405929070054290767168053742215445086353024512857485242182927820770107572479380401423229771627225417027273233178334446963570335234820186460744389364003861499807269619722225137815999109801506347521318751220387252463264495945014085535057835642671053032851711636038661922830848347350798889089860392643514865525419823292911367679203275751939525847911055124215800769050420294053934327549351559263554195807060273464272679545322270400896694731088058900659937487152136679757147702159457389821582968795416921949845992026587639589793497944948917489070697350409624433308977666759798052617595565620918968231240086527977471453591738687402489262932283487983316096418728890517844698598731390380536374559134082022913448102056030939194048527737872022776588935888242648785204856006699538017316922725093304655834074379515547785119361472491078598725855186306062781428265598756257847348143142247172869143431451698889273782747418451190559248019817434067965998462583921093888970639521579600920941405244264910477033093233859325331853553624279794903429650079715679710541507254091208368295866020199206950328704277068169847128701339079681716253168251120463316642413025793616539010769858358788880279780614445816518139227806710692853715036720890898752182642448015608734892422811758588378662286852412734517584739007373105172483917418101790692780234919089666689414800914621050847194247446217551244630650056083705508335035727772817727470743004525917262746114458133474643537421350149950526173521633604773447819678995863841532651491873711715455733612065512721196395864824721695022724740573765541796257176755021921417699818667378230017018839196423816909370916761486568718488867119615173588037596292328143538022162283351806836252222049854143745040035217066857508878234900996632003036424958126226151513733336880499987319341677099924916894373352935585712011397002421342090890990799752006895273680842261915266620856161127576279522569120866669353360250356186375223043281251567591998379412572722515142067198067693012222674656105017254153271714770460995770626243020782192887024169189245051203554656156212336653138387413017620754640807328929312111482805842225897033964907284433375367605172693890986894494224061282116661116136478764346140417452642639679943253017305580633436343318424755214170041110817037358653226436627042066362136074589464844658140265750208682339031810177998553053343735580782509572683126878252221314749596084389410596110065904453815740661523868851548497171716110878617380815781461821089585511331134645176957155307498775550260202549339118868035159271575506110680741730703428228384702001833158738598506902186089965955387350847882346128437721806144001603479097619831082087535066539322373297058855338890151824140952914611404561333845202766905430146908812270109956056191724615347377486202147129616686252987612152468913127305967311984415421511846488813318901926802547934869882730601858266903581697733606003968655546249284815893397516313867962725378060452524262859303931344601415179604617412654979336546009572142024754615029185378676193389410662930303159622726619453215874973799006198751455085929326014959843324242959107141653933205322600167102618280801481503565557718841846834728440051694020903845204704563586559407874170891776893548158070901321953929461413842999023593989941216456296055984307323022110455716402589006967367333041644512287442269362903008040596586553269411289888616519272912387063534822333080033301909366652727208501154635320534740063878217538624682551783653934274089754286535136285390123255138469542402533749076539610577358777963239215414954148427801915446694763614219414947124755021216211933197277682170556229147491547321463379325797032829091448631863536587489784812409241151545768050738653792873738164324250332899009138308399831979388667127253561378457883881707869787540029361219028634295255565398532392253496324567017487583273850114132964035833434548849424161527780919988657308717585851374989164083082716690607443832220610544624265776035084049335622196409139881692030377509520041296057065690157712752754740314172555450372153706162502120792935954353337634349035082220511912493781580471172091431873289865050908375809170222755061549468219464916726842710781099493603439729203721277168271061304605133833254078316491718068821531566974348428037074807415154658731032463645445580104079023569773982876367323676106857853977551406387451873068546700761728885132865243587022166776938708404159628739619286795476490543579435245156528428980728616342829312397491354035226451840669094350727682389536726232110675003589007553039223323158215447451359188687982522625117254872286353158949350322634413353099266305572180549797406615177246501633801042030329548964915567117074071082133134225032997461191739516480309937950570316419954594782136570821459702044048798616488973414579647827066377156707536215211861879979205392604249907612561651026889815104339271389718420430154473681699478018681942380033909285928352347206002942886259345013109295252204467780255467983099977378419691864864480618186993294865387682306826880114961173577003712498037178185662234642142277352218038707632988212618003289973544910642211735582909653918110069527916839319016669803481864908973715643908122470261705180300193009396123983351277399303473107144135310635686688055091202674765838497123850844246781030231921439522816597545380535895212787462061767955417348211587042724779903969570253866248402661746943695935111835063940975690233456525157029042690618717497254909716904547353321995869827027049360923960375171682289952472543824333791258029544728097838371963274982299416789033670230267212825679370011413712577197661744547143847361618759392192055711530678164969592787347361151581438484452049844659035319568263523239812983410911407822106758843968336157388500333048505349714484082547375320098948835201307640528480406185477740888014014183764151743134126254665809128970802526474723042928795394672928465262885849163299594875268922560644626355973531926239209500123556950943864827356158382173808071063969903886134395969139350563750184215411335540156164356308336446763727590339911715176187356768299511672736415250027898233395548874001082641744232300734369497403290963960184162638835519860616509139409009901043334419736485197003755520113454874672284310108666785428402877523120546454071086904367587620929422186008166793158731448303138635966736047087567664972077917410017147759967462949309403794747412410726470997456143329219246482753117734969355713976478208225140249658969470165652864154622349211155930126828573727833832897294430165397172936620039610801992138252611962778931935505431466717092359953014855220007138232086256140524100332898378787578230065893400702280798506149222207634688986934552025567637833699379872400867861790994929185789622317754977694480216099587990405392820700271400763874236315632750539341022168551212046798219260812782757520869705604320929262998007401609717939628601247669705917946916817805180407213165362395212833935724228051788813337644383334107500828963540945555058553940715151459686523015339813643186769548535340416195682092068899391049211054563419782402317650921235700297117193628458274928446839939042902881695034288626623851826053440544298309895123032925423856124861858684146635384675299925067900303996543849571191951207288575533190949773876079715098498723215805925857311831403080941646854742244635608724762780370298174633286757399552890843900838281972233174547758433972595056965097414063394158888475062271501381284440945135241262797552147306336052495051703415216424821297372372411470674104692879392751232875574864902164017936731230579910842890614223642108075259286952395501235664405557655859978414145097477104756148671701283904728425432920516165830394205348683669774585699566885221830311833529011007171497691400554025141878557858857885299069536051447281784024730976693387127225415262468734805288275896289519128227560604202835719082039075014937308516033390829443539165382619833423624240062092559553556387506226451383617054241792224620647477402646245542993602614160761011783013043206815583742289573143098812347412503119524474787144719062599915416668754766128967853454490211156130730253525652283710582764595516875792221448401042922077848888895893930614423232125561743852599076629480142418961802415080075200725322148679418353100877534249780254375713863685970950158563723692493055337408339410158550357571797651655332693355538698047021672425157296897160525770801581809152470815586206087421772579313971816595919513978550162319558570351605453897316726486958211312180285777183947522434329567262324387426917476716229792835974471599922336154963540321424287010052645738995977169915076608856234659423810154796839511941811900464632060474433708874532151987058103469529964162947749191768537712484277650861940551006575717733924481519617179172866061610099026994945744424020317031446592076244369611981845012409996224663919143446943336412982444956900036631382574301914726594054371945189101966282602186418473763940847183860076156908075391464500177751841909137005933074325124393871444737928276491197968206452364074047796671545299778324663790359072832239319830088178913692593758199540824854774053933977065704861082235894195868208484114837050600858620085159233188454643701809225738167504988596548067745357825688488796270953557219921863818893898000454492830601369807600134776283404942786704909506484818439496020713621176955442744239855071011432764895585243337589128511543483572602699268671661805186331798228194581519880571211587608246440522756051510467110385152342460172151831180504055422569382333866698819029909617568957710353699706434486846280259593241694485815331280519008713160982702361440922768686340729353270587684354863745905907787372708184935508259125281854252443522871320236558793201185058714267618888284211769387397952445001224322089598912373522768133092003995711465757072636346313395536388936134360390981375807102457015061691438428039936399196566153502192910173905661651999461265194308875933747691430748592595753230282583473232526504844886679168031679840458428744859716959570494920092635268652476194450207484414170892486656901118484144786663455725429089663575219093323737881309869055835732038052060100547776685478797835258920527731577549958486887027934820219464145191549332401656367414483275120981338310069024901541127145392088027439746453778908189606382102101145476740794334747692990570466189743934567447751602975128395237690433610876248062189266051898165091168219150792531119269899470547919601145843597266801453459251758595578028129149837542705170587974955800164394515532764884242267089436359900970033310387317462018931284030486830115539569903184237875490500462352311124735545773133063534446250648131808669673088101945489570633907003953693253341222468254868012988366096897356960275924825449664471915645031984767769728047692334032267997536000082013286215924889382029883314947477764874961213407555304621520996687056646561226184349625412623041935043026060568967745548809954965184768301554652212032036504247840128661573992849135937625954646589252866261705202151904346824157884312646819498500243559610428498212618324892321381373104902520255095792804879363359653888972518521253761440536437765015785062540996559681203329605206582083787113625644364457043023371064054679632958110200401006436176682323229739324780286525442465925534116154438077257470883322835236497157251279171549672053052983752907149905178971344014259448221592389426843449955735108238788667837836571958490769964344488154113904265380248641198839082580326362119832280627087578458416365590786151130665107682071537096126989572541560674283835804654751335013429476296871796471142150792007201628078695824861152538574306924362928164150492620394514123726097426975332076825064357055812586751588307681687687053704427231025908988258796639334982940726081257170804754294322024348460713667448659433260844926951060353411570856668867981464184748001147810419104124413058516336871920117743003272125092727537985395562627686969899466498303188368533783766703786070990190733845210486040962156656493309500930292431149128168314652688817959622681712800985006826716414708457176384398103809226024821932554203482822727144757771321908630966657794806856067443089086052481882232085037471961266546441272915468836961013530195152983311706395954006791480676576703030244170265336334803149821488234302585026558134040495517405242058630456904099766814580968040176324106313587394087344558629450756694328177826445628958468747557244817489572402112001957402005964052741244744105895881198063802622021896247678254536016981520031032734847706882678383382075762178812495189995666133888750835343690490719345858503166262599794539233947734948281723366541310629825064883983889572746733759121073796156196691255024630518038650775419013617887869186666357695601997269568136244159700024505124555120254124602663731203577103612705382549603875855194445742793491868535197524663311557623320701803199793098194262787880221848438681732700029705020511363069429888780388507703592580206198167409345368613982566416339450125620391943512377699117106447218228608439954300327950272067824345386549018825377763107526966549954393430574747273506391834795262208539560350381861293084188026481208770514199373392288205705693647125984136993836542045957478271779362796905672777341249359614981059229093518640926775411243794273949547868059364567609910604134771739539866767464001657053787298227572832091911990215403363019137297841635660478997505579007080983094900416383737632807127986292335352371394553901502461803047166631627398475452993358828902295775852266664950216056292947208259248631499793342547063550021729099858494178568819428601603493252450917429792871907264056987019185638933743870382675819040724236963931750422338586007579546147204462806723986898391215617037929317313959491039180560699219181528115273466398233619182142253548978895354776428906871443829305215294530362441512299835656297175567393874862532671551503916863746836407765975383136430675074609269428553161680502958962366342411067380670236506709596790509622169835590371436667705645106989713656652338209958636758138014248490448725115097001700209160816279953814359389182617910969329462229623064721193702335165549958526095268732477170891843727612105113557406146907641631027966904895585310442299001452512048259653799738720540699901214012181907409034530697668486403887739680256353370396198254473025476374096855463526383663340574258001166646290295625565313606953239604315625720624853412083347478132413562013350563288382216229027673738530731276012986346393445780929249788709019458962198941633662176827354209404628753769713071252327381793204625153202800331547214903209035002687311798486851099233237467695907298856032211742696824228600401638534121816700498526437231411423916324910455529008811973786033065997227133659562957534043599060056766172838486977519423107915288492896398069506362347996432289268409742485891922334184772189059280297911623189739792271829752109828691514430224359964566261087860386531982420390251371820044296553162194547983984721624147990167158795568117385786615078110621237241056634657204880216506650877597077374234076845650021170212443382901728983774238935501198507950659577850447536310666526216413152086601305236235673516666203971594793745893997986837605865370163028059415314715497866649281517613570981328648193545203381212542818973842647418760440136930862378410333049600685610978029283166042264837791057168703489788623787053943562444281466884369239323164026577957607101867467032543991288129690704884889585455888812969363034681719512124341952186957980172236818956866416445809982863389053216779589675725528522109626957371021129194285798297752404198477984489879141586038529163237627217374717986230987857157728719834950592388272311742037281407741123693787724211663011447892574803682156473003261589635148355967537424611483977129885036925436405546271173381989672205488134118048560102854333173143444677955071551534990271102363099327719398554668554195958215147615485303986540676448513172463532615560936537419651378629361721150231513149059355762428489238159267035832784516742738264990808654437013174453946148138574584768542368360353364641912134519272047962334685696135842223527420509035698984102943786737977142805926458992262378543442035885036482999458382249840866053181235071822221207409410830266122269194980020397248079230607175474839622620891118981601425046401474077515993618057073014168297750712178463418365047778472965418755543244766918785224567346508490582652950929219471065462251659467444855975144775338221366344547408244591878187287434741821441329181807303564941318346412772180472519534864464702394908273459261688731829356054305775252762417179352891159275655595653958134779131385040893873391571093621288117761730391084256759094049613220019313296373447127317253200321093629896300130120666118408538305577433956171380451701868229556539578786952647194750957108827893371651180239936884615706442836249590318797898995666623367425055406732679422472666977985938351110398707047035123521241255638498454564352099256617186308870479601130950447685776804962987007501642184534590139438070271560545745615097363602906225258485612181236452044824793631488480840665805603776687642234730634046834392470013696892967299691956955715582142063638270301666576748731600583402532069666747139326126619873855228156927210087257868341549266769638813768563184038035944410999626935735252577905727061435899998667123778432854519569238842237776359715227099848282620078084254993510491501122590887916261969135462090089649527465745329147349436944957061624921499989461216045784475470058717961484059705448386578742460199235263508337476614139818917853916333232380882826831902286541217169105253048621166732931313796282578501242459171694260544005645205743665191914182381738794683026258210425224161276888566337262262867645382774754099301823148215487073174295636999372068318071172035019897270553033776585553066137184312980287797662985379989741297443354372662961183645467180300686532740417200885375928714611642815078614197534663026705578542158557910064685112614927259331597584012674775302857191991030278777817410645436257807997657355258770233696136442250337340683011272516968758945951308780713028160375303853447792717189270774018147676514117602456586600721842234644494457891463644271270090204583899267040120581319517577140256155664866346061926191679752387278409635841117521964808857083620379631180521167214178099013617886309317553865273664349436239767512707050204348249686475641612985043969061650137336216921534187504528806827468954656852460559934702525559341885172632192009437651625730323889120159867055354041036414117557417800404884561595043447130895436859419232587520318472461827386695961979130170085201891215622675047609014099242834384150397959503465035809008946333848670129445760549876922221814335818757169901910623614382492123839553147397533958569619310127529736393986881057411453106861678703030456241744830880808509480357092972028090973316188628535341122840115519761404131405350586154083342303579984706505342644246145940286748209693292640830147158186862468883197632438534158042710858332590680374720723806066008200059484314047021191201856105691412928542539953707242871300785151649048207189521800848799624642419627211211883678349742042082988878489451430316905679740791373790048545454702777050848916254720157609176779994408342153044137594698555710298986334568973599580378211526495899732233561079942286614896627287676532342017680265186168692420375670169661051569484948618485763705085780990501254398463462864357914300791901133303685039055562019519477319494298538851093090753848728666128516255106062719066870216707686341729470034496433548567479698043821786984319267265129095327126550938665496734781068289676352079919554741779803918846542954436355361014656386757010298449301481390752381503806827764691453771482852755412264834700718938747341720878932426845868469377687026039921829444006108993176809448540058018166194677081579060797836158705304451150813264823774232539968335086523170433948101925753414057215055559170996589578703700013601452302290458734385821345619210900385654343216110938599613753829343676168523863520042531894355723949646307627447079807095170958172152867955174563138846786381887137075082641130581735161514761893205756500303657957617051429685818048028567519712803878032369875848320198242502192372897919719994948551123336333692148611074504546635946361670807879081402384208565356241076151617950370576271190944068662258812659776589077808730129297629289836033276890128426753584723499996245087999331391953278037770260536748113497911727857018780575018511648415829079548653143541108788924224027300203219050392334427333371029164397848503091434630587107061763961711330868104073242143520797427993995770145018399927545025732783544975420475944590546596111925548334348536255859358090903038737618045975671934051484949167421704292883124994230535603460690100201968574351493445960084103652910446616772844026352312470889154915073335516971327666292414396417205837999665443162285085905980673444181477922418568736042938911017542365919966532763279562390872093502463572084670704476241591614736173790593226936248399819962665598521015197978882054323555352007155506821280062266729189242619499398616254473244998895957782983554069978562469755211676822826874877180099908401616838056895486583271377979200006170730169158929252944524748248789682419656416297849381491299858020015966178462728536764840756594461164817249950050415757496213233221249629518083799630011927600969876826374640421906873737915670746832522460278548865957796973487524542169773235881542631052029477825714981278086878320085303291896099023215246651452939559780090091252855808566179391427662251955908570678498189207071599076020216749377301137404356782774774179866775432928869032676489601118748003125687292215952883202335159584144845443966111203923676633331970803794904149063436351345659325224640657343229021764450213296680741086663034974918490383371259798737162551975715215090115897574152554284219793004292455937183303635723414799693059204145062689538696921108261402309983307303244105543535294519099043174116526799733631912714927512954087156335719668382700726454474461489255037615736957618648003578802264027736043928802346482282422277171684016023876534113368596256233622743352227790919937359339850770958773095868753765788874586536123848284084298847411865368902291841740570169123090981063946814119418403564482460785401176978647477297187378345454688216989218094496496852232263992663775225058221750446623349626152981630417674876297275170518439581922227531697293117265013235245158952826706912383767563795769193070290967949662646654675759198034124590457735338296357657280735490243898422572183868027407959024580081450563967512339289084814097013236965735276465968645757682435524353126343092099986284564466919340223994923026449941548635057068166822966214342823267349580876238491939176159786396203499925114211885295363786126652091093250626458249825652443248576990267164527538656090680244177360580524769056645800675784353419403276911117450289692698227757398649846156983657881258310247902562167763405990593108850033476529568272391432195607487632011256360811351728090497864033987229219193322298960861929869592268904510374862057117753431903823810979816095106360429311530876927234523061851721073458843518919106586356449880498004874951610854371021924354384985472451371567111314372542048865612564796243569589524299245836264195922541174089603329159811962710987973830376050702970350593087068099312018712714602606620455016218228667655028323490164044934600756155733133437543578180624679180118674149807472606046487973169030966320629823484181881157103239177098300427215741929225460586657237203332005192827767472940317269018633808623175658624215641328657599494374180104647146961286235681218199614915915176384091896690066054444916422660550561495786447458571105376886543767583273244965695328647687918953255221574806355977650370311949141827220600142405388671456638216657960411240510039590662668286623097659249592811841442174693877633919382743058463777576480796712633805995742412887680927709711901990811885371138290965370921861463292162467703423042384155714263726754182237846630860605490971601843548334981323657220324505379027786581254148205544052044569190723412833584342812232671824880213943352021019904896515512855845024055763846044567563708760802346689413818139940911083260750266542117811621107247785797673168778572670108189598815897492322879892335693868526124645096394508189581862776602966074218290511506314116098297131657282889554449483998392943530404436756258340889957388319551703651541356222113348657781764034525323837145674503461112661709285586750831230020307229547115637963054936569085191545003014021443175759869891490123957773018237109495691354387077908881560590047888632590630414464221471238781725242196698202577410498087496473791262869084783393181812431424749137943590153508575294758514641473649945763817389807510217899599946037528490831910246987490602004759774822554970962475312593432592731297489715362375557144636424657488587726599296479420648867978547817307958897345180091330380165995172424769861379468010287430336675666442800914860105515046763826243185525719809718643254879626635228298461903629800285894579076107444301207675575332578462906285684390654951005093041866133901541927993780261487758989325355243259619073108760631727806854772997996468300522506659469246676544370473475131757405280962859649590021850523861693480532001483613544499473089112741586087191329056257018151831370719236725692248687601350196674610388476845599963356219597980696342240141300668818341218647822990378874152097734789045927877451854974926246010864569348914097730725939841625781760805355515135579812245247994364875318284591722052100209599333560006152252035045770046553273547046671143788480615280675642142064208870041161938705980963691721385541531156359601597726989719244015813110548904022716590500384585383221263629355636299305485982920105251017066192544833006623803488217258901190978741466240720210881496899018339207525060603470404940135350025116886586643512077781159042612698727114247029577160218803665127124595867672844548934138294883818352807785344036530391169383367099824175695064586224324942090495744427986070671748413408555376637065831306888699217958101294160598613744277257692122999967910356197530829043511954204291261839137019056605877336193046673486738245950451019559716207152146526258062278961582082157161256691286234047568296664526430506169455812290244032076536222174481806094252762994632566477750932978484813311667567299663456574428683866019445500027217517621659428215539509543154472569779988078828632061396430815530597190510130422350074110699354945108039225540070466631476826780274222254465183917938670810131239374250988020426309742933091688414410401076998571999589874502210094762216738423168396788099233962106586132208053439884122751901543898547037255020721162686961274326258923746997011560652232437448121151213971487150987172167090417264119044060427036919959068546498612373587643810508391315825301738914462543520158155201755543892258740607875330940922881745258305253752643599252096927495990537877844077937391651817930671310392892723176734837100945254829829739173075804867147362364844013116897965731419888663234545093280723205389726188773192574902203115192182368061350269013432460051673925206649615435530928619082845893603413751221527821188511835960824764610581577996676691058381216145564757712886420603729342436071700612576767651278380490473483055594532954895879954188386250364125258774840329282279510310240215808038183844878121233302601027289697933828011271777487783248259143678427383035924235694463001388871581418145467139142166957686638914369295786600562405870437750685269734840098268992442633127888791766552981713589119432215885016825162974876497188134334246545370065189891064876569827380910312080834237263046637130913918462572967479924245933107814292557558838176420091412603106177465148829709681516685078610164292047692881753463321324806629457139110355311031152132599205436016208737339255817664656743328160421118457297674018615120576232697404191634444955466499080977647525859302542327501591359540344645383634551804582641878720114312069588355576319279096491729828267592250053615044776592403764534804587385710562640888824676367815721510198018617595912411573712963212788747540925133434055970460459294455182950135818143444786716565018622929272489794277864862897690720993304040986689270583778229128826577733431224680067986274200937864779235304777697343377162532573863181561809246346890028671887761136178898083805790793883300281523994538540529484223429261834150476467051068049778525226286458738200039039187169910034356613433292253601650669518976594220592781954239827137031015337712322961481769658668062761339226648205120817577985365534630092322424004418457540724563043744333983123924346586737953594842213112186168931587479935188295576180081667951237462020189491100011785322849074575005843047665391869438424586784808168030779553785153613785494187320558887792235248925729567090980797314596358965618040274847089727315708250375847430264475675965592074022620646657309272630150985973092653876669998732040634292467571810968545307909921509908594079325106383593436012076699787246301736339762891005214361979058811190087849487978358616664820580732922659663320378331404917204825213464826651705637319675648730076246347842384759944989399909336061572747462154808788817076614348860512618246806578277144512039258503933114356992756376028005816605683241183251405572832603354303496316781342865833261458368092846335475842227710996267212448933261340674434422354475021111772252327938427797556692566667018382135452282281718061294133599625126248064957811224461108276524812534677367437865963722178155475119796422518928519368375707282804810975260102585278036022109725208276200250521758407971544290342070129295323668263094638343343960434775112631928289463467816213181866013072670306778691590209240042866977184706476144434998353985326437000879159697355228072261712500798121389195974667216671720749719332646419311400450754114864361757855275011960893879968665743342515458294455772511904870178546916625617361403913266395758639958775475313559656632025121798989655879892165161570486440303065224696244106549812802634853563260334171525783899955753054542866670151358354724418454736330162639674948632965234190480334451885217861556218550985826120291218555551648911420518085005652409575008251058784678162270382933407773871437106558456903149768355689989435867231700602916544168555545587328728278394902104182774688926183694804461952614244402155090337073942418743686083448042131655593481992384913530258152570753033717558546941512386041850367738345368053751812682412449825879317213375772768392403079945048051541888194237034414293670440502671107257636960142177760564178029702084876700708353906877715964259627043758248830900590722248539147462595129209249705823765035040142323467678249520813617824594785460826189916386369497318799530313992505637929001284827122554036956764417301403040408068773118211766649393778377026902154184636460948821179527711922169947943566554447512410679008956103420400707633839836905723611531061978278856961315266477517516422995955508822795129073714591874878444716273419571158041645213319508873369937942496358701374746350832866532771063712580106136191701298127508050538350436430643276828301854416687265949764936387373026115084120350248144721206454716016107032269871116183501289775921629364126448271060093372442492516321647954729542516125580390281897475049878611210914994935641942400665024573923931604116701571289172885430151126307030001728186556323173908867451683824740476724705200296489243384709639897581963416148743843685042465802571097934942594945970628408787628478237993315837450464778371509744764968358701025845039094829876737264462575933226599358738249737955654315186983372109872461490350509906637446402065800053693297528271168996392698372255914055437834360531483656032434622369888110406772226322715510914486886956175568816913051402844141976343419499977924754404961127790326199274024875143188218856905872355966581467836709880275725557392410187263517044235062716197399905432108354785619854493627903871188435993164669612220994474715909728993112813342624566895476009633759564538333073213964781168870612783597122805361526814989828136450255058167819945058292375433069003860304864910881351225753299155010885376944980414124204802054397547322335701124005554292518260848493323727775996010269478103546577544006102375448995456323087480839017656798080703011907958725904839703181833280701907605230735078213548450960494357387401745594121874437981961834906545602755263493969080074158515859290306035524690572638842050361202470124643248601026904082920782915152160276974254010721844958979544749655203169856930588252085840192147919753522376824362553496181658304528215029028168683390982575127975546395622567175991810314695325776140810481563544128864464409357516033290837854017239269205070555741652465518931700285054026895080056396378112573955521056738669320373173182970762661292898718946540485554373800484528242884774193760275266736826754390319244309121842496091774987262130840681585667325613827372098006484752903963519732289898070315037806683148651079666350952281744594795798771869708929408561002922191164247675328335681032581525074735385621967909654259743840637627931909468344890767798044914769282206419190936197174802958176718332962540355285663933286960086189312522996824601456172435680728676717633638264716541754309945542199694859819216087631331281751103762241806891246614892789416545580721919138792649114217586315046267089422922857705197652122706576585215412734048612992759491083285292725552290222226229778020203458044913898791756133770374430586522337667417092133943152937842411118226350081902076419137162390261608980894263039147459336629180805724648376888173270767440612574221460661226294647058782237440707293452345047435127681670756819901615775945594307006807139664171160711940109118473775603352068060250856176892567131363500863786323187395867704551095446832128451445830415324523165739289405628877233358028826601267440849771124654071651122298589352080484374002585001220137241078062728668593639703094129652570108623949620772708231796327122147831443230237947148189693643201935341752697030200965259217999949156467740529109866535583407063705477819937498409306478618420381096777411687468276898856541727746719038519774036483652781513773957866076905044958325091533484190219789498586414182953445100729264915158154568094306148210953664031457575851543357886798636954680493985675679518774396494408358962435546868798421420145463741872237715455653617794651587247522614289822731401692757686329740627049886863703925630224024876380502873341669944304688482014096326045453366474752455621791789372573559123611852228787799762538770221978624791447197425458931763016359579981492369032284005053502695107198419945629826200786284239837411601681454423994144634329406093956515182084337683207412181688411917825386685861467732987839594921507706164601529051767865268640762149570032568259670929048123116431685125152938420464863350105990832191861760303620395038991501868738122489545569462365684509641325741288615039060342805804803405616131291269918922449272478662375670755155369210355994140564171515615550489470889296212116946147488037068093086714362437193618791118515400874006528447723188454689735212750945072356275014007509127845806555785006209291993432905452107665895829927261611021990293697677562327914187232350233004563786777513382956487245287842411587273480126602913012782256291815074434068388024282807560786251932875124312132647480992769392107515539142696611743913136978122873877581754247876775928994840410990784145788830618359219974429569921666710276202899104709156289422421167366943338043939260292228944255570314419559158202235000438988722076998747746349625692245178374450985341015146891490047696685444753641955078197869278857436272498065785689287000319468418137202108010128308853692915627191337557056310574660088539086872909835566180496023317616138360745455335082852343495350833123284134973817137604727996411411635140179079301028081643829407976863884391157329465794615786249826391855717738833497337065203039742512999179202624062688142900775746476350936676889632891887759763139718407240837536262172803455409768537147119558797645169761483507747504818342067336622200913242454524216140326878087907128335714078191440118782770729990418294630115023119015221003097018472051539189402632758919193759829384683895908325637334055665366047990104591228739920686830428022263623585405968467560386932098668319468058825127516230965507786348239735084180580806051800001147864322647555278869611091567961757808585014193736251037534781825123560275759271364410119678406392829316502812678744788251249631512702892285807323337138302488910601092917991530490098026351815601342847602182389520850288694451518594124637015229862027654892023913693371457137298105695446068822998709871873485991035608245505465412257240999238547415183594583790262016754742254687979241134113096760730379459358712116782233075666769203516510184297786553175801641257629784420111559470793979346948568737609966790893484042272445217698102367309995322712483593542295174254937176305292429096923547654020771231446407368415733331808275811816242814956245959250071611095769797636342736889160125242024232548179371685666343356631382265914258288810858192504977739608924039190242312390826235730507154985799301937818353296456647040102895494068727136600399260296148758412710755375328612818644060388606696687048874743574271604594485645255001688825090438066584234695776558304694012617891568124835585355288057493351684847826068517689070365701679873398737721910257556324324506674846734026658589695410118799634149185928000212880336180839110743649852944204953518523986040418702412055341435083137482425983563674782273329850442939232930925339469224507213028503171780966564505355487709389730402695380416317433855431009549959895406211004160463208352330604159666751780315742920312525879971109585470034756116856235271282887982134890844415276404249568142277567969382515697473448239776785496600162125807701588342965952970342978125229684992846474008942811130398697401827717959259300167385473675498970933066840594409037947572578027437309954358129180866542889470365551711159775564720128246256310377816295762895818170114929262317975838236741222194741257393986013992550120001685882004892059213327324111231280773208987076877528805792792969131647355532788281936011265239930990859436158977091254773175279981585257822153476845444000553226233722728492936226185986479426832597865221253953842195374496499727211477011966901797959061789982764946537708461087736071881547570079648950756894928479248847429944983731681386432047646444595499031212994125782478639611089902041437387922672698557494246262966229777599569180778103197178345956227126813296894562955075146742122421694489177057667189230551269074182083970469015094834264525098840042283672834010893975397625789728482847408790730564935663211020598307170735278085985733922533234936354304463142674636054472344716270654869833450984102541484065740806858216099763337998816174768189304500181432029839112404241026918010974383716678681395108370863577451054625905747583066487878865216730954576425429233129272578481689166825546498528795210670412082669216188684356633556013823910106466118956055486269397948183815220986356261729166859106752337360630245329782512271956896911428463850901748828260423794294261722204404473574186544419484214331184128107541816759996787552548458501536780359646543796494068907514579947466536191770977496761520954403187598679424923749295713394359205793899496858730725333034790466811037552147709215215210634241183645151207788377556112140648418623966608016822567533295633101032249300550980160765997611137124677541228505317071557175125398721213129748465602559623696998644223218618129650844748018491313634201935779259160192349980277661230172954587056961712572072494310964431073119406696156361081565048439118079001851060949522605813917496124546999362528675919672768050728290055651233504391685732588571064552772821326290879465093697402302543599443607852448030469719816735161481122605208456520013460831666317641274348709807886024708930135367119433593677166774159383057005553074320038840706786713232984766763324563048134300826757206777980571386691013564510447994873993848645727670189104840694315133427030840465775157963747458170930404772491830224152631090551445657311937600183445391289049954175896153671028212463933931336277808558302423459325041333207883070361275869518752293423118371824195262447895885484934390458240258580454205037574112225502239421955276550315756691079733428385218655364879472080802065717935100672997687526430738318983782981602428689957739014182586897648095969466308411903151311682176555528666699816562603232591160604272926167404871602181571891438818082068106878576621167317036773628403996784050385190190066381087900610784130877117743094463943135117674347147059964660592204615102049635513532604331052198357856078332435272132609494610051896143568211574416191850231975461401345226998764193792623932298572369061527168848675848080514028907475205193683751366831850175749904513902208383758533081259529175077721361446792021805053286119485677394634547013334521317256053480734729349957602557202513832097181979146617706564289164389540401009428138659016421888611737261482872156280513341127704677177671863055496551496330866229558635611442104336376605742953973019081450574754003331118543395795094146149172144316700683334138989164627451619065548000030572311464897578003475881602331176445559204964750596088883165917792258637364367007447963836326053433903961678968967891901053476537298117783241933849845761629758510642341749612276857679883259998908867942301615197930924765793560900658281258937541803506940921023515335370999471482147437414667193133265725381099839650988838923193324971448982168053663471647241242271135501474729996231442883415991836876212105624296165125118954750659968605030026264903656418524451449665643259634413685819373731580091348170153905435113980771137178571207816259332224135428646105491628277212827390706385823811171223054434460111399674339234519638677758289094813457948963009427373368292211047238112889041870335997890099840019250585346012060785605626764205091980664646980512535837038903037284356578848152986867186133946690657410254914966772953770740933514171567635871925626293748889687406640562308836339089009163581009631183054051099739367336152971776610940055206887749493889737164231606336163299216987256286187705221049792096166260114879581031946719662876201212594307494604055028096182535087711532441405391809279324409434590613772517518902588769305292892013403609390944476148263407836456562218871190090877859511359355817623092300627161337169377936684461105552654360962376157120941744969228717938562477634558679910745680266562831419049445884916896630367381345270112940210657493705759172034045466145885142780315265867242347084731159018853059037400719596724526729354929534049931445007201800754594690298809700430485837395529812088377667176627488717786974696828134337146142124401904733758100063616595225608070840974979573651291554387260812400227537700452562816592409685430974536361842641395990517772605172487020011649489472589329391438925773471549426128990169106710176762138740591539972739606385046016394596204572451772307081585701773846711939271012716089318440361432745949209767627668216571976667655055906085968601659000196299023301581111759639302661302592249331945922783513371768686559647415652231217695693530460988670223927106568497871430876049123800690351886441580556791717882714550994485275505532142202542703077846773984527409131034720709033974035653877210023177945040433294972824991523498841916060012585242915515353401907785034140036971514859557715319190260870213549265529176849172674941701037535717795742617474084020095145711450272754404199548778511389987379482578613987213376278264478724271039190151146620002378199381756468538075160939456127854852525307260740794556096788985716846287866817504222107563095659293188110779449474819260411778179784939329778811579787549343842577914706414501702495381029684022877053881262617939243077127844055610399645080389382467869488589383525953983195160402899848292614397110133212058221701100272722912149478639982809930768150621157415739063927175277678668047618461489658714233334602849619884970407821751816171196503063478970375561911139444870762197666317845295010866800812390236372971988883432189689265670783681145529187365363736294423988879437255067392076479182548672953926045393004487099053733696909380030018397574682615768932109638188191352144713469280671031610089013063517702531826020007976196072041822812631462745233661437266067954823509981533995392987251290372350509361952117977991116907775631959810705803479497464136053477686405045442757795961685453960971650572510610016692409086785971810536556415847903693709427574555065071599416984793685215619178561439740103533477941894535170165110674353197395078212601685981388170346609685123978496372540424339294338096107021979078478798206981117015758276099662860356144031973828410547830236034701272317762255134826441758237346111248418916296063538882678267478543987230491530506612653039354312637275076156333818937341699584793455955380208762014465325483124286947560508195063056986230828492263295538976444546253278271788971705652185411917041085479114601004340587813572001547698993543550262165233827789902642861286686393076630055957682911095179359154284171644394788939910992678882132744832062575102926586053508445973376226842907393541155979716538869910428583916029613469427175930325895158696388259251194606757767012049185716953473779508498968876435705025295184017009500251467182769167799527023247246387804731406383825246781702855270254989672932890240585362220219591515276368272069782640236862792847437335848261557641624950346239522251964671766639146426289008322359342468487942404204924872056353606369224947844956273699170289630366846239559439290435412977405541734185661430641937515463937286573150380489331980286741361560136789374599853327319356157202106855202149722643830653942899815916302125048288317300062245564685326936039256708258298729141748264742053376991061951854432821509259865930360657262228279390166120932096180305809794305350264942912333682053661100290305680883218389040976579938429733716522796391648845706083227217044961211965834668804250981815202328866136774132190881570552193237715245043066076305182088467944776336208628821417128602411296306210734886333097651951658913994797364689657000415393557022203065148358377075526631312668680834505039526498097797443519005075202555871111971271554352493754601384691364442138665552068119446522171205092928553548353649388237825961308307367500698269261479737885125622489182768872793869825142703315007632421259897594006957304342164909895957806541070474967352459919273411840334912608735496030942022149473189514000816295265796284855403420107582786392838557606228004788988663100515263420595044938088004605857632961921748673496792369568669523420771051132406056054319426885613902594968171140668076469144855890879408089460252363438658640815192704720117652306679831205525210296128985174950197362709638958763783036037564895558935267899459332635572579976788473821198686377305885949765054839054856361192351460318350716638332407738055468156801358146948470689697219569627689041308316534164016144940396642911434548835204027586843443683023506888847019636365125521495621118904926029169000535657686515506315410355852251083564174476919663490844726315437991288635104842710323216664501888112532856471327568434425046506676990717652289896976730103385411153332391184576173080617896051581687059454924257580058280094182045662051673945189832761881949047403497943388133180901264433482668001589616154557862417886645524475102234695733187255787742046169250816262417316394252145976505300025003517680907102890448709593122168567536218979840861499636295922130501711731034394043079309368585650842161731151924693595751409703963838978562778177691188905249852741978689190030065674493843569632421908589560284597081040658941108864061704036668557205873191889358487967319311006479980203487904786856670387410097483592955672417744894453575098454503041509188289707685092514643364962954408629125997746386012496732452951043472066228388354401380994539766589202815551776092959402374911140944788291363154033739288777322496659242193889803333064153726990977862069977815234063414249647828053752655389820634807900349669785719052701756934720454689983938987787585996904166885203437644064896892865981909204452605072119705006952374479878320035082149719371556184086328779390321769395687938099038928987428958353063617193778337173716523511723116247471266644252154635939865642249726542964317242462487015250017397095057011565378206582374470352559599420839650117596075724048076326435310636250579240296642685590772530833850512252179023702020226447515130886815595135905168674151889438594522872271587442167794399507955267823924876593418706964730633925236918029283762399107321809209246094339649423445107906353518633749328581919824414576296626908126228933398697986379430348664928731347276006713597725799702476863337699594342476592935692497739228324294380528578687166429205575294416803296241139299736005288604431914052183334067426605340559142880356045002919926533643717590315961186766301983139202782443839174889253105285795575274014765551596293885739945729557204847411317414351123626967183093138015804717384130508485756514963338510734183263036915218337223578408741043398370485514110181871818191735818080492364296815965755857724133224919128414683255075372137822600292380627983940051409718924552031279789998052486059506587455040049857470541326484857974038946837638060424907619957002954223758770551790561400192527447545311415061972153603608245622825092435796790418480812627763935627231051403573943129596524869069382145535332193905467898077870586059566755672128564152910648597233575793377036372481376752648247928649371612698296302633459852198017006563367335322620409363588308789655613751766601500806183860240990729434186560378142560088989053638714734395695345771315490456769255224379644821154999108241496131295228562631104158821196181628345950660507769222064083238786545346675103953792196427990303274124457963667807995658990161396376880892930012451714479366927023943108611023836743830855247706064283050567502774263794131132997487718764644927523911092604283575939710223266221550864065146479858804253141905846447087120122422872215689447862966037959828893555437661531995441038293159575548076581574725044846612119178184520376656468234155096803671910754769060108344444372792807859929840131365368091036497100915676882589879722376044660086083570326311260045718675026132811297312945112421982164904590798269879162304456524021386635320540567693890748107043873640049780384872352689947367762287856824395960404352828721189139523480720919468936491460148991364086824944743600017591263647223313964037694472562979464870726383386647818333810552598858534376780813397909600614353266878377503508276335134650882553358130662649405606054304495971605780549850973577077466669071754936861889183824258834530941124563160780316940563559709778201338800814946602509800914885673563615544540000405382901156430571993828082577302944623152287817907931294023785325020244077673795687902090168316871439781936872259874869704981563355558439824220762697392784652533052848657523617902441941162852552679233500823390709183993494319325167607616780948293211740806380953997178808243617306197863065201645055444354271628208325408039636658940846678034002439512166509815880552809205766991382674296602815496269719997289378931667058018645400075466576772749625544897254838428411001911115371587813111178374632390175787065215712134678117186602890470580615952712710769877642840766121224000657429768329283339656111582379096763922193756873300999019375243952858666926579658398735238312418798670636450753132904981266503743119223431190312217861349869209153187417583850961336889071421100874005044689690562956134133544050370551226751830114798917532880461944822317528093156960242495819916892982927303248469094275534880632645661315120839802787208900625362419719338452467294756874942590566708102076126313535278419173352921473800512441409677050617913778804845352622030591431734552560775882545088893673216281208793995079346104392531072683944092736561106651078172504146503888832153615946331499783340106133392890990346476276966156479815371915222671138690499438976254146810534220581628579550744041660966276303817910944442856208608689285068202765086561202516956040814469364131956485557984142328890771950137371407313236915104014131632139745691655440304190996608123649342131473587870314701310804527713013015364257325287755415475928895010215796310671634904016176675174905121492958526622514726074568580689068248510312730085010862248637672361909586892001177470436681852300359054110536840691952726388609031956282569394732408983470277084521313103408243467603337474893960062751372126903490626417842414052321555278723486378116898226365276876125667322313592369281575361483851234616480576232672187019578779926907712580327386651874430961951429251506615147325936653497826862142216167371190738474052838634140504977243982502708827301488206151341168900278503521235776010258326208796544683868773656020135939711660906360451205995106864362216139004519585484460625148557130140744637052785571448301938069258346387245021563870043037494392943677273071453103838305214770214528116834951867698925219636067941667449247091586936689138018604028303117463742240264343250887966593394796476202518310228216627974916658950420640076541994909399892814165103404138493687878240216922001483059144666274230109278877845728634160308350384773872301711217334872189835177672986580649581133558034589261817951838270807626162975491544316441814933204560885594870077630394529312516344940104325512751030210945606602642395640639437304485968530887171145518957042673063516105307543384417070686465025755833268991161074744853072338805789804394461865961680454073819055901862785103796119759748097163509698616251516014122890219226919686657781127203539965114055558318426919520387369741326008265525236228320691001789384269985773965338747031421973249955664766810951637678165328798604663098419376277404215347680232349355603981625515013784150538971962396991888518183897491474188368413214602911477348048654537464413315383643172415290027010118965171610355489023932967224730358600677486361499144388052829531856267303109710367700031568401111402816718451701235191446862677264588728881261410647826650127285729429200322001108349380779041185524665476819468319305139421863358778158090828542329678897284922940769193568554750584384290501251463255235482332598054726857866221796986393694984756603378481374635358301279070374575475975631273101098769738486042167315334341820668404171205211705130325262995477585330143721933115824676269496118459856257047597312577138006335133827018188378055386352163238627885493204793184724428198649477281005571748280938607460729218736351140002236921211701454340610094423707538327009968557273261755086942620345547578709936154735603472150231471134074984451892656374470347766910766923358727456179646945568618334295648183992583427001454371447432581665019372598474945071144262979361534983498269192017647748679992428800028649396042646403391941809900872970783766573882927754948757615241767799879737662539461250141172343092092196114959118947596750092054208970913588204225171115084271034598839429878839674489370999240828929723982936663349412179246863511716159163020901403542178402264398149400367218407228774228096683776686754520282729034183573630954464961350540941426272612685815432785642644961137117601149845637675437218962934925403074784492345429959482320382611256034564476649695424245479578166747657208433955720347597473716396565734167327141561435197201890141655827341290790366073539646910365409816467400873828826467955017904195260286474366217944085652747206534926498192040547711035976382743384129987174239308992209985890610222158435939490648507542638911234675530660529274608679091909425117465849932194845885731193192645805453552948575092193290735716176389899087802215105704819600195231792022670253502191847539737996534819426999624384426862576328278673898984872483669918856355783121824656594726128659314662563504117834306605253635365274699153960940730844899628994300436356194601000403581452158084645335152313792560239943312787497016029361436069368642762543219529886881615023113905560666943406184730412976196946046424749842560286447409721804459809910317245250470681825314707608191648367795805842747763017164503147636391304644471465358529569166168396247300863909775297343370127561246151563180708995009471658882097499177846072878453265151404085443937722885136681125114996582780942645461523151019457098928775332973259824512673703232839901883010450551495136803918200308750513709019886622311792759540437340496409377824516866310173300380335984104157127906727109162266792872766116950570737643657079097181070882807800629733884471377968612987153200636459629861173928632598306440133829910775307072778053835870444382730405175429229901645326900381633528669184774607581335499575534946620607209827240933989590542424778767455749682723537659307420626890069781601008241014585368800900087236630688087406571026761166172792013249790410557733764149300871623280762508483253834969902754544328809822747670993115724988075678443569572535706802111182841711943010142169418755518325225744985466876176832436803728306204455862995437370194111977461930985901109782763545544566306664580549578036179544476661192036541741850799226090684077242550539951719681866892230479639992930412307120144707827785177052905060637682970927343550778062763403453720083861675365110515808617269124010196104655277193514740221580688462437817274344080171805975154098191628479363273903664387485223695493234265613139989584674480217119486339975138212812871261092762764412405118669973557705463873312960910479042052463558137187275407998959177270768240464258132623172092500070131454832419769906036028734770113806977883226592208649439916916699739067798175082051926066711966151657713856182767677750924599920281009234261208475225613249673719103262068688812990654169883582995350273810761937556944995222685774893290386626355367795543278267407693206166537485273884896436758958166369014046570980531142643205711345180545302815808873493113083387336276892609168405905439278146041322312146891810760580180770578876418427280299269108258357083156369562446866590316322069902531276668860690038204720995471353196465582335867965387230357176028024407681553105374652297137496881791036696447579244445775421421057582080580720378612306226196990172118288123829303299883121773644114784238875758015267183043915097229252728312819567382755606230786947855642836924337542897121894066721187873041893930056205119314231310391611076104030469483619690627764756395932099563311250156731855573644136057596163551251564652065067377196087694478505817430305945600465496470458762465334036630707008064491510268706950181842183026159925670087363987481539326086514292958684056003002602380924345190986595730612052425902596740262668627055319700607796063535123979700199572615129655931840577029967295915962959720848822629786327163967704953275083227648335512056849605823585888352920993745865996075672965394859457360726476317250427529806983319507022073265496735841276061764403501353432178797485174760597382623125212561823622278269980661767555909616473966085328084943020382841478452638599186327160648686875572125492808014826609828903708656838859770073236068073975798602572211243187613286638645193960696172291404611784152302798718460467189691911562533220512369371846898005810343018767346602584204808969211168940050622408392840180162362291195210796681551658919318680190238076646448058921234781503209854638946240673908385382977021963164086363897226478201771131866511366998262121905370502026692199771872782448069961657234525692219634224535871230460443057659962752993260656879353958093659596282738063258895389304203613003406133829250957111780651190850082656834869712919955220593003923285303588682422760034654114320936453153193172654033683243657760654858377453871464893476191575804120171144189558489320000330781619144301370427599349992545144075489504922440328594951015857363714227277460101006223707939268637744888087351364132195827020182499980901954876624942221878476814736472019808160205092235236852408904936391029483235820763184059537924938797663421257848134231474508647788596378742167029487074053978042684791800629378503026437477597046224787450584627389948965808216307804005724809413868379283083094039850925178244815130700539797222019152715226085994191748160551462184581610269086361950845286960749370553003317271155030645942679588793367352404156774707276556265294234874468536725582869849743834233763885228009459284589077497611397361636688864431267141760028118698679143447812574624144365255288423556638261417714908514218570989152825421581834176956678991171516207761829699650545055956232298689005335691307073035490313983388709829124489191070268949757273205283083816646785094807409781422804880561799894735725939752114618821861570847900719531598029776247652077871299034863953271564708436639560656894004937995965198643408104297883593288404935455187440154171589429332622946893491207330678376641775697333498068676797836925518604575392237614352485623907260695632231848241967892494141817804106199403495844223607849193784447875983334626069142624574020744224081239395087345340805768896604437689894542584668806933989092998546993251784954761747186910366214482131906890949245839594034919747842560102083991690752345155117529618694856290966253271853249727257781331225931124373052423035358866221196324396217600739852654322316388535200040365191054872905144154041651512820969534016176527759647154477379979816690842590330198768366021755695156771021074302662933542354544518948240757115578730944923781283846564013380425341637539210667171606030675347138225047505138016555466304906348565087407953178354198071356082414207555839859194623554988161266570901640638044620634515855659653513569313411943562417985679869686034935328121619370262676776854196737015525516519317749662416354655090205282239687720185966889872630593364253507991941856465430447938598017839120937831249333881074733131855596005956013613528412231098134296594964530667549175930095218926591452847142913700191902371660143488180138910978205918051873239569168308849797160329561581127709204237101359508159939182753819740588030194027783875377680355487534077381636195974132914597327044939766866320976877425490616470021757095545687850723187826883465978127966298590801190638267506457211176819239885669689307777010552809448991222419637705720147221086476972595739793982967046470049010967400782447549740675611243051812808330761547082066685594295793818908661132170604555710781895331025474237453443344830372093002465370576288750673920985811320263786291950834511087036838322461658948460847787747119801199734584668713160065994276872278597434314593835964152320848884935546969473426069576316238148863684712252639492871196237364269862420935364793016748427516633630620680320065421377298782505021423586618376770724323149729093213742614206828944379706516073661620542241069766224734549781146993245642611720488373683640962137051517484763450197312880856142540413656979820530310518852277400314371337731705962534590931017217705030501940148876845116755764579050266391306151216176677018967093907606943121173852474073067671420205379369194849048174716694096660280087413740693184321253582702264948968101876608132102949490299138918982168280283421162990855468118451576600095481169196249938558500671915108450185596881405480890207364955863444197249975208780868879196870358472383794054006689412098119304489199286403732436844153591439137030117901758523252911356759126982756613378911420257562707867297859973060300713515984333779099207317908704465210596418335674946506694891415122406892517822368355526991761337686729412824981622646616582499001695583658202131463456564018622984461655251281663683958573105183959293706394349120745004426385131669432991876077741895341146735068527937673037173377585169240406073764088405592741673526579487024029238971801820489748396824866393685540979083655775079540944846749663668519377138772957745242563754208383832925809158161508714286965450227967110918716035693989039388829995885495336624962012004734797498011344235216491534911026159796718044843769272721958512097913169225708542155580608984429923145656016304710416284113628405427222356994870827053377146901986126269836493651767780660065971408905326877911244470853668079835714925450767392076825582612838506741864423868869564598650368112143721412646427130583504908246862129157737243282837145656273294064887118365226782352716578030835042159464843156382446402660540584308192486602456025605776493477866991545807988782799477203768463976148566648813445711234176756039616309686506022259372881237113227861385793074572747966451032050196824108082243826573809674975992425246558335498646245528614555060812788842167375158928946938399324405372101341235416453400679447493799091180820830690078821459520641570373088568531765298983172353977574735549926353506032738185674305069052644908749476965951515835585762546729934705075206364150322991548010399619448356254107804689741155300923236044174231318199490164464709777168016814460750986630858186903811901512433307365651469616334415779809564392573208548641573338815202469069296107736208991587284064015552232173150255617086007827521583866419523136946213183324794761374542898705073270303799236805066079148569127889574562580597150387349213301558868264038419089726267104301570465553298932535909473756807569980678064737210273397257202739047042528472218392109924039736448308304841272815611394969179389808615803565959119718364924149996790453425624420494722786092568221927728306933912968063935150368165030085284219341896231606678180777919255775798235365388932933054988793173925163453714297025665227258858423832646399158855622157542271486889399084421103550223592905541682050170119694027894275006154400228560650530410597092923691975766282475793312317022604910629861608629114548526901647179825516816966292218357462191672016973252663775068851719091595247733761951050225031076541165779058420475586324780322688592696657160978940842639669222568743143404188118410307140886160466695476626605628927170539601225985518344399225742420422962780383220768353777184340316880860089059691386041046789602098722224766057174530255749859309552218405566967391591878306175785757843771932151383758027980576402424418306017971643629801432005708368795723563175617764879939936506374893982887921919893473546515633767549114991194596917708695874356687420101401423738530866278957505602211600030239417271941051181095057874402098316013015021699940150628978328395745496974517579763270157464799877948729662629376574442743656682309642334665641616606983355960420323293293033820508661617136348755158128985809034349201897807545866033540346852960323178364165364184566427480101872607870131869240690171648093321452429393271869878494732228851966296344358897699897212911415202590580136641227609568216953117540422207997790969758660163518457580245572014349042476957876624558710953584093255639012372186771051357870001011175905327999940143040350532169280029198075369054825566387058057182290649859330470757855632097179228412183269410271530103758481962835400524622955137164458781192472196007282006000546410701321501827288287651914453064522595589206112329319486600271864781913332861420860403449435666646969533473032924731395745659504610542852155055616517715044026964438378404667196033620819876938335798908247833269064793661843260191635917166989951549211319236527881843982171848377581281432150487300559114039452633294885929607563309449175514180756383363232059298579870497070663556502338727902646802420145838396536321649371281917885436010877212770120753307848761665835882067660362094659760800311404728217414510313637115329843108592332095443284433820089453142391632022208474108396263457978128403421906067650321207010842574127324054259887316022021031419402134910561955337361522218185845579172314007751302223568008334888050413471939128841330617698886175372387852864509933145770091240168245616779802352608015711524886275399063250439548781097036740248317694324960767912395997415123219573013559567634818403949418719513516471480175400107481781509252963202522646664091263878784694472937688450854717225961478189795223668848354859031228580725950803187140652776010410250291487351582920901516097117496864024432083845600981833454438050620438374430494189947483018774428979239442944227840949055637206428574682675307758087718727804402692826179196721166751666203495197156141810038915054118340618749777340934592333884855686038700064457535279630887543730664706428085334295229361453060366190271174033729057721395900310383035892943082221356077858946050139096699294093960918839879727910611948430875881081932923361966954897117091347584895271082850879032046116749221873649470211322112572724214484514563917149480893688876543832901804736126393476070068265858168403952181864501439487152315372318608871044290541912089602340068948307688723595770566825203242354906286137510894290801510699076152505889262301048033143414517615648139616519863366365302668119525932141534678861195212457480374853370056455095028411157122992307054196211091680010607125776014494888330186968612662679915339653967349507308507438727658348479884911886401588301172429918521223848035804129369245747966803484697505239885549326837672464999839219538416615500020440537935627258240153473986892875333448740444715277091829393829764571220799098572174811643617690657036456363016208125501561807410889307731284525206937038277340750283565547796924512624392392746213435363377421012201684708663611386437649978564645380998530203848758075478742990384394038368433565284176712607313230459063295196665041101322388219514792632992790495903998601614720787042656517757388858604415913838957943819566970235930861343097850047508596234765533709404281663959217985196403248075563381650248864303988619286522725426561020445004587922843313874859876825793311871318954355035305960146691606277798262988162250045109321461536465121094795941538591048236858826201171769744260632900482497415154293241082170092740070826304794664058252250820016716580586697062781702729688650860047326072816747731772035511386343346775136486703556097890951392253199642009470655697690720787518862772533924989050827274300416895246837559676340777926986217113665262334773232506767715216524337483723436796655954767475308004531320081118736038241834952268568785510448194289550925026991303681300956915312305611305290793898574101686946253467948315194928476362368223659375506534196710781987707445617765092702148319350925010412128906093326335688226005045000182764638902969149776606942019121205803748339057544646397696620363176148077920645269331137866094034138190031282908925704115197077046410917627352816366248979494666621580346685469826003031606658523001686061603882041150303208480193820971760723840882401554414704650553149873603598185318998679992209161474799980198979763797248652739337091318026785246390368869850668518683543998519968797343712830458430510674690500025548618300224616208336129024991772152878732668726347913150519207791012246664302838712475395244741405644669338884322019965043638313149747199876601619544989640597768276870630111305071198929553550669214067009463501442937434228480804694017187713767034575779938665055290254302011077669266770776620920772850915813456877131937861445618313299129474914733942161245642590706986682338041428503339596724374641714700598587122814695643441419409596837874159855938026198387605340131672762400859081989551440590292143769115424371112731167260298244946173265963634747214024722990343608203532892407821723565665813115971377138721637265815670360600072528996365992251154920235954499021355313242687426546819086895355429094773590183629004725435306092722265497545277609187135233357462600455740516465766408635915241775636639800580891848047194664860647019073255769736188272263779418243860288718606371397439417351494243665142153241565396027644581268064193815937117250661645708645530591817755791053195980082913313913646408345807247396716487655808802365626841512092712083586418661124782843136256981175806975091111205334907047249170475528449210177469042087137982595855376233954993900188727356634108468189382548927912615308721700596632661879584988889648851009475131878120483513272496671914882195976549653083548584993742907151991786997731418828046347379668065421376457467155689269546962870723407621657124328645979690472418716482469974209897191285170904548609630610647055579177316612381739024140020422832026907583721236010075053625143510297395810704924795070455792002057320704584633112176466589874243480994630284737892923184072731873204636000471971877072415482782439325279652843310112837755557790101659864687249895687251186004539215493952321695419326203397579089170143130563425118218731638331771836255284041564029399315846310480816962121589089716891184497146102620541269248715495801744930152987158489985514754964091264032372927498382667336366554642486352811591784347274137118757413254194898106880276974695217367501585268766356270372723774912943892829003876270863673961070458936429147008980130717351978566411785876824686128251010744956626389125770059378702761444701158872673812263143693846274357570428607406737872292846106169618703811633659921479132339051029759386055452426457151265221084605843411598712392485495527037229105078537319163728944368373860381734423675656814510109442237879195394320540121788928333833192459821449657476338421325930621957290308345991758811062760777268808278689141698851442617048889102789822822226916529151758479494651962684298018454694676468184057636082317610888742510141421946842701380972356893290191154509490879736918404328397813843354129406198958591459656619478226187409934232258495578778522596487262301295356323665638977053067920503724161101606310767317310187224715871130723355618375879718107676562517004629634372795429935738445261034499269709074017415640391818877152663099332921454575833572944782200926928167120077954168197685267755349566598121645259944991923853252552201718533751569773543734793215066826682311576599444957049188209940895106085326912111708752748425932029757661812402577904550174330270409764395027665195761781602674519984377606466040316979047419097565457108906741283408682043584780739663557073956860353769186007013641804868804543071294261175406898191432574041182656932864030369733597470938672307058699043538623184732615257316369160938271816137660830163487980370753904613305662968008297189460285729878093690049933168736988608119557153369140289343260745746799713914912925004956534331595677253906819417928554227715574903095052306978972266199795796181878369781685840066834086453192479027742507118869186164975345486661135668827762395945879899758384043233818447118193025667313664187293920622898679107666936088775880973636326619914801899290610518370908944442283458549772368614089277672343229230199453167110727556801352210124530307053588210126666939582057250832921304039780362270061372822277757981563391071130207443568927186119097393856678075085074063506856872814369689996928640627883577061578945082290137855870448764908751001787999558502299353703762592859764659443909861443512811977624892752960674533096901208469658189129345404870523131822580737491972509050892502137397904500484905857042396211855208252243989848623788406116136346020901014501577894186307985651395134874675940485547246002584561874459484084302839693179853522410530881551517123302601587241436116971297329674917062942404983516178573433201265101574352428862335947433130765658528518932666887950654308276509877481514024700508486961427167829314957648393961511579562132710198428988365040477492850977635371614800395176153691101521314909726193132661368744066903379782130889340577244309959057849094070715508256467900604015349417364135546686641869181702063881872218940175858418674215050889552103202665466012253485135011770317777000550990265164917134385170811398344032134854222534674415622584078293934206826762093589022817917778610184243510503389103064064146348234770532370707966830016018326979349587003923047637019772812074405419189469979231298523526951362427340800196226910401874882466723024786407553384618229911762504973994744025561925584022139931573003035424477521036806726262967819615424828908849191480800968292190045277152608118441081524797949323113010612591930251369952177250420443026263766759228651029127116228214770499032428208089069789816742211551278614514742925724015206220871489970096685777943506443295069511264834220940769836491585978151478184081067462270906278017600325196723519307873129328503193905219438075329504677664880954930226542979117787247816542828195142517092774649304984827023204400043357082572202345624667888272901482659170417821124592796324950164009809237148091288242845697311722127258798182831700713768242686358052028715772266533207680709204187060478376190338802055971879272245560316904859783754316338997532548527317712176195273696187295417763442760279514682850925244522554976984054110807572643274796607994119884849555217445390884462387839426047728846000228902862442969247267252191324141063671106904955941740929729382992589514841433261250306750186867092582809074103709773968123936404551056676661104820311490311322328869950517543019343637435891092698327225054018547802158484102336275775303097237253254428180137418460426735037856912218656665729185851823212622154247180528604961575306747920134165722102453687436772006810334280337700534818345364885809201803621699847931994228871522029691039634840298005695975536773693159645441575269884954033340536100748019907392429676627432800709365116239751490309492125732620747370284447611882755602324177415334685832357336120303188165844996366262392764047100186694146588782642877746987878093675493958022529755025474047936275248026517999791969931170403299543079487125561986501914151401181964947793817179452421639686545929043352101290026052854051028246766689709236015361441022410919172906021879257585727199597296446722208341292336750316593975974872804965767053994974107125235677387286755277757076402532744060565461826471535149708895825121733297319688391877420592990231928054796955675280622544187694640107730574522266813689105132881328835778839744373956408561994319844482080317502346620037295909762503450768199438795952247914042360396262370383416728599691656694677085196540317064301294566283484487926364674578000098078600934213358098937520489238330571501627771422049413482218679745541874620938662899322484386230233998541286995442739407844254346172345589230860974749193729357320344842554098296062765831148325226901502209727761335691116345243359739859891317864762069330534904133928694834030714262249683111171609715300974999819983127526752367440810081807031034631576706949804340043998423449031298338941492608896994767900055186397752940394765547031344065326453529603908698874932161310965650359728583684843793359470825034215944505299609555789766858249179390016563061004036623578060238208990521669876826202817374491089500429853538459475944872250799516400987413577747154303875850525567119105786201860710986534077083217146159836194093424991512386473851593632155062579511228982906739293330549171924036621612715964288203015717260582065201130794246632277286590087035904087942178226327300610231448540978770901893739546671078695108064699718627074590704502341861898320949186060698881255461474787123319139774058847779266631885001715741560981491390815303159763307714544391312485414911965931667323749343134601445335913137010017373581607075656649869471039195938594226912005632580828445223201998127989167622838051352909050641864813285508474651189886334661292920532251230545184768070992587604655794650119367254695990048437295157835855529658844575095971983704949922168285406410862180947447419291886943321105481694045514505610716226752647935589452628055464031829320394636038644640798028476462228012176363392416365654706262475315675927420723877493123249088398227267025751333437800211694392640023701930013741545331332503083620338258286371191996620753418609902279050741539507755031327181536525058724828710622047260105719969176377872806048085628248810335559214372662732600234481413539072686531761101177270552337903568692024020226895208075487444445156416442484865746275199857660980214129081215834758299749638760338223492550252787013265023337702401468931464318871738125716388698748233973796822005601834726803842784927171709976261617150787309494408888643042795594736283147706050741694517932150033983607624425500161721960454436109900521476035344649052989816728998270117389182605562524819509413053336186472715537722675710318237247909812139649214783713971407294239127383577463129081946453310018454645097283820148956698288196924394259629103888321909731160179429179675492135827190863471825810192636077612295289325078838679718762607901948275477631631388198137501543829407108074470610916134936672874454219717583215755522664936265735639867133480009886334507526077608309328324287570786140630069150582088839302828374523958589053243444283691886986657075857365600381464264812753009899557530772782389046723165982813262291791055604284276938282031136232249905718145626483761047609331615272197195815155187522906103299236520749937230310958877098508087771682361859501808855727715355468244708715060464954334022790241562073197337000213252624727092352305974908333271154804762380420376627118624796609782491820141837554032001779267862067899291433031614679863436900417112838714144515899414423923315578568785872427069232697272718098316604328442041648090364374006872261698673727319328590748746520387983653387203014858469492295272426080592991806268512045124774033006756276235974457342498527224022084695317798612584544999295010996518973570710054815545518026258025914589589199797102711008802202432327163754573047721472625994529056837387216076847520951864876390708553514610664650753003814837090464717313821447503766829357201709616224992464163168821869443215274813443762039918885507050334434451640738204242535941336437405862697353774169468073914408092030132352489950135923977850227009049499434887942718580168101916496261586117515209248683337573284160692065640808531188910360045925228849799729016573417813790396525878621572620315579359678589574184229293243207505798729860685554280842287344543700964727938060526388810710659907225398693223902230618039607622570923253203783091490160153294132002314670076024336363747324619160974617189837850544006918702466136498822564125104399797597015944328858777860389754584988194450941771582150506242534048314847876349681760942950820916932326537883918982055487810473205182156224390358174668307933960589140936294547905888941912715593417062040236905457915040334006000455802168754348255800181025812290219305558718722699356595184730874093374818736418149102018404409500989039241366178331048812242638991262285632927075058526313760368645456243974258095247007526805179078593472985756631345018453954956442908373233234089949926337561324821332789662651874894759763374596122980031783155870511366065318176562176897780321259033327679919581337851673020073140362406697813457479513584178148225801932053068136839365621195803170864290700477638977350498857842026388447239813764741796943352558364431392549885374275340210930231528783747294951340878946984948857135974376821728704365436451372533067032215124407360005888135497925635055046928864675879368118857047739945927118858544220245845647446434810829846440522932494092244470178012874325817295473332522513373160162875764965485673264047103019061498393763760092351933695018663592107487988158783320375560535070385860184993435331968547903211757713068447637334645919039481775181826977684300914957655885137952210622739807599812722130193915171872788996867742547900783868253352489959029344080230341222563999688211757195127686906010445108154710873232188650102922883763953594503292567220349973617172013985463954568179384038292363291775822630942178393672021569959184645397977405661372308510654863658770852071110417142129813625827105648892484984979510151855906723054096955710432279632974443657915536900863021934041755758659256601565830110932110590142311895034271255746606499105347196323507777768331487518752192115232769240610858805882852764325128566855094520633219867468062106087320096376892010599583343519463240542777667721612970725433979627284654031990896347776827324983782820756435196350456012477967744260691293556739604134243597754585445126781263382051672807379986505460989870429418643713684070699423769849479695704995554047795919889366275078141456042456119998407439030778957532929625188783326022248094364211717539384367627204016644623210930348834232928716249241557006113644012955490699565436295691268187424004805809335808111020467969338666397118596297363487762283319491263974119039282778647251188066392783339755150167981874211904717121375804483458104401940556901170187132161372882047771938685370970112939070976178017678338628724782953219664025576147882122665738969321011658859423596018786166024415868021368886842004532154538438619696229036335795572868843713372338146937800656020821262085370217311007372135225101556648834873420307137520110494908518725092884404640094778382780858770946152974346997909805278559950221387270900995861294534543846498325683679287564071706772722661813666293508137817118631820285448227445976137663731736738164276646964857421843388610323640985283018459471342421881104121647096578420634723680706859520972756799941659079448255832773658312650200211540663029173467016280304859391543590440205474703723131758853031539401516918478680026299371853263552272188073124117390915882865618165652749113023878644993446574383971541022898601562518940776285079185106000969596642395445601400889625745807738008921309935290959654256149291703370277416230901174589238206000656449442100481719017440752571728017119031613534362746346041567190326214465111967102500925820086165442937948348103290692177007780120685546964283373052738730157372194641967634097017246038448322992758193481504239260284459449210577914441599285121212024557244185290103295554733171327245576082569709973900234284931874832419886913414683884005564507794442291825844822939391825771852684473821793225451245623888017099657107927372957095996162720560835890998734357756140596536847968871275898005493176844078514759734193160614409851808071925806238334007456047785656596913667091440658252932013085613520527417287737309785913239332827518569254786345170289172886471320712763162612738537362818203294236064204667735384019090104238280320749269123851614651376353280676326646852391690495738263438979855316986296658423827333103255106062516180498714516414845335823438805230906940728639900454897166404686890605047333934700690586885766078884795016715885410491691402071308046042826192178798533658490554293750603543845661354971215729276669651350008199124904463171765472655147184376504130454023342581520715452323475944128982404405322770494089275680948001654661445520456273516488080961277699235318454986295918122635791201675300778336730697550135397393786574488809078339443181261525204094629157929867948712771093204852088229166377583292606191396158157855032798505260295886059790558292939415561773115116322332349541623244476049106522564217119352609910760306560073849799638049258293931101993095367185146121297858481883042853526633141884581484402485329761578794395561351279288824257662790795747322015752712172717193472002247836089418148908683893894488291716622461670662531574543242240727581566476914399588229633765683584102040609475900069794831419685824224258826016739157563838088948085304362019120866263812230626470337095971414751627361678313367694227287270869458745369232400666728660178164108226482164502893539877337118756728050312570690261068216019554647378622936931116493758708596804885372066517222503683604416435672645041872292172502175382172025596683267682970959312420234242988872627893529802723252199279450247952532655728705974605551509416505104984183174462280345988291411587421074104723782010977810452574961814885035918579947901895285616666142271923174466663415397335418076411238932807036630309183868257365399590276892356955913067118139819871418763967190233651013662356847851579152813943937530147765811467495658992162379728046145228394404148962480241810639917893631717474215283521452999450630742374828888317351462649422350392200569469503642556406225055727874477963645142075702829385565327135489053224384731175264744245963479570354503282818850945225496332716172668174355017614475928203081482329676935946351193368056488743146748473274320652036163884954557063654797748813796765177540739807704201670176363927542400218849322450791259554705829431465835003107439683792897740191288497522495032654896996910954193559194412105026708469430133900983972819601923835337587868965453292308765270544055592807124638814108492268768614988996888246099324041303802075489527562010215228755699485930864132136412222931510358766321936487679183615794440835204734090176984233267040092831703760705501714138276469882382963173859375287335811125046385104237080310711411517087754154506612266016348728162938015839664213682956211225317544125889989499289052405838769212691173228471401661040256245415594305632856823657211509356475406473922006148405712582174470008811602794726197417136435812518146824622505392636560317127189059572202055016586732966328859887644083873793593601917871505521019172329363145291054675454444141684822501397581755416245468024489999430015066734520517903496332716657007115319591752520825139320420861320727790439233568570253977166268319515866799624173998061971682507690897072476848524693252438870679623985414201646276666868912371439142079682429500030633926956406873979581316278497833581890367813806269347314890132162201317664201287663508297183235332525909127380357952178749018923792811335548378987878554593204908324242336781425910792310616302906887541934701769260300856158957537065064150773908578951863485021883163269879459203330009795875134400047934108569069666132780280223730469362590716720352503336228102159615271971972758492745412591596934999048130642754573366328461074912270895521376566189966825605528027685285202347390544480518207725217775119593299370609758391261092237472373161880232247764493339493459747395934816325243484225889059537243680065072131301723664764574935983945073991158101550474364785564845665526312726797227836202897932778263613546339471087588288512270107281707939870673317089745874296224707695328412823879472006775250617598051798480469346479569492943217275853320006125959002065185809016307976408739244490679789962272095056083285502000919361236012749313448036506053483221948471722856550560795675555093379260987404482148942838904960223787384203720324228303109778211346627054581166425762950751913888533008374739989846470297101201199489605862861898723674339053069344880256937388484728378333058960671727263267214398013104136060531090198145506722548211370468367778645896702595442303548084559508657148599137197887060540363837119573591383351745709419583725170040332062888747054154044147603338614576078077959498695775365367194170162777915886526003764656323540753760413333244610502953084127886364639174936355423089697900964190652161278581336423092636839711506928018635543179824754904097552576079155349790309467796189553792601765577089606962620935013539170474905738238571738061575386555244451802430698737137994788182657723684755129624594089674737544609516936090101652646353983621304439712023641446992026039786535466686035886130629772262930171181961267970501043335202047471397553741527288454392578936380694886022063933286768176996962346531813635002251638183706182900158894261727072063845550857158889980532199113685260276529498896893555299401694802305829114158921728092625015385837687858637414988459227103263800420310282441273369104297447367852088360498200426025953345782093916176105792547772391190607177574370280348514243922618974854222157999913643029279991248685303792085591950572289646157917188974064105085683630441620446772561058405143827501870912977740277111942742257219456133661052279580878384909669978317762935149672766729819069452135916865759998109795820901783702810409335862941072189183342552869338480691775031338479553198802059874831728695525113217260256871943500736943383964950718391414619459163554534307833540606746473372257316161446682638529233454141224856883733949262829565885172838660200184485942626494228976508740460736853327440719684017983876620570937032536962932547032070395079990059070703584275269571615599943243377824895314371340431137198347730210365157692929108289406804029430558414731093725276125293119604720305439604552646236371803049640933692027988720880708571442320459030551658040301184253501433929215417160060024264802100469924291082674184368879114156978867591688755451581058331649521937996709260063873080138535378446645173261499599588076127825862325712772437855277603210703547750490959271222143221694880546312135301128465007447890801277139875647977403069633843054392784408680422514771447317841077691538171914497995824612398511126726726199741622202070675693678826305859308009171539704899672554452286565891026959510470182112162802050342881353831797258311405048258821210964582999672366240808286925478353171451698404095963592965649967046968075016278851091036959192525423251306861962720679715783539781489369816678975950022416799540807679441129992876411789593439141897472102933283110422847617650853210852594743792625473364538563261071903467545043149737942192920794348060610871613997264606018361819354876089136261669633330452307624166314065595928280788206462831956919504099951380526935229243323272954848790782786796709229894918829304894450151113645861276546773266210748671471761487779196078345093308239019803514755506574553665366109790469968454951918463482506171561712484166708281933556337088101295456681995846725349311408064920973035111539938577513017086990680748951145307726161425064590607690523742446156831065687229126447568036902276094543851446983797800730831181027378197334284324135628901790181459321833393083685287348067079177939013610705332904480045890393402007378140199214077087411645140133019987229076661314081985837185386906168603921135625229663911518295172425786414413470934997009006994195399199889204983119104773564376360952141454929966942632940917403888877113463395021214060632090067560569726885655246780986843594471127901913821053594337704680198203613403022217724661732248741953470172987368162817167355389440845176927979926008784077789263641917894127400208546165417382520065361081523796070163299157671575464625696555978219144845276171201437839464854593697367413140845224238091680626274781823458450621021572824488036893802180878935045073000592138282736475239689946357978869162944269073663375571958333258425729464440779844690535802401355917649506937885897155575578832033385472839965846719765726541496108247273276215541166529383742371960636204349662842593421910567984371577854484697946999435560838694764582752057374490431736974071624773832528569133803586924162245453954618350037687149042618167668590616034163831164991597447794620060264320345267422047526046721472835887238196643191144570630577492156027201701266625246545304360710285855134817880793305015499139054048302225330539426213829088338320662383241463081483979282994481318755019921558739736828426530809656521512532701840059555366669813423289996023565640836431748967491722895537141674495279094538188684565586693617380615587488167930551358564161365580990195055046955978172035284116044330406953848718053907010877102223571190580782232941376736818930821508710411492079453462215956378458538356422036057223515175925864829845967600198196992502394313684027168180919515246517562925397207358673613491878799796944594328182661187223840243654668476089133534247859411131459114443978588028038642196224614951214364481676813629801040961465751537176196761609560391575592015416020156777375073492703869803388226935169439905880747727585507938796194525650475688689574157673888995556800183215772297797870436055040571448925613955082166597487357878473210773446897931060585828473050906646078614268030268729856810612714698841018956397205559518283267212696411552078205548676740213653218497461626746085851429377934432222457688201868822895487658804706027492762002377319210460225295085867007193965634090427697612868464676354827644877405832026090705416669331243884170113765242315060026852969477373773019494670045943921978069575731834890774382032003876964022800242333233601587001103789892545518538461937085558991727298900024890179104019755735064873250316889311050706968749380772176746014635484687166138229038864713519369206892493086728820167955113805442933497946601878521602161453520840972886027226314913393428737746976146179236558465742357529473307687440068626010197069940144757776668515404145867118845623859966923886079939030146653992489757267925056622171628408364296548636108769484527987690569473357557570015490954895528393837231907471210650890098849748444003259468703832681146576562380387150559018156905456229179151271409414993165532185140339302083502354057666469009498673869471496824898594723826958026163234160529595411670080188464851745190834497227545814194687161599483684650199255073294409266675058835833271294299530097381632363785170688026453802175208727315074644272238684003923439469261528799540758490654598805686057300858006195545865762457049728004081840223460722777317662304994355494380991033267913575974476597113792640651688724909850986159864166851685587878570751721147387828177377170602469576537118047737198892497968286484225344866787093073486288374444053457132357365217043470806867048339181798587870655036612805976696947389447750156167002635363038895709158400227267638986586975022747917519710874253267107690024319677908151803732855655748731319240186863674767783250732883815133480219992245445682313009626057176974601028972704667376501569346926721200732254102300170098028481033944453752986406279740999308974251720690077498328319444120132700033571162757420371952716848425195611420002043036522365763635708844125200753846397019515824506999111144748351324118115173330855123109923648371681597243579870220782142707244243621991281149737222146654364956598960114160632279400277252937352691555686500299861486894547253833189764059353701401349160577900089615368392580050275716226320307183352881767057449753169983615789703723241435463482940819259784328957061351444854331495980937685663839196203089401049664778495005362424763871725968070190045254309589096940804059208935578210469354861547488769597658329460205559350187281110319765410335470573902003040556890056432440184600246259154264324471155929390889441479755210733697825471746573510981873268880518435812332853906558628871043366650167981380265560762707701291203333556937162397818647524697147678288065008351071138997904709086582974535250711081300820371647122605513859220934913761410177410007164935324103917745420374562375905813561254915755168519538901210197721602993457307705784199044380534661937128700186226006803781026353387344974245241994448428755282616003963511679618136592380449172788021306802520588282844064012653700375944029317279836007447438084721189556210312811538432337844406689538645838331705806598085813489249999842560773046941494662000178043274794791208915805205670210677037458901265171752888527896480544679677286579949155497102042470931435649670265030869813518646340383063622368997491600708846651087571907882934276809956184993077935463474134273839895222784987230415971569459590920161721860479911967108741974040222373175386168126748608163158396058346644186265371163044483790524290735762423134312113580272487247145385649519105852682338564748162722132628570761562244639758765902703284614478519910609575867483453188729442179581825500611731533976441071928033477252418712497423386590847190912409201485948625675213909466850791458547609350090126353377000162369179221592424035887438332006366442873706540072663481899123463080267418521343918353213145270480027068103690434865903109515358863683065673505643111913382127817703828219735318112104490797960221083454682245328387256511524064714263878430758003130289583517245305054322317826630707958925721199417293760410465031586181089160795011845483188453002234811053699713796880892516999372525395223157824038712433166321408520405601905027272415490372397662034974481366531013667547569666401766960490463540775457879909483914421399586637174845503070079782314389152039920168889248528005048155737245422470351823383795011840082727017416716468782870400562739446450897444262362800518518940148607717310722035792283532165929425861815875216745636405885909500024076019024570194027507362741855320444955972992793824464706832540868104499638758661789554308153928487230476922281402893325669481906151274834212685781536448906949372525029916646720747022198739588068441104159596799792104742120311196977553100939386078799030528954471208151563298356218294353457564722863619742449699998658900899479655334249337400052226825868448171457424972596275478299711511084310068747919131723353097176850852493174036670554397604789821401993342981328083597274997770943165922734571900067196123157455799563113091209472217297912221389496071691910572135124739736163407899226887817573257009847335580747331438847057752652278910424446746311270584031928123443575463188395373569980241711160557342001593828005559473024208108320577175237079410918100832036901308032080177523554778122795156898336892151474271169908128696841187789334901878095964386949415309484426819320675104585261624378381512772621342513726809113810977152720799675597679998355117167036484936438677708325077446264600626385508539234644750744481170262742907514345049227196588107233631486262199639318905720178879835178522716898906459258766797599266939927132511069292001120275573534786402311572909517685151539434532129687725495726704363902228104190068960369223126045573784807968354583276262266423632198670543212431419890006981080128073698561331822330139951202701217078565598587108380740486699972868895468296427704877424027695203918668897643574293234174720089267721172200657047166167036633229734651656731607969046193959846763372387855945625125904524860169680328191814151567390708618604241024604327554672111025059795656163297512885594659516438930157225462851309359253165309140299621702049591334292825612320506529076094484266484465972960198645457449765463484423381035783549414591782945538962674292586419994883980604757456318326464626879059924476705475977592550089335228122813160885418175407592070529115401075256237687791353056072647861351718512430555652130110664808678949576316732321091142001131995305216997958151290402918310258448676487461909137934022100892345660348936833160163007261208403520044179811507416036357401829684460271741227054094029005167046387896601785271252982673201651656802601811970669782076269096903576841581880519061920698626718416673609948626738135326987601564562642839697057788187351764945349433602849863516166932556998088165858853921140075180302454489430456639520292928858274148475031741563016266940306870764604272504434704393847272415176421878482320961494777413081748508988775665512284543312005490270493820908672065339404398754011495502645419932862236271170200002400139871350234949742138123061696491635528065950098155865024884522190822688847484453051446010614201914216448176122605486893979784382249464267022506189923476865357118885777937736497631532476415880610439254243473771436960142934989531219676211704519001861243721446058368858083003660067770203618010463485578985528523246419128223175384178799178494780343108494161745024876233762051683834970213404949344766943399398742984735413015469010212859587978334243400813644449497754483167973011309382468592812275841687359600920338191888058582128849091050186500276911226943216763770677698222367186626371017783389638702142064304956893419713049127079303663928589208371746469713195135622385447354947173867940418563002368323878153336834955542232384440456755838324260458534930066577984635988221235266016763985192147853812809749208357779034518193791982851380165920337099011029558669328633950838029033972560702250203187777152736821227513066103646075349622942514989715570733830104169194852606718182720427020101091341807674206759442686324385273261873809401407233442171977734745741448006868996857455841984366874020728748187176550766612818582367163297047719530714710070106728871928305487872425832705354263930406758332390744264595055412425542587489471607069016462390665649035451680071982508237565294690398607830727462986030811745115715826480486313546074764550567060881816756567746045957565712280560608332928494182647149533467628682413299799659582668867839020263297638258661032874588169976230457979384425041585101142589925116655772798228517148131268365281050169023725690253803246621655426608893226777030763579611598063426175515778699875636153889121044786010316247499588430722298388530950677456393890638041837155416794875138302066194116740947511904939861361550661801317114890148432198585386596667016231963978708441931843885040156463253110765329202066591280464780396874465922577200028947801630713019571107158176206116659292166579019326880767022363719673003790997711040303752360444666934237595986923867299585109748273387467420768266463047150214308089611676698499423395166342490645285033887221580427679306448877370040099382051644901469046051143089246272819715104002428685061968333501550675015112596085906432636250000355264712230206825034501590737657510373431135907586534544135367616693209161468906409199249176144647973767777323230119692982102131502189242027488843611780187425958374139224278176266319889063131299382037886795594242710315608703459579363507961305516238947110616319026839728540179784521573502201834147034583307396492142648067261907043707792243847912775659786340256401010191913469664472324597815854156116668525036616039146189752566648038650133629043510822226954212424061962835417191190201635285150314055046885421930075936207789412631020640661931200423949878329647027426417268400667751388323221548659465321864288495196516934924699264673209077575080591903141576237722515995923699920797204587051765429024345268265980498027654710249200257618768558487515213047473516599912810608258656898591141674769728327676929201939708133482729490552550432131678566167987424620791175797270810494226418006313496689215953738133863683437630765833190456825038123444392284270040038747750895194455982588926787754670465782215102590057084623358854755025155320300804087489278714039945252294816608654891179473881759600597509753937008473425770320901243137294515264887847264978965848333105622629722606388934099218352345129673499660164239429539332631324255194348153227265043423509758486771410578933445089756490941254215734766326011604435428208403085497750186828094680667692223375090355475336436751421735197726980480008075030829118959719558531357476186093318861256644980747863689903975466873920226593525657443866626632004677292312504498680825317721935259454100155818436649134459000303731876909252394530991530893628997853331063783903026021937266222959326731611334776696847705960340060297813604609929750446899755943253542241413320032648848588668136005843793583891848133917633174738980560399622029204021216583159047576708479118206529162599538567932685810788420601103887844178059531490072697238197101068177353131594691139444888263365696640710046284857955006623515882727417623410955933323085075725831675411589019916962505731747535605928249045574064999083960493763670210516085578872700362587381676911768247272564087695382637835544585351552519703693492398236473217134216396810726644424243289155565592113872776355799746766872569532659552238817337611932121291512996224794761774726880937041890003502046108444526680624211840963925766334853767981819596388277802334937409891018134812140355577825691769655756138328954515496277787632164560834608435033383225211260149390433018349752514969652886118252492437181594196586147902317898017832084461491907344981044160870761417585725190011795259366700176048993743385135757920441289973999952720000485056367241263296537128065485862348503300863357083303682737885879946422205437528660871732378326750172115291521537376474025903968525818534339458180997772733053575669930623330771430169634779190056958462228756017078961621474132098500634802575413802508295543202799791952952342940926601240546208799075669369380628099283969097145951384893547221757560586872880121688186502208981995198827437863119082074637821990467216309765484559603156268178141519286103412960762804546520336802925153869234229853418246106578876662990022037568624473587015152763785188762412387996409411517452762790037700314835778552568967328967288434166904622099856455306256236993351222620231350760854412130502608990832183349400505678238137633052417102962128899264221654133272494528049480955290210832384776532514625293245582140274054275907972642745774564345521839796797068854674148885197930144231881523906548447798245382089712595634248812633821247985815338335564814160083709249498069801704591228507408526521702598918853591007561213702131203683683917472700018119798783081724481715066002875866773526408330910897233778471350343816524775418489121512791077642075610640406775454076253529112506521393599914235387386072784786488052994941424889423985139692755884102458506692462214511611926082919878126739391657119896411824626900016481563459976932051121791339251797439441639052922531741198168334603683516621879795126328177419588182015348223383754642404975568428397887510726874552642671252954786212877486411024954873052877773895904756899960267230445213003650203949387930636261287593230220906099778555395895373000244407969731043327844730693382579039932547394050717611461945437802565950234883923425347011597710680976405306600230000213448487832855112600180583121317773552335144934269051999340089621744415377177344266858682703146173773178437366660997568807347321781789170684402057159222938322139607259257139757939751039145442136594498937170489602088992662404500383864130907722736720896116616386368366347523338430039157510592725850682500384507277619226628705920769501871292625028096592535099992003724170275656900966800529735451667122257131733638712237259341560671185733930198547979582769868034627901045927887638606776811155035683267878554336265129687914576979243850306826708546181642777355452222407080070921099812085265309794978051482354859328431546269397009850052087980201584983293978206469819961054084416063468349390880736191630207410545756694587655782540933313306519736764373295520987326482330956507700175714115960870864916219922622037593327205939620866614330850169674865881458136828783913913989718998320001839044632389284638277404126659321347097960293114493911175200892963651662276528159864551656161037196234156430964764625645786951466015317693736415862746428403856433070074712630455402892717639277646482694773338978091559776799853259898449670531864155866294018953540161314579116410894807710292303035311350414124969067442632659303480643244768491651075052176514650134876076122230586288492372007696920386126352982561191054502785069980373383033149745208825443585737273719039371812433336265794467515080237518273631374243960142489989834689679502142777291641227446560206372020171798980286813239979998534840768259926525228201192163571893928606235287221171902339037198876483120406442849634371889780399240981773164501531296674260995406010374972825679198765030988050950465527415380909181303580257011984282566071924444128478786827698904699776588165124827311903851548222736373110305643038607001805167355027139502277078326142595796271894739264785156952351729015975218872784818954394012707712059622421699201535988021282497877580625294646086071166670395795327421613556646278042245490902620275652696357380259541649622024673260418394864376942899422322879827370566193448804869073508344494956143009035707709267216996470858565037562396445158855852509817254813246035060276049905007568460725674240807025843530091185567339536363002342412293606905313412962636960373715228475252835693581701570451610193056917411714355401051371288240803383181182254714987177426749652977153015476653273920373407294567396448750624130888790653511627828440827812624789147566345212369461536888930394030611666592565621023480096139584620285854187032209376763359459190523044953745465355766935206022484478136039494324998695957644545817272962969748580326527861161022280626892831422973897624174873988319125455453762947966578635180878121989900076139720668135839735068396100946790393406656147451474633821771687414758515844163263316139656775983155550633721033336869437585097098403218068242075412325524093297390333221569976176999779293346442079159906442133289361480400524822842885501711571850735792926027066638339624208681046705784341612415531233020776714065254385537459891635846589293790335856558202505364602773789770758438740623620975063414716898144499806561144174145064884093050249361598251113836729424142200772029211489674686078806692701050716847841180431098802292658583406628277964232882371657110954876288286373418866667308399301744937952388810718513407915954698215400450155043007548231064854744154938246926334797059752303817369973022357330433579834806539672294593729100837515835025534724310988548366563259243077472700030416749792652308601709843274318947013776447349307240940696929178726743052927628156215958683713060745396550532971057412149909132713851067587312421146600915750717726420587113487338717857455604666992081616799783215846996576801869937773574681074271212586357935802556942455906584095683974383516716404426319339496449071649529572462316657523048416493713610797478704074070840112096266396081440526508338742782326193032755154551386064367316671442722437784656236493272670696901745255697419719461717119272932666074439190541708875648689623341168861594020722249010231409436656672056551915128788395322831060802036147937982855691334396942931562753302077060785977023042771134608847034045014565537073437643789102584219286103365639888620994640391563355880729211138876863120807509865301991614472487976452740157705293487877962328266642051364291896636060547531179992838304935938808377274645296378111297417039970764275089688788448909203560327486085838497850096127317856366678757727401061062641995992250074756095051977109764969371519712028577290615593620987169281327232004505511517392759853088852280968514774471215747478896343626870256242285587877058126639713013024932467628501193024356328583752973642358510291955396125099980822188556987222600418963908918495019989023399653965324656985583070386919199265475719527607470019483844622784213484121708284004719533061407132371700155644123425465994067734553279240125160481440339677207517465114542517131470555249204111996977355436718684643140217991814560193455795369376154781028452885576692402305549892354294152853514962888136758880417898586342516661183061423713724157909725152626376481632733118573360308439912352472700640448242430728225005658034195247758696991364407591035316848194168221889395816414909821655352240816600335367607476404733737761012802891166503178921279298995051125414197372638011502901157705525803228805881238449114307785204335296408258634942960174829944829339751500247054702134591111907067584754338397507085038231682137737128660191616057802120949098912836901439235513016276659816608432254422368612078593462518157677477858812520416564087255337482645446877193630805934557592764285255807156810704974055831698858948560192007546272124275740039058464606431457888302086128333127344536339496540221473502595438104584586738506889782663703865129956167423893524559176066909264025575511099284418061613345032116967238713588137260788817856281134443737065045840359243016693039956567624921054361334337785015673132341577263651202670819653051424431174236544961022549927247438305287027449724303003194077137870742831581469398654814301544808059329645359740942527249775496253024581696407512240817741202485721197420948329106797132087626727197033147657164944179087250487045522252512279280116468751024345973439248519268311780863054441896107200468749216138918806614072915667490001527773336069385975420068566429148253039471341863572285704479178570901872737116698526646166801277688743578899251758297943007353886152341197857168157960043892722993101590412765542002149121651046977827475268762146886457774641961538394843421337461566021007173135357784852210222850836621289449989217873000818993875013754474199424518788150698761873339320014469827356254923735768494985445810310418912818015955043086997221056039066424024261657227925243074317024415061894193483577559784730799366517640813489093515741013615462954095191456196142951754159300605297065746330829601931346407002597637284175866241840118245127184954037318121408245252193078761642878119360628620931105008431060076733215184647979906273329403757248284922458773038358160811320088261371437394837785956985879263538908363410057898343778195170118309484949445609014969190441156620969912147395430483177329835079822459468362225760418632643146188880760831022421610145456926744088857836360219139376158204623530577778434334017272649658168305775449943942479140391857739536855188327158711049210407334736808720510973743231496883343010268879056561658937029242024541236473867898679544473457957022954584513667621151855285365653765054730818176567642728629346916529909151749759572895617233451652932762540999606518037856174049433982810519844402456900773806024652857056291867548079849973686641196079375451155713812245683992876610604975125401852082284176476758336778450334888153418240578878091094816421066553658479545073970768298197057234423975483787777761948216115511382794807569649282668504067168781171499802924220657787559642197669344482365305456708961889696072685065366532856874849170408665311526925469101466770889846715683746906269652858540984897082004837826688000437797269303467920650582526269044181061002699999209827649585370460822042806921783845357495961288622223817192075833843529490598002237527544340442889292498235408016337577158577362524582756798478897205491339748367952305030973842164449361240531600831375531328135195256931848185667035817210685398539131352733528226426925468822683460997406834291685921073399994573479444149000217668492370039988092269794005571207040603530900277174214989577275706914370730296874683796698101454232061990505356646148043225814863441724509363781203833968795705325704195965446296181366741458564153929106273870705751724446279219695277102594431082022555471021639134395633991453761835269669390498305716638897008475117998453413288281655548721958290432700885120092112702131825645138388147103998313290461316855837867077821528148277186555250092297988268123584811100791191363199712375874253872135583324399819879280200381657535471986256122188027138787358935894017486465963558668161020880559976087073100236965704502265413035372371301023220632535778664912083715471560644389068475210723877966531661392714036498073673427267609820529828734810692866196939773233821470038725913916112249981023623978185614207158882287614442495098884014699651077484079728988733656161062975323670626158818570502434618171982266609682726690730453155774579001529107465210789007082187515639771484154781431751182296893163256212312420787639629657314491000398846030837396844859186733720659807681898371122528000290468299729192302548744644602239736471244178281201192980554463335769914608108567376334407253136571215841807063183972429735457131383362304938609414274121912159702528420337537492312740419976736692733395607389738925835508802819980032053648571347114376407363382322164782580547853094805639376919882797957273030133106891318366199514284154487793860366031972508037953886959940031691571493723086440706063455194643923926115774193365560513409157700183396694374435244513211292463051621377789218633805278861744364659199368766832722730031266432145529754720046712884054924884396881659911224314729505265798406446156202359976910867508734695511608677163507402799337432904748741161895114312619186918614540741693292275294024687032043245617183676140696480084525551670972117132133868480720736625716917202232689171722858928147511964686794815956567792048262642828053420884113965750934986176148302996970523413753113745413182648873825543004798025523277629131399132686313967224364133965495836459310292773817501221039754449032733191829703935687392188971862066123101466043288179934363003358724996724113700270039567371075269024081158687797181469009434716126801915218427907339264254725299074105769629495401083808305365955717613574160463684518477665658288915588332074186202968721759324188538575295992567175940317628208982428587326190344780351844943873727853633642210759784882831496359832291437078573669028138802098831134288780712166273689696514506965474094604005256202134179552894890898084598873427939978484107036225097985113214344947232708766573941613639143022411086372017799282785368672988414864784060013064658842657754203177450312585995033905433283928066099624194393415096534227363898662256155716147101384746881230716476021065186575681018748354631635674600290705067148238092712676425483613174183040528469531700597115055307844736514782559497757893388327391106167256800168339325249320982900038086124045693377988955227067081567176069874705322232749144698112018640221401736705243738514353559479119690948998638891965598175103210694380077799056527932068659861432899338853011048176659066560155204242306942725948980973923539853868758536904949582351902929630878377627851513301740799068530989250132625723835838186981499697872806040681195883049474789180115132916493633777576655121768145676567364750275193907750564105669216478643241322089061149083433704353123933960301673210805653572874229495761214218028617580672848764187701860784309062023082361062656391880692371379360991218746962990688085026975292269540105111594246602458752315245618511351508970005395260452795127919298523468148289329660825016676713180777548819744768613741829883436076575266087573707148908685105324786835526847049227811457329634130097993039752884030756033410958704692872461857097178600099051056882005555235277659584134474180485140278975586448148638070132758529500002585473376494069807141370291655678484464697819385043191996753465632628443331490432215439196966322387006886501970307968280157858408405296887667724213531214402639081595910592866808091636077613438501658172587878636125538241955139181707064964971240305210273352531383277923268428890556122043817573216031724862501783553497980557566553053804164144869758269171548365096058670624819044710484395569571486717283179240919802317150176975931886085311691258711347711392691998145888317253037483826653392689307088422523994352149038145910504724598991881080335422820804446720615943045083911964013127854233218310630577584285681306380573530316977301137015188315002591811134283425200775951322999133362654020892904711400066666896667108623983429749281825777524688167615102669154939086219934386857471140328670627891475461316810414431744311685908526939625921722725663959017743817861204837017072921437154353455437552496312761434089536081301099676660550469856950848688328290256634730155419438448598975549942945751700106144647639201704034052192796431517419330970074511036317500753717645080988857982851128513026236265053228101786017906519108160047237372552365978695706289542988454572959222930243707542254299743958396442659648741074551781367175450980760648747093637423221203247802156011824357176138235831836562698184775040017604540258948932192719424342400524242011229213878645463206932498628712168216316906547273838024914398642792742068240418136169546783191379129290733895403132958491726366022166475662479979561097811302716349158286459382627117570984296289743439997173365984533134145182792090590376255615196261745933412255358302154323070126493882607033525549949352848842403037372158265474470372458495406484270081219933012452279708595494665945686133976593242194887744403007524474099436724579868040248043980347653041672712040432668360923882931731192349475377454587514568546997099627897618676305733007611693396776476051274715399695348080563178812402825343337112260382170774074309651089379211873259822757981192607127393078788724452970168255726404892882725623883602785312072987860566629544434532900311025576168316345629592616790061021929314098685135246179854028669217797562256387266815073305491396742805166072462953707268671415838999633323633120499531368942693206198680584990274299266383837140592871187213954467901006695387213622017021384930704909433282022262616126137806212554119294740353181602544216350603841844554567675370331783114863340309831253284821274461727442636908447903839238146880262692818109045300363409413188832051513712859927485503328343565080920560388238127040018146740573581224970524133118693370769658534340175775131702667571296677955628576170907077713578464218252355451835529488550984797344212784491564322814461136900330950201590255469259145757428141845737957303761365596696620859297738537893840140841389181769301597052468891140216485507509443951793693794924106004310029083166597093188698433620791034408288405942786332068393100899931820268795076204275350355243679518160417584417207283820038439573269465239843377025912834566053487692856668469779661192828734803345205539916616922915964331007617511379765801388530656602040091095127299220485557944942689732541986428286823436884619066823922292008202885022258665795838169088752282086639646654442185688734385329250114019218185655267226390823046059708664404755728925906642006261950079934824041449821021669698478175689513431235326937086779371474112431456186857982266018380505820884344903641336781111875231679700901585034244352424517559286479940312553915526980549198617430869081600090632374331845450329222925490033915694090686637644077487992096732119363609734374794989989944780957198080525878936308758814529111632517995964847607804328186003525142505491355805286808253146685583125020738881658442759174287612204838269353967138045206480512451711560541087909983926802973056396090750256443497582356708689225743410152951541200532889729289878046170922589819650781013248810756557693201454382115371502800825966940299256662120570582469503749530091943796888291572224564378241219251437407194386416128947543047529453555407149891440821385934098770065635431257366047191353950226572251171994327540651603219006510919218929201576525793573372064207785678903569250971497509609125769114504552992709348435635604717053040536600226284933404232609151540038950494397551950469285096754756360742767315892181669603421185410234355680288093986034855241921104633643527435682062408135799985428062227222150944469551707392911624145253881279684122163464360025216636266213071686053040582186195122651911503232458457887468136912012687476366437787984802083838094634498068467811094267213933334789354291322833736580487654114092338563786912297046055889292611614744941489129538835752688436265514964619545822976745939522690996173070644722312073784111956816865126987484543037605273189565089607547353789076754645798784752757578147254180950146408071789603139673370140382756881549265982411136513930988371886290304736173795314747797446064223352888363939279166418962994557400379991128764160391977871535574854017462839588898262370780234770755316437246496994930036552720319568811094234245071171405087263546588440953412764439566834318517310049125479409186552902831739245208529437140208754964843143954800571621188053783744008353290577830107011327723796067379683417301207706386376408567256619369553425419934591199710512748109588157966032921060793453967883685264160741321424459615127117297869899526934646423084568959279281005365693340770513384898377223685407601195141155372206229717044581014468812343798631443321585659512402940570099653098948207427251129244528752356085373290676850763088735293195615180835184924803595596043924067235546408319549836552911092057286140012898897367200005555141562550942079126854373645718679696449027990895636700655673078302544126397835995459334089222049815864512449439824901814826845334903815503514421283205579101505562585909186372561947695601247537104551042516534466105905650186036699741838951626520098663058243889285799258663485937099177043762528552912695584925096938238666698083537956406590949193499841456370867582294740925825429998180869080812757510829474564126375786649505571858636794802726026031525072086531737297221775088487514804968283010001036504503560863842087963945746421350347612071303636897110559660448696478732078009600849747844532980134078050163070168285923861278245418400249551776394278818651190227184269571837333812836855595898244764824095954997890422492246676546746276432993937973671154090285020364897721694367831984512862488842697128986621798273290537679578232656188876730569263366756004406953904634759734262120788943859288738351337750660833760259724667862220505931493939916491446231502979422299851310688651278853993509904301978313045301011775411593823969545475308673981700811355837924545199216875311883508929918873429832555013756362411955677417376593694937158969286164943462839888269479946169526482888183287345888132987014544010379508184721502054019743201676650460618293632446405394627895735533160509438207004716364247053905183568114784732864134501325904154149187741985992632655909025921263954206105672907290325771117459917376192726416610451419387435323414584417917293336346529189994983208886396610295473830911252592506621519778429037142905193456155860043007678531024266299327234761711341598839842066149888855486152787730395672137672110208394960281838877187433963971598351424347850246816073203924672037748730239084291215377424492661113703631556670638184729296910208130079355988303139263037773841357727676023421033636219011871702999417250223261001327913265448074305800767974136731784828638063636790764287529218622360343521041728631548095350850606667097047386705740973733459758089156626398664302870609925123494163454059881329101176463734455752278678585286471621997282537948245688282665113773986660231467285468834451432482154853656904499169407508443686072076691073659367256177897863162180946542483998067141286139275546159280854341895707582715947746579136590917909799319179186414398799914790473461159271813664394321358745247173057986332824484847373638474951220003449686807685868637106503605149703840700680539504507015300237671663421949586791331873094234354541445932518319275641905192645327285016441986594743636371543660840972341518566980532160209405743865902776636282356355688411775417846003155388207844200612542031643224229695256814017731347275242164041565091674518403144772104667266000222359230238627415529775239041770926261314670136784721651814495729725241768292726907885547423693703636529123067775768888522503434614544056597112775995319618121401656174492703708195654975350813788733031370615006595146789083848356055323719095641605274059519576397620052589029040806925724374023365633055430159032907646084956334846871762037922470844116377674432818933197767368864423399236425784871638370555240735028136143246380573500385086580978125700354093607053639314450795628105844560594879878418935882628028782787998959057620009806131238756352263185789175261367648284483932596797355800658689157276675574710635145013580590385805966297364123652669936124167946220211806815733725404129357733154563295553242289182036011415109773817563126553316931175035587213231832723856257149932051733067655250747602377670055547038203269776507934886078307392169078234869073034975952035488214190520393220373740007740824055433006018562972681153645025952915981536006897042620129793825355138819312782471332899141290309695472236632210972789666381523055156417495734976732563374111227088879218648432064001207181217537482011184104384644241442433808551221337992251406104398779035103877342481315318845999693529657911937714344226896655744145402639718430289132057284123518598928049478014180297033235554168098751242893400730754961066541505862094079788939663755821937317415474003687745262656879214683381123544034798291778043629735033820431819606494997486591677764621688437563391413350657966806697179614355194271593838150697857526150343089082268137031312001435482717343026767154027099287471188855434009103475507037234952636942064326380192126583625085327395376035439321259187502117897207235492094286001498155461706467413077260918224107180765144172976930847470934470711191486898583575934839778898681135467725810128896495683318682853265879826935804006725881674164830465808292747569591470089189584773069398475770013131302841589053312706139113260745625229856866232963329755164335496936151643631183689972817769590935546157240837669873201102780444891857974899230803707574839015307652860523008479327173538727455125648640463358008806531946106100626616987361192486393242832107764232596460060973339939827249543253673959038551290752460451910103217877960110275327626709933240200629607989872242433750434177375854631388376091934992882387373805896707287028854489602227458928105944547035066500135780287169890645916493825429856964289907516698628868583869023166147835260663118376326772328912605420382530325448868450957655836990201049055327584052722578001362945017048771374066115929478879499600812235346821767228387042640048641021251125830645661533193176764429279900339176393039488864696643408410751318219487744258385433637910056558772970812126197198685516235158512499146518567093526352123552044722600929512325012141003810405904851180210783679370349628839489635002779248524005652704540896982794353568078899843004038938691993264911389156655314272250367550942588981578999526741359884611408324561985663519027999553730169638306495797280340744044952698573716712251021092624332013939583507075030242426267546938904565150901537940045879579412684624641953317071147763670576866156042220972996136126353117015190288546590825617862622448900016902498529683067142020305412403239891543314858559998608475651766152351603416628395725381970097714030524924412442077571338961413627654617205581899369234419874517176805017903350332087584500422375358112643247394471942777319032945712366414986081409364271073110049150923090703004384273535836324850897405621197887978463626844197278966786723910452478517630488189224239465622038423557550118327486465182040874539457262255510562777424003237085975381709648258212130696331403283684749452777807686226393293208443313688118146936779142925801009324307041424067329255864369713347586157986404974910264709905135149007420389217048709717434270441076031572727535648341038817982298212688011259171301826621217617641258047366434035078629754543530960171716053450304040792295996452608342744930516036696175829388828980223776373159345432357773537500466865470069696689470567796657265554151514168116708773165317435084856255512524966208052817346716808139980431255588101688347885407848730286596393107612988265477880558770579710517078962972322246715574980090369155274676757322197492413622061952482402822843360755167376809432237572061716987546785637849349238272029998283394069253842974654931310266686226519015231032065110054039946508621652264577687710639433289740317005569763789546508374331353181605480083595813798955922019741173324406549886178316201127884551189019677638220173659744684601094522886751457566842771300836209562763408066057848470821520119961256729506235859287964321843302671510828994931194001873479148283456773101964554346465109907970187294465392039796609391581398371531286651722790525869580517991368299465311861240134972922025821345651986406123881519340318606740751090491155470337658409496278806686186017176263687876241906948671193074989434918284508191956469199443648383230936253829925955274639919025492071935668304173727061605182101363205338511921995435419152286494050508214974694087720445175900513879273030712553463264957456967516847969565207565401038798956822830753768004763130109597818175556652135710571040511739805770428754012822770746212485342399397438493546862016973747148075200761771383734914974277594645065783243930312928818618929943036707526730644918507436726041186933009708305191597817833959578132682819340910753304193293190935584233690396104115668482636241247800220550643313913571407666787286629825400236161000825411746445762734219064072770502180001297696799603426363161114001567942029106924285659310173769742003007043758570025594436149844504649201455252517592824691049372227006057520698851760451042012029715170591722635543640842689167661071153787415199805298115837572341033891260986016221603779053929376401858915424299638374505490093724794621180917737931517959690497626220684520566300073038101473374359851984619029079449968975062134649060589974099645924536297620297928603082947059457295088592876689901004057343648098795294663039463117628875429026268256451917118595289059645598966429719824705259518237569867737904866170870269607614767178311284197461193932070817039658138344643341011419258795395487069173987229630414597874857165475191311925444423385578102189843151226287011901086786728678743547292334499677232047620324052088503689128294206413275944195490852189407924308884287945871351675759219539059818944886899645651274804968213172139508905365929571641600958414935447749998492266991970919607132635917517799077703284008336791323653546688942474820629408632446766237636583379394718631696294417689945955664726101255106379043171446459209660788536496355919053614910393097675404931008995178495486545511919533637538602932652456466488877593036664463140697467909052319480890285061071340756568422528014150033987257612052019987184270144768478880453571136134699727421887977416255252006814666003360862221530431976680522526975468344749109175067864055162943691336399468469610282040902326316315750680293384857058237271033894144157629917925420762450494982449831698429593370500826498970869720866859929830862462132652433319273660364782586468098770685242514266206023415136603403584237320828047104248990830293634040420286488895962434839575159958166150466699683844404056054283365331161507695069552763784280881185126659820831053994894219970008053894517040101787010864621079494474084885694685424669472411646859715360195490024542472315790839881008272789937718892250345720946239234724299155268763177422209403947945493901142137119386972341796313429784197585323194418639462066323202744589887949830615290855695855686238204813916902488830810224676180685914660136088874733042047441022429015039442344558189673675736125215831953877627097633993746733545401888611706843559107875124027588924372071797559215170427858124048516026566304811605072886217014275007845716384676540729495530935867787447077771136955737603149926146934991418293949037954451211772889219951129395292411133412767439297216279264023940558477211807355783000494129602474903636672928729694662030596204242148994386574769597717006623337053268577968391606433893872572113352483800731419523647799354672553382458585238988658448460384246463427122257499292661367368514460834787805850975753471535763628907191858530090775967222004069490171598418090832194625435822104411896340843023970785272436533021650696678565493806705556170872654910797719191080066093314072946496056540488905989933424536349675663274005514214857206520614653470351902511015684907197248201935317186263325134330007870744580859114196992686949640113881756103068262807396507950764873570646955072929449054313032922845196867708182090092536766960534321546943541860668751186712849918605173052259775382359182807848904698836042077135527630137469192435140882863243499271275163337623990856221964308541919350109789499132759969882601247151075475781819356340094668521128140370224440314569778313953446253206739901348136738785425331681010461607863888314277895613962494220796585364367280034865908205305704434223707010985206983704932257527100807677710594995924578205747963664788628774643385963007097131819133831594651120606259947950470863531097243412307316851880933848468114093389605981319960983466535295978964718146112895626414789544769123335158377518834046338336310503305371098726057456168169772260645904827832194647521708837386817331781304530618330233400306085948689675185396746657831355966553625238889435820515317115645021479201579028875400632416991011245925642988773025864496582087501982972552391792780394480970780325479163461447189329589895500490882092575802237495881571785335529312998186036599720005691406491317596260445303030329618968324147885274601990634513007690536479291568368799901608000539642650030210876401857088046465104593641717076904613150497566070224394855667878827656080627900501274169759729344389539694655436583180659454226414719548627905323442960531952334798110309798844076127227402533033620436318980612217287133948063971994269430808814393826041859828069431337775136917275293688093681305882808151101446954534359273254117996050823514373478596530637708479838327585377848179097262061315926243022753106344378060951003406956252131404188986274766895678891816242369584786699215164477095249190669450119598811783085806180730924977813106934504925295764168575236400088214378104064793758288928689714056184810626796141190214900528933380940151215203581630038365650197857714577429201159935123448835463353944353984178107299545379259960909451962463123027495411635086825268152106630392701746046688050572469053347615551860573832793147698705246467387352028216692575924401873712055992395418091645875683571324274171496962054420950914059917624773571659947172223528199552806917199265045166577538511896247994933198041450657563028440898885941973169796248069084532994259873677883525070159205010531866080591257571260491213508437174978963644854229162311340697989983733461437453242239564894619721049478035514353084675222319492094677377469759000431813402706185665576217615724985247700222556390633470554029147503416079324028598342030666382788735805632413255997482099155642298721509015939342116805489695054221016836285487481956280662853956467406750012038223956140905480862158699807603877405924639602121573918326052867982712821754539884279697096091700403549897758595882914453876765210991058004061359496454638608454915852506373795276131443778010664153454784281403519356206501407313204230370351382510414317280168833151763520206284740127271555246163729431479277800199458760382628979610099907611494047611855256557059814628632937573903235014623906073724096334593960114049523484733703290788044140909154720094381255461373091584962928386777151643076788781478528638226758830459966895134148364404072336977052012372324367041381579565410657513185576688413910348747655952366654167164524818673582117705363762479609165970533880882853078023368965656263421291288905631157563499185516851051954892316698376414383505540251859678605329271463327343512007183985836352745871223072849489097489744024891238462566151018187010385760974309819603514980032261520302353024972379646332949525103932209955468885120405296710850227770101664001052948023829465046451766761109464816786021235308163339845041035022070692549035014949508245242398633690252650949701090698123297175719759811978064885089193421850336973912173583365144050459525676647468902520510479510458717939385566513752557903662083743483501107033953113257781948014604938406966857040064888465182773091505876890477261666154924634045425103898557211001717897496234715821928683921015727194399602742003083180474384459279437336678301043604100403422162241243797220647422238090814452824118823984531758150931209491683969674028021695810249188983582779678325361704157474900576590497203679364929364550237513109924331071409481347650369270181841990257824093442205401929067121569189982799282571990654774236437215287611067558081056404365269784571088200342925956177026205429882913371413176410084122621785322318082322186780173010527716707633112778697536167087411824286250709679997803159979275388968110330012850075031360941728054624756368224764815037714746357494126678648501415034895285554276516538019165588759526693458767085165673050993725117812413243856243864275115152176635214843855790228861841605392297658886469608590454811478200720774393788205768008336813779121822915348450187424922147867221492495256025487486928133701483868471497878270828416096570054492217720103365873625372098644130976350386511980904272949636146337975499653478240929630531716561054565539509628677948356936404405573490664465496922865631375350686051656436568714533652343338120467685877392001731392725116242930398646443634202332917880135074387299923118993593904290255884717618508733390969579954220412708032075411058576933121003197781930094910697242637438972014631619315998758133433623263112885912160920031366007898858787718144135699451485744012968808981536910851697366601882044564345155067910158086280754370487881895269747992636990098602689410293787412105450686145922702280654801364093296832927863611940501134670126750209923738770911724221955726052689385780861358510556525248037397354244450753092249538135854081281185055671245826554155773067082137672052683481123361727666426036794876984584798630738563461361748471768111477813324528669191968023312570004148832202454711383493676962724881116310417074115776314584370430917499054015345212856196422961863842067336486293821313995548053362343467522155345628389920810489076121335952319918828502639301772547945381789706588086637082243993736923686774698484865538477282265825475466068133612536559425626306666430253591781839217045873577235845402630833635275101879900876553946352896999021246811303113611674377929879074761455945069383736902486150187958645857537329197301509761196390521018155553187702198156795591808558170444247072487820161287272624386021967853971598108061212721390456082630937448081475952400253226675660321452966102998271928063548124148284165576164449754054019000265430346671165469845569682516271852163704808530914676098749486227567968277542449446480807435961510739784380151184833655185113436910667742548764317664205881408831788188260982111496621318775329704522534841999959157454398653634235552467818522773365716838899540529722799618502418183436928604014456379903421066503400273201132871837720744232398197787507062855089436129981189342524864679595644791473040724308410954835681348328874874638577575999202292857344469626911215114129951096996952118111069075525818897201159796562169635578473100399897399957988320193331361529924312957636674714551489675333165175093173051603359431178431623790646184506121261197580759179716338013834410631787541420995770084173723605430498056781386360716362555570803038386026603905935488326286632064804996397787089094279424805600305573689846317342577975311322465486444213924351342118194568321514699879743573182590017498328585136785467169802058667579088792843327518125125864541604762673997530670477483503897673445240656829515878812617806802811796580397756604872684706652913035854961319135904181323097600430059826892304929599251057954905203970573686569230611417278735895242494662215043935530725343589984156776085695647930913470807488331307795245985464236587099745248482529723837292960863318851690729766879869675790851486451589334528037298180208950759898234850023374085497596775669825509786348825122258227715169219545414680849706332494510800727410340820707048307000415493967940858232009793085083359301740389223091417322450493581815513189008612507973396881603491209217570377548080604784873655835010387828710562158333190672260193731782715576179696036957266264262606481882967163565971089770159071771400528071510366343680947144957264243787265139165718324825499432189431307699233471609423700305876570407230133590202352408937130571905771711393602370742492394895118506961227273810868360924362841626214719611111889538821859489457228345147850152968757513465894607267636154808211958985940626256699432632437424594682361016387277429901519149353061808142294394073793281200709627265220452576127532514617107383078637573843813210655605723404349286257631653191458248745491677523325461212769203247362370200818530827260685470726541814092856783884138105333358060331931527857268075669754054779847178719948858467504124951588790441332409171843231428806469145406047995742396336602189700408652499169854809650900929002026978004966028345681552073441488949764953689166366286578423127669083664565834767614737672501742579669310678330702096622076838694271826807409786441346725882620871631348729935905854651744447385120748238646892505158732373335427410244901103373654270935876300083102059854511126348060965878047267010897809501557788357392944548126074413199307552889495016790802032755764317732060548948522137592000285821163441298251695869655559748003512159368992673193410206054855115002187941948180691721974863786474278962259317257950281449574716961500185584749205237762965541949399101800866276711798015058708146317773505754091304971726086519829759140994734448182558925573170188603123722068461444234914655898867718993338311631485029300219168340235657862990127134552176391287144756719579579713652172439655548283663636337409586654483261360075258146000117056238247592788802597774533478380769377854328775852716771042685627834606507071073592960880353876660372211926491089797563735994376826170076065016454383806615913481231500638359084007590324875124189014890456486223900591244144678767471272781255619765894075483561949680328139794193373266128538188717068798328298074953084324062423275127706531370665035368307037586578705754427752049762082568018842209326603647943047658712321079348437872603439388691073879491126788967205086340358806359632347023175153624415506386870344323654846732393945299928731883945900721346588058436527766311321619013324653697004540821299980940048464285856002394407242107591689831119542413348215568679903795390142091251570559662099106155131340921905407825974764916491814318340442562057502521877972805183919977404158715491077898863460822102815233846517322741336213622337553707708573751046300806833527403728384342719647174015652352521314629796379704314104303191497782683878931905998495681005829687117540103160822153864718200718495122419031575112541378965625077298650980598573444832853743174489841005717840297544561037880397220902415905909795713751706546560963772360212048436457875328897993298641933544642344194852621984493612888831770428019445673651162032460428096078611279489605235096923810209145695396417522146839148841163636251495406584111996256112470699135528300056724295308229066411955589791076595226450292828992410094652375320947556677808070094780704998961074048475370234702107421641137041228332986165904211277378800600067544678626703619229445050807718288064980412820670614715302168369296674980953157035820506051771537988814430576526714425322522359934712191321833238690887537344840476943922808980535628119885181301822917657210562506421514156931703066986912758402957690226453695108358862841019761182629348813462177807408458788086444212147398307924476093183814714668988453406039803192959987573419963741424377381612231714981009440343526332055516117713492438582633531623599922957604552388507873461773321282220080084372647427557437913505567912538352011315630575871596174141913270630745820948880025702894513622607661102851449753248049524669495891930518325626441450667719538272880499210038273343931360863142619961885231209832202941378259206636887582439669248949590155525267626675727077232372404910391241940834682578963105360059638519512614973807042006562089294956544373863692124351741004319643165195957733047159920398755602364693470142069759557653121834329919733821966230476423324654289881781131459608912310397137770077603017827692764829254604351471244632439242321194262067231620906512562686741165214007179803712549129333016333902197115673523891011986309253630995225648505830560649901540394601233842766185596720135050537121026352955440403812197780610046385524440177081124960184105402552260047052508960256611580185741089864829712179233736743928787338580203638512265515975980981208399648422699413861769393230380005122639439972592374896862517830658097201089830402840068038843354124379035467945201624515004710621736619673107118160923029667046506531921998534513221311672797629499755574767944791665951144437082174651091576540947234948385330114295872340686671318081888876579762847784600981603559662015006042548487535455144616842991761068244581519273748728643115468216421673888650175484262595043791929626593920566497043553885757574191372898261663470505606236076095600467844734690981529834032771946445549917680744566839609009197812124714270297105929048037645793707729479205380429817005792339202403634504565517021045714280491046790519700944933143264435138370443298933261420449184109714488191190024911032159766659357142741192829974037825276461576336213733602702245813818088435251372904721412905634336104179827316256518946605865891675238678373065618645495358445485731585325554496635391164392854346124163741995216581484898376438200275628881197795957294056799133098295121865629547252872242884875019573845623868348936739865432872737011760432060080205946640647015047424391877849730850800651473525924001381145366167298902412810933883376865566062260568500428541450472052595931512887126747808561582158682729170804209920996203615633031757423674494096981610623534375223434675533237498274825013014046924849385940352172280555935690894969157273435141343309027941760933870231714967749582874719855196713959395165187321046383792602062099188275822285362602378580708652441711696506961585500718040600635847284847373211154476580004970825638488398281100902769125082094625229895370215231150731867518188319680194727768371121298735032490668100219936907898068008233641749211281321505188173102896778788306240804570262541317732688979284358533758029259509544644177759622722817601942256665231964725338525819027275124520304504939995620357645087901465683043229691599707758137491851214269574096901832793743462742040269697722248889051413867630356784677024388659101301482331462865874558336848974917210373083113387709259366633538629572227678130469088500332135597926427844812403752264138457961295956901260225920274034519174409350237989873246245501241829420201333657451990095636823785852349122501580619275906802750067697540208839352888136780480923952755654764950646691646394403026044560105019102660930585436177615584957745133974757113899337790354633697694672589779497413217187267821016930907578089932656401137983613578240832966599710194272775553014482025862678533126959146650612588957065259992830967360974066452313824913031465336709303442485824536973818929806502303807161726912248754651825977742614425906069975235077176645181409232231660919055220322817833774951118596981353034614162391486170226689753299989534863312509943014503520145554163808373411849637751190779263290156854268117023878705234043872347206722831154741428404277770289841352570168473097702721078863814061546886455947196019233611776042994097648125377834926427467763149536692279324895370048914610806153169058758383740704701941684080257921645313661305707845478022351596452853616262199229004656851187825017383498181622288180306537383720888876889855859914230702531849234036650527594950871922158169793096433557383565829529840639786187347278158404414832774421603683611732095599184344927472283653625783961557642906829672409552054764993308477963001426576491837575584440727504076587170239626025856150915991174387171607261736045418943271593256956286239779936834927191269266045371312667048085189133161974673898644095469422035294394019298607227572013825387165345127412328668143037972064294382631288025425051043969704070039397916676151982689333010829303390048659824129390087211846485474496228014036356000154757847959377083618304154348475016496005256075837032730405505879576696047781446697200445746122485907000283413396375627965847752880830006653207981469263225221358287734067391479523264738661175771698601109139309545313729792540090480687659139351307069696974518439093767852067367417760170942240071967025004412620047611919931542523306466124154173672073823077796655710399629219428009105616170750256286608073779282899274508756161091264297087988249440716608198629088219160943886782276070451348406824858632463892608629690223172780738819908193349617511167053703907479156591529946397883162244062658507574782944139707734592251888924835328923564158193272971510337767617912127512695070372877555870089921442597605151868619681816525175481512644104046284059341481197650578708530912222017438518048979083710949725070274164280383465105198582071342125416785109437154608045891182004486084297566344511431510812825083382091268494000128844309164081497125750579375520207783478430392695285421679732826702152743381064296693497536598859258551340448011795922686506950156955132781447300110319986002786412119681995103483793453007378695909007056020181444581323341041795223673509813159662147282337105606190585970884136779916885515704659088987618102046962881167911957199949816436660420877266314895554803088534091475581417272415424648027619711336752068369890819447858364950496320998612527648786882359213333598654885994665195537599994175600083449933428708013168765770466962657881185871581008394495273470706973105253825830805317364248003005698989805881801430126689973242681358472871815790169006369773055745484242833336895319565181247242171974768503338155970925615183257719164512163122606836813784921082146664593627614564945916845429526455868476874295686751692966667450220451028034152292757516057506111346832036346906853248499428137008409937528986430253784234585471374947771708427290417832534617674292939315162973308493872549109965152162997553957881780430248010217511351120844605295640613687972149431805438145347639648629895806524615602930414297909167230943799017637547037103326569615714012273591548983591350043954030240642794131712234896788752588474984795227012909517559881690124989666435966402521679590757288044219278235989608252257037929589633400608872529616832865244045153743829106141715033953957975180720108553077026215284137540061206576397379629854070585943113262313135323558316650507040675193878630526329121581550269342455401603998968439768293195904995413681553624139787417336662373146274435015219937275307632560394486251102662214007249405504972414413461538809570877344559301490482846827513955814578595753633268892731863236185091145641286030234361640128377547210016693679702600967618071215682662694641512706449170969633599168132778600029856660135771070920452369793218293512580770542703413212470115203145245973449581563623966291387113348639822521210744132378151821706633498933862056422094061035252553683338625554368713991534592670970437959278990173284802058769439201767091932554471779160529472656548837133913707791380638472935321414623114339323390392452267360445143490179951590292250555746142504517987764563533636195105913894972614152103261865867847662077527340236559899176850722580288728272628814466020774653295526036292308646180112267552213843933743930764953921103054025671807171606229480463385713950054910565007816026331047323322863217093182168021735564006961219373380481590614834549985464703439026483769333308356751697051879855237100291531207597440854754415457034693758400163781432586930081733612875676157302812695388876884559415668441372559701554274523006388429971484465569400883363483011546449540477879226920864777921967895543511410339672515503709954144956919638848741948935194980569852850391856252754684151176403220906449621469713068575619144022625840352823391372787663316424572846835129997537013293742082652532482186472390016886372451000876442251684653570884879202977444751933886073854101030943079460219140910872285184042861504371768844118154759125013882585925127254553134669799876261026706202675410328056003195985160754845775255212920791173381409920752951394862751614118564890917791446187082022274037025241018183316415906576340900054525886632657665973510636689610015269131001427430450762941710388557037120606549731360214626091480426665334354393994034926970658513539318456340505156344368743037028183950802494487983119446829716135219836001680626893492337049039164137068041331032784118778105734995663328172712827584126335337446738946199215923719307301367613914207009767264818195167035743624967726185117069017958393335428460587519383108255657340551139070034099821513643275560384176169022534274473552613431102545579941573713381728857432223362471615667419117128667524289748983563614395292975828803322203733677568981290603335732801394535925066265021443320020847651389153734516855661188308463210614138883822186825580728580573023277948462865673607838110990968962608667031305812461920689908812912521450607381398428198206130702254243186521820108024018605473413853768092813928305183585218071441141606147755142327554939163355856782471692576617754931938182590298595444619816575552994888734943930838116572296704749725836432834308038719169827260655632280414788764587190573803580610571221360655066369919721309147693840281743548422237925806710610836440380504854916256342760337833520471471858035000506219045432071092831760039431259509671710816051276599140023471071175433529908881712811352315554422109544835557549267074819315303720041989692501334450032820811722693764313026394346446485439057513700260634925421242837339338851844991824496957109722026728838831299936640938522971837220628077500444799454184681161136823814705620976246985495654265707906432126896156756004118252599939170758393661390974760713441954012235255269796005367733675213852168125365973041757030139538249578133642063408205411153762328018058954723790264666682623389885716382999688271867664218264662111354848452926252565469049294665400313445272391206613440847524650729313654912957197004118936509329585987765516650513803945827359876169069378180930395441845059568964843445413612998838659564906176091647478667779333147820442468599343687898247408458792224126726570658050107015771201196967660325820257017229257769440964925917269789273179506213344418186244470485029608159036334168998730435552583142545710458192153736637768526077084663673253095512292072784230714679795651272099059260495332387060587348585065127303203878307588844861769851577052096231799942105954429780560540972005038360176289898554582029004133004874756828963090742254042071898350275160082673881127600484933787784900276405608094965818911096377684104402392553131579744201919782075143221397510972196647754326477623354460803115136344330635596882507131858650843955802663451111607260341678778263220738770546014968665889173617024634340768778026811446233001232609889763104777949628645131510681395461956041977421248147548254518194991387797037965244951805905137279412084854722682530171730068527193399479294082960016607764321005444396075935754199409593913177155144675304826507612935563865282966377091831593958057063146841423885642541946147838472900238205795467702158085067647560616607854539646439837410207712161214097946311841721928748545069480193845746313595080006214425694184043140125800689164693568659528181437981741177557543983031077332332986276721800494528143532633872098165370190867376722541399559377240457733686926267219338507155287398898246765858978698907323154234527268826901081760210804783850150183228831749947757844030335723103294529850353811914126317492505685818605376890149492653836159125654039956233838983375094616170231417946837070138728785540811222879387215572088575050946810669754274296007013189358746684084179714408210127720995659052834235523161608186106339577026784097758995709803268433814140156050008918540924673993205770805035888540821767599759863711110967900428812968119758836666515018723922982173995519047319698697371971835998014973603674552392296462495151782180446893608936808308846482704071743624850796913618838581455358195862436582883533004657294813152441777871851779073234111042571665531523748558691856409717378785947509241123416203243294923267384357018825207665070040554441192673293404582045717618834111629931930680121195613303408816734897350098627419450899198677234509686887508390731142256874342170389041713078657150976014872825195791314019830101645293118535564920207177562673417823116404791806208959260972718650848537026648492300139498168504379071743863485529568337363844205481684177589612314129362009737131068104930177498104473623607134226144557294599909375054540066203721398015798550392318763161795412892623797536417262364513943059818087468726465725157670290297925793264915719188675540879073878676061154446434690669432434821322532537560677434097521957111804850168646157965772676690065694530890999788701684156936886758041168544325277316383702737276868262945176780140007613341735973885758994018964545026881716303773175772432311054841192896541127050702240800761845670916696644250602044738431421907393404720874474702705500123229333588900878730590202737933541821361726814162443106271151074090120326221267965546630457844945589453914593761296051511209080269503169585417219960001868057278517642686185473193516698645323837041514202056158193304151882001993408410391762840456582948794672588515346161082022958261692315316875122339180716910490430516980961616910800748142414811958763676487858621342470717083484451052825224582515398089364818574399356407059317349621560048059131089592847379910015735007579397007081366748253652874027741157458803635223868986193132024685049564669759459706336125243287846304566390180713765779108764597052461030606158782838168286402684281038705782460721363072418256312838049056483636464923018875450193725238332507443913351763921028537970236066699448636023610956833785568174757404590595746851333346881237276485396179688021697301044846685716232180364840572858847028668384138094615995002923497912505786226734928483043579668557053381836362128752935939450844948766223809752002574955548406168328700752829009152375522943027054793701928717937058261003027713728342779725087159417196415632683375040484347437800287042931253188627374108976353751755885204722584504811108706495273773678515370589552408791267069783718443574182852498881156518458054849092874720110561708980679479068950156779045702929774867411977413022650257586277675861664661366567779724362235578607147718762731777913689395182580061636314498690953670012312058908981819517361810259895882566314860337684540420644261250143197277470212063805099298881506920090965653501599921520861595523726185410253174175006517519878998396676557594693865552032392586132613971907844982774654017182211718457708887526997557019334218584647029121643574174876129841932819127202456438383484979671879445576821292716733181734648204276194621311707932386473119058925480026226740714011942621931778333347627954623816740557743867941985083707376901415227437532987896827610886422587318894633260805753504055233032127912233137824286158575679386550983877031648575987959470371832241861739024951720268266705082927190109522667264236893501139478810527137392504856669267939784160877437854475690891603080541698116041471030351389602236351959164181599362880117970800621113937791073938425954355910805856294293113933015450695449111385854313062075487432982946608523954442651324457417847818722652603765647254283450424106480617813826353384772691906059995234615837112210505085062662786817981844073044984290142996258489847834901230701745722360336941151426637829120555105478682542002674492531927462109937808949367759667820775850042009888070718594959721323040660116967986083153060081139369549023737673160418746070709266478114646965889511749231759344109887697173854614718725866829919861646590084001174344201695726999131002614038772942861454846822121671714487878569308688855263955679250586258556707410237703366425507811518702760288047579617192663062503399162194836997539700944508508918879438532395736810613540684633559901476015518240066548961950983331825189405800705875511511594399545070166148685666370147853601220194215650345550876783465981256626235700698438857789055174414476724157532440641666872283317318499581510489077560073918374035108252676739135469843188221699986771587440451011919965583755582705747510114252316502704134753338142227159005001216364800651306434655631861069518904564842672479318273814319733287857244023521611010192625830585295657487934746693571250508901856425407529948297141820806015614680243920388606067970659464322228033921459394452248373094022589003573469596042417791042000974739652827453649245859467331777909890625765790913754055172085266818080423858050968260314817483938982320940480534718812256182836090266861306484221285969896696716389929339734289281346317004739580327751376198280873981874559857367491244793413072056764824171516917749347005048924310083098791499455009150614100469086124595344359852186013144054741156276033095321766571783485725393781901331830494686592405476651442812912012338405663722140031471393656903099045266525181448188415006247953186280657654793530082813845143966118513334608589857525954945786631785880594645722534205474821976114504450064442299815565730532386723868129426824728091672994234331025654237774443107060684565515845653781901513836645771466066335260777367967277492081598580445616297969367471665320518749057216289894568351941962197074327653221282867514510753280750267347676021365267311471089423441901908320455207498631427380576141837317806635157881453124532719304209586182037447740428605078348801173386261634153287422979642520816186844649955876868243780061437783434027685806389018923829053485943106022043271962879150229941603758153107301351255457311353828051407227251620475217175315535936493626764061211900207995123375941923518045137076774597279971458048864358951084229170275056388595834575252645364868479474696671681396626420259963719569819923128220149931743169022381841649107905019699122168463690487495497053090708719132950371608649231552806789882790223072580261360066688273579257147980133375228952631366034304017144248492045202086894897119643659692769312389383242966292499684185383342564018155288869587568012598372230878998910505962518756837212017278823947106518596033949043046329465592555790466118558464342911742109836478216280203744137857342995521408138962140949747892664043252611699674761746499931275029186538482173793252202034222560459828008361891898755003116819130645734779051674067389976752028291996098398820696847336806361374231117248301394722975339945185420835028092494982107690030302754734351759762915884195383743432608305473825511697005315593463449014955931371109554424593609582120219527763385289436221446711935439563466559670454727566992478115117895429071401409384211242956211668382925144751732599044576542179969868508862886506897702713767814475462907083605267913720301041039901271202247592124522703582358306025640151228324809593208617777637562614610689634738097109367423243703126305794725836393579687245208715431506365220083774081295415789036901908468127056795998877915617022446549228189998926383646024214893403836086744422858017862056746064383216792796796933693656320698782314101844333690421566356833464519899403827935018262552564527779487287542195206087010407822948010116900950830327693073036761972716895488606695554185632181587544059042539515576342836203691456352431873464943895050281872358271962477851444835232044204856329331260600825254891318933372956596155583070949874643480387586680124874961689879941140520941480327030040749896002548151584885439761719947715095493665332035635810053478940203973238781023013339133173012460686016970022709018874353053382905788329367445513307195618756548304373686816390982193262253873713276722812246811230851088272952372913273097333726165853033885113153569598053790378197001740234528495644342379682084963245840871981800330936908033097400060137040911679030708565053375417876799789693457306480936134100905478726313747263869389402352529234557472420319086794857093174077647463961511578628191453868717803187164711044870908706844572768901732070829107047216506155231983081537452698099558281642360055591682147153195885921341740897869029424636843477198116195253769038348559584632707394260156986686635144444040631391329070408213050725594723123311381887263449729928741704167597392976210076845930739382180726945932923961065199975268881999219153407919702756261265571202841984842924043324694274981301320166278610743118643885833660304832583114043301695255955675273315134214490691327681941120595788131741493295476925009997476457822055922404430990612084444432759412806108089791010990357631295629252864392676280110746852796711216371062304683577380016858221295252112831202395716692729289692588521109254394283403454380979806907958642393527141915584109410289337232646206957504117418147925743659510502356589993023576548854931264857301285993994957952372618929868912510661330988823720747242274422676398492157044519435332105479689919928006908608544164888434827839573873432089495533077915644449587942185695793112963101627539594801289599650692292457544525037033205310979632546147701197129642546381466513787228004484680792207915327262029039110216375229173978700793888822605016972819916950288234662377122334174551836792017429688469163536725856826551146598701973238399779850750034467080340549286607307121149601047673351428298904448676374176663016790848866300282678690610203405468178419381086293881574361798383609604614602593591490868993900248195430589883988925573174696011729810063308927186866881227459701035239722529490611416099670946426469963282424614255252069277933627360072071495926407745274845733164729105191145266905643101880348914479668934146594435228974982165370029402797088953851147662929040466368252370991036535096684811813259708927811194836151042389695318359982216381253905626593820885310944798934456936786641438039604562970611871087886828051577654930721862369977908193042110389789083914376321819816622903535306362212254986631144493809492620386830174392667146057311582022767511866829448735121959093568888251023374469759314817881910475297780344753041899962097063630279283019221470912619665593637006430305374443357825902705460585379574970834231885206810294583113493632548845203806132630873597176092685485354043655339603864180018078557337657457711865538197256990567374413513976706094519802581642799468526997088226721900780613004694235168508925186420277216132661121356811272164113720179689000892314284902595335167217338950860322134437591361852584391416166627505410016458424095576973520215218932177758348590145468697943857595750404398169885803106173051783074478876399293694164908631405302288566684956453098888248927942611420110040518714310518291712320860455264773337671478628180834915461868134650860661396963988177688648878141336279096804115468040163751549140046890119667289926609203688305263540770853247186908871049838252813688120928507626627889262543162339787941771992354656118638195787925653708360905933799673008137226370727420706703416632083716537120173821671986617886344719647411275952248661751589854388155161227123970472721272939236280370940665496115506491081753136560775385120524149540528849661787475792950289587443203556459582965348389309799158305805612656266106980376117021934341056449001728018767087455400045578998638318794529766095863486864230596403499162347345351105745873187986586109754691820043017690129535362429362725022945672952829711951720874639396196899700284310465274471373286796762209467590341753592819827008762167444467597933716417856053555802960243962757425852131585915685357698704967801081726572416069564636714552282272147556309871920009081418596947608789913826927006414247285651614120902374740517718572043842534534602629703002302565076672927734795388514746650048503210123913724367480550912914506573834484411920599949977974414246576219378016788121559440293253084254034044037386586999964829332201183916005250632462113700829153249967645238940817329289251261164832085079836842809480060423803064511711084206923041353047761316902015908672418560400219566596984408460121068433560023675565069120239358567383399047379980392338623397914432451739013449495208160869384397537682756924740554974162202301687342063765832597163769522521037914822625541524044114149684995987956227887743503585017999785421837743500983114871674018670277264420508165980827455102789781844111377447357064968585633168829625787820954356079194798288299237142059622572014274409850839825548419387105147715297882934929483794954848118948056624087324256924881779991072472567852402887678472212555149364051501139116013757370306565630205841541952564097786875290245049562395276276352440742780598053456157893738940388711206845248237071532542563464092345902321132149037052674422509829729951442094372656894638154500344216318210288532965946748508217684163736410483712413249796070740909098652462959691048936961375771212166087790812898276750382645539494033397644282549925124021739692906073942374620082741948893718689637398637702415815623681331360353203690142095722145821483443941434838707552431603728483805129762725300235839277093653474540435843529762569941741470437531744156201828452765245571797649123829615729002656161124958198124504818785365485546913201249954507787998119577652411321058838391116217913063694558103053896731038704591945592942110334884829925948689411148226693778643058255479300072881029695442360176818806575469838031221001320328194660423349483219825383262528291129532639651949452158167008773566485342490400459157400685064204635269448965912401878971793150328684739552684610599674011018899462684355097356717063221099390425893635555339703032430965789777970155140109825898787313540526527568713701098241624705247252244688627919560755291983086235145775259706524748273563767483760709547046356404032658203207377023453249821257010646402762644804299072729929344949275848967810494381984058135447887566309103964506067899618983173335770590375859066267950768253821085661064503560418346653133154784885165934132572621871097531844589308614734076889302452066763116550429534301174894198057870126822546561706283646759666352685181392085052360300177733063906222571194621049304813596757892580683275697666730719504062159841125073393946479164459533953712402331326262717698977830914973030100850521932039500961513327545063261224212481340283476301139538725743786722936411621608069573657974409607669084031214001228500113741805105226152038375498531393631224218443491678882376726142997990399770337734951862659730298409253750703316870917332804513788883241635709731033800042161471206720417239508760632826270533790690035367902346575251504528944625758552863246832543213699459416321813140991812396569307333551845755206427687839541314967804806584257607373581030891385481052707304775604336399083657842967675055090272830282301559376432596093290729424282432042110465055816665691215452716700419495081646727533806037041047445916851908358827837488712175360308018660056330287626374407802962026591678020639999951618773057933491315275226753984755857162769700268413007937526969889039362308624157334923765386883046617021041002115788612109109140402506767316599262052369908382807974668640982375140122388214444231860564591977251659864628273916829782247166077381926207379365808166997265035842836579327512445051524494479493556020540684490266119968468520902429704747443667504318153437713798729831197351958801286635740948680139317807334132690071412139274164011160945224410349270925258233374906089005715914087995468467385810334454151504829747976299198810727042554688424823747545480039304164002860975729477009294413466020348735890349538747906525490058864715567672418678411230885351112488188992320930743820838850069957132596427756293389002530499061802187565830168050525790068261091076210604535211646306042432206698524571811643019762771945139136257040415575709051356828691405117995481702147525141210777033144618316142281330133662067855641197464367293515421279985222917721343826835963842523997118022159189042981487505807334488571679771574051570159868107633505474646787531883560398779173000185615275088109975469390203399809283519694808857766192447105771404926511205116575156137019499468328237321571114200350749386085199242370278265386773020042133044680186986488404912341138727954141273613665598763189366426500161620159944814767730137193554321336308523253895416338057721832215519007732628413619399213203118825484833180410665138640519299789179855617660968305940756917855849357333618457719217008560062502932840859795080151315821138785623679257712763659542332538437614172277000280246237158894695222978759336442413289611285796209001818184240552754467653866141822412860182396736391735624405595964578787052342962151176353779948671663151032590072727672527044374216390003091147320743913022644009613246987590159657453049708432691583620594403333686639612532915580395023703110996175485684429041148371743105100588150277591790283049966057767400895721466709625591879381283890722069689630342365195918467669561118323914028216433344807191652183285011407162585322893306629930478863438767789401126218412947824704421193002525255072656127509996093733314863957276429823060368937385390917015717545627128710356087502427459989353756485248181988616645974084394475064571190982394476793328857045728819922552359760818597883011837048319706037119981073499328359143346822584133374324865757724507304914138266886862724168224047657281043226233569838990281674783723382936634540001888390800999969844662963398876114057465434683451370099460698060845134174437727309814223296630136134915803833229074443849558483316434323388765253892589725947711400892078258203813246047734599981512177887153326814524726394321494428238916030562406292944101804257909906117200501981579912024803610685597932230439188303985392128571448519611775439654481780086490121888320552615712991522530607361228114018931788217771759049526943230425613922985621487775516902399367370548876225557389211970740744275045037142075606167334538951917765325092909328250442236337568528885522959485983221677006320322021073944058132645269540316469848108297607254233554694530755300029257322947394302388104982681974745425698596999656623799864191256389806561265118963272592301310866558582811160359215132480089739905394498249246715032167261532826611983368834565052758182333145750353548562030476757402529853277665791769642222718989128414470723510006536513414095336603499206615861935277576656893693210772120490095478148570296276717288908709552440471458125956059492224149457767234563680107181209293406977752746992030727916798435213243700384789988464300792453876916056373994958522795852236490498418562782684077937206034077519434505605264216993870095754763555714294325738526751896679917017922501718444535827968171103818096677489939058833855146303114857362994427759937802841632313831993523811316198834080381874133661152121546021836252465685017291946567633307439845083400238573123722868710863823107235202541117087295259994061463143180926024744856156617511670770943343039437080618900519050394771072278239200451917359490652660355341007477577307673889593185016207554465012478983669083709477127516708247411359519756628055953681652735770749939815497251352503701071707208755809368880357092183189742713884368313361018795618152301185637803410581851690283753791383160040829068390005534339421323539831295366019135791973212540123734829888103076156805069853650926002310855792394844640083304630908249747513282571388326157919250077252253833853672412930738434305190315464239785424756993351581175897738694662106463546613804903936433433734749536732457589803646154865342656927630686091380712458877439494455820945991157208268519226854067170990200329786790716336125791878977605325701765965865144487753739257422240462313907747971566256292438311616368701017336122939041815636857197921381636926774174439011883693979854502348362658283485873582268384115524030493035122476353740280627809948458645691064474137809260363898819534465283230328568191581979728418593815983892622939580095343398565108380725398931075931884470167387743609398086530660068332287148656203302973871702097035760858073280140055751783600478091107202825827961541709501269147256459083113519916451148855098732963381481592391589368923889823393614907545538303751767558737745595935272924878821343633994699483537210857741596270967294794557428583847674848322801025472573345557810992387420119359736483787441868406248217517378818470897653774708689136335862367636153898537263321743915743885024104713879389367029000743311841471054842371470336703546633001700293082171389223753981212357430057380661659689972826582372166880067222334451511986655347803798804748598282901355081972457460016182711118187361254986135125530154203556795010582965893669812884144733004983260443695885011331242492557987468461115271580755107121053463515518305089458380699495612039437101134119038529828437388933329352184800297996504131271520692372625900111581794340213112933602840428063371598554668053159086745512621521192631315020537923179908507662421660795215275310970450857232491198122102534830405187597069310212509307376792423262856274158205496333776665914966886034930228456526366853766308323723691287596154879118640489470373570004704927380238607905801863394252935149984198266245684000952165771583887185971449368585801389689698583914911033787135991966637339319536430214872714526380440634550415998741079025647930918569032091196201704308789897070322419804614304893597844617795890917228538673486586445870529554754769522176345608807495471668102021182691750398524866990098578437352807947909154709353981568163848931781871624921169768727826141226670251134399711737772287893738032123280790226905981386506450538720001174015939160478366683911997605672164117595861878715673554209697715847718678587469342906441203234721442705744905835471666169225069448909617804142171069485889500663692750099255584460669350367268781606578294585806048299616167863133932480817092856660254604801611960460562647490412559610957508712957336538771509961613743176198968383617334314856895810929733560887883562378772037200022237733826802960538157917829066369363177693338078414339106429565013553262934113046945591513039483911052794504533294387583159990456725109230152528874187381985926497615161439084842006373485385422832375104344335160601807989205271749198414521571352945690569647215031820064239782790610129248500155446873215779028792759367729362718591534905219578661940385307037821205436747341182522492933833282181968925542082418139263388254781663191365577094169322694181024117252857598158511807827128616532333583373004561500866797732927998663744095964228976613851357155282018165169606991029394651715246790193243025737016369333356711986873574771695553145134523809696127536852874908348360841958962178795912189719074655835826304972038656166082171854787255156190052764289697990678494534397846386759709397072466423964848673050740930500277492477190621580865948569052457537495086503730341558073176841192045679117920805015189670520471631254002324194078205546696962941435743334736356447231124743417818193332637586001976750903896322410068056718846885300441765854281803936459152231407820470016509190968528257722121621369671375413367511023590889537941418019402022683325392380693120756845134082347541839839975047781406432990628532413492287998483462928640549439926128202734895043523839055148068365613969094508219184244671922936453008226366302398757475014538268689939077244834751873502835151420155824877557294965507333259458208004858971401875384235122949300387220998856485035729040546513556202529235641150040122637116061650248189767330936889310549740034610132021808982158314311517386751957496978845637441845815054540897004985621409819888182194489982121672195098991953725728642075361185674807615401902535392383310255791128475953416646233302674336438843283698031699796836065223772444876119493032862795770028738293615504504680821930205481362331329939226625546183622820941596276570819047218858354223731919841120392313662096918048018018734152917186376575316444229018695655828278026116957873253307842987446928775352762967226480707735239555964490117503319427897722317204655085652374717075318742494261187465485255327066764660939857357222651316872728219923424580014753914534644328331560322987201812432976898532508271433963125945622461093691824837373381291866074275440654768389370341996507614537488520070365446529788753583392702580501244886469893205522511335586633903365473188854040743628982755611501945762245554932391533888719047372639250917832882040082258525549156328475215933400477793641726317162501305984693727358184731714412306570604875158644904899705229562276617333187097249886240667719406666742536566541510029974222225587391082116933553064154389700263946714302912759878974629050799717120389685159560201002835026048052607036911520329292395652924113738911504908428535166060168103993332165142410114578324378536674456680778590671158485613995453469007940790581414187742486890897405012237995008524262449754237909533147858375196480392606831915586403326231745052991011895513559413282816165046865799883179533360667162442264901879665261685195359553170121644886560847311564210325950446364703575213553549078917453797538719700808524237933156361010995042016706026551092169938457771280957527912600976923584669706807509092670575554960670859283450807219808592600795233039910816881702187763594714984479078708408804409410803512291774283884748076514616600750908029790963083533906034029397685622767813324862435815133024778492746269667130727361455762184879427558668484156832853074889392200157852510111348411607371678882435878710783773000792386049401192462956995045192288431600715771980533628616508827017516946967913847158364389996785096009169997723522941582880599173842161276206939484440857106777144049857848845719200939318751095104062059297863058432285532058793457481216162465660334584923549939657151074670504447933001352753785911614328402887229373029808672077416531258695573272364240821799442703381752188798409028927377784894134074339914835818714325647912529589818161043333385336221098896529509430599928906106248144326935535919741400078506568349155521240626042900547479068681035832481930396475975028783373915712194030510633246743344205892358960203439688771379485340917013162760327387431166404905286383279319630124105095851589566897240856653611760136981772166612386433591662186495883910093066843003884778463826039780639069445553124532678198807270973812277408039779059919720459202863382673558004354971405685981059298579262266815304181573641469383322919691157252664089821899489770505496461724176184954657266257875877242533903649354238165928306657261505923420833303126953184298882290029656541093665866717043250361943091679283431121392453397108444324467601137740555858509561992189131076064972944883231564634871829138992842308677188092700073751325138561172453501913881794944423895151457620938181332896167770728255555096859179494301002591681516569867118255899355706513889152184266354022601870122055469363948024735642054344524266319668534094398191554788590094430948851191055453394341249841898380815616594230336953111162314193733887427715746416500753722318873731646904739497329935545603914870451607393502121336460347989661175196970538967558796379811948119979036163655474507826478121950288245240806061955007452567641943423752737190977661942998060922794185585473019219104829798367609458218901449167314793773906374292245637516316124516349023942038609377077942623811225894831773763893435270340311106188139649486655075277561851028375703171234009099054503082756562996806946978928725391231536075126790902396305805235909063149318015244789763841199643218516193721927374333006547761468665199603777694410433749547548131226016237362544836098362918138515185087172196617226574300129750115307420464527865641152925299729706993813010876366988854771977783747737266260396443238490308017529794983857110440633767549525286977959341111294083550854962762341797354378519381465287696153369724356003448602618581555518524544439363322754406294289029000181845999811672363865982173479505875405276320030066151126894368174737379927093005894937496644509079164261837696439055474706860125996186804934196765879361004734501960342463288850474158732644647680555800547748261912224282400726239232825766617082568251202018776816341436652657381190806986484757215353377051630601965119366540991143578429466718205559346802585008122823967327011682115274731641732036965172350918180027217845158603747858740034389691806325002567735660543675041420906306708942059252603136280626125201676734063845906251678898389036622216771038256972819335021641457993063830142866521167028592942723532707970996606377166271293543101959006567844503666785379662725023960322895179591810043510238645728836266603336473831390031618362285468793617017991913451480118067379747115656021410298643661123356875156126400502379701255768574106746017317537811726448301650114817857968905752540073654095291436607482509905529446408510794307864516069817709730480302368585022842184470210104479050755918332201958063415820526572545011152444458734812547143379912086008171312570351962097002996428968404226370905704998399522530384507859728476457616472946598241251563361499382291846766267306469711590455350564016241135391042757687320502580616355224203444960184691862064739049349647339401853004938587562528147114637713513179157094658988348828791104046729382135177596992207914704995489946485479610251819976040160907363517175470410735550643109094086496802806148466986098387661970449522364252863574525931137964869281235122140995132126801471107849859765603561851657921912232598664494011040672146851206517597866118367233506583645086403694334121166221089145139275026205539668087482193509024171964471084417539879763926773229460410332656857294651222994861862434618118446805268638785446841465640509915757581700934617379741167398314799009537645486028477972889493007714279973923973868847220070169229658736096057083988336402760640442793923372095857273639193935712154539377121615078335204112570741201075848238123499022317879393551165721563479464968718368247057882960411133945671843537483790253789692431143093391397626223328153252712756506910259565620268357953847092600868392842174022129888183225661475435690272366917633040541022896188053486829079277762783516764279859318113509144364327937456570302998949660089792935281792374353830849619601791889807250043687486066783380857784565516210651512553393529071198714332098995626450827244905358910946064178968570615436251224491408451359918088143519423840464813150454357941044136903400918622454480967698437090539952778321116941513677554186920953007367714291709223442608888044769805108918340480134372581786495274300136347192129823978243894999430600462279916869788620107516610840385036542812136585908675173898145129610820813517895296439462386267700960052088876899320420478983354229457409559760699566759506140541194266472384982714051013952799279885629919968463436754657990426852662191245129898802099194226253254681930151489441068193885765706352550736594968133411204929572481429717790317496377501325341058218206376124191339448199667865874379807681413104022793937282937070018877671955771232313051356797609994424923367970492870872010899363096651035160411297537703069503311939611094243754829413379735326431272759212864889011071107641070611508212754193837080976229772779133757204722484374016047634492774532770997389563536814285505444867689754321943855396887458239872017847846162983788991557757022804699583554888278735593008842853759218648417345954140767485439323732056708216875007421845210234174538913003260252117831587008376694592241934022776356791880259810655098766980959379454235349755324835387165192925888577813989685268033004327208129261065463703642544390744772233853713379339363347205332915337103539657351892839082870378802214324440563115989964949896592574872080709202706043979700871745439847248353630822071811509909881649609160212646422536354210724198593721035307787720014252045133037987190744706997625696839470909759657348393205009038550826002726424122403405355449502117010493684640618032050271225205220270274459882061862417515607789460495719187515709142865770833411980683633942450734363983461822231709752752740021237325987549029553287480634618578579343114651207014080275950859873154169606480492410861271214904277494413189702822093034272584425966324430420927408221103064093146794738661235358035144831574160429481538862505679660660903308988432404903646242500515086059689055880777832975148630080492850493453681774944835750778162479634661008327158700696067593336880962792047495560205772021014474558265954945091889776080524493338294814977284175173352716807642204325894542166946272979286250140418867593150593022193559058866319734636696573838567611900666258203396578340069329300397390940054568680746211036646005140045674229352653066842801298116869524393546569772776245434235201601705393305217176493254479085260800071699782072703967464496743073665882161188114193417377992965488988543449554195387509880610149532690494786555007413418382229018097285093188427427022300281941256143218561629230198107037510592511744850950744155888338820519312133977537239246295530184292964067202714486408182969406256124366333382232060740428695562879764151745468802187554693871941453293439324896420285299308594731054274062833678657570675017828200004845277242147946716464057096296329180068547593905991179200184611758505455110475481324020205313568211589189113843800977141622877707463648961321774535948487338970574911066941528726403196052403615709442047694775343406476214694691987605876299213858849308649123257130605934682982267703485689866435810374360796277779980311747204753426919395273744039732716749834914286421563292294194794006507187465131038295056663543170574704708885928290297927297192286963953175779704228329174746165944604780604841065257331235108072023117705774207297230434543313844403419449474077102336734958005902761122017534661085638826193014397628668088835518063939798467029964776767899810400178192091968560710541138482384045078554084758386476090788117693844753069260012377662840666012678628371171469605939838564600981353606867475718655832894923449018495872199952728523665108970603987030752141415841400692038141586581984280865301846077123497704399388668057511331848071959831186490410642285063529017095692272056964077121991666514602079392813250006380154318049271304525556721005470869761542835105165175513670803819075810817087917523275494396882727588828329336915851284405865042374033108655670188286016076371830574770413445147512085208296619024124622839966998568912941489322961540803244637605085239467123564766930828353317632648079282367843125280186925413789543172167655442611052544672181910147485158428236190810298725292174219178829893391739052810183252426857716582702231115132140839989235251530029009088597114568366164704162803350175503031652719822621190228826253503346378318792355815555853661342037356367654293100637137487274446904287968510275033513948128516972102126601356733743822029495469140265132768258386434921024934735903224624878794324486699311628294951507020454738033987091959765927933091704806519686705472845797865717024691017512556917257057206527521114906923604920191279643356664681536208429548868599023608390559950130519628212421964808379355795970901673297649599479922468696701772575356572060868122874681972328965825193428227127298315210357957480471329868779743991169069333867643736065067380561226893634437828999010793331607530207940673209737316768833267631386032070704595665707512313118273999001329830414948354277863321262839433282241430923160860971672135283951329231103205257408050750170218888301050581479871817250800847175437331379272427470982709807965677319543280530473300945823227093649026734560607790668011408235498133689158517852494436494124945746522655952728919239174181142675073507104211703292275622795806050670659850207477942055808699263999522660627275981588996834522836709816605824312859409137506933616527392030100743413433585283151166742594533667231308997867327579440829482523030471225160467380847364568624989357616045729520929014587534656488029110287310331417663860722041523490669520077570223615277688120030467266460527277361658545526009613709860932925361929266401631705527685129658783915560429851241986054148308308690549218490811153718186451507080956465850580147334748223662517183998101934877628143859998155413327344506499229326922419925332049409483715292328499288201906135826361179837853159919349756967346641391032338672971170728899674224845937035359167550017011149774858948977124580097414900278171449052524543501879058747648647080265936343526152113102206337947977641726386024082583441586123506310902190589847676223138862620982236815811833119512590756627659982069713989348922388792804356470679389577791110858604151454805674051197755510388998137776262418671334606269171649870798638529751325267049161050677842449370256176747037338919164758766887423749852504783223450968691170361886943636086074961117976467516642728723520449189403207968552098722931559379959090341902039212890508227711178292944476258904957129879293875011809293103484097846610418233380763873108823469934135251387156698619105838619947671582898521192418935429434859915179638991506148415483446594523618724861442550377685563459349310050823410182870104979968718546214581202680655041363075306702491231588108394890410160168124892953303017352290698597956133778138280989240137453968004665481576958459940119782520427347541163077692814212055918707258534456220303812390351527765135695421003372357823369442165484265248272862222064704337637720342034588987230065278621124677843403791541752910276830649255833470619385738536140163421164653827322836768980383143630427422058252487823725447466092346729217791210790323520556138698064216800814924422070263169090105604222697169221646734170772087538179498976151928301075218215584291321940428263291799950587648549363146922765234736251340245863072578357121184992908204357458112182591692165001544402148016591411134210007014628853529334087587019618126770109931231200036007529050664067533979490939717196442017903484784513601060128121976514762240952164689919292456983369068218919765079334520193243108301498238052434831876254193691114926902216447353006478649861123628584345799782108958408154184160541269032769272457323580348857097733161883853680533164638485075073488603432806266125280683353799526664032084381233918892874779813646459954142838312071863137954305603093639694397970351694819038933691009719209724847838729073781924881494286324184337850255081444824916751405077767069557447138244442975362734192012065124866691861855095436641486881830420012212508007565989877796196132597501490341866338737569528532616546309250664038055113389926154674917681349547470170272157617659903710460966890594556260607227071510097784463936307530403701444926039680125086724138195516480793393050967512982423539519154827694729429169613011282008665168201849170489980712258914793952621641787285969478874429242404474567814014421142159626041280031548467487116013272101198716599050069772074978819635342800276953660798691767981444639401962056568402261393023374735180189342073596414519365771278709020488431660008984122934978937885395312811681399724280905900975224067434521989125211904338020521202760641081993917472154681277375075412884532613247647620104996246831470979728646191298360155228591633743506830588757846281254975086573249303245281399960080796699734717644826157547355981336673113586876913567567572115811812979759278859449286340046189403591899951747242378358214475840491488270364702852114934436249416793797073886676650387382828009349760091849609820989903041389126648500281672316582417112859771876348240114106736983431405866729241947424362094122962243643034624309879426666568398298142003003202038980890515153753023181706635243720987680680997186637470924610120091388223905893948783270373232543401252092311091334670986068883251334424483107281568085567300890755584882507339915785987789555039302311519044972664552677661908844422824305692464133678407154073847034859062661065798138255345582694339290556555318360385899677444633153642333644009974016112370637368190731153590134042017533784561464629576423685190349476061092017574010171407641904583097897736486467233483160072984987175988105633738174153556588112629730210432635487473002113192987082386025854587986912727363442341115143581725057389444599064303427423251865259112575034846961694181324104050964156655339617909656893412692445164244864216087886987795240783054103746175394914022922820146646200027059567386776445765409644312757294574551792068289945004011450977847501339964603213810033531858592132578652619210474773477422230786920870325671753553733123143050593675444184950276015093083367303217199606253259933579307021924396508849209324626183292269669798866325501863092447160996067468899802598659861525158419813484436053823540827834158358497863356652295550467153241493341905109344738431315852530673211462707508988391364549060876179327327243292318189934076167517962698455435725680920293335539482431753903281092763542067536863270159720752419820608580290536237365886461669150440495287818675428529141029148859068690992285606981907683848189756124171802234260466737503512533176942528938354604722724640604531540309755323584598542011660345206362897508814863369365398760739945195703305876087384948955552624454748138314464863014570741212117522103189391681875842852718407571564639153401376818166058474390803884831864402126157909643396167339736432149136976091595351002740001006526360965302457709535770022061011789829222773811730482752033563423157718244276627442834471481038593995470374590629900190468066198632997556194825581471221699077900698277298854012869157803293756548194788603601933354525848470206282066036605480886472539954375323084767846680510550935130141508477776068603794454856552297391849680221341637902865371721602604466195227574504051326661012787937798859630412898902481783518708638994743105903781723940133016820566618591769381458889226480137514624807538497697692542406836223150076023988908806127174727219538494024786393345896630652002576517679246658729463384998506077184273343913489292489569000611901229334279820714497195547649819878853056508916273869432627776298465574307966992796788028744728572598002343962167217995488442756219365214421750202991859554328326187849472701300037420708561094651765425035135536622518037497984119011591333034227826595588104572349512692164487890033932344007107892056089955204277716557296208940193127295831565135447410511373271770434073328146710067541275622601936857918608217626779599327728089270216519230334487964399373979536876286710164973081885025013041585872633361137533940690798761967967325240791696860541242426285211226803749993972270379577415933716031753494511666893916256985822361901159294490106240606581761878386131209264114692455037824464865916044592894575727730654634383001201133743696407125130780772919454342492575892347664743592700026733962856283122857485041089260066921549307432394190495692756225112740408616392124716160586079863577077035723791364026490715201757712722951288783887788351184049164912185021186263212852353441788078997358162288543021384164590265672458713110590248462241818464035841416094575212215571460474467222496570082669431526355348427738105565702726251714396524140716542390181370423098602317899959234563970822276208955422380692053275512238084740957509749613603683063572392607540678633845590711297672050787459621280333479632274086760301943249004958833285917747242919091687179693623146401089713624707209299499956667837419407027910034270033916884751536151266797179386822497510609788817637486785756979062694469263723857983826813212063312804191405580460162460537387533091546639136801568121024641876670490743736820880008195193045452622871718922106077109730841139111615945287419625135103450471466728543335332113045309097691179465946993416194954608364746948944870490559909600211185875742153714620596236098577680635593998441372884929053424006398788424350519173605303264569524796576331327388016515264151792962895904567447814038355316155944008012685374289397365055380463295070424147005892977684589406693726656173856062454403415921731844081015501398310122424055406256856710290952267167177462785381269958751731028507590959778046219939893543070508467216278227366888414680823525334776375055559057063282749848879168558194866456650045294043687505911405812340635251544825144994844052834247009480170795302074421362683197909752238090691261136971344697071763289089478877944606318972389532987338834485620661405603392975954821234593616002097968731838121222948436559272903690496937579987853011744621085545170326163153493778871704306238741691729451684778311132189886284190422364428367997493656889001966589758780452348615393951281084828911866651916274133478089408484614525391011922695933887563993602867386045359986065509943385155962889636930497373372554678691757423260153941105900491662090003499693952855272702480304720412942537297485149261288885026218408383829619688555468044712990495971566066263119384510014223611373036266588914988356041406938506084335772767250558731720619996030448066279022668150989637941233965548342340998023162410214613464031305113507310752453245797896280386547252088729344082607413795596111443592066255865731697639631508979558549375255492985299925436479285066805285827529496604161002063349367897230690774890333238295455762886586226232982786813424657406176979484268383702894794477971041274990647596502829957910896571957270246783991612935560214443572009744783726005339363192802613403615943122959588128709936462042981097142600136746550937121524487617035052823597157940829377261914185134916830159686052182574166309451827878615883303266841166916334725799424723037667470899069185574494798557684379121426106643726485783923760105618691184912495946195461852886310984960768834090071922857953245827145502315546431675869011390391177161130741810062798852653213054643493098624555060418516391883786847458574840664609901956728055365361285419620641387754316436488963768192062977770953458855815643514094286765019748906373598458631642658807508329967111970959460087478062839139203380116096462951619702120253245988055134165128897423663116237798361859203880857771981633212482019948492453003274703433916749258417619876423612585942743290273739690458010253069536459163587145909397985734224361056249788610420209877217799397779491433748978542344635338531631932654322370151499087959235450381986720516020937733490396945171145522394381163677472896872545144525186144048399675309113775258636194970622993373326587784636991708454093088139624135665551023992046522349280160004180381271400752269785442061406440683812074523665389844497787499105530791543614265152223817494823196238539869315000449196665438564552043208103227203294393131906192898266726277260857949212621399964079844834005465115722995194354261533484197847853295090504221952496070828669287610905711900963600659734183371744235555940668292350687382550689839579065409459746718733102779314900032645516606065484177412678990468852467484605195876649365965381160072431805557633686310814447010961191995873560365554232003052176994116446149500279092820853911259235605686256943323267921515636326466862427448810624033873237075991736502804549019206070395121879355866536431317315900501163272381771353294503941805087625239530281657694876851020751489331737978048620780968284110453275653454077173728281070143592224505454266161620316581275835380678466995945114167292987207612809670955031257002271865622635603439775221527653450128589868112492571967026981288224874214462288909059918189176599024190006233664619386056439774797196298893607266860259474852699114564809122314304670989094453555194001747978670880513585408988952158227174094842462045704746246916305774092615476824221982655364535874560562499747458703246420192916176891336380766872030395205931520717398768653407350769539588681192846956364408070041795516199452666594683179312777647896843171697655643640568376177410706730986225389699632203618749411707826315945965594332562165555131288180698918923766872215326965907645261512167852894850202909622144881811592509305160858088548377053595469728466041158287458769041712440793830955096205857446456567865139463067365420838593146155754997106846793270001538347657920507460897085748714662898860617312007530790664543393407909972911573713689552289918981859572816720524014442574048761982710825397081574077431672779787989925655568409936596225380389220277283673367255572514540875532093785600064225030963785048338705954808382521924331366506166897555373731931311356101893263573110314584455595435966334974344267766706731579784782051693141947304470276968145963922141133468472948951354087219751214533403047404263317932677170562291234185700541448870414765523083178074635100236243079638831900992621268980103216104719289387104749735073761862466280111706487515281268304703001108487976930450153761814919402173996793969699765705625014677132088274366225274338487716770246003396062324214861984507784708257228956260750889559772124125701048819637430992191367201548173682631211183754494540460400247278104018334211394098440236347225967897177352972806270706735697162968042309785614638172422563662774148494080398238073101330079162610746750673183157178626810399240428453727775942750045478150579590147686365623993701180767110817436939283525680159565515494692921662264235563490815943122020445844706909040505031395385314084391742154316133398103210431265062031518891195620619732651481850748116414840412400754982396594393148220764937543105653853694107891345446319063185743892637160352244636261686163760308017979682961118937701682076698717672540784562601433590276120579151716857547015077330360353318359516544588172152103057478481238203324246030484483165000609712404536227604170963066629347716839944639422580526433570670367021704015311266748058365068003946288295862094413752312266896893008628393157509153278906834589542656694099512124795761632202518067296391096232357439407150714989083065989238430245816063128861021731764733724028869194123755476925750760595821218859294230516750015817272757345580154973041994952672545043038928571537969084562196120099711575221876585810756041183926674164870259489652799527275709781824212954726926556026168269529803506029312807983191629408936282626984065163684408846467821496973007138617005395574312116897153022530733553753393143637018790963334877521777945863602700255111259807510514761308664068258382446146818149499410723668890551416093001635418827588166870538794686109813487206693142113092109070985102796885260785891681190772778522584537502591014764828022185712021272934381405315053830718432965020820655890226151903443956056117194702906817851387961206102892405617530068497605816520114453510458234875645830949821214728681461018475730689488501626008633295549402826315865074745649720883652721021180838774819768930732535466295625006845698213875402839048301691748376526801151336989554186957462299491102055709025042519499087083726178388260200598499726793488612932103188010234130517786031990917321834291240626016024376798393270882380276122277038829649448431342043773520571870596948706486967688913411864282996857432717825793030090738640296232876079820473715020358967309216339102860435815943946332679035527606981559274091755654734864850182744234291261489077239324353752855617797873890496418068049741301317660613029568297426235680134539223773609528515334948724152439604508906468295325059855650041961070958299290309912407466489130185536045011676641548397918442904348999513745430308712644571769936169839751178886219945922633262001354905953651705513109674934698032718332937572335854640999639399767208734035568148662413610659646441389249506339040309760368480781984276348818913126394658722624198778702990391018245584060984687452151114889617730022419937049701925092116443218127173142302772577198673190359406278574671419631526927590161715040999508165686314707644458021995914801580476631894157630732650335869346758931322516316954737879059398662531203803708103304674804915198380135883770171737055242413103240546406556793279793440029432322922337522890928700425789943830949317961249097266734449549590146726803629818393447587763663040359501352586237677279708005961487588792718166245809810366202949392841970028641723791131441086469847368872935412054532093423576353169459859640645024602723996832095102978580716554362899557049846836615253058289068108393220307756957740885589436946668512479865686018103011311109596457802559849743041630317956262676392014061537401790145207052624917636482841831995631300444306775788919540784017855105317668506944658334113137683082696503939686006327386776316980982679899007474118402700441575187895564303806574016501272663654299306023966936401906882370771225027513204735120550362172628303366249436597046081134319047690481909538177364483642078799487479888335304993892271082258125659208202073925022057564507783960107322232123335507826529411381414663895365637707995219488939375654358841078848470753919079084428690777546151441298396447302343525747181499070446565164909657497594098410872357683934020159466235223167091997486780511671742869876813842916435725133886036344078427037395611818825172711678001002847336083673679357045866874742998833715014289377782707426788272093100756892149879446520459010147972802181415384480412341296939404122189133106216061403037046365459219188716921894135902287072929310215331058549278489506533066380714234164888000730069782980310719252379842430954489301688259453075975754539034131783940924554554039902549832169446824391619101737024294224831353465045987021005300070409424085019354239598857607208830418147292829787978390904446635282512929992020100540964628089128117770871049479368157825450041427824109793879417573964091602152127197469835349236543918405031617414852047908181480152346614151573961587487314527146184393352184169346347741699113983363709908780425389882178745257989208906947121533496372538598783774150240313033434847927973900362043155048289296963546766059925810724775333833348716983178145826421071329730139682542270389990542448878663759546239024374142830249009008944424086841279245554228639019238546030565346931216557121357791256017345761162731845583140065159019064184080830317096426088678065982721883835378003687800726031865019899475520610276303715802361695178573801753490196015613184280857282220064021708783155515042728415048456566882891014560160679866957634666176831413054726505162605433819788187162863741403273274508242103553137185085823817576986004309302550977527539496746750519211100473416248673268091492665234836618864459311429657309686547169390940605836337341857549094051750626549243203316302225791208001410174791392586159812426180340251685256417627082167857868359130918288395226876731745773798133818796233433150179371266531818152755941328051500297570725791992790656416237795717657319994826008066184193155091930433799340885863120573791256340545141513944463414106216048849721453467593982914523508296963841031679196906296846521452755235701200696036410861282997867901218033691238957093038112146630875240173719060366554215119452838235625527295992987874131704586249595453983624283642674373183572229672391570066679617789070751247579904927118039005291874189541636340363576695910685797506508507382815075421728377633566042182294037793499135084999188911505100878801770284561000129646506575761055108892352626904359598638098834300126090042591219068849499336421181264312828384579251253457083327174658664729462078942333199310648323453053080850725859238169983158308564829802238666258134516616010769832980344629059649066191187444508436266729814190915754602292669071443727797706419977422601205334211132379422667576264647350517225584428209141685044140846130188215540718558142836778994996125510727276107448456468277327101802974270400174163564072261541922286185659981807235163559710947233500777839720708088119231566535359319364994357953056935880964703572834242590616925597735017555429516591539824117947450039687094311196076130034026242814830864010588236330838055854264552347587288697809309028924424501241784555333333328802454122494830921751791692765140839483151272789872162408151781011655773392725555325776469323154976208818040017028422581564845275791433144297549113209792679094981848796847720598396040048429489207287137327294212555336072734412184243636639404233707737664744848047866630665245409033045223840286790579916089157276814242659291398772967942975862390223310981818187709893554029928584383955135024643579406942112730288667444261188060435291850582350317620680705917128513730595847851957812807065427439491559603281580266292822464573149958906327463179980381342376750669364681553073334907470955363170978635872654113703367555141919366949062268005944768792561583469882169158376773056790666914760019286120403196225678021236728441163809730934558319036528005777796546197755538502917899108493727751045608560567570827545889280644723856013132080313990480418405622951467636104671923894399545684182383393842944224552703415998137955821011496128920862879532042537353871322275010230756849453214583798251100723798542640189279687269986526206709419858263209789973217821246203566610675561018628520138970358631818610950391752119641264531959428634420951717614551799146662496264485711656546555150353555672013758096714388320330618519679977567326050029244693561762769274537996309720416862355428925196785885096556079355516576031422602922032512422097759633573741270005521252370710222188850876624428120146334152029481950659700988224669015150863271927278191944147181212289215614745642516114328843439796900084687627247193592078052317406519133333854876268225839346802483991270536507363544267445751791123440271666446444311213094192269156136563080893757612546887181595033068179233080741827150929637696405825871265275949829879395925817397742885001884641164928741727248803885145606663453279340173336748274213329316868517739630964988673473889975775842172101444855123541206404778663923061542008168402267977030934130404543098327674859947464835335688988178718104935510369301497462411774409321135758157953958497702537234440921445687554668038901184190263156879024095857285412085405958427531033503581439141789165206791494662417561737126180166394814181043203295564393598846443062731073914440701497449073735858882307739829226143382160794906099651427790728708258038515710375105557559625942445734035926760002149617877819981242710350081595626263317156380171150660990106071523038249188097136775833914499287092426691103946601946195022070219573111050260609133006847488394435893398400803451242162679846824013946530208765279183978930871161721618682040992498500956012836479148352155569954734470976479150557973743355135619555623189761118647208499000246536796350669007965384385111525383299610516314868198425350825422541047117278332338359867751061267990710248799235768253096157023610631981191753471337615011492108202276445066212899515425586227816027273691825477862053451867758274762820579419589914240831370408501056709577405976420497017043461230653935092139129804783274782239568109195273138570340917480565049495944748913585247981487704466375743369881231097419949018347506034956594485071135416531572333562402696123239001050120802988292345070950271924651510551661700614671265903879985200326117610913844456530917425087865652054269127315064514868564795518604012317313588044499607363533157111358786215430389139650340953869064280031839784299041940652455357009112033821684850229938760679778871861445985592863030269932892057624852338272953716417627517359268433764544557022076076451036840508293849769894196922877899759846851243044405554741101587216871644044947517011445236742576126138905175419089634541232749508191455331932752586839681189444638586327151411170392842472339839017908031592817978466357601297208222807210407717729480562367606498183311556320910876662801794575685717218578157730217785723648731716269125527562525220329698887724062440996973103795274874213564858322339474580377660737779973098630680354668071132392794622487680548461481130593945884215557713428983458844189542711127819806485291076479609042600087594410896518593636821670906248444443757320555546644865833801622653643967468310348700476510962668635056486838008844752658094316397032487439132164708432282242138731221569335171087360764775258568376293695235190113189228163241877577675192523674675073869014600368883849900793370763826113578810439219317940210586100478021075634703522746432701571650159753453494406789689048129631020769338955765617669066530859891347628046972142885617964198025405722031582388004878804211449895174053507195647595774541631739456296681538593556323298260708300677352815947257783126704592319185719923521879468927137575913097817319440980080675810200393473497325811748927638806162340157971824046910102676390140801483502075067788656540263941793019569785206242086175662421796694855451455933750929578026640194282674981825928486260373043551333660888617177492559030144331446733558718111667957982492200533410345999237476701714648426074406225584478323493510960830183947322910610170621988723998331216760656514041569927315570234646579026049143731777221689258294791455315651465257422913939585687691362414949355544936430660722095369347622280600070576421358384743333391955303407325032407685801503186561417798770317002034744712800200972321080721344878361098356141455479360820703460521556462668692582746812243441202566142705879463770646250901062830874900333960324736750351303965619387847348284666359162339392620106583615397968411120100802573348646790218212994560611392956452358829824718387705471459610383548205423844880282002650554632809674276854712644490001555339256916913781640034262783653867938520576179886336921547604497039104448148704617631237337317291681586459372600984067797832815110801053141667249997928941510624608544199977547171597062971991336323968161842988696772184667484640253018074554155405809526198218158524638796011044596270258581433894510526035586764700034377953245578596614923282677512844638081155217926853516847355791591619269016756987055400070239547023045683970940840314127348305061185804204793315394775860282589581067107693924738754782045625925233172229050528652085691789880098850498283309471571151243598166204912030599683460070404087334494560624059439163742313577060370123115557911967922837888216335084074294696209860964917709864736541606138452985317040073860183059140115058627275434042287511644476423778667602987570735553191171328458112627923852070471735063698061333439644295869566282165017730194473333966491095213380338295325637042421313517947219274091274309879756569177294793766648734858478925436025309033967769312317108198445961726106323674336383346873404469451234368239244786155641808010932716717585982185877043236327875274916609433046030927310650533357906433151466042471280374199393615516474776485942793452317595559908449416710979218638283360068834549001895885166214192450608489646815078637127727457007050856373598246714835980067790457512879418065574046760826219725586321222778470776226947341378629860558108606549399940516104412583909561467909895219637399374855996872425035496778618362183142048983821949359813220907167464710862550508634539412276580486248669988863644090030049711160872862296481739675226279491208560189989693599372646524461371562562828510598585806585138509862410148015196370389626313421201820282118348102895801650905857262955994165884010787134753805000351687747601869757862710920134117612044345675045494534291635925041210231936990906625380879496484546872137084792678694580039310194482243950750340030009917486743944802718342470616441738250240131132514651175993510366189129890176602143251264990749078374074002787468159678806991400801071437866503272102504127855210423150326535795458611272183014220196571286111404857459400357965759135162183637447280115680993325167963224357574383959788264546426558757297767934973964545987466736880197470626719208702246569742707543537925148774499286960921130917206793678110066203833079560437942597767238771333874220271213430552177681856839970430058812099304673393017975533028047959991267272108091324713705806459033250718310878225567232226059142258270149774379130305727758506433250185213890052586213363268354579108515666480837942175873660409020084741651179228174435815016258453622188203581725804590838431149665533899922549737425861914024542739009019683218341309852829644810391980997407560628051026652001283477638461117181116766050238243574491104894169921002261670265624169712554004158711283554468526563048619263064258658998142242197776595595458933166872932658359744414948430377014760405476597166452519844625684728945399076667757272346616468223803419066054134505651406866427995183880734897585833182748387056994917875505059029723154092419268862322306488487204167860378943867092986766133797457063829411880414710217616024713150509755818313934507064832292144096476495439000201641597297230256899865535244017310481480740709966766039341135452803615701803888958694117098362071747419467796885091075572469334891979073550478850476351810564140076779233778735119113286959041722721538060623761893440618330111228478816388530414631499878012715337360798116797999923275257465826919515433243388924312606730415806507333403549522069670184181791083033509725981487224818523766504676382998940452637372294467974156094787144812173636322129235652726539032914939519512987531905800560980198418471606090823192283178636697205084249808102836218370254289009850135718067796470890458665472680238050220589502218751698993314674556504172158945894858544050602435108817336820542565825382430855426450606212803096288856202238617485696036276247793849763672005458885920749449745751919342988294892052476178568118386796382054036505814378896645859841873164051901805530811974701649300554897168651679598826868661884639702519824346930507118191286245878435841856997428411189200507596865870698235803965196292228949986326524088690599023599070674873776367403649459408734953899774956195302796851699889613333940322263043872420931060778438305318312747399914010828122278296601597446152720947005524192198181847988065231611709685403538152775799595844904172086839589598245223219394411884443861291400434197938659737627283363243896108639635038623565772236883855310196904500144279078926126560180660404558264392149378639029538887000740149489481494992095747327453503916876356760020713233843237763294573790017995309388335262831199359924315469771845287719438981640329491888471564872340117993466966210517040790971422746172014441823400324475130032026346901594123742042918290864096959070220698216688467057105236642091640344672866063108295253754494947630052574388173044961580422166245526405627968119184910325864233579668141840206755533832347110137200340641359829128319095653001737224921630298636415678463945857720960122119955286042841606546465649293528760072259272136334737397701523856860182650083569277386582357313817691864487571252456873767746655333939285565286313022698406463959894031260463570826414450365446052735605459062049530973346337448044025193603126041690865832513401883805981312404494094909158279169881273944821269920209786493821972603028909334136991683625237298200982871235436691798721426429182740402315032769783446697094260011478029958650329275466683592852637351335456603600061967559486293581169172857130486489565417749919117540873369590064842218731436893060892087480429376295534711601648164415542796517078118204987465221809203070561462393236475412131114063091666763179752682768959893012211882479981448203500672738306793062155906590031365802332999722018774095001205679925920708388035979308433934949450288685811370980018372377132717699339675840413440582861296835992953887718150381791720524296377692282717955702906482698608762011465086462604808800039433678777542629451171438617722345802033991552484096225429372211993368033072961019385396822387661741770796843688739289148360032220902910796792533491607125973552149176564821177568133010538377169973691107513125765743774187589088920729610478932976536490469422151368088896235420231045498553758190169663382518403298947256261461821685812888990577246386558716281399920951882647497314149028491580415902986458332122520067058970548797409171997104079427861446120297410458235376563120406267511059150509397862698340167739454932200671788942945265041954154081976212067715823487142625656793848648652578792761322676580951854267268821375495927043906609924405429097382116127838826911928284396836442113029011568852516590075772541539641190873559582289545624562046364055654979554792607886555727950272656635829231239370655010183358038868325793356360388382460923957718183512606339300130968484578753778016727710810491113329110516299799992462313453283145653862346093594003961488398589396499094496713755762141040410791299785799221428000074126679692375652404412666381528040410444250288539211722508727466023619635505303196436236866587956038782876027169838245097032396549353829234812977388781013520038576982966273730610512209290035288374045084834380830707051645688162154244418130702010020581880451190901086051267237957026583781418008753840991912225695365801053999078865161035637136668721113497680814884305350643185191239561551957716445264981641620357047567708062389845895971368102786809134001115879649437606953184625843095441379826156594140934687522995210002618054010243853721176617415821141057608032814674538136759937410902879818542301034602610185442509344444554595859310645519399702002935008928795629918217681378492951818289291348666264856844180737860167147422618786543075709052557240146458701503495733685775856470952793872367152476943800298360029419937095699459537580150053211527645983119282869822850240435786255787185738203305874072003476812687593357335337938569512375590718162275145515378948556529261918331500651610491533882792562752684921061273530075328242739374927179497159371717060386331750352460767269134513107597899338052481738782611884055322799679318894901982809924521765981682214697288426765362161136699283202253194433919151829339277257895754685194461839636014875471979226902468314444959011075987073785105816513043029685621275671299558645425543318721185271242021805189022049668199176084384464486352596929216093455963463910470604212395435312406454369607831079671445490114206804899928926834382387639046148555218374456949759954744100880888570445335002331675957501825005815854254473922093983625563658592675074943390817284971685468084779682871661056898012670266303950545564302784744092173760715625098917148305260899549991885774608416210939878124336352059584535414325689976609205598582225702932111947399814187425772443010666965510734122051949612745806726410997499236600084765117032273768219417038063355823884923938008959419679233050174168128789364249046855028978067619922818377891935737801593359040536255416332759069852946354716681526424000220919609297958640192604950607218308645638776754750421628077641277600506952264914025482756744507176386102567457586818649883602075298029165964805464039129298218418860759943794914629788006997074718266108028834532927408551431474820418856941109091723830212088053241909822160939187780826217945295593782760834295992861354560773651471563319478541219670618743382595508434072961657573253787704800193622025846990911466720195293173609524385546912064740150832927312940590935586341581330388255562015007455296002376806726148615962086105238739866214629006054188868131404574701749491875031767815819690265358961554095670643558977119717606250976425802166535334506281056825802384906659293549040629452650222708277792581172002399632543809162030342881568931976892522436349506595073627053997760003498921616318059019509770187557380649380355532120369448991312524297119097025975863437160001794266502797435371010274347385858035237576695513825255730098692587555551569161594847196822315142116961563637041560713941286927442232109287120665898950945179930762284958866830234137276611655215863440744181156932768471980126538893717972487863102359650427006489787679482823678853339752674401655197729699532275238053448777614341674925590792677189704939735431425308973675288480373954162304724265750263037860070407369116895474750636471849469437891844863232182342528967376155230269025034054762564208565908452053108148312110229874698796162996800270712630199210101596816858598663707792654645260111112550620839198302494511021650576255631038768850018349133473837265115557223677830258503091771621687210194512648471979783934922041202425721961114627123304005583060190267678333677344061495096467385883537627145139954509616335269292581610491942936491821743279719353327536298274931779738163092100873844445330213108118791386592437433830465861476216915041997594030662883655731523306860453733447182205658329166107459133773006298014783031558659627296323776670109589208706190379131634880724126699142427926950619923166744554488683621667273877858419504495232307283471481714980570692791239170568519601604565071799165378151083107813005513982062646352203341752351011128171696170256695237591574767263337816286807435118311755495842588500094818869908220835556019660384349998038675508229681557865377709227779726286814764896550072147649039929486866792140620943236910171285919650676041536120908955648836915130648169668430474082062957459127679870482016178382076060486881400517860229064076212360626780472088525932067624030645949790361514588166962140691268623556013779547522123666078786822164805809314770297677090631899057627339087671111568803685021088940241729711811585681273189104893558415832798383287215851225427576298348844286753555308403604993193864065520213864036086986385699580992815668537975663518029151994966861682734032259219056315158400222332518109950918071304340536829002091751605981038792294224367227653537829174394904908491550582154705889060414746999164465578164701523294185046244129960771613004303450385033259220204338773702500653607559507604538945249352724290864773682592050754573747058452181960745817508501233309396779738199691451593278960829609307475067578424276948567564058318935464951887886514578716914266705100146293444109524266613465111940045271102606595721553338998380065194149002440408716422219568605163145212403691841612604353269945257041446737439837224552142720229617712444555018678031774057182388882377046844126953004050404196562837089343859191545844252801578039086545035890692707057311830176225865391543122986003976682173445950127960821968142840443371556769613642966340010146974659163136272727908170104453620120669178515452037575835135113875955581701486388474820165352241739240072147795557421999647357050993946540347242543779845086523712352630094699205686469965641899079867135064012253703531117997055014707170303762758254236938029547222256067872981284162711572611626145765043940027236524600952262092507308744564261230953303543064839169633270223951250356678758883256989746463824577264181775892519031549231574998337203447260013105733766368319671120868862149741289527415650414524583694076277002000153873435898184081977218409625790801134436639446276964423983542990274098801636797443943167388202078435996546758832961000902714285235450003920907966700652961950311517206713703684318098968973098052789441629066791114849363278981120122227163601414865768923184148480523576893647435206659828548558253631610410435657792947548107218654703345365681420187087810416855727766661822769168144144317592515849910349007041548916792059373110817121957978602241067709652234607569801212051167633128482479830552300222423852277659825776604458540268690751017721007235587830476999658052409168357210156299228189339959560713101855102446693703737756274482459954704435613665113396852320295043963406844837129032048336997428478446480322633935491400059851557676706327595292155610679942135558671010178934670713037884879221382264743298460898857419110847609317293062937437029530343307351118689908952231636694920930740744496130811388977447184343555556148500863543026140662469912945412525506836576368899947327593167833028694002589668863096761269656056595365504045375063918852690942523238768510282367245499454122043072450924077284784688579029976941925721203888184760391454533144681229322413767692958107199095905305396920109293324211714709435594057852874102434342215416247425919552227826137455116422510153713201398773482356608924791797028019127345062495674351551700953907687073262220491397962062812879812205427843856794885098635553546538838516543415478704995083921187318529317818527209413560368839702066722433668231087587103225572101701228603718905599099609121767418764054463033274494891260726307124676904262858820564753461570278258326763768144559754158154683529341374717470851507772019164363786111065740844548829229727542451004057615800407207078587140630667172500850460344380709606386793721978347420868897928066734589135783100957713007096712073708184957033262610685511100197130613262702708617504468848279466227086979674212549504643351366249508146383313584716473564737642048870534127020424636643674067326633251770900211080084556793187318536540302662589283386791775024210791002609307201333887833813442975897743400428576658568609265782252000278916332349911346604177714425608425725600217688733307622476074571559174229934013299374793115971044944231355412732438915899542715081296827578429284695975868714982342381971638422767114841315649537579508179958970333066832591143049903191679489199092784365794470502022117126499205923991126758292365780176873312434029716657967172049484502472359386839909317359478945607875108512546132514101682636765159257071562811967496591784195883092333405906723126521129722873237277454376587642177108785103921358824004997475956578813881549300166971005792619124450831756702434619963224365743865030496739018541970573719808248329414577871346604270953327851573330792602081524124974068223468834843026602055682215323528478781391081907757312958069297708675637870677787705168801930783130693432495697564858446696533232726142472315693920332583062946911906106514263237805683424815334368772373628859866250936285370507025163635484834891008754300989314860125898923434075194998644718724894850953528065837947772557521938844958110876823914573324592217065069159573014502247825814427052176042416344695810146021403779840873001685753235612457116174417821399509005434698115127791949965720523241434992566349225069394650238219172297507144182380893218717817792159532518615534404470722860129564866364970772373281659971349021427766544713931210850952685508460905194117790566531979351452713779431470556569961669052786645207257649733615826761359796329363810543496263461959979990688350761880962459497981360899011594964555013424524012127821034083386575068873410729186682842638560087035279702297972497848848189072068903932736417558379250702606177756418665532439488470394877205604701143999687387902173922263436091615583876425319554245942601537563461123736341969493990194058902232078775815335330604330150197673056882334177711450211876691796835249164270011195425351660594615275966867201278013580768207893140013566760008882551089425708064183101641363636218524587342140282444015696323708361952102185797537875559141418949892670222596880518195552809328715214806686962409394912319234645918925319170115691991686585082863013797730849436486250219087986522266361244645363156913410167127467358006099064614449658046941852686712553792727744138713336688723685077625775577038512315204440715221585805651372167903909576875888472614760809954833478062915043225294918912761007592648828716646342294673619871149396218764339497657494792802215085239500419876528939112742945179868133975482675462819295001907181801128339011308011340511010226388225756799724978387446380861517987876118070781768449647890839293192509020658436965800445194450863773855692209359639453394883948483678868857951609763085885826985193138410955040072449032097431911715441089602290129943323661661675965135784300908217179942740165627392483005433953754817341473210225663513042757244946458708063830796690407803945824453187425855598260863582254164709743338190799172522223703213097767545894079163029025615233428394571606167522731628714628421145571083693759656275687055622932569440087464290920979699431118243899166645325378443347365151894795282212408449656979917081418606452756076468160939608248892947748737402312377149318734310151248257564196848459559022197045585738903783299718291556082912758589635454236953564737365405615300391693017865472830686842932182493354801606217825877931104130036559981859970479048758178301257295407951042890327788813922559051142812042411355481332840820750437990736338446836688616244841597154423821792387399041285208691196459043345178431550065913926108777883809032824815748819345606586036020295985215360820758550835806041245115822881507536244121048787507854469012270279016909631809475853930332413569778151634831887818018077871707134308908476836489811250633118332114378973610769534404047503671187698469547742960520611746112586277631917054350836952288944384931551057332494694343874397755630126804602609930181544424537144574909066601520468741425780529649894419004169619011024968116251820311157657472655076075777584089296071891128134691452162789442288614534828517966547600785001886483074202024546988469355887712440786564986307195983738894154106287570925358375384826295101488649133787060689854781778086506328127882261272492710836054953591742409227074976905225477509527506060834774284986464953782826672248999228364394821754661286256101169428250194023319021670230664917980712784395079488328220817288369355459106257747375976552065943376318726598939169607489403322754797848843320789340808499392253090175192235692986702859969852778454264839458773379760218964955532567792184809734884801640113659753858126670323873555102386685489072509679518091367395143407710350232773669398365439085173425821140832063888513534901530144528199671538525155934017522687267231422588471755597948077736244369379602505395127575906159500293195758889978338497992536580368515910129952574901895053694627318253792858188947649662489641437389333543470030886202376014777580117628730401921538996260496164395944810862002066152531591047974218800168827296236293439066310923805053405019018033975072033692708137965343117858258281893222543840333866700744127934965772407974628420094013323888715185092844492376000042981688659608723944571478696178076218989548243242370786372241405056663036504706619100226365466280529545043321596956987688593665348342353125410285782312408764022256939612745353270054868118265618352746006060598658624280745893417793500711537291923555912357561984464797367969160718216187538321201627886785635318504962587197224026975042628998119848728724005934951681070070972054656000380240845901903326156991485715606688744237276200736766810606252486353527389893289175682298620730193592228966282357536020359471537906745675639132966885380444997089899980751418424163806265142944977652662820364988008649734465476667222470947692010564984024767735722331494853853428956824240312256247312034512553156871476648671266830983171548175614419341268686065732168695002960951591285639269976246685215880618177809952406972266393259471621976111810996417023717055375146471235517723475283245640249215117867558180116451977333457535821137035199210712546884998614655418487460690330407341972012063759206048785889351554594286069982698766379501641844586841982982122517077661926440442661542249711390214256472573415679244068509727502839167165049927439038555262442344709258345667781425647391872231620748294367283793765066756821849950250114049188001172096345554176246537022098412100660760786592140124265398539087315995152088573129060338136753494467806379797438826590803639258391898221557203974094496879398958025103992180693220469359672269240366975734826676140647460687754156868980520122488685926378919430065136015538557386122136534973753690686576035170594112503020932413793573924685807077356238349583399724271747882174939686634354067163763494173278999259238767191084213517915239231872538971136600120117413421350811856437926362678370694306324840153971434796731387354681443434055487859775933597312305414981626174294746801803337863269859304598152053471906142916572292562183588514378108014444526576588064405366866460487470525592657294240963260010296368323888359408065214889707913156228232626609150543076958111264170390643001727462425786441513571067154132088669522853555524012104287032242018161359109841258277616472815010334658760251350507334612271957638423803947358471648606493029778668123724895994571831611349473730266178576770361098206712530826349533618313181280734713818598097278823967148688073263842886644792418229557914753607732431650808665318895683961574532298455580104636099452243378047206331660682889733059359008312040712353192975780593968986919233369108920086710567665778007481795400766766990288361592911708079408666938794759599402270875843413074834565576686686475573288223826231175806083072315154505878614302213528260082163986586129318552145697107212131084159606830683260535734902894373774712712892371980151200996940184218138164873817497484744038729526903702169609917879262082199203540459217530403776777594689131614579363630444536654824873077561615753411851075823752091331377713358096366563078572816362681308874548700483905020968987769725046612165162680783136821865481396933603638994511520251703254760132223141452441831959354325125623908463503113747297231283503853751436131778643149061764292655065627034594402840472243194354761893715112411329508911272311256768802771587392102350528221038976425621754512542168648960794421998632589767041648890504563566443826628212614459472375817869942622128485959927748579050822694180869169148079833886563915760128554181591233429716128531133760219152792734175478549857966310275261853740375660999036017535532533655412326959916540503821912514910520185704923119759067135985248432036497813617261599833524667648383887913985839954379208486045531902588322467163811909164021289257891140339783248656544838412511055923701770922596385832963772015267363097404790510517200671058092764713470433353008949365572416133757936804576472902747870913503902863126853149557950657132200568785469077682031999926164656662772686272903418190531084769983963751062796741925503419994835044916073767249125041946677511103062913597281664111500160541565607718769094609887148935475230413616480114380867434999338094615101567585116499303244780873043910019340913645169516185095712207256828924335636839344236864049094441852058598042146820229878440604039909570978956320737264547574661195886739525269416263773042072809528436627244843701451153711002150028210406635274360662888479951684454093608027782588086335427655315649182675403447976546100597046047149903172471950735429594843967517850445306229485612173497329456378317775967889489106216004466413981601945534618702176603038449179454041514466608038592226157909455084459847759909907880197156426985261244201815374150441358988618825068849204734931915005112788755583494055337645194380624298218679204976413183850607703482610303674029349120816068768954820589311800892261948654052288779771646508584557172852561264502994414173578076219148997641732974511618181190894268189787941675209516302658941661002315917684081543644958230053231088538490300862194526711093821531133046271697316226296162465633035903870648168861928090208307306770318710979265282942885818897257929721355944271432331201496682044825859131837474603495872235894114103128850923427794785483336714598064577750831946360620670896335542831773310929913763923529297167834807188523778014450631550784293930513173995372422404569850874688465329610566895916598781996496162826156643934475985789197608958869573655161606001878732064425276827285981640773317474794308919800400256919427160456754810732106818334747524433305271501569680076835092032303492307353957042122064795055818163746157502888810787299465521970256885750699374931648436169446024402233238300109671101910589577006341440259295030452657904556218920059315596739372380989491794163121227851186172737926891500649106369245171641659769351380672702511243802885606291507476628343104183457655763307723330427386042474539401006530809340360695635935727881186928148658773088736706573621323312024300645345641577955346233824832300054999291657984556029239751896006698582550300040589812342446055180708555758960491675177606614691674839698797290813434410739299489412320553599980903857950848843508014606471577694714837235212644566217109277146780540319912018170699427425042320488217870896970288849385143742477401154578821497372075544068510680177368663668209905691257374474850460970386660688741230557162480223228531123967329752380046862250970205368508693168961782987347608978388761558230496105965785312623452801497082449229579012641433665746819361559679913217231656917554504906398251561754103480434290396034910097686579800123385503550223170175096048251676099926975468260795420213418360811373705507853168884706829911938021377417098454543962616954211855493589779951112553044047446956290327567948325256699518789100878838407024412297074332184438070943057440842671074942242863345365293089620136789292310032706235722086573206928582835671142249336129347261794493402793348187062029677583009611815553967305936363877753496032166406523837511683734882740570513936222776037699150221648536260604986784318295625526320234199553535448152164082814782770169695139986201328158919395310782975882842839189864032540298910901275969265247242362820807422860185420641476346898874857009848867385973933661630535251145139394994353804786294828020653570320887284071843146223158146946031632404659314186527935873943096494044465005411595024571234021365673738609671670710471549333872630827613987050580282424509896812557576645741736377999328557428564346172420765873090324615920008359717939889459253936397923986175580398980271596723048065929208030819097341167824316844376979059465492971278734530554543700059314402843702350076489344956794149992777478015009991949608741778512343106924793308438985083870922891673752697624919181716831905942224260259794260382901648980468228195996407214398381890441158660153395579324584985833731822720167072426649191934515771348575238380796166302490594863013295478577525696704873471215768835542384850522108673935461846557923108046419245728159450023077032750718374168199943287024940497514423295289593271634091092108202551439019970950084411087088905810191977431752951678331165270468047996753374972801165232929630320562702556837602983140099731356673361725807385959744796219898220763981975958114634212466924501592297526792874213266719226090962148854226947974222210946223443140036751970772760213789732103952797928063419230722334412782230845765333470660424349874105658713060882112349722874852635092948929360787627647593244467053422618392235791331564260399273313730949676753561659486579682251448496616472624283578429025118002362848821546061731155224917612293634245516769359920718236832786590457692826796523251333024398465925426733093069264451524268415601598612989059482979552593401181465860821721264992920431207344767990263674009650019916629359981792831564567681051258240651269230174521326365173928881735303279919611685762187333222020721345975916775788967352988374068675762132167576351576306533962701071056123139169516038703930101062712441406496540834776315886603225570098503681385233980192523193150582227856210141665609866195463872423131994779699310546076334148198189323630016273157902389898240956167320506186310526465710296490547959493051281023558821556598198878840430169376755736169745241374797448696171425760576552267902557678416836753089192295271022368001162591266594732335998829123430243814506111501401239735280482123949701222623136403380364200793377028247837035275394356538317822570334831840251184306933157553630480822623987693731322156458615057825765014947867120798321103331575975402453971034290534835157726360183129034698688282608742434221025324403100138247224042619948216620954172367819497117593033250555603545458601978202845876630521769445940924228480470933582758972711700019885021701043619246674131093082021301254816987256864879680515976821534729428089525677603280216794174854825463190432725392429263502727708166426823383118321249786487765885869276862914100437775969516088494278450444197972686638719876841416059029678759294325421620683081142633588074293928525064030709485258386700606398506766700598719032600231795881545070694316859552918402141612624971496811932098488544917302754366064901919346410924917884732433101874236852875567349755082540081948086407358001069744585392614705176881375402587122328583992913582574815518977274444088916578075654953180133529992147966435348986202648741046325687529468022021126239865560301795674691230137814162198710727548721459488751161574004048515745289520034041387612472128964620785447279745905370370722698461755883979537361502113979808359737401253706927051789592156027279985108772550022702810946493445026293838264259647289318707998538735586097597801757977969015946552029096817947918861792470774029787332116995301998504986051343123554949083202676566616469567085887932373713163376074434237283895967974996099582213240116660736886891626167483215407894186973211851108179528311901456365593660803691639382001687161456826699075551590175188604727449452278436238190794259440153610350103856363574241969552532301934124028707942862553640158050234566744250744492126237152898955404038228419789841802953947455434037830946563497211935285637136148123030303053157582765814607128493144710196611482390455284210873868927811428614226852195521611993318529668176066187296489111380852249644705013291525891270462187219404491498930182477746661392299741090385196078688217320791546707050541796637644542696947373056306560861404549025334495578666978669459409942436636683138967563332998935148475441643024395948842214026262596381559570582126699406038385332614494969108229834954181511780897155247479070954065290249166688687852215659369496863049213514299011509452504668989336433402994033535061084822838174015940360723372675912955388087076726489673538432527790375096831744375786210856181193997912617785031618393706243997554435986001123715428569794139250536133891216756640647598206348519206874101192044725819865754466113998717556201293136694696767131587724871393352013870955017282604944414543168237923884824554942988296402240995777202469773305899943207616899821385925592374826676341737540847644974530219774745030886979851688840954143189980245814556539463756019547637244905555239364908937509541673254800112014018722195420203722928373212951825442173986236766704398252871928518390628362299134924838325885914005161333926322652723066617367245708858885393346157499199867555976628383278436345643061003044555440241772400569094596151230041560689288906709561079191790518268606091070354570246936946323490540073433490358843796543834205934546287669387613344835755075878280520626891647278487932890781098042327307315799219864943508189044832418784864345668115666980950114674227369614604538442072900718871373196296017411975610359852729002534961436125487641353484143799165077065039912124704960045138060112436196274964633604950804625842941469765703426711066738293917604359283377309222650976908327746427368081956950200759787156115530884884059485097903252842865311321219505946421705644263104832369863199507225563856600259354993868411106683085992169781954260316107246360356903200147323969934230564523508799933748071900575623140620272287196070584607851889511686144297847807657915120256995788365205008893856560126670450452776692122365478555471274254128168210338448242640861229947895351532076837487773221625766614646927224080674577034458674272379453121720803626328941359229144749105530835193480213474093793737989446879216270763608182947249483523836896309595466706058884849860725780324175505033471429024542282174655527590413390926584359511239309891368953619581183174821401099009669725869608608921383772218717466845249561288458184812146253276882349499227526316529786011856047345251642509427961336816149984614629115105611664936035248846848665536185723803932416162563400300953772048962851612142396712608104109527824623008037331099351321354412341648348954163287306950754509701188109716498399674522940542598162362655119899015519246589657857102763785554142789855851101672676173409248556365033229081972609456180519026230239602497271121853407681550456220256435441966307920242459724889749857982250587479297313800903603000257078757097084963392654868586031501531879886600676430312120572441145830027964873729578366794755935428735212751657314138972052630287956321252390046178251352220652360744393635697261190085705915525703916548958530826244563054251072918895111057896581670189631835691267089928452808475432940490349187490682826325762987454880882541906046056988198151384425615692721077782250251111905673908169719030966002009440445106099701191678560404429638200358018150622197047919680194399642951433262250564122950315032431446200064248930770938229015501259989688426031848685701211604683544226215930801732595975276159987787247432722781038456755753268142920706945832116575485886982180233636705437068318173880831711855177571781502074080253188228704321438877120894132752265783181715679576670281297506972352014836652687706131322759574300960860186900377933559923305545423912714052984205917137956743207618079447342234628426051446392548838362227680171335693053377791825037498989651448991044047331005993895893725663297151169864110944626912451737941977189150211467561810082665992546015767093907019931373147071093875242777033363583174984752549132216300908020944845382353404439808728953818003141545292483630744486659377896858017292945309740673854242329361640645790372112843877200221608657491638700444463695207391881308723889634082688171874873435703084114797849985909643415343262323133705565942158306689678553448350367681180831262175999339539999701582995659003079196581000672014605595411345196786862115688975156231227478287556578204175984785915549174862449413420840056881447772119266212003745146196736344584430059647141790884649524511539896113749296650650019681978923313955367963944598633856795025308667083782253781059811793437486359082699461857746114692910342249759020257666857626942154691027912081000733137996899321089978203278998088331598177696774882581448084436082772543601698432032046797153638677458439111209207150206641331800679871289950649464926530779860661594109015537564062165764162514449494815619232262470606734435359859324779392803758995924202613029864713280202741618867210599182312120683197564167564747521299457558195214663100912322649881175348199073885654087259472467095989643169640520697299060770366558947368569985035203199634038219862478994306884031867276244473342951856748147640941708736695513190974326752666046984425017237004563552555149653821260887985549981543330879073079111821690466044952922360467453868009780033059196819641128783956803458862256999413682959393000432207549242944242287920933947636857917285058564582686722207641615425360128945437156530369630899536060271070959093595634599792669137205109671963212407781379589791092285705586593014883686912273346515195027196702840596688871467031647690969748262382031953228128095954679672022983949410102541096339911933661186181593774159982386180122676186329693013917495695322841019765330516773496048770817841278950089610687361153575043864306707194852936641847423292828391096673691588836713800955959684799432660304434192819332724625911315892151455100341058125598347738419409404487312202769411687908510726873278924558366443543654389243051349083550335414779664063200943687919866808811101095915576271991005959389773387004601826884605465472059271935636853962270107866243456943853555237467571687736448317659335134398568501717468414398761499083642136584970997660201165621352113554491548841889176679118938189816223820676648137088565940283145737054418250870236063614155432104225354078193821327212583958036770405037673625684576014604595164098265811281358698499652789158168250156802093319393015011338059102124143289136297782453431909398391025525760616028871687441921755924088979218841559608746896888798667974056819111563326751931692679568793615655595180874829672234437518669547568154322698955573724272784738547935440969150812227920739246500269043858994552936392221994451763186512155552422293445096344482889348684478878308306507286256090205104473747293296518672324936425119375069945124905637141925032920295771223619376127669998333093782411681002268457386439354019218712987676509938718410361811262948805034270019616686060048097542470569451234872152962845857608475563971440216076580246297225894793066474870725213578145810771472055785726054068074442572480190566678328716962826326349916494344081743951345982889096482280324546674398800752633135278366075691115413700988148028658047297996678779169857226251734392328600616172767253639403159900713714433438294638478575728297674979353939846472334106055805451497847629222697407143554345482435869739999967704744949326064142657808260922556224585164993879650045686524900618955259025516649380110558983136716656896542084558932860904359256543125812312521977838761505393034196582057783901676882722166728912086566361328829914402040077685855498526200724239486991388056698717680427525425229610939455175548710919082324343848293573998279586672586285714255548745654441424146250312989284683719375587910570233763972137189000786243321122324252258337261858434964824343547578788384869249780824414846683478869805103666132720107808457157789892837131281942166515386729963846566809365667793948999866215653345394735453936680391295523907156890137208127468190286432681011342089211542106213453095254307248913587586276265688644987973999005872872130682604079744528460616079590608294448630821552740076112490607634095378475216478465277904975333705545667387159984721914685220125562527558029535263835948978170320686406813209900334085299787049920146666304653771547450024991307271582095513353397700286875197103974374769152591179139153561123357816968962133505359606912259486554805153622272026089718645142970997262716289813094894253724190243670898367275335361652244515042276728607267458438404780922164347288268026270814297164944865654212762645862031913037089194509079504228645477878565558199500773425995571254854307850142315611857417894612112403824208943447123116193266662502278639715837231291053157292607261802542347091781528985917293636021373970943938616702547220288704262775442905306969939455609563179943493251095500741255644775646302854503773151834558788811652840972078915898955001373902114570828975666191533754453032340505089937604298368815695591479953257172957889494389042353031704551486825136350912362046739803461451179498314332761436861387367993394714167098620369573771306115495655877550749585810129642575700073310297587579451251662452630048256727182837355462215634387798774110723897922781978524816135754941060772169739362809035772510692626954087064754897225857163900139325993534442289108853508860125988606909452069355509169830934142870998064884533291263049587376938806604868009263728978940748372324653884616249335744918906619552641338027076818341422086253242106817025830719561694589011077922436522394025317656565651437105433907222358499128728352439018773573676376014027472916344564091454901720572456515118451949355777615244603776157591834563888477952967777377098235632255386870870687495607617292729936448596511318741178818102938191042381232206101034967817333065133356447824554389209908294591529695250166422184936946029073851497194351859420650456024365318348131406065391297622507382109456178675335666355652226311403316178614602541632125477136426258447917932515951000823421951754808347658134808610949090328017913587256024012207984767101475799017047871309628314589051584235540499853568148279249535117356939575411505907184758500436037793590942820506989291321402857555811210958663068810086585846553544212207293827918439377485007330620747351902757200290926367798677383939959773502456274166250461686346109447631757283887854759553891404756917204928320292542847070200778299038155634745995110611585370510600990745508203971483971778631490271906828910920227181144805728970063427184089472383381377985408991279048015346523807533308749155836975641885145333161694498776483238281952157778982395476050872826805120683508771264278719086096563912306705122298462103636524903253332649105598465183276700270305135154820327328145089473309314720615561267381815193811849652371683612896718097081559361614667867466908347792272550632852346232802440060162839553052328244179170807610410201242839721154789221652700902809983446008984983263914804825474894450437811901816177410856824271664085676704276890250129104136520649186041482071311242811194952652204748025339694236709951724603994517077021099736940137323914549232895548569875734486381264684095394003839441758014637564571802878021637827080390152389664484908713860297708902525194008640310771900532985134870057301302121867727830716395816862017803043374119565204213402243635713415637358360192635956853069444193768327798018858799244366111647773172545393867251970231837281962445779361020772579019525088133480708602441702170941832319571430072715085820605159864326734840326047938568565087827935604722731909569462202704867235619102118783287580725814685654111149506016355346969634733057091359810898451407842357754111267185247094704082241712507395788702476759689650560445124146902194082272722120027042206304655050861918397850763967236351146566397529614505290505414973125618993804653014124573547116814694758102223285375615701171339071152821622222348318349689238532502765113124224165531230755443063112324762705758964118622297650226894608306232972256865099531427417761543831192242681704262075555684713542486672843979794517236059869745498174472194964423784588437536288739355318967109988809717404440762863414933132840952842596224241527824486883902309312391115802744080830577073254658302410522294700963777614147394819457419130164068895300280438387509910503432583812522002836750381384659501752849737259670953216717334166272164247953812486930164756423132337109107684006360318213892447972996198409405782225306959407489260613044074359876873799079855935143579686155689886507679219285726191552343525359100243553881429708555942281054227304510875782042095702854354522329121192230317082360963938959333653563941430514982170829724325184366559603523118455240337916253703760493609569694172217918271833745195798769505161448149777432113026061271583801410671299574682544946449552294878374890094226650018405611035868497834596219147799108305316861583721679145080020652645781752417911586970355297263423530749013059773752088472227436395611876085133965526757351828843642320732180889248813820618938109444904695162886278798628577951121090989056583822380992148943801512988769220799930408647362143177208946735925628798352563649115891663943335273374131819530497843851187554316850965516606070843367661772236483911519442252412912592146583223316852118634488648117201062413801076052110189674579139585531887387250678189156380427308994447353855458706988900362282986273290591853219836139612254419148285826918978164992086898279622133042998135433630930342255542758266850378205823950592011686979402790067259178149702706378800777993074385377979309024649883230845555141886012764404191456810154889791405243304832771038124508560561928657397531348497815868487501862127298815971794203813463364344313793714058627118055316401896941962783106678842495128410716277305379847839287810795837695343934278332940265949005857205143718322839850854718830363351248074752142064333137658674477170763061681741219141785899719207153351688072609637673690740293851674021121870707183348519322767922265400445466800241744320731447157873419327528880609762681217653292159958528888339286364577422562063008787738756193750326384043146882001259015684881171699116801448862571215346440895681653670768375975066834650104331899867540537277087017312934705496775646257919256819139026007444167300838574808780648323308552378809034730443836458791337683179480030569255237661946977535181770101751687948010679663953234752536202232134565405645494852588108669016610012686941669742463930263775945290865887496992170174725117805582234287478776774305440012842905751957101744809910493030323553286104311139211577247828966562571947139747874812738109737847320656311952662404676546177597766213815935731985394290613127161245246335224347824907749456043972586702395135567325058649725191126045831191537885279628660460907738700729211864739212356453671492702268555221244718657896601546681805204033114307178571609166059910326943766030541782765546445675804397188525490727987431865543564752030145582118827783632054516837912045449335799494087229621978095509586666667769213395263280775027998347995214705144861608936696396758712768104973340722330091580380202939883290310480712105862763999999334036654775334701880496129922059654232113298173336482328415278563806646380306511989453183731158336214306888584517187825541974490420108249613124739861255987222034239587317859474837483613835347079298868725524264849790850989993165066604774070807832990250943062601631342471797362926087914423677107320948889423889613031648780679783548382492143366267952069485077834823157775138942297010544794568589312149390240779674660932504943193341875097862530848235858310907211136417180086014787869874617985662410258198080550380062224829175929992285234307573435958227272809495139088309437624532880718161329590052591474941321718956751134243787166437975244074662476329767416454849131935177328316531487279965834854512796606617470920376066618282452998487805782367488682016986372670240580177642358937733018394354377100091535119963999208987143937702790075680974824081420127738524361414068585052574273324331840863329263024586306477593721173327494335528842979239273888349690082278720749764707186758318863512210148936074602799780124371632619560531020293443762334535188589813712378111735641998762061096371453545724933883916790752788424171554067587770939884005390380755962054680082503195106619408375366310531942121075211364169376915637996918544225831897116543073532445658722901112087323538499155057207762585096871032429332097340298163327597170283723469398595377412946490774475802950842825379829664271775548307355815066992079260595726150503137069157510282574525420740320715174808122085518016416392150821068004154127935354638110910782803398888697087992661323797423715551320350000383301376439193062241067515162874510577975035996104684433181319281613846531501928610513997102662691199000523001391399187261541556268582137364901166991601216065948947437359590709876566364436723948745424832459018441349594445904128629531098716425358776116205350425402778323674012109757179852616301238587777209972778732937399435367270568450405618419948776495582186775768178941042324868580145016332764381603677664518918771596271587691946392200796421245087835920200228035213587941002743780468120901114242716181665827394983922514233632405996624103850958450243435164541080928446681694379717175658254639439317933812865905977082334092681895178516072377657225527745359630967092355947014483752271763877150507695951929348987755199696225755741487568594554273140498396064795276982337277477708906621291163842588832099589183306865059074716356835972309364979972153059287658389235826532027037607422403790366499259725431875380864452386316253284145730812820300066167917332162513421767963719572501199328970759703229296681191701872892426972714800217585340658387631392612477206919160198154999759388035266541446746906932153929711054240674268989393635465906955461405207115735597941270317491861784256722372000470844131577949313183547509931249252893742266016310552381776214641006871876255271573659450847128801412870427837371673723492203931567610699548194532150003761164408569601043520675854351752242051373313707288901567831058824213822056254581571082446587338028190875302938416683357445531000316302046109703471249622434094634627976324726937168848266813985387202326394750076847274314380203877180362407414727663092389999074764037419177311826139149313079145985715693829019465950217731684284022427789419641729032217314061797323954621302499823228223914959448746959860589492658164443980473809207653652913407559291333301550087778921462800684843758463941628907713489323979859650996025152541868248042551266545547730508541976321179698832919188328367665162179235797939512010895991555638008622792417264216123564287522535144580548485535415982468256313913720118432772281775683291806141912585324958748455763140164948253146215243790748846142047610375769369693988063203548375079734107249141557986208685060488841382803537346723841314313758691940783777737797324695140495723566674273745780939894770581936077845865035126624056266999836497708924627932530836418652183740339824740458202565804942808061966065489734883281262012475727773981424844512920501640755438776038348563327010537478515553395502936101672386176859556602346410552601565800840730358018270165128278537972354857343683947092848906564049016499294063932629952636853911045766915120589750097459048052441935793589017266712346585203485643153447342148831466692778632416520621221046030275502985932811816844600417689901895345697115174277593266107506750824741263737632511312706598465314835271219735806167818699923439268546522715805137257112632374938134368135922823098575295790208237421447410483580719817618130672321643108233062983076065072252669978089780542832543727635115028967896415336461029522031626755618736028898420339066859082638643588419372579086294454140241564583463466669242988385383660335854686663965865134188840555351070751332811344032879489305753090463122435134061335528103869911057377918907654118709885153530946932900394959851648708642854264693873889250229815643670706734378751024580521579921634832404025557033420887602171062750685557483708771524932840765413655846828288840004236785018906960300719998714673978735361188006346837276666549963900960542769654048225293516820044774327647073466523349023296618745094833271759247089129267411124329304505988197633918546434133097345790033269862107766726892197519437268397946999438641466033538075112918268526313759594863769841059815342216716587344318346149347564530281690477145366833361016030498470500454097731770467262682910489767253613708023293886321355662980718227889136434677465558546415065122272663909650383475970173910694599700991657272434589541611485710362922089082172867342097403094475726820779594704606260963300492905350923018959601184139592247289768799995447683135375353663588030369233408883195382283724903137620944007856491189221584520126016843731694500499416615349047042598832236066532995251137140155894037094712489112830913617148629840217700240639350260936557030176069341310634738126887851237070262473260777350431669973839909814330340538669348623813990873257817114352583869458883642100159328624011733230339185289145795825608442284200253904086773693372363356200942264985530127633216499409031050394141645908672132558646138156300647989460183612760521904233186636808964692921390891499479331932776911718716667078080371420416063110728074179496309546044511042992075478472084017624106833427097395255904622619124009099787792549794891707438252622996319788945589672040654217142116775336018313787648114491307414467315206730117980134679259018249610985177628209532533291714218761406691715393177023227371051914013781915188591128331326824280013522546076161187644786399620819370100033377159582278269762034410217603545844907453791736787293278838560307986798097786883502894206420473793351127130338444668634599901621956747049485073389797169532088125847534087724081330874065367523985359913188154532446235730638824198698550459569398146010891703262970986692047215986200449753168930610380051365385437649385796633806161949063015297707806565139659287153783542327661466402235708779589075841432276726028013391934222419793570253124493062204775473018838180259718008707954215633806406702239465168481672728078303325665622714463727328142866068775433641905980926620792692087557137848856560168642763008259322643989443017151882955838859155047702908735328899242814314203293541655380592146585177020409279565364145093795149060053031728546288825782319464934180507765259213667572212573756093127151021517252857114169326270803400990636826679220660910923666323379773110966867417241128912166719561188932722618397426348633970308852020591225509162493473099152590902172070580996277947590061581873754463686887908861977331838116287455967500951298375807180812453710085769845420346328895058810942995876430974248359761904416329952864623822615021484321499286296472222279084768546220211290193642255112997279375297462380005900195583977653745491343019052611482181957953814064128871088665514220276370879439521331162971979647984920911654251039485911123951031436648464264700338691286953793139203403724877642184461215993429529264872294396600006938283257683852576973891160256315726037057110669282837145036468615110426054313393300961980327212038838300537537597776681844132138599231551613417909391885994155525280338579462908127278220323916733530664178441024162703431195834200337061528494934761939087091570278237261502673616605322320598505307280778063784091292902747794354649939051241648858320894830489913369631806986387153977468882725258720964499358731277632525126840814102436833702797776745427880236816217965711558625920935423868767943916034264735091729441373732496947842171444795986640148402049660748039430685297856728353194245403235483392485992719013797712294768377949382542774045371921393741090597467780910861231045311793787996301168422092641819454237649348527702694112521877811348652944058659862905786950778573213247722686305492204662470502460238303097411957410351830210007551496901882632189126657785547427874190167593168236686906144840291762485603113826932835023862261563335435381640702019899242650005456117801476077145875617981102434380615849336429833625601176460045804871646192837655965226525683102709576787025624470578325249307364641934001855137511449490474833379968263302634652543017521593179822728444474749706667404161019372314020800847223420352216785455751823669449068502602435441792818329547695128061002383457509163443867180768756489984348530913579186608914445162377518822207365017506244478551659201891621215306728262762434454836303567468778279123444808441737277425189932004665957830803596019056083938414372678550974233383008883737947739945066173852217810402654956236472059201818947882029306697974624736096385558777376364570134201209139921857946633708113334459485476254823095695228684991892359694586651284712666555861686568595675192940695910024823448008963967565721098735968646693040487898752845638488995244283642043906713522177985627501266162659413509426325608009063725635926089822766819880611443526994400070657917956760370461238226885548960042055405597957373991343032763355816885129288966712197154184711191608523602884708573722522517719206859365757443753238724127109547142554949718208782618437143442460410684640799146763292258550551827594731100371539590849821182510690733211667233442802799787471962089464224531694049646981127429295912786518994144391651311441478708297310071739637147226439445714809412289767645206869785928750597601346767619170317733713329828196875302871615520013703687084506140426486640692545638697116370793162107774968611081829619764865405477106162575816827117938751535826004236435992237755119772805992365788778387101773970345585334563558406033899018351913293455631803996217731642960286659977033286366223240204917464292487667005687833930378753675767953921492598491438042468378424312236384747695622582503399866031529125204633368537823527283986101761616294398572237350653049442273597781019272501544863672738612412305102484906987211423765669570156571681475509275622255847431747624502587829765368102035338792503781077965622350905791817964070363245334185856429132069419545914562200257772028450695478484914587657967580290421805974478125318552490984902826800854680389866400197046175569406333776375708704481863835896529408621072727115251564142036497498900598234547103199350992467425111901291232002535780033442076706095628544172559052830954132258630101097386464446145325904441081878931754248033946571879667164740923216525874946458187141157602935415226705971292203876722303012616849693480834656131757744797003216821261244818969669727879351989586551712442256337451958914860825806048411335162705408650610449805394646588091869576773467540411146714799051923731522092528522786282902248976631695547057974841480630465982051067821321859917169469639015038683723221516245306191090153398550552261483936546953448813123153281172166518145191165451658463113337120385764633299546035711306884893535204103660053796081187915246128820607516777241780751471060295676125811861979678032586406373229435109925493267113634898880180259832134218655017624941730705710527222485810421250692602727604489233333509391115500245671931305523331214302049931315194340954778565748092777431012243756006125094412618902314956489413584338672819137432739562368896959255101281474259297684428276149920687933811198664262043332436092465963978300682333142379016803982171695290341466087253300662190574227627644709968961726539229837516437777943828231353027259857665768702444982031265523716028743779408789165775033515694427172272078592643837132899471109025031038088837602549073517091360422237714818319856537141224637899769186327466729960818326777756537104365576829343347994747599053490449992130282085226249015438274579238060340761438988690113393076817222749894401740174393993046278206675170689295070624370768398908805817595742470470368988276094704441910556111035143147613213680967601923596557887889971903750177224066899773613011811175435870366241548914196073833375439043174277659248662853360346466435250360162928638263543812155442560835662529242820081346568516268035374448928296245726962627267297148217554089136250288648082713494348158196638862397303001333941927002016058368238233249746931089444047610984484050906887396828081848339523444427517449153273692859086871828230803903810505807207793485700919171626617043887580867618633348741390092695457314471674298827073331243137718217880302520880228849680506849925658199277855491637814390899111575322091560145921728123344861230321768027499749946205976063860945676047972247468649319788903299662379715032057394974025307349816090148642330323340831021524041695088015083262621716548387830382734290898451292111882494751886481594453287083864363757805264038074362328634183228748565189029776369620985699219094796598369962589103894820329525706718305498268894188265089932434811313003824685998225309974401179623665444497894685548869115504746977189914062338463300016305567260640078295647178425349916274936704156299429486008768123644877351539353132282780624244717514182063180180748769030716360353191896077132326984319060659153813461103153432757308751079406583722757436833390107416645928638021391300020131394538131245354958325825793986080789129055015812413654362845729205253379137577655059277959176324079050638852454790153710333624017118668317682444866056283751731508824454785865733316789557029156267929646312947765250860294897366421251888620492256614774446039645159758515876021217346733104705870372398602927855476622440598718319288771943727569965340702785407263561093157964744127909388127927455849408829534646261932526480069384751854065606726039826429664810583845554257503043800397452318695863492993475887776429881205439857219254214418309965395556290649877489718824705041047348026487275377309591708660265684288215112710098736795621896422847802876843805750473077543213619294228383636036648875891228991507249153735614783233481585385071341676867256528196032696367689054257484668130576160568111519784125504224285448569046588261843412977138677127453787910352069480820072163053895268001844579097214819284352598485334653584924490344970384269436554125554515480919141577105123674780514105206107317790379438417922590499316685854160443220882022215078596161588484232769236958619157525364741914191260637736936298393131744526418197987885678301488412372787328057126467967503386186177484772792411074072667748767139825574001837916489432849281204815743858899249372547206386357190104194275331998717542266834233029547661327028334238687734556308399555439148840251188483192756058911068186319848454766069550506561880404886001756799664472610642770012417277471940597721884722317739945205625842547304227357829850148888573992998298463379624827048914138002588091178238337923477785396994204208015832336533123866953982843085783134975184425936196580069560358474894982683223647028832451171233137384274183317583406838955176801526271815354382791926480889419334202694468104365866278408089513231007721830134431121033370980537794576880124716328129470790251211863054206073594253411200610922853989214377197910002989156106038937357780283423033281752921974780057557869101391701692301216430387195978731474895910766316309730652608269034561625042653900416782748957828411113322339501890906368090392757152915325648825054843593258236505029428000682401302495449111574000951058843575529858327002168343031332442993659085570595486707808882017048043149713411497105160911536812271591180703078012089576837968993983198918555942926218505544939858884825746008953239561219642184084405281684031396117644324385015350476669566855532314716696505858071594777545607514716189520707863906175508093178435762956196282385572895934231438954334978492917318793528338323810393249109028685202618246977451313407893431083115624662512372865274959504937594022127600271709504782127080801430336336061475990224050883569634772165416042586802591394087013505447500326326862993282831576938821826665925881473572692205451196320876322348255312252280963900330189738391542284334341741346912181156418036712161060112640147396846618631867306102124303790014864068618622734042707465697785539134536070633437432986727321319714314287891580330561449492428339268432789433658399511124426192240754156344531045673878561919769767930734552636128357286304442367488749739232747291445162253850065722536402996738374523400091572781643713413677357075411455029699461535039394886769403933212819139901694593331992520607961969688524710631014403198004840738682356877802505787240117496305291479892365613681150315776379254576416211066328231734288358557029835421068360597966282516918311252699490677722293979730832696151255942986620458939311052745456408792392339911062119913217262346891782321104561047195497651338808532853104077919849131468123862939477904089900648600898512458878313934011629067900542111252982200334266551190880149956438651412257445031639719377935746576978870398684626307379440534394162972449900037025268656636710656347812900970406002162595516801995895891343321470259208127865448348896681208153423762768839266446715453706433353714087852647968052481489017583264430128703856749644182004310009735134083830703131730058381130811506056401036617572148993874938926680165287940883627644866295409743940484006880010183288395402684806682830569783198489945898978496911975709737508191058774718942625382011873134451666335598777028294365598413853974131196125257593778359411079405239561940645079878761567949455347534472484924791684219688787066689732554997880556358799395593412353483878028341421078443380688685046338272527214663614115809822260515599443661554271763137657553079151936822087506153472626715125558931031434089881090394058815652567092261158319513822836070220483230640637084798357612970820246259506313320367827460118436719650892067098897150155773415344927238914758683383806200680950099113838811838117655399347531789618052665325152859256895589239306043444661776965475407897779484753861926877957379815257922721126868629714715186549724784354518684571902612605214583647763350876948616040781827365377482218425415109796395387507761897565020150151948193879392972951573029651596460603386286725136246808581457363765131102697611334570543267627614498581744385412951759145973827192912881270349619936972241778919276200342546961176335056576437714865077223781014268367089663630395099159795688264372591932492602136237871748513318409620334861794321596978838967257317877326525087484195466629321396817284975253581978221677724621896321528493838559865391036247330419462144465779605834274556701255966437560456711943930328715758440519655847431567046031095016819813550710141946464065757537847843413508756073626361739293581484756743968924994004760527271699178076607957269858292856318405343817041952410986727221286388021301709087899142584864347175799833763991678664644101022878754302920286170740307833770161700107927509912609089537406174652367157512308623468381325672224321784448000699724499328449924165091408397829949656280870548064748846095456063384317581783170439414832097002381909203666871164714717591424062446064887857418251525144938221463809222866180279239920236236789428228966482132877334872455192286236763068229313686610955917638802066445208187130497328008275853667667846366275237893812521135228975492395278980369604302447696618732804652412132614089602465597018227928048485349579800969337627983490610953832338622145807221763158804226189676822799462931514795404774240706489279605750253076698957920338707235901904778851612762901179018903991967445875588569053090139108968691360269295823048804275234224041959640198812998283942775642152488113680407971732575079926537125990926313900830384480602884789531309820073562176058588110503584783162583359783144497224785580687592844445799459958817803071296873209809084646264963650360135682958024854762214906744808755355157011425297332124130838148419342902426075853889983577150055331365988466839324746742709774911769878628503806775095200972074851139342311024863128542805893965611505917557588703701773225963292074883356068932179628773633773946080813012964029230294324169132020899772089448007432828557678590901803752331156340945187361331838037389282370850618380739430778220123980308779838206296618603008664580514641488511457849206430926040016475776270357011510745752396149312623990337738585712010250521532273681180568319208877597717483871337333654540853142070677742490214677337042323793647790703274846161996034181489606042738774053981162632992368471375613272730353974964448507694115632858835536350275232306348030619168431714643731077604262340862439244814731712152800013748346635506241477471299650389679735012290110577797374787461863769370055503693945731612700617294290468950344061067587078638697158524229820486121827449849863205541800453246718575614727657851660951715584555462944606232709039827099855510302962198306707456732071100308939184724334765112126735015215939155939425703132840944240329310719994673569008392278497456567152046353193209280122781090723522675329866964920130568841194091656652128514361461882513162910975226558622098957626074873046509982740004874612403145955994250049067206016111786074908627881099563956986923627543402201605033954470269423891951874855684499975527062646528097103036136901578138774168959190530040169354506579584842356195310888671917021133512423071699985516298590454466077607646098920452208962854821798278578176900343649341814941685186462419828853741603857876993098521084515443084365135944815102654296633167389245394772026371410805910229939870123849306714936478491473530177539360911381613141491669185674073083457770398736806730912932490801433617003165229731156066927348213921575793311120139311272109960125718005794002792287960221140842113955257983344502781962356337405308992339136985970139132130742569548598277368646286277194031283455567915743682822809711354074168298142032733969893911385387101910957620191068257960662493817160072493453781868173458194621441061401370223690474771562844436280296392256311974979648560186525592556376517709478229494270792220979154383508927640871535899378674108202942585287919772921168089406352650092030964893454362046357917089836181661611389772034433327732816490232775418643596726909957447921306507185714540252662975017970120137057130418867470000122549895302249484185178096459036929355906114956236968518486787002128297135869684577516116426908553002753730427475361632481900107301626174057957295960114233537731090042919887697694403202886459900340982956188926741997099687640389611764295196524024711907553630104072305323634621155435642191299232066849452939213136506790961289039873637570412386915376006702129757166761503892381200658997098051840323289829239105011331310110189058213710722813466073667025638416442621362725958102715715550549941517869910307317231521717704043389122112542060071402752328858723484976461637228999679911442229659635797137227345257831403424358249003053185342718360478282642902439438759398312026293358920852775787317236824271592572861648436006776433868542025417727943532144355117891168394751284458340484518688301092570275356855122607245559453191519962918233912091231413823824268376180338393440279636217629766226397196415983019753973840476575838485318626212581175610242146766454689317799802446406058310566038653177126161924304505063423403082737860540126669810267852818925610457989555823294046717901342052918789358274809449941857089653427643937047624787050829046374486358141313363430997551758987671342435844431463975709256805115340815690157741201943790300711847595569902161950528636007417229358947018102421349520789616725039106992605424572317523446372916046063834604728384016179852101371210147056914669620018876994046918310690297570816902712154384515868296375891060833669168129265910255386273015463558063599552548744913217303174390063959177273033769703986011451904202543478288610222180439332892700884196022045108107599139863551586354882560634193318872725999568287499407533868971328300844043884976641146349601015711403275770239646273283218751590829670009409604807462882380845061144255030571761247022044970144013198819400653073920878405468815548016107768262957574305552213246771778530792098681552515319841512996733753315945428749736919902097211552296715121624253731863642034496651080602598153285262252993171814051818077212012287649686538650249263848151611332745913586218016749843538638642878537765684727381459856249485513274879034832299131104504262577047859440804279142717471729302804724515205618711763649212032629975003179384601115140892179528931592294078029900618297128749576608789545051352840372614091448360416573234243361493581383915446090002004864160311098557969064522660189632338289279864270322505936888487200426930901784437304204378677822829130510257835250613043876721508930618908272742260359002177348132338574613905075662403945667828558971559923665664050738498566121852959177676136444870733382588438869521300575694056237978795048411808643028290439351094575526623682173572412947156706331229611596645382969828636065556408505849955972039113169929102024118209607952191932200687445995990567900283723629862224577420557718596023899159713045061272531073845314385188102944859177689438601199202700564201814847874140652524410834778087719622033102312713406207700942038295674246316849203938604016092994790123750351252333632823004460584579510367224082271407727803443068070800479585723971207698938605109721321572462066245964823745125312278365373742183089928187297217956173697718102762802724677593027213315248260291485288031236137183967360318198711788970229291108804508845063519379333604258751143644914927310465996915280610137318432474080400996262892711423726614148067612674615243565766801356713655299022807343866813450688848881352391521962172942042801437218662610768269310032557928459564056613507597048589338899498199615394425188025905616223324865789489153749238883927770486758885158692712606309278850681106858405970886159378761421634691848741739195162390894254007611785634964437255613345357901606863015871794860246524149332760526836694199956337531666518206909972364238203532645073190700689141303157259962437468013159326889520211327498293092795535722479766862704306942554453996639980464055655356625173706764409302801037510148931354463188505967370089531839035738217482336380286800377794522460544772440392701807192806309388896861483872410940758934845200240189959034608676748950024595491713204032040203565286632070791871479897141682863205880806036680671862084754232372233294131188827366698708110780826276557237536630357534350473499541474939015647883224039177661454045762707944331376507612312935421072873162850373949911588261647934820832608994920422596707358980778063444778269112538831019725607267497666772196890323163755709622932905203776899337796328786883837969247808865087964935405038642884476024747092252536035458036673888817500095370924273935456522123292637886765460816584343242943541375825859591160592147533720499707990192948515601079019279484506936240899685375190771895291677888926520100818067697221073792492123103711577212339510320540094576964608167360871551181575997729452541759674297222910681270001815921046896521253986803650218953002384084970153554390733963603048017199433258396492138165039893215600797088225130384590695851647741686162172872643530223965789359877596032993279601752248448816606965326076828936672216389298816588119042994086332848259479697514549542284620921756556016420385757923948564429804904038934218786991081835677840799961497945184498464101921748674781418756925975693319496825551373737061083716201718160797948252543109641568966946600551064699294036555783322630712401731794336934061868187297033897014088155271971860640446033542874786067500984207211311121994671452997696919093770507434566306444672182332503942229919724638777586059394383795325891954226735079321932393071656120043827566523914549925028043658258491111796775884877535614215155659042132154106038653142861961289690795213445128298294391081317142791075053862197377733845019700059868430713352648692610783111987794298612287615615622128335255530728685572155354908169990536697713597678006378972416211050442529288206316709745261140521728111113702275435695318894048118402706754194977736341347663931280107673756183547150147876526695105363811918644495272057521058649852053700022534859114154393842615838206485644957404982442490427189004388972425843714509209337406211174966079984496003946449785774392479051866655340072704796596809652013133449755233889166073216513971650305625671100457880028738180956870719187143152218300245705372542599160083821150270544634304745754344263116778171725836376328854039297934324182300123468740194823866974285333648421100481180234742318608212537848449319044407412634527930678295455602338870308212686035007658821742180146469234181475833454670277071778827065428241116191879488464781833243287506440283371911981684204060988708966673165067863605318443245626323515892524250252168430442729457889603302538071112071182307013175022221818019301907170459611645169420060785671417711583872257753153882747049586937649691918049113930828714153951361531213949476174948884786477601421272441797400348644718921237309101955276251531828368789063559150076387350484339908992383292747042486551684064579304630648603439005132963622250949968900015592561899683833610017559584039819658164115868042827298416846128535748561076168889350171468703090527436712008560584726896695457922886246369678931121001835895541755698862621811650155532464728311634085843426069131700900717718013527837324159661402414043499564099157249305734166444935990270994628399961682712274070716810131464609719769766458150869046266868571258934859728195401931877062264061604438479857270751838559190337817972364101970524860828929943507009259422451726633474809038373089179500775991772495146754469598604508070977962148084557645461509329912256287084762737849984793531264558154015405843832914979304370821470345809045789035789486677776524323315954766430301819492515563060326987044624296765551858878582754995735799392418217681114308788042007864632821941288501801430567531241982222246672644029688247696594849566811900615856823914491406787917983187176321587508901848913569036781030457547443845285281787835793936643810178754725849684291981825859051316734995850287305151702550330637660983131866996371649325461707247021181488609848875693746447180396881663169183053147499488031570365352781666064019512086030927458227570506179132337023183160490860117319658717245091213934082466118425584853203793017692394112474653189059769678289421585227366696238996920970016677898773469882092346539199220839810566558907920101965313796756573821168815313968874652905070155575434597612208143062790603859029424491604598711638381538702564410652765653817105819322910843535285590248332580384837849938821299482028154263836217992975413110908560554028216457942805441073834904939680643346130067786863769849379819221390442281311501028605238841005234511779478847032060966219393123676050717088380978937765684275423192588594693254803675845588374862702053672635245435134745829093134881788029088302864087954175510356226781777565050649533515798615669511027470215880840802731737956432278995205404575515509378075549978646163415717660974055396773762437594774091698342513755290577322242281920183769404563349478977961498549465889175268705853834469040768686119619387956626050965402932051303618855856575417192673817585637311153056632484985705761352992654354541437168587594080270803745622523121324205801998411028986470673100432420076610692855081145698093947602742457530371603971164200973275071931928808888802517480222097938409620529504565650813283014342495908311061222013843575868912834218572972261242023976279226621504997587574059727564858616501246856724571079467602084132004196524051897042628234913645384232062767653888862786596762483138821583140787633546263366256982399966685166165751184389857333282088039384848821330781583826137288135613606979851020969991189813320251784742759941319194124047159775766454626052624514663824569647864423196149898788972018721384183124347845621885190034097918688100863262135932744686996263822444896828075423133141824853906793673209395039641941567413580961995048707306618766243278606525231251886896313387046484053639782149058773653589730559510235272995280052442513027470552678942377398796369569900490079230333156391088106503482476205922480422041860804721753896663896612928285687385611333684716167008966919872130448488415126650749440256852070571897660455279782282901564128581069870807404859865969145533233505294710284490597689188583413231208132762979419884269514436508821996017339639910199607397327122795478518203527549522433247292454683123752987774632791157003314271316480573917232475300057897608649254118523112849168922623167324524739210517289200203580480789088046151595304091485044806185476758600140007150625435997189481852886176532020483756935919893028242360483712918948708214783080898291305448900650041015008838861823393314239622457630142212847544643821286381337360670714632907979638035219066161686402899202528453874549109902554192880623202561623915515843411047814498077328628957917442180909329486678754520455451228037024403490210445684554561547425964386684115505091638635513668777288986569942825912910109905734148666576960118662251205639530720331014597275624495608603737265230014143028851405732625611242871753989457134319883449494672565769442398541022647291881660908553095668874971851222141532974858397806967851677258161379430622179557183554064042698817028786180680979660508030607741776870934457413853878123563897260105946427974262378513773174514501792871990451662306159261150019494064927830009510130783246877989165527938646174590372451182513137805264291677623416295366407224963674732299950707728713218179896999062410306665678271686485107623896177305623214720088827834020934272779742794853511811999860002248778812495625269424412095220782862178578653785459222412730338207053596598107145866885107231914364111183070741551829475126104125064184507126752332722602637325880947031892801439759952991912249926432234857887924900338872800536191353576058775229785221932256835342749581096191796020776615542911362316510501663112502256347486401469430992964384630267626832964123450004570079307007298414912261100026389011765607063959699133872900051839036931678193617388071610152907805919065621393026560220934011286697782322284408475964109344897982134644644254837867394636491067865076984481135803512498459661750127452995917322369557994547307628965665259377744722250447896949126465770589038140611276245901329720477034822150104423474204315279168457347031769797708685391063023018517684130208770367150794474670294551361960652032343484902948455172227048301444398592183495645641258284647864668948008068077782163698040103561554616815937386434090301745375929924622384886251776925940778115481448332542437814088704210622932920490105172649914791590583497404868158380238830689801051848389490105212053292167558251887178698153286282011488742057338373147623816399606285730516107803885488787052884127860234951978228647619704123617838945879721276464972556230848580529504930774535550587956827362302490401452035223202110874912565232151592734332605112118781601304891927011089632570943716019608979644676813379429497167626211293031111798810995779897392940570771167476932424158636876692972637654793534001652470644463320053954702387443354787553157834923290907519041773975538506513592529117304575903481689807003534832921137757240632884152249022608323020515596510241801933508563033810828918141734882032506153143401063356763661244222359314914479924769714142316376920098756729320433946292721394763630032582444160761746996226631490905117185653290697058840430091326667381470505955432326007879802916571328034281771630263999776991762601311091461826622492012328754078070072672404749662021147344593711079023403519869427582454362997047003610089154622089620894248373381945085919691666752230203354997575522480296937896057065282658098201873696555514047016849669610718093778971380269784030131570339921094973078513383957956925574350821331238202004405430546950221141738924774064947808006268052224037399237945052906507612105267501430409117423492251224398906235648408260758485254340155492853139502456269547209430285641189465131527893470163824266543660136283263029605323828213820868731135796387433912756290892326374111026155746749081336873162167407821958061998080561389852520265949683000641514542770431116128022970022459270333048781487067547472209039049204943108197214639929385664560798344578017483374330816815394844893630800006797932424886926110431585421801469457927499277869725410432858537136429537553859243541423674831186698528871617562418191630918411610245858238812941917472049243289201392874721846023855113824224476334170081578651898293390703517912842296589250598987198471082288123035501637558519805984240914258729424163348842730544371522174437979802773807539752105697257910600655053985502710211553617287740155292030519252148578077096218534585992283925199422704931253695052064235173709743200909635649862155187534928768125996681725461937470603868722440250534834673097449370424756305725540517638435513047276965587811203793048268779979725762394563733033017535948677335628241855002623323659786822336335293458083815386410402340100090589359108006963593588767243344090594271643665229634154160363481806606886300602666400072453569544462687769265546673784306018849872136125198601123070599826710465299768024226796504102177038654209893249443320151613017453111583371964078210906892624187742263497758369639802795774711588698199886456742920951594961449818094658740669277711816033097153125261764097643543388470326176559007015050128809843486801436049017032918343721500410314759284167320517594369916170154103500802342858056780942913870074046160474119603894723768916493788589012199293513962704713439188089320855047749481959939173720988048116530128564778174897963839219387271852682746790756122554707434757970075179273701334738525543630790441609957299885036678620241527373751237081567414135301236560213659649644547572968981675845479096659665944499123342819621458316512444741065382507155900039071096257213046518675939612836060617385205145178785899773440316423093611426083492022128756874172128388101568167212408731842151284953860160548779149050667525173471152340085900653626363325089753649591320323865545464480689490443164187942208119701044234157257349321552288704220767582673474835331439921313797902790636735433553301988738999726538077093099526798206332634599110571368417226753672990937766510328318783625506396994278088975420748591086179609828110652827071564610795992990782563175459013111465294425015111770532643677119465645658951384835770056221820184761270926618512502356660463221238162842898430172208366822429522850644165210939424335976385372911809988154085891493307734396162936732523343010995263104771013977696506739306576714493657509649646852475834482170201623767781923289480542695883173976576187994735661107385018647567076874517509761209107784910895976369423744220065552827145360134512130237382736823081810956902699346828763624428682206511510624226759983003483976303315088086683828103533247343206640784034969110890250253824179787245295523031274348940997501179798576168440579461625800038391227971552518923613142412771839672381369457790074210744014774101127518286024016401139493664874448127790930814114242823258449289576001644803181500385593020525064560428635313890829352506291740908122267907038883799035570173520250742573513637544937821235667329865389869329828749446953598617334232022299773791017848828562560705522122002314099644875469439328760261186815247008726621934274535117709980428676092183573470554264099084866714493289062934328316547104071217808417469718162197116102932605305352729604412321358136318119090989961829949462409772063416201899981169573266785001241046287148632739021577503227686768322348860669626481966522742024942725588808799742318693317292998375472614245561827734982782318991152330544886069076690231647187241613296588439651290461333547941085979317017291528787205487035490853215286888413223362960472195158970839911518706774847532091306600072908996104547534587066957185349390226036819997246232876642918581655567562883414946821229057322011324671613755642510447886982301275019933931466520035867550825322712462498387515578330750836307583669110229058522048372830349495920746233638453992781791970377876930884513675493016908721490944842076584819923048246769913729219196847613548276617097383575664983784593435993701444823821878578461724450574891665575782186512302603356773907672233824518485332418818177999352070361197548625085500938131437020000765319248244634821531030727557978892233124877351827930939588519346056474838291128881540672372848788959342932685797271330024063245079760435050146607509504135779401354048434930970345670533030728965109531536526699310886503323887095908831569567838394996307319200366744108814740214116869521127520591145301945397428813940200129379081934312098578725248337257600140789802537398352083497790696396663214801153306923962999718048213137409204794977380253817029470642172770171625040212784508406487089942571303223515700328701913095495458299365008156657951926616282909401322324759271647607939669539233111290491531270155793581707816113090008705826297793903052264390945262947363694586450898056182209145841040996185231655622103847214484252495276521320406590454555279776295167115660597530572999201349763446483727162387248565200281816396791815170936942158445015664144117417459441327619839072192199879437103059612386956980144195893273700343708518835772378449724278083530132385882927642785274771713007584792720532579802389567703242412690427284684846785542726271129044938818426048309361202349294109517809731354859706717025521239324624039289921161728968157722518099121918572854674144713320895870209526683226959120452260686594281275895641448295503624347822360410346110989323403402162372247189032831169445683355971984235705504143892650544002822160648464162751476560567280010334940992184173835243305791760424468699885831599092161946768000738465123573311293385771706847512416251983249889364812420055281409323524963693743424364365807316851571707047896469335279983272214840011449414967665812999882624476452990066730242600770873673515309321572035539066771268471291258141105173397285332067205613569171380325695409188189453323826616529081145419554291877381796395730696741675955757854563278410567850633793339865570439248532205310935675735919950524258552051881985140769577191788814491162833257426709967497155085238034966236834135185839615532515051760438616941621224742499269438641791661741301832207549058130483889983307606341002638783746456476165238394232405031920095251818626660913442081858655392620739794353014497342631065314813153564969371722120764507040660856172364441170210283054152578047384571611446968933383183752799771222892664188372852600796704131697174430246709214441988125153482884617012306230283480613517639819321414776803167752806718104989708256461063855818729553369822464302485568204572204867230103581281938890124888886210006636970011785094716454412600123099936816229939014805981411806312039250337491058703824459728651753116115020026564926227932818269922768698244512882201296323890983084493808700168956694732921292924979883713539843539903328755901403667522773629712507948796378288262382524471645051540395358755922364591975447803090715380967222699816230681821359688888569687529142488120554398982932291408188826764803656753913603086963856744347400554953736965541419973681219266628998862593426337658104484844625695662555122937573210817523533848953425654928809689157576804265560871736505849923425531607914742915533161446303767985886821838669222159920965759074383406972772227979186802936549643621469180315544976761490821666790741683127106399376425622114799575356645223149102200627814717352125126736960530194085826199680557075110233947267485326833422983828118725879064019743202353321270019553894007335878469819771890067803888810941635506390445903193157675288998155943462384704693749774063644996873567009170688903754648901652190970899765252432749485314293465226159734888840661759430293904519388498894913359157126489112033722819253516813283931178240043648226019861647085026729161452881463007017917498793954747478077634686601696856282134358411432570995984350969798838058553812276415769365295024744238457168538427742307897968010095227477430535457850014420063133598472904290966492090834684399872233257527873084352621771804523678274323389641053546788096991392960326724077675764659023024026934353533833087347309395403782343090573296493656165836359381935636780757075040957607502089713653596245914235103748690298015672318655808967137282291091429449014406005781898391215521692596710287177871830691929962111258089732267563570528658864483133521443261856762819014332680699170503701744970591511825289395121985583430961050175113621351820366290499657396959925848090070333933260080916670529581945273002181348403865598758410138219841842865999655739379824284123628041485879203601323805642536640460723060927467268753209144223095656561317373015244786189756229226568912995106957393216050045562630002022951858099380582483684927134689279770269679953778802296567907825805869992663268504332119545338449743511400948190979956273537574918973066238048041358081299879385730019806936815544245555872420166132703854123063290740951310533237940342346381999591244679658585611985969767750509636270740241615421915149161553838083856511439823858835814394663586133470171454003341275487712104532055038354996054585751781770033558995861167430039015099100828292184319244558301399738878820915930626834809654601332537408600379966320267629209162934564056169247388059569136899752211076669587199791764491991889095691767239830929015830185218544838184378761829952072209602293488444893548461572671028942208843414437180097333953529189686276298360335603224345334504985049427931712839389600241175597242684975484200699135853083159678855654493555445584250694556261054708797970566565452853453346471135315259710824556577469790162995043911657112156072793982353324947805413754516555160854898628785083040437752360758463434194407352877318338393741763875434147877606585318275588095845131408013638456630803565801648546364032098246232925284486394156639945438023682599818824618518269627841517988917439493201628094194858321664069288968074257849744582657441606208380824724599564958786304409393316368837939856096510044542958282075548830183597436184870902285724901914561994244249168714276303921976980275926798851046522205514068070950803511872891937572194367234844249892895129148734536194110253215030904017349051214828956713666661875995530079922309729791345406165869926234034857788923324891065785598272706074015020600239651508814453854128285615744490136893321904025236787317948566368705453174125740504892313360430154509322868167385515388620917410534369423933867700126267806658722023394162129637606915315277457790046016435326951532171996471686498003910128751210636820333154902288502934487808522407344850123126814006522135482360503832320859905856087937813028633775041191773285087281036088365763219771627266976166555716204605884994202605229396923962649916801742821042786268249400567918817436397719730073645043580911323084345519707460510693266034539359625248075036701946544891152871887914083851814323761025728165730150037813738016094631767377168075082145781704882456686215626017035070683368345121583818510901181142772221344792580000629669113309119628304527686753105963815206100858615228620259378218174857778445629210145759892885917859553062087733310210497899253146071216806792278840250957390288480261153129154744241405466324250389413297431210047987657372869140106253638974514463775565294717290705931027667747493341710754565651592963084890467273928027865233784919157216929109375066131951421551356534112427612825839618258210670486084291235763518936070437021796024085086635831521299715908420296203610891915891376154727036113573301702363937705722960482447661649652502251963977991714658469839031214355953137261656554829768228516134144495120608665181977366295165079523076118116005823601932670190158598419587171850923210279804151726325540594857325576536395838634715283139201317114379837435737964895600628026752944888737325901987372061476633937989110126757169813969159764729741160995060642889380875064998818317772850534420953041932266587750501520149830184814312066406416754753928176725035616839125744232953894401368380673849119640535006699209678772153598593681619098247216929928943003266101572541317220962495804098211441364454225155341676585110003604091929339900511414701891117263611361837083774644119255510193004815485701289896102502191051919993100869594628880193815191465132032635644853898299976205693989907165699105743147608434426884220447341884558385819011876836390628047467219979194805954080258958507972527521967702223216715681503225337450039800353994383190272925761439885802257893368161750648099453926631166468232886450237944314795228524083490308937980991984242198035139292562045852608128989357656425697584716694216369599356952159183139177965466360343788673904504395624631675005896676796131494068964812047407021751205049004292608168484622831955431882633009691058845925610191569244618646235975595949766690241762021846368153118687732075401423826262749663716734885406597253958442003430216095910399268256213365418122577092444775900034620830645417873780917970809642213025158687893312205037931418400871424106239564961793390105243584290764229986227673958924708628417783765511943351128128401736566488164330594756543235303313695144839693453337592156675666893693957631799395850239361172095312581021862060052318837325591366539860905706853476156611292580068038975073647322260961402202039294203449131724346052300473742766857610402051521913187288759835890740960640007873461026578399159672219001133343851872752473743139328433719559701398374248176145675292885393297393784582996415734651315293361551515748268039447257727211983633441804445639440321023062220683380032290634430778552677238044849045925490209604314150254968442259222157960730179941674718956834898038614276372382079463408882329924684570252439001949688568790615261340085946704684399625324246826114044142302852121274990038675137891451822837765491499268437148084292481080668465499570246092283689204469812335572504990050552732208950718594240415950957837366856528600595907642144698710288709129246305439446683163823733382634804779508958747576736928373384691188332929794962459921449789417463051911704781930154183794792291752581290175119979696844067324592161669595032095423556887289109268799198560356109531588735330738281749295305247478232393738222983548543236640977636626034085687079354223034862995420571729982255182118901150689652402550539503231076203379626633701170259515557963132982645728335680678447632353720113721616945608881137449212972512162430116618621826781083915307871517406681477273275802120787017277890985759043057473273874319258591428360930699209659344996360278406369321460646531221946801223512631288533714087545134013688036372016529107887073231331833778739596410542346465327176882075059066008794079803221785359828410475496731198876930527611243899358279434508723635391757174544868926622245107412701662412346892124009995226336575548783493210722121591915493837060808163651780330703760603156290103381678448580461261365300464657813721829910120622036879138296863336515529834399071236273438519645940841733177635466627897531366768346856236332520360204575082000662750597162184018019228711418659098753351127807026256814474267673226902964880860615098452714685459445560602783208598709466020375074143179198707459435266461670502526814803792968039297389662647606747700547377897202437473251317903547615696136693567284563545633960166664910523087504466742956180421925112395360567752506669131318147284742541909327766435554636324049438927689250779888463299401205283969875886181776933642590139018293080754596763402082330622031312259598068054396607377377945883931804841124530877085293086216185206709192379973976187145220564875778237712504411402670507419568985982999344286117113366094041652878191908563078323555825910875952875576116392314635888907312580838890591302531505780027439981516750116280043226519819129923758582869195991437272918775578075317819425361333404542437412249627991344068321031702567228264680822128363751943169888326378127920921940033173280217738418194447187927692703755726208042348382973301031308069743844229687475491297972810563262762074093455613048329991445947151386064627560553347964523493787787488296246957363116621388210228769170994213630751573982819003440766571771452566928361939270250394306842657187561453154745480176311927119445583761779579290276877533865101713417612850798239201169030615094758501843180971028443825080234618413126977978345041151451700340957467267670297178575538365762787588419817553403287861331821626380638338610408192191293931746932931484665003715526743135658528222212472784175335191980858804080678606506959056110888672873946449123135244125459211295976513311158666649864146940446490104368829919344633373288235192826256647153244404015589979314833593160854613049254057498987150721441860775994946185953643752601081344202446365687894560999881719412679127994678526836134340387181908389314457481432653072243633924480552573640251872988398541151926954926852203762421906328107857712966827961722232433557618902810882049881094405517792106824938520246887986372377374979994188419487196264922430982455108454834547146741790595023812305829717040203143507997776863155302911327457976808175619860545709256301986332292188338143753863022022194078338252362908661890743062974196008238533177497905686345393091370616709925037309068522696070115445251013405962816708171287215275327933906386279021593960442434273948261155702495002436606764189202873388503349716986847886274368452150865732802894272824090381230624541411936135071147464759185708990400595567058648462488046074442591525850268400005358059067125990302298870389619852633953151107439235328982621068208769720179803939177673646584629674215209592801627093032370901027618289653481175923917621606627130140366396551967109988636488244692071795435522995063186022329027639665259737859905948172287927311873641282447884980123673264438882632456665315691101035101820905067685378043551769717940604676493023559740515105847468270805988614318982171993924483232345261607827111996840357112180063989413505819893676480133238583149331721054753917230916610178129038826940033112890317263280698891653197993000452598778826307837775805259949166029204588707085727728111211967263042479852154159953670612955103640743271447771431623916307876173665928420803326367275369691278489330283060904068244614368573526494461445378364721858380268201559555082253233058200798863164315769739405590264574049863538123077954322472294129962140663730361409263302456921687707921004137365007706365068901471604593258752800068895762592344636294513973463424137514953504547914775995514540818913419819926443211945605362629552441930044119248805733939890039631876581131188333965470637473749779750178598828728834338075310304073123201464131324861022246268213507743116012106463280828807003318022581953813976632559533056841571842344267650563093980050285956575228898980394220536147564069904520484259151554060334438606860453843291641245171159228310255081362763956693682852898834094348045443854447744506915582814947434477096569168703313305748338637267419227820481557316980381672665356245308095410604861184242613766941588315168302242415469418359345862157714267579459130823562583281066764577471528502952679292177494895294103762185126388309233298308457461936499423931982455176993634323025680227617003516404581471316202891787406384034692318933064544712111937127140944191525091002800712370725124536882808918566139158198138438035052180963134718083208166774609459034232754860271130497986198854815610087993801750420337877517167800425644328996243987194539461614084215958343883191827863078287752563656782504969040512175309465414027580529270141023067567668685851319714182869863338137839480966944039448478368962535057792286232746036303787192636437446570811984406328790606260842175473078438131257345134275325528428301115788837539940230609555707512666406821722445491421851161091432907841494736000410596971913971937193124690873084859430869837883535792771729985602263786748959660854837084574308638236575632062808615432949821167253963867468883854171537053952000519151375449092371390434655943304998198792598966679149174340364060079682405758252850086285792972000453765891452781964649751219602013364709730146444006296778604887062196960226610058816020186702850040434353364930129991491299351739026106206287343553598982273429478090345824160705955543009450218758082536601859374201538892259451661829649391298057831603200812139722051930086034362858580317064003341253986926443867437896828257074505101038743557827860704417185187803739099591206096007148774740498507984111453409346627835814081144073958819339927250226715799737558822490097002301025972135449547670049016067065233794568627427162028577846480090592482346550619655036383324115208503396287367613188465623391032329627704954126660720735869177708068820068832013142873931998642151005473457098409426501772703100266634695359048562078818783924440026134838028673753212924393755010777675167822972423185910189419093964184460608846816911758144992571440370227817615629780779434965312253051854246748899751525458999145171190983230725513316057568964010294522386265968835809271405367641390633173469807946981939851217313571400638323704982123952852969958314047155441730784034147195697258137161950171942615105111357774361129148458481697010568960450195519960492520085180673108678349397051185747438223470481136479643298451081800521438007858291389244427887576594834762309959046757673776439370729163737197149584747108903886791954112954238485546234561435168232639265682579577181127357101922819707082753473476616767205056443521403180076250171598694997228028318712841655207532559076100135620384910629132510591894405751220137266909807853156922368509036130301122865769620945638474562293950827130823298966948525397512029660863533440131599542488147530139000429900901865345610930136837027064448885894908647820241322775579389050578487200616352515427659740939289763611998905446404478161480914269391660457338369261718730761622567074508706778685030737498987118254219088121881115704254113311470479479897711075052495636786663257102752219891779980288705581400639829325482287853350401813592693611370062521007538628571480368165588114611741018546051457376458499340184260054032276595800207239215197105793422959685962685172564892972431402484983938440575044523941528892024320349859025182632032926412575172927699797511544624026420771449258315849103008975163207453094623836914842788405696801361326303781747895414938981901044496128112226351340794120911392221400510464879230360130464574332367691482735391290194028665214741662280651599777133885371259800323275119316237537234112975800537736208101334776994829556469533454172630132887480338704913653705931541066247694865601620743280115677969608893448943644076100119909757130693065389392014297768047722679529915026290436080128849217767130265327413752493016294478387390519350056555262180537988100414049385018034339698244891716011284874406511561410313679049139751831392453736903035193978619209315097659354461161426739352632986063708494844506610607717474760079275036477642127965473447523230004509186142919091305924097745339670966047266282540779069530089073064136804193423961882172918503225626871960669844997487387377239226696226089038192625106564722434197195507151082497187414448663687519466936667548936654493319874863916758549980191557973133108717742623980923342476373787304405288702850604947665407972575206806239982048763574818860412789610350795818162628073702378168710924821099172818053720022075364069677654153605091422052631307311829337559556951809896140241016642354671512952397399618653854181628991795765479848373147901456331138850845724822691246266983723300213586991174601021088161468340011040129584103257138111678543816864768667199290011816142039624141427516255190119563829302981454250925941879615267437706544249417240362971283378914368277206609552301247027429326624889090620267917597632369838939372619986071745143417485062041503966670428477316926269681594308306960860878404621410440986653377486895173474620960151158103224295796322933398083195072110864029438769012734558916936149058640047897681747439876232295625005998147194993720991536029619386222334395434330865162337015348623933217434000242716087947484930193925001254052294795224350741130546426315007253929730707863425907534193628481590066265888407743589151600032414812532254883566908047302852891602830210034468802286436325445250741964328755974799648916552061073787444776414589590668816348850954065785906423432024430542011082756803298564423688886765785913499015278732596456342946611576463505623130541659324131789489263115177408707291631065332438559211462872053385794612466520514816023240229618646227783138220173842219524374297325974984749770929512137133317910775801854150679747135589035245339472570368200328104910384366303549779921267229731510079242523523036676852792801161728869375864575755156561398221922695468026471286490837373040105461462684779265743388270598408774749940409289608629587644774592900242624125684492420890943081916165260518945085759643795071826002656539185869728849694499864562636281383435140162753128379078495781487086546561540023886594099474090219532222114575704892379613916118712250342318082111078539056668969125378760917295683713764216823691048836608530518832155327274976073969157298506800451188699355210080009597957498827990244617615277872986096011388473514217456233284980297702540033990712398989976865725658078608976043070808624631155924904830218495445242030538085045270254421496082289643109360100456996104683802472196876084256323163829799807009842458190919507594219564191072432841250337312713732991908587354032184320634886575959671611602730710715942667210122456371372130321980385020339278244390632236741554058186129602802848358124869519124563575599102003536571046943454772111516355275511261771533666065406999635409001474072381789419426583438025539408573306068116654696286374158775729681091862707458058558382518681906839836070705201286608062792716822942237927782925704365988057531838399062942456303766320358384575901801647304862059515359282511002362400068169281970577479494232838822415461501494940593454317057727559914178992155963287527669997854595408396578775361822946509937594201325459916787099371546082236791622361349809776700067464028019838352277887423194905426702843102214216543660234289316256455226933013993025572142810536574973252462917945169983718663886721247607596123106063733473057616036970547014456806639290948174904755386746226754760014711163331358545065693015435363755731599573109203130083639178536979837169393938372288766007701772330602009934464203892183768042498782095924809461983988543825167133521593526071367571585303932748710132003428768404092447337703738056006106640732412528037420951512654524353344566280571442713108195593576058789548525292318165933598501310429953494867286441583121495128466614302866836299591115936671900574234849165813856124208219108430837084782725898348463790297658902279854347130410253171210780691061571935451462866929062649062541381473333746259548443187479793437247208490912467042614194597413306675843954023997936146378885306325736972591872836400466910131125369990371840131378254393609356085831649722351748395329828958975627741518874059348109933541825415695226350196750471758940733230946078244632156989346273678490091646358677272658253656235312350322904546038757964731202622968899206857894847205557350921818266244303837188013334458408599184340094924753183751323196948910099397355959609708294330122883998780127724618146130639380773338990306003175074959030679079400355637632715129494110424037389725437402796186694883664334187904450334586060451825912137161353046274004379872851818382512082884729843368006765066222226090409874812071857003495870839284778344396216138445989130855888286982190305858509227596233240041411579174678855356845502698883916451906288332405019407246637859112706490149186143181240914561105932637155172372935335249849685884868398942403555487686603964735791836376806191659946876647338636862497448420194100412061970374873191407281867673497346749492633924363690690015171154109919835060881430831318927662397034526351039620676636588452608971901438538946799583720652889088788016305491795819414627013503469230254377896776879063054093711027425813703253622137037999450314299166387013443589987632910151486524310344560112009849752605720811276214587565563215390652478717028472037563635908862263710960663091647185172781478138560468784068497995183074219304753716444469355364841823615347153945910002948059476955748404566550615297470009595927278247048392744080632935489082040964297273587349691745133994293216904886127773972209801857219166627692047974152265869411568227486306484808326427422201768555558384248364330596111275074928589175194449285748431631868407641247149724610938147917552531312278084239314928620643757637424485177083247869066995395436412277548804195453715776514383234084290330066212973415271079121866526482977169599675454419111928116988655300306820402754570279277782049772673873160807435474202370052792594342206163144036328333853946375028212974691436382740138217061465477154366849743247973321450296614642838227694640912533937299192669227887072238410448847872481402635721732868600423656114330242782454589252643955870842879451484875805006369707238419200378626755076312871875842568684605207629191571450629184749807908495720263813389899729310399570112198600931993473829665596428779509768270264207986464139554247212677734978482507868895500909181658713506786061948858835722516745978017504758318312129709763847517309628240805080730316001276336287544255391585913106717686433987841469319360933423950851563764139723381381880170505293235943891001704671588366263189057340458903315486592767750370913273110468613132650915903646741918167397208820574712834355307745865857763387930498277893454410367327637840759707855063497456967149030768426625017472240324480021641217656170557593363242991834446219707684378412142738349542155898958785383844695333689279329595403474737513660585393946358588019756775965574930199673470170953648956972670177833695208576212158034112617096371261807514668888240072799994204243320985913233792497733082128905583319049865186812810228678260883690987150719062531973806767478262014990192209316071774714382900974850654209882816229574570553624742934464627357836626201297029686514107866592425686891177442172779998773742641998208408177756138711022356944633135408064987009423219661697359221399957804106017045413492356666163209334778745473218182404773329586410202355099679044646386318136598586907756069184708213534320339480967596605121491542242025181864948371886462393114488337442798945590835272908821691677109066791925453552069851157019693291271987571908422293909010782609061792967898225980254615135707301652026408847875434871610412925135275247818523402957630795053071821373765958263933875269196583633270833485879120695112585435203985258989229180270681242898380672396297466224512074425892201657142411734212650366595929739355817102610719473600407068505833723908071821832869155582729983665247687082830748617054304608055447807504818062600058354826831940189819462717800200367528983348538535234768605702443647828030553193544445282382778818507471261785726700365053994171697132877195082020943968586888132090879384189947075356264992105014422324263734979615237559116168120772166711728230519481888865157032595095240687141890956535301599754027840386861023090472468917146408170576090636155500585914339050047269912318194948625854718872202453844891343676404608457964390518467973097709328174224408901019219876518664185765889322806284590378285654340187378779289159457251881645197518941591190158552802337890094664369906714699671684912268236593802002691715940592705624250871005041341072231281104992675130510547414270118990964317897481044156119188400128813091471305492881075220240963954616670322171011695212562669465244796758277384314246136080373693153356496763537377505608963922020432545376816916132604486027681926000916405549079070574108422562847008616109264186555830641062816187018699452326344997279972485934083797726860482705225156794396521118455585864403536558146177726083019270118432929872752396514715082962776860792518825838391064525336379530583186409876656922484629261226769561714460707521620408848313670317687994937694957684682917617785921079525166797900920330428625049913517021157024856187519401681546687595766785844464670249063956661557336594099333265330135373789864492272934386413105746458040685677377849399690750063126256174458813024820948971446162189134657046231738999111105044734529351873416322049119717837763207709130861690287066405504262174583690757383195627545236833790349172302843576235450250990708512375211089369590310576594355908044760437289860753632238689020835230107388858160110953618437773224602747316854750868123741488319295551877102826612902127478186775103837349666451142775838292906850341342173184043509027349403097352897000766543522548714004864526816887959802967646639353234888735897607231531365238020371251005959711151722757787602676162877522484094297076390902604881381406616327165144280026709692626555432452620286601365254488008724146392103616656583486170879207626307732187935226674704853574270903543776422061121303598521042521864037722901124225511009483972166165012795300030027931269639460529908751004774104021677718361452829760974903076089287101190079185434645128568344231627687283676383014587728810874170163253632736787721837731501202528010091218795070199588316827312622388151304576287582054653103337085024939519239338935342585802390863608685742855474666256280856712449755406755005115870254457353743628031536029556963565505299861637319983662420363560873213307925055009215294729808768898037361879588839521692384450876330803466900160098154446526955756138429834310032917437881300313457378271238995605922699570958434879129192796073150206210939609395940386985067765196634841013429286371786313587947372502262929594157114570994389162572371236407665844986410145805495085946423025024747271582479850654074529967892826117106607854854803593759666891986362371505756197370028826974667856275301178564186209471364153122824574254226497395481502654623291212076922033610869556971681764172246236923243682299485100688385808244634455725071692295810616541082669008917438359226524843091587891332986647796567362720773894400458254413479250905788440309638267870000162073036167560624028987088324459052796683426855179754411091205566826529236684340427280305823335424507517390958710357370674728951920012992374089461423341373806501848977320264113531048125581124519847903561322381705330533303696220722273305408224756717598373949773345871070049621620401989516207041119650925861830878175953207650049380865945661802300745293264336620823830878574872114028461947971087105879668266983363893616436789242647871424121494648388470283886752136148527054567209761301883765002998969001689492699498015917466326597227525935207929831573928949714883969598417724761437403698513271301710929366639808253983230638735428019448472689249406250949268675617323451742122613486310895742631834596655551827446961631448141905139821513035542468105139286302146961101425810864965444381527469043591792937077285162350765590906897917411220930019505099842888398256767758002205651830622245868754293646771611750400612304220972599341191840988436464108404523237803708314398262297618582624521601300347627181285655127540002355008455668081466802884212068370863287614681425360761743742497601282962054120936236284966024464395848888553692634999298148327072391571691889058036134721790973672962372814870751091676745417051652495373937637129171560081365670199052467945133033101833447377836599847723692856662264911306511769994351476152265082589912092462666652297114840122263907913155517750805083758943423569907054536657038043509648706798927880200571839524828233299776883213286126146969131577907250900512458075236069066755658360347076573010153184401804056095517753068238619952923382748770057394325635782417779725348083885203579023246011508112313262640545254411034048988729410840875405131473388194095515710235805105251701814145716006434067398016355152277978850589748086966636454336013323721222397299608856008805877458459561379817231124108128045494295981858998504911958460912185992748345701598815620292250819513345414098389111265097936197626566830473869117547336798716600652734200095609980969578407687913953692013456916474471432477239882268670716848521731738666765313050163273940102820716908608017019816791332168156472550128324660339498822122005430766295693548837376845552418539945185678187640595896572028603958534940996448328305349704426573522165335444685511121584331059329803599789636480878987615156326657386150057064154153401259625364294807995282634864272414936667447622094052801144790178956414953189356440381539800190679889026216832892176121889920092814652660702100639650744574821668778609156854655669039817614257308465366517035920914593246024281761550659243989724392873168194959222082645181303119604700312018617243887974142482340212907786052664924479025930383318185276275067237047235635534923556934302062540371100743366671006316391254088867439109888508206051550969350749130789751777184831941728559543238371105005460958738724806102594706570675972025562291810665805450027929693114330120068240328749568660800665905217853570982386208984362727393844887331040713988266341116394171233420471935357900338383312838875955627195303644554380227307312018071312423871615965371315226999036475688210652472615074743464948800637646928557631955660789284997476470283942850753722310874070280125029669571083856331680203378354006986198656849914017569315886616014383101694042534895113911674353994272191061198530840970587392451117842417249733673768366085579009692699096063993692416759088945872356305392990030311347468092922719896935253525909776399057582736451695335862905735475630469046703705722672799584159587856299446293428829394469170047394660238076592170779717230995530608745265954689728325126458351491034384072117305150459898817401194395240389524772342954493653951601131604296007033584217331572412468910955383032821538707458388683865165125284734746726850038340656408645986626389916349976641316229450537471345285535461801613810419897969255156710274411838152204989314667019440424240809425710678686327041045684315850803865025414009310158587516991003239419754059040806061419417412714929247454748676903738617230186999934446120314850343175832606064914103981539005200933110212840521346817634256816666284314870804391853382708359700063490554832836849022743694473952479163061859344693799019730295905849601923277550833802063930975710789085337287503483194531741116178720027659681072820140272175630231718647484387718819237435867686527169853107962628156059886268513222768532670606189399985991644027908968601359093007196479624198349036450258153271886555615269646329080071579209439322370185080416114881300751640961560742350918748643725646282535380680289063596411839910363588316488250291200921268076060757547756028842033918779381476511721111339748232115026083874157817359326620449902768483428731449048264002846960061377619502880761454454689522741926140659264835790330269181404835763559541025825665636605218671507605624490246874134548050686086437882652926197100176474539813262454359386631500367602958010383917191426455685362713274889790111773749045279093541867488942321415084129127749706153883323604010189553987572765315875015015057508076378589200448316063278854322025074611720422352965046442270434744270892318826634628321298329169391865918490298674444174226278200709595271534253872222269159820429595086326562481596812585153331835982310415142246744102107322215979241719893343105853969761619935285810405809720707372430032959863467834672713755543201565960767171872872728776512758260933897683140804025944388092915518072447614303845553255850344275883613731290903520382978015033944864037378888305980495306285361656235395902452037718833442424149670743799624960328762099669697341654387443577193883929253973362063778699825601296782570492546709116795560015928471452989165801497163283217972026603076397569805518886131347827104479555013576760207190907838002994882989743415157025886388588733777991810724621243019875470337771020153047040177171135543861814066809252912195732331819558595419803454298361592748480643876171330487280674450396287759549740526230701186177151720484477302039023718431495188816363397858443794275762989992497417488200795504030947390052723764368895900817259407013177655403296237076743516917723760587842136443207623214079066174223126558134403064530899848187841911599286727137134744490819588812771123169641710150643252038766041514976498786075493379480766637729479613715202067136878727691822828554313936319386764802629157855183729050251112142654665695297417786371216066033059779155147813135922534652142445214085795796741701616050140527350197967026361814136833170523642436698957183034148120144282691071064979215954209695884422356776790194397940350607920668952635478299221800962406441658787538001553669319112397678923963243886518478198488724503094417061523551202810791233557375247770700844791106234608811899663178021105601409421672574689670044834291227390207951307350196194946280215630883768916934676907087214138128383377289409219650257201774091410176862655566256067314537158820691658096982135305632628851729140295782585342377508630087914460634445702454152652788004738469923397101258069214244942753426996431757227809386576591476526903252065116971992631726894242374466439065192571977421686060993379135445159087605451817412111992280864492330873233894305525854797827270996275057768493853362704152790195582071732925569961296230429115285290565748036239311478683214311307219208868144377705548600442445367937863623475585902361760972701588727708572608499826946500498693686891546910295077245186600519951035463129927641230987535591798176150912749417132981224849457833606278222912018847901554281408263902855263677274444614658910598527386604001322201158485620639962290911074266020383121657190870922360061782261331721199768198820536940805628742145282577432256572867607644901466172069098166330174557377694485191597936298804360627011652580074316053094076601707345657128704074990971136088342751689894795362071340518556386166050129532409822654999526964247111866136316402744396652406277752063799967489988671463188944655553132261102842346861644968636226795990266489174392173952876911987183666081324343556705456546114772220226157958338470120996179862503985136472558443438862880454090486101496602967963472227907237316886933235051427762804991262600569534523958164829914546173435730978753874643262929257193495109010208500721397183276127195408921837556268973404697890087024699863638394047191514421417447306775309623186767506518409405178072081097566764086205940655994909459429282332509134868365611492400429316014807121338492209709887311719061930334298430205031201268169374527793353015506992796573632441229185774455939092073785551518379810218715310422512903424951139917767714509796630707538572557049429470023405166100394374017998236525709519400330505536846608082043841151353966364746772477219522628296715066090074612199661256453933032524552556218340410748704468258960934713944206280005226630711180847522540223015041323844033035101081019314510630317204185035977185356976357370407898111854707170014757364328976846548038106681409253352418222910461810815193764571352143387974981157940436011291608728173299549767387156880747528924581614239812475934134536781035749706936151891569474180700438021436457176219607504347916221380422875556673404105024147109628969420986617992583612229980044128540149466235966344952570411510267938930923695951838315252335197861674664078168048370171696174899120037070718121657090874798782990565702683942369322497833283053564730256253153129496029107015126669353331811926505733509107941564154200553717673863230106574646983483122705544020783454390556120724869367182941798718112871557038315882855049289806240202783777588846761926241735242496696584401803726605693513273534437086866401536092620839822587873679555452814640717866386657537950479469658478787154652793943642554096097812455451699785566995811557781408962928556830168100937266552530807161359889116906862318476219318229023529344112188032350476329575527262240582083501169470004553491314797204517735888584316560158095758353888974048393467462575798292826141945300765017768328985449259754065446249004669546579285938593711239301856397263922585383157306186058708554767253460411213778164154539761766893269635097727750103185219412936998888616591457441458115362183984912865915252843815562837412037173288026941599450633201523546929420865265101022535410421539535503306758708566591593448029237686944916526741005023625522015305288724606198535121845554074867019974817706060379455008225539535342023698354197620654522214817415818129959493731233433058860533129861859858698869786791039303829397393798541410412454236584229997964616676909973509394781054597216007998547717909238385693236179549493942697922273142112876413922102130080670432842542146141555016333494101930968109389278170238286434754509972732946033988973087417441922366097982273406594177441061098442524379671514707900006621603494985050867655988999097623814835740265457655781321090002226195135980687225046507247018162898834234112490833214573802976943392296790998945290977312268437529941318158447774520341355752274733060132413030214529992449339382645168505979145982866434342111989303861602201755326836059381056414277929224687622259839647977074485851150588851084444870021074384161749652156725081035513666330154361869975708346665244811096909352487005623130370414212555081635455658767826673378790929543146375812137777906307366015124737551860000666388988712257359675094706191629969094610165248019338151199699417614339628920297303045739975701707316058091882784998880938848867180172486086885604687232364782762054674843124609039976650787957814258509172439242526331505405726700279224277618274714635297641484367956103338867201376487048895872789879366542531875451147114929763098223839934319777898063170327977609090931897404483401327609303636409642698835703535907866128408310459065096880678977241757236654461893655350353113662987877892109354151492987638975523481431532702145889104127656753589594239853515767397154615923121809127254237955419757703027257132093906548694737614278554299937916110007465562920654061879857696707359241631568645017345356596343845209768547947604843156665624974548829410719867751885334621995111986655175837981956508380866369741426929164976922679135161511351040602649627253618045494595649973090215423681694127171770002018028540832731040986491243956073905530829864661574583735676943485450605397730753332473893745914153903408187166679274908621551464807680392488134771428333163901709010967628368217011235346862668948565030791011072237619977059573656221772560700002082901854874292919770687015465469059442972685103255584907050692046839368622688427660639580680744549428792389915381034716016747289125695571837380907667609198047181077283177802917953957125804626827599816722921328670861211845811107134422010372447204284949690580251977904652102905206095390621137493128871190856135886387096480561428851826256353589554311204605699558530865861198922314870546504242022942203241594696713330832795189700468323477729305280914471528502925309498878764141373993698295120830549838407179443708616774596800137201323722020078598214569148581004874264873219176568805041807772768622612132732143084311638053552902393572488635291684720802937898493804393512870690598037783645897913319958926468219390486689965614856558250983408919171202193960489228132104686947506917340072108289047266224948094521949122417049885031886633073835652018459407825217776509100004823672757246391573665003247244190036861317072633613218794700088278151245747928127915885742654776808151805119299011783855042278433760199754922523614932534505507112372261335336698454568689440396496911875765677346715048929667433217301904122297288406140873549180498213121090966870522745246270320862388867955285251993597228572467569293343709909004541218020336730660131280562322761561034118026444184247549170299199466560649207323622127361795443549756350278609896667426505136024752070961053969987803010909785586570685212395511490752122943963160445996105722685041097982125854306734945475658817864883251422659234332892155809264205132745193478007743565602026104790409434779560559608059696957320978792172720600358035078447824845901453257139992560694831957744449445060517228743770305074147311132005490722303951092165020188210171958282738160220257510398110123579278082890283371056681873698659495548679771369694183122693580323302171110979984416832204669813499141839047850255614943199102986806569472919315228922346098940309483873094174946118744481435770934705306388260357555351286928550695080239487409108600440384010037906187801849130900437082999364913113664652653325401736051647854622973554706181106836608335190252995814744493967340530884568965234936884614542844920821526112214511585579031453348868733042391339996019221831313608772981081174947293774458489393375546238559061399070944344863425157684563131199002276044706266381621934334381005474745982555687023425458103495979372826658495082637553510586183883931007496868744278628274307811177240599800631171242913535070581185535213709847520870076532772092721427637020767931036508242830549660965108831281754796307200896959344566195986439208863910505774891824607208231320581008425342999508174686809590789735603549100588861022725012892534922017688497748871254875593725804363036134663901102631836974350677278043948895699137118174811846414682343300529377936907712745592240981282780047451304323489814472723025635608598528792538442107135137584741383378418939271011378834828785034861915074164868078328620684787141591021895561851157748623908798837358433410258352329318104798795114435218857002000341843016178105245614260808382630027305084559969638725015346288602984234585962438339370486537802184599319629337675814591025285613830384226476257359509364498536712229282399347848561766507145775326084947171876728349760758925796918698348930851741158598542549098757027019400251754369366709884143085748492233746199436208979880162956684738926508949381043970691107770819269219331666383418195255160037247430792129070424677460645181907953769377259037148957307357309566671418514100463328916383063566587287926123194788054018763372348801632715228282569611829942557615288936835000277284782993500635517789324711639670350505574331814178263155074871171201060129515345053678461526607626719695288435140692553361368754190015237961940155040608895683961948891910064509198282534344974274708742461599272853180356592761470120905523216905963634744813135665086644819904532107288014076773453103055155175177606347762785096208560949392013219020623701179971349302443650889994147453783783962338185489161229725774042263401590914521995108389986048190924678204677970631345583890778210351738082717138341453661931369100081704789893361664230911387590535716788252741801499244719319165441907662205336479153897233156087017281168100252806526024700147041970248494978718492546980637463103449309686668644156793067842733345103823681786793670532487678585985146170206373776557022378989973405860167651671290444972797823492936649601631750752536824266683639788836885967500131935394396835707975611552981933666998185409885820423464914224929963444221276422115768551360471975926039685485966670299816384236513774921691439802806627154031779646515031523890831636498554389843096614575363820900947109501935839903308587723280676830781113396002336777054540180560170098969935038702101135341697907857117751485825383886777062994133892512226017966849486423280748445154284311325475044340719883638728349259891204241661759930348930931428640331813088480629692134988506256104175988325706456421451219692910908856926961496568061697677105917622629130898356775663795090867748876041439324578024938578144112749639291276614374679525382042952094865175016536995256778017633121976298618478798206072135100909891776820759816020976691591359045799225519844420985600309799968754171630572395669888926278356838048339628065886132983588812563577788810152030346631645304183249814093483158173049138833439711439953629543971573173266229612961710452371576502055963812445298588397688590956527208385529691390679143724017108004646503291272764317815077972713863322970289946863807219182550730820327396105315946386091313365251209700309843547532289057435007485386053106477770702176186467784113720315346960917141801514634128025779570459612446269719808975727144355848321552071771728967070035785834797655008327581495195507403811479489026091383068178768045495872780035582476025681445807021017085140978070041040011587171999453841120058462200800363837614887456241631508508464047839730078429359131330296673921642702103519954354083275697617513918498825032984453700179111992044006090993976149833503952243087705224617607127391203610911638450761001567302149905151332702251794525378428483730547729230205625917358526719198255621449723387978904948639916471027833322449730354120453975055855700094066658813136249537717006425759634027275757937553534564452213020817921967393569334245368411460605414451736613328600424682076149063493206655741445564167398351162556748334102555731841755614836938566633809237755976546380385296701370926286738894747591608896780128986971034754987626798261597759605654962321503579925979715278661630386104342173473611977047684282705031586167176704644113465190539091892723496354574371040921508675006389864892667546076819007925657711234112302890448637052277041073099867945162190838040077943325572313772140836983422131168234081570836299152769642831744363491285554609132340795342555830122963416822661023862818350546101363029102030401151737529382377530649306252766612843513052591358704848730639395594973189764443204965158171710428898192126920106189919612721049205083769747585246369109898491322539827140842858921737156609983955301162722384483720468396174701425806981020874720126360377946706465251486114868230714277591204192077099749448378131528539826128239543112111043073330389140120553047847487048931656744309711133177563115570384418542099789029860249457819513583919711835794356669959494914601135838832898923765246547998789001658627996418609265188766740499929486538789427137393953689210423998248093173327960274289668635494654871953735223911975932018985450033048705619703372529885247091298756303114489527484718221239479084602672033233170883073418285000461762727278650937029252912640446534023529356762920829562731725992163595946071265805828116346098655287564621203445139407565118296619016664228530390896500300032342600712510423875352233170806130317554059550378616512935228189744047893102829853233800908681216259647096384357040628871009215589623889457972578358477115326820494475480681495113248707793144501519987716249125334775091199548026839557258308018473406499790169590392878847232997318723488168092259822687657755755587440018752013962035335744807797239017123083528764126760547446496076841479606890380915598457171666838013492675049095046259360108874583824966925827086720965840501261389099668821322455553269154636142636667128396456976057476630894214435025348053499109555383688488184239747949827604164999268251505357967581879264564506747071183959746786087660837530546956215774125667617175240034711473472887907647100281466512218359881237490283954425916957245484313187705513152882578548016263966350650296852653656753510452760346044189847903813957516719198713491968982633378963357773457761050280772789685359374795226788687257234982037411510119524472480024116876967794518009391923887746561731422916705093393831399446917132569490614202805886253459660715992599647979517536406993253889308551842547101854469666541983724684709694205938990333035509120413180936171264257598708468021361675871431832865209695386793659259650320207279297489356616980322300243066181977260966380486127246421133863587418626935165833148371479279380474542617417648639738617560755931533539174461165741922817402250320660368240673402945685395636723956123565773074974224199986202258560999332293831147326087273706112612242551647891851688711674498809548572176989747389621890007903929142355581324160424282439236321359330738049949967357444662443430999889592859050965018594235856728613909965200087497120833391041801992261583196683844084594077244347882334323158305469555282515070063093848000051630278241821741077431831403186248496682094652487669398002867433888231508868029762160620192532423175960527698908929295191143770548009318949247589595355103654144873451616033867277985782301061188102938299555548574533964508593343770499680958873402583169249603205036262685765687261420049487503847136005513396469285630807883232506265889224982850145429023388494529078659300312716409031562357866094324377169322609164107854073387075307619800436085977553941367812780312934553673502929809519583117079228768977983687924301682516858115428141538102805729332962790949651557778404697673883214974753645635564904158445466999091440044917799986296328411350151130730352604770589777981914118529589170125173045661947676587197205000550167730371668309346603432070864191389561055065553063795711002963455352335657990966381777670061845171861538222236488247126617806678178163431980855671796989637717505981251314272703808174824732100022022892166402018383035775954061563746504960307055285640897311494501020518931134895759722341081765864997716741113736479034483210615138317633536895745985030174775075987114611908568947493581092660758412780561653482618113579380522204152049683361014483358618290656586762956132371394356771226322880312603820012466801199014684252136723151897114703540099477321017691075610592626654132522897487884599165335488389053973334768263208138802683279773094818806665921968216834986347081713637005608897485971949202036055540038135974120833434134295485459471070039329336342467619105402782391520169030551727975205669617993477404482916177015925909188191773152691688486766437800752661721485218067115055361606823254366510674454249973942908304781419700944464612254721732443696305284650149129028658769974498204083443116699334022111381339869877643127418392085482191713006999160498247620743583030644748746489660478269016382022841184594332730122047571248889962026822342196969414394906228296419865961689924172124244248216395752251881435337782182461824253258995975180042968967097971895339564109721544987922575436064528825769442704702207983548750339980454208728847998025898809238722738974761283420521034542513980816835571254798755744924748835510604580607452170072316877616807566503565410779449685946838739590816807101883494617229764347532923060492383393413449139256988240360204908157703515020447002707813293663286081503824763385494440920889650700549180300962279170625022324754089662520250813897035915353092059501341006371697267299945197296854135997942625472573915528903274521802761469647629955494358534969530492880141539247367470471257643612378174592151459086024140549520260345704294679198856761936322142210760651772121405238016540980681748933959098580176030529389967568316765770523433021733051753463999078241453242592548293330959988318003750105537184224473312096607680845677111835676319559702012668682070276666235269376591717918876709204656054309317651079513903645843291997516543010078250053173770020836913364801086759189662433619239019613899010391095388204386903732158618683411643195942618740616666431503966595907955273770554298768421614256103779397032590571862716108124274706501189110315469205668950639191771673179840574723628040694354889189913298173804977129193252473878540210534676099086867760092768861319868527978602383717385367740662296531648243620039499452788256338651635082997605353859293111301947233516942724866166070245304097837780583637682196645281923846916880464666994698714264522342607375520509625220606989129028222867581794995673854676706250702296112904904437168806828011893298065720678295179896304432364638454554160802826767706850800008986381148124002048378872509767479752406005381906825028379082551427519915378306946653662173341028282001693616315587315441305318352439622827886548618981207650034796907093189490013116178465919398870579314827845037479556382214021271302060945317543901177311012051952670807471887164852620143916230944370195908126983861404380715315776934430510354825187289375358062518602892836445679226054928183520262760419568839908746951946030594928769578457401333794842746221512335739617092129681090025954559751303766414700799969314856278775525784784434197023977942115933015784924259703005160299521644135422352626155481240474448390802481037006171360166618760168938196862894596977870089667736451304810334598675183531245686198917383043688438198153072563972450711102322014759383457099290189223753781761105496672060834176053798607903132041337825364213126605322322780340322214893651331459240850085737164491605554259709140798713192073169058882281400998828825439299955502342514272342943748385685080020398481026364538541224680024438788751583130878766380437506946980823611522401899814884154915042646843095490898480755436055213582281957171829067588090947068071796267483062499643616920526877573688546600572798266504015641690435809739693427993338112835315166203834261735361366204594837444305749607282183612274618216724481767298290556333266928895968094674399743944340688327018490352634938124628411657256572123851185727142888201447840531233556104720172624243839111853004994538163118045402412886954737121474439483361805584364341543007665367015852828661896270717415999896980840173253048007477060033563887954861117706004960105610419939887698341460968715272892926987081378765645588919335879677907530413523416561691620130440834527636086765040706206513207736174087576902073090642793704559710241378421469670392723809414571701052235049499658040437289442817714710575050207833773454746452499756777025511141462850702979675639963720869292756601973403901987487608824185699324430407258462329951234500768068343923590118386863582781468221747626422593129913160970783266558506901411071087573368885666393068302621195334998039627072591949380629326154822029989300361513030985603889049683018538879962725294285704393506602028652305681333289447107360209048666156304404099177331475288619595830200417883398302318056042475117450534090238215284237848384913818823764917845894703907194263802458208231068921405049872746633543855771730386576246187914653402278702928293474936704020821911523005088694181795566689043033743906345533344201221309085680924385368356224887987832931974897029459742840278513034837914295946216830562780180975499089928302973076545425092087613784305151711150239199582770425370379846533508493223597811339585987773836405226144711795872351575714063892542222915003217246996785258944640056072818312715202231371977879775306262617569335099850263910531268834046139293293833573450821939130580680405358220314470061051997198109895165334163929101949684179444915141168986117339313733660847834250417299636489522789310746681285034409458209636577921870500039906726954367023466068712436662948692838132460912138435096463810369553104357504212494691616208744034857063695310582402673739477872675924644561971017567718194887170115200572166228590529111666364005771613640128604544234366146600179176354963873106951461553651525726655276039419347709873467191397810358491707205761459966411566708354207087299262026479077619961618123608720566873291914041013568864420757344013522937754493987685608178284986024305477772569592527719250208788625693368767498219233701650828769899219519495572124736635492192395439129216825606279618522534765554084481163366223281641140102035188534453436388558831906657425252465277821632794631862422223284404587018555602322610501091353731549154757598007261853186407146489342785623335866975279438072746954333485167576041688001031807569375511929869859731581312754447901330791310145866406146734017344818056657992718643960732282289334973178271878103756897524850954635183269708301572442038354707114352086243568409819711003856478384957094505875113261233901412986800371337821129240130239167537425166739221278337326525974733011275494586429187686982092362189747892135054640465164609627592606431756163389579927500102867979106773081407919787380305870196104164601089860796364475610008050980747329441667441810081734720380788472316149445248331070562572067241539609495957611086688025347904618057824804445502282222553369860225464418736057122585695379447776337396465419025854465027320434322517419853501759788079255382856876948388444695793007306471093167167860994274432535476569564540491871854153556477364912299728598121280589887137543348965815469530955966646924888516138665319864748419519898214091425726504167459318064620923213256188515347776374228448662442804060330283640785844954095031234775235034357617693244599552971100078719680115209581393814338776962567012379994401983533474991693725623983569262254529398435450929924137427097202987942773364490519301339471858696549689377101528309021077830854754974235848363420376170546390955710773310915348020120325658859298129914801793560482735614744431250052324674572201828011879019893535003875038329565869044367303122287867800595360885432490661626778529404264948708198255738345240993921490932774403293298869346245969220823671504277182806122589251759643219937631992186222007184155793700929713088610821410948423937433707276643690077663280011312151883461740014450399597206880694383945512188189794400565314165534407209767836101431322612095213278129759296908855808415393102319851018976485352661268407677040222904606701755574489931657545772637214076091114133686981183072409383588699946982112935076693872161601350879987853652410650118404792809266107680484179665747993664164142704627971500841307938886368622511915301428393704397295890775602632943041149437985418588734814591466645706675201564989700948085110313716158413280541172485991350985217754925598263797805121353815314249373829925567573894394386136792703174185297280384882990978514461352540288721408646781601963444604386315382869472936548676101872032353726842878765618621331126818994118353334587400601386566839175575011973403699816556561063410418016794570915944712158751423757784753940291025746409219154549509687474268008094144107198864459165539400004634695313104964446217959892110559188926399392506651619917319023068697604845112040020193757746041290695187780585189565795677393872630227260578644341068849346729516552367504281930974862799997526301065849892704052137991161869698168483262313345296901683123387636993320391247777970741537356605138354753484213480771774555624144419358330689719946579220331020787124397297905164894531306764586828807729264285623735004219741350242518744804745801088070450717269361641747455564456237088561259440544199772104076980965141915198273340650311787268461171206393058970955580071029725487247082837802596189024598286127534980339290545984143622169570816586148175151722810464102695332801839599488476910960567272953483184068979345023334000042749014142687119054847919016245236731780763817929806730663075738399226810345047398190728516485760109404919299618011666557268989613404860419732784158000840208547448307120687291770266977019012950852936698207426099516178600561907957725875274501705432206963023964588510801603654630463827384314865761609566462505675001565562704810961104020255632968022358419414274792909198860904789105371565331732003233361237327104624948591133726287945887200418697354064042784935266554183791412515704771781817964152233939180909707107986563055111039270181110672935346050301042695109622184607752772671467757932048791355230434347744906898657006774519913908040943421405831657656604790849908593176620811903330150913881371793593092707125200074434563576622641737480168801367641244240131376817517396181356495285900276982646689311228283683441577458406486115451650650239580149297889162151079208097195728217235474586971803290849113985377704622080542383690419335333217371053383997022487334280472542169393097211109574269648183808772405355410348826582546491392675086412569782231841334696586268961842004635400662291263788160713665865442036733377874808176588583884432288875030166172149509300426975712183030442081969698031848059467261480911618454901509497546807704889103489255325909177534068580628641518002092966308334771684526519957597189521743813547262152149891844134495008627630573423994379292917281303381762166716508908788099693433032706831020740802557275051054260712767946662502242157668664248950368642820258006106425336133247747608702039633308981363611527618408046512065134491276230935005377601825831322243676880863148133183971956113475759622209271030976179055027538004310579477708227378776319721928008267207879046680413237455148171605329975453500380443425345128207719811045239745703988105066301951861546802519201215991762969324807790197685859544935586183297404489185861888446827755924238169234721031045985243405771307657086900093598083743374937451113269436621054429502883765929815695759211477521548912637376037690690503968840446703244411617162764373314874260911283822773573729475367812244998637492859728615350522377990358663735127811109218763206861197447639038388960467883220357644936646531449128025808221838257094800711704772839155139489294364847646511851918786619052706156569404155748829966688165395742264311597152158589749011000252766060813675889717289584604606744287073312906382527749639494802809874934317930676345448085373680691437271302202553687328118149502967182755829202792196695689907991726297391790396114930036355304604908798898751740458655585597339024834459694736957385510665153622354489636985649931571384106560084753193857305647767929859712575481344062348828850825783651603552147060059902650325272562326813881293479624321942980250194897820530193077269881094131720836807493856731398280257465026448082124769340557606985140631430003483750528926357753880834652215326611924032251142679420117761217129797554478177234263850599843539649820591561635188461572875812607689127553537376029159378974793809319043421750483376668034355875471552551450901960653961884487504461329538411908931065473475864306401342969198798308609705001791353565980887830368758724327396415557129356352627539466767161417265671537131347836504885866485449939943436108504990373181030924346832089510409406941822217295404324580879776456821513660492447024346024334069008113326313519117797919270064555449238889338295064878451893425508172068496513533561453146450011572409907274189496866491386462680542233080702593855849687620168563371712006431781180994185544052854737441978191009966162834367982006689627670123011682044851996143180901884603944401507017958298707411597902973365273728054482727541643588715688395234607842386617250585066437293810914763014271424314381925872463843582564267354945166855371246786430069407983696542277297384513785834005092002406545289672068731096141587129502651464091294017093762130357217975877465204394252194412676887580963285145750655669814079916300628024883974275030693943638814629170313515180020592047661282800304132836497487963215820573704698481661685331118805640406781135594032770158661127540808718969350312175823360182174005579288065991239842466412115176691447995785257719969269943487710508274457180084381447573081074976613444603288315375919651567347489564954604977189054383850267958437105074373863065289482012663046505452355186598946263081453151087265567252132524979629582717858780480198046698235567990945686611003633184030170978106478464730323459719663615877496131978743741568165803462537545129901892344248459049445007024178100473057291883325574244418543283599458742090191568278147519641483798164861174012346861319359573611084507147045513259720990242685777985230888218067635095940568881809659951307369502951418716242048318951072352369899278964085610103099366131039698387487140203452706660552621531522165678570173384032968640608597155673870220818175382731957601951608111329109537342926503333745703775996996139802438167410832353179860818850258875861135217348348127099606401513156194866054380197468565263240748527556543082324684724967699990688208063753041164521224878472862227414475016274479249809534463398555724329946492210578866772470048382681443923442469464019703000257320845324933322590490273794709666773862109838829460179297371347081156190422848039681103420492787650830135003176673665753849561194700141127699843650153118764266887445363007843675316204781689659638712567886709185465606590262809607334637753031676695113567405512394249600927825273342077652912377595410531911093471603182611409664832444714993153013427898211210176832647946368401931112816030860898272024125085612836504440547529536011182926445802027849033256989597385885057494293946566312264278788045503671021923565725987466090121101592060816403421852701788519894745598351551439866748192319676943727490054841088992411737983606679774829278336166020180914069362507988846281865479096014236344263970523009113054954161644046921734694993057791836615217045027386216577049171250732099912639818579339277751169351155625982317497377978833498742507445200773057889887555496997280740062711018682290730108547452079805858840329848944206546390184640705771564461417613592731871208654669758776827088412064347563442608236494439001817493576971572863376055892602041994267536910339818470761326305193593076324810525779332281156562335283688691090271844032226713861043626369014249240364506814064594999075983227347255589516936296637162807569551581482159100022483628935599181471284108098975956685698650519748561235673015010673679217188443062526992179323559301560454956658023448981733468836411777382328420391570556272265804385738562700983264720974277820474157942994751201017126557709631542280387769636347326018424964284564920283155645437532183675430187001637643474875385902256153574344220698037404537958580570393039616306931994767649439589171694753386331043838010480072650432975756169763159086291998385021516619613348173937574900488338430124178285566703597567934810435431926738520490743720170893942619345242717277000141663228565522245234614568455234883677724567177075153955621421800486127459683970046556889474259480597695897812657631908619116470221775945565023835442104028007690559359244960781312357588954642136663347504944682501858501467415365965443997758952693720599092299629833982791144318998720292580438616290200158315915530932317419193235828814349983547686115869076694967341758678387165695051593315223518503400519909080390839410263735612668631636749037145552321208661094248220294332393935234573415312084698339966027869507828081836829153263581096957075192337351481752960105897181570875710612850127454783309967417438967160364474387461836823554227081445179098424305464041055005064217848445465289257431026709380825232377248081200760579463292450928609791247456094394725919462528063134255758406491482907341175047215467734298125203371148477327953242368490140355776518920191539584294197575301028193441108032645402568603309947742954797703103534918911364094637614837562733774432542569554615001406861492330312173016470890906267049152176442376810757453198322421801625708671296828014882790863135967433108862955703515750047565871792550311020291826125710764707846246244960388172681331930512376498461850110268317799622997619030715645297809662097889689269951928132536221246555770800003677973085446876342204730874825429832566587335923038731091888783840306011310955096149560694380563032295558512594893946418006973614245772411744465925637630171418136675668284817638053513881875432967226691486171581735232606869581994585220069748446971751678047562938133255283207491871059025027655360036880307817438522471017825531721840477030050452687272781987251182831606807408065101666562411914584266728565728204716835911017243088039883419675038389268206418578688466986777599516118748509920266031114207952808946674362222814052758602093259788018146505305845049792340442778584810065635164890622865315308601802231278726863188125915326067897803498272293632918478900722261236119312018593664296222187098601976768019828635634999046377869437701727554040358077879069388068331274084819010413218536998742734016991435834683185572062874027478840761859368830342534786593826297313225126900874999480590388609044671024947286617463701807064082828897401068578698636193300778216224599725623952540091194671218249437171911898226692261351972810142248821196295995871267816663185957895024106705074133199001246722850139501432312713606074151432418177486148965104074869059090396448154698251608456931681533251432832328888837753828589356920152320756602455685812015433201384047964759451135778145228076565690163264297243061032263254401874957061924943827512141743797557632544760072654710583602657704869092039808157088246512635704212030245194457860223706215442115721473050787858705119312336830380281233706607142083294876327645534428541787971331254015149990462156314578257660287232498547871444407527543748974658841553436313151415651590882673112948572092410566466489821732867984971475646791019870961900585717815472542016922873087235577602210727247531199504375499222065569119317023089957620855569694082289750240025634478250774446812431279957126864572248856082422694544433902312959342465197172741654527759835650285700071933661664256620904927242559965551970081069739745778402356690617995461217436590837063874291974342711775942475745650711219465983183733878765513820256858937714479579320565237915243105455834510178871766504636796414950020261432263090664311842364577714538294780918519705751617648253911124962835632098234568497812750626708374176969152844071619265224503935337529361292854834220933908846766456335805756526437035858781765837013806796970127684288145359131656063486657878410665554493489924177242934897718391787055038106471230068134744885918519064875243014233025560750576236716192963737351986935946837147801365064056978421844124611960107909544900412220851123389474196582024650567142817467168804634129668902987136671330742461221615102300982048764527541701480800325865622047045028312110781755400185970708419493171426223783367976649567065942148612299055839633091013263570145733596615547860390700784250529920830726979546792461625697459766764826347324711851681132505513353405002602502500259714541947598939985661988855254742683119266059726497469180646468903494174332427993607692612622195054751872675693153577458253620251396594991252594538672272735554265935423935693048224529161430330490143118135177868694917289400684279015307991760332832145435926968819584973029272093330483446683083091083174925320537184937353557477901022118956444105053684032650932255530141857723458851085485745454236246912575042307238695984618760432157370709200887473757235111816780241850470645664345336127876234794289068240086323980818856496168964428710732485149444122397189635114453162876957894208301861831011848062092343276557388242858166283877937598989108760501056205384540634666722535970167415616622951889488110250742767326622172950209391801159321880085897323021861334914037761643075666636131876661835977544135918267361125501854270553107294701032361262272266901923556133438671850258429681515376168892158717342431279046313252187489822956292549665103256892209224692126767370736424070907048999575814551212901616941226552577242267268829568799532537247547660293990329642260419883653898398159177341022863560497331570649152140989507593560615078016811771962680988328328074563974328852480491816473239545901892890748729115658007624467976528839017784851121922517202561254352722502064103562911223109518927643446310653555881747748750087693178791027107669641641162670872657894994328463186266791085467140436574245276971652506109045628883297304901610761421020820558030022360273876155629532033386932001868623057060131033307789800694189492165859641438925630401875941841677811639461255103440322680436983190821489456978922387190228386512205062260029755723633523518816158178739521617641665292401627651536188819275947073751932763084353196528247360331847594242206417853068771391217115326481516392454818161745465100290064774755711862838280067469358095819168543398671351013166105226066646978534006928042149507685759333052417926016217390210568547398909639604594880733608012293490444184817215395507315658201230978598672275373070921001044559915913615183945184467951218832834180964181508432648726227462483408170540156575161532754423284685643666698453258786321797954883616288270443432443758904453526245056753836660752551271772345125961481976978559771340226760694943794906340526566419941576059480773246099795519437552326481814652617254251394719600757920962623355237503697801258917660049277013848547954143542351368459814913430800237693045728222454594698342661798556379786982505750127740418948856380655438055465202314023257294726974718560696753255335714396710596271162693360589078444704207199056521353987989202264294734830755186739754768853969751540606568502577416654779961730191862530017366315800277022038781429634439344046306279860863198516963561587258096718962850904094840260566876224563003937184027419070580146312635497156157676370177886648500133566693820961268473895728752410169099850652109444104457736172777962988330734225251557754705464662188639959020969542129133421806981296567659606691608356458028996586994485242646138873342030839775171101901861532410217125258508519138839366941649884789608546827951957617516144560651632069741615463734953877991802763330135560469898764410409911944297895778704312310580602775814782394990895659240703419056708929764630363928608474796582312043157359339525530219562255304139430806927305561411481550705023153365061402491244937101232215193677379850698012331697028819268329050440076939419391825770150592201462520019515866337039809231883221800222579132078762555043771931430268703381803384703861450439044788487736529282158139400325158135889399266077848852997119374902258542807988224276514033000710781241605496919588669225076639600425163791113515531403517770762650179914146568355086097113487824535215179403677971744041604545822817974608227830125855468397695454254153364327192120539328064360668468147400966218291072128622949554114803071592242335336042842844773540169939348112631050360527125468526189418029164721384629884201388672532950827739494726450659456419170025698076980273824365014843902300429023930380157171253752054225341204708083572388358340871246969622243640979479453688902084964255291836317468596918761333041798592370648474937944622560784707633027827552620534694521842149952341494777657754774164306598411843967580206023063374041220619533523773798599346480311956853050753924755663918898201729530688882934006788569359296410799572342109230533435966780185553220246761399081674892718107122690330924572988571636137870634120073048811588643178284490331120737521948660098922273816234962084067628838496089413848139640800929419998133530843597073844340650332051290758061623712061412785883461219554511648520434955821992961276089422151027013758673973515759004015756630705305909153134232256636058430002298536535621474737295510688647105575023844741140094226814288046406938804436900854305266577607136259385126673424782408075216686771852294953896307697366003139752812858570867936150000612548409757885971698340439771530845212248133129222429534931014551571930488724727113709211143396729895765313953572579951194324207826417028550662478172667520229084397545221706420584471700642739140693773210849847181531715080218451083612360489645837083930331199362416594507407239255006246933195555966956312290576007273306666399091506454628161556237895926047469108810113947418817455297895133680717261221008536160902340542600965189339820781516456501565919804541016461687978905473733411552217459197610567126193329384500002386691631286989934443025911737873693539457415440804824852856910525700684011747048976568680206394896149487424563771492289078136209685557987242171552545126064113419660798282076454081615632455492635052249476711441768238643061618237677626895084212886946854389536196959918536611277317190641521959347853361789552732213814309114080654387299580655909105959950028349979053206360691769863337488046503064143603303202367246115161352869733626216152715153032678126859652556521933676951362421128811496887410568138561701540592300380871929139356008250031932835886950974435396809019847657191548310301614265293872157642952008730082290965156330176231149539310645687108789639480237747386571749114359583176290241759322116818388346677021936063014523871886403431769351223827992149336755903352375493391210372912229583219534643370532006063674581545978882085855222939172501672496054075747933099537187734541411025825552796058707754275985467124846748522961549161528452095023321905168276475067157460527840011207016523147614960711526119304839888590808429948578688285901346181050832884948785034973619939682987855623093881710375758845126245773172853745248819017546898318026515884874005212500682935505887720925632822888983502491788590186375555267787926743054561010978768305093188052103103985841374361054257038832244906569979090246571054942400899197934717959154232937669487999595646897990989543511784171279116653185300520662293470388259574181591982431830035551627787188801009054389865914680538034155076616581075060921497396152891248712537644637284010631629632827537864747904840069246279830982055620327947744984587004050658786178659232298714342387203176265978798574166177143608536136049791456191434943707398691161088067651133974654230526932658376227303949917562301341139182254251522783228872095815143954170225648743549662158683564245190681305040692894473914953142591851548906297343147620065673531552048629839220501714036765960519846311849001074654163916897176796545340844739243066744662589501451358952129243453785330950821070613503932016953854997506525000580003457444566407046174955025448371640114087910117948833785995033419521181976003910998107657362235036988132610878429511801896451174373915957070363914999526245311491630387174490713061311903009076500071353831328777304857246957245528888701886005615459213918007340975239783875281333686214354750915693144373437816233293606447565210655444932586184824362062509541773547422673712049924197639603139417900273459824320452057832079491484167640225402748313245484792155940923537926133495063671614613171811168274939431420479747357821018516758664053720280660728344290937477969954752968595885433888000817837737189973602213467425252711151342590591561669789546512136503386886693517154599387560998937918636027701199245408200589123750151210278086108832282834700032557980267454222986197481265807187201232054767538749891646064712502305481940232418628814584972659397657389508252149543335517760816483620125995951891943882453189305317024699521199898956196140282482580997873303191229133828420350197279707818838079376342796265614389501202136182632240953976448337973616136274529885864207642720862608501138864677779203310890886798113122681147273938458263262784931135730810233763747729507823298316586441195125988264040281472970837405091036731838359868907540107852678415240089302753052913210266264998145981512456419760937765906679819688871612061982786876835125690722279517543886922685220666467716444912513760774504960093963518016320187760048700507753071214292768293277599012278966753624354606416232012067591728147707672471553164042965693701846774542957287601517694908320061717719864472825720552972331049467172770844346149679261116952891465839438189729801484998944003084066932930751950952175168534754620654728828882771693743785398917877806591941343736454480054185439405808787888407424852083822559496775632522569541572031638378003353732680389059291256133051308101049939583919092723996784813894505370024625981694078450598153095529336740548308623302711865916275927618591310506612178945860045071198808681010186082709283831910840342521170097771426816701846182364508895319224997392098850386335792821101868992052969067331439875150264644018058821396201054616868919579922547109810217639636810944934268362958019492470318149578507560574553822621150678031066077549065726490115510742751412768064401897288112373196968533325535606326867473653498331512195703865144052570455563287699621877191765204852816501488038702964122496089995976304245031950219240389019275789854130371796661885953033357663148985583938039192423813261743119078252180821033123757803575210971384002613666112249779030153074790127273815014925265818159932710907716808408018545163695958021886170118345371736186826751481345489957396037958508652690774466313007386992834160554557846285599538323205067540157190951844564478512821213524262500113599242203745703698106393854962607987172497780875670136246666649704389071495749659688173349190149477460661532870181170627774123738626021785441114560739131505184379818178924803814378466361894180793209845196753608801000557759370108205737792821979159066941892314132819553610280270246499196235319883227533273532204470506726097059949569782380994167310996813807579844504858953242460075648482102073093573289496527335464582351324035246016726737709085715448716841617560834687131223638317256128017692042638375782092230422606734042890667076359134206789363544748698934967180439067203854492938567793733783061825224046105358393061942238115623128150151853116731476788926620626648197415923233082979715083397308587608800195596640912784867955977414346897376353950741491391773615729759887398244317184492365498297223499658889079857179570186574454568754222944837363001913733266818234833693937661545636642394254008618545077855702216860785659147925376524539871122610583036268224505986855504230142187304050453031399155529760526738981674576261488577775989768175382900052460556329466224293191734317989442643029812963973562812656807982942092289426247726926020057211916218497523399146715182686260428198103221506668066937993834974737942560646605281701132132650498309096894456498545547745353362942501609684218181395065484817652298618161081877666721090341365805150653020444172403132526748967661639474199620140353172910289403584569718738692634799133682081480156541535169843540358006241180336941255991203557958101643558666374049900287378000186632865652029217975906361098078237646870919886231388806681000200600298475481814134498545442745026329348434487835995685078319741426288741710167426617314929063928015848644486508736290544475993993725958252664646088144105257367402075553492659277682903230904218526166843643315801753602891437585465071409024880080871223995809646298845261620029194466706410050696885367634208973039177812597761304620003442065876523190279988912775132164617445928425630415441307884614812215396894398119726657809126969121696631338084942231882268232171079431246837010716326118423430243964131949077831815976048626933499402100629460179802201446839565386465678451733267808644980422438663648891055948722306207373554247233782173710504256717917835673400486230073929645066801904324682219519751029241270256036589892527887674929875759094538183458300981245056467132406351403522364010809415662671912856384290175959895907669032722108299813572565200497238557587763646063550337060888569786274265994747917115254782275234407804536270503028900188696006881105741851250222287684740275793530329830428335239765106265550209506586490775519441372944497486055724736298204431924632997734201692701460741525312797341594235497704529309235760691543824278548703213686891585610182217023543028410815105224549436673220549005118002959366211716242322297210491084601895711762029430375533400459965866095913416194219064545119580443012548127725250243863835683598747891741454584723438878048168259635628501210952762411511141638653007526621504039896657732822083569004988634726055813971103471457137926117892532478495982804042963820828472975261323653575506359629753678458666404433942662718523936239064005214603384361352020875277533717373905135585194708567325286613208595557916515737566992396875816430582944295400853055015168089922555570404271624729728290846376095243789458700764650938649472330139559733320562344292474629416580736065180990309048716490029885091259026607665611792037418015769698458848127872147729736388847294738606715232578918529656374718662903324684895359121531263160710779944341457931143090680936553132499495324466914538941689682115430021480220844181538047032686285450379789499469318910314672715907902734826623469661407771567113168470869229762222333265776188471569120283761738888965147416540191311588400291342823837386485037665455490907281160374805563237679300160061735368385080246967015104368380369910052529867251555474835728401005436351440381088348090861190069236397232918595659630087967887723747514634643326374371313488271006971407163346855132486019773772257378629214905843947934139354966188244514578545899269420132793343959049611419080860172565991982075378778775829309188968399084282099153149914443657546115308247601946488772704915792751350361860606228302655094029240551737159151921103505509987030937503444658741542875362427998490989407815776065957108387660559669892643296069718541775572139577223099395100719466000071807155952209581917193793545801521445233706289185145547922378478506824667446092778634276546064103790222209984979999755224253309402500345293854485611140150645532945405695913722076466745943826787864983146559495383610877817512241088401161860020766483227322589941784119614916435936896706434788205688624910135871550798722075767326589132923856886686360189261098928935072467812007055079513184399986646281472212803828875270793490941632120765721070858934679340548317321442664131784475444889977466275285690195562361877908568505148159865437447198051948542325289365247931316982478433759240106865070920220456092446465678445412334999404658202834442923684030214236927856555238709021869497322441525153424880361153117883643151415840736185817769053268671209494806703403625029590196654720929129817823182579198312332270426365839668099910755022404769708423306263082513630449086394309618537782213661338907077713299394410078360403034944499061406460183806760576539243630132137474076807676424274131851696384287400260665973295684822479233916585689889380259116856862249917321181697504878491654075234702743239299627995919153464821798981462934632235812314934536482757957615113677306825038294404906399758507257423887800410492703121974115454371782429238819814961047536314820553790065132520021668516653494945828451056255160127669618755617896708559751440966977208334380684295122883139854571926885462249430817766406195869692205354986639320322159983213696837136943275593335740527599458680113409013577297730292064524963451670889529816087573345416638774237948435567966409581342306891829426072731927807512439276920358798637770527007332041547860647233554610689852345506841328737527398461724396502415575078494884843452824796577340113307458561687647304401183256597755683436837662381855482450050817329708536383128223053520536750155797065835109213032084356219795809665079649760756767928399830660604126121858903431586568701597731754347954622105001681765467055453168782018021563409938484567908782011102994173094286719568945976851579461155532606087584541879216479563118667759924059822847869566635872729954014888075392363259168407238831228863979340733293435982281222219890111703106121839004681268113246173390056915166852178249521177249079028865219002846764681767969315594289122315085634710106220938500713003518432599868202555310396274962356459304165788957613428670644062797506820859446433146959311453104897617777346740959138043415700510657602440354234825145596770736867914166449526709053253848357123676738097620452291959224973980449598196701113850557766507218406666536646732836561109985126863837971890168902851823892061364258350669328923258973055207140663393561129968333177820991749559103175143040065900706372883720138187747903792078062645729091180346971159620733185881874939679728904338577578955279105664676102794645029773999791681969372351276342727372854516479165361323376412599287373658272997523834119830755621511904167298514538167844088589737347583969985561374014754978623182972862138622558623943673935410739435729935402442693822273791985919903325814162304125112220860561222318696165279970043449311867610036457610242600704368525597429985801708900358072597838558269169765391907471460439290369227156383005437322662111237920502260726283578244624308629951323782911498716453876997382329153205499774703296606134511718734046980050873093349689018174769128739287715951431291407500227337295015391779147149056189967425443330524703976282566040001369484874464992523262461502672037226723374704986235882729670004772649987647324021571471834087191712197568087471893626511522014861333204452440276014901776960944945939987813660152804726322025749531446048829593346905763701318953969490768458425882164903744555998315088955228121792100818059927155619590380250017757485759513795800371047508980015650210229169404562994853084915504520312032358097372196473438099206616568496084751661366666863458888320192070858448332910729311575109682253480026457231558569776701987197469528901701207802788278318659778153256114741251462685366008073845240760808392108702630343021742282196381873005202399533375336461467978704715960715987694221691213853540425551002247719028416309366284963388507823061445427447250637111721004716681327569284818467610842559368450326844859123440903456993257486033299604558641845210693451857197939970912792580845650254086643148587530339696242826244629498330752944079271565649746937899029229063076466560897729237299486869585650397542524607895308476343235539693487009872657689513814494122731153488027027401157575160954871377659702617643348714636763845057322822202750923612189195547629569751137655004761064719647582002030610588382973364956163576140758656564950923320733152955519734746922533154579055057041534928063553705706797906691472245657289915388257910853338177025403074007564151431393153668311681032310101093236839177483368731144318514721276409528821840049430327577213125974906805544776139927608026593445537961423675386328872918236187281107544222241808901875862617896777608193075236806460248833635823306317503450999579842174619403303292978169895236558315043191342928447364497669917045658733906988726179546076199721003023630753590930986291551698688406826817128003275436413968410628157059947659560537709268950019190061134628839312175413012146240242462144246309011354523690600390077745523354394355430201124607955135027509378454238530370361809846449767411975072181028841507292838788426970737706791783041180482883168564951286618924658187649162528352498443339543030456352875236982849282129517731685133204692589034759603465952113079996991592662179254170449582983729279881295504801685493001670136272662116881519546390485891946098761501745405432658394580968039268795456284584987647955934237686934339199505384229885446804017106775065517342550996120293579744705497358760589551319963383068860993169422535577709126134237349295784410992514491435718194890366185774135374637558744753967527427115355445829930525731928738727288039310110402586128771314070670978137859347943634005165475017805860814629981407314104041706416019973006375320693477186553549203202959649081407394280132410961234856898661490564873721412746766736317306098005852735885436679631879452251791684615831862850273358297748579886464915121252361159931413472893298899706931221576968661156288832160759311217553043906442314821584564593434361968379789633706331636070416536689643635731156361430379138441611549864849343791673231272390061488674710759397180291426476927012239038401321197258536435308371504539974309694280489490474034748351204220589312150705910686668992020701103973601574095263138914282143210943089682980150521912618126469188694078846410534551608325891138167505515503974918790663209466220936791786655292928211020613756157852611282967009686235854780958388014037554471523003324414510464373946355083087498919613067786768804876317495251229685487666704154413922728509987639702578177156797787352441615790274859065699294277453828831043317260302892187229688024652789913687290304530068172236521039404131166067389029533161021942621095353271591461192177048121509977976437147573636373585064330928959594621122502117466494822369386658711486543571687866190261522626606561629023413386746238497240864569236748409875649429991789080997333386848781549975066105103660619846002483484952459853510269688283471725397090328200247847955176334505073460239528446603008303532584352412372785254654716627376235135975909050682210541065847197418443217114236744170457932819974884528145344381090815044519312835739270754049098845183597880990844907185265278248114014179744597771265986528649312787367758770063357156939380530413478507472836458956472130320271117764884682364487756097037496178238876121588614297416715797631886513022623853254162624255332273709481847896714758284208134380343183682089097217308967347196103582397362722908236815205859921328899964542122772529186063439924879215440918152434977094120345989439743762641032331230222507045321163987045720328866952738341840606278755108332433514598303218551138927577670203379990196526940243162420288617665718642437609835696711354556211320912635505537459705579086588989700198509856346896923994972458847188065987594536980841994159065326820476475539643634739572526876150047028355937856736617007580593722044927276897832763702538409760511761551361509892706699352641306489149960938543068314614960907498160630495370449912905878651399991433728960431918160840488333401501034295729099711753738216895784394359716263884122922433935320365362451656641319727458762072069408134091948809930406726990386373084564439790779581739127300920385668036248326525154916668610674426729710416210458295283816633661304523005652454003112486036608655876941142336518507307726323076326286594396828372059637396733417977369396853623564312301097782060325766682443186411067490364479885362185028102788148464725338057575731905287850600283272939759874615068163116944467198801150071008743091259903597601750085239917848696259343835175621287907587385709670283886273469267084337763467468351077021651691800272555676211833352233481340916887982154854418293445105450920303378299370382665205833580935252652514599207907492994091181510099281773154407424882645661306917414663524291404380567351570460362821545531103721281709759212293219248532934460344605664467326911412291933948898404479324581553465441770233932011205344772830941370916081500257793576904612618929169567878816889229776882809847598943059567178333474152849449690849073942999589069901655393238655344886840142608406838890324090855546385042469040565565380634686061229343970170127218291466707877166249996932102208540353099048750727486859008645221357334370918617842213642049168110175829530334480548700436350280974515805007959673415671009121647003781983844628797539513195784730028252772035079470025350589439624738073686888308877818902648168545547461517149725410394016454861280325424770204129145969307157518355207052959995926550849921101041113824648980924615785048354426415199859089902154453572697928419238571940157015264965044533285822204025423708675120478308619581727153826495360429254535482766751126237583212929222329043406312713430686955822090807322047426874176725503079194191933240680934289858585224540833481691431641226787669753783579189882229260851080649102248466122311970498758256597409630677463608737801005044628303519453136575674082618060235731610527045755482021686204989219372195044061556042542189259667675128142005257885626293640240373321801798321109388118192746543643152451498289039686460275278533235795826675431810305333635531652401056916419107028168290502547417238187001928029331491038724674314445345299094552874978428996660582382262181037574912970275945567544268872324485218092258859507981125865714377625563564772843550513559580465328569177202543380272675102568286623090101891172245484470637820237817359487364441992320573734451618695873169763453111254374446243209844593369067412142992616471307144810200914427079969540832119952030085946598915054544873117476711400317595644931368972096705754098815902978933281959480121753527572379399854785496344878854662099979034728649833682842543825128087838627086334403056804545912127500927329063904048229496675086539506825011844398368170449567360196023437302440953252234335047759644642212877479501021889816908953287763677026211362643319012461545272288021663363882448452828551966325443851057380680535246511129982299417853767643371280954558535219008477648927073906686864580404142265095512120870687808601687227764160724444645321462763770700524389161756556050732320669060145181285178771191580847036329190827347448925339066866793980822397273889716404852512896616252650889729739844338470765125041130752393360761667245411177839742097139090888977512722169846736652833841426889639679420270622825164953061905599804584645327111224867250655879162153267814883848197360785542441799778697989486018783651956057857170378502027018151275123009726763816284973512989329553862897097247237042934928296338320392791132945663317627874053018521354353119426784038861568899467403512379910076266972558230654318445287263247522961142702061921721955943507066382075579315792656231392452120441905728884207298502285958615684680858530489173985386790036098502303385017739979074902725738151657911448155152821861527679620364436441507844197381854302883800302261776595379419584723466509685667316370895710695841606810788760142125540316116947118368964450276179733318846429347018820086067412078775062538938856373187326715767963074775788516799357782908892943187921416304934424056245366832687031873133372704410044742638330883237852883278636665020567390193055353149756595338334384118018157393029592077203356588380617397805245847903429321604673212528049551626757245987929412103653935830290265202397532242163486363420534802894718034857513090506552945442367065370651128195152960514705398126126311972641987184269201265348601292983160711840762022160736945017084626307898143968528596298949020988606038593813183681734436777493201523723611334729869755774847478989486166297345878166914801233690156447861421144970965006227481619853985017908083291803231156712676838377524793936470149889326418948094621475995580145260246272281845394514787817111522907079836112089956897301261442558335477950075315012341064776611389270951829439286429571476003186719696310909413803497505107422024092196704371452446296380644484797265565343537612507411483136810406569798158893744380904945355464360252188887602610659613603976387892264125612351364861944370551778220546152857310475240800090282429300001327352511684542245544616072307870999637851484579065741665615450185805035602830720657382861191480294448283087500397932415934404039470713949323231000412940911566202329551255446758656393098070783940606043819102065696523316776959374344697417277084453692092166611073146926684176306411110048701152912492731162018357032061611653041968755713526990035614313805332743719323640045446483969924929026208523995609142132378039198445335169239594565003630080719857067547054792719772399276566191553874275432874052225973747838383804387826908388971480145997041138353261208709420310639119447041413253777148194484671206969724107497971645562630197581640696962183287121660140104065138841743825940620359346930804015718670604496178815313943940999049538488167896163541619071409525794526403864703088752105960311456933411772902325321997530089147373220639220369470807973476498814941890565773794673382177675073046662967415457716864135195060508410177192122645349884073302449353573485108514322463536702193247066053417197637501062352356508438498590121511115549263240577480445488091756020607434196719195919707812294147026593420648199645644671020858474830205981163559511327823881113916139436391647930043809903662669832175154526639573039573939951976085501224098222748805919050466665907247582623975464443907990025133011564356180097555203820129794525394960273342507268512349748689569669288227030761048330923681652394251865476231045250769477056235092034320227228928371862066064704512273534314723258691368174083970138208552845846145303205580306929157232231328128501575454270621337398767786256302413366806852819138093028282625252473316426891416502281794125211285488958901333461189191091057683323333612368639797144445463170725601240387411220134674179531807726490879984652789843872448944658602593058806556247857957243337362641263247960932225188228042330028564245766642992184975024476759825043954467438537982115778960439709734505720605103243253428684289937643896868352795278458388296677754802520019041717534300827211571655544790815064681320248466537349240762442625417782129130824936155681562314023225139143826323348044786091896674297387141885674570244522888910271978907144697969773088620947593631272711202714432432617900139245453767770660944932449368069111642726922769053233664164975289901168952188115371352777237681010616446019035611248595782485427624831061349026980387287770294127813456919331626747473972851199020102324634135839136334195988859370284062107408149189705382945120196003285186994197925529510135730897704037295838774758095041312451652171207926321852415395093873080809670399913360821633973851436990263441215124059509784203413310001586441980870957984212463782468530192334042416821707075996346494590028780807011384688524361553197719176403509476692588501971444279815864998459579408301106491705591162041746705030333479643886400067789038869906326872454443341455512576182772848078735643372276347842554075875378814628179717259121083798694266198764414182588071091490545198520024107987093538243872842285823988968726775053894662561104170886154091369215873862363974296212512930023438816514732434388506964452244518290991535811843993906485348488075178915561343323297638695491522241583021397913067825349831445322084633345982541934970649669719650058883390332652515346167252821193005877453783366036865792634954628926586738892268148877981576108054798910349391369976611208158513115623704040202574457624316456214680468099479644429873994656342653520114258130097461854062228894327176359412639695743116494896701430219132772314726570036280830156356640016935156049772192552547335399753021025595583395947054365158829041609385653753549988837576417414902320128049641381607106130986036768330687749227850544714862530612963955329035265846758311454464379818685167768175376366002546984355061184035301761208486993853408791446483687989898042726571307180282488066256223875187303751506353216139240535012442832071149371684680594218245473796031543308986483031611136590722964648561607563436467737530420626840306140861520433332085366126904567459723846870619662578500521422089208710114536807485575688801208613247099282554246098206065224558709929089261490799819899204881905719221657440858426874203648418486525403573670124796780301664998476871030961499976778481669041658424949073265691511952923221860956741095681690490819624650135134982031214019811999031745541476917164156594084399505182381455104186836690167852868428033011298454799758331120049372508671490622711589197110360730992092312276000818282623280602056549711865110710170192796986678313031231426706519227047338626235686973418379216464173364596765806638554307735403223119278853456344363161573077737625241816329444985855163455970546880555833851153335058486628431663584909120834264841502014956315088058959906268685268404777746599665169393714035278132157251390401564197316381816790132676652363519807817154886374530338896798423550407158539555132924705876347935112155217893642061187627705580764281660270023751227233415233437488052875290415906061384242344578328314788828756313048632032774615245863707326445241905574533150841920258908334331920824573915553106342721917632211375399530614724961218450361493798650947550707508457416887587102515415448813309531388417648859084590596987227861362753347843157291201467820403744077936176985816609113027085914386541399310707679781987465433710335773075838122518656825361075810391304484626522900243242928622852642487775904990269843642941702268228523783705083840157843101047220795669542616705660774003414986231051755029190981015188054243716358024125405817195678491513750353571362571144225741439571405617421384319745984741194530736449194333867390217129390157745515192427987712699762649173098566308474830646344640090389800680116616441849809963486154663253653108967958769581726845361815613188720106373462345006996485768784617876944244720643022206216332729567181579931620269970815425099104437141784435468364814579534817058853808363615983075085684870397342452557456352876202082521632129728035661835007967874507962277158726991470380249278316592259793638628800727353189482536954901178687722254213621564710329181379228402359440161536639504653564767097216939464864383054729253566598319467374060820254424812798786638416854464479965233544670007194087293762449023062656021933941257238803819982049893299852267290365760399116820152366353484470347792016592345562698954489033597828934920182632421760369880965104887926179181128888009731468201810629735617602052152178556822172764847683490906114662865441464077865200528557894412246175735143196642539769635682996571185404230147825572831022046929500444337560295852062476216897988565662211367467438957307872021128481263290159250727501380721962500870555966848931462947513084249058372549471218274296303886916188304940615998409978097053554979298651651933439593163323507916702277250077465166417268303495644204950220944155921407041270734772363730289641317591220672916145610136302770300212281931189475919206886211186156021808393848310121647505207976276891411753287099625765594155545272206060297322543106028765429256455299785323288595468698369533831882461927478852025364633838215978278372341019075168597772383239391319021694005854359450219649763530940614935350724476156780938743480407050130649468600295962037271746549458175148722936597778272565431985139179446572366432951995763753105754487708673599839875007780123202360615526301188174345739992950833682277819834314011152512015948129306179865031404455633813990242242670830306489339118094289239899887659500554967258171702775697159791781831480737923871636612553661894952480954488398684249925336669673014735843717924419348073501988645090991886047594594030761364702037127492109486331308664696140777868479724027717444533216451278881412003237390572437530386708756581109761081735221972810394419118566553077113870485444407289116748504588789006812805825352832504395254712182812770933528228039938889326634418764163703603755630658908508153458183497975729932081815053552780703658780825155442057913450183472641964355221493218356843286869593950468346988556254995632397161958335235168861274657860251255739960039611145533548909135435681504226654930114297746922233235425613122924374317893517416591089241980784667511819888072702219959824328944426830187088835774138682203940909288283343460660110708032969076054147858206834527672158452484692248492628671008951712752979451577032854779465279972261749661044119029717854792745046109982406086806861832814964005172392364259652481285346917099102989515763134507008543388343756118457051763324663424942599836290439331701082398196045738034609626304246583424381886329271227491824695084367358780200108459452846188186030903936860161990990288724795394132887664233028742474308627110925865922192330261564989973315522122214671499501521808363034030922861100401823266806270192247137328246130628501515888384166488303829315401144297649703123417912066270282346962211308391853401692800517945174393400964628250735793255117770598213924289536110125738266290551267041834511577830330841697073822040591732345690271466057480323106270077690878759607333343877438221397095331556446562075812209316703616246686185528437703227336006922625693158088631647727678845749059875109302138844064256548233128688342586977860146063373848140722902630442332174002137696167506886149918464549553123732076963670393993318140051774217900223914922916741564500642806899164967525478489187306851748403694247007800136698334539369874130753110712448999303671091282549098467842213041335905338402251962616059714003688205402581170383211038369617645042488908824949406597745357409831666904124900910206216609972386271306985342988951057930076253415144890404221275186501938650452993691652726601122646844182301511026720222450705572558207483623578585306864014827185401959424992145958531647561868271219809383589913289675931986776376871072239788341905650097517143901904778480849627121562917045477221472955780567882171979745183226736128042984171051665793709153627506598211905315913788699117668196035395130275922773044715076050055772767143196742187387027008380435926953514001016031633754200285663625623101880813597144176625111419629770712718074676364408457148113741569140201574761785520488177559545628211173127474854676644992850942743165229357669218382080022652358984730464641241015161036350755710700735424212007054672744572022109686849582234876141618983218590698108352140988193890637788993991309992872847343777625293027279665908298327555895529179718442402742461298737010674350635807336597817281020664661894598505065973822081600840519932884429997111988805813956079686773618997353973242901481632973981528269166100105468386600530253960551833360082876298672867108169994087992039715474246218429131292791360877914736256155107646310949469415638397123332662255017343146536578856797191685696198240025922077475459392387273780634027446349914260323073047600125735632450508051269453863649322993308458916866361635108037263949657625215398395806741636565327797595772424365240125881448991323757181337211951355009387539831943993715357800800251434726043952296584165381976922455528710975879782219647215440669118003163552756249042492029306543042812977140146547053973900221723107153687636685242887508858124306713392421462718302551875262972191079823108056412314886849872175740165551578877647891591776046876249130094403946304189444520778045524656190292002461956765233782673848554264966836885169461891296358024029080559939954836412268115636788980077780967730181177485853445412484479282684243347869196823529641940463446161424010649780302230433053549663269578818081199667241673151843438767706614414578125107856667482752563109252239833881087194033505328226184446254579272649820461754037981359491519626057019661810893448616540804454069788725184366236363096365276248352452801877784647510867437729929031740930783504709276048429776092393978494051668299877209175168230903965023163329572807757543800578380179216204487891509252416124467961231442029059813845910370944913878483725473786791134654643831223440982590612564782625111100594072238991854147137407848547070037433090243782559176565822009401846712561137012117927525496202988199457043538604998135626914353135937264904719221293327056724757172730037844413366127561278355306240730575395530376581644561110976901774380247099738117394044768749884931549947248000897661768891126570769395107912971619291672766696988107204062215658962483168058530817198980072338207960714071612727867405807741362943800299236944860847074659945519961612868791409692157675705761693454486135788184944271606943590759443395054942928227562904213303598224009196013902689778853680075634299669173839038156952800935106339804958826440069981831402529007244550373049028621973875625229204048464212137056526377653908611732792118272360645562756680208647687326699167560367594877965068155247878750433233286027642139117363075961742304446569960151605386970798616502262804784119868496739977534295288761386787193434501695122767729892025605540464976630972391144261782201269779689824070142929408788610227364147753050815758143401109698228958644035203571377073014318098727881688739944190423470125443877104000843557807661478534510178921261120470926884443934921193974326525877357030194815641534513612420454137991587764783505387243548314402914250682262497053270026747548495820808570394097318731435736800210082946073758973878315018794469938343877942059909954041458011809524073253559912171834005189852921318264212722563092205453252383505434811962943968635599872890696428867088947872785175429494331164885255992949172200675158792805853964304394528953309146471061074999548970681108331495202379587221592511115085308177288856591969940105326958977680577252492957419664520667324037590805599102775574324570497367611382241136647316200751533502124655815386628183285529704954976217603354099429232125744957920931188792368692344389252165457770869503563447962333407120031698327261961165608150502763041985705912955019388186310035306094420826857576036337270785390017912971917994331880308324847052085847498883134987498635830328437187574873113454429982341631404147444347714259128973161675455793556261105502801249776887326628536751676388152919619537820578538309189429189351643186455569194584101953549789766055846033458758706852949249641122533723923667830661965116494971429501257882353293027633699660969227335313948324508190068715641930684348186932593759418868792155874787034791652478596608217189584139666141618609350444159243367030926868436709138166988519064372643178594217266161275315938319110387366096575226015534840460494574836637966008311717270467290471519296401398921247412349510442646925031937508656524074768586943071071302357096491273675995362857690507031910289210284231651806153753789073353261243593359345792776769041309799658312223440234300767358302437524988369624092491238615980942481628676189760655846886151930524077748192425405346304729412945245603292541838756903013759638975344541373697273526376842248597305490873082031171377921879383462268094748672647841349403921603168942216174411042394382061927808827821467340696915249951962215652856432002851884189008624124781778237293085121284217109322273025902631182505468826961862225689280772869062418252311209272741765294490695760046233395156330440867759915433829272657335328689349379758597668455276831321541981411360272388452304640667373979052764155078686170630616597459641909279028093639215194631654380843027562007864173231451795222646009221525187314114528218775308387490982585318158829115130197007915092983692616807000772534021845141812447561774669306806654442832182410009466768361100738772997663925674119572354606058414924158871463341796481671168705483286503196437526285743664179722624004007029772653161994370317208607056132206337214826112036547235105411194523221146262174350075117345589831221011717428386325689713308891740411694461124820739030881098750277007885635884092170780702819523905492706721930216554142602557600688777446509309667110244079223534689199631872577157920353334230283675075172495882772622512025437319245031048646821237383428836695313132961203377705225732918692298612065797301247393970801873619918867682928026825888470248821666496165903069156200726830570597921377184117286590465007874851296451882294226886792086417533352264702841449163765748494402401190037530601979432156547759643270594868220045379929707597386657019473373871000222480760538898134772663355789187488112106748429658253003096723532262947798220760710688552180525255622118383661152073478499851410484575406362348235909776364796229807700706695291893805163694220347176800449487334466671073720203853349309183575260552403809189425615784961839501850193632555656888537530231099118385895011308825273217547298021000465040028033428793283104198863932849524140352201840347125721440753482403765784183380034984453163024948862470033341083798086186959781553914759606239314602568584539984518476580584717755848518135854590836315934958812397037415498853049341010478327151494156517452036477500563062815961288522973184830791004581065216131259350254221632969137943716422886149766530720454620761031386689191024596994285796209611213761466758935293277243551286341261205873835544493714022758630363994226496013904740883443556440025793393056280833246018754302160924661565200716019373600244402038528698663536717425336004998717689679270581812347289186407443080724575103752691044769393145261401218701568205547734479199765925690833273201992267388511308893244506400762765258355844473918493819443054895041103817455500531685270791421967545187271396853205628673146651288364637805675270888913308859812989742120521145865951807484796973234371487211286605724514673639015103938712382752286373993356885033543675988265281500700189375425281887296398525787023696495053105689367303458865868115618834088427655754361041222180274370272855844366998737127433863760371863741235100688555310812061355189788556888400947060658838374242080399780210481506143098016890650378482502962963087247075632507627734249459763002966168687428337297636799738205232515046863485930905524404395342341687060326382480378532495731053480285262918748448435260859874321284382813042786933401274308697919836997965290315416938660368657343402194194971727438648173594092723261975109383888665168614097736272727733393256394379190742426798243659205339125707565361264966177458506919360637876960377021156449935259797404246712267381861964018085459642193948504449919136514313321340250750632667591942485913490701420372067846870826387562000867328616375470930069694900525201840802384808626563010866604606481999459867760060559559989273595925204762303565409378417637984472186146914483288348366089336354676333459847858288281458131525497895594437528673337450068323761598295123281544041027118458946431268492173440400770379911520983810810012922929259202372987998373383328700353220413341783788682011114755854640550320014101505368629496869080172119856680532730540136994349170535329010920351039961252751444821546330913576722860356975304726248330769766642235943188387398435517495321292395442514569603670430284055975530374693969232132704335512105225040672077360292827594273752574609839718676485494485907883776952648439297175751564036827688236711314854478277125498309434523932137171561536188950376910104517001795685962443430762455224032153944334954562115016550781148074239505895723754576486093629382220500056053819265216086740744917158803547638171006428007346684248191810796995305798186565824681813779039821715776149126830536532341730930652536820218772912076466640835649294130590397782983386524733777703939257539767940891124676984132969171834805276214103190952483477296974368821768993003418812751576810674860081188853745529525718856456965611639571070787810569986404283322259299491610141226373935351334448896561130323767602207593048605593005958209723819634025142948607783517192479786399784723551231371932744887569826418566231896023004604804296465534117643674229180945473880490064347159666802918690267993658692410919185846607081061781743789234394317946059782724717516312643265585643620813234467385515886958371467556151456128093315089279489385748869963081437388604687661303162244693260906161561356279685772521579925309090765156882443820003221114563075803323211965632980413922392907205302273679149150621039837059958390373608365950764939286565203193490151628069669900644204709319271448967478257299784037251402624509825153153597002746206212064860659343795037355452399124755705077546615554605208576403503733788751672951963532951201309728066097084449328733806579918904264300026798187165255354930809996417150350326653340877742786454891556236090758721041786537221333350056995354744664608427280428436368884663544526701929039858768302109772653634830768907324865228851657364749403457372532498257179606167123209269774957888749483030930175557479583133988158604064510121623331707215881725449744498344039236849637945212129497862807281991103693969360878344476093408556921124178292385441129822503339790294152799004928076977626283018403331765464304865221764210073230158972397020198403591994828723709740888207989943820353842473262910228377947783349092089034495938288007852184594286025800856138426879942617334268721282680004832964228446892961873827033598422618208372007033285017546396733768006023118758283423809589946063625219516531326245714189446182508363523991914369172700013896637744300709591839435772477572348120185687572041255297508739689957023714101668400550742309835643253188317483273145148419752768731678089230430438579794011926146566326044857518132280689339477377838956177434118731379768938015006810293035414153936763660368406004968130372837944593766790821504900372403825480225715120935468718424233178655790176083256647604295285045013744125456897954976078828264637471619092496252202654216532687301456571739003312307616968853346239075807685017153419226924695357681779714195191986758408502850260119446510048364377084434943939331962931065068287270826830954951923375843196198026120526646925634095549492780664204193732638555208613644789053938611821378722462151882035219805183988734616160374451676699839553503075059254792149086357418689174267290897691653312032042748233174047212978474099826513504342670408117569120052574523703559637391970516110136701142588446525556960326414500931183853100555317054440694097745692904724652471329422759699392062445400702744122547141554940886453542686157248447849298394118776202916912184150350585751293052907517358604956872648994769987051183525285546429114212359516022655992132130220769630639012805661472923399807666999977860397158183009941437320901676447036476926210072400202186991095419840760043430156220078185956752552901768415219704606981073582357627460373932853682226565502167108493879075369030585792857240371358739123677483799117658296495956298121255567327820285461559258779148800434566170798008237288144085948250338348557144454759925530311084308515447610657239228235644665669172087486663917489085521712708445754678908395419088256764548295977247459299992635911732317706409998633225059631634879535178546054203227725501550339630748168341701684705526229980623575914566964454639838404059568969214955328021920773017977185722246973492545673896642682025450823563544994792428420573133612457994883998590976909030863638649327368132194664544597152679648121777006855384469879114960388366731815736191916726775790717039878128189275802226835269647132392508358158279747728116317675857139417570828555107882100798101148980750024682444319946061411321495590544304609038994501592183059090982752352315484136774311422291415681311794286406752117424069993874852986179875864792324155133070702166043193487392128206371704107585233537536095099777346144203251463229508661303169347761488109418620062894337631278240078248490021219697171015662218571320686276340380582519151951960468081922911091240802325464426385633264818082046958031329332628860758017750266371292130089234456137394038795445068122999722117466956547847359866632389500233196867713557034525915507522834884377744487257971096728271877919656871999700968635286597696274289191408637763981380742783122600740543896737870188187018728328985834465296143955036634361923673252132896112445551595153296538728612938598848844660075428389259415863381398612906040900519494478095606188585385179556570632743002049934757101644379128633410486542620552953959813492788758090132672052985571406183813578746060480743350364807243167121281622914370667979250892085040342230774313288156193540525395182235201718052120903845421245378545269166999900646569853824306673222795981047073508345364985023918608001277820299775542171754132842331989816306792932267656359739635599184257715822754720302481545686462014882659307829122786835460488758674276204092326838190571492225190676008506642082392751647633350743903126542084101895757952192603629488424634746509728307230488710252265155579401066383949887505494550325496525128412113640179141068325424798068979427670177781518985026232491830540771235959841683903969939055821614840721125348059676554368193135336175013387417818286614264935687099056882569129756405264017469940848608488301892344967904515726875631588082285006340583598291067589802867267115032044406327465893159334546569915841035856600459050260901670140246217503212538579829173054559228967682634661610760698362039273157300692669540879291153777364141649466960324996633607899570925769018741023556840514858733391169360974291072522726600896272176584908251018908714035450943057879880338158002151245339628160275994200770746658301750510580194092781376380548624448206998429940354521900464894316180763021600915770192506431304233507097564297041993896040600322216780057413929874151038729421760964922920525611250823360151819554349562122284503459733426357762650164994479334567098742442278618276598643747662675700890849671187205324557598116156942450370628666344603972521848422698472370118806597873093418864589316928317798854405454137619422033526862871685836065164899009345668953978890024638980558101977112897864814148890025337424585120884880127942636753298395900400721957725759437183977736183621874530493493196728892980790637910401524711975939974064200118155804041305641258170317478048509506901593512329610333755138148570274062725212599817107486702646484023206802351591988172700663334021607014640774400706994931316102932124713547350344236796009073167533296333233555939618274777167320105039168125245681215095599006048292431824614634755338334166609246523635325359814501282031957861152079388656833908597284866740466423711416428411394296548616448582430010083045313516117188816492602264441438112098865915524948661110158211783256899044519570383870622717316054808283582181244982242579136905202267014413171206519509569302645516289924566681721010131915170169708602987848844413160436631303693437958559053885317450017390257949493260949313802150183157395078599092500032258797508046193586014187237898248383387830558565750583083885715110576093527101843271608841422470237569640920866698277465347406006236104807648033970350374511346539526284775449433249449612834132965356024985642701540844906112865209191910775511776806985490676171769838592534349737694499537376918750320691718641108229362716522048372051642487689950099073775705565430006920671899856112177573575153023631876414846546404225876463190297018365692418451876054752385556402019388801649993013738618113127586230706414095356564467255401667656576778951773955687608782684384983452306176603005606066316501148998700938092229743782449100518718250844896924942953324350202634608007653636801192749223846118584413963080365893886720986343366954749607712958869984232860579194443038950143496487704475763758882888921638825622986943423852744554486003208583960915354712496858845436041798940482491459667339302358710659192375483007613615277043132171846079721820371353506735443934738185113773535015800610337852006986126650261289172686348817334810487950634644537890744222977596872880748116695344766504409089804238072611354144655027026782812319710881427942228360664200142501648377802252693389497962923276091609424815731660251909563222512731541352950617710045111745328775100460060382258867386588767575494021095469069339288745072616535369299933314854773001951217734500074739645839485613241246161373636663655247256536349394447829117926890921517410423884778361585197225151160562602888429845451929908066413028020675635265820171240376658747102454818861705809659357259411620212990784012260468031614622693391249775812567516715525507655647015889429972794929891513367687219691048682389056310984909138733487357533146820990806957486668594170704284442350945951480247941640644191093450360300739982461513934262222442926085822539259865639512951142579654224306117867368168356154281277076818812312365334573966011068774696802310206493014278106159621069741676952539489900753856694194253276394254705918104978905629773540275542810580143762968252192304979862540669171547476338527527648412371063675243323973496653867263987630670743612244210193309356114255456902548803627873580686612089737949375772710009134702154706613539379954686935982280096019777314782315949418071905585388094295388425444996764770953976536193187323289183671810217389336914483413287554726767506776118710206893238272255197892772961923190646615052471686310849589067848769895170299326061707969386497624068469197692320245964998834653234988894810256846001022131225048562709483965445335294512691503495876676963471360658372269942857009280371110409089241983627026410840920322666315521705317440182020195521253235182708559828591848370157290431075974281759098548441109281599032102211469360580071013734637975575627731086881537375313730357887914272557789097587900467695186475838928138866952419362363586252948616563986136337930920671677264376870588172760653188122150498364504290459287071109513295200214330267307964657632983455018273458758266886673101182831229738868663211232065513293230151820937160435027687688367786185151024280691112263246482283150335180637215619539174990018810153733393732293265522397680879134868526550276410637099370464371318733468373217821481660720503890214197958932672682814061257817879268957853065453387043262200195610081213291817724816330531880989645930089332839531275061306159929704499022119379258948703571120943471905225854085706230199279672837005974581724762451022345837465449853941207360456843975376014647088382556957733685692788295459021945354268913019215084208107944411159330745793766275685512193855151337871887871492484950944896776979829205702277471204151756049517848941261737920634101425889963909327246700029801726974852770095857585660762843318760182251549478108636212466189475278508165780089143164424826722956122710837489513025222114113951266077079998050889399296790000431290571729869761905781938773986800222931405752703653217709522117902383750090339079425206363700434881139601607800228538694225005341526509716242639883106076377392809670557072476800118105030270038989631211507741245607429641345891016499945802585412046772952126310131514799041185421553878566243161518835159379250764089420698772230437981266340531279341153065165488852139031487721678739809563633147846211756073114836882380215419470422918837646425140030327099928758618218590270750190278803901090309777875623543969507730088095980446625815464081345294045809102444019710204992446505264986244590251036906801377607661765308134659966284962878611548087596804780845785102191932532606332102910037611596969112229749793083299135863593555618687744467002069387938245972365924993741521760735121033322079968593176745942135092539500270431485905485194115148694969820255837755183761310482575917532839936046318365431014126508446075318020646335077440593793904664795707790283388037358540861689210420238467344944743830583791280464101245826291815410936533443913960720118601076894136446810038597565899301449883264350197011672957071570609317655085587574264590256283129163574587153204092038401251350260198831524445282203125107220525908524311328123744686914473560022868040785113113674338300200837950428423925480748789507687546330533333340761700148914648528564234606597725316718646534769660471789346957333241481595286946354502319961441323510366105486074244280549554037869443548726436897746595338373171051205958698454589072738595259973187891733553524058991567614888685462987573576786790105061610498771140890364478612205662896296576578044589473576521338611732763695367389205448063271792113973599059089578900330500995504893253459484232064074800665553878059786962364232158480573712403958609299794188751149296522918934720864412581104677811770029226521080152108457461118760167973549764999127878123526530518002849483102052018817699352757829984677118512776267178854942289460030118567492361142230043477528527072342766554623996261558484492381678068470994668048325056329014308917678945339306509012031918583259363726516379093386095231815483566926586655162865473271489331542734975680289883755432754805038506454705232076144929524853722507509275163476449821289869142100550846853699352077565762103274618228470983238251144716308629647371112983464265330126342200365090152983422201196064893861174663238601490647995653755275690354328439077282603798304520778427491845818003430575420033209396385389601976742754508500194339092850233120950470912943767941730025386445440468147291570331528075857100707491175992137145124111702703316713535509554082298859782239418920352908265581718743083656094423594695203526918445968589434690072557913057405228851105841217085045048907488280006387387188090467644002011500656272555964976204208352504620300673410414117518441339227786051223157153688872376706652070658636861576708930983949524525050148460641640091062286986648248326984580060741079671881821537191565659891479924379822386457711468468179823248991435721226810644838794450706366039230386530930938057805181125189436643561282513489518448145474513905552948466267300460705503026500505879063220390412235161228716809275962840699516149566515774528333739685827334621767975249116492320696054466358870153883489523484668316861870222856837915194042658577649609074000297787036520158556345939018257928789706200381025851021029555439418858577582180118541389671055596559411600058229175178019888753749763505104732286723724299069904940220301279374117507456491666900673223024272224693105606827245202755589231290527813066844362739082336004191112250210693674990313235546437125025201469209228827855051272376677197746352406837655171933460918569132397308570479210633849929603546553170197317588408042093940416785493913543792243874267839755159514084871029537001478477205033133910558316901153371215436626750642929367375608047897807682575864563729071247372000838097528978394082839106935551680553106816484423033552514093600538067438987822020905720069242121875332881195442581238414463231273096686923163584408509030217768579466897862940289989866134691112263884465519352363357241123494938849339457247492930881371769473267420008788378338113839200803584791890793529546267976148142259650404150341554749019028220529795977782815667115771466430997264265920959907196257818116093283231775574521943325962483053201697245789087803877647312266079968647550818452953520127828723479984829497313240276017994586260842515582283057725424323348304060631158552413725426457825763015727424310174027145506062336659701393403808767449249442751535218048408716153760436267606871627455166506880359289906399005484755763393304818213936356363281832791583330947721156315443082907759842573133381157399515404005092519531972358216404503544740593114439925735236493518686019305482848197670372064619726026837555884197226513210873046355122254800080547286672556777868947079136146091449443004574328002757552167598836702262265874385517934409666028353716059311416022142447186059765684671207208141690820756675239477563272878801780297482653067076794355713860730513986098838776741646153984376480292381057268534823708187509042535976162730593405392362274271777941814146841417901671652691971785544394035929956268345298863522282012473416700005459177110564645235469590821052378534710547791278129511169316259704263164448822795118982193526527947620963755505018430133822885451081601631989505885898785196886548106488058636144455531904071927953416300957916649748766002800509078810563862339417809842485717669118766825053993825703687235012702132758451967780553306151685444529768308897975009896900547265520442100255872839976400990648390178779852511284945605110284148723024432159670625454925710210184115306093962561292393540406625430413590643855021936969646410525970004908104496159986094835624481359359619223852289092687608363035894140912455190004432582215701451053068330995759808244580619883590736959334630286144174687163002712456153593403512544526935853655170006397401457782037403021806048955089579514184796638138033351065151693664787724367908159971575002795078967495865502486304568418897975044785758339564671337652087817975532776394521868166234363037621266603959778072058588596864428989314758245636495501559664924024011936062712843295414401462255095179743211428199085155115505255142897560700677392114868883094023537711006004708019659275881319229552018444892520019881191249821576140711451447871310862610025249994649394046519161663865134874904210381096200151705866449746190154182491964597118096107884156105310022441018875186554373431611179659660187255668919688412516433414299480229804985626331589047933038407905992728650376790853688009791098376396781682381003928251611773965865203003199705888169896743317580672780671208305109764547657611853195974689874521127943598541154536121736519295560907888098597897249225454698072257930499164895140932340443176261779412368344956909810969591402283733449864723484056561063634723735622915436806320167075098521982865104350265147933985610045912118303712987747492325747572546247982172790041491560777427199943500440356535162244377855044390604953787723105309790145509146322912917988662896271894953452331255355945388610534970251446761932890087691685829936879922947283803617999295988900413020470034688585344359499870862374271062169356345415814223184649558977595738129926901632151624289079610539727352273674530794036846439433502267153730036267859883003408637501999002140383268708836538067111995131403130640959451331101281987534854357619223446664270081883843234779422774167500501653621886676066339724366873312321304709165870329307032745387468924447405183299183058127085856493121512853365973322819076480563129255690161141966612603609944016481201018100276532979371189640641786493434152669980820388941677571527855211836914284804947393678082661509913480953910115715675265560992739131608934138294757103981273054318488523267256254279112346805635954207443468564812205214400128839801459725351567486218973687549684552059145468760679751073979034296759096591964923589287188716237825262820301392586935960118980167272789474576152023773262095934469144731745604376197642467815455046294752419427142850117553080820937686516790222837154071615395889415294548220864675810354911746559599356916724940938574466433259047760459125796165480995416019476723055723822476533240796125478754237252083927011985775050361192227394707046966683228407052347374178248604679267082408874001411511107674600933405758751688373633710625652799852104520007543288077680690228267102371046821410693916555736875949167433514605449033781646615373701756494151363207736038738149650227526428882238094887619486179844414855168507442733880051515710233832432541126358408035212967680180235349791500986962946380559767449786993250807901903416454985966517102091120377737342703845934270985901980175270720385474988070697664209596704527451024143804987304429408017577717639221253115745744821252781341792570364784956394050162373477163700515923939913400490827367553266272687718878049584903406113321614096961462217840968199233341914952573893389345581703744143313932959193199404805154555115424456716426174745379471473800852292451965978550260061626471241348121828253062895678851632351414001115691771347908661140147192471651794647992998356809125466399035322474232084396270577114990314958567485396921970515327467234867517203272109825585018015803313775477472305727887647877808465815701463476688865867464042128375860651391318712885837280190427860154108310297551914760639792827377237845127497261413656695395886941571328941320606910322304961580809684733424726503624140520273764822918875090508671326462523539650796683496343432545984645273897406836326617524930173453565638665254196846847112788045431616500520180817578890033058511205038137000371236314030156349874233756903408328714917194504931031823180546211935270854577451088188625551509997704086560104026540841167567464939588267850394093695422479353067313304124161243671841649646775747549833854549319879026442111859215081885451498026548364027753577800579879490024739620790800061094053708648639774256519877993189738360513079067778599013180644437811708991264563109764076939376791587457890103830446013200184564252676791441402802722951653224072582302220046143082873343935081695228126304459282592461695915038787204986087038135991235195730644246035310752311791103944651804251655965779941715136363176259433942210051384056008850954062596218205284129058933037938476176578226215075847518405912243197223304898452378054903154805150408695330086987735456341794174704903377628213844764648771450030903903837557443917879757399729165351028345505437770813707273447539462130107865903418726988264446066393489330230346662999632304636229109560908725177719032434648488414516897591151666533564453184480213831478084202588159036152873151350443454230499190695642927691509221167914632315300077174786412402989126975849736476431387009516029943285067426416079875647249334643159673629830882528058032850119032993117966372434588056152579078817305200611291346890430777857882882237601392892395134575121726527379598882197785752845798739326343549510831821300088420365090908092483237545660096781946482169884076372724076772892933191761594516007269462870734052465501545467960238722041841422337274683753670206000926519992026696514429224579528572933383276153820035148604244195561207500510408298786182022932140520382461106777693278455469223012336374728986365517598019976265405716131373766945998918351790426192239981822614941784898309851813238981040313446965376200052629744593993492913286386578511949725346457627852047530426336571993866425749919984805018021325909107033890071649971669944662263626539207784361788961008579900831989685852175542791094039951009643126432294642899883019785486511982998407849869950724720106563194085182915009670246515642862237555975127288873884987155381596176439154880407707823885413133314672770216462604425189392904836965091895500456714324348449045943166217232612648495863091267149482827378339968852958366828719316085744673930458777973153360508967841655183404797413650373788441374482214491074438928901119688672846490442542917992293108500412836867830441385328219629966268471588995059363625148565204144124712791793704543454502099389154637013269955065741655389592199254088569385271828120423074953721558675450329941322491040585350438252393135005701829478112605709901218449903008535939216095492569551920547278747379035403462282932548732936237682972572406290594021938302551010261228289866286009616442155991037446989222198426647913451395532377808518700182986767884198933593327386688762615250542527089338405513888199829907286664550554560693039475997482227491641046321128706695781840398905923694922949414101848617607822300704530003359436348277271338822611617158288407091305472155031326291621053172236719820117331335051959066481145276290475969094381707344514126549825794316392212769838975822732074569105205282385172380158925301251215463622622653386114866988601092199417785305692486492646869723217672317029852501470103105824124713437236658870585868113980398404778672339191093912742655156267056225813433845772688358521386845395269303250928054627850330710338559999496114304775991910782219791811055523757574319856222083827855671240112414171561909193794993031531381487196024981267968681603160296460513662108574573165683140852351015068403518256166741686324582798056522669853781634470989122812572506735268814308784166560553997539948389372775294483032396386860172249938212239673236648291432760043637491794261628628658635536298471098546705266355297607058576902164718588104937686487726310015893956279041006141942035913192712050751516612657424788421983343180931048954026109047022862510803418361549460641393270417743944890710963347077190959307389342837516352042155629696873160777754457418705284877695865635250267280445655073690452365498791000519676188199999885571870330084068102886885902780346114386533467612425499139429614866017503862861667246372185763977811880001203641884678480057053663268551534646136231875922077752566889388216742706029218856135955587726490369384996528213616300892564074294893617980448328559572904628402128671678234062128255236551057953636251558551542613145456131372729080958310446169447085602723808353200246703571388674550950915851038756098091267421011136884321464142277196681163268604534860833772275369508197762487229419830370110848022858896568210468036295488682925511166058024815787108662716664595967474283695523645572747426428805006709048530439574234847474298595861637055018118773536004862636664270959799604163552162927196298489622248948004280252707777326759785656994928549413440743472340983586284972477158133327890464615084216543939099607177609637638315434901916389710822568216919262332907577162951761550329586818358224305062166996920575846066107601832627431899364633217816122495008439233241383440448949938030907264658942921760444172139290294736860171920280434049561237021872039548348754317757401774718210695557392293787476261093946480045056564686342343821168301935822415252278172910848021343869740458435335133922012107981254764384018315450092258294166326013506789196461603845405454257594815125716221588115824421993317119746464466404554347404386132088980735728312852146044180427712036810441909014093795549823045502311349503230255353456072819034529904739939265436181405843929718943796413934950455214743801086495787628593538565316281534176453538946692409237102116168607280376794340167947522213594817878229135728956556304319831941965170995814433551395390424159352051183406694932172788563675532934033732357853246894570314388407474922077002445958524136222253276674592520254870296956790825320023651812304330180713441034505142014599312194036769974776762791491143658604459168417571312392288287086491862312686988274810024069929098917238673294493348565769362017978928426899583036871553294395517336755464462515785354689136008335342020331613339508656462007358919859188536373472055799516613714829495978114927013980531194636343122689888199150286882916496581813259869261534304284322621299544454490120907646197465756587030499329968876306389827355003336490702263594433666240383225964656613636507125882542979041443105292484435070624826679566781770114566008089362186599461895593669264130777700756871330684407198260870258761422035764677984111674168771188783654426817734301198946609249567731453716848453066093656277358726780865907043666421652344609791968258092473122566348231627149900027764757890392679690565458328603463680861276091166515659691144761644285545560968164322895350801866587925488943808764678155670742062448398280851809371134308395563252963172107047689365425063338163546443083442867338187580395745216308060952530040581740468895200780142810559105631494372938128892700631372001558722053215347298288191242459233777388545206675569157994365324647842096256661781714571422147038022361377437889206232121698692220026643299433143357839440598239516385778625050772923331822582392808600322461493406875548179723631240675767628534001339956444464175426527924743312393400340235506170854394754887107970114682018134995415529014538599294571756918064732466512123546286652723778058096375650684580853071381358197006724585729047056976895495829092022850815475385482279263533020030290083732368769628739706600040128838702700770882072239529541959774606906209616268508794038104016639636642938881106361032711457294276865027784142352212732746726090629802829792615935183628739786663907049351396944723740012760078080746189724474780253604819462715183239726207948074111116039351599108774828611225884552287646144094487604402192288252166645586202607865197211548057683700810334292257349153014282585500014694689115764996648821272974541128116402767753608127297352437281516120736360337769028348873463149772482495097435969803777193922993784431359273819105904643937591274604001230366396252517041225288278767171754427446914271987381338757361280436326103425277788346335346732306506014853441368293076693251707727248972996541043293372408498918704501483915534373814779778926106063334727576052709178909431528673334180804141669717108899149916642708245584054501208493029971832400611106256039008993663720046403552455552821057859852685918258543233751792569674613826423080293570111003273676105162320673514339356143541222460602907372866147716216218257562915425199258451232754589312978076635995381416015878068129365867903354821773942286879806939001388794314746605608163219049070388328165525950084106296251341866498700186923623059137383938213284298778726362469375156473262845046884219701858319454637966475094127028717043713677146362332391952387095103815255056901005316164041582809151492843012420193932053312595022963905438124008390216016219237459751890926730699829639591908279866088318751708908998157442094482048806017849665435945385290318686893395299383712691945260076106705577827858699340989130941159199061800371913994113817715279553274887912726352539448558317836231129579700361170933473221855209362869903370384414857713811929845029752752783908545461110985091951281573400003315794503200636387189100888890074372574958276695985591083621677788739414929811302121463567345416734058810826474803026773556363073546799206127576136037190865392741842453033498377665115976046658404110790428699114058975259569564695577796978342516957901010302817033430350142634525317489280104192075623800207906032912504659846344178712805491029348382248635674882998931076921607603232802123079016256404110328260341294824569149330757537449122854802383600804914568959743068705727060896610974487584055917409612190992046917483497777823265891837403804394993174300456135113047195710880119805694922125026399954944086140162521740411676585882038829634072526966741970872991584029748405411333381784979043109277941875161987053112050163941493435705188065355698440668396669363867763328998744890665681374477072112777258955274775747486622421307151066674811227440504421012010388067065088159359961518695002180898181994656808108613728135144566681069696865362991983777100802091131156269476047675997184810680669693690180722507477822833574912016119069716431100644726756561608525647700246820907424071562257752536945915224991791529988382793422519831870233462954149251158243732818046949483259254106795940238884681372522837933578765304059600351413443989409928325875560281808512674459952941456320004980055328178021122594488954639704528662853370476910172704163196396434488667648630768239046879218104879895674901575192071920315749699023928976382917968002172600000448728943048996540643355716800769530894731740305586690448750886217610926681876576311901166557495036459752721895401225508434747329383798350085156503164152663953210253993638457903734916350845738596409579621290591869598048277716338328075711137460438595856479944920463766972191206979117392032709781396512100639655260712208195010379843080916968513929947432156858909742677940028481155341590676852632847999246914710012698147339166115322234725250978153412902401471440436905796069290709526731749298889349292111764324948421430627552034604721828755608678297231632218407217906320888606377188759654062699195775614692605296560908870340824398371322175887541214441052684098999143224677421501544393078017118006077987587068875115525651736279497093217249900197175141396202413830361159471694169460008324038808298487763763431558816496387398733735174710143804535066006331811072485361698942931948660302783487948232024300693684658177802673499255076145550572305294034417410668163907112870558502953112515080795391246754997517721174070998876653615381674970240049974769659050222355652888524889936138645291500564872359407144617410122621737572955391364320751838937767175808033416009721039521426576719967623214242116108807274075506030238779050738556642764308202884181710356603884531727795251609836690713090696806885425253296951853976131753827759229713032526371984734140564198304252546666360601571454030161961758129378940461678714046508170906365624126385347489838798301555409163136723542090298690549663763963938843200313242808572251139461372290594032890861878375213710674951861853805009095765944373386354041852420337662289283601590179576132797755760165716396059634800300513279948853391091362635631847446603641114439065498112207377156644103714933813593113226634420618725365725413081100549314635538207399272353668662278659396879248304773064426326754401054142515885553769530257515545408714744865097340438335198461140801680438608033568663789366357705114016048712026099082024994605654531298718154300035243361371142384681843534250834373386486168591608772134284247507860143923034646721854398516468676020754369451615606643135333035161258031821608585682439939343129721232782988123291452794557961774478171683042808035816314893686618460690671418130751073242858694501272275306129071243449555652936643259938201900351423312285359006206852996171061753866437579957212817604156326215852026662635813776980621681920373626571455987997031042954190918575927999544867873970531263708012198093603557213350504704229294816699954385236666041341761407172802828739807696748378242824476362282852648174195564919363156424989903935498130472588801278044035809187920378538899548674181658538787735362300380204462618249716275258871546500347292133577336177160096382033369318799930917760096565795831715975353082489446583343532882220530242110137567720507530475364911501838817137510995608305580948547772987899537805041187251973119136014109608793820973244460559326644224277010416623549154881096556196554140867215765501840215185489685198980304841244418647490706262879722828978325347573970211533920364262745196649223709513752681606072896978437849646427731559155784634035732233422826732017941349263054314765024254187195352279691700758040974413454371309840223056777152408347644517646020136220530417263787281062643266599270328546497793038310712698292927619289462921527113852186726493180665816977303683725277892627041462544241449466805130342111134504318380244071488407121685621424453625874295437455121036922171713959711721442433033133334747038104376862466128305412487280059161625804669643571115271220111092493866783949252305144132067482108610569472331777373864370550538920303343796056219311806598343126043186299262096310201707253132336100569199690837509479800918729397850267245051526916995969903686423009224331922460915510474833267831739017882847479416920750360975410344722919103837928458632466222735252641293771169877540914813012627088999675376707565315433240463237080906592043634460837530129833698388974915370820090215478076665362039832925330497991882924152653226206759321186692062421228779433555435990912180050867432899539163784483352697692712161745793981160702858765182653646096751820387924275674775454527581058601871796175205009580006881939700206255634144401331642555189999965071600627577862696423273072102053501988531967820131030046790966424405403795665284271545736342392897039798235948210278945016374410258701785826860679590442459155839396383248970556966398260498803108560528034405185379963659428988680385372978954995481604915444814189475634976518090634403076382055053957122650180473987091145995528984607766260081121640086914838977143939490204986033976906394303742914319586983577304959822743450454887556688459522573978452401560869170323220977798980654626687624280786779374025964814052130165998213342294605266178727392186125318830758235944039371723574798356476413492810693287495448607238413527101998137585798915624393719735744779979537586907272418786575999915317780737489822953545498724118430485383953467647977272672889074282238143492743946782835769980876551590115231380576876198085137933783042287395201077797232475008358974491884034592542687459377733268641693458213195474872869833716115640392664859253502949684010946414387581034384597645671358665731859534091499996538533058424403042247990405578101659784332376153677758571533972444141557828359266948209681669278800121817033197774775756947268555971177919696822927994545879578974780876289184260878424901882216165731862492468398587718753073103575232496686222642701332789200762428424112584829280050674359341501505368880599253451229939613185439944454850296864240805261520836393004394545254427711724916256064783449029546406776375876994515013196983168065745928726710463180913068903606678104818472115306427343130776433092081061007599029900424955943808972747637118279304907332968348164819889159045078068050125033761792766335661652885009660455114080667351243836377164242805962866373764562192119237364809023898732466535343479083854302120821739630887201104963245536200973224785015369357703596893937847850958131919467914257015660962761571376055770887010923151286621063431325994795139127681481188723299552658388211054765901688646886068209177239130539085781457752033446022696592791129185926054804542047434665252819505696996804593186641335725860332564527540052174784847076592272150291523704393621668716861797474813346538103915545844360377480782346589451016034985127565356183303462998227712263023881406840661280081184111397200129408168511126104019504864042091563578157930736309752570551019438694622823538943008054805867105938152370916986412296758836163464387398943980030289303332396820334738259273531954323607455038562168057814538894193529635073450688345283560123852765819159066064415865920184526027442454938874957659081804113122117714430690973618546020273299570301576746167989521328627298018228601538777247596987186973167457921543713847319270236331737829384476277800434099052739859344667620740163755867959366032178572156424848514972338837695152132714139212967128660227487236869963018355412502483688988839403974014441678085761844747543911374122630075198110631918220709140108959793538486765085553885156348025199264087355919954626641835374170717877466396701485623236631650873324972650917724124978554944321504214621687317241251101164012189166848513608434467288890242119181896172421612962016849338398880515883281907539599219610484770000240045215315245455691060795164773961306653803920725183695012777015986453706209403131551686120284732392876537070740539854115835666491167581733780791842786010243989854322548623016714362694989451742545417682900478435067038938095527127751771762933195180623487935491849027609494682282722835310444952910584556965818180837550252757589067394027574769990394730217342759810938182859977325033581706611258983508382753401902604052657397440935582712542667190869850170707061730821768187298126624504323445582019023343531139530499025671849561685364375409619285538817914413954763933052103686528326902151874805209638397364772269836701674782916041847919585986062940784320197707956854925559674319007630675937478012013239421921242097205256897475654970370354511619338239100152922927280906472409222954023307574502526525886175756623376418912528820627035585785336420430808583745902372155095945278550307123776490667255534907600475158180612497989489835408395614798460004896889459606650285489354356183677024560019187852492415519334110149225184834465237905201580464017583167791335036284788853197586100187788728040677255136897994836942306499026485775500078449115311662692493592170442822313649740472024365328152614970914940046503799366803412214331871215801621075344702559421750544443338205934326220388278423577969191820995432523303523929738487839211360150337351673122881644380283367352730554128179954019130230709271992181584675654594591673698882936668087536151405178275614997497064496653915882426759649073237737035355917033901285291379364714836069517505759359437306307475387972790074579653019002512908044298133784779398337865456194645305721281222595484756753919061813739724021871821472932360060027902600142166353996159790427499977049678791168897628804253770384807370596913397753993260226261124002546540519146582421392407748355046737500645045727693376867638403474278512031825542564656682200720837262136661891030943574850338155468539996931282233164420705646467586085900943814709996866778339913715001047793424775941572259849894707925574040427917192598864111300980709882784695540046822483807725694334641841481725366857648565159784063359672793044704117204365470582188150365740969578096591321624259326845880042594864847374376380686685567729845570062337452939904342015107906736954167179157076146794202197235930027035423658952005982147801804136798383309535292035794075627813956971752929934545724289764442453668002144429311382178752650175850549507969903993295142663176414872810566693161318656677090550246623237581149114664244801457371833686006412843522560418666288601416609153878926130456836569237661843507506301041321279565003654948877636532048395107948134508749503747587387689480559742181400810041941133566595729427840327624827143156439693991800785069441617731144202976843850181425856288987278211562038296439325233658773059897529779521353631941364576462263352939406192119167312624849611494397940364743538969605044181309136134105636443144455556553580442413131880827359981115872140342706664139347258181800488649744643577841505204139363773639823152240454593076531466189851606330320275643691384485211642767937515517499074619126503179163401177450481421308703188712012781588128613064842968451812598965337656124921349973173963343018456013634808955786357010469266337845316058021800317641084262416155008021900163707208205426774650570127194190811317049834665336310938346347783673204090170540967405937629888854488672275367013637807850796690136883758541249748162441644270145140369373973328194028682525581129805974319043945271251407715560825190700570944156893571612008646799378910048658327200798631811489077011767370430854427536040492282770147229129144061852303456702493712295520513283943512994698155332557388788294358545913845066755394469093029744625768994896184776054470638579094401985289820565028911210820047790109403577178053339859063816280385455351494167557414099274270540896821314591513081564822322278284623597286026448551875719116465173528316336985301647483422149380486710538048739694204331743998096685801592765138334143559511789350316446758386935967767209026135798134771245130057473018950854166149463832360234148226646641724858321826374907366831921608248613732890690859150133685026080619999149603499764563299582451037953116982546120841024385624828926082129248204242145600981619778221300350186163524149882762250775545661249179929756826485168306139013918114532867596621048749917234515929370289975433569624191680924229721457556873025938354787563680155178505687694596726382887679402515266079400632665325062011149318116616303952640573381295587171823139774495140768485295325136311338621977799064327157982092110172709746280820464516741283640152750524643716692156555841458373812252108193225187413943806150807831656188698212218251810020542328407855530892656580229613223977404400776982829176602323305159847502414826429853643748788898953600229046619913208146532863745309549533983182272780605088296473968184050908471325508693639439309925231051363055370594154539949669464845297184285756093357421637848260229275687375353401028283343627820850260866256115543996551042909665308206246719486655996717570930008322530141587981054473776578934168261642553363803534564090698611225684040392515159118536135713774747566636878309660325196740084841982637264752696966702059449920185661463617711021628065562186841402217368517902726701843678206712605508443370768891585742315251654427322394185454425269082444921379075912279522511278517377973603612254220833699390305269611051205966132279608984151546232959877445962062101494985046199349006398963935663801832804366618029314702364176539601657352387184011154542517517905420434256667113323299338385906618775680594275760522240427970742455369164561818228927474974463271312366883725727859315503931860997958486844805390228530927836329337837417412001164554404021228078791579930467613137227775308057319401914579737874313829680558243186722392618107879741538009344945022622796013956951143123128269804082485685766769194191007127320916579999666693322047392469977873206214458742990091844327080996206792361224668567422005712821330904023240285040163788122690608333134054595643948913992877467608926317734092442794027654344580827709573268800618230827067353110802819583884879062754223736145184669232704051154657195610929138764694298064454693110406555635566830420517062965262450282264836498243271947073985222117463374891378604231831903760556176071241192066693023943432353897769245048299499297736236916351024689384592876551329774789812151392302031131100254737694333020496817236837675995916455101876110126235036790070025330552276241740425683081843470157285223935155819699415953530469274535375237448777197306049479798297102641133730576596853394719830855205909965340230102731903389387231345836801997400338241066600696019034055651854724384761809239644567401286632623688833680231386041129462657324036153744334608651869728028224331041391980989895329423344962031598425002247908216599130355268359697473070312646918350323102323493277336699320098527198850166967592185487127598607470858611891499584898794481905990756300938961790058554395661594855336425426174771345696818340405210048952545573756649602415048369829833817617207128340153304143922727826273304780749671068477349077964515491715942508761957351572281845372351974067543152273662331472397522898704329060272983520513039716732451385408807601455576601082801152726594239237061529407240197285325873644745001927452846677361539925107361579111810462261743057431572138264231250832889842720997692388522196470454052000323044187602974260188634328609943239700736337806176138327514973942552767802699298533573322875044982224270208226464718108045641719414238027756270179381017392897546333418251849034492156508507853669387973715392813496454766430419814772309927456782175957046077764879940583924783387297436997764575854509748509190531617059212196365450309394383314912546632543642731274876694284091228670001670162858573959616999657514975176504528637954044697099806353126800860233974503573253973420102689548116744172638086471165842276518456843369877553018403185147741826359115339485659232398411358662022325199237689858066124252067413463759110746246632678967664727790597938433186985931284457773425406334648703695052534041008287121409977117409131820771043637239998424718270097954325842264129860966926224790495775177848179238003161420844933330808753870019339099270879035311032966128664373199822307414775883621890262903810904017838224346344138617872430325909948045131750567260511055950717678990679022220630695520453277510935075503648645852839936887057962145564403837924038495323074271128102379881662525129466522922082743143872012456687652970546719011655212724022342517437748184924763633872333565092803313768361678042654944993955103354170792211061756070265572493187498743365448152303724377382112691805756276474260294023015238389887693259036986151674928609096907008516337792171707087235678963650708729050862602628866099062736975541796933501317833296363634918890039238290004085129412596760916479294404212373301935303411863132413381029271947921079485338606937624071361484396019459895115026186228170226803488322831709180492680265124049654768637849433764411903693027950825093876350294750547439165578746304802111624178544214290776972975373781724503438431028240676732573153600618136210559780612774237556859523803213349617370298760687745212684934184361750794723895097050016431534082650299278713448810350059551873011988615145614607645902217237647339797901629524866803626073263903850988236735801345334437494034632721191491192244304141178888644411230933189926028936551503037860498988703966756140510845012018373393093917456959033710106400604632503026676743314332665205804172441705384576389600692927412526385334781051442575397791048988571671881024504937871722044346682942033112995793437816081492706452455795194043538657392084020463156937757668867409958688234835862781166558932247559813967145589656117064291536437063506127765687229920973839431882431575127495247970000582742826597130440525027323023243998348886509556067444316291612209541269961898082303981208176351183323875063464174884604538204649692444951669089913790227571323824222926944349403125181804445696576901761130168779806528062989966676740555664422495287606880695942696238169266128544546403236758221274205647972548418973874021709561616151543038183357265776357747947047355356995869562542386564290094577133907783281476136831780864861585746715436621124237683194887852308532369914679762007951770029591699560346422102743019479550859680351596735987062558569104899841928210109448119254834371529985214769753430532658747300867439843057414298921052823527447988639594688588325795002537206045104049456866612050367576747288708242387964715783075361954745180613079766250995825795515643061424725603025451760903231729034639340954455662281751410099638183011699217510166776433967793011472413457121443431645821856017309338880099455938312279062279758522733504495912240050087326786079323583489949474851549932368350822089396586112135336899663839776481456958841702511095371590718830800249901638168866952831941371535936088543124131120187472534821373201500551240172745349192424779159589214237355830574769055655349674568225984155893639636139146630107266167802088107632762432069783063526700531932446662571667173237141398426664147449782367314117968718601440588744799853329339952294487408758821059570008950889457063824633982677735551002262099204104417278784872778553086162599154969584289263186423967256496459882835735621944722919907301823381754942140766496668724932052337465148905768988327088394624744095114509683394482801867548490818541183512942668737138195123033965586362285693884835802022095277873058745180786427460808372190872377860888183590917852485161101418019640769661102842174155395941008372435321721525681915618799897615243216354131242075551190999482608637949315786497489117340465627107598102057821324564276834626261084676333002260278195467166968265292679347058289014281368190500505485364659249367257252662633109072243143551879888662709677698752579887523221471198535132132332567575408127583488409191894635435481964169776924069655761265580591436708313222640451680008523804261147960633010499987099590809546127065078276771417029939592607859275147067356599729114407943254107257902841790225446949112169145297637041433051737926203988374481996757379048730101532958537659966803027186309056578139259177965025504343684478313967831841364727104336882449783874865793810531323728105702865170690475193074124356612278610830491105634091777817629677826404532887581870863050752722760530515275604301538602053020792603203848825572579169871745670291764580087795587975082687628296256544745299181058775602539358978188073406242741473215050677410662950891130700785229122948394297104589681761394204445017836279222167069261084416131795957583379395889758537025897523058322653417894989262992884248168996809842329425719793052952568042893800348709007339949389469863622407962777164062208842584644754159295109966245484998835926498368982422778085010535641949813555673421130857160058421695942762497965544220160968163028219033639375010879815110082554366059737531321747907282152415882014907003792815366403141728979007426108821875104023869635908717478785944590113544194094175992720043871909123886624508691168922980794969030918658244494781749308656659866166159859646263205873418290655680461274828710918066886104454128426540991017067697371966890454872640092695766526067082519674367728011032334617035706649665017737375598378030589565739960043049511819520541417005529277903813391975591165226815733486923127683582772271033780516901176780154390396948748467050881182855254127387806308532432246394539420958598530929202372032585263759561495341749001265724126078327099967461673366026269623569075114636749430775621235693467784421058693660036133348454742324393019102595120373852972134098863539357389038659066142432978420096528188989922321963230626038673396483463031730610782323223177250858452957331296581265988386948373837245985667393157403456370292242305660730891359736882437654022233786662458104228549600230647819114860210329560980579945762801784407725283335227129015825424644287827523863007715801430178629604196355559308566657026644553260101132910472645963535127207912890919681150348382826843488382252853947771733531312916540548443705457903763881175660775108850547213462247310467120577709179659957424492259550309764515245839186144645082968253129745705234965791184607322898436973500730166231832562019293267734235683404744308911922048156566767376708263275827423865868557662010568385684052724205959852524773286109336367790242306987628055590756254897872980653872760598578428219148622689812280352685899167399867008665244181823767688926671982320173294443563591126916388965473816102137273208921343613214539655160454548513542370391225090717356549752099629229612294067058683058559492308191724979792721469489701565153625245636203820097205611445731666984360869546492548528197834753812858528360116782520189661590524939458555448075070895533731646468412641426747688085366410468039876496021569103523101297488107718855932201763633513284961030070155815859517942832827470326608673542065779817021647334915881674527068780998215931763353562980134699791810352206362042115080161287254077121984106447977443143335881092842813025343496317933097498169980128962197214634107650359113424150298096245686375199541180130045399447203735229360829332681467331119571274220758983455796647258513916318354205269506429356225830082131404017703031940760930697820546789991141137719010501056705202038859950182589069839346177071090124631257848209987262766990498982448580641590202457625920410015195275589610353625483797307152963824276828123417770253560027183133228339265832161439348128754880590498323026430598836730048301860384703676439694064751904766934415411276646062482340771936599959818223411583389152627894823473861768449754255073657184699455316567342395302909294635156621222166170585681862839307045318616024008928410396808977362965824315486903998452474471152356121993923152905257688090716668216451984710775323921045692818067271295147041476551976664765758728370643360196275190928809713764872388230714174853769917116805961349335520042469279099720395075760054980556878565385456655638634894825942377006036941436133139477862257425304573676216793571777050771282085065962686362570151177577371151760756692148952777046765181368710785709085060888073414951529180308976985416743431412521734381585543059967522374212911724295109631771183255151340314373168397567021466739332147528902836645567072440410529407531710876487026444921016441669981422105566002653236192355272548364145336171509602185960226058098020209862482748486928810348512524961842708121630354872935423345173844571603159909020580072440010980037624902896100166985189973730823130010723330918249177787081567205091573650840758907291310582680297053618001133172321871273082441585097486244651374234880818869444573980604030903230169920066170346984817005801142301278061139563796471331753283536157021253399544259129717339885803511156812389125298162015160992615666611429770348840041679926875347172018995118530597159412644679351779967011402405729485547024642052440396799740659466637099324972556657540162611281600125403802408223118640818309307126963996874727486913298173716099709330821024361533986602585323164636817473889776913728424464104082210419048130234418751681957168853260131323078613090292206438147726935810711302844993334051033414173312761986340260556641329598535394953779946029830463913376159510597296125773489858392605043428936547021804308407197797974272044916956544795570536308644019376333231704228631990341551423286670534479669831589688796153890023447047950966965815200517926876587907294819197163180318309215467306180295271629623289434630740656931597919825313968101893081514168943523833992376885667723509822060074774850808684646403292230325507406416383409580539196143741968507749477334329110851549452831465080170290253316596990124209007390431783035089284030338337669268800352133318292275265905011449124388408125575223998173677722005701811586231506992461694702151136955834906673406317680062801067277836989937235724776097313965421754137419063237355887671717219255347783837398551205576695070275183020369143448709499467988620283215767278468014247879777475177994887034757692301026207602205052909411256942268358161394142899472840049152365330303806027087161570505371603210883504853918352986384040939741095017445487253593811324845274018134597296531658116874111637937275356217382831506840436139765028124415867071079859839723307729500306487976768547848153496263923695266878466265592208074296881001508291718803001004186273187311755132107132984811035728607966370798564349529277606627416089297023648025795221451158917283202531421916806245383436799092277737408733585292216951157190438350737072433364198959876583279793182086634296037857393249392510363780272167156479170087553946052449997945235771506837943628364636452445250193057044042785000769416680369626726177920390811691066046959254405478817932571389282841654905507778046153076045418384558755019198233114492502770374863533631290209683305864407179459762518040723773159569729272887029582066551765388544048501243899370650918380407782657077780289230324106802705079425285450721228052051335298892683548332882063435207492298195212690197269147376664185171257944171450670259362085476519858205252314475396184490650503621647001061370628761738570378343168010835158336993125897396968765279258094545236579894011064784885838818987791728416655001304072715292790735876207521142621997691899756172163212571186127113695252881973256823261996342906172386783641042040516589106306105511726197239149183458128940379870467420518252638482783176090589637463637090911129453868557079262737555265393453249686781511859288760391796015172561135296004654135511023370629207539555827132656871704309515416533877130052178791946414478063748072548993078558187314112031211898199491510528207528202683739375710254747527801656089827515599729814147339266393719492612508423502066452071419106094725214087115275860931517864254341056493392161135994434994399845411558195010915780058844078030951592936698367582491696786733781312274865559852305110889509548571825515423237388628598062905741135532570913051524537474589379077974548816705152721837111233496945020856384994800503287575560512819346727577902723693127068701350570609319985246132653641865423014936960753164785785474330242992915570275627705599323205621693995722520210618872723620794019799254535502896058052775795688768259887241773481530958756940639911937707142197109921645020255309985920508242036142524081019733970921806611606055657122953496379353932149310165710998836335899374918714521800111084861049033805738800429428934307341829036137712242314745512095699161522229566914848003335652631248562653358521771250581612571402608315366308937163381926169529652182148854916500384870703642450066072102210941504880218143544807927392543728282415490132815522139207667841378953422852734558929740123767798446449439026907062036955469392875262765681781814743093211208023963904067890049708336748665402859594421155951580694388684221912706552757328022294093832179556342043035039180088496248577187829422831202376798958818785981555506396364797922968144210224666276972329838829900354217646761347454397437954845585434328671729990259881761827113315531912999245677392749225029266944573437408490986590208936942072557944299712251888711220033479606157978452093503196230446557939049542485522633996596682185852375728812369845417836406339039779822616627746143807832346632205237971989090995242990604036961781239225659064716142147441186735641098935661779682218470187718747055294830880292702140373230969865591622097271913910354362412242096210814877249332871276684406229859005637644409433885166501601775382893621433932889845808748515304272999831200131201801770156009412164569664979462853222752454060544717170846244036057315116860203354069498436479519277018125944287866350837367838147435281765272465674007630415342095372841120840484573189535764729778420224489739091476435781527600914789479984108319020801362431235745358529347572051852299982914043778707474601608661895536185853332781515547868181136355798123389106245561659645942174892584418514250994913179070277949022509817575499134563526647467584294487318679785703619721286248414272521156316016853670835284449039303345992927821075237544919774618175285057226550581564429204405323675199965514660887236431651203850823734643718480143083764022308177140609006093671033185671680199966480221056309443048670693662116124365222605334885314276824312209828429257319037884721726721884588840977917022125989829224249021393848005387683502757293277452219834830754514177923954670683678604859001699229562925098906712080630376859707195205643155369603860472721238219327672337101046267172980812834207588160978395171268655336193227196543904690546114199452105603578658657179671235258154813398595650281371847697882822985040583648490193941536851889092982649583516511539362746736012974053621084675006620595533564581297863018564009305356234724820334106986096244335918948481244621082723870253019740739539005278197750323008166194997576103141572573623820472831734017768366678168192543295548483910354300975727561261127367781839679779384567930578234608568385823934020791815626545690337854445980155785970771227820110360806646634592095271374806275626629063188011429401795630216863868056962702487820428460813947537047040057084677959275419986428926828516579588452232490257648265350955616571361973224373941852498842931567654264981838394028605838428853648735296486828876631174300673056862350427757518081021800774197062279015525887738897013341193552917742342192364796578989703364512637457301913315066084142439660649819132739418162173219986882686925708237414701649248873243231247767366539965332487702233421349091836666109040986370234559100601329518011584030757643291424041289376918535909344301859448431356302495023024444534901367128290807691243019108585048212068441084344194199330927292122462317379422969427582404477118418814864705553138802248149093142482743708355735122347680398350005683314273510027317483914443999000158739741856391278498972437556208811864185330264076002792261777143819523343356078869950735088851551142958786427420169990491192142149150016301998716421038329440322212733174232154253226216446565470769927582429262950202714371337435250783954240911651603339939896391965670614830305080204923544676477601348394366400483135328041724554136199479943831945990442286820969701679448712040822424380179383411354326397988648060249799728875136267158680293462991945604672534416603268037655704499455129105600912610835443428525051961285317893385133476546622578951800825988261869437197917161108806378785529999576769828630908249278074147589661568913856074045729068899169665327175275897104097904088861950383475536690939778737709412147013025742142259125340433849566701556765361631280219552882352759762378690221597502300380878860876044439686711002605256437139771940864784218303527162446185415888416190620555832357221957428170101294246682035340875066882394575057958879067307022932294104095861656444955131263175650496160256655225564225314744171544376008954376652774358661847808613702607936600473566545831119662349497382686091456588995631422027802359764671423265921019764719461313705872050868095754633140021873003023194982019436367413469045243607652134596442116013404833707070864051846126077914173819474035012811547933809927841093771078774868191753900100355542900184056097579529470131300456960171354698195599791114705332857854684200446250753022786793539952504959856579456416590146930885158564573123420378239612433700958203134727812246696770542526089833870454022762448121264359334261459572620362055245685514579186207817781687567464489180811383364636249233534316290520290773139712511472053901732974082268289423938862759235563833097337352287634008444131846958050431037660398485116576850684227669062594718417691351377621659657296961022815922738379573061697310657784112683776514772593978386570015389794209922905413528818012272066751023195602002373517732948057263873505449928484218026611238355952848384494920081529806895660585049828148605678303603537697158075138426466530801230895819641466862056734419450479185155816307490962299395080868394317349224000940300198008022998394008681268974221168858547410265436977447914039135729933486480293017034325012937650841392278943357595704015970346920442101373770858928497561093834594461350369980686006468859539181976405849882685318941954623338874416190105904044907287971567382771172156822161308912891464943377125202621619737298539734977839536252158596483708035900671418255557800405684234984208894566851312060602501634402337518911795076719304801373249629768654888633961905205680315401128183706404131760503425819294191699592386994343896017116378713608851037868031789027705578403860172792038148131505255630174612324334400455081247479088243996923133745178020623215415664656592628670393089484562031365081567083463762615638280347249654586195328106552603928171320049232390979830116298487295067199864379053243148270839627423433099973039735124082513731362598797142073479462327589294297123763550814278838393869156193628195406326337289845818906156253970298504848433592797705474245437450348136722083172272520835995947625727382493748903101940366932456070916483145873973099832616707460819808362352017401600064245331208102882887587394086123132523142492814108331976695718047190099783133266240183366398556732654592920189560650877490379217210110743074540272582318101073339188348169075971617110965671563438121724757071081311489543873487928874609798237318792655795052910415723695038748812593101368913035602426890506528407766864932263184807008054617472281024343829361695096171615777073930349479049403027683577052930664293101593876779303076953999589171091147761252953735523265441407206196248740011528278360261799910260540922774435871255486555433825923524710851404897654611482651970912283717553988190422782163006302591578749962566142095415148556686203208284123899693566239409036585632043732019356282470088847648463481634010726979180551972837921060045285901779704737994138294464240978578082212949861190733535525211585770732285279535260687755467375051878207839588399133360769728146638103573949025251729894014195747777482962359373460768780789057897042187858391187181785035896747272246215769149486192592461889529515945072086819217988123763303043304041733437300512673192633586725294817833031493464047983517564107122813883347125492207895837495928376916093647445808770506716785564313158479455008394979677947641101303858949059007285756947348133918324838365905107082916804172871452190899438495807907560385831520085154043893571817559248000487231812277448371391340859000705397739385560612093679555924150976686391399620423872800962934304313120866363209698888627914493702314852119281907731983562926258552972315127401797793784349536979621092435928551752485561780011969516104079384582340254092978144850148544371013943541710174710096794786284207912647045738080360969839032829743844047148343676605446199395025810372828958533524365555853313734637411183892152899762121475618653814548879883699900121884624501675668844550407629166852293809448179491338635427190916575087344512562956764853567739907934056398053276150001881184244673783572763383628470377454553551639752469261714632268381423719202384736007268129167855162454204473136395436677046444029440785404689070047488300168479866947252852108443858303833499790695582403738969563714872074536003175991561385365432338164262750199484278454918273870271318148805051344442597180294144956530140276945867007972453382964049296995065751172574874499158412177607008476607030683783171938982087663599851657566258859993696271432275401911035555055430126227365231538799445422357110371327081781462720775542236297959221929582137593069187038520965996106348159696946527400634025406189219844214351961131289458608031065658578437752157097424837611814773010550187616852064026676154770040844319034469693427493647839064621863230941581027112037058613887873025048596617561452947587235530630248906978716445456916880005213658093480339148945140900646966511319242124870533830942130416006831611299618378961788842923352086101807711633612818631632484927833313929041006555072579033240080060616598796890886454482813916041764680832027132110924303740238255730974029373684430436477960513370429913458143361901378892580827177462843392034935248328682540754986014275803107482603012711595036319111773644240658306763525982897222172776008288617578020375936082827181844557926357702839438177331985412518149696676032729890590360857202824029156841534087557540307881002699323570145044729319156491920946955792095722480342849327271060626374516937350088733767623732940052069548256816769283399949502506533706990054136499739920085157286666189005579579604107066523377709758943010909248334340029847917363014067946110995237186797868648768646763263612506203298468545113133782973411250561043003779888627974386439570487752464380833935905121255306034505101646872573904113940314442131948025910479212313583424183402236369988288653380090879943007384993927627749509432742024959387180696460840232969251946961917502383884127286831320423185859580417204355778401226027236780370195432240979282025702814085509180626938244589820912186440579154453796584642698942704088312463688757627371126987606727432820765677346947733263597886073671450701386995295932958452020679029458926579990805937453649275469548893365720421977619713755904930977036817476075569151661588369791177135438255990255899671971950237334365515369794016925384771197431375406736983517238350780147180101187062643131439667488540727505419592766569001438281504398882431893964666995689266329946224428141092162590002788078620334392153875457702631256668137249714405411467748076884612600157682931552090848852774584374291346378858092223256182071121249545966670967647974292632043403357767033651002463214459445553085285911031979653206431303540284396094808153608060698241333443547115937732615817242860445253790462553066248291517607105631424693685882237946223229845767613230128016053015554559042179911237117756988297698794449565960802170291116957157628785912307542109966185059066643627090661095396711971726741024050229186359817061796161389465795316437265976103566197746707091024967012546848387978662831318911622728348181620800226329749658765961178169654967011278826694504979564274759933052095779768240083647111962828269603455796883719837126868240427764854185862941875415237661777557095511484117112640922277567110629758212766256640369623588964179612137632810786551643613056315576479490548364302986905150877522993836588299763902097431604530478663134002714734945147080525824589538713208027156687640564639720758453953313882069152780678616126061089561459948836108093976860624567406533133489689109454345036234179843736647210917508322575961107964127309303554119310726468033957032669892296615678113203195939912275270043526019580828511338860133698891875757280607264831216630452110719782171957541178564178466636406529257322759334359480345753720643131109142168300231175535158767047147895732800636613412489249619190808700503803844592053904110465733461317530770377308512001191861629788851515781763880411782094410264642698329377271738854200309758970931132877657911931956308270710446046246855564190659573471841335178269168704786108217095609105394964707884320349799057500874421631705776124185965993265278138261626334605856908006637415721374588007619980830265548238476431501164598893309061431519656341227055946142238543962986801486425413628617902639559649869747065304122513409878226132672332909239437147087922049822095370007219890458393355782252584455677145832649719900479873664514950837490175310632203542819276433739888924229343739337750482023222947229692220727641986490345717058372548785033786815994426161665042218578004711983980859639136100413973300725559995134807745292934806860954174487994839189378234729367635496051176593170322922078712582704410715722112932422792980309967835376277285815160748710267319307757320766876428015270728855890726153095174047823504238514047012390060362682735997960770771120384055934836153833022113957434542244199279765570529057078847280704722980894505475249382266751659441528889749361138248523374797614263047786855240523694163564024959635628695688320819522454848886863352711951729555664376485890253020163309514636489305826109089048163804749514862783824342728522886492799763066995354222817902811350789362785571860512029073714758947436879350416249135877144958673886245938098541473812383886255138932625210015863610134410898766673792596590904089959942521761461900220496744996705038023735367278175759844404174615199321787307874409496036285455306565341769735575864242656652720247004014256363048722927906744975791483359232962369028735343070519818957382425180717181908769111526424327682630043755628561984769708872130798571304168055324962534447908125435963813252295328526925786725333337779028098983999299002786386438500294134441165103478216060600507835710824490178184876897779194915888323008706964280778148007960555216335102509527121725476901688512183050572618724569196549891586495573556589069071197082336403386430691958797691651941548421368633088723863568008672063896978215640778981582440123492768201098441756962866142347061394691221606105369196486684590776012345655562532392256193690100090962928606763309730143875948026488604835792655138123019714799389841783312358330750988479466474773697133767973543493682883722137416732575452123222206043785508113529490583491244685873384295220810384250423104249160868333476264808045154704023742390368558297992125234691825246434101369959315306068322204622296778626027926471264922299431366808736374431732783218412277138142644970405648139598427090414221527070780998434934999315007927343851532792275292036699133177254512077573645764887685809790790041501933595431732359308798675929954299594181611470938508846527834943470251631037738739664941484354385806432391607958083903444126444148416928209542137795325113413813294668475203951967005271965501870156780517801761509270038313831011686173775407066790369714811688567118102715555465487894529461595699669883242626093929848528375490772242065056038058704121411135137299035258454627928918931446191630703625584123763494800695260920594173180639140456579783604151094001168715365158060393163348934258590442813266448250569660894812133546499842084305579399944312981442309779156646237920001441915348084530697908642862444367177479370923015240176295007597965520512154759171225243314561636071247367412556296916098207035321947423175977063297485216158975775885786614827831401460560584526409743496578763254052008796691839472060964394205438339281638022352370046846379017644317924312042856001050115318316232910875148562595376834789737237068024742709997736236217252004795968401125851851375030123094945872807123540916861592468615630180008214015450934055398894750999961895198651212690615467254670500587212750294258743809183029194521337624959409360296903230813166967790297701974204386676758804735457676349198122620729214718050620047387710246191102871392624284110326139973858200967825704873783574344727486606679225158948876747203925429383530202175327476024365186576928064188725458604936654162532840416940681236053200283394638747770743805735896651390084292339857619613235465084851448955388782369605369910960964998817681966766864762173269511549078355744564416329555446418412201427948045336298362748178306840271524681897326879818267444701823854110208880181683552454139082774170003895723869811802899257186707448508389986898568696886995360751011014954644642486586304450453669672178225142966789934103162882982646849863370773722093368385039886550181781097866468422932157341557008480500200479994001864788839625363113431405385028487251271503351707868230242825069276987340710829805726068032534692283495592667979671654386177920905550527177524860139786911410312099429515373245348622850550093791664522272225814102664627480832433340598480644144390090348830180157674613569477995970167497945515938734953051511574499172270601541696366727249874344832818375935732842753930693051961764604867327132323898731592496152645713265266611189566273713543848707477945992442866652043128483452613548076200281997516956123140418325294978379066539866631090549998806484931340329222010152296896868896768855791869173279864941694065381492523113913407276620305507090291168878058382090430223483691563334433680663613306769274033028531736054921690695421248773391273497355779869320644288037376729804447833004877238725765200767299801718643236801487545701607675948516574765742152102558388120306072931958332925109372219348034133253316152632028402905925352873603328402758600836926553178991363922569803812673564917287524974506116084705262099992051666027413671135286154483424654483903844367943850217737682960106370330815315637631311794810664255134513470389611087286289909359064882674809375381036390930664220335306225591911400786839515688754895746586426822689691136669575302243580623630995376185279374609762093782164787316603817243688318590695310150352323161964332228190039147795252631740754625140635729065319192366937229897216909269693695105068072230611518124855238501716971122644389356511725773261186966012442974793765735026235355957741205747354019870135437509990263536287367958960846049908566921319234877067267633258966616424390254536198277920639637563269761530145791743684123907439142967948196935209471819188931498311519484317100214270673020473399620702540420634954265523996162755633384514113686777238935478642524895723027781086517459872960689167554831156588385306192853396339704588965521371577416625214836866144231486301847321817211076459774235318077363697875103722188862161359764446915250182857142837878793654405013354745735617494582544099826959675568325517380212516106680929847852417648494485299923853120462617551733015147741174689077470708678664580092976580044216027137065124876840148847767489567460566847012333294481209761987253124463662731701060049510745153588762631669006815628194404462818307058668147263267258779989408756935831840070592634536705394751561206686205937844282599591283230778744427332106959943499164933120030154717564022720290725368094000772162764541912263354812352937422554949663294876982588610817167478501148203857857923663388517123558622043516095136023627550401811438674387660523659595626688763248249994023866979114998325183280316695666827839159037564548615157033245785164625874435055625259860516027342458026631010589578691883093139236307621582722768783352235527390560063002635653944566598459705660505128400414328637449645058096965777883788768714720954414823968244097174818086960772104754505172740619767053301512420408989107206191180239291784933333007835348590847199717381693491147680393022629801784560849811255419338496036101116252560611577573371614898854974296420753709615866109295479700920227334637518853237881128491045012791172689406694493261285592217028008391408469200771903602358876414544461352804871088232294076774872490625158976033691980164465712220664091391153846019054484982197021032510389189208544009643057569887343681268630264401270248318134425158370676118795034161782827449841486902976026202545938994500837454502430276025515860408189448010292806740923666965544115433309997311072190595428214725311966458173366360174886542034090350996983909679622581368197443913008783106689099658882791549999903277642045879354383018020044623819483992588203328158968888661029279366254918359282129673126204105210129499550628832169846491226094948126101648889762173783683509554764267746968098565785596255075254686934849530706759235780836661091115920259205417130490486287493923230269672653591057917425111182868102994556418564238304478831440434075575933941184959590163016287742813938861889252258945317516121849042721850262628986316361517900323681032258929797402569828202870974607777913107885857385945090730879479420064644011129548869435769007197422938689855531329913189387762100644359780922904745456576238441529295689208519966814497144564396865238304410630808956569491706273771280969064835386108192288671623093381198810694010192616070377375460764406174232498325631645387393013228141705707045511955808002515549884094715647126348672420465959480736195835031034334708586636955995629523434679859757604971827369780855593911384419644823327292042761317421993418491157974340109453437735394462781123059196980133384020161527164211491500262167669629649885234280515018872716420503718075443071134570333069263419074103789569691884526445563215545392748519068971572084009537875667578248381866719516409598504388923211026042621301446504226977194004443082012678667617101829494190920277512383838646063096902909183332009164172430124908664261812432200670722277989010230421233807431025436787243639783594314332498200984485420099811857349462511840325391149439523228424587580911700709963486894649070835224934511070320325769206595588515186568270863218510352470197722740017282536669950607014881579989876680184596084694022364871440487952481698245008262128751399255884399960010495295225100452622453101391039751743923188689847075657545029718490577152538888572226488525449682354887214276827436211495887919618537761403150778024707664935858104532326187844591046392059416287971910551169319896565879696775397813671686357424065346024236079835378921962391672172756860724164793687558815189836883534852278006616864534691529520107558119922579567082301197920164568557835266326581391746620369267630811248420823715598590807170909194660279832329947081401302395818534651251972455193087275843521413287414717137357087971842771274007581798956118823446426466415867854503986367073922518253006881267493413972838864277283592328001952217367640362956919678445960867896565772450912440085545839728208865551833675419007619069904456679602449583616301388017021047989519742969612110995077110137548876094023532693696391247944142795984484568160171615525810566647455234744956151388761095539064678601519855332544831764121685912943095432838394922037903063719675398828643194516409145828348076370131811447054328793325948759623803882712846359403066441902409659481240248305203774948860358606116027547100650841166093246272081110625099971875079839914472338249510023340527165424041579775450845972316148031000060769421698667179694752780127708241648759596960122523965447220185314746937782368648964288986059898128046871874204112366030698392815056757484295193020482917543392914349985162432497193436234412265204108429836287301175179085753992077172229306202668357422578369511020725947874724696065453412645796201809682536240540091933008683234642759863314729124796842461973251742251631220982559442479714009953519981170303599242968761990822724616907182122220821206025797461368217959814479742522025687363063675987548579851769614789892120459107950871283474778649041206626915674338503195661518577179851064995952246683813828770929097826979742459882520126696275601801360889033924170242321469396124135029389428226207074601076726397543643661362408673123150068641783462632556410757822000054095463445928728034418642312731230498882787700434209328532565842530173658656404308678210702387069905445244792980673519239704794511774490533138935715082195647622197201659902294146108555243727734295613662231849038621660721541798507308562918388694833306676518760228571652634203322751500104342258027499570384390763276117973862741986214662785316892263314854159517537754404574168396243984298926883542444084285091013133308448998423169648723483629017208348225371590305845467423173178727360253548130888634042594366337532643885120439879463483486863669932047284020428269171197547020377593053078962596910261821702888541507979779877965813689519841533007711711308911027790669105186131693676945115425700440796002800401295293054974097871407876033979589996511023191352195449331594388322705237440976222557159678387243786059652777805162098880614434739773260155925763073240413229744880864227767295082457924822184016375353554902984494112738328047999655179431961439329050489207428516544284646313364521389227128685331925305085731007659457059446281263494367823277944599027161274243035943681626899574822517266979382972477231910007775271476365092799440609031516170053161393181587772205927614514261096805549891651990200461947520117893900703872440199225573217097153140881249727938937241579004969696140471611532864789900153434413796130656700288905295644946408390660723512216942034304276805608936564589203919434734525268779805913492018117456461137029239730930069854405672729889219629824513035128295167523774611959778790896050536765824352861225500723002865403525241014891275669373202573323658182748699136954156065597634419996724076857858469764746721066540694261595499117769023339283702095685868820902957271454780181232265186645071645274129040571069690871216783079047766204779817534475686916493861073455644843392778822153423958623552054508096358743500412939083321670722926548534256970518668489359308295157903851280799915444682680125750042001290122077624694279709080869171600717303905707075467611688743948896026710742119049385311104179322126423395892926416298140189676919844248541062557820372959459818714640790778977103019901866556155833584388194769952609539000301817181784724666051163394839036605418151516042935279228944216569260861363853383860489991172042296490362228223757631509779549396968279317619598587065875181408804811622610844656402265065207810657133319208054902906651288388580959319408606223180876554899681290227235041211216585951020403120765673173768955523325823853866179863395817361699943558654451070535478888991835638805950688143026080568306957461321468067074497766059954637657828232232426144136407940009417462962864489875117971289160349180435290691994940394420656620437825678112366859664981867284137418755018684857025316228763550328863013489410780936721104448446282373979222074221994844086044812122930120016172999451818525374307021685629940127287590392729662208613431255258308368669599219954910154957771746271998503508452133250344844901977231254784735581425369004522151648287999529585769514869528317779945138503340540667748750379726785071578967839714781796495745558338411417391153900225199985493452930993795436483929018156233660813915614438296028716733797524293021162704905538673218865146973929451468612329616527644269265324569572088019178850580978574172987187531347817987917713743203509758259573097937537070259986266628012204560614861453494658888875055898540525827446500169838719121749935470210088883786768932722902144649216057617463449750022572592144715975904175459347254014347564306632360600378602668880872810186788359751803928080117364354447336165346543041411550255241173080967331364819098933711305804571137356378153480576336714733070068778816860327741319852071986028989295078382492002790994122367590620139197530130072852830116300712991620474143142163823981363096062433218641980700675099598905514787355161394466392177041052343262540603334494049429359512884317133918939415367187078228366531770022588728024109655826367516982800537464844928458135977673477449873128439559864462324113257586153988594947090898229285703064796950303207422307447969865872215362872027762595211033789104033391336492159546327030894625134699708573604340059681038533261160463873681803844120527387271361449457861639048636980293711723561288405969960542883269284962625201995919435764485186082827271702588041243443111944703732072544766471919106720809878028055878337285154215004389756698868558980070697192992255430530507227072658821815721057477326684831871867436470252324831722470926447270003826970326177339010951298671321105766832872320782653674825414352050236671975212927265713707675265582218519727575872713471486491135426097327898740153073468011676374118176363142307346987879750203897677600106163851857683976156120961975362350751271374564669800610963831656817297435876675820438089747994071205463782675572463058791559551056952377974628122885854193531079785836663895322967181556798869594853988508527538373927699674518094014027722149028365680485231150446186699864587002139321288650094978760971859496720270459043512144750888593345174850557349110654291907859005349273908094343978169601509994171840099979510409673449512642704627320880664303434002077377092786195910981886554897721029032537752075650699745904024718252849511090962725110350008234917308548814039434587880759034990383462615821521249991985849131955061971495583465001846414239522141666573454942049762757381804817856754466918749436449085441041042527497311362883338573835329321293354444328891936347766195566875899650398218213464623272302079280474937915994985757799677298880214804338627357627644243152972023129816596076798558906581068487907807673535864770389593648496305482342420495096221622537606691595820255202917058858255093014589645162157088057038914402888335650969241159862255817513731894662062603332033093222135949576852136847942215457683463336256100668852472097359458160541506390993784448037002066744525017226384154121471186642755045027519419632628290039706977767960001666934768412525803110573442501816062704473165539655872058468027528968437733391546576495810315982361137216585123975615636225789842406078033129347813016318640275341607172183592566803436055426622244727259028951964620395469013067383258536246767087558802090311147669136581053381538085297349899586090208109515378140746772519001260662314845115960466267351591953951631046353284882926807099646001647211184045322586666668418011281851914712155238455228055258245735595869682310403399746655857415991404727599281415539932660316611149863127586138469472931688255449664083171421583690027080869354191049614773394490318274578750174504589776308963399193687750326622753235280610938296347417475282661370152955920713198280445301405955886463703423999949870984911171826213060948349130365966804503330237718501141492649476138565948111397968171640072302037379598807769996581268223046613925592948302577881186197268762438575301972162759624616839401880282116137748846735090819234295322758643870155058141481106809367102023365733513811277011531167660177301560809453218545888521605933551870755838178485398768851325402033048519777780494059843422144166962454707392994572778291005155606172088495177999575992381060891805867090559225218849711351496971090517661618923281682866222776114017563700482669763971514155689023732759860443794949138758160459053806252378954634914716732522433112390763981243387626603715344615260756090326769794560706930306471629591010534695388232390828592826260348968867101261838103568247286652299719789185513937905416445631481667205491878685946904088767735062937995766670054084354832982642008033584831558437168816668796146518431021685972025808362502108370525113417103011652235049104239581433779965584314038597528326423483549948946115282476903862910177213623537859924631680415028739769745744385969345540043456012342705894158110101971180358815234965543972170104093134310247763869826680133860912429603055365545714708527238467862943833974968423815539064079637592898881995830389091967409013398780876363543321061604271567874613342087478920788588300929518776696965122393424416393202844549363380304891968596787344599004033394796793026580444770376903013445896511778734636981982472662952191676163160989297320744333197500847538651244045214551333494953350348882345665894305238882880385380328306992064643040442136153479856379953867112269065579074199826567310116262621072519142900007780653096238924194682578806826862240864241708666492165306834568220142508397065284121610613256729271066640782291707129440310785313840964919585164998708884662555541202231933767008147795269160598272443117755933454181989310240763136125272822729393248603339044970950782176604597647355257377186779965151566713093967946297935594571480891845056201623595532940870241582277564059213624826126966121642427329989001724682852386383658760606371376737794149518513138437182474694542794296874445563016676341724357291808951232944310042404726863989630121204793115274356441018920229755856174810297310989282782350897181096627690157046442483776917517217572481606666456699220399075498427011797829235249710630643288034903865049484141203133397891466344990319165878899876974862679430046420251137034872776280418220018810981369291778521688950705469409546094118904960277830604246259086595093666044321970268364117944164886979966184554562116816734845728049070543268873032277039114261121731330850208037199136535663531510947753684753904457048281872207156950216683762258792424477772975515443321270709366129697655594526652386080108081033061598022690825904750518142280853532439409817628296632485078501097511048159762981845065165563284656032512458848147825967489930855414208218483784513783442564957748149791703958420041407940366023659613449107444785129823302639316311101591005461656748269848353108081522414411613975446063472229346088251294263721271906313410465892102618768011410593754338050322742129132445371459939075106211323790473701761019239925143382279622611392242483556355220548854798442440928844690606673098984839199833000870373147843980409766901983037425890202864626673308290153746248844307544411519029174459851044514768871485326379295438003542431426406193073416057019729167924296847094348891792885225983167882376803284301244666696967792098908848605761128585609906082582233882433013946544695904227065964995340527934173183271938922872598640563367865026104444639115788487795776888890193902258356382254123033677716066756065462104986310306874243039982244965005643151600674193096031292625085569429159293236778231998659256715756605555015379038087779005082669682771369409031450460930595995233356963921929728198519052205964077618179326466825650643078181656045284997022534723160473479261007616447446126494039377799743148400478789518815378584897515390912793579903902289942484661421624514667144834916460047890933213826877994290240266054137281783946358914789469617861029145107809904216235965043074147645780721865601460234320579482592081289445115101064144647401627560208452120950086626108370891247085380728227506445820704101691145785024318295710862069588523463038188135419430311886519046978262761893430705573572289454841241167525995159484392798760327666235699572944583694037525268696123474400544833489086468441279735161161042097511601573597713061063996313207023472024088038506458072671311210334493525775685136514968117194873442998693384597585939712165416512749613052589271899781171653108512182162161018527992240142854361653701220988256834057492525598066349834615119570331396283958770449704461928709174569965526763202040782925911175785311825108147726223859162733812952330411857812395283834193150255543678632847081433306664967474599828018894504007927656919890389417345795494070566891784950478133718708664190304154837032118746104380594194009206910072637326316926230418749304042579382452568564089342685248810251150249082204690577139701299275226964604350189442178439611979657492783905388743766115983678263445941020280332091556063552941872431303964579436186227265430975818122362085064454726124676414864088785493504487372097293554427915005761284155779049409779318874507885768343890927223093719143546965310993036844490270436627098505151595791934829091019021249699471612094585538012574049485346239817101163819514730496632537930895585550244507680434970654508009094648491516928412073381811367959770531409743014036111021768274382918451780223478400214430109176523055923414591678288761966195988436538006932815367235345333356935804801412254053385283800499076479842743198611400124834085117223472933256622584006085269743821664788557355488103938992479148798781665362825697102241892146555265007470167553503647458090401546356551920469635730523648594013462363535360942014898221541233076055242711154058616923377354921625217572498404257435438784061817276709468037647724603810880292516278027252229123982694909660942230689259648814121385298814719851531408927787895286181716491399661178946754721028107186237583287458732733394773825205496055565448911456721892763036116982886673441263013915123675690537442906145726770277919091200072724246031006243229691173676253077931147964995258006505113276886345689540651653844584117295397426099718489902169715638161255896379371692540434240301015361171044543238295722566837084187560605550875975370083037465940760908204287746868119697001112269217116573038173540559246997831839419504833251431205698913544970972291152606669260828416009567578367184766063569521155777707374754757646772872933532008042462274274676468013239212962562735833159465183837821575176597429893276130455317917018765740555621412848189548899962196223818411658703645586402943150317801044661425070670958515923369036687699430548370713409043533846246140526692379467634227646080252501880973655811730243661989928163355545839581361504733391094437959731614588052930664560359809375775203351466924024001558879326942470815876655674848383475551562171397898284742385963126605520798405082597329361244644365862278982709341057800936866364173524864701537174636565963690878595054657959894160748714716476333571405727121354995216864484951145135431288390465608661162002920903732029766093515832778633326995129864627607941084673124146978300661973240719601720692992995195939140812296338585313201253392943188516183615630753221598828407154109339074753181147933069556157000891922678578124845576953635476363614550885546633111847646925906740738720876904020817021963448510935232128430240944090891686037744784854729254905313745010111995747934697205866778849931293644887971566217188175174392604961112421200262549913251306708137121282214018077939373487812314365067718107565117873474096489727655566179665545094197411257605294521351188135489219825235172926226302017749280337441237911246495145341868430436091984782115524332968478000377998163943625077509007132036467883613480067433521976217250908026476694556884743064241386247991801747239506932703404709929582832569949243879673417186907262230344637873608742222141605988483084337418343346708527963400423593742063281020301519610696800961936458421136094566051610415823938408436890178171679639043764808176743473233203587967653346754436068804142313291693305663475960128012655759314218355521938413485993891879378205402437815292635147269770541065859787969476676651975081382460907721259139210980340685314178852730427941464777235889198706866676781898363767853081220868410524045779993107370855949401335217544562913678180882118144513568181193166908003328396696106827431333737648523910359277074743253439083265642885155583782768660447512283087212965043429872835296523867937798355485711715339671123199320471865127023731978858593998642581315902490350151068453872424408060665730739273600010668285748408520217557179037134671023235682617148229933485960997141963007514882134468715605339811565375881291888670385499610781727671456979423860344962584128961304390678937590776088529785378820491748632962344691726363477218666226034910635595514146635865091021943325833368926959038400552261775082199205277221955932189737482150879322595197184842452980836419181280290871642169343162061457827348670421127460212011697002815391902343128581510323924468546271450841777261362862480759133642528597642025163126484764635381167710104156126968934899293999588042688582337721240502904207295990026622042678405167242483123582294386986643849114055013202441816717234919908234110208043464151238693406331881742001075710940322108417116006149357077848033632176312667949930785148824211230735849124641759688425547424067998870249287141089834566998466664709638303971972295398299668137884281467356446828193321494067364977651026140943479263074201392122812958375396752304496397414532176490308405788510677485772360255374590723283338734621603556856201362176849577969610417389560160555608571033973340948978547476191029018617128501986869663134548211096004934338590150396177590067071752281869152006231226725292469857220577087268666817406822523070127742830984028596745664746364541920718793926199187127299530448545491385287438992275878049058236770845234063731536285125743882490478791771411211756769784881176266520910464076483725427397414480761635260851146928552501280205749794926816790866660312396448339041997083501664436350952165117757797563967008741578682365365434460999217195505369479564058599757623932970896323804779418601035536882788216006339989742365985353074423446650732656550199868535851215179772089150377143939954103564094238089513375461450228535566478474836085384530841590941099381394652603398006410908912436579988580167869560394301176830350747159631107784625559134775188871923893514263161623754083179475397454847161369991346688138900291052821380522243158099831138286385056083880681798391092144778111656501999014482288732721390714826765669227198023081336247813336897035322431507752367694972756784675383661396430006046216120783005856856682194357782039907649510645316608762125723553649564762110053213814893895325344550692477382620966306303745149785474070065664487842185116310541331761929891519518188313853415384119322349824519768872811544858850556519458449635148033615479420164516009244868291610172158003776516928992237766218917348680861229517169090895766104830945619915941817410777305976723223053841067821724399702523112929326742159187313215826579401527665075228617441282971562229480051403757917491245658464813831100322042844531205481149259999798245017131586715399336958054820652578587598462375013575643388207955122616350665012707341212931318981609590466583197551172853886818579695746340788993945802351557438216145043073876279448085278839342272677524358245245900485481049720774921127462264674220199527075740428213890135841357561404861130495954941065156922938408169646289253240651837879376060489189235456624779002286473673099327391375548055543365783545539203899185192928441044814239440561381814669595104866721763068997697530550044242918152437970066749445967097668345506161927128552206394405095063236673249371027255996321143874332225640919383970242809412217817005806871699958510903187270517911113238177456948546958534649176037976296764340744440254623276460921194783094989137361054336411233598714190072562205320755083170769888576023992815658087263507884318797273470935842090991565166633181674033250242001857305448404998136277979421948946838555031720224875532214769299537649177393194143604978432005577159418138033467317569117080216350408101991108097487227336987339253793286440518496942946580890073503630580841378851500554142685412559206355044396891064508198317311180039626341007913090296830810787605421927983536967684399178310599820719353483198966615717199484532808910783352283821229749478369017350365054909551165147261356206975819726288264601702515936854257108470232323123175974890599635851878533326608435018643740025122328451885855478940310239199702603958007685943547362565702610129353676980286826974763585936983611851785281426385631285346531429474154199688511957333232136816384166004835925836446082677511129113381621520456385029661525484975320001574573918933145154162544506454188025375278259426074990363684181627054866685057917840730372708794772691084265764675208834316324767477728339624078969336257917500590419562385943064255749107647467581467226933722426385783891700957147112439779066700299095954765360205569605242650670431035089601711754659793222652012903421078963020130862309980850390961158044149567121043787075574104146395151892476212144372738649424276836062796432562507021549474140452087746221977654319840406609853245137788432225535389398940102180206621013355101533431700544550299484150402363386328002166921097513259650589436289099178107155877683060121505374093952531564184891293447217955733730715208583867797980254835356938781414106849324628067534341442504812916431450845684750379388527112897642786929963457712487347616463480800100542997423511054747877708981872243857081192142736337580459075323049195017433181152187241447888843994462975011291571674243968906017583469226195257063601184223719651373785053326134665609040332749285744180203225392078727297247982322611424120145764218304725437744939883786036202981908484768549843965472450974317408080328546663531037484947457205308342213378459664971025853974386189285482161806268610242093370873437661454370620928703709298423031358430857118572360172423685212713971774590271329309837342405134856612333119308715916359596142101418354555187133151698161101244658494359177907460145134163341867047452281251937875338160629305010278533270190055141472269203255836993077334109866847423672950967586086699054448631301432356254950866311969699842880950048233787974497790644436755554523817498455672709299867268532426526928880344285086536841223100620155997851617758534998229766553125759192067418463813787365650255254052292221850913367649298949340063675703696540442195543046925851639529794542350291585045927035726736790805104207742136339136890844324937058474821372525525789471325384478630948265432380243387092137533615635459030294953586709145847736820027533632417210191074760039899611930508076967046994516559013887238363620473633170248711739928959757075129760439400436209662096285386820950031514559825300508797067904396359607211338175815707448039971074929075924397947264883180597542415914983855792790344361276773267129329751218260760878131322628094451044509459719076218503561071419108684183277425951121222911048821142647958942322530351339312972157643973105757043303382668000676863012288388104302025961901858234114089392417660416504073783197104489129902473346229403584501084287178155819576743088853690086945300351936200608478153337540665948403074871163204293780670116174443116963115712950479939589025750746767882177998335327648899138336481272851658560825052058384183366704652977024128736056644692779127114087262124805009590838554112776666384577332739477565239273333722794057416878688562847947493810889570514662268466425488973177144525047048451177014184736661889655622142611429381280943899805035585354985084261507860290027696432827598587808346730792257972009824306458895388836017166436355205374736673289009429256582038320688912722027658483019324240908822883718347387398443671620567333428025177399492044914083907745859214297519422573486381308151499463879248647483766443843850268377675136143645239131179676322694977681627103914449326057305445318415073955795453279268098918362269671505110771165591668218473099130683995933196772913328206470308576035719433482403794476730884246935251212500206502235539683907184517210054399258590400861187356316261751665611297210653243743227919234324945425751021284158763803458516496267341342162365363836746598920218539056387505650070608276628020082096294112311001197557382078159302720807088635612696331351684873780782344907870773755417005663409015873462531053778170752182438391837549842512429564920516654555005944354722279448473431841844067295150138240032595151731327452450481833621651372525434266928361723175880426170169707582912636689643319306213778814818122619094000007551172440634123945040940455554369435944328750080692640951038617595481281396336879764631423239105466475056128200513011626564851052470512477253621452229134624902819027329220773369899998112950029079128953969841339437181598901294116703404967283133044520881815597083851450398572944282789405506867205895865476367463968236709009758357229982090837456402256363185332171276928899919476701870453033160857867326820381745809218780746546571829402469569076571587522576891112362631204852817309489906515694974766068651277319499233365842679654345030024087240828592809273457367503515907837150101732301657716880799001627356244912609177793527021031291772085602264066593439996431264590271037520973366055900436024892026854757068552616760490149276371779583433700885773242263469685997525101671721644550833043974754397548838103005603730059100057277191911297775444974297835736640173503675098703331391064440255916567442975338733668120996753736757313990605630297774961631225827960708639350635715530441066917792630276830728524115266618166361695784189753453380459476350159876536861183114395620835205890697930170161411186834616225282760140152936515062133597742081277942353796623104731386225106349681563784332322354865552275950990871912938210936219870730893377136855492116458286658842733431628062736545680571692304928839592184558112921063386259658722272935410267121831563489095716786669001360985781752520234124087400479454781802558879037608353365375482157104658403850330418471704501361495553592700137155939658771842686537856864609663682150824686667743995988543975665460687934117047819157647991340744285207090165728376169409682008010442347916942888277636774153235403749244357952838807316914222716772916821811941002014802053392930150283279112503921820753562738516521218270818090425449848169158498971602285375905852346500556842794079400664555188710895581915354171083473509915374330802992678732868520083850330019185077884902471098588553177300392129466206673271773203780082762991220031719968703035319978395718015257977857105778416407597257713033857598408268981480134370340225316466202104736755137662781999054701786095237857669299630379891273044369718344665054940252373358967761004567941994077512295968058375523676560161862891694125851521471585588968850137594661964776971062620417769712384151289446591144864626345406792405392430927745287914866788936401768358616575847954596845755646270160989427511682085272467211726301281600972231355795035386408229165830313655458497760970118569863533532186162458340191613626661383514517438409627411623900239539521924581223322711636395667174014464855054987425800489073780401563785315726731899020305948464396781867443603387703316302568748468790501620502681182433795363162362134107295959961621899304365487718074650308858269200363111188843311180788502800266120095982752402012199022875618328834349899565432480188022082225287337153019073653032786859151581853214145423824986794557331866008609299168698527586714819195190041765447077575174807447227488912051609032769679680172554109602407041757088021994485137423851901807480044373114385660578338962664501010252141569678605767977228211966480919956758464885703634884684651101423930582860969777679845994357307045069633820413450256944305494561741434397150557926434570790741485340518700789041214751864550598571325833165958090566100818481518225377883804361969179269152538724082826009909895044836714516255943231673126081187450103062179659563117599470596083913873206290840387301418202712888552395207538871607192885461475823706112553152904841779827104998321464944378008087733834066854846377957270988761247580562348840042151302260321778506243037403307960592152869387133484027259553362407664967407856902924144083170090503045589750956914260448213591027017927662735985165045313655730907245301949463635988610511518365603485271877344177496051644856145478247338128312467652151450544075920058286530053980829112045364029713171293586903875594563165204779551688362507233082942832064639916566498915311950020579555996280052197835584863644404069580223097189228328953507347949971284879883308474703752386779196633706714006422490950638934795724353544357132641700046790978875628837414500168213784293377726933588332844174897603538420929103911864468436509426294544724518848432648775599765723167070209083744111859610278540571963772199037133816068896903285341268061163900274893516168779789669667134811230804154194744322124213872505584339854866082124602079641484104213685809941752627620368669705016800431655834858725856046782500606761342526837302861795340715235078315808523369648875097118331238246678248521281533957093423037411577343882190788144348534947047898859700566706971770385566465862480211360160400491369859608076950588148059489873656933142248060400301149242998950648954582698977586256649215346166412619034669505622380230866943465730857503361857687703048764386875903898920578811803918006227425991506548033705003245839217520847652222352170771716872543102577576956594224292388410291873925954900224176511835641411673962068952895893401574084677088023963049639574244016691384339817773440329551381217129350665143359500574710938387197108778567133107262608814089937524849760574469226885992269529716141524592096475851376797821571006409963100576815543310170041376518441292402242113953457424025411809402326572294347430649334627941213479575887071796828138981415763941693677821695303928314365436293519397710676464439796484816128346705317741224487282311372542285173199204529251016192478050903750789423674456931006267555373144166474974287428974826166721275777640814073872516595508537111555651325444418662152233424758052483937920224045927711421668534015117725025122918211127165540409504710828149246470439492600874336164929431677191751685504738316429463567047842510775821263592465522901908236307571763381023666204062553449322722181742643716552262532019762990321484943023981648877980623147826203376480623163336835865248690756490887560747266867542031297083158056519908826697708709178687433056013513666021247468018793576636913449713066020785551467431951557508828991148178778414881919864358224092791795450506831613810794127289400952676620407291069825739465757745085024978227840942435918371635809857080638547500822547872129360207081946443587091956218492609536571155806946455573559554154318283029819248206408273259889903403189991223273875591962117932099483487828804771680625658511663141843781301458311970317528814771080265474967468555226057119101245500125903409432839846362565981789559547629455319303953529896522810574892683283381626926455534665354574890692636589851690691771625975888760563873808131432223578737187862191291218360587052913878462478624710298547193583370108132678620363576548449086921778363403171412632486841360670247709084440324418608952008915552101412797297744014552128654189888836871499047142096288293550540437145574531687147963772312629439346685886068913845043746676023125466456888566986600569543260819134234102798582394235409758464863958869338812333442118666154341996585442749537853526084043794694964504578153869297349387003337180889800143761392711430954863594443882645490905651907213231667676381950233794309837873958068548303733605508965508871720658485869306126871556267560712441144849973445927753266059265085636783797815415300523211987979853012103822494141176047154852435850036528553522447861567841147605106863374486894737748036036229850156620154218429989810805656588713354109285723018432580618741683670127442736330926278571502427213055177502701437235314061252606522753803191335866264480192846190365059622480479596539755663158360728505997839628720651529005858308392565449419527201513078108363780701398777257727801246838617705456352926825908046148163132545966761171478538497665640237066342209412924900410775745466391980799863088079748110739801162499197499640778559165871074063061947857160587981889800288518100792616493337833820352871947825767595424522194998616725037317400320844874485643305779003209321497062105518107253817591898464937601068993637194942070917019966765393698368884599689349182985603303190535291713537346057986470969069424411176388086536937067481692404805957634643904364488001402149750154987452742344875892786812857058201634346224298462677814641885490457553448724721974005479235005126201849527186930978289378027837530709894992490034378644389804741733260352428721804760470128486543873526240403602054056828374977169154150131904876908718691118038474240865596298809882815915639670116448878214527360935069104361316294091004609577144996175423142035020615653863798260791067355733179324214975397299423751467232096557052976749425261132085677536683703933330944645150112824973320161231741037243835449488861490534971431235435734221219898625354185818829565611183900774373316105789251982735544472712365753770467564846089148219460370886751844392305925018590392699941840464099534425408234242362742060337303977262312919673664985292929871819119393206241087890263443329598972517907558704522062436308179427024203941031638597988977367543755887221039169174454140100222369092583180732226181861726249636958362945861425561198495660146329645773124592777630923854745031857660984884217934356842932993086686721079540190154993401071731353268464707426742981717606511905658107722740250898852754363367542137166029610836409180546222475528972189813798427375121143415032154732419778138784121113744818397390310144171663348391753257278831914104646831331451027882263905437659956249237485436457583386817494124173147741771135779551714142070253366244865605741338466946835119855950487906461245915100323071561182724757135701216025452932673299259911213794087780830277272864238228556660609470105453727182868360435328475119394796972951417519059204876289587740219748965370998137568045003287418378621565419719566079158204744248899678529420191687885751325023190852900600775289057409639407716243848399807091098399484309623928364723209991314295944492770030641098587089505889139907769092034417531535414693996677610311833576551387749219402812340896746107814774960949183243538260704116064683856162124963165010739169790869273740402584746349373490090313289901477442433364696391433351283353611328916354926765969884721974808400152383807292182748564374415532247156562385096036821351278488594738355136426430766078713984486546963503133454983126205576223741841640817651063421036173223825628378317753331909311439658552135460151541996037619329320188062858992804380652953994783164676786274200752279797306716600359127325367240560793962010601001407314094885665985941204603832610614993850838329013661397621427823475777264615160597117319070810022079357287073776997126347836291777697939868015225284103993788605499324165742240428094534017657207663877056646438408895567928783678441321136781957052663014310813870718604482488086320949564801203870131197632243406242109763887566114685717809300955650929783418270394111691159937969895216612479856189268484865731330256724911311825278162633614584560194700172468459515703847683227597556592274572959572694833414494091624115415345446057418356853065776371773448969576781743311866884761806320417027551015977359465616079227106453564691049792975124509274130075693060615104772659179445540904901245013064250892798069140571800671214442406330909795466206161615013156440463092039256300585846812455114291876877614870107187725909215248378438832562289761921763489383722029353519069786012886541457508426439034435533044920705180947714848000533019845413294085387673694090968718592274499741567826611007258011945161097063641508912724710240196576538641946254241929784053887261466766537203505354430728318890874489717606906708741930068365012648345438204736942814275988091434553968814903369316879823822992996145815138565330170074580689034844373231883765756049119856469477339596391175899095658072049928620832385009936109215865577606876753758080043800080671428285667622109316726317323394919497879287540502943088249216267786834957861443997927427358880699570182749760404246979032968962776951128080227794787586876827837651499943944752537427046512529360379945023483827701445523214261169182682646163701552374985948571985928465821367927606095105483672902302886601923008983388782984021969773644251530275192801714238390966725084484156787569179165624729136726960597234119657183171290629015851810070084619006028340203593545245924425273829066590544882164822079820600706193163946950947491648157853520468315011156953433424990411275057079672969367430902867125802483537628361034318982048134649010379941678063551498244198696778824159955439341157996610414784271188715375101810001247523817107705834847695780193148927161076459129024377487013634427236799179658955802123760080574734967073347971279865784637923496088126554354919907928670896941631100538453801570361035355930420507448978109434187558938345133055020003488681898680096754796250876361440857989042475123793059191642761692032625537026810596298519681616148446526653689613119701615093203288926945955478346941297430648444265319282393170224908601681316201415370057964047129782043428166665078615101659355576214175996384727348679163102182019445449862534246806669081028915712209522904132097058552143566115280724722164214921321217772790986899028447661077735614096582998805465902119441811180764980903798993190562482381583021479847412006211179066965128140122521065806610765315202813462522655145140172762202320548072635103869201716723087473063920391730496423046927244202142470398277896130273466961400847622682001481768134773605465345519104823933666390477961986892497207780182454825743115225365813546590915036653126843329390412544384928900662924573726533298229691413235331988378699485896253650990287382817954056357472409099884604871177620573863360501805822372753995416716056397062107480504878251125353968865268610386365317792443244399417945440651609041383373779944080800043006727240010437844115692545767124047825693096204359584485105570329218847329592668630455173994622633185571793271444417300762957123744245567504730373271694532144358839396156162575111050877801604554594679071200834620811444127581090267813243024275081958028961425426557268041012164267229136544300826725594885684449091707639962368152665299636883183332456248415184401408204068933280827943783285761989493894674738951459472523766023443215731658558835891950597946681341086010227683100783997496695304821967773127705766962100699489454723445342284040142788810564974731231421842030160955406428609493957377584357526412679929860197966576220196723990563923952051670082785725422014279949656687823115025449783231942585061014639215531455987068748074902207384593082901891506219460491728632654518466780550898763430074156686297841267205068737005135466205250262430258390524039516011247058155634722458763919178199329927286025545584792630729293386822619366940945683431278740536442494771472801497396042563076119324037158086234502216115612905913654405195934405958573361434765191370324644465850095037481076472497271372264952815836890204812573228755238015792972404765512770439900737008511162692253504548328942473117146455335937959663292669646631937358262280516504893471236693057983650033666051673656087906707485793528623114094999072628363214501034840102236342187795945824974690008416660025548259370357353232886320150160170303904704743411221399756686534421037998340200505483078052043033373884586674423055987435806215456545287153965100623721599310772088980057572314526526925380474797048301891397378071976953109512831762727537207197412942513649462025388672514718135703542468754315895264428334693204811808604100671520569988691927573115865674643939250574362225871728419833715456253774554639340968959610279189349225157933130150662456537283670758704729710835795868195261505771499930144622588326015499429292650680273107430741672532350205547431624783502015562466038435503872984011770528864494190603808799041434840958511915185431387102115043617669493541706798373908301620850093484579055777233513575891646389563065910575669543264882077476952619217940273028550939718040334431962291203038647107387751803518400299653659358160331371144214692280086082752380815624257798572282653072216916324285560435224520216667968908687807200872441460250147447516588965477748990366719690888686992763060838946315363237788644630463340992383454053073957415754882134549938886332434931540828190884251786173959333794700115983649740098556405836463182917957888676939285568988861508966039678956599428135871423837294922399861610784928986109201809604614130754989891907604852190525731001759338644484536649720369273695451398755115925891287333381723621673616338328812298604974201271203680518009430737257610504992071360739021362157685561985963011285485473658752302900992322276608295805065252538201376549954095336172245267045329232865624927769927789249802045726333658274472089250829587997740941239994055719509092627468576596260217621172605278408616890201452085996502794188715677967978385484750253019404007930213010832552405160922339331336933366096927740251694746943255836957211149972817724122591959478282768886320847504629702740224181049881406480482715277718373838188813231548690173448238358920420908586752353538512955616556661476735582429480451375159993531988223544678871733960284287192094776449148492498575420180424932044434819043781078913741214920624234407976104031758330305946126429192396859855372126817980956432588853857610396826854655825838606222953073567267326499426412461881227911902895995304723149145019000995325289838228281320319120150736255215808559251844559764836491017618913832890699309405055925931789133109341340972640033939131994771201790412133933388457184250151255322817966758914989393927455915997900163380675634684909702925839429775660166470536564010489196623881187719109972840858554300926687105563841491759303768985458965092294559803489447805633341135702505131461489790996564015386309441165137768558559703133288411592153170928489804032160345742028814346900707483626320822370557083620471977581744459836008406542402558100094433452256488681889218743097281814487055427415276812242368844565824166786293361618276514045579244789092217732176155717703051918461028037800381969967017875489023961392842816219415768382390476030937610927319823141607071264425508853928979054417353307629337690062444164172970442722331626496739324026340706931607854976040299841297199738175127940639356561268594958733658229793097154822008624904437197566360141597084126656292893101103950364284890955856132923862901808015650159716330499135278076054027146227210171601478193322323505704121261269028649425971148932982438871721979489355637792650010863323533730772578713659743749901387151011835732830974734928236300602719367612176153775167333871477077323199345103388514682156631341707015149420754969317494699793550202692135219856017624792987654590314157904994019108478968799404406357736206471901665606991242230615586014778926319207744767647659705150449956433003279545089303122646533614674080377254900183863512774297004894017847949266425163708747364897570067663146860997527149438459372901408259127768659728408806890410531160452789116150712851600683907848032622388260337710773484277665605651907341960923789101869337385357786537912799362879755920874369450469584151237233334748406374948249462548315556957979079985596525155131568342246914672482198984091409394981551958645094931716228972519065944184850414243957520629525530035948021704954593769583631009607246256593714803778542969082761441221460499734937415124361586606190425151026376974439360812265724139915573509616670489410565790659409028455733861153150334090967847105960317605031240041657940752982485763343563339337712877710870815212164152589012301585487897809279150969782456348936355937934644853447673968755856834335188269037454616196908214352562443813944187824226995475379869356237587866155629808373946072862137175439306188249274857601826723557658802138891402745664922074963970218155793863238622039240883253108926375830670401378886706483293319454016156313253330717012918022673529608319185643768055107121098174012357278414984150051165446685019384916595744199823120578931841818355015986530834765765695353440778131912871752103717907214972555021005657283392551850096571863655859249431829541910501473854237324602751032103129083557857139356567346340988909321261188961710618980689108001349929131787701510906324079993987387716601698364734852279898436900599665572010621592531395837750457557992108418901362198703483040375262707666438637752295649606416447856048606375626940348768817638193422891484258465550313310039195692268561916774351069837368474969279057326043462538349089637755956994412003964797712766974673004331139559819344725717719147395460260806667838604855143176947317314313445194810330022821436566474964761584584600177058758515075126156374357336981902518452752401923717272503679786624070661205614473667417219506093225931879426062074676559557082399743332855641552686852179415792062583093150516011718314613751715826929883184589163722612686502090015154301201678980829885612629635018309664485219040953142564749569692890877412542894376293555772003992609140604545205570745787429910311810889561784505254707432092814842278670962529868232150787094697775161242630502257989667372809046244224559629195720353569852280684959980229358052421285373828154253952474545925582081555872099669174047794054460733620667463310570577295501873448980360251776812709001469379108297902389137058553979003955941510414853440303536180622675011602147062280716970796407248842946337202875056863135080874311053827055602934252342892286434834895365842205734113908148606659471582069068393814152359028832856788318510170170284960508825015379185839890559164133591862760649384473883875579653488648419259459703838440271615684292776312582516839232655258992731012514086244909146819475393963444178314246576229410145221216273940594679203869591809389816796311310161981912679820952966205374394864319360578992998006754624100055034969437435060942380134395987051831752549880716802757246617722088345313626041999389197218632094266661843335199026733842190216600206514708503849176509117278465436096262078317175255395428997358939973387066763650229369489255972518373678450264754342542080907118980423899421277413048274807342998839410075817637290690693482365666464190637143942579556586665879405197512316004414671697665474676902710276712443001197433990411538755922688536410787745670507405677565036563083128002867639625207421184210782743937571711629272892400490248080101822352454081627075256581392071994803407859134716277661092568587937137694968294177792004605396222175476908947674912946758422977318376106503164784365457495499370398256588325563669502508592642093165295968811993473877662039565230866121270433476403966655230654358370146688874149761474817542777940212680912048759075033100502298186104326837064376659668245011673697162372579900833997762176539376374048073569313786467228228665451658438324744086324154535564138091858555907460394944585267461306988087150929037798110624326596109789028759879371322770292967563986776807464100272546052929494039252828901373026128322623382054640289496795421750662932735309672871022381169754317726107498707443929241248974930774796242917744720795396349511013021237982232911937703252371709631045856373224590114688078044091858453428112467724108894812605734211508046932158831873556328865085421254550182504484958261105293739510487469815581217601358752945741038476201070403312102043421077713502533439313897045195935042377823490288027044809226947801149756921847768948461607785323495162430231430869859388496171484753475897038393151178845405596734891940392895496451208368487989550895410395322303100744846788596263668918413926218619172225892852215511517635804121219306166470187597384410336566548406270110781515827215605906708849468130107239408706867549415099697963019503288079217804769910707560006213351824497316607597937463702477941120225091406769066864861794658727194906557345250252818823316776676824803493909948054003262016217721069603792888875272978855734607612667406717658899879713721747325633130601586568149488737694327850371488481918943493869167125874806846631826258125661845138082057546603720565778182470010684325978040583017774473127398952959711565224716059795945498721286727906857961751288175506516045831016723532635984172098288798407686937426802032457481502914673535991794537925592215454287548364068085050491784883977006692590295849417032651383298404461791045255326702545489538896895309469137343269953940935091020348432601668841992514580914894826378574731450578201898619110931141103509365938948598483099408178334904686849859748712525989620472377918198186089906524264970326615367055596795578456068098951109886254090705468033461534718358610086503502454009152241889804912642830248152082505051279270519907720583174683465701646527541040499363230302168655426894481494641403722822490282436688201066685025032178283675560084774493993852584150370452292799205345158175104391153494662330659916903768606151061822429828563888891755168451737535202716674508991805521679579762752185780614056683623418317622003301988797422281611291157258452256884353730826007411135947687077091095412638692538586676878221245348772810705867016780047889221617054966217289089064597733765128268490677861709855522745127643005656005442155011510702506857859289991778373580410474544522323563516746048420788343251164935354178219128445874381806058821682601752983473612187074793963517099935457743929116512833063442417841901011546207450720134984205247846296492066716495398005780306052407637907834972722842324903705389823675872077771095368442498584852793612529858069958931058000295330830189519865868566117328468617449630697337823553058030129374906040007301658881524892717213520835162617297720905385107478191928047940980240744582103849788039227948800319176211155067027448989875253010799069206490291897201739602025641412866581715858625532584143963902452801007810287755156595906676407916739873171289469693465230450175595659382125591265107943898259168861428038715128591435343963015418594762191718864000432425150482972220677589664832209122696299960367305670117743648170250858550486458968710366092875013593028988279299085703435828968815053980453454016936529002277291256943670036935298143072921047723008441909104901518529861152293614793312220482632110602838472510193527533441383294027393567974946129851181827146451619108074606935304438494696101909824155480522067164348257513045129215976546528521675671744243175083713410168961352337129563968603414599446937759334345968318186634010602787450248061921255992550697507724553642987877785820712014613466815854241391727859628220184950030939624428948761048698474854323961153724050919049978530194275311447187477456527533211464697805010862922429764032717658860662290947285356000990229911094644149267902231658871096214792546675622829606232313702452316030246366781522887838040267169522209671968792621331825546466367181462849400514332646920426301052275137936772287516143265820340454710894527626410582343766639141182144782648872299004625191022878185452808355942719713236313191728646430083563785968354203965820730672659844849788365334445215811384221624659736225884956855265687787705938049487611545195739101295018626087796257027099211728645787352323614158388507071977905119335663050099174528569197991703629186548659754104282177187708160913915176031433979001118917326559070676996334221169984489628867575838180081376541808472313671922693788489380487573970986501533192522510973637121811086256075568459513545520003101491682800735543136988076961874428013894242497555825527327950848471857466056310289845271387385650142787012014893493234927792106090251397094205163797543974999090028389786379456016214396088129487077779482794570206525192014921988241946060839001397026244493389572325939858205583238697865357728120843755423205261463548774140943701200147302699165973927183826568629292805932213482413730544707880903482202731165371072349454991003369359975321742423720012014505500784241169399988671609605913658071069507975743778750367467709659284968774415635770833515228932368647820734265223043144660810655489199560848993799226560710092658748929346210865303010694090618174656257564012833699368837978968944746269945396171989970839605456949080423208982778951740521170119059809198519597818794982559615069557001435960664032200656847862454716793129686874016953900673517963179518616349485717846440374275143465849740614370988878899755986977048713577298715817127288878303778145617958014476640790794546544489493896884028806019195819288288697602295211520156158532675597548952423880462276275830889152269090789836132914440965222023741534066486057181990767521588419688642687716341020884611719250666012509884390252940467255992595113474371114911720060245207730842232929550020075980161019074962528822615696595632597456797262889547190774172290626731623049352399749635895695984412223799903899000175211712925332916565329877192216944459511709774624222758731653463916424144975131989559474043383105426129327855668695678664934654136384835190664997002011213805748358964401680735102854405215540469312232693713427917380642397672387830667803284069617770372815312717577516342650483636677234018864807120687991635524159369029689484865287336417513396549693597797579714237864186860498255864650173691793232778045298151912046897339676881940727053244135052363223389315052890860850646491387631461632758863583263644905863024192200055960620392796325675154816441318584384008300710599719682724130189361913692982815712705717558124443708415647347018078834234282381716722634656439801361620604233123109427090135415683640702741569814476041960617207955096615252393887462505277914181293444667043302506653323559916886557582173117903689522146037082503212058557033019308058418662203205447112416775412165656665103131006830377902301370544330577510497933879521422254820788441610338586635050860674621284703371451309859473984876005232586518858854210232112415451886400424632850730406924122841569956012609473485100323141852241144906561151166367543484993109963290243665368681237050465798319855614718501212027756931365233522348685002264634616035797699595256627114234389038275283867545162913219062325843198061142751021508292018214157373205574828548196883805207632527183798456257130653316397399357526395769450196184868696402150564016081705760002285100659696804700108185881822785909441093943382855665795545280107461151299325347998910369103778450123012217863690866229552607193546271088765114094450275657022648340137761823764900909002653294757504937249732106438346013461707083548171087401704599964116250093809195029547081897218899405343530017552716041010901954806930430590224571294445201042925079006467230132544917835150580003073141314095349696446674054469792576141846706427965564391685821784651997873724374385233657837467063868903519408876401761528243661845411699648409626202611746200515069679349995397202131894421467509576369565741439461339794845178495524600278584311352335875060854649518524276938180416627879113270131628220005698016198571794813098523279988101502061125973813273794412878098007958454411821193166580177341910813336091340145616046325594142028293425726778665524592635399088416023131768056352812098644542220844545171062877738287882516685283491570740759236734369576618217664174719320225114319496145592985219727395574579311255324212748288806341829813547610399547506403467286699019030577897608720746326821877612868051338169346272327766414745874592021129172330668566361721339696972351398549014910413455425160524562237000847831230254494051383526693032910619423021554880425482446687983867226771027250933814841957872448726773530216189313509951100099075921225889335785211693155043926087501349392524177372167629078900587637884705362656366343824451664657890154764295266885222344588208756877535672319921171403389820972690419902811383871917252332595202074790005901676469858001682549197089553145288008887898453995802567899198691765869376702534526059314055769133058303297467839569595044468134547462374901434788547312597173598244480112142165587514915434719677467059148171261765856057495095407947587169925608050714379702078305095345157448557143566456179002362609217013352217158801854421045507949636014577718229949954387344414211952163797887150860640425861851963996871147173008841911169373243395985598694519919181787064354642861959727129369327997635013998241630866924299485041858244604415068578065815904611869893351982114041830181161776494345585822738853391492930178808425328560980561972462059553142198099258943314310629441260759375798660107930200667254579095228907290740439624618337978595445073211822445065734653451184365447961342847236901292822035641477355955842767800303198999508650081151790477880482398412062169716978481243713674882197080535942907657757011794989843314095518966810193188383386620060208325919308412582560005918005684530687996152757479791791587076758489680311560601326887443948616610543288547318373071381443177562349200317943043389390079603729832119683500708047011930042571572137982929590525166142396801049230117579197035307122190797849618758024357614648750293786843457848523288016314488305925283808254974455508256312432986405423879051937944766539890149103705366652073501436451498846092796926489311869883323839272532975363589182915264025375824377300302623308293198454489748784680246800430970847032469602618186040610332332104804570592976917796682623405125465469000637334139174479488503274153992743690833202187946600818285108513970888388425040959305550374984436612833082849057165326268628676991399949931110570453009238027604255438623822000592277721407274076412749241173893092339267798173718755015820879358641596866629056892691932597058417152855317432956209702449884728335095726408199794934389472403292248035557963977006558579316613317585681401971020683684389117751398203251151759796023639090601915770356727728399707875579949974968746619608542824287881936907380986869891956349158532991970987555147174329717585235934372820611854443098484208685296451013777480891804724742189111712167822800052738495828880403829773782296717127062429012429516982062768098646147062036309187155852013962494730250332466840232677421714567122511822314367472335187423913241187789591510907369376727809205119110014266060486451589600224042890992066871407748947398354799142256285592937586233632062843568109809725500558040667727879583543274118321130919758439926932932917540875492168371621196862355159698673725801271805540281880632622314855493455106784711624573147885849041079708748149719413908738762804471531226650105092786924549018056666926759218630537228139490991302964237252524436606766084604967889386133997523120630442548593509461365246340025099016214745391329687670389740116281886631163106704528434279678140219920433665450422525934816782122406477051189076893803350228315411239563861956222450651811010743010058793738527282888927210124228538658933695245622827228219701074687487613028191215704360037990395752135310203675279484230143920861878052593292225172184204591099778327960497298486538363779645463918035858667660965647498197591650397428629697153627305841089714724807453510788520955740762930059727036205306770741209508880688696752477394776764607916401610103404744520648969853211477131639110328802290053971036403755736482740979506454520034582917035319905211670511270069853864416105602168695171336368037815297818543796167901741336736124662061164748392346289074411449762837077942367351078141966595651471661811679954841246146746861603020966017291875465388952766851694483159434903155065084975101830846330114714143171139996057109160173405755011853520162358135463961708843695229499709627567143662247944489955397950284047866622712368743468770256526801085980935556836301335297881596922923180741253306936870393660083443550724523294844476532212659001074185972665505907879596615687267204789997707372565854588583611627060603360052730825451459359888932862536521130666706777321246205446037086208532847422609209636778749201526270687571915167609975073057369526454003850175942543853678755188921605381057224281394210127017571385329295571937777942741450932847173849277552925395144655000561538289216044290731691231503321211303840176270924226689306943883697731798280007116613738866431028511936427409471331962480625663709714583464529018833828755179281446139377356743837399601431967912907311228219889069217446702872712508487920569563646208188102456534476268239318022996214228844555682017830370029884413820357959210306099108242984779678354689447065280062219648787682579856459583181189781435091065795923383632663220501802918119781261249068355415820653721964700978049133163307933062716037613483060135101956398375515172920337775175146099822924985276925191440772161751842852172861541247367978257892418421043486476182137071854749590321745749742029807534043437867846638866299091357786339435068098469044522467759309936494348142380268812831358051958286904502439018339523193624265733140828713153397070126760357423787812540218168897614218310200023303072757949130091402557467247138887444672509477455042812550954206855364795194599435737115149366635548478483648379642176168585450691072331225488227822551102965925240761980641251660211856687134529529516860463695140547476601425698406140703102614460271373937876138779763561111616684861891317429106177522242345716901440474206465710956179657061193741681150328834849048924715676844050428483085283596809280774826879987661099091098307863189746136434999824642294627103932416776299541009083114744392343121606881940655517171677278898652538896474375266424452274065218352042203978881921273793853861327005310939002359998910668065380360773902193740382239142619879761547820115139488049345900985362292293989427698149769684001430886466641885156848768925313677809539488919958171004476176570872838149151731028477595923887281090608096017290859557358759706255510423935253872644824685324328696767546979756169897816859232537039968313006972344336918220106396332404697947141789938303564657907605928531001688695198164184170314807527758962700103242139001836327742358125852524287742023422989942628981545771033459632768169634264051748861170946749480219419121846793230178429415046393025393129036649703505258259253354356780932308894819164798446591790585411088704733494510688259113295605315160729666908156186725393512181892727575163288272500694900126107133109833643144478968304532907053877870939839199883298277945653203940053750107954304028508682516996996208321027545631820823547151693693854809517546423127740974845894812890780780705724269311664099061830263480632476444260640101638787860672084284379032881673095726500031176222389141838848301114637446139219976085860896363590524603291529440563511842830232294461906232257492625699959844986367788952172734078046955344986875914825444990540285084312660460175895648857204606860994869109112186238804187277933346948722712345821045900166109046605594058540226068285907324295421024946657700115377275095713196145317565388450363135853471653625456792718738908556935557583778488420009417646749640921385946752057023133878550680180971194412416390148712625823085273712998109240101186003352536228724897731717561906071776343788234116004669758984825230934288698154491296741574743750367586430430483128377195578498599476121335577142552414078300627930157385018871797864453683572027263034256692782180037513217311799444820700838816037685335183494915612714953302858645065428443301448000404243924969442234267746053083594495621589979506052500209790118305918303307062499864494322836696309672973996003434554240168900795740068284509164822725854682515954091522299222865683484289264725518077476896718796955015841819223766592842773141341461080149148147263568629258555650307959389637703157509402196641104235527780893280132034371553782373761904191149434459852084603390713597661582900762905385410799588274682810685724327032427472348185114222081831036842933021222034040325256261943382168249724479775267968363256120771332022918295904694640393326066501121014776607822494697436617737789900748027480877206067100174194153138684371823842764745547528220580122340226760548519127060088278550078830318204665657199949784807057822442447176702348659697841471092816370618897547471711430924884170665008707316292451347195952578282967928037089482119822900861517322015657497511061041249897768962812649124237564475183555189183213996757837993263637341744700891361962138016619550516217095388498198652249894989160216612542567669405106006953716316107605062302604170207151851668580790827359992441792208389326834627586582850308275262384529635785020989141877173925244267517291824453349505856468528235054123168945855510094192306117644839136239121304707907986541426573254546592354416359796183807185508533297832835530723892110881828739817673006359224331818623834753834758191643415363784695275628968917595598771656026101543031619116024638629698212407762125869609365691187155256737327511237215241098605848880566463309839936458625754095964490459710838737019019750402404575976851369663054401611962682122446523431752577961187975524408791823817796193221811657260764667858800603023607939416105056790940639955807882465908434190679194699904699554637459712270525327272882382071635207646587579623803878663341358080200742670045854327981642216850425594976732390617054338435617928845797652694432161256293809911980106018628626577803946937378723394293756121263083383360204275194450018840834216260783967009193788756103001997238067764479769006879989799685323504308474338865119668990366669457306071442323445219287776279070251516876108037071449913415064979931777023004953574243523047527460806569753399949261822600072412047641843907939639344338167512180195144916345715895684047035023520719915421500834566600954030889511796073929909801761424541222374979416813295007151112675413117249153245294004315878494910828036327976288241749937793417300190739473751025557976148068971385671963698381010657687158628879706374160120755339328899090442204294876650943234312322298998285859080157538108378240535973544992791962674297368394167491712442311743152468339359420585946275483836366018134040210336424628924366403660277118873112243067887035968251901241905327754261965414179244451066730638599550010553437327114165143180010721610144979707080488005295446219739151904188021347887106789328949311500881012912918584498848276341057564470921092118756717634351044691096143683964791016872316268197611633181187484717407575805052935359756640443511317636462155417367444204657045539405666671760738467474922880296686427823818660880184411470923810287552979443179718785933683218234664648813724050537046044614995762558243674308659361489905068005730262537807877354798870275003872630590033893506395320028829921896618020157096729873184642752297917323637199804008627330961675072719803895534036868155328599333883596792096660475696481345367388557464015231239755207625202387043187061796491589228421360837830120358437316931220416231472541498945070083291965710513003170206277348154205308281327914554118894447424370781432147465643616317491618011039461879196763410365895568100097615393485072491825882868771328506126973414547085134995774409108036478359215575216143045880572520151306350113580694865173670423720007398046410581912078170272767342240554664439646793657442022798071540280747042134068276048847881787677634490159231316273045917026534911834945017700113155029123807900016895266166417986936298342373540664029575158867417616654743641299454906284565045183643319873484584174542564082430113633945856457669721599677644622282791482127479021673833584631136287841811114668559623512522729737379606264238950274826606208560527608444377394996854154016845280123164427197723371038220713159065495043028680531691697399292721889501591783529620758010065326443306068458536962485247121912956514725235561583796009943109373422087628483569507251120927345688160360871392044303330797249842241225497715029748181804723835469868120767901115896148749669448619662776007816320795764579368050066578622910638744707324176771123957819855304304109016839449855424127773559921156968673039634468572595758178608643553717398565289427927521101666835919487494087813502815955831646563091201729572953990233249748019845074599971415275548582123028045723386549167932941101000110087643570477096842346500192191040603544921258816784904373583578198811196505128238543094956123640498527873992058218499459121589840364859136618949627335390803126449949741614155712766250110602516510486697490364263854366750830127209609362242867962049428355767423487205796053990608814713764718606937110235417251558235180123000280644054931672731485293925227209970370371861830646543953422660818411062587646249818179188433333071305893086596270657666134894549393205570464059889324591618031375761634448886403707025799777873016860148770824256411577378255358878346728920828360146554642582273555927239194786690465607713907368108113915612670892308282838569218713397941075477910418846891789221229688639340536523397231670904881779241795935750877575681971161387620767367055309617103113367375561970099648809774820962658431764485603146522100493723049350042748851570634804479201357220235086885416468724680174669433016261767867625951388681329717665521522789843689841975561026807200520151908178646212210801954728120082513025386581123159228426630725246172552516673768179296263608084072656943711602995908458721472094788513362473033566022234293249545076766782533317273346025579078167668928804248851081859664327928629579341634420731765498211751110526536174407489019546867129914118022348733839219428958300987976187856475700217499172538619972319194423814224861879476042936034161306916635290836344149862069989346649303000654735797024371124027694891137241461773697511587008159467563159683202486791083539978593868765162255187497653935862970859549632252235657944122663302548502335221189251243024715815955448416700993862429929859128534924214384730071865417120226664352412310214579441454034429801831654849995612338759638092571362211829522470878825538378176097934721694378403997863422602919513285790014737450712915884482733773651067353718702861977552693377898982135734277689643914165784362997271640091390509460391848293985860651143278920231606277178508826700778959465642602071188617493026628270671509807700821307424475203545364346717054885169023251809297708034071610181685998668095660609610940369989041642519152078515090942600129245710384846277106151822209864125368116238041029480714252549465239173058917692976744506766268533655522835334340817228334655017038063172908673624806990659950969955245654212572696500275549037343322023214000361353762587409692193362151972171976118321687732769222099918626720374018760240173816642711497299880277561836753410772005201065926765533332886355885370571050541945240205812917849906204514892666289640402068136015646728736583325035587438352596759778357804252670622031872331536652890373470331882159076144460063974668386547600876430971731461083875388310018036682034728032129635205702298999663616237965435667901756643428793163247737006426617374138117043981070773757759107450241873325192558680335972854166335591771148279137803790908792032824628964436194510323655756274216698811125221884626049403313641143081821715261523415960075367045135044751716921814043896904343876219896158616693383329006062166424464540639702130610200340727748560557992583424980730390655333638657115758368490043480649614617380492254064399678021282194327054245220233660733796132898580429657477054001456683635298271301768540361886111849705830014429568347671502541061115479646301127776137481674630896764632122512778754542402334580815124028159543577263881060206795272018898619231271682244828317770100853464719991841660191614054032148033163725320721740366440969625677201410465223471754340846321187817328157658138246131402352296835943462516585792618848607947148651743654259828305480835577955164116716178178264011079558864982183660535337883606501701793011749904980289273078732394339349542056328111508989330366829293992806155712994453807668528094438135587339480858050900532736898959420139456876914341523063609867764707618868142848449137113159204628808120737227386230511320567476527870578783909372510261092700673395261018243879763882843935524053052598999871614280412148654983975809147378345337270553665762329952997085873888680322978011091305191528504661421956655929784877035808028070236799744295058591964971811560855918101812785150144541277783333803961805912317666388802375861168268171853126891837016676001055239990304122655096194321517369122540898788948349259249465263470577327317260306476912373567839098907190747983819839668558068499470765492069842680676251285267107877070178053800876487886378068025362652117090796547578606396539317538186049784362591139877194869814832745721180871108493796496362532407629228116463429867258553218759828658048701442081537838567763960660340340559186847597866635987196298810813591184089781297663685281085049787460168593122107599669079386875107184712438614654381521102965055339936954749007540562566968774734137989362845991062938154623376608559334601301832167262061348269265262612998786012965000547200346189160435329990723322308660614156912247013608088554429603164208341932654515596404456649270462591624943572541281136702409085146811522876030853615453008620129415750944980409658257701951244667775747063197992517524640832958310404545399547511537460915233331111196825167760701686160625852379955855156231910976282919766425045483208236048363547835781720271304624776781380811227073465450765249306735108807499949073059394751676254030639913109633281645893512977577881941001706956930355170228349020226668912339416255070229033663122607269892691302014260994134532656085510781798073558323894807731117900784425224769073212261090995684391000035704827001752309727585369501974560083427717005639148455586413935569609910668692799598283309483960426159678458566800531672149725842619789740831509730945370327883968261607138554242384506005945121683388941415783169799468569068234361445681375319893858942233531474320024163522569227470440085440117017678580221084989504476396331455942088469382271980779633405895282639335127707179141280951399822300101086712534141473835966320298530054288125801416342860841605750367963659252320926336528929958488667120044820993659981216384783447685814150200527557309602221823515795514982497886058648957196082822509988957929536364475167538823290852311464380812518264019035157108215994551782674350952777405711365667507421063854056196796313927234259894449555343440887680232269058849047529673786946200655979998575805924175130052477865372328848115041873521115147323235721853947919816289834282758424118848390026060252189474789629788867450890245909557508696521347857059825441024092075456705721869840839461575198966591635105262146754566058044304751979252316516462096901801298698102935415436661779231510422592637119774841612888822604335617705854945165885078398485775549166471857600707672442469953188127208760453235143118271300917412014750988474840258879297856279329904240087456811652510870954878261991108339574918793505325286844293823322853118554001552463105747639040262082261334702119134906288885621325667439107872193377215646502464539654257115938584975451394908785602108103495495984325794975615559326843244653691048726759567165620723631808149998555949886512689189273581988043282415613418276398956096847491643628762489110365799186574114758994756029104006869275738444038501864645100596645194375162705408628084216486144553626518845765202463429062860490706124151516219133367687497414749012050121144260184054049516811225014168552088778925961108574132635851483507960989184973151426366420745821877344728886819559834718588387436078984962278644438323405539119830116519212783624160890009383826257136347283946787958045231255579498320292168930912664820107009461320908435142193563512332010170570297551582464465898496768131948949213813160964392100150901523981542212029863588992968391271949666752714219680989343599687195693029066203224486564706440012837720600842025236058439874712621860661254386237275223218001346820697992662425344123663015442822161040457131981742690341597700231651625408393805228419134791383094830793948726966376626834875493075657163888566556617250775996054039182034343946085812880140851485152298200037347896637703430281035454702290710445346927431847052610361745180504758686051636833525442747554954307715197360788398580032245986393417568501104054873664944950629859600445424423508168842611024536913946938989220098671911818370484553450414991048304523628582493926265121258059124111160528228538965439206705249770652356905754692797806845972955917153602217766182163451732601784161313815280667044020069661352333902466337753675431483977930143079847109649480273919012325890820416604868960773396168626362164036798066059124638002501426596727632398035522971249995436202085157951220822831172490287620500127450746002415621463982400405541785300843854966016144324458198800542470418855952104405312528801737134948795445521961249547006126797861670504597257328450515357701323061333917615246236887141005700917798801180686869061788673908247557717767404458690386937101201115865994681809917797279433818964746834285155085095971809358982709775269143985434163405664555649280031122704057484844196003790012350413562333968369136054324373699916844958674036267125311736069111027584042337906897774268717804625216382468031950652847800383229133462838060168293094097136037018385082348792625387874776499684868170754786595993006934391639040631208599606087949518233956642891839134264192451710249977902574532783460606291418493205183120633175065675369710559205396216579888431173748962489929027005713064170804390045536390552744751655229732552862661620696547519839051534388692868732426736821813482805733677902640434396697018048713506788719184239502880385538275679629144666230602463749328181776289305090083402067294083638063121664005715897607341343309617328319843853459667694277132453244601425218081835070725930003446017973980357126850888771747297739870217666239089697598235656880659487168335093128322594661219666311974452576916273822508126450560724296845826349407499545451974901891054123687313675918334097506699173242514424514512438151174106576843166876577907528562092522924487431183425182400741065210737847859753509058864412313010307677875456488291322999152255373349109598039355080927392277467590135977675712550952079803646473325831629062044072070331527597584108313202034727310471625151613156894786765722803546780531212122546122084905169427169972923168261326498103899667200645976693585784611260689154122132605716739467852261926029256600580040021500840752859034843794408471883338789023902404442294708225715443664387992735536011110721094115814105570833271282061896028088701028994788492658193294833799376560642812028218810307758517067320061122384780737550607800438137077645868704304874755771112605807951639016507397251414589499081862733195405241873518528125521127988821969347540846719611777554639883242030890649776796059340469710285650203964458417756726835293924581146218364355556623893460001183322486612043946208037589604427280990263043183531569875646826740071640664917486707591216738595319599603677105485403072161357263999641657899857133985247426932028544391049597983232862493380030166128959500170247793853500286742316290973415702894493540607353756488412479502992196105934210351011755824908798989096906298654909716874702371992087413012625834725283677738498164394986539381743401581024346642390690468610703080665795337005078241162288946450515865880384701566480102470493554814264638765421811434559173311585449750862959988551606875702137422377104377469448560158065246971314371479091377204718259423121858247335486318202675663316154183068144099074156608376832516928682916163933473673906362659514954262801625134450024188205589165025852112402647988790721606270034599906551545017163954096103410930870701132311195055471960026776760235966161521514572614631039955649186174536751010790398528222177293136869830682085644174370548109880022936696678590200555069641165965608864961975863795232085926924444147381416252291367008082280576216960908547790808771895737250545365462478933834283484934916262268623523841345280073875041674010723158992791701386668710436131110328917763375628841296191493230666887064505539584432019298583675048921309072541005380984218336453815181041919792201728977043790326843219580690663330613273895056154153454420980824387289497204948361497897489579062719441559915241076170340222311448520884497498987872354068916649477369921556790518757382434457641166653525861362447557678487158108555378786805019175820323230360419951435317431180266148353045711476435957228012784288457883820609218533486868302513835040656720925762633184375884126455983698190348850092178937996808921090655113161498024211468309661478152856479429496889982634966825304460872355007733469919704833584899318894167373836703748362838264036456337944019874452837263074851885891466959387254905503413380332118746300480400763275142220962887425735214571661740038232083119885555206979552205293797786327731464847486226710899383277880390838589249085933429492403734258683874113000537632303338320094661149261536132690320150014018115445926459481560254447884571089354779896460412363121914467387160639492853571272289188327073787739275673598514063738962058817679376674326118737620453882681623044842191133658688115854725454256759901410070698890286901391251527658004851741694700847275501780603427609249540041199050204204542563817403928778248680791690198997451927321949041755232699062200225022395717784017124276882626729235270925912885290653164904588609142595343674148490728626629383285720149945708326049563274047878295680846460686534408303738051298942902100001653319976060435031513677352532526778481110823969706978902734423954235415788082170003488944999741648731527545213702920820634678066067531290447552030428590304249525465062865884175010286881115152373531308231096278319388469746059125713606114240203040591526144799504815183009540547377478926961098504569564165141842994673406933360716706492419894995993839895242675259364654518176689355190219950022093998270508246195629661728584186840705500414252188251490439319706932528217389217903945272010578662731390998200500692958142628672862152499174308338187862489684660273896659756300057401940880208920819073492331459468800002905650343009375239088468714750847580304182272723073986970496101259135391561601736339863634510792155807156536278602498344422781414736900919149396825336876397349645085548919876826634947365652571999710423425187734915854786170422670519882487055452886135704699334948037852650171631480382888124656614781815151582791919482295044439445698595930962349804556902344573463375123601224869681667799173871771610303676295420268841243895778067285007105004185416386922271375689656573895789895809123917098829604117122441172443508735358707665646122923731396946260024655426691469041851936494822856309077863685024676158829225237968180436415770243189162162697383568242028547524206008291036553308599491732721876449465233026120314257873799454938617564312301300093679245475221683196187239124300431145026616954100279832135744309762048692646434046558904867230210036558855984188765816812553694689377874043133939108429519095741678221955042367323780285248841450678026435780158040504022141907612243234286045893683387049498298614777425751459483423452109058659290365600554639562869568623688538877013092076014154232496547258665355046334631886586057878197907378133557879978337699314464855572112448041813211688793552119089833641381674579055835582840610627536339735573770175876741819144624713588235145368531267282724332070878715439716158844757930056819445169209160385226964418041337341554402748174873449547049608582340423151621031396507146932738882082680246617866258781562643992196627311511830793845753303265088796745773041700214810293792966613859186077317568063202529728108329719581206907684210800623619361278355753457154240685944249007038804891123238773548631254363205747220020651140055182715199329266922347302100433447322856330570465108622982596410008639834842922846988106373389173702222289865838932518496805763623191276294939643474848745192360111583619130112696833394754237869999054135700735194197728410266686810669410149445688137584600195212652187272495774892805397481263428338205700500188829125396122279772201938321568146964416992855756415292267676348047370390147582003765501148964187352799050008298817343358232609789021437769843972956333788682519697570934162370840372423026217043460936941046057148285193977856506082564490688178350805568585622440690957513080950457511546537706098396985704071442713674408935246221914855095611822852741612294234739746877171560960273735067044073997296440730118373808328262641894159739823331952894863816088321911970272818055820569914906924827831152150465605912574726353765403880636108962300104372823357194086329511944719213586138418823566963861420393722902532845281702686966624385266797792957768035880860904060037642455193343262644421777327881241623509200111751743723864762971825494605689486698380317578054634905730577123018088865561949695388310609576771583761381498846483531316616539143518859493956532699121990355821061380688374840576800522180603700459625990339335435550919277505846397155412242234112061682208124012193377972586718309991142548197603836106106034135701251795318296314329565705967094016329318367764691235695228318932101555489805519123751933713285394077829695193310532316739251318592220012614068196808581212892218647005406773983853833380509303599143948949705477116871634145753387583163957712963820618088518605859509762026651445342599463048564444089950272834298042870389259563898292391606604055218190899686295078336402226370348060142635259863996559794221162415807665771643253939362162587474500388811120671828876305740342605685759998370009478202767008011865908250803426267524531499405724994183923219741010077907191270915502449337269998284280570860112433658447029145677131518118205360152358450306583396063419020700204222531708169991786860123291950343494233226590204102427304604903558673567770267751969385707973933960839649211393931087592410604549668102192640509967010281812290265869340885757941010628695200399743227522179235048556397341727213385873637056520539169772353423194124629581193051816576288118252124334519079679265649025809936694373473983259620568127000191616959048538259285383024035904018608459942232902394880553057445207843396152082503187009722210127676357584012005439193343812802347689142830062787242447855929714673317904529324340750017312657240338316689643731534910128813839187097909792713903501734616182184379944047839612982836483180627317308805877219153306806380821862965544800236642208348096958455854359829706700494118356152091535178614410711685357783090766643359014179282074986733062076469362128847862114543312810131330966454318549509197195049314559383464452635550568993045393850507264353052297357291669022093449492888845255495257569321798294868170358871730789475451895127351754361458922130563818042752696593830261858372939933716106505924156733004398389241120931967074230255701629296072731504412093377003102997909187068786500308243207801561530783834081345033161700790995510886810086508389805013510983624748755239379848231252005147477640879478041870473143993659870804511693912381906656962253634935063900357239132913541219555248154923798158490145786231019882733266898897061787225876526266305382581125434518063921659580763265101343568976756295922451618155966796758513564425591621853908493413210675011337313474127576822293796659838712974525751291967257608832966841806978595032494463764103871647526410615343012323213681946696722129446068915396297596051283161642471188517009639619455080771124391477621279689240952970742559324838597879094896106675869884331142927993377111842054278339888543429661571980716538643959949542920888582891478850868146280095488968735845501244917589445751486841385478023941420296933989086215670810675682536949482511698807718178397825825633920681393963431803740015316152282474931339759159152491709837066700261777334184745873336607313484973399292418303479486445160703843579749512129640942511770826676177068452873120800197151668974926837961430813766836527709800606724456492659822213562363943492414036008916995381127844901988102495825583661274202151967925933309098110841434806167109321545453729952749709471115234124472221038750871009550131090270924925438556508802329450524638952781988291059790392182293663486403933662231800908938771075791187536465559960835919435742178515676331064803809443801044512606363327777113749923231399277078290781667569889775592006421249680165764521438762409193809353348693442498703210691768923873273396350117095502085925980679517255972654631353800980617455622264920841192223844989956297313022677477503334544494335209492553753121544211112490826636041454089060013334090498551664088786593130401263168923531241202309553449493111565761974774154395354999050402942709596939371436615786301040873955059497702763132078470107641081343969515288795841584422039749884680760095940814289423191688383349690041740158564173368696468173456391825564896462808463940399607156791259037654162341914025129771531035232619618635569781338547059075465923993308224781464643491544055450882882818033798667894224404442592209771047161144798661732564846008441164804798696905353950440048027763260006062931418424635152489087931186748244093000735040777298643465169139299177427249717042710467160121468538283875340533368210271589603139200685073600761145807104765434139856071225058905157778878060254549412890235199526479914611059800465778276913757301279978366564497077853743506305203696979989891524023548928010000376363737517535893032570600685499208074109089458773270601041039856137920220841222211091864156590199349530802997349558666657539825743659949701488558471976736487206543751250733438822345058985007395299958174112797829314348254028520369137434365100482127785509218538165085822770409539336397179756901768664255540239464111172625607919030849202964117250746137787513004304739989383175153140568266358761550315518202238137070925315579936922983778335174366486197896233631618690346609666423496144596391402766398682138955742822430307948277247594580983127543882097662471794658037437544979091467169779175574835983693346263613502339930062815819664420520072234540278382888274690818201977674467946783852718561891940952371214270960359131610613372962350396478900724417950974536136139209963200743839614116600324048816768963523846329845150801706597378172073167528638154597888982210572586568545858525578650991867868486991874304249819413248592181651160739460549752792769717816054516693589522048698852247769896964880177613595253978872306031612052741827584952088774952522646586917356497200701840959315791308468129211151039408216576481402621748601199488588563991149277958559436964021237258980957439273275203014816803663977312242481884696191165602410886711558117375781425156230356866799865431173809691405931871716749086605688106564809442777055392436398906778096576634625934273624453714755656865616717728856522427850296130517967097936845564916317985925857405291205832205693835506955169385453351259439554690771794786367201860656636047940899495176185149227994598559187776738712751987227827934481891237949994792399279168561619291636389711178003721799534369829680902214797395084982622106682015886366008265298767307277048206784946655719136861932108145458406111296691573949734992839916379551381737184237834349257706486818785031627060263855044829222390521136319331082100408056972058511966318965608278150701375702749261641173049449572125488436744030965221621160329644526245953822232312289051586688710954278564575198512021956298329515888969377756038715458503191777825644599158047096770823948372075736785649688982869024084587804214326312258526106570319259425908655480159203411342176290900389493119611836706892389653349955901791001296189774830011118176346448531080356451370010770790684366861575017831263230572912938401458647756058391357405921478834507642517615529084115983485053413826616918571629993557278645664418677994169989101123701026229883069083630525495845996263327696994718220671372699087110582753443488386420390826724261194074517583514292674820916282054776140464838902642135137943613563906677236161196495152964687021996824161657393691148658730640083744462575411433893531627991932855525035759008415978350319209617805229353521155789691218739484419888446958537017935325357085501750557627263295267838831480386107129677067210557931200759359996727352823259345712094822193796774667501757669183093303618384355867801390011700708920017102695760487473789570864302014896558775463999571027834507729226305877852394992266751879927913777550353570348966748553935983132739703155076675065555029471777833553739719298188749990079480095185398640754253384262996699544843124237432388041626539973296261649552731649105629877680446967454902002084518503773161124948485334176050922575991792067729508529628919167085765369975416004155395360880436836256362141981954221100571639190340799655533395553462550697549318534280477334206006274380965431723912757767012431196002103996974700289953398103081657558855202338304167482516963353227052003012710394482892935654774152961170916925364009250569521006251920733379358892699880608879096599534310827409238483324881224706339795309350277303105408221177832698698737167141175132322030749744700367011552976877889882792334285079898783058397234766851637830516313982455760628380753026755176871173756183367484030564460396637723283558317245070212322458245842368917026296478733944635939763297433718405540868570094026716604253526434188741134692483894941726730152219247900655757141122177126371756619682476000314661468992667371705715218249932827382978891651029698121544312158387192881149161930317183147452232774911208754545641541848466559519013432053372901740884078301345438665981181195651600390977478069591758744408113395375398368851668267473291129801454873967238239308794583038831292119739837215292215221595743417075219921996916045319229811831575791686485024429319876615664547310550659993263788088684270457018477099452802201857574463180554757064340547305398200192414322400529141865858485013361560531034071911890147888755391367681564362253484727187315222027448178553284866498402947754864832537234434691874766069255025321648838881458270797862130898748895635546956537370963979404954686321382959579772182679287479235981350166564673350353277101188879589767972275726588643955807398810693587639122964413423483851482877661418744055255464284421429076601955557516577033231811977942331359951836583008594293149724415936416416531990460272714796420141434250233800431618827501717640348612596478517282062676978252215852830220278284107775331875793928101201103140551859028603421593438567500570708657177152518746399898496952026074864974659376847124938059282886734891268915701138342053294240928265670353573404848227598447886947125828144132069453164193943196890746699383549615949470651667728083423939234123101768154083457057225374524390127754031146291147404690545065322629114726008541356447619514713181664828356263004545782060978129384734331009032449237447095556091014892007845685370519936046554325186248134608654424220972338462482327379232741823571075390455784310928613170971907968778504794700672664617913103738931921023383738854306337387059437119712708295686992579204993056353679172881273663595982258407519538887661938239636347504896215266732805965407653605189479119789284378097579023274761708083047812796555269319434295252785558265100693379041746692763232556112696797326790372406010420187846583718354996799762204679410712121222690034198241535724549924110293283511141117741280106070887656423743423281349183249360010121610749635078440090093675820405333190263637940910881796742160605447675997495651650797389072323940702012802480080523904583329819945289645883335581422802755509189342331104902734995639115104940029626222111408699114131561937244497492596177908688967636575560029022904153841490816043347466192366903576646775880049856373906080729256829936224497017948009373154805162359398915096728311803738173956992360538712833445528353408471348822149922750221238172411911592233328397265330266830473187203272638523455698359703604865751502398947583673847743400369249908343195447902207669704783395201229306999002216866095125017379494855760354344193284876185380431316109326644069462166536143324115779993582385011157969073028696177612303886728839488386453760784641288347758522694726386236471925501574665957063551533122329911898896508838535071110173223313897453862480301852650870106955696453160832007957485527293872415054637608193785590233534726174464505954685715593972902174529108108226564024371222555997037470927029890329792890708818516545039253075742214673693262171588447786313840574744958213657281371171451768505481121778016466925368185283799188818631940425367811849282963539856147432006762204626750030943871595303136361825189301747942580267137213347631328778427282147862197352705266195902830034991175840556277402181971764869540287529687156744319637153880154620291209327224702884068655972578761886762998903820570410794030634474934383166647798580049018894866423286129336594104602818876680654898920048651529316317331740178019074217851492615864330491334057535598331197449371404697464862284450500812188248029776305385079329382768015391423091682247905788724469639782739612713851815794750906141675915224232975538202743272133529605638821436626254131472098835226963177359412603306789261550058828181211978611066754671276045474483746290798954426132587771212288998942979606846822573339245698014816491159729004838753660657633984474226448359978873748215441503985989037772499707125511724993502268421508305746404432371012165609529003408537786016781940966130484750033559650678761100305592270953649860543318125290465281656971858456266626424369230804857725090168773343915068609001759865117911868104689524276587744960656366402191980109554338999841749101028956506843106637951437358374138814098867999723034390127406756421662140751881527252092334187811105431258025094690673044016744191075682441055072773983619877501890630254599542720972621138455620779893820535937340008259595978673808844723387669811382543863277247418188645436777039205131205416245941994883035062161203755911627530284297153843070915637226619673031804833801377647690839843837388155727459158961978947176936157313185860836057562410211380219226716394198568060170360403789587545144180595573811876099263384196948166425388731050174774403501227402937822642246204229576372031681289534840700833994221484575482434908716862614556074967888686117809527794451804441642256046748657810633752319020943864437587191533737888171525158432683251916862302237383435911648172156231312319507920865237041305601475723110763249170094020348096924005704747985604107489392782164796318161499142881208706571576981196593394703115436651588609861837248630876660853714510403005470782407940118944490088987340622932166531333731335849100217226271981336549613177244629647879584364541836490576611484473122436349464606650188721932399843876144126390418653709814008979457737345891378366578563555985675905402818402874190866623422230773765024353400396068185510670593367193700503928249826953139011221276994440608591248325174209912881398660748876846695515248927908486932558545047062482466791505473630018103506206470845180821662828193866122223708911228536393441238524975163751841910218904927344312232177088939352739664242419174510026943041236298259689875483388935693611678774277037039529813737860105581251080628377900127373089404024652234035136562420215012028905330386100795094819770743032244156949530883418039100285429293135253588468714485355806123307772763564293095318382381063461735181049723723742450410754642851585358175117575302002981322177247298341848651658269491515986399106437814274123550953282444853802583035533844516443698193983040141166874577894055281346336193581482211002195461451896022870268935888273734135306735053709138470513313268441925447566121182155338920139298232697258212242881799531759461929143391113433749363774416302235199848103681444022544825614341343153852533813878206618278120543121076930988733717307888764538035758766891954979289577008881450308980440412152355547362987413284246391217569424909878887818703970364559843385166626816367232666614631124367710390889737215221870907064480050279144771707923643919922533167295137761917230107727328094510228239992294513924145370675582666416753585234842005224210006579212266825283843161712950732610652476288466766864399212424312692115447698316190997735611238248531042022740186834685596729711996747760365850016602663163207472158457648928936678265506431888090040119679783997753310521332758070321140360317599099111405870832091432468892396440863804242101756671879830509513046732006888975328787789638530945580649360583121862681290631562946818829127100261876122005594614473910025804944257903253114939601342278102938238213439836826857334790937787064067362001436109348768717611311677952236731389203726798732447578961763467262205520861788872155761315703783563013396212063922102521607697795836052959226940461403817429165665422549684341831019207545992051284418320671314067504107124212282468419927846633200911180576336260579263331598755531005697884107650943918786523629835104260381259890263702624100262243815268955199481400005870442416285541004010572667776278021927098057569840025512964694794477778542085182102922257081749945176412954561603653781416757251312661803439331273779039733401942148827928756866480120154714687024240963048576555637389688727382333374851462368438427317649162212940039283737108518218139543867183973192036622131654709278676344796490998011439053754568907137624952300773688681214987597459565961771107483664510147336348457815516121490644824677253182910728577721442383454159021065693105831696867103299307902131738351206375986556354162731459271151779601791549066493946114682374908713996869236893359930035180983354480314161384434147509064851725564288481410859054598663049864559138278345103854221938430686116732225843940399914344370715894190055806523082031735708262374857695964060767655430629282431762541611198544729105669151205771673016437489118412907543549074593884316968261085690596341975506473802756476845920475036924890141360390491598703355756082214563254525436352035859930354054312202256755644838995595875366386455636137297211055452835808236110390242414552378464674036733261541512824701955236796404563798738406871543336588454776011491817820389559349147885590545601995811772365826749940386067651069916086626326844768114286678391163680978882210598683364529725478488261413984839735501155528341821480123998169802554740627749973064893742175743412949876073307223819679901648975445757486383426793126316984198976673891626483009448009502309134314125005651205135137682016976931017321875833271397281924437451447475025838654160389502952511600083874823355688241402045989743212032241050117864801347070421861833756402589833411890333972136712037086206291513867713634718887311394525387710737566483768396358236022418683570431398135634379259310925044485049566578254810850163477892954168441004661850183623201512953328607347227528198742262317111757799972307497894017508064530842638350921163934615888575233256578813970962940268050113314286715756417126111000079850795591781835016945717483970189054088673801784259536573540335404281348556046507005806168360219310307317973178305965763527002475699889142924780121817783127507034496442647619055381828633526550530622081832569874995886409645461708776198740143924384964471293328499815077058944987368766090200855573423599202552846276981809692832797102643969341880843672715985771264036150709618153686248317388388983333050948979979911361551211159082727812261777112006546135015007278601617832999473278403879570045921495293080922138319205742133981728219212323568740928067344489874053918665155763492013647526804793478229492056187823845747924729058069696446168264721090671704095179921328981635794736468792067951670812052568649992048066287760882563811447204185049097880259938334078145674199460587345405784621222656380494219972514292148171792613116918174921901361400178937745698434370331777506174974007256178954745040011874250952815563827662032929855787150657340444622387693407534193941348248201712806309497951271175830579508163685950308803028365718166509492208702132204024579561649827243727591450818370798202552295039024174521038800903352918134806318539948891528197002255976916903610999821611693387188796935827674295672589652083482914348425793825379740564705769428567698929285854243648949757942502604832651784447734408790608068305527290562983088344866361762964913195573087994702451179500218155595423222983139347500299356549248331166546829612792443183781482455348536546312461576931077552448329652251582671570391206418755792362616382665297565954104723049949787357841349188464145167504134450141132070092448540900477269615802406269646898036743463791607220613535664026806854006281067233877465607612649639424352444665690118727170931578832537722383362164133475938420735562066354830334438325174590918861360846751625283036848656203553682653864456529901318002754000508585377128508832838685193694178546335705609975865322924308976857159190739301428132288829625580109780576981680891206373807917821407510901694238702295866480322754327486621209390316084182978032771279664847629773034857955224109221997423833502823360865817305992272266053692154926826574360804966485138509097106438006308408663998455903828734952978187676385346436509009043267514607738495753416681185553477608937620109680230066576499514111127071511569566021577414199201202051149247716615071335538500075621735048171255236637602153676834586591271197031109166173889128607962944640378402547096514001735148145077889059773038415524924463721274290851754984926009290871669598752118579675322598564863156232359888840683407948676358174296890645081323974448859154583540646147568084941174823766878435649400036138250130570296523245174914080905544159230913574897437319086069904596066132368091791397230640502831473072116162916899187732862837143194150579911451840002799939313334657136039500754281308791864635647191515669863852512168753606838278168686384288940468845556607592887563874003875353761745551413510602885220552015930946180804214595239040998030228748177867934914372938837794542932048746518717613924526655041055969730751561304259245197559633864751938710391603920100997452264531185987735142294590082360419274996539701886514108827647041706366794396163584296427803666948755224184475606130605057965545143272540759312844924367539145348288199377856530517540031638361169461693834693449794888169355472107318728674470437798874250906523861952958329083713080404145605351673294855328959869041822971778827304062661135749969083909894373449127360662804006674655288156932239298536384745210055117398850007993021011074491823776810134653355010257478642326977112767469087958741914651354546200521278897427936242488285478836799503943973323935418253461846190576543898097128890758000570242078539285754066718057708613805133418266587977796841360715254950445923467570128953086667901899946568282163526634786223562538042097070300833135420242641914898346718952608786536949176399686718878902957956113445055861713007004857898409666991538062161374226026229728989938062454996064463040405788559497609811046849249347647364278054563039998466409652391874143402361850786140918937715549913406999404976874025775142261737592301645522953046160683320379612715401054184470025375117313408123634759121104473419339159580391527057730624920244912009430654877639321450781750124195155387211559024225384934562233860000141409011173738353492737852509446759880818282154007232436440421350040792136535991218765711039966683096965787185756636795710215962056755706602969096373661413067705143359065876831690424405788907224208281035376323041695379084954219869634988374483175019775791241332519126901441581626299379980090316917498109430638683816268143494763456188907343829233853939998405827071112271003723963998452343349469551967565794644490607062444073794535492806834807410626301768852378150527873049971883561708474668039476212824710766459452901083696090944580877687230140241821345468919941266157355653350818261174361881298079963222241333495318903723949626119410624117266189283471380212611098860756922766085275644265984587713599414349713826683656043423868751587453592172109760423796453252677845393734920570877605251436969299658442214391032370661453864205790069918651109640920771277521852603294313210601462997495794141316318588242090584176613057220245494930665065623589848076065711476303091001537279983265327552993523168714870776044296603620570875534609179188449446587792648252501246876871849441987347045074731173646652426064715680261180503413674815707979244599082636043123579269766798061829643222598749650360508979058785004829284175613749657636249461742187478597783180998745343112167676999967358203677939424636585361032902849454868118811156196278867198661024641249657431506013590824346457211075298309649099358570676778838887533611596304384578460543746674123494790820365256300517630739477642573845462572270688584504472319365528155908740503726963307077760738075381331533212984078229304328966810426310149481770011939604602323740331457908989729004363916063346168000831135232008647360771681727279164106784953496221824706338854494134864279975408269811305672368876634976328690005386272405751718274200799326434290611855949416980154538970741218358820184124288787749678159674112548449604788276208993416946343847054605983509073535176171471073121625915162550451566248531231494742486902017001894732158686084330173434713534938363457060923249613684882630000429801949298302431346026007908469229237924800844678973076509529432964302161204373066292334101934051196666910068501264386048883232321634407786727583591284878231169883504803380385019701873148092056746315790343458194818061146619300168031663309359168329706298933280581389584541988863044062232777255771490026672562920235564303551405663819017763952604144543285782534737313507942792453102693359377460973399505295129941728032297078310670190121368874764907370619771828463494006700464927269474981935828881673775065214466779242788457863506363179610762672335837437568205147741928760720053149355774923382709756856462563180116928581269163640087908824562379194276953682999569222797891698641276434179563275307749253203331859259636098560606678099254368067235026548211399736367285390635971364454286195241933680864490656505224741665332736933532859387802006795388005775837433409242095044414583557482958775026112451581716063267083555803812713455124146402586676200156109105945645626135020364140076656319261067808627292142556945606869845520347139832964631951412773998589476996682477634278886263350530839711880551274464149052528475412452052683470233794834886189893451340481792099750756588803032895168717870335941619780648785413163404360370908239723010685145262742238483273222643570799919659189523001366681507220504583920603822525997945775435030204238607219316387759657127247825055873218719217018787970432383223951460589475238622441463386426350886384476733300023613075373470915827812567444801760135800158896845518029924560393787254708155880861099386423271771787462734651589645554391698505293032850335917363781791348555034137323777257488637860730654836854298241883536867562241028981646446328030033792721608472655599123334763034884711805718695058942586393450647938098496819161801522063828999718376978895951878900840231906196590452039176234393343152142555681135667451697768770747111804318657849494143411916753458279558438978606509324304614129926447824533224443391543948504981963535805470874412953491826239813768818843757025241004181680631245017018596204639124554854510220244406422085649180217224641813832039879475232169599739201947476166320263758111021588514637108438671493139531287019740683685849789601058381017200197622667317602326491503964548830429807357224533982513726647878335855242004575922809569719062723636603832163595685441657841466957200342653021532880870447428273280968647002283734337472776695905814769578592747218355764587244518679215367475073374663405384339339264642909211900774952965057325779410903444752568291470840714813845777051890529161596768318237505740489901748112648693330209301537345083633026454355855769048619002450007854378931855783277674807467678002124510469530442849065551718399252703646915941661795049617462274472369880572336136203850441683086678409223848094489488976618566480911980829617732938882178623308659952926601649148561683830525582660704301184917012127140573908646845396531535060285404482770284582473510325525558656773879785510972059945902817278638577125053455296866505555834422232308283944624971712456357245597580887197990488278881146686916873645903746966552111963362354999861370938901539467440915071589371355871549800408994547670177342814677126184939162506585209122186281971930618381111554841306094685798604860710331440682098515603001326818330867232215515233876812471124217144653891569478888975402620244285748292187388446204665384676795831217091635683835387451120207221181105172629018563857448236643951372559552971492205037266481341588672547804223070443895732786680817205160478915274317349405728488559055071661409198909354392686443608328517731300845257166985080535538374994901779350975507646042690798914953390064808955094186954586676706177279911891114938611803324955710618576374206132269995526821954099299677736467697294779768741389656547810342723258872415291700444744254754145269144958990601796730862786725330940674227226227691202137780963319155253986300827841457398774581127033968957061741985176908777686589779653542770493766104342803685701779248632258114729381455913078610927688459927634521720790578021537631726988215599441279458890236684787278489833858411263394020395539505694679087180360198332435343451285031911590682376121595966291207356665272952114729732605595784475032251777016537960018612449580464751730444768264297738003377819522746484555462645592367599541997257603146986799323690758499888629712192510274999113672115144691214846099182932263435795464726089509417988874444653736556576779248794997518258421133024202220473221802541132860645349230574396259682878290822290672404558684214392516058099152621318450383398205374527397518604879993433603318479983055925375046967895444253936261248203534348570140578420100860040238163267307000753244648882666933996592923917293267449679080706483117640872226124426761296873317084702811501397788664354913878781573756249798552282728999958423259828822700688397552029590979960651565985899179872555915660391828312846997534933321819531759693506967111607675753719164977462452493609815953899229043270644182195950861314877047933973340614501980813404924162368731673684566986399210207972082823225401375093149234983369184469625957671474894444935480311085160085144660828250749764861431471981629284466364667538066041497151015827474231239356262379890411198489471469610144868696617123314166796431762480045702040121356387498577419799089314710738596628830803688636224564674461547328152969963375981166241508818307191844713199955503875917871994883047453859927968003644051487961841346653848086954218902151711258795874980094791405725220752621170312068950731122104075835908166346043515816553287485719416601435897592064521529851036140259990940263338346803837911317818923848437879323504096324984085489612185546018885152526671842585638091918221950347077707761212462128048402221295122053551535437473489412044683335203421213316931068711321046044429012269271864948786708281599828228444347578277504701841515331500949739064758395171931101831305060686019273071657577855209377002911424159504944884532307334536805974787255104987028588029925869862986511776612250902336298696860636607107146065231210525322028609862467365163726416920087658029836938721042197483976227583201905077596478321121727393499922971026060111804441361829484360150736354878381663436117501958287805214007289985248316111282899574869966616311778094779252750069381293235591305541770495631234126470923973869208094324739564252898049394627644589193074150930051569358834756260395120343866997433955498788040973121255839428643132524312161238140255064728511201001363408066029868507963901987297590028951491511168542005863516401378137482401611272572908525474702032022973228255611304795523400512244059798640716978396220489709206527499448728703862137214954445629916522403514940346235839522888754734459295020486632722663899888197925167086262431773486031078215779759476993716502342448502846354360996754757316780155850251752769716986555908508464568391128680207537365077217417639350524037879719478287794343645394420591548655478903094961428533871637686920430344002660895581608423025872165785668849539744027931096222591633356837477057044933625200711561746177144227789230311473470346785650122886873938859211557316429106398624104831991998073665253980800047167547320310148142054809925426131488894855927512411596195788226996947919942851007821810517163688861148428048622669101463178524215265156805477953139902843922087568688680671608877808748756313474704560117407763461140135755598639008954049145934004264537751820729101635308023237423610866070525118623514122860501314051519730771351442027206598336898946016291729539151468634830673354098691720682456841144572032926496818995007442018395170058899921373858546584590004574267984862704255669225056367397365221187325639820225567132129610771328101780386523066753647189703132459384125302284655660291339531925870441992945280851862018552825920574192871986098959469024189103349023890513522580972150242573928035402551871475060388100055751644973478198061599032858168846551852850095517823832331526333892806495292163929695152271161448449648506768035475918734358454708805040857820904645587752225171187633591974088924552835264941650806575468541774079031373413072647611220704580561298605747187306136732976704301484551167877745077841653428930176316581494338239047059998477165188871976627307288164765375312682438881322237019123211755250149989190181208779751005753240923096449009262077489620931692588737025448019799123475862126262144537628419320940672995571684057636147110628043166866225636117379466636754567728253764936036614960819566346759077780655158309668955179971377448083450983611984923897434208907031816960706441380652468653154388576237660044783183307177119997963947582676010019544286919882062557081931794439085243868611383366348622628754605169681694988011742789385019996112962054475925747085286170738137806279918644421141944071104008594230356065588760896412784538634165088680770626648014483792568156198473096506104303209198343477471058693671562348619287530698454835690113726084781281928634912943499372150271662244783487255726914916378646138001773913154877428492751345262484090524519775909093798419207992777751317614741596265789935297854706206101609093102560016988325746351314489544093199087772715779436285498697069135486577617855558393924710069112538321942723250031644530884100712201011764319868088372238031272265412420452809443645682812919794840103444793928372011291129691639288218786155956125455321944207887954821587502153968576116688301617310369927246479241380611248812952768644027796062369224640639997381211166998933675323995005448992303020624470932432005895065442553593951666163045041595524623542106537180471742501026944100443878592052323787210201652249170763336273262863321861043786537716143553253955647046347487029989993027157621692433091208443748019521965609306595442212015446717172544110787358496280361001273884024785839309128196384806767261965509324534225337353401012151016929367823530249554357488219217960858214742705178114534247081292773456333335642492989013521864869756814946869809108623074366132993025533572874242999270242557309142091382072661903962535338245124659585688754831114417800042458911202110509252559263620755656589241865724744341593753476738864314320524281940009761389022621158771878343244469072892381135655487814028099045975960602866288360938963568212477704317659185420712316749944895070194771870650222539547484131189864031354255922848816432119289586604139777483095781236453372447076736462874895757321166239567359524912827996052890743188685431033503989726737424400751695837670531170660180816351591698145680224564075269351860344699062595014698194834231725935992755336702670817530938839094569843045749661509874378908972836368764148740656005544246155010305858100505882583007179638790960460109154027975268756926405467835213974618692751963537984950072989390104326567288247458285778056288408327403103493154030230592942623333352683507063786485284806185483709014716524211955705397678269591796109759030009941759663436298166083424703198948341951811971092009608888350530510685688478991036655892106031662340944451221002053078309072217991911209456824831700103798366719435450133748239343282100856728205759708282772974892586737744878804796417301986992917305261234525765597438486707186839901017069537392206675813835986963947599403505138437202769527251009978472554632393452739951489682976277776569317615656754154624209815088387637569506042482589684269183259790581131577622694271816861636806335304415346793665941492062050264928836797886682432588406749223649954404914831810069044683189706097001404465173041476561726604828574925018888831081612808535977227497996368440969752637206542033714475439473687264836292597260832854937907320463665905075008137839755186178825220160945434997939843750407235940490246174253986970823430629229707470634147668984438171955090866197235316552211374958604954089601190116553706457350837105665698142422356696012345423298052713260220251555657632762704539104688977796427388073682649039425238327137313521459169573746762478963451191777169171208994121334742629906626086094110749630848663531224279080801094103169225604771513330177243282549633300141068942638603916289193601656694564720785873767432463832456184497465793517404981541920777181020618671979409375367840870671279189961744747059187569049718676243119156857693510566034838801375192816375426835091936285738240344642925777896888642575363174691209592119773575506380897434642823195368066074681288848674075758220556772940626201833562272691746108352679333625680688992536085400482700508326215854046845778077778955282975158235404148784408610682739483595679460664329018502481891293216771025947147985184739597112017219037118175555329825832048369753699413370077069448753286329319650345543219349442917080436050708670085958902865505961741908271882738751737419742940381394325721070802429345443280909207735954221916098882889641086640415210039031873747835723360703002443617560629950267733266377537202274982629949484581275798993915403355202854022435463186742019478849030138703156884584231318704553412921148771669873364392204464538993942060803620205040674452975490845075038217576658252344013702552469087427747084130600387369838645132057379583717778978561521644955439765448917741985423198442185118036458341357807579593816279430209692370497401072070745813332817956231293069598471322335190389719214355297966824866797388674162829021733210239439315233618931554235554131401000573885882130507918977640792705348681934243889796554249950586304122598425451721989735974697769193633559716789841551413231029858069052188480879239309393911172752887446378074453059307080824197874571157719726722739563945831685109499166780458711295930722895193576831460866330238948240901029348370474682197522259642209520375203191161328049300127593944054222649004958799841210116355248054081501557949916025252980526810522643368843510561012217655041489328055868154444975713935770828572767849327940879684065069978724802470691009964533860521429898485093550183843466202308748751149727801037887439641419497185092114910295881430808902140473146155224671635996826485951509127352199810869810081057647800593035502272714661992886890389252643625206087695112575340572626803442353530004966044424173991795289088138001441390601719766231509394800645570186243832612100908102261574514783920533857868681696978710734598307487204975544042312211980440584969490864644439860236495030523156926161569171623115727707783975081441702814341077312722383015495393435086825192304876203438757774685835332502689322604925713134591942649670812001479053182722636114634330415527246657405614970044951168238123327742573427687024323294521939975059510710994325493315035972135699044522274777128687559287680548974406263516939268984416982556116322567269686693864799489151407819777473723614544070614861569985552755281994093561088989375056550509352066726801552296228939195468093236089529452159577134528467890962430677173186507215838514487084167847157719199854889952781052062595106912557228994844096745373610951242354969225700024201387230137477831810336085275116260659101842476456803687023650561407019814140110058196279407457499030742863006158452581426659000058807728069260254825216912447052907211942784551011582317327657335907952110783640419816243158284023258230092081636709610350284515134424420380902759558321855162511513445591661474119434950338393974092399696853232625208646209429345947977590274292519049576395077221220133213924997820883444081893903878160849822561894928476854303367040810658020776624984125189639497456184758088735176498148117294968500365489201155993853497020058487189667684810294098760372771031599732177265780591263274231210751597396265500353326128182875549724221986908030716038751795049929593785102649884444505051842508697500488500420183791894175042650428757096277306756609275854375246430949771460644465881041268695924733877109401537124628161814204783760473998378986586007659618591590832038941743480553701651780211216769783211005207009693407679194620509676473951549195859051157621343490349692311016273070631450740589623214795228764660450021856279280361218991952479595897341751432301692359712334761221968535767789045257381904925258746575205072842021551024596348385273293511861127419556555574599763998178800118315149691116691984304432075935514157038334303685243083778686753684443319206012025221058497185190986263030430887175779129893322187510443210615547544822085090432557700168334384613024159580934559039909794775775545450224087241896635620218434045835460275488984328986158897397339068201956032809886328215584528575065851687744390005204429762662591763702237516337744961323798712812039970573675443783489438790945970934529892386434443436224533176071007684112546736502650937242646434613953827449380734166913025371224446112988233942518855312691993137602865269829852352291925713407333841361647973429055511666434744866458490069184468352856116196429390994136078827237297706301485412128911429390046610731058771309178887503514554466379149888756147192151619137550579922409398764799026835499986473498871232109740881347827329433631956189883981241155562763661406915478849446961539093972125963058174071539060188136363916873422412542775201382583929368931267640908776155995144473881457959795147509485463231561754081654786695048097162735426317877820218847300052433199289531209034454332186944649786154367582966602621733991100416140998151227145851955056470621718654848863423860279387205868828338781021075642962919051482303701672483838156457786436329642421477484945855505862150644264209832437957986774212438371912720262619374542162383844579285856167725400908334665498754320957830377327375191612817022407071128965806058505344540438068804610463111235798377662937012007985147368148447845675895966308925915643341456754065975100577470512365721220216286587092540819147521249388804036454122569351130981026962038866736219497008518681510825651590555684140673022984002916656619543066883248877901735152448766816376551585478741588603022921118033365304085250783975226099226290863019279222187552944133699328866612698639274719128017237484204587769449329107976120608046817388129354489232866021538417356163424935299423830616548998336474015490781891873113317241830008251241536688521045151487043007425837252788365309260197367483829124914205163095580730213071629306366780587733643474017087580095355163768419975731213106326116743900769931404215504039416429474386786397303049418595971884679830138389272072445229222347692663446125368384944809908678887229092819387312378963040268986271730724189854052481438654020881821486712637684048354792271029976924348705445777402457509820756562011369397969391014656923990969416124523496474122673884379871946372224093009818025940989111221963890028476863068506063929302151734117764724253542817273127583207630776092889810085173175973750970832056389016729676538707653596971577749797931536971617333433252531492195286054484207437252021694260921894232596163176047023350805955310145962289025861535165798558671722693887487171489861399101244732297738550217088575229804752780642099192326434967175301677420791831003270580253549295772442913458143728258375951260724683196880635257213893517172635176516348608295892600860646126956045029824751729156897022832576872857152557699795561718094951190115350920500889102501819013322472116515540495610831526122524629066374668887865771865973273553491433092043538990713344337864134318687796138223470069390666904016720742204060779316873451098908089586745695538568826628323692986173590383973513540178878870855357932426521435474019917329049713705316428162553307159871638641755123876065999486912596055921243584526907481492535033382516395106283030204940185134603522223649474530466414165006213434825202103914931746394179627821591396584892098279991600450850149601480039892886660047655554614611984060110373064535002218158291935493636508111154865655767222736056755187412815209917662759401762545275699086404922756790817684963142011819890667697317349223633789335690284979098560960318345530329772432775042008359400924521699166379213179162439221545808740637929202147597951691891461994543526689276707322495378559647885814278697176585236213978933030684865743587162821918951818053870682664153717906436274098656135002891686752561721010148715482747746352294678152438627050264546360971738925314305146518212096595887293521984602258480818583576904567070630466443471064314545576353417969287382374061534336744736221946271259504949493710426358749095277954609890726567708956523256918417218884291240393391065919771490554132724939745072852764639969376871237606970053383318031395743892352080381463559229012510407390898564873337755734658909774903809894128333772138355405830095806459589357266154974561736241845571411868701460746450966955302261004709325405015213561946611868525708368315251635764682479263015363581732842740652053465973134846901985030491580501074402875316521666211607150201747895733329641149365040544075836686657959977101686921883838727221633053003682679114628682602337674117017198248578784896114832981646509806918855858236040278160026679863669126000646593550111295113762335506651447552044270376221002871823126106104867997379823317678743902028768141044767209680896059182244574609207870217620425079036286014881558504618037492929346171905677139010636137784683080604083550949428556230486692464489492425848879591807199800606435718334042902572071248321354474988260893550741923677943020046401985663000422319176260962184849985499088963949318552383063306627980423866195809073364385134297706597721222239416807930103153140767138156934048793330726570228615212464909883296884217789395431643399477539052277034314261703538153911365191856427392903547372057740856478709672572547738735063748396707788464145217776520780152303702495166890230817228524691669612227733512745644078968150680600452642782713010386824469949680673859800358192411534256289439074961299807277660974759501844606200767935021873275628719196550631896796130761580439810870251899557324824985997844586810942223656881450787453537759374771592880187193072211426893628680565602921474221962945842430778596574887720942989694185540597630446574660404156675773975497174466762716292491502356150434324742547701213403280394469553947247479453848514407979041186339409274832098150140959125578457911540619723032261315102575084107834043738459638913673347200934555720130655570461078735958480967393728986709337843520905305469889091411221074129883322963816399576137958416631971894456045496558136198933069555932531676383904017869793770460094095394505901431653097225791469571641858193547132724885892082432171547796677316527502089126155457402147996993496877472093700409323376846669838617044134948658318422265247700136337869962265639823862877372205364419121860918636891527204722963044666227055854469429279666343368275017069235861674322476805885156854143829568370435701150800649012664207766160919443616129948140109595194255909144495929842107725224668486690442166320341818954258832743516746352981078707200554345998378696990283345354767125786969119014141265017388431771741011569989936737024814939529305048817027330665051223554587594403096103247827187340969446929702490199321951694745029319978320087143767197164286115706219958939958612960430970803345060573175159695112079354559680778744806289386561263223593514109077325001410170225163222258821641954053815461344964259805345406680735636883166723549066762582719588062110542714576026151632347441534350355400464726238585233641975984927537521800166125759358073038768198856629913221106008090262155080748258249821479062855277681495054470428112216903805478789718132142086483797685158237330980259393506186983712533342230452396207969000836726507981535875329885317261161007425314070420529538233585600565646482431829955083705683741882715231511876591984010928917017830567456468897996542788609753161968556705422595359522735605143578045794505721188731362831316877155152832189661937183773485034798726698289957292437643698283432228440936540434298347719850470841516825281103620011470181380724045576909084550650414638104541547688428773010351688249501628252413755308869163569528728456273655438004131096032887637972366152476855905770960386726419862113010263469679849800469530279964773443249081725753487490835484306881255437963245672488399235771736613594709517263012363805352215513680190065472403288198321886851576578094485324503944757875839167838346224778370165081718324252877641078511608576801122988478334942959320047245368128879175936726839760414176181569327841866249302889420415620300297516470367121738950778018761317228358868995556561353356381546811762243009956795137143186649881718385833962758911795455369313648883629425862840284014776241570202675683580201537167801387708683382503162596310042925001084290475046407313911261646327623929633612178759361731814601116068662720346729007095283601910903586931176163414494505345557158716574354615206180965335711102443865293386919170813009000426107284789077963712106378186089702191430394861391492253307314472602112851502223853770552490755222706240426941600730963371839590185224339195281316648014301229577092869244613277643768311547646370511846547715818062190766627470013885137302820673523207052249203727772518439582812603355313259312827360849777741209745741173648020172730989747300883980938358004688427419676270376398995510165456699449155676776032226250112101721776454692456755358182888030757743987316963614972939970375295301750828141109405828196423763127443034014787010389208897876309591516681639841827589942788314018003283103452016672544897840289398822178356138441516097102937020375630468243231051122064302609240602054569676381851300088021656508721520503846303853211998589465878390297461466166491946155212117097422541027750829653185735266043823821733412947539885454279707574674594510788685071868900295250229075596522571113646509658115592525039258954234416005617342011306474709766193575129097686274996823033089461374565236039912700170538715834877182023829071786878099512772775901369668383328203277265144229041417283214336609985594389920497686246801345057015621720578382793606728299205126347274284687464713611989249764599135090411530800316140963917227439338985253548377299447403629098271813488905705646751669339454261396105932198635556474472584560836830121801501250660640011595167854521824627825280188826003778514023151343157386233945327886861088500285725590586141454153261234391440848782438500714785868407286331306588125485948692697543922923204767440228845269312445683066189011049922060077187122967944840241811912928794019639293840762447530837416848811387751442436048864312861076741856048009663264240939000120255803958858033860710037026003214212980782006697326301701792720765343062999674238386024752716065641331472616345838851169690162869347595974674143350592442789608971432556879887242323483722426672357592661512374418267762351885965438556896407310563288659663187116187846971571906202826864901493461319833163198370968289897965142698256627347647620453661651116259655454323163481645688698123730143663313720174798296145032112572594755074736182728479944394891254758502554678987574883565485080751431113859208204406063713905158351771918484140701241009697483284085543127149804928683496245244108245285884707644334591374808751410861913382878662548889274691498160462456542390202132772147581687293056246223141332753362960292385252227934586885154517271185330219257028378276849505396857261328045581470423423707097740877366758529413565181140762918830282469568946416765469939517853409407308386589461561676701499142995465227530658283322259213677303229233311688560303231211035739190413787167113509955094711206304423101396800550130412375347015839671478105883152634305095679196997228469529097672446696987057972770629914908552395450962576565804333962790679931839640207863848463283957314130843891858766124490007762159044432654326867453677680340096913224102601609516358499012111128279942972247421820420843662924696799436891501345497337375757807205222853999668392275252071587612169853213595157156340170324669003791227748562446746746735944093057357058851711962492697617855915740685527167199796190426192520080264398483819847458318747315369812891637365606419859633209909638724296074404314053230623567783246452277145234879273840757619246221412928719600148875231881961689943883516770272908129291760193516187330961924632574031329749297469637551651321155328687481198046964402192558127930099015762019175833465122334402582601245856234324646311629191810356249889985179607421713495371083568145030148504088904964320038806780531511409220156412806999676985698685699989921499434861543657726038164099201433805386103716569706517606370791814679463730718895169548826742721816678916878667520612559850062393452210868301551691108608738958201651191711359277993849758289383146553088781944754035390587737513085319467380331060659447596097097090174017716589514989468737712998351190831985476148281463730950393005966131351442343929345445270433056175690056247085979915784431898920209511438020094693218055154137632066822454924887129052820760091058775106759176689105813379079712650663326299220937149780088179911438998415487267404428470809292861482982902243005011752961118613829447372330060686434306033910696739323676610929302922424004217896498785714413963969963296378948621761346277922472081544858505614849732873402028596899739184064925191977284133221194080199649163717259259237329397094723545283419994351916732576939758080140929914499733918619710029376527706126986217398944160140675586926389020826776909914285876894968753441443915818601356208729799194905188749809387951908861852717665545702488339799215198800247740854067252867165119162896568313993210992650201606281211587801612285838137993584420537933812924152347089246573638233346055609188863087403034170332834853094769445150261179279700757660394960843524613330338250965205820497490719965326429846427189003046069384334490076393437557468636142664757358742897441494306150328043144955808803581582039138875420637545909698243716464593151259494361833228607136649792327458498643001663449427177126743940851790361309816709916548392112475871929635334253461109194924126215331678903041980454444359321962187176294194040659301588886417016540020303123196355211789714237972152613193542034569648491812619253921049002802538944090041826727247489260789088495961727709894400018559805179208113030382915003240064619276631887180756109111928212042038344942914475151888323786335690335417918553750762972788701928985313514069472483409059917012085817812679562178132164294670732569789576532664187859360046125651372287241911264187619650579245919144609470542730948552809354775938727114757600199381009179743646147034395089288473811309930488211985809486226467493812431173182185913015060928046774966501107688538430742166422697612209913185842035059007527957549153111113553568276730797349920366124954545071836383442415494274520870325322029817231554942214893635709201765999490222311830429691506175384925985204783428341937093410805579265760746443062966937410362278949963545911726050281902716465950530420529211554747642950471794403446260789834133070217934577632577770060236026881929153197303791536927668919658440235261680851760229474814264646635266288925284965251556778278543273521169511590169763036160393497022425954784145566912570086669313938911722162850090863482546314666991878780167865822461463207529916680285272789009450613433482736416603614194452550423196390162422343098149748284295806020998168865635648000287263579799841988285964344862694698803515635582703542447465541311388652016669969678970713677034541488008090663475177011147501626617908990693897935948323712100276093207707861703374163314084555589441956386485382030028055405849674374587060119869549662785660668285078926458910325453257400180733298243558997827691873230362052288134594603856999622615266698228819221673616194350809794356895118899323757964095547622813750412548668118748225052563529891578370185907584062904728917224406673420947676205114873518479956685705327942852423001590972886274524366026742997903956165408633043858246225362112631023772951237639268680096324121744018522676735254375676497795107978128754115452579802058678811170135224025171800997499791052552154785658016171607739605770692134725355363618900928131927931579098779476804753291321360994642817542746134756831540175718600290271838034154423164330603597286615728673566464384785390687223848134023338536245657957744042443190922873003732260343579190942437852900172755623292071381726240246109843115473628351939839377830303416128497236536548475891458014426298922143438213482941966608363047336120922305490841675103287853417478490874542453159839917814185233607384452256978564700974308199943385492281433394903336614270872788592079905169866340158633899143339472164657862431392168559083945580119450615828848726285554203771053913794484289541671873623758284749837110435471696421324417018315273828524180114377164306693103729347062093440761133176747840764505875980748618975712432629705245482809190830873442027654390605459391562464423476810152486010219832692463962679349552457946346495813227736706469352512529389803072029295363542399952601760232175807236734691669265915148295430511314860420666332620438535848659190235465279594389272987840499703476324171524472562243137168776926301103166440421315985878549965608085036787526713642241797052909393650871317427932070373719858205007667159373974927144610024500685185471682351683169101286688867552268242468051509129292895817772006361149470108816874316579703933704491513400067948287806180087179955169645691889975228033352093044633323651538380427137003547532738900107189106478267499254837240329050849709289500587679438547195565308504245571619568266645309855732231201611506460471695267891180158503297841163512858344991983678032008997096594451663238894923912027926923811326422212763544839110838911119975860432053136676568652547373846931147637230449110583687224387866966201304188621287388888076679827738760333345531159568204237829684430093237448156065897422231882204167364180889679152865774228154561785084365479126455209181602805575656401858019909577392330660235139890387386470404365754375385957253396635377236438933038772905652960402171675595096086909795752743533732798031013773879945046065784800963669731859502759490820038430757795390986910486626108429802422359470945939048709101693558084041095692702901679674124822138464942739079859102640925435082556044867602698953385041335392638800283836895718485148524831499286313174271522628717806384496971612017265283538733614384791050490194728421432204362668336444705525338113480412453064424047496729580541415454317984998485065908029756220408461512432301916847392366292412671548324674739616297700922851934019680052578395409819105592969955950155262501883333311327997480491115999662803970831455746582070828111363878070895349923440588100314703618128925581335024843895063859561302774755920447979130178318781358559639237122099162751245759365204581078358272561185291195833542033069351777210443074423289251242684631788694082321581318048562406749675891816493545968213209724880708088280843063768535541779947085555504578080171571007308360542981362481214477964283690262597418320235724451306478569774093796740239126500602532065399566613112079335776332211527209645816949551312019001177880120894693434857315425578002812841499783226561657318159321662936664294862910316045290750779578669935188509855795908818366367969857931789331459913221439309677949564321801702297763377572528274485493633429123545219554147009816779960980456667210623776157645515805010712240860757017368758808023519002909669074466442442961668132748199570276799669968118973748369606142329811427065969248678490035706021013640355035405149148844377423801516626051650284777970705570841404872113844519167206300735620838428874366260665839403627693025731337628574556701655176468437391618091192147670072852256238169260245821537337510067539475004770121442521763934082094733840752935560503467318954593669568033649987574822327773921716208271215645145823036781777816312290162116568172051699395974355669931574696545420768777338077304133219065713746108833246190602868259524466233295026117612360962781715500151689390445135367389892534454181232523584474416809247634161786108299199028927736218106406373598892837021035428148065225540603269235622441756547229956155716118171448836883393077332166005532275787810640848772605108182679699776523347272645806878494685125363669369558518170896978619103484930375552714385010634678079972892096538240778471709670401511028802698586977371705784237541637618453390630438784475876426650685284160490354993901750974241886959621234592205265490836612462102248268108883805532609108828016439183582836797374602922652428576587202147113084610087626929429853810320572741973866692787763166353437787411668395570057580508852792623202224325482041894076330865071532177796968222073512304071232405774986751711396451755736954349704036673389546379501894551452931850802060195661476798119057511431351585172558038983218502830801976982323064576574859095799889471038127980098744372342574759480781045387616552608250386063664598161553726556314579340931752926815134521886711707190894892106554172796654834414093688956348319294656206177034962596107721745590999838641957814684701938661702556957577618182533124541989879617442506021481451893129736604348820138444730529501589597884203776842692650813971208622464972128691003537126735165112150235891201487811038086120952206518974490914938803131907668836798118932686493555105188934364490769367139465881392792415568113138864401969104371697091819742295833588611963998051076945683863314719879389620367394564107216275762179202221369581361213048191256865518661053181576899090843164698361134106460177659961360186405138446835624464195649151603735696939616629458501037504680711893012850799787625694884630196070255378416927832051352144051184484967144689254825112688767590641162011303402189515540928727709530103043063448226211341212926970209611378445053809667233162065085096606446730381034098782531569414145615005624031774117042195760507889725517094340332028806252018261392558316120555170298654959748099258293446927847557868726229681527525506185132041506290602949975219119398335842027351496242103555930630462298026091618732383368593374893408086845107111493023939173620852705568233084430566487091350409442470624648007058445511315081279890365661293110316000396903685972045655262418499704732480938927901684550827034911223285603961374706797214381545664117187135637285451884036245447025081256100960900748911519617395043408856723516521875168772987894919027704340471876974097698803157649373510046871210136428390010500267888204413172310803339556752356567719800008801551728351123492119284367005148383037683387207554189662710680051582233998996194099792796485550650172092906505105629098535138099947005388139825672899401559250924880204728964977088949940263560766452494806842907635389013441833635555219851435307107754136353750630064732784208459382292325460449348658757301666067635101432365526834232369594981912399285620389109809792202564124719842181294878858997033445001879932490275629212477949814296870091036956602124913420387166404484700100434335169371492643203041503191846151077715601237888200494055360332198000290742929173158379981803672639587244657572093298566547890975618705875743891725009107365289300337411464980374270517846868299364204134563261751750324311517774015990088553325717135350294821314386682479183933180455934876928803911058235666657457537986857452164534425494205426471838239456614304405045548023862102916369495370175172039301546403313903141044752692057301718571800000164683711960773609513433674148838553037539090163650070671681997681888192846185326290205634686130755023420319389695002536548544804422817329378442988151857270198773014251023585699612897045206466478775013973303061878089112264024974015520004795643490681287777500522624109978969735308665920075270467793550666873275047809298520914149322184004028771015832152637865157112554129670946787917379153870960796696376752964154368323831021032810366464082880498655405244413261581054988600904577342158605004953928140123162859656925065755703177400385206464837613736701484181085965332785509245451017695862557396833570251624049076615037920415699518711263138754844418191825138667105333597350019649582918186073151448133645107515214214722507806201057070662651638288270605909216441570599570188761958782961573345351019328319822876303066470124511360444870538922913876412855499824907675848006446485448229523154184776106635498451276329075499226959082347146684470781633034957727818225565922654752652144390408097465612535286811657722650719888282403633309818165190935551725321265459516062246596107665687201404440060848893296079018501832698836035938571432746291317507800034896379956661588677118531883843178596962629319897905161341064378288966069157160002227812435675003294551144169928347080642480309594606930276743264542401857747255279700110586954819617968472647883451526420825140040133640809193964804551482090196567710258348946262632438878555830747666113676947116666319708747706019605238788185708926419975652648395977453831411802981395540065006202985946601755283764888861468404024064451298165124796233096109579595617375094015696574810039047248743142034679115570889357502524819846563844554741893717951981148955550611086190630661429608296172771625966804320643733714887276491724132313385399965200383531743558429907191438368455670450218049446892130626573515049946991076335107472820208997638028397955845206741049248598198823670598439238056351183431936934858125313765875807690758943876724795175592386524052145952192640467892043874399779034284761096421384357396754174148283590362805921778272539404534943657992448542972895946441030650477739704854221982981134530259192910923308382289866765682603070365540787087654997127195668133335274791993964503784763612491999214241277457306901347008132274544452721423234731946658929082924685319538544588733530010581570044377272081475035142152008033164915701947584110750764107340220685595118121179099784467740949379411833802195591961050848845327938645109028164518669805483509522897274729455584274155626908943483121761388983368814608791907229635531181516794207442794812622990393166917692424081190793627197174163747870374120665802870554845297196325835825474623813818295672882508913520009768882967522546142709576084794613011700924235927755554595142988992403701604437680290924886204576955692784468096984709741679456132851047462903282828742105206248560325765084164638395501592674067779145181925408643553078886456069006297988354433779834504627086530601955606361619364601464626596153164418170329863205740490856692244442242049747124029833075545171564590916260374536631324758396566054653365063839610532794997409651507709987875842799871909006334559466096901935309912015406220312804866955915993125934860513191824625421468378361404002251387853037100043876454823960448348163377612535874590494142865654069483076146940460127995509932245553712523499936130676761673596965062272469674097909374164261288750578683086144634166867563887324848264713324049666170661164982947841016080202708892370531753048094335338498042519038601780420905074560084568624275779550137074532254735966825156948316555631021017386270255784777671549128935539762118922972931165983081375930465633020820999732180084722253090771370496829835108495702301316975405358473705953671965496868483308131232488685541752927129122087787551003228015158417515501309001614535146592228053103958460024605998775676687131286315089905671322770205652643013031293062705372807238693867336117979590858661457482227274939465905008638076048336590077736489399309034707851324819327179859391065449055622779383930615514764936597717292900318952841656673542687359455226081681152581803889148619310056093092073558962400037573645402976349923563654039972825629489316171866902636828667916262807106480012265405448224569153475757391178915571138926429662418077251224645389894841705759015255808362755234043636760512848369457103144367448627171921971897823075495117911020780598065642029387854493475985689124593690189681730038748974224429462427437453128082249519230075610322205756520709722538617938575476414795013149121400691949079187240124418640160068849663886717958502204938351083112173831405512825754391208921646490563338620974029284121874151406917377197444286740425101013496112101767021499257740919945250692007845881759680760861587276806569891995563537008565777627662671105467689540814671216860734983244597705485128792155034346335578427595316143369859897008867777649411332121059910498486362403233919231550361130348389803745673592472904166134346894450776978170901824503087992748480448071046848930777097009397952519496080580420005759449205084089247804883003376267826915263881486016241484383728368815594254252513063234349753961170864928477107907283306174231546985365123655887602770834180543162347950677214629594913063839983077658872425393187105168481925657146092529331734164784113202686363571911130635793388547136056849074143795145443092358897492407428399523756079658343462528260702143021385816267851316138672781331476353547825095032882212644263003323666734630906529130077181166193248699410242592415163452470721487290745165163389369588940743111795533802067386001520550569503781105666421332136062170470588116162092356111481447904339200117568614232761561033680382000269760324263703952193813448308926045626836866404043356742596118498547140613671619423817178927435905280609338967676671016992197470046865034642941841368541808972487600397881619635624758262609728336602617634530901801490586023547135645410847531156293125584519922719150886182006207256402706213558973361772061398736924679513167517325609229667832612186175281786188578737826615727862533334681453809234738050788228146220215230033116258547227104845204794052977438334089418881011132567100448240145878318617341389631541513560599253421465181928793595594337025400095090973506684684926717550531888160794906624773080217975472828339950060236358794237745177311109212136727356334687311628770028182769562613221850966342119078972298478189676575525836822070028321003839658772598564258382195272238983010431401700312142673509167274905627064208437991743338251794840042590771120045035670089618394820558814454370835202744602499486049564456212850354080188738555877927361192417952713267127897692207285054487104891017159795874330338712991710569466699957503968750019390116059199385686544131052257408746660915569145925177452854147776046847991167093526888079373229775615963266636676258463008699376361294925641272208186339931242370052213658010223899017410656485203476481530536648347407328721616940680251515997283586047774381874111592108392688821850664233024572491308306933203671082722058043346857508307248216907944339831106307366769472566617289144033484461435033761624527725049177105506443453744816311249444422967028220858728181410637223208509305019081792773445294713764030633176248805246367547290749663343406830997275791173906147757226353812033054024751283865227680739436605196500097019066356639411869948055283294560898090765558330625907851325623159046571248231598227455810412468533702712896299130350307630831986405563509210400041510171633090748443640514644429795335445635221908320617510608382938204663606317756727771282816993204269934717661087358787971453467554950236947817635910760080413957344337471467115359974939741132111515136481965758950922568229666481640010796383700207469430868297627102073206489225179720767697847026354025152502542901872263823506466705352446071431232547227788877566790869562721075773421165402011509090020766018071704520589488332019155935678495126120084981995395632097680094144132300262179881347074090905362577650502336003251813908852728230880121529640308726107793234393206368773545183508203761436206018751249495852255678490767922758204567066191032942131400126772622603921637828475411846429593870211136241604632698414732926233785460359404186567360447713922302519395892438725142043477286063737635811667560969021673068976651666820434129755416902445187278447943068866380095133094601920672626921596303230736672740276406305561717424622931103635551498302613777979421789764460513139627167548001570682766445430804072542406627346213019314944529318953217005077435708622181552332109598242398829980787676958448552661804718986110329540541414911408403981478272665506903545277766373963953794562299280453303113680988015636366894374629614861455653507841781432011528869222904992004104446442272293953044166278614056747729755211217901642061523548794403709241861675683453287758757295926971540084639644648663232244997157314964077860372852178480074750694905703517907847202771537206742649781258520527411814314594124038291726044295291736085401132833856318154242148095716231461861833834609820156023091941562465064709659647749287149668557452210045920833636519254510079318131049208276934250642131072393988254555305459716152643055936561976297010632084042924845637242883156774176555000975397431776378736826143267239253242218469517627707962956816072399050344200073236711029688016378710697779255485928519626643669160943515860788957794445976738533011923483438354852345396530038022123784979553475999765054770272255825545597382267639598294881150280600126061214493731252407732343541557716663760600897085848749819193134196788500877842890891649880857618257468726433912573952694834405559819620481046126130512918150063617998109217205608894243587912590605862624605764453194472494093474245788287012964025919778409531747630292229013523020043742713997666631618025119600617586837756099400213524530136968658415044382949278208170419998125100463175492790668414424744678864823053635238804532803346970767967098130109981616456777685923902068510621723392962924254831250357434419197925001964006085211569336695677382014887387110737576315253274748504920045875835881670511134107590975056224611837238038788635895247104371947402522719260587769887773902871732941412170440501449483763397091802118911850127309979519846520047590187078988710886833080693633923324456730297066357207098223435212977093081087702386499392221759355632804648600209139543499297783758952273004227401031875949559772653254398697345932330340459009310595954086138378632370306455216602000132019250218104197580088978339197081875137168085016876132398560610349892765617094596898149012008202078160949490877016119729567890636535637281298783376670121809126695165218458284246088535608134858778158257122221161318930598152442619173190928361449948653123236411789447234239461419495586484227123548990736815646121417640681827263638988568556846406591571613726640484374210987770899078449147675292152522987228247052914831939032171216492537206249646834974153937571115134199425000321718566741045998307370887258414741608053574074739444164623567147538652591029810033499927027506904087883203536369775217756141621481099491672244695161167528651517544567964178664163106225215298686213983232767964118372647512756828547294529863997093681379907486130120557038030573890045595045684563193350447283825409379804610388943882867114603438685085400428511721658804965730411288262383227967006153074048573635033707519107360417489100755375657829212059755244183566828839346558025157290851091912688304571550413382359632602448590762191564221813574497470372302078415725143396657303882450592295149429883011760415606602761316757735023446102946137217368018809705871007560072836034238025384825475694881659950643068351207876334150190709774367472723817620564712782796439074249763372127271910930525386191289619877228785440031258394437551987618368898477895483532751230593052790198422382291171147369090774086480884415146309037197092310030401329717365570978036457315191275931269591017899051528870719660913702134487834938018581854514828887862061491419516896577512060519047366829982336595457662144090761747002611581136590763711694988984063842494423511334951616923055831166705879960127573177785210901611935023713968849431219180028128955002428381726449461684418866229137952639338948425715025999647617896619304016391219705798256075308161681971636546837103887349928739633974701933271296889822455180305662899250612049213274439859664182676108892537543172744089388447498960434816759275077646380754201699766971090180728386835557137316471614523648487817901854114771318279659218796967186151182943216146955550375625560773086131156496259272831865928029848638648772474080870141977729425403974778134012680221094367136840001117493317277117826853823780490412356688662581009720645824662269574575296515925988133419482976756379800891951820499992590449476699624021040237147331299274511373001906477744859872112322579707786765623164495862565851037709361008293338997939773265547157822672841469804590020012602179761539520844631078206647200708401094491687543221742019033135442864717575149082368317892404772170689989185267404180244111874546877844553708941197317305000125161642796867591032454166414245108372478190792589366900888990059708284174910657121772102115762048942081931753360468151016296903611998375112877157913687398522004754614296771986753843035502218830385400909504927702899300466671113868040003463184573940883655706529579054650033413251374839450853040052930271424283574211829321714780280677878961366561191115128901359065297343322807355513649544967300335988338047575270374288975462276205342064709948553051350135539216240954543443159405397100225566293267582191749965112800693189111635978092943221152826454068774862676978779539705614899004821868098038635962643299511537514072643839201702741501116253900324657630103475301230973349236390329260894430105264152409490350784248936697290922398807674684442635572415689410198845456063009893123195932006193324087616483274417706436782173644080007294980418312110044066441660865881183038560951621135004868874352912892520176740881244837051306396033818571367871910511994032459991292536772909085819454289809294030629388709175906576274749815884997319589289717248861273857694613210343589771113972981735088628137891554660253417753477667182000776512485525794915234284853884038010148975582771622198386698029782020375498287785666898433506812289936808105309114066193225218368428009089258375784636544771140431332871501303343090731822834675699044922881123815724190755937204217352389333460753469792379426435507713330321545315835863675548118839931628970833143264738426521421028081433879186116751985589452549921243291114190211270346491633469091713672529753569092994831700285380354493236396192173674767374979817888664107470204043991253176214639410765987948589652123390056133717997057329165515752198551601641930754578105303610327148450549148525113412387902744138398210580100313823639925997961680419967440273060729704485627222328113843930742368535673711220337356932472544715671686370260006556179019579680825094506462424403611863506523516393514171476198878659539804647770870813720916725219618291179318571054418439940504558374524232363906008138177540074932701933282908920751095772896636121277002444086090441952094043748946268604843980548434492031974486108023908120532640738939516313275511694955661163580691879451326086783748802907857763457262386235904531076731574420268198024381920857927595146965317232197299602583860573582956686716969341576516548766162167275604020404769113886693401116189879649552595782175276441567304975111055984213862184225902858181431331234184810103590310822278299768265197919375525671844430436155452966845815896369096406998258408868870468335903139096830935808716779948614750841205983432662214621970810207911829126737732670523824762654242994818060385495467428541915770016619529110042856860532430445067287683874714122901367605675641443414964094309415088152050614310927418804743253072652053181627568835975562136180773528875578840450943208985618221793657074703054518881146044511467442233305075695764225208569924141660909611196308686010887475053929359660636987862868970856387197655948158054074216375712502966116684924584071252898397649482307555743930259034515437250913812285941656864730826536336629082972769371668989584345377438803566497862535750674128656785935022429380893907850418481866790366554673071407874450164949373884143042698296044244294627842949652298495518847875929624269171087092925829536423178239929986463369655081037364941776508953577323624826355160733249292794460721134024444268872846971620143408377320972750659164778053384231589084611681927118009861080202605256345469727412941846305924163287157847403782788653964554965388587253170117228834381274932479450018721256660992958626327862362839705484304291813762515409578461039850499805128632218622932765667045371288744220150320349740138312201399586098744001120107946894064300439444935305164389854191625858002615101751527318562024562361001258804315731548993508178592774984402418619165379777363033280811844747751467651285020728826691068498006831687793759835220818882156688564006341441576243520432885321961328745751701698510800503567205672098821597754446460507896046971864066399250952963413536960604812333750253129815663025668233034107416797081411070223262617502681725372883228315284619206899068169141334636061078147549526949704968492907534807567056135454937987083780236626724228407231818614450245435938557559434236693221598026501338824023810808533431788608277551356624076963366689912178797570252114649750052811847651020661223957231242360098967211185295281804819914265455912782685673639999140193465970967462027817955499486845079859711133375619895655226122475865468961753217915357230619276473148106735177904456859673134803040903185989763161335883147340413294549414517036057778166672427363766942607622620152517113185374399697121802712295406429224176647223632628859839138109765364052544424649525371189845103074208178223143973567218152599461846152508779445886411465862162113979507263145616747778968072334636212604865357392598369182559088427832590731896203444860803503130267272632454131823071830985832607072307114373936396069016598901441004268972012883913968211131425954450562873150203208106025208692460916766618363903617588284209166820983988479713770699179859481963714565709832838067580305444221454059528851981960240975571091130197349166362912285619535337158144083516443465998184024451804488845124017974797477908210231523713528600548669050631088479454598223799352305124057121537040846210012396065141491133366711447329116893217278287262801091238123688762255943919470890907504456740078911069983606906387762626676736810034422749896765398989092083775985101093419692631437454097297269061405747182301873245168488020431061011561793307210596449370307904671178336756450624273109232825661251956569618048273982790973531837179884001766036034204269332066494376155505723869414233094861942589912668552414967281085228324027969475932910199781267978610626252028511787121583034920306147526790169524207794417959267375142389889246787588575965747822715549723906188518435641568730674542697792141751363375453235621034129725958248695347521509530741540387243407987023750267140988682268074061736189977987722397726997970584215476675130097612225728546083544340221240264867866712224094954168974801328640183380982684542155264320422467021876310641149158207751138670205414637962701818851351240011319555214013274858564011578738758460777313188751463815149673875810642992134492830253773352970030607680149776974054761225423564711306975449990152683167721573654867189591072894181731077527953418480966865104128361510749262658019965327646693866787013198884277735877512994553983587977689422445355130919628321570294772133832006086519049624182990216697883558987520616059728395516940607562725982368555783995202530197277510803451458263519994243956574378763411055564011172065568825447082912054852455056545963769137789763447957079068953393364541493062989709847392221896572851599879386388608383381596488614368983962569203629361497169326315416782033195348546052772627163309155842132575434288920149513858563938263388551533525293668018486321026921682495034558988130818320925534805315048787718038195470042113625791188704353549719590083400429843191401188233208369069489529018203413650861918349282231345641117771351296810802266422353132678308008833600373450715996346759312429431345553143747178150950174349478731407537287537407436305446990814763324720374129002771113751647842271127458167173453157505986193523922162759429618990567501802973438202985643149981516859501930247882921958619287978930253486328281134367803898289496479629874635489196954339275078757791517701162914085404325028181755804202767600711406437757039373004532414854923345715794933789134889616445712981172799345006880766495609388820208722667216310686761020879095242710493836128172206969880920449578117178485726892084716206042124094396537819482076249681897314228808226818152619933179841160438619099055967027938162331349897252361456960757111735664440880424693985594616627045165771394490331555785593902242422081161482402747851646745588124712093002884060405475394866649476665429502942359495418051100139633352604966512813912946286548378016143691333755769921368640009021895996025404643679253820766709837770657266589689556354906080281688859348112751526937454433348793512341446091661736159998973832434029513684954829465346146843283166634531257310603466898448822460104152790129908558985197117197305606394100976873442440277124442930713563184859307361112461416571430064568699681716458903165597321014790216876373235890068588251917381439733130242093158747591913604902188856652361295398005514392558263400551236171320167833363483549004401215638941870814117071722679269092045194105362970387736387801387943168864026085148649113930929534661660355429874178902568840879585257080066468059380641618632823900940040277409725471786421420372965159717011801733429826325789577469695056001386805983168321467933779402250238075532873329700455203266352434891219618754586649748225670841737577884987635097655706066641407346118291399421163225253564324216369990730694490096007315584063022016918070739284982643296752839695545808847106495391555644939878306917196646538986699087695959083290519186572702592652325684647641759599886790256540313126436265801399485992103951951124947684416622326641478735928821725627207227800096059853541496150866705895399482433345990708682700309288380449702361669272506355805541858762608527836476582111472845488459976952198272325464531308021365541224821542139691328785828328319247874683951941365434308754026106499537587386189051069582798931556092477540853417095082001243715520001274237030223743970155004744801458932174972457914404339279618132396720963996661082457568747840680963973668850163875244976655890108340595706789689581070866691382481933410299192443825411066195610247102493497868892111824992465058383567160813637356157860935362245699873537576800877887328565130680381887186796616037004460501156456585696993913111286526056242706069021963357971574411478167547708843503059071168339560444394341943895272393688584366095268312165572959068077069969991010532045763128349230479240830877978165353901349610792141744670472239855156590179402728988976120795220662397250232974484696790302064869501289878449133313480999616322403884067762727446724398907115509984225287013182580401395056632918075549101569472041577255099066017894111276363274215087162706419629283275075267586111223436925989245998440114610597210348126565067476097889956802482500557893811096345198548614996657756298261879584673893877678171278719979913555757148817835235565533540875639693172796904483247180292598813593586520910899872143722403656998225937914107668726838173715087832931194025386210908088934178748423475924134867131099166283700053984367876087481056203352343420751443780692478629763393583792811567660751133500409941932688915465017386597819445176197489541358020277104749819473747953901426073323927470428086154450647757900137132032994470193151927262224750744399225126090520492558175681498918372703238997660224938032747088017595355252125450689681075639198782210169285050976326984875540939765551506952314603885085763814171857833155131678535269905261276394475002399480009123707151213637461623964406428655584000640792973811271702782065663508445403216841196380120985431044151125658714295732445768880444911138706967650400524962453162498562805205169545111716781743162184482921960034493732250498032720279567587801324984822031981704251097532868877452645264667794172358457853978904944416167087538661565372095371573794656546589090211192595658850103769509756314631492976514252839177026594494641919816976142754187366078131702072111859933603486759993114052539270394351901474624531230449368038266197671265277628508879561474933915296244428561904157740252753206097843631915478325523647655019081000761628248182264018315124123680323004767184441531830819052211239621813780635330809536113775902189159550801891445558841043015866089665027185283387114579223600555603442408766708474442887038062413721479837751715776736622264958950437664695098758889054767658446294824808598123456902188319704468740993852513732665999348087051234872516243986038949723088807146572461615884448049838520800040359205867353740668592986127054585478303866583942254392972262035166786440124718236876924474538948874979456607520319387925924417903315958315457260004237538039455464945538072828041091674395081293679069999844568908171695895746491207025480941425432084060972001403006296835604836125270759368217877507618086135879562266531688086691775579043242027981087784552859472805515695729386691338720900711540562737507361918809108619354541943274370576129795472077015285811938187410890334474087646004144446484379067885945525024206307788450861714277101549029108870676462665710412496090758608201855596104502907389291359594224798745353183325606880769398898724455801761941559178933033878006966030396323396151962359873898659006104185420282790136729897801205110909363892886271072602993470024389306353769276519463619716458526651307491811934609155416036893612347788602187421406151289365622935123841866471570415079475832302278259272346635470596190454141314783871669415881717779765806202665046636000259477908813896486068846608754131093370014653170228395934884547157521715053362242803112071706244101926074428617126302290435534718810326960841944791918059827074246845932631724462848275284624257096623645443127075902937998931916612064485324673709489525538774599908583518991025251431737563491693746805235589318779309300612626694367876146500584354461959773649283723356321671103668740864821002411812400130720179359626582106070896069078969983299700083697903798833022755163939457623037304217389079007836882990925138985191241697898306710242707786286162388602748040127457328610845311879331168738059574298711813374219364139048299426796504951467092026479797503619078167648898900816875431761087559193989339586914795736885473646798427866746668675421115793909274840942368799943347771429118159740373861362131428023678204206958898900689755058037251266869514393685781216642049637649471667292907271698966671552722953444593173212973289602458300553629841030288814069385237568751733306497097135438279803521276761035951337458872704052343706218921426025788778700781016631712485254069949217707340248720518703023684864551145407606004736763428858663179521424555608029409757830700038816341321741101415718956249022241154595999286751018458614428952472762299565355841995210698513028767327813222514968888356566861727765107591480888118003589218637297465700729277896268599433125647019422025478177505615297459991439514179278934703946300611219145856187374102112586452753983014936053362646789482877991137713538183425431762019451204650281579201354464217995678058262162153080600298471384087341397155574272083874840758404191364920794424809939319016459290507019502166249118664616939461446134006093109611205322162239030640688467926217557888817469691933512778580539413515185385780149647087993800984203122710976898642967096227672263033654476351465053342623082500015579328405399824562505729557912515828342912370649786822324809924069393105026752531329641931748080802332779270657582182408475530714440695793607057692107695404602368170913536942368637859496451750587694947300470947649478542009314831051864340480421873102428804987520286251114288870581836172974587212106882522261354071820488554721097860656745702470361444951435317342114704928817881990459917231925075585094758016462885191961136164208410693202702218685344988588130796917549993924335605387095815088700726725600977145279518567850611374703124311137266013779632573188495355342560531483136956996290812600092783071610790487987795518564365479531435498070599329489167997799036266786669653497569167451783899625717464178396300070880990326399909481019096017099176980438517058775209455384215067867367727431636874142099929404448935770223863663238369835867675296281110642623346546468468753611192977161216244762714150690465476221493726975950641508358386606831403184091893952052722552279472443395497071814668155358053382795615648751154627363031595713737219317126523659981323730899249234256779543985752102853185057851891573421249272440789313215810023813023711045859042132084029957703968437114793949851984335676543977222124270291212484958780435235855590705632263239997964195828892423287805908090009278853566523135389947679275984756963473639832930859188072908906173239073804329338324365856020011444615285835404303874209384588363588721218151168333254974715973430585495922974524178847047848395758821186884416931978081648454992955606525542053412874068160562450348764623529116333099713172097177642099792530911799646747255705490185967684855692065854926939542463098211203590007877239030613605105083980919749009222004742027376071754394660255040595192664539850410032491550788364105130374957989735870828632410541651226511470399746059584035754954567256140399899964720039951879357979897874752070468934976736864394114705123806316903624331271009782772134489516912301218695462674661607077653423735971700168091949467854225187590405802275615188773588175068456013452878749211531954045516675488892955037380978510115175505608258551730823946894325792573318475973060204022044444718786568709314729856757221692415506530596051877190299339629810870340696851421138816917609553147881234642576930211167636949437714743366614845402258976863999289378406291544860982422082361406476420916760954761122983612472383541794183580810560865718184402617309330397070619848262247901200234777420658381908097350920105480021901473076503274360412005191444008819773832214122433895473004004589800149891767293700542723822776112977383811705380787778093693114532619477924946703543709995412509404733873600334108073117573707427129887912925670026879423181301871461304492225215688893819176073268908811273298681394610872976304422755678319546308304111189495314548851454328252833548009321444912447749849232491245443919795251564329747581781200314509375190912502017564688031935582617244056247028220768651904634914655990185696096187123220433140042821227280353454762135018233051067647395651776945729574333613177506854043956962609188386692988371810437915716421013287318960940680969606354543790438183835589707079657948313359074422853978343060882181011385586871764902501943521325132963439676812868267137976634020600123162095791225641667540207531584580659685412492423683187352480195063203211705518090718585679158426904241035047090373737090352086636063368882037137815721656248919625756203521111634283727119443423804395830896786794116541971402453933783563724405550523079191218876268389112095635878442038064444898046099403311007554801047748234639708634131237680465395066456940093227602990040629578540498878693418092451109579861945970900639775016111834756145597225985331709175652659567373640588327739745774435382010769821043456526590554635313259707316707485524004886549010671056285107131197366729246952812516718595120716460337130306077137816229010277885203429525441941724987083904030418518260862812536722212138954675273991140170045857188238900845730000375089482952113501980453019967977130750759332851201190757139685196359504766319865915101069155113252780000034292923982489291222344527499893699103566859860637370702903668999684817420101354920798049153610679466400301559327453811182006033458902574487901249086839822226310387617285070186158318491044828130975476739407635435901530955764007345069280279059197764651409978205524353254101257212561809641443455433410120125478652235413237657250262690186012797134611698881702215076152219405425925016584766464478196633368759797134940791013557796076786588801705338414942076793924596214257677359361640423968550941633497569612324855345455079852147163359370664643442735394346015325860005393677053324000520694819698331811079868786596643519683294760466392961057122888135032847773425121357143606963273515790798428733572731243086217000650174248053756030448846787843305201237250408294739530188308930142269419133113674449183333581377468882300694480286390956561790802116776031682317468844476423812046478073124129054752234147730332226927653040376856333625138508698718765252225945131961191374842368057475258566317207395298019990948142405938504447531932153946249964954566811330635103048511731531862132204204762991501325922007007314996525203742599229814308499237339310438428626879220644647095717124915291833999548743514414907001028027703871140729486118720686119577639495501758697664162191969368884799660571038959767411571128078039015108409477038323070166104501181548715609827278568669848985752506741622128977367621835068321804824277973064029194731961053766309861054202974386538846629259885243723905113852563378675919529713055120522976854231533301726246703904738660793498834175215868459152166265429837014556952812757439316322362789655487978605092504030428400187986999318316356831246693249364310932274976911567608169286795734967912229817061974795498851146714953654706303666768153536350726414036327410998006116029509800157303925093131845320216780716398859762749845936194111615082463187363062068409268751218631252971011444369382045223543183620017468977931404756554028673078385234765894754282505772923739313792854058630469397513211529524424259873251211860394547621667731680793035821384009086066851512608942382961867139100305227716165563357986263069725575560676228705876738473282369993983522316809716959244870676404130603199215755230832365390778735621712049675418553319494634763426611063924068858347874691530729883176095476179020400981910171843871426842329777549770200772505719506106255532094074344914414734499468446315063566285789706267790988457345419760172573717939133185317914103748961371932106560646984420016797144442416420450515992052090580730785585624715691290454818898540786886911951671252714445957235324798037346135077030252094644395214899473234685331762833212579876684191059168033135025135559206516227471964068067063370200419887135505290662572056861514665169182674730441653118020360513507201280339296405148521128274066919487863920024775644821094368201295494949320310115050673075083301786974195308278114172342434707098759956458826889094531886690274300127515332289063039019925256450432619614822937529108321181258472119380840360948777295065539912304663146791288311723053550334899534731429506798867704874003769784686124207653127931430889170924237100547878792170747915895632350479889085659239552277452555446883828713010834805209137167543875355117848886760895876369289018288500454769757007005449949684013416170454257967266271768331368863749967634649875924926563495600878763360763219272420239598144317257569548976623655457868372258579131062221813058573743611915866258616876166064276352924286890185374679968483651470979541401350099248775634325417274868490023032319494341880556961263302981167497157107144248566509784183593516057234649342898832746500518616575497225672996530743590883340168834794132496679922085566847984307024435553507974901140510060269693654405038278085061078075615497087271996738758532563150807131094335397878007608547573329654883596737824405133668959062273642882759201491476256993973138289002232985479340931990153562370758591838351677402315193723094815189415418074929600071618339865918489258495460398529329897055347179145237681056644657228742736172750617571447020514740559035832572849489307118059408041711566720373016578572140437417730907216027678062236552883729608460301026409607518771361686884115594222497924911228082172844669120169089916375251050257222932427357337540310146923631451973164729868903777291690787373567152413078433602328045952655167664083532617733676895885097409812385728292744296212567685574812162930255305110027697494838123175186600005726005352846152982587489701830543135853125430415041600026553095310163765822743300596703586340499599320880013775320503413331112124741727359081781661616894027341982160238478782909460376245473042531340449169439305915695671165455433262890862226131531678676814954499576644237162640537503133618724056323233493022524183303036614719887493436768660308398871944917149934989289145558794254324971078061101552947271787233947629451152417049113407346417098681900379837634346638762949786367449757211720828831736730568722399787751066161013884443817547767691079842115757418866277307697992222803545207782287207895673707830560009200669137891385768297298361725449786767147272387173286646403936705083097448206790308816596465256141623226678261773193505286512350373308835644698992854211013145470885662024801531552374881298514905720894879901934665302956495557295835305156843721999418743618486205342746910683707480770492669420752378401847474250491396711967569411790790006582884602628424538855987286211373294506572687917894814268927416897885853575991968156996695704252026551248714709980111033196632953796696511571586946082746074217464817146673489240944548872369223325290297599747109284690762356424885554135635928382635833785861324896920581072825984078700557028009576113804888400379308259654911286857043994505706659313157025948708262354416894426988277901226492589810343526038857467570618023561461781266158274931986988064669680100229286181729238526129629638662074371649662056354772248864575441203030844811871755097688039779946386521593893151886274251198838079375963092842121293794142790565703641431393094670594580314977383523996907679814983043044307457845080327208285423146454739027765861993459312515482281794362687887282530243951896253432942293283203574588181052433478935160098446393074396190296121758943684468019115727815782254176894389659636499934687518870823941273352044154908835845577055523123192104252511199093102743731482961878446347835012188793059187315286272092036434981479395867822421440844588937966197487807088161017282868086152379289518316732829995720872849304256641280655280254959029281107458569096333602386068640020250037999635620836273471719608164435191177399935472847642254734540980528956797601681511815749179959860796957413544852235624368672805083859855000719569264270413383208225018775336956092475134218647073866907073672664656187535370677467262199253530842299595776820951837969145604134828465379552555542182595638200621621240477829124227823458379407091144176360718333887554669173938311870469547030188198471449703108391936252513843886787386019161729526628078798743862806747485484515892306745025525272048785360588077615496728050581060851077771007304559165389469102773457950101006908138940306905772910192970550306007967935426153001225871166111851048703953399322862270662934111863844172828097058699742557474501590396903484684610350887763107989910378617587067367998829244523315017340531169090266100682116455609314002077769436452879593745303201345434489061464662163956090874360805830938037976448109381704714348144246575286182681565608944296706841461725886538831721423486848878437858572267470894610014283045365793259774864691758452548960268789401232863398085835581861598474319698457442814527906268769077169653377868011651669443925027854651986691658383659080399857926542698133524380099771003012220422943222486677709640633625656047163211455748310648672992094057331207673682281489451278703864866992770876487268419895002766424518927735427761085264273832607172719054616675446562532629246885077026122076835692524127411311773317312905090827493199951605770055643288409708187868205242618052283323731430058237280759699573564937813756363835395934434133398670598276626483922249996354535311372839126909787878725644746890552040603312105309817563531441373281361571643710469430862170965477224927060647878764556859549968649059680752559921452914723796878888672192620913824039540149042615496459805633114794590979624424655727648190539493923588894127335543880454442984532284909479994457927844616283881116136440597130928579567617553483242241735646234944612431889398173598489718665275659295999808917796226005153796908480796106559018117761273540025856048490495956437930210360534450409544454664315593429623268285867501261594888919246135499277116393419200535547201136788095901215345678373446390125391279672939174615928561860303499861827619423800618206278088495777151244997168380621885389951911190637954746214637068067267775554591614554065722967130773486371097036477076612661621829838646148413274315005800045270509398602067331032305963824558238614075843191419439364790278474747086411208837166481130508663659803771082705650028003959955217911320155408140728073009783527631585950091224404866490160049791364309217307445453235604266627432857253968986285509317179782755870750447361021765158222744072280918162452849001462924656393256906650095840521281747248017564107174267221140592790473421801743036925553212844541051657421808747765764410267700225198430736153649284128295510495798011972776792098987517478653417898646002290554862946203657220971460425166168215982114269251512851434216036294680901168265135518006406827051582063160288606769084435087401144245978918218613833171224070115299191483827790849177257869737245039845970471568662353023560101768499140453911644674690533271500776050149137531715729463864489364116407213173600637813976180659366174918951487265319283414664686808560319826569225705734404216776607748255365658135715107613798956006083027485663705176896684368950770043623806627450256970380108558152732176377651563676794492919532594829238886391747185053411726219437131546258190096179546219449154364993732432489484394132124137426308078173734002185608983047471288596081309809258976682937182221493497423809704938729460078407085800931187733953305994785516513444736706728747195967088568026602126708887615621728677784615720946315783919645822980456978755024379222031004010294786208629971061529358798145601452083901300571541056122024099152283959429217047793846905391489084206035488486609906103191845069759767479585501953507452246501596439800454880320248781439050481178862775210546508948009221381798869732297471126192294498057981459698151058834403395473233680722269786800210433903096757929397520577124244395165243070416253970281167027932811169328083140854907869693221721429875298592743355781728500713643742295184179766789180641628998119333172093223293275570547302178604296655301422489202404798879202656315179215424964703465810328933871877402621680129371170545988145662080528683067969312697326047897446969591196708516770529526294089960063532532917126498813547291710465288074813423260784440933897103622098648610935495224937351905840838488451382006930367988678384818480123868121323901871381889798846556353145475210805976513411008361942903539411586961104448684168849051266217259809685059593073884437408866132775323952105906880044809475081446658685648668126305784876351480920570602762878865339107442678117720432137353866337872097861620632471795444972742779595707606042941957417600993310222299600300040487421929881982171351260071421819923318792122933992642348753232243476829493544938037857454574033846650942351875296537773940726871866480754655803832242320506782941221745707687284777572919328662532918786397043820078477036878967704387529758599726815865579042422349019450766837480118793429212851174786064010890123243892829526271120186229433295572759448187739096496773728725706202919314393984982435118947577112749675773196573258451427728919674039047113461646422293467673203357844674427658901375381649605208011033465717133724888764176610369241785572814964704337575467571177032381344691856628096319579725114377864149415694529905985109972584349771392670145888881249258513895094320600894457271309430072584839311959399862639771249143008269697482221089645290067858928089099468375800196740726809844493827701757067275629097657515216656475901093902820603552636570534842413386345782087260351060064384068103879290391195843801177479992024513901548983454291338096799738916791794151396047014323806509576916008776220483314420241658876166355731654286120416362680740434156664132979125170089020755188223859003392247232403041712453597402649640903554899535659991882062782187405667694346637374334702641916340671564057585849584459449216672996604086275236769068256096899552189634671648457786233311673750213337613555380998936175928329604179720023851418584807383010465513401576292941074632256527062233677373702294179950454236046205066328880360626700709768007462084852479864352174443899390449285786397806505501788974840762347762795330372215609614797838255757390572694076082497085475294323460164397173203378371125807302452598834022159072042682334792768880319686582745938058093601175322442308832512929470058301804156040778241027687805700117000583817667446079850535974386927477792917251249372620176086821096289754271848818437187093166430791935748135265398831477386271676483184614303873925024706627988470737095762208646110521318618616709422626514545718735408898615453307334080205098848172700345217855186259259918266686232428618340058368351868791283019046350270165420677311561720372122854475400780898325385153152026196636787929532430306406600939303866557970834654158951099816905655428359943523438372887293976552845984184114438360792949790461166993239510319400512990702477258607182357886717216967340993555585709021748706986095190282457796966634506461286422332371128796525437267648565432417896904904744953163889515323815802174456337794644198631252644513092554762091814936274254706786862812496923913304938957135149324288562837537723757486773758817534985573528190335069840933977841216620941901384398192748313149079656161616685673243884924761952419166419505855545877538965071088069605316949164159022288510129090081549038044713080541337295425401308399151784481732565357510694812628565746554905986876972727696077013280382146797387681562272900945114087819442562027854519409181853697746039510539727255430530271156036093363201898087755105990845780244689606407245514944210125343964383359678976470563884567579808232079926508150812578415996863283929449190400601134087428803683444026175031282218515490720310384906175585440060910160235922001119134716598081549340657844849552052267421097104687246928014817306784861023360666464412974232925720550072299342543823665490721491099117407911760899020753994967241048593660399530156905153228617130914634608743387823335327885394549655442349508754538905163652623159319991053675332773290498708866914900957113587486964363020242498489625376016211763212029919300941953379166411009933511172480697465728056607942140574635884401273090457510384419416841975461094446343234765000124258931958019791592188070048712141993737959574767856426967902512743838140914765091745095114535579691909967645924570989603133769612601198426512808447628008400972633507051371146899756743549030596232167625473079906858689459640227065266090820491627824523320953233831452181740711464023227733233884114397910209590250474814261815830594960986952220433008692254616480754641812260458330731495851424447726162822599835916578545886135557390722506787070382004345238465635534156589835343105802605365258917728334672185955732667237983286935750236580967637741923371043870553357889482497919908505236029843331325794679340606217622666476845634059843046341934266667012000497775215619442603885001582870689397944604496002268042790928986702362871342860941764696736168753532034977168757128213124772160627994250140988229441060889108849197441535861279464970379422001279395964435623898437035309841202449351506973768718944263961307528942281324249982493094296231901471288457521739769153535746703173858225153065988299055645526527107315319704244843462255439554301294443592630178480422739892315089236529459448468017157293855925314554251409186622977191877021966034868143866302521855259835779384784530156486344971473936535314014192239344355306064755081825707823669746019277337561698566426202249653407243741374399485924471120938342235661209293248420746007642425000802117831374507102005062188324776751209251975928493294638746093294032308793666721493124677977679194248177940772782796543911679186641865217896292470341034352701843370754731506249355571908378575936427306773916704061470327505426798323967171428272874811973985956445780768506613663980027532799784293065207473045140348919068409433278909141321777105990800288726169810780855901534949920616930395715645836346618125652809944413134770975192849939010197876393282589978262141479027051715203961974420353109055843430139198874803985625812072138846542742018500841287404390300610453097333475951129719461727291503038748343943896449910488631036202392222047460700112107883031020503754744013472067772949633544472562980670549565468572850300600877794212608390642741405702670440746834266715889946774767193621188374584455207084761804267213074683050855311833534171293825654678811251376792933418655642796708549937110303100410837486838380255938062152930669072112923246447029969370506296953191615039890342757235197361402667551878487208889830651737848973534122218565610327743877039677628778663191965705668182570649090347476239078745630337180068917116931131298971822568766970413940583653493790551253075115361406059361222762939994264096125259355900822577948651901707366715367088106368383200326793183558366076639840915333111833331066600641478511670519354820093820493848671094283578991745848738470061446842288252852229433440167004630497656517714333759275822245638130239330804472682495356061725355943390540037128252839258898952248716162678989370110028310242448369498965159932075002145181770431783262947098933711561464041389401132822703108821181358128260659894082269828836960756003746720224297980388422882660253845506331713061596488172152661037406531979287912602056409680902660320800271436962545441673261749840517172313467331440144088498509322102099126793393407030446540344518177455851644382964103078840701265722847296839549460599913835961206610524676029842722126443802067279588467306035324537253523225633884386353303465253168666931149061139812704073223048218623289089480481732902625841931873085350449926698706353269853552137129163617293731959608988400994569121614575005220208562766210643358117732953757919988930487268967320566013290353652648857486758331100280423391017553859023652324316928687400524112728339235939773256159474276202012067105878701112945794659932219291896300696793269410756190988536929845946982445987377610797454801912338639204711332339031263031132962045952986522239630568054234723680167537466878515409969174174577191108145727763769461066630085782775213039717042472254085481455774177806536385490072236932232562402138829142192405185094428240325651520604742390467973269546320348240455861511890027261316020924244708572700847395142697735762127661466908351376301284022417715823422059771412165783709118119904808042046385886221896774697110863874190726497280411769250009170514375106931891623396455817460304416867646186479576762733399406389421232066705170875981592818820030878165001211114232930891916926094905549976037195445544373391871185167461507025145772679622951850685428156965450886482797305570268977653868699630985890254654954234709245599017458593973873755849913903174796246600926560096899917690980871676917314076879353365954344359046017982658865980719286938398017553529125199592649927657824796366075084994557319001645310616757263284188560562850286498057495338779473819009568219840663138964363499480533747313386605328224102927839269900200537127657025917863362997520881110181444775692710875115730852992178904023161326613511766285547270236943158054265412730740994462148211187706114368724325060949855839664618581399936722363570383770527737906478661626850218820684993066762529688476138523928770756492031692822770515646721591477632016736183417645951159411618213739173622781000513602952046720397594919479149717051090663076310912667523381493550244350495335742789812835866368628730769713336635983251556490601098072995221889347689161389755547434603919749033764723631010411609300124018593071732300070472466891393984848951241605085349117960708486275126821831233680713389640694968412147242736450347802927201061475020736545790402499272778343342884005559020982851762745361881855450859517133747871676163059530349459027395563567703270469686922277405516647622064805856156158393127779121765995781451598984359882643155182022119369938050255510036370481468600633968525497670212826036413584815878864171457194751097995651826489497901925164568636391173253043639907097019026217446893726884238099102591605607899690033529363739114979129361412428847082660160687482991166724296247647009976477347262466206006519248796854369725487721665273419362993543863521086938876971537928125077025320216025648883189078658258037970323148205078086233832891666487719737575949715415500224548316438069457796776626992923003701973300689840332841345157472846459549127850162401016456191495952109324478453486710446064556840896044513633507783637686931108621285767913523310604601126540209835206639316245206907044384701337010258408187149134792576358955360297915941946658976876593084545144717712855333214792936991789666149370955487286631265176694138669464922179083061866124993892440285900916558730459753963140705525363363344009425437873435889782914979925830667843802745220744261414499228251470090106270402631239917028009742614861617466568219457556627947591107017785163474690824097584537053547149379945119865108001512790490103215940048485218450699500071769068119343613917264528161631896100170491702772444600567936327772879279477749360739231225552377350543740544420670193052150981349252816741840555665402182989212823268365097973059850539273565735351521899693170941698444259493469749894877087141211256110571448379242594616649704815042749378471479883207324909640034093278132455773695826359521982113453284661170824050118193682622049676160590470566565117218488245545776130145710619320001692012617984034323933932409027108045337834287086496535741792526170940082531284959429371077356419644618298241707189306590011951750467770615936252684899209212374326221523158607692898191000403156267633847685318219730507900181161113197845933342339354666838627269210982921084664185312876476651980775092316044448588090735024677463362400888639107691126329434449007875250748401168965421411870357058695382061086843479984059540021998760958248314462057404626347060906984463900046454773823538847282587652812277830534823249189361012950769864383391167204492596343709259731003387145108125812805805449686257676837564757431403578488485035930107001723693681644995010036234177268742720595148839332053584480331691099386457367901562709356314379374395847300611541520050286477174361721552772745590691246930130383354539208958527080930267189453941535883084293141839837419735637968552056539988083376218777626734678805510434632684360990067031790268283774895153671449725775462821378293411452592300780023974752971369851978191492821485855400795926551148671533788782596966854184578854999068899992421133754767444075937826976684063638839448874048752843675212656480669798211765186745016975044090275046481810125831159483233398642065984329879677173323970852099952130087853058286130304434060954355960593054045024850670388009492317269022500170323521621957423535395163846474076135711348304191825105538614907934157836076664347540898003742857695091367827309015127923745418896880531890499803778406789064273400914522721130479848859326775826880833019716389385451905236683107725744234537588130581576194144452447461904374271089268394901648170667650135319272820547417674261568704218297131631617682026048668864817732638267456453477409661701343089544598334126737778528816058192449431731645976856699561235312808315647576757663362546263972514587899066190712611232787475333152865738066110317938514492847812706628251957780832094171332112434184018011100639232148490151724513248535020559455145710641801398760052066675725487454805496637867698380952036470352686959498799643178330988493043961935223779183603427432645318910228308334912864154481017956060752296221988023396457678638601363847284610993134849689610769353127578351614843898754545516114637775305318848030411324390364903935212022728548624855354173486051497245663399432062325341866610344564618686213744007534328560404090554622841018455753631443943181225710500609009777502285306196050449862156347623451851886536633803304999084651605617519402626360169298082748236404074419408131977595153818442921401804443947227794246918345265310873519298798127205638355871102442017456044309185335005005993603487343261455431157787922664959821120747557931619985653964597635552933085271402480807556731983820344576782490205256887880240471950334840753376506861030475285103116508397692504411069330494414325213394123393246571774894456821768550625128453316763418214279402046928573717583462860709539332796461077293296419054248765994598918882934630027228648996518600887500112618943648190358214762028116018507639894362664966551661337742196833749158249104861057976827996934629449195314704003429843276229947153467086171395406104035091864551206803301194630982491617762745725433322081587300616646723082136767190319002699837194266118219618660848161388394422949825599779143547206891886675829060552656332738939379979650105101226563930385317275742808306882196836562486915341687107523155539087015802695233884765501631771531025792321097985819545160319263406098018889505762866892612837984172104868554142173905130439762952345184931053100650850173174132268421709247983052166623416315773266531795869237309706778622126489726843775879262652227764027296630272960991473840040147236466058198222324619486872504817096863764177067427402067179211164654250992892050695908098538459530678651144627542517334360356805486951040022678037470246375004795697721009452080811268012124020476824758127581768770407180513822944566962970519610955789039777033205665191452221551027665382547479956314555302484456272823766704512925321550421900681762931503442442186928692964140479963755599885060528848798355994175874389219905050427216880902520418969494806369146915093234609280831268995619511491616118887600953753066090090491516588131219661912945237454761085300554096045743018525542766953868501088203818259692335466219416021491663522523604484406198557396392856521866640194287534487679726705997676454853531122504426936021390064737932804486969050018218546739024946270567667976062206561999980399334995914635002145529156040468315302726452723683102491332889484638775291588464081388201040327658126069948188419454845175146673282241913220953809393876549701116084332749244522013848140220466191560337857233880186043519785170258271995440059058493851716748720663145451024916958567468314499700287549109819155698396566395670865919799668509029602402997610399379890046114794889337290736306309313629971557877073882497978591207319229616121215143857196117385595202892618690226728779623014832039369240244431211949927293414789111512071550363917607453171991113770803570955885183640526248603106625114326503399561309586518958835888061487477624678495777361115109783498941663526884345650890043839481168152813976053927543600953336174206051434760008594375217580539141092499628057843646917968007539419303343571862986285816519247542736825368787754918206886348970098824433650863174676628662617026172748996876187193550693819397202418706429393713019094727530714252070986842878299164599988020704572444720147678627598969514347232732234680109575869130991102827724649271412887699738750750630291914418974480520019237276409618187519360958407652944058863733421408257978170249312113362112612928939267338501040988282528972163183703510787522409284117164085117029794616267046541339121230810649080902422521140463450675685918830360909450465258717756071662641151997619389547150999910860057087730306757812397354849026683410709400473075665066860802583496901049266686287067563450612939856148702136939706070382206074074034536300107928957999183125576726472540337420738796890222092086756832646074286522925333136182744832445744684122296832879447732934061396906857179461458244035315614682431655214246134447160569574179081927928241128024962556256085501922893282088127847387022890180736185681640337322535857764139871839394556205921590063917937393347542750595085814495808672945585174573347641827919165543524799982056446946541652943277734135242850042734515164335875170836095725576386055550511074798800613755388925131665725656587009681679668052645319968211895912579007986634039150603652038842956427334244432183820184163178520848314997611743735110781842417578284630786067353052235604610476913622949128564039774106261476892125775700396291788205539317588974781097005288983476252701970289821723506245589711771903811785899024960974047045261601353700317724900160559137521481437924569019932375653567624043554542949944481988374811532093986991820015036214786406200484849370261035526632612768386873864468594231205544308691110021831401743937095264944176679306235137913364869644123214558219058878722101920867038689348437695774137574460462822819726842895124648351332323701850487487812715300180682230502356326491798301816303420330592118876703943948103821405428912327873440473756987857440912670859584096452589572447579890163271878661903488634750270804759102048615597361687116121470229546490968483757812242070187573036233536686711367830261578488565769588029359673686835236350452728330396257562132845368278540231239661470628384608843912481883644840356790534111957317959190053607416914242906077513225064216581311237684382172878573706670337542614767149724799461719834209771623452937119022427012875429587072040956236841790143565539026865029797246387225285490618478923148058058095067201837914725149784127377706084321332281107079115831941647668519418153929212273085357991711718321181035972912968329666035182331156628004357389146503311827144700668018992813680078317498122446344786056848724558497483765035532530685266373232666623751909945656864826989497851185366046049882361597641002832819527003863616058462176515354508505010463224030683987748759226335892008951555205468922748489834213883150934732941581087626221226575157525839362683708489904794950157312133527003163762019933604099775900199546247763254842531950290680106616905180557013317647886450182282785679382441715768926368869042028013256726181676180196128317194629001313372751196444112548118720949770134377874686490379457540511762955107872134425760182983565117916630280815883284696663837196138691627145020487873015192379667625407691086108998330399854432494783688811807334125407926991127346428406497225796315361312733337668408127819473525909403594406303531852437007666702194711643689605611762006163913031453793681203785097322636164607146082049974790833992662233801758555034859695191694375456772573090752414474963462766535819611800124534398764844490630793309128555696260717538952083767111261637184790565915860260274442753399891617411084341244997449597768995281705223327460037937587607389920194601055169831993870603816736207701071594002345753487929893969846216096926969055348949154461574896669769083434676692470786896007226856079313527501359344121544220540180179817715231099048440227689238301187540385404098000019790195220767748811043245014701896144888492001251157690541529356830338960282980200251553209259655439251089833253321569206513267935649864923766207451149196881235364604029424371763966792018136759597005527494494142271056330695610492451216227707166459001913036868720497668706788492822997857757392067563297447353862830781863085753935409502623475525078773824584336486840156110516474592605876088896197002012319977210623817764201200873466367217045901297046539772225230017301022106669020211528034771482261011791220627673862199393653170102476307532775702599820076053530673493359166537487731585455058641155749678233515483969655952722540446249198125292877544548641073392842838703726942962578235223240069613139128049149576719363681073951252998075223295363598304703468694044820099318430386079475971019358497280678008280760085492719578831918743605651543543004355271885477638852547492433090217379550755980461010591286260556117993742588335111248109992019898425155992371183838354785469361467287818116513534365437961521779712571595681461289928792585115927082813186020168368473814734789860983447692571882928215444833525203965669020243768997694655034085469339371028593027262213011520060935440456624313293556804346553076263128359295683603990613403897657384875679291454870928799455857016175049807745289997963294318414643006688874980848533527471698402530014966899044172598322764266711228794049230390296929477840992129765745905118249301995211185459114841928071382860226630284477751956196419562020320461231898728180834465665619443318396353301137859721408411441367716357581439519745448154517080938085884386217581914007407681397812927449163731369637949702803253923282739276306706143224147360338413194664155025286625694383624220581540409545734491838828221910162185989740696783313287040725515956881340682332383436243945241612385091613537222762718909869382828752521466788390587503657460457060273519000196378906434162393266140744043077950898442501616939421036566704465932831925074932885279385255186829730524114027893177456522296979748454714602111825187192880062341771608203528564377403652274738093137989236986301043239504849334369648337329832143509093622866424479177568272484764765795983607689248656638487114152995499704936762926157690615439696236642300946673481812918175468151697256924329784409885142392423846116475700409881702525028641392153386744993087560138908685606936036512870764933213831590947334904944107916143031848589325275457324386055189437220165304463102539486602265477778846321964661894067853897757532615685881739221708504576582364762058986470907837126703122330720744950480823536047577168921820430413341834551318345599116523944364645389029890104015763927969717858581342496037529415402207571250848946324911126585477478247043978221596595901900799056605058494897627335022512209743227565138856939731565490033930710568246301286528396815735543711721069724265149887668358488714718608452319879755318620314978094269590203574247522007137962787433793459614505076406938026044825514783474449533305635577826848550431961074564551598287113768815074775440532980387163895898983401376455469245819835422396161239994302402685429549189453535685863921969130920962251392507868591086849570145337375589768399285859745994341688397823705691695902379734621913995890147741470081532984488719905606605537282359271306147958484748338677437136934612592242810224983225978593419540631840740923242011280135574641248868331893002446957747300093336757263451345261419620449261466599941894581351305505106621593628244727037205396946894897471156568786022065902017409498359788033830027452624408759773936697071222312799525276683226234603002333303546414397068881622182926289552256964365232075039076796040899459697966153433478997591002951865150205672797240080505330708039951239977857538564594771503520127670210885658870265968441547268537551806235732657672615239529676928760550737084133831778466459732990865433605971391826475026788932937176902517867805279995432639255429411617830158606150376898359903038943824399092569008293152855662344104996011522637363536156944638284027717900840765713309606243332799271968180436549501776525777615582301952461199388531564660988612138757033928650679051302910246986119397591041697778640780747288825574012354126684910097230695201829349035366943263387713178349046413752528424736917337943247079019758671171142178780400155699031267046186081017689544768591795046326964133250598567025579697935199332368940658012381673887951763316782006792000437370312618475933162446234209976751056904380523378078513129190655617692877758975549421140760185396284709138978654786005502913577926762810900044538112484897201532909548252601507040757757425060351372696692034127881120320734247729894737904923165374625652831109974372832533452584589647216778034390552057898446503197073631503973258916842998774340833040155156766641377996144040499360925661318187915621113591366878933736153368403539331093877624560195408043089824842296118271055234728453262188015679317346890028852797158608329561661655174828862199213197810794631580104613054059175958793049036908437166334177903428064012569262152707465376790273695085845264236369415563923555980334413442770338574235987630248061635169046872110994235401606773863107006035382904233464325043686866747083319775500997001985160374515423180445897417281614046670041405325601254406593833386919095913586004387482324877368414439281547122294395233572048053897619680805944029341686932725688954691029426842725051481398037560953195319190972967153355709800068509121216125617556835739624638411367978807881312866325275787027224297594954616907729295338067553253650528938775081851380045961176807944561214565441016276050937510278143304572084961346071032580120478199298580523615348635740998503056917083795390715551761480024071900572540351355446520111379303910943496074002622436485090839895657035526644951150246451953443599249274032889532911140676041424785050475411991731375633957252324426420047613004928346888936919406021177858029467806847257770403497355426594109106926105109591686039490359895288712076447181011615288076362811024482254663445824039905327176806996073177645261281846289169294118416525812610722112188485312322335028699089467630819035724094517986704609216216146717722151920988840823722547489409188061737626883014906514948624186021750960882226305237961430950045143050033740158680158557532350084978577656088641078003234969340663651006784455464482906583747930479901800687860624055253364870396066308376147638332806115344994603127188649656432280800108775508150071155987244936319277705739178821696107746516029072114175694591838630825417373177033633897000382799214660693184726758813539275102446241929430317520375074842378435593536842456424012775161000557260854801394896540819222221785920345501793674806973633722150925482874680924427972234188726555433930339449618912295413630534778125950840563708025098404132896886529964263033351320679080104813135865682702225537035350672672460978250389281975105470467749420463846360341831095121863946059179861512480486244922931552112549803969034083921134389197427542124840909058917100645431618594022182989149787492934408763217806295986539145589382142979128758012532283191151541925204846676180011200889159229199737150000607009334188850424835179481216962793278987745016592448232544351453615408787410067710747122390883625933536568509832756283686176349913598808811470799736669293400781217037075955700827845560321903707498460476237770408494137859488517184146454711643439588593863219891559922365782669613601257417914389219762168379367530833011833876820613062836620830723436554479830909907971460166305192344002627925654319778358487525683154378689984947474474484506629984110176084096044827052700515550790541482103026607079693056062438200344126060024295720317519949275605795956641419064329226545927416191499184848191721999294096714675866789904909459704105725283378557586749524681388148257154195233089167530873019142022813327313330600692078923205918500864378506329006967653247700610154000112610701487505327902322206300329192063297245366589706560203646316913262025333747285348194079977868462391073145582646330372756402722830353249996240131233999226058161776842339614334591109979533580446589778581066334971449865154040131137674255788587204366206079265000954627377700079541766375926801371881528612870373323231760992659193355558998069974535398338472407678234884555126096806051063810263256372208581992462955147419054562053981644917452049246171699372195345700455340380122842644297120040290156380533324142365823375062468154665630024759830326875188207137166692755047333502823114454818959748395551508823440894350035680592717959221916126278552096044811471684643607478513492939047394423921282639459493959184956715253906029637216713629312909743208004357943777077390809519583115562643823230849679727158296571262303003448431077035711809174038800515297469771427911117873999782142513119197400115293138102392825296423464809440509176874392198932786699895428421128489308117228915258287723480392679100751798879731737178595829123060479438808782260987657082954999533297478509597732825095437606283675847997594295919435499999802024915879756911902514985720948729097937045056259682642462455822220849382166425307404117872844178318188640086896341963647800355857320192980234437704254534749052688486766099765310658301209491537011102442924493150456636922080947599397812920044047069430052005228756023365199857644767918256556038324106666779654431887989542300224601603499133894691733169332673669006182137219902794218387275609184247456782327465421570860734166528849390166574213706542951270859310196667516258370090807414829542341934187574446384585731256824311528839340580065355872524209869168191969399938035360591137184659444098291831028701141271410307593894557619729347470559156258505455291854791966324427901866989677757603936965900568358914973389310795826699360895845774013784195505788633393904775745432388800764664983176826699907477014063182420542109585749630428336175654676634382102623907750008791630451583949626208247653603131965409027921097696515974853088357055662374339899372199171565221775487753149597413001696524369537999604418117282926259812876760723943308858373635530765600919657873322822979017491824710749947185853672827655422689623686557466149458130736705010867831418325379653424396106098799075894006563195511068814635484094409557392961897606134824441025443902916272009888516235026854729768007096633122738023717249412524981575607998878613617395680581283088218072313367618979115381364859533508240283509934664184706520505808985243810927407020778730423514727370842469018798187959739425676368854412993068074679658179295955596323842120698421250994880766470739223271665349410429829903741229854640149504795763888112714809997889832066408996462163832500206012189527603316141806146696760868008293156658940059268615389210654586950396213294784422664114688215117496127397806711109942485607411871364728291284213003628728512341044607344662879324612430665140546268259170212012088014016420622179687311977422298763301888872214870301297621000467671542490746677364293783513602754230891919180284530001809001524852026066965047851441404341601149294264134932469581544928578603014898754680259880911180904044857397611925292204873801269766312731451293924992113502506744492657577398598676680989671181770475135279581227314545654106706844850571628608341837948925734307568811608551267517025962319762809263319861627659428889803128423846330788188077151751368140228931436186622159866549426090391883420941107925675474378923654455348742901095153153231869830466407652558661123506592011380236955097157316589858993870164773985929557432275187843374036688088343941014103838900054149055726397036307238706497194339933384071217041267071843044265990003624597853484640379645744558451203902718160573135629455997682130204815249573739924408585272304899525141151828559394470383857179650279415846516376994721082254187151815217892719136985521320927438276297680100678260137715250972531201308064957716359822079137851289348879924507847382494919936056801630041130285708352561779989274248319249738007481051555020283431307328422140108942966316123486026900008343590036771648146691826776559746480605571678977403449559734123405393545438303408304925855578158875289599354270613877466595512103592354470103622926420884227078446266191623674397809695134296612250325967331695028003263255262761501885417605070651175008163676882650819201374057523875869880569903661227445241470494135471190680397218088017066105902050372750658771244123682223259411255441445487094356906320309383884639479221593196207185490395267437226357676612906873111620928000817309488969849691996168056940753214313167832432451000790197418265479550421545645871973228149519675022219328540227500395482477536951520547356826160354456412101561733320342906939755167645712251587761846495433007907948502449027922354649923922730023960924459386745879243879963779938189933327727672749763535901397890553877849299926159988774633534930264626146039653494670214947120064209042097210945770299742499836905416131527144781087270592283624084711483845721682198442849267813493791597658759338134390959552989055088348870060322848684511515428683845072462089617845863139833032890953305680917739630624678829338469470201158336420975080302490649457054026899100583530812470106113348641554678483916630359440769775667989116292073761623806482067122824240209413155775023917981187640435567632586795581593583472487933356497803376804397797918910456193594463742142983780881304522629688861935958665297852227526459502379528131019142691198945369195040347975961999107360288157839203498068141500611297986912952619651389722096002486284985580132707704613611393940711379211950874522805955478402141185441908298071917655279277816451803666903931152137212929816420117887019385601211050379718782584702267134495400400235912083502847799607094794622512164343017933308579310187369637325986832402307524538278910321861131706284732961049808051818963111926677290008559565565833003533383168845387287663754546928013578685140480810652667805803525996807162197014750097448170232669340639560572381445033586040781374796165049018604852225236111835679835819955237696572397077719019319391879918756434635995963481108405319731624924418529303594236087358226162426878734966322551520635227364071692460357184199113005657093983977842080375644880238214977033481396807734240220879238363147053638379167973689997332058676700909372646316893816355387329170613790411969154073654480138563705971485934158923990712997680818306371053295707361447397529901064701813247089655070726747316317110026505932654846925137371052359604323435812542803533839520874946292208083155899142654462608029744765770849138466337353957559447899380847149251269703776916223421821391168410590317549624000603881805972472079310221201223319137334522432358005060281483502414571073858337045361320734169614484706518765899111094755033144626699032880688408583081780833642937580738040354447847894288093307735109515356088707500818765202172209529873708342468925675356541673664068163630882461657520295677527931949660331126535331260042581907606095785871221002940414037641244691870788533414609681141441981395864710254782840426515261454634788487468027764542662118526715140646987424054747122321210006278296273605200466885408840461804266002135973997523503175098362051728363067568237966553461269727102540784000911991465063727068787314165321056405404578831043315999781315356403880392355455220429441977096807952913153861829716212663385147430788731334100724002664542923310213186076750664403102661026989873587816725884259166230710629255534679780024704163956553242127677939473320981464863770452004365232803928594199762807949507759726373329255115734851383251167107510133619075119854430777356920921886787061176549673394082681347672173350562807280147115823663226296267595173775293271516687665198363318241266511732144824816560643333980975609935514792712783076570051695466196001849002869327077769892403691394837915267528199227667035176521052583275223307186213563522968721213389893678494027050247856818456458413831249617205255029016458529306977345637755751717886399848357974410516979792038215143464049572435953744018634684836691123625184673179299137878929285961543235467280067878528333965742702503299696294753733554616966229666866843397370859424142479941485574852602131342635565519854105822227268581338278541275808317808636396752471060685366085768374323614758442918196973196099915959237834865654015849981059992420110961755772598368342911730803786818511061950305392684159709481716353186737709314022453393677183212320011204705322482948931290941328206654778094620833781942570071163280905631363436462581127444127610624819236290835667215332275306861074734599406672783187936074499381710226003910379844733578511272259219399630642793548267868259498402371869008317146438674842205699514509455075670463253393661436859127595515244613478742410528128472390237965095909928999223431069629403494786160413686792850243970281937828591364964915213318496766201932292122322815197077575018410620565915862192032751294826672631313634989732214567192938501652066959324347063946769028916259674656185027624717798380337348517646619007794649139663855032277785359490020849433136997853295358373839284798588290515214222612204829239630452613918658132735596656131739405797546037165500718183746425383713918173681443952641361951660867797559063979244822499806596075013504204182346900121138225130132757512183755657315341628467177893572823189026904361607773626797807401153304279475265246229432827548161910214533050334028627318025629684365134985036118855077519266555206364333847552480283970550750736728343920374839235487011718477441604212107087854151940124665429401825472365283960076985351347564912805027645272185803052614606691710911432838256613584557474788177406955500909848472330440829605498758437128304133899668492859679158598360620592047327235954062445083719556945108553259650012477220984972722231738847140592683003297876873701058229418032357100255303467213136371373766248833048621946886008761814453576314594664185276810114332254633938168753110000718549115497291407790719088498494680213515726029030058608557348163762958669785789492260599845919017046236750285896810427340879161602734580621508173057439492260792951224340068978809563205199470555070132441406002911515885769488473995981154733126668682159755981719652793878456246872008445733336445879465136606677190048680566029764246222607991524529631271775410164120564112763371549615599902901801367301279378165700435361974781797426741126981392588628024144078695647143576757074861030660247008743845358555990268321969395998061803230893055140506356953287107504907925417012699521468224873860247811049914755608927251731473674318533312021748605858091116481567671152485867524700252688452021996362045580263199184951087494524244206046859814334034211236441284926692811391805902316658067519708430878141802687414583120116635158836177330625420384514980642390410501087933004581156190694062912566435121490353983887675278334281605994844643125858465322615175580567990978391878481066651946124795426290656366198377413308320263323146236480752668886821861322233441880226138864471619665085194329098575130833533803399670755235384248364723324811683569007009487208038177839301186190064865357141441098481762365888708306947890482252788857853960282475928920581397821762242186445537529847805221739501273781818859880732471370176029880996381926700125822820715921483761785108798111998430606812489981779383472245083547152193761709440824504278676722318167960332525718077165686209613760366400113437329855617974849995721240113559798008267093837455708001153476385516009014538039268661238002007792250078210323314889148667501211064709795359387137756991392953052997011595936292795125938485280684904118861622953063566455580703282997563614546416974169365638893383107376217376821463659907298014630080357870799409813031390726805835336604540687970503508377763743540711645557304683483657937404765504809579850296302719018357595956357709780753266875067645058885971186452719585595387350898325921652946675751113134229876769039047788288628920842858957596948133543986128639272038850260384443764758934047621956428418606790300366730696290764637816623776230051671021994637530100727859132541607759168431265658846237651400179692082484082486743475666861063650836354541176770724299992377780321424863996394728793676342712485797204067058907869045281161635520396723660905201628244439686405346544775189193264540913409336393928065031058973582055195362844667470656210631267148719341893799548019593664015867867133110805867521485391279957581368594555144283030816872306613664140160850315186807017611917188291230909618913700120823999680424431292853222806898245159873088135726042641824906004723074303207325548381575333619480459411039461905967166682514651060390777477743681302009130353810972114690166493283436333971369231868975374431018216076240927346895239002403337516168011433691917067011833209307927529428320764682665509110758958830870486881027348426128687525246912812250651098244533158765902735611992552665015268598483800644163151773768997947664609946712621616507570932799811543911400578848644251332907637672560387499425789055897993895496567282576354950261754742433370227275690465327672894440794035597804982986706197838146936317039894706594496303077843514884035659162425158160972707968975917319955822614052655234373511960591993427071460871708081461765922713331694676378734116663568487871997074480732896827306961731055551411301230572622717895382783844290654485273010961993180461115405985633733145250946555364753645392153540024152144213927047540645892202722384918126860127356635660551049226667197170292641824182408071962484004650695529544011042729359782162999701183587790209023023980257357632948119433408748953031901865077952735759607321925686160967031493142175688899820743920949824013835975834104170536126747521119538956658817224523488667665364880760084860756764982250350850840596380858438936699232162075286731323340922649704695830100381555248664599688706027289225544519791536423183961320872411640402565761353622567966386671260721266780630464956416276206545006730040076482617391330800147762915268904280247083491888537741617178901295148697550078818580977140286667580200223467815730833138547232539979041762309339785570749650007179562224339826704723246481680602057838040639199825540419003224937236904774089192506818319023468870242187571699192403862526802650696374238910625136499441763925728898089480120492977298036987506508181938192819217459939791409872547430072105699230877146520366141897434777367692337920025725355052494835464797236154868220514179631771100327268802640690798957580086427069217055236833799109116368846100074218873689229331079607964989879796562322897590276331806147297747580642694653297772699002668316308344911819526611853594643932636320280947798339693810430237268891588767429032172706567111009637182864624465767319041877305033054654780240750834749610150258598839890653127873193537762925106344276382391928728319348352936683057402065652966328079901166117853404297758745995487867727707990560976284292849804307388047081376078547663993020083044830133111348477606256732999684042723269967714473588415074002492681222848508690246033629123240112711852047724852696333228141242338491473780243304712978270623063938826832917634050298160053853689390417122570281676211341749443676169578843526185616696271560605704929877941488442717786350903296619026281543559407419535223398503884667460029676433510102799348109443579671957324677795023426395840259085242270377520617810435714571318406980122634005455676535172714123114885668367858086901389854172321206514415518619862128841665834784765800105056026408923706931410977912173331076561706588587187241327196312665543972484852349465280179311991700962172391070302732544503434533574525085389148885232186506226859304164760299133884704637764209119820988192664166311420798694711360513006611531762546368962811155451778472152203435946950696841186261055786369222499679574343246144380695431274517026278393534843244826622920242504193642581391175286448436415153810778522617163472400708614367839926792114820977571715949686420679097998036828364911899827944488050043635315856903220087137374392454926631355147812520581917078974013198021119080766377539162417852470344631645245023861560561335355428134200398548570979028463128870354661371733218731105209123279974660210586390881989174368576392581241462255681917390591917327079618278228932343088937103900244766348597875140498420843393266679556564746130305898880379343780391133444244293019932648026016736469731475462400465526812835035775686743137930189059779504660223353711366511347568119329744923177272714368111018270964363103424844770083605958483332420434723937374109094298608270085766713968186149383998272896565335081441361540372851505417060007496523909301128086717313811123114011365285466148382768482676352311045975157443803430026813795563926931240847560041424997448063279644280942475672958688711882256138451742654031475427984442034812916824973708966070779129794310134961054157280936713625779448474061573464035882374161806650904028359094591180184002198929343394644780302840414846131278557088789257077745160412089635376070792198260235060909517684204620903797766672559359868277849350870197359879054870446456205278078767224467086437370454535224321113673636561781266281729490717124031549636228725571692107936281744971073913941241289562626712229981158267819664021258470294492482343139473064810427749171362336057233891284539147821060521031349035188194827868714276845404781496373918944530918252148420908215585927705683211864835315163265161206670175972152400621077846534991128358592978964464314538909321298336500191952250398831765607187706554817558365263181250653588677973346887981269315943135558859829873002450651009119151662708896641703831105575513371320926738755652746538497528459910999906436696421690440392739110866791403844749212608304781307136394391573658950683572497437585103581939791274465922314861570612212296337567223039595117276388900741744829712199260901949226331499298736834405570293035326045947615263105344834096038238574787927931649547011141353534354070516177468755784225367575334620864951494310405151966363271054708860018271686385982579191232333511582535498240646687012392508325195830737179685207850381672546148566075861476185604790973572765482878111307952111375454202552103309266768291909034101575654832208852824393983760683420129938817238330614480649668453529151933574278479302272242049927563875077393299158861213472527042229518620975044535629325830386622881206699102186043969413272203610861168371692572096963087651540050622160347294500992579316866313307412264969302779695121989683934388964230637958575325954195936943791618622922914844849750862400201234917404324951094346640531880918326882193016591527568386784536413032114526526822209316617129971015172972113595953439293518619168810336706121838023970059262764113990850201829448680121348061511740786745819779710568799894361826406926145768304932588139579367159073724353035519593143703692046960620248525833593700423619824554099344080545466526106637632106838733502208675060441999824585533883618761275751355896989593901306995929056228401027091919951687086352321373065337364000492146899176571496721592316596474913271840049138839585018853543023761958313013980526378941920535193963289308397312119660030961482698027217118310505091470435698697680793844878299689282539327343291041739726791810626458401836835335203162648999855884337316753957389455566679131850364109829736390383089979831895826626451045233912678564460441221624970718741973326446393456578488193848567469611593226356013162850344342100763918442071463982718166004369061662733470604542767222062837856439129746055136294743021743759124964136013923977395114215802103891513836977498981246339053463877917555297948125295705185387615977447083088328428008690044092620690910973613170495821216527154210273229322809079726082245465827586981040418036999338076299396654905755719121281181839172025457997321381980256949809778048201294502052313703492779199275276403109860181499257780616918054430239308271020922982352679199135414845921739882618216674420850427980019161285309856239868861626037354679411622759551893523358414377116199634474957860931157393340454242650391567764314363056616631662695787920061024189371060152921683495334025370770626542074736941165978560614487016771434945280082725009108432389673473492964180289613184985657402017540609510830692279800415394869895052606309990026351350013477459859663278807272777696424525178902010283436803742611502380065664791466406837076190679980317247923402134820992029993225088470702262199114581238784645709168436560533250668990906802614408187429924210289496597855692056086559096139920206626011779033307343861214128093288205675071686582135234812439015638583709574607870652153526251756022050881697871333951124099375906458715969304813700249611352073699301171785663720453390168460485919659155133554103333214117237116433570302213882692257688555512338104987661692687046567115784047066516769639719717448734073253469561298184263886773865951106605741998237979303571248662331287122851638556857058456242690068590501728705698369660379376479422142981437482451123783871195804845351178116736082817300403433669060335507318632581356060021829140706584878822751466765725552660884873712596542062375881798571943083963912196123318430954840423171470287350293593456684258418597313514682550092099412254087745853275550405236060318504297318625701289144681210736365707869316844787886244552616177507276226087369286497949005543097583659588023115522763294856609664299536345610410076546378804794527393496529747947290332391233633387111417599212193105009633542404684606560324766908715424737999866367560483388019111889913634481673804628535825256449155773850552181052246100590248345935077517541321171462840454808778647438883711045922503032259618949798312814745550650108214950702366541764930977001920618486420392890156878931963784594597688138671627918702016701003062235950366415876807292856834710513766683225674195147193097901689108875554271199452198694688752672387055358141701786041211852436569089555018691745167533126681538321650159436937262868299091903985351491909372252075585083359698422579122532133709306157029991447903767224861344022628482233529867989659850978709741679559382684980570556479238552707239408072944976430540420343053053753774402641369009305788047288237825410185832511274780920958442808257445307095605491486951653484668136191702353214466208673378271168007075531978417382451523368569912719888184373586070167813873217589130649184654748661780095280955064187902261845884427830086866411954287367452652968376906889440852117439325269716372886819218462622899372758864443236147337172921345801777788406766133514650944988538670434420090737313087464785786846438929315792279450123976424304111696817896718939609817242497377180258249340431333857889762098423328381806697466464946650683675369050920718143714271998125538476112980451668363756281191876689992822705524750558656142383735529602660108686983425720331912344882669313313442375473113804980867693021607159925968559305427737154681069551876753284009569711242101041158874225750311357331520289147542508782498986569524087320784706887186572695761646177192195029027812023408609123217561946619425575673610942710060461168817062553680341008825905960844701563861094377242427548183570393960017836086405869292706895871413212170883801862742333525097816670038703703439266890385934671168988215406955221478638645614960769728889284869150465915614453886428677763679633805580055765803742121197506218954749793366240623539240622512589485834788439826339965483212280752849836015632572563236175293796216779913562350910919453616691511191077715083317619878198137520212644785461807433873037865077266688352200509353881392190776858276968282707121146621445574687004094867624947667833038486338937426531824276276501109175460343696910537017822235415760701465827985724711313413322922521257982364467892342324063135239250775423872231292233213748869461020062764865232731023911717524634360098092129979707281410766259820100006870660710613705764024147455782858848280482500875657241994885876880418160857555152378971906974459388977875882812417756434695464434865300081700214184817354426580015261416900220778903593105643953513314034601791731355728487385393940941789088297973688093317028839451670348928906176689211203878502360352818222181086071049548844963417619742382759441754404873004263984288578379189119154044183243097242288557585056143262434648057550134359544150431106924161015841086016401840636414791594458050565957746934563980828023074330300361800035444382884128751386222775457066733228036437668812798634024148845565356179096566788011335897165972857569458124510987222630852239301162418653010881775055311081978487707887096330374137208434369840383165694125714008833487502808195993488723436519135271947767541855544786135031510711041475168869152169794091227069894586416675844458143243035100924830611769449881134896560740720457299941737534394671953964564228524391141282586311393798699181854731429023420481456665413198382624974707841417587995988574733489372086201400092434322830338884771902245093995547301061863971797418448684399641677988285879306444854498543661064629354225370769317679589762753832381249902900716616879908431764019355454016634572320812380531654275454703115085645922363490001279394318448875435400621119414067785167450291044182218507158461072937842221790588406621136745508754551899198802376992579076520034970774187771164655400656744815459768858029059497256611988654727777552767908878458311727627079830652445833537469875487693222813997164100376730826117533922532631144541368074773261784917710909062420611425265653768230498648232494052435594778399730278500369839014693612256684514263974952955190758433811176744882070711401117808047517234722413122660043350684870383516043730719086034169422851863914455719555171552505506426454487347510660115945736741236691937474158172866611462208933902559632544295422856232407135762345303866195385707077757342603721958470045196689793201519209982431200879290500136595990764468069321312819356840325913775747816259488948866105098255306006070201066407462866767793958242835687795832767339046815205706536399964200350932964656950108385225430824627277699421067917118445542586581552832202925977483038865621643782106248932104570943479146150683491180728990368232984809038637672051546460116329032461214891481724194018177547123836578080039039793509048958933213467353279380182780383491603449476261550723157497242247565393265588794408602480780768775318324842091727531220130272867831595644904871039909828012140435533956865668477962063750931359753164533603544523167648987230179540509523655937440447758505902869628253020508781981487663563067899447191052515328307295270001889123424666793186895620495764281806618242395518240914492302473546695958865062840157440547691198543009320020301421663067152205208926246884628288791132759220875503048263989168490247228142296977722046165882280848102296938692529151155432932902753925002010429692027550897788840124643543792892349133638662554723877376716470907788491135968767487364878685633022867312483248754208370306444422801252408908816722061355806497979388237255483759796664843859222308834388961862754248549008817325029358641376050647123292048728683155917740868968842977212401449818451668114982622454148293908003123163699138930995509185615797086217340546731828986280448693952167285754268482541900707994951521389242105267341035950092348601194446402345194102154739252092072745922302998109640744344457796161409618901309823874036579658144823225763628012653442862694438501513148744046791774940045089993873829137613859262257485444850255048478548918476011385143690930459097942383925806390829350662349886178366719155510210422140919721311671731519769228240016428385425051197413384895781727350239662248952389700351875696549766208800625164575651634377137643198667490207351103288209842402601416296858288296109641598224481603848111714295720758646486995311966140291356323136840086492386357948096943798145122486129663038686489766654031691119948313917321515432171952827626927485074539989289398608575265666044228774616014052355658417228012782449163648964564845246379353460678586296588832014254127277155567099454422171715354881103615556981010080457982381970770364448829092310384306530999312706350194299362592828555026172631968377414336873117766617116303007933395524129890858363683336930380561042627468250054705058922990525034924258999981922309176012269239084141544990846886585320948933189478383939102845447048804697662596645625748725769461516248096367470101242539068123769984163327567813617406261581803101331855741286688398015411179097989795104055058980242457315919850504755609269395781249265395438462933062419835474909690057460454026273217514171383991523793889693761477836233464794236073115672223167634631954427244459943352361334448227398077531638769282963138329150794688371627268156426513896332104421007338848784281205737022014946975983764430334907641059441236048614647255018271494872863361806705640445100613787209600517244478963054016726259941097534928176114168013712265747756249952741495492709921451016847622797254225097599858712928135569176782726237520046090065436612282661564668103213602964321713736571352992478109150206528636306627134237599639089609262247734698542216663266362903378788750509445573319349301133541289084010627959318703992112938493877590237665929008772231840776223744869861600087682315535745629071720712430465980739362101317645596625650610936550052304493404418396998755951650225895236168960611025537659531881522473917345945501246541347209254984892794118746938906785348424614188315577575185820196899502550647365954932981411658733309670245161229917960801241912797950547959790588696207815880574886746805508641348977388585048451173154812543687537024302365805494379456639589828571618397025256262142006668303804828365995340711844055655952159382341961423052191149381809664933442534420696016358402969251809108693139412686476462441622668631707088879792506548523784517730325258671351592717348869841010955930545623827529808914866087010051293852492047379891145913792970113552727363901637208139871480433737872941495957505926448497343860276992338174701273009397377761212092596081857633041535835526681840861237427069022669338820760723530964767488323099778674033684279637723886463972223715573276531865168526444063277262444176351986844689206440699502595728968702304018426713272081528121032319851017194275869845747104965715076260053126947708037356662328787563820608726080931500665775039861343177804248666049291645003375966960258663347347721264342271027160065198762353039912496099949232347331171756791638048073088746775076250216079931679565618900646139488055286157783385569220093735704617403309600164566790315827831492536050886103296546393280242336269646742025333875992252917829236062475851323326355055307360836812340037952472415813059879661939641138413407997631420818370105565056324606104506502689665533406508444681049221389524632942101204470416539973251874864069537130321096566609826246600269538195813383591665529059358064588519439694144235512893384254124431892693085225878869486870256041332977714567560894181835579598172868538451849302102131684477928029601396683093839904573612964609776342808050239637292624687251831173509381584266829261035978972000335612433804309563417912984771249421271149246835863921117791412783514916335474682733020640047795238754331585778000388091694917025352629535669355028946715273434440506552885426220653053420215052633372416225309971623106155021632506289294746314962756921169281174633223322402658151001897632854758906338991064208611426968615333608358826538778408735707090193597337686657983002878149524364249358881651201296291972848796371111624408608071351739566886028804153524193567782192345485979893108564182772745771615008954735802047930068252405125901184184289412175217865829168293355556200129801074814832522032213056343355459815654525293296231002052879509117847113048868899723985737648362943676874948029460511526980085413258612551255505516159574130902064005653199301848220053856142852167789567582308963761780949719555525274288191523691015826303789826106423692511307689235093550980414382804064785802610082832791739697419711150631126222186398960271961564581760429385106460354061012218284429848644142241054195104594148333738517280731011375528348163306263818456557516570011129442640331564401653668754178327488639150463827604318774253044986029464480574593877710836172426280641733068114894224766219732472898494914928680961476576328659877694453228883446609026033603485235235457995798621163896299285607334831646826798916865694431905876326969089089564330256751744124147418762045229099221248847415305259322424073240469810488146278769493617790186301209675392661254834204138609489641383758559308076080227166843857822531426775073052183339782239812474306875395508093844087267654060827414007904265731785643722557237428497136358933930520595770237878895156409214219087266356795760250560030114507081949843898286102425638104740109831375615324335160553871721574584892064422643546100050790913317229868962723159492333322195959293837160655937258615282826989855095449370465972842210124303951982783133276621882815211314114230679798243834843135898030568932284952422887468842247663513296760122762903539727187179785903830417912844295391189319537172213485640170848636787284606583579272047143632654652768333984646221444190687533208005222465156536276330917564685701470770469671262542630282271335113837449549018238399715826499705458440709573738875071702238774244243597329803400811482687163538547183500853349835227397527724229150997845939500195913019382434545459291586464392739658636414797067583507795927383022214183449980224962011071323885365617767663488715538943071378673227502977624084708976002927608273065781875119383850868098424321089425419991912874584814613404474016153780097780245944242894480515473456472926016664602127525128387936261005729688213758452601741765014895774168992294264262242964631352451091662225362190359622748880305030612793769322072308528944141079442243401817178035462079912371557119830124998429109149096779636010708014309981378318510438089559322636965049692904771348655643126294894376709259051847327214549423234930592545701800268772213145152817797396649637431966238071415527776257334396170570583032395171434578051877112861469997265677724352891263856845349431605999893864761573760277619308393536885250479350627210576760807790768198487191463258633836909308182367143093217335411330832784778131362728317145061276117421141159468848133663937623996651072224332014582512587831655249637349736237474028894728398721257650327162381530830556925775461123858067209310750067101274573067852731845320358509698416311102132939426617743358292339163137849784719327030652306184271172873023226612526992725456074794792133901063368343510114270974082874632648687299027684509631735213832703720033647518435525808959619333215786341402663235282865821822643983477194809957500258808432467787301260328061223554015280768355644063354717681073488639673576840655334575518112687904954824282714775210251683742696235647236829203255630699809621002181765588080356252465366317498324505479376984736114985519449147320699506464068417964709616940645508057148572252415587633095683422118767939303760583685797055582472808775588011963905667945809757855685240445669437421926515501641179959601835511952084912514203479564079873531723494160641832759650681984864487597052638876989576829569288790280696420582642322977268202020040919597128565248260178880934425312852699850803910304462821579189768046161565710150249280711589571139360500129198262171567366520823913985718932075094057111943141034183606084196755519561071468918988648258298666278664549629543742233794961217873032387401532940815946579718978479159640001024950330425848600458830121654103169620094211982120948139820957941432509726476977168842995075053096075099717099479766953909703274617534107116942797262255370924524346619737918623924922050950590904108129577018009904849570068313628759794216577514196969111048198126276076441330120185432085159504534079335205607790682496706080252202635223710212335966425074082855612117606064721471583842971871633377590994146985485542141883573788641109110245932269151862083089004457601433071385671318190977493846126356841997809599134854555077301380004352652537298482559409714457537076505903373468159793611957642471370689972218264155981853684744570835728146957835746275659168917979628264994049259452315012576039872167051340648538527900608559188725875938883828121026849297115418203589681397263674814483468606438191113306031083581851349319606158733948034360673104148771668891954434436175926249679817349485234113033063310694451549369361245917418007625445177915078579312231241195911078850093843139706036246296964670727387305242838183749955415808698237293307035229688840008568682781223106093113843501098654085357979720834966663571357724471652021435705826372178425877460729202449861484230475574638567844701658379440025823295791899872179315806215068337357132984757022634765602206527111538959599447674122440473052399210057871780259942854893437655758156395208585542539449697885314567882601068019121621199513430567797181828459742986451277509420610420036391575579823912204476632868780414190933161314840283252365416364206814315482470037403230506923596628986319595669404275577571798341423261196587137186569149245233816478877763355099614337169843577876157742596413815988369313850642975800751232995193027978735799052313230337587343555621702240282559201941871510747087007743369176340208832087685151300226371451343531004228869860392949690677936076344802584422735189859302794380458875948751092835872181004300286408573770834483914052696246790199644057756523211271892917731701287032035254262381240701987455620436979502396515355014285832824979008458365347253186243268850016124309597557607456903394298957564829117864592102220049419497601374806454453393381105285478378455207493845732245713167901015261691388878599603143410665630839207429480907635942170432961244876743814515001247005056054919428855597090674451298327900354262350241930967111343887991338582176739585175262861562378702235754235873947143699823767269574402806079476247575093532380990379284839750176481034694814595982127562134044344166017928302031503708996485639812811257382722824215325619405826018342260480212010373861141954765902914748644023009986122893623668675092311626209766935621152873567958129453198765727313757542634382531645016583110000712072528107094700903717604690111678433059497262728853351254764321761379361149819164420991161977595871105560729590665915531563772388213043682320419961194675693016438880434705618698292255428632285485387995198300217812109823421562765477871093653431343044713861324419067719723267637167351267134280131977715982724022098195021406077413148880144596148918638186290066181199959773450046592927558496786963250418612499500548103202252787635524690457494501822622259671013314732390549007829529402096753537214964320004671679097726073815676361544964678819563635564617802469214255485535357058146458450038526259820595667809669668453723277901578126552001797983680549829881273815678556500832717535206378636630065458273709178005397845347284643086609976628833745747064715311656146554050395815228556770214097909895040778681898722436304805566288043931518437446066353918996062942056043551507149501641619984746794133462635637787288832441191771594889358016151688371405119427109085573251934649729637889025990853891078530339153132590619257560698237556818450173562987819827477954810358804525559667816716025949551922023980714070125234073531906176749910575169280441367572227918200798530091405647663832699116666919967123801644556515906859114387398865402645226043815599929644279716085505856962872593839555892290930854611332103652962656377354045617058318206438431795560341657881217776779656762253748257053757726595799011654041160491715152970676516553328741709969046523610233861275230681785691242349064012098088421664179680848194792801279473984827936508592342265852933680602659310788451928286644404131893601731964210190637960876338375989408599227053286958137400739987786962260114321793013700419419354354871308448478708764122460796493863837121520682688901513176781144512280548227360061655652506187518834430581080669096649598513662194116718625694061036916165096269062018276408369908477721331648673835398474233117470537432939734130800707846846021305268227441837208371811823932785818092406695016351726810511267619757042255317633448903336560256452242638516779864976628093599215437191292386838655432421510987518863935450241490605196019256221303573139083229279414077404463138158610123862301565133421398616084483115636214430282790240666694607530916386666532875821725673270425900365951355837108248812552552774420263864815616708284864888718183672339840097039826256616958876161340767936542380242259030853892987282982208218388856685354734167236661117467657388880542622268163837029192577785178043151517115606140184113877206991328130230928549550319752153600571725649148529379826133367100249080533107460358113165307092070901919308449471154895629529823121522043051827319227045762153402855628008192924244835624944850743242776208517294421639528501208893993589640458720352637043932121524061185643986081071289619910485220869060886542601779403424109774177483574871197566558455191562127003061626907468150583000381014486361523894681177582727353446428579895357060369955940633049395086548329104344457517710182504581543430537726456136353503840669377012032975777211436022958321494658053202186889356213059162670243244523082794777923367947082269189648732412344654670169157822459859244123418827950768077584500132829827182052865495844743281300588124648562409383897390152845284823395594895277953875214166610177342324425798126186741801041096379759344781383064238459064014940047743234750648864268321845784137912921969096729018562502141443168969213498466711182378873782118549204311334122961685870041511864494647319856196437274688342082687676361184726844919943151957550985023600446538106098841570186804387601527242009882892953223708170899194455306629714264667152577654055761789213206626455116196148407999715043469488030329170873305064423029076051276941265456739773931577181117285663327591673609762271318687532364713473172506689503985821850916529865701803721620165914254500006713796360471161437614924580811921071486972339176230848508407503807611638595884308675219065728784031262070594530732458232577683241183940784202082952766412192813548107085234328397025022735839152894571098576067840454922103618155957825545445951025224531358572756883472399650071403196853879627169485821564503696166952001505169637544459456863489054404153766702112336262546676980236952087016339725205866494832981434067498187600625286503817623793046592708464463208464515621431411941520522711309671451474663591895499509193924907169060791561201374583103897162348567746292245632268073627739844335939946424013630352948205803379516238964196647243047724616244203599845969214356959950428600153066687375542539251790950118879521552608414672492281566368800948240782081113727462349816713732592588185774199797559016140277331180604044394865425580496822878772687601966959146921653210418744486779168302038013731465574488814852370431364392795015837350087762294002327535032531055047694852102645922030301291278816349247397022124293835381785442506343849860786664170104911486885180336511582191139250217437789310810825192144035957145406749757241861150985079641939785618281687406848544360453592024188583125414266643849912090888449318646044201771004969282951510489566973889344736910384412885310518939105039199399596745922000781574966075530212384654688954636433293881997832669350077173008351993277399210210916159723456340036355359008185095379948330148694940074059162986145745667162709066604739716550866463209207518502260164852080309477761045715152539506698448232197900273876767525585639036611981112950754325177381735458540999197724964616588648792832428395988396493258996939342807849756036806577486583159621096947994481785680488527152821675602706684528746772592858355030651954120753013619842379344926215744789528486067467440316101496490989825066304408517839177856665448193623427667453745162122673645846117804694930796898049856611877242861041558691875553621036960461625327728387194487903639506295016308042633498945550778670411066044513960627401171348138722863614183077601450980129651206409533433187290826900940915793686186589905699983357696506108527984517933492427197375872256925866257866237187663894375700127249135503144290561076987237877915629081418597670947957501968375515771902986497577030459606015366296608853497191116955049957613883899855580537296227015730959338227117440696058718006059495437492615789914033155081372453116523483359570781605578258952119727406605525132134170164916821244948528523671445390673407957603543174540438372167234176871970503886796960913716287249064104167508810669326787311753592741057038493503973563994011112728731517957344844290776657631036378724478238113128553735194898452666576008708175707762031084297516600296322227484029217029624627290587575062042366797067889226156773752555578146921132841596857626853633561667153561222264746157634888343543428841559125004945213399298899981360796378923685044161902451556808971007622254301699641059994166830698387418216996816967550390799551395190950424666418556140980127763484845531397165188012663960200408939642015874463005864965920093616588920110582696900715869950986061430730384151767172717127576623075594321505158427596526323185276934655681755409583792978984184177620011586443069913055492494627021323868041249908345083829723289270371673783061883230726268343660704640680308237202437034529527377344693080387956112000559241122488796964262866176519473455006559697387364827844312879595079767581959148234501609564332512621407911602072450812414065963785857783811260080034152882739977229669293625197173516332091523036175216399022583035097565233559682045338571585505929223148318461716130111748184444668867355883535557228089751256959943482810981683718915864425330304450222960317965212748403880244021105769949279835710414819459784320222979730144215276980269832927423111328047107708581861461023852030093012871136703221018929715011550984019567244260075185051685273635814375728194499778535050994457434381992903454888240234668726065571925373432470545034911770721745460758927657994289489384800098027859435671538599437702647680024151370186595139974100636567058789660114028552993329486948494362582121612820014720697791563457026363687560447984919776331216015060502967447425059456989491605783802693873405537300385212040047454088793350883913039156637153280142827425305994734026617294757569370195723065714902120731619017567456373648176317741236508610188694943685818598163050561369226496938578308549936546019328251214604469960476543776956029411814633916204070875948284190620638786053352248931304941334619379685302495836156338256236103235882065411639441775856477170225594959216283669142866349436015956810288990720920764639560077863637408500897019109161210700941584061997536675672759153277159248003089489309938374987607328981906797439943817134383285065286036800024204797472803658052267711471635549351097816142644246108739115734858828762369025394921667176035717261336506036911711292735822276807736051133945224314375833839948881650937286082982970518446491911289999332654483887090071419521478269798034551036607270402769392401376965769737439940801518758982575852863341009680522600190466080144051159274320764951850526453431652473736398015941860944868086879895555252326410154285605854504962615480109629823263561065515113830285442936460395350126234754513058276835014412111293940721177065601864297408070648506888455845280533895181595675955107674559867728705798436937034097559278813748076170427825345183375544328809543602143312950880884611680932251782001100019201052428959973120728263197833829032264186979425832500184231588826672534369034067872020851537561118561607567745937484589417958451552506725574249828528113504855345268904337518251038807016645669712916101168592216429222314981800455325679161076502733292915826989333982810981107133753734119218193143357169291897253739476356498107480093269020411335676216739259012401404492068161195950815753697397076623357094435620547094517076654509945857446593965161151440970255110460154155787177207631516769740277065120274704919738590325400930511279770302852114046731041333917360167322976578450637563761023698783741939017707086507826883372765402125560790570575948708870492177867690300855998404390700852434948648802142364982267134860201064935071793736115732534225102689940823847527410490781512438265481429999795364218644612878089921381915363150940577194057094730830611356916658840386501021720161799991260984374029391392836323768331781059481356708760238951908971983679849020215718855998502790177033167221907504847120418978040420575617896591166233077804112401575197946884543757188049630332242866189950847851365255281371446264018230991927886002247308400444913287531243342874128322474542354177427070956593830790513309584115088586279249970701886603760588010924059052071030735269259985788826409145448246188057735413781947794506267529984780896501381215036889223494093413539916709281683463409621155313980910375171087010130293716931400000678050653180133449023918435744197731278628505254418282614960271378014761268426138244854071884491010926267551352123951036851204723074268272470409978058441984818100019935303798197752826428692888332084781899813966745837947967256877950303986397995049665945628479328031187533953820141452356186682804758273145817933004743928115594944527506094330348424857849869209122933165261221797701458948269135300612748187231326766701179606642015072907476641863540751566561143089565951290522330857214613815369154409335727235665154738389127864728914476557834129802407530480181951616583594685532791876037227375818923010088461119036682919827531850251324689759389190529979648708843741367382550545197787036888540512249302247719798348171172734414069868465593456263320756436796912089823653785390515605937070496665145883151071476394265572567434016403670131004464023959184652951864871722148979714548482293686653402807637003608917358212493050995170584217451304016395519619287706983310281373389546542951981831970544845069261586256546538250831852135677016362540443498605166973682614233077120693519657462639936300433867487719915824802891540151634028113768429319108527336885189914715917357909470264832326483063539389100098739412727475772313751521998335561548269871467941867556664117304622794835392306524618064465568624054221414343970246492208923546620477133477818804102038280757232090382705119552949918073536988144641372277770615266055833314086568217322402048220021374617369265455342724960126347333086606835852714010715420453276856636890302992666658934619365987421908945649748020916394541513279895012707532630947262887133193450080167756607612652144383419522429935161792685840268343443285255094387835786937469662704147397682774959319695894488021913665037642048184242342638480680238865739014523982271804270526221094996448178208630440757461461701998996990618466892486331194009567864277435669479868302861094430650167249806775089823173232994512276827898612933972052636026554645767282668321891723842444164447462430465715324256131861517562156509245975521510904648340698604606042850930798093128639038450868349100004104262459351648707733520062843548686378865354084951145898122367493477645952491479132816923993776055829084681020046446855083861629216258482213357516614625154704569076644756875608115593279671356572950678351483948150637643227423948274434268443043728040464472666581978068997983929268723390894248640872361372822253638124807277376936388238683490234317610355387546712002383665356630702814519130532420427317185778183666045002160651988443339183174346176164588073465617818059105958623601249856461769073236815332715097815118812622858648508165939676725705765508890731165356233281765582315697253960537492229005774371092661689784907575682042759659289162242852072080411573743365955775997889119546283235416772153227555901503183058470118274987175996760649035660815531583471494045023003645131854460334146948494987918144237638157906301771045896435981803251128345602934462448200358567610887495391036402051346415595965092819976212033606889571689971988866852880336589267184798781382032008520231383698653741458586137070668462753722587705476359247639227368443430046958721675960702215569037680154749390150956235144642655499379738294430232126964599126268610427079885727690117264710850536491683580914722666719490852490468622298920629034004231714291920537262573658115862891382326492752896672516426863689740509414816781648869138222996443746415222827921290765988470379120086764008473005314780388119896971603161407087064314505038562545346305833494992816904488164200899374307590410358497452403974151499141786852379953996042351757790666067143962133596104240044480753867023187453534843167549084501717451879963008213382858516652493468583303373017749655183017031203691946435579346346475275085620452226637762192959497115702837700685825359746865830099815228094485185162507089624925448801359683938309506968470899468977546742689458649206634835221393752957922465754017358891378731144446807385224831044408853892300816247999756961675710593193124580476785816724240515153094940516960691593196382642454048523720770189000923674967208896602456399466947726526045213272979975544354067177727879546952484444788034278769086854827157448766848611509223429260859197103329408567412939496273590589601042708829230311979487686699822478626479217527203064803044749457346953598190253884384590482423293217187784015762070355628256829894070744459041790807099384241974200997122629111904526895917065945086136437121405431521714905578562468250219172068969908640753986729540821066385910500352831514140890681288435778003324636529611571001597312824223091216248812473398670800999570008355552079699972384971340997520929864564351348734530052148430866149430307803641979436260834645220530606577315918500226268398030803710458027685282035959068772412844665121431945364226654278477000411869988459094680753159382804168979946288132833230471489615631855340590974751182460165437447111303108724473831131397568752745384101329805734025699456546072146950979177091858673535630621289249305525680634427043709444396695893095279897707305401127642182844696322099089450903277982584434490914425840395471707922527032337243469847314563117158383919187008410523678413218294201181861555752647101277962654895233006638498646938228639502262356108883489300557730484759977266045951566999585983993072800260684909445676091881992525938866778899236855603479528318195979474074468464341463305580877621727935657105872375615711184564240135317050177439585165091631723753056686339786570214996755504058491999573009018043373406060714756402348948429646028879071596890980620266489184071223133834048672011060133443209792652658005484902383039904183756999030287555627503232385832792136458457212991560801589304447243491157869720145792917923198858851788939330870931912912380465470665296285465762988712627753673832722862668114445229990165233389321863559989066010741850905160231209716267574692495056705918292524710906289911329026943143098507378999599890207165446206164792514520375368927498754708136115399733304805227316928012046306363356576514012328419175410448133780344665576255314980830401693955113088697197480899153075549803500065265012893255496040548082877749294328067580462676313250009499570996678256831284056092973393038606548674239478715313985495972232298119477910611166054968493362293832161861825850817939958410382677315845561274809364257460659286653332530427882952005290490238587961621727578761121610175511096666668004610153698231858434174585939336241023511856393320690998554955724327701395879182412809480316057755981674714897041634983684274589006511456575514653850884935534162515865490649278546946220218351199295908114631951535774826378994897345090669381767846072310109646346803941924962907810673754959264991484911957385099871785442172648900793372079252744480032500943055597438404285924041215250279289669344790916903780789841770867398720887014747289735839662299941651658997996366971379804419632588027206150754825559563724965233954192326520500793009443648681597779782695884414027552931353648141168021814598143476278360228158677909441704340880730051415031834659338965903635821014687830459090088361569866820879260742697366558774785228591405498680365587241294854043934630285712233597011113832694843003604746242442723413598234863655752007195115670375574470600677176727642998215668878545432250152155117441769722939097854915061039608126258573706000107235381113802143190704428358360025050432758873555838925538430126979125564465310030658067795283611612432580778617172437343014000345011906166232892143826345632213317756947206116998676672217016371332797094518054483091879599788077498532305169802121847485315362775730642732574903646569372048270551734891688886679458477987230822728745804789077437098408901932210320663076895907897478037168177633080496663057639597619930093416820500412373838222323538892378338102592498839699553181747819178420464093926256300224012221888886455469089763791404553989601709840526482782240920606342384255968724504838103820262255087592728423795549611528351596889059014538226630450290757137410719954617025941337192830370026653714757018357958093530074715444540404157698811383143514854354981574587458762898548871041520956818906957663944932578387157820235415580555908015037403163317402120134159772803387788420149714118475080326116071899745394691646783013990640518879273453708564758894823702391317201859442211601644765643592931070687651692442645596113814323331406034015999973010093887279219339842818798796788254742008604795470115075230294127917559422755911123130116256003805011410707480036807359835186680655950486424170277031756036294379369676119749352913039678543590097692742922740372186512957006753748175063748452390991816807063949047313771804357410169357054443114337276226374611914187041433475167562144671822067834865859611847691412967121801752485653461916535280024565552917311885438873096221922871202549891908513155187877354323985443019084829447758978884771798517965218514772100874423447366323741954179693229763994050263742349218298285760144567840228726312250303614546212394726711328093977363909742216972515016717525805648022235111567177746737375178220499069393289348017716469147923581364808174787238306854434294998303883446299517941431233255621760127617653178673282107969064958043347129845322864761192383599173950542627776105844287626200193005344840381120401031161456348279244433306861481207414311509736315494372652760215337993883460471375057945875847906248201696823967072235997121609816525824749804790533685317371555989889637937853694864470486981082239378727428598874462537546973596505030440199789071247114026844281096636570384620438966798656140596513140584789032053677526152941509923117971265288762826493088838431005358107801215192742754307515991332077650880801942592679151061923146323432172255742532826598227427728776888254037437036153069804197545424833992110804070746057475919687021133855831285705543304339324567670275131750256081648217796346398990052461162696099860510186533299843654726484109546963723439246147638080271305446100479630108784824939651411182173077361471281802465724452226720930215001598586253692393904034969723186887304876834500863934232186484146575034012435126496157687591276226114520297461546874960613702046373771825140233556476136653733854370745113083420756868030237824663959645792161908593849221589241405543435159676423216159994035658192138621711136072093512093671277061799495116058571193355850423616645771146261940972050358825291331138094416260272776357133391902059957431940425823853010449082851561122548806784903512031157416074076813511095191608712267573391770914765137467265999114200197883677564258485759567398700262221777177626442615175051789452225104920865363269930756104526188111290142982755903455412142846510272403644181099582412319881412775899222493476493780339744817953313975154414537933921055250549325466914023239689085417705236553076403016152024274507689865080233869099008755626266803826221207769730836302417063098771867176659454176403187743586903092193998892036229168714343501839304067096056952656447057775499012890511979679084648037269257653233760968534980424836378522290587855435498211912541845815997886524112248831040210587347642314497160562788107215002131199541343097356662012984170937832354104944416162488048697298257818102688534812951965567404564645274723327696665050675115692338489491764259298647530319103505661291095654157233860995834398185496264294448660626911038818066486935079073426296429619734006122156651909212923520323988432602692977879584024986039002658425031387858501595822657994319191128830531652976993117454866099963301949905881727106670381220167956087690361506054752319693592505146265086881683787582393053515777453369316205673219663049032974547292097008088510458348845229997974026160591004655687299494878438964960080421267962333676186777479599650455304676272610241250758403433839801094635485282167484067441937162669279456630932075188771554091744966716760711646821283117928841176719751880467165447583876862022641238048921451529218696475988261551173189437599817064768951716345887157375391875827281686869093476044556425613529003823960040464188341375561111352464107376792024084465935339861118974357502618320073491967664308787413766852097197744336830757443851083717196550089282090082570176060362128468067517330555819923358831545369367166445555781436502621517469007723362813141296304095130490811845666157424657355667481013095473138771839927121075785563157352991065860947396773175679337892747786289668225188927410982681945444155667053869845042989118348077721315636163693143518187551143971932780044239183313149225524061476953188968816435178699538346378534813666670417664620158470365978861892196014984945508445899247786837435826485100265364473194286774460068235899659883712174429462866937653466682842048907956904434248505513720681175127766238207819898541433162278115958415993685558345252228661840045362944622473988701533924202784140519698901948747568510380748355461040193483540244867483267027459161132918125091691251813478876716711517041914642243632019734113028153326801493147985579635615726211102594015033063878188006012970328231055919453945538776496974882260964023240171893196184660319428233725517936231622213898093891584559349886306972070378250496781857513918117584750332118506202288828036883551231694654655764056807000733390452639945817341056699764130426678274652610359186246539390747433553946232636665916409952730333833003674075096142056947021303305386378632770488823462511180307693651878125346238052832703050567969614917066010949461695643586804237873314004921825798465376629674789421311023749536919145727626545282453831708281832739371566718118881528056551061760248640372875883068810524066477338545084963578034120121066621351795021055809976097672824018430195307276385643400907758053224479184824476492986587203994135142237124487473631263491844233331923813546408851616731088883810002567854765670391340379295423936462749780935431889478416657306854407374027844793443167611416980669483871768467324343257144982614249462174630535966799501125935784514843590398446823398003572713331105047248598925288300925697699973865792927746944082680361281136689157470540085433521024239879090629969894096677464759349490979337606322774853600739318843126362608874478376641510184890474948979082954135033682440255752804348905737682533107904487276290627498239689979447613887448218719722964941765504272536538794923016671834978790894527257540412918309689076543611866194789923429553847631055292311475234403864613281998814204507007360330530101668587076432388733970702206267297486147362489422395030018104259315087162840223149072213941991353565243251266728597414637808933099850036119149222017007906382318944893021838873001234214402057506992260305339571305054707752809907807717558624927658920408691072572676776836578265367110919795637808909569328635615117206933649798277174242059183344868550546728408934970011859315931069556808884213618986836195459745958925710352040445334102818864661460758831098772243019998305163003670917583983690650471030763068994228683519219769106264010492930472234478367957763548909153410520181505699647536796053108844423089233326908534816843277817120315651435319773953394267301111073475909916752029165006689821499720625352169124074634365139309105285839741485336700613685903768192890192524448064943634708749222947987679484248497659968957582438480844886399224190043209443741681794811206573727983546141554806323726529051745761647125494526930569027360842258228100805134588976374555529600556732635668868243581578601657115256836755752641922446936977861587219314301789999786467116852694643475955388944238993923670066830879555639086235456899317019959614435292032202821564417150325890107797243272676291743399802978910943939557136851406949807921389441436975857243214387253996880869315975618963435402372071245204970923934910395771711933657592769856548108818425332774081012841890412647152316532538272533064092741415097615453802111866013334116549368355364018113394061148611691521961173437934720946739597247729118762861382486217625090867686141463340372412738739630020800678070171826454937114826204013894619795738822382111727749372721856382533658833325095978229171573961597856149633231813022912060311744184697519018992569668373580442936850362750067639315764452587765925707651356418962642656694332116570786647800785387325358493073830359716092182161781055344362787205791359737394984323685292263854019318226572390327868362054566905607958806880866135399452732703384533720105076952557294976948405330886218372185540043819176025070358168319501154643943411048768864525686767812326431399006555744587173255317432240086580436226549110070890616191238836106048995203481269906605394032286979748072252943453605626235296739962841171673845475960445325082462980658226962635020573386595111289242028829618310699042664826492749050574299647420923859865348418800828023218273607255402577741652182288366433481944619918800335024943227627963109046639200304467666688951887982039129570570021189051975694897638762159555775856625705416907452617009761423424040404126949516808171826111912092426923835159708409218698416948397507039748735039860347801301551130915675113169398275500762226405541265555938562747670852793122203764060690306986004879299608471441951038359819790198086989713407896052519014201307924113355849627521605007300398169324367508689592903933264016137971592456144708278924740660527331717084112532237174046427120309334908414732849455288348251728711283905553191672402945109112388734220772264588760822702314094124144449862615536475452181727294247868245153153579351482049361142662859742316687642101151208809567178589061763688364288749331311584006298957652833698621274052106118674118277715114387104901071880803240610411358716514409519113068886738471035364297564105338839843845482497915063459809153258708425920912814657733852271695186535727479627831235311172884149351014899973081140573953373796063062577855617946809444513811395600615762535801121629946652453893931792298007968820969056292925411167847644926083622040954793866753808862468929945595455975431553669426971955796148373844927105501314222258135364460133568004541740192295328119001823463837811351261873515964738227831523274595949257271849297235613421234491338225327180686285570888094957996269645469806053640089347360641883738394060716888488338561717087566464988225918603252687982344220922169211188380608003938778463590636512863177225020542539693033883838435373316937004353698302716627634338681701849182532693265569474050281871213460223053680794617140404263572501175071629566110097848499988062310478377324913024407346381600113927564560151491221166015130377333604747711769921732264335227019275904299019549052668572450210108250464564270609308886248746554665569274638036292565450325632422126483312251970563033080631891623819473769244090632286060329735398511188508460359395012416066032952891537623633599539562514540211615940279051614408064244068713226537633370326642585668060836596700059393301198240467765772672790954973090015565563666616713296599526746833311270565034576960569292538208394720653305073341496190157543966119194899883116414818047945729580375970306839745430976564841988489384466457480262056822101682682178766134627232950531234113566388833963712083971458767383376963649225610221459497870283364025711623025725425214493060698099944151573168447477084733868875910195723229217454769592939464057396193757681943896918214940999186088280312629749048519170518364187413593629057859517779248507066453235172528045478266281748145692322765492052682682800464981730338229834268883683060308614617301030630216570125680290643067779671981683750157061392334559233118048989484959190479327169318288392935813773352516965860014167504558931925376311088119353819519538157274519737562511764841542084661219909423413995594729773161609645809906849519234045383441432913128320066047699087421328474791996905560391346409757280065227582579289646711271636454878840508988198244323461100688721618934411570951004245690967043133203832131927432266334287232768160904646724374528399737165392625041691842527403068422464230834108670556863547327969605386728378145663349472895712923104920966512821868589604648930125776797194744424852003063834146855297100617016787031186993521912037453168390474497171712212999855543471311817443876907347508976085921279083179803974288985938786450348676787687359593419633961140173929667238052715968698418695512474966130085607562833974473191715038258629281473013748504918461850398189491094645962336877884062168264842269955611731821872086855088588613739168583628694843635411482726447965520335674758439760169377670295917871369113298063436639793620178829597746719091878099314834933803667695265601388817157140120892669420552139457616389951033275781388044224475619075864908945989469438896583461053830948976237590303591554504240934800005222250377756647808217701430803028145595978480043516524593701148898881011626400380218398130715655355168413574657833684864432612961927063171266953048119657197294009908097457341668444949075615420195653238952603899912206306970495221575333540152657261086012988613481719185359113176858661223174164046941687030997329256677722652875221221320726076877684661973960388296800773426087902915639543150206567770519617009052465995256483826291661947409464887030626314325296559524018833958788210059580725089787784028228124129104948106165416535127581437051261520505774420917125062845390720707130549202662197915159244579266314222564348692281999256870398320641884064070145528392221937750082626523992557286709751320222992258204612293221472766604764558114348740278771924421957970729628718147371535034569648503607723676065003414407505124983899059565681467127499042521805738295415761079055705842841765512036518138173798959118059487079239532923176860920631264992535818023342945347970811709344748122021442599125933875238167071919629167310338363380696908919184193774975041000016436540249761421523853577603140223195773636788600142426003090863139773590782706826610241473830559895387748172586165961438508835594697745199889908862867848988827758756997320553099567003399537468834631594040453469893005125377623489976726357492028808243786129475695895366387950728289842748653764772355309897621546518465867910247307379021569542555998620232006858312400405762604491950785321579725434286195552539213662508908752958159505343419976772012460126043433086400383108451368328468756896525534392932361118296118730037247876326110078988464510343730492491606499090434935407267943779143082321697197677851075282416938703009775493035903590470047417315259781575395544432557781906842715904622788076501967323241917118205887218961311993495229177451234891839418626463006554332447934110898413599687952770687405382622346204262498667154098450020409731687484333907788527988189477440512939032625142298042833529379174959820574597360613659576150130113423238939918107337353785104453712428003389088948665425476315589011072569311908413843319786116870072583355070875421017052293240347552159940681175503303091836449058562340983132856268288541105595690121941085087630526555653382911036888835369698086187813836520217254951934244044131869444100688032144167877791335458807048840610582751899115501907231649809676457360326377437845569506621217229793600664242353161764638614103057314661655681623005868735259031947844756604811226777597694980278934957820480187443400729078557179243303490956020617320565814508568303471292171331861617511985220177297085773134671562797682656278918725441221116889871778672120767137011572060366521004974735042770957515641533722197783773004908118813681724597883926608927015815370054149278754068543117834350070841003788445594274139623555547406208035586600590507733477392718823696412829969090788802629505462005003789846513879745290385979379236621017718484943835279924273082643112579902078961096060611849201938301177667132619129944663566549106968356254235838269050490783287280291423271455792247277479373345731539211771686682647402385270855510545371803584628406647049043866023124295644524414096822415996616175254185394109182971114176505011226621782367471582376772730900597445172580997837763212160963241032653596797422931987573791800090976044794098074137632930363545987292389015281330252308659100927013601877399963194962265482389584290717781487218289558266730889159941802238496196420840883145190935068084372677107608919530101693837217943031196952647747051598475808226918646389022881645573883597141606245401547085815731304291138332436668606629009904369608162373540174622661794166801397592408058036015727192702711807177871538164532527872904321581932258775321151587690800539949339401809546160309022094023207671355281209012201173580359083404785662457699173801640544392547262098387064577878036107662756920329758397876048295520761729264368634985610302461313832217646895108740833357034993324397469037490968265778524895587798207718522077517255190992449596539145319034645533501256689339662461449353063568242178132021407916048932623019808647141661848360928536325079132493765114357109910308681180672566521112246452181828432595289231433883539107864935335843227108084775121120095228485997428501438653525502345557841906996700354688518769121727052298977223554232931121748509915139250924299113311030723624499401893171675775625848765303713605304100531894873879658232287226572589012625060611019079696611159646030586795515986680415774661529006709437174503790211976830265031595900850381031653387012895947348578975359815376674552695563540827566345645559650388548947987301208257344395604903204091211439962189245112095069768393707744951285079523313871222234281286169069908614403411190015571535729076584105323544543731497367363990371480702472483170008277729767959679636474943507897992727269261544335436185989299021811892708232642767500305579046224232012260606514496738195203864290386600977355759219409927837114947840935448775429553742449139912414929058992097447395798359748729855595062367671548206208305250333462731940177449543300741706835898552562868548709547656007412294631129903296911276616396852448838340416322613288578089382085224392929088889930881601078265392981712076144061483244672219907262238061520433607858577440892392652050400084159325184266285947961365469594687567376185405101458014444532062587166783665802530829157380309788738564426153987238698000037582021636885771891363112535262189777238567840074143396865105643662983552848980412037459343100582281387068299065500226160316381376670682470678622737702782168376531230452278236479025182358163183087548427856536137278170974036701274479104417157212851579308239406987206917992923218624193243172858859597406815059329110654549841501757819223103900012745522952196810619447200424763277185336848367002597508734026731716907764607596517541885567269103495074866070445520643490888449317159132611827604133580350405488057645202357299675589227285326776260575598584358270279315009082061074125735473127019942019850012002785510640574779947523611285688396288306261913579688205260679092559896662734756816347955589058487916897430328934766498283936587936771669103898838753954569315476300093657820706995790672285154001520080483484369185241470618867585593305278860398035278712890986433202155918658061687109075821649093769882149502558064082308179032335951787652065054494591402677701156498378806419765741712510060236969302732344106022040035655295105522921864224071834445204160527993885960455243306456886986195051392110292573899060732183512583919264855995587781223056424256680822205901539506837450986126472797950996295657012163780464731964239948016119520474357583070160822510745752883832291923685942037242925552131436563595982921930711297018685892683272570335480700873702337247234116012207318205193886165668240434907772455159570029886132010230307666382177143866143292230155448110091120410503971953571073154080261337473246402599643603947211032788077521683761957807650357607131939859941319744341973532799050537870368993216941278506016416924244316782748641133598409491352361890785100976266397098792264379366553244710003878989394167267521922473892085217217273162928099668381911312624655861515319636234897045457575236961742398589284166509653174267221570303413476297710594907222814278396407476374355010153410532476552082017387066806224108599762090826236134078223762103706630152683589613464139020184988906337356488837248634112910487243612176811479041774485775194165956395390824285731479579949575839690081250700578332452708465631849034873185372445442546434598537537543120055900577572101931973014836203218199336056843404453232635877954344185598416449000771310224959679468980266930461322439839460297481272795792378121103140932433110632795909846365488203671611625597089512350708090377589330960741970135297872806288636187793670468453085087696490465354743024007415566482706990247097594058926369842232191785554492978789140654683612475244288523779793635247217299969908609051067864960117031978297728992757506447006558550665495912453103887329174687315221706594912292769688943136116862731009913885451108320580068388773961427478307816915277921980790903704558750478570631381866444334095224846632076718487251713027231832577540146541564924655378515505973497915109857379827970932271366797152471488146208444047240051154105574331233044384089863146976707291526054758621597103969758546749470982111091240376968566936296204511808398272675565359014638322195155157005895251043098171915232177410820040527129320888372887513508191892339516756868912225166948153963267689922782661636201290917194901605290337058377257484690854413500890105099031879097263578220297324929197376884879141083470815715401255520999607122217902844287937191491420505608134692282972635613792973771022911142724225629615586616744927267100407047954535727622119943948778460632398395786799586866343598909779074571264276492467344104650210077159069477000263330163390547795441619240825122182190740590640161932719865556905331912388116489316565637104184467887640665062506959294817255927915000272027595869638718833991800012066320428733572981496109156010971236006868397361275025614211339550464984317268695395399538454229425170172212573035692079100267847124871979630056238705995082719499120746970520883848029969795383592749771435361244262407394762588427465745677672232698710803796830623256544105741799398662777885761884760072027960668942751237372361851998900199459302403089855037852367497235641369503403764039842576177813694166816098329105124047518871480730724425725619791582270789709225189100445716776641989198097950174950572287976404700699002140145994589756219423900980129088046748986778285866752083232411015281648776964685538118675245424195820480388052889613557997391221994794402848109892584882267965162074521006397683296500990512041685579555601365164211719127422129983502032275691228108163690021014254045039456672138087750911337549711059114455138851982061555192914422981167668893910085139398718075599657148497625457640281016728521595765683317295314376820319689084676223869737269413691545852838839062848822092541751926888823652662802892442007689786181043933477034427974793300284579254730237192094118555842084669995662893366013572862377733538041646036419343726742390187506197829721106910015097325929333580585357337020322847078685929706645959155559036361228058290360342875026000951195247406316495782085435026657651095256540327187043417285543381590381385538556106705438368627578202057224149590002724580042082622831139646943239141227722202250198295358317381453000133070220028027544324246293307897990932397831624096154460765261308814595300338495908795462699484997035462615946314117958232371657239028960792643326602763555646028820680781614887384078903520201791463762097031545279166579475738876754719505184305219772182945309011343288708546786340909809211087947976008172912956299983819205326402892213915354148552128227390927879409278452100264152906720989601579228546165792183211700814344941943553201977844406305367006369464299684915091377401379735653635349414852794243079054641604298312642908217403595352939167412614890787907961294517927005801354280705666429378886373090771168922633342943544081214535615763909518957987510867539057752224642357870497667155034435288861673847729354052564154914248998304409461880347980729033206342705684255136321451343428829566650501581383994332771530747324484586768913378506070632769657464304282081716025392550032362893626958017392946392898919907217999033329117750740573498101408080224247340646410016396485844955897713719391918781781566006921709456702722297233394880030633979883786635259818870344206158009866762233563543231264519852696987252600833238865289861490067589390653494431009254179436387354116882317034522628742237419124109481097483092422859941814436420967233867592230567713372421305257072110978057579902773068957678361909275851963484202028934613327697322586813656357794680690599091488680358543049740444867988067277621607199952667007817885509626208937608734517830194483420796703321684258329884339763135664439157458772412954585550787784835188868299816742565563806431253480696428085647019187186450459826438615383847174527717170629964005308188238564660290712004912634025642554098151165536523499272605572490510928066193417974152633395240173790078970610154983306631097789541539230122216713553731463046923164999119027135718908822891048483884016907724605429908813351953136661726616944639725553023495713236294585704052488068672594826111482935016132503565535520140938266729710470102736364222297996172009443550072001560651677595461064601875400667498917926398950790211442805035064974251461656310432849196295294821248685612438135106707714649763822800335495004353178085778260549600706673158492513148462128759244124248055026755668604420887657853580319449592706053920686579446785693316648318209502067755572791706003149718984354218402630841512224524147395476630161116355155222767539319627649929557947675138119311430942939920324890869049290485354120122518229180157119059272814001779742045527656121775237822288841505078952673934388079517721573013858630864941834904509484623989610040174573339033833248620982639457844384650432281802240139756040387954429900270680042752300681580867740778604997455175172221772544637880837294691972161492793743479215170411559809092763393709596705522733715939559986510149956756282824564926719703804472793168569602272271465541645024027320716760480630067657006091341619591873867344031519364333127335574648631598417493107687932604767226666357119721794941987434135433671738359556464056826003342268653440718740983189696836420863523411836918693426234135257241057850324864272928262975579197444621291225345182371810627216077312179059220783099629213239569230830057227125991328543486844223944006897974718022110359286676027369850510374619173524939524792155636928258602962318227772061925989435513337399128687070543907998917075107700006094505871842511471207688095520491636612892290347824984553085634874736891183200736543445206474395341673737271762860499997689993279929555112687435361227187716281418959139210799841677925947953437690410226295886178702536531609621297241235809345961653285925264946159694963525265343751024864586069352990611094866111837995622276367309798800310987341936181225962633534157563954930248480094654688879766268893727187604048418825281779375030338852305552431635663308970806213225368582138928977732056332884471579163775670696348315579046500523283104117695032247705744205596188698319271306078879184516653169831913458402144634274410541679097130931598303560201445480123182509919839317254063494036564507363607537902821442084294892429052850932220922193685993746518853369697320753278107160597731901035881109983933583618743053235298490166769563273321853184282372373505664831213694305805425883596783462280615032167154569951752019304509771808534829938240671772755280494541667873314809493513491486830956875718291678313315590240074791146741284371056985800508549849208409219868512657595900017668850850918525387566485303900466076233251832508100664403972435054844333413290421089778928128248336625610919861703872046046902923489117465273647648353453225974448165697232634276080555119160468056811549057082967284995922970317030333552816685530230133762306640831218838032233058679189767840854193042518709551681480400755651173956369235096086641723607011212108008251176114063466328428091922743671656130927969492027017299740158471690063658780562092893810595186870213172970228773994868510485359041698268293532283077686427794577581047666647336909781052301596716251561375740152761879020960702289507776934428631982458709991627474681137984125828659143270757331320156389141918148604142243570540031886254372205525517763914255001853793642556901361191425208496624509438836583898334225559005052303188960142577334193747710665143327721141858168567547607618260944542821237933124019811663339264377432571685943328240302005568546104686525856036859518279069555259737021163444144859646207089313179646538546825429439937265086029205417389851093367023082280458208169895820207959971471575015603875036766895177423761282340506921059888471545199474483328984218979939451214597477500312429006831108963783912882160463220511213100535632834370660825327380189093598277576840072945425070143087360918313258729830714503670709178613103832136287452035747933161391000665313567741779588071147386510713707700493834582802814651874100033537487012547511436231117821772061738268604892418583222419965558739481877858080921387881936749367586789577035858688109361879366181443911839022300017251457201897164998903333672870770002586763584086750705741418811979498289407563975653691204563065907223957444181545942224961332353314749514677233135830151897540397617486250095973070680925463295623595507592277221290705522374465118759623741771353749260542798848383348245320445482169306102123115680439152120697217249861259199786012284151112500540445172541304957836585235257012816606885332844208303221276301666809989977875735838231320870998620736907897563065310205636209382675456350901968030882710610035348478058352748190371718775115582728301255626372201876615421274965939151553604687021625203348515252415811963786208292885665897269016249020863275657091843078210623087573716550587956090010065515035880895489963998756666694958135571933076616560985282265223363790445356791737789886654682271706908816181543036090574455183588818412073676568680896553243620523755663563985629985621280994709780697864492768340653612088371933072236409162314870579025283619818533581456647126207689757254378138156427533512868073213762837574655026078105879205009884012656938559490091240929908727196116291697885984454317287262508160250410760500041455162319297654422582438138420801473971635797304809730704670873896249189128611053428738712294600207848881116613428735864866290763825017057047959526810715777228880637864228843369575447141861801750889319289246328553033958520154624508278085420076242759143185812343422905270371143502958045675127974478533427021501395484396437683614941697442570756309139785827699962666073473325054835615457829240940184537716837251252798402328569577203122780041147814670599998499870814177686590030953688515869041994259425747587941581102797418900369369962416712826520863694673701633159529081945663826047200002386873572572591034446300950475915752161353420753719456420811209748835475600101842147712349557349593131629884448340411156815426946575002793442340245970763371733032895314957848222109899550151548820117072167240738671380487261049934584589594533546036492644698250949916321609154678746854939535943364681651027307667188418074188506940226910706097263245822558459046406601949425902896379068165489087133435123897232354787151665498398505643907828249329180877169372452897891380734000437231554587357489867579499563122858594354769883428712187453670575567007266517268200893932060099560361625282185349716548799642993542372139266859726110028121664721536856020347955848509880074432988353066980725623881604523504698436961782971932082959646337045856649222765920455391470138549261799367113082145170634664843552908628100616874771025615860367521819974188543904165539263437941962883805959903851124588647711379047105316900214836376525943766444469875616905442515945169679033006192146341860926579417056159310641916939179188481845688389480051672354459360040998520028636431578737285971884798735779982373434961137954282758823591882738876283369759753835534639002121445839891974043898849616193038576289836760211326026015509191996242892017116798278615890570318132532017819842503162353216735371872740874026111860835058856622822907538558007541222195096740975409440877134028741358493403188430436875670436752845309618598438394915351249043420744215517059456037657694826848445504607334520507852775222407403953562472015224723093239842627194342677404283787126940790227428178940405820761454701091977408798740323446869691799358990901112667633894566307526145532855162885957714221571614476263133905506478694171154990389552521435314980824041823663054029779372422004443431091440871702384482111959631312982827118113497910445386634509375676740333076505896662844614973314148373161710357014367296597802339706865498443908224077539689970286436785768294161298840724518040116870279772139130658030210978960233260132463549759135472885242052608137694827921883854756676064695821536277250396428692644163781871575351378658869761572902212596112327070493897198647506479268554235530388611259534546425788005300074853600673365638524589290685088261918595240975452027327992127733364232385641694711327702010462065917877982374042936803281961998968269416554717038764952585520313244818625995610113231191516057932144632029870560179845677282778409932980876027538165004375591155623899146401981545042499004784929090472349542202540128183865675437113805798996528458104442796241601106804095389690692327626998645520742069162728681057129000961134680786883244560419231040974754449321133686804559470272392564339714956336343059846394281177038799607984281960241371396806130402195273001753368135849447856145549669933033754207216633054119326581171283791466828959917614543358165242476024705101366349284755239883876456785941398383054478476971178375776040300666727962751664794206701858294901142103111806123739528508854138228393342078653648675144144672611430468645930883414877886603264654493114729669872841400957400365682913070738796647026043953771392070189681462499729933369396004035850324901846286139571309781182394773038831617323205897025514152118453822314844042951141192134125973621176865678004172179020286496241866718985638522478458070424867519211546259782634215568239166191340255650852103004096323325044899542931232709983760936199729549427561450292802963151275249714964033900356892643826552409446367054103358478858358662541686913486669798470574448765683744267812989444055024908080557617126336467213027026624081766189163852004512622153611396717037822887714616254725174235533151854968069463914026801047992245391345410869871060825331502223074130087657116363177522722279763298375272170642916652016863814334765899502678512371818131250336806554926866318735066869403583100622865876350170513450839898392757045430002612135330812899343341498474444836734667241194643926807279959670655507391959794170014215865925472708909793653911217016854811424824384963993052510218449693473471224106423425367623595910803209245440920515644791628737689840337020380479875737104473191080077001481835057183000267307977836652312250569340464616027047469538852235617125939957689581654510980645076447392287308151525471157655302286036072852983298200476922427660706606329988800020627037311478440277115961549330285475332320132837956002555477535952354276396078338051970870966977456884687829238972697650717958713888952466804173401872019993839976219872313314641282144569222852168408202919358433387533094532336564110063896969589582212197483618000611944337967668716592727307919807701762417279397944818284511618750785057720276808879257605280330427321807190532504777336096891747952155444543146385801162109289465017318165714469129241907618912674762810509850670937159013380228283423810505214826330331069976079559709756259757704549145940217102229595246413236664593614409333649798402593457028895202311307826446433854923042273994517749159970207067844199130804822550453910541629645488835121304795329137803386916881771948359095539559559514179884947404827758364229848403142399652293275347263824965187051164612546739337918226326862909207784883376001083780812511302825248163758036251105585863282148368738060103182870591983562293278828292965093096817650418479213473623760984475987517117680446194634790909723013924730753576453519399705831605242396346565811901521544431899509938108784195491529565227326238132915430216133295783835093380053061142045633763887299028061081895860593235676084965879985046329798236036283296334964835093621656296818024975240042947679850297420725961116597759150896777021284009205104620673571661835673196772353619337031738143952609532991419407155860035150404156913729536407685624504136653183904604967764931536853906793415072328058418011559078912965424856848690473880591845277103681045117818719093653752973871190268817513905438419727499967684221331941292853162812171891237579384716072518465037170640514987525823683032033883417374480015991081837584114111440791914051408082128431452847257730892191521790176844940800930330369717003246012259419897761627123180526531476296830319920464420671127159156851445736241921841442435638942868317907893782232135165311400455842152309580794697332724657452576594787432827639724971298678489436598615640582750614250240451742024885469691450167505224345792664404970079984206272304201748879340886849875760218430604645315460565778917496899245095609283862132403009518167894573291627019283797024636433975177030518647582617738482839066635085146016710535822430209844738138055588381013211388434804001448372711016888443646818827928506010274414984157711172667409819218567499487349837200311628770610931854811048224934862954131357087300084618929638020394895249745862838797947420712477803701567687073889274347259646402186765204316805277992099908622203703504021057190111990412419685752120248249306395027400631984234989530444849190625428628178805192018250471012565075942104343634356843046115912997186289779316218820303398483724826950195901385912707409483852699947008633234643254046992506350813329395307368828056937466465447987557855770118678637520801009101406295268734570734262386941417570132662472508206860481737810233900114808430666053024727567111587905200084690750929092431685146179954391279624929615468694784055493308604002780601057713873980480489435422162984523180177204230220046099321572493006952650690707330530038614196413015057580853056606714930763564193596110244318084721877452770397202737468657732174672263457134826321662167075298189010327194771201308151750954647024162503674831575932832435224652174767669067051129673436242329883454577361442268466274723553925971566489101894228798624685974377446513172745610772125770266728275134893958322322255777185829174443746443544179064586180906535535912779977365369220769509477366164271264926767618578753257074475935304395135890945701224713250385054143242132741261872628918157867777253301168855445867377733877206250397304705389612717796291810529947398425784959008968381587192814195178590307621896261387320157777804955061997783381746641999109795456675394862921520574526095980113277152327110352503070250919919380056917582672509813656921008065095135610124359291897977384561417766022740736322083947312496734427751975601650704936203628604196659206479182458274013302062524399363764863954975042836267267050471613133479425007983709915286323972671518347096597217131967819165919250311033503662688584555170590455492037115043614345378354119828559428764778522426842634328713198791932074998539713954212155849270390121934391687414655778869758826134517072659627390630019462248661350566632127178672037483934108458890023993772519870279196002032739757264942237448691625176991043599108878150052545346716938748021239525620783289122176755106351490103289983027742499343415396886109837853189696090500925427762596557680589394298537259545589342242585019637074729059573555315692094862550870599060272200267910535725787275003640801914571944508603623144643424900279812524332536725372921596019720733714615699048606571626386463293644714837855488179308966261031097188974733980789165952445442702493153352913858169962718782037997414706302973420080034225116027316052288828213559247595696184688879215894947070519171177963535547870788405597506127364860177301194462213745952472911417639837341845990622306229329691645159749210667641229406947762299733135134734846821949148521634263979328298702294543998967448998043155280534055564900698485772001414968513550769027833688712916948163240125744032435080053785816581571939960331969026907808538011629854479181079517724860349199864332561729631417257375136284737121884613216114266722116791138772987203789239849664641158482497928484552102281519907363215635177998449057015799886281469533806378815422706485542051492940078479563585554739714848319357568152499133415150898366124673931898559483478690315535919415060760340373296596469480384694830502486734603794157674256277068004401650186941999039242049796513946067799189508108150583782358648556701393483495721585683519046189311761037388465368148100525695773138863065140847719167832608412720786438267917178737258916759669870700478265869705073208267883170296058751082745953238710749546890272696878398267574571319044380994358580430459296639645660859479209424437909908707561380681206857441363893296212423595095657628473927123927587641100967769938088350162326000260150149766123201239353292873245257334298538197805817918589117345381653690286930044602877971469319958915563088775644455371529017547978209019386318185216576524008365622946392012085020219077663242482806111714190457691298467087601735477906627812015297673019216078699057370597981391633338592155237101333150323313952347781363163865757132258871857165282259676298259974108306705151633068189574214315611775803890984237199357444969838922755546821212042913503309184808506688970604599078639109643697834577090208595293744190730792402838167480024934429363506007114592419097539303671388347961498536305814571419587524224926985141466037609495168018048652681429056901597459011579108396624865130385981461438340205215272303244093148704265331801122072096070446251409143041698093927871297154216308119674852998473099052204001381997311425633536796946637658895718402874082846517107186935443698202406546647410485675490993438726668505619453315027131820647875165223706651306016179857471326773252018651352089157541972570146199279666649697666669204962861282106169488889986320898161110215778986427200973455953474350048128235940224551972586651725755120791233419258218744058271399182460427987508639795720152984966917376418276926094923993275970217422083883346813738508628360113217023816854095049706669310492764210844428191255951727633620574432582929394179975770498641161184388152931973863131506637570253229631119399469082095219641908642951010071925289745185700229618043849024275666696476357292189605430847117098506401146516057482830256607022789283852839869185956175067118660798244203102497709060197239756545680517755627130014332393521912078838068061333061454908939680083147732420512525180555281395348361654708109815457378648205230611918456182767104374365786775592668413085740126657396228540001288823043376209735126174143818892032044730407271746315410203783832715017065565375047468836227471262237944008170245581962239002691031199285743021760861920422302098257342211992760892019899909332123949820302594926945780723807226669536756102824861847549434740252921187029074031558866602588756214374814231480656671847919591432578462136192377450238316110283992833212800338049704024840048340282208420718726858130015174694042748445568853530066750372977273261275663284861786280961017597118456759257578008834780495106553123903159166677736188669368508078956576511419938733801035618925034351365505757572168698681566105720037360642711942501972818950142941691438852038032559456678220443797551317524518596102194901491171083865521098370539159780498030295142438421984335672285602321527775154416519081771231601765180892518258095956196409790999929223695762125938176723896243101579244351659106234367212896375565347838465422825049640291162745742020694548600659922025086806324317928485629990522637284144877141130608544802642375484881955120271952244096892777148199787759842265332973232584468103897594602207347424073760540727097726461496369803689975677618896448835501203094743303668375702786099606437804626889159788745006675047903483463253165366212945519625830981164669360664244022566465772056829912916044179844522270239186971547313969069173734184151683757254671497985621401921881545217813627873582050584952508974512990810198972620479288341390310911210839048393825730501722228563265671647667970571054235284687007231833477482928723542249251387547145243278684654795088421338200796352488725721129507484417750490941046965936983629541736555424765430418158000434876480573814906717075687333145293976143127710703254654384445284383413434247480482644770898760166086556484146497876939686820329482195390981063586559627096917920300375956468742586149206920005402456679360049608880965651567827785117771670327196512039395592855773310009748271207596147275965373225746865725060764092595253195322176312429305050293858327613917852937013438351274792897894698404284245067785332204159955631881867987739871215820407315079969557882369703489945140076309945072191824621366194974752505168770097162308626754120538113887420501289404741976130044662198326194235806456596522478578460303762005671117597614235356888745796981464699750308972642065447842078940313559820722980493924249753926367477673920508790140859729906249153839681447313548947771866419549301425291647417866903612542635591956470781805554094782267692712672444055230320918439717982575068849483929288565985417295850055790980925248496759584792232608392039344836150138057774114039518186256441624921104531237496295803234139134657707967403156200288276765965401588673404805870078018920344849790626106018020939966414630164343996301079430253582664359855972387122724207523758406738608493453492180449798154246727255005103062927300642387819144168925729574951186405066574750645699303822839987620570786728593082389582466760393158680667203311816113266020915448224339969884129310817999420193138303405644240398376921493128032842483752363171104089505163247211589937520290649807526943111133880118761273431363668893953546936384071140886499428693170302403417074836265757561375245633460884186258543058868074580580441807050479422586223900974519350412064289066693212133858112676322986812882705124994886406201987856199598268111650500873294389799338501509594000685573497135271922468291362736492540213404238465262801284630046737196602063755285582426960727578736980493337934788283371103684394039296375702455450540515889457330991587136724108775915112901314548299843662914151844823052147413985727591781030568796546678258980525231915755559816922866728281016281010532178406112013533854718437841006630780574096681843311993972724224413030122253493247397526210611154378247806405883191085324602214489113001122388226056981426109800294622962886804524454458245466416464738440075539754235549763927282155657668096056613059289294932494668594582777163869100911271540742268580991289210797463420794725136507503559256360498850390733306719515351108708196073749735017285366361757402020039363785276488008116475412752805148131270035941261474857551599020641316652675615608116618620604197355247096564849886832355518678967908962090566658436954079495344404081797333900486479854971642510706024064079178534910911001408689831697754664329125118989436071195621323888379427505287845191718772709011066725135172746115542247877610190434924213278425734897723967408610427417842335178142622748910506914282856723025590837399494083766452965677171351711715296180839376040401120762691439773173683471242711803054332436550920014342307879227724141381647593747993781337275452045590553596971089323922976214784217105301025024146326631399404914155526570408218603302609823185403065658137842416989119447995797027800899967574244707893087979140804812331887452785670185214292680392915033762257917223737274625133724440343512548753104543646942584531543503017038225196539827822439005267926597704694893890131679507172051579783323244042748395537779143461585197570025722105183630746295900394326482026485447523137931057887236002845407931300417901209232867943505542076516788142939878807919194633112183890790814310653989791847617455621983277132565542575668640504532424038342731691796864640559618381305366065033918633636935836743729978688446036119299311966975933540982937767709464077432015255339105333456138371319655677581024665388005201169155816780980611257427421755546961324920038226604812657395064630159175686702095814215908109943236660386807452697621692545541189960752660563407432340117607513494840662284260661599600038947192360718756885817599312000781909361906191833816550755350304013255433132299387012732085804067461075607966245898366948688217601652715513540255707701883024497603143880064782916846693645050114905714673273846950754747432093449368970677570666034791500563934417743781458238192877820341386594270133223941400614296290991705474529574214282626147265974236811181963766175026846952790095690797222152979152364534697124721460726854296815509165589075473188884430172718128686804673633484518026778291800297888662545627197461300327050134837473198269742078676906106368513524993784344276520860564428634955554114215603720137646334852580047181189487138792408043814396202020603692000984865493858194702897699595085087743150489135297261875131185213614358906082449418219865196009452532171128760474893797026306034218404423922087611205850981862297726768493738515625979322292522112575517623862908608528874555627995440060287012680153726147012981242453143471578223717939783966404930151974841730872958345068441310203795727348729763793745287697723986050449377811564471535035707582906551420563667220988020435409474309985080413672051523302880442572608123441819498213608123769023707681161648078445186264542125588261937746234906338361576390133264735213190565804882308364510175833229823565493392953766899231938894599918889905299493651437712864101396905266627339584136686157717758571782643857372435192494496941249559800239863204836456307972853327830626545993828529312566160482199095961247794342401421029470332181181638160182880560514655071730663175398897472906731387049981711889610270945070219406301244525872372413182629916120146858367097579091412634884572987139670613658240865059968054023624724300311075912885540627618131740838929967635759412526814207954196491440414565896556357440776847785385737131109659158242728453937006175351001591213436660233956277122006791790052006218632205235465335850176946720571936719675871448554791438032296142740380990503644897834293547437030046284873480094638750681829665980531289890935591320339973741408655332928248576184078967497972006780646658205998874327874854855857951746611158277253929907471846246375420070745342544565769670732797645073057885998504989153039641719073211068919419821876239863635243640966355360940871497919476065921867647420703593845415083860140843633438071092741752038570246079159344564447008564057075392202413230993574123059626171490047673831913595994427939386256373704436295242482196696867269616459683791839704009118485712111793722558513019418218397722999515861900726211598202571011340512249409163825007243761021309025123285148840100544728839990368758204790359974874663413349265085948851781026837700551540347836644546667291407858872757309885909010547425838741148805535021405867764315194061627261847834145235437840643030483773607503045457820794029355521309365776111896041940603132439144972606443993508286441804852334533052116053617771572009000969414428093304077954632750020098972406830550878841855821511929569159297827323050667439957614844189852149065780747782776954048569268275641042312054228567337004122449117785578080125023399397939501526181523807817241952114328190424036436273583219339144530972271559490897024666959317090773353108037168353059692337096737678956203205801244462818693436728747259472127736016321540866989488804197681962966150166763932595855653159040389973387073040185677502031241880633673678609843776565271437470369663574045516448922709566209520776997288342180100258364614319110304630619178541861539217715564776360682350082562624735122717869295266770746246256584986365294683556609915452191444590882078493959917182313145755704726884624751104475934797877459852977269615781434896803740139097992612749693279340188524185954861002569922109437845076238903972739874129335006826379170261505553875419809959185073501591768071260059862492124122784161515307504089709749686457938700297048151945571451629717857729999558164409997316737474887505248326678810466120379559052098064008668285774060504053227178565191519152426445293032598281472319222011932000279350028840694286491514661616909601545313432168446174223152498917748741779815275825745714792143945768823891239921392652918409413337680166381111071983208004043538239330269331570938690851774602711480875139395761171270324608981668095961703518661943890751895451676583628286577689059315416657167405696726566228911530526207688246718782393194791219644801405749409534417302589668670544450806811037609954851931987079230647100364778823711230901014430930211951786717778684585916529775893375690731696031256135488339978076168255327453521348113624798858762338668860699692288717514789454571720540933698085644155303340819962560884086929705139267378901861439629267847671356097484258754566710034769390263504376772851976523865439502225277608398626735621294689001323237949156632884511272666068923154983093330640705225096447374339173222394194933275957539234182289935132262025424749700296370774422570062924563565719210715495422738064514629545586250909171718303736801452546813374487629175370081490522404052888696830555699966369491310706104854077335340279108647517235107162744478816835265127447639734979564763621622241006227295449032986673832696472800384179446593795530702363484550006650614639512698869993795206113970895657648508733085035553889695934979290754248651695375433891042511377575139206082568081405306013433558354153683680014255861940979466129657554715322076150407275834480598980649856626027857645050926639249217800154043012809025958588589649246824582869335300763734335713151862273547441206386894013783505557431452358434793243960247038434045863461609806930485791880422319588584266856583949131179479058530839761685562536332695899823224492436894719731443970414986301091737020078541351143900029164149103869370837939664031076261049139557705019639219701404449483332179127228453480673238290599214426946226638177420118148224649564682260142251107997182441680879887743014126107277299109908023994687944294707857817628487344230949540761582191339895412881881977239644240061494584350254521294680303172468308778741821473020971376740336000865817468701484819241565355765680378697034119310590612331475392314260818093140387709834254882725657750813281993284261609766521104675618596515045182357005568518950478640376519514045488312864774088243423793017591753699648323125199514076013995647177351433797301316537879277428105278378537284298728380964053358297317913958718807955367156482687874773311617735667595228472755574519399627890916051934496979335133890872117341303598703511688204109989197215903367294425854282328248594274599319950764594228096392521053012510776492655882204560132572297280227209627390228364712175303473180532835683616748501231337181401071113459505195180801804224192052451728959291154400981993419268308191588777781049339340623262340986843216950992899841121603375177066787764609914189116140683909529792681614131545026817961965965572338841244532351705320359029153795018482119920326045162517007005103135927950794826778081893625591234800447271342720698895247760938117232034823585016850766984166156310855528316978825761127293539384333128626125999341250204882745210625486332698395910229279595246460684136003478186587566933137289805521153315262444393774295935055786285544793026769090552421987356298244029613596309084974985928662133123440359230061052415661525732848889233801770520034162996649071451827546995679472863234901665011219741073441653802842585207495699174375580184789237394986925680439874649142889090982789111422089769366373045090872926876361899271493012931280954115880341396585220568408186610346078467241262900178251280328518578234516966179966958824535293629251988111361681337845961108475432703765646881298161791817532450131447286576078938124508213422220620009687881893870950492308053683967878559807520076975763371876005062963740464496858760086798985923972119791358576369154309102874454181595053080656801899751498779700138917380997670577580430674337711571976535677088840428513455715760741632756461493055290991227885776132023648717097277075129559669426729908756696427665216756341888552886483660521593202073388085268609346169760275022416582044895317811458724114555603627187532464342349110332799676268521801372871833730569941887951796795562617888155766596440372481756808816202687562919557134864552362671775119905662257749127446196341775991159938282894080873800025668539667692230567082581271258888481880262967512329307167127967887403530922396566958740264342493372384932255084810525403138716088322850318366071626809682525670422201095781140528109618509441824125037139521976919470693820553520151070595629527844274523635298183945369096953869865643366407600475156816188452617640257008947717303013771516249104142968292899187208012248149597040815397260993560985254077956330052140074663284419861616966959347593114383598207219621142102603721300188427146532329477309636460946931359151334994069339871189978730433823316681228216615863517316584532184743548700359272007381188736594167096535489931902132909251156554781762102414782922099427832135497010624848524665033467953406607647177660167867110087566966547125083270159430691179576844618303049531453931504777038739207774621285003910535956949794121251592264657922887373027056023547466467914719996989321611731023055266284883071702519086598837849486474403491647446417813459591562123904186446565160653592016845927852389718535459118802212464248581838614565256456391881912123103506808288189675010245372252529059173357313850763235185829216432842262340700032572161415035407288551172449574471945145202707209067330402901846807962992217318771682878761690749097232278749742962407864690789111733301957951402606312226006450897422771413317951737238024783955515757414005259904595501030948537706283751654292966266889238577967536268336008648743914325732272723663787694163276288345640812387284469854121944210005816854369280211344772131028657636720045524825135145590119579654691470963075222415930973151726501343043908069242975682225295570421295406053136395451596153807973201713866260447376218681437862252612401475299287467035068134882789020016412711652555955819918954894612498571224273353096571538645473196876824103414530064379453412626228279718745794766900665013775518049835819928374677792011111999083314522700476855201213411548365967060321022276974432024442381104800221944028006634598448837667285299786401578544842684115674476432248481374767766408068298250666576509071148668072363648404633136577671867294852049395361860265119942826534563892493375343131948198730615838942060035635696427004231516259985103028173867096129871089953788225989733023729804517608812068242439048959512224952262184841828167382230113046722052739895752485854481422180433423044781731295266588554372621858444359671727673874818206638981799186664066818115910343521628987544701142174859114650532981794570219060261611134493577307375380938412594950820662586663852609592974961206142566090468262535509548670285810153421382876315350994809637558184804597146393928635639988952873616932442393406506759469036429164951501500638907328271181886138880700682661569984220572195390467045733337848928865988034352016809679917089298119418886171731178725454684157329669640365892098774357549668259356161463578310977138382770113249433278468539014504021702469801743277120313699731871066102767671937554677117117156925700387883189406059886151097120470797556945873880915792353704883215648693483221194229543980801294067956702645441739913314989569865547342060834702374140451996473391343122804288167104748798797237420736589373500362493901644463012056241559995738879653806928340075127980325730391501245569812809425058580522606094503720508508018267362877356500746147102409507875545491168918270010556408157457488457721273029514629725450717253111315877216628600660356211103402239545922305725810933394260795185312575105342501008530804823861995948630739665014333192167239736567804258713334645907071085197884348186182219224774980778822595034671585424019887683673258668290867528331555784326591639660497992528590947442566854864949374294182087450695477939027181426594108390695964847102492660354150988984035071000676927948126993209727527675876378424904448526358261335570779381532246332928412335569719877400193713928205083061530075533336572770078672045979527805775427713211826381177640991208662988089006054927398840204889037248614771370430609890814979851877426637366091267351397498618586111134316321078387227417708112879357092057394399500782064739857589204544535528227364036469923292154847709825322478407801917699819306439727450890651958645058957031015047444952132094482344461812253951061081636650919236109180455356861970686130863533840842190361863542525588893606631285879715695601518886923489870370959941881894313009739154649165802140360653220378167273861070318838547515924561617831976959301809122516668924785878852987402177998638123249544893778727173774308161310669533947721262268390691163398673274638773484717610736065033228651081368549236674163515234344786857698622703798895299440205615205919936514064945395003982678400848561175639148923023441274390900839468461123799990206190118472958562684321605221047346362731216120328499499075157961756782333128338535430835843388834897146600013958906251728106015149884649826900607972351305052748736730132138710144724585344014479254243988606577010118450634540692870023753185431337590674058399049616193124966751682613855731461949752552713587667760754614161476287543880309832723772360227267252301346320146859282479982307074540892133463885240223885803357368073067517626004012696210119466101039131388319272955601446136152409804551347759102621573142586910011403396491932560611402456169203754044631062514061951092791579531524737720115370267196311879221128974346554996819164737671864599185982053210945698656471440050894393181739222560959747097772886410544701627484550016568667554509491891018823769851495160164913884272868698802116430495971011489728987334657962559008323061720726706584963871871821508016223027415119371655732662612721467840240590175306084052846336044050018587030778453432931867050487673286378739989808041086375512714613847710682782936114140701905418464694302145174106701594300746232160097467178320101454218212635951882137196234916682859143720806276283715254371046639012528781877772700518798487162913660293075480095979042454603736620464861467023204032388057159624384997958523083663311556801948600457960332065484247890194728356092672196730998170631522527121166020105653207289844665231522100814066709991784834316632720295033059230964219189941437783525276327342372879407116297301068606041020512323332479821351869475492096271368423440962914985563012125792765320383470550609645067709098296901324957258333050362701317929566825301180946512209545203363867076316424477715247488432275372103790184573705018078243123404917162974360491163044881239756908809174151674006315540269459590434385650301559261662635707364972476756192454208639245948402232682451611059970460125478637692675806794585551412567381679179165860675688749838984261750218968131906858419294386000392632814800109705897232435144414857659760749278462509019799413325531107453560427301382602939112150733856817025014709856057131272834240583428060008419999185679890724831166213594715383793670520475030899722588040504079621526440518743548393666439272649014360779815193118219194932632408696234814807388545035279826112266481580116254794164535295706933688740900222825691656430845276886876722161605292731382374076333847987938676533327527838731311988853197611772985898124162996373207447886022445314987214306208022369611374204623542982974128437702682786108374538173420736983098343648480960146990737743399339267580636407171214271150153457609665288631792304690453390791295964172020912931945662195919668520722930739421190639862519673127615933032988987811109993727845045816019844628514552658327003070322216301258317717932937845620559955534018708104242502518981382597754634406267829512742394156170039998299703494666714877950893684301425547748959062707374840166838220392251703140286202251731464604241772998574063767780539385873671833895289059209158238678773750199058657539088692515952827848746132762931356479681560363118386418550215013767102512371817412944464953654403208771589924572830030774980758537689080213663899446915103478429608138002002648845477408882601374064273654389519533575945751852394025136028830448757469696031471826104512230238970148720412465962998385518400043885759169309860819411587419440196536040354723725778403572200508519954342319874974107408304124670687663500006830331318149973788366730680800698604140312084430427222971382405675341331896813678127597332128755330008236160114347519549686319233558535717603064030291139021271242847848322128382003511429888907337019099985854709212886066389054121443605057534063773579769015774899591838705699851417779751427638636762611655875747357701184333237344420971336320024918381318864273383782468981940404629826461503386700571441152977258132665559457788891817929947167185143410614250917836597258480457913853900410039148702783530027228302682588113094144125707453658407405994614617308783555848446444370400751295095764909420698360054967296422147181044669309788371962031080671842088945900731044782571191731333660327718040946543195234299743177738015689734015039831910319786148607883859461443223814594554776826008993002256009792883246497949781097405987660676312541157055106664933531103499769661682018033635613322995013446002384377828068754694675445847227928734024256505615992917673931611679768912854579131868699920257441019172532299844196823798127160416696075963486536279940393324487433516801393495900783008683302839381702118539219240128566779775497573149277503697720684509738677591903633491127627349700227612791024383486894611623478919218817832290274435590075349398243357856965583214649691498315039448784014018174279559463060322656186832594205996406723942869732107106848669593291858247459678316974132236886418829093416234713197439837820308021908996090230113352724342808042725073708440743289407904094868579098262784477447733419049617410458402354784886914474190056770104023618825537005412543589662654578640651814151136313801126774048887538495919607432660954331627397116021148172260114670973056540764719371851182364941527109027577657267874703634869010572749630816840109028555605624601851835345160623065825241826093455584411323041723339756910430764641605894589707115568270963113177927351313796490972892592885217543439314415245147355244978634199177716890326032038635856304515410923500114713270995968550265622418400914528682666906879344643652864486734794016036999172359048805820182443516495981119979487227216458761335324394821729627607305573704194397795567074039378584073731111660810623850662237731376646590019858101457724411960253354463263086687613972164185765024380250887790350210387873580262527628608394660061435231934172231271553828094299585152194195520405508974075773223998004557319019349927613223814296138007142218457830849929058314306620261290449682277275876998834272821986570250522934145577806901513916533784560990262463856493940412518270078185271160770565544987577184439051454444422297966798053000837486148316935880978087954689589344821736701340036108188684852158061259033391948060117754179239107598506696808264509130674331636666415386115303754869943809686058632767258240791775496793161662670074413425029697221259686898051071148610713599339002976069314114305098015389130746961318685652124695514373312156014923003106624124517982990787851355372501392708503586221714083633252307066516092933022670987421688732692091379744991881893021187339448951173368679345085527380814402077263018588027785115523870365526226647483332129255344255805344982115973038792943910368764003584195714593929284892655191680991325290564277096538020315959029399463910749577523297674986597896078071241896333814042330259435332750682728970332244713444383335199674705712658926720095180853821086704189587585717972242412038510228681737629822702837846740325525576926991302763901804777738193599008916093191912672567753799407488986012726374271216377993450854345501350763793110375033391151532428993401697323784333287899848403454772999277215635084538659260234224118976553283308479063187592419385153986520119818949859616007642638163362780229451076715918069279732381505780263101034612061337432969096658837614529205873249950760753773167981457326920862578313200143435784813078684426891845914901196245592021618786908946987629040905545747392670853553970456137032071426925069070159060587342944176618950317500593850733948220122824594323953156731672581445876830258069804594313683490117020327693121755354225902936520325710615455267420941607086476570005021437513147469813008974032701244200448091696787913805109405819699841036044506712010384868114960514272058942886930630462664135337082546430501467345337960406659318065403527781278455580555754847697202434590738781733329266783807852756116762856010720644852774768829852648536868041295022939315322625755461452723648856954049196038889106563537555570911072943489928501869011970770330294723199991210511966953611293615428266818655161543704427755250125647968605649874607831589965078571245890225667987730532228264834465634045289679555962789204017718857273190216766571811752920193018827576451694815595904325878706089552439741503926460114614919229941379142808262632264220601305021613322947698912650087832402147445992406353132224676452796107162505122102321146425074765192480119555728516475980688799934059976152574164324902427726596356237160505176195031201689751653107764520753431729602690145111223868143284335044981782113551781971099604783467108355932707258011605131858629228713626711811920236386686829169133477033651599666131798490487499928368481357476846509562440786356267114212588340409730764274349468301959680687460364492523680081336692818533441416422959724405286356830960777468256105466842018457518497981868830721260051197472347996800400972961876678698909385599627457434699784896185428855555995411284769826051576679551077045926083637109502753821797780748796964370650880601441058852934915130421514626587283139894718016632360934618361688797554396494553406336182532719153647140836604308952712130440260717777625955470251169563169822763880139195445083812072024178762903358641401090441076025250699385462480917368702360787881646761364443861043774601536553875724889013914005831344001239725955292678595191780759911183392137320454579651661209489864021178085818997918920963699660371072439967794448894302796524848915654381409088655276312072134929356303896331428542433967616738218238549331451404506907022349167651644287395430091144574726151500115625460927698740216742795238150601980008365625372026761257511008579929560187409873275080397915560583175574976843970644251272366900615823941960744942219476595634365804401680242792814385714186545363964858541695565669444588062381157377538906520709860468395717370307927740035399299110624026993967937886244628430580880616645101833121700791947989021739907177935467118967595554030027224451797955315455390317763608511813856814740359492636138814963013930649073512076389265851997838268863937206091387068522872693274573321150995797591523064372134647839466952714259928830752651436788468374984557843400904409999903523949998214079177586601861152673268506843287934283569656514871617868875417030528421580951392861416100004326269917142573688756943314607732262868638415794361917857510279946679881255961843510680852299202852115051125175862243646993532825188721016666151632823049256255089870677659672168974868131930990237740085880525964292566913535149146436166198368421644357822456228714644088795729756831046119860505550849367840720896866105098247892520356910407349722352030911741946403703188815611466543530484263768788778984289569563706749240050709901076384315237406769719349249705618282803989586335218964347293457821194417419609410018993611874787041573094093040537498464889088579436071046974486036012554420641239981234102651737559169878734799062571460466083061568667406899117434446478766162789204096955930625088572376571552203991436783642061599785933500920758395973424544801059173660838710740350202423735423253202805983275984609183234942838787676382937429381429542965390999605747674876442942079923249014247250783635863137374749834879049697940093136323883063692991719283628607199497638430562832081824908380067423308168668406668713792876365082151757861119059604612546055338384155684939420254599946387409107342460873256950387309774418166114905807119773762728174841423501437944350514734200874661510052883540649102044805875363550557558974357920039233394250671173581940140244428661506376919489655092344564283892851667489611257245501693027050157418927929089173801136235284627808412357903126332610142865844711249359006856355972091591056010594702704489089463746861981531759788161740517333363856121181218433674697928832765896032973626252030379337971541221114696488321288508310934896411089923566502864371157181853626502847262943344881985716379211606444294265786638887293558248983695143432742275994351710655167286338239041237566191369666652182652622310841733056134757061852978386824888071223367763441935049000425053242028116071773335346595973079126787294247037916005115659556432358342808899949376639927088190686708124780842685973219642262691361413927681563267355803176873115918511870642090003388810014186191120250128793021469777132568714793686419200280255339632198875236195676055334518719259126768520783501678645022443183842199798377371098830935288688896866354900981958083416288297761878762108505937945022127521475930439835900965641478082929407282495899339109933349444647295602239263864704284573796648857637056933389724854237224396129780899754136510837330955508179394291234082227177298440505304704559889912090394354759110487230983931160812889678533951158260548160226232672190044917325126728658341771556771421487785222151532071741425783501665150131370303638007432948177010571916342165617630006028351414853620913655179176735459989934379010903725512685949877999244180676990241827122853463877922466855824738461646615754409184205920282752127563279766821784822496498162752035329808056822657264630516573860424833736923212254739576251950252930797825869024102839029375895898439728369224640291236950451606265189490821549850312766227435371950075607795085781353514298890865854525690100608042386702285805917019530308174753471732839212385420484898500424124773023145513851287061069875111214546844824512511982527292297174834906133149982636390838714228217099067700991922733110291010274737046406070280713399831641087857624385554983921325201874343024907715126199747871741441032426004494415810301465722865734188536687839095706811070948766381309364779459801135625226092108434701991246215314441052077151307140065643894424361775301177590225330748933407665648047535438176785489894745681612437266551222343450823342982706601173326932767588104776872920674434747761050205991532005686549666709408534689763378735257087195544804434037157956251161391256507153689769737015488980859271472675164210541958716053788318356456134456439529623482029435430496638664779235017669626489504015150795663987206052488173498771907634032794609686189594208686128016344831236799373875108920302797813409638527258331291997356826886959552273631432418769216747904588410202331933341875394281755495824948507587631225759411758050805392589337516277115704013266966184570589557939360721162016047578944630564629350436953360784001561246514886389193908542132689076106504460117619681460587258261682984349767395535242440227014631111427264296800373477206957319320508653292656397804870925182927374875722581182073807450370879233474276318519768955399399082319413796136797130150038241187178679050838802476134713845335972199042570509316253701864266147058934275507730256510444848766195817714973911878252030439698632694509627251816221126656930538220086859893119031421721967809316006037917130564337405756958702009113233818925569320439037944405524910782550757951168908491909200549686843861208041945917943754219594190198816465392480093352574679388470814056552814107980129750768150292229785930918624490845046750910860686157390254832153827716905220899174210480750992034031213094232518134574576862162399625987717464120507013928174280843746094741353907674535843497312044451675416861039035392037525414757275107373776606945145600653922223643140267889819433480255583187580412087576451098438220983359327214036902533534462459248133860594752185444216826375788903384015593796674976887585001405698250601088824875630356603771736663250670509073484573316444104645962856080349067312871451902349679088663886706047708747436654025738041617182202596760062568425000966714647826887116814226970514253389750983766656738643184943751109263283328307467278568321734018720519360622745949223227256255959126491115894738145702357030195675416296820094225453021341108074228680903451539104049199254244950145068505533230359621863771541998998942650186703613975411692330815381042308296990752498147978264278078132979754949254577468172489074496709232692017427238000666529522947960795210160001559819024182667137523041113747260799057403445418242473927684535601478965179520005796212323229797409135983953609714326133294663009283623621426043048694098524626230007155016854170935675279422489750712587253730248894609463637090900775408133190603575396877638439263895959737688095369916399311923224140041245089525423120578889494352416810326578373530254557597621742990717987090421594580922313820927701255451088533218561519767751036281881341664855169467884771869319295009457343999153950771214488052307887702028308978336451625891522399232577745012363237996728109229749557475347085663411347521621719372896194165397907704886432994036817280564292415124259966239650618274127183565391910376310669628096405785773593322730755868162562603296963415449440815569497221947329499599264543118281510948273003865339140371184996513655933916284636543419821168954134975728278243747048503372161892315413221276163777595718842080842246615354026100661844380830351567597770989720963278399231639459168092750530251017666724352392175364033446116451925468309452679088843119517237683458088795867314528689328117172165944798451668594280992645140367589403919490930142270386178869905834587185100041163372185340392611672453060228092253451589997167022889020254016184319495176136896919484452756654989489021138735737054025615156105955592500068497544045122211616220774978234181655303501848353009895662914137953723651884611534251111324018748237806700363684947483036216113301581396679620735621787609063069974146847246723012421973961835554757402071676800138422336263386290996928563676119325807537825183614814999474911165348580142189078451253703587607234658899302392496220229420644093314347737852788995817676292766091889841338651250807784243045329078190300947331081116461740386723560830574765307370673967398120571998178882759269285954693639154952880579044304559549474218438875015820717142922026541878660440710049212371535636530482884380675536814848694163670516724176843685991326459178643183531492683236288125614541406150861004855993050949824930105665786688518494640696601027884973872953331812798843805635892088230717089055548290498957858410882861652787759761792153911649131664556673131087186139444663136699571409512068954248729989490383359545133767301665396756950744872364043574582456899127345691794173141434701329674608344150564180916400238048524301234456267530293711534066190841934535237465983116220776459688953204013741904324570475937980640074092445524039527158106370646448173236292110537830987626295468861961451358387200549727751697322767093484374229049364792883855281033935859878460595112380384330217857841251000576044959938784158025533223172282462027095215327366176451485887122062873711610383817242608163679908858482755254064869604098051554504447799841142967849624648967664125998779123144633885715054106426679932941776890836498273485337873247099065398697060471992775476287928046345978101097045953442885100436072529975436722320607694207451862846165772545771449961812829322389302644918802945484629566179811538040052159123696932266243260785958014486040972409258056406343542094747733973983671287429460138278286527151333541182307013798622380909527002403634279440365386765344042507255015165475761380342770625077095016222231302573009395633659610308947755336868659682599794003399273195509311446242944877680277183503159790252812639610248208442314249189055497562868818012101696087929359934765749716295762506533990980125992517526812021172213760342758894550567873650824745946795839164117107230113517627010513916671690655303152050552409124639466885396124595999331573429359449916023529924103553742881201184780932320848831218803662599017064998843362823993902269750352726533427714494844773219476248939634364318381231765936166978134787767249970967037319087150820210104880574590423785659689986571035949082844409284951616423884209926766489349828097339224272728152395109905313373266958065487694678515306469336817317264240107547188000205033307891013315696062827705551907484039203352633654184312737026309661411074343216192606384708007253914582824334455541529632718235876595021826323183146386850504072404549990096131520529364391942582107960515371563301117095077630050098432812102708344682558964084670005936619460763381049626183821089724094523575186983529355172799088538729756475056536342590353691264353405763624467264933578293802684178391688006852613650101637494532251907408762634135100165757199413182139585318936768927519678170258192072113787680143450364937722937551712273403720699493430894903441786072579697651652140961454628017805478621991289009968798935425486305913607895476634899897144738101123747866524904031069158533036559681541162291134987362097414008093436993605679716657150089374572485104931602646289985489905858589129015957007313409307316185535275630193207320352324908249978825975971199292308014052451757442021800795653499571147343667189531801385995975959704157791981569003396903829880485254097104595661606329739617883731137276671208986590983520369118049496446937110239982101609389975064237590700343677420261306627152399555950854750798813710276811707062228158930602237991737002762862194697570695072909823075185344808343722704854577588435861048374780097134895758674085520956455179045250882323718169770259430163671862494270442477840098025135361890495424377846787265567931964484145791506270341780799305836864068927838046788341148454790912856197546425255810671191501222316731617069505004047532404154376532226668355975129922734264990265237632952487247153600470985493602774224592471414332305461149380475885729429037548639793917371998360474451452125979527168660691768547331534201407260695686167461776490235266362355576958430905221877634040219808060151897561029140107922887048682120803623850745844171314656652818137021436325761313389165165420648146791783948704522660770692576430537146518296528834185345160090317539125644312126885596769767977731786365145959836115075844978133276818166024710680233937915598535889446582441950988704244961052648777367549188664130614888991805206927726994308262836105044402082112333888406617858306938969471885237264447810269545960555450726168230080934508999673886892527030218938120346143266033699806193226811319423603676024944889545621870262774522648883456640131132918777484011421952049711608643378527462100035105092578418336040629450407461342990418891468029663829241840386382371184363170317503037041278348390446252432096226745094575644514599413433987134172647976953923208284432372520963320657837383078676996428888460016592618083286615287578952599214744531399967720805782383791347192619284181648216447046614469026228784277114151320903086267747648208655878667699058512056529598431466520606016964729355424681942509919430655944366109517606613009509235896416868083225531124380677575404052841068515622651792692023369630857072280638809591562099191239066447560152326060633240520083737501983375049300304001421673139384432160678144930495297051516840212784588519729231036198934023320711367421844709595011582594915438753472689313314167498183226050754351254804315147691817105822034622193927449506625671445458758685374098119609916635874231186948905940701342912555218531623676075822912926119498900107258854682872471672494358313202018633881325285607021281738768983187565897793600997116186037052093944835499072456240276120419244021361972915128732057967106608074357814302136604969834506474970194826947962300912363439564665232902451857442093057792137840182763452229749181160508080221155232670499397107471599268996579967372587342482591045491802442029802664509776953632507315515115294182603642410082862753333791984577843802579067833786995733855962248043036296796422036043936402367934965219478689205387755059702182649265192861853043518826941648351551420140194201203533389180601681115866307464507921420877319485933624484961957976201885493657986084322249522795104202633962168116263881613094811445792539007506215759704436884822143793870138557604629419396972102018019541150296255377380961999165289144336179430326760278706643276908385916764158804622777338327785130301035099724412261489821735537362691496430734556041563903738548421569016473307312724179033707748384199546705185359205526495109399863581083077726621061357223972809420307793386235723090478246431430440943304152583489675762672637114335567324320071529696853293911035074886509025983829547344361145638198930755819258103938398654796626115927535208330902470120104659894288285412566325170143189207513672021606772571908347795178699079282297126348167717216378590908336694591200657372139906440131412669904025580223795868442347711821025418390589333184005753378444675343784288549635386868265903114745966374103840571423812473475418195691127554250397865421901017166187064930507355784870604918453979423088330189506122324805425249091429040308280830264892076059632053564437781538377196664417747671243311505689266270104689667342041697548091698564807948480005596576145387893929802410744104229039967324604687723472044590259248115614877596150101223651690033359209665919884017518124449536240618153118283937993067109878059029557410502956097532022662320465296995864339761317675120368142879871477664693445560317428080392607574351774093278515802251625148570469635970387781428517410346132266151887334154735876902719833850426294954826623746922185143028031855560239344025618285998610118556730042044866944049818684971104214116118176333360564715249839425739774937875034415447156889276253002621734007726241531937956025346869954475688803725234446716291867278879944395864281877424793324762358349936812375544781713005106372261359026238258062258261176771714448165332270687994931092269498646283556062901748263652270701015227395155125704757646435835780579865356987440531063103146740859974614827157014093419175600957032932492221184435026930844854473967907322767582836486503494888856808962023995211402630726739512308925314984232029500210060878027752479845161048370978817205140672285218891085025502870698015749849772805785466324814383022606490308239723439549753706010801311282296995646320869753477022306631700907303747722907694274969851137767031336892172623167136556524886482750620433938669405477488769360469735425770395862345967434802333925450446083764902562057356034829302894305082002409612326929388652094516718009176777616505426795962190323700486998965604538472747009144307169134702525526675265922664225369396432119501110777532395995133630563916496600706727489577271470998534948330879952636334685896168726952871003988445383251620565285886995940308463263366979125315686817330933067272283275982048505834901884816424159933304081782585239294493556874580319131028286276384644909471666620463159452173221688407662709480881521732882524729092800903795834788590998783946971636052900616662328129859977481690669188982680971939589761176343239080946145713970527752397414447873333610535638873740771296596129604521350209943265488783311765695156906065302008574920819824263717075937095314475755565456183208978497589542926389549213266268599674558408586018914504202873239720418749794933571071698451396623732676723557254667357643829993667700132045481830842901037772852554664711550853145944301904051397098111933849788234910209056057051768172630854648644105476583168045722740920661697757008061224794852157957957972677031870099853107778803697415566248041428636060268357322436527133524799880835457385603137969390912966165478483108006262421276055531346852818971152156100585002758197164433795831999422825185444096002080034544305232377913722839535096903661324014921661487150376144832819169402627358904693419399548101427256770186656836700555751964164600506220505709833617738868872319580826634818563559252835378138533257987034528324753129607621409714210724398717452404153076029220520630839243836774297351985443657027934861937381700718942471948219306470671582828686100461711473181561641686348842546626149097649694283149321416211736422164576164665482738438061634078835866456191542179659812231675668129170139876334990646572591733129067746283244940284037897121704418775027072925346689087181919207942641511131885022874151552337405275844450941013347068872723510018042062727715527054602715435640175278282209259693932205901554043196433546645142029899758870764895940359735866267639065069294260566128164140095188124424914174404310972206324721732068207960715646624059124210970990280765487554808657645266525258219309186426553862983788996564425761146323987715082699044665554375403126224993916069045040636879899964595932399432970501414668845225841820014451861018885706606997708851308201674051535247316845864996553420420914922561809758495418616445391956065043475703778241267270766395213551883290962470336626062069883492113261698468110432248551584861030494309599394588205325502127210893369156727732458314541725989270104420815749340235458598312519034478731567087187780835832872704288037396058681967469491475170260425779338149768197115544629031185716607211267610483872007674574426402884073221845548252277607297188947297504197903561636936838635704493126049992612026772949839476255628786481330065581293136143260555891383631752172082615006423968369767372176103756440751420611450749693969334362836783505117314924418437662333807650673875412808845822856742659988123093333938515815496787771868399410245886703228038392422885217023092375089949436943950594035529691502171286992241863835152647488851439047710198749005126321939720028686665029406534016385330235231416050591071891555460294189288316355368330113723418467959449814912548491306318805764539969267065521569621424061087769001563297901303419770182367056819284370698714283455025838846238019807860601014656901140260221364786646382459822736385970032109715361998164631444452877903033651425551024157913830488434528340755183014578477706027841210612909995598229042518957358963908895779509846044793185221581294872645630178966103955749503364593784216645769055648913363771844645280790813657693679717709718710621425801114456826436320238916490019137341739703960293339399737967436367877412302596741635936060431245454044775715093433981114997575949144808806423115582058144338439640066138910410768761425391680378792184985586745205721723671056644679111132411469963372601546146184275251621098109909671576953449740991833522094493961787787794966209060552679554306061371588269835200066590091843735516183881314154413739690546890809945186199022052222860437948493548568690411027470193972271792520555108447761429754031533435301507126508602766876747538043367132437732462037353832624980707994931121047575022414513099996845351481477959484046368206454438798384908629248683137592859319104137386263633489930650675583648615418251564952522133393549143288326596112191581272422859971178715563422123014060781859557103630995238873612150973075262436688573467010987891736660272257105628285935881031579066217952988886321719780378935393367699994153182931608189659636990104869386226148535096708658198754069599502834353988090119811967599791984785815870828530621187014829896315679869769648258828424987773240053540093371797325090694712799810604342346304872113913284567925892741414811643241381113182656344630793157672311107841695521903296189840640254857714234071816266213167749277102111804464649772272028742401187095284120619093844012977306661766832343507982761302970687827854621889231232716143219525699904247971855360048398903659840207667840883770676921836691985612523465378267787368106917455604160079297710599802190599507317684451794650210772893474892649335114179896061586210342027943205289355942472960522559130649960384192223563740300489541669730441365706304382630974537441644413610753008889689381322720001461939547945407259525230634455431955833451695810196807522740839155630004851891577398363222571774890459670205184061443091247078277531137089495892861139087358507589700712187150317147477361132860152610475755980136675405697642987651170179098988941765640879667520789843672445580735053291244930866035180351004968236377040984693879961379444468229282694327175619508734294647502483176382805428936952448205498280903561838755447863015461133778252937508393189073115740152955622964839489783406854996039386766394974045174145120896103805834867461926477678529252400371619275274968725856244390029198461363349342284933967003785513248485267809974094291366331499975652265351042577427248873791751677310246221325960055628957056295635796977480505926962335537607565748224570369379373443266107967328109019115906916583152317730091561834091378819601378715883198774192320337035943871781014141861290214722428863923323838102681696253839634074501170823173749369195669853800472884574134113447794510924744154274194567282751752418031183004912756821514631871808032945026191363814323977697944672783998400216700678195673428706877067467867380982781729963656808716889466917797088931269429435855380809981658984753771995867663638010949498150499199623442818409579062309775510080826524452854028629647309320382417092237342691070645926525999750592837366009900661590735976780860039938613013912055473306116710664919370780092288041161546232807783860735715332509419003621163317318914446947210370511332621443734619771065638888826746698869530597701703994390181596551312211856617221953311452828294102689585416432236241126921127466225154150354069473202710908685637673225034823604189736751060040358863812203665716114418149539808360384921921047187282155565082220705154090666890179241868447294223641817277179291538226298064386001990024696616320717594905745424115370228585023703870923029809694738366318793625581870739108950964440548225945259471264704153589009231741462700811702322329857447383297656302063134991464885658769349779205136104040089749055952352963637895698805091044410764855672336253291632114849651536588312387854260820719817278841783485877523091657045697983265819633697962619584572068250300961478820977307150144135256165992501178718653465736596807184393440821712164172838213383535322008324922143398437236433317761579604449606782782702102032903584504870807819295353426035244179565571737342465082882182248125944703702104227625781675803793426371571546082123442574881692089023226221329146879831280877566952534641687764744852345472516224787228804591171822019614041368155921410127257537762993839848924234384400276284142983762867798073740337591853625491133323465903571498096786765979904592315012658238282982528485665771974326898356040762508608532771663479531423606408043214233348462527283316309320211458353759336759214430451473558901444660228948171575545157206110114345879390629163517071251360327779466631047961151614495531891412437324114917293423386529528185598541592920609698994296588484568122993808199313076492050807051413861389363798923519561310865392336651875363299858484934987789445540210616015928655858348616235883910205684757747650365463455230783184308197259797251741864650669854205124493208599335029113802130893673317486299806751222267213261171008090021713923024419433183455814031861940745052027918933436086587233281058690216759122987698369458125770494545341177995676871026442437845790774944399243650116580999852956966175693571683298552371282790429973543039943941084257552712639092335539377781444241231736756644373223177982059688100893392872218309930812896166945360849123510729695905743230622749074223748928142684072569687349936515341197799895587834943217901534250153730674288731427994550328806345392925670291831509827248600958353015918563118907853979399372159421032540749166145306150619108808320473852257276096126385371046060074433311397751983752350067742044634418489513526949088317111487902720409888020207589062626090701143931220241744960540463927901205340338424387847362316235795518440348936084010914136804093738418825166469077100604622574164786336685954931605060563446529653860864203643045841831157437959403071075188797737454792246889056383052301366227327113966307656014113635371071345715734069839055712866447108434527469331334011119921812885744456205313693276459804195406912533123971921898546049323056655723165831158109473650932557132137418324887972714176646034350773685241358586260125662099111622237913195746738240772104920067824543655730774255429858036435315927003433568186589028909328112954651028936172864227854814788112456694987656599013838193803038115545882909749042404556979648894178006607614057907792496384002532389629444111617548365092794824320488834067528507176438652567224234970770363718848655374535898226757269119950173635490776237794821503560080309149749338118550821543479332875764748802916091737025219787958988154317922794630159163553648653707204734846520857030216318936120982899390654018286505187120806808426939438330744565758359155058576668279620531795200729134114996736198213249326101498465980490782040272777665524834402078806116794075348469079214637796997959914541405774075516028489188862664524432999857109038464390691240340187420502641335826795948204708083564093425133151426690112804166966425573168162318688305423486023617737879962338965893845472123681761861157087271580218673953397891331272160815598747855784458350739459884969964378017814916642753573802888958859067187374813639103326456973563096988509045573220309324684957108589507140761387322629009426496144754684996672593674698407731972688478042250734749578389271925983476120324929214771113426893174553534009698968939952068743277265299253467488577633636686705934864509197906253756570873040547231824380709547537889758979893287688069257321930850596517037629736880522687400422958788637393213951590361675790437064096079417904938445534071634235963490706940052214883882815791441927097740520579093884443622172584696554172664033224252473192065333512689995765576877757285891271985487600731948434869661328660136820040522240393017225343400535476589662299144775040251829642205423239895969552954148452785839348983872470870020804622572322629628075846694621122208657094745419764492954245502232528166808033353778871850036104570865470622867455381306348491989278366354466937567492395054904946333731212697787291528136512359457835359822203468510724936836359163526436461671341124686334937342700018838727857236962050005682539789948581959551835137276812758681624959193320773664796609760059285339891125963278296348017719288111176315055116858896439850509944720532664052740875806091881584081233944546261755064416763444474655455687686221287492832760480314683191031327312406077552099145725202540398644232339086864503786711977404062581642501404816376580152632884189629278667143676948759570731515446892221012673033591753976485441735573706881528079081813312463341020845124849908828152719574841179975641455360581196707781495762490675426282538182195126461446791948236582599638261486245627044209366702772079295957523945912898804761804662929411287121237390668332281026566140128859685308424745228064401535531046769054285781157267692068312284219374749209988786569500485157022088463562601832570005818147638095585262547839187401776387024185015423423878127505391252145322989500760951768333533635956223112972463247637027163454717933297470458640820503667980236252209749239799083993588180147903504412931086905118188785376874149314058273320068935765082019110961027859146287753242659413520573592732855539171765952948018900630132093569216920675442841163081517663219493294725024983206700356887040621979886384946643313605162828618966228391001594168421252240455721238262034310623151978641164850509929535012188109474116614199936757047579565732499327103458514243724654133122666191292500202447993897234841379889559140676956458220251183104658689304535162023068784417627943795858237169942753779782139633754451233097125637637250392859299788976314730118927408600067366335586119571980220148141706646236573189873091447022829401075935982377192252926437962372868710215459176413339432572889450694208850763953934540585470188788634991569510438197792924968583190608856360454623035534824198889229188172866130104810229344370516083492540491125993550914992402817925529863137847211993973806367752604709944990235504862114265967328974843032373340167651127699661033506078636058269017616439322133287236168535207742411848622841429108913129614221663777839847696336870174311490320573750206154579593265420686295846573258389967452046803452422639160190589438127100123639744758726453012956597852103825991431208885505127854178328324160710243756814112328059716966511284856946597251189616311762346959574229836407555914170756677428740148718690735196369572890328122717838204327262255204761362183030403648358292666644947337048090661851624128976058946217711886186891135434478973049013584550498315496919153474731954341849613668072839793305380689496910131759771114225539721226672737090735524377335951264181130610561767972213609927306146035706547424014841300837544839435621010298673803086299839254106139965535807655829434178292675339794285142572824413537844645306406554206580856979421313287060081098841219101120465785330532386301439276386302977652194685446847999559281654221639339847930220030351287646240077194426748206756730221095811870418148724684434961849032556250114183221772567908854603338857396319055815818667995778793993090115316448824549585072357922225834097578675035458246655294763495434832752906587169403185272961586093859532109807882552256216428326641855514506191772774475951471232294223988229278390736058526501175573710751498895376072591766406189263833240740166383795742350557857489316915517462427946682990784528840922401192543751489785415148071213834468421186721946966810004789896871514555500472963104292002354823584741278611972577472187600960785894032108394379688282003529136225148636433883114412017199815366814274480950921340557753838223348905188081858482010457713038549460573133323027101482623331776776840087248200569703990928353590781805613484933554177974596747824081237761985366920694861904992067993368062472518182422388046209642199890717376407063000100447222520266388026320052353791703145709841941917139831080153783725115656791829727580938211996713573757000911358555504292400502207056480900963033188678619153767037013858002640421584357979062797911006646485734613286600559949780583075262598607134789897555243848222871171251991243588966780386786754204644766729591272393375742488525401022479026494488904333581793857787960351735714784980611591316465989336471090189592067877358460815622840907822596993441195437040444709424114671737859180227967042643799540942187984226226595686588931891010561498991178593752312356423852672292008119838329919428693695786724898516695886505821357455255474494823273157605038882626433795021836199756806830075617345211420563899593424557128970950378038941471130100397695275421995968828530720722934141465255756448316911059899242939393188418109544531830087413834414339910261379962496957787923532701958056167945483426337133190176543865607319946307513984619604997413514334022878821482279100635133276248996220377565021033914017274047821509127851813653064077914821762038598244687359119213594976153619084164557548030590949635513136024886701334442784542829329769017903547877341783207840681690822021720610723094241918620107793855668759227702447269499034922887818536982669125848730227243285654987783943032519635153637679581306492637362940185829491655153512333630862362078803834781724786323105607202197863077835232133451948559821735065612003865560864068417280420666041810596262274336520694293551138610808867145550682030679782508235716845251201082927824197827223509680775371309301229992727402254172674942294763356686924560232995261213929313788151305293916761210714456574729748449512084137982669568826483497992483983176670826201086580148796823190839577284196857668511771279243367785066472825495639977411692692953944778722226873876916461076005160259372735920966081600491791254119458722538285221966954407300180551091754928588256640451581384691984751719641143986618910825677633191591759449422072772453368191977183644791675796941222841446020365594504248615726344000133798844344117471950326836795572799774626480236304890188976278296336552568871028312040282963384315403202554632191996408300994456147401604905855356952220292873899142270554171796527174456767767130349660240583228361668765072098481897176880539462741669735906375103306166250686954159980243577971821913034737214151899542625928789458210502408834796395797676390112035831086075488649773649778605450987922356032824087583658684512447150773340127529661597054623093580672902325969584965078448841648196646613396540683167442252231842582932611333830522896481686466631090587846338662128886891388688041169880780385093522583349868740637911836353281907211434493601605992347906950886724975635374935130146677021834218294175871201537290471904698233590884858781141989842127296340196254678792803149128021925047715446847736673694168048720225276585218974286077448420827840585368325685659257949455734192895350235769369990362334122184844642978708768730499572023354400809800365169420053775902669842980692883100726668497152236713965673315231562728736222364478004361742931385731077530160728667258354063556802211693995489996742459126917375758263560543898171686014267069120341107689839013751117191412532002534728076651861157446909429978842819576388605162382242038077608632286169266671326775520843317388647366659505804964674534389480497256363480098001890047862259854718557916959851875695119536602526670899004633727871045442062651517970863849841674927404590265145042226478839613752446317139659082792183914860895307956862102078071321030126361499672559325311012298510942419169314315594619378580830398418513573416662241006463802709153321239007128150310333041847057484852034539431339001416675936221336084490584944749424668021519586689070001589585250137604645599994456560971317977001130099973370705047132349083938716842758146954033210159024872814303810628282303723100048560111566633615171195988708762633448123973144471311223721289812800862292518520072834104989187278461063394074078577599357269898900276114092649193759053155501495806883224372942059473845767962898813534781080673505288036925701452777719055825028196344315546005733450751683579484575233160231540301690309464421999990095389494836361489323897059698376269535770895627825652401723684487071185743369805482611941719085258232481583049859823872517696301223803449703408908535760216582328182307687608539706368962475891393689361329433082400091562926254972434354238685853277452547713656284285501879459906278194139379602884222788404125623312893524073984552685329553572909769254410314394249443577592788205567765538896486975662539709706125970739676687349257653122166779307691099552274829669082097679557732918508398796276731512362704887713407597158344846193299741311820069441282242046011593364786426616577873632592415887458567478498674640484121524304786657909973805362027318957951724328353880676348479080780987366564783878301153287938051079139960194970111715163824651306074326244348377704263641191459560994964267312431738838701944248313518701577725580509811975780436628879933062016470017514815065367439579210573938039531211192985098636667960455762498840862565744374881053914337988117369697750253914085137283016547690280528085326776135904536837373103336102997323274840463339435319589376593329711569627298462362389383068416589535505548001743311781496612892685761444997293189249925202773537059521725157311826610294951059312619162562522448300422661958434075415502142356727925220090414816447848187139436065641704411878617623323310329050466878850138372103708001946295280012664879411087809597440802518840031579823617033041434028920776433094475148790820166026933686386198309870491491193675673609245654809689560158366418894450026318026611884690402500840994083045869384446416776673081006732773208432096549164328742094624725050282859775420696352450236992067077289257683055286026739675051906260501237444992591379081266716868351988859071774866989803134151311772289104476347157559148231799288130570644571478912909290762817798223307747460173923805311388160652857633083171362405769791831167034072279275317105385232204997902792635339525352413844887903136886192355345613512037165108586035961431217822228157060407589356929181430685589714786030343449461600605768454185969049704134511893436167967435894493088937571395863347631640751645423033279342092130386878398993362412138828244212659996055909939932016160304002800944298619992329548445306970648723628769930030847123306644515597320684564793955085632832349652563022526390827809548407638866841402624305284126681689226461120767390420000387874705425967252968372553740367380632176270563682301633555924924257785765618020037570867361941583647748432421100886315636396630361982378785777320407251775035722336229974618213553647801377924332541907340880305123877661790683672682793588121062245334522968181810413510116657170020302694551313243415774994846345277105047855661719970837701683421005703941123675415318340574091835254681411596851854600527455433806659050526764849023668437648849800594519242480160532406683235680124147054177623420373471894732566854782358960236086568671430621391164833418184504949830509607721155558269976183563436038363736990054173561344939683810899502202353630216809744358195132659301614080724792539755464208156979186715549184067382168702280307525243990663451606379601677022570772603892998871488444325399615026123206702234146709883175928309539439155310285158093296505001185940178227186985260826858292155430625144607806694519241755519828203819714297339210459342557820688570155385355319683047554782989426592250673619060961325343909957762877511724693222756090072985427504114913117147884987693692705416969229119530068162565841052468790988795344205710019203778964431899864466880841344807125038179386725399898675701279939351606499878579156768129397914312814872115277963387785642879178964833890243498327511849115746854629002402737337923308947557266580414398505164275210539150767902257450960407043696532135546099377722670327549462095040651212615792083966403753332620343962954762473009533373129114872340492013023192096896457480407951167117123563061598130173919939998377094210597813802572312190089459174492285896004225996358640146864602579424868732183824077421073283609381044423692489726323305806322540718575415474288326896019740606766788290990392300742346525773420025186450365955761981891296423800518269294642689175262919695270508237984610081198045762837075686840302602694871540771843924742755262831919460626078174028242763792282631217437785792949423526708869828708688000081123192539322551067942968799003448852119467614402818865608015639291223071211452264925115054159552479546440112062602421622684332935779330113008671825955342828271470312871484207156782014676701380946253868746405918727943675188083776532964600037593078016191106265423310137636107884367893090270573081587657798763115810259381258871115789089139109304986132237869557535038819883211742261994101112308486701110923988261865812897238653716852605789055445127339051707077904075425956388150135429862822170033716516485826514600354102578665555538860665812753740919403884412749073003939443628715414883290949962534597230147226136643250879998409635775514016422116968997006942692856213246677942334080056480357156940523867911396856997323414417050164262691492620697904829551166147289336157360644109498750560451824437604245941737538864237635402978262868075205355329474308869490613370657387198640042190980493344513223945687818405571956525551663064581391369310091148848419464482721603390904528166286213665203428905301011395227874171762411733750200884100724501311830391194142063465458466453848078471858826574682247159936043330643951881036915389205581694418617525306097848825001447310695039914493736986492773176128480641814020657178886827377628513891942781291363156897785396408898004278429964410093925649777945837382728037056097661623859667493206362649218529759966337741788141936151694175928062114592187862729009198980611007294412917304962594758913599207099857586455844873204999334543868421317350180789568173440867295486818078572535699639013288530945377789048674307169096880168896034047745012400402711090695624990194827635233325966402342113730992624068155405812340267798718805832242847315346307354017425681215097200106240060433341543922110720272350056983139341760455971539837672013972945085003596952037306667263560674150484418922738463287041104190966997344205898671088222860180390267285907069721215641556436733247558548899423499427832020454852614411102028717162792849167088153341696886370178476947039994838588788669784767222665362299529399030830003194824881315637299763700376802476240117854218413920671250616753957863780769250022051780401204384499973198594711259434276924714562046751237137409382265313906971024641404359531960491302738822226410045942296308778069351971176495583602822486309212279334603630348809668121196203036770831463904370099177223255050391398060841998994223837329345723443788967261814908630701150814483409063214003367824474592235883659006112607555923930794307171551594464049105751566785055836807875803457187143741284281474634514393079131909017461959719562720738870994521500553723046649647127141207082088170106543786269983477961060565351618964998552657078504624884619128955782274095456898001516116538279121668841990386351095772822721730444289565864256551103390725228110178183738917034343890971791905304594823038048617986796565700231754697440406350414733236603210734531201589618671278215861770808982043088615989542546932970289637810995223989668508969816602222665519584899255775056087399685773300051948285691682842170860150041159326640497696718797963062644388182646537904688571096106914434156975744942520717366189340294447253886590119573371650316792405342831520899877385215137753361300819165854718685165092614715198212218573984023272931881167460966241529564827769029075910443815817038465206305411972212529736868492787932531919475204170095115193487702038958868181555222968843331526939293936121628369005069982922586713399527507129291548523391951682657698120955637347083653659435718136196077175035919639113813415355727390605104880214359652436928429543290770695061643566936227032582389530204612396380937158837821813657995615078575392186048743705653846500103281790230303884285838102547134169730648524956774158565033553883287672066646713634169761141087529888092316229215330509866951633350465737834890663972888935684026831320092356330937034440215267042216437544532421992754567069563762559258371345648566035199896593063725434962392677981002808531741422414040157478727006099846013588555878848141539759799951658304211972577369744436488232563016473690031425763634198804719685100465070240404609636573707879156507782249543126674328419365377619377043833268713396075915151874249849293355105860668461428948935884711924049899564420901511001853358437850555783778390468133884587901333745222786785957561547957235961013571609689022648352196256298545550699054364869421499556297959090861272262818521161283571151940478624399353991848235553177270461268174854372628428456729862012379639108732113162493861662890121542634707973150160979953585706197560299207578958478658576558005596804684416761022577720219362697554262070583490785685076526141728416944055806384237525870773204788426415384752141052000184954788217177055924919374493174221487448647515221007293828135069601818062955374250569232434004886401427239284689969769584899415472364049967915009840373472447495119608974713149465982190944545069469264910491830253541258741365553850110852876499437490703233814393775299584483558513280044571635684633963212773816003456087867446961301108773690112043236855657136260987572112320320623456173830635833542250000371755557349663117574364012551819145601193918758414508011746541875644177354159035373254994191699363238946240337287646874806013762662078948752877882902965107116672141828353407287679138624100472228146143345379074649971807333250444306269824755828673565163120654892772256462607964521979042924301807762263385038347026565954388000755151734887484261340308648897827522357618418739271959250433324821628857592312198708746297475003431731394555435808611360220760320847624076051636574399656966313456718614019717437949254298182394264587251336838198581793265157214094546991423360788153639590029631170521937221506226129815087048502594475978166248807102283210712108088299221603826520872545710633240174594790946682769871902511962569299989698347633225806031554557382362806478309969203088581579311115584461542751353575160864954653930482852477328302193306938257927886249139446032657429595260906070920670955857901426231980628119742543720648027095976777665643253177372999890002020280736536805171564794304823793376227863092302869097941613927748000636615921526701330727327208022937938836639789157520440520277222333747455821429597512083396034960058184007648289991498028681833221720419770353887943891378070529244475015752724782523853132292589395697805555778705040343449291981474725686347273298828733917817580874851349757118567102426403154171169218578911066964951334233987727627352368200342555214429581398842824234957897564753559165279706696324759457036518406242551165991659201995387290668187450750699372818945959499828206002617381673743637032206154953774603058216004917852096479045520450888078833445980550297277758101155647676821102023149699187410550350013257740252331450869922958191106905255829300757199789787212025579578295172265337472732545318198797928256913765445541989952712368503008822823448432396776130112020953684147884208750455061104722117414863285899577608607810331449347562079587923388926574671470616427644654681980161439680868456522855192657069740246994353808617125418583675131816870134271711031859526443598142948681631180236081521769594656607397533103640066447265812022869483818955806520903083385352732795117007866631279933635347493339714227776464287496264347388308748483505859182509318016947123486227091971771846834157820931520269761975266678179202227983999409342162452265609497986401945481946931537193573997874087631320441443218658514344447934477627694214142030872634392204817044395634221422013307980779303001560068295696938536441433834951203472548079006578713589504184404364393579158226902407212776310815180403552019774667606407771146918588559853006754177478212621022023142061990175692007028152598439590420272672864347254691352000106538716201645036587145034212577713271974242147174057005450801988069567462780406425053554232780791615094801059274537980201812882493351427492474691556023679846746232975246078707240246462516546299713171209020125536174320518904662783642269245070969405534582439567648311909169194020455390364701776823351136728521519372994658417380621322139568922585584521383782689286220439375503674167868791961031561148683190966956240733673465783221719760722243036181194140965781055151204333332622101498652983941052847802501037711230260565073433235895827764437773585355771963340195761359294565597337855973948294109319970197448059875796145205270883341181084945900706780304669682566516343937003332406485534021891272765362562481163500627553483066038934998518142489423388914584916422138746163555225133377289055068192061479087496435127390027681497897436664327074199353028183777925650611596866227391058713419296006295883510546100825640977575343196434109119248816601276711050353810260809368067860531439173297107585841098183377087334170158696822164495997666270177941492778259890753468645870467787566007258584350938028519809014181627720488408131155436575737985196601775651017663675635722699260388635050608077766691371189088210291023956259087543033813546352579384532328345836282254524335742705783598586033928158068058113029996620905967737214202747496472030875194620848893225174551140251721445200184230651453478070645253808332088273763378743551539882439411288301463192716626844551155942061633202027034393858913136687644317149229671015259184224209490185165198913946883764245646234355921383109568422667092881567611466133847806148641304244563635465862610404449740544888821782744659077990868756211961780529619611133210687902015484120147522347970054372114743481517463601320075799034866122696833666957230100277770561082360822031373338788387155055133319765721100671799036353651479327522804951288496921374506731300861721444941248225653474096401609342054757444732768500997224348783253095101260896893241738088941786837984077786488234886413505965713363891285173848228116903094702584872862403924626407318971348137913788379285343593433528234822729469152772515245893275456941986138485973071285057618217847268881562894236866761614413184326604143774296820738587398756509249700544800084461413874429338977838578965886785003182239349615116553994418556611889518728453464659091005620968161240538426892809511686692439513786258377763785079113559792032319957511188756327291679465312705469756587841675677810274834581653409124675782796473751556872046213627335486684657668231400606814337105062534455757169332026352174123701976699409990929378241795106415777524592802416474392770476374723555940277251640232754647705380006934272827875363125419563266439591335752691839472762404624014672799433452182957928770847983727219250073818200470987176238913432166207754330543277981450278118523278082898477420673184883253892492901662529067134279629688592254800966994003440448295547151132659929020198198660096981786367168896979954050210947384725249720225582421977556332505459297716482749892965829406208897808441897021885697068957523767494025763559399495496657445991831162344366428858529035568888624316566003152875719052180154283743490040541447973576471050345055018059750646870142489227796730384688803582786113389107267548105212208502229332941197868599340713269146786848300166068716032426462286761990414209028702930958846014237290921637305918145236939837589669338451268861106083497391826209351256560010625675802979386852725635553385949411799268664772052219425323076326450382251746090291308986184570470812686956690233587652438880781766194079734184983406473257575066763765729641636742697564241426341863241972737782607468842272477855551272590140455446327176665904051122496411920058760493267545191512257460040352806128128983302588073430962258533522518102196183411748436060547958196347644589099066442562695684652120229240077793443654548781091042397163046657670528055210158490718834291773853405418580164622884617459656982668430765099501636345590629755875346187861382759089200214450494395495825900385593904683156527636816363871127629560415843141367164676569694132190373481058326775077942004521313533588323055284793069469715596742529568127487394098990977337630700695344595510968814358233885063287914390603146307096863305041944917728548798867309484777827784437143722884753587224694621563749873391293031005501829093623179294775516724133791686580366213637400618048306232051929882119611294077791439675081206895411167657724473044290342575044355674519820897475517291726263431525883709614038568817599005469521822579386417687125123278632088793738907591689359175127976528510510659265661851164675075418597636113871049454057086283168962136881117897843462713449553925940792345949370920283470306406121639731458846541704833728456613630074175221687576287946573964203363571551898414075574594152350123904225971966795871163678925577872948705000710885534848986868586856608672618902845447750030077428759627404775599315000654952036731521288834848481827893000068209810943755863879048904345138685375780728451542283576342658062102679376382481194523200672657126639176367697289936425933781209366693396076119545594861036160119829321983767299544785577212180064080781512540896993116888361174501317169131079557244935323651047971608460594662190469256498771922490853731283860454636092749387653248802232242764087091669813051087027212370214740293074932878719200956832839413865638903770395393972404461647687739251417147095573326126347102773297691663493867127234830939942439586558635925437434498829398970498601354409908176784748589265149240595384379721071283623761454369488207944855868404979284376148265121863438742818887575357267756312469643055382529557783991566408595572443656573025917353291291962866643523626782514795906860785752158188712794901033624023957824561328715161011129616225982741855694649277508596357583347469761824764512498591853324293548817679533447729650920630035544694841297241633495555533716730231719427633631828141573565211276647442217133742713867727656684241124600794277825898315745846389499993172127544351981751455194633971461852534821501558038223460718691161912982495769761134699445658021874127848773251446973538416298579016333839011046339857338503203009463323456546392335943746245886607423204638628802525450115943244129233159149611636070349368372989064337265972857327708810681029600524787666705810060306636330363630239144244713980643402638822662325131047082270421180298689594389377180527806759064012024606545555739317390950694452026110534447639714332352199543383148337828632306774722485479103640004086475431938492000874826913389943479670725342997494959349738638522932759074523708563660973122403555586493417886107860899658599258492443625421236329795900922765932001988749190461546375363603326013139329151023146949041192870036614951324227111760045150287015021261404213006498408870609332140775300260652962910675148111616151745737476221855954538308879862219654121859256481498258713160858419049888496303105590770735233436010044964454414212710249060280963599471170096545457913225137211205134781357406936802701584726148563679138797618652713970170049199074980059251534936929671399160419519212183716611341727992378253080681439668821702334621769830469041504431309339263041526197388316382297811951092232446738090331460295013490358799683831353827536655790668401498311737974518432106903279110256107811412015257691376716487103257992992894296668008788246913716175033478533672708730682294971606078693784920450978753917061917657828946611233012012029185792109121690738694779507090423500161782757265106279352428604618801501852446367365993276570785911159061351532437758541197188626837140357492557081337173885414316906896817182775679393506300154055041990922286707998394683853452063820105290380103286817065995713827607367260597704480170354688921566972290454794595918321704732840869445164435440648676453364084462339695765846795360367227514668415032620736457575215340657265325521823710439557375004429485036939882074832582837887840953719563053314547607810024535210524857567353356516189933173315854260530804103134080998189298578027407121093775597117217224581187895047193244153126738996960186587602417574607049840834347977341328731690619099547522664538348926802888970837312688784374926998087158144485867120932243507885843221921804059321184150628830388359913974790469483734330532985762777816619884717544101959957878917936520669608155024909233287014203907848902795973343880408905667698587244632907308203022229563738304845146885394206229758878187102399363074958000270888746018061681094449805512960400208726475716233899520236628259347189268543278751005234476368861039147409890236239932908548098676210368528461171477665055377489738360566357390358280958432556999512762104722205311679437116796864035077733410389692645959520566222801894982242127023222715774296943284990823372122672860190514848177104170181359308193850239465536452211396152477526458754857370019275817202324449440414870220623229517211381345781246631878391833502000768272853117719735990308439120882207432263741583088349252446594320338759053713644479658998519618060772185672197731714923448400360714709021100685162115141599584850355076335195448503184899673029845224291396524430534610148604089231095898870881422911221297911840562667173429150002318399642373302700754110575173092845979505799623605700801961256630186738852801932699519403888481732623571051368304913411368530618127906046370498917591662166246465103538539983368025381240671580227840012068818366361918749499955220549228526905000836869294117103696925374078163846760969790316504368734482859564283634034295599574686985257247456783983452129233195307306035741759182876661600644871612365963291229149911687909314786261925569459381782293804262977238939764076899889031833760907095354345835869776407209821175078536158537451759614260671834311615026587028107396647546802650262408097658766503037164752953260063182278128961525143171527085320197836239316275474743936591508972594885953812882921740091249629270497164686446625586061962809857398319572522958239809709263476094968085392692273085667474549914540644075298663370569379460712047159278436354197378218984988255265648200255202727134752712607317938004191808064266099137105991432167182231578627418084229411752712112024400998872462783349646034625135165229374641275496105575077310784777135307366740643436412529551544118370737659889346834821283970859793907375086294889649912784388168758089065597611655993494042221288186469675495692117917463589131187408702103677695150768198443784746284409386895338168938828133646889835171685924333793088620085860399234882734742039667492699099880064295545525398639708638685942403216162920360812346495984640119792858480633610213298439441018202998401412098904604580716681068460197132920094558102116303871467929138273832415573114316167829917745302860450565617687904207297225252387809111201623728190044521999534652009309933100303841207076338518692901140546118322955297981047548973620799232181687160072992572702027883052512197049456758766118029197560628794128213280159431066231937750817594866355284003611427989517741664441512485414740099742378217980886935797139495578323517015542473220293228617252231031135580163942827496301688596121617327838984477445394018366624427237309304220025272239549184377507213618491212784664843253152626087020247119326128910229439601506807761048135572758920788645051233987829880025082207735863218095960286562191007306939981995663264457892518764190331146818204533274180103245748076393905470204032062691589148897277259431303373573673390182151177007674658878925120570640012182480453177061774968142384289740387382882690602360452773686269294972331894607975562958349346815694816991683845957332323140527590963811460061105411410696260585348973903818476929020979817290594089330226450292276162464579406285848267216124371165051726915649414107257569961733345898977306011909225196400435346625586251828289308861847735067885139669193383076352889036963374721771773164395570674680804168938246070655117005358967020815503166406274914332658738763626022277637565468217813860914985551085317668953551493953978085727254406138381298233681425869748218756289312282873876507011479594952622778609829859464171355482742043693465052776834419048355533058265286190969314108898400624617963475912149721780834171110287540202309988855868510540765152179370228050355302658160641397222878060886924199922166461674717831662326384829817272556161116583627390668130954427285427638817988078337390646896425097748644990027350942027542326444661193762187316845888044370112116740851532554516872482760723105229243069814995640134360317483608320971107064216930962699414929050663292260788238427922073346832855747795409944697799219867764087509910678403470918487466909583578607628776127174922181662348735463665238158906006814519951119932790771191264733269952934839171974064886261882243548840855276913779428016791567159178654060183073875118260730743043974503535144295012699451738461080451554770860919097403645725291561016486790333428820074517940058069491221662792154036244523777468634937657658047701516143873318650475865444771959985747558794749775841583527587780946872796459697462553735036291973317879909285444479671062848082812289449738673761198832691597804599535324605533603959642779211754261416816566438126176911694638635006500046040096776503946607562954428418209321702896827994947355693340620227328534445929525311337745853340732979567945538158687934715542793538322071417589364551199755200932720825542293854975387211713560322333378642900411868601576665397070038728527403169732172180341661978344920506051683256055585494705091896586858129109334635671264521424725703945804053319239494937705964999629016189397047777085438582244057589343028923957234369060123324387489542979091282822559327153697253906247703496227455773088941466663155912287306179921269750030394704851251564984163380429988165831961006179827870598075166630049268815562361001891598195159130636421180448265063814004931072586700202669063116539449857625600776694104993773991726518342499074200979465585495902970050485083525253353375318315130726581247866165017548597250214145835561207297509394937161386049011935814247342238914059295286388953543333535284355438676355966820832530437004308958827076852944850649381170940317524392558483258618931123785895274971953729437378746779548485056160742189318410668009010960178320232385990075678868924921790334459663484268498279917396217788448166867827162580306064557349497980627104971985384398649590451521780490495650293280257098489026654790342835089608842037558413770956021858031321982079513294620352095940756125094542968623662213902375907382919058391180483279694830775026963793977052356435277675052816497878215131293077708218768699221861633949847104491509503746558604832964190642859451866682267368457007091909114171232800963472718694858237740221247671878769997193463819054262892912840292951858363568485655921319543789151421887079036503518073554875864966323787454671251304609079373663986605278728039603560340223884190001161428506503350740569126895176746815111398328025211832477622933914327533079756542043334736804017314104578589765060314232618808944873341157582732836853501693676007980024303385661182129457509103484400083552451741130920683506892150301859716242111253546262656328055790417722570950470717862518604610446293817142596370269800165056553920774907740826458397245952406075115928088177918947979913127026994516425418082584229885847171976851417429335416664010657045958576775990336255757451552836204596212273022071336329610951474681127422726310406476075493069000223278853460403042535854028642676490250459778171205148014191529894498482842995028650817719530024271838100237584916592918374726976279102639111201279833177605335118806146489629291095319905395993077943511701068629702029559436902970644948628418600658940511035999400444805186762399273066708357706297279362005903018201507142206331343398824157513470297066692621311831366461478659369997006374196028707740319941848204799294255583417823931400597703995192923499969816125728208379933824899894367351632157780877369431643923923441886222827964118658671111425998056718090457958057421163949472202441503098259355259141356989893298802404159146071655939764250420586717462338347402649575567272194006958295760465192480742084959945711932247893774147866023630828584736853330500128846886400048497993708885312778213219299717004431081006090637360453281247253183254221201396717382135702398975877155633674666892701885002561161596671577945678069881734504152996037087515842341730373043782218658106546429931959202359678767422504808932721689777990204507500373248668022813751048210863850282370809278957172677446740331411717053092890183112084055196945675420097072581581459788313404681168010307183764221918665273589026207365178458822195558459614473370845803908334364726358679307681370709657806926969446555142999407334745085310640714229228265124544874234416016508340738402457130365196135897095324214785829135226015082437596780992884593844036777573577294309864914572992696067588067010619315746051868171383540352948722198121810568670543212840552043839220675787343974441507717151167924457955415491417503819494428726371629246667747068070763658875182828472754843350863854814316530320253030301027867144683961327607153154141108619216560315119285078683209046277627485170495159687863069491910428014578446263866171079436517444846120130218606659750132124431984228759537147279129138511533278963048321539255414911858713057516973865115912819732616477183163911344812056059284739565755950009887170673513632394419221405629654987872369374106644120720123534047792993495247361921313041017036590594040746632829170148214131708267628779536859362891496609044024340688884352965890933778411778294701551674706471664988021965168497946702916774995417552642271795082540406378247715435763325422611186750315946052809135738884445628749010248778703684518720637347264564913076745382536097207002865889013229465735391459058694397020934338275612348268038128123259208417486161462915815251740301962332356321897195113814572936455323870483006537884823904346072861298622320519390242945497291775988647413119843278693083274651765215081150481746290748774879780418281215946255742718293811744269852856946080580109445136382511632215418835332996371190517770932078576035637940896294718217422986326035453708409355259782474531330017487641988326273508502219522504012051302514748142620345246871050449386755365247873014099156165386467429144917898065289298723249619242422789165799983170422049227285217098380988324496779607346915391536366468083815346604807990800716077188572865040866698508861393215651141153163322758366383020987588384103904792568637809270041881668585939842372857454371781995812683276004954316440916635747539891202501759392412673263093036764770077489815663481748100069972277327110167713369332351534254501567360722764683954395177089169847441635256431814667147236145837095649764111742134362032344075259661760636715778768560524586992753790279069629047505632351965921295376874942851423733197483433243920510909791489549954461126264322744905642168677515404014090535874291818954697342972839084936524207182246064782382314271798632034439809671203556230567053180068817550882893044229170020793731750729179889948985323968308058711151249152264591247472677972222561519759937189834369920132030194233001905449928183761047125723535396587787972529541571959582756001636952738856113079932682401407027097992764140782550360014637560310614275369050394361637558148702995762451292608321612081963516917182057164967790499382197503458642568040114011119971378172789214352146469950035812747187979053782525386300863360722802277230122496358952681604782195385117249600881714863227910905259703650268966305442552424786698954288843746110262545376941693392303000507739208948894517064242401633233502647065451698535030446099319272719500249546336731336479473187898173890291111000151225651690827145797729254191879431631007764077240792171262834940686589528267454852747711665717104907209503872987271516197875293410443996674681477656316550905898036492786936914797740586616604316757920206205968842504688828738292236871760812809188638669929734239869219400681367333058420043895757195696012657499775996075086745418979503504144348372504221103784346405258885721839377033762937473965787357403983832334199387101916649160592707979144310108887295284984926118776053492948460652833198536871174725226850737210317444173591337759950242384794986589173686891743289135620442118480011278248072219887769880899360422572891126416533917577379737481209008088732194285947965369769303202299813201049216607420911083563779217975862557736582816199997879740045196298533284206037888532976980228880596302937732548179333278869639449648406073017392647785502642547854072963008997676891557807915906286673324805171105402296285932334466370547044373123649413169844575323404970750529079222105376602102855162849431917477609784233365317734981714372610461705501227800505191166481903374905099788820704140297447936033804133380488807995734292921268715389273854157333298424367742711980238170119727810174203290260062533824110984491166625366797157093587266029131163282468829489148109591032200712977225890358203029238187043027535262653579533749654768401409086247123022695831768217322989652469243772700526328002416036173286430436066744371045818627153143427693297183176959509520414542519268294640894281324242171344746177113242227215727060174670507304232992457328084691741079937378947645715842286360029485813610763625208048094355430976092821744515000484274217306047048084539446739526267247616978722176095637291537676457023201441528883099061020343070696872937593091890415497385170285773296060881201721821215614090790903963813950800019869201485666214132275127240199588736270643296479367714581410055166883896121627871896329695524089667706200156989033608064870199479425771344424480395582477680966953458886386339563238729470944885274904606850021426455212537574362697468083253168073191267103123012622864877327205301020659514148876338560085371551117541955328046976939548133722207348241208487020764459977669587650399951768639760339140940197838809745945285987245677287658693507743900231845821029905763429652124367762490302536786051588630016081722578375903644848814793516564362144949323438932547428403427338111167524280945926779355149288736930707161556178697738961987142711454142713833830851372582087164322823617557444456478520428169822559727634818828749674130309184028139125837129789876051904525503196414131001245782566031979882820789413227134857864778886468180014324931965195213555614356682671800400397057225065058107703217415847437187952057144253676791222703133098620617561905135064977876293328763639078034390685209775638169584519892928430823053476634866466475170040759477129432556185839037594011158736839405862627547854127345171207748463073412096402962462448351680875385255307268353877579660949438081420965046965373838949624328292246127722576185756985347943752427936916868495733815051846816006716248927340919439527415492767800452717437502299098223119197360726765506390966057871061731201816119508564179266481309627553580085688329004871827540912810604253622775757979416858168140232523122018608186630599244474922496614404245128211272444103024691714462529680022382402746254451210035344484494505581910288916336531657610914988045457510698302526423675380630439183604955028495453422963024794338770603076519310586948178883734443502510571859580547622814709555759549659950456670925830089178937959956105790704967644559745407705195706451159343827742864197401898008959400853922805368717382797306990028439176859260244323226473489945536511354135435907838827738387489866176802055441859447177009316511008884210997459512511081837475221237085593290505439736652466337000524018009308474973544359520614670237273839747126952941836023927634894654660461926588252736511586346415243976286749362509015397808256859980887916638798385905142860053780882459660389280629308440833833673091792302326540023667799846560071626247510210097586730843666590784909179061008180671950260364124254531933646440787022973323046481840247456081542846734906512127555926534314897909746039597703213879810219241018497486922871207294819521716083316768432915679036440042267843768411283241173286194943228415349240739737988839222288477664334406403939728567601235833606709171588836043961460669358453706305251421929570634548473897419836581044357649205654701172956683972038402149022399206252678430928584574390578652780421928389895555910997528436045828430483586577523494940167257252483498122957718298893201135412709415365730570354209840442881910856747945030567886677094496366407402414692387115455513660703919802978707746348596032826268516145048185229086920807223383922921177805369978879598999654910703178056385462206131409863175729204817921298976017661535655924976846119551669502254069582548395157347643325682045877845704285482683368585170049713237643976637276843310829049584159410534039576052912713850155379507973557961707323995070395864933442523616755284287477447125557034637828732674195357902279577982843851029231109558926381904620715086333077081583817475668646063869087044632527363052544247668589483757050019097472254133942915350530573105120961822050771053497609973384598165320449156347338120613753474928370937080768772256195600381817623124336682972853425663884769991375726874797320311140759138088742676449188494568371696648113705726356091737486408421815076959133411673409617217162053213280604418617986551629746146765681337439714483571757218950238579831244616007592254098184415355275957547318104700735937966805549978531454407742806119230417619919943453702405943729429519999293517203343031681253621617106776448170328725431555050472417643412361429576293588399995267499913809765992738921115682400695939566323982413238219788036666629396265796985588403965321493352896136276908593315226650162594650545120918164860997205778582584894217248076712991963713017810444424028371237062574628611140580605386618662390315475051694978077336816286069009632362113663773159732253522502703581120721105466412251642393348604968486873192669842300708905475839807632865450306264110066861609483561710898793538676460433214019841464369515879121822569921563612776206647483891223964050808603972175435251127233841619814651020278518959321606445383677988483794353418884082354017787815253320890063812860386861498636312407835959943191510922442377709907900048425433820842274873075027978328782486653423972050672329632620510708159757295525178441054364411958121559832120227256040518109920450339037084445600096611775193637980047141597261199328969897118178960150965816140330222426858565320143984852562802717920636513652847976629388149024544277353346130194163833055336607091074392965579941740899976527719556253497775849337767438245750046745699569401343793306715099882396492918830047102054953739324033269851059158961244225601669587381191485022435682398054637684951538863958809550446722014216152130182928396002873459302462349806069438451500283481338912969105108200975887737278709472706917332775382546764330449457869182419476607540074116495245694409752055651012454011131228022199810766410185561246674290501310915828954595613942517478439672398455391041674010737772479793764863390761986738864808910881914955326845690491733849855200136464104934528718941826150909221259643325144241684788991001957510330888722763077463386499227031081022613965388516196696428827417305989942282428103091625869469148412043788301008781503911233510623297387702016594181041989168784227692912130747187919826871458937465102510609721371596770513236946222846211662742241528463188561199014856817696441507871461765142136607684710415493721647273824971282971975837493783412402657428271262856229604980714174558616759773957824546827462929836137281199787735318065020209841476910574540874612231406417208941648613578502989904711967403583758980744471295999333523914704776163187709953034832839577093391551302159323361039188218340496867984623352317884659262514498239457112960275169436859700854413666906868537122003028939379158859915268293644229717828908537829416941005040435498872385496298212469194346601919233472100535535196301890986658861339260295328407968374753601702750578314446451761702472444577851063125040754695916170598747878716161774460602795980151307390124949807393256409881996154176476693275166982604300097432286547793296879841066776170150476746756075613721920781491266045261743379882002141119771891935937078639907431817184163868592242651182607368939788956017328228492837604229064130514528064907907840051441070833897483076512851769649503172521354032648181191346019848606426541590225905118130538986802439069996444884017084429676399071198302422228672277896882402081696288962048237971675943525359857996461933371350435992161615677365715395166998727482173066927917368219001192794645845421224989909160035551644713791828097157353954666592380693938723520155581374405244268434572996388310865288999342331222985626493096780521542771615754211498109755325687293101639138338659422603129193918894926041883235784396972990603309208802108504728814862290075426286456690726695678918913065846133176602176668706432078313171895724824724243764283753166649227161384644700790650631051540100718976050208468092384150585397126359441341103178455084341602256878401585604114307386561148016519160871725813694822521554122784061953340206898820269794163850545797371268871721310641760265355033312570282003948624235273346368280401809364001902379101785962118362765263928591111948833192718072405601149902126936589798518863658998772804867106413833565152511480487733160170105564558042915187416863472516536900074822580015270180864630146226012600259311198387236553642787631906829097710052294968188107894713533274257040369007862994294825900306255797659248898425368691497493268392556558510015593793775182778533644565751325688389769761793797980736581731239906150586284051205441771359798250596097149101648764256314231153031760900794010517249458698614229926377061145944623662172433318903167905276981358522011217389185549157389400786971339137763645391652059494891239119211842016349717086950666945765585005111112311976109344367433012356334104917529405998481055453674849152919786546280109413455161105823558710621952941627056942060583118887890789410635149711884809462754684977477959830415306695664231349284513921200778737749101783725613074805917898708065520446745087505759574524534342571936808215682977480434049203906165324765144875216988619624935819180187205276011565377965185703120350261614626504169905352076295914966062948744728862460545186287990284549507393285326861345378248912093331279492830409438529972352853802493936077673932016251588270561076429660559072123476586594645999345423662100914127801413844010274177306352597219457447829724713566536842773580009837858399295132239274039485495331564999054301186387937322154991242606198389452490831313832088645003984402220123805898787620133524193384753956888204559458031350022510116377097445884666431495813042450699136679480638103321317815626290858878418901007072388853276309773049674414900516704580414573215427390961983565888967866061270636937700497302733229521718161684876396835191636542254633714824175885846292734220886310781128798984167077255878287100221846579605163781040924969431282774763517907877696045207377570317165952783348424684206045393668594251648909658121446957963964405513980602902975799834301770844075757669561660635169848521979517662037956447664254655824292336512411702848168804727406937122488831129326309658919908733006567073412605932756555925616356958872787971439163741682088758611381472279219468241679223821139557615116917414973504001550124093439114035946754527619557054757062132428211501043419719638501175350507965596930450596211619441467554739686260843044750571835974879951975858460102206167667056564901507728630201892362419815170579431437345319474554298809022215387589984906923130002607376019752765473396209508161330662655109913100991496104683581377229401471639178521200180634747261826837113317908196920134399781072357603004347790469542703711640131320454159181982211239191102170425070974169601753816993061532226717640770701273226760729292006393426425865963425579233780860264938229990580410580119399358363156455241918203008755658266457692565376877220572981586167125592089458332222867315037717341517404282498811575547753324843328784778405792455569403139279902163044019223139842056836777235873223169736315024587211021288867361508191540301003786713182136840935200322698150328868194758613786344623079781272135712501352790133027382387355661427676267742518392447425559334627486715463776213315386298321915085764155519697459035846020730177777878058951647287557680217474868925106496917008496615102333231891208523835729481848603906752602841028605932106951041996003135019535383631004330529790970311225711794810876841596016345908788266572229227273765102214599918618072804833378193465335821392455098582973935740929880497348967466394111661906470264131143217224187727650497440849679873000817263069800184146167276713993753178896742202160856702427452247560372580798502202251542865834921688925059435703204003357579822033692137829533720350531513584920614916643560140066945948349670055240345596218247134180754371729560931332832097126468158833866609557101829301104173349891079183361650104975356599691823763991205737547146489777917163328066165047931297050022460413009800292022624386444254451058219988383592526172877259906097202283224197286855093150527541746899820221397752336462375360314989157836087381204161729044391166565652136975211234351730384076378851754013108063384183332690871846228812115990470442011509816069905869022804633931982747397480898029882535486696128566217392168276425158568532243230623189441699261163608919298160893402279448972140051065030008666013489821383658148256886562197289470226314793009332545013694976326617632916198415075305697687663286339697113710021060416929652219336614295344278342062912103326268952521823895512174461776121224406535137720734404118923900736014612991266674436165245264439202586132127592340494602602109876992088394866468330713909888255779272879376814851566695806243937291437201618277200713714992193073641917711709356767191128581337437389796154442170309776613465470707552573725124053310604356800309276406759368179432959701835293821527847799774018227680817306984977132816438278912976339077888917983282670117546415748365092913350872154018861437632908076681106202443670825018812114525619534393787828431519395644477810101920283285007919978018450320387791601702667796973529241809261915498790229985470111878377494250738164021363533113840098753249810935170721850043051905646334065420731170120165248630539604432183189110974906456608920027971338044591187108120631497971543461157525960794855453057677848286581061469509507850933017868991525646147463154242444284852577870700975327007878535267500775851795587778320468172472937845132438261631018636973012490132442456504605228801059399534176926884920790209193245565828591681301119532655361472217319228793146409145011600627982827518560838244909457539258688484901711678140188626892489891012822443541313246551703564894214238278808772841527010884749539724958796645655799795249915610463863178041308112170629867805795684065792337392535372826407380207597873892097011458992093526671584471068752568753426049731791838847939509762369090894319046473570682630455843229090004051934840295984258165861520848747330278324773497442495029728862618078452272527772195660865049955879606337404109605251687664798792311864600753368452576963839763247565450226927682540515504780096860134082504111400371266267946193676644329754637828233233805760672171471645732774678458801994203445254978150244681512104936289411202036898840360321104531504151725317389871215185172204166474286535928742896716749582042142196669583838952541989425333341365368433780463888287007869276125907915998633026276593553216158376790113936903070296835194160561090756797925564800935976085747158669103619214331025146855561844382166037688139038557756681120227811877237840184568454215740183338398504487055472213818789996131747284380553217912557448081068929292865992609877805289355986756100283644169380333788541878473654365592113312716191700287895111229626004822989534185987644886533372952109220485564160574914840225680903700004957909459691558260126894543865796830956132479517850802835241652146301723504690609686552434178225758669623326454449180925128996606264025891517969995232304985447005368781977251095890034469632844510692802277418323522040107649420741477605430879002410794372636821692676521386554354663424175484263736155875932534881125039602780199099130863986865202039114772974339340391680046437268388837967311165319251978929778490015649601541824285155960054954668261472301551662964009097012446645319551694584458984605258604290965494394900515177098972067715150941595150009199010163804628290786334257883719151315665818503100542908918399508158267240600484584479042609789250888194685996779448109866925576822791189546686163621365906074615234660167450784687519798944843305782938340124717518707801369636794494415291867351721333783761823844154748715329279806373516948829411885781515161454318597860796058492983892433376975841110967465791844634090934837764636537449695955632271693194756279963839029763190339765061604669880113086753429097913733207629773483328151475372783596594948994792777525237740370682688231586949759271876924746930082713969585367984892150705092240863934648718726589744029537054968283139969268117951570531974228562473510920763593756677054548275558224618302170620853405877520024607778133711899369484458836632838726303870101937603034368920649691523935692012666421366304545392141790740338220602076811661548002952476633329283437276949189472319990701038748723170403953200273167716803845108398121926292060704912472801945573485088383708751349576474195117503115126600312878335942886027379402775778103026395128790493585700869992528971269988469030817599798046902348042193345034628104246601303159926915321525557047328718532954306249252608077319636502210574081496254233414125572146828738698005170043307712388797289336238518409301093981519872592010252554554020282827025087456261033245415692466424044534941673896353378479954176364105001098272484259328633665947089142300089761535196033698924452075732616977407785541818703243741399124134818471424540775672758818727166915874148622840295866411931196871615504607630798893956499444755267834015963085130561700605683866764005715802861140840884820798903977271049174775676411471479936752015234775008119673365300474841401048806131769109388112321438598242405674647621014460642899089931860958328124899092121331043203791742988754122741124456097306269919741066544762484675424994658370256767508555109150362177085646432409677114835464941026081120512966747976326855007194620902488583923985998396426612038667643973527244673779691969759398660070154318045825812081966543807827641697825280541690038275479807174964748066850331630319661547383492226426669284556770455913725502156467130353604678599019498974959989607612480893965195917254125277696638755294337941791998283799627187600757397410856494390242100888835195558099708944161337156962209975667970916153711423378009038993178460954508554332630827143056865239835014959744881157409607251077972151012851026009129734724322890220930226202542042863872580955934979750814837659619389008871036616365036498355675827331722249642148141598791532286663607329296664512917965036235095670211318738428293405636002086001725913871906814187355489446954880177347189667831792658046854613069133579939547297770805383543284263791561186884278887699485855603215799016574487028769497201961015387991013673597006886757863104884246375380228018810684367857969489104526743920704390257311629860879334433906494629794631605763963726426554857398721358130319286690281060104942959402604237586011047985594801119385148793503100400887206830921612805606414890618385032571659851706611688361139937922155193254665850908082057559995784445646350041875824683500825209887739000773657997485947018326689019900869766776392108221071085735361516005983457096099841158209333785466164352777505123234149433387709767333422996822487109080103143413653639113203300199844087835194502335066332155279300544134605967400002902068020666410666420916071799137890966524608396554832021678730548507888143604987639134588923163806041833633351793410529517401433796982522565729033604773886611570999051164161422151863854766695628697727791702258687694421986376468744403922740863640962277551955088170302367839268384921154185042126263963925838218973967342115529519680098523131991461480293542417730191551827635283470305973896085635601338328927444190377563905809846802687155611661897034115065490361181435562318172705128020325478719381105311517076652200309102204236506274171842130400094860687455217669186793429824051848411348022432914100301894341626336625271904633762649622762030192305150181171633781432552201604290464385407467830678202339703174378526151961875568129897616035496036773489594111824353062204906073954645432657104708802275214359307206346750878659485091735395787587227283845008326661482519137079940784981820127193257207450426546054463187839398669721324548010838276020777438507022889281982420045208900676857179382974170792497967614366102089364012499918138934676847397788672892553027719103478909485772586157671947386972655914621028018828020973615618279145996673211853214291571842627490330209937084446164046257971755070425724812264604590660707609296706376798038519580523499009801910536787335278024567418521225724655116418710057792982430510922891702179022709378745344725041056680850507409499293366238597126296539447033395507432128033258031227820158497106237605196323708774770310836626442777526978873913866481005588901189214518733059026528013677317088888056439378398003382075087690393964058489083229788645210254629555902198069321760265890834025070986295302374426879205192098955406570279452253138362746571123251563703099268712879157898160112572512392061619676384256278299145277104096941961318436816624457470458946496482358001020007036632719300437524832522773599145145786656718902557849267359742316582059006457948464755308506282035696745670104746912442168850933012123551940451523806082754213145878731553016320039090461031311974055994211547008923241026744460050975294786957443198974223021207791665305270839615049179807114592385851026765958730038098148615736218964223663980731652780919678828074711965123187815962309712435109211920532315189312657943836829713599522136205252016992075888333848500592847162826426221603075183028191543500078848020491406969525012323233410749815588638262783797454910965559192685659663392092849770630129101803018730954920036127161429765956336043717513898933876107026640279290501181512917725868240316211748700736417206437790431836917780458891175140691058998074225881329501329171996108489567599054166569902072885021167908805302916217801181045098454996376604904423296807980244902082179028356142908950980441644969763344876624199730514912369990174110875023571898319690626279577475314142322264813555399126902022886445563665346059724977570103383075747859187038572106527026542538165929626930975255994009506706687895179980719748655656308816544187583660439921804938296199693926313517689481538596789292708919293281740513357382229592852651236413394788021305774737406681645398551186272789785441836053187712158821768548356916745353444813273389192800778164995494948198462233066113465027612477124879736575815060579784233640190855651971468739990471367058458184866029276595352376977591239135912664336473945008599961596749834311609014207397787060865248343166192757454425143562477659125653972310397705625894299931209364543754227082860615041512784939422172056965818355476143593262504269837623456630913761979708619997073734910608333732808749243713428153922815986783765285073710947694635660887568487664509965255638547099091419836193095614555149153223636555948264788534505166680229025535842855784640516988199438051295164917096981051955097271961801607573866324339465565484196210050282006792159932017506906260543388795746387716057585239127629174574583190576165568241126625733022455328874975649887330546855518608513127520549826080765074672514062690904245385588908218523934763103807708760351413396521881315426940380011154985489575471015958591694400535065537499585535541000568835809776623721366563753059661019721426009774308981318218455038844247230204672236133592489379591900471301082418608060192221378011481166226312835510174410458810132859145245316379522781458866259997425624175017301797233776530569224175584184184527834963425566846493347163985799209250529997988632248796479002870706793793137725043396740465580843691712919851527352134396857372921468175161337372120732388277825946329889215970006761435227219242446395323528070673006975687625479854392850095633158897466165586730253670691122916878995869662781072399003805746788991968634730130628647786058148840662689027988250895919555829933398312289403596714914238077018276249151007887472749479314178922326021881344742761012238446000033202025098612123516056187877071045470678266322781248083599044100470434390498767148214887576176922105225139846235400837059707644142512267856744844779624596280567854292929204536996558867632890900491588592222891976256646012953354606791647601713000687129083173518380957396331188221158741818142500860465033801903143367502923127056937360338444184494253606188752351317459121741060404615394341831714072931223563785466793927502657572135443023849255598737331918369463811237851356765171185657050760362432221942396455350961663334551794070623103295142145401276980531249122040434299206602413849240227660417756884638586800549364731309175462452020475350505812393397663735669747551803218590629352670979539816508325104697361429560904654468423753027873003717377894736038919761632828991319619973331919821277804290588363119744018233956861830377910442176669699002607093894205904128025111513401065360910566129691660443824192825243675668629274880374015238030622564185704754753636633147155612086193445482679659926634387266864218453857176018372125545138333103434662588867870548389706485982713234634158600937977348047647453052609321449084696961390315024476962685115380311290300881425502452918148265964768610706191662514815223446795698099958010143258219463449399730981914742288683599245461444803361947902910322943779836403230625344888549909792559074616914595031234190481901297491226035866187672926762787866909143363732346101283778346654162482774872581491086694174313531844793485243540607809183594429748855659215586059747134722266161221025719365814387049442827465779351675058228892517957870255152142861567688530223248615941258729466459585041688342362165406118574751122155870724203372465897493613437506614520231806816194885784564630755891601766755660132507355920560784336009310624571933297698223723077473361553028017844722053300464236555638562530863095801272104678815740664594983687886604885197126463134176576946491767193427428095459390098356962453142804330318588941158548965706667513487183860391662802095246934142402712168346935358923269635556336645625856321673337194312048694995639787091534552088809351891804372393101026437234241890634072683237675420078331342445513750458914114428582621867946007704936170722940396406261820192854058161806069140644343248688431847791229566849247119706540178559754045715984245789806321801557030375193746861949310562044843946606457992927896260414296077954195042942450650441354899798179290201074709035250438419812981541683466937839458975948511188208020838996273751401024907880293331896097100694768605332383973321543115402610179303499074656702800889110270853143992918844740192505683697611698744662749223057700191670992843481178573361465567264482358056465126780325668697185554378799823580401418215227140039144967576534557182148923678918588584521082117455632319319621658268317519858826207766181754630154766434934497346961320283178422193170599776340856346186516964236509083935997339942767547422472514304213310977615303298361495419395441231871632688418206665571102551556823313335877909231582112560943582115288728082510682021442574904246703233625409489997939903626501215039049020608276447567373237583144186069854498618509212861319386741504594785744490576773841713509273811071627586126994809782966854709972534984409260594929821535779301868330675640120111524426982765200632983571752115898271880873995128835432639173131963797248699538283817427104712423188204421784125881892947334626524739192957112516441643813151938598448629916075133653492160215750837227517287978561127630214258011157367426009237680327249916854549569706354815951432047724171247462058141993622224354872518092557786809711395484875165868308904726439182449486131123039713046847242775678123597492406505817416781699975749256523606540470293255647464637243874178621878190686355346637904833593226159044598935444269240431197233366314400397352864316313893065777530042870458243455297029895826822538604865552475744548728542682943556672248342562014462388570773232328216580922295087444658458003245380597380673203195572101938713315583374563190982943752192606405837396698717950912856867420808549447848195343896252749587989564293280912088644900074079184700357221308875291621392591753700018622151579088538288339498678358043608775403729109989040926404128508094692407343923109651360580929080776774816500323619656762228151726216091767722930258026905015206072623963498527822565147357745762886706009408166785444065157328761558164548896606650614496135113845978314679591369844583205673029268382538772391085261272286834947296970042148870024283833197936729318643412869765314420022283925918406383839178689068480409379086724056475073696361004014084898711957520997666562304091295118216227851651645365431181609067000294673093553987971119633473127222232837767677589104558563664976563677788779264020407501289925314832920314268728355955781304423569223955453806100898771673305238594364902080852542449825827282615534757183873945866856833150509038402573115296475483683147721409478377835739331682255234931191677986277341778977817878918812234466574807190899333170634739476934231135883181772121512828361057408646020738199856972892753291177752810987869341779097844729774868482595980623999357460915223173244474761324743885986932698401354163448988955845481701615170271984529280227081288409497415151198643656475457937113312897761355398320797961060293267620367635325144291528627768559694339633256229832824443364495124957443101889448436489162439904704163201749514384087149442925345528125329606799223059358879283774404129553542669843014615879527765785998952262563563354567590664108067033348241136390638567650928400419208806830162410889434959557806545585744860297142470681402236176944424094415132038925011285923869936428839998118182977880579622163711269619356562426034270807269276726452538996739144640078279151883260823180089413084747940804558752025052442870013099615836670408989908885377720163294530934621227088255183296794899014968129868199334741267443017664792940081444231717094384973285813599609403680134508420130805074433399053219414004407959817830223848049449696314467720799522670694981261352107099316094373236047293808229021540280842670270467378043630032467319406285962482856711602015397803280504810908531860894472139568233942202821623244735933167577340579750170731514548948121771538906915932493949207250383713966925122904658864100412186361936334890618063592223374994343915864325280196810858924824871205177040998251236605731486989787303041724080856781231238005728434724349229318321585138831498064381416980114748268728578487636469838268849100468262786860678467205210197880995127723761888263702050163795300889486382628020574500808808754395289019049223295613883446301607497855619877422446934834282374295881785003422035881312991848078221352514539944116857152033266467547514695196293625620700977671122907735389350626373712318910346467208861743099994073151970843578926138060450174556260644911131882300701427671962196480730856074443945475042753376407400512442059967687044033314512574294073412159112216666826479431033453303521756026126919863875285372377119802562385241848077766107012629715446995863115231570689092693300320160602424398414251902627636273105389365529675865615436257322458896690970600152634299827191783196679552428754874938539859000978417150055781447965737819992333712545123782734599525786777851173450825469143214810249998311271426615553435351851208656207658545130479001871405816496678797858301343023195068370343907347961776535396488054616034784018480739594017699394785026290310613528849824189384861312468466505991723736850413326710957541336281524743221324374244510512452522502258519871251263403622220927379635183739220853406043942237906138403942756880447653821403710942199171835606642494269233411334587991831660004273387546947592416738356846706766539520453705722088117746713283029889363480484640882791971424008721870093871690590205284449122345764748116804461642991299565412601279543936074484089786840594174931997940425884982349718244551563454198520847707787345136701142122804346083833325119995927128742440436571626571457407132996577148971563378066365233414367999584656820871776704515141660263124007021149370184603689228782777448034411882394925026436668069890656224111043040514760359339026639544723154084566214298017402650497663780159949571995830779656619102093413617288649099998120705297756008104837284495361838157536688776424632830298327910055256435969097744099355502290630920097116092342005161687258178987155168903840019251765413749473891471529305572053487037708522478791773579788606046928283467803528107253026188644347106999782133835923155489215248853183638028126248571679972428268348243791164555419253736894043206365390849107652316981551902366217870516511394133924866265524081484225381805822193992376706901003041199557696963470247993527594918338378797095140925781982933494723849366938069703357775272245782018592458210057163116371417654380431547172127905471564748641786981390218787340275620369843796151536344913822014827479026002060466336303253365807519312073539784025697814149924316951525261841080234992274457821951342789445849966085219087952377949235299569643226295112460303970407215626645013435506950468915525642208835828258811525767174936665141966340093318693700489226184804969107048363897100647164490000166780315766685453143172857621304238519716193507801138490391115485540662470243368082104872884576777820485170589996758294193115052668782329951302050787987549612912009172540057516751584111162389723575742122288156386282697147170245205652986125388716666258834455585730262796580452784789538097204927737989664138069681624608196437646734047092129574833888079131950012662074239740838016227908005146942912270322220059154683646265597816112688255295478738355708257438277763615013266879641222507392648182495309781878194303117780497920600583774031166197470560959022050861834566045290023019690430186199921428693487190061442970681641806482334595214637108279905051593858225319654764349557302061030473891946678515508368567574371144949169584560369957549488357735805311409043794540427388577227525569281010715747717288486048137092327266520964015702668106213370742765002763408909764644771183598693966230530559535457607068219485535855568145509601611238731342565592307911019867619948832892596290090675365463174906006597245468392950827692723106626291896603848191386275743811553901978513002462914734025991534250523978637746298294487888770578352199207421164290666020549602009243278633665081136541633179603974780323628790219895679957888592274700521596828584232853143636661050262585689501990051381412208228244266374628024683968909271883800005586255406653858177574651444116030189575985790758575019125598507094866318101292718313401752466211805465951346337686729881652618169810070914315450372834757753710616135726221877778081775619754369093154737592589836764273082815669510913393741166973152807360926071883027576486067949046064530244415922048121410413195419617759866668593373691617342720180180565795617314694951222930545514120438165771872012369273951223819982642252512411689411588435367173938531457562934637061306975804229450043696421790288754283583490436992195609104843637623350090534394837597184584645625817943033784491658748762264890567536787093775306313281909469897786296563484503187502622061220093046500029109099896084079684787271627923405527901319318830316415797716028868484857800745931432447080172174449157366193141594398668315599851023047603501189386543220995214021116577570337554487371153403831578400079766641285553492771375710763871883405513902720502228765018620884277586593532498978737470117411136397339570583205864232442566637405473960558881421411965537700257427012225764581978186493942903400463152446806314682582788745623547094116811930127863619535602046828423882977733184712717131579898254680629519536857542093924584966339671514001707381003164332148518538020895947849284076645612384485516281953103411836193014556926108756566515910710075332975845195574478158409653290988045943552656134808936777310674532291055615625885008557388464724166801144819362191928664905657756876315180806137893794936446913572602428608073096007186600710716014721917849964863287074979512071967488240140304854949855621114292015664939830528954209141237374491695025276074713089095949321032029284143155843664909650191317022690871425011232182642778205865306952959621924927269330110620280707370803756391891495596874059608703542974731822654464276971644648518069517549921468665267910922664998523858140429219576226604843932899011527299220510307421443945923107331578537657578672978552596411662321490357875753247900380024650722434218818449810750186748446173882481569171182197674117077946170588637892887063522111985268348749903451686847418789749649472645363718901754610469424511033323215700239158880247064180673928227563019047500802582312231820093677141885143003064307270176892215493687066299196058234249017694330241347706063812963080621337203042609948680519214329735888120954393581855844592531083557683680739045345949583716482893621158384964763459936213701924159513419858077658142636129633114572896002617871258395661601385541260655467836517868376902666102417752693853983466440984981129725583931403741235576677028086101102398910324468433118327739344307584331579093513761636429320529449066508772556032218026872522512956769563765853132564641298158845258114295280008565507697744333666555814841969881418694952055416442596376077562315779778226100490807576594124502639074071360394286460952481580617406476882630562405654143874326758176610891818602336146248114187558559007398615926200806098359966802629807264890656246203555786891143775391892407322223711151773634733340278607141374757915182163675853471508290086973455462394286877827007211271704466065847324651997436648875000508300524132272216388510914674709071199098836566733594766825618940122957314439267251471492656471875475209092451830393432350123563059783970098675387982361384687895852357251119325671976621400460106159229179870167549634606608990144656139016161146720671141529671164908153504563188133074229414178511511397198389196418923393029475017831117188586638345785897604636558640082865820897409513731688613101764769846068456566593563179114756642505499456993373744368571079710290214138946231115941315125451929682629723475605063913386305494400173989653703662505703044854586682334096044715217836872706485562040015152275260915462104759476636652878015319922670257235252061745749633392125803406183261650383954388869449591056863106000018262091955920342655904517206286098460431965064532778243095897588950458671598317425793536133470995014129505190939782208336039083173197854170949451017685857408960137730972772798427833922598360031116272858296920827610621807255119072049999489858728307984144010108874106628600534434870281342713874762996539606051452516187069642510162686320635364196499178594911848956451260840464751245474578745859238178541917147848836111260261603477919868832001431914053579789707328740903907567898888180108771950951082953117646964437725204170642885854972253338203308980681788428766097460854988307531926491906789994299605928555415634943660311541391041774326510688032767550234768902762683583164894189546288676284154567958990068078712310984210293735928831203267763902939639084350770539518672020589856033328637033558001262564085132713271212600231886599520199138970889272461552035954162997947695063209607384115787778285532686559841094930613339399825118524662435323510942058974034618552971351692480073960384165287343442080388289185975044802730495559446169909311958993691110406911619383890370476206557477355465983246215296416415367962566689133813445098625347679325615834161961057571322291272382970671588127324482816809583182074390372384139172568495329954551007678121365115827436335868352193477405700257552603113818066597835420551114711059038804427393440187062501487919364298212549607273976134724877969213045914814027526338633871873278918941756851041605921889531767470957241826341218771271951269504400030110827110375669516866056214557221077802330526638673278714960724242740644694847198252043923271724947344638193763104355441899966798321799607519705645335029903239936060453100485897613262764664880090185102078496559113725286158736283402333891466091117894055266576046033722151318833810998279665085277977878682459966206955840869919117311429965722824803073919112944146731282599233763570317424971433976931955024831238441791279637153744354042871817790241005034621934708087563426489926902912729938251600967877850874843425974783670892865686909900263488411049865975405352962184823980484597909993863270499050723754276602075249799359092344220301168903636836413263699445371302270070510157886066684522212243134553188141154128077262364451703219023898218968239196573234273138571250959960923550440971826360597531507468232304957736370433537636801085753633881910481883011860062174305846230128875147564437108997059404410896827023969127556290899969717165701498651347165042492980334795610819706217344114350609371615358541544361804924304959775113285704494943021459703469118627406841437359131123890927559707795194311791375130833483811148863961841542983162954728329458485903154981620238215808367903750938855502438148840418480900209317868057797121261665312654325118713132503119082968064269272823902443950468054201188008304441213712421132822713955673574144076032764714241742796153242598609962651748193942545024688836461063337751182647516608892911295418799397968582002096396207874824556185278250336891505825007108011585391352250983326877296347124486654039504037120951397571581151367917927432295095609510685621288817097511759817667175176347436185611181280140540737428426329321768489742598810658250224459286542866987825608681048640983369466120135261653377255612357642014600466882606685460250864821154003945796786632049048203444150429461585973488807786320119809653434796505541060349574285901614049566728383530638512253040935067619905025377173085615503800006097683288663141055738225833135121133873194768766370984034862096239576214624688398178754339288544677227079283957871924756406786047884127541066641020430807111133430395551527128730601287580616556491339054551574520011897215360504550744815985294869521168285230121261062839995593273487074163546406691811081211768887826486373034388981622241759301411473389433588535527751852684995752622851724113068035592764303762011850065591752097986748477537434735523899490204233843681491881031812920547186954720415700037073697479088126874508479474894373935479526441933974820461155591140663210403775140777914955437002576740799581110296346193545456684408431521045063989729818322979053410322743625525148384792607119503726976269826601063831885346873235949103659683759314242424912939521370633527428890280246221238697033769679168049693839208438278701960538302452810460240568889954975522023143697927506127734250677995396095941677088535556106377560089793717569816288943476283932407436102884474846145180691050720403430051497766887131665465478744365986602881144369962289721047922310941674244731642073517926387278149011132828524181957176449187143147876698014648159328321609456730969735661738773515979140919514647852382853690785403583100635191372817421780094299755802328846383448764219918490016875569354968224214523947393780430364984989910872917623947361041550256490877662023386368061080966588295892089757973265258307251848116054389407620915657018576176731035437002701060818145154504120268199019933660532136192266283417782517174983900491825696388408489971768804564861589749912794216065979988692325937023959629328680540071180365323498757225099612648653137174855631861777082749326866864749933413495743689387196821018117417514420541352279094220420216527365332097384647733764716754471407895176120509766111531144735634855468491793934515451101052633782586150778115045196761036925887738640599102036073450969407601168273848468976284507076525557266940844591310647365696304283426701972350591961434471679704237116077430542952633396102791400200286601711504517164351295416010918500230781028651815680206523327713121840096536290815239661463756120434400200926506663431831922002824989129798467503680532275756165279583877304571415777335711118770213807384814568223185542757414360873589592781683454608936440755514155711658443518455030402825799179632575824274255914270164089745399837812067400782130056579017466282787601262737463845845453252189311324155525703126598893675468695388888634803777386160580503019488738106031777856406887664937117177183274475126949455961159330891170325575669985392055159979766069002132369841486017401020901397212342965096766462480477401297745233820054934373256498234569137913572309315663702757389665970168035489294275850382604584854370726820774302450185125030680872473187991197011549170666592833598596064157779417840445578808839837892794288351942372066013997799093959626583724918505486953572656916452302318890122886726953039379582932520181286869156681233714316889933074165410787599703158876758970289989233613221044231061215058914136425131169461208303968552580298190748898870047133213686667519764419482321054420830586989757543699570232858513453655477536667631266296741148623965608443009697315760546295668883352670828292551640184505284719609121707472330969704072273376308311186039179049583361125665051974665065613563876467913928281355482688338052264353977093422354890660853775058367434667824778387045376371817500728146764016992787527117082773550909447292507739748073222603699592909588724382601319128680937191557660171671133159272073565404448329320047665790587443051560117538900250512206056004325959890153598111581365834707572326906387668551819401112583785228462376642707306401940544968545244654373265033362037250394234902354365245467558345124849917480723647049598785735423920059166699523360811930023581407621424957456810924329065510774148289155418380145977526298238344260033365270662991962140686673287101835629009631261852526181368536879756675684324707644915337318159631255659878073147535180217965743510152663202739799769511349291173435658776768584002621994836151503786125138182396258919613621817156118075650607276959502422285545955182899837408398428146947579622622519272344832001144155733272227282683053553224443093335442044807225697864726378084547480185124589001633630746700034172794827750579310838420362081944210342526462863472729224935611431375913860663662280485950701418477817635562033346536333886757629648762276501698620398923568303587309042968980258715104468356466208032418823443957256011105397252731630220479222128242126541983581784682300418843976925774437099502091494869824514921130947143484262574209672994267136803807597580348820172736063634587947254382001083547192272384929455608679022269414426921993655409783515096411460488908175070845089747848787761689598429836967356826639971435798763834124239948731296111781512391642165365445464228268291444433212452825849705549015038231301471703166607602180130526149827854358616287295053475268581937680744405833948235166700347915591504749867019459229502820313776319211311620655323755390476643992423497908784421913909789498093807816804518990882493313032186133848077834661798325773658802461631541064310524242291375574312697787183903361582225673680015704069114918129892809375281055309571359760818234013152127187517072092490338902636751278451810397749368983794212832435216447601146047750454729038562239808186935963696559390530855125736568308819740186581340789493574745326128510807390029118197450372909672217141260599112380744647457916601242451278964470394617853484228205444547153880901904804344104662224199905002556802023357895445924464358205913886364507975437554233532952988952878489425544647969401447984281912021827232554921644257469819621333431807698872135661036865679690748368026393420828380938122617405402923187680958502763291386002388272226649081605186490565698553824980785084037556924060671061001657672631648844010351748235766655142208334833493157810647686036969064179860574631305750957819440064753224851136579887479166152296386206715714839411041727224095475585314639067601384526939084940165442429238327504599325474987062201005529929811869301049428918802422879316931755324704002090597148866360559189738741145329513130276703647463555874997829811648251553919499985610766160046087616590775443413596376420013921246063265776045373112689755036763655020966983684034091492516902937601730599036834838083135752614491251010991028386009155252885845407047852684416004821203695671624137373428344372642116873433441420795340867486289877162564505727002494768846339068482249840792521864508582515427460167098792317100852963041672476682760673556770081901761865182249258309822129158352114319164536507731319220921877039583214341951502608019291008270701318164387521085657863261951119497374175012449710782803823819183020375551330316154407874482147845377546774690753467814777831095076689540681898735916282032975114812645097917925186349761092586004912129447726414423414445507541603625400377598647378191500144617759695633277604540323279078775860942624698832468668817396497778288422344351999069109967881000537074316886456695770886883453126008915785999736501666229044181909766542812276577283579480062939202216819130716201255691890162289414551348531443505643228348879714523117412113306698963444727531583213207551162258763098284556686095188642194845160077844236683779599896683729420246772597779012901559315838934696413167520539746998719504333988969423091072628579404125139757954438524256646313778301905692593601236901735185557904666093041064106983040157158399054334910489366574115787956703032334817588686683671553982663228734686728195848481162554388861358638016107906465138202104843090922560541402441322321198950898757893345427408425819610321602539758891832639763910891443017133858537368551328307683584893987546629122728339326299009107760448581801808244254790229672728727894382345235152148134230606784352446002998104896044699867139774401807953661952345377746062930875139760867379427450767134972161000120520667478979555542033659785748323658285740988763089366876906026724070599644765902653556704647237541957654369885984302432354451002660057212409817051045426370462341595783689540418412189645254258100098453400263789880753926208734666428011559980078271910077152231553086595452324425890565047615422236238892780495308404579533396747968303366605081804842220794200889779830465404545280154538638772617099056801661841838253809635819508243424339335370771671689924716619495989569442653887206225318773922575018845517861542741627028461838144333212826244112663932576988936857487673704160500398537783020810407179449015695783087791814852184804617954118110853555847774409341588288206152779883276185880791242379800302083446176090750267799269454148347173659207999320351809330548010988036860897260914489059877439191299545441614104423978191754487456365905378539899996687105853408670151098592206965592868389773425763767513365724819515946532428506263057401934802154252668993442242323048728686307255726789673710742115287959138978425574870709113269754366136658900086189233010649722118883996299043909376821069259891381600390343770060649477994640249534469518711703975895696779080867550314917745198716715874185239940359534717018446373381186030155945489637413966584819095849085943565146043135053428733995266167265327761628212188388667471003825696195793410707297561969147043248701201067302032684120721682702260726000437018447079179651773988793837203864273011621693067663872110451370561255524410459480755378710480140205710620641936240898632700640983315467019144370184362884000342614490761673468953508869407747747793985732962132229475038705461753151124779585568798332754343123807435951195439662736702774083221467659298117653118960820161611408416626112381465671867480186876429611770394681824642939514297661749028743408152524198319074420344338476869244634333626115552018323486659931846178767200043195878329780231732874494199486456033879495415063052764359692113534891986466821436846981079403827295453799407331491809173917633987735612594889245756985112034497173014773527229956564043134871308714249068540049646367436845286001444432797041945477457752686307047306851570183630696195512895705453940695879276973257943460162337411035090977366272774366466475798235729151210330276128001440148908700834736936922005571197121704087884991362241713010438718897832210786059242915154100292487080038276679193662111578702384955388506225936225527272412267891869463761031762597901239964608864347108621546715392646637707540320059537113055056629752981503291845641153769015495916769087115009322880760291523299901258891688509225171647331691354435640289023400234907465074845763337899097499659741317974560008829909203527348795045846516301493418677386199862034308623993917620409837754647566936765981343750555158347916828948638040196616330637627933488351371136052829595844015331869336687221310300667028935519770859481343549062481381025340622246241609238209753207011423324111982785439585349689905390241654329805089629254392483703801875683925853510559491079979821994351298053131733654234084775942992827199283839977198932414558796265895537844049973426650441416475842431924104361036527096544364375580261017759851499519878908094656466729171930579339211673873185474634901417005818636380251081300574502689657605950084881724259264212971482883810336740915908636155856197613407189066152559937425210868897764391401262986699382962813368676743048597654129190766895834388916566826741323710810694956494744841363972273492319269430758060476682702613540777292066124405642533937948325075533144430772982604511425002640960385619260012979627116399856112073631643112535626236226115279131920594449714873808366812349903700792919049720873026312319625572407146793937470967823921268978574301310770954443869078296961180096243392569244035486865246676007118949539387689545118472709998807856664068937465673778225350357251744222775090711418469877270694582277077615014766318874613691435355109867996773764886210034874076936814773587631287600520362880382134769186876075202649937186004137021037838803710465646847812124331428189731694565970939647828020126061371332357971437847345239998297117902302749956023313240240858053380722902274322147136814717670844841219601756159545518730181034793717466589881096624611394725557950917294680030251380886143717688565517778658451461837252546543844509580134137513765369425718427128618939348938094691191239991586262502890555513010600446785157990885415516428174079744673676030049438496538659985748634297579531440198082262157078069319613928853451490188319194559736507233411793495490717181932266131267181513826966738343453288504241028951067030785851385041842052476977515171803818212451688904664288039748604798296960611202928552480764966520323272101886871097315713000326221947355905723961557929154562293375702118015258669603334904828793123610081458276935117648661074869257402384904202411012296417857788699460157419686304380995125551945182536592309816625880369390446719858250107903400893615008483370979212184520669749814574704013368994577535814125300611742739173778423052670178160620219762494880321642196962214918091236126384854942091338520525338498121197634592478608297530007990978770865918403005187518164195338499680436687117795365371151220348738695054401847038668452168411163919701031049283493929148955276180260825835958218571495123123055466645717644215799418247025159109919228371630887642219205234304557071624632064630917269653775078023511650096255420273609261023696825011529140406253089403342819510887033885750604803866082302216646627209316689229091612987873591354500709528254548375392502354962774864290162878133569880627309199636007950633375104994361303770260337447729726044260856764693717562096561600999301664032139385224536930731701098508666975906992091174395603837178454730191346002939950602980559272657042274195788932012655315964590403125450121442655739546844121181000147198773394755862386203967110334045626740312099811144391085136785902319218545034435617120555397452421959319287411120764827286577044918604386262182048315878175200472663248484192884838451659801355102456361068058889611877669947360493687285495901138800075211237157946345403837653660211744899311933604997488597639699156857934998998399125856531113089174447289255460055631038802372965947675575548364177470208798101071697910967415473584243093727186878109427169125107219182288052189222448939548361119032244787109559744201553350694077629480176417523028117075897605468148267555572173237473839332071104021010408975839494294980654520980298158662280227451530779042598350683018658488240499287997047110425501724755200587795320326332320269580872032551974620855101706512384955669363067175746412854719525086199095267092957020519999850452918332879081943679362464824340586145999350131240073039738479764798628671194613297307412645667649516147474068827681264309653168475914842555211377939019555630273981630398911584837531021294151833932833340643545558970354861852031209914954541760814920407478952418970404542254857591455167171362443827988273119238110499566061582207377803857927576662904242940446328090479659857698830780166237991299539622847142536322971669030158421039362492830360338350526295103157996494370797430861473794799384652132389674039828821926520534927848603486011370156335914488096480050287859401970884713389691507165082951516916908685009194348833381041777043288180131569353275093134461321637943413824071487169089252037864823640103526638400207205793302211902657168329660877251837798910213656625384346650664936079325440711082353484715677893991421657918683947552576349486119482100319420091379679648574531808921773778225396704820353871480062751888340861177440639721698743075280273389605913754352713106137151715324155476275286008219743111197057689266735799784534100926113930853456114840377601418750189473866888528956341396253601457690727533053752599220645741563338858442208869510740262775709404317925769143576517309467495815697426040258479673196367269550450370154175396695691499689402624666982394836583323139786276904242616565716170312557697169258486769758988841358526489896116232564552674204575938291110053560687091739526332463499473264001297993469422991716211984628254857626231948558754685127489681297875537725858372685838165508695442825905330114259674972659070332748185982710833918001812472971886797304554038481587490531035213440190332622636586458577685087329437571474071977148441493423030110689559657182475043404011247209701693024000976649930973901356217196730464044373938679451993641334297089288827927993965407192420832841009833146702418809965216488942151537963269841260815358506474359457265784921759620193397859419415224412363609310888306021506208201528541414424348939791915832922715551399027368541379371899872115957086221395618674556797538129665052527417494934883059064298170728983378741279129820436537379076673878232952158453202706768026922394421047113074946083703491486643502961714696348762533617085415101364530856906112293185846103144885156264903632104568547144079963237714530603059360095370500076934342925860745477599267677767860314492290258327409172405231096135838296996894611824282536133700318703306820870997348761168876708582523459164565154367635759118059002411917952891993560877359026122911937261433249099274507910727466946559548872410519340095109618468523938728860745892437196548892601283163263930886652386765365110614275436726517108120294533271395895466381008349371231131992639574816055194229328147872340892974167213232449087648403513709646562654135323984726402673683934179102357128783388902657845321518055334829643701016948615945624869971620043553162129446461427195458887980267669539859452431677380491264279656951534044782020600165958174444893645881231534389900446925622643698839259297459939148062046898252688344901143656268584748027639533746117529375791595573191817202724211481159261791771270408156005307525728823939670622049211866547424462423208662574426422538059429944277358964318890108210342666698605497838328211498895097068960199366846949718096811080580011130014778056258397775517740379507970538368478843307952603631100687745764309137910587461360607565638911463991853876664460535626462816521587379528666462096925420985017378047865780275640822230597284059782396095639494565232777026810632528379018654719527557407786039758581680093091628773152411920961787529927973098743847376120328495366749591493335457573533050156302779946569516690708989013015952705479383370453847181101207902679288531706116937071495084712793826929687363396293529288945621752323601126091966034950786599952612850216700270786776934959598663853696349818585388786821003813696363259926224935253912284497660755381518727386253125889472592202812516151428449003099087333385196071489256666456109415611882994888487610435284579677864945165750415556431567387909653243074666790554178642786385552776570531945754601408502580277260145042391764473744818618430753999076481805956030505325494438767044591891772606905124169143678195262437321201228376592267034282561528438594547218400022996163802159164077461828684207060638699922861331350003908004815592982564233823696019141962510500205972964115546778746892073117603227695450378778543298411773842868630031190299708440195925895261319850849704301905608510357569786001630912369733048878132138204071572615055856757556116611229507811681376144354262216942438197217303783618947514617822814932668251250514880232219547112464350592361618227763000682569371539535177982939329521058289284071232130992183501035139489988157823876672152442395989336264912779061098549006029083796360843966651827794977744836082640115790568183975914921509238333179813676418268924687561752433632292361262651696249512506679872398042143327424079558705401799969603745340952500428928599796517464059072078230044416244031124444971613752319455009255769687124602825094201145619700967903170884112725487291821436814807826124005344586586168442808532845094273514573095575151917571332339976264607857651714607621858461871930304770574629726008226135654571666565230403252445696833007182741102514509385014011655452118583508561880303499578263041230887135791614767960996008668110059568611052962077069969514186454244225922123057963095319692592971272188293302818912585712670383261792724321038516757824490796303615720313244151436074265610900261114444295848535836529517132183120463380039496199408684197085702821944327696516131226720708799643156271650685832243077367526132318519071777352944990569348259031978576702213351394256374760139284277960341879035232377905117591240547711061524255216043723418294339554308803811474030248178201621817724447765675623814450730345869666273736326592909767951375818001528960429753600347116242397301902863848303119754473833932297659631787262674371269787294611585748288290553186598005975431207081851508462288265747663800435946459394738226025546113591562401854515784026773472269638657463577925589501044062647075219208206287735063033145236559086961819508581221723774263552356744546636498163368848400534682526040491718181386399799054459409458455404865105936176259423399210827735122906335148596521439708605821741993353975968979469402493988689539824623003382080544841361779030963942157657326985145585484398359263318988086137121601489422634604511838374008778169617618947770378836188926533022417505220145107010514724446096244065969012700266617463705185569923991207073245199342160457758106195208229163184093857597448853415385587544336028032692413670908847041383180785986999821245345258983245831971985110871134146293418925633621946838913837552548469776230172305380599882897574567373457442970714493963038929487410747776346486697363827710914896704051209121288398090201687920249797540750844223247473251863019581630569062843890870007316749545803502685849295375749348300388639957467686328892900308198905943173971501771595586427303903754557775637334915493414676054845025818502954594608023241434785329931701757488926823561122654682301456788500979889750611516725845225808455357240672943863688788882107959122598049591654726307749415411903040765505737016802509814681706564827088505972601723171629967301107619017753529009364100127066417968560767706119529640325683734254595996444247453230111064833902942857114537882290495802505687919589598336175588653701678302519503330402026964303465971491457170991485176271416246814820360667624834245167204785298325000434750284725394171610624232475661920779784878402793837971142149071755772077138677238741044395284696271173975601038932979438514784904914862525673939471669165803212064636146882976257037555601393655019397762910418159262851696323739546013025214925201437355083137083242154165381547233340800113599234356215486379999218409332747399665113543889992671198823209372380526274172156496538379646653761285753736191849453588896153192240995144404111700903954950425979044023504810711879050847972135325321827966686817539633352297476676911544623685583811628121485291541388987376983832251375691747202086012423446226622712314144496356655634274677638193237857276231035339616970056631269460750762362967454720796426295701243194605793968581303244267343476111871001856067743705727373054645591012448830905058424629475410190909150540733117283470106070671887727796257631432583518651055182126851524124462615090713901826455724742357980833310381615480628278502261359230980839219777436322700047792727866902540881901742620166521345482798727455894285117857980265488133182090882432272427802487387600281657729613873496827200583905522494838101672424077856756779686317924342836118742626497920413791597671217372398306113772474295385736590834453415286061439234739719273698898140020682252355174727709195014406211199882865710418568230633095187792750927968512848482141202783029490687987281864038040711935510752864656461288751776973473015102331770089276106096526337764701456513062542842171204997127349433429424877939971703934320931609199847216478928782298456364087643919647761331788729553721993685782736305814194276651704755496273311755993137878759497032013869184657425846482344164116959900771225079778500756842540591454166913923377393678426930360829525462693093695803576812628013649306350437547309042302672590585025818340206346259369760337160174453691744088576258886743515156400055615063746370091834953219165218833720159680559752071445203899858049995113014448207504688162992983290830313927998929281784934745785400442936386913680443072816131164363153823340193277199441080916062449644560953105494020100611462439038625298255890666005912524116773067647524460580615010130442246433463387446932178471793388142926021189705082955640003805215106008998397051492024976351222380326495158270210077761259249646151087848746911435030004097829286591086416212627366000253477129198566043183654568962293532931631451532238675530451644282735045634867992504376342140097395943983186615537684211035460932604638479556616725964080851017470030214625946181726732753895902292863213829576751637280119545566735823958540587306596083746242745308212981497605561862383495347618370764264071193858697835899831958363341289035142252544443870399284473780317991691622091405287539456516868074925280287135481026196047858042345827064364820822277768650122576175056355086065560977032369728809221060187290684948756499798853803433210374021872965240648758051625066398525549526998878687403462254395616672439034117762152064547431451033916845464675557600363895272027695999676753410479059109843430833736620797624686576830026936155986684452507235010991121118494084557394848802580995963520727838963550261198784532681850150347329312924657780201620457307799609229405741244623911959019313092936947937073834387491726956420921852372311587239180656178189326109673653155587012458588344188054086245120942776513136041615461768536526999561938028548807713697335812855322697312225323527696644584496385059425784479667478441913375039429689193400188178032165545191125728410033402353482698210688298847201453521814767298687689336806991016965831650543771743569497881329957736227810741802336094868492469204179913080052720680815018232610886938040883004470190181109768367078593305546517476480671071221757535180722858434404641918374560047063749126810859505251994566365122956630055155740641490660445196435773836275695291927958103769232914991378502459875552819635495525601678935507624613903501053480447793841779210188426396207658422086341308407169122643367410679623675178430021299065706643264535700686675598985101703731694544451562420274989097932778226599984165527198455983785530812773205465746713585031289914068902473249474308309304656819303158912191013212142402256561435955960584268908240552584309872839875429448463397066524175414512139788272923504185569658022550236877819647954890167687046456069999439862181138259919347280163532691862266426097721930905672259564068236277134106782832877354606110308942583359731314163878753839930412298442595552575780049763695079238521528999296889784393351048733170442792315235613206612328244527891604404824907607973503108752782647171176304233438002669483863708030381387907369808576073381173164528810205771126757658324156298489166082586981142124339022553075150483894379846817975828951260150329523421989271633791309256589248925469231591207756437277970020232852816218127814218846181769775792111776926375105705304156579051520537426073227355642305056497027531536777954631899858200377243526676535996176196104637085117813886730565167333384690468215777815770963019955768927015062608685165517800963635945038756316964156180913721892182205812668080544625297550742301866786737022976537462403886729044358922046067086733008387784333720618427405087659318696010312875719082191730205656680074937738298585497298041060183124253404124293892511245023847630637111599379340656183387293137596711419720099617775460801673358898238709061290132351742239221180883158220509570375307284991512120873034074012798847379103495792684067655398037615131313131076984902973257556537346623267337807726993851411742121510007037259959332530718990739298081137658189706101157537827027869289808457339373718410824817863139048700651987443253290892115354207626270696448379533444662417785485707106233256702174769381264972157173842209412480538800771983291229596095514878357588522187118609858425810074122806295834775377242367279229187670444321789643815327422336452732272112644620648316286643658472183424642781796261149091978298471308490716532250265393540195845560648037058350678723491690175793983657587133889628341753037057416469906236565288785551630355337850462580631537651990060035366204813849256749497202669254417272750549054379680341581281614686866561715908220408816691494266259863949894503645097469663488801196423277390813395397845337693452029336127832601883045247768611896376515055751561028380804623576309715254198077888167107338433294731777782636883381302967166793633639153873407068238343889227912220338112668400971464040473818184518241831300025781343991430330162673742149915673075747161119834284797025238802560121565015803357147657927715854479082810593739853826824612878467573934524676539144917466109441788451850096445245791040844391915579217327372051862524591209403993942344672023281693883209825982740996009161386251458026335150116493360835308809737066488205507035174642348203168410455961517367709417794720851880715236788004284887692470451157473299494682820424547644350981853189891274786313738744627066327852170765891787745646393540504365656104398180332145731414438705407739044697130994988724202253250973434742308550881380297795872812554820792988183828854284223055531053224982877675854042332464804678726731988128030082683998443662122272913336908812128034644596108578922935754100447663525214567393542746608955493124994016372028368022762585786928092101856998973400442853435371552019055908304282620337896033988737802689216272675708252146202818378337565052216088629682881579666874604028217033874218698106931492778256567356951389139735099300125224744337818832976544033686806179592101309403849684572127110085547528309780517921334445025780990793908326689189913934986338380931229849382343695890840701431949174590327780221065332624554450822535520480006174784795172230613117705092762545724045390944357566503703096263315372131136848791004156306441895142959464301978893632034651753580123488865204524337143268908229135460773204735963669420333383109605432101358897546771887938107714323021845950714371545894894565494437345610072817130457285839978258425459175883471643788645593416948549864626952251343563286693805590233574498632716103661541920954800641674161586586310203203095346852047584667011526805532262381390450952239737675100494790938959784455582764451568363064555083089988767136646126574844322101944443919077317431942803483995123538911606114781002973581848084245014379781084608350099712706928197475533532901363116920213067254088671778777224822290072772123038756018019228262717247974786222260903605344569509786242573328611111527489672606529412713214194201810456302704724158842943495293911438947542034810560550464759804299096159318350356699035148698822052032744160640792408896514325803143238726107417500427450838683598437483247887357778285828842154817408467976649215273153558415549583827067217513771268722789160362823182713116941625736772522029944236671609737818037999827078255572323123394933971867679296703448518729717081712717546667649309203556466199044590663446107397590772857214646170079683411515482475841522528658060798126948434440254922715618661677134538176367593898991058479291394600933690753499011123957408189898801672241883294559311257713549005116551434774306314237089941044265481515754962628217499359829352742864791038831891115871619629083682906530913123854240452236337241992901218110832029932626462540526134317270783501324647123174090302893489591131140423148157258502805580451008029552684919911825966957365242740950127163913522800392425036749339464908963201044250019680561278481046265126659620457264646466673858780675740008084287350311727391402930156034629600687357656975454331315772793167048948431288047047173108307661224246065900065850536378212794692476205427270683581816100819976272807952341990228318293366103351156701040043594151216593006299494729730157242589435655762175498298120769907353230223428680544633682731289037739900128989762946016787863577068738784558864954559011154307550293773349478584469602700043850193263819238213084399219346452824878824010807983824405359708167097387100545439586384249514435168253706239392635804658346310878429369746505615600159210169737817130043790531741187981044276646982891324735897703359640471162558712261584906026378520235101037562980377542937916172213856228299986604443664798225521163453741011674359787328598175213267885979961405325162538498663693705600111447749648306580521607002921150731323305935409345096614885912441377469369786550066271707776806476615699652036983592555267035478529858925089889579916732345541269205784362090302030622632455591676356420617883868617469494612197920911097323062332519351506337731939146158788510662445680185105322225167432797507947740047156112910597751921113016125516437154109736114293330163675129613036459990672601674417568256666367933438874757616250001408801693195351507810562376614856634744680017617417710653645745713052540911059192999860695748750876318694570871981579406156426469078705189471722142282747309440358067754050632499877813449693557944396758950565596526274850682657276454792419031536934884035355986247595693976104627920369721543940078890302520417067580150279590735354357489014804673000099232032054425278769632952215188437628006031326790125983125650150677681705786776093957921791212681988611686975184459000109505594225667441808260940807310487449791695126249049436041140805278292211431680015584732319185335028647237844984500122687017974834226944285548103934065119728309213780375428088958176319502246088506236268706914289688126974326902788317521525956991704742079237781381871811362000571103114305980295204235140488341450126053374146295392047585177192839407931360772494008050108257532360448981795582311631751177473552908281266011176246159319514715818418829622166874544552708180283821102801424789961430117521121056158256317127989696032213845431458190880244768181464847881771900814244272420996849655440817606348547792996891581769920155291187008215937549213847917321540822957243554841857959995667714076675442828165738360500906606786089520852226891132243523932785836776425106932798407548507559814535877590616324303081454438593663103873798078319701387709093415481292112473112896761383221947316747452775442378937702059598954034999816753026271166527067495660511707191274646293875136707154695388476539808653899867551661948863031547097385132467612985124384097325304941187021890730817489908250245964664831199267065893840485844014123132852853264489295725316659278062735983211514456365550905520867897924023526829608932060395655744005403528645451825520598628523341702847556828813278608986722012370975121936760720487500348144316938907550187629733617631400175969163788845709427013946771689308087322919308864974562601740797935734363501660562540077977754082953518915324536845609781727561335847571603014361081585218937254747663441649267793705360027819361857274144560691033202165372585151557397325021348261683340498302446860799940236145075860256523920327077993700039217318085299606122692186044389605902967483037216724712204289092361715441458574187166234530194829407797196080113274765806302554260661595070502125290538535876861577750489547588590890711622653039812536776985105283987043484071313698850317556243030456004924593416886210048018806463657266522605973483424180921638341647919643415358732379969175277076943231750268646196549233374293962706895295448175900905837896616197081118224496538466367282278209324086989950446011552256091001805237240293567380039688218067379323809487372462331210415996737093656320460406223956985561582174899520056546848172210432939093291304577106986617227055476224949465166962649409876153540601273240200773226387479989550173825101322864106532793540670449849580547107427433055804643601138602537903574460073144758029782004588946132893003991845356294339888982699375936983882161065286634788844081737145646308035682136209446285184041485490341257007295657531719582727066678669999304868276327957465680239549357809796826952257532521585473772763020590139832832358891486162985120469623751061319528405093719815245705144986637703807409943543145314476358807021142785212132601631258721975389054580141566479502986898717519748296241477231148761698279845376871163362700608740896949767272801914131025171889985853755749889541386821967169451201167952106879513236959946993326407681174732355340796160949371543889675167564273690380376658240257968816357076033199429009040749028593030015129477989453571143696193323560419596688993748325478835843493674397697343971881046785590739924427770541888297475419478774044256551495778247965639666732843839196578695581717676420252323520997435008602522253082154523992290260925861902276764343250771198720065497278607780275153068163387831481730499322073460794230006197218607460453452763374907822456675794053580181246313987931722836468225050477468039917049380293385587078834005159619003478888804920006941303985036133474607178498212948964188025664575966975550400061480937431877107053788001293328140654978921229577274987429168921849922820017639017605460701078961104254734355894442877457029255140062477168750944077368207489901971832441059870052164005470536044795768936927587640360733806570632472937633879995547796860468927271413702391998373137376180728226582243191782276109790848213758964511692930825850194922411842526624272983715340793994546026482779416584032510192746409968552541488876565935536521296978516252417826101744502932271635055343422292075741572024743845665141863695369194253403670830259092795540416089318367397050136763216053298181490275286994412697389904251052826410611579785187301165886448558513581413413726342271573745501771267105446284955661276181439973261549135315988493959600569961133443496410575487051697890407275460768123421000246577417636168074761314886401535380254252910691433815275013680776350779574765420800218940340231075512130422961193094142107849505173608427968768329084174645324634883748447094221874948606948308962703201207759601102907474249350782943916054993952918680982953646722241401452773537543964989676065992333266002471103321403837121997078686506819571927888736952157162271795429223116373619489994773541896172324430005167613250123347525837189432629092815517326430712754277095982622322562774192304619156107217362942330290007617881176030488755683577845500590967665213991282638102889042946058719055324727219260076949738391590408392982093972652111060893438100297951634702191520189515711038471153790282957617958806934428081486707050522173644032907788106424597887707476654017533392474456999010970892821634896092888439138892086931291561703752725359727839569903266472464212589933169643294325915358005757863079003649745389389602335238457261195190527995618079296547463364143560477674394421534029090826607416506782284737874481846867374367079376322158732538011626610923873709397326365863916502768832203911718235711778370748460675267324672074887914124991161415310074795737820799685066715259162802609489610203840899815932373701939583921350185205171276431898451896319376322824425768967742367578325478795286062341602640656991066251821694636427835740505734349144831430114595008281488332880182183442498334116932587529663387786664460308100960827311618682104804621089544520948960623680161629586662670356302509890431904408026803900542793608310909593830535307928614704882917161646108327656116734904724468930023507241071945131257830253585826656626356344893807830901279143391965374006440244831226885743689322241784196902474000717840016355405214429344314532034865826751875219229595889099369744538863965778708443133251032705385247711418061802199941836283025108556958160329980234359176614360626010452019721276365072858655009739149927421389009709871784598696403233855835257191806112295679154943869882069155712270550808461896258441811164889489893799485368790922077320399257645613608515562575550745803053349252918906192030889500153038538953669728043980759333202399689428431081455170837886802398524938255578002444291218401794118670588815069801260709050784162731996431781442954809298978043115971007537158601112569238846031361021412805737566642776862280876819102247398285438535477520911518705639511808021521531559614521784212192074401885037170078028152262627783672367348827489812818227675442310134889321802274764634204892683584199777115067137978714416810626666581499919475559093826949587273070445447080938875939325170848528971613662142563668476572254376700430843025950134595409105836980273574235291499250232565076081064124133966333468410780085125312177562888757670758714558722596278103276462711351614372499186284048296981655353758018106011835595566889868903980838224298196941216836385673953057754615862794632315255634630195764537171394114375451805941663035504162589522818559248254515662860541072244233717688301334009993382657406651146455622968650300119643385003640928697619094491258447919486150924216177529457545120670124904132488211584066000032034428756738943377706353464396415464905334468567075406756667524445873232850719425421562356717172417216195758849123364602977262378612067783113833163947025722751062148473328368561727751754110109945147645205107095033136201032524485881607003204874089881903313136307247382487052694985456357280618897546864255670111415757958682278452014650615323899050494292586143559934585157392961095798436421304522791570783972047860122018260011542194274665399391254903648406140576369386072918621276308392614706193807292882268516104239218478571601841074299659313057925440193054798956883662445063234166815865294325000941338518940598111852134211005700234529849350444559130969495335120519991339087492858148275495039819978245173841905383937316524245843982600470457797796421606440175177714256563723478368323755522473760504022292079599354432831277757608073016015232567306929796442189856344409553080951646528840434571017362492210289022796364958499851862050180901392550139553024092601137380811017953818468956335067987620227396258259249600655616487139051983539035216762823439248126927297142280328665061242523585384016205142896626835723676892478740403517930008501230780091905620354675954374123724649492836777324390788780527090557653030846464920393720494506190385150400119312711474141440674288283032494499350543819193501301704342138031888326274658595578898329826949349699920063817326828538843408472574680878118950597817755933177758895259629486631542416284337808880662830860400840334274713184837354033446475444602919752336719386267760834068322623773466570568345159768190406861883136985976248534625036158898436561459798866825141045667827418842087683048109074279483822221530116373876644296977683848154108217168903966494508946195382219875615167420782168948878420213883966976740457464433441761660899204042063735469856000824075252864291986051057777431805220033723624953313933478849984310440732373565396552146296039109328090762523943264674009234429507067838558730604406516110780547642549207361185735483088139085846782791376792907332238093879096431777606754183817251483011670660032726531400517991817330383307847845373859548019952710252435412536282746247708526435566397816756240069841237945504487990683347104156265539010372766328824122014301544480032220388178671259139313412045502922642622475129452503768812885513190438357863042398209637804669189892755209618192247133463217262584872009818190370355193269044392827917760725140503021085009446517864540721021385109797331692302142113348152137266355980963876144566681063706964582699500727872501828524794336538089688586853074395911744253568919044398894644581248134817296783598351501353909650412889847434658113257099513879832956091971822235467636965568917245721827160963574583495313038966735699373356106573761038365916814105758292957657978360798173224478308508162026926867721255759624406123162421996865386146778027444970146462938970155955171194778008168089452414520910040282478089509301169791225390983048245301796973852750776486529340543405204986315551281927858251729343126372870461322066648513818919876003224291699924102651539305970250671435700874104489826894812723478644018623015334415596534088426259413172646625952888318867619733514869009602334844139585662986461768258603627148100572739395244706818573397573884970996144847505260248318054942360525705640978290760612968424084095837692218117180122043991305979444841232574329660515704824262208799209998092841919064251062883661929928965010618037580854765292129028814423489289017987823367234292581554423487587094381623931837091937551811444197791829000753075795307971849765224957759546958855601704328241327591439415066886427109927204003900656288235182660603016815415967660757391734329405175753272562408828740198159670956535609983330434822347002529826651552500738879476876819017023014925598012507298405797845575159602321331916854103876078111525576011463384583605855851289714853239288660930929568627093778079221381861173395979310374508687582531733827476914646320171296087722980664057868168595486043207801724226091370375593739899167996999882259148564086067907096450270877759031588968723055114476490095048161890137028963875938291039781322072517477429925204712094028785324983133686715685796612210635731746673229587380142892367268679070393484277996742675061115089627487830248077387294086040513730084422827972100298462379833903218810586234766672343585309914328556906944280153372754924279706034688300216554541268006139957019881491629228397709655606662895417328040283852702024388444822717802567137712542942574314528494904951699016509246611391333738077897499064361794201436257888224211795975879382407701407926813987669584902864874111126427020671342409103961573662277338038761607619586612002310365641728221639755918645227840015115027591768162673718050652466278132127670858484256988614548693969823795633435973482230335719810905131037669031469546705654743889151621347532322061244303564988242239960854430428021490681511270341565660244068016427208029572179871764173096089098840004205455942076279918312223517202951032439358519409263667920905038955352997803208083244775656391459038433225205614922224714416916256158561373279192407386840768488702936702827862556485969731141193687650554067053087762433439665543746664729268486629122689002348231665858524173021775196462184814258096374308349093662611701665160860570708154631219560497319985409070182822436564315876560556212117181093887830436150688464567576563423294018010333388770614847119033177034774359885239791324475188404608772392474727388029749225309038883764578679305756375765837515115104721405556014856492487753855604706877947837554526474102388259059549765335025505357878330281419424334681801210430149537691941275146745829000120675658876629221514584980350126190697659210058028025359663456073714939399896414098940419161855737779481122107177410741320492095883687960085452755788242841333627020347049971681426786086421007196441940941767860473654052041472911714973380144842286594278752130703793169424754134880240912374632148996790569819030748306071315644605869442388405568099289671739854336758685914649118350871790596890598629260232456798029821609758773024935343646545726046330881816696138884037776101298341467928095672076677953476517138052497329730315484652781744135165243162408709652043920103967558630884495354310013625214780391267611088833305646193538466955087433851200099087468757240953901095382026146902432934450278986553712236831677652995711079021558294256284448925126246881193211375991701464096794820084169644748672972262364423404754923530807538746921897737601000321316652471955290820104612347720864929684672263532119768394958199361705824580812769796549187944389814220396910783874233761316107609354039043913436391709876626968405210201964891238498140708471080627144925384077302947974510067791079262202233804197785450315535018203517150841741688629691373205025701932448675652661382239362502323274373967393005753136115803287201882028385280703850917459865975319919051677046956713003134010408094598257149314475567043287054594021512909205722013017048356108775534615037627680051066847677461049876402951200803707982034661778978171665549181227615620917967839785368843969438771287708775401623852673979997437776576720943082346998146106766328059059895215440323200267436985088989266396093917574858484959043799033076514543193430520990570598379477205754980171803575498317579485871093836753648659021330302894301229679245735757230069932973140637880129221965305395487989424971160150026590702188244595673404199683913394555968885117413751246238532911298663704815609697319158427873540001798753231948820314931737204343546904798644823463577380239815806383635599942775818961544379513990240406010799068788492594716947325036523845297095400887036395085340189445618367799727230852135620048857216152364475653396681622080262702718520420038091655223657282444124079052898412165025674344057802269367901087441876755010944147896981096717801890423657348868286847050673455975272596993300526788900451083700028473725897272824165478861962645375571311441990428955712408814085108455550845756143587269190279877715117309041871489793839601051328299015592474050122382347051055220641558455528243414013311647577548738861680803218472854168255376912869132373881474594909270282333502575991224968540551681191907811281570148268018016753378675186924682295849410532769092790616835892643164335534224388598560298031501917756221268743817721058455362529339559255330395015302238563040827624442531146882346772678458628706512145260645462930782422792843033414518913131535401393260633170711017597868578006234485451344874245341518402079933442714249371008040063684176501069640556190660028908439601292187678288962369639645967496859539011638372193785858844139898408203506994844252724862460326257252048140870049516892782211593047545597209037861516908858696317894266152224566872845068186677987948402378745742016704198685442129225561955652515746969753361604920464562730097124058101853369427481446731580801083350383383358524935798490809251759427643339442434440831186402930523654955805102727047982700645711922720186022382798507254089278466482705400041929634846865792334467101383830654937387311202955152769122784540637140894865349725452748288935508260732706536559857414896887940211753094479329496765901597531621078449938642096676114186851956822062586575461748181131124724800158884465231399132519294821804957711179880437723125098246023267305049962910753484893766431712642508453175285137432852923887424465287007131477796194427240295913908697855815770518765745222777024260788350946914400959741673265392060266194420551101315283499277267576282770744660234536505177040425795031215188067757072402174130519575337085345710895401403850718124073410625505815223536049258324188251916716775332112194253628059722283106592995239262863071431149200961979094178234205617228116650850450555926243221797229632104621211482105399449080266079653741591444045634236330220878939648586211168170605210863425608896620575082249362639274003551204534343931234960547949602540451207193775291231784611711295750536877387561511747500165104739715952232301632150519455564872140114964909433979615899730826134289162527987214107851297052131171961278562407507217208328402779077687834384804785260301363079186129334880904516742097449505292939875356498993165900975694834834726144030780742983749444870558399857981084523306690199396789674287770606913725808579538114576765416454110217995588442436713125254877465562652256922632206912816074584696359147053989377327636227464241816796017482964777052062512442233424591207394871544991609822256717405847688542208974557254949046820741687593793339627123224298550766263500503432141446754351362085771323646797419727267825201164700618653480211495250897898699116681695685395642637824472839318859978205759048236003505633615852704534662364352446167011137658801186534664298158145394680672148809014188058537465686637817983916636972997633815860013428561410127371810218424402906426308011834848830146436175324822444249199589685127275836128551868753398878791194895322741915013223197032400026139277913930104718203915803587868616951634647982346573915039961010904758207614654647436241851310322865718463412761223019202828309326781282559062604802297091092210959487684372846097188340262704594627406564539886542893188396397442884427372244694663342527768492533395098748158203719517470663781408083924561455359828157192063093290448892982736956901089408566159836884265418739427307731190539440220413147903108439720537781288133215060677901019207743296712738941080051317382308507473800337895801988103087222736468990619693335022123334930397156737836820424694632455538264655458353917851968402833941020854422045528871486795353521052947082027880783355460759279779875682545998961964421115773779155355209302205429641860752769546402936232230357572478445264368495751698978062844782946403566425290991766712159316272956304860353983117834149775192762276316180097468947626545511877223063575529584788442065209295246998406098771905331818129614127547340236042979157690919049667368060234313610551828496733665570888526311520689979211120741177434833149489447851287133660003613515462777247597247766312034014706906431524826553702998735221895821906383552882819483971356749241589719543709060323393495208813452398395451144461779267916028772270489676869866730620496139070698659535999992779024773600849538858901991213320940754536116136992089134342663943437687748365751180644386753038237787307385361526783068684226775948217184391714837190394620205182062412667240324287159461846776643632497642601589673935877648156475124742457361791169695880832047034330871313889820444066723398492360681462015281342878991230647855213415471429934828739987551488791331245944653390610978415006335734248407204896782191855692247200996593070601457240552440473594671126033944596590530752528174526995713523498534218299642953999125207825682273908662463575784414618023056874312880279797707990126176541264978045073818499761510060047603709460252733955665339297626119600820797448900919669989958201568320272159693973327671825733553896921577084824154489040671195398953827797536941420320319120405983716549286715590207702923003391402358488866952842060644200048801194766123065547204361381570292845335468224248669119700849276420056224070624025211096546396794732351581112776297907483498093790647783213300066286958747363322237896168158674422181975726576500243149414305190190536982190783666876596217598184151207861142590289584532683951833189175190426069216739927030126179125183967122850988863807466017643563780095153611250553769410114531095881919403208929213407863904571926038656230256554643974676877191632586070673919004491300003165556193207990935015599141335922192425875867621298199885790790776574183535005851427799271151082016597375803081553117444702700041723341351743278221497976463690510083834456922132475150393211151977401969470488429703680738680776969330164050092340134952047464846106485440454229214777377764998620002707654052087538086211481316993744056736890970037740346129861097575645631230669584386615978022112764167734684841675841843695792504615388909046094511068239661779038840777540143147105211089419021702537647475051041849715379576379920759566624253686244268495208995252977019109595579316108151540045729937076316589793002945832595533235553089225923348477179389287886425312073162607890447753501542653611032862739700937449996706752659520317427608957216759754221154691808721233822442378911583689551685166066094808425051446276747019998586776724887995595988444616083048246202278222721649578029762594729028962664784755814246618960951070178055079429207915810868218065797575560705272664950364640863466745642821479683873715276742881391941395985945630117504103289824965222084540003375506924828454121458223676065212666339797937507426963372624483597401248903335845390516994749168885702819227367197908018213410781110845026140218284174383432950873559091550570006626749475756992049307011287793582918915783681406828004017231847840906447079059849525186243263556808802812423316634638491569707599717929076924659577497763254526260999387362011725544252252418791384472975957378366580266701724449801940692090337991638492255432047868269399583616679782929189585639958555582560998799755408295586915738694629905580928897327969127353921340329813276966569968335143007820004667789642784501152807783479012418030248541383486006392077372117525126017358692283909647808696563952040107308907509865892495944237854051391114666356628537660811047044900631087449714449427387522392414347391412217518605754273637399505249651614109651298360033678207268171806553470147259434199421313386470041034800177143690738012985316120481773335135146349683846788392858198728403892608177502806198898971280283650735679887526686001702204787895973266985947839636928542310663385372326987727196051188455280655829591483039986581172602822775263841421004807795306745745852153417411934860958123283468376017035902268904638118169943518408531558433108377284027448642684989387947491075573072390701963816346631228532861832004197050538165372718254569601208493776949205089531395701489880311834570337502971422906559220800836569228613491154534962682097588701423770304798466536515139467518508626741720268867663407699284017213216702639859107207064729332043176040590820345902246403434343444627972684600982260150969891070709290141216661178323734175349714884556008397619477127195315056683993837875600158544298507706688281026021224171109284700261300238504345505641782188017228836536341185036056476371294513149120886934024669752579499921699121090559931576142916047889256303562478190764140571272479827601403934316158196594029094029373594913087651131618720942631042572504067100972875475159132929220263900823108592486623277538059665105162425966469774767516811875011873365816983255365975740143625245355499572474015360218977550128371649854024970762093211799895618996771331859066431828974922121745389143725435378859086739790329641841990851211726206620475601953729938299374380632671810002412711282168568226093436210330117263110125190404428683901214361883359091176964301954697336482117825057000729952500926759591707237505161836236999950803472911125811869478953556025554832783949563428881366467460550380956160093305653747414690356305015304694607467052090857505151426795246726282145442214782499878152631229776539250497171239594795117019055536968607407520658930933492128013173866671307516380612312359094751692544592606794320001698765610127046053630709647822491840936646457895060400850927028878881458594309464290210541459638947482839396156651556180454122766322084987339958706507098705889140042462956623230340584722053759549156124743410090432965591664509676274961295018525263994685764257482034075142597671477859493623483689404657020773287753556675294353404505948909631613249961886207816137804108046834827328502437243680592240075395995277702459607191706997472036133551260779934943583654546814558265860664535178060062438211036440499652381747549002691849332474352137779811722362915403944053044762173413684450061212496061146572142064844619740252033883541980064581606228810990380730613975270566074472613863112744079524416390811351817746746993412433953667915493989171938609843635969734406709428312446590188270189186280682480348609522554390721198372377621900035447460071996691841898552210825479989567487748712178956050648128357231896142611081992746070430557043086051112480972179454291701452268614504956963370849024161337643580176647382936224060838956478532965385275254107840892086737863900169326989654553120775540801195586994047686690068575884459606316154271311279922261682446043098422102766299911251604958464521264087169792274480407065606575440266584097295971023050413637089193270490157546237682117438268618681983977599968010689497379782863734026209400543361090240188155481956371253982951632579396218158547011463552773757036436270002524016810056899750105634991171570585207803910388806555589960068330284076450515225156665741343027325398687343459179069717286506443367224151301779319864235019970721519494136695080374480631854177157543200349161704816400928622992496167413149925965430766729688220474833116291749601486349972028413593953352026582385355806676956508241533801480082587382376615338987394738311009307128558687801080377527141675039590682005484904571197815274517357680687467027188847449856073107012467098641392992745665370428919549286211516261656791000065027863514000206134683761339086432691023104519983028189079388026358174510716392549989049941239154163830382633271887574208099874711376210445526703714440655135816016181808732943012266381002477037472732674441555236112948440000314043530236480283058897214984550280681787722797137642543020218038590958192098176244272908335317075518601518948240696043442148497942191286875416156805436737492097794940450655127551964270962368647568713070568943495633875043292385939371169551293707894493803501838184630831818900449867186716447182152461821361043434566732005321999355972980297172711822092772432372961994026373351192854139953910157095255383149955173612073906737936283452191756045801105188564891226222327036099521115048816240737802320598094811308991627785040223019526047794833934304017776694042701664709928092854662159597835368434640245299752924197634821848160433293702561951089673052178493533440316577369543985337616342461859332313432619163733731236141575203692700684384504423249605298638340965978208607756867525264742552092209856613337915498669555274451462004142465129882069970136313997982463697620181693981948054446492535929036598725486074988161560030497456124738917933518247606950047023237701351100745392734797278453517939881700984650751777260958784134091392020839675652391863463166582843406042289778005295999810678366403046365463271354653780583627189203176442819584279710367891190728138238334591375516675000384856417870200289728037964553100342574484220060846734790329501432711172661016947692080095548273975830034430657858201478049547800004427279068480566077462401969488932995442038489388212308179348404053052701016241990610667408266819047725820475831384394698130296173141927942221320724832547880363969109024610558231911690178244553921220120337094258446351342022021781949049389540365386510363240650497983296121738552169920410567668864531925311217120917791306868134393066379116209644485351079011499469964649167015126332369510967011280338357123827213038113144584635075108817468393153488715370595411923245994038551578222423105840871727407342292440480023963601559290368721115089889114165867249924680293123798420319315053982723500190449398689074025168242941569556390895796291182986451015182602235145070900383610108682747070516026547812828366815321382598872806624090490407963412298426833497875619206984692938272557678677164179747677465277738334859327276059201368802020494307176129986725533112024369797777263809515984228335825976171675152916703534014179433462571120981928242994981633689334087841045623504568847543197528803012856314057993628961158625439294193581630155477290839828556940012231829976594510077976878157463299646236332777783467154800863184934693967619563959191203641032789303763836613568655197293088655217906870218430437173811994836342212964342548453640683423093862590349852914529294878589647473692016216248955373028508107971285544388278533430830972142813647440765423755111725769236092094588623766313688431615218216585676440740457969656408188360793131738964958613784245826661018858354803771093965122254365958061943747357149443732352091475549837849485480495488718864803427877960556521362107669455692043529890999962454362926614984962203846247929594808485095498159975851444281233654215216742803985648935642302401952649916791160193320363457894859440531847738261052291710207271636473915078813649657963846826986655718681561065497587509645546633441367920422846126707571048015032885218188007241665134739820421902340678457571667740654496977858885119240083255685815569328065895196549804329093557532712707081705316551247350010133251203228083623272135562614695136175398768473379059085806071742721977158969211021749817544076785381929609892238341867184901576728651911042391930289317618000020875440480057420694561641888913175289885682210699452977973042183580172470538551444773484830622934048629201236289585729371793055935037736357074037029120664670961964265149402049707351854377168678176054265142515837363988448715480034931473726285998508997237201881494424349902508977520855807488977799835889685817948403789352985662104328801367365448249482016290343120153563014823169109368603111749129951402144648233239215464474176803318887083769436224528170309357067271318959623770191194478120444529727182677176551097608573038741597717170114628226606109513691512526988908340052030421494938404976295335235514914735520752978288785671909425775143766694614655605884008803423610883576999760480619279922786424359547554707608485758937657365690012491853549773902946958990979688708212423796574757297694259689765884778521571098293163638150244807303927039773628996557160152299112989679957501140187218595914416311329560732349698321614223650253026305754663939665465546367974416263094271805939107229170402336722385041165224000326147408872568512057334167531432438317932027892612279594643789519400255419855589909877685384748815881562770204581298159437789277702862234803917101951044650006209080151606073088779949790047688748680409585061910512713786772505211594270284348285202808372742077384703640705628299661368599214090750130596381565245037489463819898897319958228629963213873253287639918666349282698937006062299847256011602362007202883828082685271699720721789705395423490518262124742914021338751971381741158379659022093704434379606413043659957318059090346798187287150454066463471736212015745677166190229030343152525533696873984058385037529338566174440748675940353561121179493097542234914313322843073817933926997000005897940473607906057873079091713287216714022352137544724380032606141754303493744664004195663794818118117806349468950578031290597121180746612251548950019338746251672970220654138277287693561561496724540607921278295976339700851903042149711618093353550857445159534287351201132626892063248951135115220808416187112155857612870253607035236997067796526089921271442805936288589230673201121752837966030518905616893716890132183899125170812010177047941065191672117952051697695627193926145036529453673208230463866314857383261823754574096770519163650808929353839760806223234961430190516316298552018561719670029508262222045399332616664261786108566995458416042103264835625934676746347015518653052211010824350690465774489188615427273622228232698959038254420539097230485502525146327122557105499277802170894504212098299655260372792682690262859699131933495676160052620347530907548077390265787182168094583944181653673904972209729267497234377333158045882533380250183016217171747372052645743922944981963761093545051898498370502497340115870231508647234993908451709836158603457310417443936384212163439099765271246667844449222204579901161246725610899435329422431747798048191331385844280355245501708051828616031642974624284380996224213667428261620561341140011462454682261568664565960591251281080595999004113496246540824753658724174630853080226571922626904289274676099467569343694882905737049856698167429715180482916039959052917014122730831602110314277000454001392367740190325307857898094850832242060534499439949068666978917824305292227031174519503491049949920714180778660027050867652262536845857843348926595526743873498844070739862988738553294961476582097378815119965142351072590184178468928516982925877672213105661191917585528711287560134002601434439603641188293499975586943834392294673741124441100921792313457979627645020743549080225758755013968418693372048764588265330694082858823354434419569620115217059701834581225597419466616484432215876705392057541287598884550343129010790769175576471304675939841330647453656757996369824585923012266965730801021882891574074747900623344551477937537153168529210657161582625471108629162214844681681519778843183610038739661111164192721959777468709960627693421582775287737342050810453475323867749897713801268310146879422830270992952856930894346103470309206063064385646995356281720877352446086340708117589994034535316950916910999316927108387142684468370873854016565617141673838602629983890729742548543838419605049922377637404808575147121294627265511495444837319542409179722788934749939061777053548368320573239118609372684539928801739102159633416684293422191529216343855596826968423901748827320670789283703157844998521089763238296678414820696892969383692709154364416434368677114424662968479151008996954322078103947451325164323926231852251348705824530807515177428899447951335514769983907345532967965253908759153730642665902342367252103668052127111527623732267166009108187973782838706052413662192545450535276576186456588222749848894943211885194257849675587491866755063142081850257031198561089165997160799946378452901499370462540875674394240361227737696230844350731315666668311612245781230492420105869873147968729852985197402624332787621392517661138538605288424697529284602271996734375300580861507158250355644741725403102588527202622109234633779481537102601311484098904179598997721261982232576726546443232101065329971761637515422233827562348408743255715173717875026234770745404278709334894261312809689139465431099538705862168071707202725655836158949717772993753814448579237534488711246981501659545018730442830017428408255347325240836620912969173128314256719514332249738283946070709903582906289055319363660699105447355507958977061319329391125967212351224209461526603656304654433389755075249170285035019353924727324076147415327955663927755962020559197477754941287168773048588262879564115099027994901095373399654052754029658956791888439152921042867895908105416075998378636855377509246420612910406008212678150622342211657403637673128191969837202164586730801777132107340361835363842151064665194133406380854409990857830439010985845911716942787683410725887108901762826210882143979692086560917623366348631911176866171526367551037655095460082166311646878706883833331144811145596393541742123139455003762428962855541599915682816643617601214607406345259286749199663160900576533626304079669484991898696127637627058512368363034608400509763012777637687606903231814657262933825218006354373840894497996549113441607818715513654668619864071937435032480626748220181414225505206724965885078321794215002423203795410286594022248192868203157707262405083646712202958744531357763324068165489873057523734687745709995846020681355576455596825324065621727898685643629681868016670594312122541863554433090711956441779134636425910988076047571744347292059306048894310874109474155759131713540647111064061208573692596989967403047808248147709980790947797567359628544626460067028479221348135298984018056909790574361106600309721348913129370072616329680644860163312156579466296650229497436832630934416125703084252071449525650989090096780853678568283545758653087678362609779292246579441581205100664654285991623431703861464743386132366394843243723934348072446136098046401138690112466835278257847327854402256213946789692295278063360431289845997237297995586789505620775647464225425222153730275325295288046839685483702548208921966227620260031554450338232526020756486792490478153070838755218690931950303989471598245050297132640845408305846003861051196088473038446790518024450461928912427801573389500439907402208091381995545155477467760032445680007272837227153027054848800845702253560860765548134235731466633740687101399211664024410147470920403557229342009351593840702244561097600802844970363449908603365208401833528482830911248430153376552018979838868810080832372963433554511536908038062491858830186380060778121265902371200562529141225829797041789935610740373698178293838678587333960929907062447823899978289376370980933120888982238028962840503401878871327535456656292133597728896172665623062571789082511830644212705553462737703277429163565562711317118246745388400723724576829050649337414992075488674556989756458907021678012763569559714849402217602488180384184871870292793941644761673570893346775105818822289058859942908267617788721565664834152329399900381329266390170233176541299482384721727849732399765011830761724332581920735060100188999832710944051195059276329312219096117537671347722430116297859610092734247139702619297838533891967425675481062589333690336826150889843838910116021244181530652610784991926886325773905908099394058449024789253722470724691538065105315382754726755403717611351490742958030209187197315535531366412778099416639864374704965160861832706989479103732308159181701616505469429459350589445798267034766643593221233253679196115513938448866007653559132921462345947950561894984487174595929912949710920548983581568780426058912521455497352103538427289465262778180334102938625721523284446798325083702614491993421228197945900501878794276794948697278870116209174518137607117457091584064874805729797201298343481158064485516539086047405194317640441514120136269965869052700716859880757979643971197726415945720968765773119457805632125511066257665857794030819545784022504931558912364027675994189454282425707792706051597438602731665574089754709821717127814571309467578995625072944135595164923876412139916779084035904866543704912401103882521414203702801025634276516741156008682327845672105672261751527723228809755652682136787260341359508822662597019140533773157053523817103542833035561700923434252132981831925644139091676287857932411667679441337467983347457564335237928094094569044578318218519119409921446189241959063948228148394611047427294350157014511400244496403797470137326026050229567191277263518839058511730822113245091994124850635935717429817143523111923723439953512893229725956199347326004637032646238222020399541703961199047685068901840746906632062607705816042328234325600297717498017372588356741960515284932798448140092122735358968079212710377320164339941306131721478425918616358835520703187339313205266783171535082095706814317819119128558855537082266992643760636002498764543147507350273597456697360394960399979274241930533319404252511721730005305325544868513606376313641088505335185714173439459436235543050418753786134483759525444973645873700012292729858117785238595598645289673641346200000513401672047943365383589431529268076232750301654072958781979774985943648559864810938654257231281151648791616423125042047773361688337595709137824461154083404762198158527185501110540091490280045180982011018651317926840270430471464752105995002842237591108258756833702431876689768178487066070090282735908326720695541962863734412684374039577144623903378391497508109252998783547963451395767213532848174409257667033333483785175746110788095736192134882535378622770345604374130417500138391264786138545500734539382842763599815652045309340603084941813199007711036617648257528421830139287933454780770171418048668568067592140154470388117421337156399641011292603982683218631719404061215371708125286410972752307947256519016684155554384623789706602263069907088621893969117823033683144254846069067550943889705674676569353266787473456408926644716090354234043186012430184321742971254669187254409982225369675798261636063684072700699765131075193849500322224872785415395554066795806008699480399407575974813016412038208522664529583226197933153120323499134032360954103578828299172812699155026328898239578631253822275083139185742114915728195779695193748345336637191979332765800217842454329279190232848831256218316419114622153426014550950807450855495691537722727887010377622447406745114935636031907965609059738262451231872533273949115744126942879858641898779741793603461238340650593842585267458855420015016868702068614796002656788594306922746004287646326274559611240263521453045320420097549464302287639803745407483931313919388017804160190916646256053709586388728318659114744556605780608069267716310862098429859827119174118726055008931926267722083286878285320938406093639620559329300482334352703266042959636805057726669840184319974579711801181945111860130874497393140515853378699610048896942204181543570664932087900030640559505268519412902188682462520224118149106529866816693309878373204476602472904715774416041556948223946964667984280103165658675677775862659727196652887086600485269781565560421110238757029037079879606101418029092286781319743266194773272685496822266291149161381515738646729844213166604098159769187489405115345157053903031303100585512241901882446412809192095886829719154548905900733048100232396648182571342661684822682401627415493025775975250987294677561811969481784709882285246816541368973517721246418739155287622556983064549584277244603359081532903857282227707479231223287702557913024496153317236498941244882393836534817024432576680009449642071790391742741800254328015703015039631890413094481012393673099141132039756760675827655795092026348484826095065071739671439375574744349909893518825710623158289200067645316174725862297345708987196719430035773309735435666847799745681279819733975745324257655209461868031919206197177957051018601697832822085252632974713372349615030881915022450587648838850120204984078987024743456873163913065402072713620165540395839272682068675582147510186604191606995511250476335335791552136521958626741905711858212848912248186945381641842386892576586901070369792293385387060883209152634927429502753726200730342511740114044648873819100740012501945531615357951327551725885698326443626850229889259517688355408339932237134575861730437222094036835146759632701567571461188051223360232053351471136544952292382725243262113539939702019800253132167884709508612114739394091309871599262526147958019336708648655416507272396341795741455067592401999423935517838824448313800968704197068110518187876378956874811835330616033481421015797216639529772451579181568036952007584020964799177933325230455983803817910823271935271044184906851149738146988116371851994348545568404951674704758881739180519869018882163195178122259062393840473141993381277736212571719243056481340851316124072992265577606564254509324599643653241641757867562358936081597787717332144300409586029851105178668786527908263581072101247024801254650070648233582689798989688781872129654796400798508025852474251891468392236705640921777407032010297190462675562142655258775490175928074183983466332726417445113774500783858335400528318887703506669274690929198290427776228437482617038018780078834426774812675151591261194522344674451725624280518162645250632088424452880356392040062971377776306406061668173656297824423204871727570378303386163397233264505593923209699625497239299655058720227445709950419206539655545397561239210602558626199671996845481579961354656674411048381967801710070219849105326338467707266796060233985123478653308563522287129393352929436246480045808003836699450056487504979803639527919535796889572057363456187073952419786149112907370538396114310985236108564934504467257997514731082052800905357144589477460543070770252651266645083862312672766116238895476519913698576032262149971591493763258385309409268260951582244141233546099585374036110580486068777560643239499026712512391602870827517428709770621629827602324752805497679896200494920341264888595828367589396723367218751751055851333329238849997822878883037766189837609356972123280200237546753677109375849139590151787859215158300895484690443700126526133569344004755225669791014733963726320859610897832791321530891238034289064279075967542935548845321325198992821758437278728388356012156566958985602274711392595560821968263951551017630062641655707824183045387411919942754759161113426335191669887532687662196279173894295251307278289652308841576137399047044500681615761991436575399179437328980422660520831513796286292192383692772925014192132940117741183577187788300630804480700325368842601333095102657005425358376094659657274060857366483784782664222354512591577159757618667187349115032483386007064340563532514950739691374465871490511996254329087182479322402238114726624072954691238937284882950740757369343119085960214960998785988869208227847325381900452183077379906353176795710823672666561539551231884319347031331396332733613312280974187324162250287453138107705390493367491524165949739776726406697812700551241708087556322296374920020356012553884544381865890982137743329244115223861873955312741741563187547175632148340908349465989100320213135759049837390871751694022216712271215061629847333894440250253478460770264168556899159305697775681862496152681359778350905232108614957429833334398225405956687948940052342073025946393257430456807477505774851971555964720449375502510279757997160222267427295625052907311881050708834116936330633297841166221950906955726164447571402284301185870796843812028847195360606101587876369192876317604703277574224603448156397973100857005265104534121650048926391454311670238953278201747070255009090513014015672241415893770106969770952144561765158021570646992533800586371295303203863195212995627075731347825558398548979276807482992893293252444089466042219784307723685736324700753133757253529136481630778695572855640491984891078237676176679871371214830543995056276817052747405701748013819993101610684961651757605020892371338364298038280757517350907493341396420511575125877358028062670662776731135531927460726145003237397151838628269122534799931180940505783521206635030718655780240169516060616937245805859878519996989105489372237422028554793420700728349019860274331951814349234006562552854547253679947832902026301229282887242726580850715505312178542191396224638541932263840069879948956045265360543609271935101755101634268844360438493844392830443367863043296914407214176115047832026806005853240371147098431675844458320686140605498896826033652949329417981730139011972365246366220881482977017835001893129595489355687006354770116877528619599710487431717633199887573116509981928050202024162795218297199939134384894549849964006799116394719603072956178912362128618098252050402594656146880960252191454387533051851478783110016478573969734446830180727770570753460714722208476621420170416388867833753994280313750323919769177418154779525005215654871060600560048260209023163161735829917099308859487648799231586420004238800605788724970115515024071590285275937044754551545804332836686743895223080541168297640535613431095300744737259029522238697825903331166530740364484520217161284225111722791728329909060640746371549126431037183797050806375211833432703379832871672655536816198404479812006344349028089427081872408596894175042899968002986820246026574144220117653262140181006966699446553336752782402919658438218578893828368409335407205149694812935545034400477164912386528157216398960218806178473865437288937695568740225718689312343683658521779198121858916638920341498556956570517169191611099213473369045717257555504235389189337933784112191715737520321155741615189555618707199637136790891335001153618882043621989092935821637389282826840437143102169221729215940020740948881396628086984534033617298628912846922409329120424666992125007640410283301596506760205840536429746208716747805131920358060397398010939479172020818992716987010483218070208100101351356983991529055602402186975075459125331041707570350989061340645834842123750255509044748938708588246708901276401472276450118590642141245619759406673585882520131523271002836650460786993044181871670809154648494597849166125913748541131722196567536697037580443604608322334913770393369499857768125505914595953249877169429358202961565462089654307702535717997299719265013611151933518500395362294835684721746906150220963010839081295237170483924450270559575827057119121847351269588750959690706355262598506330542763811186646923231938546371488957047659538568772391608786128946386659190623657339700475944046649345855996787269680684698017533994287688907114928983642082898223680081185484637386172381381593195162807963837468170664596061199677549562619169929495025714810870501290948588172144138484038052207948837233007726188250781977494604957110031949992035337537592881649299350555762084325190362594742669663825186816117323470317882059025683225175483529687829048319421021046402914653066338409385552929257900048994487494729841537190350564844209535852518629465239877468552513165669493666589984949894296669156314678766830997941222153735882094141777247669198174088644961395832901096935916590115679357001558920461082745666921872093434994098732292872924053399897699420840681949635800031510675394507487367674387672709056651975675032961544361476665665114938250212821371156224047337511038940669854776171424895978326364835478330063509106597118931692336388485530097910688397785930052282999091869413198781146034078957166210728653844197978675687798987599556749643926709522406713082425066440479000367313653220778558006147852416997712737982795396321390204742284599341653283064513523154524166869319887766018945538549151353382637712457723555993451740171544891459731414239216203606113276262181845742998112119785462086775580260415163857700716454966651755274509791930129158583156007863764100862330881043637617121017984719276046791531772483772063942385032526870582271567391219117802804241647974951910437112218210246931027603004988050474471370049169945297471864066018429984882799969622893509473621243115574253376788694159154083513389319833055858557869073292909558281066038813598804904326679651481141701066702454331330394161554227469545032139334352806366133663265133074183854708961709807302363124048777218217425457880738024406708650916406917245055537921612413476373258088053427113921739640448989847173725149117701896693502077172120107995799477931562265633969882391419801723727840866165499101651701821323453108757262879405667570418251084879681505215793166052930103859430202176124589850725013718396581392299915740749061968833322358829828262432754657202937225341834079019376376853609168014197477497896728787263056181666837678315349092132409272535436410946384748115233714215381868055289937275201355298162805670150567013397039037025611591507729739296740325307277395481468627095634281476510910284255187640053023888335009405006629217039024028266656549260330721754953633536616108998602385753818324855866331533508079462466952230154852571216686258559332173188048154622865628449371618729006402253401025074202168031407267028700968652870463200864722676759991101471935372365061374790239692879702288930943685008395133412737232662813758490797128798987735007242029528017386644416208256182563846218188437876449616512394675565882845395981388567591369916824024820820632095373956478548339001772556901806108769602917228001264130571253760509149976021102781156927169478762016918049518391607353134472915089876626108822775059009127924779449422402506647453952823879946713110223312483395054405329054278683367982994364826119000114319412109959197885560757954543806107411211849602886522023523050347025045005424228625666712864400095457922840613737033057282530484685557732713034580009565248108224988501323602304534471660955161624004547103218794506181577636367116040349955002711310010222520895973879120533689639541905519139257279467288137360819265413900629181377948604731763214176056580345195114346090754943050266130506443063796483111798578515534698266205821562170318368932385127006123955974015455870048271240922848209224183980980781636832768612552477115101543146918407669839465744921843170717573537422150199863237624898973724096274106838976035225635392255324934375998578679402924865572555247686770520091544019820350643125643777013585907053547426655484406045071203561705244043092215137080530636026295485752254122706496422329406829529335611855192942199878676931788310240035135997350842890225643414929285098723848076606028985978832044885766407025076870731301272603460110312076922600435775396181036140502678056658666700673684066830362360107398813965363911085120459117411344068641990577082412391310902678457000498630342169541328384990612117687041107099051283078858767920960709095455657926225515319866591831910353165191104271096583773644603406185788505227000210403815542055797049870077871872715621535338670249330014879014371975256289588613048636987245594201727528095099408139793966379688888038898304247363660613616129735701149319381825871648668593038718647699532927062401890852368746834842000437503078607641742506884267480861485785683662872825546596299268195947317757984515772118573790422395206711001018604273482681565741305923013375084221508288525872861253239029900651264782074205707179248142797388755426137172530406707478972712160027993460495821069746505015817264523250713249531018036862815936832119820956654894179529912170458235021490345659613289345883314865136992282587406128218090393986948274605546209598689364801542553506625119452894343600753802875891883612788479929055414395624449196998585340941758076784032212104936492952948911215126192590314882249259503668058565881005162669853967631512523179821148475249269838680243820872975161575003467476113897970648870386330709594454150271284941654315543739685869244948156264133799252525230692859972985630174442859226817194880430889482223367294906985544343840210162769401859589874883279634753574086009840266100747889232232725908643321477005599506253990062574008600596431961094142450958380527705994614714147683010743204060683265594993917536225358580063394549493321818283991618168155507652132863794292283289428210757383750486514874763065620628544946109645173778349106766706229299374389461917253120633548101116961722351348273962687801999930219201562563534997250918203750526215745560167288549588139104223985968416340704543302142220513371621243744242646639144072419429004442529197146123808013695838176361821100383250691008415805637317529741549488711910264585652923671448096330939093871965530245637510317706689240101891922856430953485383445032903062206661125253190543002315324882756195020180450821372921026533577042299017395269016520360685121647933174144930177152663403191491282312969441270363199855374541896831416916088169376567255926387474376012186538892157469337247362474828385984068557897547812849220106480140599495660361917617765995933865832183935405101281144236373061111458345471545033815899328285664959913132711204257530510339266178225148413540867255571148941783144022921023225586748064770819670649236503125125955073668891046520280852049845813649798153758284673209911016628223089760258574404304196167027672764732072773478931721764763325973083993490853713940860140315740219916887294132688189840260292089327417895008814049449253116833602661332150062817918323032346413312307852625350289565729476558556746659129065457292760342784342084746403106684211901305856800224986644872293535310607635312847618439462194395257140827263800407632730600589865278943337014889147234357710300803999717804246261030964262465040045686142299749321944970152910294736143136230412570907627440419796869025863387638389190229115665800868137908246433262294127673677183207141761473340090761178026248638674546945678264725529297849828292027075709383930660560804806692853253698093175463494566597843004639675449772521301793163425792525509983487393786831055956803639502257606956936254573319145410952333853408429902372108075634907193496733086160327133626473210032252857303718073837740305701266590940138930705730379498231541757417009467386978054379076476128053436747455674203958222826851920340368278809806764311117253822042421077817696673793473035270866147542494451207928327008380567600306320910431294407893461084530084388399089074879679809282818680104986435886143978517921666269379855426839228139945931777123513645974629494821653951909203257587725572395308010258235948267777510838255959100256119988131748349215112568704843358580352517658096934019553591930504603946507952009188809363011799909340977459017296933588161481879701528102478643319151354224173696339866690215064067368199130315769046954743290556760446421870044018665570840303147208956503269078409825461899992950796585039740717480707184140153127659342463136302027483317702715107742634052411079601233345897964091310948998219190309449112874282478952574946531153360904752808674963054703794537485492209932458297542413599967873519392581716765902281297830448174040476445571248664475923309385499044338905426276948698271884403433874509640436244104039325638298609407991001771389281811509455517205818446058657749889775926180341668399493709114176338111343476788512012721816304497338755179817073003348524699131604199584204674422027655014046388955780433851141014143028812467610978125993591277948009072679907433391953259550390260766408954942760291748946636448776848921190403655145190732953989227461342430730200460411996990533869646827309402270545261440469537715485311574731880414604037415816349386701612089953919861568369081582410564397325353380600233445761276143780683840310948906163697798467226687672427230207582796543282179111854626165157025718148346605633264590175906032016389837491993478809487585596170252169103881371636782664102525095134106337989864489277574656575120199938256810600627750597010729422973383368105591093308037171533749823840004728753019682824981629583975993605734736683822006347666797843057811205235864797363914427602102772423385582404315339190164712100468944636739435015633195357845274021107941305011209132571712546705753870927168229496598402313866708190086451658934896263180196971270861907742674710636686799385482984068375365985360266603386038706794696867579394060997349729397255305118423646401673593786570986225028356241089410623588580388717771238388457486853186457380228597771186910840197943364890460033645178634600352320316428719379052352688129734740794131542464885296855751079601062683046373358214435005527248768290623699096415285236706028985104593377492394812444647299584462271373752097166742285803041243501827974510485767152845079689837347560182020234611942548997095524827311444781487438485055055036593630075610587605650752637901047204952424555883537986694052310185413349902805100958673825748395945711520566515455242685283714791846384256719478093049500405180802838864832978859801825625156112813555821880243070870611793598949397388906649744039900165250849707093975259644897361927621150437693122056873141205493046804544172853733693370889051802714294653498773951004494552196573598591165343146977098139390632734009952091881952821737584654233040032413544152851046375379357348911053704571434700500300808722996592326274963211654451162896210049431087908421745419865232159182563855489909329157608453606245497577975493311608510839678937712407392933120252078800515415892186393156245319944509243274840186415981691911515654971016899330683012040245934780015902603846975858455060318953244557533227431431575271541026619475017259840141428505339392567366434599143404157458239420045633516942369247636430409324717129598838388952438077608291321448833773762306494945623282289743160049509729664519424949208807532544053338980735323108388961960058557250120342418151334132722522028478097900303730381317227172541526793626134439434963305012440891189927002288241662006136144007906722774062165910416859471621862439427283691126752075738294277254779252762604419927913790181269689986604283298167217786447385073794484061892041038233177969497210775248842046126140477620380888688852553256883814236668006497539542274837482644703896471860136417659047540278893306114626538042746006594133768409241760288552689683367184213811005898160075355636771123447466730205949228672686521922001358230280446674339499722566706754453001817989259276819084392024721807545973634004606699432511567051645677603389260032843958951251794735930405767132598020150796379639898884278890724709538445044471004781352224757181679931885494258994338929982046373923016914814587108180138487436867451648115374817247516653377685843808955362506159222875036417917014327886759588720122457006023453787014283945888012635119511587761992109214819166426195404602493815143864986679008851981356946029805866602774987343148153493996469578779507853743113643886808611802216799794015263203606594535522523574643011913715495821235834035148988630571369653590480154560018065162811864548705337128796738121598627375899172156251183593569664067909449776033321437694541946387022033910756582459429314767158093233447898969655768882822904744634287935883030390456356722993309402243400224651581623717334308929954423680688840891951952352389627970990220078652448559513854251888325334133115934748560989405034504147825650529232892892837657407070660492656397530568160373429460928113534931551107516723079547895470544444160413598210240320331304049625701142212349627693253357240590425831651826962133907343447380830291350206269386356904400057814845183405448084400062657746410146296360564795555840814210627258265728156163338250331057228677967741318719112296051854845856695084244441812342200554302201558707732847414381737531147824714780854738911280125589145536723621553000385738608084569056480382690395742266489735474081723712656398359604896052824205231561680564212683280597121838690289770580742346374520553821285718888340026992900926400738579394684290540422596485012885090209431359436880466452550604314031320780480230439663720665860168931239281622222789857305414368532325286758896793840804123896483905995539686015909095442446058478046007573196332163730646439331097568727551534578258800221374277542846401972015285112156529721765652695816267744388019878908500123838815639021947737821079170753550016506507389400592715621380821556333448702597278950691293588038860143290385040800255922475440225591556467688151105388264288879690529125554539657128371309482305701488425125002461347973095235363163581287958675251036397390499250288703491285491917100411762306130878605635873613553450584225475883833105672699571823518531834035347409180208345171689588831006954094621381634430030441825198262253606637961039780457553949568242981355166007439486562169083938278212671416641339461602019793098103262607139339767713237818193113080418721562281051325509800758876463142709108660564522713177979679375846731218041036057349997839234682788602072791704724892727608821102575204125434381315109941461814238288272749796930751708408819637353748776364467190111573420510967091392631216901923808032944626720884790252406080105166562445283883012384726989760574978309098763046328835308433089485041089383609967353402786028902278854989756500796594758607037682289653780525200144558417737954362702305224639744184131334310004040118432876835796561021605694161219526263359528047059616863280250518971681910536725263953774336591571373284963044907012936438446278403859699574297630088269380964845371362272549297778044072223427926230389088107956066442718228669512702738099776695340347259311151232807780281966302700215380583408835164703879610034692656135380117894282547733124905736385932413054010368109927985093681234490830774918503231391970668885146310005907711484649190044115534169341603899284393453602687623109167904886107634007204950689980389665740606003820800143407302043892240285696348616047975502416322541852572949742342100230594354869933673096152562727817662734949615099305390743444307861877822897155557621776841828285255198171108091478414617471273745636122983611915518285287838419632019538732821223914026651372043530954197788330082852968497989261670104463691272439018053617745963562418798824088084420439125600388780697020418669765493609033089574329647728738590815851664757391325664734140320659603156182582173954969792904460073681456717888065338167135452667104286681004377856196765655584786439413263053070254061644231239388668817608492956137005156806915065110845294399986442495691947876110363572953656333530991732895672772634193076691633233387873963855986552564077094348647899318617820968268376369049126175387464030907346760229818711980121657009952510962372181680611859105402524454689546526373035602101278294267799517379749702596864320590391002884761981371278727354981564948951562173497267251169709028170259282237036823794967750027336981903711963610069239125332321784479857819790906863919668234487860856070554170082876369975662540917055162356690909970208642398525187781268741288099800405914801379761419903555118821689155732379542504950015521442100692441337839820516999842346213407155879168267048195353074763345104989880544254616311036044094270694571857757512643478672512106961433403423978926510790664202596584205667503366489665403789624872937132152917463602847541788622516511714451620254917244440128355763462368565358119106425358601608028164699721625887461097817163625464141956748622570888390927444689891514240465889337992369599540669595469631604418671997270503648377319811447783061096560630308119405765203914169701432592692842967424634177456301558314189837291388264036407472068892917212096272650266253737234123856137870165834005529405256266298549887179400749782537393061952014239682026312803497417300390573724391815383390717951294616944348195113533349346767275648123003524971457145135720104018546953465224399389798958760246284026454409172761912031228246814380701950562671013787198643605020562290837273726035992847338073297939806151545164787799268867268296391849742658643827734555934142811470462294286319298643326007399805997990419176450378228460083507475132588997355871544909785260438614254804526561008112679801732725306854933782233258578063943602685347912286724794552344977909338847705532690020799830483772599282730468874138395370311542224460761791336877918009701252722200207131843201922073115930320782862688644142247901786867594885641586871353676496252386026192163641608281223393994017255215967911132619227238057020736041615138178641417258131920607579564016430613155210584688135723449113664975953952850389325498981160808865000987134811993647016056860292883317468514305611913249046465612620670229555338646952913814228787069888387194544768367688230642614528533231471653179579242514825612306389321689001310375568549485551591014233734521905856314314356525911197996006557754419581663548675956420398606525360589445146487137587954165227583111642674149693277131468816970609621132313434743623552096496570370168562622363602664191291952229546912080139972297299242257857046211008146890165563283920547786910432594499034620556250105056838727308023985196791681266529198384693243770748337791913868549226519835457599192739656592775826360383658825630960820579727582936878855030969334193449456979017082692355958334861979271042000136034912904686221534563065799997039048962556362192147140770650857499117100670258400350556930776686268788921752080120850904643497774341173402572264139699470424874377431387822330296226585777460858007209980891647337643501741647691522898028582180911304662715604079284612777452637071503831782638864631345727528792564004118089454705773584998352786397965119379493746705208303324596929257964172735766820231414303619217006915161106415260727660307739223155534309639545447161658716361260604402132595874820117149673088483605239922670933179116958426457801305629695329229035325956310868947335200088921634195419913855995940371827066570648177613806633110941472247302198350984512652019181043175380839883519214158695489415426257844258442141258921870955265930158409523019462094415853897984274576842037518556808789644664175591450472303307507429755110152579817748323515429323109695863574641475232540333835945360002232380185655041855167646552702274989592732814804559024739197913229870470295075654062598936054045358734040629180044576517448781140488776597108054883890651215160517441290160988495320273689297307453924248137840642489827031610450254079252099128004729749965193180379858793156483453624976605052650019008360016533181464848207560989896664309519332829521333336115381348262088201256770407640680816336927808147331664969519770738227665973611418327530011252149334088536595021684232406225040446003040599748317125738716795178465584367197842519677260385330248080185929726568220131666386749519834347914348782700425430101930074949637620829842103937369787808440214466732465734223565400817765869591620694253916871750757777018420951891674323927299320816889966685360137681129847195364582868451152963088146160271183478265141434056460587468002024198588777417962162754700266804583929297750796752081103185073793460470270946151065418233537883927651913755016734229657332213110554114377078028098614017909745460769426908511254935483696282595815834300237873313078794264765842913868151873169781507896072924091390018943221585494383524938893057876086762797596080145410861883328282420306112541515485623973275049642053492379463941784431290064884450765661982900299763849446733824125266435499754580088798628960625745012651057418833523027941527101812529320906312533548617303391518705262343955042223324532883977746764998351122689737150305656856040181811512406315189536778404118382452669914950890099786922191685127083315954781760783973826356021960745808271407846091617363630085279021715447134777634636762724993071443116992052717585714799468368773392221378633887606749068308232867684613804312864275526355459227894894290649626931550238547141839751170816085474457100098210577999666604372461510996747409488175238317883502865231363977976491514499713115572590852808765779760339577385355128440222431387677641271182049492442945367626950721321712844974301293821507156262359432610197315645278715659083914346210024499985508550694186653910825163070216650644343924423204159396149048216042943652670259168777633454268328274043270441508747915271211197634860557546252024827658158178902411385706514248441246436337719897166167900597520288523363182078570973430556700416117858377977128249355325913552172240403301456059905569246874963231926968755648831085365684104282695226317761764434303528902007720602220008677585189383104729489168974514419858718556827450525962574368100135479475624507049806333755674017602797929811322269045117171008131834332044651406945778963627821116257350005761510741085936667699378653111903204067840976738879077984372049973594937094177854243003381457352215996916232929041393329007895398521594577673364453195044137926795941298805973530601552957160265340746756680876751940080227079748835401563452467846940395913164807139654738541367486737707464737023667685769653078520162546323585558116353486189496085737738072595417193126155866589631038832440258509654957880648614255318049700573503231482865907878947123619063298195087843821388617928954597473644247147767183758776902379007403992631028917345980329573226977566406735160571369761364470476479735841679865220675642213274626368899927366811317728913485433127025244550286282909963163524128172792589346925483064781345143383191857492079500398365366221555655701086531147157106713846067840088254039894692040505391565410684645487467748073814937446566440256264057942698146777602452591943749358061021591572199394073194776584323183437616470437302002645299340556575704551013544988492098656377153851438081646155285730466272850807658881228938318811831213026369871942043177918577385515975554725010762521701349876865476927786074564725021590304116005196693914814116399478984613971944654753174848242121607681144423971273966032912092581200517036766598750521335378155765025129003718207849255106451075612722154866942802973706599277267441421390179518920399941903315121352912515927255759888545356853139174233385915947148659734018573809198890991538713979380329516327443442003288893650864262894565799118673133546934547633815370548000511964852929816984504248625405359936362611767624652991402644976785681062055502223672728537696276832617124289183591804328423763369783714080363933913671340978203104458628849114871393745486307937526331970475466541620469654676941879900695384144880075559558812040582697302313740846255648399972269353283299854336663833811263462119600248989587770918513219387721236073855618543280284936732093803335015915180614135015708858136663987283830357146611641098534741747806637400383889412248763119221436585768178687454211026828640263744803038822200724991421992527154567941568109864348389798046642002859128167714371481876090129633420447944084363030705734984322637564587770686787321412921534593669712222946905091974530235021103192721949962471077460598477315580865768387672379721738785702536749147099825393193402671711440800270004742614145691410860418418748497210361437717057066776307670295171538949969906026541053199406173577427755834800990917027054428953334331102941960572743042955605530674511689384547383537247964052781170961859403281535332581453550448997579134093767428443782630269855073359814646146844136786581705616862877212344910756586127251505235537497999717821009661421622376531865163676259761613109786351121826081738114207215209141964998244667958472742820542842833273187701273411676764458000416957613252920528068058175443522097866627460918523573169494471535950063969399715223579205868897099256590057343287716549547430563390269266999297372340361026693122941438113041232869637042020856673380443948630927623405790061726057520577575037146773607394028120863335542721804203595720554081033558948311480872980173205737059210169882642717033375397952675536207294486493868646251664593924414304619335272596762342404261968931215598213573764827652404965241540724058113906734592284136731573500648949384279565826426830984704601842078372978137071940752735469631525822071887795551553426762124236735275585704731207836971181472806880851827443739172919376833841000413363663399996571358880171074721138904767281218476811041084276963948945894803844850441998361668726638259922979451796995730471322901829905012768206322578122091192701865525851821303527440336196428414764792550851585014299886406990228299644930205885800904059469167525639698924058088819510323126400253492579991504728996865108901629932206313030070050814024394044662036357175129838302649249537702327552554132431917118205261282280759242265765692528578768404705471671170661968063702709561001661447691521044900388280205555035919269497589618784920334242575500624471610479244056756288801843339838616254784378800068833218588266611583012047015029621458796408700796794336991938643004549211935562013094873448478709845000588651016648887108125515852056700733621222930673018980043025343666152580594791230716091462961279185378583070917878623139303531432342980115406374003799090627086368244651413707963158045974306417263492374004792619159660957885814083975421910401140519895016709551158015420489677474501264812025667848243149596839872928481173992851294905333232291208860753048744510234401684821278973655620180718745666950628086014134319756753756730241430408843312828247670527622153111070283703069157899579446796132786572733416849086548122095976238724111370214075588430944174725029768991902513061606266502146715702340015664201541911845056032378580633162471443372953483235442828997403241983739151881390793395490970406032259224681946972124853224078378342156982352602201213453622166218353344680182615821157031488509424073244991300846053125233867044724532828458782543901310380607530722628136986599166771781042232118532653204779651779366061952140358192690831875465072738721601010695351187133855820197653715225109843737911522611501431165633186026603447087933467911108854650489311646159351436716849868184649256138317802889380577015340402070723841076116960235834810986783759304978226198515942773576858568746260821059960332825408047434227277112361227030617510722115038064019773494612570939370262343487854762251041302061072678446970021840774727376951720454823807390077389383188613002217643344528044267765923887988764469040495378727918891681473255285581597143466793409890293956035843345438571382433867019699926013445670472585501498814200952149676317449992502959739422105571970336840731259964436121124932177094390478865636944418314605326668447627687267913002296867703927103189025505420161715850968603867113905356301113541808067785873367437991544106712692859962052178294228513625117198391656332252774581082757664689686594266685471455356738374426192101507820610024708880613549738573513670151942546995639638658634599953549252495452502562005708852481244182481014853432687613285201158215889059558355219434177582432409775373710482020567729802182982353241858646990199563839765114276602250991702656806449848415310117654646721064497334152954498387903193430389340693594068956235791064424311245253589890206731299298878139876051273813545193690539804323011864214292849294347009698156243611962868390159017861409464189022457049193000239096617263730164594189919555899278035013822567195999630356356438934800628138405136020387634800015718309305101397015681824762788295687854922363371256588580354346997008327103729128251218286200421173271788848041193935345074150518031283806084271501049910512948828032175359487757825859069979994108686213641317944771223457511556176147640660975152157498501127856393864967458780869707855117417887076184474807655613634647167806754185864644349976506348977791994995544331437103276003401172533046312915815643634896779815306326267284335300101406970135296779003799929315884011011076090497522025193905172588293060714872827414300256813185467842111152827555625531364893234701075115305340627551792878253806250423018884699456895360387457170034284112235075572960012707916497854996604670337257274160673585077798138239279037084778371327621323066822934720621129909802473039406085470229925146185055373165885175370159754962492364256663719624856902496020437310725436200345715644837928220566518380700286125117761184247068049158861207975672805800117562414787887019990985050816950175936071614783045362007242768139609352304215433493925266640269211629894099372609621836084961279616116917336628999971027996994059076158474663207877040342923189827999621495133900275670134944885863517856543460421713330120417373899827398937577659484916601409253654118170485709433929176325897366485889357431881447022318606956461760411131448454125352232268841453753089004660281728944059984730609269771931922529269280055027989355175105542662300795594438038321318033537660624025064982070092016263782093777003105800887008974463302125088512969492081857156377663841226753961558128937186864053107680268375202580155868011141812992676663649411479880240047768352678148254971733785168978662823700156560854139005821736451633082234905530714031917799838201382596211756866694924910788909753501379147457456326288986780535791481433260716744695023247783844131480635567926612526705300497536974046047109660237669723039148440576742929862981984843977529523308539751724393835715450652647714959103576737502267777077315771587647131691040227727338396633433701409522878338377767117193614829355373774254356618966586062943997197180671752987489854044911687709822773609942235088872432710023286341431011624319187008807177104901010035338783120548315494019677554258411693762435215645211434309153796419113156096976594994488060782827809211294880313681348219999647420380479269339292978363993119660870066935624523916674942809000488886965073279901416424053112519155210725421168579537768791536754151857691615012558585961236026915946002336365753630559555241077505682687242044603643503989765221030729201762032093652754167990983941892672423557706445313268650499716138301792955032520365390194497738874374916055529517755910452294917331453282789449504830646968485483361566856158321518014617116261814118183771914010363381526020498751267028157751323211497634391263994758166304422474255352908924994931098655197306967376224132319604546940944272189957982681173734375904488756314487741569303581260420834433656948250292850465361280660781859049280129183637667582918293905983291893836814915243841930469266369254786821764269350111170080396677849737508767069615412145608620510927127671012325868899747232130650075287338886965073955781976301610628375619501939566207346820893645583851687657135706118482512741710695494188145161188161273101171724690195733022047883354722638053861121566968608644768093118326953500681310020588581776821051845485955758961120876782395028271444958364904665562924887027311519196347355375233186407637600437699485986250322897251976528361889732568457471432807529214170931730591035628472306837846872472071812325678250238602726926502397700593033735608995898342554840475441825172810078759414171477162268675970279421285515970338578899992277011476926526402100041632434043644823743829987868036444263144599176157175170152161657518133425716002826951868011566383405763037882975644611743492383004813828968494905808189733164078429231989854045879470199695541121380740790569221283198222979334344035690439337889402409572098061068344285265850412184420290743814395003401203101880225360272721794446996409566536949599318348046791865521480076662957970856057527511020862075707668277150530958423274303607308095864267903715284517248513826687495314539553116149531474044093501936977434862779681741873564133188180785832902274281812898068589623374988205426116751785678411818314101548372895406295026906104679560913519367687298152724951443253055288538695113052489863677051985008406646277935294586292206891172861460129635070999329800593005871407241300560330868203816133305341206793103728047475603844047908181448364341836487990396382912009239697211271844294100724724367087978122110800265365710897792128728301081806492342967790268290224193649393928363281550915476617121428594961783177681152589540154458352465687986864834608158521653337493816314987004318947422430234899247066238947541843482430935331926397556542612315815895230139803124526702818307854662634938312747531458834001322806683148777612717466084977258412309905444334239815582426953960610061681828217107003783864064716181188740369076700493895661565324339125564508081029873176901255296907111611140800605471189154935318309073652200962925139615027152716924770492425503198296437661840286377125150678820676445222387507349149749227489956023239373923827026732387416508034551417521013110371731127563344774570187938679302863852655234346491148303860632364810367825507756605384425348504522131773028759918370898267157777014169308579758770326785794465997998821720737590925231039852236470443561721790364989689409069450819963772421085511897606610969388657797641206058003103524855066154138077696292381014526626092905848946491443680967960364047149921692606301629121745884929824440043765821607630336473610446420988996924207367228181867282362970161622102108712343487677612756351974747497485654074624120154754038536965679276844007519334462550403118924769112063340182111548919748626362242133759949820314825369299357675823586584535576716515751433109500315169646024914812950185155056656988133692423021351663125265612411008096495456391796713146835200587388297497159251409228792181683263849572503847037798904644151156515429397511050654351312890875836751144635132624945912690387584534234890851520874303473671504693527219979947254618791340581816650444586518698972073938626905422214086310904268581191128545488612300867203507449896094421929011177561941556838400257732491240411166193264908703303606260143468828722951224561163272549627454485150407857910816840946234712568402883820270955209192351078596648730399014952459895022594191457092453125139817870723641788357958171792564533154158292506526495255123204727862375770111565600227865640373323806592328747045803866325876089273501454936699971392655896614838455715862515306974478493759296935752535265642246814725488458165050090791236130373758454582705947870438907014113792521849291127630632543036284878945931979261724198096520273287087968773529620814263506359433751396024792546027608604715722740361283447263588399376111727588915625014639075889698917324919936025525256521075697954486221329731697897644878453962230009604716939143357355541679247159677675907819117967978801084397157118656930313554483646358270618304711534475909232737877475867269615766831773061743945711376023386774707758968964253590736660278235886389169550539718179713486848889874235691681089481233020016563546353139082132791401063301368801811242808488679667890894599048640330678643196629755107566507558085463398550498549269595692875304128941570656592393870811612041812360468514572758114866667549777659071175161598873267345116931275554872614042078757779651376693206073351883518704653790668024800278581231364570129208879038594038810673852821693797491840775797187097780615942717375122592917847102629718309897793330293629838874233099981343192875033097596142579869871179035852134114750883504609645822682862907102568602357102358860099409022889836979172217959734225452915457649336633341975859185091441673967617819840337850226245584415416401854522558954505678876884641168950457295895971236979312714479949758669256585792848892882338010865810807205595403919714499764806309120961226204285899261888605126903365054099420378923707084032969392245299382825225322864060059330383974435767795995232983866207750700460118496007098807019178451523162169254644924997124018180738890198727160255941578158979867257912143330265496101468139962733251268876860632457280016212583075124521016403546000261282724838199102329500076307260655130286175818723760233284631003347475835100119501673036425310605538305255005225293311438450698646038725322037919453641184252931460899430905566146609236763476943454501261484627960590994255886112763850796487234772609368420406531956687674268125141770586304784265034274752915366152986094622370865510738649706395266479366482813221409962088587558164394514328853981475007334817308976050281706300277470353644646650756144826536458229218736879717599678080832758866059790123736399227632899323153729602464315991421096636134664580961408065094237167602981431246304140514270460814261657853304989598285879765864810386857054923692955037452992967977296038118833386495405907185925773290347797650256346111554533626441459515164003843293900808197892743181760719724132068236861816106472381766984705179417843402384727747435995695044598685236735147714603571609170030483299952611771395120749022307008188708427988757715747964293117679266545072925554793577468006078775040490711256805146136914731113140465671712528643278909618650809814276259292368131210633844511720068187926402638423014620414478426268774402967353853474256326568350112609258190708878108565935565932162100184859126705438753176998801899386254402303621330285929609969004658009775516337549757633513698949777466061762673764781640616591193262004096979468534753529075500181006204559502651010263628685918332867489977693465302773874384458921724467412090035803701375373741835908070576933963037814609728780268895479950881092912808978680261355481765962600311652853521667238463655309549518697196050162304336189581310824269616131432766069636764309775253586098717160655568788262764084315340825714588909483290284835158946963154327655237467506057640487290682533614812795048723177583240182086392267069830525542877406321819834727492500222787967381049394167482066367047758185748652417254215974747741570925599707178032448019993086681315618952646623202120953495020818817223091541731665240498893520409349159551622893706022047495508591516625160691065583441518766100973638498990562811851129593597082118017566826390874853906854929461113886716023003244075274990499659829152004136646600794826750445103374742686972965252496014073050232111195626328197895250843968373539470871779175802098289286423597972948968169354024582555277131781953508552022510166275217139013017142885329567021217017267018553105948504679129377403063540942382663245018290171313584229327589125251962688944429472905577086984476522899032761128968637722756978520800999616897905521942088874069536310142140886742018972196506794414599682363883631519918150207571592600678884384105257449863736149438409619175014481297953755179841115685295672359164593573351828928552667489177313252268211782328532466258607551127529895040824500560872350712585234789392029449349871839743903025674037741975276033388049638818132219796720020171465871709068389235121154279706456402869191322418909310158378608030357520420597074569892653926862314023359489601949462164874340324231861483409330514367198493545218140576420736018686761745059082064438698063979754774086315814791807621757948226146390816961774504933131065914569226584518646408155450480455605581195226093148324954694507190424407954583033297484343636309150970806117613055818343497391768176711126351443492070497541978780418654523360567521897488198405870180206505980488663000374048547791732055725819324905270042331871102621383501335148421357876172741752419830961318827419048977729346422352771645715122765465505656366118743665727318657067830695621067065508284867132654929092525505655283825741803257537446607209953076656802054546791256383259177318523981579259834153040357090999041953397636742926555520764157448175495106143148252477876113445258434967338139967942755188132757390754346113387227766186770287820837153351316774072281756625078464751450913487274757628366127370186030314655161705919672520437667258846909430518075303543258180828258231659637957217832662141729372573096172911064274888059068853324204876697926330103130969108324197531817578262486535522200148311495815514819759121085569073120859762740503885430881444550510921572258436428147981635198989736750533044570493233945153092722339706789580682412560998373512596780830440440609497934627533855221496615991469854467525897138906594535489359994902409037987133824706520523706293523013911218199732535711117940243924103653559643952253307586392351755877446155655881861924141121504703079052895840276818719665905283361014481740761870206816361665805342445795582355349896224027784774387478873144890312162528910498772855545520368631353259188883750353445819071161623179310594852272017430132952153772431310342649110538649779458741121862244197490064082371158737596952717508169924258988315575854826398247517929732996573294875990709258493581124139024866144677811366052830304443201392123404869177164772628003068450046573719940424771942366858170141746740658589835493874976349006074868368874022799270342567122831964466450369676335386068510849444817025050424063507164497902478260952843940090969537557977507004768111347651079879987217259556211422008145994897742121519094188666691350584495323571964504216520686410923804090772393735694088254599152246354360110991932017027653138565719007074697210820691120496677005241837875593057816063012900717269641002100617271057108899208964556432411321185268933105546520224034169450248354429166112916866659720854291780451423709178991353220038429835379125767298719052397927162933395806478437014709416196279957024222640781616030454918057059513652092917917613734081996484612106787251342932446855364263213464364209820188100204770100198788992435977943128629065367618092518493227883050999693358152155035693671096612329394318883229803666743595524219198843135964301534185744091233807555881620840782282242485951343013655508958585733772899043030697310136547295367875663737536204688524840184153010414214463992838084381499144528082926552467125510832057329586619483324219213591555006239599905590308620281438005594223161554791174308417935338159974712214532194972030477381809976201465548042720988831621944555220115210623718052551505480439726237410194259205326308904208739777791522827380276167899911953618656069262851871270606840464136857598902908412318142119393906706233346712885431354964511449273733841372148069932961588228920954732087011880013853840931635530829248026518723050340985552937984198147905055867290006760701739656723885845737434569949837453699011083790415457520836285564458991494705910964809096212032000890914670222018762961584460549581525689323262780707749391571511263083631837287973767385330919190656171996414054402917566922292639495067842643737413240024886012352840400877001481134585136778021206678437733494155842393223931600735547684914968442983685446931991625437194367635746675692582440108520421959550778284000669091731016210586234267648370241069058557857096715585838356128273500749457591813355814326765360933001862083216280279027065087846336096199829864464001147087357073840647292532163224044333778418935074546844773700039795667440943274486564032142835963289603427669131567330460314714612486978567529299186552637531161595587931901130921539952539626141843511456163139334138628174309675604958448714440203781189308319755812755589899387005301366663508851637375762916647998936745177611164700463781697680367665453993262461558618340908969588507346070531775239721353084964245981138193884472808049011067205706995878081000265470124102662894743968453956361960153887109780967096751389623585399030498041129512604932701672839529623901221918487098185595323530544049547160641145661294472835029546603799865841391222117972579760972492550788959921575581288163971164764389490986950609230153258138715697185069444707838450628109687086260755864172981318658892610512935543685654848465397740327065883812300378114706860484884176743486148908529196029045870506356683730349175335237902985310804010347255913765042234307909645201704740188726390412012713155301651721360496175357635906355548098894168051720206335774544768923227154437433963934365268654536778367575765155288319293627300398774987940522184332035836359472607755532576554615018940686559795233863653091404537036070682562083551172969745676210525065593560393185209532235843394713566036193410338309417382269097170449312111446365814925330553531733036225183009344563660479783878583816162506155790643659444643315871855465098367291117620478557394557198696455270952500498105323223503828826994324475966900635110272455872495453387037206921283182041699429397771840515163605643503934326324421687843245890230666027852251487567996675421206693373389721552553511963347830253771478696034972856987122948350835087952731808414513282220511372697265501069470187670437976510824415208842590099650587822166798288527562369626527453519860607163026237026940296206210590471649715577131825716035173071072410164653655650189437248690788091460801402792298422400099861959993028596309127613794101080720083007177429069251224998124208370833902147120522898829767229410176471803466123411709366317714979439970735414957714331877834960163795501858766897110840631425445889201548519919190690920142843863864687821615409533092615666065344315173041483442519678866549683081246183173501574801439813864449254684645768952217990806718681069882531941240184297839446330541764991022832682380950015866390598864520802364182250835889784060362420238696418675896209940958242506799171882142189077653057416266784139634218931985490892687212312715534790256968990599153540058227175191809430260062014991156719104322803067446473463429981234243138895130825323453665345683416137963903505797713648703667820648279693639108890184393708548108059849186640135345849980649617290105438399920998623099701489097651319911381284271696400856806757387775663724897275310392935720970336073647992709190060903679176193894899341814021547180963251241947908517454994453728851820106400672019637919919370028865155028653904247763600481811292195717339674208468409769769578615055816589577812934536492776142733334966902827509567111834762159875448710514847087199720214823346019511002096677918885827135578222344269296944153171165096417570990220617809234448135884951521178069920443227219782654347436578142944148475354191229619960871763377045160549432195675937208488615091643053304503084303809435565344043831874743876399593908987145051025153718519603458136639748164973385344738368006597405931915507439163553379898847331049381934188182772931356057308872718466942646665300870689420416378501160449078000115123843016297920430259629592039702190147564223988382702565601054992158878005426838726037264213169506759746615228309266001955351204827156523079446110303760652266649460730222885599440511449232009593015748328730947363522941333894876890452385921246069688282441463116322869322670577509779936463394620767861720060440624877334141743697101377412159543157328736946787493611616056366598222293511438264818722109783007547622910220556796389563988745667209902358090020075917638631014600270732160863476486299448714968218900546672112304569750300551235510880255419965826568044370202210540026642410043619897256508122552158625632098726372191745526896658950371852536407799550370463175022724382565180382301894997729035359018398863585131776985428255085757591660498849559378177901962426254983814141666050058388924066453275487182039570819040967980814033503943767873429994757863100888497797347595744742995984493973202474079662948655730857874511993123366072684181474815926000161411471949935328764428935988695513915443658881223693289025293344034026523831035987579432978896497606485626806690065685749753871836198695271175667332081599878061253227599946366581709592096359229705997977962626114869981693698965276246052135850451329716054450247033304729033451123880213093932333330089751698089654771432347191502571236432678881605902706610713894643694086716833176423954929055266312036252101165067925893544219159197210892928925181167670489117760848614515798679591553135387531672594991424855723706897935410916099715133771749187310697011780691693550492243669596916340603756118224233350537529835360487096307184478197538256280357022953034538867469406524244606969309831892954289295402972695046524706838987356048963331959796294583121740886783719749326170266842425476675189354982411071764230534335042382348389673300461753544788659097218000729635541338453786193096143813444736898620102369558298603636675193753960330956962383271986902371947349687360183611760789210023961313049402277547720877645667250868855609955319710239319119354600723664734537072924148999703503933852620095812555877877526102528043144113344145453175966490687505213812182186022391501462735251770831522825146030455977076994301383573693380500652358590990431528943407143259401426863387162413634773881358281895915141859557452066621582955189539480796496208237571394979537895041097178293238483371566707652167808034860379797183847425334754378378016778216564652024652353145404561083199058166493871085734619118695613508795948880877735338948297004691209110499944982231836343759181520447108460564582529123588042103870781844175972205262647331339944006671415811017427282809941527604390481643726452840183741153339258575403092404432380152958757765529934500667898300555040200558892367589013675837802729281103028675038069804988386301084707736591178816758247509339963136188300013604632886223736002582891915123813103496812083987415026827197574834189066589656422059542109129055757268000302698892416484506400937374394745955286206627365772013517818469035998057913221942873342890450611042636324245785227386977783916922294185997559914169969590205002528888216858635281949010316141921722537682209742757989981323828290289988112672396560870382591203485652851238291601482710967982502354617244382959406141355879149893696373369942206744767018929369991982114906884945158785409235810364609584809110385073659795620826009863109794167922356293915115414435909581353678004934581875461925262272448711913401679547782697413586762601169134487472270217633909243183320229338889771891989407198058546168850226191650529882732285571388111421095523256262084312178317653019069545735639231791943240525726348707196186059786676010383750376576257286440460600682593914280438285077222025329880600045658151200130323563161852343718360142994710942937782794724605826093799027498489998662069515859451112237211590129653511316789310989733545750322247724350417732598080034816656934499672737556242151229133649763840251257902918232552206272322170023754845737419922459054667684932911872996572490931960619238880466949485524143614451684071300568129935792398066374196016096146552748159092352422738387723368443997828492739185201159183065520848229574343717416065117253446374695194801673006503049063985879499232437208275887201723374429796724551241851927057325140597740400647263076830961895220546566179582484779384466928834348765397576972263209695321857094667987737604059848610390241895859094943750570749693811433542440495928533109723735171492538022852499651123695972415417531030812781985085493819484754844539662095171178142807814318585138474329100493830536802847976650565914060113828341043379261331985105256236025462790414420660516033174571119642428246999066556339295470589414038852176056815943504551280692919288804075012368576841629350781141791085395499002585032331594825965899241776859945539420784335411676176666051518498636954767323111318924515168296012265958850528722480559211288613676784096643404941700575099523053962139326633785630953554031112837595429091483594522952970034557031731713012384466762075059296246472596135778099284050236345946550922283650911051615253474736715392659412080302064723994662535129055004860430794840474799181904134996206537591135736076832278440948326557098921950048803098151260932216560844909943762377858277285887868088268927326289748921945537200777005007548746555372023849566944991375638342399521433928627704691753116986575124771017045492577926640445190866373474624509494439367496628276346672160178132319384035893263531153510230881700639499708163910100234064610238294381018817260962302178557781302379211377726461296583391815053229806097464022567029922354300064522024018714991373465506152739051498215276506225312952250213258038731393749278449745981281738293684668680095517795254405195571252756130829727749889541615433487963566753253748886264921070754525706927624218494902649460724900669564925461717124972502786503442328232563690777278294167007877434197922512184996768359148780132768511466632218511367102425116305560688047265467025497022503462545143130843244915900196505492014801726896653243078611174354791332929268485233099135953796872549244815962295266855786642617671713131228402605490312619785643679768411521240061354467013194011816682142970670604255385805843061883405000526257144269010428895152942912028512067294026734248791628648621339201249870222354778890971018555277326899525530767719897271533994327543919572425984067976341658276562800515716492564809121048327462306324140138424446423206080328971467834804321056661012042093159023026907942419777427558367573135661978907151098489871249996996232553213649289824292677505510552195235709678787916655449360071181430838004992430116352332616129996516363442613579521128223249710070096603852220810506087603564546789404697668757976885563826457953873236983846656777826325188572030253246005570427381289078244422420867913613164764748655236204691494637619129492782519417454483588823955770278326373261582826686716095160326113269625629472621001230833468654189840396256325493604254297460890251816830928168478999719827128035852716836630513760553160334397347431094634782278528152891977600560987515697648465637040634385696282494227911725530424726134211276425582466921336821017289295752745993813598871583233817654577161489097196899383695069379710694075938529289773623323924506642974153636869880565514088785387419802773795695592253657550957806731263362849234368926064143829561781353218094512894019933646632447856579597154164191292998386858776225559365913551850207114783491166255166465636989732622576530846199331180284014531318415474452343734623586111879025691284649073891367281120563813839826592600796431189020797356415218057512152329885279291528906961709685987942236151753399076333863955843182526981867080949964003748048398767158626494793186770141097879102738835090884750794797651217989418133394846887733358192778952656949034142109659725099962212579580066424507860250792379570415623268483275371956592886122498701910422047829853863103256799838832679228413169393950537451866781494731168482948567261430454299949997329538847954214213779475866588133633694079151363422292940512306936571202824789242213834600999106211093415050874530779076313803784911918811619280446137586344686777418520519212648552388875938012312137638966383297055793750011061029322176390000747843526171939276107236413598485688611114524257992984737817236780865062983367146171665815839365415439771764763937925092955773767943161785911034064757562528127256446609307709884843916663688687198693846111125071486566883849363641684699653810411004845090715622528521001624961369779849889542175376024504896162910314132164249935010982328264945058932802752288032652378154166606299013833283402670356659939861154581953089582949833412439027926826754870739148448746001353679852171982008468307172318478556580197174724773719117659056386057359013114897658922818718134977286707146527654619520387160488446585379780782708313631242711642534470635560040253356263141945252308720875264229291696076892023037615051949448635830055370577513862591755407896727203756780268103480353396234210685692583872468998834633469448344540852645584570037160054553545327374238750074226423474393733209122479721333802048506452783290340480081550246122544972342404257692514849556096493846126163648664626107242260161717904213667773331705524720276567243971972469252119241761537363022798304714763057937061899504755249456345121115982971791986198864999249584737413717780473002948693448838737548355679070271709181995844304724851465864342929607279627701803473203579474585742026888038328593095007097920550776358283375943161622744058535019295539212065240997255925450767202025612279197953459196590049572626629883265741647348386706513182346026704033728004593060952866195862052979020624198500430846360493800821136627770071411647875148558018051753924311535494479854793128686224928078859811894577888852529588061258987578853049319814960041125913314027462633482957412458060182367072000217503529990707258411510694447357634846396739498030570352935719038293435508461024555317067782208318678194819164999034773943173322905237043578632166451335552630836122435366864213938260336480388507159588726417277255073813995400119378640405276349266784793679549080784230586065913153737463178373092341657934150570131931082330203542561798270842116005437124522647932152044046946313143953237493629536187105737257312347249568177645381191182072280158118387114741157059023946960094302388855689833055148005353599820357493087990331549225145549269151484345293194476760384018427141764137724391918682985932760049473323838013112971440402117576530151396620033918491517856834870754224297562600636837311062295985977804814369993602177945386487756956750564493457194163914363542370778379471028406447444192844934641784541838758014832151765878343617562517161321965219033608771010388054953247782903356871840634792541168512865646876790668473380173214152806627625352444189896079719327556182339418351153594820609207250492246818364717551286252404747185253343615743441170101430864461896245783080615148461154298546074454317568901809726022511796892530791544914463990238126066977046737143400822735563187200186867705209015632850600580278779709266547833681390870954308504057117567436491998128234460264086233419602294547227658137628529051305269392438263725920183975201812902294289863697351392649061436933083707901210928542690677954501294660047938125122471648811496657791771174733718912621496359431990925043931857739365750533460519908824956177320024691046218454950924549256406905821113559439995951660736929145264339978561233512257534258840753250579253424728341053333277567756239591340287671348279508333773781538574195709536834515668171480069298819608280042223226507664825699006575625688372673164826195212275777431711808590989488541971704080810350448569002389377124442093238104690319845840045829462888227335520502504708955317982851472676090750661489374364745226072894186719566728511365208981247996269343006617827255488256349100790415019795335969630172398925949343220780571717157344329242914362118699444303652760271646915777558751796482651803986073751516980440701939531804314301021075503406240484963551883246238327693619169210158286047828360681006806731222740006675047844653239403992611697116762356213395676231459454969962776624033215100085301733757256144890783778202001903818890821358759296079617684264830830185660860098153619289044053571787625661845365804887952881792636529332166266676202296035284539699325423449627130120612048046186649588433158224038236589133239141484637143813983337439814262722095573331271349790590666414213448208155512192249198961791112952351140455958821156587485392551826022497679792430582478800422530190767876015360086207033546935168125107537135303305753403371251480383483054098284059383939257682917517940201292226812269980724425104706932622958507786448464046984196419020505344230830420582462961066584556410980207592232858158781836724726230152856718963733737013344496808310679548527777361008060577168218461414100817467593062557718875216480722516592863884635382448493073348277479051886756440244625218581397280945979425358398093117570060900942634643071360492068886169248471420779012709188923086086395051539629097393431149318516994408357826517305755539044361214817634082488062748783064508395573011578246749152516187039256652287094512213686379412134260782415968695763300667314745689052798774896051449508057109892506817233543055074495162233044633162375489973380034993406977051339407569375060670726017671644097767182541114622519795973963647175482727838611255181380052517499599850973040703092457761924058506841444037788766799870253542991903686584930344854255869537103096232181009329890073223062346662178249627086716412533276194018784468012465905047733106510524424302151934783616877740457201286397352737975438952229867250857473772617355386789086105920858032263147767723367550456817436423916298519779549218164365374522319700069399250190687907024418190098851492054525880610696981430492242880343481812998171530960460528807881850445967421224478447072653223233481105099801179057624333741456070841113618365249246782148338460371101929176984906768477742717743139581891433710195107825527259193510064970273878972014204094449227046690690998639336497468376854274988901457196518151722335533314354214249962695409289519348979301876568010248216957040966414093188466935069125568885635244768317457612358398287855073156434406938713844716463171115066839255611243057392056378451049018153152952640527468462581480994429122257260200694127078072533005839564874063185014481818915006395889382817290992563108071265046927735858639070998096417802868002327500563732073708425117872271223557782428768626994175177909627840524628416899754501171354316542795902713324306098149136969872381843477592692972363415157589389327465690886825818162372136593548468675826771661507246310029899569986946622965173850954705307883810222751099624752064338115597040049243898212801910349010002620017203391796352758531480166234779609614247693316593419953263202573684091401827436230306945972342591126319148923170200118516235338860855083958838419994529554659156280579946576578620338472962828202444499461854148636874352529634924636953235642303506031349387585756279897049884421333773749754054161394690378484421266809822725565423214874932709629163926068908465155149132980526345887141538599587691015476139119591534117028184146613839039906363927825628958716381515951447053350147241542245281508239736915185961157379329998623364926671865197269726660156691945343122181104277830228028342862515283456915947315144020206389692350076841848018064207750893726972223052170068317614676532733395985174994911576679207684060486018909353658903552820565172967236102040869649187551303520678336937526836091741057803450468742335705603674961525903409866738495030536881203368322765920967462061037334038300942266164624554264560394364905527969448744030410025978822436005656208531785561647591984126973830446843234393735992588876907985339760432166715587291047737232640885454256396251758454980978766889671401918919159579833863244248300362668419825108665733324915133596400773911290329618941543871568869318601990470505774643949834489354777911954329779404525611157579954376860852411050616566394914648257459902962206042124468458008680252580400074109208053082897286258743095086843527405273852401527859191242247172526355864465890767317672333406286585480526666253936803849704124269756671840956719037122148904988811323505625620750749322783362166805146046051601156283421295700653963260242493625887045367869748786869640161578756267480315033371740738789247732300802605852005909979071266916638567482880205912167039962168732407046766265949942095593807597339593442957514097796782983600980218857520650603460037924956111774117339418025087240920395830737816161340979450714765028231003417924022708216059613106932311931422245617881916783817387756110967314122003991310344414077983180604696057817331918765422560514606098237382550216329894248925262159944194083459003039005203080551502218958033185083166409389126158707254417951983185084720576293747858861909148823386472873767429104908744639137803496382222766273802784954495790436385090576901349238818625537971192469834228191715923718228633127677404247443705608275176820716076812852470616516101321607146977116869272562091633831253096906101849955649494340331786606626990834827923418298762704305517448957281988813126982976349127482733026664714307421379365193076985483966556616844182448623500101734545948941115756897336209403031246897907922817282103530208280233880212595144326888584125473488856033942220648422001622233045051519464009164742470142276454843794557154553534155639612961791727774954579506649102082570264381111333025919140102101579037701549668626476491696545881803763157571198481978205445323411411891513348852412374316184687251446791284611847138649012204787801561455863948515917291776808449991402691966068224968386151002095450048520012346023906962450971925935325139308848419104330627055892260314408885292139520980877553579403615873850797504050557049044511551997643458064845837829150978898869495406264115522114517757626881970892203007223158189322327648016113039164097007326684582580724182195690155468158222651060305773878286878794739405326438756363413540783265897234417050445219974395261804049264983946052057939809621096150744714161761193638704252745601536897481670749869159994196176526909414197916353823253916429980742871328661403679082659858607291121238083487370286679223998717174448569837166197437048396021799000738275815432121919821409231385772445324819693936899111421690220609466667977518924063344663950131088354441351038752393577025491832491831309078428436409259673172603029148449676259552275176112880282554625123583619038850222044080393058503606001815260517643540498379085144616615118030234373071462037509787226549950098443040520782711771184013596059480821199313037733680730284337047439559391632921371797557372366937352284133963817801338151613326423088359985476000397745205354455873814566084128396801918602013887436736148544073829897236876404500654254000552641596577978596607725886982471375658007297909515678178158224164126376332267850502433961503215124199390748822650990395127190644821599310219268072483606492240651071501003212146116268194719785893518436420991159026394230896593820957211244445578293738879741714907069496109670497699514038356504083537934836842574266002385727122426659527440353757437473746852253356684097513501740560218786216211822973942309950240088259754168465125225393686711200207883838064403505527607909983790083882467078610214892367534284398792177328686908225278349917177023132917370173992129876164851694369880363824493608158396975501254492650197766992834120104121670536190330660716005948448619354894195125426542518342102608979877009062109627514133452562605396433163063244888710821874014857533178807129464522368671498135079319472660290355730370617015511081985820610202370233793713504728072158172649749638638739559988928642410277034674548622227595135091408179376998962940169911954168439965107256839458374584677705776857084356000202833653767491188156414216651369780480057502738247110646811543016150311567640217845486243295066992724447588763492403335673457234070368468399666656870984069219357024409453926755403842344528168570414259810447362889279433516933996629747302194673398417241318101722701706055286489468505284410044817588471330005977646206105583942524111892379938207452745530218481684260907362467377760723080465434238077892349601976467731155279558285822134266480080379006998859808020491890445537512299674091831731529192650442731061268205456565332031756015093646716904872382937923294501769463825940200386865445295221704804770858660010931337702580677934553757481497756894947857967015114053766048276874596403301977805950377499203969347278988392382475719634573307425066679846111242650843176104908318596968345804878921008862492761767093914414748322765104845381873418367921765752212700253011770213341632110961352171607790415792234651634791147915695287299760087730684503810932103464148774577485406892660457619272233807016965269893708602863519820087976826544285932649075493148809633488812721269641972075650180988347271242029028563818070328434403744218629676985947750132856911240142310564145511925583276651085847721889041382539054631037873662820262752830320952199915442121475748580218055698452537873959868524371769973981805582855928182320077300745467222498352871196497420682793453209213022674955373859961712079682118654725754283423903860931785302718199879080187266532595300708064331613679652524645338181624495280238795585711292879646734303236791990318023299320034140602157278461197928829528459612031605481708599087442032793465205250125687057584645748191862622271186929238900526602653214216348322347532529290527068773709504607011704949609456137049720019976722906519508936477474697100253171468772611785650230783609577182068197121035747046085953834951367172173376487818330555887411690031030685425521310252314676526359528736815059984266644558163827697403896857455965645780208616881116430937101680428341732369627248972508566110287818739321275519881781519293801870661751927043490833140095052284576744092398844444772550394300679910368681161452982562602224362775888304885326739098848871707179866992306167826352363406548827429055749671692989380959825977003246552054689366620517827970334250011599884292681587762091623154677169716899143693041902506646008134099236962128094221355945846972030001404081004413401589425183065915669569532439998992243277350468660125142597973561130345217930269063026747465514432664508634581752052182211628421572302900719789920955274376823629637191629362184948137184956944528458727986212989093204601413406871284102245447914568120574755813803678327816881723778994654979295213884769441914622252073846028157209073966664030336383693313801506824739470731055839996640474385647964914700550958397836511359769111853073521477211311066528701998858162606255653338100207883013826806264949219943796852133813755421536618871037924454817514397150243315184266892829601192455422983616211429873961599960637457863680762213278013227197598096229356610176289362137316181235981332708163043857298330613128382782165546583171311716261259659920200189963989494999397326114645452094218093961213424462454201203299358091759540208471655374299086076783194982223392447190656542998011535858955205332833442848259228090407079850575347809233809310034636516385212636690901998258815827948424745066768805472113120123803052575739807937761438588580206802092496889325433383317061430377289333980777135541933344941991798876819352661016553515931714546934485587018686512523776859519120431510656413213228862294138460720820187314169462185340700602885254410593086831018923598488312338065762964208037404894229812706464450651689378204758924962929587811799594456836792270158601930646772327364257696316109178801791144835143068041098853498614696655457565784841002504602368000976439661088824836371523018032753195082329702720899001185601708205520566989173074468606182483648409266902965036551239973670146521124312531908917594854975946772705159619960120781929326270334994225607802946000123755300082643859973154764313126561009032925831357060359991412792752296655952949374602898874259173976050402893133160124409893112665679495379399237818345597616845852472717736256849908261448649256210289647302820010777823579201272609627202930860250301482938607162583003346695730930678703634781732007268975368992121342914022819989992509586661626782248207169835440524286571818782238533888352688324651125147771815609495557056141827917376458749052889367579427658416214681147419708347105036070008287776585822593375397697305009281563721786119876364992968210723074939008326353603878071320446872839365722456368392110371558268256471145040306774966805996113444878145964724434977251250814419954757381946731321571792191918619553449666162004718707875355797480163949354070580483730392145501051119285050348619693268393268343902715223975304850688511902815859521892197037132185610846959564153965298941560720635167619344298744635579383196176033766875548703353058291595663208060797080096748582588078275817564185164101377243641468924764389952492793506420907537139946932415891245407857395990819215139037716194869917406333389826947391830680734577652069571244460647393333214457551158377289688046798080786314146006444668198796025252351708417930817584824679776902673860670628144358611656013659064144136516829071260170041581303224333429816390235514181261002660275566460328542242585969000775382301983209295197846525070924916321481554297684698383642596190327408552844918580690557780214052849238824947547537537469665619086665983277672379320227399287985184833644832005723723428441189521563466125694377172615498382654211006380759836828560576574656367754686568403249625698457042116147039479288825049754576543396749751704135298474518603606359646633753199549255103424164358385905570149791741336486444308345031586363281367538759238878833733846370253888402939097576329402550760465450247143906842730641450795338101528645939905708258665559438664283191884446861914456278414896576482357490548237011880753335109635684670120697038661160860870055399863656401333451556222506954702231658803412922061401623156911678102452179332163080080964501039572367513705595232283830770801945224365115813390570502079898894956237260162338066697685887840259129361401870713319151544786697034718632581838624498421316742572854931372619600051170979113088596164375955462692442401206629373509482756126732008383723535914949992981050696399477461132418164998086877200401443954699995401660762732423187553675797875134352321556122140937056431837418404514859795617282157152520706774710225601005536808289509114539757283147064558120033290658610964679665875331439171995948976451454797375282363125844479677735807095920589750020076358035935415465348693062807502438647000971568879145936223719959019822656180788616102623090425160426662781379297930553700081226352302881033890393315744329414288997441553731117694458972741736674696917439351585096305663409636260192887336874432154025962600854660944488856098513433616617583512864167369038107849232501256705217198209719550959829018740468879528175301233060560109592218181570614298451357104834598695949669819254910138582556072430244154377966327752603418058117343180177461490081496658158544100785535584811457133008511287062054960779387065728606202150798297556503420818296340219679046321254754566845923388016753736973888680237549349237140200790789275225989408500261733132199243495599945199562861443575909889602122247600373956444947683223365696698751309016809081763286911483025826406122785528642851691160746941622726835338974869082136193542268498260449036712981595319925106584239398203799968522721104862647313388604278003393041198458125607766769526883729978167398079379828973162053251240286220392909499546483711650759261057462012386110163825917921117334249787186160785584145063593089533662227709375899801677262984692609936649415759666188490619398335137698305945529940592252276644861671734877200254479738046704124568455789291614128347288876885762242223043659274910593421188182713366246379599131021698367768554054393389846204138425216130273398176544527499046819941257765492331916069936571563430103891461199616764581126192036713455438072447854616698474479517305661776953840117968913376671448497236460286149614135802718777055737963317188014833080245622986569819236456631599992676131493901954213841352363884545887450822899543450082617421304843432116344986323649838709746972479996986353284644755907400702718433895442575151314070843665322013493898114596820741625025807708330802638728192548672145040918125876343933523611675870301048062727258104576112233461183165179777192133142817473149168638246577579329905672596323249144346809224019510503716093751054335013096878830504900564594400855183014103037770201891960110945039309342118792403328183589921637193792355531812734296360106312377357880322086829529330912309987526869321681838329304624881327380957985888186382776007728726805984765580056360233573343904065371580940249333154544728085422459484782005113898700648883266454758292204717992504614681523401255130726950402426691388137566059641656243458576153369677536498202719079175791143394130265609388767050702063431973502472675957354290270530500873706602124956664022803747927420344947104877722187111370616353712785849542012248711292361921918112450087037960486307554635095626351926215201087696687144057401779127325100434718397537640475722350593486470343407288037314577566751101229179371339704311170187546308230242433826035133706374461042047973907268242543129486858545946585321378491256705426687594523460979581754885453602599127221614639567529966423913255339483842433527176154258760249189213604500488053352247127711851859892072025167635622868375048659614080238676609202742123897838502265785538271610870009315481396576989814493976513521932691880695721552911906594979724640740690913181810431992946520998813627353469968986302597708395918852839834615107136685458424593586969170082356528855582320659023602994134586677607017428188380498260071896899518826292233168892627237673168201136897176581316488497627425364766154747091760711453344935744386689873327915132541050164327247205029537013714433995828396521603405337844152923312639449694114624555211635496208136930154368854071222029148208240940983987724993798898368016384565826322684671430556532770830804454222056943745857576295346755719264171082277632365254095372428692240553495907049109278311535230854014590090055403634912676477018015097784773572229040006303999684059174278223679045477375932537281922434485161007672560381310295175553309221432771017570937288834365407699527164822364763543454188212704335990148272360647841507986097975568585487120204106986867816616871554196980626213999896989527095051754843835608036927450127538322179204787316137323886380675956487513553711191721064294652234733074266019366978789227596081527885158224488794109633066139753318466135282198958416126509784136686328183885445997619826416190098921245789979578578563014368870945082661952449971949549216744043049997669935527726968876970692529188812449899778399792791146761788622138389605028714048420711004233674499473055337123215134435006489189453912151328083935392472919451115899535206718427896955482352622111318436601476944020148782982372621102151476404879843969205780830403724531192860401380704607420522659157432377649335757735235641269640584362643478524483826982717082509270674727537746187038370110557373245039905937787322615654528959232137311147507396497368482465273819176255444893933963013791697352232888772624882206506480322515562572167186784812795794315422538308959088801353663395842547118597804824719479347877651588567690275392880709809219016418606027212109297834703638809620624983458670732785138012442766886699240703044949020999441352722698396681024140955041527701512080334974268709989628275874094079628865578773605809931239322816482268911838692953079539149666668036944491705659243001626978257644333321709528899500979317047212016960020894011097783779713350561023668580934646564880187872292314025246412249386139851915393520606875914377928460953081563727865391746303971266334781765932840638252520484644060272036472810440490315389111655763960945590539119703791785017860755451634462099770422576372565048823898586139179815702343292371249880874032238011782665123134277039678888251141634450241228626347080701452645032942299685646667916027156774939712001190992540011127660118879735237208314771545461075249636033702892231535033868909455202584463034662641992269589482848061117502144514061895674609826475673187188806015686438081407352922404707637739569976416777186605347046366732197310021837472983639129220765276538310986704426967942877487116152991062727219238255346635778293345247513735463208080335758917658028270585511386107401870694814882092978526608368553250435850221466939107801050810631889831248830563888319164958564162561946721917119091547258910827870436649816600225883774870647766626985963611383435220607700868636287103858152803547462129916778879117449958521770242032523998260337162515365594768245799756686111741127234209940495140431961863801565978738855216350285712761336533878387639259559879756210692809608270127838705129856667706113706143244134889858869365287972582352227669566356318345939500280249427218329761081060036592144774615118966628548331182202765517115489028099555379184455413219578341486475794372520063482042783138486043729852661871868498146196171865854186670771987230308415800622081672592932503697236700866344497710280399876960837577906846697449978714751974104029175158212587068786491722822630757766561154993248575367093792310967442972993399089088429007031405000432934031817258955717018117311175187415552692070032750186831648689317529367396933236091663411153232539194278907581446612064001054856084655267088390213840605743591213158681810963531284712000602436413504128026344970259737256958690904048384014258511018412079517699609027689822689904031446917429027920099333702181664741250413820812297408545557311492704341677569859721087872821382993078890034275530253111774306870634017958930382517131731046376348948726118183754104269016516924877439803271282216805681795444828450264267250225613838720075247588491219799809188122445132225521361305231953752767388955257703180494962274882040797919852369741307664466849981926591070614713655565648611459868311943271835829915131606884402661774296555901291829605597964951656313683816023655799889572517923512761104663720164066722025296303773122715465503807530692790574904050470849350742390587738108633953114149394970030150418793653672064233834950175389976218204501055412978876094714314909988049765046773110994341679269309736700681753354820507088791524677169421786940532812410637154898721519999979340414471385182214977081497504102868988399019304124766697842768625342289882980639460049771139849261419410972688598796099299625937176121495855903481074590240305457648155827087194139114942410802043424399349664158881211369407680651412710483388596960631994030972459838938592780116904720638403433875694708661972753397509663209234821659418706628961493938467575646835951865535858317941831106304673632015829357750988142462248282413304537163258445290372117700564150518266111269777409182004490751738459993862769589412975482295090176223299912576611678044344642187301987809598010169611188075342213159262901437753889831592224275524724175515319771853151472147790621160509917788625696567893415760701716744788587671192998781980768025240368028757754120838529954090677807935689394777631966997047888290111719463538320134882169329212148187418258025854882413655631830641490493665535385426076016578262626446882036768636611613754092791149506493308488679448270794044021748477328695138895893160429353904228061695477749290727926304766197296529241604704358887843365722674441872618250883974114353768125031288278296188033842982971257732481384554698981661181064157595178606084192698801353452195168726153596943597047683279290580218441556655603924376228876806997392652496535238206636443764957698001136891957432230285164969662121741721119184926269262869364473671204397648616172634734942080582285588232181836135492611877088587310225917473344117695986914946083359279665740629705667858183106536531525621346266245788104453562669192598756384719636176507662941951113409056622167628029771341967355342152426939893014026415186889025447597625903508831596013563710724371027821087359898490136892259621889775931925038581589211788544703364004867072485330931968424911801399610804128561195290733811967165175679952703797750964855494747832085235804275323817463573175650807332175543268772835597536661723421442307839666522883124985705674960481485856325168575525935223780821213868992562159579202896574300057476241249588189786525753830863807865352973315181655585210863765923078931714095584913140141460923189740094389859071872309706415867108865597483496976610325968831674141292283664729671801059068072862112728212535929902450718686511269738884386194868900982558723364131040995480722275533716138665362803541159033641105965975393786015034502834301546496761950246298951876893042573213172046378881331666055651992470607233322195804984097758153821358697706257815180693735412451427595995779185449957077325537849574754318157848285634088255976837749327431405898515246396072960686513095621229126370014140890713251003351998724934507368246823942790710355159225915376877367299486383846334297990973200583355221780101035635742183065765204419348149616695995562901314204443421092051772510724219481603806633352473022881887256781787880901502561535966067816485871295122908574372792120656257735173530590995320122732047267072647147557756956625815886850624016197015751485261990428526886281431566449527612447240369588288529440209316292256544876625572890883539467341029443251985373551666804774679547877921504634306753022782363277046254344226538704776057108404860888899395707885362668212966448159522974600384166134624824571421758104819098866070909590205903740003345955741061218950486125782916157429910450190335053236620627430062194577655214926099258202891540106219193438155045456038486529689841585070320088579642646542363675604985973121671983787491267658822720606346291077165338624498873080195383822338505465531707217713178267750186891222215044749611387520875513676509440311766858357050231070970587997067004825010440706722053244744429253241950993759640432066840505856114281561944563818070474512106875996477319107375464027242622052914805241417061840575123725325433913532180869150845208039122623550683438707179387709075074386717036328307756185503434426214605320993687694192257886475912398532201769342460567777872385702140564066112099501513322732810043912998501922648870673855019511077686166818862381579736892295399243237460019525822397046351000193297154383348877049783538599674348757794016272913710730104063187929771381900406034756307112721492888860043359941422762779715456643673200082099763415967845397510547306092400545248035679446530991351627146881943650749819396173129608280100315927070896770479313723894250267147480867222268930291772441352244621348961327208708282099753042561124015495039865427100420480524363451039436719317978400410202154284068397848723737396658759769602516048403739073189737110781882032538371058049123063725894905756011357383075861484480979225436244235844853234485076832052275041159673914939699447778548843398060980029804504442600770772228420790019630149195993082733814431006224893402110784003947540235379989243977954521379622152271194071359176373267388354236204241703920568353009185101424461745766213758302329152093072963553345866716898141154788657543863232208184242773962476200054542430948390532442900043175886939102451082536808007600038659107386433210745459005012723327089591660884069892708534880411534854018630293181163893994744497105501494134266885909998722299874221633239842323593739717819578050097451394060563086770950583315994047016336897959866322697063113373465846623355888554594103106356569463465823774286460323287944423227097686220659033535020553400076007479248538516079772643218616702231257436229564153442280525872095256299001403504256924976468170698357327105277131822500763461303657700015216683315171333347977024264212008390562699983585398088730266533793404140810526822663372092832293352997003636099449421531009713483186283161493798827596268019777144473414090727361296651844755091767783496587961239124443719010784879022507687194560643668311177155211650142220733666464269583313744215417813788874703007769094531444721089406174682066815130531233440161279938164249679292665657376270897778388156084580687776312911624457305576306859515933147927382381524043737060821066251613586906613930198000812001167069591861814275554968955532224465079913957678781494046903412434193885285775898859506394955314653692607024950490287392691171020719475064753721880707393694991400838476653822542351495067786904027361379036071819488061910721327258971133828263346171460131027920999217720131363486932927573015141822049153048065696832024297186664223165946131318560683052148776486531519328738050537579928331900377014094252154119811427340598165011511419949179652643558386049021893452934396026311633722824214325469346941809758553159605116168446512312919677733678071686013063247926869451054923322679869108634078277839606549854329699481099184706887919273315494111431412226770274592319172357328307023148404380987046729047657461444307803987047657391978609400481003675071247758132719258846615328070253167903171749516948871341091461961593813996103966815621832120394133357699401345522117078105518470860808985575006627880623897866834267655618159316383930696644290413076788033418475103744266757404154099621088964358228648813745303405202473964817916272265142847021365964435381972037412322899777825974310906433855762454071683869019029044867615321438707062067926374991546228480498397451085281160276765613743820309945076618734079326750760472685817549058554344973942784732444851477155237362401623642171808729807429148346318626598442377161550777925777577346812643102782157162004483823844687635463932962954404470955232433952967787486926828507179460611427213777157454130199964529023832444248619824995935177839505537426657866891332375431323680056751162051213548363136212731733756715489348980699048095973561632726955115762311560548274419041102130002435721998582317335950267383085749595799092920381842970752587381417624017500101854490412228428006312088955318980379623155773321813562752602280453666051401034475185615328710913991127946977627461393612374573492414827497837265926417537282477699369944800399921663673744640791084485039212273848680429832473169927729655806499753827584867134853196124278739510116159369570386346286814234912216972461214293127069996322380813256680892515962173961344728213672438359866481991211783098906112261191111314558454860674901458391734773059663230770858282624466755448339322316303467658763965641688835706197101567325763430315047911007097312315074059969099768182399968588355980161766358357045110419761683196800217187378079658366901996052975473287990188179763227068149664505295870849815461484197281329488318079015449718805088676870284438884409367693106146482206716791488775369440460644513822926165586857428849853195593120587004812474844508662888903592861817263355988372898195120466903575192219001854072189823217236834606736138269029912562153741110908924551642494834101814413689684272348632001887699595185809047998371344066704978432837391785278810865726777960870266882554929782220881334366952311771223854428080725570797446515838693586548928576154702761831105861386188018986513670416020790318883149830094336359102839440497019549550734383437139639303739374438259002690265739769522561241034644633088493374863451899175615414413467693808713069558879884293280667501061302369429568005505842551094856071492153658875864106657032926746086496955928840762207362498153078139841474320833665626338293689989945219846333648651228511173553796760707471800576545495472948834155994335744938738332917727847548923097085798625452462226997658516885902880863316073015552088426303597841611199928452616630051580664171232984875533483603710593011242061841074025070212015316414070164569350966380074229130505759249032108139229387105231978063040634169616559276769453767534291606134158190195899374986451687911284414871982381543158053668386547795790535363312185317758403144749304848333686152307307585519517791757796492471578719591215674228880843186443648780735283281516335500784738286809995109606004311851139874682005842921448204011607447199332787472306467768643923127868330898878274123807414786660035707416828552643626468570774727138315596000521195746906361545544061807213619987805244036962491939872206061369639004036093239297074620448860960333076703824977597018788965585170225836319668428645654542282318411022771770404311364294181182333987692988044523777540278071950572154821074407422621613414535918580961366323635451522451243538606018566644257693585160828358608962307544289548808529674226961497486805662256843031370690423001371808121211524542670566829896416256004293855587581492788738199090000797100043528069158591227419615530583067344016868154918709428623182221572313910407894487367006534406132300066617744816569874752203875907145428047968158627144659876292048897372109732783592886978522040164587985590399167611201814599695535015301673309170144646882184821205921684159438164447573663552242072046277256004647955977704622249910736326459071175355650017791415082177642503604430813047789386278550518852155295266981196058829391887057584360198023630083195352283225811114356179586136680809787063316435512557214329840234465174655477753012535068543017437461526107512452273896080269482991533706552587003272353592334338939439586135057508067273335411165656018567444447437582614644055978146661459565100163835779278207423393067085077695608619658029694131067805915360064599266876613028384354076028547052798793022022570012122133106902908095793542907836623191858724134955627927962808862236779419139993066072336474146460866885073891305231509789147288709979716603912187965584543436356054317370198342396878760669487335580506107704426727860045399675565597095634791985861131516859209681501338817900275701924954659030508752995751011415676501083705700721511344454785294483593425925951570968026353498374191661578589007461731032434004091462979898758617041242873763263923517402579728716295638292756004159853494677731340024120748462849108393148832216610519929843169992086626612869625389227383182748377411429341730948117499916452235583579694597013517909554798826908125153244586972376799576268791460445069504575172499529651968810192491247300887817358925033199655513182126326261760826054139256896566308513460198691722225093519988988761074529592700539946603377194432742222878837575161811239287865451756004800790276918977814458760420417767738704330879358761801427882859144461643791285155920279162102718112501753678931600207006747712022520378438419397036666980683372871807749549102926114063660475358784646674141286717249453668911420249979087719905804677048223822760369328459377976625917250835924147011233347861024513355655581266709787795109807628952190934663737789195412840667065383953188074810575187631568039100158787904585681249625616559897667009709949979761774990167897360866309796246833469195429103347234317363100520616394973413509933040295220279882129677154383000648905685285059136452826624224497703688030351604768489171644633711942577270642973458556606957234621851129761321043023924390633064445987996939936639406547904040670424334635812535923292957900295199861483268929634376196080982329821112344420863683840931111515044399826994140651903160654588628065553321682136933367249136841909271722418495360424598533285498929589206794392982458613557896354535632351907600603445588586519266162976635410576171578970811833615774353501018927316138870869707143951434614991490837722847619248352038669675375008021244420679993389992452449969628511966669889225416646320557084731349985606033414882453374101807385992136690193864516261286792586928977209814960075372134564718132578637178956606985433893219887580399787691037744951547446701749673549433449673649486586207486670445010591858048702580991929659432172345731617576384284869065226149457539326858820188725053139018531345229820933865554366124353290106744111093026645773015746395684233689652987011982553883274203491136989457944255927741956410541763793882320312809239609067292016875275595160835872520148955689284451956387343182578258652628919601261231719307123720014731113668849547626631785594673360876734278549010519956477686756775868716916731549780010672629492697850211123265215137455553179517008256737722641281115946092643900489109804062836691623505959377568619026078168773853652536384507380157396310916888200786405915741014585432329771664780477475214345028344733046494323691678540442419817670872631836124024624171536309067322864711768562061365402756401108257197335804942701214626309869362765364210365811553921215990471095346325073208561859536922691826743003386673316755863341265018603942847710764927402769920679287689135713515695075945025526060715364295168955943986143924104572968208574679356895405248666873373428032732144446276505581616777816686359156498694551173129035862286732464319134245916250907233202475557480470121860526368260392787824309959923779572951393083090311855983530184485443098664686998364699947485192725060305656822371947064244373572381966502456614542168201932160982074120084107600950386054640959184447324973165261393541460169490219644391263889475398285692545022065668194944543275380710410086608155724524229150076348627954530193923369159000102750156138718860947723528000909673668009298264534790000018164340030219746631624611478221115492141721126540023415119178453992841417910381846645560036142186965606056157071588692953372103491738717298409441234262833966286642464135477781329934389641829388739540681348997847897674652584265761325005820651195085523560335457170200973758303918230597880072572269314197115737821830148480538133708459482231497092004693374458645790285291405773497601494545602212208126522273570591928426296001439879249350587154641204826617299731448354797737545960528104278523617051188299400806634377005908023567702201056329611569201557588508136578942941338553447555933060097184140317273509101636684680340682978182079934736289731305620978447289005898032543167110423187010552529362723935752798081798012716161597360702123051714865002191830537475516131962341814780500844232870640357721928183206646397795341932213451876479891120687907162297638572540402951441650968308876086782415402285075807110487379069613539385930054091264906627387324270338362091635516310587035437587678861429619368360732416402432549805795356908164650418422414631932598661302890322019562286001947336575538665948862591697887042367275557168643186154436966107082378627907221005302397919042136856134136182225181554201314975605945613570613542746501650869614013440932103391215672524428243219264601952656452549359866334990020039503883261360944544593300721323303215997766251442262990652059759329502975394920718287917635651104571824934176022732282145281858081123332109577998968030900275455629090794224268078008584623637023793428757276557441485859000273075464158315398629994832908947787749744380722779547941529718261122159048034341118241081822081120090694101934785922711392269921697054104723653476800652547783392989954187659974761485747173782232471129027522705388658210889244366456361363229567641395042388600900652086524349745633119001191191215828057240272006529415147782409717633700497633023182522307884545380769478728560232139205198598279918782700955882418797315726951142313657318114322445944221417246580416509738023337212477681343228216784339434975716696249057901216548830512674876229229516577946219623041305023842968339399603027889645661674771185640847090044605147611005608027629206701879743644108853097504684100017457727630216445261723275366796401294075629444776621290886172062258467951099545644033218035162956519686497274133812950197675442077068565095726706944037840920851708592109108709322529762999440030723218843340767707761353017020368140887613665460441923690493191245696516169616115072297061319354430649818809686303301301908603665831342340543415952900622546735504565253721659648984854921676687853200066221209179255093610111681296453603976989261916077683241314098977510250743492599738278877370008454532211103169369613026732890581235121344938066003293197467007603152946163606748472110033361293752602988395700448421835255414994656550628775905431909387574003349876090729228714669204978452427556037027355210965699200607942923636858116037336575414489111613010276468797877023853694386367206695688589290887803211048000226854086692878221967876019734548397457894501434143193955985070283111480598437979010920137130055383574679666034758315176606763151485972073098963160718532093921819906223496846881272900408072099727605904533162706270018818839029099208461969546773421598354709590669921773133482255455035241288694071744930546508727871357193546219301661507550488103499973341644183551379630238681765431942152965288920914915815857672848448348712603486569316397590087705360389834820509007769563086609264917957637130642297011736311590157817134857195353491024465475205018751832453122838466264072448554317918044478926663999551617995335649585388658858503694960188237671067117052840974927416709307717219870043076098749885809188485623798823176574377557320113416302268925815035147786056233387640210111057834286331836718915842242482653172229774091361935683113461134598403428855535731425300315467714604271635141802817161090414087535177419153570770027692947786157194282937742385944119301745169362123150870130146927161685801706306626804227258191105976172157168505534952140047523669108995648066242724918344616612344734261184018392584808161284587654643583040112370926879010187639675877320989748929694040253436160626402744865730014013288962094028394133685126125872024342848757480131498917189948537542528931930355220588025972025373938235194294578161291850228421193182962037025975435801657436278184194503437230078034495030222331228277207173516876803272647272536307363371607845472175740918401783750097515462693629179944015078004395987503776550615962161308591871905426942717579413536091240636988762782994860545607643188816361674777099981894531287068419243406195775007959834317934737682137161028305250997046488389808303597573727410469792094372715492261644709140462754291516073233097954308201278540162540300199050003530855971801843592708695948803860089576631797410132093610177422369862636758337952536601110574686465981231859945130144673336430563651722037926263795831564815260780814662157797817024821766108375965460883540902917375238976111513522096936717297038740023027991111213140727072057670003667129107467238793935600868467357728585455794078181132257725729672239261719318858552629783684265013594084835652340002917165319381044608664612471515494531922873080903740519470957425466935100310219242829518222520024848992346918136252543874257672286939132173116601305443618434907754057988467394540503818088500035208252255365891785603511936366866337449523230640313563645380790310770895442883185533561115039241949215093711947251781459600531084329243721091037726221313002608883127426764372491250202911137711871503265761671500068140313453999001343129916838828539529706207767609757956192133153950145826337852957996790586157029154893990853462668351347815665747587202831941044851450296126992526307327582480678913421228207924843142162560852991038169399895659016888877162340360058460540645405379705945009037291676950451273663227514805859741041089402825897088135546860276261402474926707808289808033110280383475822005052683678476858826894328147451738656006458699428168375527286723945473709762290551901074785961703487805318377675797102680794857738085985091978405675700972005190068299515844266547834877339226015414864696156452845831964051627055501519090575595469844826290040149311692981332027710476506479347633660058971338434549902092720776971578161006517926103099252277384595924811689558805532146405904833171998534367491499345878417581410516338887136575999713332252903079188598719045599285544418017498567910839173414951522901684474559014651897750407576189844326339479452879600222250982469641615806245209513885389752520353925702514945798778323377765234586048123395461153613206718564457813209539144006117575334792836168373910670423702605369170376187261533907802516122827449710542710638770524716823847280781931729890497206155890176637589151158491906397385363097220182899865087578868726981552012941147685272690772805174888420428091148759994763812202034159524197788770732960657250133263833917351924734250455279889771655729958246593564846072600109623253995496480697789863837295767208984374092149868842336347452261567168363249834822022979600901193422090229403384067057979772314269273761957439371040750962649924079987433748351184746167173243501170211085668818109457507637331223991511017854333616636007778714506608364807062976158393551138742496354315804434316856928459736308568326549391748194150954998392443640040664661477845069905670458339302274147181046762290018074356918923397626758451983274012576058496081340449325745524769264434102407412835756278415469561017338134733830915238006813912388392676746458653170422154501712047783717540365355607984766462406049107523187997224136256844960259178592889679092291091852595394021811343061728294902114549667804344381209716762616040448961493696385097329486470466037597656716143635520352101166049310542658695615383154866664870625925296407343710476723866458953113646130426225265323672731129158766032442397688686606819976422365012714921888986560534040061864016664329819103012126708832484542524055705354657149568272830062016830441979500290567431088733953999483206293447451859587417176927069615015128780535208741393988427732685301815439723389145856708373671180562502889980350666202601031870418689637665939530682719066673646479097253608309324583945804042457919069270781135859599785857219457470499601159327501839952306247665475072593914437251592392468296596717784420862604435576032270204170259079256635933884289138197788709796947188749142117734305438191271587252476122182896387700228869610436453504248933870791451824334970026703240423880113370337834014045894044054833592253642060703116268292643690559994484553327734281570094502530977813420699258063580814704449190324988480487528277357926880976522821047052874614635848679908036944126953810093909076295662567316701633864326502140478711280247788732746700708632896050866500745098714730765514555964925055134175333900511731433307303347880766391039678215212277328718085142965692734434445254373712528489455680209238952513564521664454929997552682885957945183691161814442358458498115894886486422895036366585553588530689241047736836591538760923197047527895337926520995348492438746053962436463448019937778177734292809198938596155561172597614690830080228073737084431040645462380516903956409013043336798154672939725640937944218194157104897592251987439309692454953969630326894818322278939642458640600006450492364464338538880949194659048739689340665751956547936531786392078982678870627505496211522448202449368430337281368601938437071205117118299240338003349035555062441923229987627462163713390804197506727103637669112489871929821425484628265902609281016688657168181631683236673835033636377933731915935424810282410126784589647296048888303950785597746748316205499060599842596771980273894196728012220888922189329165934191735968863253966838252592069232542011727546255582313067276454844976879378633765609622066252871742221404172074308803457456311419504718364551248374925546825620754179029108248067637125708039305625027572679697308108213090458329223898760661641044131980353631587044502169048916427604765593683799216379347178248484146637143725039313243292597178264529122259425753313979685630835292450229274700035251116179119270227714192371596074480716737860604092577812740791196423640749648309134723083049614110270603561865146989000375671722157133675226223028736875113301947240788214475951435377958210900151152261966290749273727918356619378992637594671347557353072788636351518804319232199970644318465065738752983385891190562836749962536819346582546360401018857498747575603702084552702158204095558993557148818704809146355721749152783061726127107864236527868613889368653797688297219673552645461660099135592127619384416909736117132730980923425463029829183991166933014444742440687013792244968892901400740272512784126210997137930958972820557836117161601494255970377159556206478288907044630795688833244801510993204753111601497827505862985478165330532133913947481363402322541421337316762247554896751776589230897110770910968018633256288776314537695252563878407175875199653986833274847442352612377780308296820316949242317342207191295033826965304049670796459765781049548109921532821487180261681023094252550257960871473384486404048021092822017838149749427900210348761160941160164297831599701181185589661305738006281762360140661717480807374902969538362727802049209353089745913970895912376588078020288149819674044940638859506629979931778717372355392495187542789560984039972920204807698426019657359120859065525318197373667504511652301437746764388827496176754780002830114737351804945163327032646461162475076979570721543277489426709645442545663318838224615295718754514588592789161669371139329670982654552794565893407807158473511706545732739757559401573357021144431874025053714995777034214627496170381647863369479881791967519939355771074502079873190185033858637872001626722601241570229459629717951965914591991171889134012352873309511628400058890095405905513832762146077721348838617189641595333608559235089822736215615542070444974617457147515522856792150880769270325618114037975699800809056779775221682440678683237783024427064364522625248231903300328425521827958956517429019243465361484298369437908226904776408799939776647607590021245219215383275343373585841973006972432597042181429829347526278607352555172358270951402864142568921181883539431964358314986052855579787151298791150343512245096590579135205051342347990591698834179590609294042706900503094733678717645223411253402721664010903106160642320706799074222154270817174105587437073035205288356729567613044208265547830087585414485703252073949964158724676140977251076897096574493269558120046857022725578998412078866986084051169775056461358987150577341959643292983916419252149552241827608786647929794540294542461407433834834874155696216348822032640017339463871660554932833971939873270183734578122941403518927508131371415133558508603847943009658123596432397845996888255193222355890587332524480837992965755602021854878118865259343985881839384584742859951207008914449802450617435958168486670708011967013813275944089711668178726749600353187525000984159189522870954238209690843901223066415492787382118248609434410463090946302828827137560457496572094955549437658354706794380864178456783427144491055873407514801640348306629373467385108240435772724508641004893546174171692087590880344563174421242250225741571716644330453820845792328957484409432893001984516597077800819193189166722592561574258438937981163482605635939918887080915100031921959661137619129574389585562334672262286217198973478611306084823811163192646597205097719720444631779069688397183216314068827301075645183948346797423364829870050107298400861227200830140008837363658588842057840963875032348241059506496493036026408241128407011746648811012077656623762111490043868839352367018139805220096104825541498775939478594212353939626291308228629584021913662391527610796425879502521123693445476576674437865280147696427364845309685149935455677029022876028180795972162800644024019755125199309413924649914051222217990200867558802697813731369585518860089755751284749120217925910140021815375461710312603202840629098668299687134997158270703532230640415594341182807542662554749815402818120998909376241617116765475251013663808613816004853322083180506388705762347784072472505789895257213681635503726064882829140377771955230552877623970039740890196578280762348356551438575324240644990907658275551346754933710232136029790300680981267111126008223545060304781816084489990330197012556045757290710249013148748568376717735376557483870426173451929628425461864687543020911487808735596631841814484356058338573757347536900338270238384193307646747503774350766377213176407443489077125557228386138523369500925224884952708146581024630243247588857384221142641569993361424484678350354793197077757832426279792457717632312171002924597901257773315593269678137697349789738430696081953017536358662777770768491278238444505869845893956757531897906194132333859930789666887824280203488368945177378795615970792044273231476823890806451119557023721387848105946438296618983294044273453715732555329161307851757521887433941008613031799930737047774995108340707931917553340130862627043289512938476270163068324514572166762605224622831044475007357576208441027188478887862753995989558383191741988699385354471590892128393535797855137819102409738678698025963981517661657346421509351739802802094054468578525575055257566096986676368446100898122435934797037799396036399790529437967128460532125024524271350267853743333377259245365389780478373411902599599572621206492159223456258833387487539256932674414928341316516555300698717391740174416484477458540062444219339285405803824233073883972121296207045218519921585289506280621495227202764784902254711285523688327449070646273609632366472375343214598050413238587618593873074385675692757066895086890667588711698916060874709374508158561133814922343646118334978297398120366091038341343368372854674173857553085974850363155120697134713490767700200540302473848127572478903509274646106609961273505798422802571830284242931230303772678722582064135099815068485000227331016543451601519203906236778513003832099851894147373126279564110246972035052002468870922314443245101504483675496986358844445655293553120331202421715517094231468283718429147622306294089135192915414449834114852493851439461143572050859095193248846994870644278754884783843391356980367998019190707037624335585069659351895584011788389561018798418490624852994578915551572102309743723827639270427399185344979513206002546493300424272528071418042875986433244449103404154531969226716567761207082241863824987699360539358270668315212042755623013100876352691276972469380263181173641862988825053559328830689110257811433465510702839931014427066863147366420255865389284837389012478237957467944964187402651557158219133017424142854444176593300092088522257286312276934097010106672745369418303160084061222193247307906751810698570171131197017879792950309576937671413748180312912328739478414911868493505829371568082208339959205569539579312994827516856648416938369393615566968887143121347648329605771540140728321699577683048936166370986550117576965057868186168052903521677530259725486601332103344062248464665527183150143637883519446276494316579390744205720411572628929734236465466185796712875275947626295358711278315366862950679089416540125414539633409169308501708146863090844023231637187420031141597917969329516837944916283778479983614761062595536954174782214369027929455543299238852019801942912491655429949838846464746284671312773960282144968632005447684963725117147069905177000756125190220385461581284033901168233552684292648681778837814506803817624328116602522351768347787752846347745064908568095820971814728209614933198833408308975910508468114360020575471053501545330773806006509414304881173522984755554689962946070832635763847350343743021893814653198785280405638312893245809194770941442361299741149137095885454243996135045123164147316778156001487470999132428069142705418130743064367355834428662292652736741380559189475193017621208730039272410892740659212582436493961752441953957292953660947717746922100679014486391673592437694722014853019673643701673914490479763629276346187444885119849310496039013550380429702135647174567579294792401561785846207181651459737430656138990264564039859691928702641442942718689496773515001252613620791950605062744613223019050200612171715992977281772805224452746120211194456605570044962841113940540592805987750807241088210267567028779441016451963111714344086796596800018397020642893648194834394410885828113488714861932247815995708472256644090169990018766885792192045956561968849561045733878095453442824052183075610053968357299311580055725321741390678816169737671904306307162655066566770550098010958452483659667176932107346940511894349187499957534095060376351156757197903638414221723204254644898958969780024335432884813675566857626125335299461655609514803552078793563295895689895085148324331634329326191333979051890685414730828769710765128809582359777107223719220056140446692954714835155430461761351095319786826360095686362861999528178445644931279206824535893691603900116164681516911145123476180412517711292488682657519336772964061196165736724223453425276241295065155358414224130919996667005866019122157077111828328705292209268627557409271318960494235014845168313093207955794844343691097224592824752512078546288320357224071458046844169692254754312551770471419497084349078539300894990997562677323341827665929795048397692821028152350306491678404707097154603237466821704526398854556822684527962581519946005502510764141759164616476836189044644445606704652231530567193967150643227619902120409515163099867033083916967124305657227738932859881490807886132599181279338347137676699633398837150596418795343875308279328058512997494555168484073840259067384059052725615616868931511550350574819089226882106793941470647684551641719971956256493204791536507265068243503480006046755007108087151071305769449210358155449530908418059327461534646346819497154087017351897360629986979298954031476874561120906310075880375611270587327808096488542460540268460900159392684304837097103790230184554461482427235497493112690400622568832988062815534235741869097348583889231677183503929690665457533489753997261658838713358110818415236706621427642031471188069398545250112509617882158222888406035683660269133439766603749317202324480855867084161134093996229810109915163339736419616271962233608085327932123393370675281589628375213813348310932797607873733781798542837299019506112717677601134774473476308555434821280898529105579869169056131278540020675838946272470528018754676775648424499590235055695240983212589758182595426176168133591696006671614859582748726052680722638376163930505630768865833943888503590721194139296363990960230799333573593685950803382991054107004730871134895595775307563120169220682025600611094863786382047753060652186197249735988954345230340434586746181579775100432562112159064925096596001780179861291123942202966623419388185197396067429603271424190771788456636768088839185225597932612707627337769597560537330285097457448670646620972364365496649394815805683827371833497511668799776083310035044452324596761522756626848437329636161267286922515189577288435906071893315891658832011290306640424370973983418158254635765203224234046285313851780022832070647620091726625362336496839513977716878307558033502860723047375102821698435426002400075281547264881460476471449669865200194148413865671900347219205918180485128054249964149205780321906488812199369591082494082053475443771283421262791679387935902973100863244163321431060301446473494374960700143527889895911578067912867206784811695872503930606779207721494113943294793513459623250135854176012983304571212073287772719749917966853556473059002808299354406045943936238571467001761338223312395503052404833337531826190664264301982351674154043244267791663792839065414007032893150400900581201379335103152202075304565437177965644341232188721612664591871286894975353358317559651455522091061294919407418149941800516562105433067398352605467718056900482736614074186880751662200488399917827890237132493522554353506633829969286291393541235089055974227074056643437273616482556118515414197338049236357198991403316232524406002482635670642589441859403403907979453035160023594836706589812064079781974033394397794471387181248080721242732077109924995899968723694140981778383356353439048047881998736048087002129279389613973491009913258335433131591058119357884540992192224696072071275670324332344790217561483386974641839273655501101442018073319178400669231057482811953302216705844081212708327300829606573957878710848950075504724637587901849898144183852833290051966121669284726125591079386385598534709114202167610116650798211285815886341126371836895585860981954565975113931066375357042836872101689628262428084735220463410877000142257997562312826159710419328037628010197448179384805126749855866116115852589118231084503391587727283969650263804685151676453920266653880161344492612231369453182853263100049786076517498621851715021618408188896233261420828714225179112882827437805681608604747054152261254074818629561675617976803605367992547828177259747432593083659251630553957488961121165903194993039687789014668508878231323098134139937553763394056822130532484112059407477145265401669098392685853944047878163549293065508069590414162279181883251813036934073447410974606591179599694201080136447550773691711686143399260207912253923537143894555212871629140351498605505128623078702986308776226872947906432336186575719691592219702122417252354466483636667381229955165005018769034177370741171387149779810349628427608229790608167558338927059571459564376183985326317003117106573935222409916808435307379571696190493219327137181431305784187487431703776649787807340717527103608939477218963246070184768075270726614510838419059519788341343175338776022533644195653524602245940740932222300731720042756145786193573401628355305563406297270071359736805403347418779421116554474499100205343444545416192038209721046949804405089422505923737888568690409059974486640650107812503422128172261564005507672079256696299963042257797426877201529804075958403417218679735327605491563132547017629709796686296441472282572157389326696604277033860529616884832005637549154792672742584436945871921277439494108942472395139962630883346977064301632127172935812446995156730148462084477177173719161865052248165090086147135414533481113923656211631669145230278808782030554162424543671379954826321618501419282721115701182407526401670416170108116153080922560930510402782507760259548728135962154922631865386647898178308620773264222889239001112065991528130890507963973906235667839425460048978554156539264814639444710147886863645796494225182977299837331660879302275895585063690528713697259480757490640349301266814282635880389710771351476961907131695372179136387268509572427963408373509449363008421937081809652986594079841968493038253170361199354862458065373317148129680161628229888611940616202490975080391441493591539343152034085422792096314126138546021632030150278536475664158212911852530441914716735983764276733001666978204017488631762767932362486373661504681864465670399463452622487952879923753491167802902274512014179242956559403046809046906676291326513559662789220828595497185787188547613766175752549412886909896654683818828876787532289785467460628530870009422345369653852254480558771089479832693899131426694456304872568822777135783073327842287526725938636267972965594730633743730834567636122105346846206458453890558290850789179558686090593751152408104892231069364280273500401660225350671276747430070527348657806959113409259079497903487196346120257446879459422972617813054530963149365042136846880586425035405805841024684158716495081353120402213214595502720738607156552316783794370832787245535859109201803572393714955121313254185172173135172867305511511476914059761198143123326946669520682538856153529496122004632713720188287823703720851921649219169107870431749408012812061764604664759270288117170640687104776838790828761709779243727204209431582718078838254324896517294280180670107869564163388321163502882940306655574757034600642275456160744439895352822938203495990771059321441102997648120955988114761721289561427021879196184322119270901956472910983483095063504249996527510186178922643528826596022663785438317657780721310242745586247781043514984404404921289994379655599772097452489960939366272537788297740928070166598649116287502990086490159713943552663978746861630308376399752755432230421379615650796900788707968964574473686962622026524835330808133627556647368946631106110979250958348879102547142453037944314751439448436941099715863402593874870140120864076916947596788143698212797069789721407499576147720200978840219092905738420401931512575895733652363997226377220367688049263689601010059752663574247925714848269484518432123976881179827740112848407556709483529324155109112638127250881390164517499845533244035040993873704531139428651187652577441871671665369223886265680485534975335200072869708605398249717255933370624168269324914670157291758900190351951872431687678565939606543318220052492420586196296128743254743851665331413620356518308948346774041119934485800279988817010120381332686798281538276966329642850423658245386096486857835797985219004701868644308390314294496156744059871068936856228569390885170574545167004845256315325743020025625594762484678215917171728330952036596797850654188647819480210506629001386425067861219042211815408729382505998768733812729627773297878013891700688880232127462676934340589525230000770521338581560291796983504049669474497658883700762832745207770191972083770510811977082768659269399929114318254161773217621595876708152841514565712157417359222255965195449819157860618069002009454305425746424177821137756736339031992112302943575365637035983341061229466508910164938728225742611298541471902331128950032005312227817723055274501895754623986512167098024006316954826073930338138072809272313862194127621847035313646733236213766407586982320826885380790485780655274722929209054204964821567049915068665431689518092399374213916375599782535241827025717950647345297530067615387911524956773159118426533694856441783251238808865884173515085845179412608449638520213172995846828437781790675216723653118590997469603795156073752321299478991580604985321526273713708124737856471643153036071499520497367377141960030089124517333701056959130900015818620838407055921780007300813098556453904363675204785841735722053089123774859504783377704249607251655357387027163333299228098668565876662986013970784600804316051882508246134733165407059377424962359858118288740203574858108157579453766514388257447831742499180528937020382456392643430643840456513642770979861406890884911494786893184806009915722972695045613853819161832447881184087628042784912956008699914073646234669404081464683961448183942159236694926255248496065524575560000606097193884999051325372289999474407905945684024424583701085628218290766861686429932289320097012959861397079084485942829649715615406120147530600788872007723597240018674482499593423965527705649508770893514363420022872570860962176704507825379981961919503600862799976633731848134939234269055691370124437260888496401611264106507440251573242698164608238739574980319535514290313332536057606098692621873521525009937675546904959409423242872002588844749141684815193550856318504557388112506658981575374424589487940010428116794992091073929018511949699394973335920717695582161177180369469636101964216998882287924776473760108497599841550476220106341303005409756015220939953086331776059552009796692483450254928644856073862645849834825845793586692823717716846962421167728949642492159144668294822050847597932777095514001201815357812087122368983180953725196762139094920596490617616064926922167779791054878478149047091275537002315766776474390295836839774608355549183559675032743991586593069051323857128830842280116426677565316145983592514500745985492209518823953723399499174232917606418869158460386024915795003521962565618847937634330074397590557983392881919478074079892968200757475047424416877833078581460580380068685312281002389377359273326568164707204952635203831887593685638485074991537726254738608080979757485610589406540516992422497478225360719035122193683298403779962346621032733247676355992358067307956059780078185305051937807900414705049157795683512860593106153009515136507468062228239162148583391371157072734961950779743131997027356488159656112688640537824019239984014579301412377481548877753184458391846445526657277996585822527779246408720801311522748000886500359868188354268489002460955564359127191243183106660177737865552719783537921249596495283929428833158354477019321205401409512232998640553187158382038751353554565195081330043136472015264087519291694362437729504535081874695351955938508352299694775544082491883868245677805204951061246222251194033993893097254258936733880078617477389600472442087718774552521175966020486323849466891979510068951359543447368350299347343906081846931414448435384233175203616329122664097055928544202750131900133314888656876572588110513500997703345076462819910417018664540501113089893688467969878558835442279035443471332809052001712251512093865040469483359875970349405170607460849765152252794565668424949701743080447330316070798395766448772304798911286604761842512854726296054131416176585011781912803398586762644245424897421759816937920486660876656336802026739692250436285196235644789804408054458213941125577224081598790381958238003471232224860506072805085464382994449781288653756422679720032111990945355479458478562837607759233184437980216648179778104654969854451821198288232485482205263334922774983376255175878579365890756715819762681799084595609095963257640905418615959682076899721106518077283363270592189389819642890818841826709213309452873167337704209238743489434910817564334994439630318299685447498735750783718879296320807284449722643087290491512130801483158209652644701473711602871915457270285131388016814578506953147624895583155827501303051066826512765269925898999446210229122851804787377723000221726540654375028270575952552957518184946665461915140736946647686234931300149668840773248955629534705959137936202611302137954805326045069511900435231599813143923477098779549186783511664215627170191812014563183155729286267370021051247789942113017385147403079088384479735959388134601022171055926735645515429076000384729963374748998672539603836115998068627195889359384361445676626527208797166522694690281954614652360681892226180064843111160903295034276249833701179054614904262258411076013527854340057595722142265736157704649941564177857946462043184958207742668961349670920195365416429073234091231051584622949032889331489399538148981069687135007000108946039844800288779288304416188080754018640009119656884383708499118485551799478405057329809621876592973750638108787934244974875907123129438868929487004698480623573751122386609733550866566610410066499788941184867274431830056824508735307305779839339203621718731131430772064441735708860192457261397458451975479023893133401947916806777955647079629595446029106025469979189038106286025041130611648656499203552166447866319439793903089061459299886636282996980503458360319218809393115595711754288379116760781032617188851170864421772083051843393758207658577253586644561404084361067438855998706916349441984743142605548991485554543932291972621499151272448711478331323069698234554382988013974855960739098047782498028673774703441788435329700763764274787283298486020660126498015811118664155339757660220006168158220708813807857907513822568302610867464280630562133596936377662817911777726061756660139607024984797218587371358977673434812881841356192989466749410821585761119991787353525742993018867460002653282081665769037511714408275201179837008403089560841476506139859064039063018543644727807801789432535015469509369583340538640671100092392982100527532554964770779188761500122946221819647629529530422833942830062631849826399213045280720002264615517622533057583485299277799849448446873178759561030346120606634042132871095708434169081539753388287692577634702209215344810578836929583733888314339214696834796540621831740793757837392408636677799908055576654083439785480956097626007995075407393234337776916810425544390164587466338515753958402816455451262990401267534737208341524990523362348799156692707350843136399168312351883031037849161332021508449332712968307817632834833266225244928538497679704995897699813744649083441296286768456894853031919767220957490851466307071881891522518950626224764207628935191679005342619527488394737723131487939099474214480129647818425703892078838851156792005482543233122064729469286572293844583925275075694216135884607913799606713640636863114455732826297452511902060915091762911039905046733048739631865847897955043827634432326936081702799376760837331472413094513588586830033760063635785609193483934153369405660820037452438307165840318049698373196292030771679942306459765595610023882077718238550406571361980963993008020311791877439635901591320961596441800364987107624010468986721368239385865333709277405263187982690928845336718926609018906351237593475128500157484020740743051750673842339957459825693053716650116151996239861990027189468790015870188499492442099931421179341258297492779893019160193424080301517300727448260241612805013886126088228864632689780696847560354894946985975413906540713507848184116051575373022871788719141715572199934417349502414395793874441688219925706087078908280206201596264950217255500927167485317970171920804537893121626489901641975954977222073629472745100075306427369054659989885150318198408568232917363583761158362787429368948641519675814647239505182906357180489185556851700889252424414524043327293184040791095858874426687641353214883873852325339178055542258588311987448099769781137365118972315806025611205629823149116497785814624141776563901167939936788662870431201736997036548722111447456329517949978893816645642182862189310834925036433200485397552472322059020449134080543924865695809880356111182260211516123621485158623438511156950931168114448785708720485959632113502178290065637664490274050693949611853162658643154621314305883613383322212485050339945962946237694960651398708038253420778540174255092891102420297028972825279002816113749861689059374402014731684936433143758087620309624319921531447841366640200886533914019238764798693170004564494276456225104444084017522045016749737875612094924180817760843658530609289266325418979573860030521444449885216361513030742098821598295810732490737788059002629866972997568099616932744229679686951727923351446179426761186473243727652787427771137997387621921983960367592888984870140174256298948012462801376732230896794921424349999210292183600197893397739795746905471597297236648890865835226820673443080864255201289927835800709674023784800789941965043429258576556809102810276469115893632055938018648289396344980070615528880051564553014390391461506174481675556296259106953782846174502791770074976152789680433220886931483404951839374741381022726880793484644162259271275844097541866866329449201904668258062194634082073280995152998052356702883787522579136618425670370360434431110652982645518871856402333799984430129228888743802115017826178934704903013514063741312433253291454131800494710493636747940229260174902296793375554697010291162180682912157797194935108107219882037927915440570431449390261467197283547050642400610910707871149427239705063881296542417825239572518134498618506889660603961205758504173530425437211776397300357888466134639394108633206712653796306743205104743670731765309752595463311711310283152949004903525565760716377736131383795442842488817550524274997662868790930909364986749189442280400213829069438397124059789155271929279609134186515795890734747631382065671005571164183440358615404377457824017996097135244820237803201730062680404061265809451219479352508818359366131758262862401807484359733630704073979643545467996430420795330972290984209090947925599027262991421428687466916846018350216729286962013685284673858948474827264268352429189545648514640054516848796885735336776719070201472232358481235694449042610017100820519580853840464388612037866366770575674194943108865065508124249884138497190499868921266630178196260557545281663394296448373500724510843166906732343615243779523711236320679110816035380992828332146125772772787132314389392739377007815997299498510393168352838734104081740959712180538136529498810404754876898585005424568398752037251053157765021183115929428277135468281687018567920849112038126446829416996512460380545068349658399964408886404727671216248198957070725984947247885553670379930091141242826600918402265115412473048653846971506274824406868078868787955720038371050613860896722158491904642913229906202499729975499292365510887354715208930108001791229599268165854353860113967834261999302060311794808320578247939949959535588454455432772299150032357000067206982214941590410358723230088523575519221596448343126470539092900823434263885368514928800959026264116645656801243933219923886561821117050834012081677406545553262807538527891977802081633279308286531877083073715501149655836817691365767653967556832800879381899026367624194832945030903435173655732620504755023740775407186254349735112492839929289092885777165887302085125040563261863306712936863489211396709886135596896259411752209610792487118911438155347003119403629692580240542997297139033226959680850576714453607316127147949260140336560627769069357136309616759813646666091291106825505256056735278718438374978781358073012898874896683709999035772632677671745213390994280904292907686492372726367978427752832905520636697411507719904001862476574706021212812170289650917985352874074562946998276373217095701654343365216841606351937376357481632708977504103420204794230463449049154594934551645507015695224913488888136916803881366574873090688402933449044535709106911253133314165046868337191334389717255032894676319208156907718122983224779790729539111064582599790630939160618983933239262523982917634139056919683653423208213926914420457473252509025098324347023499310862377694723721277159677380851448848585817373498075940339149064805362923480235502781481826535344225644181813446774089514755537806637231558008452041776220107125538206876396191269191929517238459432003069143170765518567492805448669142287602041284332627282586812683405216080557612588417198155711188570714287140959832401524073732290158801866791489932221886801609347574075279381350572961382687331607526618287747763039323913395520026516086071268824521581520241845769065056129036939950066036608210162112027214331123859904289822878657406506928493523970501779982934154417736811964674837357319513320883885022864797242821247141068267923525265518299395798908160335702230195483483786597582527489768492436967294205177215092701449212353416462035230930576169664064867921265188416468242521798563597513147298262672638607965479776356792440544429622075082422029083839970165896944271580572536062842717467279876487541767718025479235630669759156251694305974042318550956146176395127670596696588648058999725579998429691444062407520852181947511523151972676618798385544791710328521087457213413423581944396231245966901312459922974196510993275334700225033046184810358633993708908126078800373038231793917686119720180685820345524903588446487439720384595142237503540027173642774021379802826481516521856454164057191182848079901892835771358628284595943974447062346653940059780714617427506135544453925938775467339622811441269802733262019614274766445696546723942019362264035907770728064794982459218402956423912193432606979151121597812096972197108559086718052576553517302688305189405992186463639783169122806124029645753553567996617173779134078458215354594272146409940702571300287809751238070672069181057364343441856167140505362375272533582847065560580196375729160197628087767030797282094708201647770572221515166328302412689074749531260730050044550823539358131108201313143006607618341928855811368236556470976439016332080819280339814480623903139163683973498536361842861132236673434945053715865298424996323933618856787533143221878106031471933418366370263562238406355939915049739967269369822529964849068298030395559924716474374604016564251154884192743636637393076725633663552516993989385415686903704370471609129784270811231871671051727642218089999494302048107919421716588295635426515060847908358309680369123664033707411835150673568402669453311048497024873923278846428583364355777211993899928004616677962404906309444130603730484207065898461822463348842586190883170995519909184226543622789320147301536836762425984666463441336204597062927326248750257814302822908827635656966911045162747702201702440691986732330860464671008614386053713143131827526927118631473375436468712082711440221302837410441659103592151309743906617057028727326609356958082049307648041697434660175779041993552359685124940219990755713802851753187640603645924377846071419103897072410271592230868758916881661642930864653172109099544150700717603926799612438386511587875011977193757013180591707963645654366563446334805066522157072720352373060915462274686920881925079607588566622029354163500547095563155429216831831299360209053447718689585835264337237015501702436580019298641160847105982947737529023722077481876538467418764066995445070946152394471252573186610633669596878655094395831750290997374306794603037910699005857633125927323629078287732247968299170653455405641409100843631814812187906060312081915736364065030120558722663134109610696653152816076424169677574711548805192843354533018673082649564748162803296466267665004408001905466620624446604929514846913880834478624516792149031193562976725771252065621220038975726357955115442107452131311141337187212880114702320455506631895549223656699527096513967075106075416253991434587952604701361963762049392807601288475770273011954960018775958847744105946839128917365040806241235555662655816742601956911865609816401464874121090150451314371834477154533296091710900649104747036473097387680322307348697347272352670159018974987697132834984845060613188166789227466556696372248416689357268406264318526151951523931933428434080479623124401726057380628845148571309287061100531486996964543117775834877860844150621175256303601204779236606393411667520655965628054779369818450565173341199689196515991599976140380678554588664906390114819563589359518278679662594131392122817822741156540226572170290234699478020345079363907805789621598417211517190894654697509341150489278160187777896489072167829881924344758454550066262478449609926153267266773650267432791699654211059025596070888888874599453478224808929770354729464334545448281837997732146480096983618748060129270241252325814171403383288057602715452611102089408371244816836055119335503322408528620022318862893277968870763118456104838425825244323200680055223142608935650960366630369628323103691415398655190606071798108833445003041055201705247836631937255892278439120903891076822141740736738706845632532344515715935854781224601715721503040174929615514758705051899773944716936543936929409221738788364166679845312124727810964435582147001455890704513164942404343442430158686864516153152383465639388975499219936888268294471710162133206824275968121677892438126449810899087691858662328144879546617261824425481844676770213238364168815846186849323465500705607872760067265111107071601722652940939948725736806169414143847011214449294787125575308069909616537210001221424500648148610003541772825438147470330898261797014022227003665139501439588744478686821439934337149261585890653631784423679779911803588180597208610770509873365796030398603020361888376894232717545528495784410535780006359054553658555184444009542953122064015380022960055179448359181629376362568023713202088130802424724494603180838575055791011982005582245186907965151708948316970809246907994659269218259409677847558847465824619544131712770797737215614439903705060726231152299375978967953900409944058598484401615680982692048539738605515084602241143210485917001738162444009905610930454027160235606589956007772591767524121095995834760961326837430312640760568558764601450086577849308375480741348455166220406869802854998120152227845370047694468900238233162613932215764283161745434982998856330932784675793735641200868699375303929163697889263457305183536748833050092780387891896726408548209437820637446057826670551577139872889939775373555580223629428028885521730032597548777919850120056291381882192542916160420460931676580261190117316606438454148075734812044118533379707559440473576435196764545327838773460994720069074360031577001747339405135714581565745254872219734386807804623946459408373497513713210073068922032496555539748285120290782588956683464856884708935183205877386902491331717570150361548894171834788730213928684876632928000067758713965198985261611859372336480958824518151410410361759347734944229866343914123332749343685481943741264948049351483256932244855258643821471947196990400262961426079355202529390535072756266630924955738857562120097658419598812675612979976683661072038122020306160346173505268446682029028880031676867710399803927632490008738685427506763828316282862419467582045605052678666461347731775927502737145566992431606796268040217495579072676446743323101177840418112573003534502452483087063730605216620903092740747290770746038868793824432114448569078034046237453366055521947011723200050804299105446272263392623537259477232982595085216306779521705018525815569519367540565907039956124960999488172385205256802645039109136273349435734276421283095730330509152281087709433346473819372515645231227146218019460573539082707929842165591211541852198684509791440408786134129815453091671469179118960833876234036289174729196964952536531416958007152987926081128962147068196729032697910690317157991775859754199957888425872368664481150476873535501548765444916164501670318923257135845536099548354434945168227632844412179404446782250822137066278334443604713407987829043107865432815746701236658087585204245442398140969290378422610640209925018828244963861826452425928751640471668618496674142023136432899745538399578371455885826052019398987686815605994488264094393481732562266902051750982173718417619982491132354373748972355427851276595153803731789259540324450161727739390723707347426491392002772522345928175776413278790059422278516843894944888578040009992554863458427976354144711130757236159962818422935126037303077460651380486773098982345534811593368926327612845508107916744645393634039735953070467824794655923135491940695398291821063896226635469680662081905773809048116180452167363488340834387652558224767517924380963857381966635945986898346447760078278399276025159788649088102696719845604644028105939378113098676878478896121395529251252022000271655898458348562918590934548156061548860114631829567243007869049955507170519969288231867869061266905284247165529630473701996214782496228340898022925825191984769881540749544976089617791044374694844774246972284810310163292265147257850972957264647140314965809911987955186528358847531046926316499045403338859484246216888230637560868084663072669595719621372823588414409418124033914484903270889397341738436417613148773421713905230187869227272861894195108724335351350260546723613829386721736552844336815678405013773460380423834249365085678792337129529154249113595024323493636231791991666845279359299306225419901229047730422335936686343648249451149813778124951392470667759025659841430100801484863229884436015107130485231573185351455216783630212059481592655645806342808081234762672462022705999093740519619817128740960548463734708194050915293800376769495990051241065182204993135975729602585914462133644664319408396041767767122288863090433354391878774467507873044438151189354189025775655426432306507164562017938614267646144877091608888127201023278507390125460332432105869220664933816286289601786834896045556426987378014786147050051836059376950851537523301363929373038865196459113017119883864398936542052009536031114693097916629299597786913023844753200731326503599739014731637723498092959676101106729209958850411383457652608724242793750888265713665338655795643718708070219782209493540507016363379006248222098657767582643326683378104809105811750596527162787662818459925500449167443847825904714366959153423423240765260776149657394192117213288487939045444061819146139738151066532393312809994381441288401024083968640590111624065667593125972598850768927846266090014146912663904260103678558551203060128156673953069881977633767576520583034503323262839387558725860591083835064090615074963569594798680055462653107944511133451854593088041014119093038823216514198109126042151093251873650561594316304405351699535263614319970032819840900324430183217283037597648677042951344900802713361202479580713455168891324068858730557996924848321870143048170516641716337047427482489326891306346518748833243535487553369488552489645256393911450058711520408905448103782949732073672456468501498934771121843775401511002719811845869246834183543103747220230577012161171041102363242240191368774549623875427633635154055390532407878097372705973358622303802987431784861156593603864100118309293069313888909479416103745418967107137381214325537746460474179286555341170233553116023804785071505190364951381559944265360713128141072805402186726675569883036048438610816037218369345768460313330802888570847015844287081207996201750803832879931064126720618727646006336194581833238292955335947789099054045054754965899767211354905798624156549769353959138661366081380261568617726221858945873361872126558395894812207340635007501649513762178195777548214346816481326991601237522698252529629012888246348743908493948307840105510815034754056073289924363841704919819680899032642433788364748301922516360196137974749236182701203847616372973461251237804700850099687405463909066314155192091870909085359272980802320809554142493920954918059859405339042339467262118778981796121158077270509918659765613458846828788138145149220770971483796514099007904963022019354780437351630995739705303437763917537054860849777328897124231663663465132301120372886625430624580520537657055730315291158399290946360925932815096820589915537260060588295749775279261705942802164916744984576025005604373046744104752596773385826659109446645160159019018722898550143671830505987542743772913406083233530046395299567956216491322114358805512884736511190477135137144542681390126779207396504387391840914613180210986597456742780148592909661535263874347440998563542627408099312816909782262743172753240263550016568204628499858535572794845945697201475887008866875518640672851856406278297063192688613529958977188817567666555341615149493436734728181038947916856338981257355482454610549563787128912358368617295399352194259399887193448905065249220801979010753860324144961880637189833099094171942766230685800476947803533823067597618271706444775355386727002378840584575107979561160582544351585130927638736964114981421435401967304888828091289270899285694311089706400871225930685773051669709201209645140331419850967691140694235867605814964649894966384242230980724683645128513478585807490302378081240856975325425295563966806056784896168074063090131456791955949682633898315588324563858299146028587485896720254298691066956141090038024956979073786165741569917882311814270409588349232597227495664559562344289122103159376962664409724152555000935811083511444416454806054539919575315992752643756107205830475303395736334976067664452617986263272111695187423990802770489003655337817117901661566992783608833780360695454788551217886558134021750678194379063888813198459806040360203269325529817887975883278916081149959694167770857177439642523142252517633200043480304899596605016416586390957570093632934097550579471010800750424539471454267413632022022075889499547600680954378271913960759074052548305689866439465040539775028017739976459281238186634499991456262693651905720234896460114568376527814193630193770387589274031347835946454643364416258052649593948054875144258730343327910145467685498917043833200978497010335347805927636752298747579564775266859038188278223307673206753084277222917801821408312771690552685109704682642757313843765804317247859329782771352395848143338121901301106431732663264045456195017968483021301181095842540336845805430425429147040330953641772428873538624294513590853763484653834938330701040464542069543435923389243637092772118314986885557060662633178315845186298854634210663747195649188901155885084708676794056946092701378673732732876134700514539523985480588541813792250377641225757234217866571555407743473518262705993841528862233837162930189283364088513007703961500933995647816261005167893005414620812712424738846214836461567389511378048261261451301995917996776939705647115006796608162697604627581540535519726394558312346594557792516899376437896144910269105369493910714094063252264957346677309942842424740600282124997012117970552618466495770712756135400842692920954525257092159804636339899670728888813310941353093634194286009556767771818777148863589245932375284790065643133765414898398181718261415112896720830802438532676053218726663374080885082398604888425267893034944966708622973974059774830711622116679387013012018967630949391712853557148579001159768199148641810769089353623430723715864733558907306017306947123333549508689317316337395429464288579770783779808569252570740295773305566404481233619838472732315464172156960511190665677329699456696576782036579174761885112640318316523181591689642395416107536664833828192334110926072206013023838596116185211959927042341122033731681752253327646966671725880572712311052512890300017830473067796241511286497793494786898518382264810240253534900673298715665102552135386586037877187557497938634147888878433798360036051768796417216459492602417207552602192129699531536631169836299237670339579986989926306669820419899871235930028073541623975863818917016166125684051063868347132163507031748126676987220564499232701539541240456670318807933248983347607177980199386457861002028263667229450368479786682563715533792982994856352086787400890572736668874186934747899759466897845767049301531597644981496294870498494594900383269516562219692888183635312879076891810817465442310359272607922222714731307615170833577425936793093310577840453221757214190896413969409222779519783966293833527438223855871933733735302856494297947121018929139830086446080144934058751628530208270666121690766357185380460176275016530574254961060567538648716467896784979500639600718724383303830510988666795156325896142391134192639432226147139225422702542474295527262801706607101883982340451581849076459414831362161260583017238415782090930062697154602735902888212920627247231916127876326933502630197389783014384265177660731526153617686097886024199098469166172042036557631301997262988575877898490821467706679276879536725574974521219769249529155598460181967946291289237479783677968333351065685747858565751168754853316447414491329142643626782502968070967121938857166153912302603779990808188619008450662371785917686543492303713500634446684364513271374570672836504868785763823850910189674973435693680795027964895159040397145081933626369615716247286459564703050076418349361429380364521778465655014960277201015500875688849365766058291977700285323263371746782307504172372424583673081635112141600199923267116301672985774228908512625957323465425453225839734557904400075955011548023466275144035689432339399168960212063740119263815131890283976752477092264470017930860761870299640607144710598516514268417485265294561193753575970592008655632432955692245957757827777543872497917292072077598186653202715468619880928990368391309323122848275841800164849886458058118529878065611900994023970637373319472982731133045913447288229440450478515857350306442371790053791871926935618629094949433590312991308378922431177063939246165596249812428594206058818883613613670237994129528144780774783270113798326327665181401227925542827588101310659950509966971632067050713781542289076992199388177021882714841721675012900536435814694842231787721216271118931453808739743566461113996674673345353527636781547429250169139774987726158545203100606328540075657461490264217517230790178498160844288743767934214392943940990979999787015522998375121169058954369617906837967106999953572642184192583813759009929951477995610382309791898102554227626957263498226083993863053780245843280763436538599057312846216912948813174148580877946604475565010369527054710480736134414358728682380022524627453216346250484787831227032013699760292286362495737775566529423022277435778675474936978953851477082406870989426744886886471303643801083129517017512381887462407595075144746074185471149048659584506860263538011489959887655996841385154102178741235348466857483810592523258309610394775780411664395670306865926701126660400332994559446447120593956097849875886820107122773293658004126506663563214505675124040782856808207306315667514444185202793442557009765436344257723070001627652027012017913670274757412245591701763109013564193852755460338155160944277132568137130219622771121842159430411025235632018027830697839999943320361463726522750552044275277547559850607317182523707614134627671758779506935562875046099821316144758451703982693631941555738156808463953029035192277299147282740092541492559361016333161651358152203028770652893775923570084803702800843127713392656889555506527429521350294878981930102408017381914444952602045258852334301412233324200362536588452584752702333911419036825855343764853643948611970549377161569627595070255550083136761864380162173444096927748052490934451076483826863845624593793582674860620061616941794422574388651087396112982372658601919929233325934779622727247436012178705162659425217706990146437255456194856567374535373609834227272540604987805893868180116128767709286708070024049310160749411305414156985718170719642996065934284800411958105404417027695268825505654408218606787228973464411915358679390035275926099935241218884511422910439479612196260629577360760488357318242789833831217660030940590641873386878538393602445090909564818755552234167020754346489183769030780536977619824326687946112395265828051516301357390805203947780817675655793235288914774902765888822011796511875836423275287759536827879815585744228594683097330064766455154013263920207139140528577630964487924881731286398680539423735032660290747491031631005725677319559513520104158365000643647775184150838814184667870722717791942628334171021693966854208849818065069096659937863490169536750194411089249997823650294783840718160554510998497026142683064382510305217373708727876737412798871415966320407252486618389192642342952103510816060049118180874094862234877821972391465976832309503460818780539106944641881594841990571842595184736230097522575126574915325980970736886477936150587025453822962749766816585945907420420289259992773190446287667720470585287208123874270214482563461656798292094932028053089282140335906680519866327227768992665289777399254326533393046606297145980754423159450635222765441235889887588274897123621106092581526848274384059022664409556198705911348796651266156907106613197422482632399956364458006992971401771373457187021443590690800078179608576212487064232587660075214510776997619003303728909755312446568964498853985522932882029206318599419738575781165578800207232369634790439087728999037117257039582353167721499173363353771846753613571253702733569368940044240222478413866645097393379309407188400153790784704555387546274260755381460448084201593618132722584040998951821436594593644910441012522647778863480908333947672614715880818432640530036744021195283132287705790391117905875702386249940297513249590424114055986927383954549932315792918568494415954994505756294771724743290695213930095366530559715172306301253941986089270967692860196120704588015310197059791586487712107444647562292866960700202059350360381050307025252364423119314994717281957123357489190664746468637964185606533958480910800447062263661043442865250872463315441119810745285953233507462006185389648153906216977101007340350485194939517957063472054070764649929884365469237619940867692990260609626588654609835395463468053446789726090357877611883581992874081462400513835849645627191467098427626640003832865996163532107573802933671215942172482215209792387579848583848617276880019223288573130517357043084635348155112653047902163958970970808915630986480251038299014038655890054287511498560428144357009015851531979764637084600128992724050002697811251223330027767392656235883385676427474047004637556464130734171504972674691331238998349777267700042591632808015508291727427672609110574750720997323459243191690763070707267935799742787358082043558885672257728689715268296606994135132115346952764148221500827314439635207802155760689817943679617743973901621014037037359787240106324540941549067297028432750307461062443223753313284917316013587933131932936594793392760519089951961083070019467008729912273027656675751198425315731219001728181245995655955928743716908992425833491504058313877080650750976432884885906773181436634171878147502642760193341896083581570963956683033740342786347384532632177406426232273012949392358500383280139606986658310270583018655743611085837081506318873140937495002599718186488006540325989860242014292781203529389062469270490638548082600351499870326231954280519988096293349341612735460983330161110048571029162575652595011921421613265597787281476825370618168549531339297894828509618424252767081790032446720063136271945063285752871079183449320674242103386261275842607958618696383664356670960910352667784156135606510203417101098079312184513783800888758549468451745766309928089492190649114718336965485216279501156546204735024483945801626321148129052062005207822818814493748957756276748038441310831450457542657662037065498372612640544752997576742813526115162159148512861685475965600163113775845021871576971554887564046302876427997201891546126579288498057387029527198288732489158687769951943909807562474605758586052029039887726287366266576753912840897591013573818228181116539967649078846282400573167349734242176561523139420194113229434031180011942386099855426409048703170070298204496368560336671761532148053956459016856616884485880159763099745301577803481312992496260376966876829577866043738028917944784506089426409008612134859036557427823718979045492879936020063384834850103432450304179620057252536469002948142917749171741283603867212941392564338410964258802817624621224994767777344367921148259545453698703528732425589236999499183718044728254073636736442731407952624420503691051584233717334821535447986642384299679494606149274763138576048133488214237933084076037568812015047064009429272059900988879475282750715812442352003874459048507044918039032381346043077000663797602323270764065319811602488500620571658453085664282859509239724039533415407850450420840788883481264152295988187966992984772921265531293883504775760040568385837779632128236520303198538653276580718644131717643033520781395194397243138114774967550998399760380942814128663486107438189476987660948505472006013736298404411246930948632012729384938509246697897937386374405744304889940160308396101393841749520121654759094843781034049447348486490864409649207098739115281717427139474185835426716727718179459662521560765024435854244350896593862698768641391663088154249446709983526165505793954963235638743678312254847248151949460936669774768224233817464573193271448684072249550667113165240403026043737797244832467230137786988719035720656882483080061982807975402183447415920498299354337613371934375975647265248076715297513409455701944209426466945300465827390362940177678006873831291696933410187960502438107145548695595874782558151723080182249338770557272216499601746490589200816024326628116065933594059033041658991500488100197391059897185643172070556602189216286193471678978613673947586883842675546647015467404349670627884353081910821972622426185611398947955289138791517127907232873000911212346830513034674419298604299594948458462001429059030457193728165058961068933852338813741329744605094475841491104687235583154605555041071963543656920324235124055827615935691517676381917407502000539166417473662556779332194336031618499970649227271167122241632546136952555474226954648071133291266313024052294076652108325616295295118875548151229220579822314297089035306537186259791494418204318692935411610758139016847941247579238234621065109636808844604173314602723755007115987251953198549215332732846994089172972116814301709731342480478687003830515717007572441502575303807760867858611817150129741448312908830754143153081939332873104766307941740357613731191099636153223325404478301521365768636636596157197264830175705463057218116915785975810292642423682562844544879180467380966575294187065700055515686988841188754422382078889380884556745805269273935833056863351015024632059145126141518141542906337867790940885104189370131197613575337709625715197234292595285995504637344850841487553174544596825445818168369569287187312986479937212373969257465518754415043914580499374918144444522440751212616749735170392948977573445863527941259978405271848025580261792147986202800106143086581137082359696025709001063197182473513621104488729501494959159238619018960455530993763522707164215001894004417622765251584215357189675116208321258713164499078119592242322895136964313772678530576250978811707346995626900928080964469363215753844548109558847635375833811884593420867045675964712203021512658203991441428141575630093288884662418404587863333380210541889890447306660119172759720629125236149486666545586975452301354255237035617706617083772792717021042826874806682771543210991767626960974780673386569013759207397565861258077915912316292115710952961650253228735692857091290039269980910590493778823861605193710206207241671876567955801999662087746107960382495602452517363618619537484509618510655524187299435861381590123706298854083474904499273377837961192357707051954009047049143355765301329671661717528909182177291268070741504712706109132421262931148744954073522809356098673557924760879296507409367650189202032273807046231561874517731078559065129071870141727826059314799139371365636167756060565956702396653796573332323250234842939309673968900160685646640251944507703958789281447723376710231284701249535672279166646251193418333175077940247203574190273244009367516103907691445546887885856730959661682268208979846794578681581702359821753614352143755534548594511087742550864364714612035890213108341867544670223763127209724906805701862088365429166520797618882476221747673354267241574610962024359559195161361305904009103157105534267755246557232741012398100612791762014872291713385675901836174387663308325080247248753766298443555919772765043827994178104509867920603708610086073087454300397247842953998102323528557241895038304504498944120021793126641551938430655929238370896089647208550611232041680289609416503605597000609686631308982362237312935368497936344736476466912848270302744413188888226704585375734008435410130861935676127755191612802916038336078236974548267261735575651884589552983187355321735988344640293217259624635760386930118369608719990567141390318987461073405573297522930240194261084998449924355701085956022187710455276690955511194733247958243998965447701002307682202384748738613614385579271184594351943835160399707936558971386589322446659350195731160506581065817934177215533993234900685999041255021839932643349933354287139946200116649409964334504326741665573489357987302098762661681382954827043084888164998883756360347817298343858921565507456923523136600148317076849450429895225532643578286754554465613209172488143992863469806669040196018047643782715096812248306758329263090709241407023406922246739609772456715349770816756061014740758158027772498226213238345235191791710791515069475462117386961091061484956964333810597971939960655915516021050719904271164700918213665967324296590038746256956703034531417647774820099071357501411735342106700110984207632352849511603513051606898080688045417963244741137373807783577955292179707445261603287602823667468229468712931556251766930791679829336918687499716465936759530198980549564755095331829806647985589198013715740503220525397406116262073112399663283466779678797806292063445451819873195141409826238077084831556185214023812536157486598188620411320032969304765770252776778121690208038106334349237529215796895081823325551832815750096432160455781089122051875201610966170207713031666284225398889324754110285474424881756101909833056924283758562783059847009452725580090842678294127060615513367544996303211153142660345345206093260335774246922174546113269622143272538833440886410796901735534891016284463148563854696114014907903388982419353455714587699704389642189390491448129144341713659080932840663116980781746880041548194646007409828621269424142163571465209297346112882248063920026176460788620202869045174332399118914554168972647016057940188834887747566979258515948317035209362069890507199403973571834192532731293023108524522202328868184841598363907594732496522688914400404369412136523230613192505275956704496981951188847478003648322647436678173738016609954472609288860643516512982809912236121916305075941651200098982913178860035179150683967621620905991074404457903325831002251266113368559237432164021534542105840198472911905992896127846104987131379282306575712947703424012441436865726461394586424472237828048770639624964362838490545158057117783888529423509586393091082067123706586005838203469055407908709589464828022709548954960814951304557878794218323626893023478055784759775558938615685462567198111440101203074282482074426719712125041800089894268889490433700106903450073368955764935100948011046768482917578276476891291446124095274399174431721944744089578015715530755595319843712875447749078202046462535454791689674522691611003466769228171572903102077105553489984801005603712550780077961861548219894499790531101799890068554275184200173243415999521926090227151825221105070714957470241326110855752751079010732283379642389579801417734955179082913643437934424219320497347653682333454674397414711753860377467252478272866407185848521331196958001600385130083708542308760240716462159888639856428214940673263211628406416115956161237418745140049456625471078497468239586976869322700465918767358314602303828128053056300074617984252932623949841313836337684828200508926429574955356372791871752199441728969063993029009447553028955086465005214558595975011714296332768083800234034742057273186481845867880786781930992447199567410575951193772596137884883984579858745988170604854220159583466847451281605519637683231261233327689121655193792435924909568962250874304037823723404635200984623963507071314090311826214248621625749396007337173886616708721647221961878863324675807736689533113148528458902881636828863963076906502682928586817519926752172510645408875316541320639387592763854388733093490269898886524015652482869892862808136818849379707904867432576351302326595038677172208900293453244863710710355446128075341657295120010007521086350244978542738690776834427185648374533938522225812956292018317240458050415556390279982671414612380144300317062638938188748647042669328314591134968604939743758412946098647962908166903724798322237887976295656448024201730799890572610131074561974776531075242521306937887475384753997476387272744450637453925994314751708561052216774780152222507853809332211312075726416252638007786855645233017771033568040589522351994890891664104527105772695799717498180557220864854435980775779921206600673715961002096694968392199600241102115842110325536418074778342343262730273429647646296452358049690426151858717230420115862781722436385140486980251506523469764990066245790377306896870477516501703233290876439177791738066127476567435705177840968251048184646337469020385742072325046472662556034088137579531393376039908237846457446467859310091472244028716846939691657400279792898724072334846103195743910554453101227465848392205504566107926939289982231278702134278837339120198770649696898937724656771090213967682141598300773206606800742925496610733477610015440521618338016113451050683856268879267136424194064159529346123804509884878703335479226761946631582783334801100774363059058646164424099135072167329190838840191870223256906509460651185800401000342126152815907312248890029684516402367797189839973894478431051782733381119510801867493621809546959936132791944722311920696456577970515681354715545649712412708018186888958843508803016181381983744924469359368614502259789925192911154380446372097475790843852764076695358037310202827505104606613426533199335892624792508923206301925952090974608734349499903047923215562107035893896538536266760066104279173536949937539102281725126200131184732408972844485613912074513773824219283365292050236831868083447491473479986601965984851620665255660192332607755711463559053809048636660891121115483394087424178617692374902204282060050027175766453231752933707218257647370776065451574121271479315725443578567323107747686863608667159926755186340873955751923425824026117730607938511288981558686823497358119528159039766305682474066594893671738298515389412001556263439900045537247460350007127890111112670267085752426067401739632798740945127412442805403418290486744004053268805739852818862209748303704278841457007313376268555448067243662447139269738123061969103384111281752354879388967579432627894255779464640134766325495766302831395017390727676772317079167253544519413764067015187131089383005149783939904624635766908547736300991339577851177350454644331339562453604015072260850254593163559909924969491145123196726462412715831267770067910617919628385840073577943168538049984726697465086574858411183804873687308353835180951684868434503289163083896964345222150604167803501022980773141228625633171527561628697731587543876953347201492885106620743664845422531178795279324535141198137428879658676500359184726822078323868239546726896817279149732440780866468902645923797790846618608751461721523252271002425402437999987083535398904282452571025861905463344766902933736122497763173695325651862768672440535967736493510413154650793632024284670640107399455091004588789621002405960446716756156269774583776700061506436758891705842510130007549756602648780930473493814922797811004205197094823613389733084534309146872162659745554710138180769262872746011088915770654597091274113638048444067945164705668024991457773637656847206445435077137869077765931687542492921232203475095742239939565849564109345665777498700487897318987908817937477427163749626933881899450371127036773559252369043863446422639572954207749950645539581432548492962979906793815772886248432478045354638135686290260152586784975284229119098374617512885438157632209240830028875482491729032839830840793535509639388578117587352368346281712043533247278965029700559314866209471964998070964048799771705627101354747041311604277285008847601188211960306117189820280757430912822087109730180454355157702657024298957773254341872175334248236096435208333214831577002916232792721715484244734478163785302873464977823623159075138554317380542064042490846287281698840801047279783444965693603816447874568191812897387852098013545880102803476157438730203912158221975614348953910645885556369605744141566238653947761486963886169640332260850825808584088188721739208914229728473303905996582703701269991745996316574103339739523584692748943309529623063815391654774507060860081606173207410914394926345043687197928959541878299395847868358966780848838973022832337341020378931390425307056638213954215828808944644045660856622776296027221568633274263368646402076023574757465353606855033494296052753356036310383306128308234879232073792086298281923375330990816607999539605464538140229155840306738812960111513828800531944217946197086163164517298931238767075008539818079951931595637220776043876803795756697976691359492939736314686038459128548689335027211567334722982707920640203203211943417658591804597550804254170685071075922333503535514931199807002864725687234991533517403782392460882768266973663460329127350449108658901238697514486664903551839230751957101636706993639096908978872266120084284389629161619485450437274691819762072607950199844338714033135557579108745528109398277714329269268211632752429361458446921929638892783869323139582299782584303662161686002567319539980210660230535814223261050526941558189255241499707680706902090971322732987538136824311646747583820422562612793951846397662509597696534080238257240868089943237459078139848917969889376906085852416591569486554024962229069779089167671926352950467583801114120565318940057067904870585541611101561991685151318340619068472365334922276411210913431887247683939555741877072851718164252392558933907188466183648079913999236955791682023736295471490219076993136708636004662035643772323530483022503708355558073588645641289853848025667616887895919108181137213909578609514508362876470726339902839903539653388213355292737449566470486397656907219543049604053340112151377287873670275485365883420478652492781262692019178268507812048860806728317620441791603219047418058389048303932090667803941641080363941770660499745798247508322361209854633316596696597848840939951013948545600295509720916689396595188206679422018828445190174785687475390883254705325130105626295193738992034999131982453173292260295352325168091875795386542214352977624858591822028338943368755223078875768790441937714524629990894955475752713019295232839548646553071775840245903584066943868600000387525981917660867226889811255104033723968489556510757255862211532948972058047816487482852984014510944458668202479984748728239120540533668808292606465366733399590305508254212347958805527421327475329997260901844598962197991687175811761811637331146966900962829226507980739166682288204166266130326531301287319972324836191241599144242905245323937765618274570839896949312353202767706748781469282636256767079095277065302369183827155590967396796482033529314835744201935366603846818015203952370465925739487843148867099750073879591797537411220785932051482097514349982575997716242401664509326199061884645746715788682750845102186784938610010794269306543986613642936117157904466590212334284891712274818790353275822276924754803010849332257296073742610440236619966998882691283306332163387831346956390178626564618550335621294389409004257159274887050518718362306804818593043658101253427755195486695047718107192035551422016550051214203390993821650778909900910960361687383022500021664171290087166732665799310144510692658762983604349701406003733203605454246840052986546549441747111378023308693858765311283713703000149377343865269189163594845824245372095193791015559146763598373444434031898805738510408820194874778266035048012756607040340174423782343139539921570874431961487180443980787862087501031348241730802484369482184741748223051998079880977832087251265808171060524406147638631170896795416464285832192275281661485253025731381231589740845779515918848165694668119710343567865753377289301434389563587456861687946065581485815338807655378456692545573036027160330142936815543377369674767779567503166400726401260875163971634500039268069784295182574213628693374008769825088998280673548707844283042658342480337876035611730599095363136748589852876402118158044834001780024649196442100225250466450751686516802667140387819838959226047262930084750103464157906847075450796494265602359243596498607007401873435017495536375055156175776787032504780027716469496423320963948850888837708881925578074405789514462346277254401930155091446335934686069956426112877122790964638760834205649739299431084550996679396114081688830664467500261685243630762877784824287846198044410838758000700908621771912359148295988910071604307784351267771578343846458466656241495059157606804197026774510654092262753940943427583139758466585993916163290066573987925448898060653203503402982784084018891914862411361175240662771148512440054041110513711094452484574047470371971318609934181218988300623881214942429879915956352338997568417522045035009810035323135366328808754726994493242092018107145343736281060173214770397688457953739999631833902660156108159742685266959468481795702457043760473113956580127268686939487407168621631769296616725095262322893903932807700623588171135254236865383334479414431849116895422315097761698527627635294478638594855830569261098829201339388449722439608299118051758429655508552542740390175032066558168571232589669215753880952099715557861745040483569974231985324818435729861908653600538656253297540358356160513156079998950987832653367892541248716100227134168993926234470686706474422152276103553111521793805424838887561947614564464077192215705197219146665359716549401003831694441279176962337804238739826659761622208266173643329840561639776327337807278282770165563376366983798633272689818372388549606617623179965183413700078786537789484064031439638427081040673821850762599466891226145330752593833522867062899741093908988585550631129212195441403831572135402664998137881447188130666685693185814825575588928593262564042573781026566126446844802349817457948133182754161396771777565228972281965522525981056761473089273726768643708016325745457706104417738423242306343541443194985215587254384941761105177976554157376763451281872229032720408942897588772935937166170680145766465592056575779790455116778923190056106754073283743947435797242431611408211070569639251632514512453545387438797095535568066308343986348879968863962755940286193579396402472988361334499182890662420202051832742805768983298572513307831151247830536207284372584079015268758868515183548452745111859002464970857487434480147726056050352140467202731821715633246493428031670311173359960091264193762801089443115320468939349633233139233408047350964462380430110426116180903710026177952547377564115220048981510089131837623618709317864064663735973742442767419047567920502206487627796065878283924009197647357399769509589394231047381666227348805064807875709499241184426657482419563707901781058455923854626047219460156663873350082947257225977050779236503895369639967417772724581512105490555263756807927095240623572807652429780297084599222867784700318839792132084003480520279589851023119659519677769900813388416593746684488535839380643747307042070946819812642286259734730128935723693833485235709233606898153801465310705952436192309210632165458289442273849691855812679810957764366685667325032202966183721898693730672191487269156049371323052191233072044814323808200659277933257875494090190942232412945347721831002831083040946936466769930094410158568276276003629502439749962056855006457778791018099313854184577908060456771973825012973798286798331448273529360414145365971030158184357985192699806019895625279309255364654126134861813174865687343102944231311293676010274965081406209336694142737701408529376053644246769985790587074320829694515022930776623462238640930728974708783898833056326659548463193798395582493927113520280729549312529004834422153710198797463313884560561179499524077973411885272822710408834164506095085642581139419955970895616141343746220246006489480251901633841703160375021547132216482394096390240899369373429730527459487936494138215176843498409697897525984304241670660394276659647367484068567956603201699960606515176238541275599080503766763706119324354240212445459606893416934377726214985252467925254257980642713745178296154364810558511889648488276234997305468866219088015150798838912766493385433126646187605100157453511364933347928873143848607784959025510995578858225046950483966563741017292396128559102919814051191240328929821139198263317722521328537257486849098087291740258710918984441727441916220017453563247934287572274203182088030761156387331486360246567648394095566395454815511373781261055753604271210558945480822347034621033104045808378893858315168819484272938159890206758258001646329007829955304721928331808611570327721670082375927730784218732189606305206577577566542053867357133633779838716207469181096745334292132819353517454867402247657934191321781610687444710489494495576696050739181393934346120335245370280301945864194085473034554552110513018153762580937223325729142717036252316330646280278983437209871219439641045943312060040552691767802114269110081565199427978316267649291294844539687951236375555286649352262221929500547383164807677462681439050666070022649712880029791097456602815836319686665124910027811058793635198670917867845466868836649436531699550258718065966398620541809090121811935725778042043926577094309514688670968315186209553701149772886479935415062961457630720186700071793875813909063637447036756874004932979985869061745706730878824103280058356023429703176785574998618757534451016549480080370784107216852919658404992190655888634810854257813707667520619919618738566520000471613976579012220926032294367842974223087367301640099137428520385156115943786066836734147350761748585228277508471900158664649697457791882527357581198087274126926128464942452593572975842782258429913165766635233739919205918200631858113883274387849250332321789005725908250285954644368320126523258141757377149807929308497886357631252270690854588710310860951632743872770148346942756371253465967496765441357724804009482428272138601007519762999532876370593744955330921042928487264431532397530791881692731067522150876795803824643969239464547245991692449481805714092504322398940633346847192017103631828157208101964729521506210969414000055423898244446921003495864036829639709772229693579913995623077366507247537524751832744706502909719043641890606740415343755990126820841059477802635493971696740847236819655281627649064576296689996800527075124443268468239125226135026354893918993959376233383420307976795502852287044836456276637347303017484625946108978614419706770643945063714563546926056589052173333030322974774614914715987982583617505379482680600923131097059010464398948479970706803890324212926378104276373082362514249828353447554275881099325950172592776209672611548121095220520073504216645321919480144935002758850852467744968115306922568537758901008533070542531320662554689555979605365788899250707918932194690173915428604128698207180762982202493765688450952785791703389069571935535402872940922246971741621395152226857377084914856147804556846308425286517832901433843833796478348970564724313167476500006668700774106885409671076491519130872607459002254056635563145397512956308941601421711677033947250930324847298267215059429662681936602772729896808683614939624657371240010072915202852816145630845589976264737769398708293564858078204065206129648593861707029083171011114869724017137341346463213187777724582837796123067535341198492652760390101189749326809687343818249391876061601054523313333166342051306134497505384626332580018083684736723241519662998207994746366414178026998880534773524807683708683550174203216102261686880261224416054980448222355235463230201693619062919727575582204619236914253604164475312050955614546596014968660012777787826168838546066361085316087117677831330438781598777941113500447829594626708618347364407957553441111804247561795274781916711855952657559111903722825809453096136545099549879983500574884193261772614383419003705386217865465494006531602688151945464958466631669369737738011354409591785509469161416939907446499608061286849572690779544348281522670490195040206846736397621788746323905099215271492149813061327651022110016602822273698217910852602186184094378106599062529046105672644824737769929885795201266559268548927259559777136647740038421447909566581285109568378424493955323164401723265601087656983352495539285300493212775182455755339277425244086949913594144807545782536949386596218803354126943842109579637326608554687819068526091568387679485934404579083788696270624588987277793641464129661730495225775158811847649887004461224297828963948889963891872276962139967784556752657892295046672098581770538242871316915970861245772308543090347448226297818376407173162353628947702492776779592484921416097930345198175165762296004265250414443341601253076397248924713720259520140530848768853098519881357821443963318343036253009239682693168790731096882409565926897642439266593318622442559562698912367191085616627480187643486444121896431339307064913116526284738024193776859046526708578149418529336230620679327216755510018023343874256679625318260574386377386704877934412878297569859882044725261597916717598112101523614651141556034534665364713594914840181249989681986158743274974891487400126977568254765593904110348992385765179889736238786337681631519265033380603291220785369863306992686329382959096053466773082356354552551534132760064238793548090633935788401253846113963305376187801504325685377868747575969493643754743186108669994768504428225327320076560905169047734346552655974316714366392966736522382363791275080776244323124729582707680423395656412623684106244015235045797936923720887785591408554759915739654950726448835018511326525341853715718224204268126839435969859717112317450922964572318849493433469004784459438927510325098165014544868043786602891995232662999110206191833517914622554865428269107081742322396667016615029857259641544916701624595629920286015472971216827832957982768598831894784667909369663565717488359145520145748580460432951873043860308342123125478227296452022076847663316496391353520518574210056457735859848517530417485223152600841228960856174789581479083767467937750776584491084182393922579483395996645971793385163756659368016590399148844679505705479616304821440209662946081456299519797454784691301648030397233694212933168377237418190042986314929832225020195668190842245723560544448179284886223963511185607465454996416066724895108399197691196652733653361412019199810010012393589902397798788846358685728593877584685638559762110983380970323831187753565655871253743886005843465502612814284401857577890796804898850204349877588176778790185612834461927306968135767326581984872287928269141344332882148706820302500333365166204543146596732923801092106449466569089331903359170203597897650675942655864081409586781913764914952916807107329947696772392191557695187188976624861055659055650479780400967381720867736187401776550434733012796232765171158783413131067220981359872701963706463334932611411725922776104404198005453328564449879510248000710514216104418869519328405923597498262254468866208409119623169564436738389684605449980084077256156812364943029305517098842103496764289442329825500137005268835462148266738432478430204390476360645852179115071446269799609485662377329117625054215101130727709212685668318195087978736597988302770539117135833077679277746719510289311011559391497921372513239661089200092489771689652225939004608694982789848672177868025635183783080166552719393137738167444184502036476766508709834394492676174099513118246195010578431950433839586513929877939900244608451718924638680165798167925172909676794064228908951648767571945456440175234367898088258082020196245171509673589469675595293968240674995158628066861049961966518330682684275464975997373385812440489679695646102153051384622804792368156626080484613620418008917663634031887523127079647153467379278693083247876173677079420553946940791389132446144823269463668422354951943928888322209507628288251840965376690847885181925211267526574451544480775549597869350699901884899977189207945857220197937301861267298360727511134674902303655165220811392792454108614482848946714999066419203529229742541751071774784119850576869754649933394282585681627156021445751515590056845149958531281518465407558806125433784605060286243025095041929391612252726154060362454720456328254337332701197683248255740542112458730271545990338597442020615656091726774894751940325943438123259042235090092375227020404318293893126435352994084351598688156174289435057673444758173476696645736842142009939014340111710128696660262966790945063543339864589634284290561692721432515008007710524517993863587708820471533184475227090313440288844092866088063273176761918293990513557186622400990514062535733273007997594578680234854010851270604760418455240366718544523732192175006502715171100413352460668952415793202381387982895259895972529795332785519519877593326732309354222677015707486367846052772384432094425523142373886633880260268884976999025659742889290556231758482643887527906505292092471619922606006674202875176989088739081624890038525094787562674918936412789871859916573784063753883683301084428669014584743456763215033655415632288582897501458312183502776272674944907186078734350104771864512682194256744022745837328056439309560303976298493461224995273351126227568351730511074868097939095098096436339462592691924668338964515839813398169334445322859991398288142970706682121609595105454163666555341580279708359528581087582780629286104288177256263741561489831177154020663422035714583579475529161784183500064661511345874609881061274033314858561845714819156129159522138505632210549652365374048093453510206336008090177730229095272985434173908763200336160892905093721348464954655319147826257280455671484533608546453400146699497734324624326913731395609417586044454474108719269406754840102983023611231065315184752189376050379776980594710527830299219929360776976789460458324204286232207112237769960049792701459562568978139052894795320446047700423160476812410518182034028145831709478766637004317600140644865930586798253528045214993491268287152144090317221021608964538504472915167147378562945193717566610702710581800992792498129209473749520799130173359724814259713244320336742602431548556846672724310402796586573046419412424307109152481226306316500757914795766695727691403676661166292704641798463805603720014424260995369173130460306399069797534141394082380734472579197620984279597334304374441592621061904758576452273093409431467684654721687612434783279730995911081888986198976453853065342692052067649730860294754190971486241001697346586369267566925887025125437246030904442470150704006449284897739780776089785162581257391824176906732319763309735599898895423380458944938193552875379907128693355137293851730228601467809001914440744548395187714291552075765123832219864978636092761345128635553671338960485391027909769045448687501579205567625830295810477424241894948711602958496698892499350277293160695863045838887267102712805321632883379445660113913014053733756409483464121531740280382707547137417024433792568402266674149316992577667269446919862180788083243053643532918418180560480408263580822979348502122603089789057505374710836129390705653505613621415207927804821835666834588718112469842618319626783210042726072213381147454636271732532956238978849726545030023841981849610512990590733197553491129651426730242864760317749496923338251968816334073780608918592008757373595272571859265363902171803157384741831135542126415776255440662021657757858511180902566112161034907464659367953064804797480357764785697342089765270311113907190245743639588371013667789262575103218463061414749991273567179952789239184373393242336590482767798049320101515397097595455409363326776798810077932065023436307586809182414570779413942345348156794392892774927035672443263920420016188741642785397482979117025261418285132422271362154447999585185466138256582518389768251821902536849467260506960674112806670539515920947820361965748122794036407597759833167312157910213772669672975672587464628943771940310455545813571591210131048524095138497390588556612270405974124934574117241156785724443297237254359267676987159640374952889847243448572825382536326766926589856576421387219855640854828791376811023480701065494563620291448227598027279783936360655599402999017835262595217851685969029264639578195479359369248055926642927415356050934478204785288887823036670284737508756469737639827801251626287202329805674497989530520607197110256847480872914517664227658047749942817030910225978887302845174480767981458488425843312610290382679628134724032728687561092737904266366082638112227125288666194802716486996525108117565195689611224844029878723122899770922677267342406971095183307499830263282528315206778509529079137103726098118775971906682908439849441248351803155048242377701675473852080478344508511067605315278916858056241643989721294545575964718843198571947200339731402962559465024264059981783646890234212736012416792447579580879341560927446421996557140000368512063508898113561261872800704430412388153258529991393746347317289848686666164228105770927587706701046095415664303286718184767853818179049727345916892669633121585896147911422638119891756386665814041396346161906918115953495693411278870293810354055457504991828166126698710020186720427705507762195256701240599001655901473068471989518133038823130135619786044045851942347035079279350204931558397727075160843408162998845270079798020885325526005416238307135076328519606565628230384267268276658722442644493291042652177508443600072541545436459155765486080947264023873518920428951499506370849086656520234124573527110995654697303590861991252633702165635347726233838682717335755075128641804900608926364424353514480301097817130830433884126656716508233741463427042559868539907800421497516988063616817197417405903603023215328434560063887048128735035615996618132766382543622353561877740039138168315821203589587673426787436209168627820542567230989337882068592815651760340580870778297062117686767949841021763656063580719461505408091067142716103329509190445907693052755353235191239757878346822026315544864144131522231814740769554142407735649227009939741112897382344245865569398342046534040861870929151740027242156001712281355126426126816361218163600708570094352707295124221722934304094722423715545802125675279393124327013042566924880484599175489484446999288099867049711782881697985984912159947077850375940013046759579049882726498676965545454682470946231491839680743144470920880039090127875513460281999713288276746520383126225239707319207735149210481242758711558913713436875752193131263161269504819290145307037253958460000271056249753916117217623298643395843860340104091477634793212328357943298785442356983270020527860411317055578146011346160227943514004917127883016414410775565643943695657306899193188434330972679242107718000898104600264425246446495651983939436102973223070784987386540593733612536478339478609616799745057119260424243942473425240118560126262201898203931915228194219740088753955392372122324814024594611310200161842415903225755789177197701578518531072130036354447020015761716635878122473051200801865346206811654855809155430077685884394836898818938502301576739115507899177106446671934710296412222452228162458156169271520124796933431116409610226461075109568381315343550608984858136123503771664949894807967230309225691355367046374282929554598994163225107021301108416798394381917941701582016567780691054650435045494340734819644914486764242119238346226240281819304143974257239960646876337300332462005804678524406822020929659428582849758249264055893387702130350450456332465573206789770843414666097470395163928961167702760729147390579697005295445931427711548519152035014003025151205024013878834657663410498700240462907338873094046426442212325754974645859345709024644730478556646941645740583100796293865773587368763287162893982985908429080200739422745817653059935529832986819630868559000981303868056031398439526194499673739193991751108905557403479550032783613181639579524345508080093884639495305391850322762484866917998965511430554253240262081047977923655997969918944373387028686090234819126048779393313273407421564143556182285737127229140422814673673916036013122639409832619575963618378365455189908481704135923783275003858407312195718366697957707779551947784884501877866339442488288852470612987209930836312432470008570323227086579825276595579688602601108793407856811283137118682582320352699261663109425353778024703787592186671846164956138100010302663854815174399370407908723986556854276195993202091503294235590577463808940466977096069928580055985761960916288877708935903677448253523842660097718428240504013047913285884053281848155373035492493325651950584110524311725942046646529088222292712944081715916641437185106591764990727987414075300035903128806466128582451844504880104379009430444101540859769843316497748626156782157534407916741249058000595211327521415913019453544964534234941143802227029768383718650337078467195148659005108168537337167562250030441087766374653838431919444195653312099324551226203573262731112656612717343140678790566320733551319289554442701398309484480134348743446656122381781438001236744457358425049889821334356219387732035792968761701997856121574201782768589707827943374342742199915460453505658983726006389440007281807118596946783502562997804832943263498869572592910385729328824414240939375903407137306194719766444636960478770627349721338932052962885431563708449298372668286932322167607752799562794523577870843316994693040792272026580421529503451664948469820956527253903378186886084613448482959853056282261818821014720930936051065775242644476146001491442940075604086590766308282263172916105319031567119636838499436461085302514935761430358906086647392171615055866646068198703818291900286146907879436080771829666708139321464641733718729426981591857010198791596945995514290993187696446054745036538825782852867877852138962762143945047504469506787756433162313971567355392510066985313479365657004797449322091863904731979317237619861817357421312989190447200880641575821174813874368449815018968811007520664992974930802966763666223373903020903794563754269173397186103959369431595260238821668936886625028702616943639696173654902811613313291827559308117041311490017955892637420966760926246664544064478571731707079387136586311599915989232986759868275793272018611707168043077585827051137656062686147152492246328850594313165525014790113216416190372373035438834561686658290125045327490755770851255412434107320412708100467593394006477705152115762456734255070460927620136123377247207365145432419174572889900848358329894032732096893662197251243962318313536134444634826751010749532476177547389245297647092302460767943565198521137102236109421872690356816691219818839882458668816127238907941769164579801472269114292129288054644059107235685466121405273421845968397086721347841263711053873078688022169192319573841484488115573057017693691991333106750383818488519288286069050990085419690081383409833219793015792082432992237867088275550750900847402737383161618604281056832976448441694076454951807800322078488337871086161876500634689124575683661808023879602615807993253743714772048903291705733988483187863522141082417780163797222842163323175254527307691663343546575510231068656144182260922528806162957774519055593020532917771299299115566458733355145769305157493951717608553634788354136116948625463999594182771440260057570274356424134684969501269360765177145629528699196534345228217896536087237470710554149404587481928986875340202187524316697690894386183717020005576680255830127611165013276241581591284982523844446343751903023762446648128908104756137829822857697960488864288463605906540453445183872519043195086010739600956634364478163364921112287437636583541611928271826770268009942314263915197747952309254126025897429083886296970444186733154634767734530903861911480931065425428514057340121201942615598276501237436140831176076891983951539683616898375516172413114365677326841212698767364182651295146947787433591486252165102642145741737762959190648976219708153633465613889480004629917304065360370597824185369080839484394802381936716955663242355292209682186862775152366195867373660355441386501065567980686134912706347974458294697732037094795376322942162225422829352114837983701184854772797937977084413094317415554784607790287905735423651717608259018350801511054979049999262193576882939714131876968675634575016763458511700548705658648542924207472321577258322108821556470657585402588990013624247209462605770498031407150062731077493143884889213462205427614456443611105604898961010428399963756415503355723683492931773943121626338682014340506738781461087507624540324461467861467321828923514189526715038693741155586031246348507081595487451516876079615346336360457684559847020840671442531103221697630394028404319781888939029233547356600192859398627499307829959385850217875720832268789681959652989993284455113989812872154121500712762809730446018158137996266696882034686213929521075154600912385110599744484554365289133495666692166376109008545789508953695867056611553738143605128436060149137721934063710300213911820868624177930585381007677849047386065185795054340811516161805866027445073667332578314688625814551209360814054335153123440444141178276867530386386026039405906309510392844705479595807525767566878562179529230144029529609532491302007082669941418142914585644095737496263715317582728086683247254220629980281928492308130801283277025421833237265060508836727082762378517402403074441937157750849055748468447969350470610592478146222688978098117647220242771457612866259888135869787945770308508840365046488120956936847057276238578962723234726068332171752354634167919689546668287193746252105580889564949017422754837275055826626099338139898741126686434050089656398149494317923153119193745668844847885172078801822900825362502822063785984838068291462424062989932750454534243302087178446907562519927799947770250834472428286743538439993203907069884164610513753442607419454658080278010511991281608449897564545954560980983299131360895404399549767389595434531630667283112406769902454859042451103373889942269677418852006143955829821410831229441718690997638113046871841123698110889773750364268441405479071681588752501255793290618891877971017145268947550416378059582876018739948580024363476761972377989254343978582918025064497390878815830889013266834550903087252841721907868541513999984376489564840517096639105887816976820176674764831292304918626387938066454776627327421633584496766240837394609671342350381244879626338194970590799667936794132145835618150972627146873449395725412872969848475875518058224221259739508878999038158715613995108397475785279266725645906944185991817996877164216676533282984035900302909662965267592798028680042824609935801928064726284505713033885839490721214969470369680848338597325117367411967058504940724951949350271051246159748718657237434377933026886369085801827713190029801643234496260520397843557858625385809381464325314853933405548601911222835146988488080933094164974093445800713218194508287514681431814508911537035124613137794235961090649948495130389226035310000004379122681426462287044656062046208517873664479714906134357616199511230545169278354019080400992595297634892114495339271250948839130874273023947517058212350368253051243876928930081064005896510163333124573453804472515788620374626127112396890581478101658018762577285247036723910756448672125570999136607473275424716174454656574077522679827793839031192993103395607873436466226752548285421578395444392538875786337076893835767511286098911535775726080340746470655366604880519361215262680505325492775405518435474640465021989691142052352687450708044026496456315976478083309310522685738050221409183352506902542965635706684365180105782806194187859085885428856080810432480285306292297940679241432335842913035407687479877755826981225045519617131849870377442848644099316095626802311525447777970039275515009571375764566230453063315431374610001551527089270066012078761850152579257833863360193531315560782579963258860362193253860489360232759706843886062478689187178346091021276440759163367878706749002448344285863257448551724544189747629387412504328046725388972019409991789754433498784931087512346734033667967097343089135461341920687212731011233779913096528469590499977808582589355490438895964140859774419824927971544502267860666321280936249569593259438487847913954951222601144067982163895414125861728665477700548324122616133341390752344877704157438264441789977767283575621106065874539921890225917313213394313738165656847459946103404823532383043286779074874799064745803720495180002289329498789944040893380619698948328482352846599566356495107195365493549116155058691312722722438040229195593893979138399652975137765456019635958468342319177155702407492376133211108614954759153192937054645517863222770960489609815039697688504754744904341190186874475916072368447199479448421129666986284547290557152927737692511883667704931107426977154163662054851853050463459872785898556673754838661019840782242114188739225069755134002341332827386269079895358167437854568485014954525978419705318613282811005166588315832412941573765308020964592356702326565803131288769046741608958859514774532920602066531563794383840765754222280778688396421749946144398792057450322251718621872702704355534288599009359604730252113646228185439019699893944876021473597847539104904569712487219527579221284156661480551996285431001917931914121572783613557412399754336776906473686633031998380624927092880363093614281141708683401873325210316072069455572900119574901952151190076306752840893582331789364648946852852241835745525635709638918731933353945055809157723014587622487307854822224092428954694129001360132119879716421265155205115953198665586263576524955644515969732974564352915731213026852358844353160029637479651901898037830177326568342272565784513760915254837768849613556529743116575929467743929910046648679363448387416120269723679246499642475368005945358229780777586174690154399018036807637113185308010617904843704257417919877687784285350126025773514969296414183176949527739584776979050328111493563680971621242072208036330886388560862192666005635494903811392355162700544369902969647517564517652098796098196904405321604872982895081458820576239285199140400681314502649300381540190937547994656911925116993025942542888095360130949199324579747249868810914628261015210105918775343373907205237328020540435837741111003187240772485190064465579454684127205686917023580832680095286648236466143852176567441889563223662117816232168139717749069437979399710029299040740493408816178932772133419539741730595696903940366589386248288188503749341786881442401347331907168069101539508338219789708203394415513634060294378192156022156451962374697764520966299311803713867306793768622984049867185608598158653818616485594796602003991702520726172603717516795057425412061780077137208242891904905758065786864804926595377627734075720335212770527635320498198338063845218728911958340590952349265913929586377790936067972140082889379126572442305726940710416848722163443484011240453094706733111820305425273749536780150489661219191617739534307398171302116157250493922406729010779554701314820833011658548235940000908428596533527165654909541833611573051473864990545624274467665490637711723970928135136021687818551902009149667743644960981042809841213049911300193160813877408546734080020552301384697005531524417792714714805190318087418410368251498406790095740889629171016166387780261204101816598110298138047383914873958417837799665147882131296730432784137716686692648975916151053721803832672031674387494688989616073961667240936230806356940781811136426214528165353083158372509853232567926803617396268587695315894881629100819421538347712982569937005243074986634934914870816795487392905950383052476562517499288003890047508853660866458015884916609898883917996215352745925497758378549387122415292150040286908722577418011055007931355601000895069800142419641983961557843143302105441135330342429427067593021537079247300676402297960463311247233969806867077438847106073853212570436409794980140597942288217312207547300616492516436407211835796569041194103550218188470257855848844820930112152146608611211319995079116037369666245511118873098651155626722252523266819823050805589279270116409620183503754717551527405426817767987950422070318849605442161045609022630107882102654767803839671133992994182838650831993026182270478261433592667581576738663518877144560174523854604988889924360536490082437720800551482572625828322545840933044207052180025325841074894166405795058683741988703181796203924945054688411909870327542181329581561143002396001645758079061505463868203279831684892532207675858520039518550995955551576010630920311412747121430286410697193181792810515208686157976409259573317349836419398365095742112334017623325314214494320249542173596606531624211446858865068866046185101617360809524085640370029103029124893989073121800640575971493508438169327144191006167055994914285479887500947476526872353977770705029744250295151124256088562551137061943978303217348704427419364094199573886210145683914584688185097762930811183240842684104327614922906817206615498793270219639549528923966467005071613740005163089588015920252424821672008762633726457923271242777610772557619112139366613130572534465690158636349689678335279066823815792804079278540375670020982327077994014408359330176254116841208200136816012899782908296581989782790782531024656172495370468350644121663816408223613969476670445137807151577355110234990777885421592168204314916558003314955547278118991560500750228696730867421527252573381524509125346342696679093947824710613515619903627650777603221868921217460423035786608507425606177520142913334154523324948068039813840260975236632514909601290793289851237458506890739802958070396764680495683110786743242976944882156658885648766851872818171144746657321368526629596087100026994861879733156387055401916824738409671147205937022884620813570664828650296917688220306914000463712789204685381914948532965999445141579413422487385409071678714514248257012064050264453461831010168318734075383221175069337471771720508445697732315609665887985745608926985009070786477546817772970014641651896902741139448710214608374053005029434624310444196778576999729635227584111826404396194822726389445341491092783000135540148488632223849036929890391388572710022046380717937772401255601081419641670142729390339181581642258229693396537709679438042019519148490091341399190915899094142917117699471819248856657977343988387409561943229693563857812479239137095372645837144914875107589273392066117969223767488028698720934473944821318859156454073471944248076174678792532033909981859421884076231757461491464444894745771263838678474381028107115045930822214315821063064526046143539294013035057756444237861281456062998931968596765338121560783276276843789387416519507432739089604724799966539556141890956424394141730780692446038842989866607028179790814223462681464771713177612178039241291791567123257850916656940896531236508014694828443868003835524613476851327348659101298405394468226029420165837745683842663938643920775714878057247024855924026880356562917288505079420182975294249956577095120821112363673695582196157137550010795551823358703576894544215066709280504749811696118809003051040124753592881591354843478921252435031388819512319679468958527233490921790504672948699679584996032332845075393701178161234734453294842414924614100945062053333753525576737841510671314057718963138290827959660406373972428318821362144236885929063040171913299046178730380035699245507674127052756932529595336227953998392002090423967434037074760527610049170587764211498887189644471671081829654707373292052759144613914857959557250380281647606823843201209828720750412319624772643758945004508564727555429753040681175135256819865216201468558963395443767773841782978576946870718760130740553944690086791325509206971715598682944626475842846645430669570102856288234194394497969730415034099650090297515585641908650134104905021837947817874278481445429434486644950183444877493807489701972140622432973577449068289431313558982338592244101589712407538105991683608553084054718702078861073676873404477778716509876885772357659159593621590234393553584458032429212882494959897732482769088837514861517014503247167480859835316275419541102552025531694333779709890538896080277431662774794505880426542073854418388807340142068123355658549709681990423429038896008497773554027046596204753696004668774701482112176017761951988149182497629748433025624519268340789819904862482399998314543471637896044324744436256850048572913298113423634236640351910909864218983208847958572686435040263451524115999090023675225883214383018297844707147807813839993689288430988701285745728224891746177943123111729216822228872603457979702283275657368877199494559626289041240998235394266984068636865818004195321430790246182587798716408385163459470459404971925108259672260705281395813810582852149518942921477876652787092403937212011099683436020536574306057020434138256965146159552310143395130088863366663414845323904604567244309192638460942559588369914562164025169301758345016359696733594443111579397629932638238248329671647628251412405896161674475668322028500038003000607376761432081650797651487700442010073830737251649241418067674960851970676109042591206816342393182556833247490353544875585809032910300537273878170672004102672919035189750811188468509046578638282912291024746949663547693088288774187573884613128435783855188139144039965873051478296587877109166736170546841759689096504499867946481969822982205381061724041849438193573831459784226939298254322736499556703785473845419454494654859614704394755791818363071569498968013003959726232207651529175218283802698142430353292248280790559686949723399668237084039114583317134814389033920470542345411523617742126418391078045059367574255900116039404840524346629495239258830519244395764503730815159762814101490826546720438655065173127583494436078504244738694280335749450163853513334480500633108856156522577364798297801397469927065367230930399496408013323124257428956438368504124864615724010649020722815347898398295954209884515725590352842996312337151582686619330388466987175434888345566133823386599858791379976776232485982847145917417535950660178758416512043377753204673094271499102299839830952572777626694018077999736949698022902488339337517801513747017579355548584208199063991144706222714997025327999274121939549699878577225370405056403866885409585721481764923085969255320913981438366082223843076520324427347900261030024117270993905813873851980215958508782709032176095261212706715111237676828747478452228252383033483828911061552695680044310633551863140380618901194762654794485916759582230679606158846027515405236035610352209705115487683043618674952181422449955377922611800784424094778246295121789856461832665244438250710410435754086603862917012417055723488303660485225051684305136617455903538308540537458242400343692095946553059405516624368085873137488368330475157481029075867155686678853714362630819057654701185134957322719042628383064191084142435368861942815443987041431594159215954080122977704798526122367391008247125812354900918585134989246285903419249590122559325492503254814899818332749690900079858353506576440757573795043450655708550813471318391547198680793014265644587132822402082252631764611292065272842418716059997389771764456335078225741990302701636634424521595442890736176369349664751474455398124999636285712949936077842060880659646257247692428886838019677896808839219874077112625464186722301193581055025501901852964396409327645596689775188529725490676854494298478465986125347928784801624423071262688465270270128559386679351382573415961547610116158300435448182428214208946888248563455906396590171329466871439994067006320933579186699921156435257431386278315242257390622558996720944362735781821980749196962543998178712344585388001622426179145654205054991298891272725941725335990534914453523115250515979366475777617463988425289628033739767669857792394064671230460234052251618336145191088506501504060364646579190178247168032690936988949975092795986240086991481659520246694515171740895102451748438766131957556239632423944549948379451179144200006435202682114092442555617020873824934294391054588197404642668399615952948075738664989230938155644558357712249667911319948577626896614992200778385021626308565289144715487068311869844934464518034132003042155757373168569759287361359796469768350595972834202600859899936501807115153907526040462904916745492387091974611191953108862017988183164306033893798406630571394090225501106407260222381273112263790415979448510787805880054299122235394735218574970578476625821456665992766246823958223370997997484111228958860530710811508804983795895169357725600116786992837540246049849455292523052656315560100289215781408099408178616609595903736096983920108818843418864316502538066665451151291628402837745291320051746976168522069712142698930129700663377052714610678655167140257720183549394162393053240555419122521426959011976748333259348622791898025730607497604276631983141313290364632346340488444700012294428464989921487421361888717767824191065622666955984200661339633807130107406865551965113652582763385084208907375020381746861217511442928810189323516101839814320865570428727673701220612504308951637889888613011898802740061983883287544798112078695606743196130579761435091017332827641288880180193018630082358455081068153147698841205738576529523327355689389270740128956281869263417427891539727362281989263146179931874503428959189504493984321325724271401130210655308973696807336233700330888685430883665101177504822055626514737903389755334008836341296864020102046394618285869032469799688861853143990776795319884943516271618904706796477036480579424182626630321883364460917861893554834918283626267051803912843335229873749058841979467545869082273793292238815474496555134139618164342867305867288169616205255387261061145440226152749903693451066607103998422290168271794163143677908423338402276087177410882092583998177972139133657980924452070231025708510282113472467528373103320987303971161401815256429456338916964832849385983932072300445927682119660145870928509170731880820862959552205304580704839598035673305022540770366343838601670757335883626290198192922736124115175152150493982791456781708842775660967441439385045474445987810504828260954896345410001441266129908231473330704142940411860725812761475767597753173528499117165387383343965033139052183595296923820149079093070018510516135553820153874442876783414276576634788693910063903083495745835325280499445973078061102407828649835751369675734330375334998199821967313639052924555559196706723031144329588986477456607511572249572976028395082611008101603179713173977562087731076788843053046633813459067665811382830471037511136469075403410360182401922358630683254699721289351397353867659151671844712581128240274061606407166687682727871537082806181900703068237046069272944876804205701650044759078593936766354975573823255490365963323574679197837692668003515806479233142138254496526828938875925613701846649338790097842207185090542842758712518947988617740627301618842980808340029095975414191256574345706097792896014268268119583600380810981373336605016083807738411135547399829825273824851807017540798370532277994303826608364300458576431949010634867009497701010593727117546948446627069919266067154216061592101293267898502889361388488264281865246537900228537050263525791036840703254067646551457870113928666591678996691358233800329570802227357636326880464839093074534888650412025042416550134627183114653911381331359455836473982132690622257355971605935538292431142995106834796447063678054712399770415333666655534206206886783499240150621206105450545295770819265330342154551574988471584098637105378991446352442609689007080935146329472885003340514833879565974973338491101980013993601629490002047002853264282359710212581153049490206795916451102188063417406506688901816023146087494677518831646662704112032254670105961383260419299854175112989851614030582897029943215835703343069778938403984518263077577831877439345698654021990444249674260439249933067222104875708080087564661045164642051345064260786552806894975109266795215692333775838049222816795671606647874295640203876433729712262268316048513319587071532503301968449516615597803925821822325250484346604555389431747206828133872545128437813253259976243091844106759763223751944355658222876022878510560775926860641328844187974433454194123609896424319427813131259411070746942486830805015910185535953494567959196995766750321985996774909992124396094911011768045754712514182555968830387000327411466632131122340099591976396182044984323359154901177294411701739727229675126950088731898154707260103872281112352414515051035481981687912797819167995019713495290607367021943621238987316417785217083615502391133202067069037851615085212644508380904960707113052023107710730931641445650323528920519456475959814850490438567503748174369831152369864529737586246137064276632926336347898370705715926002026880605268568468369410366380628799541418079617769514486019986829280124234785895506513269528810464302219774436397828277701385205026829753965065812685689757486180532549047667628121897537207923811385392527748856151134954090971367896744857011698848987256844871438508547833126136860962428366524808043486748221073368741998666070646701672223169520254092349658315257478991122177109409182237654456186824860579098297733527098044264128750663690282191552899950955473324869559292024396193719181355115723002837473541173867115570891956877190847444202554379754150437979494027513674791258679774337288992334568243358958314408867176615668041217535095375591157509911814970063104332314235860735229851217414706101119991181039768469317652539764405296841842942817540293155561371447456555919058203521934866234787449717232924245985088710509606740361654987722108741400445800779512678282077229666104410141503650242598173224045393931157579856633430498055491354882002157319909096684900716545526775435508207353389712500519039862455874603602350308149312051645515637601005462131035903588919182888508848476180859536827593372699889345155827240543333142168972992963800253155055953631611315522405726915327170161430834522258600656884107508468077497186477055224163415482062967093274400634453815564916637786758540517823639732887808951647289964107151746856102645138369933586481893011285940823080017561735697797439649412072215311661146847205815049818772972639321900079885579374970528025451307886037567040594598077842221994187445776783602641056704413886880348915140335743290651481460277804964454939995570306657788224700585205130503212608395740472048179943043488095121240103872219146022128268312976224312309044765599545977898294133121958851031763024267986058373410618600029500600087442612003735091013108848110227816809838138071356334368392629058758116880358347342861357528749044204254004192487861754571129038108619479941261990785261564539912628166737103394276368319916569676047831679547140433674959334424804064802986684397237731540617519219459002509728185882870639679965570869543610497614242188633105964870115704847699889866275918500719072365539203093321347599158490920900593331780289338202297759513270639883013306023455653661581967400865809843514905712184818482197313107562775122501770363407361053186675867270109777277810728935002823052071317165970635024007176809022575787957450774175015168587390292034771406280342233695200157225417239703092957158509709404696514154749983936169471030013180959587867315815731383066044843065476307346874456216037820732323743450240843047642335258052497927889888735257373411072639110891884073442413810442258080258295438936625850202803357478893334047569509347965054846582017610376797887355761167655894848864922495468824756721303238059811866379771532427061350855359733770001637702361294858625445642051986634934819319836600099835591526166975613917768912885016565445960259962414372537231227455978915756515716150650805703991367072659013361186401498024497050372373843243240571273689905195694077837805455689347388361819466104288642077024323019567663869206322549652423822179467777018585065447933778313651220675458035021680706236639140264666147846384803044405714685845034477921180959103875516715193327602046071108572473885649619276028322341246868667835795497928170956411439262898436502948610214610505948352396597716568051610843881378948183565436898199339568246556643930376717283258506924508561962699922815651053239441211585786360603675930982551992841589481297016711962383039169527885643128075482107693465605318938376761595856971458040093159486003554122359068860055116175468035138605312321152274587498458004539710370301929790308697900587268051607664620626685987246087325520276503864694384470220761723312044854754037877719284146106336266755927113642223372828367925814720759636908036539123763745048708355592158684948794311748005007667279217835391073167068842859875129140569089086733377979104192075250361783777246813922535271708327643112829629460709248107511425933560859018467870745835234946107295714458892201206801640442300498624067080161435741840384927628046944364509809511200034326378899139154346088551003384707811281851502645793226623359023727154348270076747990423211210489312264404549375063709003501981284043038102965288695534929838843680369063799946529921035879979391639093077466556563911949215512712005588417045974041758994443199173016152989773245093324730654514299714933781640090989484702757489113588770857073364213768728093987146992533485596660300671048497684789712088884178582565521907216346974195687227748650613372465742499075567005937550277569216301042803689748049751141630507962144381063028599845082697705384785047372705736273899263834945878705580246081146967222281026209324246025230921238171608309882393254224337106584009969383276844440063459109353929389462677346955563825799666604189004500060602614095099645862560164333668429579618047367691640846729071416755961770879360953869463531267482185886407981062413374414923717323033980335544974888372628307572236498057752066758025877067400931666877089045756569519736562522292702848833260430340488121585478079310678465683834415699090498169713488795101512298179427479566094609611914898208290068901160259672806029524411441915503307831228639132228855782574028955842941174450007555831561965463160881504283455963666614932761044430414313237213457334308303731658912463932334752178017072524517138487534890322935180598629864754867060665846061842174463671087636306359617016797282041523371107672228383598641558424819673122204594736521582601132562227736517387969256184083121536090938316259538639769563248070514569609970034642407127237770613733030438106639407205589358760614576187438883627735291978128030052516255954559110925810722088576676424560819906849640816865599956016286467789140285592165429340704679056350765244432115679277505554914056124568885499077204964910784818410746370447131147540849802848806401568541261681070241380504280822697130701660126594537817208997248253833461996129166322296832607731393860281753262647285210293064391854198412979480091369823718470504958797662427476493383421436315787417922211882720477010301526879078263373586823148590746691722939466359567232216152299852388533209537378356579231816633568729996158493243133566312095277926309239118550898676781017249076550078753181297292785714186288525346587607956327149816894887451562985892587637286578102727422678926487995728003259178672707566643047968634005630298677664332563228453305320219318054833761124138670177931719922562572872645229176852316501518858417098177181727424710798295259571054995649321041001516159892007821202343049871524157208097772553030711617946523636497334787661033805777909913521439937924212729549912308188112365917842231811727425608185346560940458634570276211101063822307079768132643773094100710555421023362371145664437609293909855051066505448666379654843369701783522298543316487858034897598119401007992797613270757884257432054931335018123641065768865224408975916113503953953864896341497944889336170346410039759445575822595535968036210958122370345692559299781732039830582325991911835213033207342263159222286688336275815376989341671045916845244518607840777240990957573405789924441357373834321505908966308357396919211486904985599104401953032028599362404481137331586333395339898256911673913788063439812555460752128615444805672087150236186031582659091755372985376116844136288569329369686828659634335388103492695584617098835240534813611544563446369016410432237768324821230227757264358994320707959927633414556487310252976582692944950844613396025282079845992254458702081450006774145501162440553791134697905197633588705999232129135920322336945963401133218087813032718932295491387183261184786478409011845774554400117116943937526538843511717179564905027137781929425619071944511032726988344622067441485904212902903319768585796728293169108048591142178166432609178272353473603063415751948545067537518677704033427200779436143848284104491249316374596680751334415396473843656414404663147714766901242826963471783554005346362158495734374037256110804626792980865943892835808632483077251521146652189082543083900613381896251329613916550106747319755004281206401137750727525511681971149436709433966061981058377922815693202040472809770453384573134342409155294419625391663610232832220363619414089295245871735954845115436738014730338377741134296518518683801894896166394297026164981904454747980590280505533185414256827930109212659249420765570650413246234086914696186691086497696589039867827808748170697953042682013838659339576599397080142215435813301489965858905817830173544230485591416410555097589532255407609789781925835700925402694303803497421817552347963164481268972252450615188352589166123902034286645354951478152177818532057302761020195074191351186846239751173702598692400054668186095476092525736775968252320808219228431569822583874055629910891385858373200593021153780122421328315866342933193649930613297473580788261240812749884213914659322196257541246820549343642180526215671593506230296925155822244523371132060479236855417925429650823979649030181984246054405980538521840517434539590431459684513024203172232705243089095781735736749231902575630340722369445236674505748093894510388345723682271908004478938977963873383208711816006873297505811092417196864540430707133405322402500337507413551717583667771272301973782900372173208398710108862612600460992257826746872592273531526296795359616584885096598528808718545865600940334843767379136955496521527623901403390594413126638679571363384960312248492953202989451457461442495104974837795761537788523056140838098739683990490719728483917815390258086013992160998543713519167820170104884858255806788473436152852517604158063690268237861010948113587874953377989678765105120095611399169612400845026745191116155489240925393209213829965028844440783736847842772309322786061744968322912628906550196821009602474994666014640545961805462091409712946382666979489232183575594261216572505467010827062477882903639643933504984642385448491933683223495469404923998700884343676594320832072147261393073079483979407741645055890700055182398254996667600755012031278359395756855379535393716039274468422919349097325812170474663595321639282185619719892444115002977755289711643546466433867461051896332251316257858769100101412930786090871119027089308695716361284150117601152201025788027732934597386244657505973366273792634486210213900586638520580838910427971501726527991924650794395614229489327746560808078108393835215134889478068786696671967689136128116939382143070390974631412702611182473262593894783468379197807565167306092339872055934550829394537943401678574012061142688742944387534901858687753849700604127010096140607596898370222134699128459958923851364589998210348579137625729112145210811393730949774221216251341996094232069184268689494907604184061077788599114092542175342213492269519392581974450874161559016436403854290090701088881470754900364891161676671934303013517521855381186279643401855978572795456007879103852334839885436900741603146637585735345060490995290756454719192693541589398529867266389083782132068361922023973760171835243492475856545697506011811544033629135594289416930855135438582098955743316812466429621496816095746683359166319695955759355646635233847450873026636940801716781603625420343558371622702213395742476245700687445413211994087711685776030465161542798344726228979773120001511153046535831812233680865127931817483569780626629106403518009008011025307505947690753915392846616009399814629929120717625822055670239949342170162802076622172632001549125056293792233141559986058649065308562695021782460895728949181570189033590193335819186492364368988241453079433389154287062377631458033499932791176369269393454288106311220649330354253052523430418135169432141386829651527486054288019275905435586672394124663872800991365805358505909771099908445643731577010336965445727647777817393279784208409930290230232295473136894864423396171686930861203713039044419842238070063783480898609851020460801472131898875772858013378944528287505505179046803666149110892204537461425669022917203595247680801551942574882333203171101571102211013286091322645633443293582647293676890591433030034977934556049840772067553055998784288883725248142198178823209188735041584606704460467720143279641791200748759996257676961377569582035563189998691158386579587489823173143657292053802275470013255911472246187961708765200276919586305931404418087581151148137227964890004594469105465387922342349347144835275475801502170486389502163169046207214119028871554675964759102950331531819053145627134151335256285223342246310314371044631034988215648881845170668586739681222242457711987459239257769552823809885272414209691689765323352915582665400607754991686326002988527042129751507654399080834125348210671881222457088745346710567486058264484100667973857458645301269192787410439768798983607251373656512441282448028121586792154103672527673737269404274517709578246188481465317193962405547659534733651715685084091203936402092648419972523213217273636118254735173794678974116875949864400530272953823944337290478720468375664589038542984244832328671180292590992769195205261508641281875544865967319853974762159510778360151823854021224766388076847639711257059638830087214397042204146149706554942788683856574533114627767944237286022477506552467713619141824932300462780405676000962531299074030619963662027657497742970864196680391914250959290789894586639197879876957779446278563894912638920686320677247715657815735958943633695081500258937010584969938970514524281188400586799410594053255858173172415256636749407435378622740311110876903210173467867542014136761940837309871593914302882657569975321074962218664986052741509317069625353458176173345909267038651537916969431293494496220983572643592286937699297514026554596989255214313630863510101322948961115147874878172864246824317383278616826483594996944264581234298280616082864526146621292140837889521101327763837212776237635401647677470301819000178638100854670194037005771410264857938316046523400027295226044402955596532828525206322871258988634255517456630485443106756981873827866246560948342911963495937446371996021004392644230394792968459093683243969541950148644346685539375539666418911814996287066563464530073317249484346577525667462619321804124907206512752399470191446759882399224999186189565898285399498231632275230732612012540713112091554266046647863040908923317950619724194491773440120344878419728156115761876204119235660586925665683922830305752836229404446392593697456550463544220622901839335014757363523141388703556934642930647330800079965858804372734828093408577144727863239059293826161824809554647802908693242065860319440577621760036728896353039730954709062119361318695695768842742096595458166540706729634543835271942893236194509164621161964459756294447725284763516591247706216945550183440115529179228628537035491322161087235159547095934500120814609360465256025251687557470646075824370890526423209879160714834842103084983757675258223568418505206674189020911713234933726215580770299896428935364214769267382601977604891580243423586465717350013794390006929126652989900376650210385599189874222618097973505348633712517582801340014500607944587862436986122263911035641298520955055746770447563314567132982869176366475436411510480096396289671382019596906524376466082481100938072993998215905433423621416301061583753640285010770839655662510168515466933059888411878836495690407205695807304520718406846459380619949847517432416413137909823918707416361218735086257820003605212313384569693631261943096157381307713426057903089233861513131390460394814177823012181339889735137820442506986141477078020261158347905562372065163054311474223444206617596022190513107990667882457834591043633227246633115658439834548904669212307953105895654906452994459600873283400069917087442765709299695757365528838993386584968515070641646343466442370275335373603381043761925650588320381739587277254975751199087317528006794211481777015239855406934834514523164921097426915732199966732902249172547035561125145704711084984240961361821088472785446523734863999398539591531654536033966876770642350193440320237320236272098240583475655881132188622907620193352617205712206752736242531662313753690994827960620764803613398734468487848195678245876931136177784286678050938873405043994378107150053058755275007139836857417833611279043778645534955817840427229433389640407255408454615593976166830973060631587704211959831404187325848860373181759512934910418872945391104918772147727597788643012509734120049843395404495084662694523957301660528816473589012852010571996317816655244797831825890846684048460597382513883542867254054334677712717907379907519775078741699765632143478782968868371463388443936781410046202813498437808349963997943375162011948528839338116257149882672469069722991850907739385607661420028073392607804239568288481949327061219673655686470259931772202819009993146396920047568197429543687250166898584817924124497922970798408185178506323158955319163849822571353403452349051257680927232273405077854352689608138450168327144673134989151023587697661899375518077921354743170588962879247231343284310780488787763142961785194127311762420048327400952462705706380982559146894037407632987819322951766381263889708092609510941545378692354445207849204285336713526191511411312537220251282675732143286119545925232173251042827452863737885180804835893420517163624943270488512819822419291537486400884894653318766095946695549783218083345057331857229663366387684556750046194599980939290889157066114108465635543347821669368553307711038965150846975029163161395849170566848829990183214725496964503250855108674392667280658374511782368088432016634306653755598555608720635325572912587514416612231486488002393027565720746310379945288936993177891583681241283705773672023704224374776071557739407665899204433753500845651956716309564132217197639419189878416016888179461005686356182537416223588910902879397974534726328721508094331878372157497026663779831076220877034662298903695775330693075199627239960116618789021539796078662464933420590454069662775433660729729218698223589928535364794464019144781387427112522461288078270768678379927975472855493861394559992513204619796025674847546535900126727319626014339188447229379855597280337536934438111592903735889491613288544868314417059781035917793669425300859597886302489539056612604920141854256001945914824646437461869566618344232990558391416372379313613019998540190728993278405889211876569553147913162561829186496787200641296072310606031069545621352096930539662856120964533999458167710928396094794031438066258805396863645845499841003232421972589019563212956622162519986220659654693180991642053496332206537743091019592765757554128718596609223161377986214560173255832643232339731094547706387813890856734808965842215256400474713715068874365785184495310297226433376421838632990034547942231371939184444815501512606185235654054599637627578517835412264643107619366315208426403081376025646033740946439783751181225096012976111760884018236643058585753691330993958236891836804366139020452536352549829990926018485534388767998226297683477311020854361812550342416360764878191376840219273158322801915337223498703100235296191774921248793448581501752537159844200019744351552995022476053543402196360241816391162960083619210943162804589429334251514734283387755596342136146882208864991392871797727318375270358170795397903342544834254571056653118982296438273001689085402671999749592651065646268952139369974439821777404315358698737330794900201631350312860884035268060741208232909522820154692792720518772564206412597212052207206009221254253756795871467521561014809354391470447130190836767596665603177725311370312452275989960854780568485037714163684220498242238662961907980121807304860256785600275995387604376240180189792116166906222382800288557142320479344088725375180946295969735288186712063451947335967624357759596749592328661508620752902225659307652926140872155498564337858506600818597660268347540755865769328075248028067484580423125577749933188817683037534376459958148812096049865427525972939843719267587095721092861371554265784282447812857060829291221258412332252046000332458910361796331054081300451573658944337194009441969771987092642490257344140073097435023729982819252309933888679179351840610807991797552141293323227600917369527413363781962003860754788334363580136864170971286323487024832928196480173609197727099468465553289633247061040474104792521274584469048076513184320093660393683778761291888140543872498782192973417459295856194007618065175697270379944129634089070650908999105686403905451553274195620676789781844740758832360784246602490516301720188725056632574633308298077499708902390380820263316892845879921622979122459945619599775992391480733431798101938057882755017654762241056419516442594452371416118179564681645301791055084990109053306801192302736234287653670667001936857199616662789844695206944561794571748571833223587135050290016684758542241263869969314832311874895814813065381401510604075380459294079425103092720066755152834962287557324396595360756740188788439466229617113590259650025251509789414914536728663505797712951463628463817949421482402464619497594773466242989781017363610603613787165998411456579797007076957973228893197179129700552574686884443313093125446781717681424784359733055084023210721605605859095902439200962503873380931453655626981200627665674490345295485864440675726844292335167607731788474907779195158060494054834434897181608191702673897608257309049566685386378064352429644585037831365778164611840849485928739562170438510392782178674307483887433255152759699500068488908248367799777894715428082242511905966500272068086951463612451457971560843640864294276640448392271667369633425924892939305837533560354732042368666504849667271980272645831488833983660620544212086725124687379256646353304560067866895731678119298831409949460915700103301738645017327819354097632213320089850270443773354077197114181779478751976135579174025581621171024068205705343415685342241262618560012882171383219721312961206462325011424248806187619890084484103820739993670722730284157443262587360905188867558957903124207652701797510555741512814617699227205641795010736190213814671919508228884850515936683208829622484294974413730810763706839809113270116790730608094405113286956714414499509671367850697528312790841210738214343941990819819674066467231527172855988741547620044002288354111742130287257900857196705198220407191069627298154466455852887567771500395921550261360579410516479667834606379344126710730845749123708862209024340504393601315671442076506338127215393514193894081092157043925329822956194267356111464337045956213131461301855367958522160548204811335935825950380566106110396194945320052174016327504184882232713792216991612117393917072760574632315068264510249446105357205640877068864967836885320722219810425704554739371534616899343061305644061742645408849488857473672576139895000988145854644297084846451087606198645219202215497923899788119278687516725215647677838968959839112978169734129397911780055912203737882645766992123755925641322762526101466911191904175394806244551383077518916523343167212861136556519473523368486131725008724018406771041587407299648591237628366396827036549306723410610264091325122598308936411331960996719173797448827381605666598485144506464263808230366828352408689410195322218114325947316197053431209355279588443037931241108159073131036086963927891078553127049224705447753690096953744415695605727761116650708493442205467509428602669017716789392558311822387865067025114895851374940664696190062089010524979691458509307287568772574398925282015096877130510787848109864085208217442300606430932044411338267880390932369395233179275040593563279926316927903704153553924726206300314994045243489750794886406873118945533993689065212516041943071653031872714893267191857352190177466352798637366851011654944539609087284492423584442282627305104281903978106668963568894098992762952430710266785990097068597682985479630316677522485697763584179431365105922422553174710503410318675963714630315088307548046298477628970304505208168662072358782556537744926336069494361046778812777788555671276868333408855838062209839079074288197215612666134160089806137836124881448916066604515687705074362210694806495819602891456275700579988104696818276904475373244296896436917247496870957004918588267774995608468012967154329979857729546824351633213814610197427775144329095033242850030813249083946003074268040274004342768503133108970241148602521555605489554389556032196527613452189608394361477656907834616234472001677653015679381020299237194901407364045027160121366402626970629398161640233030878191772100248764175542064933746985783006381814441670845983266445090130863080127481308129151081454530423037524445001230017090630542005402046242443148255942851129258682355900211011270068704988098915819840211095424247903743752553472201817996795402194077933958903660216144386521178513370287246105793734898033495979237445231087548910889331334406739084030316559937001576652062049178685615301109351167283052287812163036670510363777288907295470733872992488862295735222474703320245963204343975931919276658632142724280681593358856552929478645016598587360944560382561607451521287137790528437036553388411081018276226354443783618565634148399160775885546851571341404517362792354108431384895824682904268209521723736113600747900268842034762403261773741038862161358004030841146021945252582747184866318142578905577444655676978080058066727293574362113590141578681481581949025410026069141599323230561480146026971249998389144121437035258265662609053951420326944963794135682281593751972745719315106456983419761034257709727478700858002229451147408191690105012631416867833175313211788282520960048531491221444907249671750515852626504680367224376124724880070145759657407661791787411820855639447405252826528670642775414792414609639105498352212400777563786034371191122671999831691690402397327056776993875689651777968625624417204004663593983136655761285088183657503478806275450303800346442715918610798717476868635727633434095753044071901956830103456240858709941756998344341198106754444789023953403926467370242135620980151370158159437062745488496825157581512629274720098460008590502910437476866527032752787818616615302554435498933764221020415487273304492360333464646965566026427876959934524438912116593271063996592219721431732804101261111500576236719734104762942654757742089150294870946139258476270006462457800987689170898389193849595555520171105577466109752986499284879978390311171638306579869932493232277701677413364043295185798471552736999348395679273657306420407805398538181840250796000458694506789242795608221380597536160574118514590782096797253711550947753542358082244904300735437297607634120299801041340271096444997996150610440260029677452726872825082328084042221433431677262146280059323829171081693281585389372714461106900143865398808036884755894789561907863252983203681729228150913771551882650304062525894800447101614185951027677084043706384014798794684478880006317102839327634695354025642324142514742056672511740294796822541586715197304667732555812826181812761017697475502572663581515441977449260619454302426762352148200473574671695085146899240741224588052974970012534974762581324578278539843833393849023798919533207716842713643053748830845953166456114620057062236317936589278419387062258468332343525615382670207857217616005238449231499760276672900490144140788679804279447687545659576491917713657999887206827511110403549968105058044867424854017306523425298590931513378765917704722985454628995236398617876088268269391917965026003925987734366058981816867216986229908678735732477607259331347135083271461988205306997188464989729655654001767869675976889487796267659628603009735968460527611011886924467990621945270769390254403792916223376036848548510716115247009281029324447343203375953699357134382137391273438241487831221255232416522956029880585820137535828210797885686032645415063580908028712327103504446326880630918694276907078299651693317189202342834790590063894387523454843470692521378421947436477844000014110805362586184558427461024137211146746405116328335906637763821496999120545881332200408353867311361593837545452947677781339300383371550139851272936974199731461135250228778612352790048271980975410818862156514917953002669401548452636835775482810812258656555639454814303129072526925970746604320032095725486115944451624079525292758164784383050230245704977218567238851053090260298738785726002123325162706973721056125976675301040548451662106766952506664107794743676811097939261672106121872546754437176301424803031439204921311961146414881231144913509627495875039260959077151997348532840080388162073273002174951919319893333522154729617898688843303779189874750926233775880091166196639669696332376708062102433957993101392827431400117871962773916315394264339981448620215120586140605360551811458514321120607321648727187074913173462594563717454987671110811595694974990000932059372018357221485346709268866194060661346529929418809709558826144092106421692502164768278028795630770365874448939315959888240160797090241845350851261577723326556716900873258414461630876680657145419543119804609623628437280760050482303904675617557527626061884090364713909408392106434319565282066553463357680564142726725289072863517083706963342444002173443054822005367105261039739874446352608699855186926030472435598744500876218574774767356199118739539335563796829136517155130061949290279979537858794053441710781096572686217378024206419369613743836611987540111098704162399875242183499009849997857413110647796489944892504199934217344573523623901619675530420009698028661368766494029407759778645697194410762971552599858124793433891474300484043826106411540660611222174624975979651554967036994705734371646225764278264517927771195067937897183264706073064692988777766130084460753305281669327614103666129587334201982785586876795054202805486252588071908462545613475540931006973239335782681852375558847138994592217642040894294330786496816632843426151598346556105625829516768001504835643760719205233421915477970429848631620003018514318136326863050600027161313975405779948976391635175762911081382603342657831115164234596775786431590248295908674237409724288416333422133076395642532588634451138020311626950933957830321983417568324486626752117882487766746914293805408452874455940297741796581432805445684394239030628877826189664049408597835992042559983327826470746831767615659133690227420139554868654760030411732173955493213303440840130393694130577659779936636078362057028674327125689333371082889662208973665923495138552962833885488256368313121522914299497453774473979574843840055003469777497656506252066235500629215113770520522046497298461932088874669603932744177312137671676056033550824500340011212696724059344305540307966217400465315257344414418540106399316792007111440501936472857515315647747258158975837793122435728184397382464321555935891952206506096636282678480708649337508792073797530985483895076414273922672601061242832598457613020515843910838705360660872815415370694099011934642353110020642338668353105452198009780887774423278377862221927944686222265354436198198649558339889652697477962294094846097793916797132472535528379989295872982244536730818153406374500145990362026346695543781249985471650879267342002361276489899258779215480027676305114091972634227454294905741126147082567384095438952568904009760126216001656755739255260032480305630490390404866919108528302583384084920157677113422957563900700121687588927676316223652476656946145964143374415372883909579874635969065710884361254651549345389929621536772157214246992847234183981503659607925807875983302797831787889813259275567204865016676150612083100822580494969487871179284080278751118114796301137100596974307793629665675106719550813212848904229573813755550513606496307158207544514984555556378249981137596470592154755270296309234756919225717127642271081350872655512844033161827747195344821956949563145437958987553568023198813650264488850679389330132074952893582952568864269985871634540086104015007568999922279145426774268177798091809134083464209560209993190725878291756186409994922783969857835198320176420260164649819454152154008027584141800131859527722923660837652237065897297240746666304360666640070445437873572816734749051338338734378790103332529390295826704553758205076898469471654697324645437728573321955670759527893881127129577409454601393395415376094448281418614327671698901185480211911752366802307854370261336131825162912368187609235640860140150312364283556901542621935191016675555505175662862076965071036093958443947488647917883511651028665250429405654682737337134475937627367535889477653439898510188104876369499205922294583104463031482616267820817341975258453404102903791583729240755191473574389191914380306299908980651720732272162246800603546463809671728458970456095525007397584556392139764471966199240447024122927774715066574709184107376310064825787792036845000914325542122307107113950191346196815901097085993867300942197436222246951680254216115338138625061061022188429552209077602684705048779071405519411494610839135729926403403791958859265138364694116951895440049899350505857927397928366422919224540227473167664860827801192972445093168725574494245199431317245543117341314946026700956250114765532046355562873977725498520104507181509291682127418887401909382583706504636097201065033521175235198219180096763238420187762129231112661604715750740513443583514698259596219906176099313395555525707510178163731715192887592654656908653192595624819374681568563399635167926801897005809923150906622467957578337548306977480729209502951980153593200016759161538767656704254473102296503568230012420632767824496508199968910532208266113225975995435457959712396921552831091872218720509224783439674057725367521726956788446799152646532293002176902706682060276789955211517559958431687763988014873920152125942168201735293628157637444024865991976464845930578931821693174136166833183099083330336529312266098876444916414165922086445618143999784495039530807875465858086238999086247176233786277130579094730985133793103592659465916267366623192097268700860282130892426479135803825435661527182432051281344723559771952520421416691846968812474622870342104133381562002454263428836740431784336673517100560673614020322617793197169564959840009843865055377475786733015201057125771560146012993051525155650399732954509714224006811380058554876883819510743185374060163738215606269136605674208080649697058429279135795450994759440851495298751974472461609521973151148332074142711204028513181715947055239397358844019230215946125552829656349652728881553876109508783499180579818826928686100097248123382786593900399967921157639866733516853397692080043539240518983181085174533138539389600178468648328991167598884357149677340752060770809666926249866951718980812526263150029633877988829667796276412486698960817382714219103131274282343082438878503725615004374497576337102787978679480872644359894426524858648411548779537633594217381816366705825905406399016772098674926461723604411210561889080807756564601944244695119220278308015518364282282928122762304043578708532502647998180829222163222372144733422507740860947835909561070064438236988206167936927913161083569824564406917786830997878573874693251282137176601865176020796867208804372756450223452857282458097226584683680618484404489794617447732570378126290710138582132198269524924013139715186767955852570916550642617589246532090832371204572800840711529417791809682280273454631340347079366554315872654132172146656268503896887324531584371942200304735772316592724772044407537942602912314939907306196742618343031095532802857542367504556115865032214459280655228784564950287017996107781872312649618042845917531919462939415126327225243212278104598748345937597750269839620885457707988518669516699592865875239339792636064928015729160004153344688019894875001245437867302219429658453661729991363654420922218108488244905505355258187645576009991558581342512996938752503079150988204721480752457648254588229017264222212424507115463510155758539247936510741045115848747035655042992426751970809544209106106476459226941920162305704870486444341264528033227386532798913726329766165390737749470294121766270012620428756939260363631827976922520238809821787179541633688234001911350466554018687081363050710346792684469308804946714973640439306227270006879274312651465624734509203569624401617066589743544957994752128979185415153366390543239820559565120549887025367828880382075715933323351599549313624139733642141116110249213670758293794451821012091107579258870044455814848965039321701180363823802892921599409946003236443522441543463608714264535757109086818981221533674329392237646950827322684547877736851618350570531351352031035296420792465965731487570473201660499548156029704211648464991723396878289908150160623408072493349567692388090681908161718391718750542996239725245433014567425415558230240557189563413407202483914192669974336277848333416946936925560140682350886061929306691142023393030805019939250418862473776125678058954876332128372375211311069218193287492050113782666566129441737572262505558310996481553966162317231990842688541790195741065321656257569567594866618097502811558030379279274433909092635849586992898483401761100440422637670169208612389909333295713051936696125482215594027987105050806585006720118906729188757813019197128212240761806100204621398559186978961995344369403636659715016847032729900176596620410376361215728309114578151812722069882466989336907893010778520850142997730471944818585714733021361971790267261015042074807919123267363295067494292191907327832340999695226018216294840356067030975943863079429426545000616041209687144079380331172885664025229589166766272121413635622396380246700103625071924131960398326914351808364544108274186805151894580941819990122796811097613841363166430809647933500933241961253448708185280046305818153294444438225919048850349692557575588753212266382142018405015817419529870319262807982431108978811237994374682426418908491287919072920268191148716913023378980331749054987796345867188284892016915320135513251064652606189485169142117912101069883044183404870458318004986697314984993246313361389053137274585305903584470404049376794878930363546003092843903135169445785534026188798367187463724656837000447164606329734562392952807086743252504345286452563375071501342951474297527452263805239088383474099977155570725358559709851318784253365519655905040573886629436565958773867717065331078823108658727155413157196418652698283140843803754577610596782334406938070273983167797277141269571149218165625510756800302450618268081107597981219691626211336075855983558034662275396796938391056144542713039334654808791967377617451436120259940552735688455140279442340783710040281307908688265969926995197515015515584018043428016731180010032031088929348219561005907840102861950137129757746971483551671751300130905060763361758163234989456464832097277987868736195486444702728710630548129349726712301944799294791207126829688842617314318802370372372971596132442414256863793982370189767493117919795122886045182473182981270089338190477428966764537246392379815064793446719546678044911529216088098738464876002938879239704080197672856350266083269029168076961987472513796376838068260893817099874825526731742057473214454757376787021474963512550788538700496272402818469662424918612549234293876751635285589084934797384333019411401399287445564181691961862201839759618514219766918659916992046458326609530985252117860218748616166328214205765880672818192296697912211197962131289159380969095397523557072714508339266169930091050586128317485818252598148523592454064204187502794256180461316515510569949997061168511626613589398738649104400548866813346115949693536570783205354466358008145172980194408955804511187523358469639507621772461235790443527555630117474495671235010385882597869814313837708662980936246904059040241571269972112804897495920266241104422842938240694498581785985714272107760683225659905345512540637403243904183422107996644965246564684521280070004585133540234159786793125713342972281265004175626401918259999680166702929209531707883376253383734171411113849207283764136910705911936582026045522416758767662771433077749957768843831633200620272071421245293351638484080375706056604444393744998269705874850401404224124626698934321277285585701880891911041599752778041636915206657243335749456956496171146660485891061337296329361664455175011320728976425686020746587652436876657316851181354995343551969275072424985926209577287073033113583674114657118644720248961107552044167408068771345754955045582254139911825773762754774620135467791461972858341114631054062650435914340289031072705601388356012182624134748559561192672723979896173482597976204650827589611599976259946521953733225045835445726533751278833150571330158058919172535893435092507449053362561799832774833604153521460137061231445054356011353703697239145387851223318715388655399659769946436558297803493511476181527160917611171108979003284087117819647672178409871068392280239228124973184096623274104495441585255225355747976726069966668711099717657826839115436192954718485491683791425961347024686606846921457850783271634806226799241516446912641426681461238442512697259769193009922132169589213355859292666517850428156748065035672365339481254860679186910740887213518127546499986250215105595526597740426159533564289712772696227335399846008585393234552553235109984549119757563859249050378997277547056483986913608584278945952937748346163059123121269120465008220271382224523456684632082080542013856022698864810563062992639373425854034960924441436944941233266760894418386269887096952615659102254968743153350479525825262376774714017880752922880966145458953839033094368677103999199054201117981014967019359500899236198623224132201358148792820971840879987432741304340536930267187793449911878319018322720579084952584983762700713790335248475391890423711704977359199150328039857295639724565160454701979309505084360699074353558690847439646341247305527754976177394405932250441370155548432756145836458684861958517583534999115867547517449572240229973165421755783217625797956961125916807311889303455179999881453287048118517888094199219427546807533195640729523555000433104355068964582626153918956280052644657422557888803635458815497543141183431596153009703341658543705801726635204593852592515535439893176480208900394847812186815719051705542891953295453935342197371473773272848422601820322302848266799387043092772181042731384904977354209459149052574604894428180689280571403805344144599750061683594361693127192512514115887751788424827484832111570533127883129692629827821681036649528862049773951638191457287901506185426972387896747348539345234014841207579779781910955534020743694483448105954898597579715349976586079556646025416015133909697345916642615326027205424525604334592865500890753397611236007599457293214262009373095106290431247962991760378226021159715275335873387846520093180414743613863610512582057573221556259867874120195418126450463727041033811635817811012656668760829023500952960242634867741376517971052398329460711207602061775661730255539286747294111095830832370599247794615630961978970683161248117841813422195089098712366347774700962928286189945915766114626372493397967583788065508351949240417545976080653038593789414374872044964451293169047529252833486092326136549059844515305432371323215415619563036676577723534142998669288894803615238764488917740547104830135819866292274843212755854436066548431821449594972757848903482363620345520207978625806781812566266626204079331284235128919728093701747462687170107909980986807960244078777768635382352468985321353884135174823538503961850356906516539967712051676881697874313723366099389992934823371091709827352690456467218847004452359099007879315787502635114816222561085895795026418304285599462261853720716620962491977506437105790509017110446967843430268078766723628895111170743086446291324243085611136392692325800263682432525704237775255801843193858554275522241331097802738568065195696242433978820942316430255756251012856240829223543603309110982358278599226584475536869278436228773911696241652617042210077630779035641197576262278509005691509995641610928328454532771233857347668595274754473400888116261092971551142736784455777217455135945364336823661514004183161782423784813849872999712581194983679158148484715173882315526667268865639653869379746199524766525831945586317317428825977338701722501686924034749646319064712800392142366836228275684116673066845813872368400326768237045853791636679785619005388572275175687247179829765978372062779344143795752181829350491158268326024728459732406909053036924213576677726624149180389391587917486376885505486637141253669484210515977352722878293726262502466335444533414145377915039230195092187776084045123942692532428024078506646200786486138988565148755738540346605894973372422466264114597705835609459673761946852499303214255571492310185869226483837196768389714517435831746446789102637291841969240749741077464392297227602193119497398140721219621933975449506031515829574189521865327105401598645576408265178919380059297865663438875300828486122678103740544061926495584392092698245369314256144190180858556294459357494515501387949210711147911164800537096566343012899827652306581027290233796371212389193245936673653965273877020376890576056668192201915369776867670547763909428295373392050390561829585150304969652286877145820044287688061821002602746823678797235228426238581691210795224128554080309969963476064607266990235367848839947275244841007888744013305498922017120320757079379651849540725308657665031938564044100643463505858878214882915564463542594857023352844511101685136049653093353552794908097919869263583314440634984480727667291008693054449548920892488442127301319105367282033227947324981623880370766715532376082927738601866346306545387333146524626884526498104549807903633857080175303285292613097889675383879624929204111315512812282483000704642932822458796612136778622342265343896525212469487325533180482565006013676332697752215965295090330059958312915409239669896956938426809787141990488826451245233701805807177296591678054083010002639204401164025783743383104179624372708545698999961471806344772268387505893631317627622602586362777603123878589174221609103618416239122394828919908927920641598813837996065500390705471160094522279114685556759060636891860956811133429012449684100287270517582238811776172998782243490487298950852710636739235122751877939199881665954198664913978548661369374286721437201381893806716110969148514453351998602976294485262263830212984879507378293923438081866018349188495805023747043099252221322776814472350007972952502766585227396138059911561860437626513177865933042582946078471594557313206715507061073639983340256192519606244819216911109251258113754922409611593507228419613389842216364131224217420172269890348131816735296332340418216781972485193122476023604417976253767069719720230952169518908813260186576449810166525990824183399275501245821718778386116216360531801565484229666999031782521415667459951099561297087675928975013241799752310588330594371880899636632765479871383750434975399767220280045434363997273593475020217060898341377235531059501031805649811272638997299862413493022949492289324394188405888209803027187869630678603379840285439647206374370529474630154494987087111647337136528179046540809996882261286121561926924974529578428668839163404966783166370507639905281938379830331838231847567087040970392857176311248611139264326613337863356060048780364373004737826558881698739905595003376439364617149181560908625939948236966589849061450737103095070808357079293134975009332474397449038519865452022220978437623334084753638376163662469521737778029714452106677401027379447353930817429926906797196850345847448978368187817821484638899534234431482978178492739297787437473573833569018713665324601156194214737657776623181698783870899356594429352530747930129032375443037353523618263572273754367701862476159673881250217623043998166092604640435003879607302237890146961295352488051648781472368901721858405023661088163215579773217100070265889905242595995099501928439886958582968065061317074069832000238588675088441358907602070958887582188288277229246811785952541956691825250470180716759067886320113306322286420884133488276737884312792272530405977837356761038603519970351769883945121516111037313621362556396944512356946219978566705458221220558140096575198321862924469318401491953097807003620834401703120017845599757657897333378647211594932503358726798253547912826828860610909967076928227265002002942547814542738026202301811078157806322659375717423573066155649904626233891784911197889083723141586233061577457116417346927862275355049999221092959056855008304276529930010163368154742340820861396515212568557858549001178418047933077735989861567740804519296993289893952796058725351091266401882459992041135766430405387135711164806771511915542417404078016794250771598243252627330849628758343553061718230529686915415112650557043249402496061146625966612996508298035270806039576036787035774179200932362430132097145385240199224009404731720497125665828054255346745394864753009714111153346390087517558852239902489649639436860108430100893018055930041134451139394764560977779505103932563470097958472521112342279750249809400698752075017252484212414590071401701473193340355248718500466104972204919612051698904605356165886439851136732272833642662587936337725564574331950082702656355551732143052912917926805402689073215363564123671529533876730082225449198821232421424270450405788964533519557514182396232922806039538874214978137875906607793280513640124152282971871601020270246776754840925008323805810528598104221684719033956666699270653028189094126512420594128544748281275693385991840559862888469975737035485217073841305867129435917060313909459580214031412784543251176520317125402193990046918258473456502926906372583004618190097458549218059320893497900311537269772309424976292868550641855638759416637032701135298432191662347069930285584891918068798301756547296743929670266600696934823708096918045378480467008723631972402628217591224750577162946639691920085468444050457992484266693300585145719012458159816365127429787092534494031084327119306103741206200070904914873389034356438760467061519530001870633462007737673819152328662500040413765234989000034335978848471952013959094997122208441361383380767113480525268802047110872473500904062694351254019683525195015587407104067461473648139263436249104989618065361930585550772429876858567600374084351906761072127308624035814918641535057029525707088793699018798601199149293227800759092674668113771934953752779594767739084382527441475912287488901111831505743250628775035158942537142682042434499936679234167267743403154661429954152834608100694609986631516602083054355920794492890086237430954510012786441353237314669251505480603312130258566160357378697136360734383758302816706691723680219012519029299107925846389957518962436588330634490112090728169425165478847917371373217624953568356129094674950872156320827015366196651950886815743644887695442987430319729291951653885398844680190924248746318196842185524027480570611316484871002313416122104514272486521237409479118530483141203085941189765819753838596066961980044646859914967675595437022038362333880919327907715364531167840395090519796367264576927124266221831803957953555047652434414645159126361043198681175767387321388742349760484819792273537545350245045084855072724221398311347390163032916583567649495484636534948859601631421722227688730298506103896150789368882693383030939292091517255628370212441411012040601803151646270310765771666217559481972588721341461714712746612579301755871586256566639476728838491513046680927811448193614914982273114118091796183526314735755504722451028771652975295057906878484964404764995699839261468073823061479421707966258820039548878624090080647367736294371607991239563398437512552596525242602666016291734341500610864764629492299955775653647795772634614992386316798472861741514445270119378478498118782723727070624174622896592220405602739546442932823099724427122776051943741514437887469948978960308411412985206777498309759293810961011344147614545069387412933566031975604625453834671963329958161576865512885862511331512621106736692148776788623007822935633286451506391557662680289473542773406065086947295011471576053819061701479800433429890115398990686841723337707726815656911980253683182584996237309545612522534816931422491908894059340730624859626062503719493562892029869468145456919893169808686883869728937847692942254194715279060857236992624394542089970473740105467427880109062866314791433936077819718075909786687848416070351625359156105937818674941202579736991113870708822598752985031732115738223409056273608714031986856186456137331463049111337710851250397279386733983222819792171808545251277439367684476446948366979125306489672038506464253455626097449710231521804137957151533160052044196680110143407562718689856864574706909298112647369224988274978567429025908054747017255629509717834502198807989678181434186095219922959643094916852333112411942122604750799036215006480513438174635224158331450340652215466147275379769707916302634665638357267346778805267416890481292553503438370016875138520443111271743649377745546959675954598307015886639893336910165469393963436858100887019157391537595241725530923377874574056845989453122744892558825970744363159604312289540954163672301495415192509797532219842737588560154387084603204591954110176700256527508731326426082225415322292516385323128283773509290829226616981566736420522970057582799213143203889872352550248851238595613024779881310467558421195088428051487727889658111672718224841282754914366123258751892920362093657688677421218083909428637618776766960965410925785379505204428505465505212239369515789371131899008272296753226624163438559654860720762010535119115655933366978028774215252629403327189464131596101335566222202465368023290972783501470919514504689325699749120489833652298980906426137661844254223291801553951615423051908443289652084391556213700468086460653751621837669234078501751096701852405942300186667346501044781536778513303670089390795872360557105638490951247125768298120686609188461641277941447855374793636519769739831959130345992203332384505573777218145199726440152389341253191906492890610771672822743704408245548998980745037333284088165283188594140674692051691899587694733016013916874256728183476624289121349742334914327762997084345649282348194840737139260172100014826421200754125927994232637488498673978099058604645243829331112228306964475456409349576766164008587632730059344120873364899913694992462595422392601808830582987601184610367136175627331498264134491112538530763779918550367866483641397503218596838998503209310242865558806721823850866498577205573645467716755737856471673157240006735526156530102911039607649165106183472283493734413981184022278671269673360736824140378543618434725427928580761725798005525657167541829147740434133350682625463519433161017744979838038964804936475111905479529450309922203427684041419543729703901281736091567309526803772931635314799724731832231468663209688652391942041829693744846307149050594760281386819261250483518536661313600458405786552238687319452363796428048415039473392435071542539710382937117047442690713418384168358663302964469660123966871872057248275944027760702490458209695843527833434142353956450831606691314697248125985489125812802741389734416630367425943764298599507322249430932103346452098633049371972581569464433452171908662976901350125157670302969215708024083203928112386635561417465231378268513651966352946121479278869899045248484131937686247923693446362637409989400508849312296916839355650817625674096411653740683123106963390971591539934804494865847182627612752257776318548550102003352974686459252003358460345679854687325968964492654429761934993862460310897836990588147274472277524004071034020706958253578945010675168455356002993076837026172872640657910592743719714478307695934873671045073513133165705128620301334605143462880587567014651857848280406970311191147975168430698510046104952299082364972119176727200638043471180271053430193349367831392209098333081875791441356988367807642352029305206115303318944752001609622262056699568623126678702187772083128268014280026682846464917190462334828316269534834632794112017207884053271349103205920426355603518477270010307506080642944201703128591212795217958630498155526118156936940669266332847054370152835733059351625838008990575082178947063013087113931715834161637022542850147445895769262409865538480237101612263107181061146995846496629741898343698411006962520079414750730586570485422164497802000510218606462347166170336140955764233259954583214632484989009198941352251777593933747902124822003759975335248075692882016630742213876305634034366792396961235604564754592459451961198498987017810685675221339249147070061906624081391376436409643349036988109659838000562789956681077200238333102971819390292216849216525752882353520468809708980524751021760362942348814098988551878370515959878456546157235059439656931544344135366004468149405046771379069465626240889225387092372300113122548639687076826317771330217224556219058075076200501915771314628815627890201203655555254389056498400863991921112692849163138331117451378124280911782891196126923783043037356473159736244331158411690555170607111000354954971293565431895249643698489948468798458846614749047363979664281356762408867394855685297471166497973796130887435306932880436199776257979482543859709469431549866012825593599558308303230672518746966921196076432391176922154606841644310507526260444804466364705334037087458368054826621668642280025801701049998528613265590623228557387347865362574015426449391563608930750229019121481571236183137800549560100792219928190563054300442232256742333103116129878552645682808800449460365450614547441158942210454011929729061355116684384509338230407704317057769686278880885162678659747191071332592420435107169773164084573908791111561876789984151904871812365507457995205793827105590618965627195044001942779542243089112098723171250002112770188638798477505025498391953648325059088047153687803586884147550624762893679625540264466189237243306953857384381461717709315550365527726824527448260918417177657741258189825281539854301369518299293901281337622687591361984178332289304307895449774136073218688996565973332446353363283458500714416354309130717554746361104240062651357993596712931145743904285142671461116125340525887189905265246341236861956542064433667570129316055197765939832813252349718452749349586051072301173197612847891572131507444153085406880757052392890124744263543710894514807572772471444495954653374594555307340254274859671180495774471103750611934474741961273083215243784239406464122736115670635674206850538526492927617964959742833084944231548196835252668848092980545019307966091037818007637943089208175526313105608525979607586532440635131382115733168747676919240887719884773042166890939096062939716805786397915176272829886660627505909629604065760460158694239257860633432278326831894348434856824289962570269822222231272877011323938886416362725487968347600873797789453997108031051291054407660746467463543325430628975592606241826738578975637669809907203294622496231929840171777219401888362517984431986640869038354558252536701071560211494415536713060079199187546127026126072202681755792527576861734632885907262288910881585064241138721579511288116351814544787718276610863964255046512017476426051452523653367359331844245241770388974310839078140186617181507633142326140444998549814160814249915952516695968725373780521741660153352834738421615886508090675151790534728851727473322504133305360525384106457341565968672799682481069030327087169536425943202419895977525277761883738465776207415861640527344317527384022652602541873654992449802166259185911662228298557831123524388216338810259758869885291921990128791451611030960610696377776956533111902466439163768877267676324508840368458254919435544570636268516315843227328579090715128146185380260741968568393539597988401199008372776220951631259812607740621456232109497663190318253297829361805911605303232489841109847604408336304305275947091972535133759611418274780559741258713441468945832703167233254721646398797398784043638913721835145756006669705427188279660640442557418293995506917816757251220232037624769590178010687798613195449237021062170474564443046225969829494831286946816508405611730426938180119253937879545650013767847517736863571197380735900312145842785073698710688473025616876210008103023852255148810500582910288782438702311758155838673200516593129612660746426987935293920712880655639925784034399148451667678614211578280167079319594187996532306894484159516358435999105037892194606619009122979966128890395237221154311558656714492668027977001220830828654981537892675896106024621555187023584488160227616211468687248615415500989028927370972402309291651187541030658764950262463298860624644965917021731036682218525428639046939287556527206315017212715494349381671954286382629737719648895998265481349618526030941181414279077816194891084338409855678893782748671385739982043948755325814959753199226884062817625445311436027701592955342475058852953443688261273002938612625461326799256832878525577383845720726132609124345307087323057368949396615474802978462331943384165355983064279344514330784782695866936005730379259418848661388473816058244559229041917829283516398401230212494871967798917919810744470125649194791654857484078926735993814099188309262133339375389918619653522482999941337936911230178649767808428354115330600073308630402019127783728577203205344106623818927152476019248867311108303553294160049011595843897583406426842807517650942456815950862234315918288896631097195604792073514183600701652437316976106213327350479829823150823724554676693255374287607889840354536204904667216431934458081059699150330846288738067882253622571440211475907319672297071986578970022413019768292779745003049334231302783097387265184667260509030392966830315780786669350518449141543797030872286608514570207420352452653805147470908010369107579216402110746283701446389508279765175140246788247110228055578756790930280105798178357152259477305380948989631761504470864787706786254357025170827448613830264699783201432767117787695578902903860141754308296576323582496047270585496188581952193629210884549732951804456820267961158403487433862162635829736966783319749868892303636942963765953063433251568897053210367280286898133994317095833912967073412296573114606957727779343497756430232276565828401445060925160402109292000128621445181180745848844776030026437509353791977717002187068011569344443908746447068097819027570525134703330763092068963605699834694967074941550724974603256723600542239165497602865751671728542061421481709733115782012126941397554519538426333516548061888629187050471134942681476575146581789491107299169077407192738530721506334614109307408330476729320310500450557888066488454286924490060051940113801814057226510864080289668858396912589103730684913168138365518646608869974780010271445628063507933910127123739649686242061683413930562384172433335384406045480483181285222227449051323115775006046710853678711710079462207786723428014450094154619400168415630763150381972925663693939554390031818273948127706548685264709316211676620000747658791222998683496473962913253912765119314036273427916502881739159659804155788285241016657859731003682446793195742852557743706947533042458710244737722768164087095255685797954400142018963736813514770029554536673429266349752191772987171521203232193110662077079235557879038064922390222356704973670701421387035212982250128660092681044808603478208860881287902680444688776164465897983613861168647641803749004127120214899428030439527038672848711862165897573774483058869131282547900920038036176211828587862074802107486616911428388209506576946879876399538114331907181169167552031500948055267254297956722159539488030577059942188058056250871450604046388589301086855105395395712736252332618417863294681348983349903665250656326391389629569790852201654317431525250282033483352035256404253036144471114582768986587439536757874363864079078267907810710585861845420607385690111351670194001495919988505029648687844192966778219967435537517566048113479849518887735840598633062836371328151584201441575442870262880340436298118721927090196240026821324862858282249506371511058951147424933385864472926608527703788816436657534072536385862422513701093049774254015881680369866018098209737384760937402159459421030444937395093195027634840514865723357359789009037204310765320882744978072919300917093280554531456005065310685412696983764944865441404561182136404456432481155230819400568494743301445943960305253634679756898612896400637204505670373107772220430328771874685005175441292648015982111768779814500840900674691949439799016012266843601305858446547963310614201537321099764418896491400358483622628197661640652370427024217489552077224747166312825713003922825436595104554812203809377252219933082950337960585060490895408959433428033460362014135880926296774600654533123505009784008622483455309412749276790344138275297634509880498023664582166568652752074516958185581522749635007103197901566921886074089973774610205301132956946550542833697365912774573381899410871087775113221947532267695208399765077020623129126800623899805044135184628551033477408561203415603171474985396402078154165535884351159851108929444434179346725111909372013238945303629611206612209727169581367810172965993021510424949431580452758963730219688106747003112985284143044377445367755984978013432628581283694133334311733217105215747395492199710399639915140940053540784843523857740883133674740654117351953075062477584225380152525212963018191159601401752655345741465304140131786743204446874863321760618865676451401222610176768771145529086469762785274231997764389342968143367821816414625930183856717186462919313159567057816932654728296632879947137713459740934675272405271426619399586417087253473935253398504361590959974498041456395888954245168206188732411726886887778769654699530945201347032046213193180446011061562928385980534493230606261393208259299696564846060372311753141557548702118931324377672388335874282073766915411605898138176895428436818585961105494895753404704032262477043382565802500736565758180546376453200610432408609045333553736662328560976116700510303410510791584802389868068362522827570284327626610515556308282359442899664711872441611665901592968210342417702093133184909167570937435751963496304540520018100003308730044251117444818517725734624016932772619391930034843054584469052547017371659063396127271189973114162027485766329560508747570368929634992803487707968635546521006891679666130170257617997190866542617666819190258386928532671844986754176923285585366875422463707437532252252556591170758100078761146178126732456945772275121695338016193101081927319440383530915255903345057909702115839124024756487446194520200687162019580080910200458086292483985059035637818690928056269703209184365813905623140453276389390779335265587471303395500179843702815836881313680661508909494957406511296492973383845818577964428010314381746410406416229383137443374829920780188726246799124247493206094486572243851632650552346113974810944620175189968891299546988938738166671411457181122059853932498416041343061336902470339891119907719026291257682128057358640191089577817950525127363386298690648820030707894619626535132023776702525340019791533693798347626751012255257039540165479176564841407777040470476632138597446257604158955137419635146531150245390788810174621148077945217788983657319155439503652956307692060127613794517247777123522882873729078370957664011213322200963777488331099019843676813496569360109996918838098780782684688150948784923760876720415332538995565607945453030641665788814659740842306739333247439447476306575402251433046158820284140574893416480038746300270197858402380557321850756143517950558772049722792560930894125005178608993739431162001416812969733818320580631165296790477354844781430407742742767516821948272677757733376090241701128700831609396097690783185046951786002168623341507089035056376497237211337090690261241005070753976544547084474952282874256473828710876043598686533396581852539837810020817453035658738705825015222942821585048798585122540544232166237407659773238074276992770031769816935802168830537493591817016654936778834333147875900327788639465925647958746801312634513197389842937744537719215272130499272036351029182498466764088969510271299312060417018953985866236498284083342031859896052483353650205094727117161450221145782011745164037584440484894940313256033909207060056165417244058314149880200541044924464387986776457988333113064388633095058865833771407487660364834343696712214507103048924830347577575279121384426967995284939361367880537756116557034723132886781618930455955384962548375830927206746605066603345200823048249526714919528136017289754757866415341951404318031338118205936412842983054780136506757130415318186220309629373867159792459591290375634643891751691393344645641995865831035055458169821740538623454022582569108205298223980675774201542578013304590883421528849172870805749771271712946643873280075664488356974799133781415677014094635864313429979179615594367311061130202447651059256233871072531682616456717635788806112098482036520519014826308467966919301841176721326519220156536680494141082206106788145195788755788041478998084335575724328014496379745689629782842636252119178858535454658767870771340326088234578555807431078271631868550802516090510873024995746426363628599278672600408757583009652714776557569839502435585242980090101210606871546116957957889315611076283273586574904702943192199718910572902291959269641651934973304051885302225331042492346639155833667599665461601600218136361664342990601144502975309294485274332562257402149057876118100941027391611304839088782542157309317044649540710222870870425789590016377043543536170515914250825607857804168023765588524180803446790464242889165593540099103817307229619585635891664565391175836178994294070380030429432354561283076606351772807964560444992534708147839943469076247392212146421019894987079723470756578850989432988497570187890128633701491908578574517535966775205852766662712125052102872094871459154027003357918128418011303289146370376090929085009391835118821898998741733323150975635717204407551657617420598122180981861071189604803950673446379324561057273564258052145548421487115172863621351777956153123079884630150711450349621304880934244261092500705640855908367471803450084323812934595695098986577383027835393284373799411898397215513642866949785850727399935736229310219887123332962889326366087787850537453821878664641664146336433072075596805640141243886988669859498297346883322330462350927498073724849445803499600222528716292146234090308586397227200926247508390037714372139730362719459876242187814785169838069903273139831318333104227276409285599800878989684351105724065713692688120856428468041049732996761675621583518698252476496173928802867676335141780595717089722137322818305721727960505514847352958234176856111099660026553355775882258702948384648726111420451303474253138432406775906229135179751428990692904339132711485016276703866395116711505474081188077729836192721935620915218789570203432039551858622690392914341766585372593549830835109602095850915815769013040210997691752200011773420848130848618714641943738014332230024616563681513704935958781492876416980993894846278840174838144897894053957147286173700594893826710722584191273061527356458913036804201174019486559719610178803784532264384051550013865438727392080844812451323890086615124936689444792265521020796521043408576435354827712810050511060209639249599510168223683058671124661372965611474724310280526142392386653731828518668865003078541940813198093200069464276335129971993365057741229975689064443081783197208702616139724944764800262918171324202574544297892754150316235538292150540987664376333779133232556461568189741974982413340004329812522005187108275114349464904913639177751591804603401744932613793537853869980429484401602144186021784037685949002942662641664260065630517714702927167808006614981549283508636303514897383420123051644653059270652130023592213310220937324472158617168259057605837200834753467013928532717634770889659243672503555903311992918856913031185589733396169985011932240513720335085074444452260757842142746035246552947485706997421009923884545936890143451120824888486423961216612705935069659737708074085549571273031408375986177926862308746305604264909359237714100134361007502896562926536060018455500355974696441413353748838791506998732137030055570266472417196452675765701015032522593806381005443508397606446559684318670809604626964832904683041644530793126629427189130591059953291601595031859649937699921666303656602879817748434536040640729743719685292154095721831198276731734775608038965784205270842029247998676223883348455887069778947335985258837363886734726059862475514749357918322892529906957814862836666522931101342086056284261679263889506030695278764913453111009760092848644172655711922842197156706517551812963044870345093995992666627271620550695448710454737411918393062937451735951815760355676696203941423445162341476805903184184712142383907274172283702429286134560422841862440082994222100890618880316731408876694275995212049500161968208659750682783805970055774702398163600626412592614233981955499460571066347066449970505792211333563695405058484149546247820269995958275389476892791621452703485531586113565839171963908626348092884899300702059291904889764892759273901536236261780644162758861465667020122532774466245249786925457835963995514088286768614324983232154801536192385816167262620100975599916069695544693936800608093279140369713478529667846204556011449585968928228775719842461328209767195119536742113399160225739918355627197744960159032533159737401050990011524532164191335354460269463758703553355248491367029581646240085414786567730584510080483260093228532380620290417051667705912858794908260356409151544356588650483926235331843762463848104928088155845047452154194222166471806234812864684650332294189925954954838278599176334778978817195725703741156713620374386881125032767441364138057919291629332244307998167844769771644784484642061482146107912891503833806077238375340491200482100337464942908239114813809185289632858680322522611722476466685589617428167502588031298870715591438391311202953576885994180839717449379614660205281717956894617718812154309658139973191563828020113820957509859135748531900307942420185483549173278753389649620572051621862875229751947137449620117613930774141389346504127128396227151671269460129371264475395987654820097136443648023996454486816614264240318656672192046364306326621443163110620909419077229934677577119266058014433907190635531511749274605862447876907773446608207662613276171287927637008433835953722087073369693496837345226742622051078839267475478818025081836486596250146960382691534769140995077750309868074978608723092208382928817749230783839859201259106825304131632161836811369239028462352845304861957431171477669192295073785401355712573163971833619149145066169737044301274111592403383975473808127976729392853308354319911168286349646813013098382141672945838660665546294049047604950273878278899965689425326051407630320368087657829012839134804167410782230233941338184492541070369502417063768814929786882011087957446239084215066583558316297854668533302951659528350841973181570977989864226662194201128234343521574315419054669771297953160903763493422277725564553405374266260976201970220164057577901072767082116627284875538702838626637950291488265622961260596402106522304413433988619221812782113923030400024346302684821229830978529672196725991829551916898213099260546927678770013550161027854467709742506826951726156494660477694128036851534240111232095022185340217052568480609124182535184757034713205972314263777289616960743367746364743004692359244785630565489876565000087495529382299979152467242595075633531602875364842406475566537588110155020547535548189026230321607707761206958789463854762145795383651703600939937441978879223578345531825312802078060746817721257169567138797003064788302825172387545456101620540294435707211139964199959364517008971386125164901440518083976641774976784900666284028247156092375083835388742401951946970587323010034465353703448508304334380267502225518168741935693731958309211586590914473412175866387487189470938286452427589119755067355018980650569837197534233912493686926323798091853721016056308200702621678643764562574274439352503673049788915443079401779287398414415516749155344051102224868158478483309238853914427610545297275168520802457906585246363123868541464800811388304305818434704508312297642235128036285785695572357482519204374417868083580671667545602276107839604169187342314816036617044203059530139847014768006354634523078595879207007393100929510851227169894390184534523913532237608081021114968675947487972414887267560515513938099956664686466597043100723156190506923426042985860231608657156664900954449939686400451083751509143438372665510540022290735640471984370710467211756449367284036468691807917815623360294697627492710782062421265691268425952099421932047780644375932920789509358845460597595770162851304977665659716905169329521988402800763118090966908254500403783255373692932970073739180810657390715624066780909247603396980507268492012651317483720102169207018163800118962236939331443745663978007516664796621404960132414799326227281394601716370601882174268518857247129224619070458862962029068770704713760177853102882602996075673469090527911167461727986520586459998787107874642690120727208774393372437506821473958956118231828930491979623512544586491647896339228814362679535870660248998275361994844124073144772718624036588889829102504850162687689592146974416031402372770224961894307559248440612490985951265156677445546710211204095036273498985430843088857594275058974950516748625796384658076396853776663286804684679033335668813643211986465091966701170237539744401791239177882163729410012670029555934803761235166511597975019959591384846969364377215852953183150764637402621040520284450791133744511021777608326478447887872403495617317098801039931638637388895107415147736107686718963459781207651916103102226588419707282812342481638846581544594907661201675369539380232759973306026858729403461083256511065959633521978679126719378232280530207743437422782691554593205146964633117763818782368676507778980711975249207714111086716588833622457223799495617235582300787344543027087586242763148157687204860717769988971833516724273798053321600228508206064510752982264151652209143650877652121092654159316465432073654262505953304099210153678398730764151134602953616089358849546430011032939366871773202133395139750553311630505987945457188011468347216022932511725457056592611654302360835183661828145238091038830127380094807601362485684861554807369167699900126868839870742574759684246270529303378047136688918146835570198292749092207504537319630896044292220783207671785382844758433822150208671439283378649019098356376313964348756537939220132408592733431014307643734806486670378402402332087782521686320571260425917813473896192464048724843994313032542023739565227588414383483995678167582145461371302039374748501702638820009360290811695853759418439037670049993401832133290479499622630599258246348539134056216669394019995666205150710045872433097884483004396623374648246513937000011447287955141859438082278582304894585729116079382574876107509358128391102685135172910679946260021926090526697547266130322717466083902102022262177216254668639260737563708576942263660744880601632131375848564929378591900039820382427705900404132204399557747008438452109862406933168497078525469586025798368884767742209632638935229638779307949990262113120097702120049523432321234182728965498979418262518553629770092168250496549567300324406677496857556017694829266219489718412419138440540732650840875653539282260545059847049465549632490440020561498949343264079988538882521091540162676295017235257739945530611994185122667743913470776370727373945596728783512295885653643587147804872796248011747216749247967157262285989595410289456513619218627928637316635908964633910788867088342307196997713377661367489992414986908902490854794821372416873800818479770451700479392883732304671147244163656725509449603669408298404086138641578042000779248307339576765414346383064332179511489010727716814125948906437599191691457450757223269709960238406061844508754363032494398505725716047497544546285276488824254366071735817266748715159330405333245487521169213771654966868944466864329482998985626399101790268731777010515218755730519125933660118899810284683524368387361191448636858239804105054802317471171063980888594945359481395658954847397185833145391648441613093634538340948275520980985098064658930207635214168302355041062503862764026512708516290582213784044530985458535073230129706538673866949347300422959829032804293458483584400749985583674469645997284828192979317326069944211637375039694187293079996298091836649668637121597054245391836811369053257845759457228475495424426970562248850081696865593005199509875151310563832541242099894565335993244083753707036711571361541342484102806229195419317738517094721878855508770794908646200691498941701279911023608065523189817848471707226486242674015945991910266710250142206943443262464745927063084416667843456047183846695567236468258726118454383885138365274485660310589681051539826796286877469821802921094850029608974876295841110906771147808820692222328080831425752018235341622938344812471065431159189178130931065343365657850966061176784188297059006524326562722857212676695161434839044801713187825969383631177213243545501006890809057647107029982898139917774175520017910018143529840042797604471458259055133316575323729708135167962249847278933673650642698754057504387756526210864267439383144661214986106114381577408726578513057372141614783933227450057851672158737465678828553538292747216220996261974523553418619849685898561281886843842849074056063386813711372747532262870688074687467583708840264882713520448822699085213503949793864492271351501549049812331029621891623545316621905612244398284837390609885858808410033149580959951473597230889515276349562594184197903792439827668038665647517330502479871458799189640072404187483207082269305783469835762269272093517243122644997799264347928719750085058507615078626517874062293239750527285981732389894630692402606044028277233163759269953283682618750008291696610386704214850368289534778326819841809980740783638817586935034992901307787835929003427432393787073633090776291753199282435679357832982846756057890140871322959203840118614833506799714301658250192249863386680408551214944907265073589629985223150587639301503020767354826908525027804567553903776241174496176101290755701175475116671340050485118575463520255494081415115736662045020677834394387346779878313480318170155005343345778886176237641842789548367707636419074118878976698317735954792611198062063836294569186525256396042381356008455530671307588930199338361833730170572337039515587337585436117494827975632513559937094577457587625241121492846551209986822312331424702391610679512843280428920223922282746877916089994555509588128258515814910638486354397143365313562801770039601234819497839690305256685119112683194668555522110731704082074205046555932392075249631384675651633944650107860634234188356415787102618626750912568351500325853491479116759791070347612881135692355197594807974146362216346057246339498983269820099153989809259336920381832653902149584213774640372206872829685974082373994025595406419399477351770525263470956325186961596737504971409035687026990818788567678447082023301554850859879736219032552715687585010947064568150875139584722402482431242888965864652974300972484092739154454998699887536847446229253637924729895310014746181314267638746072472314486785508026045781311625727763939254342138863879124070735295116141600610350243109420563183336450441435091752841843018107496630304170133764889005291785361830486517999669429149268279159602027479787468327837737382705529133970604806919140414884234177076443551061417707605938083910839963510066276930726558833683003339732937952881327798831530987397505828910070434575836090244585936738473495988465087127236782785266182871258405829212097934174525321522213040870170049317839435631307764926932022847615863282663673913844025447022745200019019774003065934985381735249157031090724492205599408668539842866313007695804938326139110631732737879814405195077543946523426923092157063003438448009905915430555429428109594288585301888269989754158432469648965479891752814970294171326765389078306095336877043057005720411333736160003777275362826987814568716299551779243625800421463524640126469611486618342192541319797633740733352430079850144583546558511487707845467377071443645390631972803668207567603456754258225680458028942867273515945563173458580269834424063238369821070820849448487523933062624264270118428660974830120088371598224523663569226831766837212825863120031089330468332828394548060538056347383028371510423983468923749393293082470230833681396074018036959544727669322498633696350546163108486404686529515339132240981963306562277166148895492419239291761300809932996664490780870179413177126419373252996450574617375686168762810645776452723660476383490153382432566166847093049249823436801452015476310773765843560322923253427717976292149641277783798178543514913644079012283973741649819709692458470950282624767508130852173858368862599522300399103644492770351097376607010656445026724461240787882303868829363392836520711745254634134293351345234936369394353764307440645107787327402102571947311215039351844320509129046836015402262046563807395709167963830877651059070788845001352960924780938027962296586337270207157616421747873107786095345880927222759622486671493029009625904522123254810996360158654857994113332126786414932603565398250650701391863680974003550374517641685863516446067409751185299039315211171074420471202084184252787670974872413180890759936634385041070187275433637197267273647385498758306134883643686467893976531519993046483500499371072442687329876990962261213460283443195433073019625762041715934100059895316214238800839845153401847480768843628385314754551342877001114673916114851333578129635462327108048145019204177798145440051972470101657748702438841460023355790844360970740089943169639379868648354283212899089213077441671079896798749402848949771603954943363268166769171958573809867161988815812903243429003016674528632418809343762058910242329650423492326497302111087370666993238843690329919550878641239918977267029578411866244047917153270201737081928776636866356723133431480190275552510677333578508034990935094708836374653187412629033814945231917665621280264330721581831559787431478577006400586225861659011694990929494567252755102283650626601563994316674922404648466493016063025942239202608610760150568341323815142302090019280173486889945525908475396766086342456779927641721884761020316599866448439287497295033642449276731953116709487591061202941422230129749883665512853314129813974276932365864532515761651856795965614917333373200898086885584678903189377296470364318639683911781212557295986885288757226048500250303014929687050184280259429657737098792932312304623562419966353051429377102985446129478716841583889530555352565503439524745202248658095960203610615182351840245796622923612619689415475614123514430447409858897155316582592432061630800559313168164608974094325548551575315537174502642279318611412807552787301715338605288376103963815302462879207098256536352871186362111087177148512956585931549497662059458969799000420928306909851870956510052661126884344594692065292980876056746873711034566335118994213733800125021067851791801133025302380909212034729547874003337415216953043735355195599443572979169208826694226883338603166679129173259913013357060519865620491251759847219474354812610265341870287303854264938056020332595582948498217317523301448092474666182910433482337395684342504940059897382395433923394243898265278859252963074575692665261480417207304977370818728891990597321406480544156383020609360770900028546470559358148534882060712000507597733697689674674784243605107475666230320758470494330035291946028587524964741938836530126200295220626896573731389609452603163262814204263587192458662187618920337264674713848662798169247653173685650766393380489649272098342539415867424955522105646842926806055051401598205562764784865634424171862196895600759885829672659294283898951849519227690411817601181645455169127215814950200611521521580946857328862065303983921273480266936209495092967273292610368280028754164885629461142964122408834013277455876630428215250432735178935346480352609397224284587442116457006621438367047320724477486141703926934554947351658421861036645528075425154221998403286263387293727345763626101115259879967605462288205108210484584592230357354624034287730725993775331022667603683131595495582485820331226528471046419651498938093445992799770088689280282730740480229184785274861249794204665115523830952374148424718542151549036231601542947056321459148461148545139290088692349655823788081998473474336025225102195419040614588825862797885735574400422084503752174753199467772835232018424158494130507634129063249388294536092886209804976842987607446215691315524266529799454887632146310246100959110965452953201481690275229602015218412791922392735670649433459393465621008831650538393801731564069072466596444453071241683303253735608393530713242057511621160286372880758292538310328744365663728070699987039196524854355332146120345875921675261008735799868970838250387901112685144008374336197697725315539437821289514696917806478659795289521233865510165797261266639262922572966911993216712548101590801266802398145905632650556024738634162806929932220502149096593938649458756891446169163643938199800287908357737562059895987646916284055903785946352905098735838414118852287926078644802718077308604234620351359337650678428163776345610011356560362629954116885543223127602735082532922617210736087575385735646649048243279388257550939357609135059901814577357074076365796280407814316306956130037729574450686340197024551610572539914730920338267789064441208886554913468490617709395505902403556572809535398536218883889641931338060431185449092854256810621114697776613559706509977721940640511726999424381860132023440805098801038847866285524675537155462348229208955170273489733705867679656833728980841877314620019347657638010946995127169131272020812693563542183260830719858679259421797453695532077524643211847458059877440954088823428064669973246059439768987536814151529583631209553489598234717898244953853266771982895335360822246506791712790402673265736131523724678153987507720685747916008986748139983670931329389326047568448431176954692413003202970461399610620890915085808050504486636640009920697676747715427068568590234289609342827374178293803183390695678586535639816258902139755899409087439805565078717564752300790748280411110929580991100110159989731258455053835272668233246962262636715106421540791792383904804392447697994609707229683383846150694236958845190084722947076691350007171960042298913119831896870518754739564176313874654690929908742040320385868339484463236474467956898484285279714439887906610343562074929163960059385392150666493886068422102515079741664040281706130546189553680049559531026998531296378526922765644936159045419337422088013115215995979130136938084441105810730310153994176742981878953900891897612752036151092396344787848820820811281418633207982691486214909886286929415520368175682159640807086753996508968008120390616240945083450889702010431271534219412210183121320860351776849838869558327070245017629881735758964467034326504789119004337618851749819309825663585054931938537096235932605280559671015381918820383225547584429864326817836239705608740888311747674630326827768506292254681247042118792431474833505003941727923199089636670280169339437263858463332129832567613040143672055332384628439418744386832065757036970504746361768185211025962349972757441305837055251089812143333638242496578888916959704526637568010711644991472632525234033143808538177396673284577727162509297458645695890859244756222088216113690604000663138895104113547137777262718634090656300533620696228457819826908408520218658660567736813858897580595274979952021312898208399884423951412715403569658806976309618380359271624628714153862399498208026822621369216701149088993865619882910192416553014421034824211809915722913158486665118571636619929006791754621643397735505346395175975428084312775927122077059897517829473490570116361456665835070930808084739266580775651286868532772805948958143274558498800078490465132310619955599177752620577396062156396641362089111811834410141559389679279756545475225080121618713234289729738092369717417998179151149402316711932811336863588215285269799164377567295398045002191839379025458905864863025465232657428806357944793673912191863366448148973233055162332402659559624579143046248369220339910485012285152379436812243958998376602988528678818773185649682639859180341320920379314189001754924372636717320814471020478538857879787904849627131751945577642467218810533171218466958277953584996847367444381103264580738698481770221885920247778968508235638651770202084008237198933388514508012129234016502141478236635132465375990286913464911622185809919656772634707441495943374522803344870136084594092328580967250876161412130346055128054073963823050411400670081931468834003453808506619776254243568503408142991754820881116859092348449230415890801600854056481223920038868566556470023176506823605764527495495232747654039947690244548750155209031301055369761821940046805303763331315836876771156308640698246464949975887776113344766149471625335098321795961966547429032474750834514698107242924938714824888424758035564333287472054294867103637835007645523163670224445707105093575589711201438253545339873567656972302597395474282306759376169610219305449415422898472697018779034055262031841677301109578374833517599096179052800087516365513433821572032937845473882493299389148927789214399294726471144672356395145994276619129944669130146145317005525699453305373470587455815045370949591318644465482446242484718728944023939053833756993049915384531886067583441788130313583024469566926196317925959410723969298725093690214174053347051493866590307559208021872368762038674926860768070001865410436544060739293780445833543472993538351656628507229279080826041822276165848079661127599466093118896490771322051422276695869846894548947884687512168575332224530004133529052322971067928612018307239344911102332588894191431766552147808747432631439995329974903278006598525464794530261519230277132333063297643743017709313117306047153786282970512574041392530399641569406362895526258905624585861638287964135734424145137553830150460512048052762041659147882241499188391113512145161641988682746473165174087668808028659166761008323006301031213636744380198363314458130506900383933603400809896340796240533739905300936479831127171361392825423895207267927097441807436907502725236804947454307240695583287248523350997221344027800549460707775503793211104754522659317210050399921072640738292736343468386142004600332792025790147671945994025205903474303961606632785325093662233056993487732110845963408151924744048993394355562434217144431075233738092364112496998316967140412169132556261948172329763688761848577748137410819864595579690007598317751043532191109874531088861221901748488932385140290541010356578026040439671921039562603190180660374019790989383905796285368238148627199029625516887661041992809187789894955212977224062920617336313761147142781831588503750825766585252488581896582815164605424204927462340951150359112793220970640160215097398069761810898571581479344484474853344739409933569046773001260264697719687832461677130162160495179623733612220146799607561464004690655225164044227574075108877698621034749717033702660591769504571755329684022326119218569597637446518087335037562597169574960334327853212868268146470183598484410151125601674399844006554105566328540274962373528373776116706748074634997618762525446900931727407654535106860963762929379070833819843538271459832220233500060488113875041072054826210971889782183121128680275405015265187547327591779632967033610648030113699012264011243718351236337773916189004016325870683918972861347899487251922855638530309180987825947980037143383638017314688090231576039366630775523360709841308861977311474579840667684093785253303444525768239605569928580584587276743714082904215136769673362115288712996116531325374185250308475329014210942795951586981354380615292237575525160384330107471866251283470469835654935811152757316787033515334534660747770738807082186662817160070560077645204770646457487803588055606778396066955767064685972449891962145922898833680172075708690328392688402878496867337766297579170039699643850193930266242665017314107209030218874585173320228935639916749230491244254345877435767614067818691505666239491310889554537471840572807793214263200530112543849412803186799843418405953819131442302776968643959644101093553408704194191420686138421279092883791185333327333588833296356355860885989756674900632965981623859390327590778713900170599252362965954449091651330542533793435692292476920172321687837531241623466974783809132163870653226763727276805515289585691240730850566238250842537278975554155129821641155662094713278451772508003247529323166876503698982364986128030864643508899994348245784683259093026718591594059338382144784618785188091745206122170244996266489009424678335676594227305131108656246575322740560158028032992916719550037995364509847723481768795601420337677832985296822382779015057876732718419387112802385291975418813822955082197120316762874504593803232509436979890127523292864282447330317571540675014430676508114447547086604073013237853754319027341331909480346785950430822981484366638324724883825834676828292954270465303307516638781981727490134155202770611929653670300459274924066929372543081757585964622205421302056857193999395637210475121395551831093013592657041108549120564761132814174909388908918667608378174141314946715333466951499419558359646629256975503425180191809901413519298781462532705072258648746834267995608156963093730146106027258882472520477502444146322395453811719147454110448713707985179764837792282502122079776123150280634923936578075560928700560775953309898381686736042300845074924402216941110483426106598642069064138741931858652669742356428805360062700342868663569003696676330944971851206927205277712131254470960318119911093065179475032418550220551377218493342585408632186986060064481994908881921469510622675579364585039383665508728463726351297012677786614702922176488296459867098332667932821032351800261972947975202395710839572971640589905586987510186609360043413693734318953721586106834709178287647354043434227063151460849562985771299469038552531600218088658050968335378694382024466319311258177921260991590636830796434265201131656220473478533144846724108188536270363649909289553250112420270183576077462424708075873101238509046261905745209930243836984023872536524346972309425180961917996923961278358390767890544415737569263365887772181307532806293671422541190946499784623989959825619770158078504689142487230971303714695262165294762514251838461710145314954390179505613493915383348249087836558709509998134064848403168675475055370025728019376222644302313159870854038658979455356420128549268753177977309357643233441352934295275609773326864834253901204653910597472933710601184099587003531626640897722853429869262318050242955271529264716854863091197908571553171616232198959919665324896217698397429273060851269467588482001798945284678277641996920057422839284925374372753249294484195777294826553259996738382517141140707167574640053270059258786853849875599286771486908119886701345261891816863388865785092195850316345332780459808972208440049152718631582095159969593127485421639410430185893192155909274859657759639602770099346270299726671112128723075611676988145884542868556582490255805285554257457647256777990552631496849106050992648241619863527921586612493808688436720890859686366265889279320655633738955593609144805480695667406877290358373613561595245261435380051502710470223956932196568128332608930086580396880907259542187656927045029075906576083710850419554066674234752507360364158788469390415348461986999981722479401007423436056512413258793016795899783918442602933616672571015081171703696755883608122466581210620821721426883845876216998958280319704165302398544289170611333027982580015312205140654168861339915027512366625497629660665279543508434919730377163273148835686998148374645409948818158172635422040506855868350506463703361339148036418769647788341745639243454649992863162017949082905178613228209443758486297200008316141007213238530426410848852056598479868291114383394647706155627554777647275454025269437235769372186832875101787347894036354251348444291955046535999974152871414148064588098084545243611088050552720620794130479869077752468787795053380530248943629022664155381049464195656128815881829713586314560736238570332562814441806451242128010463093999749121687594304138017220895571162095815279468289225403792501224851935561510601294523946384131684174842081595102093818512424934105597782354150493841532474821431361153968635511075458294553957029350184428411419562458003638395409760035073827791572208429855628020022591331019956531106036107059723282740622960364765864323999392193137137555174928374128405299290627480801174283500824603525690524346109007972681638794734408844154790945153417642193659602314735505039511940519434873921527814055172196203400005009472272705859885197640326072275348709079048939199973485119605345470561446897355516920373854012542261628946228057803596820031044897477972838224008710006630360489873986023135057306925261557141008960299356134810967617314076822077073583806657320497781875797013902236140417219534198356564864420277246881651200387760219175421617443673246004626947418631279350361988442449392784513433046444841057452456336603445363500761919156652514367823776659741353164715947043278491888062748987241610428486189407059058098293852285081193594856362201873398911313401414506890606411004808009985928475830977624648447207235437763784645264497819440974144489149483985804232288251860987319036685223998773025723439355403644804496402407389211836601459570320566480484165974222480677359471749517334506311120113221449348359578779324932214685731914514641649703494052966201648931219015250507895416997560717922975283204080129630930385766646376364263496278221832981118375373134008737560383656137960808113049167867746298217924134202962564657877245914454779727812286221144272148080301190135748950215565536578304808828439525066710363423437713461820620942716002057853769729281172195215449334858091210872434583800679019637318991745994207077079398021090394594397369087076180900807518183046426252461571666372807535093933770581013864406928851244323867748544498111081602061273985755926223583218635748857363102236892255468675123531891158450793058225291940083883569165020272161384426819611223833584394790187500159199848196980213393525419696575854575059467718849983224549261181067443078563965711245016868332557310167516486437648614128262222031113602183007754755762063542850242092371802853164643647144983178547448987037744106757144765905839557111585583034696373240229520538252363643301913579639094796753199186174148973414439580477986961693144547810624857466557585458762961340360694025637304559073998879520541634588054232016546646525944425997240065933821731302963687638281168476053185077365317389861514584448979495876585430777706077819799011349209258093898149955197438731526209136996560490199301826045358804721613663195004751841413307212204588522844280183001234151689072335338013908294234399714422147719820805393205817632898140218578521744707246639981196522652061437887797793224546770115628822444619048309336679212768267383364922660622207229291159807288562413461004801773269690603686148451600222349035183354830559260830361820440064445603073933326808291464070650472978300579906891574653836814002704699373335197364441050392086222855865055925537059977423049231074433257305457274785735758759777191655007937760969025841836323435668449003925005824592950439276509679613196259977676878920967934437833745555765106360842178807860709216982242260626175109110535422775027515060230482103723669968000782734320769647981795185062655883487778763136584783708440851853535118759108988689956711043552484703376588606711989956199979888188343105082535595393909342501806136385542251228716059597771000828045761004110425890872158249635364635879394839470028350160144517614941337940941293445740165288747766807896987449914050037823669224402036851855014825768940223341904192281486763023592583049107743316544318572510139442473789456619205418247113562263355948238572351299268071813736075903138721321788798088081443516736620313763016222350337971315210642220699193774752861528793591673650369576284109046432081714397803010453976927497762062003473967093761071026655975590474065386781957709312579475779146924165505263944621271391083661589444061084848841185623125035000040319167349414834687871133000327201212077391527847823550605670836702776766763047672137192685581385392326397027268744941976295129358745236736661895874515149153048801943951028230226537648779201725351113099808563746842008888818789957900098336488279568078807078889640270796815404984824096703317358881704015133991852299971599690352000610131058447737825021553201364168312989628178106488109719640186683523766239200297297858712741580616024618530358011811929150482883687670314362126666027833596686287788465622474527998622756025079763011444352096852286876920323166039997031584662711915316890122020296630169533210892151818231302529002756247596081393517357047240650216365110138324918726504009487266286886801582457328935604872718395132686997873397587245327134523996251614619436495220226063812851865332062246546750885268997026298742661939907052006099945730283837195000831608786560515798239496719834761001239963048340325100737100157643562972414858776456813694109235044214127081147171179442911812296111411398005306259083811262723960215223576862264246537514045149849080396021480118850370107096911167307691359859610512737817493919918386909544832667936315586131013603983361952006214825418247998030216692497090421582779660706303680918035966763681990387787234458252351537444430973528565980591880562198222508326705425642056134582822764182014122399508828902402436129338416599828037588405185929231387910090931559040956977751231445668603583228538210195720810351998867823885633577756273177126102900084302702244479859014700238000623699066786584817516759071954992841923496712865458683117842004351026817862672504131930874683802867610793237609184048318969150164239932360937777250227525777973522835169062791514087021291381660042563729601326665311264863229840122196842192651601430458854478341487985530035209183928926486287879186985384221052198068699298382776280445640964005509809759040265015946794042709386220531487586795684597952346982134557842301163877602820704697190244336885575375910658889988578869544645322839967886053910288925359016026137454954379843343766576507167420558447175494569193741006742675612083461848265480164196092596783014446297205523015554426892374140607877815455707568708330848291252661202642834448101325235304953831481935162780795012557298861413155092522885302064986245122572492289858547435695931685383511539781995327004302267849206613872085030355616955469252989173387919241306396621462062382498641120832852949819426496092290405954359507157587248680974577702435637081351078703876050290281207497953724782700415028861986051275346954499977559827519488343254438203721786898037849317013439017963451437959564562105352319180047759032304897328709742460263663425570332643015097913953367581748416775469600671754788269878204428012360555712551456621278582916950129106693982092716895354409584569057966121560603385998417808649181808076944671834058829289986229204815922494413801771200088252774534456034293312240767790852865429427190153654582707266811616770314961636336285857243748637548304116497099117832102448425810891736693331711688890886456234637290137656873872568156839125666522882612144467126295006891450092028506831020731099610774986611981577409737955303324665701186588974990450457924102989929464296722508375496523079065170842853587284637576985890158199875419935217947715083283838772918821003585940487299768757587182184109087808293069054227261256896473857784385668037132190081449715242875100367250767746855359404933468071865772660387103120488145399897948269445518382904069725056580860930856962035010250582779933343283116662840564841371166879006794586580267377671881594530488537659880319078149936268688033900558100438158403001052904414248326315351545788685600358888355477610545854393928416083392687430284573628718078049050086592955114726009279065823620751987855414789057706361770666895786355431777284449832800439004493981905916237101022345113434690818228447088240117356026215215275130811179039866741092145309082053086890489121745606343835875498851424483799638216726305513952391361894769301508113960422693432927855318408011180541836223404155091689051779390191552719371526013442856095451659432104745768771945162559937008624142821737602502513040318883868848197155002571001121935603870533148732566740393092231103300800110312504960673784728240556930027620220625511815057763953202437554141104919869645708169639650288448380390230376931077146654357132017281928235280437348494620247430975652648217955672458667172508125687684920797662915758653875120570045900038530394223669585631408445092650330347660825650752877832754536189983236502321521336378055693027917914315284316775668822430520679717108384752527531002780378990247715940893652029618190544719951109232135095744354616816350787538610753487186998528402402298913176986563954993630151429393233581942066387286447721264874472432176168278423402874904237686482193808276557983893109902807677759246687390157333266635510157897220346196462986709777122032286836990575000986576243374381142542676323291384604768876547083232413936736057120475595643953807141437056936925033007808172306808391683222001981782327368748609256976534405882911080271798411538742999266793323660794968774989691999967490265371308071684086348045610155966178415165829922589620913029521046578748900080849571557226816350882787595252265585068457638789638491256068218652867602537400513495412515526167409786972638980806419009042184999417108985355215219105006573638037572359976139663968327981530837802111078081384698168268696960370105675275546617460780283606218344963957995753897194310631760716603385521532095460940844566854886754274261799148219788367012152847078560761142102207562577934975805005242808902646490752578692805923854526986930452706522175069537212153843861948631778149111622289584801906219976703846469312737636336925441882942143209423492307447931487529262067003311028291116430629378965980519358768889788606407152861648111921602381686389669989101419716711786325471526582516431474503478716610562963249475960991393526870443454602622624349451043403762490997511634739865461879829154826782927320619867693312531777643304845942673213671404882187764009102569511679897913304646407592801842763274744757137990911926589849337458049598349112504269625594111523909931499913001009065434072951692142233135464099743480732093124157053372480369271871229560521457293808952422516978121624517112802575843775159241771434297213995173997367460983639053792377138119213967368451962653286613859848538217994209315851924295484712136688445349478559214214024630550382961712548532457074822226230255215596018006297565054942006812782721296004163096981600001895882250776578363012515452449221781175346532171562428781532422421204934951855496961441414994198370558335665907356136301042927065555353117839376049916594140287251767269362896292525369510496119260477597488098586907222849859908204638442457335890182545320509194477544604899994603030698025941730537843679962075276698390469312650359946966270575863246154500480653825819917915247998199156817286435782250688784254528321921246647839500665827228121550787912903418381000571546632118200655311626496087368407166398793363256276334935140228140341455371865623846621138764007632998423540495987471150820446840659388392116321391854976973520939352331914461938348852827482258988111441899808990034083776986100209702065156630870528740880684675887467425039282527680815046269579833756838793722166741641313931358411467755072217608409462271634670551597485173665149093185373943114811720427633251091908206176563034042161151867100934595118050853514227773653035999680831469150452059178100939427394625311430510540018845107269317065150046036923443608292790881809761526614772896737405241950179563498109104511986550222176419225401748494502248733683492875879565933573811718908584297335098476753925033118613016880231015821545260143301236873642624365866739328629144245078990731340556651312858881504692158290618186717988020664173046198660431357584175767128877901090522063493974874736741374406866923524737027580906812649950636203785453939439344041894732131787040227331284987696825838612907129099737455067514307952218330937211817455094828791469491139181355186817247236662258616219286342071258396795234138265253135296329478586586343834314321424070642364076711804414080728966293554178822806195300933813216960265477229008180195478015370070737013485289831982680965340180697287267878206683250132760021788096025742149451759747407628460443744803490992749827951428051973179076179497711550573091784880926945216846103878300464094783349486842410303979225489951617916331874197321738881347094134793748656643938605029256171761378487662757893519836291219969998711535772054882169417982962268838705522029805226410734059084073264222897558025291337218561138409860716669045625951574885089461321666037240668161291485167997198052722315155072715881346122781302521761527092728589682984404357730828681383202267893384992031998466845388420830696734044209491801567196897383872148137640103296029187218226068176931619320482673951059669027256764307417974308893016425379098508128258434798132504508539624694597193741433265275965899354700791102038741757501846442162686868697855155725504415635609208244663355879141319692286679059006851765800126131071038367118241503586723312358493289263325231480693626627888517501715664713151139547348418316966739477954286859452851142134567844646348903887970771257716056553967476545923190051623855698777055980773311166209713046171837653386206180670386228587315521472770763101266828757715618375994992929271833573918012548819251949626479934789138515356729297120739921658559046494720322224450830979063641406981378673261735784671281040338500532155814763271407857691338942631611660340116331437471884120308824276869768126797325706366454836413804885417633891282843296506617658072859964785858742325942397376261606557905897992043398541517989172321740718689575944214610482884972094327288700053216343111321398963465589011973344417195982324903338533683493363671976625674222974470003294696054694984388691965519466350475413970327799810815071576181721049488397757890118329518271850411573011133965649181344608846287418162080937016088139738064396579718875234925333746775518426359899526277222017706578756289334628841485461796889137036027303723634415118697866829484701418214915740377574149623365636471826856785444406121013822967532623098756306657428584814002791981130933380325750724271589880299233060032805118171797110835141784154527314345284726643731022674333496814969769451413539179977180932530758145535841766309360886466573918292163310741422289192964508807753957647788094116576518849740253216715663581922568016941808882327656660661483732491167399103826779972376464507017889822553154043606817917355549445765311218179123284763893026547360360669748533516345286858732368680524129835837465378818895610815720239078428181512228013179309994276080136451522585178100373713805673850026980769583141480308914373081691450633266458832979164966171285639433946725979283165498115254091981990726570442214530590659283288507907157887466806474998916397775732111749672812276390810155178226875114551111757579247315389313590889587652041840794655528361007496521323559027918794774069538700073810773386785631792184323058703333999415392526864464327239156551976990208553414725511540055395575631413674644145713583363733569614877079279830216642252262263619767966624345579212028825509924710915187090506631605806294660100585442320075151203292243106319269744581425028751095757301007113246795806173831606528679390165215558836215145472064796366480213371805272344031850945711035401721597830717542621570919048916386626052402418721976782862529862651359366165420301393146309379965739389593469277029835534074448126740378139987960191795048384640058197553259262089611468695359840683812196898167392606927083922614347077006239947236245621785090988629688116312095167037690974139824438811632749338876835401695579460848699912795237883471483050579003704504194380845876129233474129599311258650288368328539540489607828567656556820414065084379946338360838944052549515082525012546066745993491934064886199402740380159681782307202697099496427717444185265446832580572709611947505583677629238375745853857366912535532538447449080403089047135015574601002075763143512786029353430423031720596750229091181411786425368421659524181614297911064980643458143047632878066927704464284944773167479075035358080619552390511791057445661646688102682053325633109146395233896228495160666602710599683530292266939528110462818010022612743231333646219315620753257372286487900098264725659057831952395688661865394479221241349531484081999773518890531516572434831807239415767415935577902783705872848589267753187849807564934792476609963363351616528117069614324653186893369955438683077969166239386734732204386798503234267648552361747661971855711978093431405690334883466880223905279674159350158746231179167503081448117121665552297298267451379778228498613731141817171607406515822093181851990412824510421852383503955258647211665118983803746630590379224791478241318037430033110914139217198032675579674218409052746726517761937854045320369799865848862640258919160094798412045255227728838453833862374138966419941477837523644055740865151015746126181299001717376455855746340255858036582147204445575300204137243058182697702816560283632050617306274591525130942618177273415789149581256623525233110635535009952880589563087557605018705790420726535933529011567265527837461736053886591254973148700089737719773326424348505120879929113748304412540127089679998398134160225983857149938353131871633722288078006425898021203524853344439409050975337133491776964438205323132775306021823066937775444892490034234984669237905841047482296249105724606601527716601833121719383235697922855127817455213218547584695245234304678375339675219714635439570219015301517594640204043269618385459633952217622978744554498530623199354546570000915601128218961205283721623485499234083264653226938870196202493299266781464158583932945275358906516748142041480819739747482724681774556697836528595703883104456530295906811034718371839371210922602603340752577985434598645017859555620230466886020917660674887934414778049931893352048063514992356258116027735312485559745288941850541463392843844799331925153264974054774911550044932703682536383327703753057408462631224718421296267916054330924762376059440696922442477518316893820620155785374566784537307367175665959946737518385710298376641035874211287059280376664619395833601254446644260193801666149022101409144511110838456993493635521675191713923173872631932649004495391287814421636538201805213809618771512977098489597733466678946431348313042748857471667376898248846959336589292527748530711390684934921168262152435317670283677355538099920235141476595850339480773528873087628028451208208702367345589616020240595054812840365114018937113822566311067164562130662334965230371811724557232353587234251828158325424182974048833357068533473092854320704206614081838310158605789066287289516428225938874952207266456451604368665691172233753434536358129439615236460300434769780475877616947707279009279311468156979950890700742129231958076534564112239027440231777961293386279548844741637147912955251157927515695137232119428779936734492744211473448087908655427071503361306881360069564203293519256888600346242774749017733846068680255777111413050790575176939558242478770458597695724496101115973203897667380321052549294350325297810728874478907813717234738263379440551137133494979641922644164710061847152459724515807113076439381908125604854785993734962873694927380507510471004073042635678014674776534833224106324764512569555710076684164896666489680286982594259838361663481995491359797494416597930168647489390842944068175285923056182626729277749231892636105740597132707081083325525520585362097734832808279414767207827468149393875939056833366169658320262677612265167264124355153049460730649831429775583674199140767745782877824893687032613979580080174609446671591324390592528535938987310379674565115150638489901861580531177043900336739926067818141604176310172405067151702376624853878196853471598919644099277655853801285694890076949523587508606622401503610635231855080483064726268073278658635415045156982674047616417706256995695003591305827382991703224380766048375703103089170773539383118982632398568485291397312608816140236928834671753824466393105136278909549926532851948186067234054265778565043208741651706113267706469427854610939104883194363276889236652657907482329399155889879143768679328035340209763884489611518189757804217136526863264439143455249402062716827580233731792838190659232317153968476717816754353187182680431770449706020189927555500165513052966804654335990349635722913772010045270014686742398804847283174787858271976333131938371982870995052806413027542938044123920996459146489351644876255208908006743546848674102887468614836622272406734465579003727908048721297420893601761418025511392994726939141703032424164442430549520313007242755007965164141114090899058679326997400556078843632382239154211218926095975485591698481696435919539234922329543759613278588314670972722239694011708146854456110119305910974365918542164940883679892767807156119696351317169624203414277263911083872430155490889955748391412323908047682076078440864489932270840613105801916933412918811803893953958807642900319939044019045045815305877178120186854850310419278573456689892375502644039710413591445354210929989123471170501684283332262932959393522622709759288882416418748797679854197855053080054023042191223429938693341449690419782979714058496240109026646609439345728759710532807833128607498070945638909039867869808414169940292251743544979843292027847693059424970034827542591476438001411846647403638036695202125585387883232589243459376526904320332947002272900958862801381410632091630845080108766406365013627631284097834606371651172818918147670362010394271235683277879564962868280037535213560779853420296925681490903750654728592092930874310045738951620592987626538266445198191931625310094813302047523419942693707829817696135269992423884652373044360638211623801877710522205683867401089215120743980603316609825820394858584113087466201054870688783811343207176437328853381941446587562889700935619237435407228764568949938799960800950142435354048117966884403260522785658406232316895727498907085122803360750788674196353536551411556535652105624274127118530069009150639079292744347199365709415776160547437623076485081963646067539315783363535561015796710564465906674749940278469174909580755354934002384830191637639805199416081233033682873274612741824891940100009421015742470152154760757011381240504226827200515094434433755746893501332128908686057703656064749509406246369071937540158008622351272545542312599973561758664240604783574832061183760375818887802522974372578224991953685193958573742799523292739647566417738243812567248067534595560317421338177399116416173749226991882131686958513598634216114425640387047061128253696550334191496653689143781320042788710745932793155979116534820269236539838303379447665720717473788456891430392846768258813532245917461645948341582607170304227768441667535193017245321695514181469116697895232901636271196441191817611372352558692585814851627723691825467675792716432435408915170119660195382069458589787964854291846124791998538720652249910075754442581156961258873871738092107427867598878287956471548609403048897099369364602356050324399310865368371787879206498878093795246492135988844633749600301554589234576853576292807609112878261364179466254137181479000582223236347076867694547702766682684002791440739716269266334043137996408222203892406228466932497511901312293510162938019693294628458361244969396499244912360075888896709451463804241372011080690137293611005656446362169772006742705003067018635880616837948363391713473137525140597274388329000748543790786061683369240279372619499999638265337649633928640694800888242952202884645460907873008055209824402505282188353886148240832787828471252386513246620987378385081473649210154236148266350423425373336093586479351223546435306323652387337372841179385909052107905332226294834700587938661973585196770935815253057286514829169870124634693851663690426736436416670282205099628198224345614682883488065072825248658257275486258243351978384780189817616361257681881005690145650169941056898726069711094384672739372931163158579142356530986294005989175316967661715678310453025814535721713594670119414551492381946365127611209551139350382745110426520734217261528504561236329373828622033857692791958076515153781064792264900790657006536908230754910645118931978082487820561382177731446737026853932573888770095639108028680262458877671242147244645756831251849895917539075319542448807761607833045159110506711017620085056335394324202629492959284906693168222416895275410864531259009486471774880396463858745465703602356013049881886643187917167162345054768394612768998006079262272072528535321337729940914676154512314557254662024214202209090518577527247209213673901060931146174353871096529721787506514103348905328156816722396434556265386235129301972818501952364269131984283762599715129614185799499011800558601754959589624637114827309731423176676183103548487727948299366698169751315839123488392536774022196601281661839898019561222825420983054440791311072453463238349879456779572156285264610560475401175538257137431818579699266208505115131822392114538114946609961837612851673741335443554618199762936475307482346516745336743615927689755235814864892385442645113781961785622254200209163109156312319969720972254118723903180011967204105769543828993138483369530535026460084088818787862058299302885452852966419930194352813874170792254673444030610901192901961539930489297517619301793937343887089651575389687532222282099960834294779905218679561517929970822446308259005295019515404438473076922991070731733858870192812149017988219426911285028944786221266693447295353220132715957615502530935957244724663443736619201732902987661705768498708614759674798068698924960173036290408409207602869998424430152705969738923849488947121490658891470585425014375251888494167404279241992715303292174811129151436445985385803205323587698744564029175237501043012307523177572180042994317013138212886206502086699552061285586266001949756257297642306001089883454122272034532508567143696183578574080475112171277265807613130240895875094982025840536647443277649391774948969527274249559073622591314062440428548200266843259055163881366182560570249275376775924955495677464905731145569964353747680562204474823797719966287160333140112517736503442586252714443737523057306525032898768899645015009134283232504692645534172775567286498491305730662747696378613300002279613536396431666354834763788025035427402537099178844483897995802723788495883494686556437886010423366536646639081741329032296325532222914730053797570878213469547985427592733498794141178800587153138859455068159731785918050121037875619704574721165739505888889870765494332391574893330925916962448651128394665659014424617905523092989381154269630672770451555224999619375192250256678887087128193612028858892210212884220232887412499394834025990258180245300236308615649567277914750025877818040292809121993041280334815371314011992782304054704558013365721220306127426671245808719779383396761640792969388146352328811877819600444215749086078003033852942391866705495384097730752367899869742783808547505715951063756767693966612190514224380344105596275035970015374282017579786382100908983661437174865838987184000801437011612417598834172173190682589575695633241745428789351214656896224071222173977088258243721577810092505133861174172747664184556208932153505854808680541590014794905381896489487304607915555953807984291401595303929351432443221454096037681419502633821285524817846684183025331077797020763539414027153707366990668917209947837228197254592716290903703347047250492612702346202729342901915270972849971227753309644284559469289689821336359380308248018386147811761734116318941021865941686758668831358479167189974485800026587607508443590450489903734067976249263428522538474699185191229299790033240616165323147767586153052519010583560581349204698522642201506518665185009267024047332394408498764056648369148312889080669252640425211938450251266963822239019628787767435143154746924630012758648370523486166977480667934024701207760081298852000471940097346083039741274215039459797855676661178377321783278800244544024617698827332278644135966990140231448399886519664152066310877732310930743284698354721591495941607049842941990978790322563149547507539449097023532670572181450625065972569386662847735773932174596849951132172139297557723491253000013942409365263519104899672896230706572411350495600966222283662491108812418777147668410269591242156123673207218399088322972425520061157349343570145649000872253914621702010934202922885134937858802137287593644631007504395651788497690118620567314653064486489345890240151945748032658454528066500421544652567582700384991860649959755954835353049809060837457405000644898403029531902889987167210702596781989208194703753310406356188020490393496851001158714157140347084922147287550142551076371532173456823353880283341822934308241119033211792673459275417901531945119776745543147551006115249992275097991189117127913940350625918690902764144129318060727098932106150252833112910342315697265993265033964441023024230502823871772504710375093290386064133385528981592316515803863810561899184883249564898569418374224118896419562464690315694928245195298790843048977264421913458321339075913859920416772219615145438691768060897403807242535483339305894232489093834628195393085150733081552476379134572859736490034378321120443862781064719249835888260160617172902112175525075297575637593988606340321174874512920185546810989974809717324983748997275919127704014824704462946246978524351867137199670764488396656336823292733537367066409437897854284181755863551909887573025239298829695473120043533197212320976050557343741679652859080138871652752633530814078486884444878470358385578293263343186326577161241655268271249338797104711899785653917680553502179630313866779538496277762636091254826528433615578401718732768331623946623869056621423491071372960756582631380499615082713091295233747499580386916077392035337785660079327449944984194973170571893931430000440708774113338204403201314945801084484500793571366480737582899063776350478412546780432421337917892738318539085807814766645845885089451768645601141400008796023636891114232070199891723522760322676151964160996236730036057095165459391219187090728090751127157957417035733743797455192945061387343189223127515658442072555806866419353655174493023967882451200752301765884189421771821059668364818620349806501211983020237012450565889162474436870221073208950902257752127323705288801684697769397447765450966539763094252606436204077149554676090799402454765023182838319940389870352272382012701648314337193359579813050923914674831734425894578710459987234760784050535865343695823186493528270066524039082643612323018175151730264562000516180242504115368386674292880594371855172077965712811637033289931816472615128962715429407327985003644280503838054651172189915045404552142346030545585561209387581632332970988819842653508531442508508112688339395699525673031679678807368296745601157857716900856211992434942237352622773193491433479814777830161716148759321093483503673780415975252437742026844690189496485065128093947090213407956654484279613377534772745744755690878295715622494205164862306719073918992174218369316081403218681410601599441120628704184249754734230894823145887200960230042324748862569436011499056472822786186875353613660304359572902610058309101143008888147023197149495612103050789220054523423097641424421677020105466809723681106193872979549138189647156793932595612351163686660882616310701696153756053259523538744788707978396333487539178232816458480155216909166044128727708433318517362339337053446252391971590720536978815479144811008357358577262932851974448156669746734369348846825499835289175833974152845577048028476376544950464683990919328430836518694405183687597737821670675076355058676581534323132526115277637056974603005953930022907823670135579560884132304013667506773345962302786319685967165781542726225321704738847800187269040725803401715564282287334475949472295329999633973373981718862103561297318028563843237832070550708930077886475999583437700008102120617649437122167563151089333979286631060092546504520462320848989371169837587647343136759551841225669039883088376966122452798045116767416218044463476239363193155399055126848775861244732027444178227267128683921601906628445911856855352382590835635030032372822150973157769142075303299043723909378220261880961372403265010868792720948394401488348090470657954953995786479191427506618934647585695524248431258439262966202103738300417983546773939041327113444884030979067520444794648868205086912092996589404999360225493541824361119789079270932456228381024293931767347387134682950866859744348545831508150303913400911264230455613545085029657338527796786212094657692858866670664008651659576084488914196546066917549886934811374509938870742626810476787498041508696017372049245780568286614193606334478330959943933818356699930165073991747073733837094042654571385401791535587316002195119327578755847159690896605943673495557826619891896057199650519575766347291573211823826104995611199500441093034432310903788593769294822739663998610257120983177050443653472811861306868498632584764312307245297136850341632759209634258127713176079708189236203148984109183589383187964204009371898518305167688735253510921444871069732745704247871949075800837403470653271085891047339052035872908829588115381611528155465720294788350638411744160653136300136445002154731813885277215273387230908374200735007388993957034588217903816762909673095283096297845016533254399924093787528927675194259647102251763396820563553523575785574491570974181751964433935569710293173969905065393521506734499725249131577210504546703724729977994184583847573855403866441347166698050435274184937808212711196768998223135568240334354345457734464344912574397177798774480382830721032295371868177191791951967891110710374129503402860397858134809307871338911703031498362563272967939938445572989252457313409610967197159517052063055325240694795128316586780975624116890769901370787884643937114396433579847054576928380069215125737226857449899691687706364795460038742649614694589533969992115732547595622028152402460311350252380758550543109936020103036851101122641215450248923894876160673556527767006083094863866747249056313222979977934160988519334393984448120612656171455711081402807838375749482818705444463966755848825974213652183808232557024259950388166937208464500382112823523186662280795071758338138238012698024335428373152665364263228259302763920693817480824660089773835551283300166409671458608848361822746067408296771051646170370870839695165598126540097295959702888283312886856816901469897030108645282610209439747002840203952502267341755064882811665316353656191043895130900743376273196830081467448074515547185061015012301494417667339906430011997615640754283769011010743182812250196831983860296544030574003795817192081307957939540849219458480201382029811398560588271226752347850510111994198265540534935856687940741888725196943753672752543703759180316670434761367614964867204274573348674328815818414760445865205193776358799972212377192947778861678812497956349888547909672889532052436355669368686954018838314114954511506732692213829422463486299231692307936001146896844755581810645837945653464303076630519337739596952427819466021967833376803167463233968683834666578684715023437509879492102678014576542396664238714382410160268402786221017000918060532274110708829503251679776742120417223826590891141367306656255979096458806432473643450894799119316286602530713525837420686816349404530988109836490451913425376667858357314551965200290225410201366484796194528648727063131914948627013722879481810358290555639536057248566943295465653586124802605179105140712149257808728392045904252383435218362350733672140776076962418554102187030925630752421237472755268321164555898776076922619853819124156917666804016999653760435810348017455610952873187313114954879243558574867337743351612622708000143238052879922547982316064997429265105174208885760963766484018866048696393503623328841684942667494577280849131181373252076781389386953895450465738809234910324024050094144413964693823065990558562629100978853344409583806777641680415542626512686049979438710402265471045563905832482257844355279501126934892950355419662451276143484637242076014497691594407418122919274566741389058500808049666615648461037194722168279406573907668813644573146937102682072883163625695899520600485211834984401614368432771470981206285249986624766424256966983633140038502003017943540179842473713165405258526374667290242314296875111930338468750448845366437915727903162242046483518328322519109509543642139684740403868073863420318979990628257109183472835166982095028913731171723941409283304572231174079005059376175337537333886947036455838331047644897166517360901707543998934220731109495639518762868850658402699062269713476529422140901775082757926555400517672332019806297827136665317100748152670870551588473667570643229256217653879018770325631260620210764767043091569322022192603084446002046156792481587220077146915184818105080795001903924903970693684562614154158540020518454245728061587353487108476222778616914113671821038155426649997795641217976170071614064162703201298522358877938119548297942152223784393247313489695243036583586554888870816841737659362108310149374603558710107303410176768805725179836398435825455610698012091217581300869447147973210959445846814487185120282241834540476124656957005919025975349779827193444994448026120879860184678354101424580820398239938268680265689855363824214960692958584326182640015131718474816013341326903994173060909413301888380263336625213699806547687643472350557397439493262008633787910537863510487185099815856125016878071217090928384676866971179231100119785583781877883605857199235765665064338301064112125366306293361156648708779065225968326100486768445218087556740701333305873795388281984241641213432639080009281270151938694921489596612603570092220856004456698307195111196674252295910496612834345502782568243663054245812230086691440770128267782074279083335874063158577568050345799319120020385955833577642504143008909126352913425701882139615033228472722144855776803864481362677056396779004820730184970789108416155013295987799516617163360076300192071199736204595267925489673730097247702479310135766240271863104304548483338167324806577196467971959388052545036998833815882236587922119497487479815304110495721355803858614935077576548345761227346431746923440319901155045961584315348043044931997647228977458107984721969472742484855864773719201422347957393672243135751302540614385606580645407347426903737952584179751702672015580381108268795280658254340289868503941961029181045343801414754753783097346658936114703331917257794958371288874467695024169680456879167340977958495464787044448083170528442220179758255754794590182407420833395079186592198503697771298029413264268834337679297651910163637640398564535321721168548851816656678717034577695045191828413018610186684184761162594117417087226481133052789416029992830210383885408042790823157458590148291653342856703941618956210070812581751823852271663072071486664575892158548295258220877449481415179196366241470616028960221697103452116024361507625223503290983418954695025580122894258360314852162500048121387571189581272565513840065321778707671574108120416010216855705759556748971170224914190286425400364108678770208548355644888416980740449179426248686064047340970086621749107203523550980970884329741207007598340246926902576024898716992983297876155954696515902803676688452827219003740607450574421264507064937481778716045390599522991838854368993178309413929967365897499885538453630314322388184174145289071300893037645135992675771759888635055646046643132681891074873793818349857549852954295345720755917514673370958050637753754551092524391093915218482538242176552426871235271837241887538878247682192429907236217068672680247731779344102488702243757701023056917326919665508966353454349026705636586449912338647807105189318927473085693663665838860116373708538611038964098976493012005674812801831329171425560378567699074872276158965535830764119997966550850669425039186508369432934162526140380910287093433939338610507185014977278521739702159778058016084236460816692386059624038283214489858876719542656435293450603277083837417479505936985544280155436579150127605612335456109976840688984869249237260369837513917177930857496741368452638914946088426012852179838610023244546643984652006448327612822101372715092447932519653844470818760785978060116428715756010805393320230368131716951426623468913848302202910403558309875784279784978252281224568257155841663901113284104639152286570775323300803132707421781619312877719802343760825912809769305673075909470815343303641712619595193861824372114543728092207452009049496653643734214538360104164559345379237512289562510583242523471593790498670741463519546964119654039156859222335958391119590868640482935180707723571959224143211465392776119527695335046579309232739377775389629417564356593203966163126311075436940567334351663313614196029619606203501237818836346442115387941297749662546419674421250736175400194076011557565862366899619238919690669699372258760043417202089530508920909829332932411516512687294258867397094228648593967563137818986456549534821439433533995456545750482511997396447381452528071818593239424128795929920527664583607425291694030477242152463493340522566609368413933567810093150876701050575701076439839541588329161270388657766325878283355627491629110221450485633500512457465845122764623256316969780690383283479154139354306625469715279116847209459460970879420044415920461013573656652652331109452395738054498642300889695790694816123162329064878050551770572932496571139227617256609764551945806254805805529733694247024293685832869214468304390166883154752833734137876678409918370924202240919096535789552323615833721485719313972112251427667759168857173805990450043650812618638496790534842288403947326030293779632725556462484706991519008885324488592254785365308843093407327429961618975514237083229141902944678713411438227744762032734250942251654498776192377932763605859097866359539366420952456502465269824280401924140806292172434525812460975225075013463076922467405025922662113431207925249356007656294347704190095332139074389698495784013047633837631687966530551271648637629892960593186725840322703512129740159412694519923993955590232546979900438952983690773577417570589049291304263229592862007794921232901558609303621519963916827441004360752496114342116190570572485854826958943037758281373492215783882415576756536836993807576503329578047848599406479123810753818073769820116889692952774144656091374857994617708266377710168803185939689743244237670750593194495755831535772513511567559529576733176271480474641872141412072885996482818205060407411487327103738049318763968813302391998492193389391894436947614355365273438163872830248308100215705514518688457173276669416100477637119548366367849426984932231607306099270775837961699152858910392618036593703892242248921740971821656275949773496158247778425089322786268279466194541950027743547780821576714706592749393172721052428154347920569895095476126716206169612380792601605349903677026523392914430605714708467322201939091704049372544041696969629014278888197068200422213065538824548600472288884903457219478039445417050872760507105598020783610230136583127977218917970318229679175043551646756780521373807700235565844349536430780260881791609090005542843648772961571047309129060714348383321597413677427086159237558756801080521416419766163723580330689994345661365195183196644468225246757742613936465982979895153597721233870000876287609389590018627577690840063318746693756890039485569183747849057468746694093347981381834122441678950670835655567892658400246305970190340370394698006525741889768651838049880253005872886899035483100547704321863991069360831834063692538428435779047934203981309931851843918464844228387416353413240896195597795902715984575387559013834195233803559465284543207466834492630095710635237197868172818002305594273329865790684254630605899577401195509688747267137037030662973208942945390898698212355015999184891712882053691231412645108975056025489158728037964445909682259085914597614766001687340456417200264566968191578327905084378083435572766004230269980250582240389742499405363032164899365745939776238656748831651137930396104103369357069385530397657749166060763620199538485720239463931719000948983874810188564758983228698224738615628175565739854161248333412982000735907737752262608788207176234587408109066283431776300968421283758743257596938885201425409874920549959421751496394198932994750240803062506038017857532476383495197534911774359232103810765476734798904504210503408640035022304670580307297155457450487996335939407076688947378264231126728229761552874954215189847868115730590900102527571850486451596783962806650747050538242800036147803501500912174318799693335014083486838653082765255045088052459751891998939931607352618490643216679763547735134017953669603260041748015968125066587426995783078267053849517614399095041163329770294554467091890333321312418634846213855811702156030832837565285885781982538529464972203514491048331557984440637917513575232550116629215064031893419119775991797599682038218625077476696581806175176484615042525006002063882285084418149885135964265176333316729309356580947132074460615759697655629343223409320014991636254455593390608437160464839705561048401678136568043928092385025706518384369928684716280222228585894112228282876153324609714049132439626749984847992238256814005709168529971889599449288408951709950309044814128172083652359745779793986819863647755647359073789172311794079113700232545571105525656714848207312286203453812136798090760451676146545694351518895056236878515605270537503123887814294266742654711005116984217106270853723216128013384867759924285713842151841206606240341843841414085322035076517906708872326747021979065370369764270399336493123138416041433243956189431500261269545709333932121439538506821806678550566742204441897647452504868286587761872381919768723461628464862054178988502095282002456225367514904640989299539712367161969480339779206537223980687092438501070719712878719693644745223835530215125660743429795801973366750359135532753663815729956930123139923812440976842258417213827107996872968207120348288994335613924451641730394259683297211974068687106115717049579820022074815640277549907103048400093774971081549659956629702819583489379440830977314092448064896909881205164466986780850597677813380465088384774405253272164670983086802666147048024046371792513928045839331593048147025726807092737581205249455260388414387395811662972882713214583090025814811151150113965006532547963852969768623483944011244990521762164352100881820427490672638675986030574865860412816319505851307345275816995081117878129393614656108139368966276007265398781590356576240415171471001291030167748420473728972811285249502062572889274814549075672018145188182230407123081432886073198204096213326346779989567968618412713705104907994458453599014019008459503689618328948380971735607527558146166554929777261454374366505423164452139855576285396713090851041024407396944201928749889818485752498260435979430727331357193776844489364707433970831704654274688371677708918880287020089324705293277348812553953976025103523542095645295145422414406695491753951539075179438152146150284623634499943825944917154965932131988759697872926426466104600327337957186955217281492860539103884417058461425007818485886029809622379022094169904900537709514112813331822461583308445384861945312414181432780565823726404962798530121396169895405626985582429805765379157849893790052708916390235146343991847232449307199038596657651526009248097750026591713252885188494978070512467948207984603879216410752803412396417833681437063254747033350508893211076047083279819840786089728016114921690413405812854390598178161035659546572781279970068546670434571028890596033166699866293641846371666993277397101619368373162514169003346544598626532797564001101429975795646474069264855436382002233818491685683488600614996187158184476080033297922067250939042580008087962556158753533300812094486855901293184282350242067267121309822280434325452229024812793684252757258715520129873623884501577639966032875801480374645155487282234057229462704659754652726965188092958046395049983616508831913070928431297219904014285674316945634501066082391557372238380527288521546389907659061905371869370749873880715222420580960598137642224995256507041117242126452578790642506559354090665596223122870278051312042479713692226673799567961353571783932834833496604830708189337052236221136114484790711904174029999255255708878893723240571708147574313496146654625694263550689813952189594069201093666152944439841027165441624715828971816379126714260375431772698001412877042036723412940841939658099145566387285284659376414740756471225430378418101366231252481083147694037684019554314147539175414935045313901431728591453908154249216640073913558961313175810954210426580068781564334405021106193655097575048238896719640625706427485076878275951534052756844724640152651670758294118879842488354870345274711987368211360235196868338242406809588797238048399552899322770519116282116330334495522953004754766542376250036968947496932909388969591866122642323648231694222664682390789555516576303332620887170457471152338589497322935398258130610736802376120281802172089604584901048864587046901317589286151210473118818408570075977952736786593887967311978506710044652299775339077051246625094008785671724338696264801221024740499282675281812241868796883049447784022854290803426891201160650159112252249555694297558047152726457587423052522325493949469720737658779284866996906839830451935205617870427495173180735481770038904332068215640018417714675113645462185257511724315761281481961629091652966028109588521447034284823925075366309990503427974669430319378304664918040338414615379035214558486190910858027744648345258489914672321462425997150008803985422002278673293631726202932924355222019027350675468816147269992515657812153309066288488089283451577519992404286121172123868762766260405725669000077761955410011296124844082158234672651517900955877454996443099837609350120267747677747001399835521683929783128244102467796077553673642053970972730620231973225344782139245384692645486327334711749777491272701475082087704800413509947294189870915511951475914499057373166061684441178129415218399140310261858573893798007138554734502244661226233781905831188311279372007078011774524497066337725873725529409964446044838750407296300537305501401634844053692039625267541226554937626676551905658632981585395769174422576173222536227940164129682100621050935659366061529921717349843785946617698431058451204624431334504738437949758918579753395393838773053956047711749188747186836373618943072289007233060173323869873567423311135249732862492666901726631870225100704945491233418442638106235027578649612104379505500609954433271313028150070544700482134470465090723029772916132097158811358633266951561246033785485450132569563585999657460469303146490856087638774730004248665626444669348973812460172546144693737924498095766196240850212680932855194353980940672230968492841555198685071868414231983836128692070962636149053810349467627418710612985981990960036765927236953146097331100289301857512628635546882749424575390119033961583819165026159361745553592451001268365978114496935371422871133729486034450181929522886988657538934244839251416624921370735626528992199279284157310052936882255480799855912758694298280846002158399874408487010040147282990125209536168427447781823350922394006161820578251339629368609322151409391392593456174937336885325770462749603089381258735452187829504266248333977464307719379765658195910737942728073253831775649280072389445340522441050929062248043219996256725835666401327105200433589974675453124452114572816023860143509455502593608416045780671735028017764167741817318065580924726901598219849424076640764682240961055079193467670807629832660831389622611974814530177831604635541953021928890369373891100781815308461381486948663562418725999461914412641724772825666750790952355613746471930572537909715986412623754772654272765207351375374626025666777751487970758439051383461322305910827489747198203300100120334256623869777462420532264369162467298001841681065516320549766307067329546068728439793366890988005056683599690939072464898839520321710094228696286251095020921855920747030340094245358043785300370719862417656666897893684330572595113254218503671363995086285960145800890589761842801340654243587558681846070892034746297775437778886787552446080552849233558447972746856474076820934901756414087060939444163842102819763620211518169729339255992658715030985585733004978965487100824216870608303763333603644479549272328804180645055687195342145094399443971729481088129871297342585574018963522213235392494770658925971565665104759872989521278333856695557824787795817913376069701196942941591978918907205144759760777263614967362927878718876980887914464456229222784855917327547349240654560623759500570577293174401618137174582119491242863957184883967942681343554868505806087158597498779025598900960824982483182729895026639415115857914991352151649501373716980491519904615375064757059793417404425727480849597747773356285428921963898113566527140717740430711959116165867702951147158534970011386163717192472320326282811933569890007342428633600080476452678409710383224210781809580144826692396352999373589834301275069146089584620919317496143126133675287520652177571071071299045979328765268468088137493380704783965514544785049788493936278511406168789504087509359892256516768709551533710922128415782568900006960100979931049346574720106052736458669460154208537220984143130467477920657318597508940343108676256528483133275912401357543180961292632059032877802179118820606812816014967469460267130667564192502046388356148480370603802139350884773529625431885984961284446459595669405012473227568589333317732337012318124254587305737930275791346274026826905975872172485763199862133769026432528478827806420150265383447901306803323272706031322166047535034187731899322648474679022102313490031170245357020276455009236359088865855347437077167295839973634402500387119735321120071428346025418675487338718036021794870044042006930254190517503146410153908342090282437591448431682905890060157232820892889644212494435070940767969314389986689612706288744908536993744068529212068483174625579638645735119651459097088054316572718725081975107571978479930318474112016397221512169208295116974357425615221710390384140243290061398961632528798599485391020877893454895805864535063592915134025927182105344833471602740900304072160449275009603738779286427183983158896052958414903473775449017834686561576182351430775111647404226315133938461133011958659130460568339435869287486617487628588597336394460543630113769183762738248857990285840030953806817978869603844717142410292956034208268411398816495293161172050887609334662897624005453695504981498784559940476917735393591970464232217977001060567105937752689622644114713097916001089202212671236831601070028854695380717963673949396366403691853114922019876043038882696823648088009240272372108130213366593961111851700178528894640683734731626796686614596849349207299843901128390773339853059751978455790395377143554503430129263037460657382415375220098148923375543079004451043417746919157355150810175454327117655690505776090401938532875999039951320440128785825251486892149732567114693558518040569848253243259445548361395256278130011347865502120764896466552437030004781241255569739725408932918342183787190836003892661076345671863056829129240809594059600449457070284172506169928603262577886188379760779531120011387135166657702529260458891608173434340272100833705850390000552283147478486300365823508566087349032276512358709886495357967431867753213774076787154676633384878786788117601492356963824795943427131031210794678251030781688518148945929681838241510470267116298875341847686035469777468147384276358442886794694534071086102990218248052998257321540275603616803515626126557369437423990654129470954186721998178184949917552840889818285770800311586603181890967789343602140003884695835998312804751617017589357931567758914253991343247347253066797590845716836347326369508948243749675097965654397967486131126575242686733946619282995721240592271349804826581953854937432654937584289951944116737063816305656620728753927298667332290601240810378395430844428781329479568153540105887285914652555740064285757238485723054030791573727994413235298161905664812106550378045147753716559788202200337022686614866447067789929157272534528350117617424614837304941153694934392872194542419331778058122332453263058782105711557458307532971201192435639176168193116855371099912315126766059654716925200994525963990864651350247678787856374672441196848206731670234215508140289524911567046553226499015214898684219046462712654057170311844399117173739218373004794002285397931857373091323807207594454442196234060009185239215885910269173127987476909658574924342964427378620112279417329557867243367254400435192789182459801478433365086680070311042144268529728244617899189831500958540397514004814543654805723070021266941172575872728231703638569043403036819724245506950975879461419595493838524294995059133096281800133292265728105392831338969477413644541484268992537895403169780525221428475968281116190024135773243638824020825323228930265125614866647676750847207767491044784111499966299615501620599431175155333063384170745899838308587324750896876715883949657631451441920303358965284322751313764554579441384782354458955665526548483822034313805634866378682625786228006281487735353230310739861679165831739350469614602091467214638714833116537452924109721166561430521735738142791813252603098865245644602933900019485565735284433759951569155487508838923374211231993610999563240034723483838057079751201511509466183638779048161366963937030702025745471239055837841628982640429258402703868566802995062290654821830342011251201819497586899096648497207218083854193306404848321306418045846135493597096081842129823279452274333823631433675707065336920266268429619360239562606374799927908050626940741462096244112699062731760451070120846864161635428169862899520790859270379433119695108868481058165472984117350339124077603721391856861943028595595204666408889983453083909526270044278401783594273510362752434305669294676120176170236970842429484381632915268730256932353461356717158622119283102598595078431049826263686579581489123398064440180080759409909161005893491336839175091732310570493809591786663478495337309593242514603886750582743211428696931924979598052805823015805765948184046545682974275938774269119181001510137101690880028841320678799657639602357212632942976247630361462713916163879396934711193900813692075068815573636256530910782961214968642665522043631514758482020472454048771395321910763479702187157769523829828788357060127083804901314943998005108893061499422114597972532620201785709581805103507534884686224517439882246407240369154850357382284509121953820192116255694218644577307716967685957030016901768932887628014215597248157521418324666524989130719731118296802915023601661874187368673602238999160336468133590128838046377188586850056161882153580874089373873588876933867681481157238319117811233235936071190158736460813800310386297266613872994047168739562757152792337857798665996502515637920200509901828676563994689607022485299497393547020537875580250578274595752136348703900817917540686130172732127627523221480155967541428513885097937057701294178268262389062745380772241954304710251293855895792687874445442259080311804709721203036392337984671910793436659913936073524676317493278554172889196150158898914573461109908335200797218473768017382014469129271752109904445441203946149994001970498994981040961301030715380224708305743793141414512751186388730695685800901438719802975439114451976942122308370649008501932769420447789859927007443445630782112593791819079607434753693547479893850659596456759822887594732875270091755384302828434881077565390856493744036602539496006702194495196721015072333036955113652997127276637919363817122715678346766014400646181070494419562513761074796161399546827121363309720748357850136174499532900792146421145335801490946787847755718973314853092368593447866450677333024341510257895672909463472043831975919245532683545560930608530416316436588199999301368616489760540989039382466867909553557221420923856858747431727536309688745633953899464417878599500388802140116965780453052134774137561166620497325820607534558500135673783838718354897700879938568405787085875447865981102696267188751002054203744370879488974056507210421298053495154581997718650647040284908409456826176091578785542075104609521497525268532076805165332251417784090605541926413129314505333683162724515244789310422367003342713211919552152856112739929223900001999233707565357048015647694188806013550482615592864586226812506668423395388847051732300451527378912520690167478259825542789884047682951326320362737484542019223140176952115661745977033986006521870326929489852984272779350053694705697422999540651397422886804112737904940069995175800191237178745697762611529551358176085504929152464318898580159782108776122219217160343260331592340261398747705161025799299068307661605706718371813915579655579453391995657275941601939035135710293308492482420393133021150276127192766173594410571450800552743035216682989458340126836605243158378859193533443755141864872689132567586076829452416529988856491764236294701835355648921761660520708377938412210567383443842079241184920199243628327818595212975086899155286999058912502900395728415469176536561993300733601514228226708375537601768860182627751594786924311525376347820943503122896866515619536188565696817030749392830470759522750274797526215214280119555683831360542258490334020823767245371539892799732426404909789442299256157546735056123437820695259487612358465732879067972433641139650064961599795531818301296724412748965258848403554783075728789916133619000846879834303942160456170926582268628089144563764483071146481469635451969346894985261185885804940240353231648809764854408844913667368343731207574535289533447304340467245237985986025051490035973629404972004693577141866955086494085710981038987356253529758910736207155226076337540923376410484066802886507157764812321444720205414717921919529082240240000709522233129373894531275830245696796342885312858860558964299973829951396637985547136233926041377851565363849409257268086227140317013382956087612752737639756079163155246232539518235669032397295417895311590371766941635838861233644064062544707722265032533158691639205344171714258870963943748115271497676653505049219742943570127227424517342316653804411858514518419925682984651591383755270483573281745679481472359636998705818497066539695245971883805329582256831694516635700586281194792138011984193579456601062517356607377884891278994745467327575992331151302529986619765520637441265587564947068304095191547609708800237126120177934448202811179758199136247731759733392139554518512126831557958708302850812207823025421864660244426246845019509103951729508542788119103639944819849278787301029092393681891646585041327198720711263119779966722655339392252860630470408202515797047691928538971617117906060451443547741318852551785083366747980462386812699994194325528178771056374262408998454975916616357666274098543412538617685442078943753642296590943978832710245696085252843378865679787096607811027814428123864157449698350764022137120078195851316564602288861230956064620741672650539096925874326627594499422269937081061764689932996245834273445985373210135027022858303236325545777113855174412160265284256977681305499529233718194685682756948761385236256321079697237391313471462246371108045917215194489858336853031032942995828388080883030958975998349582829399934425814525380651719112726570033507803168980276634065917998204871654505162900744902250259803105943791296065491381988468005116955621586696856514557312473695176397452318143522013188558790891926967992936164469340551078184373990630625802619547302098388302726077564285904516758627319656909829756783535332031097971195234864429538502030404964806341790654295666912136265216628905531313755100797639970156826357056519417062049611149005954480328220427370840433161606828124646268284459005744115101999120675783903137244577128611802551902336178467880793445828501672993447048851686803497411849920932670846275785304572306225597982620640128987953923045320859909288348567250749815643556953122680596599432144332517907955512085015496501708089821868727573522211235106509460442711457859123979616056572786469394162970664542453653193510281817205374266310936349839407640266955776102019885797489595070243728337115471751726961815388433369099464348510461710655246997605743521312265960620106178447507339762758072517922659642334204331338142171262799282943837701355960773154640965556669402952999304664747676977023199183477388108070985267789590713035804219731623697765313544339383354224692282994894574854124608029152766081168374655733054262836045653652619726485810561472067615825543252340244116129417026040725095713854939712583283458097204531771472117404722150194448694237777042335887623882992877424540391347037647406870317005464123545109891011716497891350593755922819368003154056547024552176507273694965830159450557246531186798909906839424257903832130868945144976752559351761630321843586263222284310753406070436590622473543089894820746508590183575411333722820970174308199008089934594222608355256380846541535595432612902995597588207791945035370919118943538227785914352174548542032699437323771005101752102470159948975568940794427217548066131778423724556151419165162829263660238398424764979543737991223575202796427916496773876166100444753701466156191855984086479051909356141505651468308368111595354084004163995920343956609361585108859127274825682294241759493296183294215933943108702279963382699696142229401285652247183327541047082293292807147828597497170483098857450951428245326011895925693584075831974455042799600669691312202952135389438154093285116813543817725511563044269747568392197096994801326750360027256690032305112197546466103718868943024069695067035985629630028606590226511633907473922104190519804094684358140064167672879760093460797767979502593452262069006410273516161123038534423973685376358583959378922203494168025678978799927969834135466546990924705370976227007388918262251040250538832598758111741235289833643289272376746457668080249615484236455264237093414037007948826037734125591050938191567066107262690260639646745060311968732697936361559630419938984378803050965206953016398857924932017171619860565065933028906585947239185031661705737486440349147311919226793557478727728381290800525843973584751991348320418256349867288203910179123457128563382685677129070013514037590076310230343494425883179880719399315803004569537508072261845952935518005386128928766693839566554552435600385056339697520553011211335868736169296788390688644513967462325932497071543766177348594888144767709696000790557464820237917981030342843565978850770849276339786050231240285893617595021510605095148930322701974370023720063868540793697119032375519008223124076803627356128591596685035068074589020611816495696684020921886529470071725812717031215404886431774592313924975890185858975192136351137400025334591148431443347276846547842457640166009419380487823862815446930287344530000869551850148158755385247685826662869038246273050188848852976965190256147681038126619636627471846990849884863380054220985229098569157784187556734978243956273321595350038332302980111957974520656637583038920147847309426770889674648489726630061513686672404829239654804550186235154180705962365477558435011568170665840317280021710510389960385549285261104572114879935460216155644713752375166936537674489147312788155147605340006105963905727953076663809976636331995170500684758732496326924848680712063903238298475726014596273651018586477730335587244498419922948946521063915071311844313809011822205015778598438229134281064495882091489814807525001995107430525211548231838681915476195481400541178023198876589089012798614092668413129536556999924516275319265674944639666429403740863661950289496550372195329124525278982517528921965018652907662738511800712804027058728862690137211306705371742936139590626207764189843306001760709717660199779072676405460766087764247924647787161488472631926100417371867560160156540709546791723658027989578419758349047010778931276427381404562186920323480460566648406478269445302425036236337018065263257702908205943394561077704990623565757968044438409881907874981162215553173137332082817608150766970452047530770884413407454900071111081500463425254014540627129334943355166007804220842155472773488190104984506656477638358771711379357461554280025239576792540964311906542986406094277052260709879660800627383473958862461683520855374069786763072070452304029069211319292272267740184596658065060174020203460659867560509181116502163865783339024888978317128707278500135640350563876502232906454457690885512762435364795397020227007063930733974806434665712978373686615804778269519862400447725459995294971491791599265534360471957878828308351262502199231713828656674327940011094821170328771674401880451651906570298782642731325796797184894847366516799568033620880971694262249314217945822597944403348333389203929829015469832328434303066023469890790088796426154910922847240626908499952386934131043787851346852681232087267812709928128335541940930944345603662484632197019477740768916841421780017895021068027467779799288275568708349040883108913061917311185560965111425617727084009280756237956247002762122037057157813735047694862194123300777772209812158975379809556195388804826775858598837190766071593344219688192211407072259929756167263887756759155196153575016146380047191673886970953146367084742013762177755977629823960545300065219820064604287381612759209067450328939593532201991153594354518839956692759552633960501393814226498746705992272786609624381641175460547239405591385872200154177175767661264243452148765002666480576425016019255099285400203662034201331526481156439732900947235159473296295420696056833262649957443988091293274696659599614148852406414615351607914541748506437285495461701088537820808478964367958727177565614891710692537271221080464126012006373919272967080045149193797815052998801521471827431282023096186630197317952056923752498838129213588220732867048454172395309644844116704080045286369152922954538993164145108867077537165500766403705722512209204396958651572452500319246785418638372567047240749907270194286033885171070122317346098507349261308096867851086159884240650573340671578372803082198416758515973995136034408378780274387349267634228617786430471433179139410954884016163142972837563206671674792000505214421644742081078741064134863816587196125305933741691129543956209963490165268295098899064234064305344307740656088414515101829368256124863920687898813331757918105994401226457769767453834747116718684571757697986442375051708688425791974692677992367063787544948186855401771343775964594222390894868464588945374115170309769515561081928182470469687211485466523716060713904588445840852271372451942231013929049281909528207658508284481246226598942141834476404428759300675828177053268034500988496390516657781584756720121205163074606425273952483170120737606642346408014163206997056908916304092691653458823799404178077682711604898953426330486595300218469971443587867368771355949466211905933998868008453647929155197032802065090904106350639043039731978804952729620411007884428034298866618500269491366932961024457303541697460173513633717977914861192765019631640523982489660339110730256154690354379576140262304404235316330316399400075489669566610957430667060836993872026685686335742787655876667848987035512336058620343765259169846801996918046779050514391961861466311956217908948920789978734539229940817005917524211213816748998771635634039082494675641941189841966862264081444974271646060335763262731097641617233400182687231399462162273504233277382077398349358003618130588297982836975383694819606886143023317917048346007649498295724137924175758551958771922734751864650673236573648800676382131738631242202394294789042334866455635238044771454295448928495250152598053046611641694536909351019967373459342843949253677147488246757188245201765258492550916433217327611642056925444776606100608938903014023908837800823001740363841452605169561357453952586912924445134689371674090372387191368827996302211411118027358465756186220220714739040339349080265391006193627193507623604961396743368838673444079243964115666923772843544293010095447422146753528327989844883142278455141710422535544200302825927300508941614618596438317111983449467575520691759448485192880639267703324607130801119532224988335736270294219602246281990049419996413896882374387681914856463762078836761381658764739143112715502517317414950247665961439521281863055121893273680681279553515530877536845501718525459724957783782268716094894341052989546291754178008950426848973187175583008692771931564934474093014156141726991174820314791693151897849452197723604630507022204920242209007666489308162742730252207460888681936343024231425345079314496321709572520724627739071122704553308160068485371000185962845119459726261655762625472516935114220269812740344897840741010216626683471922079260244406983910516872234446848870090048711298046117644600405390328844245749877684622708811882357709350451723783448247820931883056927060867851888620965284124404064209020215900392484042161713802636712908757385718739853905243584109009312977439179598041903976462408667185091403854606544385760663432037361831735743223478970057564667013069958451688654705146219915830532166394897123122269876831117587194719368022697253372372600843768318137557033673630316009172200075072376253534220634571191378552496670310797158412254576893008745535707555903921093384585705046332897343845461295964759842877821490887718978237665237649186838540183696220078516115583363434460972987091054964671074619180237935005109522595589406916149965840675443579059524563995300946199793605395352868488731095165256182978780945252889685836739411444764096170138089121654966047859673144018561912809848475779958909579223769599381348621224731933596304549854339130672665128312302634120110940487188793547381458401896137253925037988874303349474387480920808505566557981760430931518165947955085428010958051353562858714375429429292022051351173524933354238144683985310067172023292091737408934464612806493338390588524664348762396155173773902200726845431566733793304152582942554174335640228915652577846694326881641914586613666299455388846929289008063928077899632978097898930095608301662146761364226409261887321618327899790614145880831610877643586792609565785918200746128417122313768712101857497500732094245217722224848856454794050390989836543055668190274768397392503674806478559689705596169223570708730190665375371334110227055787125351966508772977256891103690740532951813001411753316711339716120442180084181141012307906321446351120392933684425749268433463990272660765494733006065856127411053043959391996739479616822049349978497666757909345949377465298776900648384796500435403519710162546038715491529021716751667249141276865945995390638217737271833635337475072715218519570857462822511467034415370193074069102707937653632696882212281422578068902369157367360452850064429730279849879327456284832397953514004538825482543370358262452221580650966559388330864019315232829646126552872683906151748553405020121273728004861138024152706024168103666176826732923373163904102761098452455072168174647775565922900046295449931035465898612390039349253508597370210302588638268206762422542409462450818679074933018476697343383269869467733593825531442526353768380327375026275827187492933589545854109518600116125546720566476593584935845561463208131185293041828307302384148895701414552865854702996534956702597971050601714978641895612654729908072370248724106151465505084732900035448817524612482941102282175858038299661847026279385776542242053606890380984947917899707987022511168577918596377743664150328610962928045134422928537690222530667281703216750539782719609421373503300934100604707493595347445374308952120597951292712454371500419567596429628299688739059533363108040557041208255915326096403924145941114738653006804432628921858878952554410992258900992237949799438101270963230472184022198061339144743486989247461016996986073405214141619149219561605659943891381317318462847873154965329058319180860184463256051331936179024343109049216090903475630620503285856111573153554890577984171806804270038791630519297923834466161871593931594174296424611272220983398504867256958964482216892657900961671465318101410664595846254558538466674325371329208282123510237127144771924222855121614603455113614175089802793600510796698226752082998161409730407227402725249899372133318919864029731016522293215189562190314642457969485274713024776021458431158095185597104168015867927011756629305989710893786846887189752012720766690362379155622966728429200776523561110117814697665425426040861209259091464435933785354393854491260875904517520948325792277457514396303530825993621674187692385947592880512027280762076111798103173385833182819953547374367400860346842083468579312839807218585672156135493432066452899398138405910339821047261492345704839161144029623410259186182595830718782449527236995838903374920643479547274884751388935834609193762845454912246323445126982473658665820403437678421647885841472059614551840291783797794924554589339522424734877769290013755809223956495537783021738688857903642747453243439791391906347514148255956286948262843258378925702465691761225954080023280089265561004946665871006049696671767613758834889054179830551858993303950812790233709351282940196209115622552761750187336677531979170158735170918151312894741395040576163448321010821209949131186705577259486921830393042711935048059988942957348320718665774562533090927822635531629466997521694096578994906962148186667070922848323102118825346714457019228272277045783665217982720711099506511920008004064001336670553549099586949087019161553348969709273691850987914593738532684436549547699609115871295271913168249675646541727678875340774921102064487856811458892659849643853573057738585389917864797230480645070099761962687725568502628880684436249207447357634695930830430358647154437910814594764916778758745396183587940123877584089811894493028024989370044638334833524996402612346889395563430630108162974017757997405803637613452928103161458338396800473810052390968443219990180092598232084764034160871190866945180394904926167612462172233797727024363050800282776472324805440932652757345280879026565338234220117228439098234014589532314422519421735793780567734276246926308763939925599026740643738029422947209490456156585784079373389002408688589659144594361931678731930962036077521085152831218705546774885109585735450400642681975692060144438425182919108485682526096582070936784401599737309973562578819517227762154620089172908985249422784430487853200708778953019689020228895528542714939516218461240001135657701211097409264217243004055890812880973752151402137580506363340303982010907129762665789625399535546647786736692694085256295883370528544874497815126780623604537453766983884703851814113452043533058841562552582695396728949888293221921510113712864883265690248216104290040585608656392622803421838159879059324476250017971173709991110138965119373253267796068851520425598777270642481559967229409528139063950144184698584376658746706257168413818535336619652814520317860184212061563140500044693581324350649724036589355528829442812432068193934785465913676527664599373974774966851353153581099826095158823270196005224165998972623088537080636023254854447404474655721873704317551898396219272189559527937752363894957208236730771219258954504294157574233102740224256031576240760481281022454965316445247368553436649930486586893228626644824617613643392087061640725665299683852817771910084840384755428275420005870285736570944238588121733887731797791394821758438757203801689738201641435888139945558973928279803610689353195642728403923154636795425217645958998384702042807353410035706625369692565490470038609443912379028607576088208313982596898453293881646791688749415876236133282650872197437994520160542851172341978333321777887666003776240947139674890524372790267498253180769087736694619387229709540536407711670703040902426420220877050180187652342393885915035550109046375955852282853931399879348143994543185221309890968984492554851392436960518775530059953649355141972581002951929375424522560370330608560145597754737994618551012367167835257419534614555175748124081621240766929936466558840529885525170088095213224098115843350652241553113364454398023877184561647870616383273430617754137051814198504504087354289771510639287201448508318344535719143100696616628805312434310985846755698136913632666455194816668302003907932758146767289501447318675204108260886840105020539829082505601707835294905397800317607066261760658174686676802594380637107400389620645768486272516830498575793259839764558821087621597921490500837991596838894690810158675666918421107933759716080549541857856392576089826208461844764548085215064660703694703846192513145376819091404686983985010886430544670104899702665517328223610746651053478617102280087292951957145051208135223120785298931889527879549570740989970823283436464337802864904662310321680121491401453650232008390942472270532070801196366972203568353625349259273485663285561940721357336518610574515063376559840587966981673283142745702426914093925698612691079680474449175558482550535779528406970178884606647775307446070920946527801845273896281180817736463065926422170766565847002112293458141052542785014892055112303524083082241078140538091728114247569969458243459965002761550988407761833917700063031068752422110942400915746140488839658880485648955892969655043515173913272947512448577598964512862207974193263094788807571312806192556445707448624427461932770674890496294826790169557053375079326449233525459711184713936160960561929511779491847920161944258796198304122756825512374901978954652798170601075514952111290583542459360946483457565230779627993448389390363226582739764313169726853290743593723805961968097457896903356421799422914703741457988177590225537603063025123169747338641018650956973871108875025652713050455503295090962098954967990163849786891563231980110268122967066006346279753925376821057823797082099426658631145972620792159259685349534642805070671192296930629767621219470411346731494313426489021419558556663945182241891524469348167966968219591920721292673362855214403856624337384418656635201204512396799112103516724109157736184334231516619327191175970474446218284650553975914223635146248757376159604052980224391640060058436434571415966513723766513254324758495305923382298101494585365285700433315805922191073046078301802355010737463422329876997612231472798902889378334365929296016779247735751183750611607015354038808765254402663349533200099666087904463454239455413527227490835243471058390848923127874773778171895001990415094560520527143088980067126989977064746915130357989962550814394102497977147740704743832790460944981990112234439419224811704929418005244955016979213141415071158789970018098482819961269106859968035844067388985528030597081552178157737651115881435400827074482973070533506492866903904241736344454485728611277603302432610021284023255879844947974765432822759966304572998081482696930127424473242952016118412317451931125261738150430714873357898253503761068762009125016688720338537070157807149659265099415832936119958947822801041219572138576824426735704054030886987717522318468419276819710952598387665020467441475997824790422550367116636879128909634846366920698854003985754626077752162638612470642695119620641684953154588143887955974419871524667933335464884228600700601893523721067010291285364774853424471493649543499138016192244523664632984956425025638047206821009235835717753865170050563251190896125575620561735044328282435475490900640398301041269515674182663039231658243807991205496286084989810343200635734117558061541520349110205106605291213849637650553185816801633968996351450959459950028855319373423169018341119580034227878431463797032842635998262353823511643586434673350218731397973834870311165237729352376629665659414842815899352413247532518723155171254653237874213434083762007986714218146344791195687376994513617852205336210859141496151157782952132831021232776630287371001168952435454381942853287467699730523736844385281095564917233641988924813086085984509402434851583346758493427771302916916531369374540190610491337088069444885095907871923072201446640493286447471342853965764466855516361250561373302852963704254373874522316584599173078808504390748490026533676782343860963858424781182550693376147426468378314607085108079236271261421093042550876962873417139441961995831080114057258496652140668595490443301601559982407206477867433303523101138157359402045037127003381569799390876250940464430606807722281777758973383464622162835045966651496310234935245045474529713762808201714224046468826639650921912441460415311270964507152142106593498368256763611274623373340641389889936058100430034918461403705703864481361649282889548857249505895547133655400608143372376447213105932294576927974354007762521945986590373226544752358460940826019206576087015989675337694034379003335991106322474463262519732144765747404971938715477046725512304090090543082662736923390238584719854443255152336749864833355522693912044658770633647676566577863788736281202389428112081309013497548933881957365760880349937952740166538849982667811372966768720896742583661881397328660589454578056999769637349608264369924521403635284772204198884653839537349363364806677329393883650138397096851665321259832820291147964756222627574232370623277210726413470066379628213217906559828009302369687386949223423466548491985963327183681746839965892749971793568109792586962065229837836852307697903854147184952397386673054278005713497489171030445752488222457816417077865504134762082355628343131123277547996154651072009193055916825489698382861704339071532525344599889567770128033390045638488853898409800963277290365071616095311886596105859527276219905415187684679150276504007466025107819518454845248407169380811937958746661204544670033719425072925476794181125708206443327195030621580677712090939450292672706678815251195761426092012141385997020035010093592692377052362252855205059239423803156334508367984720989133610645190905336954735911743653981104779580100589936501642759733156201664127250314421558876152199239659682494986481272274842096343962861011443651917099275444659858928557530441365113920368506566145118081078692793947749457873360613978435769096283974760516245019252954354392865648418050530236310951698146658390621880312762658654510877707314752149786628106198341659072291811737817266655097524650445375797954617073037985930221440590457775591247008801554026537175384904731841536047018551471272693662835167376760824382307921315610084008856228856562216907885617198192196315398352996507456947228627185522103989288969719849160167717453916490028149312064271132269947178752949057692914431286714806793730435658583748534049308761057923823141964308484097527227418753448979924888590682390854062118751486414646234083121587460701660388760747010840335812798322323456450952921770850059240282962237389866952170538764925793755784210500761010812997737566280482471183656223885859856307643144359881529158475696498896746766314367764066886557165670344307224861423556176135021847427045596635076611630213325153188294679376498459160225881395586271315201016110083440239193578150763478700809962634312041533970098664988171777518411983625139667744915469908596331830542239453098370521420644070557885782149199216036258247942469271061596068084129541957792100508126874412005604379758913408968986386347292757708770567966403239845074525788019897688416508821802552090813693242805483795007173376791602661334661052531660207215823378540757665430581661004436954056721578038226819086437988502101286902126533195947664848631586082012761231826696356866221379647828414795605730282820445383803846770615260969951265702734230891280032121974308780702111652250232107934444766488534152291279812148131137974413968970655588839071282949850709218758096806670320937908963488282664313861441778802704972967835970502343736946698536534208826303671619363203335733681216219908444695076093853714174164780954296614238686957808497685634589995930839874460769081290913117777457843201675301737291261180271735327522573687124992183812874013142965988365282449174114738193765686378702077501321442399737351060966207797744144966018205836565119120927457395268072935778734577942866410987309144551684209613435118114044859994739037699750430142865778875777017098809729744048517912644396026557959141976364774437266293446913559958764160154206860486983785735435969480685783001722710010888522554310316484002955661590516997365330730057238447661690595809109900127438776615868627303747470348355055776644342088554485429705118105567956981040905859273652090318963062119080241546099091463977696073802586573679172228127154262933935259059949197129524424527665690053888949350734631425243728549037824686083360598696018956198491722115789988417030723202496892926572107511069565847674062168697719226578724998709782019086839841667250094362495618182332035073520067571968493494238068158763613882347356316776259774254079562542241443772585210808210410272048717111899587718184757297583607511020652400186938911451756176647976209166668731375106395880157481099842568573986952412666659199481997459729762410032306422432586072893773947560092494944673237550169273123914539896720960201387599225260206397547244430292643701118413617254579669807899329158376681261005184433091969969847158237494283694845398053006362100292875748094736042925741920425070968563081783672905869817141673079432687011255313922956510675578525378601773073859952970328163651973710652521152124626232683122563334486601422966548682427169033665648732686012059664174012037729386823103744327486951926232359315133716683015354152183294446827050541138834660455872207053925845092472570612857735049580929632093484249255734257559505256709110817446419487256218337958808544050972773396881857768497716717878600001186924105176248962337695907944904124818756923090062565896091100718457585392992935819157046729149383649344765543998617087104467691284852224906657390579049055466659027509319193117049043504991226664698485371135895180109151327725301295901662412160030040415624015888267177443368060910726292471604378692354149277176596153261154968037157315565688677655271957354773831414493571912935891959780412223479325815807036643070525752977085871096071457569652028372694509505076919440119893281818071587503024326036882738747143593451889187029548967095182847945768355531541263770570868333327542531477009688105090061032900973390407454508157551921831567096611761061278998228080521113868889091719219579278747465147646180912061476032756216107798464499587084813291297308700240477200353682292558149170836437238221198683205548458247537240865668966018224001281234065976630422325368726983731715306322171836554299511868933088276197222453070736156554932423407934771797863100654299306757050275485610851208610686046747537744113558686246695112625301307740573546843008047986499776589079304935389565283269256841605699066962458023907506972983784552334676650693584941717057705702304413955998520331655573692481159486201139071144410106461343721933972103915552413813784393249257217833700864591239029088385709594552024432712059654760384146775359526349756100617027561616411656346845730900465741584257919099646680965819472823459249027388661571838414997513303804344803836295839331163727261765004519428195014390156160598457053072077371802919099097664735489665149074851253188592533377831986620189882308503344609411157204844842180851585853091578100683588553131434465923615029156262302950003884881797748107448752820784208633582249015985711119535537782615253408589512777284514704612158973248504729830727717472962299661185440492154101265317348210329793531973536429384825962152452557956941429905312489260588983266165926136874928388503623952350764553785268132132801965315824260994440180060821138658835306041577072045618685954144281569459579747735607710000930966218832209523374603369708622766200848014478602874862169130677042684628631049441869527350256961064173248382043995912379495388678912339501560188507492214959861102049693480168333553280846082033799224522526295606644544201075330336002919210267406394238790215801391018505263762455496962532672704290695070456627202131885916443785297695048503315446338778805244527973769893979107688394558836026454389782783380002350824032009791624503975658011935045903522600987320856410066253455206591153210913625194070073731913624553357116399716788506508562565632644034363096176573251376436892913580927926512053578814037355700146788613131466096879247104781418360690424879747986477454531222019724178752330866625036892389497891934714961883655630305226930180375747127336935921464272193923764938904353051415233759477449725611743599719588920623095626524593168385912413504490945449221195132053410619349652229356743209044102292514003839343008295958036940964595639144361694032114721691481352404539170323436675670193818925834538369935017721562554685078735829597544135800672250262077398831646659010613763010902716670701015940071483776720778319714279213103097615123286746313972021422551840897288941917418979497978211488823741424409755328552093679347236998342309329393861403944732116902757306330954328622304453822243807413645838407664005522130904362406153860539839015164376577977930777928823366943952110669491261356330710782532621509194391883337133702960726640287528688179877127139690760257276207385963832059323478905587201868751217459730903813992572352791239203703645757444377600233116481032835826717916497944395275014161121123861126365626166804575442887748995552996230952642226140300536372447266301243581848619043218884276610156248361510698007492829440220491229553607560171707394277472623481796883950269647553985569080195280816771856695974718524041590757046507095399112627072696063962831384564193254454000049719010634916144081544923541268601681060480037366331976989099170846427646472492403226760787582534201583043911300280904464497664680358292604752492235141921339139656790239714107495554428476144930290076092973067444920854797843295665608042008794608557013186487233542494417462520237555592198366957008419574557277914395418738463421926203741652130531798131901547821018137684644628968692988946313980732961595321526647648063413665686931056364215418193280017324168997222589869048133941332114669146076115743109205158857912722209743857045640878235543330982208398923820269587895562497822610725340540247953414110678031531521268032670910058994711412082470361248874777514189440164009123436901379313195878563054309371429666521557162313009944023282678483748654627236100898619293477580936646520007256761744465269904152083852112630523873870407312968987575953340572478552266470170825703352927801341595518761823946815052502961053964049524831969812153699306967984690485127058029361358896564023813263446383564155504096707332127495501362587070675704380389955215871010589518602910439822446894432119617436815166040275386749458000475459468412608721833787861354392239221252172642751852072141679340019105030081157961963874210875638296798036519739185456682437090923832489721185734535193031949273210252036423042612283269267931166020370122716984193542719270189892103522068763855642179857744613934406323546986864689349813709964732814335763688532407358863218602320164106884773932640748229870986713177387847149186580815735734575103250522364269912104610092497841974485080635982771431930439232774897068785009629961604916662024518652593512683872643372367548604772205410440664249437204643326314340591677031876186041414101340092752636269293271183458346825522089312352643753997019972612278631501907516225775853601991930805596067618377184648204599071943996059508872413168393075558203573816499842121063608410684656622725568991307638582352939625196869106318259875499332024883002166128789483302497940062707921818966376170495684220371329098459051750493099423319169188651214540869918117985413070235381592331156899772843178439633451966925624922535803365182508839601619897109345622862177298199821369000348062359892635041281410866401802554954232970998672674302077946039538915903754231825528146094343941460069120737399796548468041179718981577034066073874000092321947768880322778131937477106615389585859170958434677808464508167089710087743610559981928390806082063501168830358035138182205866278282878733161011895020971549169622944206093012767295408666444403829638696425441603105830384218441708274604454115529115768479384115473695408687702393323823615042361709733152414341810072575162260741251086402715017610485229660409891297603524382278246824775570897979162883296336325734194774985197569954970591535830456292174724105846912370587536647206831871625684161499635541318173023936545517770762417968912745829481655092583671438549096100216590269119893819769935189948072327550387180860461591757276326261033009373690146419112308311816906504941840762213747428289728926040205577838189593247330618288011465584643674596178242616489124839088166610928398878423380938764966544687037049749597520547758433257245685065824136197466873912342579428042922943691197764540751526574897621174400559954936201750338625146016572653280808390557828820603745415292756874727925283542246989093619571098174842183000807359683470429631421410918482791009811779463939989263312678542672065439508444756371250265259972099576647764283263354507059990441769042535663973679984693608029967315788444191857621704208307350372851620816489496485917292243974184830090714379715240394764840203378374594044612621491726659387492223066971731829562112051430686279381003084200286753863927481535393106617496306758907122546095527236724588310878161451052974226731840015049230917718178177095501105365758394313884716953237550922586026251040155324612341876641742670445073219896228266190660606898994520196605548888123338211602042937446018862797918156871202027818115295923863271170032213101825485369217720155096151722054372597052563083319473062541007668951380280155042631921130543340687394355224796001434996420182074400831242194087342939510583522015208003618823672562021282280411640910941906149032401525457196932902507595947019697941605906249508207949659872041493843475217693970019939052661722997672716325782345478056862941354383530678004871203127996371196809979058094241680489023159473434737516063885308599559048011507951343664220938265000851488929145305861858909062772921358934553868845074527387164863067554343658506914347884561800764907748427059381186754479648557339516866445738632610260855142338608979647259260885406643429045997386776280160419497883482699975454002128987539533096658453574660085957231533634142554655650698415141632293596857300030984301785703987186541793202076516709399666753993068143732195702792539128176041711162534937354096037021840615335009680268040885947692451518302133332915889217868595623553983275995867735580848226210163633405436689006303941402273657744570770923252776300752206606424767023367902533196572424400084433512269324739911378383656036159383353125576566555554382976338628758273224833276340934453432761742403307104879582163288723027750246536702506381712241579845666493190342616723361550548747566581968964370212887393274575046257439032746073309272377567483221820118925147156327528415465044315579601945020678160612352963709548099737125136860380902811814882976619443501743756146172548479381984652827417926610010115134755723417784287187773523241214196026890845344729567544957279378953074157895157617311584957851332440222373261282995180278531866777053959180355415151193452342186491120589706124557700779600946385981166396509106578060613698891103393662112878768408329968217168767150292559826496348030700161543836333058244432178538239203176107936454979043372426664990008412964850231110588344892203845197267889415286809935871968098852480134311081767150918038601808090013395109329583428548050607182880869969308662064522246173368353706116976399709257966476903661852368428957112309075379375718129480545293985796424835293190794487224086649146899195168153427391169132985180340524239426414899598279483695331514388680365265663661568414633066951060353740953219509148753433850076381423504963765025601947831486173642528551163482066840801786359628114950185419100431533363950830815640791298297383047108212994515697275407938609182582087723612382657012292036485844835215585115185950432145354902517379914805045502871791340357159010904568433627728863473613524911111880204808624084082408815579568649420631991116239271200621716070175472319944744509812203832023345413076369561700150286001635858971749721966412775618265983625302821656087289402749001739159328972453821367391633878183963475904112749669941996609173208504306249862019503752422198739934540585824630471832803782322675774046512413304032114263054567046470452766460427307611788557913659827367112811652800563512539214838584349730645998922472903306002654076563152012457254872611143932757730445864259467998173649380446991689393015628098908287659659218859504858919119468967699254111397624465563463256356558112090836269352968490647544785044530225600366708227836191228766038688972289925652811725406083360448869900103516462835608832598714532795830592356993379490824405587624848582083617211370659468768320758906314553384717091376478259087795030159881448896147040229750912267200222043387699196834781542435052910295712763482710517684834918405481674626730704330459074594456093311388492619780601115711418271504301857190194669071531739196774739444888693416657165128702105938668699800114880091463615425648442245449937513155741353265692239285547016726912100352553627056753030736148599933677131297132422942827327529150499984160622524520608838056366274034445179995950240860495217606716747643506348951971289258719098035916934359766549896549583544789599694648347866372871455193670085507008600727404211880551070608126481211886226802848845500010605713943139478318331957918254613959047990142836299810587690443911773507383475345148162038236689669142734737774752339626597557868599491195783277773743198270148093494915179363334568119144415407133020706898353657344808035289966695465975886595784237071336600397349468152719481996528883695494983113729431045946832581539641150724940535771114565152088636385402536077485695813291121515166930076183626772008304266355491430056143671125589102980931118557969035509656235474728415037741086316184838957122477699531777693330235529080088632547213553326564981442236218481162124830919409694783286202900871008536136546820466570334715584358293302821437711273940472319447430989643485483210578622605263445257229620889904580847035595949403143887857972787133377944385081579357172113991955186360949354936459297300818703233884846223222527259454840110354309416169919198836143762330456077953634697495373473465731239404393766924033637490337922688860637024324072366909893165887026632344346573578158724554339941373294196864255898431962513338582568956136355045467978408275548189665105853884533204781011753304088810754377062582893434291477144692264155769562465190259998744341953133504876969657180203253940539191132567586844568276167585123033622096361970522871317175386606067933045821433374553874759366013866067650323185862500251914880554735860641048484797077195200795506937767850195044491906297150686782239951924643422926220333548482789529962572151598494571639731761972123780586223242628439648775011374008470605765550279576047710193351737941436837328779924206170509266284840837089270388165016297850957320960752399238620670412125172385522120863069005205329970251757931270344123108481829403965709900888855183802147164574881474191017803806113651154609142192639749847053096919432367687481152762109538013397026463695219094046574510512129141732757299357294650958121596002282684592676898829335991107011600997695070175285940457927238668980434709432981783375724177085086737865221329401112003465774990320948233154656914133028792028547211276429465159055462501274105549937870434331855079327963195903426570622475234359779988535491865395498105720912126585013500871834921901879943285680216595082009539886402812085119020138401498918836480810958680473870830930351153091957118296509329370870299971480572658772815821190079031647379586328200512196913414104409745607495282533148386774305708304025033186840107316391947852417331125889355190298430688364814666840656185537465480881923546936442394461979292414504016079683841041417118368266601951921830225781180055632570344552050502750939180235634188104694383688478723124605268742867940500173385192205627680095217267765781741712505757528520060306362645083129381935414336415289835626321908938888275949321861677333786408978315234432897720930873449655189493333102351444328184411275531349484933508724090994171999305409524289751233907588406826681751140998755064310374398002572171247750288136682803927253633844403247728289834959722415264146371594930496703379487838345149957170779966968435159541200959285344762775161505753992168568313135503235461792177752297871203523135857483820838908287830754665216743449619503456021354683962710275607199627811530998116559246277415212698288174742553790123485441630084615087581061674813483546916319827193534267740958145135333826192676072103064617403705559568931207825002101320553788272596827293564430033643343700883870570566010211652006745465719573094236498007191672409069109581528734947850993850359217145962547965495933252836704877083506263705967086663847461157436509852548453757261005655089918146791705732243269373517538527711339319470766669934146354734402135438791666354219726230019390129307920515714401907459886321366139317932095584195045199598174662914402796867586575770701928666082642022406489909941898954320258166644518019227001784551258990637222433620071141454622902016234145548300178515311848380330684189209600903260637664425194993605282400379802842662699591975887045558190167569267633657310780960792458515207285444196130120392140041425035645213206835547737513718958066979462177464088618265649194245972222468633164458918436487582527279680983041225100909096476593355855402159999631616499683327239890764089297655432184892406975363056529877602464359801587149619267525393095322971791990531701035436074309863722482013903015948166380965149421649586519161441679231758963784717740742035745490055783898252266206085865553958955740184676836341925206605089031972182153751294063552224083195393389090451782968936642309729770714664566261206035269065259368790964691162418491875107267396072433425981654974541912781557567717700599998043125902052550508128918919678336922694532880610997219894467166821628359969942768340459185330432732132829788981340748088371185870574586414639996008947758316186336316821037796009039920480617246318444432445356758192581914404427654216843113899174727189522856436976312616486876393548905256069476087016251326734061839265394437567214877102896312377110897497290289490045336174581354977437226599414250840348285746417159540560340817484406769600709561835539409228744272324373958418460776799118865071232994455044774830326336718667597924622273299703160576541520152931324647764135449345133517971287572230521099852714255085495875183666938102014117532724521352982462897726772995463224376219052573991949756606363353968876075702901658365806359010982012530161362474105608998483271345789896643269127533343808197069360730556501709315670017638854647559708844311038409325580365926096674461336189631097335706376195695218009255014476872548520678528293997484336521317408529917625301089872168073482649730916535476376811988747102416693542027217031334106555850526965849894124514647302532139462224020321740847425759028157738040089175687045772018111395916326588150674726225096866985967609340188712245201228365147823486421010315968654847087969311971205367986344778668694965771584617623384495116644358888466090260425165232287626420513145284475771801594660954052188685916485246669237775857214971495502363414527016797973594102334431160762388360926516372114833045713636208181735612461015120123780765063559075775530109715824387325985790242548767307372026942331416789904641882045434969169408918169361025481989257361392475243754966344217017724686231800050509180235534459727226566178018957685519682263486545025289010599841669607576104212957566676856015979024077317276958013043415191455494290446501786905493995453325812792985879923170463956494157925161798739627699600777645535779318819932673709273436355267327130961158246972255557630360633769827288904067085791973760040358035946019702354490798445201318653153192654651496128731324234987090024934877836093312257543453177309275410403980005064963972885128992798695856958597891235641231393330121261889024326223448075254597053465897222176449488162411409132517837162608103809212614451777531222709276243400193788507075429399691669900534179607230522813983637594880328070290604727019813023619329164097136017130618790347003985973588996289942418501713237270388658198478419821347885229817017284429866602342868566862149610900297383300251325299255710430134099590241626561418885605526750195803227875305497880150399581779368650559949424527429129160745506184992114665410038636921669754014557957421839995945779087599715724632734057174171718087239183910742577338129897789190326731977904208650769357626757668562277106547091587420075611173965642303416649153362076125567600859825328696264401437353566841988567841910107191398630633247692282218391311304674726094738956574019888862617091794525572890611514509098499724601895842207156422064663642690858844259022658041973935827242076194196924858569516147552519574402103328496159247609451149762544473855493946642145196353486892949109364379130540550476235770988987243355567792403233681451041356349456751464825109194218330043356680322910627605531622779523622485206666545406670943235972696109548492101987258347562763158820781491666723563791647327541080721174995583555452528945588489359164593555244540138439777563861888273419135066075415872710713086025641765907844331266519031071173982235210832306542801103855847640653304108005641223829251959536252995542804130744641469095668150051004326253494881179291259974695440946453186373382539540902432508975614405674323537067671829015473565982801675412776952837007828193261467800929963215087560374231144181782387698421093329438350415498832792593299785972078709853079915233406891004294219043339832332357173676485693241219969381903727856091616376054711826985983006146391575721124733050576856680115640895849008478683701654457811080305255848933014711191757939640740974632780494216673081539712770730371664321971556575545358385861850952654006212222678037379156831549569131670264645350699798103354961861306616200852120006008663159767838392694386787939982471494024765650571615700197473330097713703787103413437550099074504725720796735063510211610476320081091090814392531955664357388411146308556052318602318499348118678905358622055961577069097965273126312594678319864849550364323650754389904264612476393095194453001210539439573800149052125460308262904079943192436747354745491476163300596583025925269637019389767997882934794134268794613133586802955997980707528781454471097378111175160111804382706463952193556475011156607419839515765447450856907178771417193183729840969211557772624286449405590770192592109417651561272442434555830757825067738623629450157642649728856180314203624924101479006411912539448581305623293757272439090450086975839592174300830729973668194416533915407020888526642209348153605592533822771633911802743668591190888782033553769748342629149160355127746618180907379201357105815243568879888526507788491236098349496461352499102772604993334509346929468353155946101074511562840316096155263329200446063880856603524381638933324584784304262820623367660988348053912542548930963530770486481792305147036862172526466979534829804423612243533295333171427070243424509775175704131359182235204190465425412942515752622732039275220140665743503891244627684230391994154425642759626237482908432954372012782154540927900584019158012738725788199505391135313347570070213223088737227446506350171728696054220534948857828338595684818681401836557093103916233633376844787493484217022900061764638991453627783992721003013863112565821806968338695981075415044634803340255336921289450992890858150028041999281073367731293316833910131477827118673773437375815154391873836039232516529173336702969009276667539562843947720043961551065964806446432643187398521474232409933403838166535826842665829196057519989682387881965538478737700179248907904256030224225075975857049586088147062752128752301049816295257041685271629414153866105251238219747060673220920959601664225250998263168838585827887505095108178912178939566708885735859662745716848022171027211090546077773936534162606460961769753056020758098781831322736033125323869292922074883127083468580382198674883429609999114450772692384392730886822155561542743529478764312772127251354950085167731743228878144965690916507867249532815987898517561701408938482887540468439668714836686545480075296016947007729844558182207367845137302608693653903737742292204065295651840844576325710542547145788202772430718432097101690293548494639457656051874519507957304581701323541412604495378199704167605898774287299631754450265179058291691641921587720645028505294813120926792299121071786231385724464988277689405828512582196758729242932673083108647325925388077014344536460693147809371243188808280856671268673682051877085501153074795346664439404825158600994141760324271172791408168631757227159786799177167632111763891471024578546596055801762579895766409639530204219336938637086543572137268975063209446940911985246893143525249898437088596211575710631504066485710662041225043850144870424562417614676867316692029512168726040085521946641951122177147766344672845919362241553866258257512600572583418516715159276380022369332416430834486932870985323506555670653092100669892855928963534528795196017967617153861065544696158751358848606574224683656225601393561555602406968621034483136996410260822961124089804949487904387811826926059319008221244842253933774833246390178052700361946010050261230301296580390972791017179381670725272878561366900263998883941873926802156243112432148161971720841349604391803540985628049780715225295252047309380719051328518156665583343932107084410956182049940079880366247558365863994813974378776801036162649934465205382037081902591222532411453141245256278205931226531166888350487624650420442634411617200087586467996061144626755698464631223395076328084424386088448104946600301014314704815351743693405082079929807804149439850455902054853137822670964058130674576591253530536185038086898496578171254224530983036913763558824015491093246666145953519536596735474461968962447730769466835106458948716519935499554481839275969862374079419671440573705757012972838988753954630873278544064671190635778861976771174173798287496972025796960414599404078945228785781644157021456281450165151400144254464203561162976294536380534052099352705594830858678238013280327322769716066029913932699337010065997387298297269076011218524535497300761188697987022812092850636800507091002905056614014818916828609613257128738708763704093302940126881661768857923796000502058425593593405800614946180198225143179645957864663756210221693596918982824348704529765087600562620816675263194895868673038374172134326716741176336188413390857298643767019192606524280396691477243599596607420570175550386259080523558195610260291125825186235745704295374541722958291771382986425938610181508316511020619890060716583519799006822922939795517207447996127549154344054615136978515167276520416392067087809372112364342744997488203027725253031956394496830902574360480350833682094987384768367757134268220581225427464242207697288967509570452696631826205700758271071161888192680123423917185679744231194872476578137290787879340721480443409542072535961285247278799024564042329695159918751920291171705191727751963713592741850755013297915720345332903712336984754817430596129905220223647577636032815285497027977474485293404599036045018161207363981261440131612759171312350845213107759196907308616086290441480932268216310732995726879528862470299265825394483728781425767988335164987866337196713981612525035352647743103533614763605639827831473896393997295471633954222587975596637236122985247562636446509716941038338625950037632760942057493992780584675112402154355150917051489610397647555637953059860989649330800700854596756560152962483926779844459204637696742445661053068314007064315398716393002769180079914064075256495296775052975010917427107970849376481477387614390506541492305929299845456526454230618462808002004072757239310749582614246093922421041711183774670001666617520649386288955454919513683318584755616193014819473426790874036688857136233232257808643636740287292907442565707658493673807225315068008629466213842747288918827392504607967054730449985594499185830878731452107635584154700640513090887810075292616241407638527410377637431049520124205249517871577953489881757243050105377386760923558524517254602654115316025187583239188342832934777063679992621299821346174597529552031767753871632055730684613449275159889421820205034702823647296787394589734155981996757433648747800757718844374493117921267717362607353146563483764932371628391233967598669327472448628802451228125432360900378270130060248880524408545217440547174430397572236588119727423365115137112608987765758536656818829816548687823765381702315927242603967527238466327016941033260958959425084832101200472953199754167112464711986950055082461972444624627163494018846357406195166340129665797272099099714824991162691541599357853534253139788945407133075008559343809958226137872764956605984538150459564921271451461377453088907154710898285323921923626213905591019969144686739671696889305781946530700891793203120457478579204744977383582206356094879403767244534108324026348511259259156883753093795708635806177853159038889295135525038094750300520493633214530264892830225130496036265753654726103397914823152566078502443779416279457669285755673044366217429725967720018592743789663577606799668642511761329899775745903023981206707305732203837333029409358756852614008859546211600621491819568070681686522591416581543017015757453025416899172795105287182546194255737696464163745363631553145773329302748882857170234536507139085606188535672265709739756290616796769525993825615411981888001603211053739698499659059111400739579462455372443587314630186328815995738692029116847331978767566747587711004770786664221704225771248406004894009066982238194102608932695985306312523116764229951153367189186524070054959863356917095675703676359164058490624345875703855166291740626692907600236946053591077194226366637157411721754660873430398767764547250636221304449021405803702563348222564620995929439356348561863305765082417341009324175482741798370400714889413715130116561601116192098632160584174965621855575191839955291759349056905208426375551971061209612301250263163171697677756262420855704243687736568029337114162179259113903856157837675060521677490033510267295269365400364720663131151238010653438094552919405898899073108858415631364252954577938750645424392311756059313163372085724282288440894779356358485106671639409131883263545934488142970560631192635236581817441367288615063458991162425709321474001681470276764490424454600006858633535765467557525863398941082942656041775612844209649650487107360646505298109429848685215186692976933803881238154634718461317626831076191937142714366932002304129605649749222594911026477497152224418145237821733886383471325997621853866971249977468916215086557058029212751791474884365341904623304955504954339334462397630672206466351296697227639147593591306394773823051808435478314878524017950489564117739236586517576833602217249730644684801612132451958157493019181626881471535893473388411023520296462618267448403398215043235777381324121704997280098271284711063386125581420282033737746949389040861472799395482483174979339540001747007888007129828540715213216954678624404005790415250873557973615496166327822179688365249803135835450817604425688356896569918460581579748279264830268813600824330653658357569396383806637446047898784298511244679175747342262738167612153897667561586006155427678048725832963082051444201059573560789375661410218865281727402893161593894724953941811281678523308246341518707266829693443580825499268511098012165567851765112217467067975974938584471329231810403412024178431698470395305039639484125809615128152907936657374858660915429549358597560516861719582968518046590078311572725259270189107013195997043715731203009938755513707754711815720157032448025832800804493489241984461922041399503145457613665397204463310474004799758262437061520580526300982077890327246361159011847239187401571873542928637785426117372058204576624694825339056498017734425834863635273751223118400367137202656303275893022354060918890945032460168557120972544028536044401767802452824233759066766558853836989754955496866719347701358449761999110334660337754549943464006811166596851761663700049169164009075895350214649090991122961235113385160044934758278630008186021739275298691061029681409434759647026434562107437796569922415954270623102384482766286757822894790370867541808064174426601403403656743915230468108937249661172373665409950760281605438796181183109686561113521668969299696859981406698088315544811219388880452446063540793598091411415957660933617935796306365937845225069912100530878025702954404077925261183280736651739664340085705965462123792304129316297992846684454945619322309625090471917777009272147218803194825632563393534827092990475489098038147877339787099543685609826352856762013317332487807085440309121609167366024415340828248479168764931176816298055929339081261387862861916656910632749683691574325323211275890944145983202123283135034761138641554491924178845950048540765416651890037406066832011053552037361722999968633139025285209097408206587906154710869357618260712292487989026291498841586582823664164201154317049937823843881518111630951675230536734560856057391681358635280385885387573459965885550036043967809602160470199002549215868871032453450172010875785628185614551702329567219135938366278105719630272007578207396711385947546412533673086599368317414665271014419925394258941384055159901204845377933138032032743644565099084509405308350740392536060562006586576802019845248804537482512028895602360826876618144748381793329729060431973898172578963761692814044745469656714614834121007042400655123962835735995670074542338258800157678496542473356113616356089720124390345467049088159984124857741280796715719400924563976624259731198094794013631591800104325785543918326308914251736123854582866456993049851675843049698242133359509475826132596096761181318251632877564076902606839482589505931100078234330854578510856070611263269464874219351731731606852141462356558350335145582216904458128386431961945436871735562465499828129374278028976247136508164411396719650826437439898786836006707498846501486421658191487977128833018067951883529440828864176098211309909286842375341470095359965949693242054071945801576262103162883860700228802449308860566528206014239648161630965268652895383497677987859287975640667436151727143637027466557433202120055768924127529078757718155220312408401014022001066042871580230443324841220544049163846914546679626478397197110678775439639998260524934300615144476489891456937966343877539375347316126945751862368931679790010460105151023967959264179855528949183089437896597365666115243209276661412477285650238528574482587734427001085186561105394771884607756010255110414486068240052762474542011208393712574400392153278717610394684519774168491586490433441170786867583657800326695248328095965328345505436224687288775798917370969815740439651955594391545232445474108292750289632943228202101643834802299803171496588066865914549293642708208751255157135645312780882916708966858734116868398294129206009401803134954002864769261959253218797884710602159270514524469081808673845188064787824637424173238850227977284830067009518819773650797060671369532922131995172433115330886827253870760537439064735336432023856762904259295394173229270475858145151107342134303301541467032518875880742479167746348472440905246689048411413473416220097563886248136220292577671322126997788353652876292496425464370086924846703570011802299461609807951703464777054229017166758060253730708513485982370743569275909860659170810384371378901606956326951814846124179188563884786970991902963720701907238969330840254099442304341612742116571292749161387817463657102528961696624487548815850658480669921685594696103722100615585717517342849267085768438271385321285565401273434515651835223432510367086427055087806065366612471823475801798732940524852977681395160881749736145722568895324206989195571832711768625819873321007513071918614037385228780224246795949684477295815194444767814534900355359993413389328095312235441144138724100405530060757834494043533414302988552213614239786775473761502873149802028750108232741731994654370247703569009556391324284087230582095023917074844479212879781596004658866794274091084937799810326354881585543895644733570596757743946160021843495491209126955784857894860049668579159822713720636766710450335695983714088966359116391271953668202315994285380660574560937429022294820633415157128276072378392543378877098152331004231994009120739915164022372330403414672281169464377093009954271589184023434781991169964516395478946684655233974617281631237105608285081808471836266922792873447943370209549617082287334053196568700937015253954622474000386750912920269970980080029094629660624150653686185518373187304653152467589525568845827833208865482939240462019814111189411858805017310678647997178675326489169560542065891873301856355786783033851258781989427517070514953144865198817596691867316423644703987039277775942535793438989534766936527583531613575790014918743707330951097490143026880863679632557876024995219056333537734145950391726044452003396777487941645535570450122800947458544200312011144817766662661489647271805015945648632943281849313713364486181069978152377866192444003132196588654373801248007572193222033597798999025088742701925283280519278934729548068307735139892371613088624774260367763593999935262819495597513095068142151594843967382536858879292384394504546706929307941071959423738479936468172954530426885558585426806846063004917114222004074085526148311816521576309643910256976483320824362632945461817618297147434817089823860730062076320964538084766097935403455740701773540123325909976405943938738338000727242912985722162632294262205980815289171078471673253933001649428404721991421907006710884861434189063214390074355078489208304502481568011375460531504788572698163265321732804625098487407843464040159382746122883446345414628361878333349426599655213426019113301790359844196550258539564069571843905999642975420485870075349717646824300540377611575008253433349279888749872801606435847856777285593358208557050612319355441899136948230105229612434209054589541663504465750020963267815940055982618170118541325573782791655596276592312446572348971738126487172263760863333034413123667358280029352379436436510352759427579547805401567362307731521855797140638191190264676609837220994178204549089322697160834821755764311997112673913953408110638993984108311746877552639729458986155738024910577156182713666710272852137744771366132758927912584607808043721606539586890649764506135231065198096481448212405509749749442390853450759745279012289149755714204705417595079711454458583862939808375740296255195645624284280541796707174313017088669012292862866665916784076207019728862349416235840428537393341602531354301028118022490501236735978276089319522190547330575147065658860849075318844778515128575826894344682167758794087379263346584390154641897249406414641882613344810531635195908988309609210887523989228663704191163537739620915903721317562811577023640345456805296068299572580882755695521311677694043053226394191702307926101504266094101595275681323804205702555292402571998910718851365766272628649838759744674347625409649405924970085763256635177263875766859284354477392795235513320204745631081503266469022662369153945090806142699033405495477772157972136567912595442813203191902134991196854415648692669377194660741108791923589548266076539076171531834172761757807006212221489330343512760498029174487344111679756906158892801827548268924689782726309501242830602796151879789788980874366472946776380008687017618458949974900724862319812011923077368566102684644218898387095652173972640344459594587620891705351251418986929677536003117793566285591309624438955208198284405080159821272287386353749310282527849966743002690650284562099434015763377052671544004846006133491151148283120791401914776509383868831325612690426485919982956518838543104920585812838410970264176122130635643598205290105693339383365218693179298387317647686881653146016959813146476591261821006675052825278254549132055693661731325201474207492457364489154272835020795328631169759392881665844005642698014052811344082537145764347867665501619551686697025300798686351257069152541511530055907123297796616021155626212430803903463208758037195013575648804979037512416088440649694560398287152515907323823513203591018589685871993383718604440677281560968536962145358015914171317464481297975953330569719923088502505194156655330532743468158501525910499671197652981826265278173640867303353528252815633502084021768394441080080420682513806926703168000321782549801874395370399952599582089919698044493723069857524486664936550914826072331079553961706248005874827487017640703623497287728077703768580515146961811691141641288235583848796345229596023456282324600037389773575456765763090715026371193081317776098086204568199677759397723101974721125247154788170074325736165332480315036358669007091066589015912328196261628052610824041761885992357188644193669860785722583860167002233266136569388994043185629495841096041107581940252383662828938537597492887526526955353028357008939087544257223266792914988351142707072531007211539751697552938685172670669670774036792575364851490391312805380751255292449731017342029880348912747194446119881439639740915262712364239023492860393489905320815077178801797415729870281281236599432355827382371180344660109420701050837181267351183079840188670352717789639904722010673733726255810928506640277360388572806161542293915130342398151762900588753151528361493827449664184710977952700443574358330474609309314474247854640100751311982373999663786257698549534167483697294411658496216585547443175043399350453162652877642005087525703863089446625424131514784944603090048073889323310811985659917195479868584394830603381269810949396153394229209314235006334086473903255742318047378152846139160116217587900545221674272519226619361276209267093839207965555406419436637383266262945056368183471484268642029796887119685330983469109713253086243452169807782496837880568112110195928655943750826666760205851546194837892772818781499114852747141572118984636567337822106025566091025472639085251159434540550669576123607348755221434453413846484719797272459729928082893854500360371478983929015921670224379728556986636222899600152455072018809217966785993000421431214419796216600977089174042642341978908890286914665453303390283252727823750485996927218233819458185204316950213932135998180154414900448454851212865703107676565389997312971362571750428635385467740705753352594862200956595804918810875866699895774335203408000768557982846903001963590036553609204735016656501533005718379353332996261652762827500026413418975830732487360595137360450821961190746652536075086802571727370463634930922388404490284848991223124906270032202461070995217128691750968972953752985032829162224110532650778889016054892637334376344233161136459640930432501475075044810464302803895734494904721709670804491593684309753985909183206812348283756503485564728500888516650578855143402484353319552972028325228311538866797094104279127888761842314835879199363685230622620129366528356371237405011742582718433330976081644545367451738089531689986943051178690544011251757221258669713480375708082362349170373023789214323785482863589604389541758810268961031133674206551306278143101192573967453083034026760890575861396231067290052812172104119238057024614163274118651889812901449040570432873346206755941810614397939405362111973508666311362485340415531116615855366095555830689441577477162786504488958419724484094986188278014135297393199295536452611605121088622011926338605797099823171158532274236432888057787494689779314341506783927410657263524091021689298547106351434007876076247037831902294745823747460920010507796795695929537025948577142295721489810657339080876764605011592693762585276771345205042424444528087502439646447262280697943759579656069887327115758010198926773827039574690102239792400048850759535100455873655445737041933264434956776117785425630702108496533795981731405279430804120273923233950279941098676031911177808297033310317700939515201484752389806894512036426063709873056009623808246955192363740023424317665368756951764437152376085795917500648174792001316622216698417001297566087733093402138849681431522486710860770335011637463100737818662009501433759593805999907499718226121829429049513228464303416523757903026110076276864463157311748368525084171741524463839033613908981105784539567923551753695319974432357401293894301646820302663978913480514670679300067291150393133363275854663479746753433953010076473220198652810404863286832205835199557075160827763168475704109351875388026476953055052568529651639267130841220359533613651966791301038593733130769447489898457636344323539019853153658221486588851170333575575899927732645209957490756327791449650296589338197775173187271749596595221093800813876456122792302399114673985589483173367317938631489661551144145821427662403952303587913549193719336074460853786281718603052520547780094382449673843633389298008151389285325060737793041299611055118448572506449432334012092309101153575517731769303487514634563040112934629465621264240180782689000075991391252581733830408014170039077157748580898593485704608180814206081019938020131996675781242079791904191840962385534752432582000762945007524221068129549423914967137910158657769870774115811229147571157801976034181025821250349454003367994830553812799298241819742117007295154108228792557444505013576905887049194662605736250185423827124160603511187403805513421365502594904646178932879857382282750299138212886780460550645093456864775803971514640490663533915042835204389354367045072624825527709343570268024456471458474997658881232900680721403487851766297476218724064925161666149633886936180585640224178676330867398668429052790232855135245094913783553326334262990978447088111270834825599816696583247482091318577292190498598949659807952249623157728911530149684779198866016323760686042086783431354698869914555239661632720365702500811306278760924831222911077631076895026157100984046242176947321697674199314824795603494623289439264460748941070251666813101600639180659318568136472463761287238012396106429992548502013914843201657887944390547005011580800015269381646564674039215008662977926334860628461558935910415088541998088393664064354507479358795942455921803313242512806234771609903710826005597905824305593835528315298304783535770530645948914205314662612002280689341103935374839762560592610774466313008426225856635640701197425290712935061374974272763629369420580623747744719610962422310947046155732296158572338339947079891461290013075485109840005596141643933356549969039844980699138303133494998503661127482353787165576905806765157654336143686985477557480925000369684810177172020162640047159271207566577121680396681461121281430835059128682042414558282222990092842637459169958028233869396902312243179512641800002534991006775844234216575065608450698888420065407741713642156530554878155393499926093086298706650329879442491680058039784852133973767683960029161078444133949958991071189465533355908005108916071736412975838689729831123848437019923311765249905972042641503325581712615631261407765483916267975060499636117997762358071498720660302902011036272604052996347417813627146123339908935261938634837170912071633689365175339864175366130162148824646548174001288819517155286339480934701994054039809818877660661044290737477641214366951070501323476964913699384830002947685630399221133236394943292219677294156740877712634287308400100546285276950642499340792099964185362118263189494908626221544333547532227359553800752744991464480521032374974254615053964679372719754953903237517682207303306434844951389268616419877901395509244180727032829103220505117923640727813916473071868501999032845326328271105646995670389770275440183236029793395862193147245799064577801824296117951387131920563693289909041330124574330148567175717194371196923047814400777094642166286808791691893503705862400822662973798437258834535080170654533335857018745102071030174130335401049783192023156139378080427913741781138952564939556956905983945578782328036816770070618860429422665097975058813933641888029604804019429086846131738706787773144295042817425642985130629707227765616375778355170058569610876650949173973833343190649398846959487719696284975713598158998676646505576481180317261096186852448721486739215260317769464156468639239667310941835502956992980608444678295960328754991088074378159442652957249857965391299586719121521615126582110679455067457257520554518840878373965793249812577716666349875711212044896933213503275294114181082248062489225156034646474123486021901605147470144472067260724054390939538924525421843941639664398266503352795739603341564633384287788643289791746305225085435061398652295393712733984903245650154734295405379326325200915405533549318282640520495833408511284131582068675729949262597309971265806717819943538269742769547659641182717265685432627623223960938943261178627743426901882968750087882035858798397775431835110836900941345699495719199986337061981863225413778990380498821911622776857831797212630883272369576614222766613920629884963064438727975520252217505133179785293860399819040905138395369658452017949957302101330248605340315850577875380924304234824525053895912369183175882486995789390332973161660076403599643434858325983904433736375773232949039828817397604332215625751755592723083823274901670495488441440496047060501935843421324156494754686945076181700294912294824224962147812911290769402865504308558106233248430814050189087534814447208985187710842507612068203105311978467855437564446894849621919385077999581618650837602387460289474635932258047636091087052689067926307505859117869066909303229390908676246594948106960026609537515924018771168848684740263096009572605711042894417571906786731035479684606878899703748443278476540467308801339026554601752316283637285440108868768800735705525004424350664912572113404994714841686475502365722978684586213575966133464327259634234051971170301288853030741894676679671073238126708972430057492489019607463191509882456156064421338755240328487867112331642993233934252901937026613059490903253111013300718201864647862395935092142862196142495724617014605173922308600053367052812319758723240344808343447307977858008059201116785851766009270493180076773250573853674087908738807882610601167136175126154129993268614926436749858779442479331198073903394288390144820560351778908642799360671646740586029166115265622792364504322635588309097994652062894180804682874564047967589984055396799327379454963419023418925849095649899874010798825281317686943880965705968855352366960785871084219185961982084819595913113728438348712327868524500865669318851304702776718832843114059629410246360364537864757906810824899305146868455252317223021025255533610515300495402864697387183388098653160776820144961736203932555921414421006424548492295265653955030001288497177041066806509668284298994093344261175381098789877636032945848073397309978436659229069567355389533944558579689199020025018861910856470026086001170859861419821307475291871857323956740890362264769464330679160668624558588839998358048134419175140185158883886005376688532640250079078138000572535372796443324455470137528006329431711199302946065392163808430116118963876378271556731833636886147541009779541312727332456342407249308931492274004116052872428992038354538936296470727795526987080323114500384460432455152954372810387956997427179834660255374174307984736204306146423360058559047946751443079833744319391206223425025982262310455333697138934812832697898243762582209477968738351927250019134610298636647401899589332318503418018959047743188049450361542144427035483573318420865695497085015647342728344273347836989761542749488357022502390225697340929705898446925152144319896740647632033534188884079623137068160321423366948132298842497192725339334768131838634068812051639932780456774435442907814282473735014334282316084357565195155953438336746632504787628446493385806739068152414579663367921750374641225495515964615246512524134077630497110682008256564015064727049083862540632338033848713539910387609913678815698768455359548628259682580589731715826079433997708365819606651608882034955237334209785721678787637303712038604022041831856353326004611565112033130340889135703397125148002508580720451824454156822282255285093946011455076933193528414341507782472489636481909065980678758780571510733157481388601245434007801763777136583814258548647455571484131615676730044872123743137823896065048929745287507647740803553409210333254924233860164918765173108200836471496156497270289834732452243732379711318627973572104316828170665107039328239845190651669896196239656830290061926776790693822358473772120566375379880946609327120925601761411582078244248831476351224005948123166217938330070813061926475686680838388731548366461372816510930491769089505873935940508683832348169701469749137047039767690610675601360820904246694525976331425307685459827564418680538505712043872066147729224745366861669393846831619466259080111742123843723586183895332518709420902653955996638896480351520619886578585416335328162090632779087665482389816199891673044738154689566066922722427993021549859489642899524525410592741942102562294764580284792130909408665255985070396644946424909440149110047077960762679465750789374666408183608604523864824676606755997861286263574966487322963964501496309812160300257491266816654819404490979810480653788244822826090634042451161579441560646663425108372120938417375723925223117655842059076840278117878593026639230530590241459377145661372078873531795175245880302066601181818026573598213876343462448251139713888961200978399117382215944553535550993239219167882467990968257751168502420308430318381325840172993934551989737092440124414067753147365368944982133936916316610959955423523589051072746276475328291837095473015025656077710191911359091458791850461042931042452611081031460201519804795694828301388144760880079336159505311885831280514891653932285863695533000044934834561424782867572847945661448053041608488424634955503670229883105773102802175380098909888950204242546389117037606990285482726809477039866437930866880062366687347097731820767306279883596969139313660750477900218341815897974473032913189761132070117233649737872888591700267707014812625090007448407066704686292339118733012176393459624704027406810051082659030775291562408531660211905826793719029682936984119175635740176615628156617810892408118479260558420209312895200719246029132077040127726288717355521779023447451613841220829007481457620593666030735366148652098455300539240159180464518974872301064414558002426663440437070295909920318904680690574921851336335870328227719209200027601419224819997640486675348608964847863453319682467035774243329650967859146658668627547753700977775855994153984682804299999188781989387873391186998088145290125814163915219579709807100748906530001251034484727372467450947069296585069610220834692189681402186911754323012976269350766151794450600566902568467120111512397759858131444320618041474823443373806391896671189604706739771380609215958167181968879293477640685527433075404987587894765401446898748172162567213447867213345662179915519797765551649567301316744302105272735960198604721099320172625662409337053122372498678117483900587622096682887978010938114237268418646915988813662907136405175800773221153122134966868311071431673356896517665655364066708478199929087721127073809765916654381003444005127422950481464564220654556295676503743849066251834823100358403091062762894933426538470777233128427093223724806077027176606522339076295241880382055501707762973334869355629461236234835351024820024216973808354315773898524340940277183787938593104604674775607720037311248739171560974762383212567972409649795916396775667309540482348253965294702740677281818548544039637726091013648982996709466703623001780834255371014238943816121355636064743192387595211817637427154373187835612317499382959781120722256235380465537153092553176284869717736940954773316316056560118870791702620137669614729713544377684756905755157301444439835726911414936761340544272744790056648569488490946143825463871421253488593263716999689784658385456678389633151928541332016248809059461165686810555401352743280236419670137543842589459486699940067732072357627164522253658279413399552329368209958104395218721042037173465084011856381258148454488572975760408155167021030325468829650562808036049908799853797647824501901993994631093968476744427722550287984235587838088446275375620895085035005043634366054295501627080994185648093063104027732321217095237719677075269240027789218252175197278284320107661357579455496994625006207680019534853191455320979466872204734928878434278122454871779593298451814546938398536003193640720961692404390560423552217876613387498678630948543294757790420537491612567741737201558540648651824562854651048437279923278393118530943170697080824002429156010008580691806387860367264944168166255261993317708073176037094725195438631987638370462206553992523753546137982623440928749020569045784341907405146001327571359276711283479794212421912257818735747565347272907959779492459364738126373992689229532890878046172856733062469965884161497668127892329393740154903698203388520811444946823591617770878261971163037427361134313069077574935628159583614824767597254975703125250999125119910076435083331698277527524595986794438053926104334153610298477250179314535642002161528626953765005671967578227238325444211762866986378619574444987243609231185490252039398610567091044262474550516823633401020225173678697976088560754466871673949361013486453972589534502877894704314645484425885473326358417587055247692809467042060792654903621619021365693519943355726634482342267869294511165925546948838001188679022416773983162750072324293483877528596350456305816663551216575944708531980598702932769634257443058679496044011312788566402159283813607507068983804451978428867487045316238227373645848834381244848687842582497234894090246100833627200570196702724792994151872454235355715097719059869632300038463499484879081505217522686193010676214385043801596422447843405294025689197783552641906685515012744044420173694647898947913429689353167574132652115077296040906389969345863166834762809329937190271545112476709227433856825921328224585456811018314217986435449561698958800116667999769408076371858819740402827196285339021246720520363728818560659110424245743825734403205168638128453679417061286917221724695636719290156452094156490223140624932532041154990859580117677302692006269038520260753125937939535998016799009920991581336469040515324832827941015363522891198503895225416468723264927649986436647926019082430389319685213838679643294873249271904565763590189132120911453457632106429507353082757216666054058526546553630298303433454972668964327311687298940992239910691251882488552619439982859683378389887916714784115993477100688732252489171407692585885266371909729469098282895288232329763317123985082527973100868840501884708155749197072637414858183300985660301172066087520762947518824465039858846169581045175458298530139245602699963152200044518961681089605823513929422013596198298703704939274962649959145430367342794486469066365284491750045874433206189757246887750731404568506218095754509439408893099153421094575046924157238205660739838885236639880807195201556005071751576249057011566234202853507515556571721312026591622235773735896837737353031335557930031473212929099532420244669419044449276564384602810967185545462661686575403857754848678758203055309759233123682200645988344606465122778232918459926170601074074496168105524500281358535561231293006022356793033056486579947278732702627826942919360153003097250127374205562240306477338453085177797344615816419474631813164151502257586904490389884983177549126439566343492353331071111235475078576750293931654331498681351499819314611987535949964432169854326948851342887283712287488983023743618283223883983903786274090325901096824493391763260800175542516568322523789835749585362979058280090957676233694635384321019440345858360662225595077798008401403330148511291902433848683825557465075765363071764992274594460129324838720285310465762096244722031762767941529953151513184124477770747579094610344610556897610501392213562111638258874300397000072302224492335767798711806392605197555658126004229666913654641440248483756805414367514084255611149849636323972067378609970147579686625492643292181669875817115309209513042799995889900078573579181668098206354067890864186913746359554313381180050021626280745899267452012829224485312084032309804575822194265117267557225385167961324797395986653459971423871723149342464025481855914495367519344896088706674352497722774626216243980858561851043787095303484280672687865889649615593254723100629710810386475227046343551561487809929700112273475695560448277154403371066781168254802014894764888527874982824882394068057936334611139556169290834174888047957511687204278441807895552776529715747773936938283584583339732426683071970153045435807815585687122550181644903133749074029586565387514485599628678949454690970057334426184713469054712085708064441377964507327499767255049150940348869066600635835509624875770330207741852017002239231815483286055249329682771047975138577676044422506729121091707620223797356602355807782459751073478829722892268239876191212606714254676340956643876526973293345955125070729914611136356385000946953711695623735139132165223923576802530037231671768165553471187524074677865877659200246308101719359635409440614298917177993770848938517463220464160882117578876183120391553554399948663603338484069190002495682167217827302584854636421905353759012359312139069026524529398291404645441320245160879223946270075091412117744091454913429419033177114271684709235352880983296578699580533875751512240508452109107276883658624054080260720743872851993030592019514676501376714772692298949090496283448829599200401823396630497019626992678964797487688491256359631875335605415437563057389215820068836823662565818020213360407197591968495216645875307865534328830644210224715539972820025181959064701830893589593307945406113970581060868091617143198429812514496299495875786009104273938599547190509393773734216949942860894927792234435016102061801540853091642361521061324036322405478080492540411334126597899035409488447699010845639945883371412797716299493779675929708003530091652438331733460747472029233953095735677042634386080926077058786522145588218049807103856090424302513798829489180977834319344322124378227561009917154245892033597749500492280138757500222704026259632678781857304619210214904711983003135653577671535475704314370905647281594326472632399719545609057389447087871621345473998430736374938464514293526252828829329613508877113486425730795084942441906404534994091825215631757439522834063462342106864217679949257742814431382950236879913766891892612545338539417611642270942501916661177027131080511402671821998877705789929006802452943498026228595321558737642320815015772398071315629407626801122749867603991590828889287070659600261598872679809725581727898523354827838626298959258697871201134290066329075163272102668089549764839575915229832822417038016691027417927512158807632773654842191602346543652610743703235822108101952361004100517361182840213408436860940362577373152924589109992654308223423035442934792686351268445888355050861543171770495501665654294847088659639791470919028595793669767069624150164759672219856601254463078537816231009044486600123348863734861367669922317895999752047802875923721423377993151082546616566915958848911361870566792634043951496175894952376218269915290027555298905081493960437194549769537935532691077785363454052088404400096848172418530171730757673329385321910507725224529369937977893497138951438835702823929390406270189706805299206843723463159938944517558081263369185949112610123723651558469446670702201145697611891384525692427559223460983072191245500868330709938666033000472483638072122543918488272547271075958183698555134483386003429334386136354990964854611808412329508459362721994148238359464299302946639760365331705414779139651483505652330845624897712496921046048672883185861939606768260047922446976109643080418889572318118132685750026274280698179230691662736845603966566508068826687521028509806131113975261840443972142546900573255216044108654500305059040350259870539289861500879733026430111845218294072503088343898708084201750849421767137172037949946096249924910625811621485137758702669124774137609432626721425469801853903932712741978759845202137425837663606369454841399975605989686827808782876398863689975641767154835069932715174518090402717687227306496437435461476252581896626559266537469503973804315000855885224370287884675803477881421595526178407816865821326079820798354145012692410854964113244467583280480896084365000459322107239269324958788753375586524630789567132902265751395952651205892243097415237670201517189809294182340981168653619226078992419399189645691599613003859369227171226176366596897911213289666935766474105304061332745568052635202691735230092892451066955092436199923501036457203437195922791959677048505553894843680608533518134637319162707527199463427432119387766774692916869369474379488822422287050454351183759235980140627089976846759323540366604468315490316319695321752341371310858240610132023885954454971669995559141189433384970510458964402348002496510431825009904770388114992489795120296060785938978667179269331511143429860538307637521858149459389783144629190217737470954310063379707374216595575379064079839228175178721035863070942726567497646318462326853593695807049278243407907748707571753830871737667096828035333753936287841273290891459235608384535489569802655728775596714750284127026986211117773586335761516551483283015193653683226705954413195088356535594080722645650622028784922664762250920931523447957341194728455610962904334366593666837141610395061324161822092659941284596353434606923475046978015871507400062801048646706098238702518951820662767747598923257742677628938111635300610630285294628493367761942178835541182679531038960226131673457454574413653552331443470084238982428850948427542202559040950985476717663084298728623303132020979822710609085874490348061038481125399878956127333992546096592927512248043627877353906554457822343980948506261989367958975658066522443849820611790693713156292076114414343876692851983621218291990886059694209074091566169939072464562751708697224764191460669799153132872183240741440813682446733849073303315531291649912320707052554163276106929608551518262807027929913088578400574061101261067861895565388629176276877718776673994595209159252054940993298376316793359276213114645517127090803007980385612195785530032583419933735113976197201650149730148911436481864933251704157817909823044395685477091560568864790357784489058463164380125158253205862814524171263256561143157130874490441644311575479833942812979665176266231211934231500696516382344972239786063000131359572545003581710158755404477940471108945792145592771381576944147563402735123521955894350340919197120724974983482152409485828538163126983662327444653852695440000648894548451934692051183533264490289978123315753650042584908670676292987450487217305683555954258421442477547067023099205470247255221948076419153625077181314637083957610498558193394669397151373149931808542311212220557672928710921723417650787081339571652776248229648176190810799356545431329530312977994249752063640965115547999533157128431304688262968671550136203014384904832132678824808220862784726490844818984372249520144273422053905801869658072297212668481711568305660214136837904880391839328365205488907324037666414034384729773835016120754237289825896524352309546765855977239011448689159784458700102989390307026363391821100654429196361113131796123957858243708057606020434915254396585915929727810257945363800166473779743335473484194757004137884208681210360323247201375770055056245599377036964373522761457055675263915736047042928863279570994781976793879640563107444326948984251825240364416915884834941696030168317277681006582358627127233483584910963693260619066897897462319855101897052007097809721604590873927910842033691828593279188797584392380868450301919011392535113825617338761597517956914388493935917974007550521319171962798175491313265504301481155274273551442859056617221304176646924395338883524658388824325269118606983983770123148224716002229061513233077748986242441758384564010448801111210684143523491248395064163022990376243205632968483958938480353666076515745514690989256306928042962552397653631273484762936137669094666932748674411376823951664695464171913881458806941045338953277155697254022732454497668479573802252786464293679839813872604289927197775492705227460520425062264304335686678196143799020396222418689456297996259334176364069993864891797392817233680564779836726023724083648239724984003827876831801979141298182959214674332812392972232921780119551326271569788130977887157573570213370251203450360549830401024989954914654773217418350586522228068897010221727841717167312445253634847014527836240334853624878863381115611663609848426981715130815007069986356994922689134480432407253734027925598995092467535245650287679511140273122686618947882648196567711386713429078665186243522505581365668834626514642814595454116642972268614673740277517540931764270811497163608949063195041541279687784985752818955162390573225179217032528801191297574706570783299919690045426902816615365508672661544419817592020736672450515934544185430903933326186946847901264526264702875931529298859544135322439942050973851645567039535430247575236354064546061097108044577038620393528514030183161850204423664445848043008718169859233912367251857032828992519189266985692538190543108411878709876511480194723392013260779204105381665711707109133740109676127637222133838832568959685699116277373230866733195377931138923684623502635168788874408123027517021889442513690965881734281314949980660656070223618955401225313706383850616217916377169056425510023958106661014607052248335706820110445202160709203703254587145644237419339230717453689304422379765783016872142834344378133274333451971240500912593898669232812143941814916828510674044734088614108292058388109566659764153365564924185450523270975997315963684099138180030534316114309860290127101733325761868613924425433787770180319752441218938423529620211214806990538981797024162255847333023463520926679439569014721785934222538253652171002795349921148343864896228024427932731020126542571484677302045207406399271877869567076100694160907896982753936855510255585277110662357172934317965991442222134832669460681086792196343014068029196048139397641376087955188026923854050572874742362292005615121761374243003702768824021086535196154672493993239885927338859673260217845423992394754324863953757469663783856209986509152770865726416020245591797632116642978229926586297062841817674228467632429749007899758587405923958334564676259392547453779585156407635998114508451073014037502843733879889270606216684531706997946264863476603210416142880896785002460813340520395918723023872866725738644800939647088507464344739495210319629335975734677386889590835231314404551126497016714685517815153967203828067523409519975927017369542666529332336619904111983998106191825929111824428192563715115561358433090161659153466784221965187385847543659718820608845663956606028838355925970817615550020448555089775910392564513580732603798138677444518273820644633716831017536356049384418301414023159671332420379208099993598705642196515108484824241755877278057518595869549434929728257075974945474209246389736767944322214509723408009908434661863976262178378662128247703064509256439838693669263993988426245940378575798524086829271596045609002298739814179130174647258233391244437545631285828887695711889416989238282858903532296602978254440126863697829881419969374673990085729750377267394116363922166846363821608961444377246927430137844967200008311495512880053750849483183092086747979957764674399423347726044229089429348720938181840476418768955792610882797935645208416513386155496003509835059249335711901396879534813803597424165131334650002717481423054350631492180143159292755145573675720341947114789010709215350321426708211507048657164577291325397830883750957583751218650121409984123347635025839165040795309800948075531565928385887627490141802339594773160365167035392294090898826938393211710384578788290839215458325762915626664160364078613360440416708715765682576529129032338009850571732430984324911014478828555523042863355419449656384951378335159654512106501999154433730086815479633844357077623610376805913879225409460081576481805473033261085416641215660253498590485536436767777303388697978525417224542473080747991316104999067262115382765157621070326320653376204101265193804694179498070561469214006915888613280372746375332192798577128115136409047757812990058147191219350978012307615501109242916252697600598971918013656856068277756963909449404755313788161841613404098937025377634495382589961282699315450331097240439326437138240828607962812797996290293654955227400698459950942993171831435634794033776570050967788294979999553008211539791757867570402826130421511093841937772848149971859461446244409322678492042850173575976337887591083797455031155767847624057158199872800961379774211564158597830822398306063712531320353831847149433108011094959280155480557589074354470543919700196129220331971415107681132190172573956121451853110356405999708669313904686575279446356707537996490253571892192086824152611440833829429780633518670213955120363029424060918419003261005267309423479583186915202198559966177053401681645178015107413047879849906654441199856450568434415283736176141483474025713243493160108318429799040437487445240679875629973590805929276365614381482700308184365921039038313058601027522979393815091506797836947292424937357489589370711651766440263617465227607457724035538998035838973789383260334575134578349458434903578506305533340541175831586368015069995456972853672504923045876676979501607973090576947016693508394601004499755770288972952061525342445550733687203022160758221594725389564842730369832756165160430860772349188545982631318177369743204977758444085540225412189299454676671120532135133334803011521420250710567267491566667703448547318880547367670921618097123503708170586810939302921441861940221352322361130491573464244501030163894399747000582087104821633189692654578050125806293595763308611022684396220762912301292706512893363623029785713286772473936227687549185945820165072857200131214644174290893247329892873156722830922608549507402333598856317740984194911079215756795041868921494757539197541028827613715580738796252488524515292359084878647720140446480415187151714116982921112464714252017744069514149462456048977295944155809887153446522541530380760042497416476420848454208264405256970909109217337252536206053544616476469808029836477378328050867809454338875290061844530784726922860418221639011156001344749955098404172163154714531166734523980369597063649381795683703758280143658853223100746834807361799985106195108073457051770814717796818209284404403301241149805623096778267542508674076568648034943687964975449465655957286201044431564613501561279479482783797181100124797342081943579126058821899063621877603356412177306656500425622563364761730191882039266437833518593367121092118737013484552795188508555966151338212472258166047526156317045065128285010492161590864064538536482996823936341518111611351967466203355556541573379617232330631919328405311891633179873392347790273998206531147351885238248677882932863459426505374471008277847904237010161240499481480838427032320908422568427696100560212363623806929789457247421660986094258068934326477693785518183331602319412240051083766939535377953930070116603758127171752889185537239803571449690725849977152009904165041972760742020465980140301744594954752308448302173613817912117464542980138236110503756332495972270206695783068533190913364142595948470188553423915535540437278532266059408128364759146690655913950045476484193330957731241605358399928361107776588014399371908195510845810899960492640470856809578208663984440090950102875380229096661147069653699554824533685844807598251965191939650623366901564651473119769306846416273542380423763679161725397396859877566649528004342883799609308789886855938981802474896718125477566780053262734911907425504392566342831427394993297452129419503617451514531464270289973311014685778433166881436859000795476582808547999669699236920854226744450195776261030051591324287715709113926224587904944073904858776028338861925209519317560302669719314509402432337293629519144461300905623791453290359718704281037186683680238183467663200349459874436539624352478085853265131188501727449639021542502010931511277657546398414472200153024705319560612874786276702379497780045790687063819268992645955188880560894348870888893941713007738729081078265596661364192612106648075052173983289596646931173692249788323616891489481313333196107651195446881799265534627444981261764754406668752742126942412421788593269861737934080168560530364468482945751548706809873938470891263044305734328818251321464319602799260839307475308749305443523438080910758984433399631915895175831605088712025898260400670352071337475681973202093929750196950200418476949935006475890540232337510838416195606397994830124315371064973991050058634419692975460331397332712369381324934733582221420790128517833167185255923055886649034616590949641332161969236917076289653331439959971835043957132537123745187082284045135975620112138458505310288395727386609390020037159942998182580808117444721126173259739630704545062043195623065587439956918418149182575901970073280221519270674559802592582613349942817274228748657589606553649846090950165749438052176175677090509572236002750261830183391331092634051379867595585029336521770215874954053935030226531339066001028253924514878042604999930195383005393999582543400102475913733983227258383163114709715713424744510752933179031570876041850968952269102637488680407836603166692978115839935673877731045991605186607399923790019627290576454679737436109679592115265087154802484886978812036696523942629830147156054287599858714902102126433213316531922864705973914602403636401186970017621946741263878310625003891018605180628734713456791189412083324794823401266837208276335691334900483531623254200438236003333637029000970767642946151164836784964329507986307500518507390665321254193685444685974059643533054357242932875790171263292177813810499649425324965638490085250376907745999538999507046077330854259890837864813317249740909290937454755935790052415721542204422139829077172798961307776570697884021003704857833833571819913749771215268106772651965626659709571251391137561043209210331571926461000742168943921960049027184714060701241946884631439496585291324074651627829943208016177680190368752025484284381414797602974884908445885298594221130101377487752472912576788064834581402429796524156227523916981942990568576835739020149738628865796310122241834403910322547753946797343797437410113149074493046989799651146361975727993071688388066348903547014720702047432968189541950316019243224498008508139671391107958297455000723788058052212389987461646440307390590399035401791250552642943474538501815720988736354659180433325530916295878643932749974489580136464267024139545027684161827883750352776916158495875489976644867097396588275594174560125951469332733137843421092589636379283181801929187832501216434596471429650430509400910872499123526375372945550233780338950137750553129346714519871231726690662452667611934364142808451860680156397276674529561711083022903669599229977945479951508967315995862290913953257827438577175945457441447805008669062714913471340858392238075964921642706595037817615217440001697429600157259834765288949936198920757295532853513911756394501698765708364661868408428555968789239934183242598316752669261049176382820083255430119868813152293927500529987157979867256878608308536282876983788853022426034431867023496113385211985009576645733964334915000659172826438548405738766942943497539395862812943928885951350303832431774752895471542632620795908495647951425924037121452716875599350646768173410244718961113572596200312145340039670213653758681577336850028532162110910510556947176775690572734180679817181961617601753353517672144680454517761940641779553305429401162267395548613663531773824365259439854906728708423138110845574350466101293959632090048310670496049990316876691937662467432743779734421897063557031340360648067692153379242040245460415024784005516219266694797251362836454578093444012392541052276306086561252436951839869031509211888180414414509569475278736744184167434951912863664760507856820922048690678458897302481700260787366248812823858919094210193269730083281074678611214283714496351458894611772782141018901620481748069068282146869267778124274842684542842785759417229169816271521679762379219529711076246217795510023787206605161805560719064917494862710609106721042807765738037846153953437996903232334097346260305703007275695356068651207046158068450100987651536621617715868738125255304530021596137754704016214239454317791619944339014179549610527307127343885700963097856179616268205455638867670333725727566281266032225544131261763784522420643059955475259483677575376523112140096415254383832775911017485816804256766915733251053122115464627189264089760291735354526164435444583457164261355958520434336491114974828229881464492280631187377697415729328160259309763549346477441298683026544060033165995485623898407719693572556128902025367017910454445324467176198756289258647364677016445057644709429648094194693295963198193946247329033115657525341370571602270381598118704943896381124609710156696309203080232078538239660673794118590340916111741379876036839514894519438737293384847295461649896851097109210946797087564304981903539018215431725365865810220085532674994994726966938984391501316462791794545595035836256810684438533078152060833964861208851649764172837350421144878879808227058740835741006077106980148901269967097939535097066505893507256452753114780515417010993633738060956234861524627329086808035425394713497436657695109228720713257412728989094795567584232258173519988913204832072338207605631022020876628310772859687416815008516744177044749656231532053099034697237665105244620814941178226144661140933718854967458567325348398841080341748050469343595642677117381014075541579807555391290048770380445121873492368876788105642454257526182357651899366259172011011687998531373864405791390770259027975617504652542849985994158643485673753805445740757347171639340046153377591379230469854734509114415343065395917905181651887634938161299179621415588275807006541484953788963343704791859538101820503556900709559077565374622748199277598306874515469292286104690009016061507215384485535655161822190733033643603858681882257589786493708985080159885619982539602231688491301289048555402780351423462231606841161240323618084815821303261966979382632633612008446527813178333166583941280722428614520103476686311473390082311788219662493880536944952711256477505115304236990841389864211494675625272046702340781785356687444322715895659472922358055015911754345813248305642081445625918051626270453671751568035910297746098832032450107815629543869030663927873374310140981107103865663086263393618587149680583888153696566605017178942365011480559779790183926792705479267309521831667202914821864381572754054022338507994618304680664339440346485000258223561006877757040298088164993378160320176776062026406270343945262212074417794758673356927616925597961711857937159342282509894150574505111506687709750264222293215359118033929519102599551610235399733146952499567958618865191720563203924198538641480781176395378547119479025656095227759364735318825189777588093734744022621841136028407574057419276304614705761356859787098882738941044714521759580547392182775957271772950251880610650036096138411892877931241241688190895307069179510969494815475571406541088315325626449671060630351398677487887476518400643394039915233067327800824193799547654076188002238381474490938228274465595391885358545044211712384818987061988975097122402685910491690382331998113691780289650455608151836960985058333444336401429902558319940748880272496153854091677610661705500687699877886478176695849751803061070617268055157226695672111387493850398778324788377042590349798956032241305593900245945336213440346582735457369461606002470698590392287952898622680283564546291445872074761176329333432647459357233641367774701294183185353574057216475171061362930656673404837790909880431256761193450585315794899762646470531349352980780930458583490032699970490464163045183554705266017787962736062617873434368728136843947535518304464673291661529871278102370703362925838429801546162368043772716103925996710022122917450919073555187783499398241308692646731428835749040145937156255346866080762753659783356707452759164036310345372302584960415239689414308992845004454536017998656815688972508158542622577812677682741307135711809492023914565823697281976649747702785546610770843547995997838423332065378684041197103969095788360858950150885217132158263089916562310715688932061384919079570079416757205401628637127845077328341159862775624519965619206959731253253482389308084484581010844119232978410035240316740470986309357109683691536180615303490652934619528526293100377702843987503702707524470716569544992228184753923086089076433675097952130586116690424712736134030447232300079000113555934684054579076755574525419478437223294540815099436183906126734184036192398700361389720257548181658515282221941976605528983253968959405443756644157092554706836420839601404240713229952695751191868289079482308960183298732195502572457779941893563325055497609040120653913107037143563788692977262889500430868011695786183038941056031668397733643069542741901609176556156358023353453900471490004038303233912955655307736734837641915516102155880351913902220786777004566127897822494191188461380595125654463784659101135109816563209658472977886755812076111512091028073853973591179705195874540322213454075228569276321017902229726916819975482581763417985295873416244728795276654097567731452833040015373934169703744410184863590836889988491317737463346151671805552291342191578182228611582805232156703429726822724589276701556308760927740773259354168208605599029856229853653111376233060235728317303963120359058979670425263406430446973383100363222779117536772312737364663337091266647584254208840958623763145685784061329221830888692876078295009107655406200536709880468996087328660732024714879422733283580911424522103483451892462792172504259549370215910188539559685110555626202561203389779654312366177518121102743752008302106143922067367372345321957588401311034195597379598912345951917916190880049964511424399963125189483054901212866853748770530085327422978326140560477488487954263778139994688368763669281326299091726372238564486531987479302496389917646114246560781546628411432500609954791978516095868999043129529975525031648265065437174082267203982859358783889742830343925560043888485993830732494204549485685846971738413900837905661952742423894565272975598105187326959565139841927173391064039515280065268663402088184684244305378114637708371041265132874647653516551341476945026064017821270805705339557594730296124814745226597728100191897914905417408415022792089288940280096571474366777231606635504914661358811109961860544723669586921762400087314743108426332101208506806724964752046485761884883726327700804273656960907417626557855415157604617519789797189844337830032681669322042343617515077522238812418308276096460601525375937761282627257626512349762927355447911659496582864465127310904811984593070080801974981127942972126273935739080128202294162539647767334445417515164105968731276421830399802963877219178715312403600573839459556250628205136099556629065266622940864458582443064612664632417236026130865128608953339960186618775465941536373963749868237876538561900976344841158313330146659107552388328305720948003944650318982818207614350463374019858306957609928297234996171894684855835531923464401394714480226366343119082067465548113351244514000540353160607859716290960031535973218362890276541578718456852670418739252369882723789737387223426941626875656198264693580771176354258299697187986531459774920376565074991522654383973570312401348326101845543187742458952405709133111650619447095728541318477667288407054409618930033329191276421415752080957985132347673793908711426224652371122204802671415376286886892542200987875265122968198366990887085536868599133908731900399070952033768616650738417065596566764221696412737776407552668712069588102057257705697621543299584824223864715221554805080712377746475919662284373847865747779176523463117522473832560575783560808710824509994320075071281327101212324671028106097283789439299899243354769826838901398461567223600549964233687035298589960861283828403407429749070600549891828600418757338209833293940322811651341690223790868471363155868437031996303204227743435603958150468147896044327362713307185935521050693568274408494577991647891833591522422196873615562356602692403331090722620363823854530797564957335759656545882711638114976126532366919670519358206517222209229691392276599914990162192158168246465373634756837838345171450779614833993963861078116398277295505127123251389857700994077381971012083674758939368343717702734160598996944955406892129850644076651087979849308286055196783971946795399706072827170309862542714629540965317663516921412770270598329777929032383221847999955542855434139818988057874231078697117435434374308704107697042049657158685753884369544851294324774097179781157946472970577086745956283903273387932553588328679750760967706966779322726471044700163038965855020219549107960576632753001836329015274515897457140841605745532348171218990498394509006225089390103949534485140301106475975153480960323913990089844961611198563351024487770058216130709837918179449876732712731797923348697967416883594234817890967237934509785123355537952883156968481344334201659891905696431968405518553273839325795837395611412737608926517834079715953976283948444335274803297642379903461382023442482218282193177140302553585382248483829939264163697894675442622599304382213798704452293874917276333913756087085005118222712855469118760814407863675126748412011434297497056635260211714108224978200629073117065800402045249769344892460206413140013608823289715990239261376970611415373742745054349951547256932358759001780612002562206712100159627344162466291892786985020830878859040478880121442553924750379920208247752929830275433541752074506161029515657596517330578396710531087477241269441616286198781257514858162931693572263819041116453203000794123555158645492548496863782627238575781253488929889378356997081369851549251121235226900561221979099565392280014701424150116090506310872839285120751961686508205942986783522576347894539512740434108631707211109161773731954342158504631920642347707549440991655256473141172017408919561315344523402173521998056947114339272915066021517944785369326107288029711200992425702544195241534232810441163331955672574032841847307052499816217932446027901906710858831918635887396316638594877775300331457996574001202606054972501262448041137681400093275862713798477192767338392782870259291993715813379788416717965372447599239863715211744755001841121627732000477675810261945489698498240737343659249354921727125181372378976073374714227659867758978121875897657035284124777012702255378202765932946924583549867006040472376852454596086981046847444424161935636520617741097102271763967241095820935546951270226753722827519737456446480909532568571462703551869835751203696830623664051278482331373764656937296416566568829604641337722376600035064808612725425187999206769665820058510938868531624710326893895421412119274016866704864023290715720380506723901762847243222262289646400420164255988512182318905487205399046442001391255805770286964712919094771108441661731939613316614922719821600827185363148816144543521374960711784996817783029702570463467424549561217643410055107679188695514069734218141396842524947096712326474028037361300764806473742794270220388952428212344729552805404923132528987953630675345434761295217660073622573652639333137150369215712177818058915906923453579805632196541644231175546818855174609320789084950333981126076448898716383415943542827690004930625427045573618145558694456224824008046126639562597331237731333011430646983390825438493213506367699004750370516224633057083483196143312242410592121122085745891123080440623862743382843206034710048614496260574731584098090872460508811858030416806373659604036905241387002724782231530937475590725728213992546984613774304720222527870542595377881777682060149949483547169199321224626893458432415390399268956208151280950970106729603322357424636724336476777625984309380142701437063431274279946151229833460772319361926147389597640660189597204670742862430848559287030277933858987484654577700088757670246041196349947361347938876099012237875340489531086518644345048965623219059535677518336952994470933687199769713270609324762941881161262030427930033259048406619195685517615565524550913001030027813668916394294906235872141962214777663311002988323817712901813222946902598114299685023890472022670775976882859956379231847657406043043805066827985757201653655358444683735800722105224294219768899841178467219740778982106914916296599359144775297239133585201451632857602374733090654072929516299228915485892699506852992084577897946861235608833913380724080044485926878035096057094256022539155615045872866850937235275131583795036212565759714495257857955945717652492218825731636861052879424082445710712196716288496817872168553559767745358821834518753885239270324207392223794144036230014847355954033656859820760604041467272729556146844188217687460000038924488672859254527663581313893463889557981599105939362792418411182553545809945723957190378735945647315075686433559958179523812702114364680130111797963127812659436212021618296870896843800318129866684149263479106634648410921540518870936756639195282583651817301849594317918754203676810187468210656890927612570307139580148138693237207972820790843760777815568979416364851963405616886946996291853374453861916908736554903325751385309755626508510098721752722388002394397126533555988825388527663501577067141107005639844179787607332327695345270063595093175939094455602041775560156982090724474845981411909163769148532806899451996012901897933311347938298092135949411716165125184857885585446307924970184297866329974693677345906646941817781985167154757004256899725979911345694439810518255522306936637399264021595847203947971150923541172980059102463995948908052382518094413647640701827935962223711145232489691578367500233040583429931569568217664935326200343855857554989322848053702116876176101523735880043854866916558450635300499593946618911810929978885891381618049508672168433066196644140701914784127187663127582849125746943868016555947828185669171505909274853973719364990048845595893745644809018569051144041288352629035387920291039854322778926743778656465605242607551991066510748417767973590972297167680998555941748132887635317254654381040310506082472589625406670436345393243169666376037733204011350460331540302088058436511750680632930664091150331951825608553489130737815074951317265880655453697230554531766757746325749353377392706201430722906043967960754162452983814561562745838494860027050677459912021989932360577920262264487266731050025613808000891320009231923601393839684690856343490859142147310353947137721699630478237575029635764103861341292628372938500986814518149709066294123130497235142094515427133507995359450060141557405658853771453968744379171498712291816936296947736809364466026501488441190983898189038152776484982693332845190581172026375811934916674418773595220977131492998197139305458070993479814514227439200940698276775806877777816082711259475003284319256793578354248085054822230774074284518825163464945082499821781124414468623009207960857408456707658336512031539090994335596299057872854565482462939913388361580848281133782864400042515983085217482976291842714549910869734249216696289434135446255340718338764611754048591873779699153916904202187107553724013312145576601729137354826480269824287095426959827631817425153675092973686855745248522495824113070989505006274909581555365326054622186566453036844653672934573823857878309347367641323019594718163984009416707263407966188044663415011709752830826359271795295465881636939969543195185124588109549244321048161332297250687898559053777764081153246774826333806842393263641476791947635727042596943884214178204913190121822302002884878772801537000693384192720082907013944114022308294679608249765375116366483972059848326991185442076769114067220468110627223252449300179375068198506356988585328258240294757626130101614793089060512211476322107530545517217178104407558991727187436808539021939229820311243450949499752079870232647579345407709671194833840940966404860683795412378409419656332703907628366467629043681011668940740589122288118551300436171647951397547260638509085886063540659714259774746401379907885098202855857323240628124383078735009392171478969119487676003975118386640729304773742860670442859019821649245017412109091744060300513310086029416981260177136048276026993556283579657319908504476476582065075081827287075106723488048164726499340927813877207183991937893747891499740547222927632889095301815164915986755558411010443207900591677717001461631056583856895478793094893670107996047430988032421347561489928957917926427008890942883526108420740516056373046190137350379936576799046002332901912735570589613410982199609026159974833393674418963058953718919059009391880767892358639128282856903451491982092914398527011976642277766123015998943120995158395030519502858524387847368689195274896300431123699906272234784008673250661044407331844748291560558559782156470472980737311462900372035653367787767491531235243003941241501041354732026431844248934065883428399305387118667021462393617896282766993208705276949579066602044255800995941087449830172949905162165664449751740788357128847952504729884244130232754199573160180067510940387603986536086334328751077630281694387880695989377968308588112930958468772131694950040498609042070145911739989176716410854735929320368144212052669159151976557873087603870716569676567839345693277440232943749373607264803755286799527052654145408345258914104448395516447690370909957159011711035807332611774584203588963365916129250531248060806465052595131541526227939891175574749279169428969972218150946695369257597148926603778954048320496168063256368112578366231431413637571216398423902968518366040639749666117056629859195026395777040990314570495080276133541236327811864807815140727847052743471214224200455668485140514549268824435981555509508381597012901504125703502498630296173696037178738381460634052524051207342775571448405587675470431092665756931680809549844743330607720998856313573275282377099346295163333783753237469717976345841139489510450921815351765100466113982819704970239287790180385043156625891602975192114549611182386676969714080021368751032406788463876605450483456391547227071753219631219878101711638657379304902760332052737192622343419544697805181486974072884769742177402299421536172785613357068667552786285866312704428034671769681471986837070286598519224039213125704121082170102613770876717390856497265625486341700043120196465310459507529843923240159887570457472794991475433927645871993599698564491678900446582126484742432145699526095472466851161019757335572193807629165352563625621953423329842393359607285039700599446610715415465651268609860778117047308433191342227057422478986904739388326663185639686483635244966933442421773932735322464707248531049638775460409872687112401357905815888556189785614806254553996948532437609541925083231798838353818680803682670110776286050977233650108174496072813047075344768658193437323842666414901139002929428535761371351984202543026868584246657977392347006083638718814667331928623403758887729055953326206749894349324501465832514400305232268667758880569314059052286352898278848452972205957213112009339503901425122802914666833750248183760939628235863646883559378904500230616826038400199098123504240306934702563993684951756023584621106195187875715999061553168177537973767397454512028204238961890068643320762088081898132014196475414024709488480266375140207636452735460086361485307886825172135191924797001287192650875847862248058809124127514659106605440680260443739009837181090430378244754938830920680941545272836208957168188324790740414332572849834864234884077416323667035812183059660213470579123278314976065134737518819999055694954799298230158231526586072536186088016929214726845400204917625862181842921039122784996898091122838369862699458652443164032586768744632874411985346546079936060962615460334541626747313217072637363234102238387052241453960309402937764427922582744877235919627682806813613521224805656561887323319692380467204733807253270410829134497078942439085673784427030321517769084649209740550644859966582819877326622844031925206001845067941101187056901018216907331878803999072343569191913198176785044662255448763572652466989188933274756714120867905758673869694309330939211724723449346730398481939135916293606687858173160354521281612949470484631464543823097707228509409161161294558843022389871342321807670286031186122792722947145184850078119043557013348949364722177959366218707378596975986371488568319025115556792908345188273234932270665772569266727428699359721094027788726768166643240698995675467571204543143547321509075576630311417586119934042544852306092808332843298717812310504483594957396578173739237381391040501380754052238864676959893604239261404891229562300995571720405984380088449206483583137765186818184433353067962816307767124933299156531226035965071769860732279268267553738755057307945143264877839842337450351527012654882696952288313604494090551368871479251001771860624839643565122360731886120481116483415491404244086532619820704112691845092576072860358416915735687082209236215926453761982215775334291281808300946496308512009671713910527917533883582932180337837941287687937212465593344303032665042241644766481555419337962698458213568716308104602089258108978461368600298501102282821126835015176136503062163019427538738443485510564647170610853219935750954149116612537403857684512638370434967783008633599509239858381880011550616979288613747622998874655470575111341181148237553577635460801198012051534026767911991955032671018637888798606898403285722647143169242971457806112554156166145789516869681401975773240332079750754185602459605743099318982514975468250485210678188039414561938502641580862678576368861016191857478669511230877546532077161267234521149407419293486218829539369626045366018117511841748675618171062773661311204401262993768070137010155909387555946733811225876932420214913553007957385551769759552866588602071129071582667767603695057342903683484236435204039331264869292995648442203184988493698939372253225742267304332302303162862206546047278108961227736845381844652393644082610035366673543276377256606519105844742826061511033814206146379797470982581629091205919165238159431859567903884399863123957409610222554163457228905297668494820251987073511780064142693360618002339254973959205850884544973974689792262866546560846910897221882418897807507388751299410029131251303402000628421996185892848294229605535086184751077698607732138363096559028791777876055180781499500017753365999899654540545311959362635062340163330667260173802458963833741536413941673375022063416644585118460027568574414873029103671327554913991549420461091582735175777862102532565832793101754413320991095864361254272822129382634570872259369621174805504327974474395302769560975943175349621674577486826786301535828040016481168997901361115853506497633373254727364410368132154373166168870873376020455697092373770073246287409038855110367968580581044709847847492429786612892320844331194056747686187466302294539394413729645426673868450782962894484659012714197908118116719354640712602565575276951591311012440872076704042246889247606291741850135594603615199323977895140995060358787887615166592217319616013165775348114981835284536985213781905044260131981799875296133791354785656160217784873240445107427240462503735629019855756618049512088325389412131040830307135898203658142994305760553678114197473857812257570714398856076960769753097972443320223498028009274588129845728461859828720382755995103544463211821542905767362328163955446090732774203859744890314539641979897583961537796460830336052310510223051548051716292435084845234089703630494610197270332297605704835962150890157467277553822197709129394003771443053476354949323514748981975777891416349057659751416752467219299316584746848929954820138103889487163580417840910954886743862329597434252813798249225362240217708143336689408148332339673153316284654578175694183976499617262925563583443966256542412798231671312584610496865923203624974236391755524079912595019531007316385151752161962691403642095670773747829243318105440755740623016016330802495242983875469548708509457537242656665311364208066812204278748155804090257604698590726254643687024484293736073116414802176261482535809986181185450604766698091269456450068191920303783335625626170414282066226970432790082343464511309551151253133102342467325249821580249238633523584240155562471814899984586668278448901750448914794568012334168091831558498324415375923339885171877818894702047701337960499487086395401879823963278826840162576297576063290252117521657374637564833723192129213845241642632760189420795721279261610697861658561357936162693719460735801752128037097035642377209536411654713250230735968413090435203702877667149858790312536532509543999512292584255150907998247440089050506795641675328240138014565869681322475209035445007366830139014946056523458675958640555680360172611305666456856932762291343762740905493394270382314519991439831497178693260207965046170640752944705687121926449407709515621731471143841616879878239055422745772562892322555040996892653599652236465955743509628935569569599118498401886943115795659960477479063094234541589621003709653984717511169504574713075220517952315107032429033876355978890908809827044131388111579447908273451195388965600885425338780497649456344749581979404732687672035936664636524088263568564920365805210536742008382305354345260450092139888113273906102599894671997238739778358086040519479323789766794326686515655507139909772984442321720322038056873553825400742463806991092970533907786400238704580015541065429867593158965582842433346814932955283862273531207695541975500302058170982547329758257332362649123138768721107487816334933728326712242306658358344957619990204292780099555516496447319847595484134575065890782311385350802050455971556379221218149954652067596896028545904461929679740142794567045937008440659018175184259982068458265326093907667164847032757995666409545063803678532986597603372023382023442704400590678560837209816092891952979581430633272133528804626019725439049336317637640346782618057981822613839597091081102465401901494830403523614133428208681065737087487451173283539002154708404849646421603155797627379653626743318325897525758686575677005320200158144502145541864191563479626155216299107970964636498120411365767468691470237698592759750581911245761055448700460745969523080531664967167005659585743825273834627682002233288670131056290260848810397033114796052937946323349579458370832752752122984500857802647407802506828605212112833159983022599299284900173337876833869328496200969920476780522014234341636468545285385455596603260302142432822635762738705374466948230896039066698694153004201723792948721537536882285634050178042502267628622232231313975331290776322478995140090004528522833703817250846527481753871194799992372272690730029239617696921952438048916524114892205801165990039548264985953307891810865391263534154090902152987412115211946591851142159038780245841398205764264570858897552459885556141058284843108209951820719070102319593617995769136750786906340114876093853192553579390597753554714918946388704517517793741437287903557467936774759206463156675902794934634019562671060768384869753830791279700600119721315320888831132765138784350748974098482498660173354453662525980458001074093742442134601000653265844965021985542398627984018042066338645259643856394408038920995312937148981077717543990969109034440435635231027378304625310263932462792503308385897312494027441343399924016009689983114371852607481060731495674397103596962982692906107656135670280348560382295183931208576683265876290262201987151939142531048402392516088874170374540259122508011201533441430437237189054576958889414864979386231707515033112062056168258554190066792277325126782080041702733741141729278367739204715800666498695683881110232640181338238810461972036366572413750893015233933919803581445278165079222048934184951884326237295269097706489829066454709079709531758620610540794197654630193272066318967311537013402766294881520319700636542866971391404860513693526172582200882768683651627916601840452230461472257146025724555922117852958679185559623777359160477603338057598569746695250806240893621018406649563526936387223318696751934270371645268720827718879261838407258094466342736679644101294473436623197881643141346403999739495250773406274739446623880126439441003565733735575308477226301132682528940081407618944062834848531343582372995294586033966234956885006977390241467801323415497744664682307050656905719330073198225733213692058350800087446342572791446568127971152636990045977606365508027006677483013205542696184981165562999512101301279893496861162666224684427362139508738168298223492577935994293242202490097760280576992140027823467333929961244980706803215911783773162626570972875558552019144536467522490339062339361789088554435089160529079555192366116130530371666232147001571791546387652417418921205707436235345124236076779010143739905435384375024601587679981082163709162335779271763914625344836528143416532150063989896485903267293080198421072713492555546263538059484125634066970389460540585808095279970506968014460737565956055984487217195644361874443386670465965762531184537435779721395725865612157832725687476649410686879910668959989147296523122194081170364849238632445055301553893846093594614681768459524872101249970492191409435410188025954119624987008246677371276574458304602753958997649601769073281199084539599062856676711635558909503344426221848264139390545834020070359604572807648219083408234470204524000558755348828537828515796734800587639280233677605309326408738392139273846774665104255409293148286637226345224883960044693901911528520009557528233340695098379657144194664966767250114245564011472143045680301528864470023757419531529140503669674856469575651779090890656300428202202779747477392796801898578691343880958751444993485348998813741929025132435720038525305197974719620877330202342317901606106521389033399481838082447926243582503795785733698950794547980780799909442363522968558009348404539555755878811575498298244036453037404742586714856669304725136878000019024457657725255110101900856620886834435039617052677092145526208164104907485566307907321448549569068644681857739811431837593814150015130594203617104211446932482072985185466262331752015466528650759533596520169022975479282549159136686146150023347509747841079574582432325515618803711766888134587011517104807540469969408076925701469028606900974834398343279445202529487180700688589487396534187174834524307689719026042055270046950029437131444799034200145361109802507415224261764411292972489530663884930628655048887476444100360863842442565020715427491581084623342972109767743300762552597981563732213184745738064669844997485905043755108598475029185618419062914645017624374508836022136888445570461194082373191033211572595209182136093589729506569375095482649685049913764116249396650856227352936751678181761748003194659956042188656867527060708801385565321687293044105612454615004498584715805414082517780579097808404479535254572784504311375226583332125724961507533284599978448699438169707023417612258500432298375468524453845939383161868449425103073469369901144309961808471474433948715162897914384008975871714655143641546413328009720775299128958045173828812620801183407439861049621578674997911188148856423402505257888056240329423957885078469817418475808415980409047098148258673981460066994291905460454123588633535545078338271336462896339873301194596535702431475182838824603844447814859769204215563106726613567521017318720082453801243267792911603072304813456271017567460938111901993098454978026280373923830281690542016131614830460137686973883700138409220784310659698142869988940936825152257449675399383527643237699629300304061867990955669069537349659605372976983372970407509939468149755374003470655435377307660920396477156598451309556600080371625286362244627113953952031868313764259970320056561357991696697867191017954492654292570750346127009726436723575148127944026615727704739426760919112558966962504159620917726374763208671760306375789763123757663193546123517838415508874122468137184179097863191142841139027169360362933160247599786499557985526694278838637419136681250366957482478100068375626312915689576368893667891485088579210311688173154839809734976109456901360265514509370907276478314645949954086656897840913652686349301334495760250788191443347304612393279074848909329597552774299284329661885816939624791794489807119952920033458775001835908076166931509197431904936980435401214490424826684501634710326767099633520677330928735334656166552998877905393294140201688791433799835191954980964697868857621327039053939078482439727626499621404251394351796714061275209455751010640342122171177653667816620879380682481822751768212668535940584615434138575767147174230363315905026434724180150937607807370110628311597390019243116833948553195242668478353132449831101792276338552785837438314698710554125758504266094590700615571324708575562499791241735527937275320444584374722057329362355672757239534915349867743065164560910755571042079457135608302878266033083059116760372924371161304309893041776875404929734166059587644488808957435851993149602331333995459639659684325950411676638071572965123707723097473621475069660659757076449413459754270103547021828878640891283818103416345194459659570313955289617459735255187424695375413764743910038815349361262600400425473001616893059309613052642517145254868278767442511655809808600078158685901492613353482131370183554167631095639126715832936336262467370283914715906691160337088068184160157260843822165434829915796016746954035118221116325790957903467315731496880247264837431034450475354378984785953411325419418140366514501140265596350998520351291657140794722531839190557940695920975254533878946433797069047267063282517495819648968270681428794218219713811711672854419603874175436003960411357073199850539292364693461575175689460170864109674273416984364065518014429192891664548733326364635054634240779761809966018018921765670329243361269508809749722803295851133596031930766096603721239062277650141599889944158293321693709165762981802674815165595056213403354703651465415940714309836086002909937357593067249196492977620712009072525524918497816743724855596717565839885775663901287149895613882798308019772213821540418249995648110733923697032910059234851771680930456096163186698951659111625724500448590045106662828442099182384192099142342391495393695732738495260246027615791964733185311146397829038257240055465725009208471133906604800335552353956860941505901637606669485534065528051559691756016292885468125733723512925474713842401055111245891552697993142167492539624200636456019668313511872420012624254745401046515203808608373791821975275513219479743538855777126744901203697609323898747809389923662490587607374240272817989805406598249835944288219457141426862524093011070563586940704256886049540657552917352645076771101670331942513833296486654816073077196713155979445959539067618722197885709263865829332851909272071926841654365770827830116342903575911857522825605698370955362389986444332661839454168375688511720787905441205553322950117282698366375784096764737255894397184046089140675481425375504929676820584806683443072542388551872203991711056227700038769885294080377698841219996082257998571686576058636669567610988129623143475387304152102697003582783324087695605982453453745124111997570159673779936210920629709741686395972241793701763062594080091837284272999507249766815930958829350718845386519699422230710183661488205764290119302206614723280864411748210669519266178531468056391097578087621489954310664042492949039236413872902814821936673181940366243290614345867248313366920925739488115907096154503530149293364537784828103791350502207680828267618704930322445947681410021034950825717503222055222929222063825376319547074707687857498963660950262129342398064423345546889387087017477653400773479000927281963167366545951391679735638683594595308431729328360282381766394913702723950732342932233522372846363501094304046405341094784054152272439200213598824028797313911002132430318874436528473833767430594838237433889987376119772442095840390164307347606264598870824225270434382386478042034829033738959519515450387898393000280810584215667025958961134495433431039146421219602878004313138450153874564031216226189680668449971898450292833101712978715591115947322074396318532932654877195425829499061973967122692746446954054179039499343092343946298987804676410203606817234099110601844155844311355091162676359695465056691556152647345716242325339611886278412264550414725023582445789305304242184331044882742897737685991364605642402600353425421025476598235353020665126636149346500299849002125838593860619305453023708315076985623870675096786463993977018439627932953746667583893166095678946804995376279454147828319804100142969739506745306735095135180364505028083692352697710606978975429452032335751058693310797436587789956227227340364131455406869975350291126340664689581327066280695396218715926852133976975543121282268266431881310446680000650500163024855870818055413280425335646467253611638442955521400293404939506432674002867721031461567267476393635737553014836817160599124984996612209608523262078647068781486017901652612108363547344597875150422946970165545508225876323203472774112114436244705789390769054511666642126785690782437898586983036082049500356588303034472704087344266013666993619524643156077730603095785679098462461803610547363568922856056010563421765705191908193577992686892752710523134009752380153820142828549935282901344696291004630585143654365625606118846440578409576426087240573341433764785202623909563852479567104057467353074055754905332082514488703651592481265350559921790073820161921963054782791295015627797514601610934827127975319545952111973248652474312071417937045003039334269961076973414541430162852492214459365127608378304776251091101478586277812244828332432757308609624033929565475526936558671520036092761708590873122861661559178519434460085071170673531690300353095771684039860633806860439482560966872693766977798499653389130924751108382559597951100142514805318656822204177893750549928859095494378297507871758615585947828482201203974353736419639822017971008901440216116006338793938023773848223396733659896700024282621812605058961074290633847794727516846378479946569019003453260026706299046369408029044215910573038701231247456058785382806531903652181577945193357239547715944100439195075520715599052382687296499155607307714071115909333477847020828387434154060641389009012061482183519884357323385356616712826357907703130109863014387000742375238816392992435253841292061278865258503651086748295824541526594344092602409417646561606819517950995809944901286781048757532975851476853432714622823620616961497630054756779684165772125764159348032439779392879036725439986497636563781080007532630489594365428513499540210610757621477219849749404018476456284660357452341085478571516921218736374180712986449344265217897039998743149971593747956801532245370347108840554841653053816088175394745740788302672203060968931450606071927412475457517515366299718366878468260625561389167449064894996375211709043930115977745985582888587687244839473188276512707243042896844135361718579913773539372981392156750551077315862434546458603156306387458835381591434911471402730815048479080287621012984414604287096064088780907140028158845716586509861441759308037631852306912233473293263034394316807597682223478336566640708736711057371808742011713159210028694104022853911673353370670984733223787354093535840535312963372046574886874510838841497814634483344987842256958891706239228154171254136731035298833647847862542615393590782418337429729142266218386876777073764924759040630808070937509987097744581857276496332395305063071986093023355506331619064901122513287464949175498195255664011835421015309835747735810857001429070111122643646865583979620439202596635592526729966531585566032816908396581354548856833202952663534774168331368414989445315651791200293443019134682981183904941745607642562046775963094687383165238952152172593650855355388351937143525744541874757661700862365940875425699877611124176950650224626583405230916087320331121645623083678831257438635768176924484889942529789831066748242603321973723189998282328777063462803262652979934211411039580072564238201642546745655091072247712618768876565339539527676188564898185224518731637865858264547045391684721128193862100397954926512845050513086620815998861863112209636567981948704033452816960064471051132747452592187774701100010206427117862689867718066169773979487670429119499262545679200684196408637241021837442525101469070218863288708141421686602066440985292823019963083645200977246619109210767188152771771373232966400015031933589872713125948360108603784238531190818155454418021314342953197866150562921472851198567592257214051065530471171914454540119680366481377338540138430647901011527162319104542859554993104595683008120189575324734868776591061970598407919462148224811009089767006390729092227027905526449951596729240197163823278334438774172915835432655852956257071450413370936661368671550510385662864712807168293359116519417044559839425961716692486002494430275651072566822702172247188714960815214102891705311411612815009866391222512069804716861534523218361225031944508983776175505275847351567413949956485564977293448768067941452323857161126711890002256132648292445023103484549222984711028095829280692271140709052713162210345710509569127095104771956527623409380944353928404712305297382248973662181390998862711586503002229348211639728147581403823059396397134224043453769924379869823330748624264470568459300372638933058263337258634664145808141996367678051276886685145551065937483169375874784207040845693872692868906698870932424180405711006461680170983480698465340948334048939099673307685103813904948437753233663626037142033440600149301312035060344090638564973461745449625313355399431014337803838845186028058800560609810799007464539891222404019389685661684002567477836691274748836099702208497769593089903796909358477562207375632390908293528131514377072927196336333625488648352612768817703647361494058397719831279527178949439334321859631583612389860853941384955831322444082520889081260550142379745025118564094668068940345187678096209697580407410343223234126549496361794453471140890385514644785354934444832011303947710793377389643541133575684995950198901254505619500951656223899783468623833670031002426418337603558821251329422129807534428240783399803519957579985665880569514041361809015464117800806098632845825704990970450186381245460098725458974439611874323243485755483891964468837479601465817666117961058924196858494991337017187864566530690514278179740545134882959540443765848580823171960330851249078447783337401902051551807747739317582967811181509393852939331720409493418416709274615330099412529626081448174713621830466013069226535387625047436644053523565953909966959163947918574337116713127636559147295741362083419269295314521907253687490865626747630760763988230512193358450772802924324371669196148879710765219746678758208941380043406068191269923260748479641377421736858911631169298665273773824914135147819512947096890644526595060730523330985296459782988924456802336851596548935728778134015013272395826561598100501675805376581084727171559971444723782120065404392213672497306471032151703431550588321469258403323874092720559539345824927747574652323425691504841215616924219201153956901412812826939226074559842719769055434066519504278406667645898448290963132138031389730255401618415329326279651768230695229416874851966234434784995090715068237649461185687557975611960140574710288757924347211614445473294950612234655552759890777601533862880994652871230791228038911428356411444982763090049174925348763381363558620125024425338772216136661905233836433562591653940753297482699237718532848824830363835289209988214832996987317642887843927211665169136329264693812700471109231449004586493279273197401506826989372402396566292555204508683883845185679850811484039776328930931946025858060696407531257726001228759217769846571862161901985576918209343405364742828323129175197883180839864180386256237827390250793052030721518414845577498246987559893574206421467492222356535578962105560470002399984935751745056887520686458305480424045346199929633194647094812929366164775941460961361626660862690474537221262015044262759689977236994148509454769676262596394248177033184936753763451364978254450244887790790102914798604353531567790545744258391762244290595582272526670314045873522276327538803355368170077970029863762939712228718451684616060741514810169243824328469622883537847384642375377010027298940612497551276928654011647058130472545212573575139201470377264805857091440363982086190865393954863731247492056852251568426077794759237652274026401896462307676067879827045873161259298661964166310150640696549340456910553159103344077366682972953666265372750861333631270604970659819911346924173513184035744804724539204463204915434427250856819656726776381606465065432461733445592449813377922901708921513973982970196957889885664513792723895378153016736331827826752933213833096010763675605668209835839115381846009870203593141223824293773528914462542121994032924278852457710640349331532499933431905425504240156658627074301347331302666960715006961046964998765188498741450092176285785325745726806233736316753698052121462792216047230848889036770858150514114607008308532959867345004882167936591856043670362047153825111414967986704562167101319706134728314433624183177209381234054900033823301650342172154426663422844782022221915515537758073904510456644802391518278942281141665332469202680125330127644526258050734910720476196151633226913739623258150086459404667732243578391987020611763098924527125220697256752219827852807908110976650467665941945344900395698847933886478496132788440737275781667890908572805697117869669114995193982190353776899455362510292372501471718659898870888083636921163529356236132302040134028262101044910426391352797779484853548674455969919259134703639937546552480213611488277581433199974313889231471816415772312407669601311186951994737560621764905095011050552694211697957409817289081127127649589818073299435328003668750571533155596832980528472324597773289551764431604000581130582373488521816986487591184896290084801659719675609835976450044140418390898749130952872560486134859207816471459096517443876958183644061540049176278060894524319101730578353557695589906614763666115637468733610770787468258213967570595795024377830637288054070799632441963098067654787426332833589054693172699649648438830523874729374327147720317087277887862864074498839076336764027938257346227037567148181147725627090617268575332159263141669513894026437311381571976685582339353829900247988400159704765115360060758526602128277697202759113994346047131056276126003639596077335962378187138511515229517221784653213799509653126029483779668914888227114062683374549280208478629072443251720619820648693444261033735841633130228823656957958235422289557621794928563741024351166032633539207668620643908480260390720985068445688190581157860302556513575342543722516689386983924979345342356531677489457039898411287535226892900400052727242639801589823614855461599676976912182672645283533011911180296800652944828085095273625651227543288414960031523500412058949989069916138198795710813508114331406713649774653396661270451944632151152722314996167266510790584911911398153052769704045773827249511982765100098317097339498750822320499991400397828646308904305906498065772509574081212466281504204664611975156838747845734678489701302184611011143023686432532262292219829315917789427707982576798780831974228623621967601468101599945188355468468776738623111733058726245168332545627317292643114300337768150165657314283563921157941823247965754427613052919664753937805734267191551642379414289814985936354887585121830000722957074981603982378354496193005371469267782620894182807105484923354714817401509223067108638290877136161938883071998961329468635067329172506725580603111520020249519956985232157302146905757715498659761506181154878998111252453629867437057879198438615618400524236012188976312579876692062434682510941033287696538351002715447435274410940258328966947303004198944285538990704206018931425308865046742148711105424171364986064905213792331452378786795262296750464920692540106864467632074390414588386701556511960011991251654050471935839097936556869231314987677331420694763426971893390518949301655835620813277804773101966005304619399876632988414966492846144286996574214238909890509466065493285315349315036578899194834069186713590385827731991805980457091154452771605479650718743710778641812240398272186310555877524856895235693492410764063756672838884223870110003360350657602069214413794626747668650740701155581894928069837473219644186788449686840345269177436963316693310358159099729799716869543131867449803588920782900738092824583190892355828878054887759283507327145816164952675313374034975287104260734244867137918341134212241133629395520446637676098800970651653402684102116842603345645398344867298606025983548918169669189229228782141305323095904914049308099023863689274295933737505257474624890090691392733908773988230494611983320039399332567329969781247004137419840607493517258846853416125805683842919752377105435778310164956614277305527411237879843457805734222377571663376038533099082592564954724467158583360112490235092795678578430015787390583406454236996833133802485213490623257293843849692022868336800968784477966305634485185453787495462681705530404379800340831105147452254612300897510020877581359683540111230348207298567459472313280744094353242192824227104854453040350113421834043071092358587436916531753697637812918756329063747134760405147400827148059456910288604443792291326760975696281141021883715242853156115088452055924815361461861098309888434163087319456954187301338179622572186062181484515264122246835409593963375567646968882855045199929154980274584368508685614496109496234388900227308216034788726488273799200125352671138590933797098258406887092592880547351514750363005851160272196302301708354524126034892367169530405082660037927006879750487282008583832899871840045651308036876299242055116371388668761719072363978666044241467127459054981520820642012285192191507576662323347436878750076926606237625317573104214398118863789106512830713830708896995783405976316630428024822161470504327673285526861018886618896302193698555027275476973212472338088904041503427737993549842708797679403419140879835080970087083165529529342376320868565209234452430315431478823962305889022865563611264785461351579192005461961507218384617414262000888845762100287278531087497236027448883245202909435786940574339955720804938444580677166042050504850693916642457154381162957152906182186848010697738215511806950947667345727913600338962181559260551697385644088381977399634920861388630651766785838752511839867220703904422694691502571719630890856931725115963440060357910090066081118917107364531568693400930237471291540340471627296376699013497537259968728730333482799047841376289579968329442794340525844528518755131925346137546537259608804667096508470337647510807164851110898844517454946790080540299218965559451060052814705267590472671471886590441942876783242044008066886442672435584299457204828965327142734701720147842990939257307563214930466335689673427014448712119897681195737913383578396074187224625643370581088768429555702908166822131189132308986825896297515219338817395906935264577937075598156167821395341011964048884113460438174068430446230491747233389718983897660308632299832238375246884976507376601737178086879088355273520946213124097926888433077251701352685201229748749412119362061880875876982314390145733346555001574358137959741345451381244108168090141956638668524054179184022729864370785491908668613177581538782990204828435579078915674346872046400627141859478119137932882569331399295271293041835781695171793569954284683687235169381712630944262940939554882093124304766600446051344940471625749768053348746638161294879081149939052031178831492954668695244716316057227536749406265839885661507535391988912843463414164598828084540985439809859274841019746127054778170922697700597268929094977660752589059890923118442106216521260998246518485713467402495581971680311362410181126591480430061845884290843846455362753950766589457707184254012430073701882682240768731131847240583296433986978299547208674026123847797707979839658552613615125716798649600595252188401713625401731263046752686946623397484876192170480842868471013457787907278203304281043257261418434656702551400381013787186438496687175663167982623325963703920983534217216132721439858911243429858702934290577857303860597517156725632586257969101669600762668098976271251298664924777295562685245057035177040727403502616402143528042845803878196322837002221680025005951639412354260395626136250410933111098519810161460257822808455040484396863260110793830763693015852089444176084199574843482030669430545797336407892372303528893345025379563863743828290689353764302969523587000398549304494617499333607981178458982296096469776096112304927306121052082195360965613278381167823351249595288153889749017658277919872716997974456103063468440209398769318594973168707049147157181555136680615873842510830420146392494014202458612659003426728801820330637792197803321805372274732647227561248835827418231479769440892999500115700521802727590732894978986231294658263905272612724760316532571036302337240349204172765959572248325980723761913264024309749789989973254282994170557329804455749482760056324437722912845915470858887661626371307557588454698469002716607323703521280911610644775045767033885226241934972284777784528406860997912661232055993845335599276984925591003584716606631912569823290776213446072160966579952905079379472426872354075181718198731132155577515121312247241383756247586599595296006864153340964103340005138341471349523621183043826996086292104252973693922998427713135361325174237071430507743918452704793204671307117613260413438082847893608017387794458512352605005319169767190759203643755093598996750511880399914516654540867513521318463312785304936302775124960595258783766348614358853231779862852846957006942121293819292483474958374471521632768648481900568806635466082345469521209221320982940350003193406318950980265177049506642026559027456271383917438951853775419374392704144177378076308906721776609751505354062772603382502807956293456796568310119743654721631975864120902658076039165023457411578268067988112643354915226010302262428572839652109151565231080165157807150138543918769444460638089200154034563183482214452781650700937606538478428739383030258835199965596794020368936185836405552894069044732102929083846456463475061361307652894258054701929807849103340618652405574863237251449521941819878154340395811817889410241953994093358100343543904843517996930194055182390122647229718177300669146085845322757204523802691410456402303754973577063477801039076764532488453649924297936111376538196938737076748307817041227353350368518780005807954760685168048715390301147955198976786025871968175192120334263957136547401726731072593877183420804470425100272783541688171762249576222402180609561757102954297074794492651024543810851508713445061759329745787096988704830699135719742839936748441784611337604298287702548872413603383543585674917479225746407323527882980085722118910197966658600114432506060012040119455188332505563875610794875485273356665459691710105194687468817301708109536347842977501351533655778002115770204644652134772857929814028826418338227799829016441652919067935738944889658408360732704594825744048900195231192175536815027460105738134295425051206987688615660954364122251980824299176265448505344570116461922630096246414146147083674689328836537407861370963783918044257395866903947163325950279790409759267464657915166598207312973979034245922041379934150686844409122500208642899589572141579160462974406722085309713320181131303179659516482300463854309060010373685163919808396856444482286267325305904860237959081895897775885330037392726475310976898276178477774293359378788353406551280197903356687457592985727355403810789550033122238410649283071678471764376054724689363645715842735053993310969760759092903814569725614480215678763535997334471640464435778077224381247877811320774784661118868609804802918925998909925811936116841118199487633732672948719183042375215561278811543114543881332840654811761830003930368483294722823693027051677132052548744532322753207989224150724660402503442073652228076666026809687827480767746462801270216668348596077686683557058541114612352032833942516018201173438868076454169838263861208799784562742870711891275767251862756229698487889957778920578153095565947017749062071022250894412344912392810193932584368455787015140041471974729306741512627242006102377261242191163711310078643008331288549065602587331504834327565415613386925401341797145923682938848847110389316050045398978903533918152114159254412728790963216959479265823611126077346978417215679062603968122375405328134826565746794335949398421053052251215503208086318485679279966407835531686757239018015337722444769090087218881525040842829085700629975304087383153187545196736354574195490574535412694167155020048347087119178844447210336315680499504643672988976156863742529165823929319952468519150425253079809557858807704727639600212867818987531415213328340839567961851570842007424462638079796353824339342037693245422629186217811301553377803682560246630699235803709210834747256924877074688820159267489707054153864601592153328484967699610148302995996917181903001062875476257024933573234845589025519156766616357814270409846033303720297554361957667685695861910506213004823859146015138035658178466196085837688474860963677675860280702439784731520654965930430599235054192389558626837766959725219481263235050558124104754402820117819423284792082238440949469422981407067911371205029898367086887786634879265523634596348019761882530378974475571040746557486438969893789331668194688145771722541059035173997495266537571378095501654907414334263561419568903763774588847977908045027574619790202219056493409577439872460833616838429328444064867863631831047352731518113192264956397039608140942087809892046514039719719970465561985648798764017020786130915138128598903023741124745322015982509175461934086159600911101718545091328882873342501529878093461224970241559474303378145664082825152069187107544562296853181765862745410533752411406840067902048640725511198500221111940720942665033176621819532887494029622509847266808037811583866031709817600726145728901956230777858901827272096206855883374852554242366977747707008017679427592931520907859060110813940210928903139865697541608918467003061281436307688238690966219766014836756420694832257229037361558775017258999256692758276410811190713967769301357702206656173483470492435397481082013351683992001715018514334171299813772658719546368273064232832846593120242240584747752950239715311374904904051331574274480311931178717790508526950459900633183639236894891859428347309170662038252261487334133591558118470685298302285220924984645225794780718481123461317064731506001145650880515006724717430239789786831658248979246173626481426364764002729916575304597636321615600249549025104691110259800454633072308708422085599638919462591974284025578194967932674622911624422119234049559636106835289236020516513455625750763902573028115166836619897240285698320393427619485416670736971017725867886474759440595358959850989653864549518749508834438560049048178452876667309052535151902009407261383693885622914539497965315774082039407394880956116064281934200468537978496853664272275683428666956299493057147933670362207553072478903523930983221576749046477860017537145307050132115320464021254026689159550606178228425740282515730067911707971506905262903525745774396172975912125587402976437810475008487499202759357769288243112188616889678237463262191574745830014851458193480963392375875511829629580662938646091236664364843978703762794041326587688949437142863914414937861605749325013246145387502555059100230791576919515263966582570110512695486082630974513954563109868808323620759840475734849540718873901349245069067855047551908008969686573860614741367896837069865524025667917488033755715173064075542042133131223418014409425624285031037057893253214963594130105594351474767245351037420412933733383147470660138410278734171913426230163410735482952912086887788227511900877003880526627186342849038685464061176270363113785805911387799231428346504402771076176812392874445820444839054891743118352068509669550464856925761978978594257231913282575046350114018399975204463678039564897776525794545999748555691964051372013008183920223799725526948354707259465293269885649171464238783504246017658169251554216784645148373042097886676895728319737503571803224918568181130990621739604821030075490613396529761676420661777628931213226623616246021944932423243271869991907472004645676748480732196430911291823968342883187485638173896575690356140744366602215357692955426407765858955440983021093044070378705260053091545722647117532295044165627096841040631542543228347132839462130179661935076370981178694071512695166368058532803309659706438157288107567032685007462363523109221185204972467978485581108658100982972992962981141659777391720696129242318036179587295282430595435227828755254547845011418380065224938134450401957617342959710495595370035348224210255152376539084312242004450021781324561514105547331824677671805563097232274584476106423386290863646191396043490274707504564645390189770886988816460344460295823132436865694720816276003826138162756530212483123950780555883858391920320927410459521067611782080229703550684073119630465526757546674792462404909564512823010054596307513334201006922539909147572618183835250266685125296582922362817611803139553868901625721666331868438048720747966361579743010894095673373524522983767423087854333509494679778767120006079973747642149284474952992907354086693689043734703747805082335421955256167974578897977972150065637431313062931390647703428452925445971388746029401828690497105846766994136604064407894497200593111929143635628793838340555803848312690687978605846805104338513611563953334651155386779593555226413815754486128423761499484628148456831151308031294978124490477121513744729145880978323440242178377066767722740133151930052458203214570601108439701730072305058845328299615490422626360548666965927044964761256792882730943841173125226489021656846613624670598748541864335843520818133734153364637395451632230613382179471352769668848397226683643079432189395052115790290265342043347106432919284438823884268359345455582469690167417594473075671069293323106954662125132598571619609318579213715214655164463805273678237185086927797915856729817001700763939911674751047927115605960086586058847011219663191670540145293697782487250072956476845580954454363966256057131507486037842225330718139490676632320101756849622593295538968428081435457372167814235847131526043734252203788701751507055004883646802005048431930223067212489871684906800153406177072120042643702914784125260399280610763487833035884071998130688733381959067665731888990007573164557178426773766775212543909634293899328886313688293960843880494310017779722016612803028353717405601575193281837111786483441613586848557053345270815375074996548127796418330839667066203616800253233734818151494182775919959474723330280836077989637136201967452680085546015431453917877804054698636557209583821517552209135534556893656615961049665249876335421517485138672235609023512562963008916299058443560355642584821372148350163532996899818792760082660021374883057666909242152673109752736620213916176878983440043718074967653135377607739142650179826102549720521307139749646592017070254222539420077725666600737544283082638938937000040321276021394739223916180045432592878779118137639032518896604383286042282807678825916828773350092823303426990874274254556529936520209570741104498779233605518310897710062950474619030804429877947453393278632351677184578835683482906487689558867378986059306312705773904314851157004859806223187395311929793472215217996182868766096365091142185474092067668669585070474346590106420117818611344159802488131292797765201903733839326291308640242880870601740307911319601575792027077221003699669445501812645770601260206905908267763586036719661767168917560500130861095762156937462516008888671216830495737502218177772417565578360518499395416987505245808276553141330253117678957613093230240779676423331195951203477425596327423999937333510611210836440808326043705147907345510883368729876405841235694429388620263962871153200487084120058260267315166805599799537225711620982550338220238338496479339215422914068279369689498292055168672297031934500554486769488524025566981183466552242276180180842374188693014936996576992588430415738213809913452374984889878853088233149010576605275287018688110765937986610905588434570807264624559265839934017010972150164665214789925068502442344107853445453658730871938967400122291419933722846411926123304971087114757175645330388852559416591763285402494099481149961986548540701054818875059829050940254176160352547192068394501719061700945834477471797059870873040763688971142622596647604007102902155909390176146853430991187482732690468160194216720709845231115890435700834690788994646993037280942049680199358198604557069308152922665315138054962001834909439712447046003967950993444490651509884090936297950968257165106122637583220736134239880373062148375297233193963197262286632952671217429904340299637669587253242292187923118869645785972235850592620363617760691525732845742132891399452073201127831121759249449229429352182857835077272521290736499402418858917059292934408446782321038205864624498476145013221388840613830122211593084445234167147229588164843185161748951678460297321735646072571002798329665760731690656362145838942297616357317181602920891151626117989743012891896873555489469437788569213681420954367625983419676035424066879594867211401054454382477285519187539651560506818318290047738300011077691730884379191047188664933131731652271595185067449743003849993165515255648844250798285395891779630803799279501975700878725679205247089750823878883866550951408068425448477364389262142502414064953843618496411570289844128382870817934397656432527408406862186656108427652549212519529230239865098341708313841304467755950569492076322182919399009634695771229897269213992591002869532421963767459912232544423404362524073495140559765322224408413872600604867346228669778735834841025148488542525555374085764821771538937774447309261870334517891836567974584670797790943494978677530542181962421551143488265005767726587277238472490117385735376329552905087563364051416348180765159720038511959344563686190860955062274375494495198850493255331310722661112300089307593445347285938019176549176533046068619855070745706441148213332476116872098852935557909853558240611525165695585977229083616733946544220244881008170693077161620368154969822614848871827330833389418447038118303413442873433532522100873336884781396051483346851271141514808468663529620000321147781976121428794039064738219359826955766102574262732721477587178931040643068963402371994406178814793375589246177511504370236925391701024148078463414258057417797200509546945452450162976508663824579160272427653752460921948245878840324607176092447737569264228530569191340760568100617355613224829017712123010023992910143090192592450476574346818745345067084569007775974081172700585040395836438989097293421093723493049468242578730224956832710485958305082992117179648394958100041707780158925971732942448101259738740019732764546922302234328475697801692746295888948322089660701708099595013857380393716836755368260157058962962798408295396996459665229211496764094144994685152403815553575070403269893473759739689178111923437686993176618435526281932668582234334333941921687587063759638928456748423848443766517670699506119389200282038542874421095398097047451233052115994130295390565628741702507909811563564333564239478566667766463474084392032196479239779471438535373981906801686703385478996656656322183618063045509215908223670660813246491972377374228480367961871034953588194983009779821133563215289122843668630263440672538914083034888224476969964463637139675134664288749242519720256297418998386308259224386826874478807661755120045354525328870580186632530447490593206264381195071194364239819727497470517287533281059061770436704513452322494055966160459603331015960715223059476341784590936817159078727324675904550854231381582325897765355848487216599660499633109566632225151659125672138023271523979756952188076819838264953012513933524164208384555524814144684246054985388488686855905024770024817407230052028070191450464762975724962968828223475869305870579345277546521043231741680381401351694523997791845667390333183763097767715036739084530743503378015018512285445244789504825451820222446959460724641998243816192077821134186051472315748826526291305170591939068970481101215352761505514421143306801800313261190330773311827834135500360987398518510464844734160438311378498819674239711196403379076541908625168693058304842407015878250768795998852787786485268931488883190031589765919178365238625857065286713100356352593488716501601946659391638100818118780065110757970582956125775463071259899707423997844237761521425535042239967804386691526182345003710778742281339668957872280233716660992305572669420903832705588861110472668114027468627244971305878534824676965533255558343232983099431161292001425916123632971762843951808289917880639089790829648460618389711498197944882727080110548201057063154901900601087285787660838526400384146467616009534637718870822538899734593498883058200354979872034703944484651997263831780375963872644569333584484729087710925802062572361966540117877657520487028713473307746460364956328387155235583631344241282505428554115296467852906042330886280946320531833692232299643632076408717214816820484776816339878648918884746053789859285927407908242610613118638897341944991098532683365381702015344442076756939536762193344728151401154072791037202918498262428084428100666150556294525576531711959981273582219930801873878850034483609152035858988092554497223401325003582357278312479221865611608734550078263698225940003121260705542997769334241519041695684611066589896702935965943643113858892225466477352284081117654455163303522000221660355074003100505110776467034715757845239663437293655578964970398527722980991850112676207021157368876768617638450043537769713673894783298241938105492607499315841786992430718019299918657501003025204193229155879386612904560117637793842878810867406650810251953992454852233521768753341510384952545432235100384196544326396083157168104697196669800418247318408296923694713499279619041315129575364287472178878644549305004288878143883173344098855477619266629079342488374785066359772967424845042962077493315128059539791993007886212250204811967341775117094551733340018498579234851699760242812084540523789688621445316647141613159620730284626183489327583558169742902961890963562168182265153755573412523675845990026246519580060800569019451820993341566733632510345495633209583557204283986652542617729180757999160573085732289630256617406118026507693903175429336507580771402522178227876713993154357102135416314043534573760603694617448766854659536656281993995016403127401181494918093381681548025645714440552941282165406422894293002498121802123461223641514663935150540425951800922963548095041868090343621189600601357158114914236576037670919039109374099036250083412912342491168752836088616523314083250214617792911714387377566410919882183546927962518206725501143763188388206719058044647819711105533042137122845617789354472777427158508132197115575917114037193224307032600240418620213469302211868009527052543255831900893886366876757619080260973411412156722971356562879806216250198424042702677129047873021464141067276416383085112578221342973786603444769513331101849150792893951022815518045702194088996798444205464467154934294084594455809852868033558888453107906666526493540929890726113692799330257513750308385832414494700069909667739280864066047042345332617627642781604361029381014060249526390911077288038746219408993689134745978158753209929944128728782662217193306330051039992428746178287804549615553762314253035208619487171175232130067570766489196080853217536384158937636791691592176999447773542174400777699729596679969411976916556919795465429880421737225599624906982281450138753782995212013835627146540676697081771858000963207648414967068466868341758846127604495167467343624593774965060412840117961431976582072765162821142892620558330138957493177197642820194739581662300123592827232974336562898692720136060869193225154717795684064410391381662234428663804944016320628522064796382207107354920501103070090009153086053276695277447114602298083355533134316076888614303961208573850043572788486290786411723252914888342581927697478002755220247615684695476236407842699022886266494325829033413909888909829651858793742088165682447863822977910023896272892683848417907705031654731852810943428130527137117056512627264622050522922001452284830720954259095960592762647636658716890562236196565597500575443570306709582469593935606350174545346860505881300255910048082525979084915472360466895711864732368790656356017627624062163355283646415641864962532969837169953093701022775270351241630849767755257460911406336849214404920361536248967532760037491546959316596768520489922462091553770883198530041682468200611104974501907098578277994393958464773565004537061161177011079110888935543534173574828587676984801209983959799901286547715460813477883452467199418274388655176672996695279542987111606697633526752890089110735911923990513459813850265519640070839902269828483098010941472010794671233683114708329225002881772734981152063677441838071989061861853897318089342453931041631852950550174316607194271978423699434656247044339308778400013106049657247221579894869234561889647032768077748067028593774725321690224563986784833736003128726288037236717902032197600382489226940472143672106161476843556408090283090723897538883743130479715221379614100801121893719853361771089293987772810426704708039348714404016211258747031760280255152013306265270042095598626861025440670113526697543584561045729969481504920527179743373818343101545629521622860890031514185611302254756519056426501158200295194289962273107687872543456950141239104191558491464916552919481265112307000851926060292021793025164002515279991609992935109579788364913966200968237958558848962623479482201350220794499142592896443737080381730967617429101145954661360905907422610754564046816767042235566766533557575679791580478054235596538990542247195710154085641252094262707485554373520797977604379600818286453105049745924090145092101944269826070422831995426297770050894016054029180057666751394761224248441872833148449894929168671999698271298964493934940624335479140285927380535234119469531961838947356569079194927326514882912386582302428995843080477375536280820678260631530708094104009035801917517043620603435142766302155407227307073912904881549219408133551982667762086014986122233124462384285288156948481655722385314650891822588772369047613128635056123392661132525071834361670238039092634071990207620114330138705658775984653817714613152294328421357554795437383838455609116572949258787426211368088217077499310158365458651336311597234046320816993442522758437772780056447413880762348150754852389700489289812291770044700693709421760623339895015745400215773232625440827528173257755201915573072151467575467358471582326314031693074681007241076667519802344338113611300827229953294919897412893368475835318515707511393865844647286448820644960606708320246153573223642848697073227862804306243140690186678005547780147629945494490686010961266457361900820047741575549070412998903949556229888045039351572686921200742625542781686177054031202966557146859698158678369259282615315462113801298180271267242642060509982219053717976729054572173930111213845925534915397506146482909379166015065872446976386840212156541003253734481700810582179868449077555789320379227533663788328743128963696936751290913692347342083455537650425297828163672144200012532245092140271773649793119163508376482890846368600408686703626350237178359914268933715094788508424093302266839255325536168457569780845817010903302502470180492485991654913737588416871179152238846454505010719889394051818473480282739542432680893024997185530892401284558545846865231936523679893838186373891212598274040733090710304124629796066255491094499950317049924071296645687874908132419281784544853093034403959060788751325946804845391864231939827471310947677876031050966411737317819141310558825724576549874258203513331156726948937569417557042746215974764945805054841236511913249422261513932410462268093272207889045269022777087025711925328272941004172996974054928094410388552526943838277233914011268827490051050819029665218829245372993728335764050581419901637958817315954389208822817228960987260309111468912874971631426391403747963510917312796749261034418698970554446790124825404855047416524722558375669393885021418532689211843673992991145827587284992388210636563961269243271240875712468915397406285332976527394367178278844688087632912509915429190850450898861525721927140727090896460562822998075242191559332157068269224236110897611087841198179046989959890323075494296412115594887198673090096404190455819610106801724238860268321567391025226628673941079825997509373696322561026207955820197247149151150717555336700734990412005943311055226908137676652227907703193349166904670703507872151627008306426266538494336550103126858863637239074913996958672752143746329349351409250578464455392572471543889286359839946694911802517954502788962675460625001890262943022981034992068507325115162946000340805154747437835067331675091483107008401449261785235960789590180170338654894543854912166548429506202436270327464296336338512570540335750172016177947795962428499924009704730986080818189842765409296848553403562837351144973873279473765716032977530623422695510134426461678164574635227339356156060555688922801734010763893395767393761815466642675114191702263706416671996185119682967005140008195532536785532086253036949483559654224531279984696129595192930780320567241171170788696383917407142941000929740615977161799191427574536103907719217227365053595683572176198008517458315859881208217452057486326462752997861345554564610720858788021851390456581036040751528865145046088525695606151182020441814960388696393531886809926304940711967775334702744726372555127418905952313544524007906042333343479311303469531138548799106013693104461271304441321221299506023866271470294775319882864746393046820354942865647773663746578470477598220725732593862836994661318617755915384675083359811580745300430674480386247438965132632889507482342366470326790698760601233864248508207072191258642349962057176711317499433288733525976282552265720124500570986104110481011920814432435643136553375212942378595827910870008272622075439197661277945677378730240074989322549523288431462536788131783542505013665081077664078097719858700558101001369031825872659846633206199646810044036009931533600123888665955100861032178141373022345907060049062887134820217870692184330113643917832693110644384473678168641676169050480137022071662516848772232830140630220198572086751219673286636511755817495660755013030521896065151436137103302415076214320375263327881697500468508627032304654749639220741296428915369621569440383873462795525259198580765303850538980517331042412286788893758998347228104135371503654313078753328537145813496939688363558191043889326823483593549258000879771412429126661741904622556789493149232091612123895472595762592187990368056209296498213037607535152534569226818613612734176122181560053948123452583233129964618492161294687734710100386100663374282019696899060692890694310641882853167104903103509083921055339456033755728449114173321059962994322663270911258493945543473184481613812278368793332779386292974863983557848288266985221052497185918900664774663793134799623236704286139321333748057333965130569363469784983660172565186474098243318952135471730592059995691811387200291416298945268262006299457264482195103189767491257090419351985882236689733062386808231214897835279446127199901956777443590348937259130720070037385598881597917335429084668974677572870336780781111531868565410006731896546962511341267236053451852754391392607644644863108942806278398455521510096137410098780545987543681488465368263360438577235784169950302459914737068935353464512842394717662570426949138668263189476907762210390943334983479783449321451104136474943692906636988896874898863568645132572950556033206095590862770598100209549502639748451676462152280531938750767902081782894518723219577430344033322682904993466383452110451361618001315287864321330472352610865654368193573883221998812914268716182379506522993439910019669760584696461339146423050776217149402495868135617740292131530015170703834769869049179286259943019937982914635365843903363088763193336319062590607770391777922503699077757439583324133342873731755514466182458098813055759336951497405040076984156395591973889726380369404613878099526930705881938483401270641242811029987157251591302107653866486861481817412990413233198459164208196464098745299314674251796632975314316589240403946070872984118317664489268739278499205203402979777614827914536698263893841079774533994195186282425244940585998645715063325483320421747184843552786835212384653558185241236598787722075445346754777509706899841562172854676585801833170821703236967876360187532934513799482169025031993414602494679895127626772406400201604451074285835038527463475465949392883226221180120499099543408408624921134218989688263503195198162173832026372266359605067765014282004344929047281593402357819844935859434087063375773377874970790398658355998413467047978434983855271163338675031510481506632260927942597828203811448211107390184942906900802657161832058631517944344289409248995293188457206654555906994841395343437118072674076815242479966537811109601007131844386251583541463907238051855418006077575960528728089299720313714856986212854074265428799846758540838336978199546345269594433863854574562621080419281702445942695236260598391017847390407680442397980487797938615409110243908085191695940764146724053581443102621634492509189148468144334108903374515887691073498144864150217727460698131001902891698847967107060148941954978072844634633211207242453192373532447883901931268589432491271725405414755243308534652787059771086028413467050452738773137762962525838614506799896219273546966746467889313523563857250556158615840591862103677539972190178390919471434105714700307965440457079452111545179427621405990857461850998174543245871919104742345327605538222572851933769064045457415929615728827398446482443240746442982052225382139611540269822578666590694402944753745804091180205372748903278158078476728669782979920296187069533635015206951000060406426776298976563066110864602614448336252147429989168152015941805325045637391213901922928176460470234317437188804080767159604694192734131480061611129877245814441431034438878092272110524804016510626362704251817633920192227965192578856199813610855108541394300271893319134140061955467672341273542293805548284037182813371660544797465395648614204798604701398829065274813552140750524733604967355019640685513107322082652378427830063424643241521248887138081457177073395414163268660249962960958538931977414415189871386782348130666429858933499067791724708809516982304182350404171932145445574696413572772543865293050888571252777049199515518157355490149245437596559989829966295508643405423433468817139822070320780543254243061481501818182648761795541489302232982879910804877304079975950824171234477628513292079305298573704711692302496969677214518322266108438266761952982758221275383743855555807681875414213853874651174527239782363688691903958950496757670965248638291844475115674684791722722357264475344850765716940984448480421056338720403047387776378894054472381490210873518377086286021138006749541994805622229161579141365851060997357157757124980023306761302945711915841730909751590451559335430965569331690253705938315346618577542506603239711580892236536316249280521662019394824397594831887545305474202624645938070026424887375042260387539712979214642279522487762389411850552514619554203601693537605769240374938721021283983867535966681884868517399340471009584550526972661286753169534846426798107302365027289316578638191163774149347210264205833517621300742007511685237313714279534905980232821348785775081412391391705123107323504824609739246342276157899182015323929179942719983492449061444081619879051359133171457026776860609140243232428288546620527649348007657562478573877667291604401403329653256454606921282394967385703543752047140667100709567991876646120228480516998251964882181937502569676357226650369882813891595059344777959327229522839218617499575143125724548673421749492313843111068025642152868315000068429903135498995775122332291140755030723521638058118551059834088535099984633041406714262142221271779867600693729635368989775364979145965505767786724252460463647434387699562032106604005498484219673142387962750794216914954480908034162831619444150155393268054245457241100069619816523032910228754605929033552801191427612335561689359086966684173776321537914813465487443384555331354138589257947224823292076678503040742850533361807197650737073522910418275328622956935965117966696488492945858811120844529060680334755397691997856782714724674112321126729239212483889089269710945429980823216823401951913204922715795309051979336155614093940452321406059943954869218146394816408146599281897603527302852905485851088204813221538967357309423898653883257238493582412022007031342717939216883971576291069635716609587354225046870147268882942165732715416171158118525072191480168838856937332682915339623511664116311889518679696521739676393523993946116287629153310094477372004716724419126721293971989633996352816841398078534945792149036005096802172242148900064276093717844343394658589129645331046573731428940363166188557065261108573907242516639397227084907463983086543931796352520567839199143324946180965866586771912939845199518151031049627606533625341823078111533648487457819533081089151546257015614396441387748614700850200291901218642613851939486204881027516668312340642653904235015935241004639434456767304964320467726214623673576755442621339476371981191508142672374246568900912765923940182141960793966206240968431583909643093996319188549613505773822353455629539962418324082913293800990421246575628963440758629697227494954287631820906289683327560522129671725146143219442747925061741357127844492596473112641257612648743626495457747530031518741643070097160032927767692334641152259457579839261931974557643051460461412916632896357356883031046415265901729834338988686930529317726710963149173172631456756237495284276428917484197700221657201349095321820416693236617752460659982399331303338949429531724985894782058440741990990985829550672747652676074065765890353644505870056131308727700752293046023958210808651454556575176057699640907982288073989264813628561516937604944989145063616001732817552257114558992262949085647731732230230296451571040639086368491060353430560876665561956041758004366891741354917288483994809165085323054531648991522852288359861563386713742590038596348691644972784825109799654249595830831523036392627241976567600292860721137983105733460440522444394442789338759115095762869676003424241346725127363312518652408586448632715992354398172528038875228414636369157282832933160273757791870854095125801012618517278020202819917385064403295063416897026889422513109328551793750448095278421493139764514452810275528507610902814648688936189094829584380924152428721296466016033375566485413422571586603247376414860485051896718045184482213958044211425036893876828483370269740071313546409439427089642325176025549731726588015119957040701068373160896498215948223621898415539103812840106537017139503756819518941384921264380072535540555575646646840051429298778220849327807727016601074686784320147263668072033678501926450705044725680975399624186902764881143558171002846484859768577137665251806204521813403513143461598502323446431716215307996518337237238131917940018137299790539507593093125915109226742624603480061092770172543276303164253679409168661116267090320902469738303143877018752848547322844456846083950378265577867018899697648729435225214940633418122255656709409778391048989184344986013610540407015107169132050624889415457073581379539516735907140982390215007663788424828196002772832956210557812119753309472581770494517268334841931793944085134611555851990777845264663245029521623531157802221118220634557209168042147618115692574019683786006857784122458208902152622020673277430458167571872216361220897545812137966213617200175785467166509627767272230458949249522012107990479983087470174904040053710151962158923571513476844009740570756465241518839507003638995081224063084220402510228065252983038777298536809654987812704641290210773069323381046598822213658621507493830294255479560298877781745864852171073700190349212365127637934833458871769812741887969387066018021090632344529057678000913223268365732903454270627595662303275724737644082554202512965296926464666283542452405877700220383466674469936453080973947614956828067626265842356308751850203231166697142129027024295658107106621372975564269034093321270876766561702261252140466218008622469174344497583820002579527963075509550173720582771190509413418211829978818459910099694314438030529105276718849072664685672683391531596477151632052441196207678853790181340999046804334856807834196378737741580663593116423883814557218080385722485617543091026820609979782653033230022635055300361748361831137835029817267263261459401088170245217378100450040405047755122869066676905162942033082889198197633151332695038522838326743188374360185037281668224302722028701549369520526231033018509992213274214584206555642998911230254572962710461616241410025865926097855091987795494458843948818487088745558115539774006670579147346193694766039467466114283660019635295086102507608450557370094532141675582054279472553650740110572310077799269916268230865213150339718276473516287621067950180494613067224601379577952445971332201859024451577933680904294425351126550033198989831977170590678341366520341875259061907868207662934293239324774747955803328654282406541070781187039593060875687604034232913405243569539542725182007175948220312168467804820562687451424708840324345143353798040956565304972252464116708642688987520677537381035862682758237635351330136540998682707574731806566477157394384346705386910875810559629618268576926301789232951186235488850663510298443257661284482835640851777503936253820660857925029880988235535919368848765134177492510202157554834897830035973704323558723794952079154495316907952197830029445492333916198660338886920362863875340858253883949852523081659348193316077257994960937633994762745004066321972325145889743789264153579510107711509885165440049535789954951084928270439023023423388177153053835421985818462820231688848833053568803633483299035144734159485964798117366431391869745868979269613074435706631668566997060911924534113682176027056094986965474661802141959782470912504621648633860648435730823584329057864378818311527288140093835949841558450024991100518379493733691295729995068181933821575706667852733629921811080787062248002523148250499800954027678277167949254917578698979014043891351504546847162260312810394984332689625639167947576043383644569292284510088413872267562655035877575008668932488255314348019970963651036276544583458545230924535394232196397046385956206568865632878687698177302910537768836528098488042663577760378911207440176591074210060006970773341192179565667526993909976745419810393823800206392739402027847048349635040576359661631789483034970042832984218416298653884764538045592860272124001426685314368999258754518673988690310932908979053138393620335084013645217220224152593365517885829776189267874910406984066585090170849871871058851910080299695043268292487696529624481362059199405476275979873598947537977726914172986223613519015918942971972451268618614174174465928976641866589521835362457828997016857504075880314582266687037178066054885927992559045735582339001098379461423118582857307969649854971783368374560013542789831503177949084261034070583274115807488307223133073565623867134756622050238510590999792525755593081295016035923257406865191259759583989159958697708257401519915365429607492035580076683050297111393181532726218533059984227865986636616438690484181449777857826782797888534141905632242567910962425482395193451980246832040440334030841700750791148248603223749690828628649121144003321590506901237312624205867166676434321071973289097221355860658321984619330609414498365456404918614810406216544922616916787983777547513235518301893629950379967284136193116570297493014962008650712245103505135909460858404931488990921421822474372021724949111287196961889356048356580438034926014471913264561590603201580549677425995559409776162940248527372527630779834881235053081912237787683752867357129358722795663234836481581798149801700412875171798795287631234052341506919621442848798038442885871432011627883578429302854763724083167406393511450138533198644304159686709480231878499329856950299515608131586132608675555095379704443495651635934973293770367043901530878430218872052802106703592940495401393412982014096071199561507592074779606796110707163802508488742197051346668933272059718866039568984353243016961675697940115533955872541781128518540199980889599735404150752431267200928159153249004564404521402759691038323907418587605820007424796855526362773852647594957289844046554261933030005267087703212439845366484832371914542334829955864039130538844787883245277750997989377756130186715702685031718328081079271681758643586175952061664761655555184488761339885434696812471065611442140649586148574087707786818901636763065922193852914775701148012453771418128087900703916789281276370397162828972238003303998122417627048430878446752017446062666282513663546740983910333491203068668657503163926230580517453834504646753133425832492177977649027709445687836073071108284495024699421782869858847916818615161042327695727410441706246696275167537721917247869862545457031001886127237689884446210055485380328172607481896668624282616994898462954738335351101146302380522337669846068476776166581457380527384808528083836203282713649375104544822911200636535692678238591747164122680435350812182630399525181210296213202857625975881795392111073764417792055301243410655335005373911353939741954031307568865164924072149355501206089447590946678806500948391933404496874752134736941225084761994933560104551402738176994016864900715191474917330659528441597337562356330613564220435400165810793326176992146587416424384595432074594037504038727945128403583872845182452546412782828223448699158973113446452563101703384567057085563184015566275137854804825379478983567990830556036422169077766798401316753496038395547132973399001269207360900303264140158527436674290145505620141781575777078731630488522929766099195397568782867931516447938174075062703097551753720012487141407288091303118122896757794237741111361872902252524309945200891906946902674194765223488934515291378900653513247666349735029442576575229667956551237344875234978460149700105466778354198100609783484984569767509402185226831811424097912594001914492068961640221171510995396164226911579180820416009962668023016205479241211368474451145910428237127590999547555101889989089777570626368554316335886315893435149227776914783996632623051036218778394327214055956547124776369935441385757789006534528503801921112590118253386207889122963666381071400949086662409236244126685801385120556032247876296054234160638644580922766321444744095141586711497711294734634014829199929793561585618142472175562745789140903102687442220611039391050943780560998388507908981045531240141454792206496935094478852187551121380878989537132992479072714683819293423116757841152107101659926489665910134730035617217615557383891703274943741269344320218804116293177701108559658034063945847987677683178033447198061019417058216392232998794206833278540619736743865709364064803074511332029805636347019384742401535000210337487954599237019394120740022475147694988201216626762978940302566983737254989236113471112927873124256151047858152027953955419187531021305373707228978435141778835891684185504909609645252154547926361772834078563599430815801800705842572590601308800000945130035692728106219777620551530204789919031541787176179851331578734640030828381709168734178502343725651736269165249315863675321610179298604725857908705710244564922878505506497780771010082419498767184519655701367857826875414569529859896591357774860079922512616567240929522525648800098644222432398050933982746183226980941929447174301617924346666046286470822801025476248922049337908531195104144493370049707262183484445170412966749957879641025575649691462039614336488740593592513127865311458018041223696067301166787455923161453924851539488546438999280956221336015519882187939802256335244202658025041996901784565120065342561956801236670271623742242090862273953309348518649108461352593678771943040852233881789221351320680222388549009423068076737163245700983524771788493474367616218654249340890904068647346657825719531918526224815611509822728489659621444938569195010989848880369966508411361807120796129070206683763156459155029314482523482447196264927173868889295602400262520029041001703714430481932482892563650688090892992108897592062053904781697817968795408251710851836970756730695222132871649424154552467860070752347335706596743247695635800516389429500129644128070986694967659850326628784055858853057315159195376008408149402952405053483961047578727316427138767502342212315427398745861165480368361750595140047878349139597784143646377179548921783386316209934029623441841275724203473676993291589180709860817220852039048764110035859300230780955684601954070873376081117779527552227214040529020279879419520918163723010326314704825580475097829573973618318838617196222376808269239447906582213162356896452256162022135351331977264170019811202306016733102592093962808639706533868601663392615753364128202443772199222831789798322576724635844557496923789774404895735857756281687315560465802072906936218897166266628240040660630507273779010581484334188591133705114032975906842553172008040215376253390890820175734981984945785418313921027139172047253104636903579919287255497638606908837279646406862564504383961739294895606123185887011566921942192840726521525931516499668562106187832597453434573693968309380051185984085858038397775339783878029538494403627721440310817824867872611087001555244518577329365430191781855365496922355308789962141770437104412268533881659713766464818165254547903113244230729175680876577108048177656605059720663415843614067670084374148315299633159435437457615853157676806023490196676803427035817869272350581453065564100765064729129649489722884034199270260871298315779726732981681615168173567449672144714802668050579933818399601244933653959533556121348981610194722254858711365051398374365109454022423471585645402625859618135118850748879500575435680974995027036156741667648272627488626498508145033914815351079878687734853224700782550269822628807510976703071130619836574928771548827461371608909708520085847950408621474189890640330941929881969426916554699499337639457491879235431315639299851897313773037925562401673257750409473903042617809099013298736134569270877647585429946363770337480541439359521914383815002353455680942699733542187471797278538824990601221251914490751075985726655720019979282375152848693862585008421936850083859391080717166118398823065753956972592526389127734510209363161561448352962451926158899575812680495712705448282986103436115996698434271997225197826500645710757962826789982377842731892061156719610454896861691909575206101121435233064704451646553264814559275492995962043258070585898495942694400247128008462381633330950277660588506768221527878852161366781096807367187304025479824100080723292915196641405661072095113390258611782837154187428154735147895970631948596716187041220334371138452001899928437923690786810843278498648224692482138422867616788645852061197264439172283995045381335221620338197149911245500279937085419654455475149498106414240441220959625971953854289657544555036616080756757772968729520304257621263203102393484510833935586725900858484617918304020644169759300220089508235066486059783948629743492729994732663492743548500867332126804141230366218328263261814624414342563444500921047156369181761913424767603531442467074528570289453191803174105867626932716146838019123341956609936291210885457637051066657925106010090853905265414048048277843766530421710781718023598546814747389638991726842017584670201691989498911814486354967620566391449973648482926110180373758714423014080704804685311528297681578393943455047764610699645152443910734606884527091649982284254438015120808193781471640751079443052456005339226708336786520564194532936059705805698820863976784140664744944142948997562059141451058787804368003771706750311640533898959502151225689270194717529335330486356360739801375833163541405759199817436320842924652061049282523643293279553735250729572028851213338330172246401362271893022384327950414940141692682650361969449536045753028247581145943249574966921242253505130230529702372310503039487259429236385551062177800998437189048059530197479048709116011238489842243971027865582959890611671124973564926145386990712959415377809013474810100703925949336831343526037168895518207687389371935329068901383948609968540638552997575457592318398825265359710676574022533026855429059192207224586188319210476387639136866328881510187916982323182919505258772461356927322000174483715876496487087096287100653666366881611136644091600939865100983336572529515447238216678539230148897465319981094981693569773651939186464798982757997126164379447397340921503941375317869832245479320785545152333418411351609769301024687523127931268620735103534226881496657043020840246267163176221520060204354760598194313362128091347818467977316312406995468891553984515280203084725127083946577794069242120061631848630447413906284661335195716423581932234027944007103783332367818801859647049156039306880587303377285142610753237701098362794124481301186696408553758928902243398852217780061776433340722322022126034878735602959984844647640557078417084056822692762821618185240389216092645438440951490874592287663761521831778801397460444156937589123987560032118296398748228977882233232804028010524603854939789253021919712915958919987810790658742448309931781705776736996452577647505296235072394003534090244604114995012301382310137840190611285579795554272488899463794338495171169121462088042188175357744606114033298768643195065886250075985777476160866986254271475891992364509340857801216881162610221435349722783520484273779071075667564489244965263479507095701922201776428913466382624771214780832268296086947997111249541155148332733053239944360546344631708800893793422502651254987085950209143838212112802518279337386470720833675530373056415210998725374495306526583353174935596120532603070693410580782093872897595001794087714043150574279237667466839600672317125460637357316538629450023446239367891539609061696141782089527997531648226215485520716852896417117583045529064599613990312259641163258928270529211754651967857097429480089175836403933285370317149173699524956554301308127241316025184232820370318105283028457576225045519039053460737121527597635381881605307020199863243166833299849272864895512336003062865163053407870601368780367548352113143371079578750218267494469073212935271688830579135292113944891009826325722650961660785976865839246816652936655046864360565165356713805443093494082597466007373029453822307194831427522542980558942918604864311659663649549001928474142873696750831304819950370215009414655093869585961622406606252915208158546119876361822028046004058195165820420140562662737450446505581400933818780924601340060395076335365837994414078035050355083049912189292116201287194592225658812049835281063636658469922074921893423562128155265601068684452554651988147487811465345665396156461946206217406841546718368013212890902326329674909373223271728361473866971611932180318580039250886135200736793679430259472467861877031004969465517425733102084706117280287670384312782860386525219044134627934775785072164685964817079149188327268524373547721864191670172748010033270611805945586126576756589620178147934902858296311035893141314207439378046953741717450255822017238975392286092972688602592305604426332218749630822810118374851525846902826171041627773969434556789496965299879683641135244260849484672251595019097738216373806806184106742107534497792489901784781167039260677305356491324254190631023317764468357433617584992862378730571614504804693433123714350750800092027045420022236682504481627878737474186938822094696449712064607978419746204158382748857575253654351995723519200412660246215286506148707151952512346051923473391449938214872403068473669749504816370907645997064873350879804708532052631560093586519112945238923267008958164249146944705827004921937527913267008594189958297313163300112672602747074537816229202522936547599777081923483879065683451656385911939411212539713444312133634671268398767737750380217270213348522948017456091108264841048485155493332207256353451910725875871080805773416897504935982383234510626268714540967901895768990684223644852890078059633935479012676786945562253316615869539214667798760551347344871421597915376371144315456386858721704181137693229035671990320983886861396869242482261909212094209505586843057169761577068941218085014743400990889620045916121093781234699373337942946594376870174720970485053426874553025985971706928625351409722002991361077684256168688295154325708903528568299742957670593421647153970255196948024862024216396594332002570235492629146677725196710682085127862837543240689922832935823313191495597437318598374885922694587107570286902172943539275084213350953633220329106190219271081300621977371745500712563267958991226786493872747112770775300323692299844131246532075684250495855501419375283231139297479298508704410091383152073209995441038878443073253599277378214844496989351749014685313039334705191431001897242215531454711540835573578754463337781926582459875922290069200029247053856283024882204725813019938235573922154587084231725015971979599206517506304698624224379724391601258951188840009094924907458711496066010326814135576917118004224278555784319127649622740477192434795844840746651757270087591137042783538677140853038359583590753022597610181643093142943641966182397971790610397824358540527228975082654392121209412667775141416139860898534732732853013473468968676714119982119803388503840699088196557735942267122582646891305217134649684146263248024471896166788803534915906485109582305115252979325400425254570717593563817410339330809473380233736928574077280464924444527648358807939145933520754031753287448914916140394800116267686470004807516458284435830275017519791871902638196230854933503340783360045604880230795361798118006598743447197180425265131490372284069778464090560194080166919770279922608292724498105248431076836577068248727002463715431963014941393471181676048619168567079083108939659619449947487269489781167904356932271564799758766020831576960123809139907544363473804863947185116356045717619182409295399852745677490750210315178012020175678168157093491411024642735263409992911442559817140086000202150762474813661203689971057086819713967922070021727328787868951592131264806322172309505333405194361081371177063255532499058961528546917660588913880812080707716343267575061096944342417459790629769996747079260799928676557821898632562318668021803823232050302312450291722273457549512239109046012019493153630939024982491592977047536874007287276243888563387250075279072802832193194761465667957387402229780869364364671531046968457593874164225452180629916149839194278414566339786162871259219010406063583670815724126436193644018462035040429194942284714364602510257050426535291142403326328099944662690913159904333883822205919208185958322988907782457226009562118111921358082917417682282354607439102253022121063628633100483354423635357501819849112183339202332544637859154484060600222057201112817021910609267618901748689757162133909816428272153497519951096418761045594258878538587702058043472473949034407811588670515816937138468614525357435416871233410504107787869131574913055068970042270208717940236322233697830091828399347779995679565773828179116674928274282984093846451156481428570043537773053782989250769001098137404074266184780094572470575392922693196373181473658277311563518180122925923422489745220983285622521196853251749659866159016476896357139596203102838275859263132545469206055539062855187603920116203051561552695342327468650364041226080456937879618176553185782840615646435100474409065568169831832599999115462458682125383413031048857609843481649236058043714909954651757877701974659492912812202454206632729318650803285656475417674159106705845923516005188851804082359901618713831219050559008444548081931940348501455331252781510541326869568102151499927377979265423839822536767557515737616738612539797576271094935496184825481757687300050492995408033313495925471363443862281306005989744889956690587311433099640236749100062240268298423040081075322684333535865345323116879649545889851584518025696915432603576836659838036215057877115032626695076061526774751893626563309158623831992012577600251088803049790084467043229853038165535488189447558844243045210419038897945154123564161882768927166157283244183300093971885143217750784696355674800422463487990898872071661309160163350407060760556446382813643756951468849942065936993846624568596560481284606917937232254723986695017905875416292517971674948831785998428294677275718690567321411361697177724077439819796949596499070054793951448254816295667860064183428228536428272552438236895231707232202764546673032132528279753180909034697492042673219111742582698598587385728713183640195598575508133765682729775079242961713147457806427958823499287056774911465934336931847316765932823718678029734723337060097853790432992385172331829899329094761747435319487834398789129319891940356888553494691093675531236426577011938802052444507319419092535187572273084224821152470784342504100176046861194193972718846163913710687583699146219160701289636266655013851053466092411921548436474067355480160614880614844420137320474750083619153587929005299316143760203497461229461724615767288798902749271757710401773353737241750505615965067177601396707435988072425102830422094031602054930038657612527807546617497569963321779930896317235587735263441754763300067545655648056422854943471098984881073350610925861426578493459609254343150218931523419264375730731715681601045652882279304972576611947647128231104767373584790252826428444937577182411166550515852506179730598277842101492525033763142895885299171370136912379877661537294322097647504335587555558370237010256588683092953115190638220683024542635902005430054982711114025988128417429094495191688642137118447685308042892795148539367809706630874286753539284318811745856500483179292587449410330153754681195320589174134626933392192658662014262383922290977026360428834817619623244575968824653351799848923851562175707632972642103501276140070544534681834390734472055092117066331403716278881783271764259384639135465396038869803610608769263510648280283572807798746235567889732306388147202461496020672740960557180108119626198310454991930934242892826426333751878451622795491748615310605037786179316357756562718056855734472486720185332968398299204068095897421210811598409536030825704922416456405886076005727856379848962703083209831666583357286579784324661549705988211192770667851522485332135533483424871668077879956449857462703706099399142904887070837569161491843904100350022398440410474090320716650107654719303176888557879735451920128955959748832588275087728647059786930947905007556308857740281990235588157158073880142458020837496504013732860335207024430770359934488200510780224489248902466966484087509965823601343706586250255483628760053770301452447157119632310206035290458406913015173646843368573939867539826337550603319135313728191439302640643253792482156216136407373986590647199920905714073793588621531262304744768703481269604734850989627531203953029382621078438652934730629903608701357328384704523605404482336026697828810645088464948205178811147167928055516779494407075438929716302295268250245715833027503121645625080453549781348411371675961258992667592529899780637204888009214331205507707945204796678683162380268393325413548691848901803127439976768681418478717954477103277699954217700705357117959412166717497128565248708378468639562931383513284893192263045339784006179547822224075585996384607878757553746776015843041240329669208643409944399977341911974532241030078791738266685597763482933144619804029552612125090690605629108970310931109837053318625325659529993677064926992889900099214027790270389713244098403489031131372914923071342878345830909257598885437051732689185878975660603082591224391508946647477184604740746512650558589196370517309718314567252361185844191954830413227705375050289547206888422876585027971465870707683401382863019807498546249329431145056169647504195532591206090191086812015300382588227662333105137376034272443290514052876055381628990549690602229554189629547031945596914033105391684132221689139558228544271047885681817157526453794786992365843873550307677894058385799283253400544006169318425812107688792366220058447615542182923884734593957340448015448935750223982110801147230876742166121721956855982620994375238522619150768931891115823814891991553870884304331244203388788866509605964976667263188522318009438213629383042799441201925177985800181791784126451634472145950323898113672676371915644733640964837570378680234499013439879316532874490486699648163623919884814244933347426445512911115395023878374724484393660267543179890200136847665048164073985234943037252550556001248750280556712128518578605581307418200325166112015107509586658670562377745365053724576489274510104520197866352749841314218334030752573758110992194427137791767111659362097691343816742632334155684071306270578409070382834303012927228042353291631853981632896876733288113556132135513081736381275319120861875384151252043585349054969263973655194072191736429688477772972207959143977404716016731205766007672632300627713324816363840537596033069726052262885234835382222098643697781726118929436403254268890902487189224732463201589263080327605422184438817384543869300670319843563006738757549176087369986971813856676224799319442950327459362467503459753666586218833730061734126263152816595548583524861549517675835660171414464101326023955408987222520049973754752152780635178379472392538621560555023459472982657842784905874219661614252931413275058075887222399875072895824445657484608316524704786472679031121006576149877901288505274206591340591688578013138376540356892978840108655571641318179010659543774847371946179489800426375572002993271495326391306172912429668165950452516189511857477048349481013615092172506144893582046795094237376011126914355401470253467749841329943035186532238490734050780855538283419313877227161348670103144682104863233823333529658102640860561124937933903607927988404281783401898632821892427284457839849783117216582714625385686066801147882030220866098889498845954071846014887710177617692034549574838483284051303418291750091103055097399052572330106018947745574153971700117656238909673412890657182399131166261535407034548452646322606541082546594766520324025851605169777571594018819195690222052052802855429199845946539205419763845393259315686132056750056246695233428673568406996857207010680652774929158824007790441505368936657640887643548935931075671936019727252313213082638092444518991208572470447541289870985321658843947104583783687040838170290247568810347651688670079345131207696027455813552742686506234844194046779451143793485568515303857779438086911369856695874694101087827302303734504454010104099909074807711913044747592317176536476987327313496727007816993650863069459623584623846758165075307517874651144240471184849589900376879210781109507307119592012910079335322509555989331172924636954514868302710598943682682376129790419493178945568884836824165132452992987916444960227358755827181119979168860438849571980240127140949741428078423391194990744176729554821465213658002350949501633392952502707034790841695673352835690166278541217678376804329458283203465818783040552232535160060598150227675029122577121988512988896064779167553931895492756624073908888037323379434997456669322083069397816978616332259052788299783541609470048043292602858732686269810301848153500788005624756053958232520382102467200917370585593293750330699967674838189987960753353234732580812957156005572758059731549188773197681388128302002967264879753075960048338378652039440221570908429703274633659817082257915357231198667970139406543963065387656088312279735636134551366799573024234965288732965540566386516087077981945326120475209585203197619644214720049782609010188568605698991558933676993916279096962341511367142258268315026272329236270145342202788510025965615987415586783399305065850693278970121417911444346593209500823954297828488995909956920365995189432547244817087410674144696372089561966046123327875049690019135589608384151867724812861977778878173247109796485054157795410922116731951561504938007335317431514955537444075079825106969994161667799158998483643093066655715213308236581397081152979759713099519183961553506137296543193425053028374014056199123945402213743767459863116360230494478797389618692123047916985478402997037080497649063243028679011886914197789142233250704836272363572251513901871672290909132681087774535058812394440460937130110770426479541914678994432245890800817387928584230248260187518649651178364367111031827934639686017293630005420433718953166582310132019292941845796563535335097749148255594249832224426335695859928176618716980620181135275618409029248953480191252149993259108491329389354264316713736811641733365747178364635910989014675745517480701303729444636715837561098903174223143945454343460471308328353707359486547457923259211164645117306501711965014609434342325367647426682047523500284505410266086451860876968203048846006587436906500446183532467019940923590248254049663843768884793718847201673951939571790031389640362592582349022929158554908924844923842862187521280302546616273570097784137494295621228909915234290166749422281221523687126459047629079834281177594391241064768763314075537347466333027168027830164169894383484129773817962998964316230260893115147787030845165265230150246639348349421096376088340433622676508084359918248486185901180217387119014857509942092888837069991335374501277100289651526008218806063277874967675556967326218039896104591301664091710000891778221969623814081412005479123040554652273492479468673814096299824486801065746214627097135167722603232380904638370167796400893694000434623621313531178491071835085558780040092841757495027738762466757900248766692463944998790849119687051191654091413690911858217735203552218205645073673018158486301511319888323578010109417289657471628822143198356039484203065039375146270262098240822524664045774327374006814489341748532297612620114701722513244217048293863812034282976660095795518613147479633001887599444995378996242482827816987475798014076103337993437877106750844284406638847381130766862702599027356106342543816997852021327440557755557267182787968251190233921180233531685709011313763429464060225955437847796466823630921890590765836055746128706147966359165304035654880728908570120034929497896972213243303009468418241799041001628415362314162424914817998919572038856386067816093330857154851683462944316811231094569252972873836042834114388241326357659238536836671529187361114540807540484947682344567912573087203436862843444557388325861747699604977915430633283230870577612013361801129087600081408185129527684816466274484124383870964834558972773320882341496465728267297977842394784975615097126393510212625795698788338143759224179789198834821553544453452359243961390361403679379119861513653489740808513314570865976268769346573924215332098811887364876626675156926951117770307927331598399212735450105071976464546775123464323523158209986163749565486924954765179847865097050644641593405416450506924913483863483653930855605001433717265261136117093015407349124504326938640285278818982265444884093930271425629156338357725552022886972163798300693296416258846558575822846300350900008349293289757201084449967081745709084732089619529494504254366230421074905958373809840792225961976519350961849945466043831248350063820331933639945721637924484400549643295238300650693463544531635400222158382286378611416102788546592926090462598907599447884675084249495961749419848218613064311085818191271430923700646572548721784863484273266579731228248809703404371938722507503366870401035220462873628323618223772251873331317465884507265499703294671199105621355559594318398842360074177188956530767060820152409918381692734318146723072834826874559570843357627202721296100488509997872283639024769968024680364586773367722433374973004589283637271267113308384824592843817081805720909070561444618354924403783724297020722026551376474687118804650544966189220534319317752771889672359301144909463402359144745064088892673022990354309980013028487278100493398999921238150152602156473287499155448388328880148440494511631053276081232523367676428871125619746179910107571932053185967032718444343592279148832498046237984841296868396488963625813532094105421093561721802486419157092603142240057193836065839570326687811919617726843019226277130746190364749971115826846122077400621216205602949481129792191738406787604234130960324543432524833030669324642953784540492572568950889086248481854855344562044368378983943916474924215370244888479211305357728991879851618999914933210333371224104072857240986826949153709160697905750571810200282313369638536136730498121261433160281914555186064837732042760591405441085522132349351093426035219486416931558498868563638916394757843535020176147478468918855674475663519824695369119363743980975820097179440453557770699475478387998217514014464506600369593720592329376767278762110173352742101349041849783329665592602470255085695816355779558023492071424908950353656058699135293053574133705000398551483615595330341813615185795457769205191064559658537215214274327212637597122821948701430036415265888592934358921472287997538427584863058068185470135599835533514185892074639807017200863836245555013837280901595837692942111261175818640569059650094100300374334314856488052724926145384427725257313607524322507348040710446840331288069016597939945131311906452010459883363630439970853034142117781693071115467399266085664484975057899009268711020950563283359698882962495667906214452967876444900617975373322137875546779815627387452660059458517787059245748873306650730271902527217286312264846807482568104627405533275298917357813402148037253589601609628080524283326505036954762826504119467716276293301499693595720560403432414885815105043261581824355653572217163014354694271277297504227003352511193982028774596741850098554338615182735139274782091281238028592630481298289887149037802264691695468999599666759918655074827943241173466201698778580926777534046453402808555849473379508358851873260408656765027516254288756277340878968960469091942107090187519913508848336348753444699987283251393550718728928854925688178948860240145758140400501884514399743167591605563814454816725355959488508912203217366209540107929056397926343553785852057428495006563680054435207302896418958836486966660702401118645026811730884405194920624161904195722574409144186463902268330485935935196270068325329192505291554942985032904553523102882547041741753438602496031608874552021597987409635490716159979736553755261722681639531939090567014469899483914031630507970070784180038294696661773859556554101692013895577068154302976750651488534472279884867479023523921943823480000598061220208766731798163958270754054246642060658204889838345561745629914593410467431455674292160866024444039610156045393280349994939966193793546939671114405917022879521772390916302762041984831081403569531117968530315195481164847910637002592605274651557331256615432195420981621703426216657147587749731252768530142657236384438238362034259521106335916506638331890077442093312248915120699488978651873106876903083507365737729906153022910695972886036578802467362898849508660427587105876368773930449412720586068183226362172055748189303233306386422488751530536921805185275706777961625304434744961835228152002233262404128683170148502695972261617413047196054174054847544168066173878277404634271581449625377358884311914068860339878823921302606522272998804125482234162590061486580173619559609980816331319682601196037578020131119843100729781261285077232795010319685765428281208739383487895390203070491579176364276462548218540309900225168579761086138431113891922667608678801140753781792986990391058579475797254327436614213973928291153335888678979402850427422752184970314418919462876732917333161476089556985936826904571737769504677858522372072782816244839088592300031909120539168412880250481238032874203315495529439988468167670660100201516926201113635835467160678460939332097851738345747028832219545808804547386330281008557849677771657055874199270782686012644164375170069193050813865972103730919214872311878435208942957297056355525860734865373513586102726105522042428603495273631036208913670480535717657871741303278785990820169204164698915797075219463862512267882532386215400702303873648869580664081853190659101490334297914066017848169734867290216507329333381718331365445940985661162963695296874720448181373120771011382072411101951477718889495769141916329960301006388788715125141081509770524584797521183358730614270182609831228268688015293342835861220389565089817095964224015659961978481411731291196410302114928315824910292560520820314007602339364955781428998494031561308007425898107334801285035763106708926076360321548601491504373389677600752246550131467653517586907481912833374462425388527649193287249277474122988936419168728297170444352763312139913109995821646701791148364668393937410516180547864517701763973606524762387974528271271520176203218106982538404022971167641039061102301651886099070173526246972778778145165173259520201249793883359196310476554632406845268508184962928751492381277656885441345378950011180807171006811198461195040508943737572592206461853620239280517167966351749248385349854079958403249464249720330727658548261987459722049001683717727877284887643738448882373049090393555522871694002332166505283300717048496702802961360881426445694037560168644783264307591264152154250253291037557859884338360723404305343326897709589320651697910736090195084260482307043830775589357450719878783592773329111457178035479813905177994007347878286943760819576131221539505898201449645428989033849966835440199091071298125325853207898969236677457036707306355403084514075935510214289413591922796804589956360172662723700426985746009488712133550591389772046532780809199236641386082349716340037993606564701448231410215934261721005760815731969988203429211373981108264035951494993816936774690214247880272655050133920892311317754919245690298474744542363928203293539738942351771438419295693397778614398677067436466699747037979819430468551296732374234950892411407039912784775348741848278756451529286095271197026021049347575426378705587503127998863075851585117012668174025362043063374831462738552925600325231075817354466866520208875061418026098849925246645816463278670736108425170792753417836277502845519477256613565202416998733417999934570303670146703693614383409348642686553295002957503884941880271885985020344835580548595694760051338889771079105460392117518427248408377884805353822427257030257329088447346043227048338653014284720081789718325202973555801586956939537202838324264928785034397404646878447539100922988218704333515944624286312515545563520353471207497153362640132945601551474805964322140640845267307672869501793859796780001321032405289553540635098827632239712099310016061190168352476879405210830977641082282233789552115327096666509332691979860713975347953398042300401485120911723852968325261467729718888668896452282510370963126364017206897816813312555818755912910067789906056367165381302257301621995013408638088954713464804982956948520015175336334885253573421793582016262529934196565288450170419040185697460340605945327178091596589256686907549997895471078811191958179052775907964321379430852320990221041271656262213502594538735180244055040763300237555209938665889199308508658054515001891368914930925419934561552813485074065971816422317589406437589064494760010738292132612214600866881640611377619842185953894267176229950600899143991428310098603758326872630945664328061735976039985124488063141167370523705826020671416059392684831711826710593553977647573075177782982941416355091503389242480248560341995152302238508744600932075002130759012637989541203918550581938551727709551873301414015705031676255114212293096355435426026097623945083174814089676657037635375444491227357646440528624593818571866162024190889834655626335636539610022453768119532790559708288538533137212835649212432988017124634665632023421629844805185151761297654667527748578501884873242436870168647296763854773203216251539950898139132520950989288940664718192750542725388448448234457866059961815482524606063489531538279556919053552099828848161578430810801651010459589847680056756616657892313041667020217813899923864306692653061466023638496161271570773560449359488915312286968760074452990162787708802382097229523744866520784831794658275031238910660491837925933108772624221970307207202060002347051358782172941306879749184536273731843108461508262035437218844987987536429268113649344619020073647335997541414723063402264327536871520350700602345861955388065710771305204521312475054285569445197869299560675101591841671115727412937744788681580343119355640164102031072092954112008771028438314620937410080048862539265473206459252975460317919782152452395267291583129289032181306018570718797945459845917889715871045430695019566635431984147436162085333454273570974778386436594113359297608902133592318849451606661140852930781878952648458725891898036426143277211493386787413729051597235603472177251593831881406946163001427555479862434427868927665238754489886648758729194599919898205925139693186223371753527151519466183775768337271111798034464262663628488293624766035537800491854669947731427768006249952157650379958476300693223140282837611772497066600541903256230913533487489130073143877880081650423388080836803199316238659726130084756080193032461009000399613577990567578031924375231972619606052476538633090312374156076738744759354433710013200648044114757788573802353243571941805252522840387908254870223281398471768631363345995981650014221063805467504130255197311097809984201655466055467350274722184961478183312351614977036384886965135097628705740468635507822983375014486361500334568104329917654910973132876084707714671754703822867891879197638953989569408864857942849823460098995619359551111438668501270870197836783162089869849463957262113273091159560812259327237998233659527208105872946749980929364088651268175440991671796082877152974169075546080171462475780723725055618467495320395160905809158612944441268146578627720606087801161334416751341189987986712701860159909668893574219409064322354309982833606817162276124742985480101750348976159546797872908450003852648195754033303052090534733450791911172751605760451663004339565160932676392451690995712623756763178834898847622426422312603923674524037020968594824960395826594371306136078232146596488768922534481228490149473437297371638305464220810507290457762070453875460190110038173396756608254831598494183812822505254497560497682900247005998738088296808364234613988673197140193394600667895283708345630092181507132143567731281876781414312964013319243252142975137958506723015144690259441679012091791643419452128957378007598624016015073306820790217762134373842151703271587484340683623464567821411708184154026050113465029487857597962870476737766558353622919499148162131115849157415274250792267855485915394261818115975650709197716850455879225377154858214651452874181051638660753005678693183711281288069164828695490986646335483262788738378527985076429944538238977109425570841854138554398177971263567727078283911516302950323700510465198421416639587570962699140060363096482907451611907168913004195824568452187504612102349950387296989787789379391638014720576994962720193522103562444243481174674166073782455978487600086685069571301252331272464039286602514804104076819061423769048100338937344835039462341537138649597498474358752128738581907034772138896477874714412558304262492390918097623387247417675813269142140539618518121041431989192706028067960675545772770393027053316658871601466071366739413356627081609393977106575713488135301204078327743894876849247749889826963091772213990658525869227849840133135652730081594715261104986398069411577165465040355338685380242782481610229268477938789147918446152044848981433083512768646911916189219426887459815195691941973356278615262158490464319087072575331785761861863029731300565372436876017195924607127465469360763626983718886312821196974409850420401444681690799104288720997733015310339980899759208733301317800356925215159734556730787266177159516620384616742377218278823962017114132429225600794689151577584601297937765158394397730448099056922481317862012096723191162258812925602423051031812287513203670257434797350840041960864917767941239502944830240976534997998939237512875054106763309741485465764519532293322077748882906672070447136990256807376918791263813783624738360524922855084402847907678476000359829053341647645204357304206421991115608660341622105541616793223825832750221298252429288567565498473585700527279848039582407546635806492855092837576240087551736525543476571246937598904990461947452822974539032774627612461389323379939671940820248017360452923908027246765943621288865281901973916193313097793242819202518781053042000547675380812319456443725137148926280148688949471107128211844414976462021874813638977413548735776906338789770531608319402133402869485464528100759173908979654247887466373317824001383185616379093395760876683305354354437649773274012301794761322146036571723159228273973172706535275579208372753428784933073556491315565122662449974269845890837231823914574066744658506364891740573883005602554678902808738770910757999755700126595114277127963240178967480635371773702551642121209986566696781258699150766812338590970263526752142832020989005372706900931595715934906059561230832515657155702102637665637468288967689980887394959609344028898775689174448312781132161856288555220097739472644540081621411083449599366490860818288951493339050776233328989380297469007518457686616618185262266557275465385761134721844674238797879858305833874725914206742271479543019143145125552230804470529761549488461303622304856089043759301545040434049433136335170947272999093382913041477497870307908792152074671095812824588222290376563188288522321642556997170725949701254291070899108147974088295466060370224604888267625730755937819441372941501380240361792504226163185765862760290185307284428955925558550457443116778641923153579382430669793059612490024920053615561498187154107363645141543525173163745199221684986079796911475056139676035489976553574251925934855727530784510436730961694695505247981663833242826934570984526304330843771558173347052220941799532536299380731024493392001218858306893520720628456459712097821199158403710146247240542276191292320597430315940870876397681096684894037428859668441271955625122261008186004922543216447823141251318052955677787026482618755037823788461534412011644710597539839597226036561320798815314887153826427661316125346380761715119486466092244180311576062285453373520749177166538025502744881517925865813476821859242640828253423174357806534608996022808275021018375884429619973894702050963437338154145309165030196943977988539165759733811697605227933915380621231390001314200994211295153951208755132264189948805833512521082927821714427599506196348644240707520112069669135360843521820072231218607557753592665954527763866846082808312319524632847496096033229959104984307036176904179179234241440984132177755322149303819015567758044519907871515062405756895873648858644029570418441159907195929647510429732859120650462242066465149560241677729794397171843645368450266256533373474297066141388429529984112269354012666220212195748322186865338357549899192826088641704054177354980345077848042004819599442214915725839568782188312798269340584413393101699934199789716051646500017469927493309265959037871025950282541659154496519528568854336378774647313779837616860997543294989263369714657481179125933972188368515864780283343463405111281975772065942838602165519703578644665509779111604105058290933594277053417144851756997415125445596679412784387518553936836281806695071537864774585261801883366371974436952731790001331002672316601165439646205631069687644348485355889055472127467910450872911358527721474917837465386114591906590123902137071137537829128000361449819368183091247061575879245550518076612063248127484096041268652456977546105258989639288652232971854096299787096980874093409552565150139790803792903584493223333100819605609506867274235285960281545364191937811746428218388830439888281257080579516341476266064664418089289739749086414711211319510256350825345537690104924873629373405674481802682655159392748803201323319463471982193007629348608291971531300052910294187913826296023056805747307577060529381310193487540789770176377956588007016006591199123200076175410121072330840663528112480658119225845561806146782621010466312249098595526262927908490911778326859172178244546569827083579317358768906038896415496862103260300097572434456435308429190666160687499379658079221707479138092073875675584362817655855091947507225001193565598881659941492376327588619093496423966925759627550337176790193273638741320586983311349818304103997897401215128426501379121019048382686320433667332357664183979199104655709895171349950249956420672956006156724016734158905955481037669736051211052343933044539810007988138938431795298456274760098803045498981345606260784783915883166172244475446876826283481650573520696504972639319346780869217740783574876305219849531540377573407407009640121262837887405134863238732637959619269090788295036330699128759418100268060414251478433059594391186946449786132942689189675309671355080275313566262669715169735904172255389001751092760149482755595417733615619152453866931013580925537282488355998456642774061430576815912126366327814232251974206907241687524727191552388876870272870607582870783081158914767557280559623086801706808253657277001364187408022005281470530076938080135943818288924154052658234922078154021050572371660055410318302287272918179068855672518243633158008658551446743631971583616008996404613069540161023624156894117359451953888166576764451973378818936522019250295949270084260848857004838208507926367789386607673760588926489047512146920390651485537927930150543312801277946057733755618068332659701836408021438890411889189249262618938211915993542932980128589877322268780206952870060422155888689862965581645210955910323888330097418675285439219223267894171231335626748815172769395796709451065431811684489423635644443768900686134771804892581785425674193306939305276373271151664322431942341357303219564981362272243353164948957357967461832368841945107779721599488610196322462530679529073858929418677264618892698251844065318376143251506593281772690808901217798539664066808988238518453018648525404993180846093976142976111535154462552988441216673928739210405203793653157889056842794170340030109724129144262081767755998157692858670035619670365897353477099621529526558170292224431257181065207901754297408096142405550099162185571331566288664261905567283871185730672237801334506690059254429727012522948619895043541180204050346979202938137435495528306707178730302557520678209677124648612538184006720566211408407355236367172335805311227745616749740880661830160313073569444673601345288240393846113113601906702729625276439655101244387782764924394248059981313513796004447809912347232886252334891259045157997727298925021133630607530601621331469182409933128080702178298113200213895445748859327672363171487760898579676571512382572792634517636666799802240610389414176891733671435030812241772343112526500082570665338810359500162514292349479911517690910312676674682887847213876831482019881099424724667816278494265344077850777880669225685610066931147929754053940432746503068271188292952515925521060119904270677492775568211469317144404442444533279305977359155353773162764576919157367966816964887178646465443798900376496658988365662442904886283846695318885948153292987890971698420599448774984509328684542330242188333150185797453592956427031581241892276946609201009081649427227347538505881048394333901471884042811303861808327730306077206315202015785860319650336814773372856142067087114873662706711434828062552453678673040515921095713359977696144000596173799649144843766801146530826871683851326809720473151508326352600644964667518712004004192385099671020735310407536758255925613691157509606659820870209597180656323470946344886528414738737659622561588254463436341334503000127863480320991547945027542342905381467101222383712175136310260418158144974942424340059417402750567891863642233512869610762664155700084955816901691120768531698324216613622221059207147512836008187547254452791186650217746867317191858786717466375329290706631076943925272825535138841256838281002845789229033941604036919117095270393722639923100072420161130330165176804730672047472785987233509612167704860230520386981553201569549404962238805762283655581405722078810018707290314731539736060449737210362315330722054198121371795807033060435251077890129740452718116768988464872434546239871213158970977659197249450879247274906030904425157021607313148623298706134665016228089387730816379202354373372490204281811781355149843438672622586694105637821279241088313161104740297556111420216399579326952136586318971447939571483500972847902478648603886522991748855357785551725870757332154063122276727045162817251626685244078202043726792903833390798328281730555295325640760118539551822633063423839569127215676089529167593024910803251587811494673702966567448725188841431231158412827656190638786123276859046173466584685317681058707480690818844873136276590970961982774290523130198195506921702575667261749367922236154466052628910505209933320795013859068391505920239800386311374928440299731698373936314013929000863437598720616384340833807629494160674105354094453045602993157730761883010687008081994916780090570324867081793440066506864945724950080196344015458637488948563822146958226942341200727916294905940723998536356489951855372666048509177138771686424440933098133677822146920532869910565522084471531712467779609162420286513996597802662897480835809175680083471157405890648330542189401333397871887832231076032003877217336689756491227115837502919306845964373460543991029792672433405399552750911397409381565054244202915084137889142761985737358028682563084608123490307898747898726391633122284341583160145794633280263996171076861984375910378672127827925123044762134206283787875736322107676197080659184497721708963203930149379258923106123031435911409891451461144316272577945451278888532968016518002007521019447940464842207945885892728193097272426798080506175472464564906038610084595449054673738261677936706728651342576472036241274113202449386058214065010826753978951484501767072647284642824070330995001191935540648446699456336168235837465323475989457544716905672892932679689649966618005731631766248764481179220406342878100483632131925911383531000300575920698139298064381915158738254244795149653482177450999621204727010705171801078952279716396192785185595064680868861844007552823803704182412743907415394452247978557933980064724742161914069433764837266920462975313977933156126070874346217376905336865166343655485226548548931040148571581552941499676987667955811666351382792455119692151052180177503496146910126270078612935269298296935342836372062212914570231446260340707285319254073076534919844465752930502207092880370087836771131876680493218857845711121964988050626476020377433477576589353946843900692858781177306992882289129526155131594947196449876503664133960525643348278611814597875316841857478075270684637842992941979772884721511495537177004656351101938927999736720228649867975160000820174535763782239970587897329484332812877935240940307409295731243076788011626932403048266068227748152223447925655295522213356361085020274006136966839257569785313763270792276677892340979353001122240167515839400763426942972096607045240162844064787170406967759912544681229285147699435545709260908131383293533590335927249711830750396647063073778257636979889309614560879492684167611488410811931478048170884092481115717589212286292487094948941665593468423883328101043657981699828756165437864801012465714014464674135154050333383455214787734500150823129586515128380697974029039206460329217290608224791165142477090710925448386580634542744452409584566741757177355354488789208487533328160703020305849331847964516247031226735085904345557108906117804003910697786564210629392857582198465446337592882494306098572626606548722269006265903009184308676043171832843349027647268832971439109754981287829049504694693245448412412164130533639206411858486159229860177835254650075960609850516261097500361349485159209054805154819338699286479301540474674641074521978782389978987528867663991326169072288285426287693165319912398411258478325931107885642483757013049447977132350785981688595326740207619566758181083990349936409096535803829210457462257644353732129571250278271889076952156849925318608895303732694368130843691355149086914333675237704079627619889150113373810369997684089531153358219742156079170470501497579324394938227999952910977149610842377289246205063232935601393310488441524250153135427717319588352328890224741021478304559221405108697011380193226985108726208824100988446079407352284307414441621718223495251251940786147593561766378755704826494149747968552227574848873772357353390256953622983737816646012554503872533086200729023150428526686860692775722334326585375061535721986124782494618065389425344086964058143188293316135103091579491060537839182766677730622679036842741964542294678066691981613855955563812978601358453960347862756623939405033558844573599667575516294282681071211780608960071777120711688240829311550457420354388764737520232995409397201664380721832981246605437150194461464578145863435416166723843616566635780839742173605193519954055816466180303966548645258412150975971471424118782175380759441344514299967804644639163779672059001748837441913433138454378034508163895835660170646248230643764169704070439607057294566127813180199811276832659793711184139958405317485541151432863361540497073675845815859315021271931302861295358281356053165593077662790526846874733994133340408831495104756192258134045873627112031249494871126825152419906463177733723524260173720428546138966125954865390852570115684950498366144902350147953132414143332916296015343176904349836184022907657431745945599174626209377124266066086565267138558120016148622162897788047757708826871360159941917011268101886346922963040889563054749967273427882483538339301194203313093924380613535800478587486263659262642111709050396678321861985218217838776962568116101100101319239490366988393135003228879721207509298725709664055308841220579009595073401913123946404685900305757438576636476407296416937681604978678386186383497874604392720961944745426125763914742484791192338464544795344923921311553036180170315023113607851784004555049804554576215817405097251296618751270417626288691927873352824117345698461246903763311352999182617016242203386296319035526883282002448954549119896449182028086174260359339840091509547830679206605591263331654292431716619890278797918091637284993108530115989091461893995895308423337530698348529109396198703275340554867663805616639908762185929741057949883822645174860932402060651226475451865149749520444006493041512158561779750092639307795635252135663542473768466015539555285346198728021677582709054572917346767264459955558924224903030087141089429748772250297796565341641556246961436400661428556051239100495435813140337089776632888011470466772509310052288893723255390690330663704503092181309566660651143581797188536050699922479882649265008361294276844409338588801506414480377538108826377716372664242372018090896265860549950391310833283538698136796430341290966543054777388300587748708892776778441463493376247091458898624939392553089095588353205551911752030082976779496222386561496999639260775774407723267193590878023305733902220397240911237063018156465780617664083908871600181097594597515908330627918258077832736525836424576490274210273837542205362497300123648732761313671457566393985003662719164856530380674905760574905023509858929863828384773432314619781943771633574202703992555084223253940147561089687463027530822679405772281165325276968951077236770563426312476460925174615175455322728609172008803543256987303027253268322710257400229041581822502092663883291558565474343504382669410028201779235531792950051362366015974495907008384951493720658160143408252600852996581138888600548113681279206735704519536771434401689875132296183446096450717016866416226146074998044591378757511962249977380783718383592658195729854927393170025362946850231686124323739627707966733967898084340167075391418473151868232768936229038552854909983744048898524918687592591087429037246621623142100717331390503315782472057863070325511555702240488996823973415933236649285146410219518273230903872839566970939064667982645716192611971759514084181006528388070124708572180166940315976874491540347692827299456989521933467405759584123702119722429657744815321808682993560580413556257852181407315954202731564519920945948887079378605967689574798811215603922572420716117063376078267159991881360442887080128682217931839147180930325860137107429850993700224075407007463568796071768802385270488679725399491425240476467243178013925501923215360283757634507496045486470210686534366398361886676309613038198406678441697193978212242374437083571755407648294459667949195506016070016040061622544247839693892759680403348313263371194524995200229612503153551307082510592044088253808320638155446292689391420910997967697811942117603068843434510320047642083688433118725879497728927261793954015466176988560764323410968499824752320137803124605078307086182167194271551352072097116422377176301301215338926207029511536182399760198544923017156899611448164939816274626379450884476903982379831744152515789570579448020045460159467924054908021898205566210570040714391542861084213012868966790656003361150361783179202754387028672371087123136488692991864250629562878169862894716294362498945239530835081587944722297865299158244612349214233487337860702266022232360241125334316430316661454493742081870596253200657259112064836755689344062821218361509306835364444999800521457167857838913907142218189479062712946615217403000983924594314336465547529908985389630643695128187385091015549610046239470985037729464966988054309825656747925333089968802971878937387780836233555517534198270655646153981870498738874676439885082747160504054572630810745347105173642727179427460261492729918858809569884757239982729146548839958774901136060945753686406398225102673617016304665726536756973010538991210723761545920202300860063934427676029599011793669502857259642416256222272893114310473507203585684792769452686557179340375563146626736079504014901827427533123714351032744554096881422748986962125746395391458777923745565479152339339011163264713679455038178797690945981550468757940599274712886678658891242690288679321459758402061711283392447942881519026372981378456012356754900120791640723782807941187923774350814339734109735605376795825550633214684211205218073042781174313466804829400276983179996187213279438854924858193972302863319522858889820831474286647877515573148785853695322354386894333998112095510122348331098339745031271717136225540634705455249230715764387125036530138295729142034712347488153355931675436091613677204014071181506915675059057677896388139675953413734310974596591260055257910008010953232863193634812049245793571231304996212511480867382155927486683976718433266929120094965266285225419079180163910191583477749702743031770435930932031367146958781236636680862353568283725406810255493730933870721896626173287396434902397365218440352704255125678267513090373353986306848105557602665114971493321216420387967705323991802871004198388573514199889118324833496284989842344705666648416839839794414709399216662619655113691198499578252907468246434670715984268325485042756971928695508127836843710677899374596315830349389367143181664797323825266379632722167329943458636966115367395697212278164766939341267057011554288454506727427579663329023620208087817187515290228919109461148298305379932143399879081669178938197032863386838941179506322774340273189690345863958461274969016889661111781040114196653154471464037205486875567488886545052748133491604041444989428682752126364409057969722971864487884478421997747072365926433748946283133478023718418958056395656067794864039850890585539417106868386745240734081878176621611286659931986083923097011103477504657329793628630402075160618271803519666581314213627151522247514352826049991382342878225843202403737872315058365563045276279771600331032227450458255395312734137646189486200617091474497215006464817576660108432001521194670173655966854050209749088778585422595328470987397131226948995262353340017706089391876067438137777882459700927407541512336068122906268704133033088741884200881803742075833092636662544347289198281816767717351203608968533207786006998219084062751886108239739744224194314107622419896553055098095118950557744233191846588411137968996312341204688293866878644064240239996357351296534478613523268490998465501372793521474472356711580952601003375384093346707277375088363455371107775238341189661875195769710543402774897475412159113318128458915267219994198860315797445811023531178609390027548635229221081123910273485916312215908533608716535596722218486485105913026298326553722079666378738791120049414108509893819819494866811875216035258249823854630036812257522247022927574133927551378431746596371880118497894410011226692389737501893202233777347547467948204503549620140170638877615593278653203933650342542662023307360150391522257715021597461648039017076111348935865310581716402032892821972382826792078628925967456414427346447216701999870510027376571621616080051153990594020016508377457529830042815039564901692517058044766920530425308425374683850586779932925380467894524032125349063171459890837641424085755549668971819649253503323938925392859496527893115773780074923265695432337065868246207147997201453215380504677021255520963320778605339022451944905388002897327562584099780743905974011338052399460528303909820952722151565741274339195289218677710292591398879672918793746885953369350490904270548300536652192175460493396102325767434133148535256916683538455402498849714986350239850846437089734755911340832909545162901472691213757173510308612979632802245335340618443327946255489202152310791898474034946465753859608022496039721194420148554928764125086126829360515405923692739620892606855372072217284843041771364478264769381161945402408688160258416380959312999238401607564657909105227010062675311686083619450934327669773459710119829708589972865958390861430054612385386782402078646272102207881252330055693339714731668555933497049911857226661437433487415266414341940002620843327549109624054697694556318229777695522914464678439956197506877051003794418451182714723663819781784994387459233606005715410657267504893636922902167210250234120511436662161154427189627955144959418959000033185536782769888632417080735051319678993127129426882792638717471194661534326568213384812810618253703436891412829091229641488944501035558532310343276403386547243695420172289961158552192250470458292799553808309399160438618770092067006878891376613737741572608214825804735633782178127665627043778575699821379636212495516872846078461740647307697221392600557952375923987979204170676341984342611156299905322065522561983894243979541637580414435269545242466363376594788195023702257678080522766274309977757566011376097113478831286379982608164298998991849882664768769906390600670248857698105569296319779633266040576863880591997665892810275183583638420651910517171094622135072474192753572539396327014306483840623157335208904570386963308891916273925417026377854875705577019388537182819306093484890099343707393567152296862143813579801596942245376154448840911464078775822513355981166841953076254121575453823368928541129354395273549622736314026377337095393696890941075736496134591396767938736909777325292484166671993878213109896905783442640345457924379068700132532894443249664988545706836300522893911899444921028536425804964330797936924986075553934239549161198522017202758343203996155867966876254631327229106829733072676188787090346044482159503748319754144749069688463461138591778315514365021725993106782010972154403095152842216679997820813182376978530136667073568927990969412123771513450668807672261332503764330944662016155180711969127848393829740931091349653492863803986314987734970355501688767110536523131475970886510831433966285815485460960038223351430058247488676421822278876306756927064728953437194108410251269404964879728211555987587562336890719595711937748097581125618850032671351718838269386435499640599785157674455294751440423150212630960171063947178685817882570928597052465330969716164708010800110729289960254265620903364465748987052579500823880981453520691912763628364774603161072352766117810056102268777044099474746459011438084793802482550772674185771970842875749884915326058117099293799678405723252632018932351714243490870544673006849737312048236599838160194384914277810914732590921651295647843856429184317186237752556605379134141618070463932623398597314462379880868321832557901149877101658747850219898742955639555162203276571321462531293098833274248374086401923192035422482447563683729525232545690985521246678576004303640165311982948597472601154796375951525479978722202975068811485965220300612782416821632405342831726929058901974345350469601226446170279147016075327781419310597337241938287943403089537245148100836174251373327730406254603255115680938472683050293945893978036509106832207803069448373832830561739551371222167719984069713146380434678846260864843082997247274270785875407810501863858841580532727492405997915653838539677394272395305265646377372612205413250644274594413739015636929383197131698383759675393615012785794187262798720215747525964960744203412034179908691677882858136111198467482545007320631068885805458622459528559533502074553603182356901008890452356952778821683726870653051457168387701150434563851462744657411595229978598329881570537400464667387325248951826507336689511924000170762213093297646085314557819285436138615249919258735447152105241674293987239569097392479029725230012756439850979847935528090745053113439975955877395036794284724406600359334629469246678161132709390891054095357918660911575280881122643816618711827838479864730771558129227559687561316771834004215411918719708906214084602200161001207202178304139395724045785407773742885915820326736113130717792499386799316067375995166545545307128619831115170593239497117104120761244674287050652829446464284929096716771445104933237610575501754462426694435814334450537002672534539899443898444864251323684241182343338500888051244547079458570829643634030563065598113900481680022686609854104736740775025631782157421085241774965752751883747811565950360380927042036111492571874589894939209412786464379011371407516133928119770528844903155084580373676158082873771395924243565078517423445704291098131736556848028086977382127368037685632749016465539534373389204404554099535098244060057721904293327375759225583562708992404675861025060099480558862106547821859787758512926217802365594530333272771744981393401261682931758333283342728373997635767439688498641380376663982175929760150413223513751372113671672223610203089718163469901829818719524961456518926826952860416841205150135201554350342145883154260024716637897805089425055836093394321162301874737552417406720713750959258931062768932022007107471367727180886648970990837603048057003203655149763595303172285362792912711681839869133333761545217332857881213711571646952291196459742569191468645450848296148255018956205611224882730818790319866127657918320637781004746113057252869729674161141852190254540541164641494840062614000692448638662411482166234035488105810670825794847468747518777537672643050263830361509738832002327377610111270031813209884327978512442662645981555093510925254902449474880462723668666044657526460541659339053823383468391219745908580761844443982356656989963790806653207425009914899321477666931133214095282124887600264645980896019491061253205471461599011801716654554389905611037925376610928170508104218187055760816180611457789479092999549939731954920075831954911720150683487513672315042347647830452682811564844129111750864882309298409389769704611557429374711344477025799802010893499971121280630474501869423447345662989178253350183854411388212613170849121806642152522610871607562052135775718756055836772911994684227796685389853572931779778931486669812851233265355981617595069239617827798940447044393614448744680389054242264972873054043213324339864057188602780927245869356164769495517075869538449784230244823493757535115919058439354919112473619738217281828257780961267152141199914308401242170293462416223553878582611640771872058475075721866321910574904270790901735579265508445404613897880450389348219319473751648962092672511511472763058100697106896777982855574518561324463453480315564442886093019221365400265696116762668905616476521849247069457514784059363427844337460897422833755853263218656438278635465344056400674520515598630213091107641473569460763215155537854922046023530047342450871270411761014911093055566441341641341717671720008985508938038730508947709727407754035464284292428008556009147652170435179888218254250081588155727991631523258240579561489787769980756925851958455511208037711837184116327426413926523980508528580154872103246169506842861110380119748809551437610119433954089946703977891589711666969569499600087656209495200045053724734798153576389285476108471951085122560848996028365013297307493638725708594566092378276105694605878381619428745887070982277772890003509319001120952526055028347210449255584342560165529192596179729163203465342854119650956394081127156121688935702715508721649001606003757315102450654873207565473017465062773038717729184952124241127878522526239381970736929619336131355371165158602684686420625434129063405371657150567958933316584559194835176571698405688585663665004806410937096450408719154269904303313670008688756910086758198851465788602649440980782588248054984936039309393131637392550119911492530488049725921925222721368409972668635178181306272869538382104547705389018002378919879514384559647449903151721209403006117506931693439072696280203135172031653735940780648993217974687107311665907756668863767184946255512644376265854465981338400845665046974837044299612613045599942347046573816770515449316038431370843905864569325676033372786880806562767206284171320909476856066443027728485558874729909804633010059414241410086298953550594130585068400995461225189224950336089602390934565358127777962055366204596054677593537498851052215538008619554462976979761164099127005747229606479842190910126069390932751885903035384212065342082886356772664835654319275835540406178572694124454493901747621368636599766177032265323262938804587637079978526545349050859570047847897250668402327590017623768586643286366685992952750549843604452942972671282322885597399737775227205653432977757705027054716299546891142252114618224351200635611410898274223413605532665236151106296455335087694776651766306411322344431553763871730209945680518530262960220621774511663616175448914925740882214161693313396294597145593476889610270516833762838186484222615985527173285182940074996987357537223468358755274383874355378422627321721678280678863889467559331307598674474372467067486602462212703591193630084523684757168533559931015036449169961414554475065782387365828557970278467572321854892535430492954278830350644267245564131037670504823433038813215574070657845581774553174335944047317262337613720786455664399924665744743137980983233836940467865058713079337940796205892390908385857105651777051863684103617423580748977995115492135429038671337778265022369111740495982594076767030969198653193342919233285223841608903707427165141353273200543848070929402925255539551389242770233985312070570565646451707080575653542451130116905455970443341012958999295488361642727708429150709188689236717419857890249440715038391095117163456088915048012048950624536587508410743283668016047612171828073965226011886393074704229230694866812225830069614316456617250497366769248727473613805106848081668943642544828399748421433874586024783036111022269468475052302335441189541363526036435933173103292864403147571011821338220087037169916539517397191744098343687491552520080923617966741019620814257158315335605498559323558836857281707740391644085490053878611760413197041931210119038055234644522535482212975311877703196811682448893677522902225291237069463677105464936275034763462009868428635071615517272188410292498192384568975426620502678632693648702984778552584475298617620328243213029795062496099792812882990113972135070958404162344398946747289014571765606423798165378988725849514160092952129923263000827302921063804178277327301521428808727602898298455807302017740676072568671192560186583555472039783261799107416485014568424796255672544570510106654001683443553391628545413154824327181015890945170107578605412295239774210764202361179801081247809965945921631525735744615380386222409404366015655735393548088572172317277748404244373402319179333784242283293244997337714802612965530962078743707083791187782169051141059977937985488971561800896971371709924111241804507949932734090703246113616006125209317791374034529317121022345791537218205965317723075274599899351374910650025182699634436192047423804088608310209432865536539130998000847485611953536337939131746347056038417775228039606951168931838124301991082527644749283531249589494234981004907445578374498662035320336490465582926748150900175281886995705387170875259762985026220462351126674470724032046794246009839023057965827321151398400887924337641945810816436129159024576331462504677903710348757257137104349050399496102925022854457672189737317008349271481921146194326167320485132429265799046750350890306530202713738963352827027700912844142246417105149229906051995304274190727077370011551043203265373946246206732676783159101500527989362741530200783113014243312525647654032629077113107427248884715019919440473116981767180220422533615920839788961494024557783117061951464399964737027260585395933601604610455025493192554452941834438104546827150896012833196619128897548429073495903037770748029627139913327461907795591884429870794292665761807180812008073864146810444563210972086915022544203632042605146682738751131856358838613781771582310252486349417137262378504611662248795391667671023328682945169487478259197054691039018538938798595724320545642924954414070810980129052743974351089485767457386677086029958824353329120946694658577760041458673469691983733623261799765897427925831538555807558370267093583493086522997146707033075459750785226583535288475565212211570620761138418498656774679183488421472644264446820577165755166518562580782469319137853297004756556583708037389664855702285008906052978487144989422738821398955706469716448900868678088332407969001254140134745901417401968434228207085362407644691778713914253905462537444925992347337484077228586388192234114358676012038664060263163475242509920188420005414466856457223630830730169791587862739151919395690405645156934740649014937748124740917973318355347985151330325546918496609891675279220127618022939992984215687310392116003631307365397627715699657128043233290587048149188708838542187178796967919896137089696515784195188263797432007626589883771800216549243353118040924014920044762468511025215852431552179242461786051052920912242496762153112723503032936246995509425654608063534855108186866479335716091574192052239734773728717412929175366797222903802065908912296450954701714109913962745903793649612577281425644390208182962926944813355021648866570700991777036532036710298200021248465100375849776348319262853682697390670434522580469478105002618593517552035851484971540898433914390925724562265242699792911431950783717438436685340519941184657927461928271908968475379943072613194320463937362478368789563006211986327189311676364474571142773113017930681908913106607982280285618299976146248233087009940053175149609122105354971696793234636043759336102650168387013683396355073722353246003817498971475213320494570500906832262302999637413544872825413569903566829175793886863029337227443207907079928764983514545555656887030271853721926111161166917700920975950246900007626337958153650763326823345043358879168576931577144556744125592790801523708017953285157370020956212225433142400221767261806739878497846172206655634615327589521943945647707549862701085747852077551891532456990079768606186941404035194297277655305923622544134183855934177949459226706536584796096136405539079073375785627664999108343485676201661685024731855166919307091074804032556024920628824907361984997987131850568154222831967427444102094510983852662147753240386532412215125973234069980079995409607117568128175623801632192048097456423300947860215016322329422966209616755074088803896002429649089739508574049396912932865232844896600139821466105211293517871116145618756167420342629678462269027456704121788420085215207314848021464934583061194069720042901725446713448966777083067821146148028528908653592079302096811971000188064513562587595531768275996686658074101359386245749233188146367462306189935214665812684791406321545197067808902214904691657781351795939132178505444226007535493707185593478265609248789718996451449189491016071004286182753999551949902166751547631717184228039588071391151835974079446281765952165697649289304401388841777181680236115152737548569484843722518514980827717600905336895857188173093605004913946993396464336372383011885667129550807834397136448817878921218204906292776930365307034418246246563448466398564291934149573017002878251700498997952708125156806969930631889171330102804651638487339385231201582455229110941145771670879876493594035047322439849273754938774247373825243899076449370119362743313129590305679257496815913578559366451359507281338544069603465323569355538658410194109709564371427272830076938008821861360339100740281257424910971415189339177189771928220035724809235287314204198592705459445621022848925533793692038819510614924349062203174123057028704184546370790873907042271001217287099276717592643224488733208338869314789417715244358990266223551904798324357969835402546180094068307025856325949702486167962064173707295433579719425834472334837444621618635273397436386509105819291824519743879620170634268122439307155591731495868717411007002565589186448649636082659246186489207578760132667212444942608555152551839719426677148380342914380483615304698427197638258188255075378538644730819628021352684681411134392773626026479183242234917991026794566916343434462866872596919322006837338921886852700402261377195744592086986339207834118651107259348368440533998653424616777519056538023117119336233962137790211489676981725901808018289579116632045006400657559298620100026722270974051047404657837181784463803286240819043763214790082049387005853526759963216814577277666498164037146244452729104900832890337279168586980325868847920393801453854252438156429243386476372474669360852683621391797658907786703742318216201981746757940507021011052373811475691795252973837598210455180169881928312233368858183382312971331542357680563948783623975592020174495114224446770570524560290607986578379674658593616320692629648572105741154482064332604154407969430240187872925504316327239368733285402956258214643586058069064662731112444153628247386706840463470556996550577963496225767326485962670442142458308167576281044270729892144645464132089554238178359356093953798405416825681334953931653057133360239096764347097818531971330386433766432063507984472949226130376586435641666979536534127606251962470413362296485204651249151952545857696693589116645930053383919936067015807850986619102890220969966538365747065977753785058449608918499351888028967539518372232676478964211301974459597482145532946070989008328038427462926070759492090195306199757589727453614671728193310326301451722211458332462763614881157872448190045558261318809114226972303481207311032753948562930110100277884133809022760412096594213005635147155425966484695847952628835821115293401681488481513941566462921584855612096924550000500119337604130672669921951969957043918478601247162376016433261480851893898206783467435740638724400715797640824488792245325261214188497661095535467094815002344877515460147314935908807670552870475843968152114043881361742363653408662228754892174551771360437998075566992157095860085624022394309067445036895422425895841627713901521952180620204350949586216253170175567063662459499159336176360828493298886027961314619351416428242401482465266351479224265845155496207903644648565903274389166473799514809657595866968660164450275612660785909558818948498178314759585350983832710661330915319020735382621593385850132005874504132851822629582109319084039288628831131117828026111882653903982681397791042908987020446678006599706715820017599138717543477520530878967082050767743627031476891042049695354088625949097238684060094877032768709012474651728453756650126289423786624216369614114874721406137009865060216217457409454279732609309297730229819981169785397438055889697241577225543149029123479797514163620683472919926647771833915622379750627605686223740614320835911926144772012721288689353151023590179635336818706976352167200674353798368364742806552521978143490870580764470125870425745820758150777130149266850813400776257486829187749647670808949388757999062783681216929742724117773170536841553465324745170988088349999197186627052551307729152007851047252697879735250295187540557710975914679546221644403842582254978552168725291861688900739550925203558402666395076153931469058675231424677462144127879584245213764820455469011802491141749588079692170466834863454271569363809558268072933042753575885386976842763613702205733603539782580910947328091833912544892147804896608981560099665477052222985939125599501266318431290263766189203187654132038897504124394717978719778208377487395408904578416941322554616314945997428840546068554350071350809147608844036331107651221235022797382253448792095890401239419330255396879403274488309584881474887460435892772458055620127694432959766605872441023071291620247361501876767906754287736612640239348312529335623314825393017974241947669534206787362959327343887360486799901357954364776663420017744487442903776818085002747030856032068757401776947576763735746864702232267431203263093945385892759892837817963679712447329610177457350434016080992172049722986926711440573602774143444803550606884261968360653523511890618347373311398999956312885247975453518583021639922782297894267082302388836838082209831968441714798542475755688284303980436070721766480572161716781853193036020722689976663873476163120343553590529490891405386762084834777823940000815832339285615772418997952445226037573285406665849706138572078369289606569358040449868154801271976709077876172919890609490933001247161415304021381171462241117480932487222528826581142996445591586448751247184459916519873387543025216323733511375492424747408377129672970151885029293096903541004658431588063940953597128100516321435252943635606688621623123395056324555287214849582967487174050050885821489593388143719105760613271867671722067292308562807374792710220415363504408627147542675176486464873226013782304890184550132711063082245727434864373686166893363515672747321245177774163733450636029715203988607249843680763758656450264077567572733116800832917977930827855315901775468531921081567220417251657797556351748594465737516739976252248376610269099155453274140818711119393657995839491558217225269441803240631073275472533336586318721185131717186858319302658167420821104896375731061907594948939832539398650609156385690246317448483204052598886647047909717063518179449165228747498059046332672057351973209519457608340046701923115058886393354519977892214262668506279767905053600012007465778521905520987905567921409556267017276973494982483747179659982894452129740849763745157551922220869125641793685654347322315357545690210872989300786972797992084723239884103161785378743821678009682222755388794127142091530465894663986005321530412544574992535344201280659513010059797477898858810597799022942428470751971462112927345187892148331942038385783268775566336310132706214296216349523520046268324344319449560445638831155318596392754021049400567179089236406966956650648378752737597411092844594762355403109442767166807329881792748203047492535539123234584077834170377940279408216295061781732220501206135032352932171773658522330740091303353782970398176960946867104156590233628282206930745602769486634974838205754362273429901013679121039901484696650655260550768282275892881510502224871952418014174361285150497894864579604198799787108343499055219623992129318380606470388936995288506887888472724202190535606524766172987845212486549433013314180920683963073202633540113336479358415462141657936289471723789112380870499289649010635738038312046321990984160981348633259531600273738456038416533457832277417029853359230153167497783670207456570980335538127603263136837895024525709417559047238809762400254531678451494538096082614460464860157027247525537178002722564621891675834135546369638139298316353625133244041914279235393985021266987139381959484137653273627402592442324011865184221181088353058229063711501061820246065196907834261761134961372666263761324296401014933020771758830195726524367028107092891829982971533135711082346476939959019854876308877848582007985470859794088243914139775531411575199864344993205253882715363971247053937716573082363588784458625117059165638749947448047489536360086870676614895804639163002504698213023121836351452778980514609983184323976472973553148811746557540401514670628167276893275746502187958498106577168012608387172526617693693627864523052856229783716798245545892869638982643809576664606273019550924761537880208195784908799070516391791333642917563765551726842713658040336610468889976239122370328403927147747234331233385270303130067071878788042656263964730459207083395113086576724462256023060864637910139191817897735807418633848481851745483644415518298464640559616577917377220416394715232997180148988051073432738259499206458939131503741335772214647522209396818213887834053138784803293582370931482351868356248947157994758974902295855320530597357518466627906576795290825836910096085887025847724171044414571270619766495760563601479291622330518481590868901053539093269862016092938244789630331578428086451199986663562144877401512870799818513437446230889266032639046087919380844800885264949615196999452791045170774463834275200352216047059936502004944861016427213050340828278022035630684353150592061132471832687858199035401380619879252719325789301678412581676819467757915059604706402683996779973503706278466217416772375091442016052543244881299422385362902435702235737910716740764672451008790182231442948188626724380033413724021356960963750793512137105081143824488185429905746800405073564464943944326965794894255370523875667141397462223791562423720813729323096286660894718324778068719791536884881207024332857550991426320704142550037912618730973500792825503731771980197272205791150352210343014338864372423990097675135929397050554094144216977473847229023651639973104027333607088373733444982590600727708889513377353051547276664198728343542157369620277543674014593173861074275472199025978186770921134818740981224624801256193701179801998506748052932568540578292901400764176547264984762325672084179666952348366501556705689232442248868362533279725112422733927125295682828133162594055139001694942947115921477949096263675885133973516695021157278975101282993781268301330899213894562023549104029487794538517546779430815682936999360969824408891057257694969643795214456845704132006113500386704576883419375040812194018737103026814035730286283152984902022756028113733880711247983339940747104391292456773454596211042153823097764359977873380302576281074664051623049326029394844011062096096255645694485038805868974078210745004020943193771330373963862189755778590600796243584308924966768170303816280925846467528669297845882325749360644086137298887184474574942311479903380856693300234993951958407876303823761809848669400769269248444065533208141506989343663490088533273666390439408063658756340691424104979262930029561973211439920421328762521383609482618919160668098744544383642867587892893612716527901842155366704943302035868605293164045857301699683326510255882151661679836232990981036994341677678211175612196843095076293907266852246320545668586942836109791799028923483941538096611336792902120282962266853165088009961739329085856789439676350656932906080890950110324197044941811432914053471541081102423906274536281088075850507934616416515403651441026318128001719778089557706040175300629080631079179209885433479039729226582998825560838740169817748315076373540964213892549425650901266387676993433036040493494934566793009390077897830874705730497145063156133693320522550779200335677117393518613665901207991866708113433078695884275340357911769190628211661257872780023902037785172082963911391805561955000277981489437495700232855242351417827917694769064824922642606385743742268842711171182468993117897515185537361605552458822570066504988249996510691634134812941088783624240264153840528066034245118271945135926990623119212177787909201273080092251960334016506116798088418875286733413557598798928210154622113537426886639243426626132408873451643251490918264439019459668426530622645657301564891872752943669266568158670728697502000897724004161149366539853292802277145835113577764555871374202456024971666684464637209002280901027206115414468781162404337377784264076483788072055561022120195093381960433465561448826117857366971569764428035762549571486712571355468146699856430348465428803943758664986188376250881885863131232023710873336248850411779890938838584228113775795557328458468861896572368843773460665283388767724190307432656654762884959294065512249620800010243001089355929349322123209560188794561563350029220071069699736077190209060581747808504489935638373231422615172784297194941895852457645388712142681903208435349206920895476910530319546988388164542996721058145040228075538713674266886496455540192238922401190163844862506194830342649741683016325048073816020280758822944440671498088178176240094848069771053929350218197719574762269972514610175590912127301177918183211358140944751473283232174237481604972757966845455249274471129970670374156258384856974553211032640937248603596482707500280280687702854286242579065708413402978356616520467014053972407996938186779246727540402876533086704523609615836323652569344809285437886837939480940952553475955454645454253227136672279456005033273733479739388645526893513688086524430782133014970567278488030742589594811208556717190737973413140928530348319378006085369897581880694527009798444672521004792569550901862611444661356237150036116162456970973918483650088873495548665980915872453417202659756542166394414679950203718142947003729726853001563361373025974551626488345112646009476041611917462657373960112034922584971608395785907819587284494697359464966324450979502930010331294604900360169656933807018417249128977152745380165235092525109865748135471445429448395178144730933590155392962202998305891399137537438421629871420101833938917655320498943657910402457702777860621579893913897010701869201002530187009468624770089896318410450426079723805523835906503171810014782906314655187850700377543666148502129716156660920361809431541420782927107237886367801269649443790623709916077632324929289392031382483784109137965452705696483808595117490462408217781312059814021872141471768795700726271137089102985199360949870007925501580391951695753684318653733713274338422497179715343733182226133782570654596797268613103118426616107262845281097958699903136714683824219880209043897973646175661136282883205202164646119340131437706117004134759126020555432682989854826731957019743032766042844847579939414937071359769053653192375894225678965002287693675722135136821729953354256032203905675965128728836770479030782444147535148934078342309512616473785807587761683805879866344172703825599672450637702849362667549342930281956216107344044302513341000257258876752584483249741641204062233134399941695180073088640074128093848114342473443152175740359715251219280463877033584630852949956274265091701385769998101361742728685588068683732485928749646717979766233245626045843351944404187390272644319105829145295897488375159931285843425319047003101595093232421858054025677573520224320658805724768462818031425146872843454518105880230106015744840113111540977471521518752879629214880214896332995142891587669227601937824775383283728302104071757162918534949682467199345598792470951118877049130291099459528813068552748778810818211579692941756587157592217156511660351132767215914880537911160959326292146906392017157449790185580130680777447513171618585065142541221422224070247056902262187536916715819327422334460317985856940892094995809178817845240689798988550197345109804606898482479368890588660439653697337978879867669126210101577023397447163372456539711797453518374983350905175618990924185082366493981232886853206441666510119420717331770881391752432846902056031043836404731896852206478700951325134824226463114858727509380731229450005254300824463007985895698974432789744072407905027605894950189468187276292923998553765013847676217455866701298208713914851089377360407350033435887479798130538965168027960964121524954012485925796178156766804491341784977599048717932573688112474065999550685323394368603280831224478482741135325753532453808128290650077146044177590101127919282609247202908215520812648916863091270331087723941928137975839040350996822360796835485665855985662666159005918282629125016646528390657393960344980565804945650426604263872070129116252853008235728532259656626787788389390834670055295908221794347715543995912227611809412912881634032885172437359014439042288303472704896965214351983111848616280232043792479402063502462883907908949500013228383561158510460377579042672733464718294065637499091740315700518082278717439182943934247354975374272808720049954109488519018205071920848778372313046705502385225509846687847913654442748436069973987091574733035378217622133129470566604887017544906359568169787499195967268813655121615293807222506161884365724755608971816297832215341902680274916974686876401164969587470570788270125685371507123193919871934337252675237651246617215020626182850671469605871469155612921847940508464078131957661502731703108172799335991225952814776630068949676312930482762520485515546131048289865696461416934573627453882962889349129055728133777890859261539778418376652263060586875734672437543949056313699049645865324270084938465213367465232785482909395921361553155853089627582954437119367245499894489833340637804707232350343602680980302094651390214608441724108019069157523799412198487696205118770976995438340083377116511583932529270645124279176122815682140930051040452404249264591200117865424486027368159131152067768713987518301619100846905069908462820027596592217146861693003169387157950465239472459275294685166133891296693650146707620027898428914759898741384942865556266256597452958539465412325068214029005141251654560120598337267692111875436551083761803833327900951044476894135359115147258389966897431322169269295014673272126216229101497502765994857129178272692247219903998770051366920649211864333952313512528970307115410052625986034677954471894462242204883707447146146922403516768824535197321826931487069896337411503031688342957513892312823974545788490656836749314451609963443831560267593841597204833820276551813116899389598264770624293274688318713908027783109068690645373473751789036600624119802415804239574259106384488050562780085322132005361571234237408151312385029587857047711062666796208197086651866047521332935771267660806977295950618986183852582274497979230876267628646428382553898811558105784436327348963904023158890486477056050423405312045094170235607035495712665744393487234975755935842411954248336617139275580526063266499784063301587855033298857720676864343955569635382826484746509026632510543903234812713093332609503993344353986760546855182864686877908215870044796720903827256880867851986886061510050774495442720915396627578651530816504801976410572648331205623566350628965339122667588432766555539824283077100959531078116931078601685586847701367985058999322848821595141040582230686023611640146289478536931388953360012597973289407926047104934564282508179656134934231005265580587488988387872252072528836040415502887477898259539974257847248492049154303418776335620857869843146684450077198464382599154135215245003820954032411029631840550211279218916658695652397968534154285430690325990273895251033887571672103696661777673456688744110926761848901788144239965267796539635469810182772062816031065071617097779088853003501825860076785758030272035366257925171122493611089739849701562446980165789753591283620241462554955265973678010251588696535167013464114150510879850551335961543798247691735470199411337346237406792944255618999256368479807886942488084118299972426383612946884025084184208191477453335811328356752926835096853981649254344167677034562363726866774533557777474582715778159529747691846964024853968361015330786201091908817650347948544333182272818921348898514355961885364843763239549541164467376083003905811215459165773397116720271334173684708188310138744094556847440233192926745755078005694572208233755961679209740275047020784170610633990543998454806126181142829404714874782979516155859179445870267494639873750342542510043583009328862100792064799957072811751538904430239581632093134447674292426748688689809757859295733257391072919468703887463741447850817563912366735251676571963208807919213594478137170453568407649995879829096711015809265367178600429670355306846544733705415449618041213816331361384792316887384751137339897690269518276245701045313630863559818757253000426004696740770406379756416322363229593727394389675984106654396994821513004269679895845268975939056785020441012981539162691661837943557753879115104040062950460814709008095420708045550457255042124147927396349985361186832266288099109495061135875351783183862451002625279628203237816044286409302853522689988618238498660553215529504368991039118174016572653716476210401771500047440155316780473411563306033050312314516554275798372864921616047426286971279373834186504741427520885425476935352336029240573084744292099331161094166182088141208914201231346385341471323687829135033592518708909174616927445856916997055197741851790025304749515494387103944826524332175255559550191707508800310962129544266262194934473221224370290345583436203572942016112206744938049777470158579137288461606035481940293238777089524096994680392737888626106493549897718466104322530695967861808273963271782102547038485394471965064377383232447081975400884605668460805501296428343952181510876315323453478994806015300865561756615252107048762558348698414739487870169987656633944153228321309918609540889103558455025459454974200166532396103860724924864802259382486502195107235684026413826214555577030573031333507557895204075509029743249096820266036976246387804106621816084832723390089270812183328780785623048597121143791597358045633399340211978833654587650633114337657015006902746850145719273212996479233343937627855702261466743566496865528638950458348827996830073487190698309901705345437663844009028116024074696017974369179611605268830198847984906833758335105545794161507391956317859510220785285376504274731751426838570443761338969546980604226935472953218768670350256613028488527271087337435629127280849847320401425694610096491763095896033200276309537947159125040786647547398979192701404470234831070764545130766996248412908263641223135616622484459002221661769316221851623077401117690392261849141003863982640748426641981025443366462634583180967187150102514168288154918250049833778701579682884760997833875084857934802890997436903388976285143502516065378714505186086496824346718334520304668843775143749544285196212038135151353735167160590454881446221433748448836188883143115359601107570546755190433486048610724492589247925961521924353351790824658456613899759391187914730957533498090064079575498696777047875266260965574743094302989103055979946273040334124581913128700981560422985716633856691910721199984331183132268455906887035553707410671007999838410928252987516942768369019156851775145703081072647585680149697658579532887180970152139849711834684864598896593426974083813131932121563004361873582314415380973655483114592706305388081311857125638854753407091601248230225159673483736259852533329471505097522292444456497902072799098464989757740220028588857538848956990081031408986502656123212459500469084430867758244531181843626055470788656964004621826881342669773802452625247632750754241000404440095175811226916717644938486347590965337669146860011691054004409612941369150149559461511449248380606338967069919769145186119522887444582101250127901107314264015431494511314811045545471106803788550435918835779109419833009623736804595031942556326368732317249520207110554063130799809706296178419044839821460944785639955095244018518628034593619837942874950495206269966167263460313799513158397995127581170371936761535019660136927467448250867389112595124895529828270224205946427831376183412597418337847859046846269491138587153195682842240571994676881638066441979868144534055798700331787765865590961342520507212876192113649493880379001918376105242755302212897994302456270261307000378874507034095552254666819524239285473791973240645912248346371698435081544068895907455527381079683774248173938989831363515381275533815379839869532599364297077680831397319830567915025584123029929931555957023313370963474078860940407398019808624519321812248096034923173743837486647735008145897722103964195627110485184573298645752293160911849712423400298783994614471306112811842977240051456221794761762757066675703312658102203493709604490493246443187264056054008279349866075239614770981771438397773132159816982777530494913583566381413174086380801885995085905137608385997694807880047929910230775774176611575758511140839904756399966222257132964069286519943805746615367537851521538505059060403834660149873202610054117229363262814835504421190598143282875547763132096712790094768970464563867876197493187710901879442907377476871907132552161089613160826837396208001323403674126064553956378907693827901338856133452119551444275880621727765455192225364847078050404317914183174696509340435637822586953798757474121584244692410116988856398571860724997216195660854254464540761950941346740204121725597092086453423608246100299429873258945874223777305326254331558557956993619266573628010763984624996022695236335986877241904085483948609094720788304942654717638632066666096000135056761739616241410688935150818587177561320890470435534743481141563201019025945217086354808363037305484822545208664758759907937729684407542103399051258342463274428328954218011510217559859164435271673912044595677660979872390674641370729673851986810997172094895413312717771767375389121338115680029717376052872545628765961023961748348610805482113584079905157171880892597581766014959059820324795127251352904158058485853543658978875308795224380717781130881696322352355404798970105182134628791260815941152482478764500524292374161753553016145388405982020130207860897747545208081714167139072063716257616492568711648998793444219575695510861676760715167305178097428221465347769770772160676226092245900711081391441345494580012598713975152619866880881944193513243901580054573239258815228244882938205940720220594485714823903241563616637312737861926033746211024917854583411810389822385815772144780767464266899934605994932424797428044799526624698945173287369367394354586870778860478031775079643649802167797742701565063644914329622181533976959398795290844337495570521767795129770780141881325920781350589032990425522064803284412364539484474755583643743427667677522986697368134648023740708201133201373609360776689025969237729845657746060740317164481331856505516631050247065488429885038914047558449232991942636321014087141580735689370103079463492932182265520639877379765574735490827253894005858596302792107621256549827493105812483941118756560017559542713067492173922730365240361949100771486696615473584265023667495331775171508022407802315948134942052847823165707467469838600847105283592691451129709557008676698774490507402214877812379697094094936359631427576729173301994486070078729517422051973845229896040460933629599235648368944900845048954181435014055793666032895831138669878749904521530738109265870904649705584824573766346897890112281539057909883953391540102414847036654644174111188829012411796085982604203354073330429266002926153927681280567949388579711965083465225801690621277095989455888042919001304734362730035022622470290029484504925292931548353868540319322890586481114289377871511205451928010397592956993362326750977099388172451951599077665461711359437634748896349090613195812071605881867271714277210047910544584135707603457324024549391073143980849909068609525370263487088731251022644287728546027053719063034742550014570962058624244367373785189033655019518967199663225952854763690947621764482900447963217484949454333748710581196922125962672727644966549661069722665623954463902126684179868669643028830537435047891365817940906473925066277847480889783638468593481388039927305863230759415756416582939274090924896004174011088746401443667977384170706047194366366364590160188632188931930952638820738306101614421131050730074985016479078910156465388380157951778780660941944051050585437191465998053455166006696947044605809852490317244309255560388349456607973938963033545687192907490044494644093852043614853432334759524265086339298411306055915633689593645397543963811535906089383246687002547578005244483986191475968208041512865893591661141167063915471931683630921422218264456249144422564566739049305380779980895933509048837214222601856851629981514154593131282672974820624414959254467516898362401147536189047260427233105647930756329137103469525295088984651369348592035429243557526454263745843437612969296167153011182612595463889847888267230850567624549930604640344431498495204610082819686258290418726859544137030145142516260204836745976118867154432296771082032080184242756390689509873060677152667185466545043251170410684457389182932193952077071387813108683314943999927111491358489596011877179906452684937979522171634941731500942976868440601017527832940680126782736047764304920113065326889297003655858322960544312913290118192666890466952737338021208117452214787652323384009165967576993367331525510610781807827821648012971752821622752896457283851322356298552834651601444041760083163547968430997926152706940763160207902814912316698086254294746530919070158542656997742838927485896721575426772843802260244452121370496270944905985741082902636247503468633062078478566818094041772303647140635453037095940877451843723434434912920825614487093075843961769820793454588290388360820288939395603321298124937028640900687522909684402276229680299598558532193236918683821720314159538246019803275816288713905848287622765138170939414398610844380216186718350203675996567998417637127244108730213316000131330232054790078587634890984397511560124398956437024551516680991299935806071184972280245225757033256702145748266547787337925583391140959723861942871973235222613290638422297668213757542851087359722641967706509464432325886301478502956796639195646787228817474963963811178434439115524371694230642469117929391232011027906688943883755242625576705248229774428632984625034044236609187872554003181037682721784640328412835700021732104093458262386796075798107849508432245326504978029428099114407402980595305727258955177692815027576951893728626270186039528645713587586327304954426620238266380829742154892355850560410983811299320488195449747709583327776688184785059074600066556052377551466580932027762138421823542168435647079853370060872245753976276287936774339979255095039787435853203334687894488849614242524382308167106260057004301870714495579584310970277857745334947981048806011318386886397416500498702493970602915123392676798403394478525291886323648055773102808851739739165225147506463152665561915749775885668515978110237172338042835437685912253391676799284595530521219991190467514106235208583149649374523583973793657793141695747060877728613601637661561384212501105653882258187245513391811013880428559772027909763778698471180162160477771958440034229791281089651921327165708537687725056447256347058993598222735204191243098023836526251203149722141054670825943942553654334277236521431533415925861813965202006491586899489481876258894597748333257950260177487251591693585338254875302505128846493279089103648319738618976806271947615880071780944420484965527643114750884197444253708299522814921567912053042857826786848745902561324659172086483204821939964060372440293345463969694164519793787064638438435563373569969699653016646299263576030210990719034547503651085692603329846846485392001197813810971824656952497679003649604404410948281774902466589126992475757102214653970164499388464876219606689952282057441785328953399417430463861915188896627579280106216780551627028973764566813484604657500286297922803167067948024402167338881248530162775307706173733452172584768416817463284987703533691108893818206174021212733298726924941393231561795144293725808462839656228668588610855642415915054475791273495551490636480994893617840041202943071485527701566145332980574215528792007363837684105817647267515220325044173162468172989029961996379226818015711851511060489937907230929032425671988507745718702604531723255494904188967520697163088130566038857945253845524444529111810691061493365185976475152412132733677275752652098836239667839021200446611123194032493407720391763353744328753911014293893164688016813191172793612201162530613568244846605003265889363787037949549894693503629819686579241016690057207896883530604595295596520246428060332022271937653306798464194789685904855899943808043077200762498249894191641963539055095585800671781493945298676549936572831923536344203469777103833264961238571215676903230222049575172324807066215523919753900793890723654652032706586109238846787627194649560080568416013599084053916287781308283534312870585401216106335296690905162883384759632066754566207683743273032847289032324525399876297509614432248656199839164580147906610422109630980265458569906458079289887093190728002297360251653433295804130899174828938425844518222772117024608144908291945205518184032917623289127401279498123868341462580378757960516095666824763164894856589090090178799678350304215832088699933078456968925028628553063841827575271107757054997357743839774787310216113428643297454986373078802105464983506255991833626983024280243643993941059193486111666889227749112515983497850802154136744268163123156836380725857487686527005246063465577228220158860826789895869281167304576740118797812296851866693186826833115455135468118727875579357730974269133242056104241929000846872538978164474782266725829056951084224553241355247587757644565502904111592365557002988862185440921832406314804586501450351722234814797428983908831978162963834110787343514062916250860859938135087906050239060307928460363648049671803900090027664934260852573949853844274980980360296068747607294197482010992380034722611359442320911647004449221796711180311763680202978081770942159795111889514063590161379882911550698196557656008793432986089344596622168414471376057838416722050039380645160696992030691169010491710560155741528165957158004186556438218725654683511129787103523042420376109062241422889932694017688543245692172893997544507818425454555243078359657762476210487190991263195030201623547526178542025860245092176147999286542774024010847170596804846430231975654612470237497743227001655602419233562800242712065758624764093617457303836477987561136320113975227117491174738792002764564779007233831831516453321488308808038373281933484296562710743735013952307144811865462162013784666421386032182036088830936631737359240511844596377653523633917930151503721792404145644642349834481486191805997448640922050282252221271145365060779203048378162208707657964444995451367560412780374683711187716486334528689532551941623985901404475054377399548140172461060546630037756904713467233309419830688036996402279775544661529934833112618707727949250858569441070212584428046911688502731612862948004032516008968238360042324157019675278399122441707977620219494202254813040464506386427754801201332680930921201761275756301249347844416655145527788678428733522956663896087906474515069362128397303106645994738919200350009270133800347093436367678280809952116585502336580428626070252572458588330669234938287840142167609659983375930408361113173523635150623496690067099231687044888521123873160626518373298450452643464050393770416329939386401451700523237947279466092573295584670376039231545567387621321536905596220314152779053993899714248261342771325943396737014682954674204388860631794753171144061789315402143431644464237281730971310939931358387196705820718212896452702371272329827354012998056734183973400944448618690905846497965936515767559733733545373607925037949184140784068938834450982731118047993931725030879015091703211952646328761457779829546953822448563732468194027732409475649826915319165742213266552240579585704885914661738949880763206577163621178064420106649469036295470472959363441941584181604300491158059993074542117726341385381309070892260356357915575616379313323859843649412682761134086866398087826302787554470994718411736921623349995625454271998962275568383262084602171428082380460122250147396523296226014104655101550200558890065864863219846930112643717744212615355663497031060862688902196550799973628049549356562137972943375139165335729734944051923372547796930211077793429193798663056097265613610017951873532187137207489962375694711622821278077671570250254180991897810474839809336875614140657678610647197014810062427088894680164659606484431187385798380651471285431968217377501102010156764608855359535081962135722626700739411909854889314898474166908455281963688107181876531558356355711916560628446101429608053394866404038735632725522795755600906239944921947190554195176689025102903628519804274488290585176194598608794226650863072616347827855438672888522411987292429064692771747961923627890235078058713236430404729521208238175869035813837704948726632568658792139005871469535281535565262858786428855007474215618413550087630899218082819883413982635928434323457594490784822644849102107700655111947424172501030735549643434481167282359584768508377880197134749307092338924968408486842629333228246776526161294971593018784552987124682860575779962020827341228320364111461841635640595599763001172536937910006539490494943437220762535123872785974417713193108093747488784385569813445212689203244386425877157150695521940024760875770565933310678765754788437858972128662884409332297475505207969139093326347609961113390721908378211455810756760398790306116153816370802417451709985019824028146309550235517516073787347016850888241281592632224515573928442446898621516646060175852076773722826352999263298875987072905408482274619614468627305274512200413723172202142704171397056194562116195212029992138067007941731453006462639529685038053910404927245521214264070463562398342324168049971239657369626622256464303936637948566059020305457473713683636549246854555928563562632956081795588275552816352054853394224246395542595429934293681734386216517267691954248883894017627820085517504304614725198280147770927236549621874818384868971508202099309001970079737125864444138167113792642853638025797485156557664637522592987973646919087622632277401629265780994183833189297988307577513045775340919293591555050163342022335541377568452665449174264215210159953431961410547772814538355254714096020791929039259607501537538948905111732494945040483017629715341142794629328198206830945580722626267293335729732110669490302897215582999511655852122854141603796433268061229054410948207389315831744066981676549582766292968109477315280939723857096094676067267810104899628522062165758105072133890242803061813329240565264554509932890435286553734639457015530791451740744014475729655537432664770975247509618197445678583248803951470355306130500565486144724751317180207794311488028417878843431676774324675026648132462855068161888953092911582970594185942304270326662674630683120804775526801207276274831584093651578374989631021426645034509144648421941388949112945202549665248408005509988487477569389240766081248960857331535661540606611292514394376461070866324270577767988032818777589837595828374576218911409706209792340557567408447163884787413942564508070991427890959543928329114207753762975387194278097471232159964286084755307344797620225184044863358637470134687042410654089597037880955468596111208999871135712794925003193799615377133150005781589892147808013628697966751148948380388625844117231507273384347026538768921881121925913365977670368168397859642602349698569205838827700465749702274225826933449009495257678412032182602755694743741705255898167202543547303303592816511638101053388784873928395583273204021304674337549979490462430930282676591159915041546316870168220193832749572593826419119100723476058781761293390304221916102857867123048190628139850116229637397014151729240099926733889153122079653394839151810017405456734733173911897450863047483830283331259755327196972799049077027523004522052889899285702090982498154086619404315489673420810638494903470246027449246882503648066617945267377632257359241294682432901450021216940827881215457354504882527164632792632556654549590493585916697578687023398173996983345566896200478875564647712275970049790450580804580843459133072841514997282239499662535971583115732091707525899815695164821046262272053697509320128366764531556110802972157581157271399171325849566222006155265034922454049906955307511912526344220727559637031745795889171655655818597547889104022337135086813632332431881697564042949407335056411963311239731455761680653618251413303284498603277819229940048596924413367050735981856983543595881838724053653410476688016694295530122754496559794971283186392866188286565185404129684128463834211669372239692260054116436120189159491176407961269577314302861137325063685477611914476462355309818296634699428733988227032486590770541963854318024784479855341405099855723054423733055586335508133084119065438308944879902310231537656885860225054144016726639208756240616859189832728116715851088891670323210285058819563977471211568349223549987584345694188003878154809573204101079944211271242249226739003516985618897479468307374710192238001122950388779566325706827218811443164752272729791399588958229899039667618228901626159899624780865777154629398866484910952354891010566130798418617133446949918236021702275028191769044056653389118847306563566636550691799971244921144994771154566081823666640822918250557495475561142704125600479738601444147193505488486476056721480644721827496086131533314002391150362720185319301394126545557075523018450752294807013003692203715372502170511393561236830804045285337531017984781230429250438867272165472516517844249130277658081956652798818787137323585562870555039236723170896358005049333590869755427894356815964146646085444316728194810477562945322180654093646222231797320374867220601967835244454650716984818868600590218667027861216334199150207370983300945241341111209644392215806721178414025309110629509458381615518068236808287789510402437794490100657274793348089945477533827959452812966157140601005906379344921170571921443938249929155462922045848516128056922605669614890912617332552581085991268043882845037553545511383881120645749108875257731732531251596797390460164949418188702620850320192838886182196346071841703751310653603011904916708385776651831324599253271483985067257617845659298822246596973653703072334808655543726510756004417410050960182592768300138389301237963843887267470938339482646414124529732470682087256924304960541870331924059135982366002572909823724442793099605428593841845474482493258012889566052177560633569668641143371884235439116283353625488275394530096336060379192003083087283178925904122893609293946360982765233715368713752306890981978233113445833736963791738298400632654380326192377511620551006533110882085199645652627721002992319428652306110747351289785824910162164555793109736522685158807602834910819853986549117218401216465819550536986702435264597546096814994188920767630300215663616511651590230452160488754002057734018975346527154463964120136329931107285239341951983189042417871398397701056315437517479577844251463857482951053399404058323034432562715370886754701016067609573236747517688721487119580774016048943516810115779303543916819676693492511077924044336117393427285699949604945911966588827332893110659339242528475731033849259237895151338196482517292410292813477949013253263172040228396186752738047230797954023703306860574279421923952727019503718177442355274655050850359935943603004414492935185197700539098692908590347251706468778403001213735180144535899461060581127996767159544342110902799854049456679021960637913504760397104472681587604991109001530311401450132695816206030124678490313681743865872070946580712567467714125977499396471564052628773213168441746927820510960795160399641071793201312474089020143677224251782143044697214011020847746684234081901612058194813694953721127733875411658856240433045366482758708082370862572294561525704450717116015111823248282057202304900746901000506124485801149801670415953653732634178435686434640535552163429423571545753258785745645841647020033423850394829638649782670777438677792441976640167997568048078778533997525988683799233858382072973943809329356008490523450198576493975817745035401068604381434361695453381396967995537525499304601730658092532063520907246504654782248171620467349723592554381123464597173064175503701500112893593051161386498143172273955859585102613348764522783744036747293495265738700974561975977123294787637339435963998496288908151266396718784338363526340337584065616935877703900394581160950200537113713201324888365953379140662868059286170836151193777071612782664274546310436896820944053596383612314743847630868285471363493050470864576957568579097095696450145306447811562995088199283772401482819791228421180055545993337254967609534897055170083025225648256935228417626841559575831641911401704244747680222043013793999586524563310774236561692722345719106134970217874471294462007966546263336850930843727568162367303837104567454719301402167514935516575794895735847513597753962350929363235297983431364125557400494224028962903871617751895652507191830449787077725180676525705948623944321231723859762712505305745629238654835211842449889506401005397709337499029904466596227729400798244808194833999624489207302256348532543349150756191241294465840422512626122878604581930271433474800616493320549823183316518266719022255815238840925442432010082894267616144101140691188588649827098448549015266306046382214245048941142892397130517319798702769686827950766361659845836971516332629320635375503455138217898828944915170591080638472469126844435961924674115938832238189871145865732982870573211735187301466634657202902270933393303771954293612894949679754497812343755048697515388980225133091209492650877059491535184095918973611920993748926132609166096358355003493560476628002352997797880349887648763035271524667608688158820515159635567171743209948233713791583474917023120886022332252642662746977959373311647442480328630786091334154816352012791066389913534203748573317525332095147609839876236236294165305928903302334922969636566131277990269830840737752908173126565871885022363450672499446897455318185887151263938397777605705540849793765781429992932210177763642423615329478403052613540647761676029544886365847025523901514611967269118012251904008309589533000930523535141280323058265555757807308297407588239007604910547008878818872074735918606092683375184197831502856601511877012056565403135598636548495345285505973101396221621125631992398517892867596012928767704300995059723756931762424355800934082761306905625994005725233812272845274339479970046368958795126434055223497631131449351170832047009568746956472305002611219829791002588681715396214902626986751564008450061813246860761658911552791434887048471625104688680990908165882493219735389126833722289895654496876597142530702694295549741078484502850122625945039024104345824063029275287592185834742240303792051008856218902586466709090663421648975662051933610686616247754035216878416525210650527560699930582681785680983243931736010400484651284461842687460855970901002620554260381371993534253023149700773401820049397041655908342047698323258748816496366608845351591751432888534328632255261560275113021801526756757608382158003175335209498970730648980307739970704251145518278714363865328490449786524678052212645788133244609737475530611855484175989575927013419268918246623992938442018553657218835080214509318211073032440217153632193944703777981264377668619165034778934455639987790304333407699654127231457556131076566872341330494943391297637554133773116184129167692541108534132770543519310490670355252834854626998890543183966973153863817538114015669807693030825679921189420031477362133169549682012464438665034982301058520870226752775619627015474498935321464078444092048501834415477594138550450431795344611680615587964762165549960750688443587583785468192440817769072688630185681401798615565974144608572381818629603386766224692745357675021632973629326754492847340421660040995682829538543562634448425613908073348685833173689894638661697568608275250825289920459878020513009811210616222027565080522588425721040896657514490578364504429516685126438406609108885367209124939131655011502218984321637552611483552102243458974353103988179054652173641472146407492817189855125247820715343521630860982071329101032899469161521250498171647782953780506941153226381499353230879850838664188180446571581970753182773657964245240530260844544739347700235413267100953900273209857099672746699604160974620855989370346192683298284885843670002234044975892827282855109572982710984894284859102745175435525150765530396027023378263777218006108465366660095114607887795247954437519091641632055666954143583278349991823587624623043396211447405136214101833563413211385384976784783265234134013793482535292062882462978532468348382229129654664856255414192210700260319959586720451549267878422429753788433577026129515288849792027247194074229895974837169714339154282559559358780824151259535279963211015276915688228360046069257886599579529449061228748104975591245957479952404713069634471181939802382776073738493064517301221457415621982518891858914785513549285341383322420791710937616652877973954942017925436582533533460822192452743228297899537642350539946153347835868932761264918045325540818702408913021800844229466905822645675288072512871849687693314334316925917892345297401447761709594179821282377563878787099238339657505468832455447031017153734781692425710415240750911268332371769358676380048330897022155682188135372676993116560660523767099270407985082025193963108605451169295535069384861988019101213048481938531199061036923008756169671343149120942374761835395051908470073164945264346536066041426927056904921222581258555912296909124275445530326195516618173603531128567720804598812466757905751854219720759563053870941536431022549442422171805140742706453454517306235079269433752474883275725792253131254243679753786740407813905179810979157457439395807334977774258380080403059878742694850292399460198309085877224450573815906082795529462192021433531379755366996993592217914234107347081082141971359801458558516122147427130605060633405358611788405974902304412034400193588095598219623153384118354776932744124690366059079889650073878918121108460128678344782857324643701663020441159626333289525186215992964981147459793550262228389895468215739426979530881951257790028107781381457263040653850711100342348816510622225497754882267392055140224681038267425357129892867475419493346448775830001177341543784257949770450997758604893133271215134467040050492370393669424106393845233802066968305789264894765782203368979910496480236117085191632594736486305847856346250545025010251899252486474870108319129704970004727767505039519709787780966623511972599228291989849736369852545077793338136044492930424334177339598513413782484065816932395525773561127886237015119240898750130699628320866397599531742354294124592233176465786395515228318546864662206682042304687595532366330132444145510930975903555949639612844118466344388578388309798482229573886314529380452811432918195974617641767889286122336734709624429665617201656579033005906756164585961740942440361239614424336215313524395262396715652835373124329645357638065028526718965608427048763870253438070469020667248844596409021562196929300026873616410714973950459150570490619830963126673403234851248933359312288739680183081048116778971546099664785520251297108271407832170008721711280777149015985563408545291775624183477445050078014140659348085338743136512714883262266475451985997814946184063971108698826774409541821574909271135221084265152332846409642136398297940400017962282298745991168816980237281467993270101166808581698282195664365368000881675379692268271625625655961263871898814346964814693884943545258569745220844836408143420666527363284541135934191298103767082877550841965713700475407345110995081480080347491730217644836876736456991585512074704529820812450761644395986263689304266250190404172517407333089768614638034682865551537602622977780446663103983425291162234196932145552472100104908950413639522466443889724971177471761660355987368973314084872882466309877198573636998367408613174457709137917380990739522847805854879771731674025997918246276395506810354599418464710469980749940104423042583235381357460484363479094903584410058790368914354637302342576820214948360757506871400601949096801549891399168439110861431924450500743494802237637254303062652037698046347983773519049824623816600792798285616385542161413165794399444255408238096133110424980800665511804056638763637350947975763750334659666792313723804960175830164991580234828134663575851541764195152749381448316636977989504132852467375083391437143992977928438152417389686616366455207302340737272762093022902600106910944330910389397692908506021142739938319340322242933173053705147592110599837865279608153682119779447720079215665060034704651600376335323407058323174730847858700747137474956451176542981407616054877171446699858289872208722937381694845350251829464868375365539210448413875440112230609865457449358114179617709162210812872227288395601169218459015088877778348766582129545454886287151799866771413057118907396873566856887053169030821904609043910050630293318849007386536074126174666055071146016493559665434345004788797760542232513003350263919105362642288671504886971915419409844519685976530923870149672796419111581467263380095919867033295103154505231613933581279074898486438386549084044460665479944700461185566119707773035876217252035592292921555199559280512918098045962164815660938183695998651308415622990120541560887866905906973419016157098309936057984029321110111153594714629626024600131979193679520016688654089330656923998408212636779576414989852541638945844188215510048221978862212545758168589810651026139894379530372356985195455993060366101320031807421617216248311514993602805931792475164703505268657217606968975397837197858590669650537656590126760986194765863451445546969450806658234802892818864154000569157369013196565302605902948166072261821841669506916618845998355128784639871295840597394998362581711579556889808488728605325060325753133247678920260669564318766379635777964646280120946623705539365844974293200837937069790558068422100085783625274048232507438392797203674235527393079638171195336286730273336986007310186972155740764711409019299435167475881116936071544323689826710602246879830459988821705658822936408211244804907852021376631100205430665741584519238490105397183269524945931826172515802874883502179798623662221503276967765185652843241950558681029557295064968186050999186705556787214145413830739117323528225150273593892943436261385061453947544974964650841644361020726210445255520958388654072437197793536987898872606198359893106038701902769991156981883940340437777080257315214641936277190006703110890752406132816582163435009953917490365398096865404239968924265622070815071840632508789269741411755173105719492758760425680646019600869618261074903959669171873699959994233503882576001804498750626193442815013678068726858466036526764513011838574502372466748717622264284752061844660484783299911812407117634057010084935219833691817726223189492817840782650474829608392343580590668193153242609160206497756919127469302949969160626071693803252133070898917966200734436619715310605759793449146490967927267759126133076946427234705189971370936512839627385980187592651848042754912966780988454960440037197725118947793938975420296183976311125322660705973398067505634506241375170701880068690268232261085049749383807619976943478841970112674432805326812244540573150125908991538682213080203658438972105191421619076004580874529847319594413681076224592016794470274346664511867988414613815412305740068209774956919228203839156780464387897944125046500092597614629348052196288838808282587282061913711262850447080166154855990957884998479743889879705489245442646172764362106811491505898225214752544625977366368179182551227512342684296626591908985318971419952258631467713813579042609777408986677487830157409573427351597746746384302421920012609855186853005930355251826198048189163989549454041979185876002374767760952483324555214807877507772768144426939088498621401819926072243375104066605181604257865664866121582339150532329532503344887133046561047232573286765634077406424393308844108853668784037043959323073703471771491067319707741058117329402485311714023842998723867004507323478616369165945425357910501870333797355455036548812861083390772443244264838635476699458506002250916481524644061767181426516167976046487246374639786802531455921567831023507811633990888200619409747421850608319580020388161548174307926307454925911395901643738953857916386607883236440067934285871502876089072332841694509016742925867849261542845649742098165302573469265065285462739537927596761939399425757466181272739905344504513618242110822106917956566686095581166112516834654564872090190777902172685964449516050356388829129134804292083183018315408721124015922702849670346507919185476612241884237769428524088387142395264058752089062007926682709075781284712765424347591703535760768777334159992330911894329111284838883702524575891437187032728404632146544874491219004561501473348398455932536349901028745609830640437168579794420637279506739748236065531351557221697291320224409295738192541340371441904783582706035869031538777155085017814547664536635328253573517422830150303367707706845769466778590875828280811430779867816207279062745043270817147366297397467592965471657103293811213533385030286928214892373368060331416962914195845022271022954754492499914543062132676980259872323305240768616319503602204916431951237648652014141537112104121193746262065955430700429011042774132053099660787898820105477824963581817175224448260410993355578340118590814258238303285922907768694996835261466602655359397465536182403573421966554400081595697868930192580002205559282052451920592833805863864204750502767436455449316544566622116588143529665516605470813588642462510278769601617918503281519979880249534119517886072772357193288079968949639997561594199165735590432158901952743533326153456136154755643579193065593316477783740459302923824075157065195324599885752291790929169460172127185538711480764169638713108279527031604382451611629862942470019025954875316144944969819400304853431137801667194726636755400048845055291274649328821373412191759092986735294218579282179553601790115540696040753337479903136353272530760255010147145766119186431338513526124759567342909405433090782304218505529706941029952166484919583499504679919865648418808091146338757204795202652642620620440963565970764002724660573450388748218563901080422342840540657851205357493409835508578992456834342077756836918421435559255951864283342314711097094307855949840957780365409924542274941751962425892098173479842586924339114118016439530631156989804995855628273641157045357032027984094254320508832616433181289398227543027963177511550916210373619969108002506171474982999821401914318437258371784993008633060125626577371635772877103612232945085974400443779029069802733105171842589593578700457895095043686564870077159201565858721751343329656769455495799369875550656070844621770420940099894074142725918367225423751360140929208440838663976300759780934620193605147153159028160369242786824226460621287044762454560018897806704740676058600586189083162269756746297055468539714931912570206847622278576218855468456177330214519900415804414997619538001846589534519814203991919387947813136744689478301954402809094362798991184468270038486412043206289379740281891944678188917424340779001507532104338028957005910697541570098915193406395947303096491500838882412813786012864647288700810255251966949732217033359324135315693918320077155509554972298953625111717671713799886996991052622629947875315972353103974051097039050196784874894510936056463604320551697412895057172920087767045654301676769657004559309264049118150864535246817648915866685124889451233439070814021804376772036468944963737858932846198432185872514853333529642853603731989917155855862293792719031400936559013558989457417870263817001054081812686969738520270117484946283308754232417584183206469573357340836942062244330042628658233619762510982820921867834382596383008882181031950724027210637621657820301694609471673426763742984914388721217392238218980331528588113826381430336715995106648541562205160084614581101872813073653022003416133748671587622303338606501786365150916607284337194416465367237042117004169304066466020259234684221292164194186652604160524583794409685413564040190487054830000989623425367940671498324949506970862063046973139985014113224626124647249338711027800539257884204709707040407810280802358631204042126212720783994339154915617875775131991456053468487700400418391917127664135290206910069991628447475440956148283810992317899647468590749779874892318927057067888700087902335970344973546839341696700080675768200501734870649283505023868595888887454455162290596616442871295039759552666571386446265375974553259649370137756433355643061777855391012185467059957813889870897996783071982569718286837246118875805255608798972471038086271144093385037668792998340141810864720801194741179838460294004818113533518981849593638096054502591674488992247945892176932488738766748244513474499524503396562551868619343904271097459714857146247915614101454708079277528533022461174766350239685632206862604734638402221941148479214983986022824828124430090171485629170459769635632471126612849945043645444193873145456138059688534297246379371583649937418110568251270001415458721955185840613326711856751228313300926367417519314807177858393434475451022637048319372713214126019999065391439664346752529767395555275521630980758116559536231185618754812216671407484642475750904944739493052911058452160303462990767041625443622213221695237944336680828267636489023139306778427591524802888105030163530514207093031551077441744123314580081212448717163230984689906541452350414277883786216606718505738093920377133641303134982181934128953681842413187120113481363621384315139770821214162212711265467776020240908643560101717194823794191607629520295115720495086579415965511791014306030497888067806400748839907459727130255828032992913602469580929167605897014426436989522693643907890558585486396543570843938762294762351423335799049249295619349870870918145170588101412904226912503525934820825796688959639353587016094485408116905058888394612864424895985286362925881385427906895378549067674608669184050889819940716150858189954749648479411530128944760705965711459178656445000140388380719999461538884927362800578190140619323774669843103190923036404743487173217124424600146284659034879626323539758564594789901796677725144284091809395101243600382696738915524838469697261678305995663724580738224096993904428197563821382962856958332056013123326845035309519720014184883784423392970340924189631489484596272278997878103299596084260765146311106977667810021894291835623411890057962531686311153655754414789638359764045119421497041533818609944603916255036498326764631642915457961614912741690221824366703529588646003089600511618513926148399194961638664871554544996446297588529818171828912915885372732937037162814432522263130514234416981251797113366979511898200216755914776636387354276283564367308958299897878352843762286275343616778238820809578737441647432824636769027465132573132395908482142276219456654114600328570602063732041305733372621039120067041673600635651989162836743696648457790859959740178352671956367860145196996150071115714979165211970412734323871563187805712197717815112201195351827684888003867188225087592732159108513455973633428606716664775883253828309726902793319753227921484501988925805854165636669039133052205824622512325925322964795226655000112247447495820911029093346481950328992492668529119299490381594248803342395905058034893051698461571497377480370927795984836382863898938984464239599930291234936391590212906905387741897113033977071950476020376774606467255219217119992741243625340483676344279037486387617586088500750083605694113009950890653993311869295093706715296762605103148431092343254798377284043477832682374077658295320279883695782296895087142004868476445685722910900560130873276910808596993966323849984839336290043465059849889220272870295948341591894670950324574014267813186733630350915908573436955812437506941614298475073179686995408719804556822127095734883490394013647359029828354980316363212356444939582937465357303581725056314907975604028358333237107582971832531274357483027829784528910209951690337486148863674466849802418148230891702378119868977505435357416332812550429291171679734670035696510304554217078750212253026393422260849541572818124517520518862271513632501080989685753417357364668704854788466874879040684573214236559749262497638520316119782463993265371402358116134185827913795452234713778433492004964358368498553524411820022924625171441269798683463564092219259705513888878749684718341000675260261017399175576094898980792530501225808393615006201102857369947123608880624277068340936888684091976144108118621734473543975859641882879911052453131412685195312021221665245620160589848259493505768131944025137908137226541129392634629156617341261080971970126628804708722414360386018197722016617485029087783869624213656405340077904079897492004600985610892446302732713951273017780844027019539873017354862980212263491584065807092076887553570270112977127816053033914895801819915358970245662016780814473618135501942049764739388195280142625809405410338156600871554921848387394723849046298775375154721239627386301579418951713295978919186458609909311526502917751957605927147974985415099849688475523681841473778952304801844619869788875669495904992319030840061162007411104855861515860448861690542876836309394748677180220669842492436132787406570225244425974599693414910937210399997836020462225325159554107591783380600780869439867245996528616185320261433387346082542895786639015901835497468228406599757292319693830640003280126773851269387904647679184184611563425562744442469500921458774168590440374913151312004885756731532753673763091097923675750340644171023682765490211995856141991343304001222647511593120270692901584735924664753899866585617452125494643121759071821152033877817503220845228550557745015688314179350615541566078368742137131355949429104339542299205328474433740794768931439229260675767205403917219938562018817966505173152602075799545166696288071583495890280446583605998864256709537387297192334659048132094986685497651722378009159458368068603498446109807082033913196580538175365789722568818435834498876711815322943248291780796927729467304893956004530606111960091828911402952937382462527737901922853914853860492406388522171878181102451227856701282482013409288120766516624268680064662047615929894319378251364582332471676923169219686388931655155063645056407822918519387071009867054153834115889411976244256586720290662903227508357566882692153937987830262627360881121335324937404802320358650327581267625889127690302978075070264553406725476525450403176193937133899655133457152798228737309321060586231564750157047000658381946760787961239250701503280012261474172795156508571169018083165223679073812284071517393354148092717753643740479009772646342513540917881277772821759086821446894054531984337275359320562172312474989814504365249487808764331290133767426684689189030057757908656322900649751046086232413689703079441146369402076634038976213962141803024914415840662714763840157635240611973332233323699650735803115919719684710611079083454125280537049497183494713023749923740606817323182081877982530910594706303147017730892853438366069744349374703359919041518289919265142955536757110030527168354709719663334431371358074436416330139141449154938125785916153293249788048789103910151585454601364964344809370886554098120469868521199795749554036874920931789611960725902431009622056340692213126891418053607455489246562187684545393976889128891513577074727380714791373732017942544148481389717983195079010532026478868059204342683507076807757270317362621261175775584845474587023621113475109539323164275570494693206181702093884735644115288540421680745618650318491598172083422258553151832621058021840783281005396084748240217448974512144007998966745245824328881002825426538061434524199264342402027929499228359226316720718875665105012582816199059474903562114320807900344063750618657542379347273969945676454884323624006281958956934175449576581818240177518477473862065515089209762753543559812245039374100503356329145612298792619895367712639680405448197119441342570263577478284358437599466120137354117276305232759460714779617791538207072685950145870351263804395480801796326655435745847033494075739760848316023177816561672953767548399587479188637062595366370174948426125610945773105219085936631234594496846376957794236960216131686871374225173650634174395983912189645008049347494006114862978406185220085597917620844991182173984202823588970160599515391282510152286763736685136680865308912098602069164886854902214117693143281491795570786208919178080860032326279070000419821258640386746520638044967183435940258699941369826202037243901619858470052160921360689704104724688677343023830018121331298693085226445222353931999279707627091237554795740678550122324019718419869862895075089731131930413565838255042309290645732035053345791450374843542189025945780336674787064587368751288334435705874376907186108073236715025855210185969309063070071610354570953744865316405022112577001129667966597377483495700938153308835180126378231221875243512727915894447069768074460302588386739233450583831769382702646582191271494034027396271532088880978390245630340462953428914124263365817525618342502680238015403625878690877683270075319383294680644862596544811429401542563621423246907407682911568687930535235421403884517111986896156490748892534493116609046769473686600071033919543878000918060242381755286897503674212318020543013302297408952598145589326534458810861072829117839110834660186647835036521022738297468593824145005914245463175779591064958740954874392823328634566087969912618668414050961272369374074566290557442990492420565869455969303924307202582961757802860302421411492188466272327710877602047346955436661579950010892469997689106010648698676920437965073676542572057388986569633406913486431049850743707761368681281749853799430530444164894921605815298524803322851225897313131108009051211961302869433484739195136671717814902560230636595821929415468093778011203863925948444703228472850908939935742943753588705163378514324132570157810389818518865362517632050537781286728479046303256715552320843347533834935107334261597613746510348243145211463209420804579148864311933753174121748225043777465548807242015410769272760998828271488684571003472552396517687456599388364776473240376414400601270661636287622121035260209272681224808420223333122079818461880874905837538425203675458476265125682730156035416185014580614649834348977665402863527278044787491177311952634106836958785197751748990798636577222090675837127534443407163256525033878588108561636163935838075803910040123216963607886294079273503571551430765209011966192047222273356370380918232750322286467373859680162812758042282829246320684608376425452004635164003722374431843110556505993540125588056409064067147147611343273165371556948274562886995993244191952598129878471104901760475617358393494096540386608430435414727571119405063504243659217342784285640483778424063227244684563929840998070370944419475369518411511404406940202597890206090139509266892979936290730193077276326424046135505656173095541790906570236180339996701904475217614513718319982124982868708000412729428787254379175122531067076331488788033113808439322944616422702551882858264266573151999448163139787776252462074628912241161107000307842982576270947719509525428927740975430676625262150983567558097164482696595253973062424459039261172503094314040644866620148843686221921510788642045802075029503239592197790329124304484518497502972653709900002892030724952672838119095645477602255614122731981186269008384450323211971404469367235905153242506319574932043407791327553820130949996892134710687424370996390415657001243888758917325452315480415384109416839394257938422266650154956921559031463661667020727395410952867805179300700952780482035499728873752997136289495338899731518603866606277277101099608304181413355822255373459277604250878814812102253071790094105982871339218401908700271505378755767922577323581196251650704844033228820445506868659966954362291579216738919316099238630482965076401247717592695842148129219420171119800894799626129622169750389493286995094658812573877153320403932654859901220500766717958057872264787890823378268040935728355340803842601759076014119399451155355985434640305581659330180169834312194772758011746339461309750501375530074111324529510553477533942033483951763647772928918725869109192272230057214801099559135871451526740080840452344960879593541688748393848947135153508497416601355955437030654280561143966715037143204814001706902994535814865378895498470770740981546108851346274889375479858256932700565491760160992455188696571456299247317575462866021209496345113978642213460635675015233709304236789557791519023059467541866046920635385467262856598620975244880091658486163018340772448854918193294307159098776606318011437015311800764394974238618023877077249357930212499144579929050216774351836418696242603756022350846885673267431899899807043295503910360690598249261870200038652727676943361644468875298875165792240597179029026765675012394924971084347732472020186716596236714450383257450919769158335589738332480916085701375083820345970079181377305309894120817637416183021635441324187608828352345898649753110121218809026467994563412881735136081862706944649770623914105044647519848762262779611784995983777649654585185376325150051797496478654736109781509528355967805374660362513019037207546136701446527792760552376558145438176736261962589065831801799083349236390717354818193026587927160186082332873850210442593763432995771875109665514893690777996703502643593823914896148158475901799783085647855973775977564560546123376105828855419161888493161815253390745127220604589741978548781979217336818995454386050345566584797012563167708630867099197408555374602494521718524324290621048132046908516619382305486337458373789910229282072872198635501649579560083502632373995819228223182313247145688740146632990648596107309386032988791906894581633066669944964928018001005064182324694082261963035507141917301395092915118693114252411109770338838177502353002130205791421072514837500368330511278387157638229532634145669396816587300570569142502056028175686211211967145829662193791979449809043520362550340427360454920983825413312121715771040022786593108811307013482978852665330406227018038020586409681399634554594596129451436569186531145331220400998842517010367872752206602598690328366727874774008490182232315061310154162803264241493371116830862561506126975202057757046987664323278285589935178933431049333508012453993501838758261687805594787260128915580091192993145955563394206853171728424289826359219730441778104711719934918939049179344031138814531300373111849799140961163877474018082851977158667893597768741159852868586626037487100620189003791069579896313021363881633444042768666820279992401513597317289012605648576968908855483938740227266780891713122472274948784074542448421963214110051133058978985248540136704188092893123665656283009221594669589524330522666455828604183516428632253420995489319228596059402618603815205808424811199849680649626315300011696253145410504159541607307562051252336802287838609747709961268884075719403083439850207498592146803751743088400443910794428076687251354621860339984825797666120864548881097666869275083843313886608211144181437350845688089630560601252340367359893533253231663775314914484528494964660794412095458831754437328763932795424087533539925112425022909585533235213515215566996234639157107316546003741201494915483072889999969401166871885186393474951502609262274625601126642259553880474174927855254702449420886171823666593826466800358698983343055082234813754978638807641242320523789931782620837208379842434107292771633247969748600879248295471169016482664476574944212810841087146566696522741609430613300531263286138742078929844605185310118814564609408392709586826060264444340702907993114409075129239755272756082830085897166993246387017686344817372563640270173612259331204184473392240629962231277307451126518189035105731184943216202908507974592892304502898573771827901670206793886945321530938904377244962723457664150981335694419824737820351288882134736529948505799864781711859614009157734698116906574404680073271194065945027068910778506148592853996068116822308878785497896099717949064265044608766913738344902913883039971081086714388362739847864887229483193007780433236473314523159227905579832884012496008691414920497210235414077522199496534777221714507265242164880160242714858797412862186180829643853766063669951784551729130747750821379336729258781363515263036593805685873784304422143333244302698594699605884622968558138646507471613704924991513349886781107958850656146277814464866917872508472251520235483880665914900087476652790070947848618130823157995447161305765265141665065647067395372761893930187197613100143830431271358412146683239952109704184086195464823497379937862726746872577061104494585928150638377671836170229602131646382993886978293827219018479289546793896522976959936660704395118866981317890470575005285583840806336772130139131845985830493014899562653305281527382363064584456047967920326276604238139680692915041080112096507282877694925412143972289825586256340342872893264629127886002191092512142223984469240787326693757163951179770455102277324545881982953478578104718088595641005834836077982007755928633132927684083664263481698223135116163904487130751820027752091012180214017340672198852696360399422960063362660971741796478756524392787139616574016888948917685243789788196165243616678637366537563931436701269241320429953644353962643637095375602999399953955715223736039353228129938448443181260322353678601783268567526084058268277183780021772640755220122201162010660291524722675425357975676238584317311567376903079732448552892295761035637738112124271481395349638722928241125918684834800567917975578270268359471480057553739128471418913278751913257315110974262467207603938374120101528917268944984055636976779567921289003510694630104045048807942254979957361061447272422993615570875964198725103097803859707088847937821023005452446773022865826289668885874572606379203310220017631559814828800006260995489983594298446493507047852816665565609766330591458342905323323616514725883217762218064652102413398401897994961758990644368907851830380254252872368260803397880166192161682888638105000371774990902030689243798360566012690385675389703122300843904572105770345314998682742063612635324360899139348526813074821256375116691724484627225718406770371025764749703589693201862705890653406628182514476491863560040565334669511625291642216720328241178023528147390650149202229773485433993919201972791571273797078333915672027188412604516894925638133656242583033569796011806847907549084242758534136919847165245351233401644734029181986666219657195207565322500337779255023504239415962909923669508936298151272010389025067431684778411645876869212365904131426878512831610420342575922059399651190350932447746223226670046425872504805740976733953802523979350260139548990866354371953939237562472518718971418930061242259188335825954850382699313265041288052782442127590297780192162601854388463432740962985896722269909268004806959614367502087982695085001818995299828544239319826330057642744750367928499437234706863761454085215905320715930567441332921906148736523920732702587721150634412851316563976695483350153051013389651478341554978804958021733226451655235838542919978392293057273738370373900704457505563038647435040419661315708477790291923865223320307882375168785658017687420104936562131123781703521295018959336280199327979423527340221353386389878897253013302831817099814019880325691913695056964874830095730702844961524514242936817285471809081753345425873351006003291000715180415579625773809273699425463639689071966421646373641991686132041255396522318105655023062426015428207903481727902902655720233500576786111234284394256836562391207789033943213076128732185199127732330874793952979147470907497957714114767685606621937148851779576451493870205541676826520531322092759546698167606784677493098959089777466388281028969350635015902693005895983977449606832045268263916920544346000311768970669562890340570243441617696921964254190200184044909786670466224679185646336092317219946530044633062618542809806444821507841474272818210752690193285750989533977131969838421116120107780478463319013302252302196788739167268800913242874112019153790536180510447154343177611224585064962715315446143877657225729631930391194982599011850549136574645553559942486719265071388797210812751851856323832387621735047425957101469846246519809706367815189933611087781206528166871461023699201514857300604462502753343394111178400814650626538383769443378986604105741510104013272166213998797318903645218696389185722197070540183968419931921485472616450043795045572160186299793548836917665700329383699666666687252307270786056453806265122708669245073682409274202840582894795797248740522269308309488839267476738411992808332228829989669332378086517026498015369611410369297331359972499392465951041724467301542725205278048811140661914161511864843423821617937735397095255698588613892467119904696849560143835080156473330859105814814944524129901290000294551728240310117134040792429065213965817667440309177708369074221008047520706316065146696926988777851603190645467710461208625260565086728497041168963849047244205633786817592793273603930931296428981992418285674451002080169531624356637229206609506954414357243373786747101177238568420720518734385289734973900947336641406651775577917208756556590459473104084441869025728075051645124308248676478525804235240849765992328044159310758239372042738984895194257586922080492522124813526635710041098715056922141852936375419036731727097650342603093094711950397842843113919752907880247575763594091226706370808492474008298166247608912802450046924499892475427273336022067446181834810496586987517033436360677695923836242767642037387586064460313967007936068645759813507282884427163441294256976315251392900015798154323448967253319694986767308297629886103582161197552718676269700295702469063464432013613533125145727086801383273413284785174716039492483776942806498844444989409818925462692348915512078078648687119113442775762425777922604039823973522658148520714904204685565384572835316884933993463278996245597480752137204113087685788635298497130480157616086018003340919223272759241886988830779104821832390297287910952506893666109683996079991416290769173642226145012811513435809883646229799415286345473427380846730754294613443292211818975989505207054505588448517625357290976970490080465816839290279621033744015782253211514717418019944027579145318999739970638500017315733890029221371344517726276322287774198038067951094012358360607372316193139123457270267080754774554049202636643147621864986855722611590760589978564849588547527063966621642776799257044415384878461940767083567740067822705901699521213394772084617570113839781862338698036911159238297834050423015492077775264109686682131960668275814988650147400236444622993977269029901965683975969518472885476684468443303141765889411935130928442865491045343425025528313837865690520017797564781400805754569886408740392102700139980461387317332734999375563558616894426921961850275406714135113160997608109590910287014960139204389882371722042785473664019306884558339855101125416572650531171119973288428616676542762700307546406697850390722117942438446790324060727229120137248369741135222748007913642827250398918440759519038350943761702025856277715826767665726521193672377949168001428537950776549337957378700525826493684118181244056009017376170229784176411554047544870620730276075501153916547408771351235233060253958892137493552203622349652522920197320487261257044549438751644432312811546437340949048760702802839504968734979205283865174554020163292332545649619469135113792978832998758881020846451690159576425022538058635214625979766176249286259305688515174994660969668691067645417433687359505518206941426708656164349874997230358886774345413501873822928667414855277512070838055460332024519079085465003783176197032516872243612210780689965773219855465127905424669334850707841769407814886604972329423300821352416966498105975549738790736352616843714099752947604462654635926637243445490608084519420488016084618608956969643292799078020349954344863631850887737708677868193044414856893787719316475386902045473914540029659783782407057691618113857515658346811023983108060468029005106097546129484661917239037476690293160244225087461775036608989833929311939077558963997231050452610580635058982808001404788294399318512114306778024402851164307093232831431166198679383996945276911306182179765053053698296989187538629404005124490523146828980975587007818542937840369602681112440763487750545432572681759753654880316502204509474984788455689747225073668792232669818728110034792230315273630781516450037106995760562372715751225777230408005564934358853834563248718657688378442784147904484402254214003872837516686923062952700549086434322079661868636957649970488140385051226675936824135587880311927471249165020847285878905022726736452110696618651088846894864898210183605093697836625035571084689774646065386800746165766612748753300780072800800418967147688181822407935586862231624252220271763066681459647274648580180835989614989612674965214851158093416038554830623090939403685833086471594058691149902659178507480567651084673048085999762210271538127563281434948038979565104303437142171861209437926785181143819623441223143005323153492795273164774346463859524940994513080399681805455659211834088381777916548187422226495102101186982852576082910707696158116666512537560165350052241544471619147809131062473856322787910191622989528827162739989157655332214514064165440797324140932839647082327208722017041352451098979130721887508595677051485035894188233694116470095398449953187885875614074367201484396772748748566333759692809583921665008104654798987382095069978434025748195928367693932606340159421716538715292358821677778844453755679251271770121357332561294982457315822673183742840137209460437124667510522528162610266706539251742995325735609136307337523014401311718499383652905274209071028396654986170942683654303838657535396145915531898776490627341553253056781287008008362785777237487883236176477443149590955545637597396929281462201882482829675387359194039904133554045835074444539250242520854735196450222099491955895892052566698253688281005855683598880122486100344616975352356772337225104637112924240255597663295844887154743252500218406669594910910453103564539542322410008463729928238596156162247667307749858117755850560554175737150672226566985863958640614044945682967575424965971587672497536874546127809903389064964888082588755813711532667673496925308552271024000340436318880378408125891255312984677850192690029828422259635212772528225233187632053702533370744610055799409652770573498435246287710608797349179312039687987430494704145985803267378414885431512736725306903615661039198547308185132179359635360955749742896584558117819283979479703078164484232827992863383827128008373184408722073634125100232035942120769270199081385963089987449686726142437569133318974427645925036320498240442548441565960910661358347612111398820498521917406364862538030767738777435481773845690072523312419822576078713957581793361871841335203174565074053892750876806938592944491348805515307203332888900315176045641904924188780927139970579048016526442700622428667960966208304374312532335589123284814139363180068110504499173232901505271742798285554490932639788559420781630057903960005792074042545952840267320383206086906469665485874438284219394219070657906375909418301689037361072527363279323223971029730056833780311676463086965850450525038265109839128483895062515434967590767572768864883306667284461948080272339148048244732949049285889591445812488424886329044976371525735586941287060007135134323880998814043229230626791102886263336814856691322281463891503097100463567237549472208502770954536621784364096948034051043299365191722427764183150205367750871725088850194042952313558605855611174991992642990191330225867488220522600645412289305966992988358427389550854939165834483173322070318385487859108550405789131011121207541668691407762843382826139836034478265993512274263248730053389858155809603871698502504688215385784849085910226927021579974270109584193633158286893361550570428809901569234663727030596380004875948734385149806108469454517207502388490599812026208832335825091671034026962928662262655400997968657471191628198231292111659934167557843806271478130375304170484666507798666610647223491036971376248554960047453174893009551458112856710741995128568226033020460859505733131823622918246765755740511096091784657331683031467015436452978343969653626436076957437671268507154531279150404092526207681241049720338654053004996255783119252343099825038709780080695017839395222170405591980901731170539387755257287510960633165667174376471781313904232092891781548695009540375430416165498441899133340943174068492549659986399002658157639449084695648041753516369076923345230436465460833032910433543089970813590883843985540428460455383556323550762541891881036315381382642387923712302681711507968242550467294172959612656136471938152056991091087554759061903804637917149859019847188195053740677083213901382692259207592708382836230238362262493524284468586809607784908547352700181959236731481784319955457527143934500644813565700105913050941517536948413447813779761953111707198293896209566956600053177113999426622402755190816907342722002879413978090277988794134874348329226597190860429404902702905194786329542638555966850770582130815450787974243370618274278413742135067665794180795719126068655073181984685466994805255858810186253849088879803944271113165779172268204970868480643354726885448406226069364914397775955342781681890714577206994282464465613918906405191713966093188799904129785815316807663857373982594993285855313102937385175341286637481447798870313985933270452261872363021772619069778977372422756290119534625992109313276915711348984963179599337373647701150835791450958142958904156748021187259970635800370179062095746645741396582451610762928541840796327868235917803973389914039797118547205508934149182541866448485220409569756777274961824336618487813299643893867960948455670518862374582797732799305966325460614323967202452389037657551598619519965385020540095332037629586011460964523165598881297758534085775042725467701799437847709440991712841998024177579802302299520805583572891135729216568658146169767141286971367400928427939813297313965778371245551761478285802098655944643567572057165976810533799879470938955142270368899562204362116930593554224575286711988304596323051368701432385786801076626592254112592419701061650424006157455045531060932409475999389856905195787687122184874560779496842499498789952932763658854627129543506255320173210431385701830194311408711047431821646448338086282531282074972279952963562347467871107960938404481517822472875226193195829464655112896257106828401079758074484985946093381284962785845605238119543893210117758486453518586834577959234946037626755687961503489967861976633561027027833540335926719691690771688305229798861528148221276517826708665885207231028623370044843465048217625782684901341532795885303734937047751095212452917201466682784062252045910707550843809558119938267214495535573515317134611270872597612463614377354135345770764475637786248893549338055946941058369064802228486555920564159024342016642430078736613339386049191543939910792625962006980585756039212633882874557757070365717645683841228426264321968983519848998641746634732843435506640178866493530805965238233361150734731910573360300683791447866353081314302894020180443934701749106670192927916626888870722072644067762308996916082162224442768082558277505043626074512635090489990744084332143444719465288924406943947138189782383131473741009869476707993949978988655206847837212326678983752455124191028730683004510120605907071342525012735716511693295490510727614502026265734170066918158863094904130587024542806554984953405547172369241916441132711357084978072676302961350683654766350478601607668640015962293500833397656351083035953932127918597213905956166962405579029733627516429492388945670136532740191258292345733659477871946797567273314868303057174402659915651736235081631809861332307449910920056115466159361867337340377256364075730952640591807067057577264060478183072377579853140751673835960440738531923056648506283633459881880455374311085041008322365203373684302501551763501518536739688997098825776868685598371654463378025584066249223685927378595034445175974134408683174806380924889077403913616177871024443786713699057418087044810500187674763913467570027276216092641004356343866281559419390925319685046606752167757244568281243978973354441561521722549110861329529770509204230477491380211368997465480830334108589267518508618754456375026331599083901331351114334691582467810539498443976953399467742344856872746985737904357353984912306274974966741278764511688553192993718221672742058063204259259494610977267442660492463050314796743224267211448731076124576095483948090957469925364526537873134175050959950800403700859916448184672312783796510812721723930462440396459486812385623712607082191450024952841057941719852143016372791043407646486885628905805752729186157434179095059989600931148234032117804463458906046684522996455285542772335835197986562128907653448695498655817308403742382045832693811516864338135820154029379172173242645754704654850692721604693887000258001347735552598074629592011187819872023307008029216905922302289066679141235299312827591961467947116109489980869722453170330644799885414432077920998531025415530569507373711388401867520327008816797220258375198943487142981835199086040461544478309824992514113944865748292615692740683394664502201653771751629930256393195428417428520124014843580257302352037816452524341999136108753978222884870809993486271493483609435463537211614630578129405386173513587317240027202077538670891604591714737616256423858999925162376541825609556697758765147778579085514181403038387735917485466892771938605017304710265450384719068882384451462822618072638455442047982208873856246519888647133911834799717172318460775572676592282905294906306519065936754392018013755816259546943119079963310167197164590211789202134362825016195505540465530729795521599641853942277315812037405275452843625915232476360036181547597993644573936505240942669500964352773763455031996001836455522639966528745461766734063474277530034462960945856004715605407253665880497031313250250192074760962632561664504614858786556035220767486115449747109647071974931259018100433618082220957113243650936072159618221562765889648340520287039613555844239519846574916784223479630702050869265224111001684939861192201210061706835699146236768402153180790518610879130253716344595658873797410081106191070362932380233803005682232568583224818696252110391132313965774744072258243081317331861627161717166177731456581390473981657525300143735997507530438819588724815338866375476918729964315602348683240001722829315225080533952283447403663971443503263301879467983163836026175831029512670722028477505648168224494975447053619279095622850363017594865480495308287288221586266222372383940624143816405985179928441812881119877983810750654572243243842457038666714521703231830558675826106770161737964402150025552486944624678963206049691874563672973153668853335185339788341182038222171375117203779541179843068212180073802523772573894704861390708479948352700368762336554239817513070707731536301507703280654067843852045842466676321166552527061321941590756002222665771083736894454901532611387478028779099768072670744205096144818190870691068121045851065262652039762032977722459727110401876558177690456730089066000622029363722922516446523784315195758164334094863299291406409426755801966925113197048821242148832326374486640925642902449207909113172419849823127607464472771650916684100294614766483998636717932489117774032709020672261837748283982870184006378127520202745753718644247139327843065466754549207387450661996154728330085259563458134956623074593434413825451823489543342963321927059768201488107615190379768775264956908568289514616921196591831386168798489365435377280512300209018430216196125879739339123062740783978996566431103860244188560509670395123263013850317105692789725717316693800801576866304239005706529744984985014860122889951546933261933820144343605444399174632418898839061978656502211155553325044008726892354707518664418277112626055963544788877089764206544392926579740875111977873398895133907689648495004186160996827157884762868061294420668841723634030290805201275756103448165587842492833532006270746612969216755527496533066560359780029794462403041106921313170305761204938508942862591710274975055183977873623537159983365274477078808401394637878017687889723905996769038036143373668592762579332539253675635997034554650009533350132130762968880928628133306620621300179795472813402313673199022275615003516515563528113007421896567982788338152969932351929875341747815220905453343879762857699713043199707491920970343164339143417551518964442317941909475554122715314236318977419965316324688291146932779776107450244493958030994951149797154037212609238121047056596372807600270390663992626754326737502141573898602705075529272329775792859582605128159380274071250893512301941232061507630129358932085235480979453293358569428280136978469433470657137175757502167399785714474508870578727574778991654523343971015878394130877295378021293619219865630307472131867903830216633283287125957033772178012793681737238904990859044189080425038132273587122656250251426589518949296790250020931236545908090591747980309161971907272847442628641638034280255047991986297855073794966809870018647331739589777273916068817362264294413863560493102409032925125704276191297037169785850088833040278437678796914147855505478412453308291992870549014346686456330654376646345849075641599370247965425452516984486465481421477042863620645100079085365212617131057299834384215702464150912115552364663291178264788554405291285348545721616620885957945918200274805205170275168883428777466365688143514366470825435151300627082669449889412321049114637140101264884137721005159842818413616533032189744878038273122985213078757404855457716800337004845230195876371055247944182048295470350584804516074397394952294140387188549436909223272056889239088471545357782569556798142338219794915271670577870151683661904020216237894484853779689520295205279709614154511063619961689426905038625689760919396599955628604760882400797155665510484420856351449033864058178216198094301980764326831819482549616194016149836466465266603481199304904501862945147375979376904129928585193101892232602154612347300279049582671903517685154844196531261390860103082579442054378951392088120029232679139059132798415449716349418000420271370138960372550585786802921527829984673313669857377331970682492623581322612553234744565785300757569365388571758190479683923647125515401422101235995811656871904981712803327679919168885915256378709098250213791489609799200456708196056446679939697181599895643512025712924127773348182871997422905320933086339776617806274607440946771799565369970459165602499367977023646179580494498373922873610633812817933974326567702989444289262310387317713862702965991662465482898293865359911177304845505210246109203247317762602410991285337171491182172499078268053614457477003399328165064895830228567896037696440898287082113322123908748068726016598926242064803007272474305584981925923137173925514252950280423222495052871932808855871180252260041964079892202480174141314283202601664536196115477839402266987395378809521361027581486841750073943995626204041306607499464322794924734825553946916889609168408376284259159528192265215227386769924700037885176814217947931537480524948261512864418082216612997856476564672265914341347841738664084203053126838603286418797411963124306125787188279955806712714346080753451762736422763486106274525698322826808898692303004143913716136362131762118341946880838876265457995674863427749965292050414774130459853169421439280726922404869905707786643853168005727352626141713859768925463234178749971209923464414165701749411238868009076646456329759585622489123260718709995901754440220321271116072197105266611015206276084453339622564367233252560508669805424388494959458310705802624078858260932990760582442581617547414589330649384543847784548258981489431442440182690782415022924545973548018705937771025427091424669588179123230532832891124299906532161339152531886671734223177834510826999226933583572458195641098935881790386869499298507977480797492676893173736858714254046261579180015752244815780583721635765374814095091931300890886949696566590277972180262531737932324488495233842755415407606380303121553692432867196124753675166854679653537329574918977818800987619988163681686052450585488528115191049164215251804477411006576898759832145338930524765248031856769014861794850791366775953059183030130855471087655497382383104597530024545559651103589218008484677447520777628282264559251450849246118974944892775891479723865160203634603970099344549539189721041308370425277273855686585129706605818234290511461264200704859758621450174382979841069510573479703816976685236408500354015818364995085891677292471407147141833962597387045059025333766076334654286534132803637113490343821466039395791377381186264316594925294820844649708771690884813155577718622496987642570417402362446933746478296897266080561592912754020663698729245724976227738467922516105615800230672164787663301785751854654083971801840511098801734042014514602796857271264722770138015670826977445183794191712504626320316942706211829638511292210732065559490427530808667804684160990398887285353323381323883496273994687242056152639056212857525288898292895582291463583155864006619688821417666831688578541621794341090987915544539825847843855871759879822742137659939442427862755936431624659524591374586177870650630862890163318647784299348872613921037021325237416835438462666456844095153162544125879362524554953426989907948093139852728056851263511302088660570041756192295858933904549449364216735825371507690881264569807000169248882981923369001021343927046238750620116899908907833440636091580321459517462353069297244674248488787633386716632264405134292163348028519675090345677710638023372346004753717521536695156707410216203825223504603992731188285819924686500297342817207188148241442043118170331740231000853732530467958797747541758919672528766339426747197095592252905840934854462211339228843335364170798733872181326518490446293974332396402705950590753595248331824515051329750378032190324252566806335818562686609043942928264227611686934496484481814068993600921601199809769095212681916233517385564439415704706243192903373440032347479595990494807315644941031894779522320645999297693168387432711062069693101158336575561982578016142870991750886638824207231603328692868484802408080369136852288189295426652348990043526248050131524494287284227930020758213767561704485941167318193621816200724001493090071356541563682572369771918904076530875152293054695389183939956054340106828066789801497988030433102695718106033953398252319189990454650862136748449378209325092946994854636285822232591563813550057428509200760826730515802186564521143079650839067160768446201200547776326479246878320184460740792156900092026040232227514881538442960233063077016050880919683444525750717501331729221963214761327073421714278118670221979893034195901899878939374821643362920799468271536822474129470925518810979116300865745206298242880830453660987513771901507957406238423242511099946226380138589700378079897423972604955441024949177466838744428788706067334768421177733409089588571326309869050425087425732288169037408026698887292003473470258115568711909139405908111331472218913280092719278498073190400284428729412537603682730727638133252259370845060812504321465060317340553647831948645030776079414232120622267094228013710774501848915860076855771039660125243102619645135798930498750750869715719023293921211686944626732678530287506778406784793656217554420455408812585038289274051733222737354117552242049721932315748408873804137211758852515172738892463947414244815546400667045621477907880887538621084370937764573205683745154216966749867045864038135472682795384108497920901665385191210125784582438174540313878936460236370811287162509960907817207662975465102395964959000443297075412253711799389463143702257153854925089257079309650663292775186626373798892885123351026627522714754746448000630257749411029390669647302384136886435783737055592022690910248978801908740221442384887338605190680461922961939040756177057436009887632475956172364278519188244008677759885741052782036267726695119378909138632914302795955874395862022943194024016561280965057011117098228499882691150765416238632390194206809747621015604394102745639926607196873586251570129978914198849028519775422227014601138963656850153509597529423002577063754075204547339505758961551122067204129138738644487926458583946832403973364679777329855202826361541062687668140498791388137934988730226547851920994308085161900213124169857372383599610919607346538262217358877303875138533150845221532808228361549941351988158915219666185128574324410983711901836361256974830066653258465718251309293598595227919903867187506924027694559891033336441904894487141896288836288131316300508069143992919683693490825385674147947264986620563559651214893940607050379290565146366556933399058989999667470742783414932557792636401744723848885322354172798601034023404839329328569531843104223984995831697266555010016130987338911322249393159770971482756220898636498657010714391834636202984408173340476162195344440065466916173692015145826895268374625225496034609695392470983227372285627080454183154018059097684278955663376383465670415998417123167554939264999365458215077070527339890808015591197775494117355603749701155547799426967407245918478239010883446941139143594863017827177851852358832824214470867155717400827003464694600449325954663719438002234841041429378635491457252469510404634081881931054235152813255959960436652093034458191704094786312315095235324467833625336585493937115245727711960171638841281725071512266022707523043386468371310662112299286935166100021659194461693332281811763961279039351529032649158742983926597912824681511581792652753470828964879950856540955000866785504778702192775759701951230630713327355469661693555945179217132838370321697697073311194866393339334309691162172019678351357134307258544008351815320329721574667637059105912372812455882308382967938543234622633429593674729365161454787876375249678505294245192928646991626073857222586893099649841282397058873815421812741732463246365423845724760737969454209540172049894768966811605104812218674156979199552209102668983655384609408445788666468172281391748083132632745363338827697220752271109296540667121330614577672617249472610619874469296713457070148403427276272127293007306880892851247089953452358719019997243436388261013079014826214308565194937130485847080579914239356268796769230058734391739410226355094386500253027104038088181116502621258363643234149079114131455040645811614005590312489283223239001222618313692419766303492547677131252112494651814253646868246256735959781424220162617893028364689213383598941413758368635510654591497955688516008827250493154048505584178511820047393689853014001561368553765291068365808252054739196003692375692940231874887409283765585229151390755888215395258317240706978351268792458685770298844799491619844250209514493685644366192120583175843759041413580168466865841833399100823868619268716632739590008240176150340047309832543524318800086461241432103978983693628438836628788690429233496099244241662410408488986417444771750508844101933507716808949566614234364370472483361688077974835319157060964438423541105060623115297010516303316427834684174933157980789175398934668195934307703912507504707524512150909910341334465281703136088096109060686068065022148825758603456073578354672341985953110728735533621731281333042298449791283240681353062629933795666003733164301265855031550333699575944340382579647377008183063716021243363828136585168066515702292484099792706560790678671481054109080170890047650173230030220516347063722831882145410152678113838374050670391846968931734543329791973630045995996223276282725106000320733720257979573720038422160813412165155260919842868728478560743414159036595954011209062227019671446231288983873646774597557377821589344465324138442527125305307318977317410619349792917595686371391476778944748215674823700192947970861832096136787419568968683445755834267588108300744758129879443483043981706291197522145911325523734518716044507957517161554640108084162303308542833420174948897061731446439058933812996539146128313332963322033779830722456720790716815869082562661279338803708930920221320190015370085275026484403728363575041154642776744210043154606326157613024684381951486575782018625984134706130083968276136690745217421826412148620564468802588815052873818816297057465237609314671105011058673397513075665292088061984294823659329005865917529455006769652395488118220866004685242688923984748787366273226860375198341028608219767323749758757086291093030745375502607318621402742306846363998066395479892334545932276072861123785824531620806653118734057051912407779181037741924878613689763629972439556622661294578816809532699160406748120680632498655106057819943985456440942246570307865680669404043827745311970946100843626818355999401069824283248107601877936762261551100336643706350327832336039032855899949396837691591796232086504823818079556302826292252448202093023067887382865363285968964951965803481662589101612189981743594360168092376791142471299845055087392235623854086468386293085070563391505882275743325052852471921922902350066838112357674495631534440433947458463060273183667633038090881963565405764177892800349834799917087994850615214508177319644969311968250122406270853676417240035222454522237946932681913740018163527040746728734215159296073450509871122375282015944126858409040426062253084444520522136687221208294198505635894592983179174360302306196806610450553346044157825283677150052444718626191313925704311385483733012549283807216422986311652590324911866686154553827466574662815952042806425714714463269215264482539797846486670960692441387372014832784450355608324719020906965293256394132298751828928749111721706409374356813073239746700659372921437125479221233933920218996243062733872924010137426254744260057675279701246028674339153400287132194520101596966040899089329326841684834743227900889342296927483205055512261290170176949651674233103124028578325287209519119025705739239639651718257293799533815693404152746089085215321166034179972078102777784386931225449652014320185249899138116545810046358257978901666135994350265288797474672087305653006189381542701356077542282865021062721302174875040864299585655227444147806585085773604038555921271591142917597683011604611067226874979367900419092430020838453544154074799678671353141579410671544207268349758566311752405733661350050435994179298551350111495166725658237044165747592501410790225362898818395373351213342432577635481837207292744917681534109983231096052428746531277659825249425496432760634978375160752274095527399649718652639012135152517686149157329541848080602131802209181557822285358148855752147719693551923057456948873851993136045103050701803051997044556647888840428108689709106639474744014099063951236232028193579120421071142090070827754470462451134967985941945969374441917051174766750695714774653156295956471664820720739110758275446150203187035367738021763156548304265388258008006417495352568358481703696952730293213882853714802689632580086222636971192789400994431288887383894537922429715725005346884238555362895151454728644412103810323691186358585497883620973720649216718103939036662585047473357756015912331875252895976865383828642384315864628311518255482170910939601467534212888052706045608767336827596338175617465220981147701408274601912320816094203419653812870947085838903717895816132494673630390317200226686717385155624466533465132050813323995513328401334058863946443492461179844673914756314092012991269673275857210017358274061922557161337501761718734682363123222326252330029039874370931028614253795932175356335953889130374305759133878775441701708148688843495887358172228767720236463596875028524048716625475627170455407676401829060878628605358864654300272537718220881447123078460167070957699831742307925527743879678065453753257479254652654496568837629075556111275161903504608236142108024673773115060063051268235690963599063460241145521355295700800579984764290572294970373184435025279229139561725848759499559474926708693703363389613858613903762240176931746201530825201368192053621917461890702297686690413244017489056579254445552200131331864738506774472911440254438489770181437602299049752163797443332180440214241659492057692087135772690200876036740689276829395383872855789400060452503297275984337532248462142549302304851155285430845676155147422261668379856429140983339231806653893505616671841842343429485353257182528944664050293187665044358611956885977578733234042455259953438138289487991698982534288647054011336058638738492398864164166859289414603818796847731251265406023138333763118321022940345745275858286990325376229030163621744160829943676617133518113824732916723888690752733220519676997519638344886269952571006280759109900137485432288384886408053586428913379811368609715965257125641841809274681263611499852486076149304199406130718145381234201679603353159794445847850373508581955257678451300718257258377108685004800116906455913003800947916238481695378013245451596631211594952355103081531357905998675892154499914465177637074672386636060669778770389348408394043708823690811138882833510291618826168982498079916735716877750728331810206942647570061567718240222329533948287341517124998218015264110454606372899899673164509465831483396890433332348494031389002007665445320305972426443024148933141677162842703563929107979562449027270317716018880289683843152022197090119449115284852090194487700957685170046697699995895112241746567057510019408746675710979126113476588566518692816063247308697991562402945748963384111637202091999981969622987959071838664500222590635517528956347003105975400370746095863265261929509060708200378773081312485810795520112626666671207015969904167648638591612259581064244117654666738343732545424974580660002478958823262451467702476160190068554021487341127354108085592346587910004280632410227753455578138795902907309911530683992942820499982753685985490125324833288319634234635811760071430255618904827488765410048058832688270822443371666968178391580194941557066126294700161694731605014113291836893093892655255036919574069426064716220276900128324788635409768533121978444684389285322573016861572125337277048066792485090644201284140235079330794810540957764905882768039433117564944733544384052893783383616126470788578627556320939733421035167985228415603763571289782287458544221692969364879508625534549014603320100019460678867335913233130806024249313295231772609681300666744390190256917225130491367084346004476259365414216016802892160260910980792782279024685601011005754019566775740989724794806658131313875549626391758334269308503634322465158539695732569977193685248356389433214119466217015825339590202602189863128588611601750203642379710640294656390071071729112623009853234369243377069357552725595926365839220952729666563119787677045173563042784434746113506225211399124298969758895187380721929210321894122426827338827756324456184861919779645865512107227102827018930779985345980849101159720179732183499370029572680131992173412640759349308090666041515226825333557558780485871382224154864046592245795257504223856290891681070168908903495148615740073358252898352121693042352087447902826483426572386602053109690007401996210756636168103087816036547110413735881467682619552512777532189552026280151655813704565062771044180248563295322153078113417772869146818001393205697535694503103723182223429923448696510056618545446331623220887721576340112631397949456176327951483192035273712579162402246112620768679729686643752449072241683954092216399853114159411242247499154463540677347286501933776231698526140302304682353500085664913295398022019060388154079354476885710263089176784330149317319761906435453935437325987802383489993090296576958215308365318892725755048297960365068779874694391558261103569346874130017393533922985946416359633654098436406149624163547730353856893267428930372279159619914149466550130740755410911633723271028067938366605122561023730768373514612203960484200704377796583452468267509573127795508962022151187227407213308918257403976797126969076171148627900615343374338885807085351225871531131564345066176588258423950976444192921382883346751971680452442560456839016722126813038363992001689714983381530929490070263124908741815795538969607264034393522570528296872878513300891455777735748610830793795253285637065179832161725574279302065687680531848512538510009964185300202083037486232864669941021175123259798986800709831558418682672436292590311004510240775857332899272848342761029795425497923679480858112123135490805743816119598959242528590962539912886261790508000323569237808827925661811164130786205253118398143278071826094477410633447627246212895330877687062846477924492211931158356146144390420382697888153357158836979885433362212572642891136447977196541360048699066312972207354864975026406447061939818538944800139653014857542633543343163766998453370536504517200061944047971740450495715594513972711761253402760695111680635194333087125402609950675282376990492376248850931902180702867526621186737376380171281975815063359358721975339885925977837816933514158832451180707736629095773076814968361795065073790564630958828814350965138575028603029162457916084313397750982112104800845073989756174803929330599117455307806812133972189383483138631089026058948694827690169663209837380334983036955879669078224249848659656024386929473218564352079544188653160018914411750446054292565974021812891766280427448728364975702211546916184933617453468254820882667640948144552512413643831895751129283283894308021090800386185346543947784592264657364124124342926901902763968702397449507751316536926132735577710508550414233512685767815701552880968371951584257455659533915975288352481622667630792049516404360689425929072443945534816673916959937301620034582793220814405139852683523343012951526241748048154780240892040787595860164763425794472040074952698683899852291160743642385378880405653524993157750426249508652939140130877015830459830886491819810927634062873875073526352941353368843406729181534227147220361080636375870295321866948544672039004061750578595275226791752724031192607734052403659652155527070650448854085461858435465134809525137743179897494003549554233699478894456635189534517246833338081538134306938130644617976167674921015543412214589351777924823794392393353114517339077404027574170255366534239723396495056792022527101342081625689100504602809168107034362445235735159938696600510633355207751800925863060117859319787810222301972485398831523824337844310934298549015662779552729338641499394491143361578807675765689897649941366541001204780039680424283065974893614232702274907511505733221338335139066989974263094145099938742195177528860056430983098472555507363697871271565203469317870751768931985535782886785476993200998531927519526260591602573979357628960456461340871170331017169588297275237498348459596517234749232987366610200074656933453989625010349659184694319445615134292804941864466619049004055990786202602215135389492148011228559669343809377785122815851405714808747911031003742903719334543895045783437282532560092796270990847981468999997955485112855528894161191526681145308624243245607514857158617331091804569735293486736926586911417579948701717896030623790396438038850058412733320462505080624579961146179647680466984291353813116637705777184724273524641751902399157999555131603974037328833518474562004886401354114980822265769564382820579884074951198703233385367283626012344395315877579778546629054252940585033300143105808547336930757778469719763166692585076231160111483098335241660772798143519299230094560071888025957992407694275243883276865341268120401038170873105532111494969858784467547372594704020522729933330714465565753241165306111407133150114260679541190119956195754334273901925999183378135796111197580090074028652478818949822630855873643233876754125457386625792455407823335956063351891025148286600934045391108913984032767919976944723188327634417935041828506527983324240910539361204804559946724168844929839828589082604804317757875423387764346277377091656580022206734934587606379159300394111382423840835956385211218319147001615359417850359613025983108804956415231055883063468709975442573546623549543845677361783439153391284306678773918949683310311277185198526034169280073553424488324114303195207257847560380135202773310966376503159497724060743418211602905456778679720076293514528028623629757382069641547170337672419787708210660916090878400531759148942958763679919984060660996828261773521169575356351706248530312283862258613434834475250843179012561579438708945755906167823828724265816474446189682872206491393082203321001538309451435007027726841338785274391897561461416907149235868864473699633407441683149611673754882469661786195904225498137927826255782872381659732709232326989975740889363155532783258109982731404398431811837417770120222061529169388942060521546880910355470801085525997696066355740174028672406233836166309422039006550195740304397863194175467167841180354349354670329174236770514645024099159999235491373705596367434437211699919903871388336594237856491013658117870272206220625124754019482699221449160198321361943800352197685715054886367465377519347909502671345189962564384626713210047572713923545888286468642950237605837494820271795190293721867040532970441797915965526966465530535421853035410735858501717819794110509474613930682494529038277072879797929143786888286052381361841087831870857604335029138859948274579365397222502042218093238319539152430718383529436773607529763516200532420903240687113857035484049465686436433962895795292045578347177114061182912854621726430020554126682735703785610800740158014169950681701424132868506494426443505861044070282962241015533022598053223671027201560833537887657122806991656169051759741642776087660890581539459894320737147753626983598581091784897363474082488835124647823744537795040018484962053914779513952005874999105248060898147890541239372628398235431491693643085163738557558000968183292492959884333377858331855461325161247579235727470826531471200604008957948343117859270938012049256832413960586554220891434101381461671071114634830245483509309101914466829827392191772384324678319423887938057465598604613657650138962076710165347529386165087221685140568931172936189728007714893282242774180844443913478127574699552666364984681635339251328658444278226550181982808003602200959069434663554548628634931271599010836819552050223958320979544053713514779213116509427403535928020927787021362778104118749604795014776697651213866106582682249299792103114602809013736025431564879337452406535519486286553532807607261463308867777682901874894922973485937920044490090559207476018894778398006021070805918316262698896161063988010129139140183642575463126588878792785644127536962556900257169260429186808912997765696364978424169339538906945140594199219053530121217701967298719771375481672050415243211942906874454933982374807339883224740439884946273192334714221615363112221742640987049288276992187661620289866610126711565523570086247357665680595719687469649492471942944089408289197875974022371733482300122463018381503891003109613331733469263983419419115918518195872523773281471472170858490385238301429208855395094405298932989779127945741007746549999439970796843141298759850010102394952865936485510605789921944798443107046891140135718921942181081083825809298889990750857883938906792965944192968961010791204140122285586805922561831662506849835612060988057195781324698903692185634345507065108729192070941048665777911613061025196625482634787355022341194796845470545221209618332851602314035922189415084058236055985894340835720677750428753484357963424081143727510658945990209549519467842924495890569087380766072501977039081328340864925790908405708733113652281526943589149813396180653920001724331530356148772609356971775597187929467452440650665243225990653267380411933982411031522314355733163091395411159130820408694111495139735704049032384541409183095077873364433620028051037022178337047062241881292581402783750083721775982050677771103728884851240927098794301724262655682517016586481473792502029181787001141347449491452709388495905347759789441744973893561439242950408161474960198772278353726558654084333552324684855427151251274579646352537356630332242088966366730935945630765151457812772100211606951971094208489550131845929658889378437731657464641330985283402404379244079852048034935999689107732072474288576267940794841551772151559494951000729084679653120124555018090007317193010325319466656737617354538562285134672306486689191136195261926569657809617344742372417104786178766515775788801196659855548853828077173644720641812749745097489455113873493516681191475551721764785255983203095957514978454547937036437741546236578143638487504763857470663967354874182756662926387867968384059209974408987743346671804781618079431464536061416421575171996678743294195769094047968823804562111179794539446757754096715693868077435994073760819167064951232202145118277905897428456781446369600679453106171723545325247178135181351755368845041336267692444676494681753627580943025252376287677408928585868130736561207293576681062798224927620422281156989638687288414947035915634506675828297255843063174471478155450268569056763048421224826738673343557078908453438509191299213854047194345709702147967752405709815613932936295099712841500420025537814789833411742235040301494254409277191139710795641573245247077898686810548710040562791015128703946255119832271607850483373685044941106681747573092574569442089778482106518168284750922792108920000279351254710921626440808630699286799753634139036388640131184688030446001390669406957562236094677361252085409237426606027286823748817161007793827118746875415058148924192940262049467471299311634375007902813925097607945519438351648905486675244043127661528376740182361637159198408986526169660146835367479600881375469606440681771010434962929967510444803843450722659723740387086912433082391244933937769127683045558464522145977151411118849454648298349051394613860169661744549847535687923621415616847497696814878012914124121996171550317153887336386393120372822549818201964349754451449731401809976649233691980453048390985635682377704209990233998101101270644748064807829111393184569609195479019968577484693314141956234503201744914897001833726386602874598105179282895636632917211954643839039891355027097117395417622284632354003980843275629422635925429812881367354617625192257857120041569135263794794562303061924299023033907944186364920858220435251348464625552555673845956008068152070683499904353015180451119245061818118152710295779425263779342127612420835645188547791825276455099971294960090561565480069164135258490892731695424651704623052350721255842013532589922736710600104149478637597993324419983777416400727885172114373330750347239013855208105334183981771074414717574129068131049513719242555140218665783995721249958400940925724865252350284861202850672422070241486885351020825549176208602282223742784189231672797814594731366377255094400920666489306151063781669200994323188271080230969532496893711489145337708462348445852204785469962305757966821864491912206301815029368054855210773265222559246556945282907081969759919192336210802993436289197870243674897489415386604923376285565260595374329538116194610020686136434951008080838211748555001443398905394950089597981570132842911201277138658832412485018893795857214522276778729670832570096139156172831202890645741265597461458088796096964567085652473577037259291248525903903759109468730454576971972606298276167849925870541699765086415544854207479875810233712635949616522243900940613813191063791782330700853075691400713069056211892178516746141546285440744259803299625554915029628806885825225724754644371261460263051266947655916324141264504139443943846098316686558284705258050725941426050285498820604738333914530591137909726674875139736793417310552972773036875181029804711061249985315076786353375809120817581295778570577906941319899160238616128204779070601028651173728424823928771955031324508288082237730867606550656684795277297051215241400698148776171591208168482920334799027740899971395314340643733883141648956701709467126081796579476143680815630930477492161007053615518803626561943428002689530025736121111135680062691137254778951322975860910182302001414553509198603107466195851548009182567116552102198117716311762463537733596760912862436167923489603646770459257215764585478805959978243608378867460509262836237794884147564340192192856987501112000530993121239237365609734146355450486207192397672980543315700311377836718989922837553354927188875302512828257459690757358174205898901280798767495260162853545302055674574216154291498544677065470220874961502214622892570399549086678524447491382756995377135886314733657357037488013487331920996295042452538213955888309464425194137902761478747748723797849078292013110056075562845494855855895985858461176687136890201496806340493484171038789106857793647870906896812786467031255084627628542754792831741935821156195412875429198958421674182318856351523231513453462450473911649834557157361380221225195443484353508163379841705895464262427083421482388662871828788209086806009401309730614503343017652653986079160531476559509082129306340442844486867402603044589156753097571089909222909614481883332420720629976628747866714515399919811332784245114990888888598144077529803355067723478345202269837518762107942391129166333162957672981783147250944641480800453851499160241325464611872102393457882791345994573653627241660145295510810550673438380113769888988888834078346049203051420932861294577454355291912753586540918784338751137563687982011447824736583041829267240672055073697289275228951583688945233795207479429607459413678613301331174503370436955167830255130724579381020809793211297777937886966302663842273274520240789063597729550979416397836224516954527512617599276319674628948550307643712021099130342498091692231326563250441038928901560814750214419072202005053463101385289493081967096927499574089394724462804913566017445611184045913367973683580508945358330604463685968962975139688723369411368573613363591138714944334550153126395533733385837313870550444736707920955488802520936432554496758199380970341281358896765329734202523186883401367256087173352740627497203363424292817873603293751475482059559638621230158845714304764470344385486841948992458240742673664920859724227786758189867369309440511128042056839470669256093490187313420514087968135099068159491393473608705421474595189275899787095117505403323931144822948295782233300223825698244487109522187055730681982278522446098770603981957354788276713390016740838905036598983141858063639177589461261526754767454981532091217248857967688608000874846251116731846387253637181599828745160817297159734900846461125545064000318142657264121055739651229826718370276208750559072806241783984224829970407694429227561415480544112610278557523143305532863372136309167211567754225707907147039163843808948709167974445521852124384966591234527975072464844060864501096732097437801948174276184487437793770693034678469166327441094756377437784143486564974025913696821590786810334671448469836058378321038487679086010676350905841174965934525506070780415243523382549792709607958579160967410181471778345427104714275590433463878404515236168479760775847020306821055245755280912803540081672448326436499157099871968022166108630854728342579179869632588399654855902257293581665803313753182473554193150822921932012603024010793942956299914063112399853256861770565531110981094570476259462013155028039440422068681345202183115200161132424331303689555644059857427796638654730737044204026531997263146386506560020176827971210384594322192738312543483178208948900569656012249982840704599357426522349683905770297571118771910219497699233790566095534944872604998173596668114909879066684121447901778486948907532373599802292021885596727151673236505656880654674269122297364721324751620874215970069489747095220536960862841805365725555111228113634518739393582314498368682717567587554077457451923285153988814000279286198048450550287426473930144479131170017553913793141347774072833192389559918138281223271088482549024917889195638289044965895389621783254878889808094643514120494346204887785141204586311670834664148148558161507002494030889207209261071429559704676959349765445062907635181809660597890926050904205456373976249546668788407435942196667307592069815247538468764791895081060924219663094400966075898171780950494198691842016272529675155024262762414729276813913252384044373293135358297962630148706873711825836330328502038466445535047842598939675001992574067486065530158005929036450189695998677886027906957048407895355735591178075568087198301549627697831481654892315997887899725833149367312447112010807610683571747178840826053497454872476665078169968343890982760197057252995639561391504757197360883981268671600712568021449082418290706113383979919220371030718869407332729339985523448778204760440538418837747734944344568478725764404209886293809272602832322258720552184093787976257964923052594399979858519326365631660747026130339677495720324666161392906830901858694088948882611821090149083909720225253402088234222010139032201046175137511408131505386634305981715605488234521614789377787831235300956227902303135886630301408784637430022646994932180266693657324585767725187857781259628635643278747271581959085334588547130434573344711337817831616996164851418582103135270381987993110679615804466011864609662965746897674334920774415447494679170998138316139249709128458522906180847447526712654907169405979938587023743592738153556837947565606977970511420412192526518063653591478435814097142789494471796486402382968119118260587348507066886366910500214922147261932857825409037318866074658381244891269107681820704889436071696119743080694405468943014931992460346090658954682622734267932721078033865088326055725763731846961911365672518984883196642730930936823553744271978881871410366666656616803677230894933999881427791347408902836972589332073903059465052625371859682364749184933189210861938861068115445138291332592691160096114030920797114949032978656332795247736723838891295792341839412459736216482483316081313528220100557283903694709738595218260025917884881676419878220388830529363127679429720287461713619345487053566983542034584273753484280589290649924666667914335191051492488763243179160548839306051103699776567219653820719135094790199064056905469006693006038782435104696377559116051966163285587893869251896150908525230370022482288856279434216280715298112767302481831269363287366744027319442336976098964585097201834395423111156405447093646078359601095156361237595917471354167460511147344451890855448082581021212202751997828215819652622718224851745491216979716894048331719721699935007379892477799989679138920560603458077093794820704637103609235222191986279093934955492422952095671173618392828550645728683350028465803253227547526669846825230406581839073031971326695037923914489654570937821698677117226724030270235000680767397405971104627688696981648017616611318005965791301273806481434069134716044308239522295659932249699485731211315014703852255389182948589217314518057607178981969553921778433531970128977760914901094465515385262931193189020659382029223473411559971078755414424951874026561881252519688126408174207395271347473940093715676032896702263272895004515370880773882976601616259167166827046928067002991252330413389078288636451515844269551892472329163996397638572152290065715598069593850027855307970264042058071576946891747191718846064469116123430549871217393443721479322713130729189307771021043676045791886210302589283758095900656953635322915752018968012441692575859121349114932979553967000955960060962868296142279872620263589078966869570013646419560661465962441147103434068017795733151493088888654709723946402515234452348744300478817300950353341144109977115609291665175174310074839356955080719433370075638775899551012128450964777176797776316930759663114450477626522199593608531757290198753135065722527369924093341108742265211045659241929665410398386326023538775271101424183651176836618811798081075513146676848154165215200126489974332034042043972258702669841537081944462527971693642711562760162255808863250491060859859011139318712302911046172007181975196481155653511233626198385306103022284606066686267503288679695716179598915592082834754234445659094846602459378743703615461300944258009547765587155324014397419091281646454161965449829414215495263853098212832270298747488817142879841036923840425130045603463488428991080096223442809947591216571702782956372947019436059704396516631836602387386671196493258856377491263893120226364072726003281971602144990614853881220924682566113407381791219786642428324239138066697613176909152081487081417594526764617252810933928284335812402741741504491430574272396112119615125763288261246655326229557054089579838501662319009236558889514960530240200883893715346898226560887923207869180267988051993782571194292226211653144468780776518384543754348713802808541243099224534877298855643169496002261021073356882510107547680611323970576558657919926895749198116242160874598939011227839803815869454971623730387154222779047285586977616805606951498690489143946706203662570329335991087116331656012045410837754742799469011972532126655063189754866715842868427557775798664496545871312638733850127161518632864607008806109680004941255419726233393822118794920529541217842390166188633767032920527785246770124877771024897610017069033556159161571783252003798145610914303012028447274406860800791001629711258778086655109364180401908645912135411587880433298323957275328796898830137805263944256389524778197295406823763310690744903479234146742321628577802635468564089528983812396439455166800664633041840664303589828714172959232326025194710861376921320061117000448120310296447491948990156737802939421712437704492077096531894790926270932395105972450379320958718981070209188790834248902713705505540096952862817972456150776885669543232899250047294854944856855254773792223176390648467427210116633842578117977197144854637926997191864677878756828624418557594960270597208964225981381691915971024506198113249259952124518385564638038607215746049355438895034086813621556789282719723939272448035072102150652031089294072712331404528604832169071200933540689940094225836850735434085051722942549615953106812031638560551661337367088023971291387152376226054511709285674646532692784654943522408593782198409919645589897476025205981502222219485450239543614340554782798512386353264464388628672934891298551905293000529928825414830897899063173747763546429688077173603779249235552787274848842158658668622110176120232512738090028564741773602575627269934212585841229628052233896004411765238427697374858225941897332772052900223500082308912022183704445730853832170792524114747859447731713975287458663399285517544625683850548172683878420096600457549178520547870752715594927286025840185122713156079406413317753554667488167903343482568821648992214276932432454357107536267111723002250378057600552703824954793214220078734920125970437801827940403444606149075543544133944787171209349317794460802620444261244083526717306845024041050916513909992985912462237325480926894438004171950926937227330043650701029826797165918957216344314515824047734695653044967335354060309460210362463586418488320768864714855562714306500904407590841757421543637140262844895165370436314156448705868571318073391830209909623882923245643026961577535478312922137503499703706300226173251999535426522666666725941383266061586980638746818688058224352360034282883568997179352638338070179872432593198382043710647803632155863660023782480555537684306237651697958351795958474376060845077804609898844785549828703367141801360609522587529517692094553067024454946202056535694577610130420193396927655156280637642766555399227119560240521059390039138286592107122051035969938650991605890848966106768567010177834094179253219643509134355678715546236157153492461282827216910278537553743040944400614560691970432709452993232637505600610246960690143604860220271337172139765514169685174384646794113856186557115695116008674456127006012240948441288443134505023804704357788890422267600414255608290360441994119203041473988229524217505006978907746361951397537984086679488631149441604780963606484868430404821112073864774067692047339433594201260226734803454626141311549344274993677317585710483769660190557635058448455603551312985832765176232825036600036873308388982155353281701437920064114321563245643524249968973291138877504082825941255263530861197313950983984601081194312388410411934713767493337711865028172166562550788780916331810538920139032736669109914094662702333843288013390844200612191183970209433479120159809736248521217234475629449631424842570358589091026080273798849215157185824216367029671859313433325875549089353513645778929791897377491711989115241915158438324198569411536904624350125989585025795762534431039408504675035436160127586013165517635301104425541721465425432390024377944016741864700915952075095356273804052237309710610505415624686323927692283822482624447100712317211236021328347226035699627278689083942529691733711054344592559850598204703043334520411769584859383396805743527250267499661697431567340605925466586496095023891027292024959991730836479378758580959044342191914262044668623483033686566015444934891770957683038336074126914553400408967158284235373303187725383060970011740137988761319343599675301958015249822915629045272153381410770553628136375731928503705469294451852539377961743256120116142480092878672596845164020126627126213885746752063450481475837333538362556457059213705715249718133053538068231125057719664738491945772438664172874698440059873631753770679025036790967444808457134556347919620565100772125248355535447763432216322768686104428730114649726853777235025732135940307938700998794502377447819896222103205493349166165285339751793958047053521352483866991554752758604787110305310212854228593111581644922844935831415322139204924513451188010634501613760489480488297016352587206622850421708051445704331334944533780607042505188450476046728958370282259253564259018218071130161534585068712101907295229631171824866065385698903179028329751193880359800360598486000026904531062670137781295232153472912873054932100231445111561400377094483825110887355698577054915573573494984611295599285739829721403415736863026430579354076313395023713939759380836208082772036826915547951532919795109465396643383329065601475210305416441582160875694310872308498783539015328667416057436887745160975750258183128327833870147270275218932923807854436933682535083658876270169241137037963065121425908058698572391265559238110837157746565004694685744919056452073833840431717479034710951213797687324116241806054216954686458359283147856062163367738966153438972226466527488290242132276714368538131643405445636571662012830906644350818411054893396836530549696963808129625136720516747009771422395723902621005545768802651805409936428384010702196487141453177909754086369596036492377387740937299681717449243889036076075735673195517132220220483241423794974912033113418583037062483259386368099801672093072579884932569434092256349385232701992873829770371186243831333565601875713207154894505528537964900259669960917593526980434263176886748431649860061604299107442101598403811535473831920222257753792994585109982951941300713817054407841624980422490975647669222693186557196634523085275455605579390035073858943277182804155891728685125625365011941390660513865535756211236625671325629846864222866985136885571494965909634325135398187765123437165165109754781927813875839284855582358084218174875874108792206319710924062178784831077132227897934648977395616742587831740159563053484901217831452511877257057447153750033501452278657842886475514960548491790274884971024554854423175853845798485472513571634825431899961648779382115691121525288131345780398516505666350846770976051245162566315392997753980115239976675040743536611894567485852809477695823214778774705790562369716983005988445534432420518029291299826385737278480097342270500097790015491496024384305841272269811042761800985524607851812316259932402660448165706373561351100643989293628101523302148104762348683310559180758675738272017359117430023406001713593556537915248768814183564399342272230927515713390034118096980192767132906230062269829499415476003507449016762242280904955352769061482442214010181575798066447910902685556744857885918379250558189535948737233538995947693204367824581169331405153472370498481619403617284517429144215027382497661528768082738925936818882577734062096923133053601693235378461341900517925849453077888959205532124512662087281040890596217354770570084770430644907781863579749493530675280266292606719119635622400224810689027022513306735932877774476173475666285318775328163532025255141165236939617646610546344852692013312820873366177178143243924619367437327176318076070724115452621322286138331681431584674285130971317579777411798395764755892602782638896071671711271867091779455926762801672960877940880381333055098448479920790159967847633091082415239556007142473706080209888690054646700267077198243703677967741308213828144497811004814124296187815481031321137082404172112877164808752421590632565944705186639406105122064235655566471048626553426808490756672910236686230906879080276851333840961787887577700469931994748774569621191966397388450076208978091283771204211325405590620354570108957754459266940830597801633477770017497237770178218604205740565556348594228704731571965254429191956687307020603531560147684709459103400303535734342956594844806730038383349656404923145462005671476927063828749834213380917801478916330108519971124365272532337743614196047395059305875872167200843424025982595339163418155998448585809560338567736392875016920862036386634895505555082173635393727773204995085938240435425156353643027772600725620015122775027865033404904956043130909622196846299546389613999429647964849029296660268997080916971701301583250424799489540789721035113656193048159349140783260566121251221292943132199627503548510533864013710101169600593154319887414259394264343022208046743778389253947972188075043180102963765733278531507886167839556883431996391262662721491258774954811237001569369092106098032639105280717963719009027757173478396829740344775103509523299485725263765902942592538554614607840049952894046136737055807453603091637685882437417882051285866974496560238974031914780944135544989534846276975131444475207125459879999818960525805425244156927286180738577642460846482634431233206377917524499545178014210672272464948933552528215680920783077653324090162508494355633503239780134046041071864858200882676545009218563373669117089121786091521661232859241598536126481624649428748702637204686779626907066913785756946827657464818845244357829633306536023142318310910231904798739789783283128830956468918171793715261358282037330109862845268101556091998346941752675475477333128395566748720819888411551605418143812707538134069983874406292098364081805050108310365612160685546377152850094541625574707753924104883385551504557668022000875095055792119455124275108119103244150760751745747380036807305014234170416203237477830098104521352943208295946016811894815174790633070651691623730056268405791775326146218825893879372877066214864690224201542268297259316111469316559968072042628575306175442490545526862856935118956267490116353956828200794830751516899504869922768254800733832903978147973116015923908526864336107821610809780855638502201762179428315650129363151721012444425683426887366026728774544830725390025287218347005488489892449135847129164292283823223654280568471420228459707009613391204877755425470087547706594693378427124841528692206530229820429106424504809242879916277895449862941453693588996801281652161193876375142929135236549735919275572594982188001896021414823959129098318463177019117780742716600669387469887790811436263298859317362085503707869700921122797364412276125447726051300585958162369182102611198370199506420377272840375874084236249281272845244147194635164168316569478081797665598751971491139044673953878581263122727662107412615986279248343092036570950449307667499200099584690665463599692776877928136524308402915414541802248265947824630044045916757644267139566935009319648626081333849371051585837855923464030849781162948864883677342629319707970963170897299109359692483869013112366061757241681296846063932698387900422471440594711433576102412133852926510182322219985904454275304023106014733787176395169186777078811258587533120630045861717838994584204781127870009878717734830065005547457646681378336660026893327212933214618447368229098653872628275675610422004941112655827139864971726120287401620731609652417595616678479336394914235422775648771396409925820910402685057419744803572440436724342714257329760164537057627119420575098232837070107209734510057681773634274579590570227970443218056741762438593639268698919285914155182157141386283779644873597646294281406714696083799816349474306221362442285809687974828020251735424364736564335087363916353982831995931829959087239164980598849430184650088728556660354763063257199395050002829276549027671510568169171149900998569882513967125854778888537021013907924092460829685141872294481639872069410972684007058449135550986777864889947638185874905193723529259520101610331429997105779742937512556306775207340275030971891080954791332591829224937004377503127678303909065512175655263601346170835384974308416504874864196754291408184463839606933875515544489019227246420616971160266060404939267739172544497660355316984746594522390174479892697863516156759811721806031609818360189195313820798021777104052739145419346048890331265828150797913070805434065477726074827610419946481568598899615812230754762552787040533624096961554796113225524556141546757419720558307658673185460571943902935658396524036815667766674252907690054955195059335650040504076395765829448026193567532683105460658935407120358784046257234277879463088215378725431135332536064800238616953969295528663884731577121407334402635075304011713950713249978248704502042527893624317262673056580835620701310001403730258746978973002050065534295237456716622871049830280562760895653527997245033923151180894525019255477647838891234836101664348820802683514451998394460379449127438436086190774845438958622138083191090000250575889752122247701681006301130924144941511928985612042550576250374750413200444856055997044673613349963502896291285577119877695190715631440841068477120125987215347076388077640724279894393793600342210607988448013656261737872855930466940372224040267385524957120634691731217470821859971865993457345411190486425734698130507376242392223419632635973854635570647560192406637312353130965370157995587582787369938816264596529965370262999891342356242508509202358679759530906636805497279673456891279222496507273575878454318983886388020921553699868828739061558966183371911919875977861716971525122284231557427735953257253014450875023235661827282943825262149560320019000754375498753442709959526313060815717773256434319400573510012974841279351363717987207113942049853062365415702681162137802290877412136637906338640805756080832604351026913329609136881189232542544283833484983118518708641226367987785141265227734097537917311973533094649722598350828575652707244834989977448881748360237182726338435390757365125123816977522963825294712281519238421101051482538233847277238012079659557647509291560231072356059933244250629328103851229413084196487193850845629156456554178568403046468035427746780200819600059275527196075847565212861080371385496973553667066538287110867543759307962445291872169698053017220597039240549357894301974367961489050435717865787446239593250836866230880332417297941586810490779438520033581895495643531840363127519651802206671154627421666714408864067818928661302637244245885478189455683169837538880252215699034046254606286784174459451834112317540303074352413591558018748073357260938292714129108222521459045497941170051123199128522913250401312461886815475961534932322139806191586767836557043273286403175814317820273881527820679740464664226605417723041694318016214894881781551549400049873768029600864586488169258659221029933532050703396709538913479709577711676067234870116377270064166681986028528141898307742372610147246656233381381910131307193538405536796590833297415767601065511514350171606571113959805194890450840610997427493143193869203153687304902000490792200648086217792353810243844424220310449407686484173452936649402799147569472252440835712186564624015654944867911382019637814094583065688696429931535214333928482720498862764456199756271169778125177486449166886556379068646538355456335509895442423064656379978843278263229818252181083983436884102103191779392822582962379595423130507599589957293964505260397796980914772547941625853811495299533947279591234611687941965382841521950446648951349081400394839269756935947959922168551222731844119895704139747758270724306223471893640334339754410213926579124449059015321918221459632464960637098773082515497014765998326685966850781124496200515573040885279804941038437646605943507105627403281653564131528975698914400141354283997955819979851785212342946154824979478453140573570628797523118880582120561245396432152668201654463891537014549320005556290993251732882357303339816025654349702997996017614228008710248985501353078326530709446350921959205796726988305377498525085834527711499600092015176896010735688987196818210303890451103749711485430073490337688634730377326129802762903743831678923426843139699951409851604677199330203535102167486838749646201533731106231307528881405286293273434501854749718813523747795752368669165180281080056192086863661298476204766635481859653257262035034558491080952346505755871146180104770193152256204457171205750629200984322250204528168425146628236312541423442890403930877732617998438296081176701019357681085551908031650210181296988342968644744361624023579518718778153535143182263041574394574440998716221066403915426376835105881441529103845557682088812780948969815325384756264042186899073196357613062575278341328822806250994868398762356242277847615486777027724096525787039518663005027015478022640782113110809176523934993698525777090598938567488947044280848244744515080408204123288661329649711982236243369531781095799065648912297085379125308006498344403956488942845246167455872984615197721431673815962406835456124153291036364166190945694768379666838760080992744806122121397219964126476659943825230828260344654312919520879750134000304244098173480527302130061737279542748022838559447763063111674689448175117379729421209110439628985368613875954318674186206342462994433990839134398468346093391867198842156253225922576391823718312879587619651932244449886673406293987925376131409728666115226438697005429287018695907498203076038893394412914889239311489867092972966736521927975925172962403155658331298632552815239680063037144222091942194292998007836867369601262468398863932268381748731551508821791069023897688075907989798403776223082540958456647995091714612121212020663194986003206014033075408802096505831265412225410058831693498183722231363114149270274638816546382702059630103867109969016138553355731248758771115013566537825894682091485803251452810342598064987340890929772725031950429125066931817224507716622151395801270029004685526075378704861917907364946653748259500313044912014580241518129706649538270484852101538999505428888750956562371595770149840258974455945869918080758984965822544182553389608673381259715429560046731176297041245557557714344033988704400218076113801397760451200724974641522957304985437157177047243791315531630560001119963867902213291335440151407701547140434208287131887310157336957252470964326938862838042156945528670672986906930614910253531349293866540064563750939236185766112430202904442349912404927388753899500429603266828284899115554993541520457456742505622499564681414389008679564916741980624264473439380857856607184547528831471574037367833830157385643192874484064285554415367862939590639709738875635228636472514099554819980997135154116484314420529305835862871552781235204777723085408488206905910773064119376999360518792590685054584419874810463528742800490868668506131721085924231459815851582803609502762693220986122495058184541432815959208260045385203564054917153497267919103023071535405168327646700847468834652479991029753706197360177302432048327613176273973861139711572264498965154594412569132334725687707523836393562592947599961303508821180044602490245262101164794604120251204718877068615693452575627653510651045801252926973202905292349342837190305971202210083473646337480422330981751611215328636045135588655502996606056128829717479451366150305593178308245219944145234688307557482604261513460985165639112895280380004821603133090362302549599029948318793274379998983855410485352731565290578819103553123033375157807375488257963059255366815468940127299596661616175666130841480230614084997213660502229240884964474931252637561216263060104190385933731310118731915992737052408162040894903828688161739212303207215129940458407578456066677256334619760771925692730995179452543765879319090319285278645261433679248016938769503154490688293204901131169014356090762618615906881923373360858028472274858605598916001713103727142112088831289704107603825587634751786062049598775809637304254320535520849269750987203011666736531069402259656668580216855953272140562189280631890627696382785206609604572942382135971944178262378856519676543816893782814203901825398766253493129668541777790652733712991901049689374405071868390898059846348652204700152710506228428844959162022264335063992546711548257709070528747357369554995973625346197945330057453724166652783967200131136389323536215956583747859140650534981771010238626897611957027664720026596630791928541446819361577646972735417358244091696887043242758253982992138432923955298102618350397055505141829233497444085958041103680894804532977687656030509597655075203607175446003561918057236585310387488599157160540046863891522795140039809331596254276352445223441943838279415818471515391760385976152453658891152482259599572810800501163089875753483403355421972220960313053774788257690990776375458779653725183433878920879609959871203876411897827857594856639245217170480694789837225089403532198344415979982053948094711026469044664999571287161715648342607357823641399215292117767788038844068757290985611501337737490276529851925419235629545389689152367666481530063649257991901242160201268187987252948383225846704017218006004481243603164834495577309158403526527909530202028097138540303387830743562129923153568982553884393072536522408734461857923318813734392719468595747569484584472468355225577341192113042294833735064245759706506432768084942154477409502043920948512884004914649464959134655532938125884586463911250469771078129534803781519397684395306604716550084557184257494656509995801377217867988594923390577868380412201431207422692680023573797293048573010635446896838335599285461155196384823712343463289113359161691664928951234059961709549661669150979913845482497961418145205617672525946698498411232520242877836389407210937671835288706877038365841199000960371843966019099981404238914099171798014857406451864419400025280763277835937027115063014806863831163461691095724834599269696243772156981743558403324306363803942508371308875933641734713819878107443560741897325703556623935204602166083094365336924977509974444041395943490651471968945076884613430687174036066382863327958330041944595434885257864346212042469579362017699816063768385901032516300178610332332130342544733345356485849397922668250552470451747524449773122895564150058230202486678022245861877648410180070273870235229438298502305391139831677651854818539624630106214302739091193704090341270118697740699559749254381675404770653178037114046305001488188436782681156053465624406914282932763545426663259546222599094821316546873886547280419465866322335921149755432872332122753884000816100077211323345389080295571210940509111798982118466843908918385191402978403209354689732178647239995008371800280702952856638579996518675480971163818019874414440995753491279936004581751670954143240351681279104400169419791161103935567303919487056682407105975855501288978890900453161001016136184600103592216404788623520244757119438237054530706625347107683310302519040762965979500212360781331880058788285124438962032222741555579530195874798328213598922019746067678841244578437971247638929330232058530759723454138204810541952097643796782385494520300925800701282458634926746342659128299953892013947310757784268115538877422323393228347519998507430817987423523722987542362970868630802917454233706329694014509488740656329452975026721484017717711955544749569081661324842435672206727493226299225435020169967018673399301499219664987773725797401825830297649991767747076436593089186375901952533276200741196861485914754053057181778311568404002667226637367973261044397847535018066051735443550681486305387547045156426278159334506736389934062772214214278159981252489199901462472285962900571100205272518410814181432386263487948557463702747608358084067861995461303129891987542819455381650618512740348080600645050650000934536752423663109570161223132686469319922997531224655195897663327741687136155448182349039158172915795156528379068636663374478561329882712571998570711135698359149722593076792177420476755499507481574946517309078486693287072094744419841169524293856409063060878184546259484795723583469485056215446791706326405357434546239864678403075072226724437478053295271755446324277423616791642559328801571339894074639421252035008947674322994158220542811845860594229545926891525381627213740828722824109214303719737916300035970085795010311765109309010391209697795545977881281784990067865803001644559388484587920400396238896223895994764581793155337642834406642044418820526186923641149907107001309541309447326182710868989455872268881560561747858329906977840119992159652090147776295952007621647040891534216108667442190289148727157143583610869165820652084456144488891881137292002299951644586509325632511952056413426045587680059641347671739163389218182481134665260306434761152221453763024035395903843660390309688699731211276413731909525387895555990031608080129734274431051087992608805484837173344201431835537098195554942478595781897740465642329088057295027635235246282430445053340136332997815042638149553633575049865230833284280721323619200000429668205786959716665649001206473669450684026588750131877600264598944401563968248386557787359586928850261938130689487893102056244531670441685287035307119832701311418546216146529989845561888582326305481573981771999487504258762104152056010225691418314392786229580923965961883450803068419463870074683613998317584173455028472362004581093404209352178361750513957961435828878287889471356864966892160334351964953646560924140747465616022117768816619962751089817491701480396188923595568054782527645831403572002603353721030799050642964955439451724072161706504684820028705058804022946043389879057516882671249794350624901067029263028739402568357149464257026243646004107046057885059891992413934639138387198350794881504272064354197032914337266408771660416528027790575135334603299767232473613934133703034087114881092133685318373783896708574831387657878884878408547853352488312571779277203669116195469883488187446187563511170625651263294929536801067208946593059122416074218667165849759357100296372177331690135058117902098761925545890267997429400165299215697822003818459150818745137530503982375340491315293084617462144782720691051549786241175206470140311632538956309108375315634146830935895291877065950670606133930382490565521480578812408499342491155563956720870726273502487947240381852319073023626133313228612568376854042655823500456061125678596261519761757357246956861689463186614934975317765882296052336542260221725425859975541584705561985773332865671948037553132680867157675616130926954060594981255503986250278852566204078286705100728426194920032083047252439001450439762323038920268662542130025419915905088546796477439512115291475344791254165363176628476528027384241092197931238413860655650916566051346593724943763580610887607279701165098598642756458314014653886289451300870701320382715738776098104210522405317154297803999781830522472268322349522538567073503733395191616898065192621271704788866089886683374454772773579860299785109697229332356327838461416562305404951894865712106012481764076978788817444434984125961157840197208825189950334657926318694923100364532099803518505209541117677800184616560073121529693934890854643801355589544274228276380994906216173913375217307101511999460963350689944470765567503871714553489912548210688306343102915034750354931009566969820053574306082512036215274287031770890107121560887719524242614944769317252665701484668997389080532735036591013486641836145558686997589549170546467624392324069199508042683642763683306867111256345242408700425382772904502445019433224204390898175765555140054457170946466748387088045137884279421727758558855299017561870464238305417597809394274053755273658276209856325356240573612445874559189578054916599922663468435480791737148423232875852674865968001605059998412877334768807764740147206404379974068826423919659957639172812206797283873114644772045745284827140707828673004960687734562204643412566037503948264800653455189976012712345348964872582231890917694641723438115695077636542929547132280577587226165019354992453459177982089544338918805219373706190566472581084801418133198815505925363558076449782980786067988150635926134779417608801161548156871729911234623662115954757645904075944444245030641516464798357370361633080118908829458721398718223988600741297878598474819517040372041236629251073600904096691898117266560609192792384953415026954698618314564552586735215876834411405096671551727371588543334292401349806510171200734181372305110403382328770776506241024247911407056063434252593549756313066979845298827195276112563004169099546571325447315422380926983640006633281121277493585357057971343460887113435277475551610286316574742462386910709603942650584693573929898581637588450615050687556805569175733762274693879601672955576939537091619891675721580934977617046461622963717272288255587095098078039472691922498012583007419715487419282250590466763174533098668629753245775674937249112206584607197894854210653940815320977496722859492916568869586922328915890690576181853213786276878759898941474023447189474096481324167097142964291712699853460343204011858303702473639266671348173862922837856406563033360839186354028233204127870128997962661765930970482251221117645491180406847768050338185261862759103522298181258970692647779957946025566052718692640932645167212464543846078247071306030146385072703223742931968352878764641034904166796011533620113904021970053596550469231289506197146489586131677115580979228463096057126385963523616028207954607363119876744181041157122639769714811043742472145636980808692200484148292749789198960468269243455909711719596963364115397532154015209657178907185342010496575132215933404143954457357507558635782591599877001489199661248463556622462709318526925215946614724096208392577144441069264081303847724910389135409834346521142288097220447833795153424545094918591708716101604541896256306631575237937257909498541171908180977271056933122880245964226485910713858744658543489462223294420181922156799115141254981950376578953541493079146390375338627696552045502152846127615523230390382962068651618343329469638120490943695755618741671066821465172865769611392463178995258086881742449721234311356687420482751784846438636301230764595513593015739474991858764047976801503033754496130862985835414725093595848438716036397621083627736037718593004116451370466190372184472549687902683526208690538342203230546356091473070703915541265968342831801042908302343931120087185919578486377732089325757293344132453866485099170403721230466842424731063640211141016431246614147390053901964808006818773982249537902721967645669971475926943111325348349633169162103395241111720218727075269930245767581623820415437770441147556880692199842656200508038962931546800383414873585218391377280785395773705947994326669711742033033979907519414826195191165392242518447528594437952543852741116355804596897384702030783754401487891189413466526648051760490950113802358658051551713067389556892060393000484911974818817254166951086510412065826962549838783157934789547474753757549609735671193562539914607146377727727289336647633401743711558917211392826746418782594189470080433330856877383778113210874928934297185997829526191524995015507141367848281045899070270567930192403751405256001346056827912074676290066564830821179292908340752207498501962858613893935834556322906582312132018892685542577137424290945147086678517496823080094363809443863545889788022905788657833915113107876210253575615015172594095110571225649496217037044972972849392798907660382404519998425477624563474369497462060502650162323645036850343172878873974176703617997478335540782639022702518908922884639283579645162255989074795955510047800391334146719629466010509660165981526727767620244517961637579295583406889934860363281147106950515667623329853372373838767341605414773137345790167993510068358683273725188278841952319250951440825025899684836184546150187980229670584136919780457548678993935593890128658281619824318731978948319925096737199186784515590351151627997116380374473587474117199111261484021816081915816634782267890816807208188610573696078504330718510193221278473224960826207057242858037164859000204442414608921376498287983439448552051041073407319895078407366595200646275398286093002272318391144010126646703364672650876850010250623905004688022577849890410416663795861546278408200305930244005722297400221772846259077330210115245289334434346263969752743340426763309357172360837968684599601478650564165609230469609775276914049199374158181496986491562306252607510134476354038092837398363931147287279424424319564470266266558794630291742608701039210165535415142936371833420950812977425979407017903972994345430119322200465027597143714044499450787786882953306916342389236843722962070510050597709934136802130965177489724977022308756894851086966159733394724734104744251293323521379037331114473052657096204204956443051859413268628943444282885851422441751623740460706912254921456115226801374868194145900961497976446037366648693050388283299500779493274474260955431232029666269482334490975531298350873602574901167539731607052901810828829207050126600645478698054679227062212706564181269469061381007251755557019762244482507789149054531332095480613469972510848827603175629827130525258441605231495226832276759298093407944158997219369626161732227281488503577853600988230538832383641283725139956429376837143339906767110245173133955774168918774092165554474424889504401585027616083785886787866940050221798124310644065585480427308108678200101597205097552023559780537478524534946722072675275137893431420555431853115602287409436842591008232853312775750573333047866431747159164054382509260562203639102319927995721849093630728536270814214696712966923037576738718354078954302377890246199229062295477296643689550626249522589793979761673970080436064062784048829034374916423924296778713774649467507662614320235151557034860950873041072818349589441116804034368681886337022572340409147426211050606728883653988364496945989658195397098125712067314735645336453872156010579797529209654529900297420170643783208197334129417071719886120940609203653707334698683551083331875766834668871081358241784887938255704296601219281796007730518076767617098531624729926945078479773107408455429980934485264772252546571595729723504294362373104912924975267114970009945173898771067331698332913196586736339099744050453736887553804454644026134822227063849811802147919837777580709719733957326783288061921015595621993309069169218205328133314342324635165596653455175781574754941553979151833680972496666490762983717623997823116670418270245279088020897890692243687297484987387947608447302301019532807917579675311532234958322318504349896152295052275898199161890250139079181530141483922614374818200715194456286947032468994020687371909867236539382021487074360612960787761099371562273555286949283640562350255952805007507075405639219413017072127088349411906569344320617936054337967223644683313457322434577140193345547107322313322870798316080995768425947341003326673934217342454156334319354459580844771384906519803558001168085363716235342935291454061181965147572908118468299451545134090606460893031877122681249059417755148918203759888952804405832216088732023507420908359238599223486775565791239935472496476367204448720031249697512773533096606518136430560070314341202583358771966067702900112296453708606597225093343629954470309373399233582241738682935192324303070591890725627966008760198287964725591938920058212079917436832689401003545054574025959249395768804148118013291682721506081449821554593242853502650503493467581249900182744599914465139935432722882967414135998871145228468258728481216614274308781861460778846403718623769367186186649857747706175756214391582542221697776927593673951707616321426778333427315112281765220377354974073159487852619085290690700308096093898816739412546632524165043462555557762770764036375536099824449578074096477860587962388425082498806712471546377557890861924950237448262143066438510936034016297821984766003482192520122268626821991197901334978850016455226100993067658099257261332643760357374365536616493676802686667140798492599810107115778477041359392261767622743469476417741147901679584168679348409967568467544182360861066453780708710922010064038159772744405102060332501713629714521155495794831553121710703673751421839747535276972415587335671067829030270831535524622678971398389545765933669442889106093137939788708875952190031652651519757430689035444623125465554307093503363469267106119051007252383227209562416867709580660703348476641115462513178247704729084200730150201266659968308695330233917871955851897007862153894632717312415755151908680225625550513809566357265004337097042770457655743448826989139474833686568202832164575648409335575576466479296442862004571917200201625238798913180244642472427831958660491655321431336310630554634908741886924887138698832399119704408212930837141018656423129210580989455484549477277003005512131436520505114762325974746096474237668954293509929080895638357153366108151426421940957736527042872906648784245360836995999163228239501971804008807443463573299750354871041599978613054243812939165246310826322829036639861319658425510924100370706665553815737757121800138586085720259023930754570363400252110837996710075980623528001773806853395690450512264415975177380023410693955039391951084766479534923331926772601869749976440969029581952912714969627721482036016203798839917560546219839830274271301261134256298576537597653376702591248122907009764461832769222058823803680593781514099588625959196894418514062289582624780146444377100880670198904732083125983991220580081841022961826421751360527625388893237068291384465550900102861023833000551474695229466476709873476292545849813822586380855443747436756259958734692463073911478833844511295635391974862282663654318494762052120910859051790264030084191981622469175175879352762338278559423096277548816640586781822372405909033855123968601952694651278651429787939918296458743727655607281883193642817488726016627193196065105911406168298529577978754399792129509555712772751364722896016717456436884451435327101304588614169574201045401522388198344430307714470244004714654827979843392606410105666275285663696123114376927695890063993746997810029909151062671878217060265347302926188322801108067581776440598313923218313432051089180729651100145419047689146406640961332936574082927828468537561844294567199707134012724226974360953598549921796922671696311542603010189607683294968922236202392088949976709411197671305323602366396384535222737456178568849328763246077899932353546190446807484677869318052615446969964789522770207479186943597893244193130790944523983699144563835224406505862909008927278030701591861414821573167359347419296576918830570748402261328760323884926718710460257400856314155345063247921943919487235976355696462707786877189726121260895567473612863232198787906834266671617573977849240766520083230497371874992022342758145551976404641285846325631564242858599818097162129757566851638832101685149387267068178845773757729578786884779034579335278277300100249107798783662443582093697453533594436686144284679255697828394736906066153904776675118208748326468716993784936899142609862164342194112523133354120069880182535280603512969312433837407082483580152185691708115899775596383312201647140781478047307442764637035755494125852536891252100086211248700939662015998723981173860967459447131140712753378930658780409421339507415674455148506259971168025475850176831469788402386107149464109642686245408402421249512974584763836332658439717413415642863758338734769277714753113271688206515129059957769149118731736112348804304691295792230588993046862606146519267497547204698895125240960877415498158474923348838308448576757126334600360719228768434632785578831571632604857887286060908476193530132690446445196873569457544110715664873955607748704140670369039949658637260968626093443600705128297005475167444331841432104826877003996647807526469325253614074587424333384673786208659377380216231079402174546042918952338630875772357981039400876567360366355349856267487579621798157346413733666461205764433838096459769045550670150286562399671889679033780493629808495328404858622735540225371745696548771142810881191677030046824341311825168464700145298772324487885502036219935188976234031439156502172748659714550755355732300955231452434540826115932802680068323538277497822597415138289237244399744844703986637746340076873393968733308386317020023628548728510628185488930268994992268984801176647726781754084463250523036470501109779252266617997925198287025744474279221014827514095852798012994034078041376265955752762321286642255551883269406865831002534126123839572779181283149972989424042634335728952607222682366234686056346472558568951288769910366914956709600976422328136403890976924197020290540231757383804126988126927347889989294386363664365275529174156684782590081591389345134535808672443802584923142976194193750999863824964019264373501164238720644231751436584153902658005800600243941261944722975708200239607246848217723467492000564277759746627906769145452158686441791616903169543999193840245659324778198597507819661018333072228918619537147309430755405694764972351609881923993556457834960211808833138570936113739631394102622811765159832148957752343442961057279642355073760611132552882988167166081377217085873632743304084237820020425615878621147126970213195219720548175269523008515322376130925148610199988065583031209191031463501439152782740026163454346467611195318706552373341011897304639286004860936232154595696830417397733612077263002954785292549100249232832095708142483382099618840049793901363946972786074637803140330362133080820509692830306751028644862240714108041876713016289875834669749443320125683787631843482773878607282729493931403998821001953045211567593202298315609930730123195918185235977743979463615085639804489993161278363239081072106171762067141055517315836160996045241731253017337462702936179619408657606111588963348179941970219816060712208583575423054396964667403755653253974793089777437922537497352904984648108025564749466056223269080660353534125223287217268626181002325499676945097580255075451858531967917901628871513039753154538086502639648385400868556213381472890065056223688246036958527989454010852752161681748571977053800958324832825860328398959940783004215412196217492325062351309979678288070875298120184056525164162864357289735549498498080123397014630531481440649206537421176963510588801721618251685968011879872506028245283569079128458995771666272424836660654651464895476647025945411965227885848311509719456502663068549095004068527678586913488580421619821927320737746972814954872224222853626885894595365491451190245495112099380837771942872378727923862518717110715453442177878981833769927893466946487420942367000575288759686671557693667792968955675626925607985126007763660317065970625083640061471887231466932981866690739627015433173391300419252382158831896347712066782967106856064253045506117839449976931169633534007302830835426466047196949650631111727724726307314768810893958436049701053261062385451920855735764459958035184681270216400985399818344229403351679304152966322675671770262075847987738954825920370531159716125472304233975788952785721524912169183739288573297308554270066354606136102918254600798297250816922483021430225143839799688499340157583967086289239535796292125766289709223165669531423092379854080701132731643963060550131171849195555599747885547337038388018842264310488991261792873862114462718598441624990061795719566676720505057762794293463363871728015539840149944766186690579747430489427719680843779370736132524087114478012222361904543961277381481773772330940787349939190229230383840925693603723356711580329134052336754542707095660547677590096667635989881584797380513433663171739716828313221045266218130025177216895702330340082991613455659970402305131325154797622166891014450409004050140506403191912750858120467129258226305659283385618957303262924681418966890817323355686804883842314754921730705989721884116206395960837942428078518599651610542566534500223690316876150991331358797698331003299020120198720469017691550583589162236146554077211991768793653806818906381514283477977835401744595352926678641816376219563551816595296715830156679635898921238733625501385093121996006904502422631544311162305342991816840231859359802241687591312582326319769790040049549164728833848669266968263817011105689464754126337937880201498852350611312250996267752333628340693346593771201596379919161003821158063148865363532940249628374136066449346527166948336767711249788815921968925282413476632880605973311838007456062250184983139279212866207636516839257724412605435098561233129383939740315293622502136133549851072989882926132438059715258786403757182242937285650193598512161822330823546593810729121247371709749169334387733938217268113395285324473524450043864335013834539292828453637880054665561564715001734164043573423611246302452356062929062235033244968160321485249254300146066590276475714888261191872670785378376939017352370677672459745016008081105116330761508087219450717748656554117150421729562973962667322695858184217714187210711551325411193932988387941320662154853519274754834512989872488826701069816696053816642963712393346882570600952871250128236090269553257617406997631027612571562555787172431496684375746020070856703433633123189021434328248406624486653905963944646934409037840658996027025993474951925067354861931591074288410768645611867115593303336526859951828173560498972007560064663599713164845350285389699518795807978236748785930069299785647330018953739473539695478461928368339187724077947943527438485691009944807356123072626084752964539833379115609863684574362182684266357008755279215747288607811711676797971404389787219309726632736427112954561153639163558628448328753262017639605769979624062098869043084073940466491829756843600613948889251767737611530682375491904463893059186630770691029524175668949557694633493089009606068076357177013577216111590739577737968815384402961429516334736270981801231197735485385127207116620710542298643473219462005155072522771949794269468925388755899913593636288579211006925644653254520457991548382240058017466688705645885921957429568860757499077977159192378910725598632047227148743414325653103728604251618448970591635760850517522152376641595015146844737399308778498795614531972291534070251361803558378813501808107566218820052764727492105583761095777702911901520976353443762335213704071591273174074996327970812520082688692561452795526170640789054395830040255932223974525339088458868224289784400281093811991725529870032412977412230716613313002370719910064808427243042524042770998831456622183943953795333059786920399330898437957601469233065726227817585326363470666599781621406574739382799803075881821766435014841253448148415978797735170952313743588400294030165905653535099752341084555466260980980007047348813068094434292263246843729648547589163125811847070265316294827692975085008719632878257441817583062355658831983869923936329701422486458357226614824114716595815921579473740531081077832867488460196682390689733566383813486839454406388483226614255421938610805574736136674270635395823385753193379938781067628541634820603958868451862551263982573272788416040311570871726053052995925979238470994905170583054640094061357635237714286147721553538916526508429943226947288102555620210972051226050876515813601455657418901068298329556639764821518153535794803648388606757717884492913889722480738498705203739207470066715449372890213936437948701010705978671467894502307344756557450647046596279410215494029187647773641629330768697862926945087267413135588683602434206967816516497739855655823359971040681064181698735273334452508745604688638455240433949480873901626802784112270104691254241943634430944487395820182781706469506021112672701817723410835678155654610250206478492638401627065216927384033566016129352632015406674934329855803076552025817478850163281334116492965818797771813540292633889824459709723465847791891835393067020669091091057093248427795503384933765101768376948833188013823567031174499238930954448714083614226059849482549894046348697413273725299115043377415913979895602437071533708442640112472604212465224664196747880072637424132608872274455188962958550867941414285031824336372736532175395718604330158590877405232472774843684779901229501324568544901177753594750455091782534868706898118588968574845343701449975179651888120374542696263935493753316106217982313489812613047455901192403493385919123187832780361145055948223511018142641939901700578573138190583933343077522361216976996586275305047877342440694935629404572725662134899501350895173722774640322561372263022758695591107996694938758100995296887177419900736846374596756905533392725387682002647712453964922197770839513374998121418302134044759935882320954905988659234031978551688215130478511626723035191092288713226561299843320960068646217882853867977806835664219894760114227716974997389000694124358501420270014221974011008943195079558878091887969321621947650605410108071004133250148247047049510270515889773548354480262433093330807780257375487071848085918515058968206553830652380251307067832551785026905176956610395981557193003349984018203883134503841094534970303126669459228798050297676471895820185175440328680133031222693047426075772922622626889759022575677920415187113965446160833329643080614668755855544252372127977328592256318021819546669519065070489092378539349727589205546753399801670940844001638179698778310114569461179929903203273374448149090279526229929406263649519842706891469773625459958641465538192839975041370584994644279861486342985467596109488745984302801115201728462144250633405084385091100290970601040011411664583597922481581814589493297312196008875384116673773962053804415830869097031372289375143971605978175907105263812977519115918076478196488163912844691822124592793720180033262995222662591879328628411243038978275658205146161571106934009701830938025720771659389740779518168643061814237657776399779996058725432085921196528483854981445661742019744108320553888532837764659308742158650374337152963150658358309044049586620091489435872064625526770513375147977386918391674959828148431959965294466384618474726177241888727803343009284644978740342039201570081289865194436743670972618516326094330048716169833481996949368436954192908735324087880987371944615942962776195909430582855370389391890187508166259149271640282678165742167417093554739209682589585455099341664120839747813649924797669898099688877071239344435667166109221735851894415787072057174682639439216697571516390555004444026849573975242666326390821525225417731026409279600945982771102373503469552392881943214540142063876517157808187366881536274839438847118118361848887489414743160747175077402295170465831330687861241209750084016993185667140673489450271282684975512952689866802822123071191101530464035689668274020716237471563252667351025015344951200333646939090890324816714266699437100010966967100246571761945218176562427009554718691372518416477676240753337440643793338760942973959796658605831796042410745687639485538243468451041143087706487878382712197343645454147318813158952739697986752116868111385878535805855867356815307742609374950795378875557233470836632012918491431453504550233725525832954028954723542495800524233930937427738499564448936796455093367547344225358881756706690057045340898105522423895671435070799411573853750607614818464081831702894693652449183246806709696370575764296990581480210542873816701409501177581407313415755221366050493838930968643607281824628468197928978585855813797872723593575682553842631424126202368508308129977106378680459919076566527006251686469318070278342944650384646829156413802314711806245945121765443917819807945130491711558009534305578708368645042041390790725216482051540328636059433873345492823227252733838111350598089273627782256969287255568969100005796737448112591993761769184676023422294056353670692006451027250318480905841055851681997444192225535916618892436082151309642987159540334010074765505276308490448359398048095721131759735062251425770245723053466593818938787080881662268225654336933557509890687408594996386468847630846093965063637329464627218710344053099633206794144422094953350428277665046880781195255897340538487856431876025258193150308228241298363134892990081310202584365127517882976494753463124994588180747516762661577238105689046859187725987860947309882263755089658661186176504821489985766324592742514230367571031136101661871071296224232098578835349917694188811037526565555017523914598052762429302313062351694646416783966177656880063276307911088149451999285753257249264283742528897175246918290546412504027258167902774784817963315089251238611695372350926075717845826553694105949503077735898158998934483158368275899564722859239265158551122441141030486037131170601907280708756849335897097345166842212735571074065931776320575225747796930450788030329633619061962040105033532165588556510614685082850296940446993914037123161553068460146075060242276248598111603765892633184835337695285681756689827084296585332453994998019015167948353398707355661330208194979379804312739437387681509192935355878712705070610508263211169249301094643982715997227372660851234665603136782355530146459832880075611026742581475554637841818440239240878240686342958652473552042006987055179226386564378374875252525049856468940659710837766173654869773322529640081454114470350271880228045507721867156269893687133469690190428486930362149503251590542306171306865467943384153150191305564393933034979724360686739289218542174950971435680008934950821860318195210713796048701659122615627494792116301877683274557831147178955873858487969859968633795307004560176299308484239777408708610517422685421928236560161945044488356493349942058853746008997114811791370899913004082711314646292686939635253370515601349030510309088190139191627785205856153259652487408565778449870104545617981685537522844273270836463788216992552428915001770939361527600321651510771487510878331768046993839214212737078089935656847492725911946150837565749317573894472846123823217899052803720299344534688225436095560372021289949193126704167802075054977404468085525723686918608141902739158305057016601553871671880607232685459158598397797714085777963595659022851868062382106304110170762879485488941228126037087701496636142328861429664885566393506326480872949745776518563137526939693355175032087185810355231891067089631201675247095868748331954853555266332759339464307401589453555706985962874260652345634934238672036703482805126112959074800536793303746581681633904128932239248146462820377834210040341557669042952310048278681133753671871797751424537873613428649578657552099821764382180864341472662354669843308302226628261526727749390655798501622299815128828966401708907425296959051984573435960991286031106584345957344919757297936441666883098274298004581648488980656430254353260024942745314393638227458792171590893184533883530588771750246612825916192335282029833845129178088153778663222295319235072341679463875559646416806801423678089091074993043238594873913361122752810509976576463592968706130417305665860437541835337525257631946476551994076223878985514739052336435261130936641838953944830872269618375466666534664092509399845088197413532499987754053499344698112555328048329316315491204290339352202051749433847511769670645334822719224654759498271825789543264094359309148473259515384647496891241734252748873886826472804830970778867927988854762068812293302515901511507049888096340974971053044872653916781894484713607304116709074779777285378881242201234655755117505473314987793338651259447693306433576725441239095825475403046685234576419016301094512832453085828156554042502507897302163714945794911445198323535699631439847319052396033520089468892298337179170900246777625372757073347892488997521239867515876593833704846262422726755704230676367075932742059018112395600604358662446793877594585147249854070988696492270285835786238373469799098649866703839978820191729996292296508939708265757671653643064573855026400583089068636209275644457202757846515993020881973146883485139399387213261370469182479437295467769464110269868997911896364164749033598600144018971261866456737520024925150028383105968741766941757326004393757748838893950485703268070955802601200452539784251183564008435927632354174563887627547208779554707741936887907057449348232534430504007482524090688695959024660702618956556640751899610912222187893072404461303728942487350640907881970045865271210925792021369212006045349296813315202218427282186797470077231394070548544005723450835383601368133824061976069992186873203471020598709096993573615683790927754051822760256583160553890595022760265825998048296391688691577075353101031908367211850271750178553095044396922265122243425798361298601916093051692564471594272965997957177389127352193905233312825101099041646084023196350322430213821595625525055534397889025084768976110367939548964040478678510926902548237639130879559186064466502949599222765781872833933184682773451627141597838767354572891793102553523975904753494080020537614289696520521599223760855724399977383168843400453952280387613373746154943874104634087457900324406227089459208160940488061983054876513250997586073507810389147921183846407877166721344231916077154950859543696383166777384445447399784030373151023641142484896939863861872863524250860960814558349454496238005906304789903398431674107236517050868584985211960457993809007896724767527500480652405848427195015857813111812441843269058521103698561536501818663788971622755124687612594055832733561531619818766685922813538125761799230286725813746846367242695364844513842501170309043925556177823646707382870354294519151160927985717130357911680229545364185212025619601033243692889607614406254702581183834820821620770701721381533925539350288034696982001824015205471967321292373065810446134688442148618954641081009809977042900651650363720621203310856162450727928305010399244344448199545581827242376099064635593092880698258437775734428514983870203580464090940128424595925293481969591916242072777238848412078106457127840843538655527830938720404098033858837636831344968089877134649478657201770529181304168515215921126044999985708687841766994525904278704666966109135193985489175957107933135474951775710795960784409576464449663693549113945012890138273652280209974965300824198857717675343708648372057946125951165235130760033555404039668592776933815163807719407554808426401285309048478629877654359177655214985840791547301375169627050313316995132541902839437068311783479206555898482478305046037986636699123877850660802888008318156290024485179416796905432033738158288351098852057115270351405058709183608695413732462241840418944996862727920698523718892296842466855742917868980653228318116031480224465970620789956643412681962199492868380708460903201735024591254662611529881416859732498680578312508169941432685359314668066055832406027777524726352923373365519688958289228599746403532565494950736636656018602744913282669521967613564623354882938792016064465587963243709833899078998200012776347867064366499135691390913272812206098156692824796512338614279975991788019933849352455826927806497478545812482841083354007293002022803123417631311938590288278230104325274774265725669675567315914245465079802928887176636718445975000866689987967453416885985493242720977590691390345317333886973937078535230282916010478438441897570065128458738334245000200614864332116005373433383446014570383270866144783829238027505870732946456740441669570330921121413798700146016472011308547188655099631908298021685535225648632451032361825303620521911465384069655196296638458456253778380546655735014371038083394497978373223418736309480178781623673512508763797966408829112878328971573182972202950836262853265524516414946082942374542073621838800415745998191950472157138967000221422756493133292211862211313906943299530395582148109531066740327355875923000804104084975591650650609952985808757539406692937006683586667430939680951993440648740367619128462595698364643177192876737796519207044351223242684262076700297349772954619400246046902688135792193904141881670961442906626241314313174530036459422282312722086500244301882400460797100006830146133691082586293763960731761727796687992694538412175455506246685551219841125967905187784395965558965394629914047970696862733051311704991285095734970006360995817254520355737753778395496255302299115142812689847055555534527466916124780777762322832051160823376684500224799236900720456191338377078824474571899040137759926142753123516118290442588910210675618032108151883282203857639242823468351428755769516995147047009619293538646899489629251865517578901663243337823924177214522164670240817625080487404516935417805225575638070453308720718120286650666784194644666007985014040549879150768352200432849360113603238137099637760938189180004913521428493647306160647728223847943519748065067702307843335703207031726441298052026843389283227809833204810592727699565188911763307235732374991753903547411658765309608131190100116733124933403499364014680295023848531726173764491871927213544342782395185630858464447107253405646205662468627352360985417125083804641599228031078963131480962635785165111660070612706994451800141388338724845451425398472722679859153664154610832417267735135610881923305934573906737776618056024290379167236331719950976502301274550468057993496711213013892452128537484091431464177025336741458925578289574590903805833862438611399457255557946376993162641692593315008143660114638417220183037591951358805979332738992305919345662057988626229468112707403578595167407491116337000439856441715613214368154656517989639391756241862581932178424763146422872874803392874467019846418202434648080314444525199554884041440135376889805644696411176020106764052730744594749566937220593501199043787519294542079311777883973774161873573681953091558943618533097610017346310054139705135604548930135024017395039268655110582632713440142830714758439329996301087848588745549969784293510411893537630032988116668319475839860218564677222048005643785702149779860236560726615525684159441546176258874445477524334195521650502635057336802704929762377553252890622283996282909396995388452400523649456028383131223923055128290174855373225839147299548651336174573409325277153084502137923724632338163097580598899682904272978088715845622674648379142103639685952081053903233936477772309445612170931536835103538051254663555606059887157995943349683409224428477197392344504454086763828177569957468359046537172419301713138186214141679426818113400322668076408043542187955165869231152884038521044788258608665708629624752545601081118903287987471144168780656923100279541607976059232868206878330768110755432620868320509707503608360108877956607846545801324758943397132980970666977972077825581516600284947243218703150519916151782612473145263699320778759657059045422572573289749500215476652690878613881010468622550156612661431922072319614952524892319284651159694001533973439239022249445070790211594387017639425971728727991352058442252477934117096894536422786166312337598923154435754004282823528909743806068985684514940903654776646621561116677676410097477992550150061985291350160019983532214970289971673270652581123641111169335135327899456854007076469145566455636174662753399100278838360185552353325025278372879915193301111427308817239391492277659477995556394316966837232379909302517785196667731190230610457922813469851352995899533619371899823884459158901913444206154209606119782969180615707414407766704722388707721524366380729680057494801731105304836927105864677559282807058967622640395367862802387949792065807391452832411096693203582698518400040578712299877325413572290430446867586282723069129648142322511963884341049570281659912794357482420548009195343991705152376258589222233687499143475641548151941531258920079167099086643095867957614826018318016802955960257144759998959340767784187347955634524843132247479571864404639339872539069368132418096346714419784439802450629207674327535067690235052616639941552088399268618037596450816479450271958176115026099001795442088525485971066850151579426748882859184838385986431680511747633992782215409092505806772554892578312940197230293824882007702501166221979289446665969001362962025576297405079733549812695833231975993718824464536387359017130337138137610050675724659550656103464431593831521414522312251244816931272971646212270811415909562307851577941172163447393392693090088630425840504909746002854271648031714263711896045543224559285067821924854150436860172573631523328240336952732013812899777407063562030319950884520120917236275018344449001520240963173232473062371879544139252197085938476457746841957821831430393544601854934521867826420425453556429336836203824147764132256759138931341248214581320582861825396642236596443603836584263191678531144630652036465815542318363660941647466773931973393100457055219937690923324058781853302073707455562311406223871913445454761058301415960501296842154899622733115703309492321785293625158943983172110667725395675227778352866942515347903217917541890338105797645521744298139151892503712230360369326407498352445754020850185871795694460073348008924394931744830280168673963988995545705938770993171103970657713909537228546789884325571939413125591352696492133800457684071977904961611119894856875617314536604274672135792214919050141083749042580595991155894188604469263191608521111249877575889668319468769254485980803178767487974635231734242786618810271759133023816679382653043023137119571509085741360787873007873780770692431822251347477175499458684170073023386061450071629630482417051077500473707191515636664158735074032766495903158798371710863389187085628784202266131606534254822366672468971257538434373858580984684185670750810656534048503508620737735429163339292998391518974256842858708881000600061975482177546688426760629931046857973169186125048066576257608411763261623283532134196746895496653790923076292304933137827950840169015260000255724075846650113293723816040377070122387760468556645595255880465234767356656012782793506883507054965537643102103456200640627686173670976862347210331686678689482670113927106875059511399904153822692314433111043276207518431517163961513461506760284522744159002809713316460969061595977913412656951777343024707190465221891276151333041565222115701389082197141174933240296389174626312402096596565790288555742258749343225085673328583539145698747764610831613602341504427845144700985871943466454295762704968453815531200666667430036523456766870339498652416284068006219842306893401591903520991833787665388768289514355960712508945314303453150616671137220989768434806755427715687849512858846087349072507477018063844365953724095266643322660056386910343621665817408343851776723307283196820078605515112600956370751994889145342239836159559035770057747752072648770601643552994164346874698694544038447124846671005191790795038646568153121302932736055834133214123268583555597026356873053507025122742599054442356432468499772336282076683228194242621062966366577821693979350100094313199233180682745394631183861207652294005732832585097803316362442979934781497009922903828810709783502437588479380499906352667136582104661964469664846847641589693377335493695040484897332705146174445872497571836479044613005934066303283440365232272710843401397813624651337167710832813661531460668772711998011364662564784597323629523685492716756564033981159320579131847520320121854590966803700334616781783888176413263029675769648743185616397427474832225415719644561843047251514178657066433130433066654058977350962045294819104471367714035144922084198929483764233235833509419786326597730460768135693861675383530978359617691060632968555624362289767711194898302623951549617375454839731378777418047753100286098572691939316977076607835898326524616358877170707060535278390962933843697384784855501817732359438678177790746411518208487811939933776033438490659055963211826500407314478811818049015033986641971406517144243501950250360594399717397491080224998528444119284686591254454888651195755328105400190601553979880821472257701122828246309347905002669711780040570234021570615040503531290621607092872555476905898582687373000627013950263007051477242531115493953814937847755056820668285710199604663628469759427380271608092661061107882259500147586897710136552952191436445902332310082465294246248483969321269836569369257951857294521547531798516563902430703576972330097331823792998781009254224388589818095721586356189366836104651444025252985738583042726670959578456178420179625863492142754930915510290715621337990075025725115664250926185707571349615823418714453443756783547698625805887724537986807165581812015015927870235922502841114950781274063259078007779394940249984228202566302547489222058405144763875229903821854743886597590037828691968876368127937141486672932386078120873396826504770284019995496724131826145405029128228037708699743702906274949884372424896398872802452766893894434951276081190659314417893644950238827444146091858591775358952560281034280151907300265098541932275658812588903263275301127175817004121428631936288891199398340560968194563475761594488684268216165832735578319874602110350441618376512997449184233034368654079913462764442659870595758715269999949562113666638812957819928535568110973707524925081255694949738136396941887378453079028239620842579146305224204969622130560068836486514557510141194891666732810174198866448585134846264008154515413342589858242241232016477811043818492621630335635528910216536935788725217054614758387843691726648365615314922713100646197675595234271728236480704617351991484374486823411164534579272770766572271992915439679049343813920456541830250367245557567566869614997636974227052332654839228100549544785675018770524553047985929161814816280923704873510870753334530602975425677113704731989393183234095952902622921985427219698674077279478972620541690784711366664551051593404138428215480814311981263865671197664585821252576669652325734773328439378768719280547003122747195758526499144687647723448345636861551485358516467905758623649014473308491455088331063228259811968801388503560422595573652670339401858682032834042767043561837075655285746520519457668763672244494580658589536596584219609700816856222092872837243609991631111592617294551140376876463481808528194098527101583959500866790416764357380427349012240821702169323658985262559469410586703768935464875855849844490402354137814864048335449736303900781728912342242998726879779228422921407479794601707604407089756039582718094522920296551819857288501714270401988610871636677806473359740394509988990029422294806363863223353000291879853879737425120145632592726689448869046268439184328056413518954685994160089496239704046904239083510803922679273920316116080998098004661551050663153732182857477806885750740134108432568721167171417802086659031495298306037384107382463332424259325260789412151934108835151343511736808210632840538097187805004092129893523481291851704636685020512729246505539477246676825608506758737068354475297525232485546440000400889983515774538244261925631422108075798687038914695268309263550045597346432113073849977931547687064575048935753184776853975317335520937484779657993577770965758208755116458591311396263220508952863490680152772955410009503407394682104239130693715480918694819849789543225493209329368705066855708954718799130863418897969396286458031930597682333784936089575094428700236173723691112452798837928944716488812852805785523852536330421517591753528719533079872818305758390572750976399854971030633170330154746845012071758433777690869126979983055483320661019854695438857902467636430960024817388965062343020511907746948513364576341568194828296940496415371359971161835053396386372914255500028197263522431071556182601744400446412643798772605906211006931228758686104762306404517666034346244098241023799276642313652428061131324517039906208856296678549308766675423319459776840174881568442969967056816046656073963745999035128898521260748847378987517222330806495626567907040353221292640874413684200458922005730046775508222663699817003424625066469333487255384441572213833130775305726336501418207595540686510739101279237323157376070559258248604317782465472306456557021459135487106626771562103150681122124392623175496343626767728877327313001091792231258294676143176883070468190063039151613434177253050806325437210076969835546739483779558100868484530553459194530318403935345766561554446221330252841214486969939776850096250444964637414835615811612548525109285416191217369778319757206314660899663278031166991795991666534163941651665444391292590250133971433283220126939193022997990544787770111896979226433898687146813943093754308536428186733187865758678127001774126048966562301738482629750514071012132037638465809693262173858002293525337947805916355408261862819559164523646578914592101509473667885248357655390538005413097605930067438437952986514922176137802088155782551218121967930618236058370845513201036536422754350011270454128362876470085889856071468292195676232574618822731517407551351005709289987675954062406183230951599530241921797995774435993910140678468664434326585261630040940717199120814331569868942643503553730750502758281477754360596529230628286316835742266210663217600326967452669460744784089254684607091842035578057888385618019509445831058567708044558592032372317694388424117582706934439127478242366919197895015870235182579491669908463625568919096726974530736626529441374766824870722264075818892316031971240182056420124794765409904130261396971237953498568011018937961800751066663933691564366992756885884804022902282664751550757560141774810529987023852371936836742276081931976031990774922383146878937723315829024014070314798511652246412524306405368307077317927741251815949462638396218573477622408102040173185398494667607078093245285836759736321402760299599561748585850732987982140481939607430121629389613256962005264135527898522146920016364221517470941832207221463260638961168784905437819489700836032795492161823059375679151880171433537297588536998437547628961247614371039422607212018848345942423573490427224869651520015810747214978440066267911258405906942684767144344492383105848506952528612919915009503115543887405695676670820584128662378029293986345596386216134250436758674288166742126887504226557648294881800679662450986078804646778906598452958389789852466127936116977737817776741501978695897143934916312199352972943953311223437240721650251929298764881374170952177047593429162278208435385751274192609453652723070120101779436312462969743643819727451973588332191329547636105229087237411896416566678204081971889401719598420889402369414330963443378009783289919582939087320940715345186118458169136919506805822023827327583577180194297779076896828523267960745072116272341557981042292589560036372819616116716497758324579221416228188698395842572420822237069831928600616120592681874440418768017102389129513535916727432339588116624479923896394600930086568217646679444117860807711235938973010562417921378999800445417054861836907571616024884588716284784866151106881240048830380947540966327112404310808517167465117594029893231146744710710298268087300616969184875188898639138171493824003884048021219555378036130217786589890617415748087258518168744191285897247674855719018600215450662372780647018441259348705718923038310400687251133471118033556069295508156819989384685863631439504933272569836728810376734530178566787723859331119888955776731728446631329593437370650841921677167928049929628115076270520235736953654236628594877633231338555512591252362049179067091043360618286183520425930737026769120256222818778326340248275283144089775981711672580673995112016607500449227192086563143662838624506697192021420350603678033689817464119658614243145290512860170557350169320618105818631575356581047461380174980870429947820340316338691888827156615575877218021409111893710818755992563285216218390814553610025529447742851369200204471029311231547737894580157711127401058615436636849253563768932065554111235681834425496782402395387732872727816587773665676927041343209061223002444901047870395182683435315233918132280378918312112554525706852330491516017475343427227036904107812794549416484438159629585435082521452750394513644746908305147094752489023907320655913783934498092348207057165670612551633413081592594944641289020832332815508068431071812952222391973408293157544568016498884621077354476028712878927096277907457546594061312163384203717125318298613246942800891510995842497948034849782585835742523314685325829213528793192915763860326557643775493868605285448175167291461925169250585804851353817393334361519780166520054464728807719306810454689452741641796193179592120809736029320598734862762045976814273992731787318519820490066233329884507800025748939550879941101467559246746062528399242442463851772106155707226738100788407423125793470711967910809544341657741837202602569503261969927181026191011532193117210952829516148000811269889868098403816609212133353853021949624047996237977655188172637484405431135213855425715765630844193277284750656787975410169886651773626228889216510160902855027000714466781024768542299943655907267126348249162209766132888468816746068108885118480937841811166382486614358948467371339062980970022800709322691811158616553980940225383194915769901134599917653990846261132095695374982882337767164456374494459075103287986881023357756368611187261073163999504206460878276299426276710053698654273248134214788132020735617901020678036138716147461445597544552963585461061631959708512751124825689779681485736555485417258146528594367174541585255911553690724099794270860421250441978348785782350262767989738701567421456319455272776126516205597646192658418380785609811249689861688130973894171330853743596336844630181687593834294277846012046224318060181881790163601893344827974338880264085421417546904511576105009967310233605210413507563729934307019406922379204623324098786398821955141212041893571503716865141717265442444751890692226818937435941783315598153204645443863851160955955040322142547309230133365271241145386435786320212399738034870065596947355117638208375792888312367443137225818006078458930501651943684624987027581330189102667034614439530160067225162496662611731374754626235426659385941138076348302713452151902315117355826148288468868813943345447235598454652329818143641253550714200740308700143628387362297433601268267598919706809571023098790600551725886904608787041709337832650131021982676009369763252384982008857400107929361742418891179476724037143520736641760504079976945981099487723212723501903402494198928062770433278058611877146470818862356236947238869579245722626965509749054115809508032238795385209879547869120243972462528998562994329296757827857355510722546913788150244008965674320640630042883885285924201272793372537768688739977647749005926368347630834054716851319892871587947270428742995651967351363927587296074850725975451472611894553007416296880249754736222150828541553973563067616816263791393763059755859505862017316432617169278145232563257074745476186218282875579559646791675120303408123909555391732143676369894125383481015353303543528271556484551226708004023327582425377038480078758581920636356888700789787962614270441250238820347566640119341283332667870039302476950443421595222278138484890361012163767418404726014305640263023211819587942336112410592882119256060244019482310166275864478918882750771858425015985537020476373617137160266814352768633876578725110837208780246441882232160280956279776746287131373522031089276157863815985584768010008261048174895693171585613682629835641139164375843057745162881808638038200665116490720435024675450409503841732913111007086307742710953670125381861741682984788384156125592484780178487410743149376270535344162800009256716275314837610130647722404601968818505246704884505676612692130780618982728714338738445493596561253769752463586155090847573236362145405839472222918127011949870286666150612103216169759293054700490065131937780801890939118822973799100297607954370701419826283678662333159754538551291339552586002754120858207475747957041449751231977797191929045962621305300656011429007068799122217946948799399257925716682762508281297759366321163428439315098464143326368789306971925023041927100265716083640385841983428113148296268754094401130178267676563695315410841140896933950477235301252981407113653316505541186844427693382706002782839258647098266780678226655515225423502314300705344294573814309634676595784199615655264524039054839834195306866784772040607865630539249566623029554368758583855840619338121692537712162159151903873551794312193038622630253407664729193634465640811363156804335250667666562452203520197925629272820303402661931132361236888413540173128760632784102641666032718955787444990594027714399093111144161696318455105496630214363845376662914087769882940277995278165125591393762738752767121603809611989921339072323347931734879150776043731169732102402083201258831446487053349693166417767611497679950129683744212010508352028655879119213800114987256515395094823311509597135650719959363772110067197705775709783899257017253296882160809853345733458455708643388771675621480705657515221485094185182257905315025253044928617446556188609715942938420744548679981026131324506032853287059899855339248342119543661943330430661127433389740993854911550557741098321453741990975171783375704952142597907983899856128929429457014908965801218325887755796262672943233782071834367414571083231571368347858769082155388079391620597516514706342298792942533015778773830891969179528569682944155270604342307399180340877788643573861919247410138888091520220931454352482819806331111643386809792851032401540864720312582245226932333187598794326483858927676121634899082046664440262622622170726027401173768169342221754326252408321482560159625787600819596242594799359269240773529200860340736007960588054018292489613077729282273937645135089589865499205678206198388049506571006752602006619834483404980639105896845012847999181685329703301488998575036554793625254964016554328326208955412172761655461815365028586557894393876354876998988347592376765925875085168425626272123463084195520230071576124479364307133077400534039821279504805633553936122486827954786591329702909926565115861192232028752166274512908395936539082768599957671629766774731909929116233934964809909165261923116506083622757315754268350838133929999193613657464396036807499544220001425535482932346882212113399881809970685271574355924868001190286070949528790078617878335637603851980289545633599749572574859482630937952182934621211621466589617807514440695646145019156520450176358329178903076161905024513636068352377986934087083465297376021229248201465144170296560150278279555269188212579873977144897812723530925372657149260113559652107739179868147631378075795930657928679364077131423799750078129964173016602932566708133328392077527292474506009324374433552372570222142146742195186916906473844158768611175074031490233729757445076281358746159198173791492425424345976281994330880831869204516913921920331474166506526709626247263626920371457041920239920089938473082285557585328399729046753875584957385995752260866336320951273707435804587314069195527436423341025337852194432438004230662738874096046351201667919445454532309540026565653386381268521412105796915574145903046143711066366229173841851967997512523892904068137808514965776333913651374847629087678593422830409005312505030304408027324524122043277415364234109266550437824146170155834190543859294640273739834509361585924815285042641022103901983719196365966790885000404452616833830226605286405232420713691943887804021658720389395653438189550132582901525929923643217988913099176071305726051525810736861214834676406343193377736073049681000126083307654690303909716864239428362640902244902342983377603954129657056799900051535716420836393195107492180955915524817484346677294177993570861488002877249859576063961945651276478964434134734857289087741854469869419513501082476940426787280632419763085954893130832591795350921812263649542419750965243576957274556779147126449587213754501375339292626347936320139230224550850258684328369590126767862597157219643340085770517115786111714153995958192866363406986650823836247760745831767636338930665786546004276655700476113795861790026195300987974801794522266480738935138414163723274757324296932137657880581564387084500422568462301271820674236357699520574945569892003049584454841815407711099294004605686841241077982559036594229579513866101704972612900787869796841658840882880490492943793972307544472187330999129236465151423230984173205688768719257679184404028821956898058200638454249473206544810869258814100566966990346183578876114547027930002648679689704704320263171568850140270898700315691240566355768170697428937674477126138731246217568568333824968865939626128424931892952506554109225077323888586836820433384147319222010423215514783732577812165252671026402166490460241107793578376344992980643553970289739936884721291107798307942593735139802676247786426459790888224937375230726157550725819451829373944714027656353269222549632413956564335522416979068580245927334932089348410361886386615293558414132373115709331537836835078479661033872832534997609659278151575469948709124591238569311229611498895281464753757765524523054980376457940358072723671255944895826216933992909428957469149664334710821491363678354268121751268285344404604794912860658995065652315945843068315173079843571077489277260226753956866505338076169133878631740659501004516323376876681494250405465396887109971713222376824099102929209580972607475053160736131404965474914034053799278268074279267242917805911358808000276753812099894447729444587197904590255662166923900335456472194813628061335310169169228360626980598173043336117190079411971548735550372236003746845275809859411276131002430645525635091424492723891302208371620940136465630386307917167221513559938929534945301341501127900502152493329033622340089234313907282900941209533939293058338949872373810331532360245865502251360645568998528906202030047188866388296987884933193694313494579563711105873903688677936010305155920210690710701554013220932620503383973407772428030980669641494985019389559584081501295141845436145995701875672323612370575419306756486305205944834781182829862458320920891728144450593015225163436470211241870931692670295854316387239481516370948371458341380537715741842513417450510306881676635612872974299744169077019062574073310959543928591628596459001815795382035955348593852014882676480417301638907751793165900414755119528889121209352406824399919639259472246638068784725050357712799534177347429217662989407110945282056780953638608602269971423213327891183015043029490877404139614191771451182815452236662984786710901461571698865763122442085992152165922486324272936766900152539459821022877879895045714998072258909562013843836245338483117834696531002954973244253713616876980394787809090794928787784203632776592865277804724522283439299367164306891784169441172811725617207498970151289075520618991438635682391707421361063880604742058210516355761970548769378459713473652604647076519149258405179121764458813861212861611965352878358207751640000791484349127250536234080425058697268537316363699634267906670837394038233432322174366624492061335969393439797653171797701794016812358565371539280629841458088644655924827956977600050502765724122620527271072384895097749298147325743607039174211474652443986840351115752302940528117258948085781683977174613679657833459535654930444384227913242671758699116902931446505245948957445029051523541740647557896856672058479266245714795694964992523357982561569192561099132870128920602416733245339213428697004710753293833213131898501511710173983294278816549151918000844629335473124751001864867105210369308336168893886149810287279592245606919162825305102284201572893275556739163733394362842601349436927290643217356913789374574246779285390205653374904407503440535377463758545386969728163526987471232710396022254138630021686357097356400798019375855065331191503092241135696417207071057529344565928520872732902787373013221666945924081266017972040087945238137872290765023700386366280914097467201199806641182736931203083664327491354137551728605563551328070009608835416588376161172182067029668050352556440158582833867022767301268113555166412999059617409888665769871313847665998616000178390386681929471149454533322847880911543201440993274789567009253065196752968935218276822420284177530316786132591896482257837862824079522252635651945655301181064946158213360501605674732978131241748960074653780581287926594630952456216248032031394388486584209674656055789964008684116860648117795325433703731228060519309706354037707011092407566530951281158680911579582340202117370740398068137160818616309829644900452792764873680177271204725590820608129748599640454156124340716571607145491839259209121739700443752656154888960858515877152066407636026993274327163546785068193792674542216170301292229878370460489356413937019544689318281575463377395602607405558564497946966476147449915415726117342118157295578635697818312628896003616312869520527896159487911308435928584641640053371515513904166287351255487372273522881717476669033785461180568455021422607273610194400415012559954371822593342897216885991436740415308393060128897395327187658491322300428609190283191235138857578434856018985942024978941600415349509285626881916768235777428436360339970086827699775958334132198173157654562857633874521473744981143780096954552780917192730392006267323691177695912887105759982118321222339958649330703754081509117776555458204183726646187050863885769025534166490430989166728188913011502049689356730446694369065803293337788084424517736924339002004826124652655566192927848679988694867017479225281548873201233083241163293551771226805457484766427110148732662702005285526115774411408458885653493313854226626216263510125074931302327132668494644504834900254071565876661289053166538198650308623754080125474090935442571572095515954741425205647902929907130076007797153877488779903701834758041517114503239788702967772592864086902294661605394236016921972276420220061422658402218939194313098942592535977786984345346151665126455103418039460350434713933884857620919301186655489505235105121874236032634032381611256887510456041907244610856270041478355024536439377236675309535257190075330027129946563259939504392872934823766027094634917885540883507570973934693769386742167764316127514627504457318521432102409303028745922291739268304713355809410272608684425431987411220043380980362048155257354126558068292009949152628902475919170916388429649220931690346642597697909474068185230324078372024370301405616207470803007030862107441980672061653718176880292914965666200274476652044458184425063775539366529328620403970717408941127231794525391046153826764261429628647812960305091104307133252957497907696404790997837819357342660257868002912874690135221765822009480458120006978370543513751529630216514846386681814786222921115492702850116494361147012663297672702692808412033398717838773409805233045393157476687121682107144376751445973526572506771534790785993402155657096244371645597100865985914306731282717861524404915026024272544011474453532672159537470425734665672674748862825754512536087059139355060253987242202565335228724003892498562349550939865538540821515264195762878939521719305734828377980007028244866971765392551837454705734601578178290987998289543155256250733870829829101359310297042606820106301136884215561444367874869618592908884448141472391250166193583037096411210997418987057111752441737575341024928142367493669002125957576696660783254224616480874302838604812624767940950147114277664597198447169043903475118665482253701573315552598631153478453312936618409513860930887701553601727931106129216950117472740067943012456093544763014942374902960886448208536743153387302597305030457849056439666632273592886538789571350589000386405406486781954361584265216435906433988107335055390640938809618181316739771674728901881784026177904773851784669873784832502470257464081533382082936220567001288751608710842212137722366063140087113608363972494026771334481390459345977814895354794972377836850828782177881385018054554616006028711073186614732486584252111767405381677041783969959227997281373002268669233902947918377376664128459800602868160558280523325571623181303165640027561796262268292701699645297988470087192765337179605567994814858349550078036491902144957167007067300547313198770443157733049807238563825559920128944393832607786181606952157006715831543094251445144488199207913619834307338095334269319408212914876339720256850717619489689630631822512510004320452015312999584991413363469619407700726518839711369888925058872814061149583016503118112932182321511798687015771536738718836818550736878078847268508658847453946067768175447350873599695733231915875868496676735436112924290842351446306640694790948043204006564542603930584515128475559483424293413848999657422007211198789026649540203287134224550288017056431597726761715509548373220482918514154142393434071654777909998651021987984066187408223874013597240792892809738861129933875278094133999961604542392726884155225917979142391883718323112530461881484075086003026883083319603172809609635180664767028039651157626958045844732766726438315606445946181302624069377864375475557090637795880719832958848292644317710658415391869665755850476785297222692274866146613040191754773808382369805246911772177884939679240344355195573586920906925893318586648824215205567607911818363007080808775316704139783043060107872418861676390675085625325928368377924154993232926274842204476366964086601079315224096426945169770917330767647615281623225039135579392371935306087168214833444470469958150098682102910653311846297869413988176595233366045531969386267265660007179024314199515152336775487788241087311361824436426022397565190690518004618080082440949006413219863229461546401532508604957573331934589912859140922223691055443278375058486512423410917759191026773549050734600469836230250637424345449785884063774837524061788218988670714842742545857871814369883479836194417638327972718855827896839070374115975443980005125783926475838016904209332948523652946421862953488385390116719389973721577669025688875628099729923575072702078865696343289620823065752843933622612554874727165574305435776394097297102590590477793507051660043675645061433753428765457820421977069877875033231079903132989136711407573135323106378595157379713801473925268729875438076137633535746209289083980620457080993828096677683554217413331384758363293054231294613347752490351040206888862627940096061729385074039963611265452282878117444120745501691825738688952860405840151361158383224992448250696328011984979368198986133367139873011210407465619705176841993937437233742126967488829923750745499294704135581556850165569253607061440714166444029882301158952415052705783493843681265803490913270952016486818481873966114921671153190945656602501994938992023467674085258945430883037172391437074203308123511373109650756482586920146440533277963492059245508413191640692438239719444780694703516405661053470322457638254378760649613298830057420385290588231864752136372300238061855659806427604778044449905615445675840435533424468330823760778077548189763042863193480147184281080232252435221508288385956429324969750791007044487136522374556737853462363984591108856039547993586233304718932240547194564544237117388388957387427928138763517746114559310057339810586141252750247377685526121211884042930723102651525233814344361171356478886981281041302764179114868362727058161352197763111310470708613397253947219908044690034643533774841611816834796990044088090864378491656737149332227565313277092849997383187842952727706129706412319083636881069203806392839453737283526784829593351017562424049107213803281424070355885239007516842698874407155109451907698497445185786916129263477109454612031574565912341753667012356494696973617037586212353470777275008964736204465608778666762662515492774550931368603776518964845283379833242680503385768173215203459665858695812581081859328326402866830083414008783363490791449712017399686881153027382946190566521950226593277198405884801376127629238876615224711676953300413864322336532711812583807411119658097008935612407835277156080627471706855649403233114181596245510997882068930730580756632667644748020778204384644856705116853372890271350627413747977840096161059000162273645302333343604899258310889867819717221049607352808448804905150050205860147668173566338568394712461263900980734612287668417125817786083878448450728551853330822845879897860761113105754546528965748791634196073411598402986807046058244808894373471564040257688448213325065843421591414691299611564096512043098588362574613309350248447092015598947254781338574389800997290362279103469451824572332106250162852805011831063183575125858551990977258566059803550355007860794066882956006900607929588871687337295647867877893004255816330593707750604734100435201556098455027042514490888201257754144012429797398410607677168488603454821877079648476748527388757593216940156100367173129425042839931732233279228098471719529031214831735745628898094251869411380001923750627508314839351075463400904194424126011499497651015449907925620778737275564131284089274105348318574294479725377939723597227029509959785548238079372063798148982221622623058619166251506625144831773463086782745572489048837689629683262462128387750477247770510657424930845636269133903389020565853424123770737627847527210896780342971063858120205627424558827409812875527354661349169070242335118155103168340102023330587731057494415719769964650070530489803001596522371014676382876322575592997923809070189681916340537064720204854146743508556929435105748511833127250420823177993151944848084781592626456123730712968859668750653744048858934890425645814502131352719037815485748643704280556915285113888054301886537605014014430365267564466260652153649805608243318261146763524093418362002974077936555219688988173813190164006977522695392665239724441304578904369769417912895199537653628619384481737845774647184874982725400242378955204247852510662625341800717608096102405631383509873308656931462861570077497369560409482263332602783626061531042783087820942050780711058652997012310427115413274938657453572075577797499594982281036712549359026186272849186504375526669374272543221196231922127438704753779797417620634526567722946506258326122632252581913454459395460937552240988753015867621940466081721754913070322841867415699119078949822800787848088208698568243114329652081755271203106279612761733884723049337016289935325330115062126919379645886265485449522178536330642271044355873559571763379726243355907154047703804252911632226170245116080324844117342829849407284906764490432449047105418272609790360144816854469405382317741681551295327985464923032796019795756396743565544054419223725322014066660791228786603600054061154515051153772110544787898047672058843438421862075456576341374351418292245928251168481493761066005602896844771967948155997717824294790069037939369052776267884407066495884077446441158475355901702638507513327360575359506741212571265292531583043438735564141375631852037401077672344857992156759835810872765768639953766174098106206984507573051042560494915414911224882979559098043700215596117249510269984231458707170758034756783577016157698808830757742883229047387310349940222123604013191658423262175859546985687769873159780704688886419036017375972970268869659398739053808552142297702571343400418121746830985103217863210278463331198976063461885809628331757811443876245585268894926224284461361507417557905931922071659249368266795009204623524064339901635387461539872742458597885049122934739169654165431488362697005623994049252867214381868321801441342402829198992332079244881898701782640660787371753006343039669381496823183649475480196760910164211451333208422201582174480232961171445795685299282861180050464223436339982888722673317180959501048334186057460487728348674899502330408268322465049641073165263117387377230384630278697935927254724310888764885302374597228473257920948790296061157784308162740454762871081467034724879716723342396429304128625632311143176746787145498262867898775108909332492503588810623080768615182922754654650844024473063441891915552579209873310558736032395202427261861373528333119010217180245335843002488650885985229336460551363217174241625361972044251631241291638813035647654684605915854953618164902486424344254957905074733330516799595623018473865775606463020779922076710405985848379430374114499625867692439578449027331305336709737562372159968436663086408802949726423767075813719573323929887360904770438681826057080210812998243802445112972896177239257785788924587090604112527684599411636577922372220900532625048247663782102583211384661961018402317577081722779178915571719357169558326197876169303197146739449030159310381848004439581779476495752697134906370653430321350325222297930810497821989369352902361031969339247942769338884252304075265982298263750264809960522152588324143619704947060737788878862041922405572289028435733824926629824859257076067501164872536460878496725858744294143626114984323628018582522504572168412237011044502437188632338230814504379680450349958657976973277425075849803765548544881755208462907908469215686992220887487707617831545205039582330144550758546456103587911419965437340024491544167400188794511805748443250987971291937886259725621974595315177010888536025659447837859034142944180822022441045824118116031840628875930646270406822031047280657871678190600030965176193176630723380255923282224088562470614738730125668442691680203886838659028612009113979664740706337491148972778354438349654244973343740098118442461211663515774989831152585043681471136039191544289696282053409668563924181189057253427906046553251901581524728165629127158764685491128633449479708071939022233278843553634631872314683164648022230322232831140234915303912548548337881105013653824891410580640700980481040041408284102393493663678553388114292797004509575382396412087523330979423715308349667137043743429032302345645055767669689489786019558882318257746054967181746974444955415451765624001684327645775559570260563453865415620495988895658872388218391378735016977525422967213298395767097543105229707070779295609090986650983799152703392647143291635085396808027551419362706697707898767916255404174282097340954426050439367043312118990965234330910714625015814507216410493731958241960840349301146158558114992726302768871857686640019305236412793116163937489470955962150271530769173427182200443640943310638825495368228348754450973644599640538609353176875515983869028139465132652782466829055160006937670148222008009053666657175455079421619706493859934514720731424257554745219710859630327936654007806646043184988003206436724984103093276639010702451487579252895521112818326841362295412431048430055827324956992818178318628485385209663451629197395411254928667904582200564152669497712679064004749793869118641871060980772299004449771463828969029059058843439062902017644918638149401879033688177058739257995048664055722153751797318900443378875241315554676994962814947718360854365346981308034467845849875712358765508878530804545682935931324561479244559314528691441936229432981056866196821672555464003215941734272901403652816162465603173059637275933447163599325710047157136095706011433329223513406108051426492407319027305729835714155978472043592365875307011020486638688293761235514342279660432388483407164019392453106790195077288577935508404126013360628317836336593359031311598425169941738162043059497976640609956031874363919861819901938902361760485741026673049165300841827076705273240573616623758403084830993525227721491374173241811864739880247357172595229481754428628824038370281555483933393037392390233280015660957899591267154273860732753192858572724604715234149318084063839324308123534536131831243411822490526229274591594297768651752603391398755068302952315532509916652529862945808699175109097752700329252781486873519756838309663054243357555320320183213149489499701638629797502061526053140990654839710510600159089349160142007484105128669854339408804991579767240358445184823776808453230336606620747090439916598746934282450378884889340093929176937404573114949617676374533897861512952742506042708279540573175572122719007212064125369477097621275705487362026534626856420774341527993759292879564496803058619665820656991637730741587332604855247860120231118103969877852787433057949605776517599612878390794230341008785091149212362194406849945822945626918400742821857578702998991439620682386168611268267171010669013416458477738477097590187552572540480434978133842665267954343448412254210122915799068944177687960408053984451676186155820061239575349383938142476971820032495591652712678409510316704611436206992957017617485348559651408518214521690845613869429187067082135626833526907935910772542733204325943561406104866381268616761545238954682126834964212938259104201610243814117359778248799735481531522310124436094945242847057266577780932300645458543278460272611645711567435187885194922721862906753447087456668578468236763925128003581130064430917121490100400446875278901827429761062703195477665338126122660188636842054507106914474648753186205178523525869324366287021057104753112002988557097009291049786234676294164780813385033142819172919998347634087889644123489388531001985180441713084705907397637724917730849904855436369793963675085656326338705391250143687759431281081211566372712703865099903863195084127158917879747391204696778024885859711968579120105983610746950982968843544835245396745083118441845887709446406763184081745221261127748351705587499561198831180534941837612598771188128195162862472036916327104256400916277993561750673689612162211930855587278960380229401518631495237147604488319424070937512299764298954074763076468172756402416128020764134335094711133688409011058491674569319440856626086771612914441613406887789759142134703619568831045748764426872281600096486129793464679535648245567840108252639910447651301431050558539987186334575864521066408170072160401302659378187840991236407782020063366400924634450207940218372114262050255363155894314577182965497589187760768667565156047998536257962792866605355100184861035359674368810363208890619834914512125517290686778265756920792908381118244656495818704308469338025359151190063300572759699771639166687715295437520280663582190957205802507731261834874761372171549316452445853441273948281556945243917187944437688559045756545375451813314333642445490396046277006653423357246586148872782157690517059939290466030029350914249935193944448506503840391670435680454611744842347819072510664766183890773175253829568620624938166513940130495853049008323873453903211881590766599274385441458339207151623945246714786137569060217386371914410170215266867878311380140118321180781750970400121180832264121816853354946349772197500635761829540542139535822210317162705334408680149288765814579665367212059240284461783599297364095292301184583711627476940450154434374819282428812765891694420746531619470525952301119853276631423099946690538714004349768156767307288021162894276346729447934592051694044939467923241199947166846551452624158832630026206048100388816424088574572458545258901355214660672936258821914214180417153839295954312082905455832965052688684866162597189370436267358948313922923382272536314339293627497609087530059955001001349218017646395341429160491535319617626695581849804109028193336860363658183895270291509616856411364252894694240492316604184262087329456464492215523737851892300404208027595745797841640240769757748346724752772816067835049183919087703603072071458515100121862739538733322816420332699032486290119269005155013959897674256537061369513941490638717266237700855479696810826518246172454851756477079977169880834163801957800500875400304845979003051149249436347617712975070267075961361666062804247709001121388703367543385501054440981638933909751678013714759522292779140458336727436731173823899030571391347935705604960455413517842566327719058015926540985934643751087691735616997049020328202813156804784669313765533992601453429798390230672885805400646108995198861991544589752635108931555875761544537864961796089737680589863952883716781496085105155410516811250775220281186892353784394120126693268068049459769722299508000175916347255240455377932516773074175950596684897841025076459048938127409841195457584426353165873246011693683083626163927078592682785883293332761891391110230913464452883945806647863038040011646058784808380189754168066014199279468989890842585800774463291977482891492239495690257908781529800841617078459417585905945204147437818590176581511842641206396621158749790387076055029339513117505984065532583646389829324823511039416256252530709296149793931628617461788792771295455093215588383594645682711338636401226499018978988538260148782792680242563707903420539038532942387650874016635419975107251584456703283809068445941731396116930739905801409613535309675156737514189404768838195404050145804242924788728497237703695542250071265061175623571007385207884138661346254544390530983054602701916022093203479094244263477386783884448072761798983513808849180787382947385596083616440545262921936853609529023782211828928289992623371582861406121087301415579640817209747293121498258150562204380601141908314353610933491005264624928927043610177794565109233448567619082002714411635872315197042249702124767943467702840395979737435031664783904661028011509972110977612987614807817456790242706690240152911132336301916323551380686932205591184954174331688116291585794025886716177242257120596619751413901717924248505096471597580619873908435159913937186077435199177562088031979180596971590187411947081856385581055711306604729007463483804722353942116170554025090640488038937769563076933332582276154013192901507703418224527861708199193890621005964557290625929903484470729788913258510695393002850029904187192923090944976369017533155678904519810272606547589980454559443209944977999482559445453589592339541224879952582674969490051748761154712933377368387989303195165457508926298282378712934426292428759662665019608049602780959929103292072593405272575827231399927180307161736997362975062232579468882283908914647622155025990289344874994783143429832783531721462682760478079640022095960767230997348640495085149297301942846349582466340326682600350763199699780229885104768066958845569722411166971212950865190342401855081430537162158568709516660744783404583194916420262052746177315057553182271214205169675456201626560286045268902839290112895635590704566494599304869910113360646926668774196588931884482966874872751977072138887711854588637252038294850217297915984056564160839780985523844743070077878926842813852749858602665092014414020046738553253556672678861646383875206952880783201483821674887561520825978047373769436987574688223445961968852590913972688665739283362944610653937317469077673859688534782885251527712856845029815727607354745675664654861956029166930599960645277236039022183460113116905615368638944780192242137703772782266979458737921080556150957076555639521084572033109698454711568368427045774478965618347553803640463236664916514508185880778221894029085986050056015287109133083114849415184778633077306835735721583238725521384663776404448485638831663865570125168048242453426767691051315331014312180698574725698320773364750607730712779599868375748672423294792675009114679229567143253424035014203426515048400924030536472880238616455577197947873103813513596268594681806503239041111604662066990059410845877881112003842810947957148853686774889399446955290207558143420974894517456514141995734649065983097840697323482212375049948437357170218754036954616130147227643274556476353344736631197683445745691781313108557855697921683487998608553340745960708193486096333427150250154149972079522371322289104560771091334134296338866689549465648675482252847614655106521608068085435096642010974092719783727544430378019868833625616792048592496173377434712656540756526031548009539835492045812704286848669531176649793245910727769280189942768627496241396876442514342555470278399211948833010192757804940153006423740523007675173628545432850457785471142176584569109902813960910655325912507844805650179698904435925815198614941780673355190238324933599733858994626983360514852532340967607625758845259719026942411705739994972906831146107662868815427718462686170998181777830283160577075272145967998317492783685554083159024370422104957373815380828364859562432800325328631594549683713646783595577880942839661963913462077419594990382434257130105035227995207537493239268449633630449320578749621307187327251428204385007813927375173400574208408747885466407977754358646288773190220244392134553986107638174109205857473290826962170431772524369180450792578757258513080851333599106536531796164353872297578546877278592623533110631447824474450032668407180254611696710184649918873382724856108776759999715374370674154579359067345483386203975561295634216373079521350059304489369759595388355301158001807118909405887454179361187041842440677575433989715218011254587698667567001666950352273927653541252192852623349569412772269762465137819338910113528884481718891803617659944059191817558680946766519265269424789839797101513573926210572989309547768243299967948599704228977283503699730187179886192282628155573566208375832025132493500022652325666897458854358071285697781158305380696297503511458531633429204592112753690179009237040118245492826451666127883481829501593725716698419413272073177189241845571224363844970663588459628490216786423201170719444359320708270244324905287445993809057043574548770105198884648937708340387542036411619822909270769107472410058796072282571168625943614335804822983786341398394582319032079284426254460286519948451291343624203956877125776822601146581682627192381814714495062430524089022390060170210177175901437991687591684842670265350279500137586234340982107898420750731822383822461190102912780788545455569859322029164289184563494699542284931720492573529483614583759574722413032769322662559274000016070281661380960530839623300121455760887292564122262297718290038127570130088416100934803041744620084840561666164171199862329724169148443923444705087107199531059302438395933940549135708223687055307534289587031616008240915859916817074089619865752790083577884800596400168816313602961697484473766250343415850745600257437414808788631614150104187414663518925827004113461979159475256539853026107915241920536751334394923689684514022129954798170453602759333080098188056876849460960344339471509060128057169262679235200703462965671765033870482709885446795113453338007817815056894469849839286931241354691095321678348000959499774923251735806280084897302107701281729832219600604935744151911704548435164509203282464269995705144947496646380463483858144690343591903409959134387173437713141655823290308503109542908105618120201729616646037708587384979913360808048051280162269216769055702147002416214290010055956817059182252930821814824862668579266335802958029742315189852067390010950981654680842683864422460604067654547956340594743869905069524582291435120401752775391401147216332882794994577498906929515891782116438640771251371075681124643098262195310244080232622275881239780267607141699248014043603107829696269212030890818034033847196991300104856115654052917000035082277135205543990100400830675279240125321459927364928861211758039674737424508859547441107399728524837161566424803547652959420585704649562001480779867117836859321648805643063532561547587268292826921102183750580860740613768800856092807540240280419020502098066738558016248768752786822142418952615390576641312166187653553745634756660638844363952284514477908942593741091697294050724193057437925333805735473821585431992117694161803877895642603649658455090858549805727868648360550445522681139233856970437413699524547470448109541134790162382050146277787682870587883808744884194744208779461216680960883800165343392390928656591475623287391124305809345195956614162814565691782761823819501010134953691541120984819899181731751578124483487803590235632205998501255126300080732343636091182054098236438344288421585709818308823699784803327362665727163802391847909170755573637705567046330680941555768591168180201703470539048924285680307744443918344161737975134678555884044604898825336730207172904989500673569018619275649953916742245610284397967307134435442601271231671432331536511367191038272959229807663019689262088343096418021088461748673260507715894637788689076135082825467792467278117942757802249931001294522706818573551229894912618241712062950607028625899877796815324766658638590160421556819648189658979168816228204349646380003979160705922201241699749317982890488371035013707493260820699658568211300785367680017502414245347398874615810850111992734742995721028107511179903547773067688164680320678200754535234825572737891094869122301442158856114442248632554603895487962272360525264936910338915289272777955103423326911824802269625946520988507150195397423716228798770182755557344029954757086353891394469723231851049796513040439611889243422544052934065333337831624911908432118730611463546820624248099513103995128630909711530002885944718342058567005899492948585195507875354851181612820050575346249438900307354620726396306831043453668226116434348936520459469352045237545727838816583349987390164750404070327151438074746997734548197059647905363814562841013657172980641041192735643167915011833581346304587066658145733507545188713307249973913088720008158173632633841985326581992593790476626085759061341930177896511193594741011266172969076338857219692091772294579694239011179294188975798529006020907954914990389937574555595294631416840693959584579741673717591019259805233087605829883667316667342995205273454843140672143113780868873362468725060115723208548408847668628429255318119554442626579343837428134928333103753037281852340847687324594162127743382524962328582735848810951212859356958682349298745629210224219393413753135391977308648675542780296695946308469723963158973726487618565801291570434302260445411690639939227826536421197781995724651286202346690909545499300624280032560711176114014240558944014381537820485629421332821038316982145650117723215742639034698688427827740325086328824080070800574983897229894661331656607170039715158160447139078470522115607803272545193272587650939193705105318669932826765660128581551220533454415090549786442291402824431004047125655736380783412522732886354078915805646232248763253977818567025877417542385333040963967795573254929733113950951511857163452311667750803026314238212070887164587955184807970438759323462353887704155817308293494607492992392931796879418530927014463265577350750900145290304497641474882320935883890538646383577321217009153520219609756291189137443602657571848117481585411464015948972325198509063021382632802399889431705731314466758500719941131295797634131585889383425298424082558572816269936428744245434824956940923426321602073722215096251919065525940830015550082516060556016127222503363280099318755840678448354809703717832538646655024907292649412507686750880959129229661951824126563270858329347903844908265199133733535473871161899444429694275591727363168546249034385022223936446943700452202481060216605797527082933500132627506085568430023759771660642190133615872437896800927912511940015630361551579522592680032167975341999331553346520983062021683743754488164371242576666679439616611485702592715075216954415481240719307219104022311039614465204658436985007232877057076160490281005204206628773364596454409795285073070980197387808293522226370342869984503415055096487176833897651166998792531295879653216261858560121405867616120559899874377520886404370868483646929890689079406437575734096558847207924963525243707620697041889164382489026244250920272153960622582130932704040777201166005003788131944365448904578404490434997384257951169346696905873097686719252056339043940847049629464921366700807358715230309119340929144390370993648893208734482232973659617035476480886717869920353212113703889283450501781242852860253281763298169886557143370617290156308412678252203017581903566289872730702033965571354021308417725162507767787613458403832360278612049070912255689080027361781179092426752493949497362645342615076554769896984328530662997843569450385663758873522610213880268445949450326961185980405753765677139851542008011924218287952801351721486380161730416316943477361748898897210104118188903964597815579949107338247224572184740625195044990400601633989984550356058415904047463065349513379452636644322182816577191694302967819555038688889841030327046087805928100707606489025933155447206086734881122661975053197486566315617791211541318009845605255613344613243131964507500805247102784563469572603071452862235591188417811404107696515051687766939254144680697567836579043766280143951443857012077018727142227637275840560945005424841047822078117621469831698244845995211274051201528210168196287208665285803534982884014741848786087483819774902337870835370539902686345557771614859533364588718637798513818588323127439037045340721335365402027418508105417252504236483324439586139217682014756447877990578398608280015095616938657240997314084117134563366155496573470892094297350577109631927977457940304484539218065555678822715375281812219797194977624779354573717751314180629519831863753881678276350126651171395282273461979928860548911817883400482079819377812746014564458617655791647773236863814918112001222367023559507877747698120152813251992820342938307737318029665141368367660769421996341162395618670733679639927446929599386242475860608342184563948764508406916254815518941842786236020404721722451411402347191640178382334326477627887459946647573021054882011269573496716430427535236502703408173233065173628798125585237975562741902437829766317885216596803459762897473178041572388073157430219836164810598406988670103484071417881925067646923219709815221114977662119356230880190704039739657802117828111963688714795554747122504343975052701148166234809022270119883122236989774467832666003715998009062112667249680752496485876548260846293797081414519347490186791593421057494338085031680857879201451397918658574453575708512722610483085890174317493645350616970675856434402309487867624367456680348010848782860188906423935686072863163310654845890301481595935737036497425202253304642764131630790241363001641817245995006216416679379495684915589268374093518669929373804185494616784014503302708785540232130793071350493430653001276923538833075677581890420333326168363040502729304859279668567594871266950245487473144482611700181490858372604863387235199690204165152244142755758395878179988280020934067023961337488726493235790040807451220983041952780789803929395487842679837552732253576362168065346093644450707509408021000871257032520451223403308886039446470701545622487090541579881828333621135522127581803345684448064769337815298919275744454953852788052245892427787801344811267913466203755089793484809911022908508191366090995811841441469604541833141330821341687519028893720817292358764230774624080906065588547188320188012488485002235754111089339915992992785732405445234462101253231272999735514104220677451128811067569738068215187301367207914589276293302854462538491537013714058716519722233135758352052555621039905870342227497638986676310572628038025633709611087589434131433111697390129316028299601876612633160813106916273448085578416060527503626817832075552195736807713572907677839591600885313010599016671964724533637845614860381256873991434256832633841421748497643754010939004305021167836148385398990143988395473957255197116379931026482290850627762231920425949488415916592735946436207103407619376151586312975810645717734240226935118636308771377849567743591477190806902524397505295021031800591015208608836922236804239769267476159091616949464340553617591540528211641002073901701090627833138640377860448194560768404325532584059649415328805168352845835846698374186351832445043497198979562775216058347351732023150561975504428580516000832255287877553970761009008592905954952376211870422488168926463703106787859072615133205286910795017391790353219712192378775367404564595785273148819432705325703850420056338942713140631325723540287088689753679866122327571955492161141682880691624843922052342801127508681394240357379170803947630035695586223152920185457044749794433239101772156878968358155810501060749155727089693224370913868877122295460142109654475746837021038065937577976971256196170131737701304451137043154531603936084170133638026668528597046312603043975678140476145454739853020767850073164105445833565013370755702228197557125183975996690288447559247139705859550449108466273432597970613747373407878439095309785973525944177443314854823259940696179562194518054132416743946381803354509943362661498299324849814270772776280767213282309161343469036350758128610579810472955072435058716299820968344710407437282868145064958221236082575168031946943150559962896774365838216536248415367646275149057668342424878514137948478653075953101326797865864706509594535049511759431959637744169222091428307441951868283437431504953511876068955629641888689831488038622546192915427683092987728308651644570345875188060611190399418958148193978898962131955285055845923763423734345446856168002925071677041416846892522235989503667127250924162565420554228576061433603489444862640785481809330739069771138290910981190470679206258558448762495581562556843255004744714655924394176439876788809049452876068841575072499545450808354166276490070529716992171327261458172094834283805230648750194218892922294195882270839452911711283991187736539020787045373141591981856539205278452177138729723481291356045402796110928922807791388538465530264130848749387377179559835626977042398371027801828560817122898784152516547937746705071405295261898211951614275966812760370321747460171510533822801330538820235222422308672785224962360707069771785467589419903290386950303735413175192592657690882238569243884368884175683410389783419169123246866011912906985205579745317935088001147228476954944643740292833065114955182055953695243585795899767034404996945566887081336499816005213909452526424453920753287530779196837088412410115536872544761373605215678940088340223119531858486400279860007287770140330684419642474168480283611451206336476301864120304206325776486902642085717545228817099991801290793574439695554145331194810060499277111024659195164104374927465805496479033726106279156904167802289473102491561859545385685739627425572574984189481422382143215092830925918321431359080206023869948356849394789507972514705609341628989219777987671100833891166156248499767959182167881225055338737347803467470417326190126200917141754954222824028587848343702170555306492356895001151017752045461944484147949036469999368902860516286171357857941957653693448664356514921716300441440269900618297035093914948405292914496966858722547490803777076551090559889526318596049357989853174780457575000682473433987825109088824292232360334856453117038847791708727902456697242639321590017428671945251616489320003774075995612330973507893173088755698711711682202070270291442903246855925047306357425439618882634044568345281913563087093696051470924367175842436639150793077008194852122215311969905468872189593694377049458533135841510072025675304968949204858025661727579621107344382937811180330598730963077560286633593000905961449604170378977323073749337824797700497003027386774953421079863912843527547958867014802065176275488051979652014070773460754793404616859177636954782149060728022724063443469437501794633585462866587319307925902651938121776828554681776761867330372524714122532714311003020886904800066854582482242122379858905310342469212944190743896875545192691218622591175048226503732011719900547236202179680457248627949793730493325832852743919673188490621906276728407075830298881986466552717064029598829112669769432266011764407146760918587084672083003426097872923358796881735068189962178995828354707382899301491294403744019725174828655329363922046480246175520185676131607537287557002515369564289464074267901147332397486161636584289015436375204687921881095793644982209749133623652546510258273822286373944583620697382580874868881799020271273485258834021755916251704060637505722120308332175179146326221763040750640193303100136101870424255356337891973210160090263341263637965006540482088850541416251126745301364373944541890012779818103079316193047195474117821523129153672098723068021378897609216195563090853347831452306186785429566924734697892092162488473556652130820065641026404400021118169106739082023553724309394191703429718703840190988483302159539617700799290881457695727074490717302079812365814413932518265264496544866733537398023333826633975638746771007446342167593442367708658360491073622792351362062659514604373249210818888101956621876621044055206374708631544925107263702313401946546342362512219467291694644034977497420004290225569734725317430059968352090442928477157496499461733840539873684512239385210038050225370442115394601220489757395052259609785934312177363443101074393875106310244769200695609557334835420076360277029403940647431905400095249735208981738521356517730226222054893788440182736449912872375637120068584203748993464327810819245203113659327742806336648424967311894824280769605505229759045946763293536973484313604657164382932428354984801290846578198289951728444331816211427408875310403020252406320301405877510053224646753907131254571487420634037721398240088660821218709170383852141913733289192486749755138499368935028427830690917511865647634321259738881442192182375106633169567502966716578262025917909448967245373500436162999378678775276881516590448333713129552364993456594308261732497649528327211677456059119461295929904782263204450490659840585761292217241497470682662840431014875409329380804926859998124019779122240265526546594673639942242041756687069501958479044942763292610112151446740228000127019334790091840352478803286560770703692725992092437090342918752021581371192381720891847655300890489754544185619559047002753238949471582616815769697932761578938270122566622570488355620793498390075812324474503732542770823814898302976568160866069125007942047265571775998733168138450191426724630135652620839904828897526122506070093685103685010775849583039228620057162758159422669019552856218570077463382554502971771876768810732013649956799674465083351080218021706418047557389590499293945750019216736267057116064997734066053989742596672747087700290693508060236226891139343159894438601614727351805350276035704439778946918828265911962025476587654100760710476425726791115180114203774016176079855974613631661604541233382574107759090746176500646371345062745663945550229036810554446003914739236863324412684515836708870069936799728434931047693349804106631842636004344705422224688200188455430639227632758352871110170197506775332069846351029130854649418529775795863245563765435084138846039408249593512494604340452258925900240925339251447428776249195061105179620048042806183683304952590669090292133327432888948855646860596795197413389941419995148239289627573136077798274538079600165318935332534697295920689840640438800889290016259972126006326910157014332707490194368091192379890528415169874311906510205811034683067659220107690148057941417636067251721280682052929333829059854138636250855528874256179173791807154596188598228404472286302141724382745773809890710461500146415371724736554392813580123393772359283378108904489503328534352081041061111667231622703864019582989664816088076440352712318805855791963628425608736364039796702410873090164759960887359531715234560986406358140601913048962087360023318770543823899326934388131119014582582325640980117425876406356387571208669289657805924183376166925586473883300019897871072331221484665957365952232107369654238000421088975233752372300616925280197775773724390811905304112284778655484041785566884472186479763312982038469240325005557631037964202907493301382628990493433862014681919758965353723379506131797922876684200632861973868663192339594551632996943612704916715547361919223432290912089228569341581432287104381401422630693769959571784686881675880693266164080037556843287706767137200100822779608796696721901687625915402809147630796110159176390117206764877656387757106573200492370238838425298372559221882072253208646809194750569740652112960622494395587819977304467964257292377951117202475970376880708852938905193702122668253121253380649858671788176674397658203958270646023606377299117927265952138262357155067210175616493518225074954167457448259518437228232943704636011646716862970479790563117974276750612160999138641421675226026806436111038761695667509394017710216573996958274564187365765589298777352111935549640658344980366753215413280676435492592473514290807486490218843935878352742410909734707013800073268269485157808700846332949089369642166342776354813445082083814999657170849714668806003442759664372558328099371751968663480562686462333309514949776825831934087040848835440846673808764105565128656311117397945212536751311408367026371379844934338732872967688306705957643554290356832547539667425641091850435730932954055223594969625180963156129186325860048156567441824472191221510164551546127892634238738574073420602317487145901114731169559891882150898780474417995678403326539688782550179289576217122492825434256208223120229762278334397277665200144751371337637467215516885007732323414101902366872282498418889831766368790865264882668441435377229527515935512853707742534774253993796069230226805065833344724215033103442323381795697939688428886256402202902174441159788449773884050219965059395939105669069744916149043214661465616076656758077380997780923725360527499854533292693140549852282150583235424852944021634237919457400977222002664879184864913138577392123837677517251627838606642799706994702873593740186698016126135137455041876817601285487189389297383355110643329062740707973673328542079792773436249082562326401812554458940931921263693553268448975875015767266519507598827499534751071698982438827837721864104608774545917829395686158727380668611691807466652620680504200747990590571852664824525330959505392075467642086678541418527087895070407118213712343031218307890081347117914055848752868623426927635289034772848026708593242270576383488231013527267034856187991165766446293386868194963677370086698578767133266247729477925247191695827375127651696115850432516145061084733252667114872228222121578927284910136764801841696012777760725307231475338289902808490595534799913689690824677701907566704999075384690236190379410260997355646822676008165062211215642438541257393518354333484946228608468199792124933915197089048181159348237302645707989217585075239123608895773585504106418929033303573337640849612102973020475425565130286324747149143807106461934403954985434362030910174173856003205898252791622233164372019094534945206428003482368974706022608138367576623732924221255471279749286314236973865804034478022676385541359546170519999981393936374469360094617515813664158253365893531953844368801045481472843610915825589745522967843423599435658072524196902769907692443923218643452464283762755974642145388635125586200618241091472039089180571353709390716043210752641827507069967997695470226187703453925939716262079294384664664895195439671964924380371402536735159051049346325248133396022537626095301157033689623334162134990956731004771194357851999473528127011076634020039649586661311406400361450520209405028841028158937140847724708384613342757649356200701420974549395957235216615158757441247604106563469209175456954445269047910987741192310059537320906537933150449101041601196386006685762873178678943456953942444584124250257275060237526004227245875816369323279078481812650157795260319581349558532366739158224873900273823209803571758001691289337191343071279621264055161902044837374734785677227555696521076094644458734912721707439516818516296482259024427783604313688842498118642372507526217487915952155090413620378106800704873827628556148865852781515820091941516845022002746550392892447077028597475268353048974900085397999711028439238156935363829667187648169516997789650720184630532908291422611559913548566061125610123491648380722659102175091145322634056901136076898273359108449709774863354123464662804038677141951695563413620427446601303695026542076771374055267046414058597962320626004236637426224336253383298968137358737563785387075856837218972011946548653719282783908500150587290982410681349617511673675722290724909558503259803598507035349335416264213920286976295032693385387755485913097292043397624896568521004877963094773527542207261600665513271405314526346720528138149666559599372910886197837558420060315844568845795157105799381646365374162402545575297617953503944327925569240810401212048183728464009079709018757011106226223053101911168000378530420837211904850251659508389981289442907021580055629977015489447053106815136734726698748773517862493134111469988423459470112741660238257160244295869684192321020393142598737448881392528881932004315956532226035428256856569752195092577220911908990430450105447805148806276943094065643414595815709121472937182092355574382959965483082757114555760997589763361422447885512242552353977907952158287657174895523204842712706869314406952080734596752293385707168026028080465762958752442650047914841560066851503344160937930651184633250119539839315593964187057532684880118778972392761437065993736294020310832195472456063699025151343739824888127081965136225402537537631427262818447669321288872829285798240521816545121394287095989784623194974579511195540783756665444694242552881491752573882228878968165227441142583012671038951246759492124262802680040514680484523844033913983819907652973873124956495077996087121007528916889274987505028763385844086325638571780220883667467175457290227981017329414500510452002690563024482165908708038905070884089981127353388914942356703627619187936186156309743792398226280461900140239820884876571638776028746918978181856158311727303748719889760111120539897720292335646118381743387063229334932194990540959342628526935189696216657962353437752312531982348168525736465493329568739789365745525858008057086440294873689761300583621208914857563836806086096372986235445524285642260573061788484709263138384101753087177722777853756025081220562102897576420403059893386136305669349054744428306897738348354438955185108120734863054774334260835272266266317508015555568935116402230782428653332869861777707538018096401026022942692981474150546049430365773762596623408917883039997052256794944302726557660651854394084079652095938034247339631532686257413245987751444183100673418368577546322682016715202602791975406998675049053128230434426319328147077736507978610244508272727126358120571101805139797650873267863299926291883283243931525440359635203922618735493878411262772594502188763070781544846691688967146872469595247235744973254273883718403807184156030749205535901746870769157445693371287014928860175007820137238424776449841129574276212205616759649866678216419017421872805359772252836279931202210025801922094453911387718811295293790105387372260951898377694071004919783889309414910818569224663262327564300219606132304734498245923866954542870618151761900647867903897633516272293426006245065323583534784382511372894942801140507955691077943107389393961624736430657988246670988212788029745022944019428433430472553512091326755916929362024617979487401690208522775331958967933545806116326133310350036144170889566976817414313698658591815786975629863775134215489999515028761969339038125658494287363165100639439811857018019915649020801381580385844053725865547276562988476084320471010248414033670546573256589385848742908614345477486728628536345797284128206614953584288206294806394819810475503060904329057492033845018735810068860637511044673270820832648286653142537273543182766287590810052469776807282428959755988797457166704546624564951194555736192023850901718579682304433364292382089953598587619584567873836301163029760760328596626547504009641981168672173501152652272871262667119497980411733861434558887685474754644055161968055556019847099026649105685285662406911837471628442705505572889347218172681264513629910002245766711472543086030579379265101695133975008269368968912864462474285251897346156044784278438216014626487738214437554823753884634879787230983340033972730164450332197573483963760078277377425494960165652954205563530833057885439143622338654891250171449017667324528654320220417323984061998666905178553538933280712536393317015092360300601174990779452338244465471852075683671726473542129439651648355436974470048559573788417421546019285183574865820416110916174555962517782912911900361289731799918700908007274937979199269134459816826879943482607792467266990480372328753366169735976048811126006837210318983601006709372677102893830958322438564871130820816458622002980757594342253370673392784963637080215728996684510166143737878444874494939321885055580713522219765853095808822605491163232518377296741485601049472418162830880601077984758757893680300017610809738000068260247763748628554344057775683621733577178202073400587939375565108459072012286643987746328600586584541143099115577449440984389023258482260207882692530825695781989105168809527862769586733703223969113345257336908866968740021754302656858728764796686576896002269688434045147835056052734028683162663434004693722453440543359559963509206430663078571246195068070037889037875624046572456520439868462190732234188782999979069780639333526260345718231744035331655755658944260547549431908333184676553443593822254117345171284822512193632386075743296277210288500557661526907092739463850009521052146640508849951254602697284583426129022889629606805366971469273456545161060352487613130291304728549808997520895199170262242758581258031331086335447158020780284300381579794111017413699723883807128842733249459900644419831914111903084273129065232870448798130787689843035293510349026558780175671922093343854901678689790843906813094562576016709290846324538445988659377773934435009594062929061767372439339961384116977426185596739059513980194820832787392970322536271442949188339345351601261552262082000793363985421912538975742431761650525014101664581874346301531013165495618773841400455954550760042850424075148270542997866776691097452721933566020809307220477742060704475680103134287843293224521537568277047784321951981200940306189804846384616738486929076500356187921299697680919025604480310245360577727368718102437084436661718987271261028818753251634908001260455965525140228295954102936512146621779964813182020935983312497122642173630110883773113350682489852833029126558843173325746928013342433133348051070058387891804181659232104827032844243976709109141703040027692302933797340710940275313800099748479473190895672259479127062269633167673129993700245779504572228397427158491102835173930020653871921239089823573265341942179596439004830089822965486759987679170954981026157081351949254519620223952758885184507963256736487290307238622281950671431687976408828594714270214065887990052200909304992050661724149856382654964167598287196359848361163461371340675933980835688461659836997111940243162870334456850469704396675014251942030998416824725455877724032756156384441704789411364365134761778638945016078226722220862059611536399236320217106012642372688722950248675035294492485779586311738519634673175190604219732192697462833836153644427287574775507989709134458323133704583009979697877436221944377477628958572607104916196964453294370199908746972082000587890777166822843058014462484116105890471778987710853329635282651166466392933005584455481653103105191106726878751380037413751444695336637332875829705723227412671857657318885303398214034280849446533823976456586665254471117756797731893836696607878698516570757013205447884026640086772330507661655918491499225557461564963742999877944838389865892128862603447870885966482378312563518768169019784137284539407863039055864189337172120620685387791603538506998924469970224588520837417018277816261195858479514275485682511507975414868801612154987290502289702768828335356122230944141997326166239592247531697127221793697063937393425409709075733851166198738046133903431142844522219160791829327976753032197445802844815525898305345003429833014608689362711310772538471428180762092510000467894510426671837337825424847221528513659773839100746854651834183179157397369468687534544496895088531236790806105358842186768728052648388993551748793031808061263524082710823327354343308661265961523812216191808875214057841684753018331904974812036355522358406180698468838917009608666881757210096604860415860775536440472529292610057319048779435552680046275049506170354329744486853950635859485958380344456757323204947711374161268540290881527669059467603614025269208027348525786955548894925233885040526061298329149372528505653458428220362909945880346865175636492112547568878728084699300156229199314748952293658705494316981865513923753585104893752309002648372873475591212479435510500676488685535839794667354355165888679879558202702948923277825564696905095448395375415598083570218129502207044604505066251933897494416338500133921366645432762434409993811327151111315333617151676649814486400627058258366124437508328525200902893302211084925875874929847022337693891501629580773642869544806297668396042236078388990239862008617660948457801481474276115054937129078521402445887256143266925883634967828178500272673559230622648387428747383008898859102799341500910190143725102473379138532951816388775583770044545961089939049432101313598801349059778295353756617240576745436472690254729577378732610751049493783079867110077617042904350069203455575486247416768983089213125133545152140312611246862611519480775408417562215764846606542027016483142616330161415798207703046631968004678264419505480100957838779169492604320781822980213350078609985365611099458095717782486623827143969072086462046401221971041137248755574490994608376013132094430526373303959596206030799849803939309299590085525798596856794987788452999363694296920118502086332048347231500657768264651877794823877418072052161715067745653255198613998814340728923202112008908929228807244247479673259472797935992067054829871313524908754435045166624070621510250981626007362485509519762803733372195750500402810006871498360366618271953813429597641679633926474960733004236995176762586130339867332962487041587217103776157724964341535105865012146435706933620919849708339995841461338876779331245554978468763232387471341972026246451113164378317906971907895250598522054930946171943658955967248229375257903857488119675506933299397943273995987143159491372618426077525319930514233204092456406105973678681705600018525552783671721791936169014421301491509238847835389319893002609646420930857995254996085051987906386171324464056573382490942246657426520984965321444916571644201777384700735537352036127129575260309401778716073444242881233975817047352014444608011838641258005637666857977632415519111790517816447108132920739747455118786558126917593068225536575254886774061067514491138106134478248672422875450629193094139973257607171405954463789280385062280525000609463102510417928314238170271118671778946050345898520602888895277265180474897263030008075717787138787485877000136471579888326172284842774780937723649609147910947226631673852932824505867104755463842562987363410126941134350202769212002428934836108126383413932571830414450681368294787365113875459640400673128779357777133359756345864212818242926757355726938890791580394311533830772432915945761814044139994907604555934585274565460641555431177330506938879015887328671263610348019198728506857181565117083275209092232409976897663166927725327208100942879623970648099162973633091433577794460129774888968536142126928509851571994431174830458052623562074361463415385540732057311995783021514249592845973454521940261877774364258003482878773418651898095892505797820215946718227312834887825362934512923226106045286939291858934043825518534932126374911736648300360360418577031293069575073453961632485621712742976169057186206441594016875472098293708518678180648811165226554466956875145650917130613425597497368199689269531258412949892478132366486745633489396012519035231358493566129107980134358403073173386331704388425999652843362553646071540363905755509006798575347930289115032531684461714722287755593832116238787996879991752409598402071401422033163261943217815749260039290845017681326180293673712432186236323286001284932446279356335640946822983236734375081703587568422188091051680610338988136260605440481789339848404109327320841644381841159612683059136320257250808494000008386673813165997313286613363216151148178844337601373682604576795770807260006281609330724937195444565053000684133467490860242465480962002666670323776896410006789144272613195848937221386051984433373852218873099836555073889673626159444538940684364381909607362444051127125436834286724569311149055366602818119662892147957349550638655411893205004077490463964018631226211922460070485829793469838667573025350461963396398225986330065392390537615405176099795567403832900092741002436974527297845773798973938749712940919236395790134109907488073490809837143918406134529407634229574775908554673817063706137914604228292783913423020021755046270725058173863864664760662347410351158983899045980179101546731182845817215342040493015053209143568429224513356496288093167257141490469645465779949567374340166603749263455423218729880007856521070618634531878890381474005674476855173993808923496682660917489303250092140295254477181201465365388614503105554638162048265057847865157808360673284917429422107055098892247037658206682965145571077065506620888376115175590907204350911002200250391161035041235166520848457098504882947821585961388176431852124882843566751564593135476864826823366528613974775284945104253643264903047873716408384310767307629722460291046476799915309534672607607216900929936394357789174536617650273231046131883715399634617117429272532452228258612146889860815983079767301356814603587122645418296000559687092210802877144269925793922535091572888246360033541334553771864769466642818533320581948568555867830069421453420170677131595354006553973152248426048154351353301809887833564536036927612885229138912965608362264818323236403680036581376241900034673981156179273206917933604641607365078909858626372971085156026136993740649565745044806203518406238988326847219457226403777145313929061398054678661628998547992126704252053912280381569562665149919075196003454392524210448386684865507973909642663211614469133820781228907501948422444290732438704412241613202148385402975157301038669549211471442667013277538012619146953943732017944434323767133939485924059155315063092070885422813517995433779301307607904077561528997435399742552645550849790323769787110290091692366036849588105900138706136966505172823079188232845457456722007071901155732826441705116967030719448044950088299718730671366180415543820478949888533566356475897358887594420659079336955021522016972566715185048305158698691885798322728342771175970410417602712301414211322491327130767089357708506258619278131172414894971611513809156993832127552699543541748850447681901195108039597441150708844351506836293035927056745859742491437670984596093430732778581573290547783632663524898568813389094355770793505394446129498060938547207566128006589889574497311808441268784203337332021823058686987324407242836995101084046011500343348002642607967130260565193496427717977811788480084705197336600660387198630149423870930890216385684681068941166489441229079627874905212938555922034674297116492450769476787471737694486125641331764915727221656593425661352745875521689752419061195195288052242532812994693130132567908625443056196951284844735679949737189596483389983219550629994689545772600951303582324760913036775900391342665088530491896739819052199611515778968221165875699927136817420984278447704234900024371153427379815363842072420437130731235947607179439709087206673757968197322409966172462620875542182656897149798296154441421704926937752254107871277646251228575809026900553734767001510320138078884360954579816348831338067869643383515240530074476875504529650191208087171317926752939209151160331289231228601390925611925166856530075468779214183752278755914451344593686884652558487814653806310437702564310677274017022672193656818120202749402121324620142319816805815911221849976538221114852319886658487418938634742300380317435955651495758864270353775892497859235694594487568307055653682823593326552987509979890598772592331669990385200542134188693705420131683950390720437064784149612958136652589788545489355739932420002604570132622452776361720605114514138030409631348556433596084730352102342578731397222515550498431155833675894595669575642976314394589292169986066063936976213112084807450896538546494912297784220124051138335349193296977335403412455679163575746911574421962483508638175699240334333464058817074293755198001287575861117459134276976840272644426012128100231400069139792296661730278302663338217501042925800109248083916025333666643544299381408760011475135898274599434601487226815035722767667425027812321577798085659048592514114689901196227686026118879755346053386769994834071312077539614919606020891930201570097848905829153316667892934475160656211338172107140108276263162483372228289466100314424299621042112589246853970815455177163461310830109470383584770252536916972775940178317705453280477602337122582007613658784312514064577849517910841718161461368861890885819720070395178161026048644528857502812421067281804423416221358746156936293153378816237173310292046273937440095634439532786565942596366425887535172446994056992528159522663172158152851311804774751789840823453890959462352632616429577107167006071708156835674326098764935305321453241651155807517870840274417592817447612413393446616752436689102910306496028188383119095842271476815739083074047814068589369178040721588544566945205852583326621282066286828025354592244516506973606406875309372646250665902384003162787889864127315758631694442865530365932821691125614663365029413998663756538637113684138917722857005318327196019881242885453695709883142648563296248016678215600309275208295529033572386510033034691882123026320218600463801241063122524782980966564280835303809164936867885989276081805203009643520810618337534337297653462487417512994955025114772971211512442479215292676762030705462492751905303193917695102706243677842598740636160141735214211463252546219843647989496970837338093314350727808489935365026818288897952178225669497742989892963986466560072189466115213670312443237976117573054405591088961948687856929274531498838404617170458203281685591581079810344788290193906700137050260290962500497138935105888777260251018699831464976880951423044390925388165507048718852603959688151030865954561820343897415386986558131800666975414835245149915080782642541321231642126629262441679714156230176384561514457071637410541859095318839236510888575454891069429068717622551702891873858609470435453018766615884984814573051974167320292078035441034025630297853071315725253052600455762486885340548877179094604311561317748849119947254627877234326656831528549170849772280487334744259679709351472871617887221249164196062373179887396049477405355634788589236782894867002665570926417790492427485956514100770655738744298237758257014096036172763645388880321516568259265665788905537085508916031057084472221429758453243019246669010652510489604740056436310851686550016861102593250727413684824524037211701388796596945178504276396072723001208437731876529492824065885421232664541254207587982199454076254550374738002127793838036861311163197331428067177003310103484664860285206494415657836433180258414941777876683209663271395782817076406573440119680545692539833013297854807593414934366206973248154775168901760214414854491834652817474903628411205158942715816423744105421547004081860161009011223983733633587701430469149444057501351981163854639671244092578945566831996102757733889804453986588959922507075276664978675040340394315614467509744018591881628645959474362752384634295059903458066610077233678331144661640579514529452039762346527590721233033756884193055751464235376734977248386038081724868032471166998005176289804200306048464828286325278481256700559410377001358229037491141759979848814403446315954878328555058215795236055699977775527136158516758450735573281388069160291345087957794611804021361273956741022198393893776581794960807666576864133671519692339717821888282820367441420694785562644306732486936722252635612522701179140465078539566380431798416513920384730438133046813398057820212461071965569892574082047739161249555145982833021329229579675071699700203564456568738458736568200871962087582525045620899569663192778855469222501155027746757005419856318197990480490400888421011522442311933973278283338838206909331496488786428242074096240027157976409332615965267259627588417185799667358538493771919535455790883340084485524106080785819417124025125155166767243011659619656444058050876366986471960797995575568796354936745670964435151514255379578937181460285428765516272513096461199584209903869567923931327496417800932120823355718036672983578600158188437072676266342240495687489405371748541945380022798241813935500586305055749456233671547328426941811329029714756541647354878473631407245662078868467301571628618776245971704026526315284018890165960713559337032401054198869479912203262806348028056843977266113778109008016599501395048363546008618118789668441438793552920596695077810938482985749881851507399744709769419424719369331062963539933371714068267241158335794403231595514036060420367888070353271412839829006201038878627351192706016709010309369120677445845431905232376512156834118780814444457520729784947346330181328589416624869385809449332739488705401058473306746781275404589580054686520731587568360599072529370737292279026864216663635247451330841563340595443337765455606097348807207442834806935973250642969285397747113904903431785737072765348432316584169668858215836120450343600596917521506385497880887273283997506046280616127080243625936566635294565803741580934011005267468889006601109361643297869845560440860650283082973406103024947658524649738982329315075951878281254494740472616690363629808704171121274950379553372581851042598404718989476381513898136945592136930552723275256599125900529308860961720091408867031540047570494168053049598778779564164968565342488643255212880665846733787348886880574986143524653322676477898734885894174236285616340569479004664699629733910060894688638529369690345745480412380630375692206760613753208109888880057201872183800533213831728597463594217059198846202199267063156195822705389890922781732344117437893170926650110744763951823647972748904455643043240255904100614747945770904154776743882564454680695319993708588978655950762807099031709602806133560953626685502166637241436457951085142208641737678907077631699289033156185720397763181459639096195645397136082286973008411569186926101593159611598340848160939998029280203382991448090353736591628935253376180241491214117379804546528057410002038029573495259801436422865896431251871177639459454226328412505999006665172056094683337123036736801474749340747032753338097068242993748044475941850169372476739380326379735753655636447802146509520733509980304045779404499171437433757842112291497864253704526810988343767117192192233345166228734505544837418032649883226962330886571036040872889268959967558883771573937814557613111584245914981202790268843699958976390454368286921213122801679333791134548163270439303916418568891042668575448349394359079535975309004073588351721326061550515233765579519816022223161223057891329914921594242402230996641900684759415775041720677855374320699610217200389854169037335363505113451795804065668991538722831556692326427062889711554660701074416528450175540919536241634329619924039763269164863617474527059741331178762854514231355749985737018090885271826215675766173572219735147213442366365825523852661764058193730808556562985507772461559060637362294655945584904836484748067371927240981982372235259899435088001479182165942758918454776373400357592034729520154033323119257849125905277819674277228315347030648083355437877665200410390721645924093829403462783587497278769307149466569217384085581334997191176259913143991660823541005798665668851013704226509762739266889832208731112355499901575526222416055308053474783920003647765587863846500115384858675791512553342066450951630898023436742885160643143248259823858679289284895853279652310465292248941391117806731416492857268570204786500946127427358228354348029222249704585783612861908435382381282728446695570487461465338923957118084056489011830717154012772846658781358090521384247031331173812125730697369281392029802783885273694545444193565366292406677847682297082182096987609545984099239110862171751589570690513506788192319725026360296299574924423740996094376977544669821420736118935843228810867308356452000990367506528586276445824526659407756685933676137479945649905799096559222047382747718330592799966630232244104979067175502284351630581426050176734588035386235476680467764303199607027802461119854762581652064255714765064865915568482596365109150129920422792562297022273818237722915328173601590919159027262799522242259697746908319143081570098762348522512017924420055995581301999995587261703355492251148692340475798902428483721091239555637432049105680990661265613059817326569629412357337462316770871460732944823112198314236498723779153750776940364047823859145834465157205849987685537844070340475195281192983633204238677055001383879244625541575419090431407722204348048438117936757361903638569432048613699308618062500844618346928747666865205767678091843593747503095431757388049792356259209115687804780580182529360901990045686108577149323742122601493230814488164447402371882362830372458634368489482607569746777836771851349779576771184234833689595825664609410580003311198465256514799443882890695222681269042173590045506553490096286696782562031910831152516646761099350746264637532529700173761159396138763452479488263839541021731824234254793746733541461131205868806100989857930307741211772169209280806746178598999329898626916570496395706146978038313126777211998001657002709280555507895146858338640719054573113752879001978778298359428969421521040169621773143440859214257186390615472069545327937164115903098342583289021633372414607402650226728608407679346985085748655715406988971502226027244751730179445926837520331771687216684025465806926038720223337091467564144419277099491478249349966381520946519563595622055630510001630822758400760294833936835617815413060571299454560591588043412186790527551930753111005238612194253432497630286963192015921999010155533714173289766373952430079782788175389138834451748429334283843535231744951587983703626609760099772842935765301979336590140206973756413908425970039256862024295796481554439226708594711701387668053868603957085374283191059455348012840426189127498232452782358854041093151550921722801827059366616426449396350354725678098393490646558366126955028504463831461162571497610008545615610309168436606591137136048929631568835028332081392868784982006967579540955921325680546901492531721898397751778013558588591237387500624273081942772835338214780676486986389320027170350463372653388060526949341979082080128455470264547309650367727871962977100389881274585384763713147134081346626723129796178048558852068529741048165851578230772575236656260541715073841001968471040852082095991754245341146381113720595254855029616282984038209759123632952091542609502057867765405744094172239075755480635250021904779282041939645704481886235845673704700370625198112753537314266516447456994620099389750687488322744726206451561643234043548031221727028593649344093877130971969845444397619778459091441157993817465163575003318746137715847642965390283549930573056343398213845228141206439347192631740516882316657151809889022941135604283330637235645806462425441848841381516139311894316701386988729777686456391929202718538732321527991464856689280352729337611714246631594076776831638047489993120986595970789680320662299595842489433162443591668546445448360891491380488108227302426330258295782062978143405907479148757919409053160042313947284737018614555744398645064534830587620358664615598950833398714386441329367394025103353313386395315495253198531315387386341355939703883215366372618831207722032912127306348687471667189803007523111361325594624431057258370912984637575307524256494425592318334843439487995804237043891910016300881589954531527162196206060270202292687116166483105424084472092400540914567737843453695795924376510536645783282735722899438801349958130500943425930921528221496691943209407968226270854279173822658866691648211013798206690417857552315143295651174948910226127685125471134147972163059627920709538541345284022361634332302061655991357201808984766227572498616216116929150618927913083429766629247370937427658075666054523525332782264663977000728858511516342426771711423119710335562532952066594129118511685873975246154607314200490348783292886796576874668751244157911782956391409712942440717093438513889741033882910412874580177858339908629790307424269741862722032457847864274266708779321697438487750105266123690355534262038153916328323338379496917231268924112778329431565863379823639255864604673644981773844248295876844211254188654051468459867943882358047667541018792177392399699712432353434811219206567541564110151749852612683696289022470218493081988242903683097642903117094281490090889618324026353353462458287348648206880918762422997333549749396653044418909341838445217965251901148362466468416347621788915624701503584016536156323844731323536688066302844984671466918082497035071575279890625862118067249409771825403750821387449063066902661064131609867854513590103864443955584031335155877232363166522871045919306130442324359185503135862700653521222332549900358898536666515821112342425460070922822329658004992672866057906435616945266627854279981080477178863922199955257814669148102950030263903299550530176544168850756700795589390814752655223268925640441631285652479984270756090914895265115683755225687418745974645383537193216140359562682330836239094244939920848904993965139210307563363344043841460972602830526823177131264523050930218180341348850611366392345842927913774716508867223580450332846510615326328825827448310045141431190917463210125156179721000781698117228239558888780488769786147641899230474179652883670769093565296171747598780133241594286668547800570833417904078664384335036173042947136302256594870195687823557309420810563341007988235301565617414090208885757894185520903806555835993636756652962093269491157998065497917071166093544253162801972524537220669445046621124410178585126758275169855758093819870263540822771588084842448361082734547274821208368674851340764083195890837685910791082501849619003906115911151578398531231243346115519503889642038507914023709340316036711874494380607272435970130673341048966154656390386169037646807191717881992721191902965370829652574413184319509838427749963207983874685764740803597393222354864791785372444913614217927876579261485615231338980696574777496581063293614888225276064756408018875081766351641802064699796265253147584462880241288127718423084473703263637989276617885541896268097674993657163273715476661932842838279019669664299394038267135817699896170096510156096504796147626047037903598426725285291422780646449704055936152475789156176574294377732809087655761948558065794652712957628080986672219611491132857693073901278601806062995594452921076715218851470119616899930453230024356414285818319826378244673068863335596635802809616526686008621273356774629865309742278828066616066511436592374541028012986349030209593263881834797677884563924582663777226169744022440560673569704767636854244518454846954437795473472312175845932826554397553151436850620546552452777744100503040778274871634791981409080584412434629322898631250487112580748426538992534711020016597624176634440566026737959320669479088995127367691460496457072085430606876272816852659922193018374885648914087181640869879206309192445870536286942964212525337481652460975983062333992719050974319630994153231725624161347273642194729157122577484549781687770200666320035404262703847308902161437204967533462045647505990813273252268528190155806749891107795300146212447348554367982023778935472195540592125817815261101466024777128645512343571696480280591575642788178231415523792340703828466106143809460962479963397843298122387832697432501891366433438903220234517261483518232655270317011966563933589197661885919959390380347605635491218838203148030137218067471285669661319398016425951309507038751518379644150732601936620682476515833124221190438213089223583088189323565354343605894003165243878787763000164397847839025181763741227769870048701895453094699539969177517882263889264830158552489494651917922599599492292510673923042899882455435240914796470866232565271832997086021437787686948997725123518537098511498810617087577031180394694021999734128690069780651160997891656598379889458608345664669156884118668155586214750785971240151246796054269076783109053282676732078534783452706578994169269100106573120600931747682770117847204110163310906839270014992661166674997146701678752756234909035577209320795820061829608252381637497128078433837263499065386536940095800416121452872431000751876987584947004625244064932130470199620503512399698391378048525807527579983194974913005537885911356659403417029145923096416009661476923663921375057148232561029205961162018695488517246953161897312154820873246229700112962704555816926841163078861814670757639574163231023424598106971740308904069333147399644943647925065011693829813744888416460701310007349448715364421356707594837094398690763946606909410230465792620616560421335781493586986733129511227933700186004680250473438057437628225037890939762508736542560954245486037274167385571427019753324870494667819872454772562505326853561496199316132101235840052955165931637494940266886106817327722688684940094122009036145824714715314334409975854332150509753156845261467328820751236128982062073728533574696312390073401772024620401430943094453282258102064548456714596060252894825634223329650566592063457658036199199751697898851347619834316095509348460061627119326056032655438875955677139747852277852805977253912608770219199279498487020981142577283764150784764486525102119670568732782074608398648966722065992068628663330266769229398322198700018659890537339173675225981984049027092603745833919159470741938796763817199773394591820799480323721218269124186996357630222316520347909917944449705144145930169233407116491476013878009787642312682395249729817692476396886973722290478608347986958872826340164414416219008722588599205691456421454341583588039032032129459336190192359764619043088734895471778935686621489887766550477221627513887329490395297241244823074627228207447736363410490763438241224366962334117192748041610130938208578383234439144647606501156065447059747139405926976170661487411848587914722703880359184213998500526220604938678132992128936162761881987595853287080826481538745195499024504283729531934917345190895544790211568533693881277579856996203188517022528514425340669750724703526365454251251526693974166706059917344211364038739408622596411922864614991002163969474430353541960880605866845388872968524155317082397456472666649376997399949860590703288541991065851204830334982437958222134074346731873876549708267617837955483679172121620067219186160601853588208871603465327215437489944854518293865144332518740993485274768050027240206231081662608541822656306854779549625882130589310414656315344497295976188972890262154751965995989323783240971694450233860050084243412990452587925282335425209040846610463727734494299976458997018712612910710416517118004690318027844573774473849028111186927206721154589918078240637195436458250567311848670153018423874040646646476156960874744843078125596665801575575377825191187116077999863377356995061151818891569336005939673149367135071614455564171382395492014998639641425284148317774512064832709290895070417449328819675284234742750729981364220526594464619989436140709433395706949110783212787985057049947668234327001308231944013185027531155683475781209049328356453083509293825550075978705303278200386867331684538224845761989008955227369429782947440638301025358504364783621044912864362980980502453861318360384232630220743334854117308431081564353675710811911013656675481851413092058973328152223011069151837701127417586301678738988497938904274897007941627296484077137240284351883885634113426508385936672217439675906242723709785233904245289141860064416587123891859513762464615468895197308026286647559899596337535260072881943022407611216785305936744441580282165968555614246356498615734352657120133632476625707199710693488308022557841267930139392392444180107747924978008055683807111057551520454298418984479492541382043237962951844189821672030299592804828810044499988861852891746344055395552769371632653194565250498491602222020028197550680545600971705799848137737705126769687310628502622706777242790706232199471667509547865628367824561991260346342111645559119038275538086875445088764544229913816783299497412766355806374224907920908339700772295533435251159664780139772862326102675656539766185999049920741201814665194968990122433711762927669917169086257496552343926105489053998943807205752490891173295244275470430030367183225769191145358523369043644056421766468145565798247464003829695985401546658084631813807657315424182598819745562920271607419374072584323644169195642421507199488321407456419097873310098265567744739730825874058473567916024247086424632560655036408378616118735920540963684263051093783725129615181500821373616510310602646973275994851322267181419740580585405071136057696911357919374527805136871496440020547671645381636970127491130942204585267917804097225865336591815136075114160696819088987220569587417570163924854440104170072687246366001656890312027967025155384798266469801150369541048239086129615665036750820242069407465599624446322805537698049281300517108456397303007513529928048379209594981393257226088831595233047605932590379495343729777045494873302191090798072921452893116107031144567012418898970738516903732848016663048735235858267326929140693383368005320016684135563649236490007092910164318819721138988432907790068521146247024713688482112311639494318471566120941572463216231701803254851085046279891302208947573666508275321392400341096664109219693785520990979401955083674532494446170022572244543123841963414271605797631918646190710071402705953440706537323761954049750596418616727277164630881547973449420081814704447324492298004032263393723702744208557821333381207869761108503465121939303559129315995598789063059926496286225572750467865653279188486471211815896103211635693666714353432372954001009050872394067973977671414069009221545041197705332253669068939048467066193189592437542324898980583443657317611831878843928436825570599199779020758628845356066203888896378381311040147876882596445511668430465714717114501210397582891378554947064719576621543784021662930639067048006981428958153786516243218080964253863462243766575191458272847191266054814434481632982311727388573939659297336522057115356317361846692394933387649105512505820519019724048883744931348379465056282001373144151035790705111356993195644578505946684019001925804043146808250330635731157924015006039966710720584563026802857136859832805465710179543352599107627817954279346744489673846939805877592182006597580713907987228928260060204657827714025401917147943734215918655888422124962336289645899776557756464505093179885093875925344697446122552604740561127694981708550486640989167172640691195511578810606473671709383766405111060085882008497388282239779541588392933912011782228853218211600825067193512362272873861223661045049583030527967889102831029885241848143994793885531141258120430344996827801485071540229368882287007778173683525135074568439966093008708632140349352833776015270795689813066918739442573938620897268234795687536211113467217928939945268028802678971671046128513893134558103285288978879138753791557354927164817034104507431393158930345185935660729798728514879083186998575660641618272148127815482769304516327298783918795420444661516253541348140367395027206300695318465995417503594196833765459843517263687182534334958218816269396690031385413325635655206159286646618067699276241535176367897823884218976664047373560850926308724962727879014468344271226905817426853201816909771597255453764796751002879085673580635440646589547186478354292356089271086723309167118217982133101961132022731393367637452217620466648723703053116259328047482215375239152828553234706421385633227310098692579812224063448427876571241210402134501627635304229518126466431957912206945453777990213098883253049764960356114712568963907255391519906605754001567937983106864324942461769491479991585679160666204397853705842299037018047078491277708969883956566439056016877135167108310702885290116098589502952562286715373617834671003826639788735305562485800152107924031723793912534295366270820699638640179271314280361144825865918726988763270333443335758522552994039297147097113580880368031633733039365030101766443958090943902559867737590525791197674441349908379065641870617814565642514918199191923877392354453100967748867620899128758348094213050266207947483859254662528671487670474997607802336411954628313971403362241679861235143735544091015263583851799981884103249511301679807849928748236503674693039191466176708524981507999701291043116462995432891528054758113705930925759157870631865053058205017239127457856958159598692464742361274042571733895556826089686599035938058528910435152329555348797997639986923501536686097276070015514990891458114489679214159284814122117887709062987957444257561379519654021384622942256511838628490696215983418270896957876526104918788569044673704638623350955921633441897279426062115181362122926880887466858577349052895253865373696942558522892694444060075248647365828207396168389011952138167690498590591224835544338504648955672400603176756523859966792166840123160737963799627497533170406790209081790159994215587504070809655337272419848535573951769083722771914329321715378257330541780526570660401341131173960295405087117839573040581526476893656855751046601111363561420507168626514745465051176985801844927876517403990865866551778086981671913451041602952763069616778567169674858261883473433615119412158392002756126131033084220046641593101948807825022419001099280603816841668090963251283250575370266758242435461246920163242288980904831473223054300065928225596394794866869175886899339280866745336048856176568463228915776890140950576477745466995700680126354391679757480820496045284612324578217864394332596441771380534944583033169701198261060836719223129540019807732347736782290285661419836506969661010664017397672263635766848625349098429368376230260648021546135892023557564691409922618819080377404458788312398352180775976582744612804314769232492050691817759026309241729045952503177642144707096821372515169968226834774966016334547532392527564203612455391404556722997934234045727694400373941155966319275744431826766178768105105442439068529656536336147893990027294084012066361653485439035437765409738028323260198565750763771722478465708553386227869141046356469789693142884924412142607591834588995386017203692150335113515752348931611874534370958862093040901579429592958777536876793996435486613027328086297549889571426217533625344047012005328215368735038662168414456234482240400668556353382950092438588968049706892941715381072227092852853920984263834462707452539891516020627582810057638341362291621347648397487807118192498091320960260165139864595911447277606832507439365556505224871460426325113439023900354138548610069809439723170368354965739754807936152768569021620767032343033093128965346521970366057822474026226878075179601672815273767949338754097646416928514813700633348071566187968463934721514747406016213646352106982353828580079785037192823949030071406362289588857329157074700076422450293978508052753506910349177692403637131624022087676452058848996720628153181706838645124210193427820954207991377758166696775478892813358247988182657556888263840203244655448599041276634672202436685496760481354516402156380956425114500416529033658485964212343712349829134601779105681540686719779652245707223453335677579501237029733024739765102837020932892667733802479168425002244462244650657228078682872656341293442441734721314741841957555212218118239822947204475328077340596268665505903836909078078986134772455100395269016914508758672095580665676962516916171591225633908833098067308058876489820171381596460271270414996914796052645716509541911483021489798245604410324015324389829930172160014393815299739989668582592058936030985308581395126417279494932014342492928930778278302152761282149774623096439862616311102305356327139865518088967168400853554423714298380966018496387879667395573343425171682668170283230027531609558870907931031404546880240678881068364811658060719309293460978439404778727252068935147376872460715286550162662415804846507496242775161336336190477547548853654781871562652289025946123354979264661262711933595046631720456260661008655351467769342633138157763490038922525769966589764009898679126775298862873877496700378136130242616398923882904037717629812728582609964557801092306072082647221190699430812182018205115775710181735465360637286329821424313476996769870511213519427155954092329512206966961194091934835091053053460451063212811213029143718329780490386783193007285769305269182223739306960510572760533373923096588127267591741605501320003373219762959889635546205430616665824666813512763009352809373249207820270801718829597565136911670722188163555583524984564332728985879536794191552061351622025193645001583510651748019445631782415874051687468134473417917148130858980935101917684788690193609862509329918404492231422714059515623438829688833147093693341259905136261785925693977450336318488422009391426677964797377755803899282446217704130977948395947521773153000472210566628250680648693949220730054566688338749542289752992492922880842821023374190989892140903282249624715752929243158638018442348467610568668048708682573530935311751911757107768715842932866114144766884667592224737444321932640476280541734003017728326278071323218756026033943991011939879153007966625308431779157364454351052003210413164927569399308241290095766709787599230709617408237988649909321627244587424170351990548934748216927376226327458822095579882095091517957533175893200673313677799970307953867917255708928484723170607809697212641605596525990571564043287898339213874723187500474704977488926949685505759141909205700381469218372525170044614670966295007813005540303169330980721327559355291882446513283287773546659066084183628668129021421201680852000657707125448442510420663328449834969376956266360592622650502167203943058959803384828052763429961768578280137099731059393870831034575836353636885731154652883626780611746606047467093905740147101741323614906457309755865458634772670416765708537562440525984278975374344150639176074855973069170710104160313278143800539675143967525389972172643105423922939021776821787076236515823934668809054973226936623587197008623830079770342320590027842674891177859277409457129110999751379337993451073028476320893573376140931096859353371350564463289611227508559294020369161107667782398525328973141814138698439083154596229067066045459238793489932939134699587213265068939252050946467994077005314071892278885925637092383200475529997690483814022725528077869245256675597428478176672202992716658843515688844131154805113554563670272156637296823323275734120543664213103585462555016720477810373574396199067811112224589933461161991958191455417264384889314258548455355045378346931784555285593419988636025558589141940780960945695087213172726503627027580325009846540089789630095137935253754146180718966591532939040208626719821364855885404460670327504232810979741579383074238644472450953886871980133273460224077206809434329951720850519077000877382565473465888589238714499735710609820823939633517716420103350418885822054366106843337914442495246068751527336135049634318228280807278903458149829750834814467016897982886772830401489701420300431705456524961255153129364377016603814060550869197447254180710487762561706115549792603298989326709028378911754617026841748652431515562924210459687312222954129896442480471360160498133210788769083867955228563883284415656829853826402239624242872765033515822832916198716925011123729468865437720761027183689032626788888045026421484047520932891921824680786012715473153759771509538320200663069834983762574338776738158541857768101438926610887183755556476762563850928666988388066397361194706554348074372123317323511784391137827032050846063831345087199134771021871830611407399673207996988282503577859196660762002219043107438123080469211368265451867196495856604388046825894747873276418751495078446958368249439029313647120310678762930170405404363490007772586403086317781628788328903510703669941742602566069402863343515190004823425750961636873483026298359334583806413683200996306937182240781192568194953618151608549875928302387929803427269841119407990771356890943331504521021059437868607726611698422680973329116156009294104358681662487415470215834736868833631432146424709368346745973594613413589355113057092667591538394510148690118521715138434362483612757781395123947391701219162501828551388133252684610022768492550419950994374779890714484973345329122606451574822920066816310460674242443404163162996860771294472275239695576934922459471499204815700883399382461286664102822442482661852678696534718134763560061713572582878499804092074427249086807379369450775349604705158489525074175899075974295833371398097647715096306971242081404767627631266431173404275726976084844381696686456415265258450570338294132355757478868463739237699627752763516406254270730850740299612663718285027378473967997199919092915298053875627502729674672379054212228463943774488854993419791175387012686773494483871637260718855808464030482178231637237373917856992399101504257093311777157676358765106122516749042413922862156853505813881033576571902108935139442822607803574872601750901196912497756258187552368484967344239699338554709654593945009382892279539547100555314427332382773048738679080107945799844452777706262814208255393549652139897081262305135370647205516545604861205685687457806957490449572059911798470930121772867423361507208416660753199132088715602581400400637042108253686498687535473663780569828397010313745023491417911368408939042112062179611727547644003173205098435863731519978769712585476730125349687756129030348387834984216809955546086414243070210359048953599801433366841747182493910350798499365969891778329186378299164626233804830961933508594970464417977628011756645771287747387275912341153047757608586736981480691857987054088843913575220499091772481580602661990660773865771949855777107262123533124779278349029623657914716025393954152931125108419159692627130952005111605032251786248269841049457414882633046680819097833840084345844173846763485404473904120424431169129079359868586089103571054124735078700520729022951526519749871729636992490250640748146042071505429083572696865274769412732121827579093722773516421364056194584462644245379990265613609842880837344642815619081222353689579518876786550352137896975640742503789889977627988116901005774071401392749415035157328759583720158820904473057152661787181848421964367277416162910558790229672811381898821636141974820896574861798249715557747899936482282863358228478356176246452771246066638191962592672441489304105824013847528490359315491401389327163356793954753860447758127788991254235063713261662574624777529878521798487890516347135952751292762439275963990486716445112544798687713568967768906860553576248283271190635208457972222076361744455852491545995615812861695012062048707536596439930130344778953228093766172198722459285966573094220527273261314847598657590909603761087076120976096128799462737879495403281823152922199658064922776330037528630147376623177547304333390471612247510190562590611310372923728489173006511192125389121537128627326869212675285586079579596563793265092597857508169910351329007348519039445231388067238866729559836106852876613300315747368311206613353469341305008721725101396102025389919859448287519152601933547066048220071334782631492706137066183960007955027585431708449500642326306045812200349234050880904840779210664859925226555649466498862158857314940411439728456061375308927480903139133234168521072331492378085703736017572254141941488412494539785950397298811876305203241332646251892397066542822488583718040582243894256127430325058626171433069762776379168433531313305350281080708409521671267307056184255401617680501353660487980248716646384405016157652693942913076662347796729751678396463606667102227138692046839162194374980762853986920751450691952359069506469973268570908724045827496211578657206877388231000581216211529335659511922169496814395843784097164036040037251706197115050119924886993685499278665656622278868770167466555852276678335627891936634045014687371437946534749421696642776661255334223121804469043408004706429156205298677211692342001128500263213193026840130424969387545693937837760102624052504713796742629045960933243280384688465369054168753924964567327693530998485345074106068860228707087558411547034601278508850380849420851435403197225821355647714860056129402294773297123770647225792012444526859476712096112326442960731342714259595094195423406119882858350272508667658001915099729845867581707354501297800532946991077445830438821658123218223913200638698765218289855403839866457466269285748456990215306243736735659288372924152235993871271423244909714901406887181090960841148228580558279343577078847120057714457653259167467209284936284282055039755511917662641465192474989324749240134482839197753070791038757183751320912837555491921691086427968934182360307358449269017095923370445068066808627168710604974758793266743575915951194946932458992672967581782000109668938215718466162838980464431080275889630795711891023954062385342374087913346129467771100326486570843150411789190967659957575588748148228040475722366287633910439255108138531986662223305914815663730133826020982608623431601263835736804352216207518280138695516192778999409634449582769413706500213651795588316064481783754570031150943862024755643873840921414392499804476802926519125580375659777492379251774946790649028429654206237937164829556599268816073803461755278401829613901946096805406862283794263515126009259179673085479591552384283049139403763228754747170853957672688782672230581446505620994373663741388599332501994812108190731584217563800680803912761460751956423058501239917507888131678578089827216295624664240621464961214239955973018488544606862976631325254234437026816649175762587266050199479396822186670531544672645516099423117295649384947733770392975656202407105851201627194864035430675600380257042058374301347464412339333034962442516448369318613939269903514547314296695197688359942115954886009193938796727613247810714544955527468752913832002276104399401909982731089445758332272205930496690806250342886259598176898610914393217926939226922996814753901230446318880247652638315311160631789071781829212238453307034822531655321162624827164570117807425390578065059649029011351454690739702645440245958715835396599634814031021312424375765443602047792626683200988795032696147615872436920337137150948300908117320994615877579055874670525370971078103640475937405949874653657423288185194265593733176354603722405790812423839220725855726502696887472312872397111413252870894035770765063530353458554238268103951888690489588297729168642830283468245424519464115462419065856936312145434774072841377133271042196321716268485365676465383158224848344187600070025214399492663886544240118158031977443903535309274068973057582041565661167923412656357280841986964437378939780063994688433845405963587844927918978426061274003360698068648268610883821222831861153876202146489098776310398618131033901305913646204061483338809299355940976809256278843248394773136628106330519920345133399436234522470528003866179043586186816804520575065387645250467363535405688988743445285736390765127833459706445140660923511352292044195815995593460771134204709364162476326605794200849604956193568828574956044138264646197549387002675995100597639663487727389245745982396299540201453540065724681753207680346968393142777056019480884776250211026224468446985570121969163324631925348994154087428983457910666714971075284159711961757782007992526366327189335015825823649370197980998457104034331778222170144131929785705988175799892182163494695159205569615882563761487083618417752201119420293922998085648454372859756203922747763623167758988766875748852333559628351526346956809633531744780640078875176065161128034605909452017991684586412967927703985576176593613065200539433019556331360209939101929677192058121589316457564080612612072973987328168817976904161978659934753671603723424438132543195478638104789546641582371198003039063531010731257756283282223702150907662172831983669261772811562642720651794763927010490077090343847934763127617554525941501526659706460955644984383673944960686928092289956089920333490654872669067335876380082934658910945749919488503965828725802379686803441504592685510763003368591971401413561048682845614886559307764935289386324612826499050710453934163762257578542326849011290498589381402475638197733911612342087262720588361244922523716785394640075489447132624140525487161785206400634878251743804663001909221822674368107308420955530593270266666016574718614382463147827283817384782301369416662267388395786157238574105098972742348995008089847303563341609827158301671014395250635262498849401104267809479012493447930648709544529024978820179767021475826618140792350642151003391588374886611780779593726804750936800390453587656043935039967978866916350375411241686547205914396944298598187907685834724976494835598284970714151421921006785616688401709172235801636865864441927649729103376871688288105751891080636241081239096153700684178203087775338700562580178149299165726840036985194039281521745352315703133807137758111977669181316666026526209359240931102690638014998766693797204201578401098229762651761466202578543646838552729805608827055561284431319443429658751552676627102495228017419892857251779727211264782852061620021459705905197008130525381577802339999328769640380296133336536857970137951350248664703981389904405348737528539716513976952456341527919516893527814584744471736950638457177265929144531751696174415828447320849978277815106323521851420463367633212881189837436630473038487811212393617388427941123704379611593656187770935328860790116744462654936657097110143940759599278396056557524669383318473829728029742907982052025636711094016364994396116925718296023801553364395733403324570321823660069208449657899627125726839032059220742775179056833801734363880937891508748806648450230579387526223420209347891805747969144886067208214758147992555528571537238707870691929534658724220136292156632477496685646098150457596721687054865717026832615265023468953244450464423121851401408654957817455544618075265431360222846269956018681428557694655775546702880997386989131129716945442695631105661239014932020069001006533414756377047552177699864676859285586636108973837539353903151669375847164134913600870856448879277037795157967258725853608116816139585918554239804980046139272394199087276979958069620697260422880625100823736563592598636652914493281515219762249109877483533415014335183125007696411423746089306107160198497052457284318650138555917557228529041979617886774538858537684310445456505393698789546755340794733329472034560269749233311469887692846264392292048816353946080730099626967004059857471599309242724549674703319966232633445501562974250780140895316728312339418856746298995126883539857965032673315283239759258937222404288323517820682854914902339127301361321179755309693678889916736672746816299861812450807113193221009299519561779370156236630464134237275325356614631475785353034879395282699428889045704697565540630725107989804796042959486049734868047406967709271998503403064456379474726058409744384748324832291454822279401730506549720111030288101236600192364888441649160115906938128284743857636073242113330409599679237319219397154736131826450294039425228006873352755129238909832638240799960692745608953600248940562349789581894615787244205809922468486434240589685802144548188898130484300624784916693222351023539593738382924902805593329813879449068655441161457543876286321636011580132156693060364549895039524661434416148347205030080064624389148945599082057854240899728284198595552073035100400692337603385176438611583798981128266168547893432232682025470754372635456867509845866290292813760066371026549336358061475018860219126329360394258168574478710628486623691760923955670344932856298027603988240114936447710608164367517374776801077712832274600786079121999280993423593247882151428249480713938292569924868204591166030693576363722269459962522711783558595031630623727172148808041958900011595594299116517930158293733603577845195977539082797911068675672522419031793921623863123755609726973272141829871838672037539998191906485882851935867366498205429259265305228086917556123869459175224666455583982436240461699298470138117139226262792047417132638372058177005331174884742679659843940311599232647877443721855516985770712176041192841212235620176465294824069644230331968725630877820421830796784637506153008640045815317823048513312897598867348245079751345765939787016046022499156001670831487787255383656694885554259139070107245087388178853580104549414098032035070267760464923873686678297837358170856467725468668742317747224235870531161365702209846638912177801676120213226546167330969419882316847901933889568120567796376098603895273407163672063785859070317845114193975389289982271115585311337605046332909481410618672201171405147367752046874471761447118565159764667851242120503504659214345611608838807939194076311730799902239540383908348996504028001665342686816548348980990629662379029653170762659040484771760024281603288297084290368987978979673803561080554353020963093911215606073948479868054504356647962107976271590284886790588988152683873218527361298253026856464539485182143426563750557578307422849962528227130676489535223419633471983116615801765035305451427338595667000414474223316472116033404608736983810635673018213150278130352594102268597833545813769639945022509912561979875301044881130151840897405121053086787573701325227282401284766133864455288396809326002166528742675792943932999052711891230018094786561980358178852159051389823902810362085362159850424000114562667481124901160439554156921922872541077383198988922506718623407689858373778938720127484167910659862235473032439655595395766281692301151427354611784982809806441575834201057538692891370313190747333013936096136157930391709767617789244810868887459762443860123200160033808579603513370229065425645719114605515291209344611772205806418187399859015412632437688647768195273731085883497987688391226361011373613788801648777900687964264600784143591894330648350146768357892070604575684607827500830904306852693740334900623852807744833094256888010747569201236496361481484173106865156189654230226104146995884697085089110942574211066285029802325861224853664938624078236659580030519608884143713074594159497566492463139508408080300734615296889110896993347066716682683385208726785073100162704953750729021395493827417822344448793291524303274260870650749515145165631047463695741147209703696845928633716013115437827286031111464782278800086489943768714973074142250402467297288527558860223833250572101334842716911989076151877216941501597653853410362977643491166563713354608546746934529506121206445845092144584063122884126550313890371166228777094259015375598584710340303122295898750664656419542892845052925208819445497618937663591699847894588398652968328402285575902797099302081946379734817660697249167233546061447518154320564589888723272936640875020752912608599590512997888831148867366807834547638060764528214360884262239218029749974977787229516714142773441948748780719470196578484900850469459534410771681967541820591152823697762227397511773076074122959260139946884650186013314040423740182129539334553835974957938010785705334637503837538558607214667487592538864398511256137483872973656233469015123917764238533183720769003959381959724798672764121753625359586787048019206323430943007904592015744905534791186840064682672099147923024520894203030160947876917579905587312785759395135232089853900133359849879947423584201947929760346516501640356233860859480100719869222663330978243649167225498985705992979855966274221898274665488027034822744662011482521484206100054709386723601729634806780681504079630637609648524485141179173048860340336210691915928361580326958675431547634951799097585360013150188235033165744918283286700557823916991488935827705878958903434313288816724166534510180871472428071203847683149885120333365153371816886127633519501320066628359222815058525622725462567507770002082337416633323097209297997076527968026873111761741602336425828990744694768874674182466116655004763152538081403988752942715950784469986722377030789775540432060948955458759218706598094331822342529950693711104862303468714152501757160568094231946916529371299325594476156456491873070664703653813422793877314784786104466475611948391447798338682134228207243831513173703531701625915800905234978702469301367175327153659333576299961716919452660765058933804171064825172070364947445623445857855771161843819128089477168680182055536227298995627176509387794945097651228058692876868928278346186654774513845650888088289642935714549122308486859976084093973452682976084107615568028907420143252469768930238505080054798429499628259538486568228550506717576504201230155127668670843155532520434154378773132429103937904867598710537403274176334337258563094562924141031075081791272796193946026995888231880966863639965901310347072339295913196940509515936958548895419998377965812006797736780892746992247333591475890011021459069184111424543001681951225737098507302103611297543467604199958882364336551649404642331487964891157513324713015226777730851502915136485239791673448802488114374002198555108778129281961445820742921184235550496110002153182857305180563009505224686390265155995475346983698286007341550185733722941416174777552105920579370833369314368820470265194418016318601575720479394471505660718570803203272326108738146905649373893993975041424595733705698997877054168705472994530888929612174412947676011889827828321946388832094066871554199590336585633679548394636664005474037631174591057332703900773663975955468198218377727483763685142812933481444822431876059246051033424998695094835193008628292752323982975143864010829615970754953321945487752154852718841412653514967515071170919485706287303374890155485462070029130561125186002326243009401272607954624762747933530408932447422044081061640187924929200348884415155288590538480396124465754206739263452419934749726078319820663413579571206192529559717544267250626325605692852665279932046422184612624711863618489761589797363654885404107100216619885530543361379510462720495642563073598752113624831967113582069779419815606281371265665544763543876965730512474685447103824704731380225529947762069694506400760767561561674295168804869733961343499737486746705367142303109627649268421047108924494509854498027443610191228340627380287053070572007266964016928601066557662629279575596093405156953431783360753228261760783461910654186399539606804620020668304280338250010021910151026858254502499217474007070013329535543310661839964089136160768955745017578238172630917557650147376868845964487118084112893627718511496035140475018463653253513680117371473334578303722955445590509721625282056870383344300326624634560833800379446886311210112634356985021511733001943624063637262223110505153561448548443119823984144520264419717538889288829155120340638695796672474992790483590962654203394538511214883020932053989168845658815697271646934675418966811691457331967582471466536264280856856245997227974860482111205730128513898278246015485144504971241430236326220584476218183017339068617776474025795447519356558931570153816917205075573051992203817484503108911321831879459668875850581379861525247000492832827269185199927638502706744536155816771235529309649040911973696961879820560410191541648706234991086030879473527990513676909594324764347648204867966063566117493972125917350032418828428937059332081222366263737725207781534614398937821558569443807139288467724298265151372122906178635274939956035003677755894340139913534906227246796207333763755320745332242173847808201895493025939622323748754230701001388875841554941466173187482141172413682508210045219693646745395866051342144353014711320626261452727187642345474971074191163391344751046974303711028594277195193171562260368072416717423362194691179646670996635048854586707306254679546281062939294981602530771718378494508349439336812534298696407248038328377774189054764247954061432607985723002173511064768388031143903755730322681478725042795538398366609346747984795607439379602444542867811649042529081264373670117987889502414762867282561790093418284636316445206127715357955614404091087475821272613450345653653947494571735475923343184824581349069174479256109702055222346998066284708140149576590486241080749186678129881790754521200908269931847607908574063726264589804301104961994875917290834572027745999049986661803647406251772780828504365177764022655858264217416087941898827620424798114127238457074968848109488443848172381830535268855163809775516930573935655325396004771565783591809552082187969415811226391677580197597205643551585379562540902520764484674341399067427813958648488462047700902486271416264490656433844912906845626884061057687780985300520044521155943201239051004236542423636717575133869087227439591198293460076016848492757228976885095778810110251511598830275893627854046902579722596816723270843171515453218242625977313630834043160293377954801435379026484810663006216585788050165687557206799778758633661239849365516286259252255058082590493580110116876362158320772731447832103997125085201499660297266447165901317742283273405407381804367359063538837385908537213648335708618408940497036448902870836917094066592776299012817872899549629406404958985348418247591350547028066575395506324754311636366841331035909840656046192097181402047651839419684382564106188832611004687185614779480963140643669801885639181321793145174902842148676672313958689625198927577622268120192199859668327205901890789254523921209800998969415963880827941188909546653102903953665093919959767799665393424677142079323728169846015573937914411414355641393663777353908960661818632239386167659514288447213814004309862853567747183696756744738855998589062040700456332152953725788964562460438777446375124993398300237595319877144927105482092311872510183171567552048018022278918678243728238288414557688418937961620084034213562575157758158398665424902673799584628351970708894521642483863107362437897262122329937863606792055458169530620751337936324342919361931928234866540405501571660690978908886595452329436922326077357485226506128685760484921216013491673953098367409602089158505118547631897511662788589114501964795420952316119227502169876310209236323489461780398653811294922249833606297155512411574056432671073641672223894683027432367965510859740836826116221828937174543280461107460474138757761521936349165857678866814171564300829977483910534559505101980051387290179196566163989808916031533554161535017375330942136247078912043323223200772946041963070118379837552168178948829440772730342192377161279290921493218705016220845306053400651550840789173571470047403044301743194046281059374357923794812835501187527022472710405436464835294732904231985627296997530225445962160319375227798101884581141321257598996728350664296740168496851523380154472532053935303929752217078621567417175686932882785057188269358859025588699844748378961437606544522247137832470640475006657608652657906938141031454632940143843102108557635380713431757781335653778629346102345203370302510153045446296672433940608800210883452700163131536240269284731919265643507096799432283712784474285255400811982777465376341330427813926980205253972611622337522304011455548075511120096163133505826347137662532481228800411575700994557008093351757974597147160380035881701770362879328613862935748921577800204468504992550360113683354124054757276500799989571505434661250692471548089551763033855472810087612667667146784500198520105084338137826805529943571797302455983796638262115955527227419010855525785763699158434342398389705066285622201393171559785620997277668523011948793325475685614997710232049394346014199218528845954296822441189786361402818409002139352645300597202044267265760517469916148117556579490157003455609234548014945052711858329754480521357707872798907736896513070586828612152470749189665197953706808638802174835377004917123769445058237549391552293609560116967176514071321752419007580675159576829583215693224941768033758252597356694878883699642056741165762865033778789468953090889226436634977311427066397863517513424717233963174852157714241712120828777212969682253667541859912972650212027778045001574241469868653969700763017860253167682413876291422310717041773297716887477304001560788194864094125464520120986307591846178435654827395820395216432371126264826052773035138844628435587179169087904086810946966319936274517463303696008070345137179106771612426360037897842520655937136141223626333240840089872839655572343187806401065173966602333044203365351009649657384186744755414890401716648460330430043227875880017771111500971891977149815534085270001842325752505632365564190646129973316531948918283264903928606903745734617506327578760682154635700313044404619806732571436472804793488470697928182015587349347949854183244405834566674988126042224849331284365644532780851826079579385293391273323894358327495458490837672589559271877514680719436743767780534025874883789202707882320539221936546188567292902594865664973023567648328602050471717194075019744867116723592667823372888220535298870875032127136522189809291757265121472565209361453766261853714875227379464969670479061428180869875725443819572040345569391490254474004434775026500330749572862174842947314948893307371738955081893077544948734286806765103724508892553158429849627833513033185881312301042157016961536335281516149821858432681582450522696109939383837460671410122327147362561844426151961471191860101485701139591540124461124952078988889733187842763789064239644034397355536382801342746883705877741180813094251106938209766229714529284134942346297815513928353879086989161728815383437732105018489696469227780036842343616667198786933215605509889874728624227345773475414324418060815392088534520691098418864285036893435757749987224596234403762208974514557423672184322262671096428370563780872331071411193515184941831270149348380412465252847121904906774852793703747007410821799866650552187331621107228827049808496143099033256843963939216077218999869135630090826544963017048203320685911895789022276798354267092410882178848441204053343888096709772554803010675630980501711547244768859758674688219960440726634340459548547001828017232768007665419292915953021609776805041925263181035673153580573568897864217394799753665402113376190623883548615131588566058357488724778213497570759400522271333387452792747399932540107939902914926872437153968110044806111514215277784841195615911417603964934820116674448104004161141233525240543711125962198653270418771931003012450650440847703545022432910064667170134259926642602650534546405740523898722883769520006432021758730764336831855856001766952706818836397654252111482647049461750496702323000676366779640371486645434699050063227330876363994620998085266425198702483980577784816042089238378823781084524792860687658199682123215132708639214844438092492353752135806542897665973313802065379220320638022318410356262583564329312731240936982430638444414311604725200958578525196555392635311287954445182843824084124530302363808304574350105006604559280225102984047423811277532725940883054075294212125382092010696596509671179041697932442206117227062179124309075121870250491624915050027144364810729909182322871882776767211676076339970547788586695453877531168547535052413800653745326521525881043698145364084132108915062298337793158620887005556010614517694626682324440636364734504455508070523359775144172162847325802555374222422542182207748461826347251504375252587510471518447019669349984512230857755963119830640584163639487334760203537474247978321866461842023102693210510539756172915912887082362962884898262330242905633905829302024754740345415621136819987611606034423099758093901623815771131326574483984297108600729887275834113423332672817995308368924321511243771742730885355999477261111399564450543302306687932916593717083774637571386492051583709836389699862780944538392994699560246338059480586069970140041248050733175041741265250549725441863751649042252411300897148609824893867652601712157014735063935753397631862990022202022239621098111135905517497716369924891120123442835221362520785418491290005856352496194122332339962687970963439324446249275025616875920462258024160020206706705905657702202741271526733729876258094061284989904981093332033127060622384120797821273803859910594679134166183705198879440069265629026135758911426938081838537490385187396522332415268767014669022331902954392273917573392121540589489101353144573638873768950622019614826402461175901166791004869799055425237138154949465263159912212471850348812924457379720840063495042671011081341329832292784821458295703065866887913651691696241890259109701287010153718252972855999263144456867337006931042654040901206529865339816731177488839640477614798654530070283951062937587866894969105364424688361515158345181889645846966857104768914084452974134263568968811357485976793086148834754877205820780332217555237757650331706438487167931919252945601327967059975888585181820331391131050561580283824103272871088442003035736216526342313377554303203412178023334311906911360558874300062470353994808790669967585856944167437810240360022611057564610785979594214360603169469407905967303894036387177059245256910038984601191495048156083635955328361399599653765416102985745471270500757050125174483625501659345949458830976732777811248367843972342002183036504690606508052840930388802016911695572043294805577455794030411341003540866863469018144547730100275259333397492135146156979399954773033128203550329528443487938786394390776346712928268502804292739410510647065864457943473507354929577053356083514621240326704292407421594316107460079262580281436684449353263204607958460189241132829754159448021768450902457057967519356032285967607332745339948487570512512300827143142924408672843605707637684392362160560518145614251267496680174581495559097164418987004529919339345695497586114931575772939120086875575963255620362090191142803075400835953611899019882629804773972645413199268835959972838779077270094304937261835594628786191148974513889105312653035460330079252059103267936788440595548850853193466789257783859939522478795889521210913819734757600319377478199187875464125500370724783594286858013496392391925384057128518534202246055564581946530370759453918450100695891761165681400741940287053989738691908961414713496612600794916159263441375976181035800561536119348114993383609602121312815419172740575060864932080586816134890690688364733951640094399238838469935824799103804598537969430565844828478470668095176640538371408284136660453583655617581230718738980184002180017944087003198174753429778059709668044305193783686802006947264219695907849843239051130593583949794038636702097258967038102126122882956908883125240325371411492198282396666399326894025205895823061259243319777074358207159568229551138539400485802124127250109902848238165039356271792494981021979504036222231152785570471883678165680960313672983912922876025282692911395585446696285489122960213398209871955038194023367686251517545330342385144375746648395043184485066241482343403594493844905542544446315326822545762565808572694310963187329664174665203407774741211650461438173898251714695468591696849334120775940250241807079917840881615655103544063574346838906828301864430043125557787042317972257859907545761897843883397274882907521990739210993810225574805838576045435096903928214221262489852885126440438378207198187751522423883251495881497233243032168803256584651697786631875739183925480907491546409213389729142303414192910509863270634488697906459664523576173230529468878562398931308440485479065653773738479905878713071794982196693792136169473371119145392415090802535634575535845289466094773520987598314258631348759097734759986636838411761828468502943200901414213338802203579009012851277192556804074924682598512998251553838639261991377220623429148985968586071666421990688030750815339635460454154486949684627559767152166641807415291197823149875333970449403217591837762829940595311163154763381379000668582808109423217361875480825001273029305826768073453526327247910865683359512985008503203474598651090865924337881746294709392605044662219181357102300632173518224386355278914288488476115808324479871503310040278029824101999564704027655598088065387881546897084454775017326016692764839027624995918075173771288675955592633815007040492167906205858560567408391144607327273500987846921868722527825205874479095873242750726111605907512669506258536790882261204296019327283614446542513780258819320258085197750579094006626895840349114037921739155177205186484166949588005456412419939142245394893748225265544612002200918589734380211311838384011098838722065113856260944874127224213245741443062382419940242284999004843395938442654772320611776770857354407581715280620673692497267267052020451636686206441970076766489466737621822488962518646619196852458741472238708016725282445530908585275820345643549084608449192562923057996001256772733156048704068865006324464689404736146655735133239913749747710364529361121699192065690707911673989605912611858297539544428629717984769721598573039417657856543948115077823047584566104768103760194901651534241690708369984028085763546711804924481690130719231031444229050493088481172384590242735089162332419501142354685826799046356749196481567826831425660799218935572840505761528771777929220148826926106147285315897999551339312453281826194721249117560224279681003680658875944624973255900520644720867864993687830669398435096717147676502612193414638924360797391416630903405298794178063496729402708555529632030546838451722033177884456801880286575390326235575018518994085037642875143454100260118623065906867497859577577681985921961239415798374515966773579582707464570038512996386260743550306982525082524785213524957380822877692995265882573529351336416773037215569860290949575105497310615774596923201076828088948790679895502416341138074634821859856885187559746586382743108515571215359986752028331781597038216521570255896926427778637762275763722725625541520531015391473438650953493683979167044256780820016783768913962981659907019953204263587430727228559887692588741312712993294045057710385024047328681919063983042354673727344658304318669105174252815370596990073169106609663079290424286893999942821091558238646031357150011525176064198889212290855054731608395869618143644423426453761646836070876138231187235500749916751517016169042088569743568143190172692430350195154677650477105815736401916687287679201468129210876671853138493460146000098209674829121981059568194450355733562920511065208655336056464281860297051703479353924426961207581599514492502348265772004346057305315222497031114069143292798706665656986889765687755960296714237818733762590089149070975049496947717980390964975725110402203904350404920926489074543734010392246976117968000728585196036948885782099021183648386934691829599609112829115852526079269364173299805782050292969641606611409063428895924707691824502957047174295273051382613376803160031337268329880508098473666916651854804481675190931904748029743537435669565286026651535816897727278884562157571166692422193655253757416534664522153049829207012582549821568932455869210990926890930068053077495522731525172760076562628390595505445479936212206592067247643698994559345079375551595369125574402435377154794789565839004814146148682472390977100231696610759687598217895888804807425849605865949078430766669899080928429981203822858646094118447446572823768610432496653361576159266534942362696813974083699935211820879599425887683090340247860641277109879734543185397912661160105391259746497313049093618424287232850474214979196408014801057751023076202008533650622619420960770906979940941814829849828042532458095094597807539463545094271386634562385914035120728854505232894454083098999921323817482985227858370311532931536773303977456345326572126674929449946067471229931984693899846455269730116052235019876423366242433932486355141423328999139948961848873980093040176021367613957935038019598450545034758465271706315820020967695638756867122873741071456188081895461493854236873144078542464264224301698637049481015901355545058543373082052945156000173317581519198477664302781254649326426339320256085210215316709869062530461938245445432427668415548669228681337925427836997742124062785493654671828822247397040289006939873854499663710058142664596995236875073013170432114021641562956210469591519764248393060379279256137245833072034957598587665659436135454784604155770286273485561292133777429211365380217143206116312720990031270601910795414805063791931713849402192095523507149221941428744662853652193107110024496873750879296401582449309452310656242909132383664200028472668610198740183056563578744515840037334324331685560101774693170683795652919927175450323256992735346129966371986119810017306039574487885749062792461887797063830980396838196413323905825195358207552187057741906786072308803283699681908982850766615682577542402725964112595385370817806463637564178675413183403956743212249231240045797175684982001668402719107679425475208293011248243151461781447777597967958945087880980416541659500775783948577123876216901496486919843346035733439467274031526006248910326052932021415972388051334295831122095741910678442938234699445342944061790843361359813954664116871818213446620750398276358305408159318801273301164040167651764061257557992307231702599424579879471872082998429739101184823208046682091217102887898770403707086415175215885802897516469493921621687998509686311578271550670703518537359937768454971361167237056471087667192188351682619778840214275935879050928675268567812790287443429496588822488028360692054445403675428151127025598031094729363597426596295157284647727807651206228323863263072065743973247806304814203284127486300497621688550240413510895777397119261743772989387056124595376553494323526690555793851819726470195553723506691938615132470968022889234019158236192623660911354096903655887532148126655436654419105201293449773889440953341456278764385343491653569991728561238459001721050257441676614078535572718770836446962314714740350388173501521051157646129910131089434447283563332092141327813409780676368676452884759061949814585381238691527636462941369253301540675646341753088120750340519760605584381770325089142994980836672890758184143592921910390650460972215318333361067153385005663545071463607895095977267979543948739173267244208012177521576688081127783282001412768711047311349313912619871367311508896219993374609672481394077271732971757940661534588503237296038600500518652898140825825235950311230024189702886287355388088067020520550373065935089374806630054585546980706495196577604562327792215056016750107090169550681134912397993362400537394633807179843710039441956978633192231797493094838805983714099456784105295225931451200079093286939239274383067925498915531992497566190418678425852262486918257075042574701388858011149553052917614544203479073180536629439198258291832874058261604579447392388542666824525682370964720719294377650918273138785858199040866416145813872861905829793266713581027101510433525907163055902151530020052018472554682671616276987334433406927044293750096266067689833101704060379790065011480042733122619063184964883078082067125825772790515701146638792746223178923746126694772706987479466230027469772292126372102894573806519679801170283188143489458433197334043283901919821190668402884684018779327180440761221588176558707578756411767319811689278196557608572501776152008724252997920216450813559312039434832014994643501865214070589921249780343807585146892385168933022191175111871463883073729825119615919057020996301044495513637286214670830673148660185471371704416849555340014150752153677749501526672696406655179215750983046265976873875142324139046103138599556525875194992087291762322953552599487415254640628966969299757757583939227477469009863932364666462694766222102241309220302423812721684541499271817720643219588647673887132646438715972749171984398195591942049388845613656490129140519929110082550360830087528614182957507776322707122363822866059764811778406737405486841431364935634491590998792513707450933116898394210953234906781140600391638181706416331387016144213286451125499763733169005750888752528744898388773781346188260740287577590790135199734012250109562871267715588296189078767035789605912858408606956963852599304915519049224260454486961173580476340872830064435419430359465421431178532372057674087629389264030908723634069621490581844276506788228966971002018503529269834056640810546802476270757193060017257093116346425199090615276846205883347551898067907182626063031019506664494319167310875989573214414645570367732174871143911498417692250289711373901841855535669176233469176806696246711832177130328124405376828158502566154965598946288055405390975278520643284745760104237220775284092174766767944308593282220637684107895435507365103013729655719920846469561975125846820939848215535821878201554580814649664509822225203706728015622617992245317355301646615761377081126590919116081447382333213432513063722662415491901207595035850507226292385911744063329806768315651605217024436428873081020740866380463011096498888452302526405247097250966085595699127196777868399301137006180905616440345893650701725511654959762799624574998740944519653059163220021034010135513843141175377781493083116174108188032452713588447888380242469626265562206099975159954553953068273391400227392672213873593721773561655707239368180768675634123670852634958768311758778507064919143745532034360166575292318099940915094593721992370066786839191611574083510235977721521442422239877377648508968232836913474737449423238490283470538435854222190574837527914456536304935630759730419155244565279600508100492703028219659415227714434151779401595680635871773268463376092450575765385703050663946528038589441905572358324304603372812988181302715393222267115790743873348103055558346329934030313658677245570520956205395246751793477894475446051099506524962549034237924719840980294707426663523282667261453849638096954557365307918269901876069261494991385147761273654846018404079144386963516225751979301906485917281984577763662666627392935452905448832874087922104190130044940148481285345010440782174296627861430903258742936742682038605643507487628797603641220180904394492119992694045433991552881400768810392303655976782265247847077238793406762830100893510763811850323656432629045500858680298086963469004255701953561945580466922119496152315794964053062918889813391227803801288971240166548445645573660466406593074999243684191379556484040184031383382097732780279128761611669000513999753514745697178783936869358870387886838121834496956716752936762990239667555720736752007630298573860076166959473247057039239180523301434862022070323441658331745529814481192216375989381793942619944195165613754279042721759719479840913622056819274039604734900919521173906989519365142133315600308916101450963325960276566772157476041088759636139103193663507729648653700938277506444058771598746135584424935894083213225681696124464993542238735186868330272626831971232703569487023756545166792653797425317135463958080565712431516378499102423941890400542890581269098334427237168542063747354285432619775438302944447833867533108319428447704094894417246786070523300621749537644791557409497886531348756741889037166311277606265227798474223527908219314594235674150818723595422287044600665411916542587242390577450336362722743942960959938061259595428197490463129184434618601377471606049818461085916217389338136817590630215297350952896225663165971782245420766400983437700058764931375139270152555559988203588505216784970481284904746058921581709525509071956333303711645847448600387431601195215918533233445564105809343973694440975313490617721892958719601468600145966993875368336872593018778257858560335483017110622683582901752667996599765791277147372576890068865252562824296800563199752198994396374603443534074099784043671890687161436922768628879415544526342396019100655071796799472666206213690288907123013364894110713854025996701734639632571268909765289057600453123793383537059148965592339634240712215119826225290869787554216130046336030964713345096941317079997021132819520283905191548760595273475420397825054088398151870397055885054911023856073114048682072044321102317998179890129151831900075031405232755185751856922336373985641724729134918746547450116969926541566973753301360460772838233070560283939064348205449948811625172034704389138324840794270114990157738549478367911335759734949246679784440918293323176018137203825057344730817941242871708086473162440228505151380940749532300962005689092390318138647168607679016006162804275828383525808552561837005052604468413220668559237904076817523593418032640950353202124836135233648212777937565810037856341168875022122647369052715592407463760167589808040549339859326499387030972902278420822210614095417067045188105972962744055657553910436344446175492818915939688587323019033098330386378836427688811469497960091092166473213602409124441544792147978934217345473311052863052165342595668293203602588202141578219868469483106092649939423443808214639491243412303869153503330430132030502786320632971180143309197297725190785236665865171090065984241559988236706031755876410178528975672715970571450877023839573351792671396753446395946418438407479530756844425677025160567864456714844605609250700360974568778173683522859726793485699139508091477281583455256637964462543855760758585254570431151180184924681811770290171296269607059803218827669950260064531803923736732139731012918666494031322453832296932167223862458565763791565982963949299935501494104819741780765905476271708725489139428086967188769860444561673864853505492278414359877176025360012829736630835507256237019089571738937562314139100106495122255374643171273335544113358405404158031692420966759709714971145441294179080334742854940937565259421355601855018434606056309948860799177588692811948045221736071038770363718372009744803968845269180523805048726631215254580715761236552492932564047025447684158448809935216109246526932105713687175914706798671725681040880862715707305537337153492590646976187715812931537284454342193925096919474816871994704283701695150486861967076997187539352915566531010633167333351601806393238910108567717490353561683883405828439983952858750765423956804098865306146626969792589313113979961167086551689887726075770925840120899109723107408181264359912759888938205751094205239527992935396601544979384073783020743551983394610811185642594935156607460654730368428946693334110481754171724883087051999532786132171424629437539312591788066963101092167510483841215886236407404621427558588997502389936682156396400482419604175463401708458037629149820359366002497758791323241496461586038628736972571684670515884648456214541702834234652661958082837246557130949378010645940668073142378698696764191198069196240305142056986607647429765750061365607612435368206818575321153082780142629212450867220835469431903660555895666750930780375295011589217541264001031052203100542390352125288511755122177370398341809487486690691479493291273580723561810471568202978942024932987792744056571469470659845555724421655215552168459135085074108846918788616240137259020560335717268189748068927966046665385105241861060241814141312396245176626822071883859205150388704188328249292392896851348407553777496231737461201580612406897353121812365102199238944771962959526278521298963016344525007441771187184740391214098353141953932663119971939740190509601342320173563466658536679740522248676890287840093348639186219112757324649102899799975836875709793072453943760313651259282159800021853803521605544120304364075565499508348144998600366220845438428608884997158133895521901296512684395986592323707360774864706578003198874870025518203969756595657477508411197839042019829847688728625428882687349068410897033489657730948777753121715527592771110004001269396081625892017489915001418124094397563126939501277967621704235953919305083071045247701547635289143326252904116303203697716659994727736310415586294051860790461561243050229087718671039440750826504299754806116605535921786869321696725352396658518785869177972134565815439686242371929646549424050475659670388477716736353941109170823321013782157579982780889587461211630169992237889621988905387947979736432413949278169086809838552746403528699945151914806021655327751321437786565308877145723451523867736277352871581006757409286071654155984730216085860376607687374544932522341032138205244447666797744007819716895778890366956010839647730809735991029218641314066903222563594825523882619592422508159936099139827335759527055158230791860348160266262730684021151198842907654871012457192894724503612813797978930623024822720423644763573238684094248985415411348403709856277447923175702659527517684501991640007863535354472013170998413185717978850535394437589314789080172520909290862294708674585275218424944046120653165149453330637105774274140493950784245853559682362392386775772471125061680916435180713378827314157898097875034130391403121670569937686021674848705151978188492769165426368367629672053838270430095551845862737601098061291141191306045254846591930841038924885127170969926728244166929287795982690192136329216504170732253143776590042115310467176356993443135546700091109177009570880839626126444516031390490550195703186249321845098696356326944086893124652921750528093344823632961108557095383553195800446256899131283511699701151183048090407811980885308690783875358595958822224947895187120766983739650243829049894117767829535858976516557014028398384105184537898001344853414046674197657903229382066806233958300006967660603566475672504969013584848634732962889358420562437377488482458603333708148743947501109017716512461266529289533157600771497877223099721181131841469847798194755028725163344964275260338213915949585396795461857401936926855994084811917171844995621694036110685587533032603558055159045216858564665630138732022536611909165358373551868082112403896945193054687125782823781470443946802434134445911765639632996171250173050524025926564787511170874844144352374164676267933853228858582876827133755556325099343698613989163197380370023954787530488214909648113400341963770326619194137539234829163250331131640276350578928736558524088713358425656784803076661148705617567870083404259530420050879633147244627600807556663702509897104019973349852126472937468657426788259097284920521961092460805404175222463403281248339900165362862769193435410669785685821381712923176290930335122174702784581150552944608721497645721603504505965170155466529402478045486702673525525523030742278512610567432733784989845866588359292988556185223304514304766395239749378780036884367805271283881918908344661075844794703566630788587249005070328498566447994997987503537617161227363983032052463911711312045254447994528618862556891447619333801916105580404395030108337633227004732740389561794637545649813285063138630629517057261421325071605556641178473787170745719828340899358218073725402758550942435176112288211179944743931917983118794321992829167343016477864597408728234865821684169797861615021049132688697834328370925816791966948569690940614901244172167756924822180924278955332868257721125273498189691018401554136551388574873797915858521479407607156590247379761825210284858215298825075858521557088445701949916526491884111653379358121459080564406001453889031013105125461963202964131582532889396696092042486540274680200563961503880659041219339382212345299772811656397415401681408201696765552514043028931279410381366726659506416307427769122592356681732926900032781697210386067788238553256998194839365251809798918131542826969051317265226483326403936185225521587734155179038665177487804645149118157659997028176226918689751426165468984128348883701133474510869511194465875274272246929971234684563908089137667039265979412109800759556738288192326444396001777713166154634695754108426995764979136424128544905102704863425093811725600134447542162060295893817988037873715423981965738200789127404518514998122199502312180683306992436780716755210718575203781489919887687659832348492453021219958546795249945900961248934403405522890674735002889399637003961064467620660574214645465986770609513721026889124141697408375338316463964471114556470882673702363854156744569102210475788017828376155725597693342891089356747685497380201739509043072644678947113262521203690507944472592861712257481057064417731974863095195606663869038699266677266614564126791678880937100002665661278319874929831581843924812413440115925685861923506017396620042482349887122146668144264577330224241192692807253389402314905072079204593271935353718951682530541726351123495030156261582422880155483454015548165806132897101109321083761992755017380663426073625359463408398215494024975017849013075697557072643508335409766136329368375924473551097786149371058171181990927742642040834144494284417121079937194818381414753122053628494622682289639030150152753872741333427321806187021202828655739730357046529412869757936618027388278884716243950038173964509194959531911184819614172035173620891473325014824945171538200595587280678724426773046160105276354171373599491786181186236204847558461128896810761849291697310858007468808344184402140862275422751786085952758588715364720858558939629821363494310538624971075476750407907849021069002132764530361598592116023863565905537643914379082356838797252500314051300171541355768139523847439961892930059373767500188264486151363552292481549226466272750145453459210907985202282800004871641931581816873273602504925085288048969698951565600700246306542271400454856111448536392335130222043900246483773020033263010602134790271753938990425119903160891965907177465528316095058929855472868665010592834133380684686873491447025183277057510196900965517305139710129322604549782435069049428306628639531623805501830607260395466979073797948039360726846970720417603774166026647929774108647264571895271357746902368934570894746762800350850114389642900897489862473276663963481863306867011749227906537095291385936599065687233483275009476568514508371834471082617753992762912818197845712862362779665190562823197623057787197375249604256013242957840656557800368235293267252150804516239318065007529840106533066350626824445275010195970727889268586213646596247799333774614853959387796603574736818592883813374344914713256402305235995156086673225865034919656884314304863969665627129207210775960844403323711491203668698190324696990755746512468639879306830222753831324760667606209385015536739328934813539471280081463444815417006283658350052720885763467253086524076076141555855862919318898840494094327143886452311924378662642050525720721202902145634710386258938895082698057993272065900033360269545163781964700555777645928643786061680938917921267328011492055825736544644455398652251108478078517708559703304232580394454628865813225385586154685443268270928533581586693164689335688955610507878013567840379597838091083270501605089365511392959283026251089507877291844208417392294890648968089285430757599216856187725197965880365043228697366062334068724308332220881978761850343710886910122904206669603426874533107476318598747150763606467615920204346994461344914294683046380445511398865542595557024943202608260184209069437770816914286486252439412245317165463318273564744019485078808814201332406144181877680787434145828793812795520239047550561415378354988469508772913142961042429906174248868303652070661844171562663575372838081704319859578940882183570229518404949048606742487460239010374924983934583414912271860321652408018087404677552582099509141250853888559567255654001548683313080881654120878317668845991960238586446492500210683234142902977981204449614662260444380118820731531807036401217334317617617512477126638999953665142959272003936709925953008802167605610176154325439570039050734670942035198512989569913189560550269350881034282652553008458245455794134024758139347638783741583739529470480988066532475904704350685116456021956759648927369742111509396512430967545999423528121391714497042219232496042606976972712474734002512470310512181851207301404725853494085458283738299258770480625024134365911325641429363299794017113709779760879874783504783890721061008028096674654338944132920146323448884598322628292352385351646365294751880489450910550983241958313807840844884883162804501989747508975314213239379260009415836106303527643389615108791309862449584463708691720527346579950989028589247850179813535335590001421142525350276260784492533941703642430654311536867550081899117912411731536904030441832886968756749291485275334885034946774363483928095728159007433076069173157728816924591083653523046531086177315975951087999068859459355423038908662435411356866951072064567472174895833795244122783866069024218102779498679531446991241733859410032457696532355590411817740973776207892808266350615485307887274191282859103703410888675965629657609808062870309643618090650330840347316810651311242004015550095611547732477329600110616893806772156790628448909761394269984173829221040776378099763041907045885814983293663284091230180804416577951069759982359766113396411949885996326485265615135779868435969017790634151936992272345340563049567686264673649107999880955546082170722939639014130914464853235352557306268934098159112430688710475144523575458885906960277724415673729122459884723836225223160828045327390139875260905586825984022674432191067584177221311700248748260289610470495460018717824153498864964108540433086156820763553202148003123805967620502288420782420553698833375899163872446334375978941171020635334046251051322579477094208582538660855575122097452942404849750911257270219465985227298190309373459348789851409522128365203678101273103761094677954919688684707375813555479596373101338591383692071871541720621368168294565454117196412552111356321987615661298418302548626821151160805002920717914919383898576109867633863736390130020351212417436048612089044496875794375732850667567917468698192330337936556831383210249815407498197002429347263764153332924396533407772367282911679969853073912987666602227771877071343213451771086429106297164799247438878672031638098658167068021522860997952743528467533285683273928272246336750688360804263046114989095552846450242817438146742089146763278984283287306332447457683209909633197378533886926688888090953649565090206437253415234601436846620200951347037318803943456171532323316090822411575001755129872656385071869178571408921243615198770558504826424194900866647789283803955855056900913795201375887496450884976721605826379506527384987732326342694595991339542377938910589545515129160155448051704385338477826657145568148233971144025452636018896508443458161098875054905270821088863898148390269402118691351073430521678237387570456506539053939074879941533239128190293837132303438759770832882627538228753554352754835006448071355260799918973636408152453941197373154844156757856011080579708729169231766932789897189957040489184841255707639739913522528095587143225483417089584606314460134226226737611511426301057586974705551330029087326687355805480605458545806827157657278535678820717835012513620765319615879670457945472992157136285643605996072621196768258169053004520544786003095322468903088089063174237010593573061142660810361972372852774908290856554801667255920752314389606188673484672297718960196682138705976901456943287586509828374804714339897996478726940438139666790017850750547944325340786599891070846903974978469142091017494263844270123011618725593995826286253521323568060477366515914641042367637609939673144584533437126826495478641094412093493117166178679389832531845732578366578357843195326036426979142366057778850504199663053903504225050136895464025534251551720024943965048433243605327026126717237025884127160257751967367344642227363642077314003340022558298823536320863252782372897573330955272307714554232955883116021550510605309639350315099316428485072557720501990553928031786917851439040162834677656060832996057077600226756528686393211456945134338658143598905180270917848624348058730067327756648295065982160172601910550657006659493721140248295538092936307207154539239072359129335099579782530598972159033182480236802911844100690402001753637199996795082040736960850504894138006939883965387422813465129733723525622876269967549262988670302271598802359168415024164707897068839400416276328729280405160982295111233354572140611612650907866753166409139741839249314199411880353226188062946746510912857061785582631451548040111658383945821554727160706197107782931208866383476599516156558482459471819893906295909252341152435014784188135585710611986952217969078287049620099183611356908753537957030316462887202176521911842427624616538984920510315152724728038491690084680225227629902106131012466976516486966674552693141467421308256680876481435326617286637835672316796020017719662435208739804942623243858607858251430582656982019540538498899175921259752478575291021198254848443503219183782031993259063714707786384319332722543908121902210157443338386389650828381384134956109275665180990649378289921149967419353494881667316790739043743418016125004513314186355883968893939557229442371213418652813407214366249779771993267560580639355406535187570855492271009168653613318933414838449994456601942366645217010849130621369331013400357650710996621230283293065955972633526021683839813997781546639825894011950470793800574783136071031551866265741450690999122710662872747970399839237764571467065737052958530892874706438526591615961476173247873304446940679840198311880527466610680638939239344793169904366550915028854606633515055759161133678822242987909936478072351160213400173875376285962299373246436497454436397182469607474020952091254780749047489134850339685775596539304696072249592848433463437680715535502702318701698762940697446918143200371976207711373213701823395189169458959533231258029464652931661785569805955756345271661128701878912400705038856834448664086423113078445781844065294733378271101169223555742795830599190236537311154821359688047331941323119200083781681616768757874167341034427255609077948554593897133650113878961607811297465646070666252851394252914894221718599471017201672076584360600292905188092643959917270265911500948799957382178034957016287566938391109473241138878681367754133044712585243008623855610653479230149315200656861859850057792587280501319503735669938570079321180799964350054164381372206198579855425885629955883177418718592628187897571045668676241332493854610727146983367591566479929947597399563902913131549590942119488096842825633814165767883103138514375551085968859175794482903758729005819316979909452004037683617210639987124187408317602653398360443650713916257948845617667101962551772838462661246523974308929716089512109053325591995884447126345231493083340730679935532925202561288513008145800567261763022613994361080924921339679190580872647430319354850600202078275267839475519284947472504393438938369639797571413142760999722886816729617327059326572655735674600105683147917087195251936505889328701835611222505138151990125662157340719915423505650435841416961249174985626109703917342207021449463656188639044889571856174183747397049441182801682848171468757128648321123219687350777907599642569263805783407390811253339482168071639541244642523603974365632981082245610914704741983328986604666833611467689702659945620891010605330121775784379471201858529233324688080935056066407631928367346658487929483329327039088420537105444272377314095941884785016318559157061381997245313107092407759613665654162200525113489645426832518795933899206129163064525071987422811017712270002640540208205485251105802795419067659752778596546621637025951999421321908535843884257797409452997818531149179235580777132612316152462525009745306184923858524279793450179061439842321622516209537100030276148356126338344202278413622593491621231098604495010091530361241585570879107483370068325920713907960379947257722017289638542885080098560381385549113297889212939294713967933851355463073211636119730848633564426292219963704551097442206571652734986087605010181124783440821456190121892928940152201625350228000958770233384333065176236911291756301647429807327567526049366475560214283033611640711791215373377542423927634594181398663583064600530088694318254472766577254334032059447512122056869269029840946381603073605049688245083310343703576694221759779540510189699707083921040435376588392518216025766188592886276480510616085041406321905623241875146053566866161931290052828842410437201551562938220583154907373091578245949913285148242410412486776180919163099052710675271857449676214557743152461883844261661842179727616709753242066067609355643259315802437214810060474432655696718827408516064405562379136716647162767483683040923708004849656175622169366736289838951340105953674209352103881262056272511481684999894271682392672300277642203708781975528427280357823507721455401657858818398952597174126958067306929139017426367565890462701363060705844981275187470107596811202395060647535712126308236708915296680863737875456287869300215401978994143104717559532396634081475079469492791008834732587630656653320063646812220011993581029506171401798550789768139018440434144138083161984256035689728624459014808935282578785536028011159363624246360653680292923859261281588801821035672117328578492286271014806510434718572630778759586599488783519953405331105335518851224184160238218866026991488445046682129945736889599815168186091618586198559305927359920052243720814045104671723276500568070717097994854251752343284229428230320512424828490238737932152342608309957944460087103292787754819002793587111741495158951951155313829137442377652479728091279163628048507672649338120932922509154364616231432194318316029369907204147995824775035685067750391689730646587492175931777752002889907088699218875697180600756283614671409560510625753899377910570095562330543134087255692986901082037154674468322400417571355310306684198202054379153505899934305281460025971772336559170604237294368393704552883047995665358688508553656239438498372120882886892760298933597145425555939176235557355924833197917480810114486634208729789033721183917359309023810557684356094066544289916269036583257295656281963029262464520020546905316253448642527699343472518226495386714144708710426313650782732222122324754152448027058035219366872810311211105593380786484844970283066513845042461916150771396337259613400475838225995844143309239635215698307555734042404546720679721341878995721776730609458392886403557300176460343609326229260089545974215424602007581775307378963871273906591251429301697919762138514381201912527947423001163698614222452594985470937024816361800637313059821672803353214142586566398700371317036553993472885092466571883446187800763904514854825952486737210038870617492997677679636729868209604572675309904721603299743387654025586692630843751503093367399426554654928892616868184168304012670329013843310142394589476796816409483050784666053207803115123915626589762928092350495286602112747555141656014889273860399171233544446264937243632365204879163887422742300755792608602426832295432480383366283773242983980540330010833248633415964697053982407045480410374378963754613784248173252867319002713170865607445023163434451531214778048360483946868260136918857039944077162339476199252966095486084804204799480998151920617422048395107308023545169476370297039916906780668596990085653539264982730441042346807959811947613453615381633665731882999078808457979965102834669111403312601825977705936269539120858348016366307515762495709135008226460008816279803661826145532795215215780979889325738280526253418638444447926742070224009810174867604847861653209814110705037240068341999399286704467173160309567912841501391873529978976512271586228297021816923382422808503408383983751588958970715509042645761578310006901094507289844831855112122214326684241579491777743340311728363247839423607229267569005659476462496415761249812243959781670905776106714231218782234327305775462890861501417449391880250761406044802311096943892146184019692872453223553738219412863069534070191750152370428639978952316073559039733310408759068290167132857893070698757995366992566848750369778407669081981554782254017695615344198732440651976671987042709404385980204270164277634613788063933583120611226053590753618553996783594406304626074414221658907223123930736271984276294210414367192286066454482799096465235606206834531035100003933533574764864859655032374163125047316732586496198903327460529930478229226699743264865866425451373091969635604367487023979252067920523528934868288304169115315142229431357325807143611269295791071802976158380620397773226844013989011536482477786065188652177614171581201941111252895518055313524987475043797807905052334200640228310248859493285326642369112008480901327347190745050955994308254605148135350551434007085023196159435333187933389660526295342431001514180540655338547417269130610352894578100838348489302561190797702831836194278371662596737972623053920498439076435196363905043933072633021917820652581385367900940450828539115857382139642102106713110322366923747735243180742034372712787657370652802174419827027519750834001374237273044010035426353218797707680569215318871367566050951200848115822569763680074101207319681514834967142078583931446581443864579452759984901560561279279796194860385422408423348910215826171129409474169899787896723377877208781408210010768329179829816226026123718616728748449790943305119877141147904593185396733581662500810387586885852421910850310694752060446517850662266882257179487756173764185343842461711499798417522325416329493864899233231186452537863478121067773859260234602639238942983189713344869777120508242293671637403682671002006674520370199066917906330503705868585041781900323594359144764362857320850883370656718605288006258560645248940386531491547408093678068981181188472853947486551702167414753004852175957629257975281770149102025566581195008991047872594981256259948375800550980327597693888277805621877029917498169043996426897053438456611459229726181510045155981718051572720660714119274479708325705954642469773887705509697796969595286110451589754624533750813697981088414366922463608606781039314866698148469272971167071259078512692451835452627262980123095803744029757528969361459300164075133825950901341741636711086970813855085922479757857832713084405016173547872601035820280049630530270544063389318393782426467673333671568249014282923839823648662973986411711544785444860041388822640473960639085433176888702023737052628563271229695656132424089133585796816547145446062033316150527730404032766925408571675925131246229201236782632376772695854796846855186239255261610683188949086511051056733110376816194373877251054779636645502306963508461910475115948296227409762512729281367360738497328746515247576336891792008300386367343841277168588553366656758767131026214528688485292664048318014911498262549615453431291571609815100843258553486316032092783884732110551104848383576646209138105054135387678869052890260965955978494304191903723011644488982271397496195605149945528621191902342311288184834860041505796233863692462947673587074617332967978387243532665902233463337111478562136292293926361972441572211769921383239690073464767813977824579175007076483109251805413941901553394072201913138142623921799736181885797941971683731430493755282203843571100145660923431748801794773273573983742014380547412661559289601091991173505233923629328413267773917137630952891900549027007536777786639780122466552309595383180291545645950198902045933922371454575881964064843659082467084921106874556081590840198140434565175977916083467175031044899811699310389797214613020570730109654432326165756204475811057636557377784722813147139557543344015645140770372441941772632810676497966662119713451351662200435592610515630829284561203542270597996506868212610911236001449009178210281700675905841132876006052691215103397304475750948108499583996310213463518512201734302964955386462060716545785659693095360091484312376902912350932029252237330979307610827318698172424312529634590541746199271291016064264802236468938806563896775126474318182971963303301192859036145785295130816282610653259195145687104418239382348592483395932613403945196628396020287091120638262574772208012092330736705793057887692316785258153689683215786855656626856579545120875193782021509113605125298591847662678881113758037276652581796961378253140410999112095952819252357939673910581186863177026795508829289338443270177096078205815587795684329615544985955922629400692409094584207901332609904862345061587518280417699073039722467478667066203222138369156667728071064143047399780580087235309936373099160317914110989638809287081656521375136787691200704163273649538114929018629101589650463903903667134300517653420255185864014349047854700919855444253163122654901044172728581309866355443256152664536559958818573417243202330174580470224915751064570837670114615910830333018136997092159482491974667390245290396430666365472430371116723198549281060875106674749517116197497372735990262459690599143006810833993182549301947000147596060880344256498598073370722208605666059655302452024377208710332689702753837990309515961425632724399710789088303254868130400584656231640069085998734660169836568626823862060411778711998791740223191510923951652189854576435143428967064258016845456687013880367775008200169137969867162929318047383826412010930173790550647036170462094322210340467040397964990705668528020609141729577907477384240602957949748954787131179188119742591654402626336422008600012696803029546929053532810135017119178989469123677402953240294185677827019754452184987688599496168060674904482570506198164466345004033843905622163203735959956978991861097510702258877410036543968245714331597730467760663923404750783756411277586935600222760417114196227682193260676285994873224989505003563699708691241637381334280700735434511824437609510187530203506820631859430059060397609379292109307392766383911827156842359217104934570505263923086219761842027627143185070547673437455754479041959953803323298506393812189825176676013607196741282471452605444972814500909731159711154087698383085708681413928798668950518953438679466332081865988975955913749378849927947754242698433338455496331285246683399320068420631980070999468224061345554886027320338540035522018631727160978663990974274015352103338185305969631709550545491661514857432790778221712384474449758396754073527110655713896489848389123090511347762710995374983780835357885304805553738363472981285416874658257510796925774060744057805170516141390366633748634458826330547608691111244122717345691357557216873934651807293954984365995300675089663445731232571529196986751923234463333402795410792643385023816125228589376473289939943852498674265863351855473328642893661383398078309225540744080024634587325913087401235033819628728851482256116523698244762780928384187252379005842693716248237997634874818125743303203978837662780759162631253026154890776136916977579084724400772786176205299329379782990380962689672799812486267345578284152899405277020926636270935708085511227007343368592197399347239142345513307263092672487259212864020759775853756758354762461747812467795215867626780479154975580086536832232929296233712404206842529482066452944073620444561813400056894862319094833542893229619954704701826599575687257637651053050779912520954571291380817198629293895411741322301476092693976851285348812615187225144392444541091598277031622601182994904335759261407816801634457367296058981280790593463555713995826100930649230762503596749029684078879369534683939346587613882788586753564140996984427069554405305161256948821884567919193270013593297437218843319554257764823914569082923496662037665672198316634450409168688776195014150249637893322909894320255073605764634259775953992249257380830686474175522256716484156391746610680418623539134289085755945547477808235404079492408299520570888966493005850304256708800787518349948267109573492125455054672326799452337435353907120935387618012952457067839485759131951329974810022464593217771393092660076789806892916700134377172125761036321144103693363801336198367299085065402198264520148043711655654061360804883575262057491195388079441046473834999188543646891547253759687084349150990015512327307652635207052167103338026905493454166703495025506848503753600891858089826746107254183680507194048938281445800314131342139899739720018113775797490449473111457434867275341795653058149905651164328776721378872550858498674202624436219974478942017985969979405488112646365122683088056959846632070301546803215344221571998372476681894768449729140951654801255542708585903211600637823718084626176865921590165178706188742529226433444217889386138660739299742871588265968826623536058898725429593226035010850715090990099237968729396775531962525750573286807057556664863065119019257701058218637341946531556062191273681470710187131986102798742762919526661969490780791187115770596897048493051712524020647360616299302191805675435990391263692652776205531248206190646338574520024635024268101398231866429451346766984574615334893624906506984641532939387519487313161158104434094632218226531449972019937445777341611265125718733775984610602734506370767924256673133244068987557786980905825224971940312938074048525730140284452689483164426606431456109820268707169897874074383513703367147170366427557462658644234497713346735917292528743046544501209090545330306816685683591579631279225262313329649226346034674309438690266253397043177602111005276707571116549988168898060042254605512111386383829244969058991843344792707322942048246112167419796905420261612102781175375372602600087059707192935108325973130861311145280202783715440321550423297223334913532940824554041895169117250530667664063068969231940860250769665928382648338524065976938458946579664803069711527469983070922089589290328746263127315719723946975494998885464290333686998629707305550074623524263281194960373163200381742809450637834269889175592187912829271078099196167132482062984477925713414290039193987054945980251395296792722375615496882609552594831930430328689329760502282873228073320496190570509377590610227183327406794068803742429527832986290628572227816930296660502391031168300135645148809829406701578331066794778769712347845811455045720281163845671161618506487705508497938533898736156505694535860838501616266423988050686446083998084965967833804066940238482520022152630548937312979385984576978444851573599813442861184891616944491440997538090982913002125248405596689733199097931976732769307617988928846752358044679362792577475108617018105060866839984059145961916375442678033912187091288178134095468021045232217550182989942996285426436025705269680718449271796696480244972067619941288219095951135970064645239375039315166428322363568192637033117646933233949043912564506712226786429258353079944755150390371992963729725554930705194494679919358380860386683243784306442548372907006118015373178167833583819982065058692219178843132122743311158074088247768867758506853124627016071583942419709295239202423236960306043213449151749560492386201827288610164035124132165601215412613832133713580185209955817771582236955154666077674821281954029874517488261046201543036326030675281522757987555660807421212662403402901620716039508164331862715037881470962606618872688033726986473981446131325115170281193326121578234415079093020322170635289728149018635908774264287684104941574933321123738897603378532126549856200333371026072685292648123373835654445612727269094776198297338096771153426072260828589099926709247997641607636671486213891928977934747119099783346501908147133826009282851491994741564317612336539748980478620640154654297381213250697422001782306992494173387332977154500500427408000546859875574317279331615748843693382698327065608261202015440468841047422492239351502803877670462788872203478284921291431098539215689720006532691506519641757527664337725824946186016122624459435742220396242711691504580080100016778443312843549938563116592492699784086023788701038833461932081606367655081791648935818147137528230681462542301486795633044249842563545824049507803830668085381323425348456611527527989948870693889125727857069271029533557131644945565151467107094656235498601685238270426690115375181261253874906415126269222882659678012610045880634767581194417798516900955671942784159716387100369831822612166077201257912493110265173675380764659902074887699821658906289354340593615572059124057263269949362026405889358596711177505328435467126849277664670483947313200006416523928522837933504307697398715839293023529775769176438298299226171625700473119779618510412648890843543829147964564891556598945275967218569445446251453874724221787077434677373855345972596210940692207624667712060883425346246855908325757196974588835698852670349245502193520821873633146889734494786510232029377017823000925617134397066241012351608496467228023801257953785845225997569263850941004439810658284428125110708150756909011198095532647528162185120481825451034607260288503022437021278895875455136377694995094175019458620908640583349023052198124627280369020321030027871290447587379260945086621691275947104369213876782794826233226150823345312932194445347084785272875285181759898580097199781137919725855455166034244150394706298033608630899158594201640982699497800266441281802977080187444521383768611048593602730579225369369392536684841839319798567911388776058730591170003851041035378508029829332079641325944700030850769187650706993173314124270483625594942933983556917691830031180767019154992045178114125220612568520972667777947960784927596229950254669471126505712500980482722666911261787780282269496183375644649560401746345021988955598069317551657491974474979249119113976077231324732695036937355386000234140078157802618860334037428981285176731672590717689214512370088393729613948222878707999303263187111404927636322052598115827394356881348104021150317970759624099863478989646730259976371599919935141269729637054087691777704172770564242855652754449482996180824520313712959530194492308134067551636707390140619412752240984851315611420925561323501141065306621624814937762903325789952589521271733053487384971254878261702061449732925965730177909403233250139558576512056759010968370004097010695477100950964398799458316995674355212610012000280524511009395757788375679781916567844854351700284268969870114369650988040072448711380712775174767386282369790820166210939302732184773205466134291900038900603388000930256248537643142095563550593231472885443340794537181021747034013372365019068640418229691145658843754205237603592693291454360521307188032545228168575360118632033782897300192953321783606652674669421018118032236344238423020089858184949670026949116723782870627471433637031391003790999536974732954955721872848437157942999089423150704939274355267126509775837166529622381755682880288377648842324775779003074257962645882280592295448706946286964471257020228896888927002784313410448727961157107242712125400306084673076829632271944972189424275236177795919965585235010995144600646105449465201748621100866042990257864759135362663829042350639094438109234626914228691802185055717485905324471954600723611228196735208282875547749567697228761710475389800789786895212172194091695085108202764213637135875915192117215820441337469163417047946613727579933514299028002160398605999944215204850965246386033381660883330067808733651340167423858436434116662038041277594552440463111859396010726385168488659993910529821528498734292692850031208057999863840398778378930454505922187953193125356196290536050897322462489137253478032179635496186786898185194581638594287956075194302083944751008043605119417612198095866539574830949643782765839095622647955830475786429432201595934700761702908742502135531428768754539301912854209942430427277051560851491849884789934582559456406350139946893804368480334765402258409027345455173261539888675210376627560609341774902295347773573562797366692311219944512797896130964474939571769150041123002050280077565228522442736795918948894257576032017793183460543562205751423242317200282258171294769540722352115413821733506349301579561198906506852605629186616436206185393088898963516754486740231844230986609936561175130770778142471288854798231269321480850975879847489608915102180870919092192285350244502919841899559921201899455629535818625436261652896358783973330661211248994121267280278104907827662269809058473608411630524621839738478517382632347227779729436796212346464993533727754494358880288431399536445371034033654834158162419211335507535500485253544568436337641409962922880322212528550695923865636499733625087858726944025206949882514679215405368318063706882409735588012893424313795434185717571645566558925011708883167647986567919319934385643246569457026925141236387879817347924896261342478082017523581856163658171729368988176857732473623154627131738518301197120095267330005477462154725372861659088945445143122419054183192325205520094626017660607590220849312833811788238125839295559208720712800806852784272291961545408418476299080815296314291291301176346927376207406092196182062989327208366358533003451617053040919449194852857027781550939817717095869274319904242514702086300282219857274924960147585308978144784149116829037391861453254909856125327173165000460059339136185207363901616899676555942292905587941150404703354641375837378621238110377332213790022657192384100637770096084741299312598658144654042312196393493833367788108553737750893020039819119365707541840852379904426207463968173080258801194242535935337289975005279339117048617609156512482744071148940247718935002495797065005334381277774262401391027500792858442846414777355395908200136457211326333776053284388404846617001109512326048822666952813590002143067861428441681131145226718553953719831284672723292913016618963120759999659884773617663976813155118099426956886252723137332873428716026975657791387137768925689227934206953685047869663303693299883169243396128180922459003406482787291349434500634419598592854829749546472844568053240966808953739410695527390069060825446811065360229226448006336566778415416344963254287255945777065623027713996929934374405953749939222787715991754760002150988558951375139217852193013475883494302762671960698788727073866363312079668745989901234130690436780188858026392654880193157518980422873117382966088509719206783284168138798132525586463104847575938495201951749335363492820733557515586529338529654259912842225863587193546787304873403358332429209629562220850702197465440701243586068021234538454622060932391344065913097506354918691954877109924645310316779847680416583231804599862359142501756908962879401878732061662216218978666777335665808985828431341367295419075572876180181708214888574743878133605604102826913168288338751975281522528862815708096838689374767622506746508014315425337567374060166595367419475852858029493725009982204990463535142557477129814614204761032421341366739988356028172179968823997493656504330772151866691378209188138432108726313382775999458695815956288529648804790159243218449962877425039214308297478538066137728411263838835385765957097074985089204435039554948586410590584271604242514685233736956626345749303860920629857297673956052334139076529959080428667509200321415881532169884329040336608940605595815795034922547835460777377546338508825845854248491532626880553306323000712968550491767384399341936752656458401399009133294763557216559109942728809878068849039180864027924352516191998846085617703669580247795456254368048377577031530299649005037830704417311805542416380326590767437906546318249621569376065538217899248514780629130535572276674526415325193960502235357562510072799789390565372553739345669429388883229563197871580831521738103545297771943070455843850897634386368881399851422970093868882094388966809079225349910812669728455734312279741672422741536843086411880065757266405154653590503544679668491607094105013591579362477087632096615508539837893608008912822080930498788975221684355012033194936567252659897484704938100930703994425327170072699741719694246122743144447705347598444615542746676046595470816386688531857967835561120317161349619070591768885077071374515981425986968498280461883736224541920342330256942838007322042923158151521010763052410823725912162275652140574490355141363675907984051493297121880303729023048471549542193126966157022091696062463297012046579503025016497968576772829316411671496313884010978529154804179448257614702333786597613001131987906298413335313691117999086475157099298311445176253206237320638561359481136863214328772010544411802304696011515258026183635696730436319146262164137085664889637332699628834035275944333857537548581152492841401027323105648154343435905675201074701609864427292077263988841835799831539445203988686264459410812218141277242219866160032142103819403317767887819758063968550000966567682400627885913196453802239134554777443495939767492739162192041269649641499201539664092145792160170644294933164281124333475131506824673204614807744691779911466150398967964550465603556861741932621774284819287364692420393584447144591982571649334251249658242621364807425197633834627058087173258779064937404359695868458536971526492566808065676023165240765065524915358896497531998216755050576849645583631748998361431825096792378831979277057341176095279270692828088971508237313123202651928083334399345858031862505265782415884410542262535955817235309704037876965165254595096742964009729487146618724417705394135186237978557709525880669003764898769319313963028910514267488399468498544614703777161461879053587251684796881704931118304445441748442841873916326457949156458213363969912539473319475969526877875092580810048334886256018364113409136758813106609965177347950209636195485977803090650598191636203729742322062029671846720582492156015576645217149513724506620348359548873346006728928841402727156560815182064131277967185484816483499976217015509784246358629093446193124834016082631169424691026979382716967909465372593144552223533746231412335848195815962843356459626893497297349388027868217449999309860189501663507732186236244260712658349125557140276166630293352566551452146531445128348732421043231800876869124760263782707948815122813131812236080781474077094193313445894557752788735374803673978694523393764858276564438340315902646988360478754855639727839543063031900040296626970331394515208997457957850999910447567456539057907686615926969420241743383837038890136730201156645513361993780527152086856397835740111861168153346293987041799428109856510862455317141594648350864139589594294668835004962151791239928368825136361184258956922800422143250948276265136743562062330194017461349860026234431517779266755207331279524321238913484141362260373936921064706767046069339503673284143551440488185545797828214961933738350060364813394275784550471079416192783418341401909535338137031498816023217857363132211172717617225758411570049555529781004056042598087395887268459384380162723862399324375955193200238093784963985600164295438757346510726758431632421572439948991846843032275258580444888406906148008011093999421358467005694645192818917068826788420101022598455083755771123398030375235216328864973986082338374367053305280912192193260355718412497204676208316452451499413463499488665796341757164430918523523202840000777698633326797208092853458539457702609295459311112972901109860477482282058252820276379671926488189295264665214489628184697760090233813298398548085161695038099927592961780630141101818916214430388199347489874531306229530337430149751742900934734898807203467068530310623873908391388296848657672076955255823395921928131747012277252825999124252436758684058550472450324928868419789760535742405091961220410061384816752996551326495734792714127050703894350797373838847290232584738705385224942747019060136729695522799677615735303673847956948822096773165567943782570820249096198390218392722692217668363638609141814046411138437263614011647822692602051440042190776610608511434776933390138445763264718810538160434527243848041842544296090706409126670839621446636330887523049363256367672752726391372066441716480178794270814699011912788475101567390816408326906725280960056473236467428977505054622943831053515226459183418629154004841337038480001935299138978686814511964055481976722268129625066101944785889388768909984764676837342814736831393549169454673280615968209677935301149992923564728297661346417211109483822716702758153905589391437135669526064999568131025392490389065956752462659308500769833738046926015513813492536635705919379847495171670605069262266734152623940233798223898372204745604684038919223121523447606435269428189003448056222497701054760956727507118057577812769289383847102722021652390951074196758591109731638127704028339944767032091927564742518182047467664238632004230824552581065858261496560950644913929219480532212150843392741600505941232798526893383896711248871121833828955282731851198021137256080545146885671820135515409392990472998125206451095671038418112150182859884475360511497504392775575724258682325246559790637740360337385908928214190694987696850479064764995389532265633125291380068262123550399224937595544589294565993180743864356605018728769379885105540254819647719127954153910889018667253395566637457499056347679315690329121031310935450224780090572057810534004818436171218627938096625461233322654967807662931462191654670981071533852506829583939724342628465296225935343472146777442116928764843920422480878798738683754154415692548877614993015300241672169203108677719522938334408123536153285737557926761069933425264728972878781498520932179830694888748154098049677389712321467781389924608788203863849626825212967571869389071298522113660521748168508812931702445252578412876530338561859897498774184642475876450923124427510159015271590282924561046168330168791018907000330924602773339418567031423100808334830857459252768715897936381721810507804254958290837234147303032840061679620041028444735264287195015759095562572434595227464878727915776900321412378447078320771879414041065419277518524732315638887766287929006945834585293221055266427567100631133544898358523632778314059354863637060816464552194981437505417995345081834137469127059929162033861327128191011548974588180894865899422439973499426628365494618783464914303622155454938154905447341066332513887270025904262386424426556681544304365001035596823755970251425106289639883996082930447694315668507518195340171985358536081770067756202500475417499674088904150133086302953305237386743096590771476499443991418538708301256205210419616616771964645118441578038799669452454370188105750078014199736722016628084297790405920228167865625160336328389467178320526308104078053948369150703950990831101866857016689898107223513329988303201220930014500633392317257943273021489271181180360325721376253967194349955349669968577488409596639792058424545740846125981322940998887990954635236678537834011355531545117844633181493808740355891985647543609522202976398145142334586049201890364724798384216211149624214706582209865211658909091869622328946692284461117524713049266678933952407273761797974464635592779970735322278720073700662388424754796055197304909766267712191249593097830893198765387186649187039076988712836536002159586572463418345514318820742832509974634839257843010177740574716916533640270168341504008634266528722287453278668738683496771082334053956720937998633077218973695608506531837681210474742927806595299297136939271734942129024946178131156121292516706220214184029940552561728924716672820114814411562361214403375385137786074673883755499846713756772597291604590368108874451556829304997893761696939950833306119409638622715426267792295005751102783291609719936607594248399038734926166329812225136581716847122454734575689627409711235398183190821098491695342470434799748320101818786669867639089854116046418025379283478958461232910963320662860279941597922753296116574290404881008861504071423329847247486716011419035771497985542123016934073951556027100846363137479366246231298146400585505440426096087406166752444827693578206586476395171418870392559064776668693488734705680762002997834146249171214393873445866399948013781771025443819186085368434188594408629043675402305876187617622759358064669829613044140561498761855668456735094088501403375192477031222418715483592343951265419979858714329816081810975642087665447690136941055276858667423541391975266043758441273676127438824992884808275136694397442583581569910682320865717472208519278381324349608655282731528523869747654178832248259275712388683467685660547446712132397300907055322528225019600376314558072491807268529261340765974775811924230951107629319542690893754026814200472300843056873568944484502694759536855127678787988138071845856041439907373068844573909242552913772651369662929316170386285240581080387441650103132533567610811150540490284780318899415130059868391754779736171585410503495664802108251214909394287571496039846622389008103476832394110027207763341607535294031104478735238649633790656765730745716711020210755251168167445075913941562969207659786733212550182576427884754763553677109099943390158212232652462794686826380873732232601167319800294713445287894117572729003098343318499093000422633656912723975477198222507681332014220728274199551428156409227939422045761130714767320500134061921406034939074325423968812137626576850836039728635646383213051741757097658541710272966260986504650763535910072589477893006433025114046189604626214413436035666635826665452875618977663254950425278231568978299849781520686104976874802757703699984019811710934294286724790982486213702050177032821548472224370799157407175588559153283708474646488662056257022685598601535913384219146654309105295096569714655111846891103903705020624360300117382565310636922057057168568238504241714908953691645280917254322998525384823306384898969830586304703077165957113991579313467945744813922577157463652868509539692664355771606317303789800995906232872373921349072132725568007949741590023978861601799206664598066335401862124055278108713880924578909835261738260249936928943775958712228444040701298857087084949561635783858926584356526001323711766835999916506344659507470483889482203398395323698754709435568634579685110998701628978175145435476216944822884400779478212842612010776635739273043365444474535559706737200502488652846915810088789547020178441462104511468755295719581888865115424700268449390464788166977724635649306232772671945274373476726130927997122488906695295374668202816071701667791985415447413195706241528090559524015791456739819855373978304102809712543704797031942104455600756233834170828165895845889239213890161277686169973700765956403170326789900701372189195405039281607468950989475177845030469187366335883555765414116935577084410877436893950645783466034907545569488816901397682833945061927723700164478168661192097560054359017950406903971169387854382894196078147167476081796763013965309231949866986960661159857252895678099126351998371139790997431309965723962954950706505245841741823382833703608611078475867246810091794533095478903972028799756402980121831687441475821115624138876301153385104193352252455597458534209306058668609220909552079252353433686559127086317991200429062902347299637440914350867802310176577046757403239362902717410865017331816626477663272125865874570317180871531787153003175218302636581811196331991879568758535544818626498485268485309929545783913150465791694025794641631807059559443927997394869189857414728963881122369262582976163600971820553687536105428221895472444217709859231690753253885571299236231200280198809337043008866444500722913098208153390585416353029512826954531423556049513277955560302336762316621469349176048869250767973056971656815795930381674639831435747633522466529409162993557916198770897206206993769876268124019171559116912489158410709945900274235113442216116645899721907711343368057387491893124652539200237110663754505368678186540401772253401141699064597468410765468235409319501626476266602647823434243428091738474671202879366156340724563084506968642946260707625970155963808256517546221046652836732896505547561070919628074994456195916293004951606361358181760413218325559719050313494936872756583355085957828235870056018440534853671609075253061758209128913558570680670798958526134569364201144205138341877939286165402524784549423606462442020521302568587404097748253027333993342780035588300317519427398509946572885787039631053863069923339499284319725168942973235539310772127972265915488473060056434855918969709135186467620080115275520932323931453687294830628472272977601660723098690658681831259144273488929853175974907753758375756238350910606685205984911303557902370357617696889944476680606233147956403233274657745895792018274936461912380754180638325865953867521849952598752969383951614287070421133708598545706544732044149636817379259980109827315428942657849841941100394023553851817451903647141736210022569192299846523591724250946746399693465936620313811027694753339293318468909133263845388856497029787757134813807346149171891612405951857634733074763591636557430398075864394114930675921667880405541898375561090808414970711106836397076216812801904997682333048444937922915889598336237237052797003235627755210886395265565046095254205907092372641356520872725665104109400045679587258834193769731826424517069310099975704414790818869305169463892744129616011192671836290129777403231335148753721841930260657048064929107676606620153899451017013705812069207018759841887413357023924009505753318584507550717595673535322128757606071475176757749266972821524358178690458973696301345478744159350050291232763997652980761214349436943123105605480857872711200703062353017372759250257215296312746920914218700593729562625994843216948348057836415563138441716434193872430401540749626711251173584068968360045146374541927473647141402779446224023906437393596296699073577185175176878695956103569760281927848695902666589493127147986458419398952843551442687473556657703690417253405835383087552585603134543309227262956184704040660787916111232190097749060364524460077149180466401137838594312634425332981880738299095223275837669317522304218105304176267190631502767145031906799983373616994878166574171527038694357564661381974657596646121859932596098987993068110894553512960517189795025396304004783271165768104959235441047405028735061354511361235626976548237772049527647089997337755695893140978546535638350670068749182523284037669384489376397015742221310392422348298508005866875990628207139583464376261451472819277489302629527152158107979864401108854536998548259991684255253453094143575668901388199583475612964580978745306642105876860319429235801764600385243573801882772517193570518287162587815550466204428453125980121370034687700415508650457326860795477199844812824956038909889379086030954182985946931006562621223323080416189503323157535483903670508772801822432201198812125520236805546981804459105865517223235956095675068343726958191842019301409772569635718987612316855720760451096678758347156891100513824869396161100320446904659321733524077969320585271151233529636857046062286849635429235163000740170627367420623741096456154230113102531993716982933705143397577563584349662620544020722350183060057034212435829972238060913183220578001872387317506442500133640386353138479908536666453747249119261575199253304832276387660557073798764685276078425085945892562192166762637097341306384976862507029932412441599144162333306627002380912765876957018296359665199792413769987592666389453589913259353892566539038203842146357009942897795707158532669958538495309195569816181331887240789735895158277321486244098989935446472606748861255718818605245223878738820342923581339272739056520742126838887399560235196012265132153694711884870218715509239517103419792944385449714127327739569310062652523994350411946396046782721520147853067026531492114225783016271266244777578845511160737396374738152041752655959991714549800576854533402760301202439123002603716860680667044732617813127877564709565406462324928816127394513183679317995218616314967892129547041923814849292139870433766570652947390876523089808167460931309856678972691913938279719595297382025660162530583955704209944572919944213299455296600024776604360181075415373273221033957169040330011368795918994575654765606094872919728207333193917008661898081677477123765416875823524254498062957221159668294700237777321014845007875594411214727874106745904055160549451395938324768614134450959971646400838760882684208713063120648913980407662853610268143421897755501749096886621350201849608351108055676762183400801078289527530533737582924288545340827912941888994068516779962239880112054086407652717920506421897742230095203950109233715613227186289404338879146827992292286429838649213409746485318129992130616714703826961278829287794509310520778356830773800529061522669013642724994192759684108787635072318996623798910825702309686061896944620422666159014036707373173104455265414735632689505916661165497688947895920848480299425296766367285449465453675648504835759141276546731151777779691923346981837138864363727666959414373842746463600352029563878848999243402535241680157378409000432298114860723410701797197438546015764933063760470756246638624443992657946185187274624011763664537422677919945449397544527363413406696869110802413878735069022562054720586945115307016386235831938255312270916106376767744418246452393056696378420547144539313029328832207103943440561257084812105189664473710145355630492952473401881546458516631606870900011180519707937187344004100979645425880368952037238508632697737758699954147800822690210192334878968352781914747867894243358983028739664499342913042356390505053258854799976611132467499478171406359032929648169399269658592598879871439328059629297238152711488366692483532854342106389048103885840967187238102328188087171170884700471065358784318542730809641340938575456684328140897931270641993291280346448387273261727710690166972831556116144378099388458146125554452608479787484392657179865684100242781157327677874262655153688704350049647552951699288346478773479673423938533214202078536628766340810078532378221412425978828934469319571915649529283300933969281708750317274814746306707652331169766958780330881544696890660810722882086767972788195039148305132141565146066636828610722830632048509522401593003470168750317293133572709565356253212340475969410169034894491995444917294051298605379137164106497775606150690099892719392581159623015756048433866365707045156033837872698512341398909120028750153648059311840937273896762130070243425409734673875863762355123537784840749911045653162852709255625131991756258516936164412879851611365256430905632183720108276193910229268974261155943738087015099507060290653192217956883430351638249599701935150798566855813319440122472995473666374909164471680204887269583547308542633433784228450519537697600836566790470146185524019762215178087454425203977885553238777573690706843637810320112065895216150718760433439021912339784970263433376909460900774092914271167053309490909975728985516905385775145044586774284833159801475868542780390869412209402845394259729009457026172255954159259496766843803654581086919184957032012736180770185667367641138476514220384534034966244722625314650201339800733065416223305497094876340281544729392620574571267260265405916649486635971741861931384638515784632658557934502688549229773680116590543510426035027335401547284799761836993499365891975822556596619890018651043470586546580587996042156348235901352167722297017030963710508161789579049393867323422923738180709868773155064650049395464440775821272418765012778059467569372775519127506855120052739866157741065303142981593992817968732245062878696013046466049361553471110365891735627273585460643754124648816920384338258836549565340958982275501255377163088568354093575472931206434435343237237460729191090689780677661931651319338707008835944621141253363519594520180348249489627593518672592303441156144012669757114142154604286168203277864560616973362567598664182155807396428604406961776728389281538178638467451465090274637039191604110207342098164252149383677933741371001934690328208418721746443318650672187647072477195659671963857381650008084957187755620181446538367928938304986561439360965115065307857707333024060654618880847098009091080082996682682776785439766326912011310214729678116866317501850718621283260310474774818064293584594641418941681533399101402568118141180056507534629257964318630200851370975024816988193215690304665205079445484471937922487728201005157353933786005514778433458061593679345176571922029262480202486526798516193986178967611025594368598953206485010971010454940352544302077756711371033774934452933109795173211771856828099579901736606186928476858429561794954832275414279652304451187478789091357927769686273244855084961218274455626972834087827083959375917495864320753120165483959143018825947043759870182166000256540030643041923859867041756874261879575104492060511589935516011964529495682613328441446718994718463586971015096290839827129350551157643605614529712629627491998942139899781060992832131149599762141594688985451556096060581046793015750555580453162068100006998935228352351817903665346600662983873044917796687922153763802850073526491885109194915477494628509466097801367233305198075315567302235406854029200320133529707971056734742343735184003761407643395781818119153259726029496339344974918837387919513615093991450741488941147336918356098832827467820128777855263680754654998397158097753709463744633945224438359702257813274203842732380873159944305231413858463647356809029813342493020732664253527037119515001269165718876062239430967848343512218888253979527125759920160524007634384129813508479876831310452068190611271773565789302480324335489652431814561870264439688152740240206638783229327559156595019884275814203222242947560410092022194576420366060144607498384625703617587512011708238997946202342881283709203414851238703875523223367043492218496783210596015556539628632378005012395103402685428229666180547700672599576777582979821844732474514558948806171620940995720004738110958340904415262022442766601965106807751617667030677490879747181294860210474379821463932661521314328672901586076657111803304698813436280569387103887930611160453953783355521134589907960978914421064359695452237983607175707470056658346132903962591847907045911949352165843176533654896037511585640574627143476625398168406699692467490788590822123317246768475387187815606574023974330133556312476573054734403959970813592107297508184519364217751676991803498289522761243932123109586181446785916936045450983583784360385641612484647586759071537872590975798645037578564080249528118867670516402491336279543669557679606607810386852415214188472070989091910219433248589954418591164722337548362531054410537920052127131040807873792412785513510840355462092794399960005225329755448933199517449639014581122163650426043175770565570710123165676171834852687441509343301240616014507171553520502400440918245460704379586808403074881380760717802062460112654106736312296291900003129578533366288357308556536447054229255856389676252042696561872363402885482235827130817577409939306437867478301059743460844763957215639274580821409870741582132442230353991854946254630032023973393110054371359370184246230694702025421166506841772877551748648787448016205886101235354038506540040898716982299528506805551434955578055133431047279152516566842171527200884803266652842257490605083475916949908137178276902331790192983429082062741114349967398050817152963073600010899017990188051748378359058794753440664192956458512225583671550845398931117282806792714453415856096674793504712266445964668532640077180283492210576050052390149182395061153521131625196360318955417687094953936462686421658388732850957961433853171800073480072426860259777142555482674307968330225177071287609576336207404502921739119960352024815563905023231879543520463596351414744945051454537533886573152942726231730902900280605577782442975258901458684903966954905403923058733350432326570806503741045801910729778818390079369195647592327977531738084873773695850709389505007524784888422063673918941197542781446420607355815645341040925722998413549679175673982255526172389552528588411905000314982331548399192541531064808470584444386353321675994850393853959751728747276195023309562541823376309745143293070400134817176486189194052961638338467187768171158564300223213431270407926651968738812579952632155373185792215335534540000343540199933885204232312591972365954158685058802398060184369814985674751575163272126391943471652769305011811592119707347371324723509774483869467086345768090684579291149830115004600727460900950151099489471714028587907332738642580552233340430804802788723598148260568986867439662626593807463401041742009100186674670905812882790655817981552917526596393514308207643831177242567864474961563458199934435063546542062776410910167998922928059184345603316874109270820719128481327394668770749265386474384068674122076265757643710119526527123157330898334430732722728069592549981406485062296434626027931066785753280286180271812195567738021132961870294494366927694665658590157704377628833655270165727400159867761966732952815335008295496040499598196775001515190859731413284332973322842944267288085179398310288750420110499181374446955328267572197552183766904858025779100994369642134197597297995259686808764138418683202327069309024956641696745951687720550274653341695535147799287610526552061178013463084456166193381809753457568055787809322696259748488140834912392134262406638850659025132207384228331020616400438483403998693508646542132321559007243079726298265398493789369686461513374180038028138658076941296874115261252404661337449256212259590677851764737780748934807582901363148958928389969270407588633910339683228486168619392260483959411949066846991589466686614081919637760941972829187128649240514121617160310430910281202150628301357055763419464477890020175629123544211442459186744861207751642372533629837788579858465671921370637359933141082436434229198714476104467680513903741361857840995087544387248320707546225474027549314569249872134477720253655731406754730555834987221514882332824404230087157960272318823480659509967318979240712627373710000865078125324495015949502903352735993927954768587577540565347814792813274255857310593317084562932192092844555767658625280738724661317145711684271319184075581941855780196273222720715367080135388831470034028464069837783877204578173947681909254027230479140941660459410481316404270363184405510020149546032497928011711271575395817101981959642953206648112370065895965948674001581669775674511604850828941366462968978706836917956776556274803086207018976771482662244992038484869942213623713923338752961141924504979913532555455569404682311655061288916877081187176677484178857851985258517892848645305404610576985386897346412442388515803348290525259351861926087426411090840781003519391473972949378076204850646934944408684474200035334163630829735416957896682746421144608758349744350977397717607986655682542448441743384285122785449459552493393828023599863145559565772406803519852655134356458794572020356841993524559888209175980377294938584224606000259793614488890460676826522889628552537694117496383627647742467277627471940474446809583583801518257869763231255019820993960244568025391279806101781510268661339482018491611321586091834138653206998815300917003510445971440474012037734862457456741475573689830834249617340324524360185416640747862206227975459149858751911172405432258898733423483960703476474395529847771947739472538232967540942875139420549552525852389575209760426145971863521086392158413570148285216639970754757917900789400017402576895956712750336345211221600153190462653172205706010951359194353339359140426519787085325286525964772487590006499882629073505926110268360731481364573539182757314182479579695293595275250753631872398830676499178414822468740539350323942721762055113652199250431898172904353225358744341671807072423439681844870301001315237229442290969160017151022103412598211096037975822872966144204526045655157885395116403670890709102604736296760441487133742074647396817059969640885978638797856352371412445873632804869269257339520061839800785435563655584291495462218801094856862922434545129903910594975421916566097501796054661911889592508408082190415197156975359911055442845398951819190365159151995530192110306365200332309032536449041055112530636169489307357254548240495072735479178345323856160591703267256629669429906316649135170422181274594017745388022438256309455464255874518234526385738649996074782323851924812918900825285470166467777920800885524756510814236298805494227245862542885259264697759429959495031648458034167805739914670174950759172023334728249268262275787109551998549664321960517614689862572049801319505885319113692329600493258307531179463772689505904134112157903110484803951017594581477316163824689501019500245498075535484185108680519720513368183805031233981791225301798164022277056893576598687262457466069668584550789844428243161313937728304717696075716007553986491234156881003764371361922888361474422988612670603148913244980883829846409710722392505765010756327224941485179823999414201017726657157588170655175206070451854312862035374224345189639031757333785721748309271400170295313829350890411290526260055989594222125612248769975903962056870489962090423219013019806494951236403401946964472941238010688088555192386706894433869272373126078524811173279396958791069873449046583979047011311773901510180924506792027622026830339922805887596715134511410936210951846216069002031272276971530100777793325346425898309274350643343912976578957323469199164346116677801748868318547579758697143353645788481122055914155360259086633627428170288471003021827623103928121502969750373097537572581563399219144133591584814526954670439486175163859456578380160484752837504164730728940335284668819233645507252642681548498531223643739883586637060452226623148610438661260091143034601155160845447757570467813397387749805978436964862790398715896487500972503255329316925512696575667953019472277887795033701704869095244513319982113153947743329129162811910979732218772142634410092863029890273285821446042480742585788889382152743974152388782050998899311494319199163807456020002398457239440625114850618129923372409146243955813910480851633080579185919772039254727587078541027708295624084546104527240031271047629868885259157652485345205238657549874296533142257900705801549270610812235437266725567318297349816366578746494140314533070929212212015009528572819596663867369538359742625266052817490551775919832239131048294060476126530827123471801346795291380987619644868301668758934582295810995297610531299444182263789594904264352950159483413997159582445904306279868148214898019356440927529979944662041332562206004416672987905020292065648047221494618923241195876072528314479744136231375922941053497365842176950932857852836509593090061918812507178516358095767640179183934731270611614390720378671115311917266317661347930186729587958291534825943444764803466631351170325882746919235428268669595554624638613246532933966158282266418440244053305817348357929679605280772590381188693663007373218884100721634976270800569419915086975228658304549386639132390240228607551596849146279130902703006860257027630518638780318244861843262357302514871348139350147544760445802082189071954809592244072630276289412354861478645931252879066919028486192805917782349104832728526849171331362678556430472006785201544087780341081962410375165015125808080626356880529637605704379673284394124251681700177153619128803959565126810712609805884525606570571075170771685963119193174837054520226299424278864901338919700366058620812248500465499078772252809938726788259674414085462051559223230011488108803481922383373941330484891035898673159423756754217414648953592365931614935248691717256751288930160850162274038723812164403223862508222743644556882531620462788504791670430709425810987106595160426041919149505090167501752837604239438511964802270235168623298210393271780909570744836025443936637340182836727429765117833631697638581336433838339279733364504706313082104350237337095458100676911864163628644560843030421469855412102989552968824091802047734237613282464418529331162026287672268713061712513288348711551717968599812651442220403804261853884481543243142181163575536490131393556291107581001363196637605153383369755737815155212793489061104374804937308594850188259810961102144874078121787922205605577277852563199608290584477710632298787957588813420414549493872801840466258287202980070311915097519374842142821123766488060633071280617890809698183589802285270131310313640596202169747867158369090763252416707262077464438532829416822370763084114929182907874198119079825197154197802184076034837903313835449515635308909454734252754383823550062290751514721136412908163509912652974226639875841859156324338575760980442834146234463948088245428345820578775776247969914594369543871468084631234126583820134194548709201815025826716966056811026694626898065419268097317708918967182201258234925494876203652451120471472967340023136337436685798123338042808186229704511009838792008852374301306669858650373184139923875774520999298040857953369413399687907453346933181708930587178025165445764988280465521164974522353760827983257171300237220957989779337251707608012529761573419379188098441390143805029575969078908086780684264318975302882374654107944945296764520000087294836568574005513226007951791766327793527993091098652590979196887462475875382055230792758093748196381032914783728079668883422139327737219318879725952950437215503252647269787995364550826621482524809926058883275001516773968213073086188641759089583229182007301039035646212721298394626951735502610320384175722964839763420647049390808410919243856101665556526341769938275420708863515399051423673183218360962906766916049182517557882962454146981680327704695717019767188795717809811814022086170971475963283421697588258415644158146173809214867831472397457589285220049582625308953153419288912616599379763730445117661456646837556990039043100395849683748864947416672470485078457008924683886816638062090909978345143631454595217826745647223670687580149921455100678311253933452200101288541749314952451663847077612071868074185682386843054186325958207058739587602552379809452642762434950050505758358863463082065606249907525506947571103388414230900878550781591032023625368417727545253791498272627616436022651001114735586441673639286855146365279737336128525821261459089961012964000657935799742688968728967872699891638458353407138215575326141633795278530366791539024026633406195084290642101241195795760430765262570668724842309695525648824703720694119911807187427972899450389632513775403638077350855238392165672163936908475887687247910771203146003102942489673782014329585578160993188501238703456072854625061997865209657694944459729485682699970378932981586669356846271360845792331828176137889048597863335274912024931138110914609565461615985006943617028062339356401729651514772953826840590265399417384836967880583738602017676787396178858796151363786414001067754590762117573192999408183769518034490902260359135952024742543737042509862445219990022457373709134415383069429165412890699795288257032673923963188287360272900861790410656213871850156467153610159634814455556907220098662349638564005470994577858619831911230433122435710054209757977813619296343142963690425504994767727283456081497766433269913507663317530828133425849956827014176684456808829631308249019676290939284791415423711704230152876372812951295338623667129428012398207540535911459673193448343401416406144230977547575499029343463144303140998690631873733297608725177821019428534649802915069616951558972216817639880158230146324880734715007913493927734297267114672470818044518384613184001274014794658133281843424127662656821009219172891761808660733144212525467672502462379224842180307290047062973417886588757352935581530808981593261451618936196378530584437290350215862105559088410869350989519489133377656002034273427768540376139322590765481775288268865133408868279178018507472534027711383060138395574336725525336549898927421973265406737677044187091594259315755452113146675255624802393955120116951260847659218090260684881796766181427659923577014089228071455063421745827888336296053656451543699283604868020008985077977858733887586240635256215545121574127206538959363457816494219603498299481968005652758297292283360670886905226744244307318518133376593876124677614871394677735974389846885096699680993059208077022476361193549770780490155027010302937836697516211537682257857703966166880724659515096825478025672891786383473523019884802539730275838510926201641889529681890925321987654637843137356532960126529809910192720169276411465102148352088276590948855820438780860670944326248313081306434288874459811707296194595350105566934098545240517640832688905488811640778069713664899989675684114268980375228477794236224789300200231625826314298081426595525125942015467554713724466674995680014948885997878725459372758290505034235114749145176706424624690650045120522761198331449657783900455923701113530847853143797774701860934207703857130367719963403744890361958680445835363193111963118330628105347725646004536831998352682567567537057823619559981687522034741721160124053851300490111939993919984620761596343970508078251449750324575343470491531400735666386109583895145569402144825094102166626232248587981356637871986672076936024779442827419252644226617483360039269174887533422108222067555145424730162828932464460567643072854682654454291775078238640984806158891260135367475414418424238499183873847273916284461226645388630856534671062247825943717252118810260830571992764676760642661122549743566048736993111573840014282064053348994997554533279972038333058637641476246299796482038011785600482558204725651235293718783162264354729480144392236851473443723673550219851424402618306012957383186545628529784380295883554933920396121933321936547362900638304074948232850497804227831767566943814906188234787737544187323342556632173206400848489520669265566354426252772146941526503497637154974563965033699743022861589312104523263344878889682798859501060861749297442835297797228072094259372300600750624164468610104092281479193614998312122344459444352353112455668454402410526351922847467968586035324515257558111048721401575848451869364381274049288509735775766696211706351683778668614862574922108016620179640722120902527190214951534171280564429193445702753099823708243631346260007027720142574005068828666913668347371284463779019210149891957601536984973886353118541970918693254511557912986180717328707206538870479967115996790424499719411548599612195180791546935609800369472335223694609345895882991033497247182753648466448522101623549469398326371951371120422151206928135138882772943725255180472476017676129036255964168341799491732554159194340741449723828598114202478046384849741234967496654683736046184901057676989827170665728305071395132105392295584744651914096483138360905809730144981360327358730089630072779807697795470680967326195455039134173879701212679282189966905315552923441984502224668229779531708320206727545035322197305553990252787802219764299719366711209302311543784338548183595901858163265714965509833892104187995954761389069159218495825856171963904469784083900908384649560314005349814902728209093899767760955389077277064935966787380167117992761034859032587530663997587157502690658069338505368179012134578720571063853775228718793668982086398504994836881145572970941365651355126382859729897618024889946526729945681417787121753247355136537233834094238036423893307777596013674896883137051702171094407715408591683200341269455414581074050374245555511106401351285148419190180183820684778125282432181898646516741858296770711692536535831568202469669980390317296668017041504273579938081931454417300076762314121012034460740606356394381953729760549303143225110711909736094803441813179430388382651220632342923303528156280722082167056445596960360075702955820488012044404563617739496447239829937585279086508883973862686357518687771424839425207935911029642276737053224475061697124836029505561341179178967179250231390928270928108763762665645130863759072354916191874639973915696730568657081719167277773165098749988204454400069744451305457695750394827512950953980321580641533554850441934074145136876170929604058509656160373492812793534778451134202937473178179637574549954798026880869534804242257702697515237305396668907133885494689599669205435907326477362221451524212846545912652676454746415231083343149136552655494790240273223325686192105963374383238921999594106591488986552759828146830622163145734215710342140764193291268819974826408782005978228611574096755369746596824413062494070185963528437833478443938141208446369954666672822327168384334289945864699827802328017588590961466440982885972533334306596258829064992444865441832610289576542720972841419101089294006337561396760075494050383036032479218865164613812669050907351576897667890274108612540919069223926961529886045362954116901934193974221137994035864905752983732559167834015194698696611600402640494302987066040899659352798025304966242235041307985997997362741384111108944003194131699651889631795878322670141157212277111471563735779275195164262781701065518624235901954707151284310208331097194480944239710456049275907621634529413542921189642967523330035119909094499310158528776035406912361786186993554331885576631756590708740807201375365495479578202215801426777539690602404643958943572731513403375316051609123241890062350658065357559245693488659260827873381439392071654980836799738865807132372721386830587315860388972822739129325499172243128891466561146615717195427390444587938440833197886320211501401980845673903596125046726645037361638996876059423164127536796131995798367034687047062010367711297265703050334983242122384225290513565612511059162988840917781153839574164491780065163172451495008907395306069403038272670832198409311110481379990490148721935847220113848206551666573893414774414014681887851924001386827659458782271925199130955183487166008118535301940891501178858874530030481478264690411465602310392113571085128493980788188822602188997919249588976264942886617316029941954017300647479140984016503010876966776473978183416519883305570229629177572636388508342205844651425711949451501868783206609740149947881803663818669113891789269753685058706478445450571319241760608259359560888996365813375574737096232710616508089588175216330771528719224884891162130519215001142132008764725448351552421582560821221543331987958095370364928638577504412999704296871917863369249565338722851373519657050448115458975011304341917344195375137719230385974612536132108482291504666723718714679887823413721437983416733445074046274865806579243548043171454532051609692680949545205061846753513413277012319542812013938575099708634869621051363309692564404599715381176950521487903864226167130059459267823003348206888396039397132057665562290250246029260182570307714447673294690513957384799294147415725417335184626018251145751991630029931840704154420142271992405613550659961026997645121276370072002726032354991325291178100316167754750075822279033508688137863124933895022477868842548353359931834529275112094926591363738685967414540985916824861697885238039680830414296575761305121661493707124796645250701071043813776144026422640483970234935062156768794921600141414136202516618868186629794288328179744362095634611027887969296433514115917807620805969512123331678093427972501470813133664674181183776569520291743173321944573721050177115064648169096291831018639271269820980905845107133054377285382014042890851612180201607242447536418011825866922734913098650028259557899336623648093003550660119834839134934067805338091926945979340442141333524791459704262072317793116851089267884394949983407745707773010611562089762352951907075652791731904492110230651931861770116988198115410040341848270052053540149417622430204226895550848599958648810382999631288688530120143740008496017952603317071710815483546992375103313198307539064762148634748623862215384086570392350357640015481688888138413660155967485172271138880431374702030968900154286088067779079879304274310665298548893136371341353198539940171574258322056684271275230527898038860122886984573034920350792590408323133322193192745563984675179784019106329689173691353913961316232384551950050148272304607675058067090066181313316518955159008238426622814013977933831966387204571205849999577156074941353966628407755367520037543465674276007764174058399439011294026140198703673089578362637430386392707890449699337935594298687669404597111650405159711405714793287349176189540305043123061263490618707246951565717429133224657870418731962141013387595694059378306655443168053553282751576465389580950145569078283313530621414089197855212776170650529799939096196022121938369458293097263400666211769480041792450165381325694665452842488175350378081535250873000425685115075693180530142276040390752889554815549296721152715726449059385795635467289642863000097878429581176338513972181265569540937525370103602362060729313678694299589178577510668029839871311452119260297943177527780450806057949082500252695914245256826893829712133657708600533720993168073593890169463836504281073024547822285698083770774177626191777409506919668258326984367357709435495546335100371137076857357273185120427258310963306513463907673486680733329179485413854894136227111211585886993649344938843542450886815598689301700999403659971614079222755844870155000194330993793322388660614668988477118526500390731913039290500183256912786424091769107245650704150260491428237712993328952547146095262453867919966669725170517006791365201343375384842975389667635209030300785825359797322098804912033009489740949281857871850144269996034496744202981315201953356133253508963736277326625181187006610944518425280750364232610780916582560477969029472976751460350968802674869489083091798524114612117612884522435902196721717953367463487865888964429447611934074877030460481330528167804762239490180679336069794764363414471396252016709186450631052540613782088104198714829714363082687254632236754354655815144665559126486617813878186046403484309650401528257471383881253448535541333839866093279617091570201023250446531268397915383080733473438011268066301975145466730989299453513831970601686967760082461184322046980906316667077320954884746174660633548083361029804433687842631358448360713399752042916121121137781077805909895688399100535372946784655270759474979816284378017534681813513480700054148751647074384394496442806233140209079007476684068628929358375743023530418084708270884386963511675780414229339370856214023126683021298440868134699234473950799023568805631653113360107961227684176642924956581794497604175068301649876793497642837081097793390985951574909693195109830282973581152394129258376597471627268797930826104698555596451594631372425247269898954304115312230617236988733288898348496042109112356079408849115682857079067770731140358822193559326988614190464087214808405211942185235892716392523265977055259587594597785800269822752907302606647665305876805804733215832050678673452668659704101397523472725087916488898955814869706798237967590583326340641643968708009517194565831669656603942753065454434466888186715010457392600055454983501374919517158276711910091711039753114243014845946873762377263032340850551404709169238467849778286999508370266155788703438767115442895881779352368792764911707118506058539600358342202260005292388646388770708543757274183869505689230731134331238878738814839860931841343378931049920471136181171475390390440224307839197580385085829487457454200652920666573547763001344608195779520239420211954528839893417420119723888089473615730063579031736783382397334346558922148254700173822610166787707720340336760066768866038782908440465740236047425520609412963793365152643039773435858631916169874293610457797909839461629968437433927073371383878512087905831358164893857394421245756361421578860119577972603729511494890254537032698324481481558213669300591459884296245863773867182051080447554975747116596348118963798854029480454455935363537184338213584360027575896273089842482806890587655687391862544224181140133268573595733219020210599066146785301135922316791529618792356182360961953849145983859083720808817480923911082625916845367463794423585789875818620987099030202498412314460148732283370588700326992671490255475117221099782799780733453095993162942841298893758481371596922850973664976032961642290410378227547746234704887587321800586269866884940872498207578192038373719837648823805453534471493708223144455908494626793371256412331892205352168423244312567517616154740944155782962457526640264144718136515390657108835558452477193064734201150869001937199590337399421981284903829573719410877146768049509412272190361375722818487808464948982764390685486165704532180298057896712283954747930668783560267530928619321243034432273886443442179755661841182655980467820505948161138593469057103314755546174186170242639774866055781354067591896309020900440706067820896087783963437837542934050571057904578994637541913535328738634073894506714825430967011154339134400471932999434712497998670876552859638941129516574787985127350186873090027176966368442799424415580124936271470083558978765100037804592887315438551010919243714380793958935299515594842386806437678579892912833743336273641414199119593558907676459301651851390450095467001411835483081134439576403490679704096962624787655970757176902479976594237949320910196873191993232763097367071568290202939906049304821143867686885047813633531503405974703373116741872075633240895601101542245873927527805108195301269169412222664185116324175298402387998679207062382190778318988589851098575320341058592544409914215134549495470273222037931007503195648030505721007201777604489937889390338319287150935494746586707312393127116593300048470530300923962754455457098834603470778769410055481141031628313741296971701726779558887219051960175403860768749525586657112693381696706910107441896064988520256148985188797280469504496132770371826028542144299303475131815454591596383884185905106119873960859031063371269565334784991948051076979556932666542877144933948577897494511887893714209903878831177110083015805614878443150566801995321780100461460133251898014304286123057512702831844824169489788451823467355270509473852050113120214071438511507549846815034296851409060283315443990561834526390971671390651063903899575357663243176025497648468173144315397613903180017215383597776908003011419202825031034402405908545758004570707097335767791269930173947070468291278297660587986371508488390392204572744320911455741987513267613914474968966039809499424665819773950235834216006698534013788634522358995710059806031484084355277327560109892686075876742234179598410270305229119748542844042579528621474918827843436744483165330216101474896686904827457077151957855260361117005406645403395496545883033735572122306534964704181105959436743917600543106133870441300127785753374811754924530785974494219994203871994036424427082026486566221144402535890381500507815082785377583035632197930379077096287578307468426030903843417542033909370846456860802550282941058930490366873485946952498547643938139478415602691891778990829862517313692019583448058164912283348353856498235463358408194210561936652542704869082892978722655247027750598142711094548956476727083052277172516170170723248142572313305830812019363063330465778733749762022784133941306885494083045885441189210982557490417654141323042478292435041731277853852590833782937419292394357434286692223099950034588846538052132550677530084580643917072998875250349933660725504898673812328275886417960724641286631826440974558042461890784444393381150794858597469234992638823670389455784100163234989923927034581532772270797931331820440924126227570982556867469532764014325455493094871124381249951608506023070733246607371850789278532166243891632297029406972915997460291194695817969926921962577426560292529275383812343821426100904707758026139414126787940698808129167511846193975006572458876086552032087396854795670452570114769892850414493977937569433984954518695585717140065650045814369914451750499950744205539311940292467259971014082980420934597657631890308431626742545708082181425267551547419385350588159604910083859286054742103811308480093695789617318772319014547166021429048963691477595753529527574215274548062457582828507842628391805805721559953577302910840465505628337738221698498838944357335890391615250206953048553166615492782385467653315020144763345054358718669095794954626202197128395918572680508766257279774582938578778551300613281566865392773949020776223486549549534765200056211487522125898352360807966045416074766902889733811614462232718720193576507774310376447616614039340016365151677836137174007338868769486012763483921803033536556715331328187163794447364433616967827371404889469055176752190169564463558309051926471349613314628069092041047366698108790881185597970786476984564878241279963726608265240818340469734916358512076874679646094045148230028120356632451309895998267829938039288834271009761504031497026348665097469278839021291154988041712096333997936359488677604702314055389971820904601082236204175750016163195782899619929846234720210163351057806879436284158292411099302685234418135290193110107494787617579614718947480649144290017417394562094403683074145828810478440238659520429552741404432971704371492440834204999466467297844802231201238540481538116719477061452875296576711637210863191335801831631458346591377041050022839660115978974571132417055088369419479109139416999559155223286791915258687848808519061110111561037391706483025722672063519155753741021703976695437242125922019787452656826996476802977045932780820776146336958111800875994805764154275711431936507972010283677465392038625254852332555741634656697971543241418902823608361702965844640547384396708938223465204300782089489386272617670909137563166186170801902549860233956302646865350253856424239575160909188271435366206403086849939795055482377695058621387286856733436895029836258826259401252425869924025805432557773804129427124597856725825486708257487342100985017628859835251728064895468794079507121303084770152918587534905695117262016204484734287019338119058885325952125368531775077007473083816267338549654756124032620745885111638471247924767923055107706009851929523294453796183693216182611647708183531185909203177579974054074766534690930058556514633666614294267034244481501717544807853601927366231411740392009818664818503732365829226275878834154304674710619376518402339151533205643058231608587432540522771040230815866030415080344304480139200662270484389736896351432426305758084802551990542637529181337476866847301922523307129395357864436209657164552641084547970785441587909922325978375143961906554009311949848889551786869784563372441017287604586730836955216490730879855313477062347919211834906728423151630920551974556758883873059068654644932295523756320164022734713466583728512119851361677544328790520682134251064946477125254858135734143917777509971352429098117707795222833055801711796377170240394711620491716267003970289473043791244052278448404099020569366946474337462864574834646905609689483900275305991211057519351774164536501983303380811697708788755359496372037546059386128824054353680889670382585883160984102165036315215435697696871031190099350346895695186707032060312631410220649010022505015274130606261057822956385220254379941036133783195241504213775841995631118652483049044765457050601494011209017325545251727065644211128889404682755470478626896850598588495465443126863104306484351941473394535950600519642824346944187177365123436719998139983071147760136013358239693790198143828435496825022906658416636911324206696656498681679795379282595825706126601541211547714737708200399111120517455055423384886696174781834789883586274675439968794054868758080834997226175605260844656895332423995257558352145672638115288199210910233064115835784505843307389084311164495548512905804308186599621751056377667222157364198194609423894183548959408192770081381257693576708407474228708484980445545675242886476967332671391349550411875374480364409979271877264599122827571864250781155249110780360033145919307730710550676545986628896630290667054139709309368651814817562687750090328752588820306936264102820184857449168552782124924442629777610597932399871141831585855831411909784581270489966645527016249503345402416237710399621338527007759056007976991898924555928228566619996402724493725436026028979165754976172298238154768880491927508760132786845576570779340571941508295312394580824290563016051179681585568802923021285718507847518100831517390121161790750077112666818064608449112235524291859273792632226900440841474560599254176414459540635426832481705870883769041822593872900978220456565834257502642388094296672156000412297418190533438223344424417317375872698035693666284230396449842719039153089049856798313100833216467002770885383047133654038380328228775046691195726945477313366933056010994228024746976113695021928334609059195914400515124873807823448386144289892366763781820371081742608819186468013644878684950989044874326130968561324286188928788817303660303124519367749984581699458387358285309093147128169658178649317593898804422794344437147940526469525571929829247709971278179503004028092944692855749767814826560374726506695262417664542600755262616393341811384145618787349922142681477634589702639628065657420534154852852779729360232983521153413659241391787279037477649427089442162193052924204785786519209211274206133844037265018892893333274571556907980810381454385095399271168117691054830183343190057518748563842280226104663550392660711132584199600258954644716574364540231440959865872623406143883632690387514719972425097258141563736057889968635622301350029213536554213873239426096856746002948254569193165726458207504343006254619042457705753297764665389818978649535867098441721823031907865981260030088860301297430494640571763106628329200216392393027002629866868029076313761527760279467921416734283420614782903755227107469387373613045642213171598974155573553965944317418708516151777581695436598719437393534451346102424562976397311076769917293999959452204630193421457475296602661042659931049097925671914459573005172032712451463467077617271676801504578716777756773425331012589982500393965768180800855519532231606290572535723158918292002529826124386369107966112136399116517193814662680455043970193055917420159325714881754291733939734913626882478333240638737523863020941093569744930585929966968701217474680183551413736766876505063604350622085276935981136411896981006399830519706800397449043321449441653117785995580091384540123567036070045232202640561577119837274134498509252578875044093589399299392562171771912500100180902315929393258423410015408488866732363071010325335981933841857054789798930762498594078968696606421666822093516344028602042829110850944519868103406385577909193015440149363042834232888805877215104766309722270471277338498388312241406937233447826498441175334420313456467216411197567768802890361955057420836506608194764425941570867547740187173131091238702778017937321852496852090002361261635390650160940434014576891685063969011905887380925929359674546017184693649832079512662979261719310720596870034491613891337761414486808297254613635506329367260893740175481902145984188804184483446729391531915520774514693154831939255856430131389093515030344681968203734029305165774097515404892879965568003599135204764743122446224027345476809050296102212949266756975456343521823287627327286695754679743523898012000966570366557526473334915746835805851679628808566255326694388539556103143377229208450401192078795559106050188048602794958906881711351243561048375049253674247675786924645097529442186087504090812291215115305266395434116566156427834825018445640549879980778992163169788314301916618819976525481039447440793195816521808792674544191519859794853960480382396908255664006898991880474528199896829093169444094284367344727824052700668213544748602663867992747336888181657508512049300450243466498342290673897986445743527333634284107845399802649114230472778181271361359975355358930298029279680139824579196691514870375115814656517672103298738738386997410179754330589649727345756068131115184211736155893250761069811154879252223356726842034399720647132388583573509201419506606442898990772000500188210873634541305616126508774573244956576632495072136601669594117511408114274968623293326228221206014805704573212654016913079263272698459952838328090639115213129100267906797608323713834031012078924408350036906717059458586266723060869043968238207721113369214763225938067486756528241050096751252406909819215895417745811592156749692756261215450376404609428881735372184053246533921460631577036222385558493466125391313035764700269800268041701773249924312494366438539951849052925915343448527147156369456295382273785393064017287010855703798278566816291429501755967646410154254450120342304937210557838619525636892331490806851300195198735954526904205289353784950746031874388870905023718422708266129773726456656874327640365245014037345368076856916325516304838513785256100514929285764982071659890368773170736553564174543573220758710515375366013619828435086681277288630267969907659909056919686642727766449543466435984768453762032172742300914531871190806402489059400518383297246814424424492996801893815652083758468344587880324583695429327560835486827870850694963845301904286056367293820205273466603835720528572414975256881384589071406010478453914780792231781759359063468643897668803074721364849509785699905958976646721806361778466503741657860717797578556500238797390536165580444560990733103589984069358652635272602755101361107830932479940241397066308554029909629280762296879059411283146302290411840772818635465430115388889358618146064554934373288641345373182776828990260905275328051549594582508456687325051544081596544472036602705344265992124887697202164869280105954230124575383593828695497688031438742487031512411824683547808738493681695956903599667151653397915072617489634698012908998455513094951146558764755884371762944021741064689909252332074668542317994681465083357735380913127475532504310579132033196239957529304795332696112317027967308195793025154433284974959742149657009682322968187351119048321044140779685908572398161544110822560946049527774122346637926868876316916301428915314587553542222499135085937698470561625990225637604181153910918329830344323481752804144855086203681578645667264380072853872865670809651014938925413661684692317945617033445289635256421065169654616009299499875262587858890297819375666273019910974434473413254774045505020984330014221806889887986878035232382683290145972109977352906418618274707311973576000637963915235401560229907642486028347288083977450573154652793427065452943420047578922001876819678482000445436867785534582358903711737725648798476857097436466819018149494219138525407611303615685976014789870930742608536597010586016760575351912819038892822507343587363499348293678097451861404775859157724025151557536826800505900757672412623420135734525852102204570698375786168419236442717008429381654874257264584581070685249468539304390370352062514867472558578239409353754615795465105687277751803675132672594436817321866817478977331683896834214184629152916358660852044882841992117664835390964993435559283324908333938740248386143425900234935962475454484441828198158222971152572617315017739620887252587814895219939993761111555686294593144402016779737148695885476568420345452360801566764198135344851283824702456456910683004694613064021036764959312918229303920793088311103179699806790331567399746202168306769231168587872272313851529000879314960019591645431103329673814709914748047211178381380867430350703037617209627647116810455024382882811315249065194023231209287005205631190601976743213387788675203752019512464398186927265796441909003979792716567161079902448416488530797961479103627479834948703860782994192817238203300638219836642084763748600757832513748275977114027403215820452245863303085615430476812584976074795792312318547642758632770466668170397502383779177430737579493207650432700944803164021683799792110065692187212103840063866883739507016569759038038947132076262461905639649014000135312342972054008246259467056334547127647740258331041066267496314459111533248624043420320126857648446921351534916536454932238752921630707086846755256496672915850354038057849019397014170915514660212881222141540435768034779449769902970498289295200338184191651300917225784299243211559470693485354415051080827852572591419035691181503564259265103763338267606190321554379371843219297503519917577817267419870626876448252132399027732983647906992701853505343468125207915540639338636669655606786264610568537945246907939779447338688952045447467348803189147035739584501287090203273529276276292085141230272355375235285233589905555221082662220733655732790754679516082195057552485043955789521201121029521301794317089879890584536652293526132328803593053018916647699696212636551199925855071431543100113645838932319493805699049368607132119343969956890098770249245528461117627145909589981426340771122321875390324285190394751002329046935425186793728751192170770114435512418956211136487932098859573360965105830356279249243524151859646210507930704426494577144260763310272790846473741552864181346926013580297346799842059124176813129594397310327974120669039529152166010931225455678574496017961683134775950839996740555679339268094889769354649345404744300538413652104969856495083110341898077821585284106416956600142506827713414954213472108966633613955511947624835355593707441870218078105011585841790854567170472088326504739425167648205704597119271835507120931739355428472454818972609193217558749769760464065705661842672958429041302609539869072436522388744456277068188538809996123868281710565854251759965356899332360630364337017748842333435865138594886206010703934109375823772547483045763326980731163799859146208365464123270792555975718739974890307030240443683372451006630342095965620222405248080027718509456919683552323761294540324304097622940866521524395218036615178258288128914067731727991738757001235808522948062856255788759692318309805441709449283056671978402324844918496226477720668538451467963747755604536654444467557671361413425747786190894905851481051773377650076573255131615484164032565724192308827682388342324444214375973454622293374654379970780892831920853020617202056672708879834310918222140559021023221198886745445554540992323726082810167512729030001103668391802560062581254389913830694919350109839177345957187538067898730754269985991609393446131033293622647614478373025025531620835536025887154129155108501301949086300337095112557625982363724517307251068809431814758226077065959832560476671674653161675729485855149893658264560113135524118002461244109026680692417540727770062035520270000256538179286573412884829115504820518047793423493925533888693484579031440939444981928260103140717391514877249114919082098692087344562365852574541963989021518584659817459338028520310268629056250779231159282620628246072642701772744578199087397691076454246453810542956250337582724808681898229531922071364850822583290869260991665648146949091094230212435111811832714975028929465196178032158373982254124234438100575197286485503457044749434866470847606523231921404277090927646416041146996670501459734879272614235713881637793908940080670577152671678081972637546954861671212157385445279159598424829923111928861835584129792737143045973168133974881030187803813285949284307019410695551640390382853365467091761365457143682065083755297824298864495430308985769857650961100562929030504720358731276806859556246235148615011263310294129285344605902158443614741639591761349411194900389133393304932726461918914039309423899044389661457548172880059230025391979394958055417803874853886857085405985600367455259117776933717232537162490030886617247248288141062135084912756232311183515289903597095251770061765643741477891387362519009917687671117065857159217202433138820737508491526871477076322795788906227581338217786184897621263965843786428551724211810511803763423258006315996028035355759437365431993794157729408458691668390570384970724641355994909149023615013342295752943644068017258154470161957523779806787811308174670069041093526885213337577951196503705776929858996620487326071290717241046228573757942012911346212158617259259988551982793050492577526760540184873875444667717768679541407121832433285039090076169919771818095000497224898861722522881315552582596398911360510542888258786225682174224752037315411638161730664456212740823072408561587677911650732023382730740091556944341634002542046700686290861857485761030603072806052278592010741613097159064735857666193025419102527188806313854264822331474988856963941512794349380136785153516269286193392859554989468292642236401337227430956313782792285389093932906134703054769668955252550401730725835892249889561176681098561492063898456899521785694887061998926012530658948008807728444674968316355267729333107980131826694485728362368201295711842365904598329073517484126557053374303446220247937981309306558007896624634967178502379235588646710465058748637260567516687146496707216089742908682262728050583962101671466339935028588817043146522133724200888828865040828187087166754659926478116306236191356796108931650126577656733671200195172189732036315429178893556352549877490014008366105114465859924392902968743502076960962005776562434908807904539576527619615697650741516888842669729122254232171865382466994651505480155663023517426971874525994873140113593762777378677978143319361885808696635745373101752104728902487743428180649091975987810681160193960944478232584957536863043085654474044446990619227408008991147250649732350912784157293296616464366884653437682103140111729474980164559525352709942375800813060869563708382654533704454998479632883578951497256641106079902532636280605565295857404740283497521716376332114893970183799072170908356624747589689042376515785376067594616130174673468363017255780479306433648670080971035547602434126949224324282721657843782036585259140072214463221206706417143275401088918737460546967982717059207433111088788037358553351272100209629909315959206780465554389826816095287439172688544365184762974993525160387868107581941131689829349007043388806484840153812761086486512963053014682058801573285403954017372139590420881911578864867635988240894732259727044552278424148740002165136459254945986315782341758534596342867844394167622692440537849706852783893213437670665607260822810275428807081772899518172951081691520322119027459787764204830934205362624108896175137470012549811322490164335291806284265043218530319522665496295693914207992198196195098069569260195615238029168770948440952045838144873771864372864968063442920599265629788474212099399146705333021549239590583736143146107316712785593162618207791307571513235619434225015215414534432506269189775483444099698860866575444965552433520657642832794197592214050535890587811385945761729197720939889614723844441464605984380676205171289461457176343448508105050872523656261266940250349754835357693232029390132038977622952665356037322882069208274565033553569244886780036952159705238802600427476754024403333384846013502323866410745329333886721477622118907327309763160996849975492164045241881151615507226401169548843854774395881883122461724728037623296758932173060063014353822258653657477516854686177645722548685677203328065663848465169205013036445142971305295189764324557216365743515304811961268798054583459191420879877258874733670249467876548355372068899455893326069266107073090910665467983311418810648521238017584520148177193972272246365216831822598262540135067446036302754739737529624081619214825164572446483262760143517807302223509578960249248772280435862743220391336818402245529636991462758747149403345704280066014271084705953134366409242709530970224621564180520330013485652448385777011921800468167196365089710278406164600718234209076571826123741892174132182294369116494614111489546462011782249508058285900055201173612651545958138169656990287300910841696564908062820883212507426838443589282651279795607455768576818247515756224268025680472093845645778689854460267441088669694990514129754184110220268283566272522517656185904304511449542622357889756774700187086041001234749117457138120744299914536526036962624830985160136931502634440480694961313982163780306442635997820217192477985842301992027527988441651652846622489292369388008089923262706241160434326841543447880874957429543340991232059126727861887833808567932483998366767961028467028725847642865858339863053140043971277162138920937032736447608103584792829128700996360561652543246840567730463362780722573191666863123324283019039930225701623173719789692873704647910576907822688329364440000884081912115040088387339050843329990547170288149178462017176099769285965746709762761311802206662072263737190514537796254510985345792675892702425477364201473428163637366221542888541711550689109665228655789475459543444782370293747417740365115514179879030850369869792251664182915852131984750355544220023283716240595921153342804458700564880193042376962399603357200076257509411679784403087664312519496830469716257850231564373507572013361248102735398516784339123414562237585342702838576841937910331602605688350800782808323444282418544236641426263918025226585489585847599733977725510299118383886272776649026519786535117764493308062512948410495212765552681490816153519022598352426001970389313821579807946660689567794091520122040155240003781905813361796988152390961598606911314684929302054190415152182449311144815113458530693283324496017402236872148284260812562219780225563326174009676976112675659491332587588423825430942841059628545495898659946612333758040774976888690582117124077864672240112915559238980567523445228262678395798375201219518229289918064666871163073246569627489832183340386953628633061431563671277040405705630433290071413554585509816804314539541255000814915503502036764481413665254080677543061494454465173845889170140717203083305604208997408587939570935578923831905276326787780304848793503698785602493470546966970295758372366604798461770038697536465621564083681003125590377361383353790145161384512718370110536897673302306916515600774725342213918990245182068152381861750579331122852373141951616326825625740528281876739786602266249226420203171877710704063605080045657620260051352758571090491692864034060971183789823223868162235678511712908318900623002547146208123709657714748163549882136757445510694462222682725476673865585740533447582739220911705756119269848318537221239654687026450537967698950162882738471109424456621898174902994931724300882809439476627007261495937720193175718827335203828883553483225155470575345665281557125933729085501964873277695948608642352266153458370568390521071570964643783628184676738056246739577730240111557122856083268742257703481480277095420703262140341819349688641187127639211547922686829496044873918871008667773951454009866614992168464296007258857847207727620549993874064627413546468058959737249862019788005281417095661360817808003280374385275817331107517681341614457654801914651556037160243873781834695770629185107303429768227499198785813289004072866256968273299273051905301288105801977577182204303771782394272026771995823456002070434087389021962880048546859499464067640621930237184306933728719361882830495800532734836900744434010101254889146911082729122198814514155443447479728354417097805642283847910843529316703549455407358467284329215178514814190493417366239926188456832026069068621187865375321329432441322350558722028204453476768152049555938692713409815437085507627350860911285009960236568029395653545906213391285150152108405421641607873421324770555785258903280594469876913107059608899576833830460760184212499179650340054922698039161486188842877056924766380878442302909815326981098086153211292668782462803571642384586945531232493094353408822320437155494283428874224919178688705930093272585428911570169688316855506800216852621824014959800874108745789045601624850339788060698980986791466719008613260324068878653227227430853034551470719445626880875272189509059849671340736021924306584168198212222831211525561107114466437782522177561489886413756413028852266142625457959388942000317973743649623630030697453011428358071339064722480950842969512162725238665011345526239580581053828845458467747750892866681857926566595397151649870892604784733475985340386148945990993395840963798548828985771255509062414387362081271289297432311710696788355919402650113186476674399319189266617562961063200704555887883166837697588225152139224228867194058777521582272499167844794673251589291412467592869266019611421366026866509057511331060613681315385090321895604310952164772200340245702927213848770040207466516660419287654026138867580853997995312589597218925145801989072868652175814434229265554820829429243458500462959808441767322326618428075744948481403987384850714451445081513636705207255763289149839019815541534321445065637540996086944418732352907713688878611792454587986550983144783416786538730923608894482369765498514839682092466113253891806390403377440318985279553116673256949768434906956374670001340850756694376668248969557991335525675094140549623547154692955079032371689854310615056386713393506125415854770677607374707134257177758504012803526403663674291166756497797874689329667980290720282044313370702854692083236588328977447312760013283564013722713319855403884965920406926403608896828595547448230758444073393832552329107516590906444032930981419640860427494655816021701937597331751311515728979809206557102470138254381173673092684320435423017755592996039747450876652804055777089914456896237956046335032275597667906144389441820407882821300586011746040302042410873082398038302816802046128714511571903846081431230011531627308815663264925334454699714697261062531417139954651462591843424087850546642372909638352534003480530121102513862576745366918577780973522122126110575457006223416907110079105451270008216334981289550289710652360252340336669775380313228772268134441403597820342708703185834662764755821077253960585595170582335838111462387408431450847079995032779857047086729839563407183321078244256830481718441987538008860542096597560391775422205414138551769090870709024777223645855722234512300427496430325129114162667430938401730879128477025417873826769629690227431685487831392193763118440633701369055419809880506873574785489670888318036627411088438738225665990395049044971093456259570811205759486121292869570599476213065375146453519574037043288230740960476001592753643869990705469714380215769806724897953935512244839369000503938588227145037503334873688406594572460031828011191246687113443941854673777376137586812710210947759586323115564747991999136071198598226909723041307065385371615532774065540427916012848955570053708376131643930365183999800796113989854865339990192945135493811569536420907257122510815448571631021015203494353207870097826141144200515467080871325371600145211129584391265794311791860521440974727110980464154515338272987332939470046742553502161516525397148400315633380149111146719710168936528676948549259002263470131884153845834661377724670952830239842545678442929511049832927149335613475465233186095789658475792238230888281555019864190798652036110313569531920190742544210017298302859061108420948298602710410650729835744501921470018573086851170868998155944695192571928132580749199922413697768794891392740856992256731219834515375524289493013306520467432668047982075845813663872320886484219753064522319757329642335371887665908084580351839278158641297976481446766118995976415264473041265426492161545969767463778647769094588491375948162626877729399645960586868332337854772097545443412199267364579567453524143534421176420325610050260976527806262324049244538008210055360407424594169611789225366977305751883284284591859618646598070574786412067874342168265678067121858884837433369890905365349768558113392039147854071183633800244454733171604868730424369874982536197074468813071535076861209341389651461324743784804815788657840011882701187097355928599772466880902592398655310474198847236980826179049861086882792538671662230130411019510439554655290125621657096988116349702692663991418930068746030475503745715192989655030404178058018130079535264591878219009691173661725684496657575757301123282621326121774053587675381284389205772015871263320626225926102843505791491212905155669722394154619458434800907595224484423861639090659197186547263777254136573359366956966365011311138215328709368280909259887086983126148181971736565642361246447666319137092915694621833351671846375173670835521203854002064415829609230447939007933833695621843539031830411658845824147512365362623187821875390456646671810274469122766135074342115610672902957421456524379658584900123445314336637835385570118092740634684467919983772831250092996272655852892616158414720204128840103631969814953707932859032281523355337619800799282870390076695726262818057370521117963032721578981331270385395301958521450827129362094334442148336486943166921165407590222211369813414289810237618292047919751990664742791219644085565243443516013940914272981820300121944100738905061086287806569108083325639087604286385111614256242950478039696325565059287484743335399257700499303359540972866045840771576388138208626259177833158914417692541037381042992204350975516709723377311407713659361305643358140408412529568285126229667243836679718969196795314079402033335404902939927416817286809787936551821801872900865555010006491755801968814618501643443751205267032969206533090049250251995482122948018620271347314459897591937040111174501275199877661048404661462696167830438436173364712682711073845739745152181272546811033678768533251697704929728308468795505042684051050126134817255006052111000880378983214030774011187313248297014400465508059980578870070087148370430148987300651350829830309818395286290922281516148898008196379809181412389847195582832245309080162519505086014761212888289771496161642641649628205899439033415294170105500440786881447355443304858508441741951184395179989797953371506653733873238335424217655446476046920955366594449204940249564953206939302798444022351561689618451072484261731231434390391094152496990305425046773693473730558840729372589094260931548304132602621688849173208722548142512240828728082715437430080335902843310511540990379463982602173817945105564137377297280456837981915442760836223254332828795631414943971047462195870841075831527863684858587963152754877322420996705340697351204367911372614619904340757165404876151689132769907815055038352354430087783679492206228973534649101172498009913322942652899164735517176697884652225464047789565627888512996146632574023984541705153629376063608237412450686417872273651139447828943149190357188700814039193487572167272398541538072165991025415741417914080691225376092414754761990520817253259661650260178803899122570942825339316845998904385179289702112697854944319648137747113590010189718822183037846098997333712785024082892856407281906522749699816400353470577753039206370514028312896716277560523582580201910675307998984065746981501451711957904972912072698815957082913952017259695178663548953294578261507768273939887990477814887892633425162666118804561567684228641080770740517625071741202042420553725961074861129189828258422738439536580207842820776510814966861050119324577701306492398704766524996824041032417714003932499294851636831925709927153905635199552814355404477015110520411164758340641395971236740650302399677750670871982580241401895927713742378407887303686617440679317649133125870573479338541404531736966648259598135526303349121633596540426888767265385257189725634464096402558381632739405404174708564715853807317850869367156058794488795627615009402934636237730686371922479983420713095715235176259939017410824733055936270528039939444049201248161396110227485509243574702151154209631101082756285121932230940448083681732722027493935972008911993063711130007655752152231800910042533957031577747310742842080893575953337473859822296052473888484185607280119788098084305796220535240057408085638980310987432474513531239984425307505256825759086008291626533763523508818990577012525832248637312994464949527020227737896656763629956363570371264132693864471547649275991401032286801411153856206074928040914580692441956992075048677407748830181209774423574432543694806437832942958662651240016202348061366926448620208891948045602888982912147878122911294985835801612266571299567715185524997268621345223633874844736256755506670862934790343404921533043933089279403244003388991542988537877994406824764102822449150765614962978076612479917774316090552017427436220482529029234533486101609212268547285483855198924840477644682817400218238896824098083294876095516339597773475668630812731143738129653075672578178119280431296173361053258810233725967509165667704084063491856272852457758197334583255942583339443573944435406180704312942616164917193631657333648984341611637684705648337850870078614505284183897762737595833256715681290312613147970527532330608714364264871480657353517829947371240351108256775691732475458336940628279089591391866447899077790314103257891653537619154021331351664028326006177958146868720099545122791517909693100674296645287144240080613425226666836317381986634729788964262697299498265170222938147159579342101648364356774758740685517307053761421135958235086619753965977937365290110407694736132264082455056185758377708757254542704242511398273741005086944518246050191901204989289692749331441302326802309753105122742377313452021930933174907041307143881363540172150887763497996734518270972488511029364433169231193335510780467126095981759433027147461686104782625125554842132079710388199978259702803644002457629180470585421657706846773052526900706520725993851858444269374790228358130303906281195349688236751535473572709925189316634680026046550992930832347351479446148337180970332808854692437698599847558989515098242815941985799225341309263738148412464780103914821037155564973710243241198477842945231529810181044714980022940206072675521880303752041749593064084395365148168935234606367275787498363656451613113738217291125465895686140734395003571150793756796713369829139278623086742049471081251319706335075984752048969260588086664072341498754207045756071460020375030239720624490827421927474032586822260957547849524338126704410926017232284532273681167202877332955806682884278679621564227997240824853972935435603081281133445657379116396332786808425800491464523164478100957066963541442588946764828475648643718035815550238814453208120437139938762967470485920353417747191358690787376613384443791952067286966003907318900566448993039096691013041246730949086886818391290558857618272825099999774808816514327061785757705981961898346074008231069649887252744088662777521028361469486670953670403096124011276971422908884760745117920065217321664287672290189106756156313490732223947885509426093711897791852298546595107585848795722743980508064609986395254345471677369242202598324431787284086121829356408464834550308203935807629313286296814728471954917988205255623053958212700177406048444496104630394306301813403794301421560752482082289678411205026006013237104487069795409361952660387419106348759888204207370871502176843144863914735498702498647247698630815368951850194704327696485607662038894239441212776537490829974847435674138715695442872054438096630976424880273383614550250959531383853074961575996157959989584047740533061797488008357672036294669546917586159572041492442365935238849443096776059876930745458884076127491069027551645246893902282521289668654454888410022738187473174728866699662979915269141344880704829592670659748294058332424265471754019985064707330075943483097260240035053155790302345897917500198628969130616509799852170683966800476900888026425637305802111812493337429748952384411072021946744545048758288427888767801488174453251379851700722513201627869878301110442739944118175534640841381497504244111646993377421987419644993918156987287349792745145701465027053778180338587511166572157110309786134904920962182857417631441615706515769259081092964129487719502260692281187765746353666262054754248934285046724515772878175164293651407092239378688298278056459639117896020911645230331696270166896268238627143952842024256851842007740632138576334157967944524125137546216418445039536192080648830780969506904442550656675340991505196261009051898552526405455465777757540882683951520522598098760991975783506726875971864814206408905679086437156074607515915499248592412104683774256105065797499832341344627295241168868209852692386485103179621035483648688529072122340215537704659894291186981191311691515216324953953616976501718574200189651091691751110298607361661642306521787906109181447806682821034390857909603771859582036226967600263456316707009254754352892490160009745544457701459784547309063526656962180592114752704057605577414273198075138998440456497224836243318976768944295772578740732323430796547929835958000205643537851287169407111187554897737151283746886278142000594759548400426822216824693696137288542562889831044676945367102206163336409516698646046292983115956263895786875198630063758903346474562126169889339785409645845227083141084479457755414412589699148531716170646082538673298792934312375539896927683506123335662205760672234614696581918548090267698275938564738970947196857123512238771074709378890642624317722354702277301559800181784002305434407223091158904553355844564233354273288880624536760312079631801389644771864976946041221333881037645853908239991341100853932256657788632850599815233187886699216377495066457967863241228700557183536567920848335113690674240046777052350296228694218810457203569342750183008534443236393228696841278966341156837166989540559298416258539456079559801551630437901397950792506096460154160964290404798986228571130328481199581113328829330833565867226943143935590054717611386377271141234988040090976209745960181642524670180683195938211035315794836725251109770986355096492366508786825375317127986449424918641872945179763078867241741506987064874345752509689819423797211160763985661905821496255145511749005743587093579621415158977278777891980688027356793193644283718436635204105791603370272916246669659146919714301270621771374600211920992149423625653415181727160347617611699889832113475681032933881972290696737960128399001814491939764788286771556790314343479713284653183371061881355227154259803160999336843479168912474112552810519189686588799411781955230884910287354453254732903230340854730176338593727293812487995929492205215773573648629632484880817245548299532403117448546153803419636242563262920882389074085459839246110894555890036920792179875555080463938627997929088543585739684869682937623611874458967906447496843068406203964658035392044606998972320324629698417832336577471469413414077519715166385371071728111966897069919896325723357539651419219934645840518534711936883542555205979810969801735886033470343380000773387412504235758051193155499851877930655417659114587217110552211895884738449804510851012383301081612114055418612155838359834543025768307340420849652959724786675544673958918677493489300343895475032199056620442705834154474981998936642849179678586921749460287671946637255057344856375323077115111314318278272884877619988931132020318908531194874418571742609991512618623200791314862750343163554980157597919484785026864552511112361598395468173550346709782137256449276045491469960343092732159580136847186314294209881733690208201842893336617960269436509856742115650749562927421461534373465894534110009981526965161641668219104443948092708059080810838113502547691146448288386418789170132098208945641746612274321087568289387731395813634319945560000380778613585917100605790849437726979044878184734486992910909847075759531062748909222822450628031506906177426948839783574007241126229154242192400382624068426730156075043972336994158915992611304644175098918657174912462570022138157167601945817281546842667434216729794727686448010117723257264360106360823301898633230700037505934495003065962925230807459449748514677868365888696054417735121944157772350646594615292344811980080006804434690193405716645402221082146509826544383045398518793901253489594549212868757214127264609707996066975651688249191522625302727157311885768304657702186784646783538413647084520909368965485405962216522455701359416328082012150699218628854326467478732438534974398047808330946618792383259570058454553711722887925241624012355138485263141414471791609957718047389085993250834295234076339953283813861126098162747546101441103167692226898547355969098679672013702685894690095168766139862276220441603751860930149410546864399189627319336274331144681548551516435417519548714389831177728764657293310230245881233770727568493018915362209911462361613867472844185771328647980675444109791091701087626950093125105115060707219379447668759620134917884679630163404680862386732869314531987340287089140904605014199578923713246899924613811433809495967095366963919327108874201962536720944258170759705761294989626951876236060282613737752348531739080926833917343122079877925104232644817732530389789700645132335568099316937636726318906714940511242330279411362133752589316009285385509022843373393621118572680052823331872808857416632531282046525946396963989931816483406401531213097458350953602418820783411385551117733902452932807099675045161412132610454905435938054730926355106834670039603352101651101091630965019440648925874254713849659282453670679240511359727420915560897331815467708548452838653518082190351712546134904842961167367912048737963986738235610531916020592042587939456219147323104670957619079919267633143953752256996915990591056201346716781167024314763607795634692545846130880591123673715154272984837502633390312814799630723773204628742036732935300711582171582156515831456488025606396516772446544586804559424197388814783976995460096524043744785679957645275169343575785804030583453666048394136666734455210791113864095803108556280195978382354506732172516524928760840633519485132878657198291276710532267603543598635459839214015362688967929837408022964707439450351141820950187743563319170598868101755847671611024606060013545878566112066610105262875459800497048078024437644046198232421377864072249411721339352801378416577983913084490016841544442034094791313097242198391060091638673018049095373648566002055699387357847102478361709042728537334419658897614928118674028479087292094648795288520875529062070806988955713086446450518614121251937837947192372263323578050484343132124028010423758532882109745904396679950088719208029536212680265456165334841161721841276387541955482986805938948651698969758651270563954484906218446269020469444949712807681505054174847658743059533002820679600321915134349427342589364681142329631110927749469643686122533142637634898714253072686932240674772802288774968360462939724791278606762742787668502462734321492966204195567514948614852549058635452980233325765458593420026425332882521530935575400929700958083329709427685778933748508746895907521310758261837661938024454429049260429753075767111839763970149465817738424701409009982104482588397517299152786997803818550562112587513454693289842352152980375073854260453832277410587626716900928693139258573230395709062562003423898749267638259740117093260783369214001031915027660707594133733793548575038565792639592624734410716267724035028622050050625866505770167763422140570047142630977743813807787583819597889252918838893322261139188659708220932870561244358755316221367814562603507972590744419428679403077699484372568944630409199259906242847855039487463833004718032122217924848025513638231937308414577698340758909693037147423141160864678493087005292846874792148019581445658015570569306515636077540473332519402259978185324241990552247289418657972451860430756432271984119536214807092036066562178345469317460643736012497543381700443073936663537738652754045556928172489802546640169264296319056119081939423988589261729049937153508687806380381254376262243837788464580866315974591963168659736950134863808095128949979318403805834762178498967418102574291893929162878903325004702375380280305234699209567626154629342137366682627044841063184524955337770927257814401200891737035353480284659314383023094077288431070007082277806833023961308569741077922982767891810727127134687892799907152212451496464690554016268403738247703224667571718134798757515668340878076992822361178126310353697178963224879411316703545855056419253647110286897063525558713899443375971822757169078376950740591865994479881572074006425998266823542987885533344993961205158282990504174898541562722431015197703120232873632363601219222894311490927277896806617998368661673522010165150157712235429859308847347298440581054327443827738055883212501399205753749880312108674476080521434612407195429287966654594595539445042445491333567157015154494065811869010472443932376024459096329304623010014600386189291590901656968174907279889464420533200691364210246372614719026636329691140471072540982329688179091443937169576708584053836553524902814805202935258432204090005276241476763678972844337136130242742489649473746992354150281361833520265588815826525544339289280918101006965225421128152536268262696531918192265533918471768979126260113292413393183716167580234173792110845549619152254760753031704057010760851429647769493327509300267038024904528983966119169600532451490082297066145207690762923804500293948492015682547098194413393813100523802367774605487744904557696307027908575723091030164899915769234781960257818157574017349137884502421389977967350650926483427430536182393938949531784312660152530766327343597230520693667479191479298400917793208569125308956654594585967500472247382573612612654779671700922259167270397723415284014701340310870246963535703733763179519374163983814093247028818859382628905643698684782238704200438092075582696870788965291263621816792083791905228909657826913511703760157585102212133623595583564168924063534499043487814373155897449421629947428041488008141383778057268714883496073016376198055293811519816363984408981318634642902141098620845132151508562655436878224696410756444179336741764499688707405424514408962367137099078267896869517815464209672346116349962665687117088542107713973970152105734047853350362354077309419505628433116917251623776518317662438130617896126508031906241507363877089797570371829743677074093338903547369700096026675964077684475235856003474377641225026346844909673778138812451501968069041790482817558819589360625986611355379616601142628187117699588719088136430944734532690559129970499209574292194894680239527538461573826700775947517026438414332012315789318291512732817762741926833329189519013109262965904720886784760235594550050152991793569060240656794227283747883490189528795476550400255747208792227720913383897964858405199673839561593635263668667454702606842471115893016115552344691869677293154810831768588186116474158213506287333051917973841138133470118641535307637933602219972825746266078557853052467441400796137510504712853138751068230264089564718842069974707575309710304910531206578867358922222487253521627046554299307567095001767251729676003401826798107814967548715402179235827813777824131016305127060016539708135419778529644969439237525769030133959063136544648662546004773498840595976457035331890518079614548020514873648720009462161527106620194903726452063390664117633952962617204399572923312826810556335307828779445898659967194761742280069351950568425552980139581299969339830045680858709648715088155325730838425450762131719838565611086814023411685085389076591841774895708587242174824572562757426172831530889779307086635574361805102286984710694955347677202587826680360434472276762726632809693702881887080516317493520415912257633851895702467893829057672128093806201024403235467115413212837007985791184854842337820118952090193791704919752840753627411793465599442541217070290645945890383862074741454869638823809369950297361860572936905735186346473777388944929134601565704486286381237525119625346949827573525163193834394248488537208509675446782971807346703323530549188806762332424490620297126869920330371734511241917775964478911577857092750544578557072724371815905593353795905830527267128698080280459293584608733079593524895344211140895626078414799084751437971518124674271379089159705810030434907467710530334643716119409252696405184346500988651490918686698889268667781297199862600501157123057029005345051565637148022162441234985336896687705338387752063745524028205419013453961829278176182926441447079260210528325165191654718566408035282781425878081164937430043069330581891032860667978781356178286447926652936737035543934250929835233082645180458371002780636159896515354828035304605401322903580044621102887482633522152371861212821308362402987873935118710889626149999988067893096691523368925079887355709261966934532510860818010177241967361410258800494513717435787538940371499631170435056706541716489687772750400061361009164098439050545916268607715472101437364993985266043063411861243577059042855940848316708562064493352341451451464530628692795974131788057721808207367135374222730195951843269089751626685929189897255278691690928660255679590236161755802585991737209328705878035066732828137242592798370124425013316797045427274366780718141006185107795291818318245176914386517058022091839125719235050086728771261754158423457355900465508226720762345546311188125250214042225949368880145968433527011312140440325732073870665620912261396363667173823255801145782521748072566605209040318323979199666181671501835406636992458248000571833369760541085570237377040044866849522968984192707446611866894623126279484335097421846309319758882536070193111847075375812360751997714866886641821405677827247366958629968515398997257242353525024410851194097176946927589907672097252596235977581567640158643254037014889177390128349680750368275953727762463049294246004134728495340243360107374126800660979531487805358867055219980770615465882796259390621110263772214388457128361923583360891183798689651283003920544092682945822934236990777827723199391643306627535993775514208329626286620889821632842006745971874916391561883115377961351145903941228687269672022940592932832590075591464091156397948845988609763461002764785500146757493827125432882180829532113044027206704693418310740664691592036092949233437228848433392374199108408121996689089060703660575874592581499548977291731825880867906961749003269193477613083473247145668851695426603705715640749279848803553365540301436284271681413459717167237541882686194442046809859067474763410402333945332572289537369857847090318450271442485593886358877776411867599278190444784403718866266513694198789677644782125686793988279514027336525703855794788213948367597539108374853829871910397435453503951229841717769344432375863569081970162293617072693029837903461744106234535733862309105495856185003998490170111683319068122825490053260850089679044096370849316529641429958725148906918813645651916006756557122156229814349954119433117194166767940887625926551974141818447273072816225849191795376638064193850478983043097283969606551468650957999034722589387901978594696039938740729722352071914218150678079478153450504431958074215297633260430120827517974109596945842265290237334210990795716541656423864785684898655270391858620884483411549076871481331797245000476699415021283855976912624984667760481832960243812376311229821385664341429395035399455904687515794095956809696061384207848574006392410135506707174616389680389787344822372118447195343906816452648595384120137579901005809021614834329812089140443381960869411445910462643950327726086099947846790143709253022135504917955559539810917876072271623781784944968577784589982882825971850039927725456626858042249297970289390839885322246132954100004388490448893441654635141839206604159201877662679375453496686874555477970168443121065661293000355576827508795837308892114126399371231765561685939807931138710874358551251110376415282145162113208207548338228149796021512988806827035646374914613600190480588733026857052347176325423330777320120933682255581344152845094076378398458712960273625359715823401021123708229203021839216999045313328023866214656682367924954549833186127974734552097660931030799766112504636561529238075176896131375322645507287055451146382531945027614319250707111737005936438247294899720376396366673664135631246208950866428499489197004141088446919337116759897400403622349408085576215817043408792235611357568117137887689546639262926785966481756084532607691539497056876236741720240452493793703572646921197392320050754941015863246807291816395361725760784807520451134466447744332674783242420580920394156802440816054483288369850088571597758787674286395736785187465420981542785773998423298574881040799507764916623718720686093505905502260194994044637304148302320628542609551948880782605619444169474524644194407193330955240514848998706918805804504298363111069152230299858200138688255759309652765519121588601738303421402080556989573163244377466317614874439993145717011826826481986726329536048374711547774331165647812106874626558104950591897410577053588993523284371492724713763946870878096656136683738759178217082173041226540704918640477775172300982866169709133580835640811308333933761238443910073998759272329344619479659260492750408095193511934418494788697358532227093514660573202466618096858810920871660519083750900202142785131762908708917567560434909799079306255190172074987308480695159416142504787675016569883912643708172377155814312632889604524976777643336194960369515462977263359716878982908459758710775222225210658837105135283302784316997608559717434266315467741589346804015581994137786085088688414008724871720752514489068550468194430414027759399449034777727056780345694993224186145105243579982699949395312699488203703282930075701286172468490787291552926799207972403373064217525431152407186143811362522489960914521752125933370365295847030804550679535386956795728360021290971318506718895327776260943957810361411067963881808102094262708047927724196854925864356116637639844700125037195689840045885499392428502233773549992630116586921741795063604831235116740815445780844124045633848074272968606620490510411045792259611686585299087998974607189470573204340258272245635146291881776061376954423395448007009276587352277367720586854182779525382172111789915736192138855582827345898312488052439781413574914117093136424487421694350911674834709229029234872867878168306353860753771612814392133389796330431965618427714805218367701889365040185515994084198472516484721007617503848897005613681483603734917240722080016085594053942735737404966421680076245955459344297902326666885763404557636567464166387893463041774933060950953696085891485889756416648587030248663601343594423890236108388197266013899858515285942585899905928269374009943075775899948354487085218314670423041268115202559213464306396206941939297043397974089248036914177835717254044375525394455213049200249467874399508434994454959489738722379295462930199020130424198972016674276721650143132083066331389416458368048142998281557790429745305150037495971735519568189062639306288786340972650046881655025241988661743487769300551271797031554854950695857069719343837830264003657836735050012063309772094662724515954222003329934376844177028016463054635999150195191636347285207705471998826171898334939493615703381872937141364327526275767628027836164332124199167901205437503187433212041276283517614865929827405108814683133344883044763005181145872813646056570423562704563073278902810520337156692168996097643270111292157862373524307420976289725266172748916238319969464771166757193776709346540135669680074413925409962277680332787708052702983646057471487727347621697891497265792814379706290913735464428586548448677099942757693362274038342463870913880448562562309962522705131726752719910795243271701630390352889270274329393764891017292771735912468232527857763866258189479263034464098099999457347703129421313071016170428312004394364572920181710133230608507623271890185886997315136494848365074041437717437915450024705076641903806963086203515499265804445661785393102577616375227085046789215979168609267565588203870456145473423685849595373128951190556260631577863034799561058807750008513799640288799009984795467158185121214905537392287487943455640298541444034811668650201102348105877299095523219908863473337445185612661698924528885066671803642760632623934740421617256984031896283310016107437043798367535505667103575174326489392336889904473971809855128517007770008447310371688482150077886080806348196651374972318794803089083217545886844128715914008660290378476527629134197449888854903498376783514157454045449774574640902229441180144184791498375972600202719085706624322462310308793110350413921807093511500051965461889163113373691757730215080909562967513922577810321735740999077503179582694200627128954617605765673140143641495324126533764607966969689602633352754954711740823916589603318009327021977295697577101320588710811332420472335140231532392099094964923646330564609178980634952626153610501045379282500657416278786735946318849208967668863192020022729696175753214152529094532626152586546902622417575546283205653167064926018774320530637750783967739930151031843684755652248033550728327673857964239828078546985324636860171227754133936965875782061946348140940564481818141910148139641351441099673516185542336067494347533163661155024184568998696020186927057449905303856676890719097197824475763903906445014340542154821900846955665745296102635126050957096866921873562287887541087728568766948386724914731633437549061304019708253734595898017145348957214505249440478287683274442540136927004982158383247195360972652378316840372705465606007176074444839992720575931617081950178298475828213711025037319468750168330672226355751134023659518024251489353287139934529341237714201596807659106848473674705382018031101398188408601314719865967348743002535497458288782649013235908413419587131484013079991549540069455621890046255408493409486805643949718001372394858860972191576285212601896074364703616675848181160845592113654815569405191962460280460885265032367927842719549609269437279105512576256109355904989319145098509377680217796071115917312856061434727549793271280158927916123088801013502937920674721687811368528124885901779938623580416287725586617586222421965316294747644174868501995769997008867063697547809143288843585026386137988871180806496028223763426862997885935411755484603219871962313201783885488525097486250927034936305800995375926277224164629518992441626204726563323614576983702725031045720003081729775146687703325810948689041822563861155087585358821992208515565289831932462043057191117049021801891287940104684469349839907603880276664116010140638898232930988737030424166645125899928399558365436886128149788731436203129837025316460528804143962249148723199358219224959704944271105187621486030491469740344889910672931510497540052691118781139112012289979819293029048748145563023968713279647594554929617078957535722085787814458351760456295220974457086158019937729801202312417316937200677564089355945922344451336216455572467570419659886499956216646464515725573227140862457575456677139830801354862388015549023656725868862397675869316555420200031744298052943463001171185681406982772321364215131342982427851779536602119852587265678277023067462417934080459325925418938836754264161832028161213968359005890827770323927452674403293423335533441138966656294376848664932623367938396532730297586761102943116664397814586393873649487048168443328810312278763686023241528522669726400291870844134550784874137119493756771941024881906629606723261088945599704676607430100373054244146144452331514286189822848635088155612352870972631072445939671464329148770528511884297050691731497586938497347981240687438809405369549017170888714659726770803951989035890964728521994038635176301754111106768692276649241178128566788611430280891144098654219016890801501266876541469380740314623259851279912767161387095460781143733533169818864044157947428452905010919738086692384289484807124232747889960092399579458915793670103658478591474409241780417916681824468606447385543964013871306215781247745208435247290455714210228174173565510135621465031990082562583510754887229414252750729989190343113915394240406932285586291554437065217592245026672746303905372249870701842776261921332796353062012248997896850335834125396260292094976510806306942602096127966551769608753277498162891487386225320488947417771295658541882722778411946499788438965055891599626398449021729140498260473405324343657935286286333995534375114573831710754447194676075210911863532124380574899038491764663045525847125622263396563797124585153050690349170472802004828139462706486249539056534610679470012832068951544202073313160855882155244754573474644215364333247510320298505846519769863105725796671342141573509112265124208596320601969702951683411642748557123955063638847139078445474697516346620063052393263993898313225890063172634576374118629796850518357662667796861422110129801071250188418053632775155392579341258153349399170972392228557925466037778563454921980351248897758190119556112952995159324238097164802333924870953418847890475507471345072347906533312470371165952926934143915368016140770668463934276078417622556631896027206808077268766300351776444747075533388026759728991283980244273333908339612168706527803004519868617800717970778528549456243005661660558968805817096454861453709550794171468496260351034373019812477223840352337086550650817594045221060453244519265340416170186328049776862537983622490781062816334524228413050929369423260282791535146868017157449852552078941912521362153104800659388102755733207505002351361488105092251791988391357693944275871109494844780778974008566034430113234510197037752357051247943813295721159616300656288934111361116517398992428132539796614971582931524499301294375010607185988335870864352983161162618904863089026293444700561746052222468002456119783056571802123519713056455329108097874779845675253607727308624755620398779631389637832779642921800172481471080487658772098540704763570547205630217610629170184160542338664139682630954253259356955080882919378001383763742034708178639014103415327293623329933141755234464000593559698465747791497484614758151628426611543382872825818554370467955451551320332028057216621742317115034416634176046329894980230564530144596011625020791810188516542569586099071826012836847609870174179899515823861213274135759123396732189446993210373838048474689908760949965135729547889730420338808934644760265476234020519717796516348218257183783183652869049408254379686508644868278321159429820596690662266136067068302558180211059865170375152343080416149366306689066210588103159895934537294482781505133523001050035729536575130439151853072598242528214504245463749270979956936247347997736774763818125289277680027965220119997327063006786569772746720292781464763900263488545949492985797929315169532266303800093228285210828892898482064939950987956936704326836084775242037152945409485800308375845317062161374665567854178568113777361861577162009898411347273091492743570889294256946879312710950964056918667933708153578963086794605581970823101175044393861567117965393694073790378402121635828986870842888779858513258285300964510109671243556007385168591768240517704642994425570866212620645339197917450618401428292490048443764005346376961280526640030064019718669573333831906275057106484076832854732782059446398983906272097125945086932460515398536965381276813426170235373735288009163154907936130695209039897358843456647788766858616001868730715787331117187446267627744335923586069723594623365130555624015237432245063167218237243207044331215200249534202249422968738029077515788759365118916433239634507161227994069950477489243352315501679983552841839111017636623389450725467505610893908267998338466461225718858643183209218398635446044510883627094172348898657080648071162547836812299050711298450684390027814470852921595805233005407975787713904283247742376082386855402638634380783486674924979883244353769847591055086331994508104099963039089006418693201376701934875578588025634670785979401884073032407505605254755212818148922230616736125222909689652690507134703630774481816301251257799954649766845346257591443693668232350566023628982307272945989625517649722873789551563775743643546712719858297860078230621477373297459088449023174118760593729851543022609230452639511502639192908573402395152927847301785673178262183268106050206943089006219194571499686176593540067315720006151483477472261384172007718416755577659067855309302218711891956434299957590961495432531813835938981006806760744180677664141146420915351204102195222934446065231207680764340140915341788845100990976312306184209451186463014871595318567654837387868607592904664096419572378080843481376643157143151808239793024261639672472575067552193650729324708490761263657793372795317271327626740279570014161974454688371770479956147421055413395133882205563703420452645228241009842097393970503541295286394307642738410476040478363825643967939028276024294036520057947124348834075315465356895350016455994673045047574915963566140997663515272461036324211660085485508159520407103258101940600541578531860793423153592727360681635533928135028820824212263650266025467277595073180868484729751607379979859573454640747605906534299374784757652116446184183831204059643585030156310427852833664101901242726816747280355757822461142249659732673517997949301704782607191355741878545956041656117815855874994776997872977998020352387970679995052793480766580494360115831097293539599774449784244190574525678874222651314828605924699795696045086994872485771452110947397421486804462446672850637637199461452907858555400826158665977318082324333008614468500129697090353503836334872802271357348841835569317261798188896418786968635462314527524129950591856334968423305714855701209583028982980084701078885225031590499524790744112743941985710562020548710977854175224143630985469452835632828320031299404758176792986877148931783921340298310046367800480001976707878448065959629495692508981139419062707123684073472953925762642842369054542766861449307426572682087145969741400462470089914759670874773518128271489232544266670036138250854952832488234320377126728320058306612638185441100660470110886368872743414747552231294225421926218078325328582368915887374896584151325912386259998914651846093832768741850114165512365598277035449579776513161711688962644512442328727732685488512358898606225527983904221106618324029066885094902201118530752745783188271532096084365206220264184373561178846315771960859631768187830140843852449855658021519315283622481057378576202419276078899119975242021579049895848497131296114129948300181438263849116142151784059940022763583383660159181436721472801868923026260767659084633773051029128744212404551842287454668186151347673637519551956439005319219351650950257870621600987464825521903188484351890947859881568957086029879384038981728265543266159232728490420085234714551817298430511414353208543747942112391406566082277248431368045663364758768318885632704069664394805252225721985635949568370057837779451784645393105243436669679875870948084246769832677057798650755022377043230219123836256930022518549708993089201021604887817620499957323869705692128209935411837669527076120163525967923405593580130636734013907506187300934339979115362576857344484911069794447399060846186575028762870614727903416496507840123153501706412203335829644740121403913125135293479959706754834581388477058858548585051625997875113375510759119679934107346685382367201371524305958529125539654061752479698814797778039573725922756295599678834428932430352997675499317097105161916319713570041959905177984917352916250977650998257271130996051101287446246939933813227830607701549548079931707470539012466521640353598696862039808852502187539116624074966012426299732849255583687721316434701444057186674439276214276812299259371792353255980931120052606918154826912649306769047603176029971388994313084084870856824637469978048338156432907435909788539935478270865057014328983324973771015598946051613736329681576050366984756146778593040325258770833592836453372208739229763797974637930886920671209553026810227771682332049389946233202519939863379333586910887580475206847528302956702532405677232406284839062739693515443176954120397657165361258197733169406738784716243158269968010990429116257795305006910296202027925291950413541815651562977328647931946572812239819149480434306072039619064476833824499609333132815575150863964358078964997929094368636051745986148748214809952252710430365248116235448644660696282826083378383198115463393128669347492618100124312154460822473286029112461739012028858282018496386759784239560652963688438709868224060199182672239526977095386799169026322943983941707181515045613925252194563429454467265892126811550680682406669018249687871942064112833028881730135652244373832878207291625319472742414576684564266469140837306870006877329032773716364990537463555101194847664216103723634639158267753005288004480433475837871376162137338713843066434094380211255933384789253885260292570050379701933885458115205087398029696745371215956521922387156179428421031104367797055642473906196040034221944368074089382369606336666703324043877385937740603100962559614744466510004689889297139254690207422433178604136569826064946479052578739616482405908554614050778358001223737287653114395439426137234577177269746685650821317712488148731383066883170369975872017644664901219251692274216799786188654624574135103317435776527458657777695001424388830051089256860780820126809972534556721207181963488201298519671597542592867368215247318165276488179817797744395056672017478484744010041719366903539119703470173338965501589125689862080914345832082708994265866354745947675354855390429305003792903953253653446875222832433308487229829489841208262439439335213774141731035369022737335607877048520319379732142326904365835248242754094997023356288382495732539970447700744221506925046631086471217802760553811128339868886057936697758223557697975295260611870363730733117845580157034632992718932025758793252690530055881892150708948659073703706342313334725868577139614937275362780292785349237608835489849195297609277477745947459872591270358200868147158458282845533206180505149119734470916707376120272760981309129223991119968628520000950441362199225223984994949105217735687395400195372939548596443101136224773630343108243749329804391691350395308536091055911381945681704945641217305336366832057357263571665958361947669032463595942263339317585304711609360079130343597359610329863260243088688921016696823507339708068020286811121314930208138412365912721307403071622972587859397582417925962499763884465460691985880624137312811912480454221898673192615647214933927007259449271983787774756198832227953594460593415481432161415859284838788753595312729511480769747482487662801312174073393857586101656567554784421177656780418373639866411597485644906952094858172847324250235541067407945898467554132001568852380907196072280762524383182385329068146443746438986447083096193623854205986300063847959569175961641463689160786323592222475836480994105338647997417831666149912513189316059831975469381579337910940892777171435267315687704300379852645266231251372957423630212895261226602836347326477743255648552963516062925653841429982819810793309766669464955852353804228675679277642503060541822020217856190815244553493271360393331770047965645339670324390471747617750029443686042935783433222944575675736290018087638837855861841727620464141284383243401295949919580686370264227931878905048772291357355384853528522263518451447737843467016629286156609012041092533649928789407018850218021689369461737465790950336119491475450857360703518137336282186973959009668787687781939551779778193703863791146828404650620760011187521234990661364312619258214025552421580049483699180266077166742774230286515537472881027576965580744417035742474606131662091772076154781357958321196096316745494648445959944996614453557345443100216442141216139307871265612408226611712057875493719627405360729519007590648008457334686747599324877522908271555820611188271510041504128891200193071493553906403049514424958398634183858329537388668937245528143748308615117333791808671152742786965388970958758402960803964846324248346625740041341874840322762431121608712618520220221576142367764150106839604480636727670874542813002926836264281256267381519370808330065436735743405356275958287709451257072962519866525885309405207816506153093432914733419794240766991171567449039028492224246748079619451324122349039213897425151463412322737355654109853927153289881118823872724589457381638551056753160414716793900342064082510333375108986736022966502863177977981651587207315167878510760098046048364648545871126728019856846553822491961669347381112934706885429602529964765782982941054065331744285135984620053336894532026958874291876781318326776730469321619618353702781600287742964441822457927196448347575083491929873589960126649197870784068740456662565387781378274964889984213249403479677862940685198064706815670348283107663965875043144715596593293490054110507559734494899768179262862539360819551427693301032255121520111042181948663073585320814680151445668146558785862709419122754505498100329154470066736303704963981982554662814940659707574343789434342363236889910827988275361875589292287331596099940933655566924929997540547621049459874049404534650506586897760232408042164081020610520584448669349254712523806853324164931183381444260257637863514900240054650194649476876601117340857372115809094165820277633314700618319643384892823411237711161693371587509207224278948552023553236078654718381207647314109934018503504746775574368561882982547199744860679556963867216241342327846581248865924697729650877745797000902306109769159676226627573139040868865064299261916935184864438645843965584089427048297549758256391879668779385948126753673490415357829364203900284304356701499504731599393998989740148382723012846686961018109739785456802875460389513685331678252019334554185590078770363731035635938656104194803824838529364393973882842820569985878386427844564323349002385464816104379751002162092808091688862432284018843868829342847594423405216848887062130895260654143280301435999350618227352427183699113860900346196757408736316729781786230497791714532579590710877429194963232787145460270633717388245263715175038848249060160435443471869395090328984475696214395319729901861978684351144190515292525101058335735878142023294145726245804362744672839196170198298047632849259102795130104101680239216891951905614818357498463886228099855393195335635400640818352462896743543538474007404259943926617957247212265566903017601015285429405746464542526991157589523259530126120742521769352363027382220208788618707341137501576423604233222554583500032888116861593733084812224611783303359464908894623713579442966098708873713931625642633392931821680560783308220642575757744345365897280530188760737292891444358044667807368871074349039109261225036169113813742430074677857767051853384315187832580966760598291266442893416887007322592442212252448302156216102328023860293391501960327324013299264064055716793096477763819383898328329177027381301471100224027825360064623437656551224187252031665717827849641140958479106039266384252613775623656253749586077434935056254828411869614119332926705236842757920348616502945652727578297354230225527583213187135603597692000480724190576482853945926124536768297693267118256558863447679607497179708493475109045449861085998163101192907851797766602727925347558040012144209035329675898650130921132802563036416405827271718273683436754084199856279762622461126688778956761886604693528357882620425033798134659349345856758809398223351388849952683264480641316854693355965522664686793973767906398765905922964304699658762088464548406994491352916151329488543134713674946428906179754564761653727963612687061965159606551913875632618873948686748925383139783251784015914179514255440191431178280938770276803393490255369352905004010570742828451624187296039324988170555886666629036787337819718053911748571577630341810867784079978968467075861813640086360888542649301785938117984276861593856538743927741416271926233248615557385396556926277644234040460047081743481513447086224247024437172671172563428640643513718295439804442022504897974486672663086762323436658352613284709085236243619883662112166893714724412251340969724550245282795303520604105464215616770094019745346627492945225526532059484511550117360621599813810615445538922278957548024073396454521411825210938064612735058718461953471611590248667353870981879460400164210050387218316644415001642437063319758072579209037244591649545204933101578873707976989221404622566833088991606150481904336108677628515524272854445099866984903840266318134818954150337394332800762328333155502654462294196584236977502865863317644248386944749665586347808278454992338558539836910129414537782785712717354448057423083598411433151670002828385513712522456687489266029313343246535144749179736547873991896228529186481525385412888512517844713479554524284701534194643578034248154595023813639804104779378278078055931122654031795157551193312452374970324922240261051744605045854425388750764015511822613063813791460222942702212283076549838152132798379836124076020581739635044534424415057194548757546837544423476672710168342384686456622709400418412794427860183272540945260147919232348269834989454528165647059665774233619613503570512874077411613445773671253197069155751505978333092924668885509343688654467811015565388722476365616246668042511767900112646145403656009364544658009863111650781549473744723340207384170456256541468618728792662968051063090436155849206556101025990211865510349205798336986780715307153645348529338417217057057230600751170667274261812888461289141559344661236110297384639053455290249221066894258083903378699043663057604253114138206937636288367709592998819069395437499040721771867072280834256006156470097693647312675517602818347181568785038140610647609785709538133619624692657270314228791378026570902130485861388764783085329499233499366700312574218575204846192810100892656185825084725833789138960190608803755510795702682180461401930675465687750906760578019486819994971721808426479455584569411127839492235073387557075528530923985565380760950337513547096703954304749167978455268419715214240327856555519257440868437556162488716857883522782324911861770085228864632732072186316843110859323978100212792129426707586012543825456990771309002500037385059728770137605631599139186136536007684067070571686246719632776095324821407605486906163137555798854399261421256405859397966022813828886998702924490443101301218602584486112368497837049560882076040652565902203444602951367988460295522854596699439600162697031745182911885280412430188428771163992418931085939025660380005749024584916210422598151516501303427265516669780080913062996679139237810765857896446991235198283156654333232151800367685744010058388923614893144506434196476607539435132174569307508379636789511384848508623003409260899379269531186355312149975750489478020711519828921119123661210245843761055875485689706182168222694144983049371606581037456934189815649665853440424367841501465082395554268104787626914255945058390854840810927092525178350317937503792229536650424418787462047165490819434844717033798288192304123460994555942292531309827802790635882722008999929220616385599039725468346450146382175148556889209326607416855959708192719422650946261067345934184031819994023812663870635414608959871203868858467678758100826111553861430117806368589202420429589713812835767465798667370935099033415571518978169218639929252616265001270327446995600731274219023500119850877157501595044006909305068416618879636394079974427843050435818835863821956694036961405408776345785532550880984149678461631046828005902572489695490674800940856375415430233137586374419240498486118358917118504503718973928208846486209398096815164037682955988299120525593013941563635941263492088497323809616103981203733650086729125893478392871450713301850295187437947680873475631765296796557882972162654928715965658212087080477850265047879486372235810934055039994733579645161584808694677281670648207799802123987336929584505698601308588514403411750743598886948520405150142924723396168055466936017130748123379386788663431723474158705990031730082487321500088513917158269274700686977994496109938550805884871109960283196048781714585153027721130565302857639175635492474224147236237518571947899218377337751471620621347558854640541102742002365526248448689882045065091982252113200857693075796284223528196196885426910440419204697494062849825950811749917597826404395749190638482725900729568522400768416137554531588343191786499376437108308411075760154765789233172550011013897802443271423090192824833849472818554609295605637782263996003630336115384264676646513355273382931045996486009161313863619589766459979365561919527420475594305133343323980344494956605068280653008876211815190797168739001033176926101786841244961170045799218310345469531168851582259897208395793635458274326142723458963674062932655056081478875679963300492769138383870410476105628108378819043078433850722789965460119107436021324402176366556494964767255524070077848254344225465319072891241936613538395579602653720361185635126372911163606095375851792617774669969926768576798128352735937199551785066005910592935817334346225182520339295466271541741266059412244855676591093251523973233255520739353311067811583512390919972676958902353012172997450996604713788877738521934115376609020276854390972379587550007569077553653921765647784302776953490395122956614695262246425876161627925876226676530880092703807552972802104115229828508203581489913156563660681075474925663018480264659615809722244998208741881188288856658852636163932986813418828988216003900626430808297923919618780221159002684316012056708259201960503024179357210273485422709349181570336158501062349130751289242395380551358905183694097554434233064384994747104490277481269481312191248119856696961489041883112834101560023583093314952105730257626433564079010531453381021705249579600345045606787675410133858251411873610117029106036664939043230452888883642174300330693075098301347482995079379232642394861709642061550274149644046057809848136805725077666344495060795357595247043737330913118538213480277006335934531948375065287277955243653478328542306116575877204692003732440947604846076730250731404230779803893805123767491083825340078153149456715924847505370477451695999117988177586066781582537829557801028184676131950699440039659777963307815037262683392130476660361565109829939970694184702881109342052057337426340210503424278451348432446458418842204222231122539806473003196199186992218519405629441142070386825779954552233296118123500754738069044702399238636280853328259426676769745341145469659931979777563422012923571614376402149573405136216563756293067634750488817026204221909844783177706377571238407675832500527602538484967365045530852887752537633752801374940347691591765141649863505503019064230022577350587903009591326760126007440303845145570922241425195679469293514998204032951339818748950269297816330956291441270914683593437961121623901950856748877364131942415252667431385284058435719402239464434393674899405506159739684089393129320997034407108443694887368398084244131852938977089662207987137119132454320040056598437242004135948296240140192373693686866507128279171772322810653584377697939263941304853896631066791985977251630522451234555960553492896568592087565466431538534903372943565905718347445150228703021910167369684360198581492266343007817895304153985762993726327627588998353417560280450963140117216385849805726601607332898355740994643951084651191741109068967304865231982087046924107649684486760046957571989974749547039346739398671778054290096549139148620765049930455243671921780339710731635797064647500030425258517000226529558582532777679409232163880986423822879860708582583319884368734314402636592555514046608378615278717216791622389563120490152504261630193290914675816576632373112518254366053014522358519386891643623607330623654081765079102223777517182716043527182446231038873001006855203537813813803134332298661584494348061047928628691356945145430142415938787518239902999253064517135945410067360188172531842900224623616877785308128329043231928530784686765350567757345561629250109883527068487341822773445985359160524362723087184551265975318823759727337152828351408671660714699696225580588516596685367100591308340191693086818761700060084466915150840225904038143777651195023420284460566772702728469565237544633020818104635556221264656045731170724843450181598012182695504651613047349059921738821340712927069236132501092924259108159634235083312073293088672957895038302853268199832663874572269520627735128600797517619608569029037961655392428694263141179205519104511051282615737268318910523115233458993132763908178574663880737683417074046780314929076734261442110294322043462158965055311915278588970241032121520949608863825825802007256052986518752746820347711631264215434318576915074077234291266282910505616750075426965210735462279593926801014128876425132914242345104209547397352107969457623214385075839094808917931296604993888895659780944370912969195472801852838418963629350009676794158065477157200298530409512733269986430611570543754107689507918298897419150192447931824910413105577294084212669424502429981699843903542501964275132400696607307516579723303555568707303269374051736830644662103852938398515793614348263641509182448199334075945456609994226453112169942100736577523922613095262853404311962948837736953511876969360275917161374327449389975460357056021579526415473705946178387252837543144032410294322624187123037388099818796548933738457013442895175841635248396186207564393917745061338922505137837241987039747984670257083650665956769185436767876878477767370086711531415733585195293773518097564233325627570919076906438198940915187468164166480950766019937465981537273180653131308087169892178769008325340282454450348900396355948774454546090598782297467507594347317440167749039944757580594181069610624291826147084060701251451322795533794987486452073500827196339897012680316393636359400739915327636649017206887874099614580179215402517235410745821597388697569049355253506159835063754386702195966046730406234654483278114492483162209035478097667664322801964368745576076811174577086575610236486371985799301805686076664501022913460307782851607306401809204269073360047545940204422483322485233478383265925348124363068545171051720766794976383376488056927534315815842921599469555921733812935021206888779138926951775393891988511049141818293995516723682466519618009069028050477888220040867837304265722463118829967288808393441620393932480229307543568373574374781869405565855190202923571829094361417993707434547738088940148341534899684382475170298046828466765718197750120716867271400512057033937824198435543806362325895904229246904874382078702622819507119814331150651359295179482896389726329829642880899420133939151949531182278447320487621964774536707716403467018842904846539107666800974784824316489571531651377926697626698764979401408397787027510819717325782670041742345425197714732968183597597752122921233661420562627862469624716553074979671207807182832660076834140637722779504646262060819640308253607713176042251142062261577853608018653983955617860143560111338728651005591759507459550564742681754265574986138088931808771345061907611762026495254739354688533743060122386911384667837675216903967283405671841703869337518287672744155863585484789436889886173962645845192127136693466892823978566930306488607215686223022134654056915942337813038836394425875232927650578313774329642598143145717174122672041558695249083828883785359203791304571282663035583859088262574210871218003177271681976094928050027631992610307782354578041524405327418829650385735849011651642515541359190851547565731137920809394707413554427616738488528321133668175579553323440715902825219057266564337280792751078387455963169476575282642371051450491780144795308595439993588308675213336275938462177032519273748417642928664449307695446393708336786943817768447349396174650152830108761853361608093465432480724046444357679985981961816087932313168589723619283333457037351007426432564752590729429548917184309766161964846301167768165256127055579836573744855143266510220461541865373878706439247064964651376771360546346826138868845261758750518729848531925199100645421519662770439661357296401198481798681829535642572756576122301174731571267232327364649367348480237142684439232852803985205087648473680064338260192300299356281410626847415319132539510652281935980229569669875833492386634949046225043364826683712710547544322096392436934868467113873014405940879820286401962228128055950872385982598687021632757322750127035257531080618526648454356251080023859798803344119336681979412167494984852121327146593369284827783306561222787168559807723548893524492212466602480484408900559033141599529511591797758826875655509126991265318887551017630843114001100884295063615805277462843907211693375099606360599911071686704186043644771380950672286301150967157033492653222346475230763919290928968161315556488669128245926829086571683441738340156128486165641775384544448760636344080502533556087384607700522696275376398503529044998098225643024503712720272906510637399736779469041408297449960897739827412392766986957171173697127724115984957165088106930695186941408919179841496450810025708324566202187682645180494281199991902060597074545109502551913276794382251207347452802213106253454589582999169034647289431384636525243441251983246889035399191047190223416789481254438580740940034848619733133889215545652320453555296779180074871449803700466086354066775179260727090466498976939518446106995503860359660724623774060428937815668383343172345402214941633189980267873734283751602625288428725706847422162337717357549306004734922790162436023692935706044154418446527033722859785129010580371505706195078260437638197023736943656734871071357212978447014870713393212851626339365541067092017492154022114180672905120342660889664296357637205721952011086115062869648479382252080816242751048947330959999897063128893350651648114382696675207461188272703449067685290204859973438644083508736473989603361692218439130928614774922824972024104893845463525395280298544471522268732496553596241208695627721500498564712119548257957305167734830309505071642374738219395631496874396082130751609156536595221418248955459694614497862488581536902668730893844792749613430124334720342957755235575925692251023850023168746770313835223762461459832709555938109291718454084006706534801197388295446234228300073159505729699036926694626631255430803456189732159060092152419304072747476364218588684733163907918840903222586633614685424789765581725716447563737925696666953288564238483712823905234447429214745986444414814663243020362171446164702633268093874013352807514284144799471238038048605150561492014652620137919000228102081800164014125842098625474888927538206855775360979638183581414604690147858515098074618601681912650925507363458208321750450856899409037564091421988757943755983916095247992215196481696423324262626761671475280528918585492761194527464840631322495808346566203846154031050428293653585235418260504087444281880524847063708212392665094065087586541922201007630048085617665643662492495225577062648961630086545732673039435966396410311165864321761810451766237322957874350999966232614154928280837503877086855293258764742901697956321784472719541860585490486894007744530063929664465414979849123951210993535492524451357074460911284080744699912352865230902505366474475802551043060345696758293390932696564346119902087306313064954127042890093709527854353996264496420851653663440317068009147906607284479188243479717741006302834699785612126074968317673083165077990073880280817621208239816389200578452990342875012510389031650746459822898753782610543005603598346768091753076239038629619976754416253274065569214997596066048128052101362935111956819438956926233651401994205089482540364468740977809720673954618613890321256801368446127490443245392508145997508414223098832458724972328667377791977539376347344002314725942411598364635775186910939449477751025693128448671957117716381810121751952899435924209512911641875334237827309941809223625816261815547199032033148805685806506334844594909628182819396600849629131595871559276034405020864235901717859133640950109739532637794111015369376773702462750588977776551608890813040343777062901492523959304297503877013102439733432613900021327179324037428744641679072934878885397879092017062589710540553086091913147628496506961547355152900667077495959994699879066515795826343157325634319287914753207522236740908695934219156696860804172433002518745123922559678238521354174386676671586328128688158395189894707940967020995648257967830499439012873188679951274450594336677806536490816772709170419138245893324430664970437916264226959482283932486206506248308732760243702080121507343785687378954368559453797215925456336004043617707815149295486027471001606216620420117157087445476339177661555882000296069786641921215140662459606455690945963327173727120459317169665353398155432739090424411492221995653742225445578275885063469942936405988315067483625822050372453672214972638503276727451867176199462665903039659287416585029012666494309939518274497101435332348222120144173373152990730851540250674499973859852278462162784920288397742448846867618126589325612588075620544891017611925969245307504920417275556608931221380877468653959336705760671181162513167563739828159386644334352279128876106656129423349683228420957176072120173589380013874435472153173915167871544168097212442870582831407128134461871329707188667866940377810375240449912329725862658908476151046607236323692041383971745038976770708336796781883443360634143457174425846094410616259561528061940118926071301058505052196871812793091130921639121887774395380689235249563561020597971188614803840260527789652947480775154518432181707064873491223934334284383807651021977317062816484838743790867106569594498121558904073878415471778550198341877885108918088857669686081273217933439729346339963519443761681874521100482514897150833012004247805618960132560809952988348746246888013881668355025512022755805930044616063702866244310071907050600567320992903449071499912702852134057591691396924986817766465813754779811998826297573532856862059317583958318234583614368002753494186688735757876739993024442034139880299800901368977535720566795956693833174605346727895108001355162262097445877599580219707766792541304990964249577361648556064043960973408463115283072847055208490467732401599680245232037599070044597330307704245296087261093877576687094549610369012479911941789430738016519087661976493490615875711427074256248992921695693131129302725175862010797242204947794477669450418647083417416475764665915112099355664513730776009724494407864027423282798104803093120711532126378114859820358304538551827653029292120377181715285688739263095291316918064872539750966526014716041583069211094569647364489693508091033491530218306010296381755617420050008920179150633655124082731214710885798466996933322509787406524535235817774330039523483419216507336780064473688803491064897382964001339501410470417454408485867089480694346640710673895903317978826994921022628388701010040160205711384175660187418306172863641429125103616532593329215904137166333302695200011972030774679016412341414108619179301862581657166205587514331210206019189245335662651519846504927214554045271766089090505909181345186650745869849117697691114406846104883721905148565829479706613800545953683194813060969967533964374858715204794507467201323058368962174064383172114478437926175560485904115883212251864679665334653289326146629370113370440850563467077096292487817659733601218940215122521869020173070832738594822377307994252451795489651919228559504703247144496683275822896516403848278577069114966744186021539237712442261566859279218555135596829318269943401794920773861324571059653573951454250603334700510762438595473208240542963233632893738501001108926931918945857801100407422560669611957491868738124755662480326416944294888278759893210149144327533510726586386231761318709008450570247034647971425770178088795169004835479046379653041823612709625768129184717923554468513923050129892119498144599717911631744199880847925468336014103049707400584297663553364280405689650472148605077543841398276106752923337093219297635890074574336871255133223303513570145275353025714777584285286934780420045941238997338163914222182988751555920506903068466771373469105346618869427257775378612064233634401343536895947256469166456886638431864307744235610049912075331769537249155751494660554065176638986799094956921595493801714254493788069947569080062528446106155553627470703953578713055166481913921749379968141381015274268866352168558458141464481371757877418738005794732824990571265117647528411767039344019073934985456987476750405699768579373346854639090999057392725073874825442539059412835184227867152154922069666166754847759606906999279468423535832057951751667480147641942727580558618207380213260504392521530221013043544024801143411926835502179965549360510820035253113992696844286174140878419914958359869352248800887004560849107555071459854698108424686349016457613112138178983103817476863113294058070520015210342621838514484556442404622690355852469214520551088764831086259832671687792122459547883026789061542187058541919714516361944460699470644824292352064210427999802584727223488282473935455118436128280187660989554653236031655892911008031398434012881727697986265347933347458314296050595776527569308031004611732714139660868284538347961099631915757571923619347052829616579773040883224719601998179596905513290361371748362317753659894304158186017569114688243262785890784981361465647112139341061103199566217327448909309659440692369728117516687083757925065823168000185075071797101196667615291668916338921553964631524552921216556282541967651103483634905555497859814532310292387881788681780032331920310132190973724840661661492005242179793140032177227803745640849082373545644844735719094868102512642434572513194113415735961251165603490291112847140205082270718300281284196189214585766770736226626003001690868148472820556027262999491699718990179546344921592551748019288087833488587477428241680157381332790226402323276403631417910375636199348870091908378340413746983799237325222503473852089103550082633843797498177705197968746540643072140282451470679615514441196195727183693556993838509581719305902783353953117241348208439815347547285612157326842720618427666808715709618199951901607668661950226572509065538801558667859613951595565096221340581077887153547517291447682929980677865165775974329900457069458591246827642133392309740782532777710413009792128366720527310447239979969276440389254934185890744552618328424604662980001564483636231081775546146798654935058818502047458870473597929879944171511777643574308552069892852338674125894770543482973532127994768309338690792187044172999746065201295239271253096887656662503695230336010332729521371049049426658441989035880184432050679912204220082923988382948548315264669317968409644499270480286257592355323692615391307413031312711998929161177021052954131528550586612032914895933754847544864785363809120921806176427857982926631931563470376226174149477288393986714690233408060018433494740810890463653621927809606127655927316987691271924459324030863711174557753271755361436659137177646896145663700985443289664239112923297292244154786091010576900679324069550353593915714918573954928285241594825368963959815730945390813761307203150585208413677154878781707734247029840226978343210966040546743040736032376354242546532948724960215752793015716999423729240035686128549515046688439716300833603479952349639936798368236576404667623056798658951300959673417458491539002926356729740217337336050674988090167546224703285107709289974800975536035087609238327398870373294630852982229899431398443348272765684420394328020873740202094465992172270385588843392431468066772869032340218604966154687681403644520356513954203386085973760151327225693833557527706330605053584446808497322096300368150413308444457440680060968586729867659895232703858887703293724000992914259936911177178981682415532998365025753026741439526268037140934873373981749084343817960239036922345186622308253315655128309264549619378204335663925364525944116079993601363240592332306822552825911783719789893838213987460439708716336792247356071424223804306792255633485427196210834638726202182069372242179868500373672850252287418881491539906275426000065916027163121878649617339582118804377199233903157905515950782680254777376949142136146316824523027092141991673691585010656126503398213738697078594040147022280082900500005276932723588636464288231621156909416915038200262058439531677407803905514787064853748079822929236846466514202587251113644737892228361536484221523445641988839008338197372149494180087267367174828411802412296742035090173688960287815763592840027424550143516774918441426790013469223755274734740933554586642945146313322025703843703762382879207010487409881278602128507845512715674916306268837124583383908966118643935327724718096567786767542166098572508897383468778494436009683558106548739694849232417220631715546970327657375155423389291557765407187900435932352983793617560685429936359134959418968967627300269655483561127753165058373278761287858486512366896338022664925477736744224276921028344096413026505806060290857392830747497949697140333747151044848879943638420839824008437886552015610464153926208743692371590427220053614920504936567624280217563829212022275961024315367238327532898103499948539819565637860095387049414860271780296319116291055693241507719962518283125221446898485113234203201921892777130720506158702012704514734007580069294164159322680091928346865198173054199607654391107073165830077099887709305616244570271445806221518604608120829208183796355426828568641006126039915689025136571031295068080265902586579480385689482586837539017756743373143444041270650412844448438817162103623353147686841100552486118335023827889022735312742141090442449889671000233323962900150035350386333336133097834339711812090410516518148714918481028386906633291387027413293602531617892714561792824552982259644786982346006497026949356511684353149040762879015166147270477056019719891386830783380771304285778440683303243042003018253954117545564684100551652522269721760626187564341671296123499048639005652241733206310931621984227629606060094600684466368682487263804279273196706341689103477412010721943981173297567944767605396442254791395652081986832444686214805689670979261947603507454219409617092385369961013172571926533733193866446092431790780613442740628732468424338299411511273318354938108676684105881244826773671822703703793894026158761644198523229639425606708738655476356886167118052444100777124853449886516126006702759438057094214194828913474589494236857516001445103230013738328809950064543252300850236421712098897985838404926892385329276721834430415424799425723649529583869609466355470787322278860634938123803484634853228927534109012931224161828025823816296933677720558245897869826503849102832474978192281564269610684880222025902940667758984334887429605340652463015470558443956237830730152045589487442369572208728730630275268533647735309052787239787146543682262906526046387568073958533438163608753752198834397589467452666307677542650062608152556012766357320677053280264657035455546367834571850383231755906977649972151107024778258960598424788433469215896082978230426678087673118655139638788717635743564121641564544469485554887996269597398043792434131334449612664797259284465625620696083636929558640882131746729610952773985979498927059200402616178530408244590277377403331229501635633056536095083597972321324377223490473592329579310079254087756469189256979786775736199548137176885790185693730588540792451426469523128411136610409687288736579671180933020518801933260521808751966280143442604092089533871663302757251522348483527253598964299291379133623372233005651801447168886169990998402351040102711047549112186497099429403835519236767219469674990943087892615590086711541878769121108599039828125703563239232883012639955570124691424315094035809430732535651201042100042789804332871811567692109088762487411228296070637095859264751333585170840898266577295434845058312871154367292255818010846525980279707610694136968577378887060354939932467290182204202080991628568776689578172236006460198732986371619748197996362784035136381172979334496133173053563505386262623612154317336874209260255552648556497086247183464846819148465832071132264217326527429872410400136014443308744039027000327133712574904949967930874298417927851403487589260216949684484955130787962793062119851967744751368200443731276314769376647822508671759220284816682636182416132162020520053883221268954702429288565758713406448642173319872135930293512175746100386140644883591918136127008349848296268145625588347042525719101511091275555280291446663428894185391243623479883815702633832903403975080156835827421334471325313578046265183251791841766427020736853390406354728678864988785280067222275088446030873832245414934572599367653760742876805284299308208523753714185873243171057703989397124010810784710535969437754800150858515397457201202610691142369943537340219555966700529904696051693840510449698365291238548532266511879762528316516692214633420332288091519849632350312216093123715206184044423650041381554855883181731993361703373066276303574075571401202914530158928380930618250597012858229570566683476170838073690942685586036441012670870778467804020608948699920827844144725701495902670549301707519988970914987279105633568616803652290373850609299856995070129901068259074613812482432475463174679259420632329412648206420960688958321286485790017985187180822037752920028129552083161610109940066643475790745732668961601411342068461998060514157439260447732429077670712024128000369476370867429507999332003084284005280769822320205671539314041526065024186754594841987511715613692411849429521472234636181541078979605948587894447395909707683086798584320874074088859637922991810263467711586140029749555758172576492536649575811864064085664434070690826341389542511466291633789099790892183300593817378457968496548712276105976973925021408329468479013360367534266139062692856516149202551588916282405215301667782632904910350478220727652680652310313277737438712673893798954166878166138664185605305156313268346802477521006437918633263354008448762287169871374772543126725313251590001211465267502054953149148043816546737405627720781832882066713942678125000645007701060468208054117970600628931905098138195029226558177493000291201630697925134159092514943814950795619450698552363278688096924628334109267482050214243365426208920547521446598322125861158447920508066958214131591184042227171528799168461887309114658807816559900009349452091415868788438719319380536095364935452161610056196179331102458049014543026512167806973576728947983038634560660746042363583305667598027893580062992591594495816238817915220514747348797432625893601530234194654871493293361725437940033842208709522218800497155631789044113529057739283153972626161917440661966871251260432100785574150287322358436712504302529422331101031987307934654107461359600581254182340096019010521204864702632995236403783450717534868434543692085171654872932852501147415838609058760038505562765900986651452084408337807638922368437519067769164844253566787243746916109944944419404034725095731994662817535272546017458960609610041198172319747364565201835064179085728329574181381184674487784988966274997746869658968024523013372286625468217562335054024104459810387285522623550046771076986574880342037477144471714956215972900020142454418523283508114498931278927938773986317718883995741570065865008863509507693836690155273222730328684328876366947946126078463513324675831687380843652482262857609528821749865590710189735123352922591259490951286930689822824517578847356674925510071010293549000323766092525396228765565706341540831042369187646358043233934455433986179309220676182348017210789746130311846198755869689406612975052299818199606697003023670968964766660529993856040532653109242495621173065282592016036787688870562121854979499471742541999106283705963681966041461802164474215088870402542836172739034151590981573397733952631136304777038284802731982086753402695228425538873242368742366855324967060755635845065496768248709568317334032324171683506764798509719254606253736466329660048377418074653453804127381654078631556097262605032538000477212553266332289762392660903109595533117936346544857469682416543544771543143969469628058566358931185687473573886962442379039672929138141068787383630903699155484294605873732157076335269539077314185744364460196552741453990401212470179954980142692992639340201272668214992917669221127582279513036090777110938810450215851802642657803628186275381601841704636314646922136050858717813518799482442510735541266870220718319791913005709127713816192642933549961451674223221156941642182788193067555603809231294756504950875012030007619713054464828152074555032981049642965409165462711568410368707293386196005272154488569762912037285210100081977586861390932706518148755392052438091468404878006647363319937915346358763641614461681635413046065818459519215056899685870583129514724575309814713944316137473608948348550892826606184236390697361196315415713450560474556492000047058266479516561276913062401370118791754379379825278063406721737011901995792091086259151441277549648183319376843947995045123948826687993232853036660391748091541496659689025934442256880396968400289894631676978021329803427915664794668518517429865519315411406412095605213371347919949147237389381882535342025070406979386616401271561646231211283003252723878486419448563087227273875610708282666742886036836786998066275842240682422979084958028906004597804758039396406434801965057225168771263567813424566066637674239753313510520649530161266065874510092258701370935389351310044593668198975177880537237591463708665694414823946399189278903626653481332671482311089853862931833748024468902951888444916812411060426289438840766781251797110439112489763786633055112522615762566277120099727913737233616716646612158366731602293178922824030178747254189339499557616672081021973565886446308506500322074965201104130544841313847663316918777118468603138583135959010049150288442574146304672584539237914387382829346563507725092809282290681867036796982553505433159301324012514668007489911966013509153807256350561356534744604208386322793497325812946638194600342631401140309026173082094807039658598061843492742684854096598797364349911024927555680856498049181292817750733281613229475866766009195156136435379504833910054610590010094585124735196901032628912143906593957455494008761107521159322724539655798889790046236883387534030617115922855327260535017267721629890499229372020706117996584544596571986547085894228737881753857106559895250781090878691101018136453500862828858076906113134398885929755733078524643969190380328527337607363688947004895627161366402366549507323128660220169786526382924562859967230987734695122000634030203396472312911362898366106848873040282028172190610326212320059871725672554457394685506129103061179399399246940676618048627930953615771386679392184360756982820124165228581107032696688854074558279266681521905565210617279432429924374396788629712996503816488122945211833069717470641530166601677820591604489603667616954472492936280702237163300389773791317566373778595895962195003999851564318787841571414610869201270158403173417565870618439161989849214408839909516686293867920027006179728097994503095583079848719666159372107596209647993540438890754332778054202418773425598608397579570475474265656086662381826157879504786729360990158862914228763011680918587361057408361080958428433051113886075858613749885098262980545104649210356061750521718352553173420826202044257018326518818306502249157582021539219448108701341624257368359155692597200039883376417031525644804398488847472361914789415352285991001030109351059672420958456982084814154760087728370118806629465681935743575944129446631401069612441972046840188022655819826975708107086655336288204506868447372844145878892443441221877971434613959986210882508446302858170736685756188772766598573669676441869063552875290999125351476943000205419409177120664141226089927958292664789229593151310943622687064085145553991960996047394945202842964585875037329121397385236078076265930714949674219051886360379424962243653235423315709203785621709112295993151452859480134417267832414982679741106573762785937892951101884340394834385176311554413300176458854068038569487740454788630342044812568177890062556251327972054298299539352145109300526279130711027594532916530276137268057450506199270943436198707994285816193051445002910877513668656574897831446477474424390293925580892448299597084676190926216355208380756226140445986960038284032663069536255822730907320665990760879907551051485980872928951000417921280973736126161942045696976492068962895777423924962546869782095268638251496610881445233588207359366267137413969898526320207582324422001127374951930589242807041121113408666282769046896403879179225106427549125514922987620868331252954985814126158913083273830587879173210496713724383489680914918303928310087528324244847627146874536418147969883063216319860502554444116676585337980858046864755055582356580354701429946695573536147855136694843799525772583842126419104426670302546714551808186953034334351339640930469909205924920843630847655529481720205847741569589706130621196364068534994473720051317378003656387507240444416203400803020049004244867734334002784948542263111584430486097063775113801923294828706768479735428526134383411793619967875383552049997426387972765730312120777284667951131826682041150915345069083373543900939300920637757860683210884059719568499310696813697583762465351214556497356862409560964267397167121919484134752917793502903773722415677623753670682596638384103879914048151368097159894144604067788833855694021122286264705065566531771737256991589310399695253403122297415007136954959113799371320419284171521988176194293115163697452029175774987672210555899382437898504023912286601383350316987325207241847425877092192832078577455416247917230837884802618125990126111738936131154654727008760745751658886658887884311506489453657320956250470873314940452218411980643926173264880839482238718340030803904726152777817885027451074567172417164986529699397506365314791092145881711458294488741234646341865340873312963974277476092751602033297470499132842434056621498687106253960983879463157348789477973266524193077873061800657159949798352837086419208642219300536536850776556769209855810161260897398082898162679814836445487327753679286431942434998795607116961938929129246421506097680614759996597165088315506246168455659698142078709065185588575946334695159776523556027754158296210467584441972713069589169327122844801077067625218723754847238052792537393327730926748848511981802840691279747353980546344677524573538135375445448101954125072447755473776724447090825221442682930773065190638832933291413649750557209027892065514400162883329332270507406956253647821938802857846108304341790143830854808973780820073345845186940177132959320510250114524111185009835943751885549143161373310521453601485113641382427062228248252515583132510855732684470869920997225160758216356239288363456756175017175729778124842251235363284485529702654220382038889018910857617055583054361450380795878308745748298876245310256310911019889097568174580098828144235059876483932723305672221970516526264010039150749477130144014483627225977982882203682504842771179074562968893226095674379567609398689316339590810095083920073395732175431391467663142442341560277495417729352264117993796711726040899778225240505645569426324133304007564569789803456103792184220226231770472392219036343844740866551298681554644884765429605377553592359289909924852657114020434336379919528948609766151088422142480530361899460843835550961112083010078371837378032124103936282204366727873777362142315653504276232482925594836006176148351403904728539349590424901821289762587561115800215638202986011216102102307765372665785615320182654136268432903760434363470866664442413761107728778457463301653919320386688505442746546320398063513462925270325795549278100094503534497550306947226774951631839341622077471044433290214592879221489350043412436391090557334149201969202426917461417421232369572259514211926428405781050068561708570013473280255865022310217466633686515052583162960400094619649517828402263452791808743779806777056429010030233971663354472079587450238038591042720262925351741804779023991998023436590177000742417126599198254627494960079819357974778537455565095953187741452655964384211503221322449198652957713665692320133075981771551315712545603677750230138985703921730081289886305333503924332026393208971237627644742875375153018349664136011820026646965082981986312334832447983376815583706130945226561726182636192667776160415719773858575600141085504562869674644478214285597898084195642973059849661038988781051126281122515129524489108906457167948389015043636154843752743231450248254114751938481586270024182895631809409760802946653209451634006499228116837313741574839134900113038360443800236166532696995573679867742632222120883602647763703436611580698055843931419775149021011519845914020912153814999949276621718880310368904659764621908492254792343480153833474679616652862846490360283250994550650456970434699063985739640955897617950326622673146384029020466316998351260592707465310176795384101528671136175852103127375670498665706201658747750452393903740141645708909857112433124725883787980340738483420232961539513907078491041468208176251022441892363413861909804984416118315629171119323651325021982276336969465855350710781355912190175344465160119026343265952552093171365516349535213403801470822961244283725889380363034592933949055422878849569768855987435680538437742952895637052964382048327472375867256936869565222306874028208260021478743632026810400225705216067871569299639990586644790907233396835880007435833550866821541336696655738413081222666369201817124256422368520683568991242582027901761467023023663954705026491130964656955515466904982701159425306771734506146632459473282134061566380766929563349335204905119388834461274424702396045970532093959692884278347453709816222262187790766410865846448124868033916259244076583716024607165866052660684512611531203080430378453867537978902975761970670165347946192777935552137551661819710975437465749074638238584682899748815778957120546469915543134846949301019344631025984969769318707530462980088483838372943035386066731989028703036299970813868875835614806127133482578970477729502631022561784718333585153797384299576074941625341103457325730030312975137756679926004962593129632949842952720603147389391623865558106179293201836628599908612995142046360805694504742263848905406799784214197025515923430300749081714912376900083867988492720409900621103442977761440532902374336293684125776581404890579617344006747299164782836811454169631522096703311649987799985497825412488128137665468490557491547377955788029344431644268431119629296503230351887296393508963689831569660721238657604883430953978640343112482013289979981381958744294135197670733814071842030876702493006622276643089616700157124615135578881492429309930347244604093539876295010332587039579997821722001953022807290910061549001422898198555210665264012936088773697891496854015829990148607823160180335793220124767762523121422760192052392627802002877319743732796423407293308747869690874024483500955351096222418809949318970680651130768112727487044603008802725704880888604182225359677377729836931519354988449913372784422685225674937670780412171277682876893383404766021297711933138353670099832832452991197421045602693678342292563032183878225065831312889530042174816496538263069715851116638306769407307180085293531107575377278065129381723974256455120014801407517149510525041030127812531763459819875219924021498347946692744063235937470473352356046837797796779655392292094621896550198664057075682913549699323131331598506792429973385800293419792525541324342979835065152331288031635975533924612937773394239679827783979641660268754335615556414935231878141029919674374282538682995979967145592990361295510415364184756706128036937941136800000074235677794119449547851300792709196893240722927299844766378589511485613113513689777668688823664328901438387081602318085302908642101117070990768058768429518247288933466917087669323778093245164009129808632367649243632959114275896639571396040418652415401094068517221080374614626253781140579728209536904494900722462756116511657209917832674152484802770955827233387292507285783260997803717246414119301247942384929414798365662778137413884219396573396160008823074233468121065630299706757104701516040110094739199682745611301599642890247246910447967333198337746408971783651000524051326559052328362929790809806230419799553860113272254137192868536253757121026986416858287230020847751571553746748945814669158222460665903835113340658322606305512070572861412875993292235518564019153513391854627943608239195385542903294179820441225381505830305931359677601134314048773637010717134396727396252828578611182721693515485427703432609099325324956129788394652154538694008045534510371124415551183445554713394831663126072376706372512105515733931783813311629715498278657282254354916414558610372137395977158686749396311806014229802593217426794005983435136653762936793203117583249619190225677599723002327830361126284074494272592054043984443227491609308159159942729962394820318217807430986938831023513945858289581173408433254983286135278865856482387761272253964969535986813154956762874359513819730496479341477323429672208635261190784524179494183005749651196491248247334415326523045782382126577173114913269638376671697307278188846946787911034234904241859192339907203796075364574554217133016480057679500740348787833764621088246758677687338814542884909427919419423358432018941550656090790712638849059909527241896431742694285954129296985412787349482434107162296545810760237450907071940641949339474592064207570892156709827599711544236736030309340101335204575382785698317281439055169781531550749335917794741689190372382098858943114120465889755797406599193336472507941666957999296082671175267310679946184567851237270710079138752344657370540882921239450594533973636411011577872722715107914806105005805080857739092843033742491026741983078134695974439979587752394909286591139372957511924723310291654961869290633152417748653851844802872761750664643313875788777598517355529264993000850841479336784891569776908441653722156212720149995556828712541856693134363206598439713471817659841408682477591439169016165353422845760100400439548313541292686146990666414227912486083423337204256715949212918947514013353964016579215647392012470785980754056386553453317743562404207180251498378077302315299679866478175430542044528784328049148037444873846402186555424966193705645993627328673404643399516654597268771248072030396964189275671676703710001245404267007235608056964696837445257259219904775323562293648332293254406337064364476379634997164113570102750976128387918723276489776999082444714755259102638090256082747408724142064317154782513619368877594368531777855479998668272933996086264856642956819481259621580213408957843244436184275934555381520081270405487973458585981806422962271954564510072702244873787203026541796492245296982929782139646141208808928684278657513672224841913726991451560669241648165325993366331238799162794146277041882968064078793507801198600465537982731814592627811863434395513480177577893581324126403389219237033597420567384006636739650982871792320451313370139184585614350172947570921621688984841817692027079427037935544404360831713772410098345611091521569729139709181152007484783700353543640576843527228563421585880546431345909902185329382215488366629305819246006418309210136657117690151673793560804497869230098290488444448868797387205377729255129971626208954659058467344449649084339937025003049648294714086238170938525886951401772037363416266990554865742858912289214290510725194393679380157443109789373634141132812628171008922698182494719048254985355737471632155694505410738113890920644039773652500308687560228317621827123567689315812248820120037328337670600944523623200862619870974712869149511498854608527604570531486478782262152268697128683476158175993815099386195700709255537446774531691429802640391982987633081930563062674254049663082396777138392928224806146320324958548832292249147697793559706366020923528694880745075571342625726270197962583570354851790912267683647688382427205653020857520688654078291275067181606945864085897863461443976996105894182693912647310418886476362566260607396262744728010587700283184660358475448349693697298553574367376001500784411314442745636045033937851512052465086695435823504010353085203704153411529340794780801615305257030327160587446861048809271646203770645995928018475592443930740908886401189541723904796203210034202845009275987683862113519138203368427436345236913336196889519817896713424085188852034155158075390223253567438292666521810004324084030727705061919934000265847780620324067391260795396214883302722786161219331763188177573391263319430367332840242664133210871704515885328038434475473675491711769170902989996161990868713685607030294034678602447183927741088876254216506030493373154841713045835558466983028508268892608012800957852436441199061675052656230181472154679934884173992917919770360192895479697051380951244611463438804964647439014569835547466697122223169673662295673323640091372475648128525201299610066753811564214231105235473185282030489902315451273065863815251381770061723250547800313718582793354794822550765747148126897082249140798432281262444315853131286175890180355937852766641599324897934247080387473543753889762997180254637033775025574223771748657346418812096702314416177635553844501554974997894308525142018475691296114499900433544712336904882083192797058526370853260503106353003196772342991998608097235665934455057201974544185874861057597445712798119687120604071446588865468590747245444961992400659782592515257873947226839155316579080809008084187787363329281971909159779953441756590051289476321489784985211619049880987487462479048375841301710030558067300509789259751029288302708167521090107443051014955429560614946918466363733551925889671438405998405395232732612459210491716644721234981367472077523405305986911282298519343079454340373932151059057195547268268004120193399279205681229839651161422966783484664790390240939428577057546040006742717528360961670448295619709809187904345939096386835094860895275505444161198102096093650065448556415221325499591679853320540934776011655476721229470240792670426544373066876645466975017364100172088461727991445772976857515737094518690672106349227193769371357647769839265574413976521025887721587345465145290642314339193513733677741554581296852962078334647249253872690096670720304775960874886921550548790336757300595407919067474669615421432762255373148797934536125867023194061404636646686964149706444871044844539690442009566332700271211999275917533304280604954940888411071928672695172423047284423740571944840131730355121828074957423243202310706092975660535876588887326708681354232850512835503745875160822310405209693329778153948364885360935553522692459489649096949760218394117639079581358344586047213189362505114397315545356458749474307998754741715114970503839341544555985970490587634498246346113600604824269118199758378552812747361497790414230520103530280260796804943069306305653515334708188501257078344175288269572843244610067148825200490422529811258211420517592045102145405366452725171386765932340524942903835969801053875045070675179001110098719906568521555118545750061070169661575795100037266512849639234033838425599453947692075858915877693594937848743249057085040540349266457408409664462881592350321999886019906281560209822412569540534765912668876681984460701062974124905049836893695096307918608915775086879156766258886103558441823656582947267383151028471195478496310454920744524398261857689413413760103436497466685895070889839789248505221612675111843901535961517869895083217744462093085467261233492602028598791140575957323164900451061542696901114763305563801211900869126732227624150536507938142436250277749914271957257681106802438004284813240259297584453023258256816572346465406892581419463767403683399479198770063437381606497513453214823593687069852130902535171485822318754585985847422299242330521642996424661836736431111550173333912522856881033338981910321957597771837692210613548149746624900578716237653959345346263146301512103663581903587455929413642385456231455028827416087770586530121108333367625116723449429618535691391311156711942973264374565112917090829903218912521009334755774481507621855756328409279365536266177195546546777578301719563659203520922291420195251292855425430702853492926992188688356929404416498396004873173076302098534413417963584371055707950698602189780513097162237011617174305078747833070102745164747371878694978165662101405327045545041396011828020236102897991588343991357250432214197026409043360620748186362641273101439176892433061556041012191335890255353217303950579038993160979461020346031142779110248721145222876573132291400678200597086343361799032601329870587694223353808582963284859184976509392423013786177699023545694712015085019933724945552278680921632664590437848644830808418027158229421419244538727647369390258930416971017298714366055553856409103358976218666260577093957259106278797118376250935895647564064745990370722798830919632029808018490635740537557996321552407221115721130054773376854071191922470665150036321763047625322636100476085278536997091362073632737743330781666823858466735676981658213144065111919708931502252522949348345191922678274820001106763456561704996921449410179565392218884161073608361024832156233482739841372386852326276003355649115948372350280491277680214711943911211138615060773953831518678386580624423709157352104525926067844709500683061041383369026865386970013491752864216615608341772835512212028070477885192199267130016752705051629380734086058458892363397357691838494984459336411676062006496908339258335293774769597488019252449820489783225061528876527988485237075026513819275564732368749049094405759570160119738632248601509295195914999165652648576650607960625269984328880501981456029844472339236748117222943038985264929088459826481455662040914953228302260967568984205858597561331903822446527076346692398968467309676267745844644984089719234121088382735480024777506878670626335473778178824180271008436147946972337163073824824448763796755600048384065272220518424511589023007591085431847303799121214907992267549134871255474135915494041474184290756345403384035343347367304020541272356128815606008724800984560182668094802126511464944545500375145393430660610759504997144654436113735920168040982150992396661198803521131158511122520551095235346624799516695637133314797695152166418741773350589425520113310236595621693041098846162464719301508521826341064182019595921060261952506870790044640220833435187634154706567350777956539991877351806440677670615285553817330111712697859232872986039940069307824482548381018335867135292815076278293018215182288508910588808878727668286425527722954070168843016322026820950097117347504850373980403919989107490631329722686979167428164968318602792728362200133264379597223172454185929294124915371599610924972044023710613770669303105442701489666916195795926215557540276746324822051149790114043608396072049631122484300762849144145759003105555927857712982166684059361130381600435756091174416101833026784110752132252930275188505203184638951363030244806448245185268215040879789046724748777879156172674265617837540733009727504094688871467011201247135462847512770034959821727277576421974674986572207597977419673603016732364920857413484507599580104562759622850838651424318516556466326755143553170611013728882022402451396321010241895907350769757263650993776126831298486880109393148271591691608234559255791310452163948527014751380005380368090326659047583722757933329058533954554414396920283129322185307529722954923954347705836730975992769182241664242691055260829985496059010319191859099665956778008948986184687620231868479947406851253499258006537073108328652706635707618739707461132840061804843171265249829852108793049908453098192645338039767762762440829522988457009415903269161113569465246560259320163555245801547180198373164539062125338990920945961098470504572247679117920131982150343210765422515423496963793903108060856680582700815181304990160900520066043168282716948599195285568515336842226317050394649206355354386133506207097555565612802575023237961999438570712804000551006481863798041090317495954168109003884903857792074634647332850943676016790255005227269015780459196151679202741501570010355675502392413513666556506302240375975194860014435120429844707959383272594443575071622660162637735303702551622534962161287120837559399659344183801168466847179713857807621213479312295895085823226536509347398269116946890404067181231413144877062168737003220533736084892528883944492373488987283129451271497779601102326882782507160707081347930934260457156712289899196982666632141586224408311553341638759441343064978377763840044557338247729968645857405893567039339142261291024949938359867430474451793056977103793385047424661695544487119917188623522398534917446963220625799172594164952710959905622003768330653334421769147134336966184883591116597839485483046032111960136512778515269559605812375724611826290339730237768570651403287170387631127960062049898978446322431301946901813496489274189043220109064826977518953566875774187349660260038659382701036022331321934438447233704872840961352159264562607769150036789585142311523997216210806573935163595793309917394141642343065803930373364889058020356803757623266000495766812441018631700945485634877577666728201892126421146102274930763067574646470412411197685631863699800997254099501768538746441659172239939815726288785664763214711568727122677772316796184010520353943291523433311800436351467135355862231093311538724590187888611111009391890230037570564509686295750794889294249435343060948217553842042977133612837630753124817339270362500838724225620880740855769496647736786506565684133650000163310976332207648460607742914469106234648858131721608494790920606995499872238146358352443695628508228864527915865225238047883775238322388145817744885572708333870342912824098952431968355894124411006127577382367585809165617080782790718273659142880343322696218612895973189065133692317140740751328747428757373504677709604223094476598881743183905071098138636749710650661643340997377307895833208325710133904062436514561113647433602564139320868908727773311571339347112323713253187324251041975272259300602360678724494142175393939095097650390319096266031446799460235997693830251767194731042685071413912580144713517930796116460325428722078505210036824405269091886725806706600815287181116270967640490624496630841972159863093772869001133917573951563029989335679543969026779334104320391263759732769813744559404169803969526173344943092128924264236603236406979229774369603670466648647776967738293963980012852855050866198609534007265731651006095282381528729794940607266773863030358784237377989149369893856219000496678357039176106250966057366616927120936968096053343282809376560406284256918243527289667731094680829295887480721648903025810920989070115351308189296983012069602691684598945044095530594122441489466435275797240781896324048213294654332244867513097287416476841675957381130987296361305733941384637498733245367330524975562610343573215913853441634297689086366083852524704557952419845131610074895769532905424406433912667857815388074544002547736723778271448601880549966112520905271413846385923915237805090404775443115127314048333609196671543017614355393611035242346676972340215570567430750939694530823586635092635598453938739710833571449034431607558824435080312221855349307814432133657779647770079505570092769386765619297820537758442970440627344545860865516422233101443138794830093555985709308167805338362101784687764725110542928024447874820547323497376765818147280805877541240010322969219130475514499716772575077624368189977498588339780264318669899788966689525021926748640440387254897355172894182359063869740584657792689613783326138732231910606232278134299558393803583099031338561122601495142007821888557053269841323391592785628857929418824994657728922985709548794237053275135433933455082031448215056963949619058268142874214294372840002150342088199994743185354395784410300650515802445145704315321404575874713430852408825853221082878899811265758876496886241940825337755429959951708892863090082989905498459656132971338712513012563756274518484380870501741530885229741955827656481015990746419936664014766510711697350072882715236778211425878090454162820243227354682727778621720281723264301853188482748600489919157725220914666039682288871393389902522153604766462937954445662404839271287089658813072331598718735052043626707724737547148842748987214764292104043610649811471716874145630262799347403288335086013233257221410278914121385457433589122974447104705153376670941195607360431857724697920782553675305863380845858937032059645879018770673767321243637739955586316850328833061284426366533274225602178029047418782551534431865778737551030554627362485011240692647721282010191773694279787562026593861850849423365481835364238098101223758987295048623395741754920229000869048243196818460197595946504229858277465131372661451895239180754362208051083224836152793667192285563975926900462174726102618959107433845875014374532311023432100309034422917558172449446250337790881073481548603577850766671563288857294200668520905572296227430203596712860933393023387326752592424970453817873283282241705549851690838785517639444659901609415930954875952037538268068076081349487288527200380065279164358996577813420282167496377094147392389211780046799166334682389129950048945168483899467726586077854241459973371486994173276662972310197790042558955440099341951829317538474792868726771544675060512573860252013483893024693259573102622804265538745933368197617871076190079769588283821475952366845871770991835900953547764456862111766328354441621264850697263704404345337290388618275850197733962348359249796379812672618157670666858767651031435121862778506874610176310259172819177029728259524344915634876047297833595680262679744463684978287663495612275922671805486003317608112582097098080592722516805044608029728071458632909384627941363066283109745933785730853070608729199759036759246600202899589801965324264461921745353274028239334320329853747316907111741253506943871948396850890077205990542570062697538701601478966581272924242892614276192883910079049081218348067681325801924000466257312381069175428632616091650954871630334522938933035959215797015316748487211259429656640990212234701618571640619807104426517531492604898338483027191235794357172034520620820032942607198531876648963020923782305823743528761704762542706042335200189948595970805855990769354328861272198258801964581719411545815191535157164203081287991679229502176092383266599958121378884063607920858607135367581326038750323251486186163016182388058002858773411572934926567451321179465696849199538088521422186496809788248834570106286106757838488820941934749592913774943543162602158319266940362503438072621698139601696860803941825925546674373968509939420942996326910290627959768664741401593409997439579947856916786853638473621157276988760212146802301277436607540812719980002341899905889605284096548694418624705666369267405095478330421679931670020306257203379172651357706656745343722458625124179032622786604339794939256769668255258520476608976275409218610160095213439391798412718940112504847826218812056250420457769441371298011023817597422569507390164480270644662788211878618445316808217107808641011647085269808591116583324169899636825630383351084722415068340050906424527087464443852543988346641280234355348135196139292507377291220926685683182023295634300042899717160928321319811308293973225284158734745714962216462873128681278041237670208261169064173791753250265040945049262803909506402351501611093049481255340393812759477533437360221566265995999536436873191806043940865164324074074472628390164959877394351906979530091994345886570320522868541962394704852529779888921470108860197546593441179731634601532009528180072854519507892559683682850465695902309861994138661650499105768960059324925655350794166340943872257114579473184950651432710291137658117185460548719611694968833265292342037362830828712324255999294542865002221084662813410210284724320610898082092054582422260812693950114754247419582151630336721078523458077399698244240120295818279243988867792433380894693238419775464557395500136168043101911530711816242176818098828630162688120588266192924003881815044614870197269777834489596308188907195584618316524119259300254838426617844850822714549747873056432697961769636282254708239270657564547872921939065256092953597150818331771339660151441690838609572125358318790629358521554351920343040148207462228287707043877499204832462022794272394443339874288161085138372260080537886978791773194344361129855401405555221218808660087253317243120083261394817362623852460893828038114775354257249392656509964854683341987542524306577908086357256622351557511863347974175585103594009612878733905237300709334979889557339286884512722311376061007171414744013811549440099872002381858266690524985877860782395271018272704938845394681286030738296605472347853704655148953513665036337821715006687250413546800530258648780783353413294339108780346982570281519655621297850856478648969473493528605473414460395914745942410671657080574365398213749544499590342728208318203985990736305498365354166486560957874038563086195096886195794625049823135169401597657804013311523337696989559766223187706269143812548824651250441322506859766219292058727007367116167040232644554921720395028440083847284162396237297002226119863249582675488074694601037461229015734352477499544528012365937406706677260013778081603737421359100053812696725482151395420597544809513156789778614114003620951799421051022694400442517013107826262397973124896263436431999160567947531535542742633986249680303115625705156294645697158728632546128637107056845729566619052060090194380282653973229335074069159326224948304336518360312618628681425911961463956459948795535657781579841082647868767335888720546867198271014912488206344859245165726260111337147942339461058686082653829120204878413843904798787127002987637628525807568242229254614577367213485814806205020639374140181938446166824403945427836624295561507519333988166050593703222328761242482923411086539261207674199484095901475449765301002908269472211755473118060548629457970368229539125376047477341842116735189187965389745251891462564526593719339474693995777156941879762845351481887021409520463951682775065137461698321498284155786794270302637171280715631738516156505953108349654837206962438488065876218292414941942088835826364871231892166039326364647833713894922245516840767813571952066689602224025246732713204302299019157632518056745938072795761739230201085659252288696742803725667547470700143045023919680886067616469220810453383542175829329699965499066101092692173891476403968250044334299694819443375607714302097303662582107493109987162515049247251231757190724637910813532562437777545257580325802426107842251897963456301673395447278360257836521735675983064547143029638312265018635388360018028883172672919802236441649878208940457222026636901366209784630905576510504354295005356923112041572029278781275287978014127159020324655017098650881519239187567733660459364477410679532181576390752139721028944881576966412785817173706915010744599532205312956683660900116320110647713994292802012370611732054074098222916246223320204127439177329142567062814919579327676618948520758822402456360660472406318991257987520101860515278384607013910302815303982498009287995679185298459098941042784695710889823457877066915319700738933594857994094092245264934473745555856144021977838120193677681009973914666819340937823222163584301821148982003404431365713008492703911711159167629178693798918795827440118728977164526685649629938607372292316646841726572106533224170675301133301375128630876113523297166344921137672379080291043657507982369735007041244732006816310571905134109814602224003435654551290286053092339170406720396843029981839977662522380458780960747372251774041415393531370529644734198683924684359837992557511221189980161770997687167030846924658603579293289867819603591225104115822134981094661509196871687508589264957055712267396831726669617871903869187560560862082693609699756989333277094136134255825062992338327042880101056564099616968600042310609864932184021241987369427774159781419029005768780548585991613211928747958879441826864401611202838218983561104981149270150168117543993034742493943366652094101643473681561482740362949318336945601755617066805614330193960048024154482915985476330314933886682771870948209063173650064351320846303062207303949159873209065446580789950083438944419190628510102467443233656393153978830543809301534287637593837981504076380251557933536434915096026438232281613549723293365407721726604897082716868005057736501893505844806364198342799697480035392835051071226469590908670116259601455555436793859910240303888404219237628001239789893640493385084050485903510507478806237100389287599097062713124306166496705980106390328075812546491701535106173844112935194108800049069011039011932061934759370949136041600137710875291842199975758536542850029470667622479984570146981232851244614697289971618607516940833203697713296188525611275029990736503859775374665982225454602000550619867312604155115696419383956854251352086683090216922638822287029232814825539545360319215760028868376794087875982940742251066316266289689322933564206043671842067489497082618166924818790974700396123097301359607835416784685542715130169877132257633602972815533753818566144916362121317686343581699180895131172371472543965452649226334869832372449448739958265322832011685777368663294497000022462490210719681227668188885623535479695713420014147264651974843468427335249174337460572060342405337131339504562012686878313637503098867875401404780422669500327178363722967891949298673512123814863026146898345780934358306194066909915882170508184363969440841300913845342110967107106320116399479298004788292151955845948810760933500249770876912587391203725570734996269400887979123992836649070173873515684548231841711277767830762847102435068190052698623001240197907592372559817320285850514594394441857629205209878097683903474917355240723226436955781800823612854902305152995206779667513083720191904203059279929368414715447112247312353362309721885207776090299526705017704815067040489371581797974171831069555772932788958436501378115073352440449370484404528693742563248716612805953399904646829433079178516059549032894667091388584237314986256502531518841753872855527726255169952819991192748145766717061374864407052978281202112766174159297682504454207957707230649426389446481025098622804889762164804274519737790246387929995993138872862158473107796383457962919058001721154785027836754929946558438801215041949422963070583810118047116178610680725793139493036734076375823966408707717592286601053203736922372150154770227888996859426317288946489934411190294875415688897562751769175577841297287418622074858015784000863588420400945952142256024269703390967137930189913057721236317413011560346180958068911851588551329883489787627150619151375087617595924520938346871782429011558356611765669234049330926499243533015675714548585770244198012075676244565806380254757699619361043244021690370254504814574558966763044153770890306585309914663791216102986183667505954042561361730132986709563990471982597804927827994022949916451477260300722277265226828079718036570482828904872318860297740839721009726879912538671144157510827023927472362514394924543584554391557655793441111682419589561733615010303028444342551020625976066085801647488294910245225286811430618800522960234387747997153842670104038744641788099980976243483098948108623612275494578363664878412407190889016496132844429730336346962915690676792181827253227378908597380388171516886475446283847083211428530559302308322113252588700640534045623270015983042790841320252755105058963355089451651108852143079231772136732971582381974484178887141995633223828186869707049930092988007053149768220337796684460076905867339494447527671828322952411004287143180316132005123645152810335631360215868678861903096198171729443119274669534129873050406754732069934503949158899235434931833064498702438414718122518144213946149216821170722011827760643799461050850462441303222546102406748514329490142318148885034717355824358831123001172323356202807285895415480624884352836133029538243622032100849369305023969105374176135515575123304612858214782003417286228324268198510823039394675366209882058593868547785734850457343026632828909422959122306108832738919851163138114006129065761544501317822042252082980040261936627509727657674043648908388406110219348893922615142014521513709589248718151517768962795991294691717717890715891814059742263429454575262005351973287505530155224775384904829476497027137182268012432170380545066347362651980171990612358689617673081549882510016141675096051903382709208123749224480006706426165502205158984342265487538178449373614480899206162043573629170621707696148354819652067606343474894122440742306298529956417737431174573491917511404293507045668123534966296156148510911050914724864433227598013274289779182897463319120746465548884036151691763328043539766403105219137412015520119524099181536808426087833054872428527122785641278764788017969317900853186527323496396124731795096169336978285620809552084530399227606399406093939124549866600872078716149718362305992388142921588964302073579080696987783251849873063978525554274595866704774377211041189748020135498738956441294842796939224736227543441268532791189428833289489433026291729281845264173696406054971371915487805365498910159779747934986034728197803136521460629057825965486006838245273074288410803064026490960252449825745885184574385692573619040883179570576057566571451017779000785382710429635466612427745698068554826431326141215269212857795283007124158237246385231721802944477888305086728095104767792540298919852943744652465460160145684451236836871269842320755477979696937420948062047122407023381210126806210720240740585694732574986886834194443301217283776849423739490134564142027480356678204525914641803044550365648986176249967966535493873984662625486358404855858851942626334289175783279456237886739389412353558836135352268019001923326469136108383895261884812572233932285499437139577481948921652045843506178459617119562740979788971210808979450146017424717884394301342223755519959130099701646475984918572592560666672813516509504200891902242065353774050707281995284087823649412323590716816202818370791982175952863801686354833672168344541644488293925907849198988177150195323850019540792157292166338215167410928155758609909580569349078591242024103351613375148327032214267814899972298828854985323583526069729564958040457183705267727232759097990194460104197739863670052647356124626519743530922355164495764882888187881937293848807064971148153942849384358091676382976468338688769150746305089978345390118329216695909813435504722000220428113182015421259882777668978861665323881111395927453507617779821062829151529353919975296751011525330917101432736586025757135559893030168177810437966836202992720028584959141977634650181195453390162012283453729859705385818127047330799553443484736438172001889039695231505645406469051121543391178782734561883413168979672911520596956048612211581235471143576135776273984453482871536141633213857027170096184835818934810383314765844872810486771949917531573947716623037321771328786121605232491433140089638997553810525019261751317772920847120399410963231363482882842251004589514874273352905083580768899007999523456698269020151364532052558826717970024264825265121641630638960201047496471460358121976906640154011095656025569214752428129200259646475280025357457332533103404090694062836456120378703778998729372740857601723989057302672784456273905752001065398349541609916867161853547732401752094246409553808828758138472645533734478590654878304028944570095149814127983780348487536669601463421404398788119672391575433618634233439258122437111075254945412761229020607334387366828019879842266228260415450435026100196908020322567685848234881904318283028889113921443681328516421876788759717721371608326417414304357819455758723089694985374739409159141384973763622465213924596645942164340986605299386887873418735034042963310288436902724621591281417119064991299751366431658444525973481596367093720085146217067484133131544043945287809517308791934169782109763061858511965576650797747541994751161338925859238007350946802201499174987132038447017938179122160289969420128034913300303769675608140701038989116284902597458644321481375042109616439216263259449975892654951412054963279921920737799977264751124776031944591156199123388748399783000116958208264892528727164171252071740711790190537081717641558221724602289065139521956549799760764146245174917068617999525428646707814467872595555704487372668701082730848154090321861469799841280775726745344191111426559277349326243416983889407820628698494514304333785043555501315972982330692157569640308383184377919724249472902454057173954071402810010483566557276870475070569281246551735278603159477754159315292971442214016858187036229149398313575289781666873160459536187796560137451252443409825228727333094463239811052068105828464226982633307505718548063346536140114813634757316181413030733501493364143070470369838982296258377388390778624887894063854311805101097169853665806818221401170219457886194944397958889124147736196293003130313436988653972068624433249554433747006703438486775794111500298829778125956729890563854731219892329273217727034327034976484285068973718649150320749026817823306893972898303369488811261067339326936236287096932089140985838622581157234593188791144728756287282926151220499183566941122551095739556386785832507065668210698373361471397757195533996692066283419331497799437187067221945560689086802272058162211965127714165538624970946284610211042998469676982998175172428911952065677615777420070580538600058866934649988895364652726525910411161958551240794903144389519257502901491472097166923779890565810240652188873618401678366664527792109778059409996467988056732152965159570230232334191478128582700945489391803776488994505033757729884625266257618481883918100357247950441082982631929529101110215826214985954518330365101181226281206492298389763419614777620805988426933763416497406424027050474193251953212052968081328787039127066313772297198151370971203795391218806026971032905404567776166844451039317232512597001418604107731343407457919051491693054693071167067051995131912366728020982151359241080240579364331395058388262935088253831883242368463823922790432794091504662687226627888443327739501350634576243889052078322417407680034074788064572668836362988833631939608861637846003564546273680517259431994057605468161082649719432349805842831654142305651153618581139159608096983937991342406655618296029695069220297273517620293400787069863606829481489344760948677132775360505234726883918127277904489130749933465813088781949503683457869292599920417623838112962020682732125639382638138758468993384765009913494608071057367840823991940486583368683287647507689309848852935625331404800588783720386263931545548161631442719025211952742004823562567881705362688587811775444164916787677543817055841681128038322081329567126975107201729427615970900574084054245255777122420971664174566731730330364221347245602659982792894115187715666666281998632913224025154186851053453312770496376244587782866332996359983139355453732743435176171791334721770098043166329648736986448126988321672170373328000683189232386316464916612443607022714507174142640852969932619922158657569518417065794807012307327939935602245122849835987393807181343035457277609012001079386813201912549645721264892023782428301050159088267218896687609868743379756647870756946389254874679286885964000830463612301285963133649949600672174748620224765076649046983360236085960806416907227379345975969979106111735506527614651094284016702981814099222586742222839701105987810278617536460729958369856508454617234218559907477188774156584902021227560416350519791609162106029297096869031168800846436243129532663882599752206048634997932065177465969621980732577190428023832846138596206340355428090144753417101535879015323030726050575535537290388546515596555501862071556719481231696664141456770008448843946720485342753303925986465686586607973466197050232276221392262141435415214194014388203336950546657542419695832788349542107536058212169527032363041426963425673742987435262770301637826276105427380398998591594608039912059857010187571609260041339041165427276256078519730260320288110899623945737208408130327958779377106103472632964098186163117896170934566763106176181759355838252691144798134717065855243478462229903693754591061818796325325563103782167557349448423859711330754200173356125225287491781792214641711322871620980164941236458539256118614678463818373141254235238106300673800045880212063934541900160101425125815733825307023961661381372605781639367057873875848849471733399398806533007573431711248346674528530933547804721817794100767838303955413977129458980777162008259609687224764099916669644313155693082834382845526360130443652218554589600608165814909939974249724588680830225922921699239243939056888153030642907663809383354226232374122916092848718158357460382748876363870420170115960855375981875059109957418984523083202545071553152743802217809805672488458816127202337849668733942206289005341564650002902649714414790123661555806665431915326244076519094353638407715753503839085856401072482421809572040202250171173628470809457597049513536581525685901167934561222201968303845122890525645183832725176994290561512830961348703880996491760844974354931315203824040858615837094350556829251643516668976989182096413988138960268820370429593052693207069969648847175542593809254691454113277312305939487580573711517650896100933739128890339474645653298999997090143566129506775380159688810309968536405454864127884903115445675397846400645581102326815045710735767568123790858794021971664039528935415829970980258691558604074633420933073142835534655730506055431737651376773274683685566985500094308306941953715223807877245906802330925494744950247344705807867994447189315623284599715769272656196624422039641924834909830002110914577024925113819369028692596749261392854725481085397108530275494766371763364271797322661032018727722453478403249872728049456409070951252863119733014138720372686947937621273413263737543916882066952437723169900284002618940912969929535457476078827446030280387813965910477175347195592449942413800016138620943646523161307741332303989684556679485779835505757089361070563643325810081837187775928810856578193362504272290416727703978336969532863044896565499948979292405773659306607885142265887989018268965689644742800370875012936892855022228363404746229100350082824270088910027356141080168960360679724439240258234306851924978253080397881457814175788923239133635093831445018703050605841572554805836643481279961258815245078634659222641244532786429819783953232225439972647983458855791094108820425748309029448278590925278171775595526396443095887469246639411877251628351216608386296223075372422756332367659846374339994535640586289323387647836999539229996893791686365641691601781163387273523178859044563975541891464396105571471119776776407963519617937921729045793158031849823090190769979733945918484859648347381311541962988272467132410142910850495009510215244841400286177057116693547974310658703727096098848558111112513363502533544020633645113074015613433526499562157642326220367998027584139960411931082973527994210927495075658597864333686538132976679309980930843491668526745906992644766901406122500184110909701574551124451431813383484746379807275043317216080726488828645173711911581155619036210840573288986028746098238619418248106875599366912939097973561760734771555294833411668262428336383894012858757409864922230558484326037049587696608435757716530557142770342608240909270768277802123482698267405967044245404503077425334921398005026423392491801516021394811970270682003332626677346848550781797964790142738654327879895877405480054981855756521651973759455033152230295191442278615174628900295293897474316982907857583129241669603314781579828550627115073312930055182868488359671893658058284582583844948923998731879316740356345268944439775135799116471410969439281124836071511750035910145096892760397540052813370132810934609653920277843382244534611113226037940464840468819609108167521918565349942918723171798501149763852640127071999603606685442584298226080466759147441173377843790967609952124912354403337025743138260999300820089656655636459751349126792227928781206972940973519221988885766182956602913541548345731737781284701931135488319310031346105244313624923869462557533505858772602860090946659970790917645751886305943877012860723914840722817884428962149043921394708202641307385234975530396052554752685156420675431134717321809723062279254565092962115527978992360567392397134854648764497019409051327541094201902129575183975450692949173882992001328993721093148864882179032776911391544702394804113171790609102637221560868717306425352776265354797663032639200819441230798917811391928204446936830194895774811770981230964288957380803372635820828874569856696574190305992663609447784446355066963840894873080008094624847227770682542985074825111947345721382502193938365307560305407911350435898913681541208717991597051103408428204220897444829703697548549000229689612671746267862397256812081167422125643147174106647096769533547814523603425368446468030689688614265618222462250324414086199837345289773099534640902327426539585727076747613778297460054020005616788262211139846292214154869577753983571432821045686439694545057554617334759997862054560926147029852087576574730518528977082392068081863933787795632767675027705501981722742982546098224494879966803835018482587901163449241410003483108866403628394837847119727977844459665248433525314658661446747891007644364637255314256948790472866852541992026257626832012230965948780182698523221495387957836072487201006677762490534835003763091833937276315568885714023510211912617338092775350582518506720483546848265529006478974804092073982048024192911613748247618222301100229721938943349791886384295762304808188696932575777101467475276438128165020041548581881744887148712224672208339145552717529541348783288044970042464854702643497234745021125356929375553881273805877919050599936550895776121321057076158281693660828594380492719301540307317539224829787736063770558297824695113112887966192692919572076982846694744241356588677741369526359345297692459821822771859711755405449700206305401977465291072085572702533819903251547975507897343833108063668131393614693705650229289623543057239040082357540593721426599366910400257594398126228079957244845357723118911641595569350062046589270989949261997523439271195542321739044462458439228917286683575753409708682050010385578789568907013605090371029209620124745927155818755254625729665173147547773388450229473287872492513512738452195574493158506979370151231430067310342364883054672823020277041701645579860242404838076173895958828923741899638574862431041162247280241638466443406290676079937235765610085373599867592476710996117798173980429764451310867945579551133277857114930450926186213533076217236908738168487932144489308167159918744170780959033328323683511761908662345410047825392153239429448713390574736900253042066721229134598629036665726936989032866065057503691138379752570127511020005843451284672311711215343030409630033750222995230350882669745317391977364918150921002132101777418703986870983289093116524934790544414338791789677973848702726777891884855355255554565072087817652268561479626860164639877430402142218606704504797386305126305557735055471455870120384447011846305168787946861536999987634171525145547649219849513716597551106256447665858583831125503150850470096191275975312397923564796983819315528885619420587467022672832630009914467628715751764381395578217711276998894141648276693601018263908118186449139468719017917967691343540442839762741762024471578723709481021061111385950443341320077111499374957423727140936765835864517600333266605741384419760319045404750497086746749184744986549210347567840757795764596605447631875255357987345271099747900343145268287907822940069225972052264118274419828571685469008265054933211324147641195624174226309684557644346277273414509736318660965309069465477423792457537683616016841022497795985059567881738381500454184776684013453248736811244977074188790493430098414163059003718812854763693199517386223081859912450873723044271061827271881745247957945932023634889208709064010910461994157827576400402809924302034249295547843885184040422706444706305232473628044693427889318638983980614951634167370951624947879741247327869551085939380953074413202911267448689280161151680896568191613349058429124425286249123219769881064508311763608953868319323619736634648348944446360755167517221746393364416978632865948019252802315357063725368368378039230353174689079931386291138673799917543534039882937279435389527966023559600134765219798642789997438568768944572323173013350429384804995394952031348718163190042849434781899348205322939879361291964280831669632492735509575434806267512204603681928003978201163776436618600330188028131804384528915988526611682085104655190684565665348867479727098755666199832400302554844721280130569783603854149929668892314190686269039535402820516861744937076243537064807960184813779791483592658240277308446119953077168854719222893876399090638292938803099925954085107574401619790107949943944525407157405973910745950178984577250401218514381134834247848380411743357439055956698732335044337107392077365757225915590015146585579097975458522721786850801276347089792588388056011671133652780655456659682206318239120488204151481984321826077420198736140219736441098321485156468094716264019142639311728192774077283915462742306911197138578742852284129115526989044157828927149799400791973262267206040465399732412331702457735886864034115001868463401297310644877678336912281048483810682497305191272057686132555386579641065830607324053953425714010673809694735091351582923713844160680329872777425048736954545774091663065482309333939820346220783799894741565372129110388847689371919591925830298644057965843942724621512305618069044432881210991208186267686382960576962782298408772811063882077237907009887439633684247195219047895380530770619419491582015837014628674489377741087865448454747922458597818008666050845133189329509108357678980702453101323168716290124481629696188727306010878117814228774060093908255165100851419035142138902967889858804056787049269711879933333878634100149871840060930072665658541374526461674744807732329604637731146187444203520919574348447602416731801803632764273275539375741896465424296871120968249621684580113027982965785920691009265240982451342899554894366492893518933525300938385932295473319669228824438982701238087307865919947037421081285165310452559164827782257711062248089647103118413594920262926678184623971735226955201756900593163623018113731904925464811235958207432738642596701437853188776349236263271294422218334162663975740021850221141619030249011369200178581436695860571546114700225263975558177442606973659397506412568865465335535379166285130673543150581658341506896182344115984115263690556298619300526332063595626323778426532714896189590196058599211202641451341621912174256665396542026032769922229519099190924453755612141468835661491642625644233346644035793786739070379841953728631380340426451232797020872701559219185613788091748278767117825034358196892283551188578304105896178901371123844863250396371086584519886480252527792189542696893840069352736815973759954618435889499711853011532210097896521986840454857689075199737706915928495240759800542438298342150577415612611430984344855363749378306256436781479799275249803299943404927881426622840420387075316856201101236302539915473331796424712612188985765003662839969840698512766782040641854219960285973850881576588693982249241180065317878896697349887578172062124241007018947747682876452117789504449533678299018956339037734682438482031752629201524301262258742118538398659534734707791097811377189093013363507820486716734994364876623585225424597240882194145826378762421616684682231882004474320915107837878069631812957470368101406151645644744261313226855607679512702745263145024583089307775267806876818673464386326110051931258354282932395071525995868627832774081399719016938471218767142266867257853751380389079469780513928910634641640497684757109693500682131387420410532438824082136676569796783419332862595951294873628207620049417685595031825240376997047127215472988702152665501911044451128749421665402344013655853143009886813224416282249260057178553778157916806926353904447704004638340012211293629084839434150142277428229374924347870136691084647574562115314878176604220578455054531905558483439116262931590044763663934945580110622568997906697576130415996822475501905383976626635943553200310511724395857744489043500499081964481822836228297562331215400161625679655674468856745302147003051503721562181887625116260587565525945682222752949258454077119453881151609774352825891590227473263826349370967334116478073467999182845523744657421538136211773626926880535868255796042839666771502387485668441689829704588545931827428352845634234463820560051372794549829578275661245873097031854375840303351661332983467696597076034004177011474682726351496172366236347314258474301451791958824001035032865813411916074719349856956020263151710754084820159398443876781083841866056483769321720308037480685002476886965876993642021275274024401447995885193464993921916825126907221589641504433640141403578010194956379831781880425486980138518254074973486791104274795411275394624545753707868765054285853626121018462333940391124406366975789170421851162668190618968396175187246462858066214991988117785340796843950875516877709525036978824716892109454665114033583882044186050321513188907531713536445667948825902471660304455593587844410372286563281131297535296149843662388773503357174701545971620444131692639501192476630149826836865801962799484471778633144257828407024536728282191769040002814176295831460953729159884205500328003626663519684639793211173294740519093875745496057638246341409436360679711842750543947422134295963001256819317139504845448939948103363067856164820659133944993584748194215085601351165517130844486475187654974178925886347596854521008855253781832639293516974426483000957302404556591705188141833432093293729332209480030349325635875284837978524018076610293553720503068432773336555286181825152862180710435466978395936979653013330489998207465572234729783333176861907001273876870986685913813856957281520064408095576008836703919943374414909138983320979939116890814230079826965881528775551085008955173231321992143574126252248805160645613658130226780292280023557968663865398482861356214389166464322885215115808983287953483497747027031496425163777844500979026499519530508202318187770474982828532237049069335693390344595015394632995063901838007181765819336141090964883887437083908787750005674970790386623871521810722612536273369106401894891381114971351211661638293701376236573708332909500860576279990882181177655696831507075776825266102074886414286092823818528637690253457457009624137981687134195920780306073402492272747724064110833338465172685618270400882623911428751407294715264516359541418817440518456460581990045875034075769743497775983568316602966310620560488079655723701650378152926253717862248506040178829558586118903119557766713773689366938971435234502885380537199311360377655166993411300180907424530514474513278791666415326914107955215361142377878404454248909995908193608465978654487026007148815667204724632287942539384767380877932424329624818106700437650164957535710401378081078518342750474601091610212825217255339829069574806898675553634894716308090638322698710579636970912153563589342337490170740370695459828616648727592748361727714872904057338715243010018560855532916816966725924325160212814833140397004995503965251866509265121926617075218494071106948901745478767878199455131765866525379050580095435480579632019574171629230475443491269669566317848686950120792610676058894818507197553210683366007146761995748082588870727451873275358228456697029161685648896659721854121137945082854650335337192482299492736260490291181858843566975260254299306152431031648486750515895078294439142389405607676585136216620863822423371378200796980111704250043968452646293849789464317212978338415412416413817754833762561313542615480339241458062848629441867871795511820505676614579509578900307880676385325709154676715346903122677342020071613582518335548094759408255485316397863424844779849675794381095788155914342802802958439901230518377245922934619983903780526264771478319586842281632383323266449955998283091147218907059457573203672905419391640364329633424221500264534454852992498882513494159309145728320573252420638929649656677759371472689423611451305369784876584354991124428319050832828117930339753936701762262840608503096425846152413411419169342719666330984119278791290927126081416053543275959097643984799793906040472713262226944344992988747509170772327058878937118491228947316715229654174462052795343261360546228966874256916613658972938091952393578220291449115491988151199797103377657204259641632521673048822170982794713792645796169191612075437619063560204846439804101431646872457616801872992182238909523877051651188484543141515182307595818638558463864590561752123136929237571315347735854959929510715747963311845446868107474100653473094039323531023100143983823465148626567342351024780864512959565052093574698972416460069198768176258023763449905218086312538423976288207098408387643151756580548714862334194211908112392074367585576851616589454463567756023075690789516169539138395179831345323831499343783240202986073196334979711800218602757670312542847090979870454493069685990949995749599020509970147542317298859016380492240927566305393278773911915725992468441660510055510352200019107819666729597240320727985325265507383045166191996006382013462853312950418976350264312928566318224950574736588340719847310793767825864694601255709636329764887427256577196250995945373836611273448589302562924308877888391946040940423054700879016367968974202855969768376070630439266050212422733521629242807632371316671057532828118369413293917461331671383696524973544638140513553605170943850401893012374855563309359281597756274558929935453770126451290058794457064406328173065648660953656807067454662372122721235483148499836885272615435496967557454860254741877693338326131924628347015068055606142249165192427175951583410344961890627812630169316707302953946113554928569216858888491805196767412923806521841341975301865390459932679387182097996457934831294036751885563839176519513726360620119220802241773477587574570029259574921069121888306432103002817444958596221867614084235115397533544589278327951454877209775374986685113039122269879214759844216786699474105222942752212129508883629919299678068717512438305784202540355075644234911946245004709847377888365460976717249836483911036686251782785110776616629793592961546183913930401096861037531357231160910527872188915685435242852342762460246669527745267449286857731104332740960502803909624536410026513218663694146668300189233230218721066116983365011861485272787674057169973764841552645329293813964934291611840114559089049490070961649845327530654643317475734574457888343391473572781177553730975648933492055668264606854811602081325176953918699241140121234028831546227897450612960262839860945669772297611369302301634077604726757780427809186853367384095344423477186036647347788986797483923827811810872777711949806023068773367333722553393707775857787221482091257063204472972042331987119216768464755731231367936967171655778449944365266380857360004623022782532135280445102661057801238558836483412916583018679617978849003709198330694628319590123704177946910143900183839576346949059839044802369115355473170932969798798956185502333568063974384675204595029809517669939100780311022942083248551982162467864866045043174385015901282154362790077067434421702112349046920737455131758139736022811471753667366832848361876148329776807033475463857417003656606393195145496415916393973349709362799269954352749622162847768098540600795856921849147699000608311744503863060771802990013053074030251283303469375283409667154507259940199780938530432802301641959379776129641037835834568462439244120689602591583427875441581093032420452302583507145123330371674304066757700711276255853045503552075562237264701096311890443171997414691245778735409906799191945638731464344947954514312052736695952910493659407557032940705766007667168822959137756478118478743683700596633490524334597366779501550169972873496985641292042842850297229853915859515679128890782147508575032121304848806082740937229264325860468282668628159589023670198732128141396026973948068060484911488310745107251555686141818120238792299521692944739160645030170804659547089335749049595383993653471942356863513492234374616243105378224202149446049295546131124405996883307188532742229340254489030653597155362976518362184147328830518893151901056429373080741997997578847256814561694539353263835437453805127915582603182835171008030453763116247056221022492999867788114719156609628555092971130074278872958165011109733755643546998351991874200021537703372647520724633747255833526366668610945744688048661296086776098200226197338390208966667728958916715143163645669822480798995735276578226905409109561935367711150855018428203669499842906055371219895776600995346397482901028451638513897517142343677481532562135313361908110029676349103291441608766137823800332182235013516331558728654193007972048520922908466911523684337649172914993565880303395409436169828856732270315148952280664524110409732331613837166732240835051608163145469337666994369891385372855088108602454886800996731739736399060152476683184215407781048608278211472137562265416023514793360411229495723872848526438929284909415451442039256820498330646815482586428903023534529412787494975512581913780322853421271493757331086019843314361600430758251934827102320765055518994296205552557297924397886376634522720450845044656492157250542337697843652565782634567330340218139852168347079943580042833226764491374082402644585046764679361347199573762209244053245768030873962049761981566883868065040725383393695124283200317847451906765868587097802515372637605330545299696143767074624755146546979873146375153063757433501661741546657629931573209434148944803894231973215852273848213719932129718106086693056141562298353684360469131590237674816721936496084496156979027017377036381220579799524341757751539821014837852416792592028423889729313548462013339310654927164358105668426403688064813009050414138538057227658886961757228675387288208711635765315669410461852879220798841096763668761323596390967770815542766246804271282735105560298492148868002760404443871536531364852748299762016745497188375702431345847769375580522059657447687316058427907574918232812500127120300593510736964327577916473324186523580836442290965949662395793751368869471364180473144194709507156366446285361192261317554092491278082179132527099501435936593925660330792733322052528136224546383511284033628907978355343210596676365318691658855301424359903143813926452133235048764877435040052193028810007611399992234427619174455600457986121361993888723580416585257434166449785038999930437656477889399886281629378826882324772186944594886316415768734217751816943487290896285439167884089946802263194870404112108464085825207231106835475160894429921086744946986173497898113147010999460300814047755115542940244251269782930185343404586221310831391269931623305334254495328348885140341145135118199217608902106599627113785725563513039279507548314984972111842590225059834575261994219286510981863376941045635454560097011156991594294072775738723112048237312654205815981925313823782794891325872078088028836113781909787593128810449921144017971981490633756721838646973201392159755546920876904294154175808002802589054899353434925409509908805959723802779645430902822693595186075402186881778659380421425475643315636746998430499173781809581138871218949312423325902408916813399428989632624760969776862664795244284598080039312999902187730393249393127079383145830621127729546545932240130619946614655570259285398168413619521076879394676392611517344430651295808195746980967585651847147844322105185160537456585896922196992056034953460190192238917008608901774592043470680392963340451027703337616786323889796251326062262047861781370017822311544889258970785230566715384992526307313352103062693911891986286774521084684703761961946073725008177823742835022787617870389532397205595294314437284570764712659971337153191895574814697387495036197086492069033696374195849399059342663499998977384264702960709896436069738689750522749705562812076589701492356936756551474988597035983321679844858165722821554033444591696468050637751957165902426520462921885424262852268150032114588963267187710818510179723589239590879482210758842262607913058166230623398125854764491361567533608955218123795321463080680391729739749178600643689253669932971160335546684988831014192103534856558701091913198092375892700724901870587797501318778429478027965013911653649138016984533184712288217159142763530992652229518605569087713005890912304629522158550392275842582567020488756890073069793256478780942523636937408659220802061484666203317937330642966122164374255174287572201684312987827491524742299901890740128315058305163829347651832971560094283574072958621687494892379462928940943246062434889884712209612786367455661653959476923650129048091127894584615016064671818056365046380948324571696509162610005783043074024816122456404962739601729548058753779129261985737024825635733827569156289998079204390244296471241549702707328550090262195062246971658904496265307843918152036964024745712720134622604472864670984761359974261756317624425159268653506605436008724170678915194317779769913605485273572112656753372589787095544034333127474709977275329271428738810528072957472238516037520571379147229997004926935326447689729579042556858659348683501030632431434999159307832748881880768786563168025604542524102381254055180957353184314713726667298790048600906406529730680055586972147704482540875530603226786459542525054976260137034671259409295466101910595848837430980760598506533858711266531577788085575912209824357016282943354444808681462195431154277029806762632563642720100932744620453589986001614470099955243722277508994284693975790483674228309311048425826177499514610194586048702536800930372198187470145729217617173154923885781403496699198598834664293158748621915058760159962520176904444070683043368955157582005090535396346431589434002025120755797746595883921568201863063353640238563226563678651146870267758764562983362795698343425685314907062222542289664931734190346717187347395375319366121626850497170762153371995685396488802406102080204268319210359680251977900528044981958783659084374166851545715949410524970922853610326130945679236078098313787995854661030823598806128153515836676658146974690042096882758616874354964236834983674530876285964995918740595253201044744633013059836046643993242821857726987259707536085253932355457452341482751114009518153787242444973360044300307830788840507936045029183975014369599102725877480842337606741180722302220985745986959638772312714843651648569875808075343685752629970100618930672060674951473516381949084095873142282764518982876708041619620820278156409379159590311640845450704441585058717775101883862266043634857687214796283306453710100348783132431409135847638657669477431808999578457840740569968252334760310016233339380309320951179468698035433186781160953702853824617119464185701412536035743551417181051704450340010087629170428239783811513678433616537978029086885647671164083956070287711622187976996987571338280064879826219014238137964903573979102101181404091918313666028492075259727622466522677835431591447931310719954670051958592122737931488688227748256017746497706081544191537621368169396829080105871144090696071729901354759317404798910822057087654875835318359326840112969968532327223596449262715277089929181327676405553825343771980994580150993186611905349179090591055378991373801179797316814713101016888347763797259724394451562827165539230585161785085863323273252577236299090975535399505896623108540669202162051321132439209786280769482355354724994945331293046590981363056464568328655921046657856096650815945335972058106552648040822053046689159043656401419703471802389929092501880785715106179778907826044597667409707723825888170589984419509161442126931220071292073198626771480347694455220912742008710365918000907798252779512383963759206010583464317127952480614606659978516314098450201839625666209221249562909243285569899629517487060603864845578372417508656171256718033266014385466473039110147331901714025924280878376693722446465851983820527547240239278833219903638471245949471661993953663316988186642260816793425880431966023877169387573808476363457161874442981414784335613202907343224417135471798157464470645543015392558755071270601791190100990863027021350855269960683699497835980504964987391225318065333832484504461170747472007348539331310413574915508435603185435107587611132392911249139858330749955546105686172249520221060366716578073205832961556626814892095015731117977934511840762410939555999370784930158956069733650271158557530562251131938391644905345655586704402948221784067191458866337215367502543225023069149433821362990223129900110376841478930598999027191893588249492262404688106982288540933117283205687762863921603329434671578151305130363194141947266067357914853004068106014714113128817735930202882068655672295557576799564040007985929148579858502866270738283865986554528591882742011051140194970160982219541256886196118543554202324077333950090995923574359250971927943103760471055325157353501028479435500974866371009704633713124691073920762356486503848667449371875477800406490020229738057528553175979959223472369137371497272362937060982717676647329072217596065919373624404886137768913085988821802272796487293687481617475345791205766964031781909974916585780623882615684310878899095322791831695573939808087519904541239533196978132951523002665373031314887843780856282349764832493593933083867749841716570740272931271214676155618213568688459407767810314976901559680578791938185295070223809794858180236989401045597733322169550370961234389422249746829823445486249814952754645794700228338178764277432234259029040535669388072185451135411270256254082630428757324870699903780196643103138802107344007776080390621702702081545176327806910754913009991823850158984381019056863392807764341320129029191248290730765920004706740329731399755364826554368522207731213146003087120040602656342050725153901173539347505161044467734480873652650686316569891673486251473246491019672950999400711595590221688907912601338415551722590901888046880867922972610728333401895765400648701490540610758603468625311007678072603771587930097934039842801117028645883509796677461940393881013700971538456485839628578618043579898737170037974184460995248090855604928599360135268726741737582236892832790198322085860247142494014431944237903235891795554740483133522683502793746800152479640155249956774525180541482261484694352794262363404558266746496381019219253753337271756125436959224134373154940883260835086121653614395669047823767872202043033156742682790467436566384200306675141231078666769895066369633019429367274664312080788331845337634200308680989907858610428071618513918665280067966373945338642080548299455583831092073816870960560754127274632890310431943498174117942102029914271461586252046824187137023602660783317916486570184332643393878071751443103912175384107295542898069001878173086690008361909252365379680612667967183815504891034004701079506379876545496045098611445923975286305181324730095412572111123012944105403971695427721385259724376144140677791352208961869260307108783616913870027618263231762639005679483945688953614665376942491280199643831173258282311609009183626079538948864026217324368403077987979654626262109919531179322589645532491346828959667318859452943429461796642138712531719660992329294858512880757626591919319533898877157867250553561456735143796081329744923211116160948742568435130613172475786905718807410850631793123327741165676847767233832181668466709881773122321165197504730424308930687794183173231599417386919134764580772639772895597047661719995418093433493154553443884237411734841358720773099897923789227850734676819450372545448517128015398204184901288341406862186590488256644719930747445969149425081290192093195165694845549997725067089709302613619994507627451879276581619839279720629931333736926712366292422574093533673347346127321083075715805149456274625029788034948728841213771525629938548135359895316891697220982110031940742735844776170427862705813984849817815367519670395690790811183187149624058397372952393938644633029752596981202644979259928715204492111196030242530061503323554444700518133078223998165498779654719073805059533381592895494471418972034702144323956835913995155030262446861138091903076162106329399277523237339762537724346607119563909167428281812462145211237356370748699300128304356566851504727671876841583018540326290909852849044210189804742613016075023763447547218615059830130606602680331605465400941584079756735798788278822986973994729862837595226574351732277925321157790364814985363776626260191692434980236719535861591798163796772929021930331419626313447316846891317745059488050826112241211349772578403829534152295697601256508492479840148221058524259352049321362676295759026995291266926519910296765085340612250874000397330634739382583748285176747256097775887599031180861736103625003598075528735994904621337627575259640212199284270817233366554352404026444210784940081204964733967838840092618139221051886557753865115863298627260894254064241396474609113409342314859717900429277876592948594205304359997892840758709664326541275656575329626310572643711661351010096224323022090984530644257892164098591688174765666522179080034859927994506264939717009238230366971773113491913743600315648704261756504884767401901335294202034783432219328664878241781686765150135170713380710991163962468766765575727860235629543703461304096402455314885260004216906636773182903767169615168454429975447893698133448738907334190176561488683896497136406461747137668630914885927514775447195862517601644511340182317374025201721373096923554764167545149572563805912153615401498248351639749666431775751669168779927838625537841531326214588833540414638406915396969969614878351539422822573266712223104671157475471943644784350508438064019563999724083302175079790976103588440910801483903076060472243477012415583766702540280147624822103641233550774597456823142678816755546902770628832081679130675552092535662558633887136010513038171832000477837876209158258306966563872425199383626781425356059854383538346612107170865404741673110923767264966437709094011977534059436471703914777546194206287753843339209213733835444772149776242773335533852601788261871667865431563662901908801256256061338944195949618608132329554145343842674500410762997036355103185715292122414538936081201209919162226761744329355325268767853445099857322410678881260122089021107022258063648055531742866349682448727141528660473471811071748924356099807910258192805939815493621104364852116230228829637536685068935780615984140370505882700199616188376972919256435924887367382846142145243212262236584934478168799298270098712829562220079533535815424926187649010104129404954387780858596732930486351169843400471782418179909903389126103079237151852427188877159854394809957968488538863232339027766638968691860397820005113980805828866891947373582007205491606835965850260382156908271998092629675699552928719233709688847817973179461039829818355713066576570241229744891391959282750702053440704138897235618883702150588111934222757962325243474438955403199180194961852427459301584835482515483438392878812272964064950787277220614322764843730064488113136229095983958397472877284685224436737335438551240533130750063265426789422290336874251816855512623231362459330100364190435335666953871527375343361014249946500144758646283957355089763984307927707338850378124833230617892573558305614136390167568864425532656551018463159171021209287045494838023618613763278308846685999325215011956254315603691446766536102290378803169554829317147941742911156016351741790855977035773334128279401640964178396898923569748938325033400559698164178601118922532562607308651272349585649387017313140418944969133534543490154019148566776249863819942535336735290721108160835729109318902247310257783756379728555375434299703169754220635933050921486775353466647706655700860887736750056288497467815105417587450894258177168012460477286413776703710096979259993450625843675858582651070415928434967100759005704598968183206935219643205047727965478073116769187553895275053766935279442600795478769482195800993947972242690318345010263900470349492676141179890407468684054545680914365762348083993070693038112498392244294836983027090207201272123305542545107475194815819112736029545052081064345549604622124278142981854473699133681869694301083617140576564217932387747112682396360394611952145206230381968952071619800534294150231080538001305274494175132932445219202768335464963205840466761780885532079039316579989020161453727957570556199506874744674610176477868321365691655322129849790904002727975236972946343874659113491591000435104835791681912492332739934939895404769296913316778777354456849253356021101027252981842680091820337995201810386679029816887507535855698827215543323347565211276651518159662057607055428062138482210287020006072363526828678843806338354315643921612729173253001359203080055230084096983631216592992562527149679200811499940836945538123854702648659658469718281596233137110941646616089255143516121470334429469265542692405384065027745176951620279970510094967206488057848527774470883094686234880999842241177702170544103678370993254889859087186093410153892910562267048980716247696887290887921223439470853704377731819541063254470420086236500425377772409187089595517681790534021716519256451804086908221464505199964635644733994180034288647825716857807014822752476856063306740034643875009641141473211142296416605969552293145017749726627488961506866423124378274746801319461135231715126055772315288226652179710519597858221919935044340988014061400710343910303282304424166592877450656337883758533970971108860869449441913439999746038130997747866056801945066701681392845030975123589339835870852612470437765056523157656330753044344409607998964174521005825944731501755740429595638741990536318576468629511008691250527283944119621731318311928885273202200733977108978600256934331714616161645346284311781565709847677929415119967568148737861465049918498402457763196763877052603303098115216395331625118848278291378041561569989765510112724905339546715858779339074615928588123487844319381635358635137323448127855963967355540815802594863090328559637421669997599140019825474847136320417289407776727136087804770928428027896087503543349518714677439963056666594740814096678172136038879216870888843270054962677683681594740633491853549920035495761593666694613024682422210633940856474588462437844086720537750700221161813722922141801858605989890304284321851681178270398989404267178893671347984652903650024994630594678153678281146076885845673855185518051303301563906302768244385210765031085369521512245013524579574792249714784602775914581734723123006596639029273404731076784059942414101998894048245708526396439060698686165992125736068705475156912369733829389314391847782766265864337480301479250024455901244006575272996570043602135431636444826578290118992764416686602091157870410718415833340849829610064123698799983761258389313130604761557760295263693711769195333189457344134584106693800098428216752024063384765401117301688178564979741767522855149255173030407512980399010867921738584255513495434106430390284950826496413280142409762413819682315856258635405900420770178600764409982775625499025682668060209881183723800734640842186146525651541557072608669312547269878246229789356364899568099877688747001670622702008526494089016425140531805744185239465735624864086468567146245836137973058151532585421561679535909629720202540327733742689300717516263363918254685571711352950813539403719193622821358362375762552577530825542695396720090442711365301511112831326339642361803805890014991549323295720360228266185427572325497317848239419796413592540584247248070596457535425855587348034828446159205713681448402752172562567341415009544044923356080293464957023348678402037899733143021308834239765523581321688490723052912454892591013612058812395613962299802643120289826476775010824741272176891932944597333691732946923753299271128515092322425679157210013677618535842214531910160296838033662842376285386149673189358244685060794737365867707501399004532104473104380020884973082978411228761272530790161480480723367213760110412722205862148174934696274376433199522095381933034716229835263806253075861412901819183730063805252333138762682882901394128538687473036274638467122124110451986333245370235010370129055354705396134440724660860578904154954289379503547314910900861180943936210328730245654786748602232719078400613873399512767291908340791448946937440488631120684887430473020062725868769125140804943284136417861013148073615669014666386441208383430981341045335082394034819823222301383573145021504990187690620108057438034294807949669761095536676225167138810979591893608862588731479886738279089067467542279130784942848209457972175105238209933867335398113392292817754116472782426147506723235095632023435361323880040759898451220308689768825709464451959455579372384789980795269566758603156059047803162333494592908703804515122801043144098397013853564837214364600163799194056554319713322980627981388070985817248427693545855233561948047892836238898589481330851942122725075549089630551316075141315845840967453405584143624329470509131665676071421549346705033827439162252957156984962265384165525303758701005310955751449189299558696464944379148880795107451598856821948600328719064311188774457641941735127572606793986719387443579292677766484689224653095202240633899180122751332697351150056222071985196128822384138070858668955966756463621547714460913285672621852946872905616841188727961835063762482672974513321260847242788417395634469194564368173617965225990815220237010405915161628864267276124464339999868115379576424744362465545489043699134274781581034458249447794885207060366851806362157615403473411688856245926027499492927797509354364030786575264925797368968400385264764654374691164465058328736442563844144968316631367460819880411506041248216675425088097286378529422279853091078229814553317156619416325298706908326493581985553783133655332612330935048551021088083769795111295636926942821875714818231643358584045703090928730330533553689484114810006947796688893187003996855188888575553832625562877130024706013866043517200771780527948008784924035125873173724316041199144576250315437766406085106059096853281128632688430541332336173314261895259743427524072505244491052491128589064536700876797125566856248997376720085882017681001840907002639129464408858120971459682466523549997528874723385181956930523098358377321951659249812201557447303812721562904339915745140794812811989840833605154417963688686948981393797077532260732921188122602914758668745366477288727256613455959046556304173565987120461670591676019435686244159458109225104323301175342439587348688497280770004143615822957816631010177112567838738877549621990320651411657179387398174730520959158535290380468242947452816275768241987109889394108663473215791924723116170363434935674997239401187693293995742123968818119505978947921931307021960320026937561579569147221080382692547021598064683816097855180794661344880584592756959265262152107941493281380120728568034894497515997332488218935723030036002312195263630890621504193849569145920758623039648736531749120912678919788632678041272709590406517691034750322233929045200931926514540558035778070800258886393037884061603554485497778011486421368012121678586186840627596975614217766322772775876766131244127901879501980748521284609547613501511907749165144558756082091438217389850432626956327151916675794388233761243295254273633634075874162862949871773652263263456870488115794736136173129460031553951001181594641915530068756053782085144702862444697108937685060442550271618133244308348831251518325322340177227654783790764362855620109029542190284746550442089982199593730673585740621973798311346092754355898075940889771646669485359702575930438876467954366525309569566327690828032923797072110761441040074229324628982118913387040032414387158714985677010562509814326245958093584213260602639750705863588976565492145284090839308690187997430416372841647882382133020834097075846560412702852584288517202307200613545060639384166358979127281387277047830979378560101164374160610516668133923661728407674089113856608384671987851953346262996638615921812852202816333962118495454461085203480743034833243087798314820017785572774686037443807791818714738782888069326784106099140913550162504144411486733307949983321466850711873118941875878801378886992883166253499779024711200554721328724778045542575115598194181019431421763984325315183964537766967509326387894103412890176860930302608095727591775608582941268977091133889653905274937566695187885363985499003930823595861132882567412424621682814975747757665390386220311307544980854861556135431091110108448182405249288098154800621872628647581820889883406596527302702378193022908921796500559481147853036142840434169744678137374667420907610870846312903530138086371543997200790344086986333852531223445125193167583800571317822415071034707795421013924313785548600353142545804468721804114696348259237074047766322014632975452920381829732517831075085566798990013622936697318000932400031176739240106428334501296469171973077625894423039261120715660032610094184269315565426412928815731282333082482012761164561168414622939452947015650783690763511137328428103368199098175407638595487324648713975844455266140826839467011003422685819042107060561332691418708569220080619899808672377700704458211560269043839596388324688139940344666993322097030719008723313752367334301711102746911897929834839487435409482014863508376434890178346355164350072770103018089749064663329562896204936774608361501418642567057851318770658190452124445121021815127316870034708863040646768937357660736584368640226923867881295553586350695507551113123077782672583138698302914807327392908170619522812453665407818397079770060032469195918831361795289993571108292224608310219426454550946779166727587704696546874220298218073910355042221416525320385055674828112425640392736198198206535052884608229868774135503870671855506827145197204425525958642201843892155982361030581359598032602340333050760688671287481854923279573491449686931510423543425215556133122245265652245842143216855868056644681169702283132012403775325375953109823032829898520552689474289650096508597603816463257307367896756400258382420797069950591331781897366670648523005094885922770700136632869115395877939177736880938475641889114424556594485043762055394999362687329501736274080555732386900297339505482177532180619861741985004383574341247019596211996273089898140445691981712820040970233759032987231630104221799159721434268982366637659988303453854415577245834653928065468682913212193524347179945200673884998363279160291563354531339469264545841767871890108814189748554686426361166531970840576026932157230812536827356754459095063656390364517549266183255980419572837740627239966958681094610949428994572659317474375655075293933852065268944857647438230493519913896039340159470171990676183586105902560135262974274427822410396167112706101146373802044456122143834098683565168132201331668288926562430559046417391161941189786981349008158025788804603164562761354271214752577941757312482722189212505570124729595959962616801366222234016825232463450603546768438109767232718714501334338337919769006172726604408749278765047727510525708602322379123585637777743661648418334877106724792338296982396959431386894911599129941474266946402066792257849627503600602210667239486129234242921798126925218277523090023847086741916465563834269083964271480388574868656385267071338048404241177252484781290314938126769284654273010172472273375425756005129596091543941385466142164847188541230783024043645252671334895043547402507510597674373075046460731529122765123732013246503559735819809873776366151959902877533272536268306058194116266030408805861228679593071249788256970551086259639597748858535689795291848343239503091225022983735387317328972291154740606107171177800449157426993949692554806408182344128355782911033829927572899154202596667529979846689323102030880145585264686951021065842641422858812974179920254443408275481848828766585972739322165435795777739187137471243025242791585195304704996583792014915998384223526203767705598470909852318082663141247357028334676839264494618031591471900329519970933647896445534049805718920605499933679259915849247684601968680659693089330940032334553677395245792942895883371510915842740909028136788375632512614149101476220910651496257255585584482852774151114758442305429116755633169389765748472553479181671553188790220192405738488871550026225964229978732572822538302808893282502375908204875144484465570072957940217706294526484541114205055770314035306869487120749683603086615369002099037143132747663280990574332406846286400477985116342100165842567588601584533449445720051282376508354955059431296841420408769491124733083276883149439249407566489215888574155983658711852342666462617240968543623477473914569474072604518209821902919963165366615931163116904025068178202958203835892628416429320934151785341374716145983474772599090618135684577949403545214624131124902418304150468130005410556956677343389159925593066647185958517285633284393468898442491900550129048908556812842713272952363402409995648010415307360452827220156567517652195587083514229502446960202529864546625695576210321601704707069949533586514531046285867208545739782190531185670918061001385132387184792115108408953540157326166089652597008329235391437119762400492142111762032463078671001624583403884331782555137553083076993699099980734717158819823905743705208397382874606594950252806718327331069290787983054034716709523045746425095781202051824170514984889217292587201535868580327426098745037169203925908437514611533423116873648522454758262399617402581992359848947363953644055681579803093320619803122256451308484622535737208013043929372131183476719652496827212189720068391522937484376265898032787175047088784294014247158845198395468107042693869180664105462651072526725784875751287506134301917031644226841681430005728075820022806589960087834587158491256348764835559833338163227794530444988485802899648084232736686511659353743604306574263643276698837625381940659317920071581930852834381983361368204406777894377602474471508324841750239111453064567168819983008300867381998271363791019406245826650465760869035322284748143475948929660157883294465484934666820390150356514293945525523531848108030619810345204842777588352537195598026307865829319785844594225588008017214965373500956499620240329737052162216776266991092036893824889047313358133527976247078151439866201806520973224001916592793940711512302880626156614968479317030030929699161388426404318079811967338396456762732780062180897704429397026430284309788251432995472458721085085203022154498244370622680121994208504448555416236763357587404135905153484010758447480740286287203119124634866409556269281235036659170048818851824967637641155796963962632718722262430028322112552451893185303317779884486213989955356857865771404709563297807858327352674423478566465498767982452384449551995659505193643143948497377499728412270682371041692845786393470681792932816280905144599007552668841046001585032158951323518343926147755833195481460113168662421929448331785988478316030459080263815932686435659995208928746697968938398416603070917387067720638286277767089741837266394397598644553597200616007747062827648727390656004675638403593326022246618317891928624103907802755708932217862408423294264381727187958143215478225230195475716950760338832198678249914052638736085291001891276252569922510140383060139278816053273773704982404244562173801632184987788695723630998636529660623642314394550725663106315528715345391758876805342226847223106476736241750300156282570614728669705558628198707671103654970940714020821110988353384726885750475101614623058064733179817004245577507559036241368220722070162804222482784959536670954432218045185238686914333228104459480389579847260003623071681160179743453808473217837046656055200438385035575309365645514465166774069383357717965564805519036037448873520866799907072731367421912130097603953277701494404271709472381492021057448875862700399311102186985762831082607906775063050358544286603781943573669200701057792674236380045111333692378615936600765155096468198394726182630795635980019566919269948662119158283656390306595295964960937803985677771344327166150952880090989154252903087082264185051787687045650920282409065823464042074331223597913323107320089713641163329230788886488497768892129442544488269199256070009060140715861500690750897383113727425722624944406234764793826656994082361993165029222491186165508850250534964781611115314862791582143762244234472258566860467871960097367641118007590298794718068933539273767349182866019317159140789297788772095321259651525973962319423676035667560007842427363408938816813573734928725931626115516734088246755145549708213000197409930369916006041571161237553238111312371035725078971845480264710926395238993033590126809039366221977864695972721530537802750710646663440863574131743166042517522736150566284675766270946056461589317141868648687849197974727491274546513312349444120304902601258406394050046670697783840209478952878437482728173893131249608274216678952752055734814841768793218153222936955865939313875533326847133956300414048637484756714331036278666859986322988383892282563335703349124002823504306748825224239228642889298117399507801857114460915938294025827381106712150328483923440122829749479454434450142576403694193286100834369994884276369132189876971464270811107256523330118756263617066777620172761790762605334755511684021224878489630193416639158772416915687956563583618230930451114472619660794754226187645686773849701355524410595451202479397910809138769035738549718277602084566201588199845355038387609646924588612573564625086313421363657129699826840413958490597210799099859051344784371420270552423396519253958417492019687619239557375904694526374551376826330569783698209491388200567453501893052778486782868344406284464537252290734740049096844219181688000277390321354666412955298347307813806350063299884321779641975331918409301960961319888080572262830046099222585424167505184431969159410016304148270529025141758922343110141399498788136013860343420311012439257450706688115431301045524120896894213761708373193270668940334020697053326383977242769872484062999534043351178470652251415606201972781245594691494814917677829896009083653689018674610884265602987343841485484208916234612936957435670324641177107368574243251998695492157807451909862140952535954757891481519029496867592130425732090458561022891591092249080281602404114160088280796606521667863723026041216702085639216713123053299281118245663582567782853723643561637436486752415817393996953393381987611308704056010029019677126651223851823934018038272648106390266199116921377054906868426015308947565900892766577458570955798970088712354866757793101081568132206971480335444748162709957676226094270979945964405230380386191166438499961062691133686143321017569282120822967506563081741709586649990424741705490311437473612011901846179413654931368033189248765572591719740491501981123974001916041633140558545082711343514232292494933898970762221386298477863079182721207120596952644515225888120851957215241557870444171004900115691490796135629691568742307474325551219215914910506119119379495579598533868664208423606340521047480341685021078706478085516056678262637169385134311015246424292587369253143618765054547011955692285163641604759355000399817863639514628036617832993006530576258548443200132662612451321815689853323851743366738206771088627883868064335938447661303470375859359044108366610226912952809136021532027548554760004372456230868739540320141602774244662022318342406643820330960249823717859054550273682940689044569499603608556110821851629098633760342456015148029863980311436343417718458919327452561909840406876411749100008712948635028696348232861892080427450483374457322593427026272027308736688904319899571991205883196243646284176527119930761362211684842682025883964659258673808314169864674195933916618878734163240836186866636187530156954105077264754739675842805442369881907359017293769257703448241717199717914699790594412335925750455233765734351959882625975419303172308392785982193564015854090242948980528235012082970734220067273528946144277617250059319114238664544175488012948600680617237057499698919584036591578323995645578837892629461895038354719559070119005390992362937901672614712869098034098558747568133638374064405136602632095431801784571475597549457688114301767583861253492812747706734241461511700854805459286974778286319429831043542036564707223849090807941558258731831536508671478282316582477235163639115906575479631044914256527601931897906795239396182529884234814795322452312914691820513249153107119396651351624034592083431346133434705839798698552025002186277687012527400771161639159550719552863253320737294014435248538500856804420364247298217659444775508413464153119629022802317238820306858358481924479934441324970980011706544044801105441992713624353908540917814610031073497588269255162526798201725875412507516803295795607599901049402388681699150528672363317447207701801009491498188405575610032290452183985581643796594567763925516667907224487738288444279467968085744567504565891249654627408589908213227657553193051681058681746355622327876411169174751252830240252319051628659069696297496033087582818407358168549806179247765205633334491112327021367255467800458298951476878994672775623293437802168769689995541807367246171803434596732267721783629284838827206850696251938369854912613045693528387544089163199704349320819266004342687739253988864831260091769728727039589701523130022694424564621842845645418523271915355222235025661943312086624784168642024296301381377828244134631124911353953921390594663529038256758765098503184621836181642843275709166146259352807291798313817056356158482630859324546687519474962646518745408614577029304646358595966485820881513952492424239828031064469758893770746821807817944518732901522594908511530971858146940531999902826041146987575207796959712259072617968664766772844118560022655519553544914128596046363573758752900879988871825789706523679196452316431138614827494258029269999323068765637760399590015359380068242963703234829361260207744028865929973094946181321232116149160835156793201180966331565578595039211292204126340152218624637521984351728912791821642990525574445680929180957006971501757678313565973366187596904184514511057123825302240276272581922600300921941230017717061568285509941189321291129998795619870692290204345997236200711330192744108508110905807265970170466037209124826333195212772653665380696121192592679619470460362370690502177158572860106518465338543158900498718485178949638887254560674759535021679755483860294252240928933322476012974739263853588505311892078792075372272226078564047582045834832893735059639347526209441194480262789496176462259055188805479868567800495665893554710819931633915877954273692543081482021969827156147893747847372969615943561239213283274455778438158209269674926699396002583276792204497521313132783696799842499977478943729916155297336982857422733095660018548276146736051187087058061332192957176317854512249859645733616763589057633228358447733913092484734005800123219984973263622347000841537791096447484071672978771446475336215226109181923984870127532502747667266337325305180972128023346503044217148637815388874831165557756503709454515264458281735408905685488225500583966273802234152553723131481321726914161552353151520639633330806797241897216845645258919170225137262456499103572592122051160657009536750112314346577909981736148748509422812837585212349269941589504517919753526830578461476203917132788783833128904829661811697377078512598217560485349821178389961905384036551302654710217095699674636983820078885611107768953143778474312372814578406497511296468947478375287377760718435279359882117517159699770591186773119811845199206621434248558673143570707964129750481427802273411575549338330135719737070392921927591580349745730309043157156911491812413438805468898269093816094320941936444200634119388152096415680054775506655844093971875561291412247727712086197165802821496278744634009424494922588049609578914764359268677140854946909342027800209944931477055907482639033798986721312810049874283677438096334901311213802218327294782914568961633106280439960808373067633350082129125694964410150271475921334367370421406428843798639611265977192022735387061817163801757924743537543662600411523427329505369146407002375690992151767877393819463663942528092599381920525469705184440743019256981683550748973312808942696453468328252957925790303092495287145576701976988462768667076754872604858785035752872163459839321582156810438760301048372026768151100459841857721595622971733529683531248702872868107170207065520986830290207164981539001353633830766231490259960991568005322025477810136979100477924292086836505837358726963600366781267187843347512707433978664367610780298249274753291187484978026069138487310601068083326177121776181672696414320379206456468801076850537361605542744777311002354109187422007676322977526902218919252045449496728863680540198800385638433034168588488653418965424178931665238265845448602604572207121613052095012028884347426425781703575288415460501110200021806199355276671189200185079698851642926447181423387603426322764301763340507520368660058003112184499079912973907508824725499181854241668942385929108760112620479103404316889392970170811726177958933034479553583226128503721099121028808701299816085578450374124959738127260283360994351543221466789661233682896005457649075677750190915341726956395596670923065495743149396466890914404729026339538930481919276644814995534344545094847962581236500677188413502673317558473654554457335647373457915126617150990443573367744166783348614966766706385137247590927053050490494217398357950983899375023874674922094878690781948058730166062736166611523427624571299543853120361654131759663661359268282215940878198057849018545626225916118264170494781080157989810320086741844701177638265940871277634694640303094101156196422229720928637052116854474427785516621497309391862136771378243013402529816388558771216354142897324660460601993771331018084578134616848362039000859980670083441783756525935190448886882318276433727323191035721731649660960303434731345625151813277705185209575590816016075340697695034630292324226960802585439086625150839545317543196222940788259725087209583296757414690893625743439942987525397032255080614607899904632676203523632349495513160121960011578997324267369069577014737794591860752922368508117175413928289266512316266071253892402402980608841463962796669730163968129356853587771616472953605413412693260416687478601064124515812232193619958880263831749837554260852007700932255809967500164381633671000949072714058366648655756872906313607379030036950273312764166493519402401061765635302777933804016753594301148325304449391316568663935287065727804814299861792598088288602456196451829668515313986536082595423171916201821971018708808224126629262514867722669989734970027360209893345132470833612433222288516219557035501645758110345306314880918007580472639041318274876358265540125460192978462055739082452431606865934604277427767809258660234792883737746876684147930997212030062368799251348203965177467673627316443250833015770792761038438044398062844103444106438235819155283332762738692208824358751002225875605885872706362372613857596872786350267670926379567233383092573003541064354274870780511450034478310544278313112250268482403922972004444046567498606960018503349106648145413678677287801335769962760272970707168871002054136459235486909528878901845494015780344392079137381753855009233837678144017060880821635484360681939697755421072277088001458415742613504448304736269336468787542512736296029573470995450757005607839325298894576196067374603279870972835106339902395604363009889159691603363429796381296358029169425549457523408085061333762376859451323378690297942538338035076676550901019929367062416018688274477767065505210104339530552750034147562734595718157872492678066202602272899261571245913437472651705866149261855161230155195370495043282016824762611832314416587477203760330005053502691606058365275788493982466218305609701839828533798917957532871745064667271698008321708111340432930725209720881723334255572456496024956838349039056378226316292213067201887621461893774579250013615497746632248071096704114285361231702903193775608859615016967139221641023767535058068869069784971267827349041612152846669660945373468043322429771487872519584646952712869188880475866651549210719461188461213785368317549508665626709823013674962125572374136016139126577675122370076158144677465972082074358123810812580444955031590620588284573020070465497604659474366230435586839180514008833311053230585897191429468862781881471692483872288545896866803757195625686390695118823522757283695282185402744986657524061253821736666020289024173054959085101255877368074347347940165123002890877431189015936004887744461882118593603661286975929853296722860542620026953431194180619810143182951656573656667187792527968672568850442914126417069002246390061826877191558309770685700120192034530738372461686889267072976693574400147981079105110330329029519339840890134683362351461640643418442653068028706725506002227979686287368291981466586984770869146940464753349680693367744342527286847465674438456154919781961651178307104029651561714608473960618846121951389670172504531561650173746373865093260043040573114331243467316398760352625166556715140939839671560396336327930919807358217576571874387726894597471167008853150689058048848217747570208216481709634074049462482654798643320080089919259237996149755438383235697658805280702908676389262302621679147345696749395561813412898942802958981732609673736984914328385230716979073836241400802190634149998693856879673608265024893665672323109707562903918790962370579016631447424393544575937423518513289658049721010927468565738650606657814193508748949972869812359509608361852319046516653838313433195339921907436007912795424906149128372738717345533403000736236280039909180397168781609558638605764422214372861505518615601374076883263579542871134592738676536294559328330045382190522423854661004929875623241425298573671910138689935408544868482132339505338737760292913511894809625973544925892123774116554065373124341288608478184373558418469686369309670301016261083609253931961295468183527049266260116724684334319852024110380508398912529877003681631279497425056347479672853760997748968069023643596839770272031367690662630268148152914316229501712968018086375408563225097447517335067736699453984421299657124265454031898196115889699655335255688809667746692304958331291012794236100088202317857993902346678822913798863198436106306237526687255649991542724088112864631354542078359156805700021537555751623239373539746088120658103567063669732709400515076127530056150821531769400189673085479112805909032152931947971765491053362455420094959028475566147002303199852025086487964799217644738199345165600116697703635617697428991775147743019036658086711440762812910464581624294715423287864093188161479262293967808558285374156924199402680556055997359902553950713229488667409594348857281837548558962311316706018450062822536300646835812255470689098514422497910137363409439133270261957236706468646045508911765560679840506416825668117087701267930922484429922312793472434163338990093168106643449296894336785123308621282460136609044146765627432459854306603060988125494420083226843373541474797414029817532259736731599080174206202147054386994383742695829597258715775924768515443542693092558302133763325089928573447808540987541685276877834523252775492654145905694731281932014491577617485342317607741454004419899855933750880588414378984879123286422570359476384589319858342239825352130959897383610516840050152260586550914359568613734508848411706336190562975551997062061104098039352299219749854265709631527018118716672642368266729188182594534856334229461953985731919160813576813923485780052878421504568623593538380137317113207486635425858334247481511285641785246568858109010125679948448965650386664406857124043793939637655170016381151553954749825439665585213944345971921554519341275474481843401705613212228788013615062764657197234202706510871481751938289098516548786106494299968352367415441976974315289951952411893351351494710169403365477879115982901957910246613756217049652631477084839685064317725741088788161048893961403016955619477306933821197621602097734105177120587838484002761618760063632131476570361248477135323846634314875766650960757141577142257682344063892022769430719224145731870794977630154430710009130212353939859912503377146464531334467299217599056081581292700118197039597319866796003643012253641072781122664421581248714625127674842175327241518246347978541708869485803489906642874703954902169905740266471234177373085797776917344182595678141062503280563800114363006012913902545298714308816494396855762874782383052735214079741652276578188303381727753390417874114174515777024057671800088140335146529464655036610380106534062144886144888551793226560277173862655625375687334732839439105761653685687503369247691439433163808234716097133847272326938580100975879044456417108383021307217362966984721686320092706676806488052558041416003073794932330705863700023503115701922550414834100618980996440409768943112652284313952614766954249850431474289106060976735778649984957543469386155114196603077520415677860527044160574393287350231400928102796572803024113719777175538408840883027994433554233259540078673313522882068679401098702725754581305888103624068860061223691524219397636125694466282888814573804504931750515224285047690045061043644992350452657363837039347947986051386451394110532656565690021141022159557079867633705839141573054247908681075951088592911210909332962297548411745650638437553457968042605516159546974720061153499958269649271052261884181242537900232511620748314176129010638788124166396913296474755969639949532463109546011145193984071236640984852466308369177449647395895720590573043797492201429675199383766074318144082002560488329298976417610764588669436241005230707175548436999177827120274463214080067748897838624511408256953437156720431152430619385661602576943527399367707860233350894389380255493647386470041401499939761180420105208533544565762214518767837522558065703344290112540616404356551742558174274990716864694327412382341760528575938516422194431255100704117733642420966226490477659631018428972261455348948675818623358072223027286076275139570325284918242556446158295741044513136536337829464262478373479437622667378351901821513924203274017910806045523076504725092906874215732055738386343995537858148634216758090658149844620456721349110574688897591646919604526513615970622024884781664711060987094485334497462844712861810430580980137945221610857693761663786507693680522619825066957893241483554579411159025361976738050249796374742743758610580905914160652387209229055941508949074333211899221709590158453705125884895555604802583893138448694794388927058878925950845297822224546490434833521037029931176829094266445588635229754036344527546916538432374372865150463877737400399262341401050899271979422385108948056053998799677679220759804477664506911303242907422246260747560270764790194360604409078507190662192002387466361654781784677220107855190099129053002589606039734090775412843214814027407591675565404766489365955360967030725725720020073267214311889665771952084668030688743661740150876112900853687685390715288351620998394825606502675991041099271127924964719105702086696919305688305896491006626554352344660608001179870982859336656733991951507896520954155335282878363239203874919737376173362843250422234872990713454966005203783861128270714006461092320832141527772601349403473509845539110031962700969309232754046540093989798122497399040686013653568081958113086575578752300766658935151562463562813570286998872115005154269338084908959200091920846384179074621142524393482145551344518059288402917397044243927172535322236917768027727672872761365763275166959215421853606982561088197898577162245088762616922027939825771165136269872927317147356711048579366674863678718013015097796183974554844390196107393461389087980085225437497573730419386151184631490086411415746351012877015371649603758226496689601353208662149321966878302593777839131675735081536860514248447749510479408390685897338590366280001171803655959186951889913256933805751483725406748209479603602968630004110349428181660213966143632328728266230270312927562361564322979043374764941665778392025438090032250272731194678932074868654465876732086617962361072118311385914305615151524534380988547882017707874104434716778462939271881933099148042323891115585723691561717831777663773492238385462273289239797908441545007809111606469513737007857200989031592862995945030742626270604852255482716193455622185351666912567166380739229576513566367396430300564760068625512166391762087718997929442305183896449892779504160807770767389260797334401861745155183124470863806621644861731027236015968842683921777915496856411236673541007845636491812814450129509076432255022167927586803607710051731071129987423652323163234891261298000368456149072349019491338976295563086387633875558060864833748161538854439386590388465477615935511637501923816465911882231268379722508352213961470638696874062382174687887610642266332616796562878369014593472916656125247082305959929076431126024634679990216114836156565712182413510960171020483520344241934951301894624871638008092871085389785507257442393770902902978957085370311452591602281904293126687848113755078272485908057557991113446778994928639751454103348451044676402650606698696138378138988441857196651191617343216708276395143333401213115605137295543812271223985968933087195846634061008467086334170859814244392369515641571271582060450306178691284117688953961976349817146300932803190069614509268743414326849951187618375369927975653397545222037275026915952794760869089509704245537930095818778210812613487632155698025126598629311120545421481394297445838418127564698484616114556870814781329475910748008511880184809006153902316495586616090978926112055756908191078744791555967802576824412897316377719847503901135583963078537309400156949667735551746600378306917046633100359782096123567702564742546521491700923838292512009536280684651928490101085010000353589062052915647835179578318942431955482044923015161736481734028656999583727877080957035884251030976526980401382043356920919563653783409622553002130970877855549476651850996451307519689387640400413119006071785880959603889939498425792312105378459363043192458394552912518925503007273325352984401246229793329850931821129194101524135837481320435214428372512278621703971778344345475671582904411702558638538705536969349143101998313903815658516500639482444109834495341995759339809470401197883283613036847581322427236185339576999263251173767767328591599564995683440935669535927434190040877768624743547249858243914174370741167160659890771462463528668206736901711766179486784346677294507672633869184473963343303285217807588013865783628865247017325128445548704941687358292341958110706997167054856613673245900794000332201872157039773182514618956087157582801879383303676451711076377707630126466702240168595369969663549025948245786760752954394653289982105484440069075756089427819875198725212737107523119787726019518999115839110532446138696430423423644879278315861725837383866846346028514455661954976544354296954661719445664486133203814205886387115301367979633596675739906800365166887227470412352001831899524824741456227519315917860344131141037721045302716003988331951944375366607057037214810983639708175929331460798112679280993448392261241954464566807323844325340607642447553103766314714368289606209122345713761326934742761409878406794751252558413138285888527705555516404392453960669882402082630181932238955580058524110424151740501950808950062232744404926529511365066929219263701608151128166092160666892331161274420760331674213505542854642694856830025195639250767364179305313077745819303708103498797603660846433355333103641587216724952088548954893268808980955122723847363649522880470756054367214446997265060147270057074791792927518692878833022762064230754212519807927064381773572908699903172367587134035322471808739669054273682579220844205155949209165272045036698552279747796544350503852090707987483595879708990473948649005632703470101898669586547593597870315658676000835409959587694391433930681414572490519429317565686315485893204729912551972759241612673694834417335001638491415856130395584662362633664901266346799920311365732017483917268402707329766353435907310605708483547088399361217014265122708196872976687757884091537554468472503846441828191650734134917033498974329173440516124597620698526708300060523377984865352710805992242133556272776065930639237318923925261378841768490242432889020089683715586904878456470824105846088957188749667700656734072565909038792810442384208502563140832371594891736078750880952881869091848269787604754881113944275142500357509828020331442211646583143738664232829930469430197186362511028822112795471138579773290643342079892428782647245397460667249605234025887899982531895471040421819860595446142991297342845539928969024076755793661788649083558608318882714548620564810611922521639535581630137280229840786417101648871481700499225128537280172327222151969730705305424656700474187923068071651307713772781848647046213962307324283021656523808888079269784388609168181768753960103223624438887032666962793769910709701086067651507536299200575417564436807906502687155371573268808828498432989905937432233451983317777331761154635599226496212015612903644782235123698933050761722999596384780372551971976173029032523639974027620140611128226935072446852039434063810049079640467666084153537872922212355353304761001040284536144602265522159554258045109365380270139933949817872265480014644912250924517577990538598307020662471290610893349850801331195219512109791665778788417209463095309952253037362666786553717288601178910199739454032943229074354264280353699903359710898394734932860288026387282537272437491628377783985752888241882022660727207031945662444634619189529923835808709086639790486295941512942569654440597279955380158208495054775245933417673020752221833947779146276254144257222588083991275859674554377648514490344093778125951018115842696518185209060221190043951061497306422292236466451389230992958307163197674685275676507873527554234266111903050005088200095403511101536991299952166674538428093641130755854173513907960149509965098312846642022485548324531171619248465906532662341180951379608805908179121012475838985580693931209620631263157060219380740341167314378629446989941872615193848871560971876765791330418809388051796362973788791801681216092327790637200415893256036305034541971029483761580192979636071403106644062238392847414262030632063614626919591071030295850644500427421376639106617498160859254580177024431774451483767395414896586697860125683552783899538494366512655016499198734378759387806351924136179918600295599227529771499623579726662001478682550869749424745100254450442767654072157196261913107453488350478470108671180314554457225939968001335616149185507551448775704719945207773342405659717244743434504033873473180793537866638983291777328856262421619689337543624076125502861924325178831753609865890219794924466967313891088737076538275162657302812221086115954210279338548259822197419519156018200640093908381626217891726470471888833717334908407727270068801363064806908013640699700286690488909651736136984973305611537084015057632094188508163397162020071831094808703678754748896317902500993439206790819244959284808928592710967941916511897362501685582079098220380994107714347554579160539151121157331816524408996561515363324337398413557782857745455131769303295821066955353357599177474050523534733892556092626629793016293664772432370430814466991438198947719386138093007698522403402775462153824789928140331057384978403305565947366323294288011694493910083149266481254928926417387681630116219338679468776708545031206212623282079263480242224445578814808705689047543312552942836117420449644870606123198902623856229413355290708027222980554352128075335097308092381283975332093538766532319316133276258246812858047985051370546583656995143964989610072711561872028365992998565858789796089869473122411876007715045171145925330162575285600988096057800819273695928190446884791935447314630957937234520402793745318954757895962338050425041631739572070306052029023665696602502869877539549246024768248161794349885350290310965557210985605565018420301656001659518073305170599022965961887517876696046329971062808125156986563832715982792681781986320038525475403617300811915515285524937936259456016574260129779133106150239052930033337968253105158168126517247890533564610746295437147311403755738838068494114903696003491974745263566804854922144299505863864099256998518395020361990805871131199516461687376319188047168222002466307427779220073516436738414830049127732757128119845943618072558679826115238932043541905418107376554097320248147395227545718650284503061530024503038597627254596697575377092135842523264935969091998732563698776461753285918161755454456365319356344332138849516067373942342929098230139933512530612365277052766609502204749090651123312416555351563345725264033563752784762916214849568283432048484633126812454285213434417640078289014215313506390738143770362688430631518927715338170566193531668480426173746947344108165770794647015105030384544015264742912421358603231007194164161932917238250168317878040295754574156160373091680064662180121791129534468238269579640730330919909139358474570180670728758091619161525920526723847999428862055965325043242178712252768961929643773158503105449326237974496173267052351683186316421756595708079615872025861509303061334472468265765658346442016533530976066128462160760167091123754946035918537504711335093800220452365633139239732353769454638038306571097395472103761268084669938510874371788758261798563304699303844730577318645277236590581183803321084319652301332714979479972878552728764947153439254638638484074736618782600654263262126679828535793002521259952740482075015316028968836843031720671459753206314374732389886871681401368775540830728263776646410275747546970654221008491848614600964286234600589551016075864032448549546749522854427747751674454021569091835700951393137074866122246291385449828879964167084880708836644784324350364910719263796140061199046035233036357779670174092197365951972728203262874466220853870147958695670507489732524204796720777728698944366761920265129384629735891242739943296250041180311655262916622680768051634043132588608881878557082705517937204684155951978085335274567759490222942206911264971074127533706511182375670769678175020639685000283499307756723694986190296209745263711773051383782259125213490107746099423320277103405370616477128929055445881421596942583737528658965578173404291514016411844487167621521308095609479509731098386077523836975958515451660397228843551345975013311935112768187182621275119271723167432463409134819096650380327946083375555685010543621691038922921649808225855137501157846736593897719015031797708238224558966796608329717651366343137027523751297473027714082223812878132268017101807296928957493184221736888686679899516688857827961947935247405608422010145483925144492785083092362549351741643174944717581934264394851674422710364875775878934726206747521642888419264228417131520323855829962369897389516698750684245889358739388683952390380984772250303217910990689669828617913854317562211422620093921426702508035344565963599711925530291760238000546096435220848488657959389175583038993301783742892212987248047156588200829290349019699269251712831222032049058571233754181454576930042115603110613987075709499160840488187933584925756238174560077764781736270205742093816714899178763206536895899450721221487892734500572097607880723764335916462602691977223153413870030833350023925926643173358237453180718396802310118063753734078510947636156687180081806700988535759287233150586635311845937897538015786936519670015659610659978132183936806849347297540103730256721506035320137233627247195511833318286958001792429818501899897403640198164195607926841295572991477725202371773723303284986029302683446815079784792208538204066283196892153557598664398212986885670516146925931044386501376378038424848604084658322610089317189195844456546506890111358007157232836793167120151006655846801948890727776927008119106163068201213407484213752800253193971508698365051479543401492820763156429730754623237160754538813570188902812899401332170323974062594763822973777829930746683622307190584281100715462692669513801162985131799778829555224264686571737602917285124676894272101494342222180348629058132641240903767386829370645984177225663750455704274581234381894390023670411166921222054939977507776384117381116575999509350694596606976014560492383726042467200256417381192278374603997442092539944170311217555599665225328550808306699684820239513838218815857731498477321272864799768371515401893432028735300657950027033338717924333137209732248138703360714754887049860329303898896059728986244798428562829741756428223881459255778135248070127700709283962846618186210654967927668203909264683522267075381912217158990802583414345248607277295284462821337807052957962826397789468999444489552158944339428198397174606925423128410246609326088610583540571735325990404385638847593084612725037473826922490211594158513351366237437246771818718869665423444587833561161435499857700994157828224116892962985194626742136986171001922480235901642507898303093575191729731618798080705852337742339984506902712956698209347512111143041212727012138495067238884326417033681593953443377516670310285250858402817715466593194647788305156943007664359193563205049595094263824980655458009347518661053397079477009191523053814936640324545287155499431210987415889844770840648910337647724797017468729580675387315104663363965241987677732770317972107163128782539810807649349044040069435169729222978055261958763892688198133691774827512782802242516066036137393372190321802404829833793292060990735506809037812709546684583530482455064456917881044199658442496082084338742835187714984575045556221862633021086876611800440848094484589485438150101609717961965563236089050497340975378371555070403426659338489296628573195157378921446940906829888583197553346281836723801686136775797564386732929093404042149824108566777930618433306900943354356092096439866475694979489600379098885771390617212345708664068035154644601329796843281695578764804941633602194935179413583575935347227777735844633922905871341076786440146658771717400368652470644220534936646571823948950403633223338051618686848274389816281380069652479046675527666583194344834303808743389668985978552750254381161333191184410861809364422734085931412386384066129873385410631658618303205569023594442139569367721840473066167127721694185171252169490904737350902859549807682417392299395659209427632625118961533541180266985195619753972069265644252020038846631110082917151716782817802992127646170400246435564194845750400381731527239522221068386874483274424241945675912107599046924797382333430168964473555753054280728382160057515907665498946911127713662627753544724482928424306886506967454534505120484677780332012998784093123019957878765013570124345227887777214825960895743828721037088495049416460251592328091348735881990383955676542595829358440710239884081985361353162065572016759380352302489031524037244797247447653258843030323039235083428857468650630677547940995453541465078717687903571156902751252108059095722997860423294351582163015014124993589396751587517861286644755600481410057438585952286157944232731767526423503095675908713764556501792260818401617706524447369613997177719128478009682337495934502864920632008052047088933823645731393019287899990819433321282727885750380755029833426201231317788946825251619668238063107072522252889470947279380594492563543916041005505342382255725259917855132947735110748403573441393941006987133589520772460621432110453826633513912547412729877786701717937877334603430549880331611113140051206961285280280139809248896202443027524947515148448493819526442674280617919376738822105620746897676041060450106109370676736972688314950601077303919168320123344211181298755879592526107706661192712199898618854347373877897224308523222201859367579883159971230163518650126387058047721150046408549368233155821314357782509051596166706377697850444563545996302600562296271953154570496503628788750340987053112298608853519434258917942630267879959973409423228289639401610930565616658499328275912055140072149368945463993061084699049666945677140439832197323646483539945622422991736981282907365393389559562718900174106712203172466693278593952907682674618491194245678269836418677691895755453576572419321821815724959623388901167397452423750990859521112378515999240734178119175348877505240299921415157702363387092645204904333148107340452019386581922151228317583450046920140337245762040208922728697570526823547227706736452987914312778683142880358110017227265758873522103056219668313145461137886150907369466763140019925418061638373124363439082456615740087179693925901506960223759355941035202828714749594860568197446826330635970170768768511127704105950868555145641765955249975210407059440522081016937803423433657086427196513918905637399442516354490634819284452975936848209631762805815307788395777203874579551254709698751842154588009740624998378441503058212704795632252647643328317353941911215785508563172338334884271573700618649439702235955287139602893287096424280659369818883566220803187144582256591333839797444766938627324727764794347983092703056388113932776446862362166759896086459972812219297566332238816196095884226403509169427565115164676381954220121485276732378423573607683741024663823384535595613285721673614406741541185831333169868611867070252211154091161389408923427318655996840355930698562540905055251096888677935757462362146387130490282861748204402416980617613622468686063734012902880192767111983560738484868034247182827086306144710567426623721868074250612280920996402433289369151425817497929096920192591734970400472422446135072879923086396252399131619279043374367594153148973171308096414158798287420114976417275347511962835892897448721120216947534369576210046128076123921602864672898463513167946727335283577928322206925531452044762918627984130084212746049731906090020297393437022783692786472018221088060477010882835114580193998294854726674014621780694229181500864337004379206165853798664449230857692332578022060243577403849195037189396698525058762300591485135086268304159706516833041577121346343825439821708455150308916137570670789438416717276182828708602452664709368865585867778301086259583528167359265360668606930056039952207635667695120575456613569611968356725429784735217357933632879944381530694931334090370752880156215227308147946423614261762775312816314117211410403667502426879893573429209137775952926173818818168174098731978746479175383894351468106211462666494545292502827492975346938795514849150579184671352915741034296028566873843554184753016532202335725023423992544323334648561848950882647321033839491263050919456508310714776442512553858730772563774817839782133651714101401500590312387440072211794914272598044267118973498515659374331529940138779229766622601139702020969300741139499044318806562289366424651262991459539828701627819577168880751285077729589122906824904595928369371816752404411826346195549219659135199308935436315147207123252242852439099215941507414042863475110650227347727095014711830589437490819854972896582962082453045786112491306863073531146393571926661313906901895100845753587598799749398815760386455656766316587501746192288960486530826501983072883320902879068264820200726409439641071109120996173513979333170709721528995509898885892891637367271760364155616598781203852103397271933212962176923559629552493902382233509768626591682555438424043849439956896290915426872465786829971270512515341351216925166424263663130507323210505459745486658590844341785332975901796188035472032343823061786699431515121438350499721412249041451303574947743066509926578988397676297349923381521158166280578909458168883907164810178618805051542459824946479244488635165409402574367771549322524325899647426766997991113258131714734091554596089897218716684593420381038623275525056945755743975602518771035190856863673351479237842754971298528667744474115245445852068854349839394494622595071988038214948798866595994636598077880818396418077579148879749636122116826486497142998023177735770958684855309939022547061531164788151960671910297158336850729898163009978669745632950956326266635374084093231353082286701994226519341180911449437310573048813661712139761449921622923473235393309945475539920082468831614832696332792621663163790533392961609464869651571242919083164239363249177645124232134694907721781883663496858662247549310104623387285919170203403549202557787586757271807114961205395138728496724977098022739254875766900080793431369566046274070163481487468110204832440951187413499209773206044250077513321611649447709838798668789252161967174426066978894483029173810998963234266963551777886907248648423279423678224438572003113583172538834726087961033837683582513367752566374860774371072242021442805227392099711790213840629464699632762705197525813851947001761237025944308650348708966571519358861334468816285198233868615536341197254292406158239066037064151645250292860360570586178404237548935394099254458202485370852001895206432229207779464203558524854592983438064807863260083235670670548018951025609393470694544564952485636919378926389408706960610990298582756787788686305501891282941541826766169024397065178433365812488073590753436834249175865369681736128768451891455172565267113603596394674456021206478654657990403702983948044602564928183448962512079522576209102205532084908984541651717127632596286472225340426396234332550536156277744145004563833006507292675694910456485499475584903134042696556700811680250283594912812891414839724034799967091639347486604193425606711317459106642567188694631147534754377661183100689236180758416212908647270905988130163993570807985975075331696543529876452148892598393901571288986365321878319450171192172721422280132758914228557526863059283841593069669069881344234830207741669265094885989380772732842607882221762416530080143549501325446777323747694320727929383452107391745341579829683081117233999771445756882042956083209970597992223892728839183577887070962888653015416000700416737590718857961657599663995774429683823837593511526895994824980455689957728666837401671442270277463789334455983123704104197365509413304024440780425689791474865560706643389142889980006774806639238692416620013182213795417324955870056455475360093777135238655361046877639008044193300270729058009248876012310782944981090783420376169303248354304164332093770831100539820075850063143270472181086177895590059839757738240744314603658355151579949599494817172433382977511376114931966384949190109258055878935209608941190306304395423766596544344667570609380475187971858627167577197143543700818579807624738065119693829356088946067160698476703781839698412258724930326852566461506917915791581548147336590196688321619297836679436175702661744093512113588109140967217113186100382023631364857421704961209834468458282662717125828185093954196964528264901172857880877891300224160354601826432964538296980114855234892403509917221956220077463194435258395681261559225585540451753331328004961799584397945175735496706739990455113726244881590412475857818446565965583869695883524530720395964218130294822348387995974132338467696422856146909844501901657428752808713415771253886558859566902346291128314182479701982404109498292631966604595316072833885179594226260146641726264837492510166902379983522895203590092395693103699187594860801543514335610158270970948113099671040611531174565212605595500366312397073534832987237447307920396946826726592124594193031365679045716981699430867414493933447151026024767609722187003264779452206054435803504926199643912945513382971256664161838451274931693050835934769114432304815612460623790098828854344636461330526850762581517888197796565160890594408273363206632825273671966556131314498030979261853461480737836736216340428562842385459940622230563067778433588750533822638270504812277346489818244522678294475433099374580777329556057121980299461733972693266522236804228328825148305082109924927771069191330019195316315915130829874438893673486911165700836952152836376975753590069399592009855277579408231395956658035735150796743951544147460787304543248223245811651840035219934219691408309869235514120870853206853830549161764920368880229869505057062911009175159225860252624015034935716383156804058500683879897497476184019632581376311559287090181590583622249018999727193162736146792100801709133884003204873471862629051309215754338909903861682615720419302375245685086364257860909135100054479234891285916424419141793414256550804098638155916926553158911540239035582679672819796343912429613426322958704108015342149483690640909631591259777786925813302404887341026397094070503745728121334629744450869461252168363771280972245540566321422246558715880637800513700439051591878275455348466397419288521013716407990862552166288638205898239997656610817260946493497518313365739754963861133589146797354591144853820716402672466340798567360529805522711455031836494667910686338787831085420227512960270248217256127186936759458279482024324439278202656049618196208525890132539489336122664394089567898900604382785735416231652066105894881277951513702902259270025884670994674109383474927209677542000775410821281756339868223005307802044385328058530198623325141668848285443448444657527058433339623075539818979330387960518768536299882058845501660684558515832033911807427143419378973632743416235169549800593677855845363465319477930610877986558727099136954543697119727370581600491719626504383338117874901128496118207703784894253741690764984003005523667059729544396171093798297756007305257273179541434824220418742546978914896364226707876153648486304006732302850796936287564575996163347785563266566772105758404341852225751027126515490715624153773186158755982362604199461098652344615688647206963907952611695277697757526243500303860631501322267775935892520603295751372472776715822584432820485614297075411718825302808756198015983016272126339060019990926364811454369643329774293135488554782122460484039173314093041750369382571234682819041813992902158604539862876935003309246905693207138055800655450092054360007237249036730859200212922395239658003932389322202158190666988075312470330083097856317267265705744526741527952505343798540822218542705554299293662271815497416519382159951205559454589421937233375007273244846260184209145741737100933670694583400188299107833555446947765368582813718193261603622948739669736147582914772113185746508661057347936895062504838407390334328065556989341683340141229589141413515277206522685530580237097177430674266823713254533104630538137833001344879506859094369168506098798603663669972797610824341637131277845687506599020527197198139780535815118820506235076129426354377410845408144105656887671660463034859834827515102927841050680213655107677103010132407451013565144423079280574412695457509385932155266337518488086891191345059399143619313956987502513720808355814190846292419722870409509437642459892096331732445882854259858242315692362985956020427407750856773718876454660310506638757943545748347523522386450938440521183458848977812860785066735192202532855012131830553635581543934697710623519758282806973020484454510558213905601532883361574116231241597928408588331172398147567828348376946814295519526501378571286165980567410946221328047409220752504606775347485611136551649888615918471287442203093906050856714184270906010487396816183473321644552339987058922013292753463425588815309668786566852079449501027317250689942597824551236080989933584640047178551609357629198420294817478152575608503437606636411951318061782469934083969879177512852143271787937950071863901814270991932060104260393052598756976191338978259890185246609650611403526019735688041212461508210128879323723558397296956917609315968905921594228716994243672396414198755355489082595121796421056848842332633589346629129251888525639648768755954528207393281208640969114355049865005989499926165218085538793247199258015064544558217404919780604185495646297809299419177888583279717905077542963585356767518167975170074206946236233048722580893149121979558550616263955536320735027067366535422515421323770058571857077947784162933280720795794544128399944001638356270349962728980617186716076148078646668464508914936286825830869110132081593468484486819814481646843132384638701467212394275381071620027646339161226675249306331715695342117911920984013346865627153438828405111699764456600525447754210735774755342262929559498419109608774452622423913922625868853317151066890222675695023559885575355436797783281155601080495987817789611015507023494849173796760000663632239544692666632882160216913043517669243960767693858320001638309364276089981039879978468136644077821781961524596823771706565147526765246791018400033462536698492069621207924551018363142956446922735858836748249961893142937640303615894194316549294481417451165554833801218012172918469589540292381607338006265248093920185788254861140173807010696997339851528842052899732350838827635751416832944834075055118877704718154891992903764644579469618721431723810805223516931730863888169865931744884429950452980747910247400469984327104518759536529449337311926184482987377152438552017433752348433283898816663821695335285082285084777039708269879054884201899428427957524520811283556487753837923127940152309470418562591478189206561290912038777139548154133307375398047596487048593064744663553714033269449780454516729183778615756613709638655115240331261580880654745455633617783916557564951509745789705053673839733235960471196901755334066521125001505417422903459936992672698129313747885228008177529398412254991412061772536087344151867351876530553039934206237618110510301327086610867857404641187261340130101544955426552368024731534781796131243722004934281501512918190401188093302922630473016234566564904765106787505108747599181604040001124938616427192654800649936738612678726484916963248519834795727657216956782891586075906705053548076737715566747694629866957569078405007085292368132133581745808404350719225135304767675109735407573091512905673350998871535344034847683844069216184839351672079852298531320259333475240892135047543196404577366156911828270807949761673348905620050233212267057403807740884185986589389682737411426948848829368233227620100248382081004246300863628839833296843217834182382405096568999304195579509298692605398056726438151506760117411383661318473108896115343778791309361966616952287358341430804847689669898967424674672641283214769731960307795729197619822329560922468504528970285440135717085861008660910810861806540601242726866951404525594292371265499890542593476630232357556088257695442527320876390725812833826371957123078551785699455483950909497175061846473574355742633262567155808770169946749664655521708981444139895778793976708312258939772336624248294642593147475924272742949788020476757884233328484566375268846841723460096553938128862176714261031293791759702559661185593283427229519941894756385307895214412826852852659327425550339723097304077727370856810718322162946827910286362604259623076779733525937042491240272276141569176778415256797722546659603715644975006102580441444498256939623176092306637901974101579404932981481781700633865192497569571780289590595341504198809911327811273604994776879872714601041417840762442919738785273759730395371297653996472553139619278800901145531328774215886666374229381391044176755600764802771844255808351674959035721642292851977147503078629169357309776699359559014952467978560282244922141304884692092391287664936522942456796006781460217572267344869861600924991454564632510838060822658463145649992494152289588251165920634494488184316420624439200510643730812944925978547529727094781917711507249465310164496177523577742878121852429721741044024933589610685169233289757644676832995410981398731653903240023924609570240610706012892751401433992980956235006861081638793350247938665183012425099141286450266815330621023061356866367106227639691421543412742269719266997997940600247129078985981003257670908324628243592617092350414971479849806924390159804902696091186961363055987734201451189676753814399990870629582943595226850285331517593251513310519911005598614705903554648820794932519745885139216251337879884761290224543539289406906364944219876752891494848668798082526524565237850510633701332312102822705843162057232539783984044482491464201332252981013570942733380329905115260211235729040433529699896569142630879422528918002121542840294175867715055548879789472708893047480794233663058361530679137631306526536082853054086017646751531987826160169460951213463013459433392575886153873175692133252835132190150544068846729091284269451169592343913102033951914497038323228279380711031509251461320624156584644649219344687370525964141666816837108277100456416242829245959012255026762321212593944752641458718391108805660635262991813338019546310742925548799935847178207079119468269042918025108988079533861064555092867920843368843980823557623248760317725288155043445221998016647682542480522246585030413526090614454725923497329684847979722097832016019585532149165294033463878982550050772629492278605420693762818226778275771761706647144276950992399062012661803476054851936495275021405494333450116139168617164592812809348054592376281627680194279660318971516425195665843704997335620181680238342764031851982510483845398941432913868440385214437533890262709940537462547143447010033030244815933388661909079861198990668517022615276977086642588189971550670219837043548424803753220105819263047411949644985350184355790892209770907932394675271221584649921545526628908608051424504609208801481912910894802767740740796641686080718496510268460737374309064633325756362570115585755771633915343855166590998608512819656131804683506181511325807141448698422494457851439869604243787806566055592195846057965628928709533037369022383237450250023572595284014099832272429539569108600895599306237925178164323486592983960205751351910318340467417966503932963006344950535937839018285724072308054637580694451947391583040389135809981058977369237074657431819561473774111444174814989843327429773188048595893618244676537005000273971790536614163295907288534754332086757551331126127214596866482699866766000548056171293829340513840328606323962232516648656872003823061870416269556682429723016418582206715869385770980380905752603053147238321382416164953118171315148833454933856326744901479536847963228233494171613816461337424388243728651542832991426170588591544891686983853850804298924893132049175967291116676901788624357160812263537151466749621869902854380719948414919420305526612453414148783113483317410518687875555241327147968042848412156734574282341782779355422499711871912849327983110438685912743227044820594585144705841639128842219177200917662789307954151396704694580498315679345076248583159960818737713632447037710517031951383463525049563104070949742312860763515753429535531874493821888054258629975342448869912408597449680457093851027173393695990364312242534368930618948023327175008416482894891510058105760980907472985271006752406782958492443397951219100881647548531421997038084803173388824721814963441329313500789468915489871722365488042289282597137713718486190346796718796062243142315766616921663945106002495725940405896946435983156473839970964469826255461197995575316460726737413110092810647114340581523110627296033903061626294525839436473589862933823795806584458932144628408020658559929404587472267897229254749874067821764793921883046814705430518116295656594276961962392888675623684000521336143881468673160647972881116627542977182259551443105594697201635944308569029571246437775084496922598723327420613661441476253341458309613927779238885440869281645914144341165123317080868557903122177674522798144752841671649913601062854192684905941991512098536446606222394245331344661347200426537118781271321969092625029690990311037601120413638254669328383135817051119841598622554565080722696582337711264325169943250114261566836557891426438361273700117398837425585974945604506542134767687628160195647144606739958315776134986098742837755624326011508789326817046936940204850429565561143584008734249309002508316098365371486414830304093622310195764335795475556002675511274783641867383062788336048817919440239281298483137660179456993522057480044177597617820527384281077901828674965622292292168771075314857214445192175016990058105689351791567752911578931722636516035802122046668407585233868871988917552911442248708083196038320562090515702688083713846381249524021721923204069955836417581579226230555823815668347508301505350736146001432898149899864854431236959004704464767028906116881322048265469807002398230693680355280820137990890920211770792868188816430348659423231140430170125214525743868115308101430013870943947668938328874141160197694618005523109451330865316599208653466254017547896555141118366152549692772207506174184161373671171270535831915791743684704850181359618409256192081995377380409878894348831592309336726199252297518467712498491214637018306448601286931412847405874169662213906103438227983839479336360796476145621625524291845940875409016712197146792916243586377813899074371767505064208760548596170442906645636032945116973476609544310421650966697428141666488810924103927114260014502028827276772305382061674187491198785507414863089856704990793755685577760609901486638114760914248933995103242243104694018497596693997518596465978500974056665711118555256166734663875530406536790333922771529083825861017701202261558643692782249994896982910200213385446856633060894796507010520082016084215687427421712992795881164286516398458012800636711330219208860301619110989608966018312929837775823506884299853927580471404184299708637858106564220742382691114011658017813961454116825953157865789251157894046894496532471027452618137837330666270764535892618660218758523757244805650672964362973104646597732386551747253424222217051222622115921974962272749069448938403308358225438627490528437876293058760294898227050834313128080696372526662716734369594909314312890513093738476659939918035956764637937123644987431172487675780905396874327097441470516528421162043623317617247300849683544009755055251161924340992209788546846507990877445078150380378875236596830429435390216916507823338310174574993239599811283482078662075626164289569630114328436712872765593450237979721082825079423569000735895988104681670848313436271405318723390317585520784738599537460520020649658333602829620331791873129095117917809037648872991084399514699252531664161107810241052556121241401084060416199962872106781439445636518433606095601529914776964212641908494699483378655755004716993619273710219139926921344803376673907291811070354150579795284896566834471354327865742255031506274653081502255484907489975832663504541774343809771179308306973430173372891684104739362111424159564492138222279117941246062864988762752729110170230457321926182631355086819479726934805237281562940094458053849489175638950796316263290343730395100458290689812892361541864832668716459715257252347419922741071050641339322812664443630412989750293661296352528009700913517320642174495972708300114826435925666423768985154650455535656152645744526656017963443862513906842844832734624702051217647800529412249849625448507186064267409359219517004167987548990130900660300687331846875194102079996472089939955179706127244781504519282482968024261779567633883619050964090065348728155906814347112358715185587699878246120422732579291264758960172327420128888001313766086853386262526912887156992176674936910489904830123419267539230999821855206365460495695896166996246136003003334256026561074011802213986717054987824276049207500697654214774485285493272286859075117420337005174219416132412440837418613970794332447637026440922126629590794953030269159824969041001334268892757499492778273408074611054696288305796993101938921753526761744156547454902580713674332503309325604832516916918359007054815138090448596006638150369014808357577243337996931532638298677648428525021251358705298916905876000789917753925583325826561450805082675461956868388922773418959330933332521658434288624180764174105876565355836779790997017486323181112011824141279978976230667627273732662410053738026565518849490014007554882687199541954584364146812974627268097122985847545460064788179899753843758132311265185854639939653828460040451262958061525143887232626017030403318577057321191151304453236739171122203939939028727516164772168454910604589598548192005909054478596518550787165077195343734592229940146287158746160469832762957177626854744926338112010282172440874662606857194731339953906789987666221718087751502977820134994912681579175513086229324600974355064317193724005869888481966344965095725636205347845325313975982529040979097351880359497494053932169062006627955774731503609582854127293953647599868827874820273582005852326012522658528770299152258254400799651364191077827835441668845731302405219375426748790439096945404816466122186170341858390787925916496743381962311273946707807661718853100585921735585620126336190649132887816081438500641816039277783630366929248785293849637730778757963830234122915630713150647947730318226077032635464743164233675717234200655874139013631580585387926146938713058214829178681977525919798372245233202182754867959940178589424593531640577856896493392762886022185758295781399263966779404643150021778355594121934529765142071281386406714643327099655016862807634125888621607759609621515573631234526558712097179842684083875412813767332480831159413722143109578466459670074154215964989345418771682319477999881395225049653292777052803498928315599950851808397752045792565513604622245078327769536893278999171576423920889955096650229581549868200599673275960275571452143128486548755317709118836487048222845411902414154993965234252197398606302738049613949133949392322505166307360447400097916396545598991031577657658583763103406119306459362887981746818125839837055259287680345978591495109353328437699508213268729619630397412946841207600320915261887709610658251210300951635227570384078994424690787778982334651676069106917152297602269711099363948665664122726059386697308618402582424731141202016135456021753726200296336562025543411145389378208573542953762473725341753842417804090020570490854821236122643930839472083314668212686101000826526136544956748896755816424639208398933738251239096083050535869814230847070019349696114950609283640233465753935137819074531070604711736453894320210662114653603823371965361270571079150087827917159397005272709152525289791116884781111611202387706028122505740109221838383280564728851417602518206233240156555920838106301230910717445021621580495102961159421608463700729741660466949765859428347714529775487346841227731176188500142074542350168852954288752246228016603351371962889287900698760303003642878381350852844805282153390486430184292465058040554755850349160474028485645405271952009005787545309851181669128187720031748458900220176146071393166654430814617030939301282067431099504844736050366212070752518280276939908811312921819700999059437681093750083194486784564765285980428165229335879402143919644527593382795044856184834782405488119125664674425028791584497805416798188117795794070058125996694844884545950528642623240093463947438854263953335165086304610195180659519887403695460198213182499191166324818918083742829724813793493198142505025268447347432392339378486199494322857990833526737950197209284782232155567212375486299422394101118465951805107529274362756339816513659633169713288168642193514870468771553109004479486761091308381282036570056856287126714179048494331419581393483233559006198717414640954616177710987328200544743139217488486275602077240850780164978585250733946384859163462915507662803297757041568193458856934020936676309579146062456954752940514913435064640967401564535251746411548384880949394934849916228892754842722056310444946746086866667215594735184113235879905350656003688073749288459540723175478044518052022826891986154873661477559601563794423718416394610107115538404647164010031439568823684678938780284047140486520032762255824991170054129567974332293374293672691133915615582514147614990128008692643993195685208148176689987053061779802821740600542958207411759242029779559282863485345916379078538121396627847405464780502499325586601236885185887896543646733566518583598507484791637955625650172770165217990940582663749347007885708652583867366708450919701135880915973195702650205372604593867705161054098049317656293604914636371244437017671072452837643711405102867069328613919869888072556025201351617185600523949059781621047196293987601826169437235525054301689568970437889054667433660787634131350099645457888068556631281629460506606051606808928030223842814459379845217289016576038404039748997368850638934187626260701643762275719785547239079745146674157504287129458023579967489929188799712767946105150879088987936112118451032397308695128685018852003396557564949314730898387841980704774707105128052279164985404921833562694192774597454707673214976610536479968352617433172190984882968208865297772360003361704134814954298755301095477736256173450131796251072474413911416213597681607287533810975964843702488515262092204678665828973503713478200642775511630634282288240843561627811873427601747915013869815166476423552680085693014583902238927855482443435108969462627612378991072354229297472172363796273965328719037292516657685299620270137970218694160309859479558472398623744586309855763217585406434523397107485394930825852463415353060263741791606417821341218368187848262676037116052550938099599423645401811103752174486436981080191897289641340050774000439658963435615113812757841563229879213752690498396246170955598795471425824262598584881226378095180834659175438747048046298602508921300138484600441308230398380489016952926755746101054917656573443898856453649180633525829245253943483271885256995879846665997798160732452622639115820985620646732528951182053292006351049933319478061785005151041728941966442860086776033774251617051629693861252755492886510807736373827481427315750820253054440940584837970149259846633677366217886526031853192855935774650145786353676773557849527735347749653348555335280344387114397642741527443608332327310169768263343441605699197568037782840471074378474095230694218253353791835164203682194393689665707089079444758863913005499557147981046867630802893703262790952827150249020401069762350002497773378669096815082123436316059760518589228864668087945553745855243585590043154529304257611466750128979520135364509857702248608174222340706935678692210137664187363826257519389428169924035950124698416815727525242899442070937442519662796904240119397357957867547770831284534143554235036758613640355471675023712250254986043514685654101564112199957491347673916574963225686232464790497183658906205042568433732765140268862070817959665224067406266821800909181422711779868218257287544114373017660893624815432278849897508620182149663679423651646479898712080655174960189763868466355765055981725377796642841324400513191163936685636142380114581733505580969673581249717458043590844403927565230949757950959585187213430634190044388548368672427928652227286951070955925427314976194249705013038038396612449021954993896703766335812510423325975497168466163515029377320800856113132184329349226636976955903080739676254093095642391821253631648714328430500555084517184906701656124610067984566805156623610525739699343819633080152002779802884243443949289708369739034273445836892687659348232729059512346989408336203968163728473160295053055715756221464236575338539765578791332750713808439084060528505489603049335526712112737321404423310980405632499450425088324427523790876896891095756089921889675621196670568069140649695530094074502204613358616529186762297743063783929000140465868120460010153002512498224657635239932669611560221330586476507611933271182752585403914149659474894278678115721908610989975072809253081546044981241373719710984274540170079017921367081653573086665123842505977497860747248325738978386754890941706973192401306613899771495258117493761983456297801883248127968458061171156406306252605283569443734603658449410729958141044918453148072043924297657616378523069671124807882457964018843408916822002633192530094729752149269606249623784474275737256377706694809167606736770175688855002379586636795083533581004830236448733906721382401551186580903372841512301697107664908049759161247888186619651887822916091524074720056146390148682351134774423335174053837919511099655102790858337305391602358502086672969918726817515646664672011992635428312586295630997762392582412870918344162134964410919726181085101597212583270246699655016365606583632651817987236654134837318931006557908156774774993355225321911929036032756626956010321953253417043903442598562059514135254978485415545403153596672200206475393414483847437830797901903063400120298191241803097154218959023822353343068103205237223203861219793260607122187765626892406400204539212305872022771915541227144999190386086029083711556293863850734754805235555392766163212087626306704190474054982106417406724717611851783582893868733123502984750634111058828824521557165692809933783727706230351555843439917510591342906023595931942354826640357967734608284886598265637846061918773284728454966955819482046895912900201464904044454389916374034952267894940252364566149465218024419958819907930892200651517201405460015091948548091190988253521372169463264207886249036199323116671115018342802050864703494988788938995326420925919665508128583846497186519907843993461798126884234608854556107270355908665447422239929053344409368833049514605442411980288347271750459186187463155399480945037629527561572804884645734431593519230259392543430678615751782791878038393713531784986855370125828837336355932677189044952198252369436377535745476629122360263572433776757686091298319955703730070229347011413307983914277023281153245210196463725666984132041979238716272593018025687217172571178335777762053353104662914580981110869242210731549795170956276712407871716219527819872086936817993889502088067373167756061298633047571373540646862804326552349115309805136468856958949168885768149290537869170285624551486712428747388898509409900453729317486552065334187981585394448095825020228581413704346694743485050950001793282903082571865959805693557946109565007928218874569638966875717557385685016137416380182492621514497573201151572507714679258380985126748843932739796635640841596108321294785498641728400052550057633877153648964195765456839504746895194352750460761273557721247002824662043220719939100196529438430584213217741710329864956276522001087034617396218853621156810526847788724790907368886670437915013247940797745458598810484435726033531257053344972752004451347703302079241781047520316337277268620539640347375072951485837004263163091318628256266253856365392517166221057416246903169026702368167445467825332373941776527089180231999377095897823673764458747658839626809673180057400833541709626040800961090736461645895731265982000840983655548567801432810085242646870985869003795373484122590958878386320570520457816469035362393902610685900932883570000446494187866456828552505783411248311957129778314031155958454357589037184195196659742375243009992204130041423875972554220134084624496548655790299262731459896959573396609711164932100042724240978937682999789176760724558565776260387267619323268398381080579319353223489699347552056529842260325244271119787102303404053874685492409179972275958508068579259531910763011502359902937810706677874202478908665171018260055225005141880209850573315641167086164373933628121555498450417701252375614764862952007549079927366933252481114510988617369481485136953628605932089529643004638016736924055934335796791314022978392533669942893856618329215138623705322827359698583840276703321366659568210383340945307083555961743112099833602733593049587266482857358687098296147487188164470817402625441476267536130037503286959052894711362108498943411356743957983324646657500936246443681054192419762114312824063874322114171575253656653015259428380425455203701439280701588191032526788369147769070016441660285974727825932346368004829545887766770340635516659260314787154558421637732653903694040336752735632585538863593340136145478792897281174064166266053977006377397594334333772039713201336616035111646836497814820710802170614953720397180641254234055602070346726706219459623923674353933883606816670151238506765352029978977825514758118492995966278735160093702921132056132040738981337888200310485228543353920477960283685389066900832002768923857938962716900274616412868198531696097177755950141737826156108102931236043573995082577469053479014626490846379964218958729617570863599861280946746458212815459575089023827366147470623482363550114086492206943882977549835432340845276969708840070131591431471062048023247540980916745574909462429673978223921725816447397733071679318926161425985109914536524667891908033056422599678745175402938052055201448136304396942206956794548267718970090620739636592256698896683965372367393839435865673761480282836358281919690533792755545360296706913889895958612688454362586113815730241784118644268111984939383866285964387349298852888133132191500771844364804185667299835374639407555857081604821711515838193285656622988685741546295901654270379723644713013773095847764114756869743923085151382799862672653289119780737826684844821552412504952905798311977926783029720230963385420643831013537599882358765383205547146384900281612157730177521991060264028312839671876631593312580393155985732851848381981068793673629336264082398557712923160321786404442216781131258958946469018999748725063819522977037112300570488762349481826700509449051589785096290127002612680891453716387717872311554268757199216915032661363550233925722587174238499344719573972018698407790125396658066728102112964837903767633935520937977994002930959169575659877253452410360089402242867964284233187058898425765353366445729282648975576162696481978572879983674179661010966366709947718274958779560674307427606006680036652902262555567323247751160106854939082001298983161044141260082620485789446260047127843805906387352607221186646182573702412766295924983680353990690385616331804930766418120141219159776074158184724770799895200265932392291071704132489614001173464290850498738228175546810042207131789804751900916037388893697053428757306810896329927935659042174618007626032528269036550951176198557193535785036514926007140780447630226282492537151057357683725587401667403121447684978235594783472818532538387322174171575480742508851653463924754397338245905574950425746031560629332389038048294290085216522546478183505371671032883891571253999236129682977918254949496905688352046532142063477857607215545222466625963875856476702500651912704091021962707369311603549537493207246072454417894616755541871361529155119430365183685403454223849383837461313430729534008983964600899527614245431254806053684936293559675598459585980035539889587636084630021476966810192975094787289488907247369097865586971280792602148554948703168581929807184343161380485556570887412155222589120945983466628934832287979300095273051369915141900930696468126455967548882286468326664240310440514509425135779825797055752659617796631669721061311020115478768152439252900980066016348430709035541005939727648030635671207727444629146126795544113141607227472099506764471163596060116360820607487186319447993440494893550745712393260460945584000570111003724027201663792119423639244758973061124983991437713575301434005761327360682861992291986192144722356840507006177260147331732791859753880650319358689723279368716264504402450705927690513722477849738305097997234058597513197022455714372192111672926416186753430942454486155947972225971854059442145709294814201967818947507387053438023097270721890273204702803382165604445325166883100952233013920130458243983138597938019285965406346470971681077853372712643868646644428673806129186364103989194909927183351675834645956815227416482168144931252456911267666813803625900927761150328344292608855629771830552855069216247602315829445424337083825420627836968267916201866189841561441406108726338764607065701971216559993845365058328109224032869133881664827404279234238206383958797981783855513748296540352485080556480223584247753682511464591413141160290370025033184389361272040335485165615073669976049338115753765171586041977772074853549479294288983618475804916455458610155051242828708555263895086457839304957469991562229181408800620143777023876613705619953637882989318726086028527265970601867007207648900292110518740932349527580500076112014958068133867195834246342050351571331773830647761770565160171463704270389885601680647991187066095691120085064310986784476705005602194005573167773550976153500573940071955170697355974960264350531033001433825766858230199153060484161945635704317348220661366492007634505834238193558602244714515387025102329424186839359003809365277401005525880102615152550742217602414028728048031094435948909021856446064608910706086827921883804193446714733601940673268075405823026399371126284856728640979617349770869298939313567345041452394361536242935388261577481583706243644670141438333109150781085630096640958441315323889808640372434548498432007348550441599240896002153291301744259899496216891636977075312337329077459825404443902977876378675049812603911563747969213358023595322607217383124428962110637401411510624961672661982831118954893794001791722285130282674042185863556780436302818234985567655598710081467332795987089300784885469383221283486378437328090584537176938877649657163322924606055376856515703313117270013955652489462868565374795843398522501466148115831845727088908384514792722967268381856121783702418762924555876191590144863652829246364876944223541401757194267307431582591979147409894254254024759789246164634219672128082193953006643050360152807453336401692759429112199220345804557465551666698139197433540729298393964565674755688487418509281167135902971516741952163279006126446582784792338555363477083955611703654319694229847264932040906779828575561805533054607785630782051059157140390592603810234098178732188913437577042534871504457629919092709858231932836618555795161682897633263132035900487760817788292343633229825525772236166961891668958246601819635900256334351064670568710381825015344088580171360578306514105310070143103441652422240463989612728073590472787909546314657160593310687235272943585329478433094424008073899326887992364689526632260982530388388572347972213228305764848546320852536853360061407929202760619892487615468051298794559964096303096583204159771191172618372271176756804666799233325914530902487354426413275579884735025887413172881947210353026636280603260933937930595451145025624380656728905720550402823835910550202622821175405239286482433285129236872870170902597038555174855171710475981101257825123197093563768002963319031665625576150329955367720208944347457013372230780445800152221915378760681468539748594733833177403203365737033089093706270464855575073479332210352268288543439491886021014084814348249652181009527325194493267374583419187344622706687300514149147253847169628647402181536434569568896914151234454639547532922563316836949994250305496978890422769795702287339759933970352834539987558754045727388025821852399492613192401038207459015154248902691038600973754994346534205128244517348831526781027542745889124249315204792842654343477893965786654463344324386187633261307757191199857519903367046582373069935490562163127259077299252133084548367083737342508136354196432605413364443794336092717446721684761496567202901554028474276388776743813474409081749310678579108801989903411876821741855796045781729920521764227007552669448938150111162365211648890267026746699605357242063084754452643832453432455777301343815168948947651473910003821963116083749772123806701105569100832670218291943982141696767968404666381425362142443627701769334373234018079289528628780706653452598877713860314265286874354830005952627310947223896976876071035715828595678021834889079526438544937148388600557793748663936243605743554816352525619717841424658535078667801126216480507011338016251066077038949638382105359041549431039851214455666717307351359164262183484161566405257293677052703720551582405709568150701629450596089770049540161984176395724986305864750542576989760838379904955115276625271916371598182393598004373298223521466866006745447657439846521749727372285427858764649903140667379722098288895159578554022329233381527603876851606365665164580086222286915809750617465753764188758938557561732535088265777542119122187271040034714277839173906772241359528924114995629331600475392573970454506108747894039511186806338121506178632995021229724777007809759966795535292783060019092871434089844466181257054067908142234123824426994277137638100342281775166874962415883505966542106110937225830087118609382945355810919922457643628114273090993584220147584839813180891102122672854555805501097873378884412957826063881192844858177026685261444162713633489698653664917429237035370540553627220160530764019494237991259613880978212983270325936504338688754598801616583183312983546802336883979107375195524621983756661642511101120158423387189478348993303112847590850026618336678637336972599283888658932711003086155641021516061406574334428161672301063621476532499206471818496751634916796643880562581990166797454138225257197212313092509721906028517609290623352378506562645300616989380651659197793333486454007077308071224843001826027096246883417706392062452894484705667595778230681580425998975435435828457005247719004428152176528266626760595116812318483098492765598956990427531846896097507750024381824418692816288298320774537829263319907918227553836687485584488377151963137407076225004812230766304270535896794833647797586540483350135547619069435217324317750763397254646476363434109510708013276291459111834425604087138370695530182227081116839958549671975736010667407398023871133483212023538328716182714064433895611385027794809350269768284571817810473743045884582223006865311470075037629287067403928978373141385131204064551044759672898382587234340804839694590276305239474690017393597310732867496651936420669655678713371899124773720565524768377156793106118518562288313506454440544062469310240095896339388131875605289945037714317356764356858593982036705060206685095988740797692429391934254697236601645626963414389933678610195901916119626838263281765648336757317301896182019476436695005233443846238908435552471911662246046439917939283177647722989015264017229536724381654928194222514239319640988042342895602166222784252505472878196506108243380818089391950274307421005309498992167262179583602036092208978095281333948305635772823666892586163082550196017612575325497621507489144011168364741109700307103709926797590676207453729945716764566323440969479405266307153333333057561573287054475805323827180326603116890502692107433483248947721522334765561471068262331341003847453049659493750680250073663607324121591040484306304250745482505528535347262985191085801341211678087085730066700590318410778430741883317663728249933265623370525465654866453860699008676867069800100574970520739768533000164983015706371435996052055472410628139089404883203370866245379104577455749993631712500257641745523579244198669644908033245216737855645595895603508670091089353986524965278869605084516159207419622631948862047981748606463860265983195332304837502507311110731360024463572214973546202781329456245403844777618340052093795780031962645602591174111919665535140851320861265403595286140221952909993539471417927763699865402049841238387375081705606244158187700365397699365285414766725821987593586715535945936361397762374379807706209976965385582167114380137790601796578243768122832401255874690673917061053615620493578525639459535099932396408934136638348910765027417010087932155154199364693731941125208798144595024828974640347663014915842093752793558895661898541890264105494897594971715083782937016973152767860655167828146743540188345707233773006310449529901670041188433610488203447655942630031279302281832917246644246323579079631850063870810985629160108637643756507062073474260788554089870746932945066312844449191246815658339202110015324543293786748810070968309811811693926600635191370033674448391678410227574762550853308727208537735178405661890408820134829824817750228692175376409271185745875070784366556914471599216345228322028509829912297149743684656478199436954947081502406852089756644751283988928682326048829652679135712892981151326164646544385088540878892874036009146400561483582237814129508810356126143007440310133593429792441620012249518488919418669222362847853198738798912699051176300123742447486495387725372084776827546649349621617229506200013297538922760182420285491705522817672477492218076517484385737365808965226516604120105065247374599260680255597536583388607713538968709779773189090211641635536775469332601797590703951216403461567541029921360894279326360846258024011790918017099511940313291214132550362042234908791562940557768961711150979920132873741868289726232551267373295292502572218933434502696047619927193678158528871990115075587477174572151947170593822058089561858084279006116719539797251771420989307623424764305894159892130998302283925295847212950022840346737403395932323366422487201049478962675700542600308604643134534002898919539610934705176553924817172631393734802355945814847486168279826043235202797545936647581603222921555340495944502260608892588908580771483374671942738199355834971701735151354614168221124334727883453651951453923391400351470460822860971715567952073575542098419562884987925802868863446297258497520890276376136984218890508198483475470180036077895128480627360391413591363850541501157800789982849570294808533709626624552064350530994858152110961283708241588660695030986909590181768745337420632970660814587911814059264799008498724919636603697602722935707105223187591278444885067573120881672804489563733838531061360592131046075140688102143601467141824933582912362373585819018057918493311576313432518191280104720592117010394845395774543699552292682216551669070462669024932829796805299513515947861792939948121552179131090707639587787465335732276842761043166920107386776599665162375926332137540581307113556369889828136544135908700483481697023510872002885054373552573881439076214913421289515857442403072523641542288798450413409831303857853573485651094779549475081171156295709085445247873742110333968675955479403693668261071957204744015068464973659825904194725052886920779846442919839492776162688892913692422486841093476251941145482433936492058811098823074963847405967405549254124900797842680093307319173615328089444539101768644658913610325064531020277679470602779469063349967779159848587829647038755909020129946791592230673368112608656066341848070766723303242712744549771400106604505669742128892700125429390025033815904753278512723229075920078580892687333462350828994656094163900297832863256864096934880773823512540173813339333610213956480437354919165199469206294295465388003788593105607646982270261700242069549806626353636935816154586481234550660064367942320654799769789281316601773802107163981556462008288267752291083880521189601324156615641806592486548444928338200832060194918688721287871068991850521243514534342242003891572144668492032566694052221082343452540102303692793769112986583620686058655081882488939476422372007611141056097699844523341240119386653297897882123102180409297908642752043709546697719718513838565903042436175511317257251591947156636535416275513991850088853040690010537401324754960192110496336168322742137825595396958041457544763339607644344971450513381608965811922870320853102535263616806608736901788081679403813249363961373144603752299741933060490948384708108005866014442558832249020810861033835770521231804367442678277759991161406131101683066706555767654167577125392370646541062288727379280630022089868502250896775111391020915925589976153333212332457873756564866379947816872088569719109620154034832072683492992021671422883807066019340298664647873373647606301841980511439735384688028930274444484483627625494576751427606843777959146868033702871664710210072314574438990755290403530315423426323221506723288859775536453099538025137329842918709948914303742694704436305919947367746732174753358358110712371629294659990140584995577961594695027474192482244571988118572644996224296782371372697531261341866589840917581577953011863415743915689738343825690510842088638393603752819008941850552992651664490842952661317193368824970981299130183868315961562965881663885529489880085361854266541460320786323491038353398625443409016182858968625949498739771888471908985018647134219965738108406753381359194797214507328612879493956888768363426266494222081565559962336114538742366965748861409283423927706875298816810483646156435201502662088907207005576521532170612395542375253493713961742595419833013102534715553901126321451882260358139517228795565052543432977731222145303679099686683309008349148691101629722084125423584469590340830614272772052893343149960594820337556066015271438726246150979765550546881553934527969364153034184802392283289829231457110086390438380393658434372450355312510537916766731743891005605960503395424909112493150650628910391497193227697071496298949625024101643817281542115753795090618858557702493525445189979033450503469159905424390805547536258477931613490681180905092181737355714700903707486069477508422448246664337301213809854366077076851018901006818021207393082017746008754179130569307033311385164632869853269948456218745482273744180439217771836557041786877225781315151021677568854766432165150802810806344995253218078837260870913941278443421970774890329945697987722871620852988359298400262770062155262388393673053684945175506556685766452297053467796988625149521139418983000549160440658174955159921596528266383916169882940156712824764646743220227692842422378880068128116797960406390816854554251283326949280847720289575054895546721895591655818085712132210027393624623419128917270772170873467045315414547314307383348736173626534173699878848151905360871573329370952590961170676396488284598098826907005515130248041955720156742890192260744938190267959839167052120205413612728318649660762951561224010566822313513608971658128924266276919286628868259366660836951862781332241750840330224361031145205125121889397075295634468736684853112772501377099111530291981546600795925015730887656874128650332871675684440755187124713698204352526497600541683133268662019170068207974207449183898206933874441508044925282359131710253706179023305814097667038984621411374723101471545200167853428002186094108396570241860865600393449351842542063744065992228329249118135616218706394721287527795947859977949691469787961323943810961490695794579474568146489755219783286630753612714030097143606352811362338547390432595000744816128099254487930321697979076842177186928424693475196327942171782995193409650854674353201883760696224652114304538853102414653070148710957207164443417008244512460623347566703483173284270732714164379351548299139397739973852349960800369716798154829933163572767899240577967391052471343136578358957700267855971093270177565618289533983620754814701970537257024595381678540846424832292211139660947660070495100164968874875984803163318344304316222039216741951361688745186169230456248298578485620501870088945382274815232694693415094912630182261031616715068389928453966610239225181105555627984636159188297088207725196948134055458246713644567039039906816942450640742509514089291117225167908996296231602806312839452325653691856509007524552542098640103223967158914225318662926325869422175787939398031057938995905328041530038648975994609366961445438645041786905235101139492527793625889306490699631291927695732602327619825696917094979071865390978406208421575477523394367566537061905597707450056111365786098298957954298566791675668820848319046035408759824716093347575411117747620251790363859449505645544320722406534390237860272020154721849704724072751861722306757458848495002201778962354215024379949154830336452392081866880457025573991595498027105957875401327641818781516301873797201381637632962418917678167625240324373304860096217264304744839025163431046255483143735263710629469000284151609061621682922877253348933506133962582096000666936643093066479385959258686997946422780068915088764880794919099190220133627681749639593111054615582805091163383485573333506395162208422430846814873615414983583354855340873858826771090898723823902688844564073724828586276542908740822703037843150335156148262120712259089022848162212804180535826887853392060540300859491254703480814193709180703398394146638642796728137781477555310314461906654518533611866769340427478495586417071119543230931260673812614969131978299192287547115009874722215068994279895594475074041345108233587522086654763328676409527906134283613755746414093628883026077646560448654558245453674739124060498523078729675672229395514137710332075070688673106423003378071153599178683494561027210040596202274624463975515287933742143315779179814631432089234865929755255635039148594945765849601263303453504357383169397512425522095050246318654994949745428975432888461585586851783591466244409541309703547036161350718167460565333627640916391588153415211084060786421844846113351119793586734976718721582472299323613454845560634747145720164918367190751924255854700207411109730123106811713028049511739923332056119724215449670476064419402961085641064070156827167248318869457025165799578605201794841643005045933368960634523094297449504279333791496615894960277247909262812971824421575270200220193912105959241046316555805257852554426438908044775810218921263036842320214862848763464128977895501074793042758775558600961393214685985586967289036233932654497929209747823458289276788379221143862675871482906836989527740849588437178825528093818307971836957719120203496370056867353069224616842595821758429098777955514769136471858625539173574068329430518643230445964173415988307801191324305423498845535023495881380465857528013000581230590070714405117147143707360123080402024428797617501843129200627090625082149347235733189719173335228350844029321564198043767561948924650422139584002450482563515210478299851757688760540647691830865189074639357989371306024174356136653640848632740760263505191607950322980582526769077422408344092542087386956909178532221037562520848852410454286319129816509583426822953300859187069313617002896855840608429913519979820031721967032766943978195654954275754654022686284860843914510014226879224731648090130203579582171910429279380266076260041771784285097116347527671594339981496660521093223130627058469226554223905233063597857282270750959792732403681025492887686505453875749564038935659583363397550406080849470054016620024325627729744510948597824719858902691627927043682483939398479528778838790229872278685087574234645482987965577810213095104928879124844300462081125827215455432343242404504722884953951878011795764129571063314466100376205881115636764319867436524032854987554949079295574217664874275862060233497899697993124594931569807065232065867185818958044603583199963416248017646008104189551327630289426746948732205557867426804051800406074903500984257528423708986787385797251618703400553684330961403997595672105251762674880579900111057162741682332540196445899426018942970527256499192415368545405702676491759306775328578646907425459581044052583741391314846779485994238795864168653928106740174132003006791773184642294178065043669918208356231917743753950574380787105356199924565244310463825742446521297183041755587647305330255810246402107235727493753870635252044764165154039192348208362543766072452164724466373588167423639886620545337944508214202506191321292951425258140913768398084169340650851823583560382730063456539495819120857811659409923228557764579246500802707757296484519040012684804616642132899566697395185187609281715137487823836616256894469504387657948437620580322891937933851733698346858450028949919325126593695427027023532956955503521666005370769451555836732851993248672547095287339920416471020451652219491343174822415898534068949850009807248680779910461258999325075583162986178420277032816498817499890176188212210705550773051365188480002336938874992165712028357172430307195804537990317637044851232031239793562610290383250816134604713376056676304435689115717076941471162732232076519512853486709138828219261095835463311189088287451988474179931984453242647672606379332532967826048504836129950172263457060428397949131548461842913025925843244148668429664219473440178708802337096469814688818711528033734677206494607843762850135648136463940052507804950303457938653961130761196270237120620384839604695055963005468955137836306636053113439908009666963104670444432290032483268247627761492800601596490563607365820171616464071092930995015632549765799205581736789701305807659870465616851977010619055715631399470473211674073982366297315424871944872907914560010039938989747678353219699784289715462096813512003976086419083834011135262042564602054545309347600531432003367458114511277437184219161627015658093465399124400134291145515452439583737473357574897825486732306402803005197540746003103133785992963658997875918763626501014391432968655771898217159637595020860025592556037283444373537755677360515724985326486869993861166486624243568578752578420356903638965207879980711598131333859323431033056076326480852562858048367464550641935299949932811200042277162389777143273463597026030641470315448073086807236134364038658327678655427506129007685509140241633960514599976230207773831760719205162576450231801698561438087196264067156834772855648095162926820053370118051216046754593681274252855113695735584341369208951812838484529810346257864461445438258692084831968969193796846236281333098834307086666714432281750818666511957787228268280327283184800675443508823354972054821079348126046852507611055326591139330908082208601644079638443561419448163864365750216954453114301876607768894012251265494411310940987051250170269701148223333789713604373833256590039775371511677264423808603377236063007969748615032955641612675830968112564278499409065497832676131623598108585504743602440456780168895163165064040669793004764249648065688915174093072073194290835097502967441739523523797479093117123545319391512953737865340130792263074617235956500477897239831495419472657137768159897051560828386346310071652771582806003300784789063588129549762447865554202593986143854762045556820834898010121085297693059836650965671963118740002040301932551324108491990560680472364709315063453489004986682868935040865592535301450666691097252602192435002700832981145004327114885746307023059710388251933655357593300122259937607536409503936912644388050990983027231385710335483555401345025482851374362574921138197101064547759963680261791375816680923898843177535977063162042032650395856832697103027063637616172220719209923499796745223374862263884227526940087109642200590114417355491424494261932681769687172121725171417127505310760128174062650285319697190149611466777169108626997946999128416471252292650446885470314177171614157593148831867265083467746348908172842967563995207322131376847207704807699449624563172313112614372760156598349623737894648607572108762504717273616947601382915536699781944282463607684451561246266601806347000198327137893721545755635662441243458707953083031321519358595039054721317773692028240078652549167837933302015318561497979684408177644188654930261833022187560653878702215824261844317068645537348953133034833483052625520083242487921264634410555564266206416961538450955264049477558954518560547190655802648302165788594206073171404491723829938905838649748961212257960483423524607312253775140332960351785618295450403082593258118113001984632418596533484835041321959908729684881548177927423939590814728093502002246092377754660262046817874622942473357081206897427407637583946696916453615802724629775709715814470314446107949839520375121138153531355255476464316450798194436838690280818355795141719959328785710879448647982013540311060019079965613173373072681703590944627493237682485330168558814569688788159796233276985799480481016714957770296336057441906059869081780569902970849403289083507363949289819628724430524269382055352443539568690655302016285207028140893174136304493621440321617071753733731232709848115763477175032706993286774417708070795843811362717189852757152507929334625315486297818087488100108350186722865824079923565346810536144813163244110136347244642583495128584975016572778747154674844345447133166934326514304811934432026525798852606988940722845766855846447907462553619486403794114383204534854424244376655297595911180587047666517858914819444845366342340461448929596074955006836294989521883945980346430561631404745300549920049194934755965854945354132170494718888070524200697378485058243057487352064545541689183945552403550009231058945529367792534418688395055541223822538053179229848466999797456249352601687903890850177837117089828749598684172632404419173619364764984919493859541760298568714618876084400974726833885633894001144707277545506343710266269246488707746021933563513922500342588314262721610595818892489027466833988184305552469741277110342599261588642446103627272838908310386199385650941046652210452245764946715263141367789251313806890843716544646395177987085644966337418246200125178198816632279869357632885140564318254353738543516304935394073701090819326494958926315225791615600122629062605932916047958027969533259231489545481463403339460583042886408048380093476761457959228050723327067475473303670343468071478422374258061214673998727696543841256796214410697332858768256103554478811467303662551884289837875344564104979447507387156392184961284717946160453914192273451211320828070694731627586237793371612970069537065286758583378597392017539334005029821959513205160094668376889480724229038619717974057498690669050677495246019498172367161811226910877894771787301167601014850216494197162508059757895557464137943172646033680654606556767156072764467542013399928075931126602694394156708931295892746670301360765539562756738644171190190163250385623500062406358805699200563916354506736423072337177459558086383585544437214772229430058644131099782696813803195258948798624517981798626387427382976706232653381405379803882643219865311033240209168874496895792196175873295696496575838789329788482388453192931919991315038741725875332119836181906846595654695788449471909820803099504362793145632743684657539895801668296742578748223044023121444545371237997638902803133853996790619526563835886503832350923450180017473200150721649100571220233641188750823900832535140293004024361643447993448211250057251753812449606683736055971172548592451655942251196119936942072532187977101748831028717602144413996417101701446981369067461811444341433897316867899092809257740577368582565741711135395052532681826164759630968593120873255540167988065947062823324805735121404197283231859063892209039410887328471311584124513608682446480937072109931662993850522452740351978881283190093454855249968525496044626329750944803966469176295016614256422310620434703417021454670303644429430998991681863840650802298630361115143387531218578188334208131556731844829222553596761307972589210482184957412575852283496372479834086732262612958586408815088744307450886422201321577477731129580405075841685279153422751969294254229151104431522077552529493432069696886420768189081389159786095435993532653332843742273181257108410468732956747204167056517539805140130123998063121851179080328723889173249264749714389336799841484419500872065490744781348468943570860777778445086010263926233424083360080263163132481883914343056077585053568519467326069279663026476305275965127276870081914364600892288215357597926264878551936737641228949963065289314835256559528658198845225826528477370224273603428314408298047756661180713517102805885984810415353740280375673034813802316056081090554386951235598036881815892284576524883927307030473111086279751065080782697740715825170934174392045143892288493966633351111193748083592825549534027801545830201515523112141828545141911755002950978095292349022817516067800520422864144585150076776173171925055777145038528453177518875436108839255391065153139724406004223151738287044928069861247434419795212028381116152019507035831715441720391148867348983585035350783767704412522127617053124013148519580186701933201433600728365739967389577590769548506517564936713203210512907976529673541115252162833320962329823399664803241878036124473678666720179759080178958715588053471309349080341076458422387802106556744633827947698311260397355778495427617800188962015776489180918740245704719122493639050474619957836800474657022863368953094766150536181051387063088528917120504910142724278246570723455839395021154442383062060824077474621920047178604175358794571207549843582273812489004721352157358676302392793760846727710548643412180229946191368405360375195651741960032894678783022795691051509846626578498097259703097010307937405002822745505905450388842602050705205221999140279528563726111555387725490468360552688180895365610458173582317236916266706736349959018554175823610537716831004520966709604953844155202388305858312930405429383057979374763424439421834420438167382867420036948615438338899201684848622305024447555992428903997737935194938228191551004229662776227968323395822482664947633245218878435345299780398714554447499874124342727633350438640360713995222146855830487789098985525881685904844813719475607516130143972867668677170132049605529348157870512605497909909680066517875040082061659996646631540207900903082999201801767704924963171901655640229361585960219056032296341982387097281650145398677731431073295003009196194703835207220674377242831975073671421065575402746107964639534754459380872768842272723178505718004899387948602680790707608182013781046421187433181561957320548941664621639469239552494628660819590040671568762284862840714857866041840410750756346495881702804397408727959240172787254068459833648972649763181768863196846991961951607016215127131429282728723002034877380719590468989893466039190343894386525950313701043509102933686690526951077074283519589266484802597889106751434828414115888593486746399272077799580414169454222482488142299686255303632338639429020898126190713425444896770786324924296902652555707713663837363456478386387080521563112477392494674973687097149329746581745579048878807357798048850513175204823724774886285671660813531115705274781903128529300272671553901132360671437781365232475654258467872527567591939022362278949626642472799267590288953970613232455246274959259351299233838698639532570216459951006933077306317779568119882672590338771838426647153970110227315206833096290078424029880640466278894969251996065313057315255002381270757918244519149067564740636014392906880358882158331774195923017183024236795969744226029276127828123264850131225250668776187204239161662578983434352511597615918098550462297613763760015383213166644997718090200325181219914497953965914528570585762431225724618708637409453684105504517407440974874983221323635320481363482819980868955485076824135798261082233728040755913711638683936034241486784034343783697422414036613892047402794499235314179543784354592813444988515960985611872406654472036007756152001431542033608163901047759991452603648078121863093428315018498813687146273740248928791382672629803111735713788223011129990406013830308104893939302828134307228038762819369443554811587270457346781851183377428898570358081289408918857521146384573251818264930210216582937859546923164846048990829700436019559730912580145586453359126182351737856092794027534339594860424646694419186923926475192483289520055082655029109568840731092300965744534452990859059270748311314848397059700611625056510244266860186232974282645565446618635128957743449009486215543434801000363093210078586863057092946260964946161610614731563991311208029862040987584162395908734435886863092261586888827990778225624424436022400456477769064671629582895151140847948987825561885878445226222755694559955738388568251088013537040102777341944711054798320705685307660182368947513539712910270829828841461173840918883796927372089379939109147486159766554730616899734191903549858644610986898297505635956293724281144880661018651868412272714555646935234563809917312190676359960260544140042631800855575739908482255906825924763501382451493673271436984246541781819328970241233948651611502979012424046900905110000019163816452584309075663904919377060242517383886663092107805800240862643270980804776565207580335491426180242790670476086098250507929560725355226503913161107697696129736059901432058755216021120192424863200209712889919721222150109636836787436332119105669030176802116764611675238526407229855633220217129031334273848665340591461372242200987611201778424679217286792904266532811149883539519783486173670041879633862033349221728665622820165777791158643436291475182147297673934952977970673667328447168796965867836022942550184810168593083361799618475159445574248539017090986395271410103816168900162913845391283560988410317493159719445404733018462819724144096586087028176512849708110384881830446581067856351781538355088539133224987304366724806730308602376830055491804944928538545249015517865982545500415183837120435753749075850849774006567203011391516263751140852553286082360612558568508509494216628658297025544992094588637667893798739564511868575828725477519963469863295174714352116014533578138504610935881928803767619656811992741885797488604294525193398455217459483818398801114291264113647576336575226051961207959730234617896661916376868622238619736318741969362172307340056180885545223416513643216513555585826510494051529190010458227727967382330697322295314830158394898302983184829733214140356180291482137558871293415147579350799295336388916061595396193599872225655799198588496720323366629737392843973754251902079492410105263920694224141499279522203460043278836714247376975999417148364037236258613275887431109593691893488658395071927579825207741368423754219589645370655191348324398351801593490176547280862228917548636653200243789708461524284023784401798400502808639976997707193705035079529361807794010850755311718191527624242583714061351837850586210362336384652792844404117596727259332884603309778638270714284437441609595315077358230589172574965681329906926032258127104797526141446265726468106868266899609300353010616414862886343150558779311834403710407427505041163227979046273307234131538941631793853463736903324514908085214159496818611063118331117079620667294711491851831454482984523698988376280724830775851740315657223612355965352616952702378543114338722823899578039128611861410054947562157628256449477420137702592200814902712535299412742140995048735797077044462315215843266751094836715700666925354207606703514560789113924413782212141073942972623002335568262730701583429759754948136847342022990873945560742569992878465175624563126729516234508138821403080533799300437356197919180926820956615058217907904406890793483356091978650572047051502505605893346849277568474324281868869139588936368297903623689673091067415847132287792049667856358087772627225861794614323141630106482512043523027090320679065975768689237485675223940448108705779829886210657983166273926852188736093751222074523260103055259731470047926539394379220748606415629738970741488515183819499814726579346282108762661688084197317139837304410972380434587989978764217322288008255287763691421118420099085828441291831365313542770901362902995082861062277517500609143944215258453721964417689431756964942902432168491146820263151631618131364113187174975591776031742826690564516267540319906008957226000083819052174639275284788262010541433163258220622333565356418148336585999123434495122880966892970002130808574036342059827038961566166891404768609720987277710695934126962327848660868022811844434877558496557962828995580441059834973557090994000618469028118618072945748646524506006529822621304621369411794502231181910061426985466548204416009060654255104056068723739472272073959007679433691811661898476498876883512451583286300755350453268727771599151719435721211958663599846089129852395162733478825891542507430648913460176048616046817439498451834341452010342723753010291139656404961222604536345918286288518654596223817072550958591375361108150833570347066879697722493761317559675881289265471523153932182388617768147167819861988664832666085701447750655034258787477567431864135823010388950101405387373036220807539850079478236720445075793741415536633541478407847581371902308762863533818548581000394575246576879104114135485113901103204633602509608166409768697850573503082029946337427260461812845075679036215867956013740801628203938599586398737010985965119001405887036138476044645264106689700869286258084079299789136563433210422153563195144952456451171862877630938197552038274938799528914496569571900070973875743257765998947408838036542064031866909366811929680204460056790886314467822556124920620100547374267902244169955402622487372502419936318425745179002118229971309472287299807791131884137188468227072254598969602329595041563813113220056640860430362443109133166678100230996416574781902290090364726294875041966706338664904376057968647981428246834568038378135666890871615677502348406144731007804013863002099094007251367396315412736286796263681275217298921761783954372149910598693649495760830860470991357337996763228835146199792091171093790694073197892370644752508794613771481100976064925545587128244489333914349826183255655392208736853345942890636238340549328712034026343399241470337673232210938384638884298687704391343142308293316438186931361301357943839496278071098424779061140492206796553581078516260270461591765424934389925679254525616713261815269795248307579211193650990826099258214674145052256388993900592488514171390179005624031323975720528128796480301005343577922353087272444196010645335604657528896543711940164753540688241006767531914074053605967466300213762829376396520841782199694470276674459833756010932072082476969855784323067558377441963254226604641543981851548360497579077568221104621666224138416958695240254945027063933636258269491575353663397309330799477701050586753513535032955300878013448219572386227282428158494812400672795380686318554436054407953736818120900728075073213114835791511117640104120242134908461298282276784636739519752367091231613191634928904973104511487183325365555095955743868449757653393062943577965162631399362440832663704843578390071484715094197710379082158015663324676879527510454566712900637777002981113048472515282929371944889871645336034455947905987807241572415255947632354090201514017763813424958314585831223366188566030729681001794357557216499357424039277130188578901109780359744560201020444103228985693675174307495332011775162770381329792063266394145697824603920301977811673524358694951799439559444537895705889736106821096726423541966712549543180786534632916612094895991419377874955618310441189509185470033204232628402098696054285598823945987184869478829676514396668768102258387005264927552658739266435158838122886319690185100153273546077122214632573514086315204301547274113739966192481911790291815637434300145687449575324553224722741349576862484625006457075625675354825640342061442916586944057805917189039957447037795757449139943719917834723395913401933182008609764530431271626816628144105605567529873780740948021045851195797116476058051385011110716675840469904758785855735816613642202280843539509285305461006214097658471726204660374971331460510298065534608397768071751179004608865788890467164470939388094645852542274754669912976147734833016025517815785498032123813997224470039397811240248974475692927353536052314464534731337363830464529612985758572119027311588013414534955123558864001987944748309329864700787181079033769352815083657222817032864261078529689068662431054182298582650439750697031998624586939852188179122671019624164176426542826828363722561632196884621508309275488184805104378423752673148766419712266834789435685313664102645223162400126249490033251521511842428563563405278373036651783307345442646922571932476472585388433488283107508610374243394627828497930247197852047331848772367060791179372451636937502182586196916263870036606071646328536920749052819045377004275391608842297606749796672366504580474606950143717074403357383387206353127465586952118075843335148562943269862751749801427038174810795691229104404516331490793577534166278530976291490261654495665419996825195878068917064136341675249143771299351361280526216366522147741144762935601482039772022395086602272408503850758936291843448011533244814929384795865457981734164050236125195627258312736835103789756013130433138204434993035522169770508088967639365723538715491442563927184563829458321397406796570422151765568410418669896319288355752072649785831180417358232562119318279659563252077006007265431437987983055792953646449310291548572583446724601834313304537471327446533107682055373926402225041514074237424845315857490411347520626699480262153221531474403569625695823778594578689532656523056666745586173150672633880601800226169851705079111652659546913687484778255521510555267209283008072784568350538797027642973863316116368927011680014142529178601844735021393799207210186383306427917239346150589497141589906741068929348131723109218405498805768362506584174592781183450131282388666211890474786477160057489331984056095071770529527514998794258495345498021233967906726212185765619477897700083699460061172513433289740609794211848530985939407152253679925813324357829528388073621122898079996127094814757212889898978612741151978605644782437584823513105439336836752403335709422421099337357645334329667117668135712339013570708510407790746258684040141801244135838728236413918283926297971879408403885786848961986584170123938528057260538471492868529899162858544358156200435633846149849378325332062171349993890357694393627098921315132111473887814176261470280956947278188064140140317190863366218622967590812111006112496319021018078141856104475529482516776649911220385296478847148122240151281645949590377747382489296396765581573697462898697008973898310435777709624127659219951011670573681831706789195220614173229746388047784488040983636920462227351174492521716775115471553759520082654479436251437452042463365606623304588444474042859056877063456452925037306682429142669459134392056408373407497569309020792337973151292694629774533408908191055460798291692213733541981036880914432853942713237315086166386705396225887413358446835553469339876015707273816199635550397677604343138583769739706109011839562126825427807666259114866644333997912896417847625371024228139055594588688213992444974708292284283693969742703804990791311461389788169677219154583383914508819093073741255037347600752119629518494871345827258892152831216575723593955713132323268879685831802708630790591546415710470130535108579728223740966197840499795709569205525694744583254369767724365523191188394766560528752220631283154810441760971184300084649861708545848148517622254011021740273611963163961126056436328578632994584076423099976693160048263008748206592060804772041594282922342604098217798571867770070188572237593891017462951391887228515004893554663903112466787551791092423744135107696700332962617342191152717355500502812520726769641362901049685854760972387990868022177489666063200003940876559398982032927492960405048565570613018342199098554487086726129345426051752526946442599123679610801241249230282202886907857600865415664146620447020241145645772679412011673809300542761744707437596558055377574571094659880116181275351189642928189566272503785690150447181214369062721068126580543197281119985639044590631061360196854121633232520123705251908616292665618187552836961833631344164606979598117848157777995946834962919845515852434763861472780322727194321546430787793592298675721070111739397983008994510392406677705429444753217736878472128616736141856388556470208789856356050099280209681712247369112149870943861828651983148055175443443775160467602614562982722718530665902497181973010744528003483556978869969478434321391623655874226454069035720625689956291879358196904385557693656361392549002646501149950154804195937660543064041373660614695562568446579877837901681115343617733820402174432252223449101392095786484969796461613191334528420064225407172363147152177664431752443881005386846822338060527679333144193242683491580925218783021457991011977031541653079415063924617669001896476866455268507997342666912482649914123678986513892993957121777580074274564130060975221251844337457889538305085580882343360950370398616980250016445532573402760452881099472711600254287383130870091845559292226426548209181431588546671796335642845599413125436570418265265311548063639867259822717820151325199897002909456295881402598303187723849644824954932414594331665877260289476859477993557586846877084387103147747909415019057251688017539039300867890504576116241458663137885400031856153840955643360414038890213646718812346626910597114775976343170122963212678701164724917862251005270526098594936601491052042015409885213872506435717087158107663293833789411010944393269964392883257599093595570730058110072439686568007233819514675335859639968945703860897451554252003880781018048170637281302393974036932828190413886031259538828582185749441933301006108744214640623040492419352052580368338199088742526467230740254676451065345957415285586717442177755504618691144452038475151745512360154352373586789297057547950423897060574621195925566772168019670378468617052097604972094610153663606773633092947334259025757730007525566150495722226097668058442349152795512130228599998693558453041070664617934024117015684248437280782111461307582921328079841078727073185640168795164427126887777459510987068855736943593167335221173170690138387070782079986594071061526706901378971624893560334368782290223902673397256634140570262883636012447641509224790751105971798296341783094304446991128848596544269298214386152942088776279023121229448153124711147038788053533196084064590545914500811455280819362455688822537002910013744916935956051032665586982082096118675793109489603214387166894183353359401823238740184373820446270192652201381852667383193208304411119528297228702487126292154682934328906628896734751370326835278476340384422702968554706260181213838891304419549788495887915668623846617252941845141665515424847342899924760803916465535775108712616907387448643199577467912006026243701045343771558084099121497322896641121709734004249620363092266176047364057143233230150772019526186514051514293830660158893530504819747436919015013957443076767513012112284951083751305613419351283659258628133770323750078158034977059906322795936088328192024921909221860863296410005469083371684259108506476824257957435301457556538461051889844775024915812448447526401938454311580467491104324542085522110247012261607324910615379535337287296141934873575056634583213563591633868195235886376573849156483141067317738472962647607988440251593952127119407785405647412395939411635500114194859033044081196748308790915752283239630092810142970431521538641181586502295027877138874054870628453137934719125039195451592058826399564485481611087377609934047870280479411394675086809057885677628489293943815887291846571623593766722804631607475549124794406342600938910587051928163377271843580244209496131685843543139481353732525356239720180382471803372807544253812302726218687407401227720208360695207441725324369298041358326594362452457887072180312480017647642039185082025944644648049910802981174464774381973960288781807465878479212603809569390119821686197690502591771216850444310913239103982311155853039756825815902656765218879124428513501220618186972141872839323893243214121080722034272844505029118723446209494865913127490354962506030568303490787616777807643703228110690609469345967718906706160592119217633096755399353829528565086452709323959198401131551023368314348602583225062494954287919406449203472265999102174079561406547293222516376081631060918683817254721885694826620236231685781375354137526496686804308409622977369433793776434417198451961333773705816219236150428959351818743413502666708987256420920865152843280957194430419918525800251479620980385267317380935170904694661547483013202786763593037791596001144341482335216319575138573638621602518583876147193221616881805141530485925062268096340920620148707678644935012547538247801774481165857723476645907552828092705948781929002697804502120555286109842755771165548413145632562605649656010515254029978615018088995089264647355727929054301100039643546494873106156019098261389645114367476768375606221318602765880410159533820928354866303219974584309406912839666807276100177108092575908129005526040090705478105342744709782810275600268034347131469230187294605035266152293304337472709095270425920061183281346528963661370986156504645066512078871804309980050196565258121962160187082767799662060044083915930576655645048713458798965274648870711129130849338878013008683383437994248218854720068738238674883311908573378458647239390280354290444163306193489417503572531131984701448155269008463489666985654278881271410489107086190687267544105367830556406950981747789390328097984048834804422683286056448231690305077690955828699007596238923776824855965051921742847166621272433870776660727532374183018175902900915907611769461415658950035614296685442906433444562077486952084509764389626777127193921518770113412701862450554370359253561996966896694761598197650691846083464903045086340171517093680218321819471926721010977657439477424449016147467689542605641425614642258873276126526503299167919993373790891597090323260426281122982487072291992522812382073427757998702385982289894806433157936389502585476801983971810724833836097390621782635840852024448108772140964241539585272715048929472497271594447094735635591026873998352922204732928128789472791086232635971909975123049793479715087652670397573931329157390133982618061905645461634070699493598921906829963982589027172525263915021079152720281285646614608818929884463477335149505703503402554269968343447451885325565522709234421557227912429760207962253179663009827563785317381520518725224454835399526563669899234100789940345931579066415112507494758343849095999835260013188731280263917467908916680802760205072054498076746668464789570067509461941337442746858206724094966931038013739335526923491319697015793222232198970958226524342741018129734499685861688454316678718420283973437481777716758419832786952840334897047887915073682284744919213964162675707544151558546208598647633144759619369917181532728620549334043122130916813196426151487934427213605324895418055353986210903974258496489891431974882675849618250499306370420993730583458583593629316421648591811233292017149375816113510838094836812691849596662204641943168298782237885566868331990540549500002311499121564883903271329270807186694074856773516674546068348292694638496289512911375335728389850023649524446401961236092073799132575050438262088303019417150703994763548016771534876106793191326326305491801997586542945499857336748503035037917461408833198360583712076868093063423966704052034242976852545505176730598817643843769942446141666856016078423530158192936938280105625840176993473458590607641968950377159380474018298778853511534870944241097723917152537550728570540945172459332649076422885779685090293242521588089691419985158018215288246249405909147435352828702378254155505184303841827637481616433545900618017844573755441317961574236012051961712603393021699309792468799013738751586742006987773888516771058964133604353975955062343419765763092399721705834769353440108271104127987673416982065708320348800603360676902004418641209121124970347639725498840519699995559265431721650689770406716408570923085367103907513826819823023737876566318952330589625462992439595710784630515873806422511126427929000037033218580957105341291300101912494862980339634755770407125339831738507625527277102544624679776978421640950946512633002101663089949642295397824221600801231009205210179692321122098375237713045180560512314876284685599832560270090985419820806200438050485404327504646015879655962819806357367761325818796933486302901706575931663736925438928898432253700516793173197001977557824306761718715987367637158104744564011859694926487877296366990420051536919365397021315580654159715483560790404101335092646432829091487785723641396080886615302781607487766988804226878698916292464073772448685239346391560168934711081137263396665052763120977200189967476034736898189907951226319451637407603042651150218517948304516616413880388017044523007308695900473103338852431806197879677926259728952738798978535649379052653172483363002904783120245185210662778209450488073492671955188137759125741036571107671614716811006838891228822067320935665323896474229169645322592463987169606598977030868342458114325862629245278167071106562628473546504076280546747012441813992731924105363464605296095672757574759054479539020539635457665881547474067420059497206476452486553945483330179968878590548285250015509292417623203926558371910452877897825949220295240813951068684160909454457921697619057696425564293828605499874719392442469472263789449189189831096593791325406166152414369838073042413986363214779680305135548291480778373058321476103469459884388617002839733910191720139788797639742140967758436203569443111314913916634814662962364103519531135938485773204419642774608012591690718009178302250009903015943173392950771102302371436743266615194172408486125031725803093099014574100411462109907575156070970757211327762919604766576320345177384874412423118770231579614090556378471940607107868686991124190619740416008145921724323063073562041328023646145099469533098288714024321267037354563489591053186986543095178500866936777004236428286001300305489420668711932862003857965998488101844476508296536100184961500422893064164656958211287579669875123104932186664485969380754982836502779449102918185297450442656878944213824707952847236366330989884250497166096131393874536438412780023100306838966962813084309422789178137932134603308762494531861147552931565003798874187385722561516934537234308222803101263709522550679770458717046838933788430017715618507287704810148409888067277984892369798518489451236508838666204571461890721051441488949743120538180942111434242562771544223603623787191629484266492342406401500758818712892023318224675771238146558435815783477584360784932167217164420603261856422750246708108037799578953437762147894841892301289000202583378853906896233492035625707731543511608130990903424538686517489059445971579783144825064255842436580817145959157012041403787760382604122193836668515755088206289005940386181265393352835745555440048294481104046498155979692031934821450949814074121724391293247718338619434605486447264899903106526096774081104991923343639488434553703735455551587792900163310553612930626044101634539033360874286299468844084015538970732097800415025532703029162748488253766099137740134301172647532394634262718267453056448038243765913797316147607617216648653306404584121449675099966294350278783214572091258172749040283979220539626993931118729628256187304744078316570499177520396065879980872381254403372405991719303937634026412689081828068910604278158293581218294779699053266340199370266041137274521980212206820897411414454376155843602293852711377709840603482080810362317021754741910485795944013259184096366810417736723992344234975083263696205526994523554304779633586644556745345195666184615090386054840202292018352537963867814951832180870035630974684728894374972500315707068293272432626617552962291417266358877774835177390244386860877047030915126321902447537907239255795532667364583091365492389558859677242613781580437321553188432547148846088771145921222234915248764546648005110542289675906833449462864284220330155753991333536950059730492699532012467119266573399154341956936331998082296752902135653017564661956807938136032451911198231026783585340906590831034006237197385469931838382627673901217993625885120531664645715346393401805530664498862395731499327734024443623848444785377781493157783947721672092345454923010251113184679883252254260002662642849615793765061612560245827838204164635218933820975686440107517989038769036002997335772012421959139624565305446874139361313013165995837322910035845200278029855454382152341792898499854636442508049985819790321764898086863063658339850297884698176392829367269121870148841939233763201264481419519509315477352782155846660628176448523458911692911632257844926922713066428745562460878907144515543935409962446462871791218556192491335803450365652715855858805082222302902505000253027781166393272723755087709090555887025177825395652646536180474782147438253996193170155825519031774501006509991966928443770008322250300004190023606983330747288989848515822923940009230897330604252337972327349132075443229794085947514295375441431558586924427352882237059698979223576323941567165010383833731042590738808809051171086037495045378770478981689143881434099775393029814853931020417709691872379198542893100183779686420268954090975346790683667877210656605758893635079481723382645677476103378360388661466657595703643846027420896973324766144366039307978264434733906936589878984083764123663786838413127093908096261767467538780010881063508329284753996442825768338098627097463257270489339282316525461621995401383736118139888947862990067218334706166771431427937161106348805383483257788166680289575670328586067045360191880593646024793825854802119376635908008179506882796826661496792771474775673027245476982199704065457693240260719818347406152687721646956292632269513715648793998641172811768093719365364985263265094774077345120008723756184471054723498631323091061112081063540666087160774552203327957391214207987635507545563035079874470591947074289055071684176850869274083654854832780876362966431873484324675028834699442927949175543237191821212773475926846197259801739462706535512659698420052695772601791810730052844248015317205800103621428445090632523942076823194748509443047594637805659540735241663107979143195373586977292189123866422653588134065850435285830033299032273643608733746438012546411401039956298059030008006041542268082428418569513351302228747224359999025812771731468730129012892416242724990129009256243943756695385318285775015035059392841629373558336496016507123359940982161231190241596313245040470889524543018244767864812765756155719844497418250315625631903566020161966195705880746725869599136650498391752461911208035482945930160567883161184347318642283222297341044980490008719819967961522322400199792854340843962682378909854155369494194683843624075582089485832598333532772440376691719492198303892661842589230696418370350736851145029608719723862346423594833047137491481777524846668362871880341109340879228340329830623393516855905569032575030742037872741233048862398644869433878005374435529985793512051964454621229374419094765067782997886607221314590112573357213454655306294168148949907965965128572838142061248148325392906849290091515418054996636445524903580332640629740442561264152731194655963467131485277679083031063784101498591103557933906238927462170019352376850436266501430597238127596884098587774157037837665781827499469966461407351120486061750301029763267151584788725880730978671854599796150039341739440022879169851405068286625267694183171717037215589565056868575218913797770064014658207294194998836479911910264278843276088888527545020563725615133039419895278741539870839338248816178239313260942724307110894256069366765844769594818726250324441557031336485861351185091096115281434576942689423714504652458786863700602766983028043404962392251939755491471938591454937541186873828386664892614139097390920549290395729760330915703152482361835213848694560690310283971372306932273199823471484911262275800142669249805622829811973738934325481766063950499955585703848399885012281367093141833479284548395188768895047421455472717792435019457939763625475208166536739096234013196032995531050558283133972938462524811892494109080081245763413189139144289341159660100431912036869547594565343181315773440265241031089801584466562174877921304236053813025325177405209988873837902320785955795025370688281486818299127865748370283237524317781015696678854554271350447332714605651814247196513609313591702568529755698377217228885468382701382517162838415211174863387296307466524768017710045312448241393227186780304744650420048066747207756635333313770202712599187115039264695624109667617813539252435350564075155409477902428323825835368341271077641700131108936615210715776558556388681461387689779272395200732709572181243467619043318680504748893984136781322813766027876182906454370529205380567241215889111091700712558081986685725702308507982997837436212339211223662255738699593487247421737357071107668528776514937313855692904237261118955400785580101210661653316181968453005831242230541169765853786602954896478645867525667118697391771039080959742745301458934995797703737053557605893924115818718635885621613506910401729934166669986637280566160834084977547554237184372376459123616354650330411467965100177943672482469919391274379122181511772785435324994627078140112941534830168779683975147907038752909349433523222259434468503097684405033773828085247219636116240002896927602379595509024965858590096015510373157960366007239136085576437476221889944374356631034481485951364254647126292488245437671242072536674697266743233071124100008521975138693971196198582890761102320356251787190914958117655152772645228762975145410314963499081643739378101902517901229906509468981511628009374924416362649117338665428880501807556898038620761184616081976549888514238069759986133590307898708629050681449126298583314961738663255243147350304382317327517751438890991700927209761904320568154564850094547202766430924583724016130532032357083954001559783804167382153500049031048911951880328865799419227229105376127782078686809642531691330902584526369274978605341274803350405770041252464518064144279237565081106124633474917530640722434077239709428534314216054053787618373925699120048065739657167058924949824760534082095949566931549068906122622474102749887894222650568156821074215414227003577441590858816392664633754225198490931759549187186597396527994617619078628545252526185979640178796190452455852720915927260281695997110381477167880528823212315057495216590249408486064431122449617149747552269477631364233479966428773431125349240157242968577302691036621424458798997222985545783271333879386861152934687140233754707434853469322579152335667445995935229991142722431800340991832997047097565805659144348662037433204581317632214407282313518884375954649909546129194307320273383006039128505252625477674714427171129573164078631459607821034053144965440642656354241330861524422903656643388059328568839059847150311894961744192626989371593673103513609574181710393761872979560178991643268667908277764015035549140797519084714688782887577221168741966458355788362132380671439157380682857738399018329743759888586386631947168350531129281738119093897334315517983555196483596388380629975729367835412322392278149099469086585546725938597021823914240933296511500262639028608865384623556713354387290681708087736272813479706727381650942820670563466567082091043403587678351917280828107483867678122922356722239646622285438633855445675835403948665246210607681653362838972905094134696783193725761155913200041140185390771337861285774892267090383896086757294336801943565293040624987140201223228777171318449731608258930953444288124493394140685168053033898508014621778188859363606244749569921989131242219636076112906079527423621606082145701431062907874493081965350109526325007823111227751292708907861539719868563080868789286852478171702602247931174563164541938520291042503154336046297568861981998195422725751654614766876040787455435837207887899900933787199071629372612040550730712462931089295452369245729213054134982283215215540494251034466975617238531319998859957020794686901716600509038992497677963338937790631596340032142833434506611175558536138319458800543902985585930085775639856256851112735968843910459832334487321236782349455250676763751029716199845599100376381783212706210796811456453372574794091856162269557356199794271613300619019083934503297465091403509349367823431944595838613703513880067513699380935555720389825925433650878146049650290465734315263885428377983442485855004835057787859139803031710230235386070556512556758609656514895863678255038643340513240064983159505138660601521326223627590629766603963153215692801959995864183327542325723504428186373156421732647674084800124212732923054518641984985975489547411291595990749860422383686012125706196033090130015769233056074612522978039413105457319349856235196518613517103528195749769778479557979427573935011426651647824953142095836431840597122714977276266660129993456258965133003615280343911577574277628045213496245651922309212380210610679309304115379251987176501904999169876717320446955360427915674342055516034343655625252789708653147897478947635590822235328805428816248048729581513768187620024546685087912922620998382194794635917268468974583179623587335035037060862013698580453227694547678584579192880696650980077618213371618871374561979203873294188622543426648303890751602712253767974385326367010169450554613532806058249218791106699755982974558473445260744460582711604612344224254421820319975265863610219505714816994689177312609143653030571557601679431723241401980248035989891530343857755336670921105984002245717682499458166088476133027445504390658888047046913152708165414487010225327456855292304861837827138436482671547740099380344927239634864345979102634630414908120922231609469625511348570226915069122333456596664742704504987663585673435504777056266669506620362624483147763712758965972641756828193835403778877941786111708642455627936671624905340939020021702446982254670324280627338924034140403443687934892231432942114415215085844373246137968859318647519798706336840868704820148212896310676100906508364211057226813607191036424671000889885445663692552459463698373225224780405801974002924904616127628953774156522021337993854730975362853014317369840145172705508178325053738699839249605808774566898042497543678438188545605281503286972351852704618325330600603698208143622858736638707305795169371170585489496276659843939352585715864736312107410770097978303604930076613805362855195497189731344122898092307353001060564865158170818278707429469333152785019836548311934829260294467552426527103834801817248685672497788729265104215375780198474726293068491795703629683965141298649524762498160318942338014336131560278247132432586742553901238759742419545774249790831502047225410306792671374359047541079356583587799529367105334822139857572668492156369532542661351746257716724538130844582661972397661359637097391031517671822489778741282431665217858859650661281779096280692244014616200782995896760290823327470800290800590450708384287487997867316182060707876152568647536272102043246847902629058737340971148396293951638831772902069604991292722273568907854456906785795389840216236952317977322361076318133634209009287484374034542312327659081636279882772450290495516286397911545251361659587314284615440758765145560529860628299343540520569396454384250855261265362893277352690239356987089605529139785363218307124780412029112288351970570694845961524110082889105173271160723978289232866876866296838948348136656071712491196200065872614081482518743410236415963374784354807882978656295200264452653355360158316809325713374027683969568414637882366961354030526075884127762998744973104125510024439424069108791489129372394803212729240901145785875300924758732306151610201824561634580592520325232214908293669601628533522952202892938906622736595548965759118603186511238164392747504262892461592944982575096172261756230491544032253345579257006738304864498394249066038368458539019645619751316702412817692237075483296199427542850951123582576685812119484153572937317077588583529697002333054254408341186462354214497410250334152813127278627923407733750642256121255063950091555008412594883312280054266100966780322188786918744933201481572986417923957632044850971320824466781118059622819211872210307127720956670065784975391476065336800656647542896301573466764303850493480766348364064963136658698018238932353917963985194751617978699165748119837416773751737492832744772113909897840309931586108204636153222466032773486409548943019852550954354728511429397451902695095193919990305244588849470487054851666614830229942889825185478422368233553584830844629662958620054906237557397175638640935810304383422197465756163852371407646911044655818725091292243453011757198102110657959039931689333259058328678899235091855146684373351161302637718218120126404549591150004894744011660708162423232918111513290334768756806867379512999870637400756568040695571971575542175697449410686536047517763219459202638293011860513316456574072013384698884761486376025051857504188104403277961693396365294902069674909246191894205151857768824174289956656190260514164012487575834699745326038865944154883811494246649655355634263125980963961236859913842141538497653321502524665915968271526720394178676158148922736019808254113892183667386932125084190407847044315682646734006614453122522703344725599411917931017162193896242971840694740974531587653914874946787475437396795267596377848327341932571181472305482147007845383817567430781015533982994819895615912668310692671359985110144889424698078554941816593402355835182457147244244161566725700369025819942384627035378413080394558875649600586025551898948322518252547416791753504196876406811958785525746544555784652420014253879042141344248503596903953133119462495599358105202925262433502871822715252446353357693792676979070568277243347318329295179259278622234003316364943066057522906720086143919956753483006240044028021048148447357466002168660221994341350632587875120055565265789361709185657379430442921653892991391454394675381830120649611846033623649797862534300075660819548476322451007190444886447339764019826012834948986819952925027570974485957857710524912292872090636212796136145172007091271942124932198266026488449226934273193275635996925180567803042249749023258782428577125679441391268665582964547972385074154059080817346669598971325624291216569399448461261931496891807475911463834070287256639643574514482936428632902414676382713430793275218633334450373522897341239424593497120489366579098540521749189326730670366243074250133861831475478204708352360548011003308216273955560594857659458299491288115021984142323464853688711750216947674618438595420871490707837071412593400959503440194941262897173635342884589800252286629569346070650552685426262314109014360087741497418641711069956054594660200681199238539111145225804626077846963052967094678295158910775756569887644601051017226572625310210849909908226391926216569209445136826816577464933872126778996666919630843477344820888796936128291080613573802967652366341200544766148925360321644866398974678543784070184173949870851271180566411581454899999834247401813526401771393772252502325422540302452528352775484492271409779084268612508909892335749603148102695774344953698709199295782347926779099685953321055007203053866507791591403889914264375008038165369442161637273829249941712730997606640694444628923949294343217383223602134181913325211287794015522009171067663315736717386915193347435532670196480311081727064420900965494308818617123486591054181267242941099317763571205743453604342149298357511496390380984964991234318408262828906464538179324436659042871915065412160277814138626959577135170432988275231592859423372303393073171658695497613636137162942192222901292608484449124568094649407929129107668744370437200476118197319139615559687607160315834696850442595211662430167004211822177030463036561152261771290866846517144908457429584379977098959226669842368035358041960208682301637529040747357757026043317639170961535161227598764238675993186955338562217393539697350537641612586163188712134689327745430878447242153444587369149324024243811933444801546922916107791036163343082570828336765434372859808468794733966041947725862897882509609713484133038079113316364322298238001324445702140213701253396736176333449731321913162613324687796403152216711266195130242584345407480398474647664033939146246043439149836380644729992973243976217576806940091340064777848898742489235581296726585803311639761032641258352643051704939028148215853749763813528348708918578829421003064912234282303681713139248748468494146884025473714802202863961067118056567348873290791391393321595511240852926003855873006963353053610332401613891749430389649573081052201462738660881680179375004744528707386851938596174042076910452753783115497525643582456693493048750402516082807628955720777367058896794536624777842038051034363000566623458055484755886958995802090136092001856542554091878945668511752469181910156173122975930477407159114505018030897162289005198127346806644513596458308247756283624261311697587800282985931032757140621956866555874430339476102575824057993125726183552136983326302063471508788283357607349036332657448612574510029546779739420871606620770666276985511563394170560697444831074064455922343836486995422543599559009378040168905629715967923865272946317064086365873686745971067615718329834018617438646856993194672887365183106710259563352412632402121772385447843627127368084121478114762949951364339695173149518563593063589645986343387771698159940838708933770951009394727443138895253744395881035850737058460462409922697196118280030112611213120073632706155216193988447356655590097669015378664306624585397886658871242069407045556332919145764991245972105236681893837610133784864120508096685549132615799477743022793143663200163769937283322805586541641279808347584465006596144969270757238037329184239062165984489200884549650887931620351738957712693100345537226092589702724156835063603606967149489432193691455612874606928825009644077128039915617759127499842251209830684699097495329303706609079339474332106729900690250031758332584421591784068323331401767517693039664692793795230318222861751732342101860698158051301676665595697190255604911620410740999937916017332355598587147437266631837093439744934547529121268805778614083949753254920119391148518826911405232863718011593456354143272218453853500233969163688801725764647246819225231159153884380148375531659354134304464741484838996862422810085048660568399543672670709362262941545487859728370506851036746595529759458394991730494275411069464640109604313613198872820933160999680123275508132218821195762719784423540077240041388919730887531321118597728560641861429947513969098748653940322078881061587861680776624847154879625318670851750283926318473812138634291268621771309364137245110701988267616449182415175145597349321399860648493485029788670172432297384076265163340302974418784689854974613466025687342242952117688908875522359943492440144726895788890947727115039103516866349108387377415543244773506617348807888174937814610041256294732960331830562121514424123396681244538102143174822529206997706281009261439212170089681709393754909252287420658732216740046442555221928752436186932989187068422985693227201961454393708836125778681187163818492173086092625545177706558745555019745736075905735462018422167876396386271739678621071077619781174927501637279513036413841222676759216994144822279472673466425939353919675273508312951528484427474049165747799782784152057115960981754383607682043713593283594670346569199112832547333172951967835697899206852200911348468008305986237934085855306168893911773337710673016395694113712684134892108241728222835914807547771618273597749666367116634014286828258852936482091611965037760559658110205394755832131166765573040444754840581486683032327064743832717903117884166358845090397349042708507263197796625420396332831875612453644200807623419179061752283833050884197716036173831202115219357475180954053911020016400241765516616774633039270531423265179615604262957634352387248187040251597583024171680442618570283553034941442701496638468537038400795633996330419928393323411420718100508823064867016413189678998496954184130037685142851079999005391415816957478531950824025601144788916399205269517499345194776238231665114504900517177397351808495782142738920353643998710268326942727511687648090992614933226940245698451752191828845614906030972673697765573844403996221263681543617515467927575796365611513544817508268864114605890138243851831290797255910000686697650302941479401515010271801637727008826270787744014538293790791528592164174984023592372474591369690247887818375644808110569732264624890833176052665580580198766325454238272937864338451348412602953235876202660895825867332514102147880994662150932272136806826057445880643368620629936887107230558074484265230608489991011414382177769178961036714551916099185248847349799085122904023428621700450573134215436191265901877362917532831777082302643199303712309868631396140307533426450098098421480455143796920077859112017161813599554358385413948223764776416531948569201860051404384959509158573059657451637686011530366823404251487349474401256795472026406267977081913575215468461641883167238544364001347266997726640421201899815360544047334145111342287511968678318033336133108951597921559177362385272839262026702421706558937561122567802260113726204008144192156585594114920775647264031812628183333012639178880762722322842071579418797235596341747513194640722111124101521875327467376805224799182579593204605503578025238645320075024125426436370207140710652581898898488234687666779818765984120603431496892584291941371414217545918987966792644374288098561595454965122528172963221832453404061320161693332812218401753630160369370486671877203018596291106729727448946335746793449875297988306902112771958462637603155357292578405702170651996992757787251818402206802914212095171432054943402609667549094258551524398965772786282828081265658555334116410806227691092966661130750413970483229444556633758307736132958704748572966294783801680054624289413455188923231449376333408019939845566448276144681758807713205214601686210214370291288732951078131801448644315300921461115169667118942815167398006506496230939445385701343196333730260911794077918010987898602369567411195025589288617403032557629572423415408836191828494958344869940903280964958118797385554654617671282238876589103249677578033713338275684959379428831053773688007913850795768941771890784370295999661180401226270314875598143783007483500497697997648995354936613217887390435045833693777818207622303932526844224334479377950488283928652324843156879991043064364761368815974737251104311666858375997954257729533148777690396760794846494872120096475999988875936017577438419667610704995387230386040304699864142780687176753668265281621054643014067296809507825558820647478174064584322817951826572755554419718935828619848682915279361896016456378350251205369790862648349366600542023872512062349846520635192707481546388565479992367511741788461208478672789917333494057754449550400927240959611725710830449704854565098867298243225166705273549846554217125770935523089608311656917118660632468230095175589946660167993933200742776175555303007108902997012637034432023169639156782252037762231737232167049561185367072992297072864987071775173982234488374430492835784165816613688850687492360457997268895141495542739852444882384597859673693055883671755482044572134289668069914395518981610087148734436587654282270494948759576041956643403309754667949055514722519002125006346450978553537789320327709452518831948783619129819504370004664371892598017815288782563125984980408755832435481821122337918804704978466665569216446561661292953378982816825255912880703082076110913666842170411601194782024396468024845941409605453469951766164197463759656340701768681224654975145936132459459737995594965502812200249166160964345973743181721848757466388341460477938775285620541812862520089276259423854877720036300388322154862502041795656993231285189856189101133160885114984655446248486069352505205125902414359029634904645118998128086469327288205770577477933683750474719601023220390471062643884358387118572503181773941633129098543488441396386658009534224599753740120219451104247149653145908365766656879413249842224759197444396307735942473416182643857951031478491024357047365579227927510849817816692962275430532181329656325236289186468490780479748910849774893576908300474878850726778669572758013147271538105814967451961519903700669710147613100278151259716760847180342001278166591083812987241583422912844901878570766225152954968397194321612045987859197566237698891191535913999098632864848506619449199090455082700735496106528714856442346485423271037575525145823239221354118354759863112091569471030723811100144265441193506124532513012504865678209062687028003342486055306577864664625994824206653303317502635835997432258301767128259117511669450870126454404401731090225601418058427099581406624061701763414202419779347718945632109558560311890765313489707797086307085786845600806409871362150965617649998141718839387295792253975862713804669454374735824302203255521537437097896846150390568439353795634901186809518684689499857984329408592527757100646392280853829086156584890248422434992012212326488566369569149472362110310684683930753641563941190654425543005761485132124208983335623254075977825305006869924461183556822726503134296087274662031039354769423280113643059683397864417700755412839195643335318015084131307197734857462142554095713781409323914442197828586341041893272652975170505394073025248846913908139176729574523569892143882358141975305546544650818275076404732307423452019042106775894864040107163404399584012014902238154729795993041080468243074156047004867915700531954489464813471498206222008890929918677246121157318469646750104296868599451471720177352401071498534155491150239684997082888891309009390052947237717549691653247124183070452481448272741061180975340768677035303530201332741357109384381088068821537439474059487704873037229658771843469957666738528145141569306910930334429453038093512812248420994486196794621835603145623579735840579267285758752682314404617202514813047658957582937804591387912330441862018288491998116744600304815566541218604124511217464035066486015797981945408796631279947161055418740726235719267701260264773236095127683243777457227814454257658839672880889418937019257308374331793864610434991093556097548470191550128346470820820954497018522750787303634154753440133795779173720546049033331942078618996918828155170784194867704036710893145131748786071594315872514401962364437444162310745653788424510430115918937250045049811594069970281087582463957184180705397502877839081053477485018971922808392191981054871189379245906910284898728722478927215894438889861765590962743010781320750736589632118599411880926015158041318297558476697215905334607456640739795769017574992370880126410597067960179203169384796106746364108006013418263163746525607011973363747406122973722359124042753417491024999218434753504040366557969525694154338410689723393999006760016938486045007574738161393264620098006599452098009135283284118515268932070811749718017991525599128818162300818155623749533792158774114430823297101037442235097097052090780626143478835046860874570426270456748510694942720052093619545579830776250254853064408004925112337371271485144222879374684222133897813349557593603917468186944470550790188943870135527415006019689701336100812302800819412317911103829139092156471686322603508550072830070527881444603208921078656191897063991924791140200998131341516385826651270199872683470176120197221816770694446346596845695437291801202302451698609057971376993052452924471218091138405254278326639513075261219011269909893404959473742192790893044589957564192694733556784589016126853704117031515714566882873781094121947350461836323784655361103632029393856155740603206939833959736961323804143290466115349913472536939819494645435458786443355735048650131368851249016564107871942571272835943283370494808916930653615089441104634069594033133214523741034487081088695181315064089559638788075995456773749827199298708758211429151350775818711813493340156030531940514741037999605686091746753458745888081092721874127826587446048823385482488073880522908693923015317823180268780961653003548795199039355049048953527552220614524012554360292068996595204062490065073160431296508246056826528108483559412759722543363353626236249225949436558982798656862655491347547064928859784343796545324526423216077974433581904215408908610418683410480642719084122291629657027552770465427064221814744724555733046662758037537145593653348122658032059326364662241709816801597737193197921530674200420987336986847248222219375916561621742628088068196842917404328990579618476175817143232089636948890010009356806829035922249966254677884726009226632868302678838048849346971826555090284780356116808029401162417510507342000355597843925100584673845876673591507025178536467647050488934840590509018959618625883061893194438665848812670538806334667871517471211276741289052062964186199182497351060431757206908406858065600030907723097649140513843855922320816776086012779470463394310492134528957955525987970080593071588463431243022920914228492826606876488295674498331592570573442609284696803485863761495759568361963728468881004344216204382382688418869838402579927542422755004865120977937535539464663260958402415995370697803562740995370271046324450768911534732773990955319080923487269029523792332140319335292818262104237885075880072610484268217356376392802543177868261217075057383386212201913926082130191590324559455582840226716280279223819016620988917432806257236599610779370432642822516635553719815100810350969637427287622572415193431630925024649944596816481442100766933702516351046333142564585381248553453738407788902113188676423806712731709551153868374871911042486751473063882668954360354980640547180774801164679828707327430390290358353726707377591418926152143211833416009672687069890294851139880649020349535956852632497787909266907908329212378102252520009692691737838809064159929444608651669520763560279045126453981847494836021595765772595412250855668857300023480334752273906467971874835681855125743693662209199562333177050753189227348289884802611356223598520976848995982378394185837364575875706980420677892005256201006886040957742429967691033834439321917269731371333900107859054790849288605120030372806003989450866032552127828313310430868148352006808177599104921171795547785525881713115058067997697045287121585049623453022022470256373999331504181725561928030325349988030310931786823763206583523362823141549526934212761207068009189139542102170181529355834311234530975829115905651046191984649293931232809712429900753736164900378643197289684409664573395248959333045873235711168174984829121693939062822182880990807843767287816103028385116049329865433880097241064347463222913468050886705287896536060657964352428849282455262510758186178826438642887154399783694436578979531438899765979258009811317883254596124132391397432872340052067610246850741480205466699141838266240268295419214309752850108207274562173209419550743583336479726463563541546464807403823928976204543287462707312224183427626777951096871378040594567607843745192641841825210702629358395910540583408632049160141520610946444661379280779711940498632233592335671595383056429546412067950261348259422027416475217719169555673785142583952926087878835388176607511210506540015781147633646888994125653568318289257844539394227228845616773777656166200125419992308403425016731077023955737106053422731160246751792914121202106806675724959095145786465722156161018719306379241044150645450158520682368078694884389713488645235501971684919954764802367790830301237617175068005977384763897342719841005237703335867850773244735658617348152425617058290799774329083366037789042218867325822089967907881519568440742143108444818730317735795041229989978857135926415553700626066582465302394348966801292482626532464336514859398583681736786904263108209683383985818870507502167877934071711708192903326586971437243853712300345078654704835920499373317482553624085854840171778307199948779251162074699941982362827606116455451430123893258806438976647443730006262019710668687896054761091025945985124101004007369993568999836276804140720936503992628699338590128467885368672350765863877581521823241367724806604815190759496407851262045202494121912191222781537404062711862357767953271620032690789713234057938073446152123897660818247893995167472049327901305750393450092963991952759477941982709598867444884399360054058220602459899212693778500731232875748271454603695581658607703455783474296176836952946523571358027473464114062520729347884987916536371700441886560689018071397052540172513994965980570146229613475166787906026965886053064640165442443995083541034285555735572175403572865053009049090399520792115568798279291529433483415539117362135810095297445946830351974894893956868968955700380639390356925005740024063114086020568518317929715600675586209883777049968948450970859236177175781953832400759804958547944711593852466855108664523066639895310581726097058680244575711550453455288960051959687545601726810860395319698865550829694257375700119132940927417505985646770320750732857299115761087902276992631567588982116204432138057724239954906337508186046300859172638065344297369707357109156446552439644684514399869725628789318742511074339543476564074236281473996761369128086452370020081717838748435241754555340088138937139629020318332832435873063703448423908676881372243663955509501572614664852645507818987880183298476891351020711728234284734052642485392856436830754408436156145780982940533149073463270928592836992468558276057916468164260446276291166125676989650860405509550446753682058023881544488812374348837567324075595447932593748526616003351419278341937114443520597238088756959458429572763421546059833832562342037373015056533758626177891601072500774462353653498688834743151471066111005377278646082749676233097641827093353372554844199974419400924534327190815848800100902876767582350729269638260938260036344864610197395420771276755616706065242220295815103579933931291620609685980212702940249625052561096366767253267273549983149997063369103814700398349124985723520223216111988922179444096434302789875325291193815374827556025340896681006336651923326743193075470141313115780990464640954575211939107719757497605454574385427464279104220143904528558844659405254493349330054023373888145582789910264528955240055059527053992963302795573048273597827551736419307721184917489680277819479241482060038756757939711133066170820480289011869249744532117433907120378871082464487565310347051376312323247101135260312163070018870312508196204242515237533070890732780201152016827849734642396409146732163113566855189428518961514388237466368731171814548305685195184407703953102858730164830636244393947292551326108249051805738568393908234964091263531382649106154010920484380032980775802140816500707176955505552727732880151757010253120314740035946637496860285181246198500630701104627944509170110021013998517578842384685323073515797599965138950471541529815255140535658666289040470069167389816137264961859823511053355613128853152458877249290354855226141236502287616268243032084162500581553122432987811680031230789659518117042198525609555711040270193888062738779582468325579499090925008723404532849882432755296592365470448811824063792493466923542560627562735257093408165925336895927717860279697898493783801617598163037577261794564663405365813511149640926468123137573947647518975568837270098766993805968164558217487509863580443099950166334010204310154648441613970995175322414488063762778254519630524361634013257960964924252654232919260613677602434894102249030418279812238662112052831470122968184888485072763220379318786017283343929419716908983261644377965158073537339273863447527825662640435933830788916234418673665031806395580192089112785274758781748165049399788538965438335892875348411583218593195869442676405927403397928335304034259214806913393343498113610697729889809493533689128861598092174393649551765848185593016347628816651056246479381556899664724587999888431547481112416372012238775646952538485532917485426641833556776690279848433980997669848599536625971903876045136717283004402855932441126646013852170854507121141538107873288153176719785120026543279738137216661503598358070107492178576261879274171394755553418386958947278413794280429853790109214052393076384350591577966513562112634348985112613632615826040787583192229644740787476756456688505710878150381714313885817042479134996071317113559569562675818813394217666700322898023165547808097919522837973788518145496829172152235524962464292846978700210562110053794420585809034395405245824305559657814321692071053392793185020516885576294396632958463762565903781191719328708673781250666185125260993533613035911866814055674763138725389776822228824606029932714590511213511726420576335964476938642917175653143081736343916875605719017449162743467317029752722098207757968627800091043637472108935968896881384860799223413403113699261591823726275026220275367533815426953810925011127735054891375640085574576253097989053638894587159968469842024753848234937319129932400589754081457650906182153313578396604598550945560221461493069169214237467770793493857488486024678933933467462569480800613455329718855371377751539728145824808923071553242042094018883274624578809765187115681548843452362152002120988819837297973579192207412529103172284932569176236170286019216483749712291849800579095520208139660897674478483476656094679668737912437013180766187197724117463766598182772347839431573046721635615609399133015923158206920924140660576694613577392680283723742690795766541240056903363355282022140051936362882722295066362894498972841064163618453679973342990678055376845044752092921625576798735750226228625653262783869133205755443369201418649077466728943549210771921989997448405832713373893769480444804973216776292928075512882282418710644120923722248260001016187611521555969961942059212673399829763851972512128929689972915991335494073479280776366825085007721697892381493938966633366352803757335919650786655584359971966067086835589444559501534069240633857967488257911803511281803298151228861964290462612061256656206901232023923276892588771004336152441787214108448079710157797664640974535319988481128417333980540859804634214336566741243272880106674855412494601834024264413960181291420134992970484382747719908495317140238831638202024323044340723052000190998906850176990121489020712132146303730192450680323938709560202670497353024015574026691168130386375264562268521286898693667293884520854654172714565360903663362132100288515554549556051145826175502725832961084600122789664039624679859851900030161810667933654407918281218665908489857907395183137309855321732384401720697368497649558211868793856342832229242630901257952916466751663182408795115267192267261042678948111963835421177266344873908714990826394401962785874154510591135624922259450485527334311848042757688920632392603809743664364845656119157340026868737263161229708156078173907379791920306836438806358101902489983729369341718557554915274137609725211458171140955948591550577862292280688068654128029273659052697558885448291565918537046637392302957616148348039808741722555319484376866765908162580059768747881161751935642695750428766420314243572209781841049284137288996801544497601137044642216044903341154672165754173196294775963138815854552745856732453432142596087576183321173145391657290379305839846034186743242253264878700561345311041947237085256574584609996186631986567383471537238631875173893786430024608027480360015177364526672989078673360055779176228172614761997471799873197485900545422325415931298445198617835050239613821389194249712572754532198219590177481605048634392097064583622393872045964798666134498718762181041022169920146352429722845871011076540251131758133745427187528045293832157638569753767568155367125891843548986645070603454763149784895286929573284227019135720686814990752889656364593616515931308485514592449351220588490496187586214903752087034430628497644815768302186543709472519469581608370711753637954131539676791198561469380389029356472268614518487840085334981347270547424603631162042122464192580106012933933500445350649311317252938784319766227811999066559099683743402860017975123465082086776962921849577620326443819297467544827986134117676597240121484975699573783938060045345364227461460846102755509732585089179447600680510049484351713413167032395019729025055864366981956343938245604695872119454440902453474779878272917936025831520430912245411959572396300799269100091761119067695089605329889291449657003467530678427705371062945988345057562809036121859843847963686668836941964428407280135926682474616006433064365550508361764786693249075958410547230890099124809727323304242422462475270383122188080633614072106144977068286403144691323662806274955142956960380848005807084206140679404379718823499013177861871390049290571995841250003803744716564422584763796984503741260357231926676536108277030775818326877784684088585169697681892402299507002308179164377847018625528404717237486659529313453318147852186681374753441725800428729740351712923460689119898556786417615296644063914033770345970952460999132764151695424697054234142764645685657823959012297757718319174496088881649183551754364583546589664912325700043661952703723510729614797963758850356702441509663705836188236030090509868717542182141295976372139506671731954495862606604787895063131836411332326579658516588530902099482976881665717779007692695379886727115271861239887206194582097190308005285909572354942001709399726798769600941884303754522615476760609434060397454358746785966680357403178065328222230491183676759518773276944395018191464697682691852501065832150095996627722040613513827311344872735953243071123421643179812047797990088798605517492639115394405785973730513857538713428249628714056400832165802857614149190013399546560247984675154467362601492251216801537637314546900475256452049967069584859467433471082091280633971892287170428272592707021672193960802003506381931153530153631892012781565294567110023787606048084112054157611468024559728953004866165459574873920224741858238336081276484323785657580456935103004364725043067097217842945309741130211642492635237806315114228669947735705847327859021447635374354281494866399291393357108904687389682424962977624524107317282025008575754830603678392242644736976393029750607085433627719561106226636102436722759779079172005262132964842356975448493117799827851497325336838407736368306045684069745229000899841621132871720942573580499492808751977965839639772593881234310532523210366798161066411941074852582165584421535207566007489049033707474802187015206982543893080149452034442715854555547354971980865702096914509054504181543411139214934490394346635461736224337653132107892283860616614276161452362502259937766922457707988126736343144227391515954367393587673049421102464156844406848479920495491283297982385904000250894100580784365849164966863707687957723301691857397513444224994971603853671940556779069889135133911721297747676113611076870101116586800177258224517086842608471080067880846122256867254331486884229891633335923228461861782239424522382920232985898717945267192425752803868692424312153970302129274770883137976776853071667427208935195702292574576931700626618764099853524022835066689536388968810710874010403859330856061367924798275061943726671812490495326255767045074376714493208982523530652114672682473433844496404614080320862995608945740963579953752779457239240050859070046114125149840930452780583760503220861364855238663367978948224578755866755947935491281927219039474023330442633425185215951911305154838510043718510305089630087792636948547637087253705307017234255265143311209034956731862198764646954739969972813064623463966410537576692227370046262302170347876495448699449880389143543668036004889944020648112116517851774711134882545069226673990013974348384740938039631819053914683202665828350794126562992365358936129915733133781793526785730787339097840692126386625500902800782744101019139167792488576215776348811704959328143878511749245973114305995177738844467640335085429854470068747820289403166368321423149037075213107343233580017890424064473202276028129578336393911818138014660272570712914826863938376229653037566842982013894127819430883488747680393487394488613434733014308161425100344810915428836741234274775253406377873402393985729587556330712299028706236484682219702480811159498107002277708217406336768380024808444023071534970908909812769742840828737243280691684318231286501590938930261030041406511347973190246612287158165825320518076195238678667042102668342325564592648338738980459285574446534128305212107635965747001542565866767824368420487529491588517120686024850747911563152951644785610413255543641217378511634183756526440865942883124470934196593136179733490071072028277781394389057874610280791191209186647345569947232355667059045187930133098625093179923944116242815195975031785944976582632833217248283577557528902576849743738410758857188182625860173583809017411059499642276550371885508136620938064697666311459102528390699489839944864847416609714692920071995141237012607415721797385927906637847453708036134752170581002675693955949892784982843906896617438442118050169801551212460319568661087589704116979129990224675214425520807153777252905541851944630485858216302015067159778882066901107385295932654076550015867840564550145890136434910403581265199566941398178176278959415389576252232094818421354903075273681885563723066236460566553442349096003942835261442294346423824877783442154062792553176245053413042851464659372105734529760842638451811186622366070623232354755007737487089092713574826130664376759149208974146400948385231583291302921524831940198891166776766924106958593516118371827104473002946680161063000077145272422605201685416613607422160204282178798348716437237127921419079514902751931284624647638967072405728942074593010271227134556572462149222358732462647102019003949661740975871583070310596007986912349298698226888726211627808973454770996815352930227600983816049177503243063824627715492412087277063166347864102550983384525393583535663745035408812329519208694828416488638744669686218219562392425990785343037976946091049336117022360794007597701899099549167758575318010911513985596432676746901538028514655487719605626447615042343812894233527853704466950266334982892163558154208042827782093302347362569529855815905727782514253199412942453116118041260971386259369268674617494339120729668762358916849599419145391061881211192085374095341269410678061964501032640020060213452469032497004777891700000720371945156273675236106040470566862792929770283818355307455186645891239032787156044460564906856415898728772504125399464549983078560990942843777284529185686146782703545881980143541987810010288697676133501596503115388772436770372552967773780553885768788474311134361452211317931568066421350741887661173949353468154863663300394081073112892730924394979553972108167900275304121721650497009963912652809589830293155057248813746389696946441560141637736979324453103646958392808857402243116642172360845324695235164474082955362196625120569173513774475530223859935932982958662674039955768175183412443609870815840415898456685130765998723295347456576594481818745381305379437976793973112388624106650784787773172544954174458092031276802824750078546249852750437758876051736424379231725506122478951789641833520104581238224938053775760502134056498968604068916040749468621494363320873683611519860147387747297322758135434782918717910461940654265266601184938867057333779357408725003453122879125818258416129850606638894878174973138770352684124561429608981200588172238738872725186037913000239868002742905997114152905228235138386732005723741664408483987095138409608722478216013562689435184016428515020719296129389838232300172047435563751874344862822119754889804002896331690136535159119492186130436741778831265891006023904829900907669021355596837238434247163810806538400105999810354405829350968919124328860726315796835322587317696633689976595149046174489159601756885920577872253065198259202819944133490235715289344144292683728928998682958648571055842072314276088146868290196100644628184153680439668867495903555915776420388176050082831827707320808607860465820051080115450750386371554346720292704898110656270074843995125325007421927394385293900504613311165131029183458296686761516533940469043142878405440436607270359138094173614089254479555134300421082076187752541811002181708042249293127964071452024090887010937751855736717956870539506484349248041708608016200497956852386141995246015737921459453339761745477183304319443191521984232176130858106336449466809026827723757683472993595941908537905863220578266451389530770134915129197553315975557033494034969781840197765865724990382232131586480002923765783257588229668735720454429733592685254011058529585879145448082076885130212790044225376220073539590174565621590055784837967327013012929696057317620808142210935539207941927314996175303155772833951876225816701380920374153817449515512117237088680768988929273943617758392741859039006770164448323878384786163612267948246934490298119314881485607093476348199602912513790659970660839774241727542869225184194816289850070075906537181364462876931047653489193888559620430791776007342665731730604256540672044757743613532911176513428249704948941853264961930667869590757373500471432065799586154742116780964169054213886654595035007002612719581691224031317724049237527405384980982117155544933459809323294075103074369648781655908310085525485480317256831827254888459502462345805595693377748545348278714722698763573773654317503242300421102246982668655394950894984417074890837099086912266302943253133861779129577809136411854797139460006743413335829758339141533845417371739864586957073212296874124832062220511293822772313322598774704815254322198901348156187157453363440308501434395172056209662581624088083596455034298724936214810011943473915545665494762918220231041909682401856386186206096038785032555639916672910583621337277323452625670658918445518549659993948473592940131314481872508505666152686333774110755898808972369045445217580532411487405876315768443148605615447958510830809489303579877933816939950931095126430625653750327213034262323805502427620748619286307016729856124174598755661792475876107214214931469886835449197229821127011145400332249881962496594736385545441527556939048554033888635109041951802901373345549697981270646459308634561935234880712828641028488300041321498472098412038952678102362146771075315793696005029846083644987617856525726321636245063453206588449940554683132984254383900772756207590738370192852116576039776006380666577194439176146665855681057616960166433810182432239388407986004923791938724128847302574454726458115033234841936054083096810973367115334340152537396816158400348929658521609296461888556802702401459319767750319079644282794118049841570283199643527856563128258479030630568431924827863969533594408152941431954706022512611004787763076652826177632181879262396328500440830210548603173344084078329365802737443543860121751564008478765792642645229848857332015504068678141538363717422726442273999129821637267568291712224549772275845351324997201605126969960817909747445781219864180262171937561564578540578322255464772879472469017516123706646356761123531303651148063946516907373356258100427958497238564399490287732103953689064634553243808319566694350319886224410305269426835449302970010539743647957033044667253867346646755900402060792733049046381822076428450236927527349406708383738735599960561986011009184574648071081910131667179696410459759353430856189561158468263307363234080170835576861818321409324703107760860351811133417031805820843100580335675922707467491287615891723934054771467615755312074642048186895441149703938901381682214063630073287130176661908878410034030223664260585889598745735571491922632842769439608546585881177028254747506468044739039173960858331656704208531297599608372762302224403394334344461028531571732918635364628918882146991580148333559007251495129488799596822668963250160216909671293872684613687398809936316117875138844820994813624974625201617723930705800234306606620181790998044825886102695509569836905769518205802430248386181794210513668259026503870178311885740224937263211331816920592905820514568194909372312021047014804488233880857419644137512002316688948335183539102365138077679155097654101387110679621664299291069519131676990519716765744373166347564974137802929345386621324883756099997389059012473867145323165095201242554346471908255656903232284071766708758478845099239121462534956952971852856966104518018874259917415992463195970438066176151338489483071147537818652437977378063630060844546146934704599907548911525902394247951842533220740336056343161767155826045420280521083374215109664376648465005619858920484139406407467812410747376498337708347964757392480192695298699137793265800307065374124387999169305306863020233425234258808633856849901898434221611577782187708391876922411998458805168710484563484207274744542889800137116635883987586770419901502434830066527847206124808105922624449381925387148854306055710268506002820338263386382438880044856597413115452156694477094347988868891630441677721703520904444031215212708288522642775821843237214626709098296027487010852302201486631895196399092267808087085178888892580818611445401479340143752834577210892167348938519596644104857681400237300325741956711532741202972617186437727095967415443986257908473119169364865911861386746611298424172545474861224332092098478075591992487986021822791804584058173402239913549932418904231098717566797299404273108343900850609541158861535297917053518471054488531865554573266758988917722444512552002230705576560695083915566298274603984305995931677849121506108487076325373862903887956529655832722030475162949389032321716712257890683221983996958709332952052095773494123202830921023983071969064984055757622188450016246250764348506389564460501000757631347086576165480541097598031775731317187616305315932841155494864669421281100347119091127302931701000702913300311766429827027209241860763280041828137693990010062740783024257690630191241229343986647161183920556014608626226096969855215263355797425981235647087461717741301214360950426668724689395442752715924341510406564900235938864176172527225659085563487572229852157769021576340345320828105886790528120580588089003453241623414386863568515589819261959214796330894407168119419880177656115135342350611299380897598235077174048120041322088468561264975417828743498000642419853984199032143603302472639357394987244453725246689261383914323826806223624069828162968982894147861156515165856416752453621404832463697290824865047688352869689571409880551149451230907724835186326885804688515576798634038948075044387457566163825321844868574806860010496585850363481984446961528823144591771216044314295097095060193911451126292013854834523769522143913353085924861982935115927558142423444633894509027652417169248154514675398744735508984533183634150225137290790924014117232402925482134077811910340786069030787120966394144738365935476584831472471106898212806277392012603781197262245006326156286913111502580984136591895497335606211312596110116640837926845544358932540391522807476427820607640933900127338925413873044516597554416206953099619350341090599187558820535189195349356651448347117336373989591991122013849340475077770125323643135446786392972184378864829757732311071480725738458920554432188357859182362431027747091023891017389533231006819741091821339352195913355710721151964958839110943115713614365531031371594207280209398641754891425911503646434909919287543503679826761040542851709775885757462662596403511064762064533283471734258990650795526588402224331178400430822776049927668224675180682259096480747701561155957481787772108003978502269180855698117784388700878050749658146759903833846254057023964039291170723257219179813810836280925269102469013741651478848310913514585878935540621531039756545623024820277646806993572357335398823230633465514235591557182488321406148263904872260120498391884722152382153036709166834725950689743084100190308261100687652254258469724548920751824163042109836761848045187496360349542509562058741131795747021930382176151684700141358177513138787807120947543977373377528204052446803153220491713171108752607794760779752728473774704294349013578207833479457309991448964331083501253098000543637417146833227343547381206484147609186325728970882459685327198392448227163128010276388458484985898465090439146848053487150596683503947058187953412662346619365006776179692073798392120885691449735707404550289209276775420387909019118773947583293056740071606614494132850136455778238613817216080334977794421870424635707990337652539782710699644593088492347285345574505206024560848945826017698997754251096086416033504787569054339561869176953513975043227698939266991230716805827520590652992557820581463298459489216962699018892192363084643719201468834617517824020263627005998127040713510407112302163542070553094754431542729015619469273679581177979042582667496939749854140201543387637544475294802098979151219575494239379131905791547549351760889871146477909698128720164002511465057522611222265965607297015316963158209373918958277637775504174005984683604999657699597175037739925206677519670612704847669735644791068575407487754567768398394197018480215405885496926257730389176935690025293591838091219699213208603126866362386433741135111319684521506576944657382906375984938611474350132097106281197476499004934116177770287240646228766716386637128346705181067280983210189377933147729533384521958621779202829008168366028893249143503198514472872545880721456896663794052683673003965241318471646627632732012037294925023168769707800421391367355614567321126215328292888696308155504288940418204913578589920848925001821603948081922230423707375402142259471253023400610207150498141815685244460930658093562974958152793015134983451451396480441575188235092674348983685746989838987119552939030969891431599975978931642761971506033978123744496641110853275401878111909563435011370170450824464313766766428244930406894992274366663270960854095716934680269800590448577668453003758729662166754237367477131003276420279541856720804699706358396709445534587225143240124587142829746038082881943430267528499339003240486506344332191831943855378808173363808992237901227414121847820331280418770682407324088152053229335127793584944840292270762590063941728909958825013311941878815202432615200687000835317799476878989208999320105038859852420819431491229940950223896918200963211292214451161868106195777848998176503520282809488334764994893482938241929684131396010675551247453889400677092274946349204592170229132492042216928492653478885988210319135878218504259371760046867429503769876809192385503236021388769055640217392181481871413295209613567843141835945980450312947194507300961207512624099617090906854852784695954632643817881268054532235736068389381528928145247848132378992738274751094623170582557846671611369376988912320456254295207910146938789726875002924062864248546676939310348155151425623626440239683115440491330874114442723959652863899340850356799634250961542591986649174276119437920713235329193851977518474803080996890381835942793702151003606106161774887625960438718168216551317908515077215643662376430630797551851007353057150957893719321539370573540467946250376470901444252039197209075249312703969041882236691304747616913164530723590420765170763233978862024718341223751381721192581443526478634931354288100800105800723524790765890380944407628263338670404657760006881506681497955967835534324530220356903712689788799990312711398510612043740419438082164835829279717723878291486169131358767988539067318435276046397123624754188409116661784048334031862357558885581367148470001347897556543730497035004492737977651224920840285030598229499974687219822425664131964395853381441342926606966426994352843015605955853910610751284795319376284816519117174444068899068159539022070922848453933679547291482100649930167275879637872168637003054009236125608122398429216558817236422061585167285808214887624485572277653051219194991605786805262814902384584149258262117779378005356532936766517544163869279004984979987817881358756009194399495503012258801698937837293502667506134829545761322940627512985429007787468003051410117748155123088996890745604601651913206658523025154156879949471885991978512722730202613814647260904849176081952599689611373488904200132840897338884253637617524813329608385858542551834124286962923884340886367984746890106364789322749492904477570332324277228338113202690817772692889274162755508100032320978430928750200748886264094196437436106153562830991503691772801341474447755390187334434383814003045577827053080190989660357886964007427536261691081689519900667894302170415899607522625504210862617086613980100942370607759823601079483418504963651011790897997798627810591222755687912442295963840309832725707648160673147092985000471266148877975870535494002973594965004812457470289162496875675205816738663931745278408683966194731890441631081804393448191242212981599240716286419138212220370711509567974328951414305404591087460666189701776349865498951206785461542600794274855200417751241057922176326025530973358012182620853668507734349368224702658110402376450308806745195435778752215691005810967372957462995515452491863500487900918943317142086129530296006260005265407819182189315381840441962953831380494957626000114632283996511999123362026261021997593691338595269471742387205403391793281740883638991554500746221667869560789243999506477716343462981414985258157155974964979655584339298148795449440598839978256071640262182149966348390654539916487590220199123852905128027185835261383951769811852516326990813351077647987239021389794883606327499192578179661235776344529694180634289226162576138686452844666205947741941166841851047668459480455871471920896495608491357261835466335369295480136504175034653823865695113156416268086601110193549072902968844544109451062903313007986303779653558103845383453389506548276246148988448800108438085831196501191888031504795781654667072483991436872345423133673355554154475857750161967529824108360504646459768218566629879083349930778947353712382973299164758084417695443082232581354550600121663206343645114038704703089133058354799244939947740875452541939783456509397331801169575257890975153562359070904705984755503908863186848251240722932659634304566982884536142836355778703598348722760996911081036760069447985571055962257576134166172534951048184961302472839184613675498406889332995862656268387805028630331365081818606887875126291994733587650843167567234069721413048901838233415007645301329130295227471679952910745489793949540134210313875450514337793477976630138891594311118797376595052975879180428004190454757724576431929328615403997751760792167532184236335096964645863392305564570752588241790837363690582765144992514215664438787999864066146196675733342606112827988970092991451682500380240203863613060373857717086657507643350416650677880444160521170633824964328194816506459445432710676061425958803590827562344337396113841733851926832008973086311794278430403019864122262178024939198957848598246755355258775997261548742847859191117200238555631130423506238577079946160399646382391770074642838621966330835618900306679069704372787634493809756513831237588137492319116487451683821649899449523923144352230360106627341773543921244618100198079978573682469743667684160446535151090739003185028636705520818311926570968502546151236334023539947665912663780530047613097468326025914692479420488310887879296301752787713040843371108960562478166214709388908667754552751717619997169516789127324901449670223295524653065202627408567003584662714456171638845802907338243010088487135381254781522707675697684123813352112621557225624976515466936769036900763937422305048385011568557642161363711277144857673187277113472882720334365762456675200602838036640162930304051921100545240584793064867741726274379281603341022171068238661551353315196991334611357635451459585174843028209528062421743428562315406999420571344130166247534507952636950497116587660205493308489806871268065451044724369687775387652976259499719538858446873710173001455147358137239056620000724043892523268991301838043293213119487383531564276412325271941062842343814608174611326421710881199048295666250917144692301554873607563022621940119635620126442374492852376843850919681823002197849699423346467984678780270853902082226256290761326184950742578006615865732498944204423421363133670955961413367479923632459636599665537583085780991338234820480361619421303722274374217331017233305578060380016814414869941403436225784086587721453253004433982722913889186318995919477887170680800047303227259774429594695388956204141892110484001870634601731937063969850193228554146462315416241347091250304790139234522060171845067115835730141882402057371926434296588742069453326231778207636102799772961040851680071780276806797666822711555129842420873497178935245855064371640955007033696527481916958601233697385794338423366741961870930639243815229703442731400040846677364464527190304124091572532389739259847572759384073594462873791764590562416128868150921537260400186605759683715240348475964940375903472357027442022177944010579209254016317141957055228749852893897628068105118337861604502344344609698176225420770225308642353505551253610007431690478788756198968178268194966181483826690595643844542280546010256130040099865330684740130883009382345378980709080816538178920439225797521627735539251962700828803156958391382042527877288468877534936591741604329973606191322558436355448873377084295057644765713711977633258092673601352242785555931361494464323674642296229651074932257080896358936022120031696002570345023475605035125989367514473447035449875117424476904074906993522863401100473765048013494417639051031953972168264710300331157358550615906943328244748803912294238710304274428792889109778723403139718689901882395041179263970456824366337978630202851399576347096058390470233088853799863768330176749272038624195639325348297017114531741568990495142756552457852981785095135972250474881462195237640067710665817171335488687080900804068290033124841634009092914511381602494132916044897494557870465972015405909063476696327909891050454702187700634468096033631119294000002499331951311440023734744183870861622700391569592323827724524775125726122329204304466971622382557120149185344463046758492136835653404034883602636612746006486011882587435417309579509118303543960853674644724590264574537851479686714270000654831232863268902375071836606671895141272102422990401312241648189842669871000943392982879841781225463862553513958956595355228107754246980484320589388672761990769001322808394927044484728039460097490980189319132744369152227391923879757138025787410988429947465020605670081508706263940665116620556783220454870506072010167859760952626197217629579635508470952198109301339158299246936050656858313852303750103757585543752921977978882302441012120573298470511608781384631204851034962642959789035469324865073337930985991559260923650661938720018310088577355531102347493163240884546014530270251720473256288107330261644358424457153859621125563006546329840725464114949226603965057875279786702202356139555507225037664191139504812487619751434165436427322767423666036119289191442465196993045179558359686008527707222555079818214598830195980796497792390580249588833760436886368606006768726977049812962809698942258091755562792966148686375550124084302277560923435365933507298998850979211029651157775633654856208178831560590463687303886418884376039404705870804433421503856811878505718918356352028924881398689487632270658255875363297649023644396242664290180791071823930054821941357700863420591645576973435729857413631816397852251543141266348586268440481727330776597812670988933177489682778542648430312126189108164935612209628954551208407655268884268313847468090816594563930184401666153649452664318344882430365397876189440478515123887182620289080356158631012430632526804566487806818535366689874466076056476128969903024246832635889547183676846257965567425505026989535842809400297008890086576196503153412017290109068625886587425441137652321386779378943563838002002497666061821063483337952269413815279862987610094497100434221836176193402622677286518778010820937215169261657095130042438641254332570678133268555309283161677971092021173975596754629373159610716771341913384702199932646976853215926253652275327108428770804990572025478596393261593454068392535809623380267585751902863805371079194931855263522458242756805892044129749559651557723006387215776776965167433554487324511910802892992198509511777188062848737370217339615534294985326988407424018742539449040604991221355540329193414285472953681941859865216793357137235369797907188955306331739242091577489261929989998788684707436679377353204699542606951809747548770087653050312110001206987319477845591219302896028934483901095148678107394415137748642170592653538794751294898638933258085019996699113634353483049162260889856913003582404531493935142887254976628443288913208785247320747163747832205931024845730736059234161680302051586244422431079930633385391357642385036618762369302417683077444563172509749383255884294034001674429404515819367997980341388962799124802506085304715597112072502943820966640259756995887722984726694171599324380545678482830345534724639136550850827456652031776561939854402148642167804119160030207045395876182875121687975212434667420825873307205586645728093815539932819861298527256655849716966946337917521428760522400479046350850082294163578420111597479233987026672956680606340657158283832623062776324073118380243961751160092078373586426649266204140106845773135555917897632462036816830118033839242805819751902398756593810696961305078001902916775825440450944529582138829185599696483564670017423823328595948439289669397418888548929319620409783210259965214685204875852811805152491726326858191820433613148678570261631650337896659798212243580739164802261457957597803488316018164835273381006412471208569068146379449743543349967653663809881872874482711180202283424468911028512317376281202670846323255132477871558184667831888143122348505145780611340553662633599811571965814955940304764829228440110261685694720377986745365297441683625071647807692518982941887800712506639723713709036220892787596818316284783453443229270014257886129396634851321035801840399784218159081670265346579418069725561728515593227258153139658077893441567357644572273335853370612118914798448886331116524362702588182983103026506899967091248915795224920000587246510012861903416703426940664556479004657032937652554589981836322303418863544831103218120416907190166208106827346060151744757708649179566503861840665323261041999644042924572629783367752149561169526095525092151579322432653080978681889919686123435759504598579788418798008005599666642172024996762251990941740291747309798818463991876732041784410935111722057688780039881088543408076856403910639774198550648469678891627632469501140148653265490641827297331918637571207661828207687920281798403169328931772085493337412110491475868752426675701617372825626019051696232352502288691338133204336956641046530152695513266069331309731647963691818991598356633102954393304510734299143769985046642484887973005940486322046686711783442682861810103905935284371354053336595343311671977272214175717427006810961420584247208319840929756777438576129342156189976713744876640822192769510831902602754133563775426468600051545102800645756001064935178663878352376360339836417067393397809447768279407413292085880866535845979063772501565079874854920655412850752359312179209281683465727636989893794832495805073377915217909822564450098591665952870315660249753597478817295366802239295334738902727752913236085749911853072515618560642661096703426844149197710026022420279399437337667804283014646964614702092851307677906976646850650185927541142551506971536478298530902736914035880963313188565210130063320533964465277653246559526389743652017176901985471856206715987319373196764275221453724396762003687864184977161607682984874887936816182882659927093404363071708140876265508514549215176811148133082257666219926360471987436723543130728110299991029264712691347637608843897444152362746156274513742107155424823028806277572347186122665794127596205299881583344372016293693505668699761742386423513461313329778903584932334424247275953235627841646005106572653765707653162233215842382217076516716196986778828641381054281953973015540314027736815991362016508044172671346073949712101295917397931733408056807722229455487572837678901297954970005486633966041650248499874078590084498063610907705956364717680139509919950627830388918580572591168091511526016347345114999381793719595337792967565232849305672525278025844602564177595905091367369390945546851682563284205480944062379009931407165983178331888818944958916816692386570580083400788051230684205476293364439864739857768623015948291561352857014487661844504076664822409968670661909548700593289707797523265574786179738690831699188399132095132145638538968066721946896785289605263768977999264458987609831104094106242267621806190842814497850334952963830591205490418941612546070811476578474208227707692837610252907149155791497987129944178586915603764598722794024144867353542062250351180841493581961101843255233847348090820995902837995362594381412365020662924499095276225560626472114014074062546952307420766759181714228960915894998894726673015588129332762923994279157422764022528017112047841545483040795338148379255538598911339066684820259460497384420350858817566916061663899894095340317164108733321395259043724932786559589506141293728568193954311516215360786216462792277901536132552384149541752137412791527693591326279688492374322183441969689018970037168679995006304751560627049180571745061572814669159564740064052177785848858156498537802400412147300237852556929516303190437848847268140543985387323814857089151658884547548577893531163627772845059803530238136142338543078897502241077444013323874999071686411318053520136122132148979235001837838518071877217363462985650177800908103919268633152286101105671314919273746832509064621538972447388671866688968979950426694949217887925998134753216747248750659854623010243278660634337189575043325101564874677018252377260007723099659280423847994487440445685300813950534321358856031418878339859037381256945659001297789303629171817901383851290265500119165733398223663403854406097088841028681477805188755768590799251970980251816464620000753028610343999160506686085538182651151566278399214443087506571372206827848183946809711125057743398923213866192224790530663614025913748322100216384412424865272332069997505670407720047313806777644376413930652127371010618443029472446118386005524084761975492917716342287371780571515562134252701275821790388489778414088676996012436431229537476965684966212941584669470736513477046982933728568117763651541219707153332511591768996215688207670701765691716193446885426030598597677370306887525295050147384142024491322403705095817587674894035716516611837931801402369577753453338156519413559817211062884345574375914619557994289728023841828554473601723472016345413415369588711027797231885531623350867730882026297574347074288237895511529328484853241811299927931513551518202032023639741855874009481817856989194685407294074769833879302713405527207876277894933715413676163964216420204079995218832106985779177039434882527526851118669579690418350122942086673095097274311051856541719291889430696096188973638135155393938772571210103210556498494339715416681042297616107723955022769791548201696255662763886627054734940444273094286547131522427027215213384080946034062388007997476013586086774879527248093719955685086706468758866908492858569276088636411288709397011915348605183798600424430639133521832090383818624956433468845880082602783076399065962570053430760432151085475199028314461079169946074809604644227617364515210392118770819212488456266769999537378479654462781531660705206086209625678556832890772206540107752497281241118476894639702817722712464780945324057744964267700268693620322568437181422411974793941008908952654351436040132832280401150893319079047094442804443886573820310720939584909561054306617418810821968907783689251167282692809010379168932181074395177203251372346444105029856262617680821154666879135704934227272372445473700318804479165077231418505029344392593062719467696516407693717598385234716770418697742419135045814753074167814292957301812262113147787874442609789487793660292328208741125138109553474524132095046857522381401445491635654166439592380937379918648570689970556959934068115801463796909829966329752055754874501643755077350357393180601313272777864685624229537762846088614592180176774238174716898530405917108377909536262692148228064854205442977997486113568794852513805281251171299818463698797754322958193162122133658208964238345233860742077078273478177944127711539758640565857538853903174412197331960520633460192640317852387853614308715848259314528100101403349942296062044393520079301243713413146204848430088620048366240357133565680866846544568729329908980918705209160313390894471587548695616999749206415446416638275858391457335335046470210584072093284545067205112586142828658335185838603944353143368690077324942550553925682928010484499323165745100824363608175398416901993087273523921279676541692267702013386311934515873662994936921139505464847777724324580147408441341523687258786137502002670219629171054123965132186226485870207344504199766985077763153234347352587262742752527294478828745624714636030405196226858957794449737584896672625107929524511438832214503855836882751682816098830136716681299060553473326461250610131884142476706665685405524327933340855912066817845411993287513948037000279622967793446384171562560148290723940474734744865467494842068523485125020986390126069738490808021510859091908258298443316232304982450939281820376786623689167440165155278083210352596862403325617083596724261987885758123617130074555244507375291939544808186872924248548359342669586822669872881318877307037952868865079944587684228103001487869098829584980822675782649326441359651297567572146451764904679071712312871870307709207297052163190127107906764863632315711852762625235659237901861161182004753267914400376989968803329450245653402201827995338425107285217268620253711410075202103576277803264042287197243285888077636854525272320945990812165612961123237522086975722602434364219880515758805687571800624142412585823120235601725661167352278578701694221005290207372585818712080234321409530218043843187899810405172393789360413864378752000319820235985632794677089793479679113183928918875558853327461592003419152688476228956237802089995741972577852584784035019354731615247208935346276183188312317830199698827980422037990333700441132599648455865268301887717558468998721827436522150135695912304584166940923360370913592455772110572247830902405410944059331529821174971879455062678597626566402001139856499418799446205706374722870381143153277576752430080190634938525409537949964001594357521069043896886758785640787325999281658212107347760471056595212902323655558463288220826667907263040423834400586637784803930512537261338696384649926684549131244692519199529228938982568444499593130572772627807430871155593757595767853441365005351532757614302131906788605081301279787018135633001979297351456639048055189161630916787887189966725483153479779059293109944513503275783184567785136691064870163877404493515576540864557342751969666873111842051826970844659688661150838208387828777316633463358339794913835814114544733368897605138538080476166671463741088613685776178292247246152445552055469718737523987643825998393048252406462476628155553437788790016545933975073699079322749579007676059705817968663811292282594882173543901656349342658615023175340223076370924308306350063346344882677576091515278415860866995178715749405926415257377079047697756409777304828140793870237897015378901844983852089447071631647563551695410882113229256473382690733615343884983204508801724678207165569714966473026226977719134294022147538645119544950797128598925369046077001959239821642452114108295023334050899364961869563279839602528548318608934496504946553599024407332751899215009491959655500555676540928704095353684677367782542369216095032524773993692177534267672071838878609445453266200844497840673849341736760704821841370887207801533391197624965318442763469078174118687715066165237918719225720898221846819906395859867227947865852254668044276559537590452115902443201778314895656909899394525538176202596620461531213378689930111391507964809765330504488588297059555595538862172150213705907960093302425617279060393194528442558946546278719206168293372641076249958812939477172074670222470783711613864441552687133839363974599564654082464033937321496784711004929828094201490960957845255234291795558864431448492295435579123983503738619273282182088828249542410532032068604091573677459086096323469528464514349682392075339469870277839648708704167905696101918643460112787049158258102424588456387481222762206626068363423248510515423068935263046823622838885600306363686322920488031025168943050715047695230856735013218885618257787608215701763329408698621079135219122119175500656410159198212432336556779587675637562142704194958016156713035844558891426142623612445167050362068721314249755871418128262367660780897379020628866389332459922558180942839259980077039674117395043006139967371252031089484421726459035614597421987363509297932114893218646940260928763300866308814013616588337658307939349906132009023777623907906534950843951773986796080243592411231839131032676537357414570756027050390307809105625745593702869124532978927687382300658386703451660725736221710169029392193356472131301394380646498326951172070697249383661046189251727207293804139435642770353335673889140132844494473432845046173906796834849932415931269436057841392704663548411022225677857803007391079812753139452120654803816343305913972893380300934520395849331250052870258467115262129602397255714974380166979396981300238756054574253520350835036212012820324869785407680588623809830639900543462886945611303905207130852680785745005783235187399414975730271819793013012664959691433475442932644144719538278037370462483531063524551016653053388225461115746569815978373375584942863879920684766812044406185524377621533408779188849894452345537523035182766807772182210484766148348780648146240483761563113754222431048522965627960235982367089682080069059428396392050572359923665939489675865347481390541959013411257578346946937992588988651279408102975008103373337835854264218303469943209216221389243427255606339203015393510065370393543493953082738967953150443646976161638388430101055075412936469582605277372236219984086021169993573033033779742683752950041502791358616889193224219196336233286378635412299985332834357510634535315142311102033307783897523561093712716734689483882990144301384529297216405104612527277705165055841820764675790605782242825205489748503389466913677577612477263872964267586464607276351263816463343221501802568206214943066986784813142984337124536168292703988559150630265979296217468629645516658541801954061581039187996432745909653391285821201526312725247505286258974811570875564406604837613224568634373582214221452279055693833043068369001608540108591665585492272564373368162205397592320872467212106561493396915123198346723340922036690927837102467364527605289925723075452598572238925310323490566066851256489009996393804142614089982641131105157249948828984993881483813329721283689192466232358188862033897189616558589952020482010827220695340185905991022525400041158834616080001293626246318638806686007658924201888318600962968014616399889967274059955991904612358909321636048722858568791248802133184507907126459174345345923695647948670233939179656074797031827306064077254229635838661814786404097772088544660318711254510594643177608977299840383994904777505377439873914854619105103228723350726296502587629638896817868237742574454045479690410682113357708692530323721081963031776510891507569751841879632689207107254027295995638971937948891802569142118153451290287151382338499520742145114070109587875365402711196845137955626503413166357911677221600561601948669773847161399389258317370078443837422428481311652636640443352355380053388068320179390721748086882415898362375586881153711613776768503355283394453824942737561836531181844935730085155063790551860755000179324362981469260422103299585246512053728660262286925293459180056103966636013999275488040835584870190476667021755331584141722335994682715666001752927587579811054148019196140094500914357763382661758890083072290405857354102720354598862144105140326256607204816842784717913396337787785668206027047131135380077250203975142988798011301479730702250196399835305370257308337445093147063342089535987581366560652794483176327954456307866931779210986975561530751084665816411382455327088061600483530776159534219632348263913124294525751909265612877390258207653099769327651089874907175437552012187517609272732192276735499252237154462225150267324592546749624974946895354988223933767410842426902649684338431932285890948939089192596726910149532933892653555447056702924987630018649973864762751590549823451263959379764123962564642651923585663262617558543605560252574178074575886227190628575655599627469206339836235312475275327858350738638808623325468761815545832776809213581516320612272697909338077982500744204759868335658213564567807236230533424961946451656586856547047901192220953470209756224365246568305043974189175219743572907513387560793220072130200737187897776895738075132198828526152713392344473323120029197817380650239240695097812601272836074794932214578376055174833196329548235388976829780973083055349969156073337025369585166737597016138133305812212404861546273126118387863075629479507188246411696125958272739578456178342836669719919419541147751808297080739443465714930478836118200076668195675621808168912337626884721138509960274916638379764957470441303269025350812504626794505552317145273967860118622386147459371165340056643232949701892000746163113632801535978067677990330629722786166387498464119819308309783551897042395796548316349722735876648897358205842506913827501581981148751265338410727988092760608757560798151643748068679176080213603723092179441769328716690342037998722033781488349107461719068885701822779622052223920319849493117196302449152776337547772220834440223214807310878716572025580795929559342539910125815649590738325316877083204566807418004696730561515845012868252062116992916667756730654303183975765088570856446175265695466577091201998965482952885448607106353678288541515888731608617474418664881843650795088145875345082898911998565991586560736540039930636225532352468960081804622457190234856504303112725276371157999061328013044128392406998325802362632702530171142862368161490511686230514523471175127163048070004428565358754209340030643907006450169399375629301842170050062701061391704974650965300049412404744170518783136610338284085618171124470967693876731429072149963296264703980062793648786795285135808562904697650097156753774550828057522825321614089949212875330671431530188632881345504141019330084044411351003961385663254075822961801930214272905121631336169942846411414503768621600719827306617199377060852351538130333314186665537748522695288907936164677077646392531757826080417862521862501285932191422612484795559022801956940187001672712565788962436854775629052241059488790296590132495610427835641391861143917819798243723615694361527134545149007181994865421408657281483188718985923063175316608120433817457016498765476046568477136423147835592561530637287436276151728599207262832470267112825680708064890870785861822189750623063629372688856054513382349454937992896048441623775040603270374180655044994273771470834444355126429073942689196899549166031189163161042452031276823947085222898659352479105071162795774332155703225592833384176634996712395380459340822303162549402041369741980575727679802052779009711642724175493696150818898594522647071452862243335622031195694173822090062038236580668188486490438990321041781882118914917020368144101276121936115488680525871165727529228975848450125498083711853289019384982407661371724403080797091932344734323851856984474225977087105259668850663355339172429853713578270311197479511703055263071752232383820675233553469847549414704632306697631511540848645317728411631490363772062371746701870025361519457939397756922704591685714793636341939024387317580827099600005753841410375373207868189798095988565866328437958806835195585803744622471915639887039894965846752861824121749691739185375782660484472321999740133436667374609889887572100778491721275473780444790453878056849736020471168556855816326178959904199997869097679071723589957320689613135628407805537814353025381685012222593262446707972675557896315806867024657732291253897772069000095576106276212959812136331375785969629993533999726559245475430858707774921064264173157506904369655119204446038356182158732259735462381324449477057496115573459204372091221465647867013576000984260778709498165289495843239913218069178195314935193689916565206254998904051094139114005720772582030915040534221166045119628928409095263139120922516093163262766097353684572448776060124228461439502266723799224845270235665952301582421701402258213393270098158448837923864590675929261741405934073966609530042594371376191073969857507738465415993855923560649335493931274206992264280928140529320463106059558707471133759197806476729926025478616919795890278768340409031855458741596131806174893934580809057047277686358216767100761147843440806096098481702602069363881716169135837359409116838648170348286343285067180322164795999425240494300466541345990596201856277609357647182231613446778190850083853101580480314150808676541178178469816226429577663726910702136715803832268966994204762871550420357179481422505680242650707267951623112708199820681588600694100076121666239930310891011269583638295797246063502648840909965081621261214417979525735954660137145045516746727502961093626650961788966770983343216926503669491698501301067344319299865836107114034836082084380536964737445072227219228224140166462326201397686578078446071722809332419533439889119931055346520515730909787789555656731477053634107035494458735678199421667683437516307972075819873397276457947338105611165743677503372469152535074312937820786764886856867754985500922436059881643509447539771756284097531813426019571327039283423342338435228162404793352136314284941043079007946254582299385743950316529246019514439959063195630366851195126815518978263239693371146143347872152728462854839514670970560940933456873638584094975661234505505554701957120329928632672929972669923233881526393841221579884144130989400198461322706794002651904474295886987922310697129774949719008413290482571351136662025934624853967014094151795484255661231723365023271727406389674727780694880328232291225187203025846133940079925041197798721396706196427399286455258133815361576033743975708891938209495551460680055980313282006387668769042040368346701449311160281773585870830869850261937381013318283492666070325982044929794995090241117856052218499893524847312911016706394266419772363249090383987975403816675108587667271756394001864752821813651702126617755849025810530597742392044277072349085287667521479327083394032147735880777837701567943353650280078588973353798584591824310119017747549089962491875534167397538072168000968631289300272266223389922438106268669899826822588880795108522914125143861778837671097531694742253900334988873795593826843929761586192073489188072452761601153613423578115732595639805922301766959710551258145373130108703018881567808529150369021829509397034086135766586502591510626757550963074608802727320247833889199881232601601576001956302744200930260737598457668834517568782038289435239957657764041835915215224548092387729416666148622485980368643192766322857768538160818217624152726901133629100653289472045886561049142036449718122871830669973532724662378937531291800113409148396649286759619505344066493324158792418574364936554061365749627479680048537692506804895912523128059262035217452795001513080824198252036594409622816455204619372446695138909595435811414854596511064367064634589909685893969258737460682565836100044000139767625359756321972264988118908015405926509969419363417053504233169804095180859577416117795695523894869611263915870180204337616632647527027256271176316413677368171168112190525622954899208054061836048085921282154609401688283565350617141262684090149298953332638472562433070588894658864287210823159226234616379299290451903721614430189507562034483604686730120497922051908684711629765557099677133675663578631193966388176388660877014463601825004190364242480600373932969425043788625213173771598215444875540969032625905062453039870128937260315601238238915017622287211463824575721290835003943149860803617655839331534995983144050650175530484573623923124620527992951258881225297841730986380571451082951137037021020602435591840499546420872550932719656005469101515377811148235146014659834782552704063914596187559552389030607028343535410236107325858780750164731253511254160539344679191824747802387521124601262963240807664950514048341225355847334221631543076377310721494545350792354577192034353828128882312331939411883424581161078523295857703146907741848977496408995767195097726778246979264493499942238886097901051700741050436806649878265480040767442423524195318743704459372923628431752551168866917149665897451226458633993535448870858062668020775520774209987404407865761960863806556258850636590483971548294374719597942930904936635664836266523917327198569552645488340420874594674688814706611584824332776260350690640528229462622215748319994614229696198965745568844502106003783486618293646333439689254682232058894243331405254377753980593019092992594528129822022072227491480889065280912053650778691591847012936537907246992901600858245744377575543473858773116884146923377422076711410731598929089259475087350095459270120523291086371701898699195265827801491801436059887599559951506510489465701558059870467288514999914820414476029350598989369395907954869617464092921509988076845543627559822862173176638428600430068587397037520364696159161036871170243457315998103602108068924686457214927031007302143009356399325763147512119497849060075402541922737093024844822211280544723276719511426416006521805450995255131485741154350663449470269815917810365156079341064106654516072965225617676744274965928637362582876116657315357878057853299919849030220020138221757286481350208596098884462187787360617366579003355103984727250265779461235742659527806876592309254332672882822411642323842651887436151947586149660276867099616645341645536420474364820228087918731324740865665260148209727623844896364473935973066095353683662050168836053097323639640010546110202344354965674092452091844592671182036525850279619470933425357325245385956003597792296069877295159436203347079323680590808677606804138463352525941148511969455461623975673067036108428079846957791179937619407514065319913014373028258289733287171674998392701934623570609921312532453907859951467506929232269832980915251401716919844930997237347270481024287087774190878885486554606129414021802128711870750073442233832084602854237327756365276328977562026698451629650960524616638037180223207986883365461817795646852969234055620459661209393752759490903025379988106329020415795651871308352409072881525538686698586411737966708836513792041719629661938293511605239830272291323152807898697506748905324277400731561149573217563783404403619004819159328264427781403956100152159184623552588239477339412967272508681888624143042791344926880273406566515750846198425156463183584549949908543029231550534643199884997774566988507490281175415693011037117767296815456900244172002978998963863568813561410175063167377362591097560224633429521962994650612632498709726373645851272823978042920221544174657322430749829471587200514994292413576246346942631123469878613522092933693086410518523847335590461659930157938652289938752159719621879654991862753648787036476475484142788137096844196499357839488592783892202830299486865340878934875631145521030807956697439579776673375185058971181268589738342466444056055095437452084697641121623624678700309667252360328647681456791398694479385059491549917808255539933584034792355845015019803532321591363967404210080761868420349475342373824968189373595377944583086909347331381401593014004638140437278186509823132569785351384100966495703167535803661447416570122743621451080924805549056614815325498741003429702152053069624966773615845759616378599735749296417499009487464995929835450902697290806843136204270634916300551788809292322497850244266631889547071141755246687092354388753038207199532002600599612365054861841829338904386656756356594041355830024535189757588579344747324714013796536148536240988983916284172225375628416096022408541685216478694237982139100428289484065559254412377451562418600470957438877897216988915224560898384453513723371768769331666161853816719588288977334250071603217830406805951121013277695053021227855877051583194443364027160346561091666772415958678999328858026591288064763120560341977851084946546509205118611838052392030929059234174518536467113666507040116844608098245238229043661490078906821626398820256539233804056677648231127689332161741383389294598352169965057087234442236417660601322491778060702464580665981662530840754931050225162082633308383394900777238815954264142326740799119933385323397705225179190566708541433315760512309190638161442571790318452712690012587269415567389331057680710529014877030809027848520224899249292717648398958376855322911274204805859098098934942980635188134314915579319018438461616103713683959952821165515691842925674384135827401683462006293391119663258591406432863795261597125887210404754803586834877575769226182623275674467533842799280744866918773571220436940734974405213903476495006659304607378763971559755105205810548212357418614129595810468486923761193802097418687812625692035388644791781540231685592419190039188192525069507021388696638658352137404953621493871656533852555908986983420822255600256860717159175765602827092544771596227883212161972414611700898538251915590860972441523840317208606220701724748612440258818476390297085085105172573172422787423360241135497007970213284901085485619482785934603379506476715303624175254092591072098614223877360579015040947400363097315002856264759729821569527908613927461341419761178506870034127809602264350950889371767483070975650794455320788041299618433261255285158119051433271010520152060409528977688193138580138873996441738646498702381536457504458709951261270043995351308594215174270589916638331329313604211755247172146195101116802166664724945433674666661079481432092498418464956854781029360386984935422505099058996350477005276381888321875639103218315665550538974912664962140347030554992182001855701427246637194293918224908870105988383170391892609090183205220975161745412365605905770899625473054359689778705002792666119352740521124448025083862206200713512380299072400162918363770508739069174349635504527589753714157610573017427942561644678762186241694304191122625561297568791214786168109047029369353648092581511013702159960437430339787052949696316121806177447261832661066370304634396507315884932140550187077687544731070018522185137744376308579832193370462938250907173278092195776837437749977217918019961386900843378904083986316800481574809474089465893170425481259244047935422884929590448444396294882641086974828037784873900283563837606225716625489700241454711206792785816188392994651501781545559972872107698551366907215014515661839455479161789237015663375131420171019624953898820183061153024824829701550750986395508065437981342795954416871688630913251978584093110328259151448542211573747309409716363822078391964654945313489255327717514605314716749804468103310894005948970595904808427456980662131278019179789476613053813243697052257761322984340430711537717215925349564027108204429171791971612587807191313577502857828444814781968627372290658693444529044485210821312366440811036110636032824562408374371475594128313941576177914074871037464642624704121365731575220807978324510282451277734502459918727735581860702982768605121025677443460181685921421405648713265178410140045277204651063327295567043326274848864956343764081172754754211666960149186964850068685130815937926423924037859853964167675389807810420949503355828395536066495379592575333153871231340692218334211678526573484411190117912063977055969260761733670442305949196847309678557038641025341069199650400317051123008232793428494553066804130975484070579447367819617793270207417254171507732793967615045963754588670980767951158796101075711922990221733459662241267146988137416301322059280625576768016254377265756844474800334910657800038658436884751062650665161209573527591946781279662871581991433925947877809411847283239340409297360289422621948222870995083366180533981740581984076317022304016668486486258548059150139039190888595672780141970863196278092104833243658397764167226607361283547695504492243650692337520226438621554607251145399904000410419528037635846202429506812207918981508023696641142413253889234237933334380447034891795212192923960477088005912700365286768511097459185352475168290260444318531377761421747134450249193217715981577428350637499962597279995229994360792624636332273099232071945673773086871067574783712860445063599349682437684067626081140358135352549960214163088542937821760869115940260906816727685114535881964832319502492740509086826029010926801571753059999683803563230471066549740276901270895975539154082708062149175319743364411257931132325053239378231107639816408641901799187478475757396927732025627205655254167189811678020149881518690599264531191640947535164805214875601974609016923120638497580021412909640187210074212769671733012350052743043327768499060977016430624927745735450009850458894950403411329613375369915373663410671803942158274175665004474038134048318862064547721435040058041151839057681810750195345684475274860821768939307923062141644666798922298281407520447267781025863656026766529078100074662268917841797002851353584356032441838931878085840074748003868709066220615860869362119596913072403934908994381667335430850583574146376911540401944530561882899813443097211107647365624130384499354109720642275723291320361786157200554867845216160809683458519065002787751050283398097506169273449355528984721815294478500764890416424300178487560718235923844525455622382161326675296512734816323549888438822481700856323695358486630908061727733359242113492775130220774201320165914695574747334270741788687085207087695698961954544351251593298189753775776075778273198412032140297562867673706742310197606610843766506543604508860348876892233270498028851359414346542922871261097291083098422764781629409788265842890084942151511033673260283774124204587325728898918946256261189159545642094207298139265966881625125048250898457509825685068049450697100786152358148874842117967193013690264077198368772138963533463106072934008424732120129160136363330408455906594410405407495112592584083216126522396480412944072535599955933112556083662924759296442780305089563748824691055292448009500810739079838003463513218235111930991878800973285330822052304844533805349195586591079060548163205286308556792896672840335780815826924802997850934786979982956257171674517906795056073702396463380362197248892720978685279963846658204651478912890656890768090929308417185189455479508120863669117378699346113589673828407260963556462543616924970471998236685441929742720680835338442620411171541412442673082922399483085453413411926588632730362739839670260359633667012688413602109657125091737714677362535932134324482505244685351176385797877508712100802234019654243730652238230366239660725580858748503002871661235628049246820727844641958986699325249901384922741107871774803635832755955871204829359493345981833250118021507477833249280525446679957939254575383561779009036053544627287489913663805332132464876526924993953670956423986235825622796370581334481203227257497142515618137712708006698332735465631289583260981605477706994235392758148825606983680474370697106692791996781291715596916422699125437860587474341762057252028488743689834325250457098918940467300169217095746712962963305388252632700333435961753100446889519640363179446308029556380051629853309106541818279753352180046553406414821852201159508299065322940451245926262451775380362570894921274565784030559832542978898841825792798134845068952571401294717334565735293003497570346296846877612512256661166642346074278660203077280762197138302826184702006294256528560875273275563290986556593932520439929295074120496219307608568559201855705580145403849615520792883000115570810137724693144336362837603564199677136908865861740205390399955188244606243819069435354518539847331807388406403164632224339162780320221033190433536703232590654512344500874895562273047242105300563648728287657337946755360801637743380891017884066675789891905887467357673325552681884471097880977639234298686142178475952458897028978222534849897620083841107566898948419760341129629906289738344439889924978290122005846402148718451205862679523861483935064458157784545186925384176712024038571176685503645422232305367659581593047854380090580506155743954730319406283245651265331236057503787330563275870275306575640019166400448074553165365136420040779612971529137677708891618945559529425099825305237206831608844964600350502753911566157675244029785873365965142642181605066760739914007463310298717139127123594352341498728460114297374024565766085483133154161117956947851078551929780769599714884187129181604725818389823283070361886897911011231306354882531182681249808690036857029981866714748532704233875617992396045163099797747045211873696511271002869220785578767062089636915790582353048776248340370839897127209190451921408080222925685096555377437921620421201753647082124361904248320775908943679565105785663788301219732608039320193545598412800791329312221152804388378072564911173183754434075567491056225210897879167955781762414414221863110488734803493653545955739995195154221727199361918311243594242601779110449233007739211540982526550878184776588500421393793765593135063060678436425197183318875608036897184160034326933092370500144132337827878959521592052724723648394443546940895656885762287835823527293507988487552896918358241812420782775038283708273883968324112742796563586974764019149193789260734328648255097198928137274437383276548996979739490460149057356631098160331987571707855906692426395735943404837408592883702791321031945616235825590937357857748977867705066507507851830724565947013452094784849639791739095618037797292344611795155065216544392369388269457517130092828922774618405327117461376088784851624270654329644208568885097740509888121741479218878827437536012233031657076964725239973824695346770240170322907994617856668421482146044724807257516687560748637747218822716341492440586240489942527805060381979671181597200262435163882510787433436203504201363096037375292999255002696881623311773865430277515911667036119109250375822561142054328728065488442040069469725558651902108410227516560747687568486489166279819673546085476016212268891530479379596772249417996020527101385061222981154002603212991376101090341983485007566644156975178586427483819128723225070123759662998727338106867135415682257644287057016977622721270057093121650558466228720492426265888592617585234317554180798730695499490894818031854302982763068918953463939523747818729348972887628662835201500335044141270312735901058089088876522357682583652186153781167409308890717075660738753770613974465720475465933469698010882115781003115759822148445694785435657085878519992461205711193254873596080995023345664083765417386595065912497851413070394812811546817416005104560884377965823863839563333564941829278925210721180074049181979847657177350715412933966027499702077558663663942065253587093235347315293043164384501079476335492525356457400071978960799352348324382792637896735469452818239405678495659809851520207980509646434620076919851080365858818251797198996953372183521224992583880697903514771355677421449325153811208617407808260344033104918722235532762016807232292947858553796535777427149677807614410335377016189180864200553347775324495040379982281586548802232822812184146386761887856288954937277385438494879717083154542723655533650625793773858588216596164252987862037999432319293388131051029537720468160984902518911513654329338421932388410871251475172953221221917995394814922052682640882793251679259346112201698229682891725919169831468981535943087076257407196034340736616659269490091789466823145152177122155192918755115292379658686291767543193640986080986509674075458490461488149043539735190629436539210959602001212647632674493135276140285437943977293738012196694665061360934418004168334874080255970647249436612986564884821341822306011877175971952458280998878214151939329498017906314553476129612133880928100496110884880740163715335323021368076698414588209610699682967751253975205287960602146344839977508761094312223862652673743783377631771402678916357434316912066517597475069319904784025413901568494481125824618956770362067193244093619331674093096324274515590323999348531444122354512486173200963486004203315198412295463288550542309127002920450420329895540537363953704722993524143682386227120374833065446829978618188381314489779070212101715964084908940791095694109314863975492111791234049403623275052460723594997993931226945241917247398396143659186785789766109995138313746353394777563735068288293700157302033750962753027706295042496516892608623378714589702691355092033760402563093805340305270345635320829741193232740661062568847693393059699320857494438301681560539505635812328408532279959692138926686954748516998773790692878262468950751930755958310269955565554988757130621149313524093952251316476890630646101651777944207172872303600567612982845888435012803529256277202100242948831494987049837745271689148792997199095754678099802805922189849211649806604084463009881837759177154913435461837314612977400259521838503563858922694229530302031711883093350951341334598694734442474543687829714743818130653478579066064858949283385450784050292574182909199381886203350272049305935731678992118669122857980571933153709891414769433391686372088177018036404445900816048579063251589125524059354942636410474028369666405717550756321877109921811473209768378741117213894290811381866575231718507057427314025591526835221853115125826312078490430282162822687356789579134205126268292416434744505651025617858470669377889499263863674876875101153742441323763636797812850426297857647423973843736651805790339210270227506134654857298531900366314750402035311051234076425632339368143272121195992366982379034882428078053825920204186161618469701779838884121340047257947676167117865623584754959236782842007032055162772111733343913118226921114788035514793005450314948678177603168042448179869724037052637798513647481364811182367237926008912613902271944772835865397246034801599867864357010907167293565508188701339995279307384958700275889281790266599799370424952740617037229670952524332972472932462142889627599206981744911578240544050064096106890663811644439107076471427422667362374696055421100494913675357040030021678601537184502911949063798396123854540788294056199379178321335190904855675648152923410309666903775543419311009505608020075924844696416514446545555276700552927812090561218603076274327049468833840424745705648113448289562771495095065697966344208765872291817985005139374812074147426769905663056047378878018937153354717917388035396547177432615217447576872922554801605345433324945495541504272939195710266830419961943829325643584400552939344018246583657691137195427354611102389646513184223820933570405008593018971769964705588209291614097728197607370799803429759465770076660047087007123392229389762479313911803183790504092183500822738302982116733618183491723426788570488126715948461192756056195684824479518654576962968976357134549930281334009788955174475733683153409944433763258553953698877197623520083666804333290633008851802309120385876187752212316162044389220150171507757233383054754441277309704326279877664960875527071931173300987395354370483404135759357853024046398653315801627383792436607249303887733630035889013137820723225425280531696652769635402519827375183591937799006100739189787279412573334873916670198706839825388531821460692861669898002337566878513576010060143874491644546012573382143663180691133842886902921869843288752543623776395376890881070539559523666565829168508167662622800039637250584416256616701110982683024917322158752057151759186152249549951995389846848872381215500834794386119320867783140107984617184434797365990683779407326487404970233619847455473552729151943114742693025062077742303379766385888488508143431820469962174082950441853725467324515478444028049525922618149553907640567975353238832496220657908457705302302736637453086058479604183643838833358151398880394825962732582623542199978266279601267080672558821858778032454011537714964264524672814390627691867403063037348398043657743486775583489752054395023720499229411750401757566217380644132168428292225359560867929582568793242899567936093455086613459863960537432451523792506769636060543362166977120626371581291194996247688213564673920742360845852606010685450052849597946868201700821729289254201807370370219463432851812951337256860141861071196381654964310523615184563114532856379501849006491019927899588439114972780268571528491239768157965027559723020032042575505742379306796843049004679120162152858391833746137970023078172929265050265406527078274392070849961251987450991105352437520418892465132986394579571190215759938090557802679728581837241977186601345851896546126859970824768598801900914077874880165239180040636754837066111209889920488201398893884569400928204996422825514257336296341645187800575112260171903847268226221645626699720580729340074640697485950593580131782509541217441853970955351925162116957666093263907864370055131984929337168311980324436701170733424019539706042938757824778282362282798532084926014980392908314330916687951443586455323509874777654081537928706890278972714859054382156884010636696577331009212019295907016897616551966816296648595839114259975021569696519844086038916214485016521353410660086334144240376508440383488567235239365562962444246884216263087965461465587660728199030311827019955214679241114642832094372560560719050790343684997715842071971370003086646394327088497612903263437657905044693264187516135912813806434030242590182664458669624144074415353189828478734703517154318969336229980385026180300497481807894057832434211510994743604311465486100737049469017526448176268983681705990029845067207348952458421412289287202289272108285760197656101938862619582036444986784508263964925044786023493072673208963408148167335015248686446141944198393607927962174577745854250056572239507275265695259623409968627309857944558941532353314334845292581779703280518013372326211579029020485268446124951948452775536676025042871790182758589082479514712547040817744464632871543996997644623574191352445053415776378737257972434503146567673694117209669262307796587380530343765750487984980048186421962275082441373163852903562114894105202352906953336400383835506424792933611616424210031239433109810003331143276394982615983473109314713078240764981454233227157015725110490911120200931141299561923666330043300857699301001732459843295619873957524376852882118017392941801358631118144284605545991912228374354802382366605529196821233435051999857728249018990385025198015479978225042506344883820325331681753264457659687420053827497495447259363688316542426118922926887658109968440584362907598332357628421711293612667948918658523544037878954948976455059341425584968560815014254532083460409085729574369857625051783965538264709077878552987541055541399172889964478598802598160119180917969765941997659971224038842598848186339858678029361387948742204109490822372856728847111070468288022680393957536602772432198375110757408038750695442932454403972280820017603663097451039469510184063481738753661609583741175624574672803867521789835532766000181994897760665947382328188411167251579254698391733677136918903386400528269428361953392585195988799783144773905269021340069242371953519303157526430271047898461363501289243648395014345571294515772776691765245098051477053186093411622429641360651019460733556904989676048995113073343911162282963099212821488934180515295782377730144447586635501576380099599436757051937647316889603121093233591628760352369066627004275114977628711067720139429964889904374865561121543362366111684661389177254561218268864271880245420320973872331046293567212946669114628740284170751536271950072861396586053484384427351560725336756992888305867406471790930772239850467443263535618214862201744886255180660943380266608011584081087702186478816137633210997129796324134628540010390331451451800233746078142651684562076824217683900072589092217391414377953580438455441722687078710663679830972535468018202467097250870099744303293330571968931200239346472988860544404399613047359673428072267109010506951020842211299431677045659189118621582782294540273102457558295305822407929396427291153548346280774116441450876085582981440839849209406961998423515929825764499463860673754605744540228393646098763039647500028824637122360207959549288928048730881832834106162294268239777740120184494498203950685669393522345000393569894706626905817044587508534859715616444785558919011683384619393350442196780985016788540977972478837710718166757735404695706612796853822140181210369847562002637220699217647169915629479290591380884612056608857046515090338318907767486086315472675073571748264625399176694639178892080474411268983392006516016001029996339966256315029189074164855511495096365862468851413806816968776937804509754625322430701478324057889556371701583356656116184907633792953950809686047925229488153677662267077287220562185798177769507771698166732994364288294132435773703722021294725291228806910541236854747773656298938387679345682387701702106037460239947307403700792110104534746439918932514559392762093726471781204392625336335442328062719180706785958149885026043624365482521991526583312019851290988848276909283887307671211825117303701562543067032341151635139568817029300213687641208625249881268514002512464106759117153930869205502798445603837076146862813259978099873169203804558778930649262731658764510818413212244020993053501844441981733029399887918944813582784634570566016055776676090869339923758629084104834491856217525033562264737459148678949825433770622761885809988375108632493839378027247707607265574868965717659442931067324887543642703966683309680964120674461324262891123478051911198060580111702332496764071146987506796847798562313946006708892742223027624589270051954932209426774960249055720191895248761688252444202883704541317523737041163769897806316850723614560962228275907420743255707670465886410246183266318459409017788787780594202381411022016142697311783680704642081147056667968179990550928888034005085423796488601273533471568411150493101108231617175619348192781787117721528995453350346776919452123385351700977887912528034724473742012544323944720051346192433058996459283075691392394578783807391769721896195246008374535383860470173583865133562633496855045238896386088287501179684816337858634763492860821210044065578902256140447354257712296000315237425395258333195057927779229894944651746579829612078683773719540213538154629909508508711050150915732799395623587191952871603044486985465165141447245687651373945393093238562137201803882212614150646508146793634304862647484075692704624888793024631512713542385395118357792227098790524889410650631647700681867982063800668825616480776627560293047560805703433463575261805126538958529235393410834440789971724958624244030241572009517373129079379100803973233889377995711845470671585179908088324497582905286404896464642635309544882806029336220880103109738846593087733818149666326104835788570421404703026907053058345834947564133660262094148813683955346849312125273653881453036298550597382244658285084478491376453543039537967300736484410797734032409418851434293839194372123502753288605428678935343852340670737230571192925917505179273906343146777448912413314256252464479679271228038114692477618665172035793793836473563659570880231160966074229837381269729973105469510079591857536792730572391383207525910147462205933307328364770608185495097400850715463864863393928239502415206328725376815319378550436322802894110010561940810308742455374389039932001824352987206063620640156649386232313971915914829972793282277520684653139808002170885464541973671250819006680590265693186265890793305800339423352762828812689897188654768598582807878862871055788912276132611911918747204815386867055536848946136413873091205255296561990413589921953927361617161319567351570102431811055518853219186563267169631331408076108439983970510669946820769070051164895663510678322593036674475576737072862636736195333875400318077597544131671638803971935173468381847336826784116247390705349290965493329418934828333509626693689656518643374305153434502785208235123089599004963887115298526415290436843153765832380371850691332498081756066821804850316357989715538203986754195392593823808029883586911667870414434795899251825486617114809384277145920168997519237456363231762658170916091295884391653901860195658537669052627857031957554933728247088339747445905194615276315855115543191289071411510987755386378898228094895006129944252258676400519522975743975758996742368683909607275487409862116051559233662518205046523583534339619467116207032232298985479531778557096899468304535014478221501470724853801681034760764502378600015760143751283620761780319322237672000045777333611237176539823653172860569010363233642419082036417143081996415242989381503123003491976228861943747659551850331541644306349459199859603958595976397931586048904741288006725529319615496223050939953002397895518384634505513418068254258451204472457394513592932841544903983699333408948772204244662406514279328396613651140875946642954105624861391656588397332608640864360395198921412498708890258417090280333766773777662703176640051578028777599359694080476327758678549473473186379744467716428869150858800470945264641533719353005555861785576657795286957205130624834017760041623012728442009465448269986691710873387463414417849872228113791463059466487765860405303381471816018906796044710824239992030932473876563025427907704891861841504888307748687918043084287072836294202759532073668890713444654709116960210920692098598176680113558046231965947947040379600270718956216846381853050673263529935698152576510680957691234195439013141047872302112273356801616826147981097867891433861181106673063363401562837349172964547623311952252449269288554713096511753659836122458917909377590889135647463695603856240653691316823914890736519596064433914068840246664715132576858142037996063192887423132462986011017236841380498230626464879930232806093712184072103601097405228303787534699421484255518723812094889309609520686558414012448042899303075396923650167682281845095313494481271036231432967519892364166546815416955463729515383531892112704330377698067139759270001099132114328042795740890270873471679185211148050191124073297376061047345206055233181182310526584104313545833280982794901686552201630493739299199208837508683086087598521131296891035775815071013415234765148609520298055019102122964547793345270781081712520678732042384412557004157763681472292102109955159550486090685535298309413898819103919972997738925227374366179880268779331844414214716481124289852061970871475989633206477548949030777285329823374593842589953205911727829163581407643010865534350399303794309658460973621352199398096570824138006720472489983721269715711813789977588906658040105165934148231453647867727972324851171515483718299322517317802604893988776664547419646419662769942549586038078381498890232751809880533380042449355050487021833501942835806953697384336009626654938591797307824810947192723507848072513817871697625333930554283236413556593391024382685804017964311463224448356406729511207104850378178513779520359394060614193940621089263535988122986795576096335962565659604455624493847644191561036235120077385040406767848536843127842955608430500208217339420190194242464274023853170293050673158047548027597409991448910103398829394160307159900006584373020106988768011861922339254365557289873535937311696833039409778616957555271320412576737667417844797187277858898677890608024291448018413436348850882393007276863976410432873674691671823949579545612816622095644389582352457503715738161100084173530804863624758838627716259056565044780983288574462711304697733900795924491253270792037077522556071382136639476776572055290713528614062851112876575365928647551590857464199919336821174745469502835524620939712255950778067081172387317924977686386850180007137412098746784514406167930911776252368065900313010358970652974100256320027883870145852240039729832153945036150888786114181448137381837464381441595239600411814861739762786766161204933877713840194603628498609157885505346523673139263860831194219273617381037406111956734481376677558596078273280908467142080385441699430529553957044659209056844701106704400501184432827950894944410583237587796086643868934884541711115857480315397796600104182556741391732859385262704584983805410620264258397605310112120330489159136935600166419750012847446494236886195524250161460969681876061562925365485137585184294022399686108839903548095592106725483396525504063477983932125311728839570480154198955339398835907438038791941259895132196774267853068472810076510743491025676859818826058176852974551025781312514735718326517488934740903984841682521373049200628757250517924406051807961022287518533146438396780960444007639362773049448112152519723730194788376599882811515038394612901063955023545223898466677284640634183701146189103326894268636384133281413972845141491208759110207056686945413595043502615653335592676215203200786216553187735628124138896188328173383924490883137662715210705094192014485812439128534691238099433022320042109760479466136195971843462756493189584255685596008922837421528283223319668275692121141298547775466710642566911654110018621083423353509730557404619609573738712217659449309939455073981606675071532660960717932807014445975652109225209286325782671784002647639551162680764434491584524330582975126246350999752653952159839366421503206760101473250153642584819904822046827634725519854719353730714605275079617000999787592192549834928311908310848143811901480512337938543623775541824808393460680445129486309278695802420443338827898238581991034454255475493185331013674852229575875906920164643568501411966842705251516892904737717781473248621686318386525070112936582985252100118891112683744315378508795720275637301016056210627191237073222944097242997141524989912671482129781878930668893495662313330578103573349730894414295935358126769845464561011457454890765056246053519676012305428835094379727837972089597668852645165936026704425806101618909927908563584079135379957839294902199194876969492850890770286115698216051493466900422609826886562557174114940755095086735207943832981306727569828335140921532799734302064276205012158051562733159544361134738615720036000802973583064800248033411619633030442800881776422314930437764903335646979975421502253256026300091242132204559537605220080571555955580109242225637711282638055079664837476246709789079278843933729469740169000314352018879270126088518619056439258894082201175619840505523968284763939729503200557984018403844553585735591650483665839458118616066658427153766086981441447756052139007156788250752339625563958414427158070411271218550829836672395930793987939308409046307038532997917680887481619393197768169494540776286281056718570817806464253664103254070971208413585467236682778315012675091007191733211597647513530224713214878096909045560391205818364658563788072233808475571756952063973272369988068661295041627660573948232120557136556046045748642559727255570084716934059837948016666561012298825223349980405538863548969212113794636167038765238419504916825431372922129788116341335233079758740041841824219433754042609822087684920881771407924779468735468544912082261169318559658715694155453991183980025318301870554160121477704058444613932181013155349583195860424451516629489932287040452336979818903988290582218410162057959683829258648715056297658370509468918311793709630710260083899073582084908241681973037699372521799354674138103815196972702768571693197766729815781979666792662461552026997420283246426386967367600806470625624065263160353101179011066522587451074571339244785770089652551781423938522298330426415464123900108173825805464322940981737992108900056819061903597285232289398442804701391720813833812349354635539128710642893016782672695896030814095565027664793625143215724772337606866041016731366751428602230019768096335494306879533565795549463765023589370471038837477212591674321853734050361973829981605736501405000324482282304939431037302148603611711658387892351203183142042257116108911482971404689054281379451189211750990920675210004957172321117749837718588825938682941441428147367377140597722507327979186817921523757450961375100645779148723917665992779502083633716567889326056320406685730599288893077788877775736592592727933257586995795799337755209125270903861992665657542702049763474941604131855830614251490473569609845563317244175295012067206955939926758576090377494619379164271835545954861165273680820522540384404909322176862615527375829513836082591725201823560680909987588646820777362003595243933710802715857205672255640952429815992913649504604384321129814147302059464984276988462905084714796372210008626008566044225728194215652003174115111506636000468740774353964519499906324016385620912669836180883786830652837187618662711354721642869986889016759231299900894377328929481328336481023029643361356927408442445643897562611674151666838165225965740783151273681506850540639421073047295057043227115762285356411017135453079251170204049231533022805842717864502576952052555750992404666144045817307166015415176084815487331876438414168333075530184185257109719323936883037555258421610671449951493306899020257949770659999118403403745754003128017319959643539510698978906450906762721284000041714950494607922313479446996392388740170230778627992282912322356742003128444900559675118728111873751553807677156358006436583706962144082392354981313622636407502285440139335987142555614704783497412157381931643006170925089644616774949143951435077469451242553465661231673268641505299100755089680052428947953265376332508351456403814823268364105762403403836321896084384454595787245647763768541576568854923913599546747807261058252895569994392680063391727322896180727892507223257487323646578058628467048758149851459802073088179177454124277107113608480041394482200794129718644747815862386692552823025317596912182555548197796259200903506522548693650508419304510243934114681426885037928224912556435267801371523487808250002003819768418268633252472222111117354812859332412451415362387439459000835101727942636420627059583990066619999873722908439052435975449715583005981544059308285857017514671774537080991388629110085020738439784622253798254244251430328203041625408113702420548685786210498949713187237133356766677318030536293810333239548027537988951216748501393839834816936930871039803330199260317538939049690958579727827522375825426291258333418462790074357859549682172646888547217009580214098195851788848208354726603117923618938884499172050817007999330529311820296667717354319718832150929454804883770318903137336617106869098825634424373453277619625116081743378639226159666244193848743038298405556043745685225199083533491617631765129297623997010730673338812925758692644098392118791911401751213676860989144181032445523140549887116375731396575383378817842891841566699540184454405550473951848028407714364717487650036035847952471394791868322371465660020919323516575601556380157892355456128582093768628908747389689780080815750778733638927778650917200526168222807041234385117943916678924878900003934741048787795728964494998089447665793373300890155695258848606677532722375374918009027781654929107410636085158963993877635914508290235342705487153240994587036738450046830316863437114541662239353472768567377330832818232715919607126160109125909965515766062991324688863993882044845069833170604737577298504822257456289523998097514350291793683069164790846788955278576890939303499243518709066518272325844661659988803317241165203885489798586776873243400161707555431341343104120286475530408169498518352546919945681563604379929867523386513580090816200550300008054714186922855156969761034919462230990646990829804987307143228701536813256195052129983140355012382306007524361260643963769281218167614207374242817768397051300627145281430692725261231038514807993223865266032524831722006438376214732927360536127402802800280625001859449828151040174338189122060502235726196245241831666888305082634002937176385158446625795597948263986771025650087114323614006932936610262240937513215899391210962978104022883658018336779482374780154699812836755184826794384570022545027178321752987995237328342328411034909100980306535558158681656859546204333354923360945431019206443805391120015804127432656730174152814846599826508831467071599458016237304098582842289315694276802234105220076659896798111712811377219550465827722664147924296091446284110720708586524250337053135062021271500647593611135252153300320502140605374001040680219531129494769898447800706393023600111703450306153392952498447373563090438833658714288262835083124586640736587302220932616515131270521726056331785474289653809169597626708337535271080705963818480543488737468624859842476981983427013505453009100680365138846952014834626592538049343398473565849183144657097493371256394098296126912218695633013014432703929687533325477287416635297590094518111115351014787186238285042538164325736874014539326793549013728266295759227062034523280094607947061633059670631147716657467870637245986005487490406104432175705832659252549214418482442532487663937278228061555288394869132742111095129866987341634372709604359982536436039141675111753357101648711118912221635639801421192552688357057144684573176053720323993097443532819806261197854416470521071453334550621773946643455347795900086472743416370496666495542145330682134935408653282133204587753600873349975417603388332068174287324719882551027053528795459862505816712692495431678277986860328441130806752786080754573315615144015234723868534594176366282082259277772015002363709083540557689539030053108094665886902081733186748306970922663486152367929055641548740417698564305301549966023788969212783987043554667481742843566483327488613173138844587317871499267823146481264587873910974276320124428172737868871136212227239057216647815537256871396102391514885498171034622823005101643989822804522065995618558207286524717169019786802371530233703549417737333760276373272688716317321087337226703872298477518940239920424661339439937846849648644976588176629385676308281724424350304680866550559397621832890645716324602324208031977676636841249306320371452553712300192604485646715498823047490721338510070899896110817222077241430569654426126848620633103262152553310115136322505543317652641875463522535002790941452521373701599727776234155090045645744069610524974196290952526676050818393715164567038416065782037921640409505942174567265911622368598470760308433101416593092850167991134199838876370993110241326066874369872468727837612929444202221467389638997079882817023848274354268344271399191498314457126945394124301840551089003606726788835796668853288083633009998317368079089904750730025098281925764788988548477558736587152387011114565344593913050443931520658785181112426170514381953408490362027145428860561890536663941325790540673952754524345090945878669858508102258572788303572461112152568563787413099185786610950050831362965334017957575484056902595750333868643418460391784301220165814625479389636896040392452914439968610386367535861463295404765681600811678821210391517519219936747493645653332494995179251898001792121433438963474698049299719693605571629177414866683114652153926745112620458192712530909204126167821044925651829664718288432175374916185340528382107257069542665677291539721029112370015011893939449839428112970096950464080929622140269619592321952002084409448892329520568211941825831711768092586697478854423272530074931931937782108160679427132044982738326907509393233516590801941071111517037502466418923063558884311775673928341841541323106728337223143840490513576784683186581027905456897547271777423598188346118773136439487525523777990538082684491568221878475962250148748019176167452626111583437580025093572151586860216381826985549610463889434776928359582038532815635109450770463135702213152006732583603712940487361137849016508988197851911419912580140304657704933349337041553453377302239145358786458697198221003234488176368319361162830472669423690051736855477314653739955073188599463196428935171259013131237024450037569072590816473707465578632097135633608835668626540700001412730900719557882863325319877770744645234932778283230728465772115694885953519323903559413160818082582469310918754297380675111906611503151566971102163839202203480245383722132917567614094745335634148164017409795397727551628008226848319738492911581548955765241545964169496977955357292736963439420145811686736155237475327188570507545066498472645760161056436620243555127528348869670417188932293901610683468196265935245920891418357674680471606792933841064289027286139847896007230847198222689505712851466914548800216215054866777005005334939630884251718519185177562602340583576591239480674628459852572296676057462227259130490777719436343469379966949860641443016042890341813000522211634953570853494669657611804153427297671715113576204751898319089756266948298753548170987429861440378997369797969817088278512711634174629283671524658950403880999739888339203323833683195394721737543465421179159808034681635698961226578296915624241558057235255306975309246126584616216661102290472828619838125196685937520623709308048917562675591706485821549027385742191929491091323379688060546843817627281808093757564407104358588909233366940467633368643453756237334883093562561700508137978594827572400257253062437750407671115689283645119332486496264427447675179693517509142248596940655775659541375297671931725292589818900081296035441735380855030391687507539175685440251715784803828387280314150678635917818349172159844430613854254883187215917320540609971407759693438035214086143830366914426114923934740485798141501650528117362481128489634716123845274854054873359103926428498388348291858189652804584246255222307980007346320040584039184115256735617115318965078498421359966664789445256042075117742318196387784914003561994575937960282530164205131671765580046991005573437220900391235550035032744213682736199569741967932906646714883258550552003428311446979317558621107220217356762071612732120641107292042669257536672203503823589748706846377325005272497139766054816622643435647881456158535374407259712849268463627631841901071546383643951276647840857028810295438434258496385776700313482275417351251248470487617482190667162198209670793012727760625963514165870769598435423013931311180881101514772859864747362084183278413008655144263690867357797826571790120511256524903426672773875604816615360713715805034492472152037098565391285143455603877274700741264802247617382536444271280809385576373092690491801619405688383668172198331621616033594494268945241175181189394113908575036347215008722406087844128401859386453654084776208098850367403797341552045797739748836024047943769714251439809716447227759593094607894581007737918347901973127106498952803661221146501636629574058475857131459017060154526946526562943608804890486688654033870769764599371170043722686678442064055036560000502856380235073969479786538990102905517699827383857778246961606980520972786946599003081431028748640339283596497550362625195930164688793256005051044280596177989469949236092468183932392128526214760025391985851230955487624931005886942787743376972279092990347646066544239496370285051966532351002435349787675239293869548461927814750576244772377415995248542769383534249706244873319808378287378386011664979109526844139961762518708262724608169198641480678862476364467445215152071232398097626589168500704081737754016680631531434908441780109046238904653863526435078000281531447297962982316267312326563505077068717054733108440236921454028869419411883840148098857050410288624353523414095960791118843721397057442059128740193516732580853860173476000369872126545017331347694417065550792018578710829191817448603993565240254069772283249378618959199327133241876497152596142909676007366785714256012369705949772325290994461677225555854581357754941770489450858094401077852410462557201708000341748185193622451045755144571481015130085480595571127309054405204889995382809562527903973099798274465491152415708226193502645421133247472679926424997801912799500634334780042900489643591323219271004421051781404889089461881704574070303365881186728239582519189998368077270621592272324628677223117976795460603151718900271828707444120797636337819186060617593598361946514844191858919881239713583537694273347219346351840381014586737829502471056092766571129981131999042035494481682858417900919999824165337418434517008449400088739082035585968571511094768786028222231174501964325870492853922198788540728190626366365447607655638964165199993903605928148761146034179406257834475296805835359140463211601426435656871385271686459570600297189192712942196409769017229609719167361061111810216532098706112206094502478472370083915425347017564268182526490946131178040857143646903539059290707484236305818863647164902479895680362616860286985307434659132355126264293641490940370843534741244811536575532578922715184341775835851811257128720431973921425844539568499626077351572401740009523235331018074286186371239458089769599654190140702110423454784571572983025780114364051577987644108980104423740496635337797171579977291035251510574955895514635344443413171302897044461271609470060376165727220691468342094946616974359934372733822687323008382007985999413160064745570444777147683288095400938724531854584333803153577313778407098957827201673087933436145297818136073565419527454375863589537936901796947995130402424628106946881900707749706644148721120490215962929736587793446523411465782597455595132585733321599779647404649404602055040880205152594755875581523227580046816094266412947471556004347620118051516807618978106121569757765101499176519318139528260266392271698894481183079954935919303215868899340709596639006029218680541109697150330514673381002576664598927928372149146361555869154947755132700134800577327067145255864493430150757775687786630750137139630209705757195737778758517863044146722766237924434523215021943118317760560343510332816644779819323072537795261332220103611785518520414361644528358495135574531823014566263551517291532483137543825682983976186876503156030147164285344422444014905792710002732365005391548626572497817162711968858240852416312513408010458064963221149349517421022815445534533422996380511840794144243794738259509810138251866248342344917464173762062185173782073716990758817896018603315890286185174429633601448578019562267151419072369065999611111496620207861748687477188890476065513113684786090236321851439657883035041371752333307265903231515872693349578666267034064223110027169735224722499193997703204811010350792506861830697523346398975292309285799044322873385159563999747373424284614337154679179401538363178244228381802144667180093583462384922273711386673360186035732462874888601362717624360059561929674529075989516367354108038546943239411787194899391570899023676764105022640948956557297045235738503304169546648507575829408660950641884059952860075642707539854951142249982770691117709195476239484878820713418689230325756804357124248639208056486451493630989210504092878418083565357842522909933140632849482251969820115547856696234800458865332767668218988361474947887063130969560788548177732542136342625808472096310578681257840697799933936531395746504247330229018836551643373582540598634348682512537275963493287631048614525237715152868970776008343232567068359202883239046791045395846626608911185737407385891963171369381457152268421227494373529623997083155134124936864380559149447105875360287937077497469574091418881668902284802831475144480680864419655334800903549697530759593538719844856405879096931703634684879065042337270649268621344455879632035186518227915077980083840906783853830249329202654681133154902922514865056791885379246739492685306297134376276323811369109159495544867685555106372658017085265484948271188365059755728838657914176241799108488843702734705134019094523556791506787205621246934338781712689915580955956848861999132556781957668802311722321069791063624381306406719009207719662872472404706377566472774463889584533235572969777114778859397361411413565415581431777060417936383051082123367548741772566554264340300413143088050352345580588587454127483423719355074454588646487004695056015272190269031609944827802159324583067835921328520111561899460380037253382992034937685866014978954895662893356552474298156409863577666859576859538877660021056473732168520043969339924399551348161600003975850625165170391969316511728332754456752488351452215625706334067212301073835583507638428461446483960610184440364213018283829126499943922970330765339421388197958037345384848392686001308032862380084030039546280489030212434971058438676367076563149142732494311141204262198425949308380472969708586074656003244682994808654885372174441172766008396698538477411451727688129699406118362472236397148004226655974653040979326277537647426914728531858171033569997955362119933293132303102912493477931021297791393171732104592342034332478270612835956936462731991102225701308027194720591977089295179254478459438279211196454914742928390202940192555587921051206567477023547462987071398268230898833782004393601651801454794847573764727104248730995679205973658316293101876418246236284682559545724168373821798639265018815452423883534997661627674757889098105864471556525363718158225190581827961655648156126887135669097711763265792155957053858892964182586698895872241335435765868178528954898416773812599373675518813734742349156272098036577801299632375342775260506893673636175803678697460834251211364662643280188669642631012174855226356639112673608397903821731868232893300153169894009584966164875365365216941128403724402298578735857554210352162918197070240982962904361486647762221651220153574837311636261989497573919755377266396518226763282611853691991778192671240010403257828906679120805612349450904163906709140458847118970282823195635003188317964814446380603538803716787827204658859727021372697047385755565749262802952373427669092674559887442775747275088856623055028370772491105546274019571462469575853878807882731367679406789427067290319681482550818973673540439653132783227247312136892363422000752080564411691038625309022720606933691744483177218766593792356191885243613326813611554046495751790432957908731943546974487826974348769520905341144803510394472107364540034296267236734330954460571166365961755033136446921268914681204103156387501199874748224138735745659134044401327991631665520439279686850730187154437741461114937016214691201503898193734944043620702717889808466606312129689637527018537044271945135428876377828330695069263027348118379638007531779114302539773136043682309477215594161008151318008403854918377406760315231119775503621937451984069886161475472714793876586981528515516434202038266067840034380801615538985235698936693759927721646720055299653902934519614865395494909934491838119087726119022194701320379868198115176015680788445649629480698766866231294638856463414374299684086274758837287719242031515356269963900534835087196620183675686135005108117443201230510411556956894032349104636686591388020709358864220918916037282954597779965570040503970988363374511361602974668944206202882560133587515811638436042652804508607211980824742239088687235382203063299316213077949391813213497169267114103696614571874613418692770222420124553269432047936307066590809100496590334517441479830845821008715800287812367068636959615857906185964365203153249666027918163557478627058494838976540614513137774464336064907488965502542396561211657428078271560657057645138064916766664026842348044529256632432905113988514380373406863158738979837327222226815560468585535709258053435725376910033166244235620395824315028610210213116844475780740224389739094434121514484750966924231843688769251138747481476875158586786075026909221642686290207002668044401188589344611524131672208877210198724736226525424682736703991115321893860028703706565457733140682069384336280534212403877623758125731554633175890447206269128456931136712080276751115262889157872758866713421835601109348263400622888014518721772437163128664176492315228092744573360802534551370808158700256006931322321015763110129442263947748692962569412410302848771971392010182919280252492705203707021330064696008835276533575760041547075264368252095589390313128879770529953010496124692205268676542506617844102918222195108078410451263747487411348431008012582230188183054134407060849107096673514348636115459521717612230559061511095232026179671078140499747443714838683602978762553535507786752825675050158030708817654600196344410562242857903914499939829910477457290547202893089193193979116142261574130942355379516054457288028020317752000287170994513067919308058446715509830967580237294691052652988054616782422264340632125745526943037472817680043789350770741059776208108018094103467052649696751072024980610217812141899513027001702117986845762474993013566251263770751297249402462782382242682276985604745874691086356717135094833989030186722363944309844967266277564978072956912980582412435562594196581418807608538317158371466133464288145697614750586924981789449232945109689208288554313431360841173008041547588958711020734585536140354229633249013838570486714165390236509916869359149520796091270291040882651067647796652744474050969304149127349537821098455227280457184680489379939526875076570545989371912558796180518126757910016608411870042806278779377383191074927778429223227246497488156155931777379859894113210607138457715045368467136729322101336580166590943321428641252710602863525245160904297540085016408591401408909564374007633973280723688316021840231608195310159052039902380523876868911467539726437545233870173500040800435175493484278652936165547790615809846887715418741132736485656766028235196548947287775650748805005485386355403061178274199264252993829186906981391401184566808373160361435875699354243008356586174565905566517613338614521641395029906538859503929050480159963477998530541704245793132327975237728266933463626792226919958470656950809474284620081087549320245054691499461163090188542253464683853996124451819231643468748124496960620415090245015640677807904567199172674773720339024517249760034634854586068825992233148147187986475703326472939195706052675094403552918002809767090308109418662545310354277034295604012516943378183243336886169767289945928812502659608389965513838062638055940375978890452682666713463646264271373061253654725985108010831826611672649630933467190970307112529728140231866341900941043097030169042755908483517931802088841879445004577907980112540761527196283867859432728886772099586581517468878543774533330933416970752978139185308590279571346244638464610726680967635655447908248652609154835827311622978497957963254232618288069935852799215850127425726067674914956592149267596057263133587315968642054238144061962274749673785572914667273967408022398189811368391812215191435110162929775555236953842754123686818418702087623992651488843996526274252273057763806005126546631428348924355138599854615364559819555070822127938540829948316937195595987998642338908048319323913187998573563854178969227001903582562017340630561936535052738363137375323107540981872550718132453809408379607922340778318923344476493634270913711554053658583791249523080771623005014408595905807821411987181346887700630178499062773371828288809001445784853929580582329234936152274815697416777468811588401970236209955601153640142030645415125596058273599960886463522807464940437559753720216013291571971707743738732112252014617405525581212682917425353012928570502643616410360601375569038937494143787863691104298963629333022952217268486263716474778691612228271261021559197272380526366376627509838971587392041578512138242053923486836105963588091792393016636474489168734183550017299508712149567220026976853928411060554498571486856805552740588236704681596746322679836158507068246556077601708410015450011983317826447675033139097844811149132750324577747818896929674837346858031787002957402124659999623081240858999925619050489176002380972068219197199639965123149400945694643365008465324306906716939545710186833969155312396825093566765749430894354646513188504361145677060192297788126530055099495151448431293973845575367870051080602202197409583555359951303575162409388085565274180546313742170571951021099369731136158930719931275654807027069211828977841326464110474472286300654205704285435862353413621477038072359006345766286877499028257838412508562314065310273121768167625695147034305855363261274768143452947936136168184796883899922734748180387065187102641722873738290066784200440995231719003585095787413123942421775796298897797012854415941340476986607300720619907997319788989762472177912062934606138366454897733507776754815263169926442476549123986513325104780160202707246702537700691690191409543595881381339850866387271522756934942866037348473734587462687858586018881195206926909337195688492958142952551272326345423203144051495780058044573543783700521188329634670050055132553691205290189775676759827499006610861546695052453431423698544051530888202516783761135807769906098860045037322897097225572127452955126475640656035653546543410500384672255047996327151544727100978748739548914833686301195041992639064627595197773003217061047427753773530684685941872023406175279984062299513772288915931309281998261782973803202253816754890530737590938850155497102085167955210398645439621381414685026606436072260519978704672480441513718131444482633046479399082399203866373473603375389202184698962918612340057450744906337626683219362847252945536142463438518210604170033776281959466159089815747654726888461083088298528944001004482711622945474546120766061180397598030513938618613647581739599655755634931135179029590573867753076791526754766392294522623732265935138614580209332424659706028667468421495840794140673778852253388023614529626498079271594550958428543575206334832807699978682308295029931619026087807321448243504352088171290578593688050994299216145392771457338864859327357712107997626306861899237911856009913424970126786953825331506546303601847351697593635007292140932455405917038679909763229838675832850339817259491444926269403105939030187138080072664573671813108905297326278819300536051044910093468214964785926547274364698491146302886667150845559399217228068106787449459338051928248185855144153497983953862220360414770706440131346182454682648978616853633958604618171322051767887583118892012976691453820931652101900680080668399254071408193005321866680066941351664555175504546155235117307411461279566614660757817621262581856237978527157313565008828948542525480138035565680406670462654874948176564896245067998964924522792624643005766419153647271807866933560607109743370011699618972567954929554128803791201698342072910367392591122575278970968301472015253455184316697369580639249269235225907261244511986174383679950095417802377214102603095688833889332850111685122305620308875692259714805090673626657423460203330394789919242632437000197943005262169408222694579082457931954349671569462312191898347220943576225794432726616233057828989927571692813290131029840243256375760215243218268465863589526071137001923050274790305687998155529345713206470730183565884449572961302312449121683114301804253122415884916857880752273417042693896575141884794983461642576496373256394840522190445057581632897273080086180305409985690626071059719126620622314400457997306605509057023950045776403666978926559614271259169172141556034647645941875963728484112062480579037323374899695517061523880944732991699404854706365200617814159462504174420968424474875909904455182914646624895164196073386215986496381483774506723777448149297234549467846571682649278044005390659654145218338950131845790042842245229009982568270734887822494273767424129774204798941001026867181189754618617063606194356386834029061221667702464719568591749479240553880123440795758439799534420665481690570838405674867408961876596843621197929686573978798954501056468825605072755621950579561789497600013758279356120873960893931374764704258776120167998761344477806124544676936815439245844330781199765384157069988840596712024805046739276690235838830760782005658096245210449435709853443775992249737769363681160042805445571968614180206444768378242693706209730660536223274951520572742715226569381073421821203111502170264975566921072422239580166326760860693290001116669064823828081363247983013542428650803162608146177099345662660722421525255207747890288588663652488719907605561475796472007714681689303475312848136514543909312751396526358772735383652797374772968708510446418691869856910698723661611847328865278749705498405898860161563558992949859856003503541536477302471202146035623433917548672790020056294815231559384263951732009464546486464793872151386876913682583495400286845857414766091395029871467834282014436089577236880464793612706141406510565449827997642977685012039916515419623622862274355547749549740625725720361513719365685746370734611603446175018207187662136021873551902003863096794292799311324493254997348275079262539726447256238879065521805300412609763708910943431458037246936864073817821527378907697944063321218818600197967980700060333145426066429876516442059616193335582977750983061109637717985191535941406504170709120431786117149627310487268678322809482889734194889264534050235041195593705205947533356289911462097074472827385224147880418544534598332654791597037180267852474824828108228694529418111064803612241230687617771429728210702166631137890517846276653477974915780694369185718767115273605958985695760364352043735978577232747234313521959918442145797287679990182207621781952980587477263400436339671567921087339818721061885820811657509901263314260291887033044583708632140631683488056405948768056898995381042017914123900445585913322880753683851822294010925975116526462731998144511301357943301976622983234119327334171872001848040243421844798348533700097181198694630346042728962389792957611864727243393868233120888310916730270525990903888378112802454789609920340658587534146915037750970308064290112285937155239806238001416020424274787377063581788578862234209264855152641053399355675885951594273456851123917794905783788113527223600427268478504472580476964456042921073175771593766210446002770151507379356059066690082190078726828035278095356110088359431534378073455768135702115769841063643195305323144215870237472188851542825645607823279303639548240288298838879206907975480916392644393357546422767679308231671995890037346498251605403209436968881714807959010082327437044985525733399068521558007767466916240873285378444384175503426063515595884332276312854286850522197264898580366539488150345991349230475047515157662798481207145797789728492239540354525218505931971672238889798444383521185578267522517749077808624406176370438021825498007066778473331444120575422270945871510576958417368994077442983092505582392440242052259046870836763872649777286544904469364164116420317573394463279402369410669359733476994872974946260251936187381955709635707287739082969684374883628466295926247782864364510619784082124855506702138194255120764824110147434168390951230894425190912934993360956906920245091491852498330383064459812049618979657511253635753967049372955616741654678128479095235941221878205884614485042282009804703979136892588430097548806522917631979314610744255514740921570768265321369158292158914869513746673019512491889175400740442074238525011055919300907378499643169715078278121739922393452889915137780153639458369291988586185074568439097020690765712445627768502083036102516679893650826543559646697908235600973341579327086452911355397673012615443701965724784076389866003215518627266072345600903654270802903447821643217139860768798859708601978526185259467018050805017487603974734461529171375513473027343810430013523367592315909351089328976622762046779057023670092977385023584421796410212230946060882562559051583775987216633054956890031783279617308621637923911218709065746476104986149466797046804742852468649590162931125124405596133926859994293135364831002585596419904907731776972388067406284147129681559358070802532295769304810629138172146026392510230317002933041398626483023963169828610799674026560933103545433347151399249258496425520094693056920898162148666172062022966880865487631289366224224413602282376299543555626454248874879195358134142468968606966244757087196656071473107115826648493078441182731086007726048871504986398839656350962823202375395267809950374399343137987637623724716979992223465845739562759527054226124537180239700516531802463726495961508858319117024453431732041723004804446508779545343860244810571206509699225939111617457795774564852609800466680156619803739800448253629958028032137866766063460888998825399276529146249028903909267103344540180762762244464170229654603370127411186138739695596759562072119447342540402872086171871074365794108923146762481720588976706506939825481049390926418746751079346721660039343535469173611860766667747619063689214354485028447874699869553921138954058677152250991025219860620366444810911482532782992325539675050776369263510255560093645952768818432363868632345881478135963745820685770431105074387198713916960942643611241799080021458898517224332736693504738456761669167366206203526135391901274350893994816299901085976592655915644205295402401727208118543427440410712606551612765098292563839989061459221590952947172534189885853340788540203920992231994726329201613559812272870430815775741221897321229257886843122137264248926899773895295901424525651490862503100436183223472175822452392456071342784750716819644118863355683260108314956377448353934505508219311963873704173270349601796555098463521277682655291954690245111922348376736620859918173016777275893901439256738482234094019899233608546256023399954937582826948701670308203236148856419609086122694293164610237849088575219167730651310583717715929460654332231212629439460205439235538397760112722228598405904530129146639084614086115510605555686405878462245915805062277020815527574427227517201568541791720702483789092268725507029269853948253949672513183861652744231366945196689616851880060955579147818721533091118229937997660006735583651506819513728797287385846160460362549692417312332429649320286005822368065077098703406565334567467446856802330712121511283792526744726885465697780962731776176670038055134588811120301303587257243445059066166123337030510987877796058659812704002447777486107932165503916122404886077045787721440376578203296161029299613482681947088020788907280447584778850047762606516542624610470735549068727982245124702634330248544545921577110156365259397866302540740266613936371955960649085006794015157531237472003833267370522915276361329082291820475578792775061772644944933248930483615708512077771226730533047912569678318177421537097922638950508706169370303240515814014201591318014912139025577884913138931857039653775108934347879200270040755087335307668067641059282745395238327942878102005260579639609124881878353230063046448394636450289662259998607252912911061325813220159673838456999549300122147328672771845595597472380277578319378028256299154467258063323455599037794791745633921731235165272717868856223071884723631879361483585975549586559773788397318316788379961830699772938559277704738698624045916709714656838256374329873680568663945391398466883933063069750230613897499329237798275523020528387957851728920317808326408958809355352547284024343725033392353687989901386919661730369978543522927241301567694538333041380428178978990676361084851209407232887752166249401217573884373012128548076928813598728311706897593879953700533317837323813217032935406979969169849649697646660779474322514976230669228567328062442219517662895031498009580405037676337284126393134265915458369489541893674955299722166487832618204460093564788114055834908959124180727528262558476725022781556295000269634196097786464716127135999380076329763403834165963555903804110624913344642951977082255511624837042471783448324056974944266332283289415848311222550994209459547305724807849383629430045589528459581235694540330157171322130654047108079020424953454786613798074527095574665373757668012421029616676896065149116054518887039971597049752353429427781980600258233457251040579192491514020798768437609171231381896865745278715856592773420424312777527804435834131413291320664874717935908534157797717407538555643136989893985565169392900808877875994306660378007912135863359267002933113550443020713776203561316071826237849932921643605227001848344119038414795857053110410571160365829904240304027124110259979666966382723592702406415876453978970337547084644856820495795352183821796110467166017446125042327359732974814521710538310594124160547989952722713408979629812868064940130552298183074546908046538795272204499266872903192413677111366987722739042706435704156781604557896939974689766681080480282502021067331893507438691289527105815162769315401358153604621999985485297548706186779444524738317363265995179380807033419319399076884027266886503162382154214263077042489585677527373053596827358828272577308477944577313431689106110241273508038922990387728198256554342993631525097629992374036738661220879829429488470268781635155993411346181313978536242255679289708472206642056390598812313467175698703777107480453447071560150062907700941462088016947073322825556206628451584761632075786547930402755870534109981006336782964354395561879972736941207264459016283836162101905967692806485037154467250968404407295135829500255656297409656318499858762177887934752420332099960092161362184780567117024789424852114388831646479565785807052682791467941675706532357055262020583910408454391960722695737294823253351828389306348663316421405090364983714191031013048645164124356020011756862345547638403133678474241900141677896030185625579630962025547252211642320012213209105641515622453568920018685204536177902693167714588028962100633524802978375843372979341712005430066794488500678143387912212100775067089302494294812865507898230764640927837356565615167371407536248402044135614183665442281174963950587210741682898690030524325228302992865612264948899144839127439073993635625889946778023981302734035825813853663231781393672560918867662848934556972613286617376674667973942355935949671015720592546415457780144555713330463183536439869479564606981181184510470447774302943539790975293608798689836467668057172949547614773396358744829445868652940728545133509211437813265860579870632579737953395633794114695320812196932968642313181676321960772021700388293194627144178474279584776070514608761810434476989842988936979819049862297663491010798957923617410795594018405258255836302031162644541508572714012143366201261333137262600920848126626659635647811692154523679974777105593038470950031331043395958748268106907435801861195285013097869306337597919395327365805267311585009676154801239944286211665234138917627702319293158450774766254971549068724584726082207307490896786713490856080773361238226096806881377611989781826835660524202450714822854706234230287163734095558006835351524734255104117443372146097378452721695780695104523140169538387393745934906222911900612380141502757046076056370196550553184575748669096208580278419506822500836615737711737258899932223307808501288150783307925048511428128169701811138377581954981396710234633610548219870036003769109967136807190110975192660855604500729063877423248244172128648206413652902990936072342415885873421043337727760558464060950295882482961221926111885806609083476353457818806651301602687218309810259868092139807565465617504264988011312440162555625697903595511014102199838191887699532676587321763891881779410112362339259102744884455832785869692536688844208971345417205426401945672262769362732312160045083049149354954172378207588206873870061834313077043334284183292042747310852198608232196030564288143199619235093263117981250894896476708412204267424101504176270796490056061233055116381622427044627384520637664065285446189696716947357446106334516810452197819095619772028900339652892859878939814979138233398152510880728516753708514594090861122621369402935327897550752568893301327683492947064513316693386729579132537752164030681452627564296883049255944890439533039844528310750427081619395901723925255941071256506773642134816318129256793643498690899297235740454461998602254791093899118489288753803055949415644785271562891115437437429285058012898242690897970848586599621820156436151802445158804821849749040664775490221731954246795396826584476981047086535153519472112577503187857525060094258976279890525881090893265700960373681023196293123873388575856988838265272495107222330494043893672483220169309100168379938187062119230297091573052896752454145530891410496503531134016771689206576138324144388500946030047604066714853821287174474512654325035806856001638769807758163792849083571967921750761608577933617179532185834236860800531951891268493510822682682808411707052718183186897869134858707457440293068746889755783367697074171629377265349781056652961187308183694092515060551471882471644993135352856389159000385154698631274885503524480845034758038599926458969994222515250381962960325223073195725193783288898557649538573334325190217928670761945234866954897119728938601066417093538688092686654700874964725051692096464217924838838177031507945852249996302909172673401534350608440698948563183361954272244390484377659283558927442267696542938791518260486247068123290243738784107640963741325411347774940525919844481227194314824929288778207071187741055107547052376210306254726875657216320165116681165076196951748712075391070448716625022080753111028520951274557733104878031832383995486044182556129440805047286374762516560894296797096729673391206779246540794311672031829286632148601057920347054643739898828615836043679319587097376377032007784021042971808065238815358208102720459838541684341015109693928712173987046273616139808116872372517632682726884941479206476297997858812889264437149346120720712284323202688499736645070314118395485396885914821194197154100198825512287630798084194495507033522971323780070173780286426346512470704321774268158849697270915173888879619915760396559333952384328646128597104383001319990264448772604389500902488822775239902966178280812430181335691794396309650582954611634671283031310313278445657054415143645217996127710295880181426347703106178749327651677034568770382276187126497607784531233311510766172927749175453615679814041775762993271003313890571775860636436009901896032453213759138320049800383481251680945842686112115754456418931301144690956411497575541768083437806421466740571358888850313960350868099433330376957660633863558502974455711439585232158684173220493754868803723423727397998207153293970156769763152672877688977388471901387907746851330542099575302648700604289077815611364982179375890451387990148146069356474946381116891089263211467427554689183255883003161226455192309421932632335844562852170261023592169858618621899506065328946121272167548222826911369040057925695024981435650376431325590231334335000084866921284456832202452966019789851128611998793179460548451125039405053785069331502030368634743304489976629971963247177953558614749059851230518427604072598835823343488251856203902116087416560845471702151110442657398532051514432574986359051082520951333140590851491882612117759175189506468913969538325226290080803545481719681188208738111967179664873866455648016827377290412778440244067618602687073981906510730777945211998060060750890055638081516709692754449575579548381793521796535896079231260094538318192080715865078767428528973316611302778701672577516944154278804350356662567220646094318250404287415339613474102855552847588711826329846528996270169450226817807117931751251089298289785511679990184404334811557760620942008946653848378619788594548794964855240048453687885881190849610439284895420495957499246086692881999226453849367214734758468513297135200760517849441853046938065747851470716947064025070350359934966470380890051497698294257153097382911056196649944169497070383480561440656634269981170893978927641589231632938265833836702242294639115955260999151749029620703351596845209429148418239165841734039372118954916161152020524637530902294919111965177374057070915426322383558709661965978946700413075591390107144800532547636753545939509336457343081157917820938999377257823398990843952313787561640884428439371177220884263070645040548966265275429653821843570591523588354058467177175984893620800373033453287210836808993182681177433542251309514654595999566620844264941345060895429404943505910555605939654659082623904767408317022240568374248045365595492866509931580263326485838575865940051111686675924436397802114449187808656556032607232308963735715242958703583000705333285539893192954842731390870871221682709979095518244156578931047630057144213075945660021836879997899819445463421726060323179881564493204570031909066410571363575253993497004216361317022741912907493461052260672013042583274214327199168479197549938257575135740103697106231891153860950260681892970057953614649547202652066538025724602034749503338421847274885596738421763195582675857854783960714034999661117462531335759645955049086417452629482606095883063298279182473103353530763630040886812363413713634825542857645233226860497044633929715444662844998832860574011503179198967916504341782712914431452740718050694290231445145331735093048054460208584189179829503414130007157602147078665662782330398791484282826951487665161025150251537704711985412598349211227920325173604484399918168538900741586515574829060311745282319030606614149873176391563569016023218968004567714376283878936417852717451917409509245305352474558378674902769972131444445932475821827866272524114935843469876537937169260923226175305027220973733464635978765795311733121131768521791841596916861503030574621444340413825847710074101201141784056859041306186595424982051789830385601915814563506822977251694612599238657567390383555376218660220803113218187143957089501049786059629229227624134660145036362852548068159990264529669371517411818364041836309346226213238657130088014022206502350699647475975776550059430862827041773820006612523581512370756883975245856816594384455173386542209434633377731440306991899811959272559752750069266839922313225728056167185568410870431351792179473919613181849329981487514716399469755296272233310905955930740596482886056150985484594416052816440053134396109996633889629493724801980228769488653736892138767747453549624577135018393923514913814583581993971457210199132210067931356399884290107440362594584432688274979740477424845374268253583587523857950836095838914058521740222340137106660664896732183442754280646426133460421071298239945221592016849779833931620748243379586530615042441105356111599567633335838201520283824758635099110040807556029914979111265263045710014992676795927612313676387035464616118982664490549976286110690289486328316068622684483342057906675750253566900309196174954764693842265431053903124847039507068209459150366209975951113950743281207009375516096294590064977236556856791546257003743022442531593685669072920317596108864536149557076268453958807890042389981353432239623147246829173566733373974720647553680208030560331497521401847506088811253239971212955242565883920839185094799785522830292057235898891027505342044849997597053892304995151590627322836672416095983236881122562337165336096080622675337503835744638557021425855620090313722810291077008431622911927181500458834772954992343642327000707373367833377950949843418823877446022318261879041641162701906306902696965414887803809151901823584382082447534914936567208446485486721623809875629414699314167635647388178057717745878275170401677394789295018108340668793331972845705693732222426667018821149839481348247078139265971020572742842400696233970643975906499083496666565091895484020283524081623773097304504687618015192754059512610818981251191441159397897068708408832228236767256281263231736341264017428981176239298390338272735421939851506500085365997001974308957656264182525361165116969149100260639230470170694371829596353630756852925648855158742129960495983819170827972824503825935142732727634177345603367197914625965813271578638835396056142658983217125018222748811191064117672645475676162039373842728113088107973204190204804245436217693221787208651371026244859985834097042988004227450192070409942493815134252652995492724764245811786348000125883228082832350665845737102473627142951643911466622598817092162519172888862186026193885879095065949007330737920949396848365697891453368955118854081410382544165503591396964293372118227018147056814668707787197821606090908078534247794690982033105006467537452913545722607451843927607986320728940751654364654747760898975015660159707080612049568697378206694062424672394789918273590441062733656691460814886670852396216997385716900188330769451469600118360718798833898252284953583886782196338968449852488757445844507035176206248866784123507806296171169554870826798240194881679641406596542927062005112096460191543192228664821323853013883045935997373273447038678167689285734259499099795011909351480514591652201240597787218562785817663911344915683356313511809422374406868962185064208218447898444811397925945938107325894477513910624876443178705783163594758841012307780211355002510665081196327016296059871458893568070950578216736367201886878355584232017469489955666446182474600718124197097851952917230478326268826843832679086085138835292609748116948275606720991899287032892823046743414999420684212901358512342509561767751432360975045141499822059120461505582947664417319334521009484300057834030482716790651632413880993722813789268095706693009511714118584890287244135168124678308373488918957819107327375782093983681183040338292213820007434900002995397871767836529801979923715618919738952082898245603363122285862636834876250096474779225673435441707632613302944978650160000965736227095289452939508266972913770195049230359913203743445927165920510397093791188210583742709161907920907003796818518873815306624769145740862644740422160195741741057377166588488275880112095828677921499041872449882085296016341674851530676345812549087127557950885046806588819416573466936803378242513552065306643248211899152735307696426728617609275172344285237292846712377423527294908531726643785462719916947265483918453432487482865218649543798558633321339798983252083244297599867715135398285440691186092647800103922293551301746273220318038124374921773453938711797330295316213253433313778915392811072655844101555993854761141344853445975985907031983187836084433412733051241784408593787652095769329368874474559840763932578383119585410247946881608178903522626201259453545044731287581478705767398913973928443732335188645310740434615874814709855555533392972356958738624946558071568597628986838876273767640167225644923016710682935231530242336522387604975179966290038136254587046752710471767214153500853660384602747679201845606564364918520888710496384299847140375239547929776178912483171377672106638224467344382779235470836019764606276264149322177707762502411949275278214832926261779399214129855332336586494747830499482968771503519552237748035794475462768387592282597714220859821514560578988166569460818254334365774023887001301844938252735133889468417841892665699162800802234324238765039468032943365099213562727658270029555631827624222017483665697540152826991117953182122989436416405466676691670927991240931453459047800996508257735419276031057387639016613014060934610708698721634755197839957777019719554374738104108076998521175654962122595618404076857114595440116531801007830223276847675162115307466850619876168312291797359264760009102748109750704702751617411079361858382673107583284545685772133083643961715299914549466533361559392440465638505372546400334693721429485702578024022431017605645360849172814923042064685346962485732920079288208913231670950556688912684203434932775223244692359015014776407095746461351542306006278766458160537060585248608158047106225263435885320697980501918850625439589772855473919701440817185799751241699276148272432154164314064061279582661810745240586752353010914109006715607672135369586432730803380859134651939482247509978100077482059557148120306206237574114997145082991618697543453815528179122254876056941618606636532571391925893565454648127358817799725521290331184653280438434414436002922019461459903069609490464685858275773965716710090351239420284795363518458984230878107728572145445668643300532874448720840396667960479803641038338010659427966626956615417840106894286729015986302920659108863830577256740759402877086782853966549878097047826585478831792311562091096196653190808001540580002644934063170517379466473578765993583002193311946599429342818917506708366535722225333917580677155313102135810080369838698742401644915414533530444160415218119768002300608057104648200490046850659239941290889393875433760090804601307910195025603918278704708958552384059097405095010535984768815504814371178196970196860284069663607465977460324192426713896618960042763650820665858380986225367576942847087001602473020612578042826170412872550006864666586592835005466490891424859415386590857767289641722902712892209633049517106407451503544049444640135237894016513806614802752001489367090183095983659942661850705225903315291313534223309800067464705351816171879553148286679154797163764102179381526540643214389406671317351883623724511779882990730760574437982169475210816302816765730209382244021512555939835871693978532215384321588831839030047130422959078622097712589894438237297957982364537836873216088229163396345474415844344269408594171234005155106953501780057841648368122885885144256851069703002825103093322247180811738756134090219939974721529490634303537734089731871206118942488532344881998846322949371101689750494891392240060065016384579325398623417999961705274117021317874246564509483336624807056280260826182220588251812764523892768000963951926287653296367470658820929129988560730918390863834297365435919198541148542805003508519034392318200352270287866969141922510193453491151332534905975013605063339394822644620585017578632912133523745611279881436149911376483735165617358846030027185073357534553949587674551203348838018121095877426276628416051759737323777802362749687730691191297588579664673499565696047339162477600979716594973203511717245724652759990007105926491228127175034237082959213926575620650380641616304043442254767843129975137694466942987116372289645196843875456556242478133177791825028485005593799927346226106030576467037971644648750026366332101085221479031364850344011874829825027214839521528811108013409431768437123180084543218768912356497541049599506825696130545692127715709140235175220733038736705940590056199415413548971287120992920118710965381937995992268941361639280491384346339980437650687973163595642976842347179981669263923362695283865698018279505004028293092012378721538311102988993959108662211693296153164676123035431710361001712732105054871107505481593992560477239801617870897327428117570648914561484265733267821650671149294188521233676491133654904291883521543145712589280233032456214416084517389131000585227488329132556235580348246255848777355631709772198542046697454405006850015771278435448895332447374380676955641524724661617540930837686095568221297388804285061361493053795979756672768976053920840939116227582088801569726644322332338200512981902147742697966960506344031133761798517744363268421404575869463270337177134486334303827852923153884146702815480288133425690118729227926832789077549753692642477366776215734713884995931134892708319532401658096467995354515727611130418610656055774574188058332329578087744398262847602914531597198853769987471117373307988369786295321704050328625630111705526218042250561148735300352533633264725975648742883709832267010736740159191449700712457429944346467916143085399576844137157310416164372507603401455384073528160276713983689621590841639035903265962174626611690485537978111689197323524033350007181281462425204543908003263686609346336777233442043656678452303702768952154787448186083739981301857993527769951306946477959485161221353854432759371711915324599026056233742840182110932549922312751678900608964311281881395733274422055377837926464308740581358832873595409577921757803084198189169041393971284264298124957751542507431763116129738194184633373706345173737459003808654431742007869365184376026568031564215407429188793830649891768669474586673040650403980338870147108424683414171612394185477506983355676354497771648350736584880488969033131823758592614815206086357850154398703780526790599812489523657146897875808826898206691479650365967579349300889008429019236072808359568318539044712985521936922739601295144893321782623269953769942268189391577155949709058772962015512951573613389555236334070430276520671116486106335253913303626908267893201206760244814398831794802871003296066450568812207535183124385005458320398147052994476024380671300153892982207504723285572174592158313524056873862580722408549843234103731920061693867383633123120006568282506421169476157927584771926209710061524299196068958885365264551595962364801798285213113942309405802922690499373635442310141334522362323465069251464214599160986038861778297765775391248421584437216441802481253578570945350187732151235560730777817568864864291450297716005619289913892566558774626273094320049575070155322530428483845958774083306206671398881102410820320608976031807643485755846527330245786994536772325918882414254741287248724052752742405640326132437467441759098004020462562653761534215482664099164014505589725063458485853473792312590374542846279937091216054458323599213296340824647218014478233571627921570031822771760729314322972127582107396510764705523163303231575184145280561290043982300918127006257119876162828610419363485860890470033415736537065951928696374240994143594063088819726925311135446040040180678343730260407546044468939536567851155480657444762660197413793821166335414643187017622750884578952879964255538116510207882749922193972545610897723078990351168052354257458272512802717552557683499394604613718883107038995126858641670472206370721746520468612190567272423056539684402398173122223393610427028344033716570491179167622688867316460506846565132664000529052825129624388908036536617566007678612820226408797408201664536877233165922632625583109479419325735894031094765236684391252690279936752553846887161618860142016468780400349858691424875330971134436070616300688320366118383335926250116194727057826168299617765335337240006816410962555461423131219348464361828234659470597646920872758280428704421627537987612782937309974285989106837408182643337227309038278073100472306904034998686521928497766685787379697368153184078767956311177747579901924703740857959294526254779395597034226335887026979678827159428114918911242339694756778460698653438061489263841090554195715204773257574128627588498597556301545528094973840025243667162512787297037944100182435760565290702997217725549639606626534562464496828131899145669427355634932953909406757941969141118686889859335149508632448674617110141462121665977833284497735246403407003010869624170970877135079054216417374234055039726145429001477533834392480596632470744794505023294785364584178958219284793336140886519268278755225592577932846660087940344668658347291062608079600039434450273853353678277066693696690532619559007590983743081611958761880776444151860347720936090549938386925660447723089994035152557168831950989729443815269758362887955207512272000836793216510483681588408064412482060086495070925135661711785031549793971968466634452570314718599074361355277767840230713368503582656106893002970286874572201363398800445865261419562270163665327063729207717484208629507928934784498910526750457725461982557890468186219665316588570258799488377851000710589728236796622811074125980683592789249092204860190007708828706578726387638926254098955555043838134724154840305120664333175547103658826420041006859411912845272897845760266878300972165435385584394905088487974291330009222962526303948333985449343301108416384179043594520265028499960219352998737195993096206220766852338411544108915085353575186423119727704890277661989479964258647923270178365762586135518620086026659612316172625062851967661570143011445870454789846529674851194668904148569382195886269543264798622282456647698355875312314702861896692078500778814666283775091271173383318668513796574424925596351386383890323198815256883681591060807074527589535138193291740809570504011316396239974946389425407994085656608168416579135192068861553751589978008524828152300579766930722372918351555510296212960447778535372297812335175606204833339015279950142519769497548280634191133007866957429057194465396270163401622774571303670604360233927805249053711992243679770074295795277448570890936621406459128933411288524840767649827390891592965685634782770023254059358913197628379440511129235522620824168285791950649937971367211201228599595980690484700188336836827864442471503937816181622982915907282467369632330421882401726370932168135040144033816440878576579012052309891880959252076229825370539672190938362169220464371652763102147249691954638358595479420521216441190070521802260852710218029541559726294073656182507358175623187668236520743389824976262232188087638558138745854491214603837965664372915369012560911341312619381108003632708131357622810643167107550125228792391471450108579349371590698389931212760710399296511814065928547881899226088842979274063514882504197207295210315179329714463472974634696685978064642635971754700053273743943682736513998031508575924261221411436937597349806717445117791052154537660915491583030505795786863012922651208471933562959001012044131910159208828677646241815479960089464757492855111293479033481639114684277209443182664071913509428271537344837776467386731392951971650609146315611817361604797467303420779033173806068406052425327060117012656279120354841871137658726595752909715100848308969424252918573822151122968201622789810002878319759866142374254679581149719602451059312314573417871149316809790304698970664532631508679821002233552278815380885309436874489482904740646553261364237512368930755608047425656178249923223981551127946256364693508664557521088541469632326838161487536526408249690842980353472425697172924992578632525614070844944985761225075454345748882573011064242942939360528866328230803119289866171303197904025955161548137707201165369946196343540133209328290498319215870509367077884133357035628224662719758326530117342992515547486212255233284718426001829018536684730793115468118190142553777795157078455475333418402762914711270384448037769418252102821278783989846408313944236884395896230850848290401170402121292242694255079857438138250539504212317486460610164352420109674353009761008366606228645571250756672317596135593806778105613049778753662125990688632216128771626869791145826846912536148120279723669004837215528891440321571987704728430480095047785349966898838498975021854823749945709645482048988709693453229896140236704043331501389735900773694873238633406384661613416526113203788323562183594147873576861942561072627054520188614299976902960201019258279875636925663341218910344149996816788996347200030905075268320429724749051736072308293942136323273253055545448284129217167394648011362591350626896146236766213691532329029279894193699947824103894946970090136478346666146054940648096783196211729600082328556192483380116665474279692321526925588075399697677731979980137679863305524227934770288160909951711010362383481897589245792124716950791899663354308352438131720874140951284646557047433234963363001491222422599403316599833979662290063450803075273381881528197377253350204840084659729869831172788639603572629615442493581702536729252766816849796449017005325330830861572578281325824746002469877120728379521291643220816595620201276229570864164081475517937219870366085670005636429295963038432791546391958931802457551952434912458956035507360333096776357974578859613961534602332734377571042455619851176433301778674882272316391661930234328159513839213849532132643588536123618372801303644831200136744399184488581251926801836514095233505357015691804213123077847750868143328446026906923906537835864718832252163297139890878773608144076535424521817613824164761863859773847742760863675057193601767635101954840394355275770597508221851745338912860629812941472098689457930302270647327638673535363725108168084348314376542688897451989550708006892571849980321525928507485987833280601665045335828597359471418594959658300227554999491210726675986033955654671121528046723057409877750626285249998330160475475768097885070394595431961762248436869841334272132514638934741634390452156263809500572505562159224964939941375828719936553057115796068689436607762473803222252647243590765661529928419987193550059798224313627599374153417057893905828776830639175863576969300413794216843649896853485376372166668909181900570796319223562203165880559937195631053678338211196239132945731714809931647416919588248714034968552383225397288803083140915287861300693626920681739705936449752690880194705589086037954331724289913414503715838894697489964048559257772116051392747253790327506415326147952039472680664281720535865430119538221540862862144146730432230547286409499014447698897804395919778620357615313526358535920121866120917767557407539859558710420942203390898483700229086987849998953635529394073869505086387782083365467991102803555277058311822062813159249989791212596681607643938133143576982900427894430353403782574519586070328469590545104887970194365198284424349422272104780725413051160203239963131446232721531348678669274068000838209606626277379503334823377035466598782198819618824042642831361847159844589794328525174398486759097381161894012529726640843159100927558444521384993943963600496279419706307536020771389054123174870067281061870692591069917267453997267076720067620712181962590925644522939645470423237703029990032268060029296161422691041202373609955219344032606769940517709520435911978543594580740764718596675453788992146318070713659655071875994081486585461361234841247223145806495564618815474007209620001105951894923636821857141960042667165700828056706855174963127051239880655766471063062648190904879302579804280017592604632458937371591150783624670169099480610738882534427273854763120307505942770596814715108442349923883857563611918715918550845653785890390318248744655486466896229468691259096332999785284542829565086988157814092350396976878894448004344263727657074489685131274245524232369460800384061282073951224592118454407634207583990139287557647204303672416417689862389238312811491286358997645593125250197560114315774730932711613079277496350544262830108472738615826504272042693820570270067515141146184227928379251361520939416887935583500712488929932670216737693837752122275905111909143107766384032616203784486743263212100242795258462863138730685821728919866349770514411885501426387589165866930011883463954367791506985351858747484382831031609960162652140339493877914695539820907424136938863474338850075350527626186389642609538917116724023011743715228843711040323233578626426925965069520567676766260699652133510444235426084727218613606101769125612822590842654330946156223027124309148388800220577306640570855906020111825058462942811303540978783774842024649196310919105956655754457963300478818717025936350423553802627349185354969769834575998810005009260965953823845323297603442101498828611828002189286226874513105938137452943322651451669547217856389626804059827265259530322705797076592053381428973362858631418977259070490072983500161791849017504511753752784798276294315179260027973055710282902447154766086160172891739162327162230074321318086449749420164925243290646874136019303875417652320059516368852349990886857202614507810779376474192197104119310546633382925149539621929552782392010464821534898144140186204973732605431220234404224935638548979508613705769515131072658014185561327202645300758566771772994886565234458943225592136051810360027366339020038890980313202912863753266914592673949223043985588294327869555586534715975852945062341281901311450905594509810869925044839462313635744489568513762938204053253247133378614358471534159946176171694582511517357650437865293647854550109852970862020092552294043210737148949235802031207266931228455668870849970199858242367597155966695738421785611168035729544885385430694864986942286093864599771465477413197516961074697458543402658408968731638296487726255715670367567495604658445883637633816178696904960463399029265486668877007012196313918075310850220056951054154306684179502430336705022689387458444317083594005548684090530985868047283727822152197000267551279406693454581315556690129067412370065364682373459278296096058030808771832929557819703452497795795750484818491805828621648281257309788647766088841845468084516256948665113000943468174589443268881775838961323115514885457972723574870557428252034405820681811570648730094648502462833220146105525317863114127055488685665267095828883791601491578857088146750196157398528752589085373475861434311257282300133726975563166301381319382886059834709663173005494167170215444641773434320191062050671658702177729199504542991048587940436393753928254921832847058560350734522320020795985461603238512364078884678171955103171634648613768927435411650697004489707384017405562776436787557287372497418457503321170749187505455737967447041359510934940382740887928991151576224724451038255352535925801689503861485347599023491611538762508058327791138780726857574569401576530807203738330623414908920282831095729300314731100058994356674218345988163520862653521519472530980460651266976746351037167626179021169097216649319160520891808465044911628769450120180300805282796194758307981451703049695581061402924748186234665494489071508781577680810995724404786164925222794298042069321266608781070069775851585279457269720634208231705852793888097344065533538397268990168379301691377781403845835867572909210254749077415202885517788913353803023217291043871558719348245289324396693963123417942033607261548741442912108965787745889480141743163892558476274092403359572475568782670282115513786787407060560162147139212485285550908430867037995610970917591397962331169519310528914696326906568056726264001809723009069779875505091557525844383365950820093487804010474733587079019245039484635317724086347601003829874595936292394696722694830730647113292456982442623205472138001046109129584298489016705791062836542023529461435538585887956584578555351212734233580457136471364368884205374228954527598981528529444121578789177500772066558612559083863451463096618142734061314394524506432510807503271454649380160654144053769796965479794903072400722412848438482684598533924437012362144926674857387275966628729016296567163031676853011408515888930060688248956020380440945561530421464493520019583547252220873677442427518024226797494700052722058634419123296440126985654338001995154269420157185034503297663565678137833482052036603820605405245788023498210609225088341762411464242667481809739258483292856843541628223151700137068650378598507387643533076711044419811190835699534050914537578551825195337879016869195778318799725479763955564111365250299627961464794648936216488582815628816906621556685517667393849791518078842972043012407151324414169654393730712758566585293257114580625276642290469178576992492550518806083049744241362761639521242431584526382197903499260804557721480345161969294029346317626858634860599639175549622717871304341511677515086357832990817289682127670222657689608772849231371213206814852261563747119685205806594970884806886547086939771342864409230414363878058080190833059119103017217774056403573483386318774246144929202497819436592715918501492513004894042107557216794594514525846107082077120097723404551473844022351513580736869506176091812087794373714362910216646292980078958606660331249793887158544785497417249568887058728739707531135263317925235556532569814737265164226367178391532438942774988611998392119736801417484463845629812415706055400095329602681942117529859259096513793200785394289925005946737819046919423933230189953447659685235254835642390002761611195031196001841204316733284017614265567467550197107544666546002039817975985852441962892550336267876025882058620657879167968215004189722919041717375114013136607046223922702549172743315861777427295893724767387011260465921429590645211400840526656073861037902065583267365355890076977711978542977744902040829938684186158298984936116746851377457585360004023188522484840295301644691220043008381794242298049455898643999788905392833081320032684357907635832186028322424891832303682545360476606798292980540437447080999121599961207799077601173977260483095958172935270266979350370009196298847366747603439345705084120221194768868064476247583818435160824237299687431541460178661882016755586814692228252741830121441894810295692102117880135635473723744104907571599307700852459593360545472531695126567318654869621662008781947279090787782554545645816176171324221057676978613851115012014977781790696619435331524388957414610141428112461056657238135754450735260034246179799719007528227865478219292514101066082755299613389652059396519398220475467443650242906673956193136471604569685691953842603540511462926613324147443122760131284656802769395143961009819811236302662226653369933661625346117071982277165053540566540354186170358539155065196753892400124176468929636603444124861819581840067757969264557466709327961682015455676358490458350565736997755946237203948947090491472759622803356246635352437251156059329450624743466514308189469791486775933369919193958971576244102425423383282258099046468526869725745500204102821457472671397569102302257768337940397503713433699963049565607957744228429474745161605987185742497935353573811441151743342486415146419024273771584560181873193257628873580511784222341513446869376606874328816679126064155497056145645506074033314602408614023470830136696361168758938030459331322066075676919575338129200603819149423106395787214388043131074366158740048290099088368438198321113053140139378449356362056359754329908517073907948259395720548436555086903051755888805318826848363148410604304253291360392147214677921670572735553423446237692616001954794804342706627280281217318970069108568046281553653904591896253888221587068283407386127213291811176973240259785567433098765839645393635546949003616938719209719509175056186848906123100499965503130639698530504990718212870269279595850445702500940519068861813322989415947930233460902073329351096953953925390674616181187918883255034245289891745093634160673021051230423552723162047707290059556445741755850085977106369683462930760798183750221289537320808100728609953302621736678555005034826198787818920202689391165997239605082844638534413142627732003911110128006654817653885687014075532478469197272659176672318133245059518518754007441222850197194734603159908445083499080416957682671604672813253469895547377421702372687517183931587563738856885870461275474333380201309869134650707364632578301534284134701076736511302479551958417743183663451375149441864526063127846857301973005823294849671929212414146650638882832435686430241068260941067360505443417262974047627483225552662761202706937861400880535735427469521997022788596217390855167533234671663536452605832821761884029374375710807725783136934670096840054440007280761701883733526686228628786992367084273874597453366011691399801416806060339705018845455566126584533951772869879062817663825737204730777662367893289087258815039175462841984504512601636921864960226939844521632070008345056493281427451427270410580212519137962167483141026588663761145343575737837381040873987656325019204381587592217363838391517218026130830548723615486527034813044017962303242333791467556709558240497973645540997031096847630001192015974313707225759128893052377584538574732227864143258804902545661285923814283118931433745810848780840080580276049660586904788212573744804139817362105436633822193492004576733820809207827550113623575962864733965198957494588428045221130053850646963332703318721667542681335436935007423373856965431593121006437872760914730620543358513128811282792693523987935589809406257231789281368452267726981773076173086259363386416532915301936399457430001244416297219632026502610237317630217172766436259646691363110798919804955692625531377613289301451180690140109366452677726562322145261560571511004741966853902610210611078260892758239634458136412032423203799533523823132271979034221248664359725107373179312011303548410739994250778285912597833895343646887500883577219586412902886686222227221016780785083207548862312623891211520245993783041275601093994076063550709862080036831052374083883864887034240857729822801469355906891448831295760744004435276698254630375058805114813365530033192218812462306986376083088229325667068436425613547608598237349376105102457119619886243112826268986202414915059900113746851704768564834556982471092021144017801957081093168210303499145108032813175437326259205736276236827559009379885984084287680505532733445527751322108049743639590638051131518683194119640447215281538776897438137413637583802581268035059792748136110178821639073764386089092771523165081579115051448389376497055483809135466726071156646785180711209335016915064837596977137886033300785806706829688335673573753513627421977768621923543193389436908629057859788828301224131829363022979306510261270077756126810898841839588106043898625759754962467284128544210902850484384704374610662685018767553498726656237697735410096251621306835876302731653009752412339382073468591154209646821617500308089035668623645282886549589964764829097857994243512257703704086044645126464531881317601817389824132615419818765849827635718007406263665735727606230854879218703975782883125420276646559365125779864366373622226780187630707519019959112267519380019611201270245129196810626908610418164995679280394185764799914513892454365694045743247813664052195447723782957697149681195128193490527292539349130891396960269166784799864629127910064078147725335546848340528606193346271238894156712805518934260166632844057916130744721714236054495578580324066258259873021727215093032287922030095589312568622003473567461135798247761656226882050118554353712998891561714497950932900930387629989592819487823680570277760841858610466305233447180881685250666471676221280382219564026511600710556624219781319019933163342513989332449755845228906301150098020534734883702656554714950057850835761420385702558887806053125412323109475818355741094603539304400985883301746387146682702745241225891767571478760093550231844437601979522309012127555886411417053639052292420842691958174422296023508678079107969577207731480700572441679146229594665871192787706106127790754515599411048688331033220537890384884730424975880392415803442942313089745054180967234091166277005445741969055776797461771808364302948047372446463232348751621659499663062302465633373873545708288540772325398878760831953496900070680935843035046880043322132206747066173206962452005634556379003212018636615724851530585533176321609230655217769513453271932051880316299482200439922033001994961504014971171134994022751126684373698291278519219462781169061071626086402134107495170757094743376728405343861318998350580281862626970642304742515844713317591605346523548636102716576869328355684664938393390153639864366904192577268639728543545075605077619218752317002753883709626107052360123931160173281471812012974946130855962058742945667385985350530902224425071343050281788796862711708763875780454389196161961657180174842657875217831055908972559993829090981581777966458972115809640523844175519683489874313397121515249420704171670273008506126190814991436030727790571809690910293001880957144753957704316903924049610536263580954604885922873900926375935204961073324380875919714441075607011302825119327332260350823709035130723433736905139209973142165181915416675913483784494699230407413298652561791975801043032024028773977638739332482200521145418924735776333225704055053171592497094531262427701351705752272354210039940053879645220089575754256477385067013151702291587293983741941014233737269202785991842947841633466401821165401493172328134324101055118722558047675535069010493926524646819495347547895965556424553444857175170531950771199030354961415548749583381263949931547264521628171005473034596729917479768445070701262981752815989781426468960525207387525346138410415625690880129206541680326417511760543467739799932636836867859155599103299455605364516646537704853802211852727359011010828699711417099215620128345397963031298781404674168296767340068097370722805612447535376510864227283461256414260391152049709971227585187268988466067214117497204371048623749279543223007787796289992718922799525018494047855875341280443836043911866566407668723990353634364737147510444815621056214750997763672851052248366912445677761863404531583446175966140387095783045024924228057203639908668603301432627897942802438087760065544639417300148274649039855276253795069940143963122616303105696944749390899865449375404575550072004725116780340069954815447590422527898203327856699885970608454142555667695497873047656934430296264123920969428764519743785329753268273594074625960679087125060521810426895228809317273803642656250210358543961759604691805831066178638862529273341573111743147226890019803679570417414039067721277937196618427218323110293092747118159173018367392058014571957582115144373830246769040053261650467344846294232278413893887814659881805117001872578065844533453931355020934878176252995188016608016234975733452790403928619898295389869590986820339955320928491106398656357342627224806019368851148774606254579694135335490779316396974437414799427734233406653484259255770840054771273023394475060151099543627308635077282406919887069401006431183921704521036127862754378824750465968390965907424493857976472182794010541157905056108459813911416554227878555868866978509574944391992761048026355539304053741795771784438720436639228909993203202686913272662051043869389537681398266366802490866804391111433083286414589617590465449902509952550824382139807227714925899921616098019186505420721947508231103858546771386085738411003381708309017614466257990240974027637721069911190028095290078904537419452848064536476295879807303725243576276467546474364729394368122080762349350320655221114385012802846327724363926436927640894148486823129552747059101504278607009460191717588199040362587856579435628276343086652530555664778970871807288426335497699180840597132133730143900515106604628544846097446481272835450598544706031711529291967373252848347568791653978439346312334486997515446266645360459701136886849430287290180066960194954438737694152003304283821332782095093646452035821164227313825125407472081309068600248430279704425181275032570561679947410316755091132714452800230834000777337583073049841496127041472502430488370264211515412387666448299814127977568032323881418526736511631491956653186678955375919747369571631842589757691341325103939245418628113203422207188046469375657597189258362789748931788394797463371055166405323025318278864277043045418587097831603031977017309640653354408603431535790140798975534633369976762122423881180890106379242924757502670120923999246579486302850076864313548877627925522869695488532728926200758635291072153675975853891299882384264563114694962268577890032971584831137922518352785492376672167807495155914521737664103990573013490831501882907714892135122115842430505170543772774202802724260930686747730038597791786326651603314969514707771745377277981591461014266874674829016351619090740095987156306328677984429399932172559494327839394380915686666201748370862971715997277672357705463544210218925928699397174909648085596635358531568776758610808052537925900805196412565864973542717292135000122506228636253245824245392795784827806471766923265792787945717480902923126581159654371794327692303443156460715055342619974981267299394700720659313007427901321246559826793058138331041835681242647177398866115522901159369972450167679096798013278708231745717401000003055371291600955149198332236612010998315551430943063652437067021676096535846717738113221213288218471099670043953018846964980376968815105638587519296493153347003495640404307861153698727989363239894632502168086901598945176235718135279705485981644766523700656769640738345828714800226080713029310184747795225550840833239698829081299177042579534026722432566054991952699137111241078241306063331548200717468414230652631734014998874476655898599763642497352388590653372617038759097164490868717578218766250910791415637791849010228049156196320170720584826446391501112557065369548909234092819838833095535488152334042173489335650840651621661002568452791182839028636681507527847371013581072544720566971517193461773539867206044678980954396415266897261834729482103784316716045142281229851255019896501225733132992226791957469300583683708609989748768462038738302299186281190556209961382145712908177833037284167402408849426322486240402400577189552689547145105096870040122023105598093001618903492305555845977911569127266729158186410950092015597281205140604722218323959917448694146015713597845050523275244462886437309900612223180258627503318358379489498821537276668094125708801613470370916311944090349161443306824479342813338773724446927719051756277094670065193607348925413902103708300146722461906213552504854399069703615591037840401647923516860390440771527065971373535682833848204043673191692064092881618607479999745369274490162821156429889921075301214457594061530630454560127153060174305219624668816721522964331986795095818283186930942840661458787028090130520373206065837520954033929759791699069782164345864664091499832515419830866466873744376173874268238268579989663107871438813135892945467951014547885645732631059899784175278207926053096921393381291012549958022612827844116935749816360642796952828423704177443636588768709274172013300200828050530329530155439987858169279627453301482118193484079122080801793332370080984151921162202066610727349404422872073906654061038523613066995871001189656488231491462890159097422199581530452341428615897194682216817388274348694595150553702997642101053054426143765493736347615968078715049343045179575087590288118433058314912960582971723304999974293332184508567241682000896367987725344059880798305777851851014050818871213352264034426376889886577255844091239082168161325435376239323709985222434000208918077852656434589654336165158712947322780621386383172647598506001352979084775480282090376844361586738253490410649600952310148265873094857008351722156194028568719324264041069579167700772236444987229573767225383866989709072176859788049885966651771111401537909141517982223027712254847813159854763805909983105487782317448942521142614987234617665242542927903911512144432541964385778082493782160815626924937543717207725102209833985119169431392249852821762653527934921117189733830236835496676950702381540551872722252530001142226772129820116223034869822321650746566740063638700274374350980066725163179750343089531981928222950464914147273517445459473142263582812969576027142380412743517426863125089165500129819166515793079392460418655520076386732680239235346087835472563158836355569805943172749537665316318226851816103393154532180073090965908989129041610367028164530395570546363722059733288906559191937521376054769276039788748794475429387034973910571552962372205950194821700128204079696252641534626657275351575979402381542303792848798951874739952574016471218669006446954695491942251521257857906020282919319236335801551677997888214847316641180505945329092751745987540348703232901353146631941238331638066375428607277564683054322324836612826487004616757544983501381785142852597352600250177162885926030293677457734157861665209719937781757363406361480184928878974295762469888879249346340008083522745873946577711127028077673574290037531719887768924101396896003702074219551903508257861349158542627567985456008941043603622393715690609221803736633401086334433035598805651588690600583698953236963654833710276255889944871264759089859463309471545838074402336632330468221602632955224385160386205890548133075505592242251689189165251893706468751301753179295221531524421056295322340528095806056019196340731465501807350834095538373542000253149835526347403506671587784085685305026782864425472871469877188832889768835038555490381310281466328153687203513979850555897520393928690978105590499612974818171076948240419622485994947617112437951109516731121572829133982149152461464805251497868840308573360645555300542998572820738554834331967339893318001180282329974460387759490309653791886824377185253542554150818088102693964717616930409365171364054195430122305317641981750654197932326300762540098306088193908865460336644068601345788512496509566097130024013214287199718048357579228451221037080417771005868321387331311032994249805536892454031188508784732331338012604399796742401078645260967956562882251913600427022678279734264105225894025301165065457272153114014974631363956223183055773846354844198820595082034542336972288617039068681261998854879560469910528197733036296370018631945371897161615942918214114721806828976142309328997789681441301996844462676052446782803427625970449997796620394038816360938580494062346082706390189435175975262058503218911436558085060595334757086612534172495849022990897857396037448919638710370000749115634555156656559115328496081185456786066766836819896784058033544098096634709369658109303044736342670235356985139830856470867598465325068133784858274415685969660483385261173653829385302377922973677009211074668446511771873122501833201457076201187362461603615744910950769587384828584265180674544920648358664963032210745824518233601316896541848208887458172372457900348830147817282023306999210888803796916952353318952425542981121289046686813615242306773254665807771183882458792484182972828623450143051152868364721916773682166527997646250855102324303734632090562312225899261094274654829510472849421182067785454926949061934901928841422253638543623611852404888999518703717767169014079763316356421891229944719198840110928916685830537394798133459360089866730342766316372011585660867138765021563617640539935137416887094103286521231712709908899145688075897834742910232112855638999836035074741808890709163299379593994309421713406238499644067864591686986624086914262586210485420733103053289745512503636534639504785304226735619812245190926660444148750902906097066718809888574565901461620490034490641964479155153995277374950551636719782058757626393781560355732243176387088945481974639989545703520213630809471548943564701297253345903257093129756673156253253078124639895365870101610982206836652190375057888201582554799635906132008571519591285646641115328932658992354554455648023464450172052162571916456896289028187202687095074028462888961135094761123924350522563306244015059536722146090862723192497925015546695505439759770407900783479310732609099271284632583848034295919581585575036928793822632493759558179769824277817260967314017605959451342360691864871496675384531882703617746150308767708514677892650258163166537462087443277143060767872534237828966948489912476743207572905347237652276140383387179363096856254764120206277487024755051156155506095999112892261678951489239890550984316698977929271364825683728665680837681270316597363536810248334996257737334200136253975331309539577458109637224222744715189857890696592572688682146716382930591601793919406893977643194947341352989041308562327054150840042817646089249043130247253256798107806743979929388452871794897174173378661740853068144926357571704770398297715595095587326874377204703273745427901017744884362102779588836572793540227857416495701895460587646404147377858623920860790764406320294588457040670314443322229869679963512822969697445501362613657592478694834092818948728332081565222812281034600572487599218011544398930725783011590855144479830229606433210273670192644668551549041883159700943057467944773709712190377385150855060460464922751852823107496677148950811394518543129819265638432926375542995180908595690375724527328750239754655863691058510384265288347123988873220423094192316815228684169017653695384534805272057162644722282795260275123768518630149381001547833918588630575097182616209283451191747717979708786286431664643653315872015661464214890401359330612055932069048308175094860464833372376230868492130762526084625375410625047062152250904406768521436648985333044570882493015717551841033176613004106774757456381871021020062347410297384732851913497607516162957837344709568583378485257158214617376106182692268999961855072071717630453625793698960780532606864587857086453779481407210689242189187544689054187337997216200491050546813907151685814340700723681523724802031354350671627058122692678413770692565551928831331791969856211913831091121385042997786933567413775704153634986164703393469601946261458977197504594442950113528637420856496582941107075074045970442957810601084258420939380656451786059130004360036342313961189037063630813877792511423629971697986263571334807306403724766005556513042614802461806175118705311433252016971707772647381708454558520761100970343380130667560061151903063113913050008403005341054155603408567008478434482675888733869320837855817632081378702803659602512604327980966425928554982896890869857364236626303121662833594664730766097074075971230013124300682475788252349479851880403277910050324587759047340793533965511600987211099124412982964165203617691502178356968574728627553552436176972836537620557178573561548606022590041405936303561957407150636064319901202788103163858080432327273364786790066357934502913011094017611922831069540006416221734085268571347875433070596078434218119943400253626298191265362169317198956408427446521083803176729788534558877192574915791098712387859907242197428541963070792556442874239052188843974299076108079507926426760434975695402336814151581265776935482934953132759235035213508841462592682432702008973073282077879285103599022878023807502830324174711908338111211903415108685097253661595760022755136855277523028512302116956714851172499139657665833753515558118712077412680821885454387407003310502466691361736520638030979956367544300111585709821869757306710335368355188946267571949144206848987008531672829266326364301087025301740326627738753748439892921789886061297282793410857622792476132655223603138866670463236397513322959997834677825633465887100332895183537953544082097927059883755845522671109303990381934604381676496874579039485692317360693057428224640211996868072398645793911580729138088597589433564189363080704822257060242515372431962806754608495038034310537627719142590549140973296329616901397341912806196381447647422996341854371468955368545662798295341147908721099500918266926050905163207849707144614495365462129968255701662963601077445829536056557848702433766445681194189483518587566973972770056828563454609090963774319848168339694149960569902325433013489168600188743129095993053849692962907201759944886406054899122823823660742460994724509810885468179860894590071644767739653852789546407310360946579272504459512444799147582264787994063848876763945071103310341533276906343240221849832700115645022710823121132082194565196877402843915360049848087117111767363345967062638631128201478115044871871721229762794966143249704812023663666759420898817827534327517499726209133174521483588822547049937321090695928546371140896557160536164295437857294474784956567815481813264929281124309172297332834376604318741349195665404411426371784994893851272512545984447871235320245058615870732105788327499282427097726591512314854439247656829755843767318345119946471085663223862305771906937832051943100116815637210920272472928976753916959776835093419583659946786377392432897070312557800105679468025531965809858634964616792181626268125998041085330926084414653292707611794557640264296933758798094137632877345415121620452459301807559246048967726309175405690704985327639775624917522085790599263518622162430160169981891176387982254907707867031635620512555811054856897568003085903199667456833120963362312624072923155265033885865013719031118374191495748681247613550467302360246129296924122008632276168966003493149736618685928046276701853257994755465985088259973913189166463790620469082341471630326242774036605966538667032599620280545969802896387165261307752853884325484828096568525029322745591619766776569332667742482031611657891929755913158699267830583953466862136144261371351270656494308882466436170794189293155063800692406029646980331536186361791011496325451446269243786830716896207449920095779448572010284440992939981742330960795300504525728996795718150116257928567000966582229539990060455187307634082856894984632238024337592698732005818134953510347634849651684915741886327377973351870988523256440397578710879918193770051006477710694683189837548918043754667771243614115413479742010777104423306243215779886538031476772967816037135760114962795622640655999559625759663248234979899864036816312006993123835175505135302048203956016152979316626998276660017879763039492704951116648428952184829529023831718808115429718233515054427947796193711419485017448628240915990433781959667545200065802387626358549513763795316661267288495083915624950158426558066794303921716840241003897922888578116574645507953876113980267029917574082033337197385518462717545840642930605316744932847648021486142917749612836659651744945703479903461575753812006283904623956450721799938727815454255690198884042979452269207800048002525603879706673457426852191432698263438742099015377553816493656883572278298715046820457255944402849453449716626214365480442749588406065932875960797648027713101319224467248281965033578025911631505234916314678055279441048039507531331406294925394356842280165964869271320754953538556102484535570721449289596862850691974494134317188492643999058428676023872675261023189865411897993952020047664790430167837932627138126886997544427016035465466282804497087889364401497570415824941044361243843780203076928400940550798045486315994822755953653543238160219851784512607821358279452757049289159190607494929444863713696493414398787935048304996621004392758740218784415518406377336585002838465622827440237025266968020651555404509559972962977445296026965884699761814158137634353959657100587218678425121289574960599060655896802309040455512233701363012087738947965413395242238874346133829630950315074981134686084058835385688450733670168111513153702373468422196325760875969775130690340941040070040804838578020558764225011946371089016448754269336244863747590741820829105583371742728614303388596238289764796190818129088317493153096113386015533070877487401241475697620504491720593920214517814570018986487840370203198782280679986917014537912231051943410614250802150205376404609300629864703483822648183894596490572068093539132547979738318871851540562845245963951722018317752464184354135048185716891224890530513520278289774653065138087023872913448818444680830717141698619724520062795118714782037863825519319435124237275242328439776426570892284352314936550352043384399282023975385289868697858425427528929136365791549364753100383330491474783185489608276453118017597677444614779103712351259228432987317163877400574587839731707331763301236818685658029980752722220419379396040125931682628175180749907921892049563738646160773526559654434672636849916659273019739400463748030451238295243089589038130673106270468637952239443348589480622900639618235440825568547410292068415554273449391066123714581523916201271074979253786619725135996279305409126894664192098714357217795324627863602970301902905163978977587140850293194141603404153241555898989269076946671240004211992501036920826073014511421417642093735074237862646941606397807399572637066202280895147576180637982722031353435212226336049208661227312160801848353273169091814777854242250186290748067400572712648686824245763732828263294840579988764062608587567695835357764116098106961463633337322248728803718498147673810503699678421897138232857036963698103254776325583840588143080180763279291761047913454965713531274565636508463143510041219951362702008810913115156005357271431566764187147501264831972249914768753835852388183578413124069851522905013386340544054387705182351733750977600584774426160483681557533847933465903286013227847241526527101760090063377043038322795125628314863869678572007043501347798100149719748476319075837131337582754702506646308544311007273608530162779946737470428323985181031402219473774362546340658956361075593413153936048230678255949597295700553692811402231227748262880267852411281482497742137849932311868675303044527429436196634695674450488488319583411098581226224475630397373131400149751187476657215817205699437317232949435168095912813094353320908693211135730061896641322254540525430571958006195189001582915249460623281797252508842637432204821654784840966387660654764110048025242172945136611061965253790970323221731411155149168724850289709635793197996331494513995249988586394210251059297530697083478156871356810731345048686289249233866032987903712064328927396039209023287117885889930299027887118002377497313426849177681491812880228664534708515361352233526795888699039082416033236629031513688692335072653616396366285018261462788867745961145772361090698818655145713299094676167724003990841899838345282599889982224686754099806546516721122867042388762606514713313443030358340961946362128687302303296122524251429888027252152734415230578239749275546354557111805654462058362493607421734785589776770281636404289108358684444852676843897359572432476939042675590854891489616534207108483871595692364531069388450374122756352692141497685461563817263567792329460280846722399355479286782820035881815271679695882586012517385905485190508323577312320567538472089344297244112587478398104738276383597025941297569037640030442961157949850159107071023669444696539250681888062085465803468910834473139457523211733940391689958997912556041006280954459786248463441239562095993407115219873081484832479163848607172633784500855239735399516891844405732357093946797948184755752830843938239954940496332805999525176866276087343614281388811480189840885144515596513307005677144530282677743778175499179800365379588219550029341748857054005276099690689402565480266842673144691622802407100390412912188560255624015744582275936823572105136252797587835559151312632358965582296226151738573410537345973333559997120590111066247131320583473977789115517438503450488784591790540316344638419823355063453527953723282092242424446231627022248375243693653938681848136294079090587474353641418503029889297553919826188436594612982497943843359295101509929909699744871079130923141441461104299915270229967093133465633814321184207593502561887077179745554684777835555030559340004515931487697216879156259645528253626332536477612866412491621999876584884203464230869603426872106041755586301821466309949336281424757249732994582962379741550743694289135816892919362964434483378170631188241883210019266858321663502622541604302394801482421278729293054640559649953364999919630260766930447268054977461849743801725969890673618532534726385497788681297790889056862692323115362826407235512197993208598819607486271327514522348418135684982232672748761388021370568426899659446068104001131554243837714891221765503292987005915770221083805566295884204045621939225597927028106455465038974795013103851606648877118074391081345970567778559226538004452276196817838013504516554061506935768131572795802304022291447785026065573851236838982309978684509024990102414663925972979810232157236491769022605850809800836135973808381887058339218636804892952011173043338547712092032659693095058746276980310469716256204562998539237006002038824455016433348278816121884087009287791363612466955717948788413131666071633682956627447048838318368194768046480396157487889460180420739357508562209281019984964068817718676776790308050332517373410798649674972309877610860533735769294557243016748769156622231944633816442532894285733520722841316680333942212849670093564124055677069975860191208787563213390854825380806431040687502913948435893299136925756171094595499679261869808960898146727889477556233431947015655466940815376980066419840765090028308792928614972071712889935872059949768376647516221898092386705079977851721561675319828401140681941922234539718774719435239720665602679846715725405969163565231057481199142475904060826265168432705302135249283065692581343941441334203604146659195119239835687099364473531093632359031242922478735869100562806146348789824360783024171360784204998935084010999487421753007671397575021863786955879946907425399827778409893375679435722891537045421069806214186281224112004335592170274227518693934596709423067713722843893520893612169923156668726776994860368671963350278476013517455432726717921338574799685275669666282553934684424799198285188905433332641822449224797585612375822016545927857418904242024281727896434120240511703223132053675607578860032906219495978891304060534644815311282085813012082280789992587265123424574355493149776812287892028263776586394619346744950884185513972466013071019020759741035165674558857137353937345016387962960906480041128364859977861053881844780753623778269789849867056382672351907620064146578431418742195235184908124030264961429515988940433897097881971123824247177650324583518334978770962738639962430032211316575357856815400010466890306991956160756329897901131999582354194503062646159284083313537555798398424127223407065897632703364387152278437628624976665043366364432217411544060744487367581521595414570120762664055923632848409069152777652592258878965509839886113472706589573534430815623372053576879640346126124940327523570558136232959959416483280822007364790124698946414214577360568230536001795362083344023560733586130253882840791357852982731962749696517983749058707162539526188332875863302126470166594000229771982344869413963939078877179141284583376494253353973745860160112386855301410372523042134719142355622109553141646774009458890298194201202623189434961273556969757556827316349564177971890648612782296395217208225629927187441710806501852868062914568392027727963028904995793823913269712742087531829962965816885768022472842120704936332798141576944849764957246650885158200581514141539842666742542712533348093458724841514625468953907632111131181682298286835320686171208591760203220565035316300083682540805096964110197994231051272286578259988039556235525220147411598523895768066337399742520532712923326596990130699334269205192599773246621744563457354548512486079213794113407084768026755095196347804704185524916055866967129787445294618504537453442842281470890280069808164750900499460231905746557234665664328893610627734792478528419554330754447111013382758395490420219793084597844925059026073563525071309268666436256017631020965369934802148826714649057459633295708720572067837656114613031436841992769320754189280613612907183391699295864121643067549355659118147656847984902070497251619912073645625557928064296367060054693597930962330792096444119753425635098532738337154826197184270475154660692687657861207640530612370250899371353909085395968876301796737765260374000261343310349820756666166803297865574389982733533024814006900398287739389467695130875289462827872637656608532964162613647564245454174237223111312834887131640832863314670859297494824038244249768389980828174740550678731194154444959219396135278844296276870615348198190624015232026454634401686090406908418849807802789685694277406119162213098041330453534363901764001748341417075358319218544359899159934334241965069234120024750816321975123502190092637053267673472838563048077040274599126035946497357155498849480751255250218170032489849355040562066757999235478798201880850579342615272634166114642485142230576489176902699076463107643417015833029399554141291399822165267627744756419543780954258928805568542773212966638382502503708708752574598491788550565505213419345087676231321051354863951345169806895538376898214317883916528926167096423972996052165187975567252401924527267824293635976079644029146394628057090311213032999612780607613605171494312093542691141551202353690487296709573963744908869112844627749123087856262514934404093634505773856760618520165402123855879122757963091112452472778679930176136692823235435136985469200821350940943718876118980764532954261454466906103347751444180710234374460497220054441705169574442483159425731434076509128338414420327262589861043716718272076060335189649202440925520627518703424542282189237228710061613901398965361679583204655676595200346747554578531441616656144992132312253129658525477409376070132479941667823597776880101050286612461235333714813402242239890845109187936930508294186767553466044743632931169755764442661965746806030488375875625848532769303657350308429862396955510175632242351613434758666562553493481562584051224421595150259246116450661122115325492904112024092608136742091457719118114743302858523235592798725931431708137036926099560820462222368730525806740679903812683379376867564897729719201825070082004484942105029240430220883558674904091747009028441282915629562904253905560034692714352477642619685509691801903221369976029818917607855386572019232731095332705373073494577645003591932567550406130252018674520431233815779281137878439533147278521487949166940370762872264856508079080917821900437730760830748245146688414044894393739300569119909120711305101528336804328557288420234389456333215659790205123938531650224037378920673219253485744492268412843498005129983420120626572554414295550538824591019869153032622791830977816191506602445435983104681926131605218685470391080230279330302345130594461867221205392219279775356258927025664875813245458397612848314309416286443938795276713242589097226075237320868884477543787667190733143893819677608322562318986226737053636756855024324389868285011235403202156785356319086831318213285544273373533983840926219673324424768268522158602276845978803215801924223690235114122326005345164400343904566453656451568402204733453065178098807201063615265535616722304730076953397432634672921241059232591603548064939670770872761561563086268976906236551088740814883042712393631650721258358384714837619193351045489184700301040135245290733460170962294569877063762450451078989668321987195176450475881569164506460710677018256959132506701796032181091160638607679684343766290562416718329655269156300509547494690612386336324091434366403149459315648181648723631801477430251826360751238714068293487992119631818679353624081243441839071106077926766400045635706582645397610240591440714701482676324003743918580394252249182350231475871877903910516312061850652309692512449233899873979312386278884527765176315332918049066304808831561894603495800121112066148088028359040249809442426028034377353571990613904859172891146337803821920917348395794109537421166676835174984351932541844371186687323117082818592448411518314307510702482394640296038018367242386881002922094143985941043120691460532766339504675386369034874926024213762187684259567705291313396812167134494379280564329441161225859539124767917022382920659092152038533289174703112244931965631025117016277540867370530824423928396816110469289981802720171662939117967595382409742210248898137212244667158782500745711380133044011321454096686141465595117412331614018592158485264340085432620559633895585117980706892725808073600550035919019152530347171015809553119066633147641511605135407220518809489800309156812599286950110972275249703488624429446918271762567215870177527882201033512441892717295453520554165161570465802334276413286597234315623918697176352595570429902182639022359998553585774820556125159819187713902177941059819841166342758155873767562436440175615032715475930944509402336161773232865214319181252844098210218760356568232274990944810361588066359947430660542769348478072498722052112546934286125746071171996630943990696622783450275345906437372844168196014158074188467499604241398333733995483040174029010911195243847772771656050178556944022902060059773156950502630969957359751957526237259488738536773915213447693708436135216144776956318681877986195148346099378500584298982046593654091498726417218503447721207701819720722771235782358009190316496492972634229589400559908973904552762987399210612512092932081759619604852498657577431359618700521426154673090032796779849154626496489478639592779979536028811211079912530855013518075854142303315553894804130714311942232685968972140696753100686478279443065239043039276047103442912744496240586854225800886989527221688422942724785568948553266826413295212619977529510032150903433711644420676096665330097393687676442668672004694854412723298778230479438923257625991156755918190392585839898719621862549747398716047193666088001504777624613642987102141947813522382625325131306373342247821029187767895184906485061891804177380957647448676390795705926122299209256441732680439417405819429051604467641195224012336895433914658721746315294615220472692191646737547089145930115140615983103636700441850776821000781600230572382813271968703672404004046879519358438138910892294313888778395685726340519379766619265755640450638820956206122714507409484877723479653515936735029366846378826060313623786438539825617244199211584110359892309617334650525683441360428716977522289920174359677203537350834752530486027989693107909943576260025447763039890727632783610860376264488345629366981587816757521131402841779294438138160732677496968761287719119915856606823642739532806468217237573833105516126963638926037072587205597775195646508705068368381536573751090648603176926885971885080661668051387248581892813462073337944193838363636315007811901561316766624484937984507049618500002391729842432032000458110982436338835065258724176194391347615041411773425684894753885514217080381313531982347014654300510876422689189017810448723140960536304890268751417460372925297119530983960232516270231843670328837249051312335275404957834463166281371873854515794141102346324177563810357601506666064736309031839645943391671524845393858463694048561522477066265110610760504686805585021436654198755148502146519745024415557673180015209514287607435970235729121556823110803756384764082936720902926155175769392922256230501377024423993216568740737028379735165715338428399646707186779860821197450127636062462502662174500418606662084064004438882938925048446221005300260441686830518999731389114227738013650108365809946564104029578038004331994736158784186544298726606899897465095905110811448375059410337689833629676328322737931718341370888516722101573057532847420411753720421582970708627075550262971646310815043484053350434418383513812565124770551296556839851790879545793600501796313532292190142549011196177345218311968597461193091238911076167573251757050981528066285960853716310449878398361553180586128571674331563944786539799835657378296160664031053407464651348547335025232145574835078794492845127582537444865818250864673770073792115008127025032939073919670732852950105023140276025071112404585156395299195289630504493231275162590543591227679892430472303174376423768916630219049138848523539079274603632932487901462567923217524285847301189874049076751069616175968747760580739062782006944406228379577015769881629305443881997145065584536854509026867128535281177226148583836195515921707108803987380423114457801990713738961815157384399202060679068325477284236734438576096541512328717628463050307609915507348290285413472730949033863430760525815540209389260671625816629146466728160110875482211377524648516547902622348902810056690180053007692804133158483632334658035748907499335532046673086102817575450181097569381525278839304441950157393177669733980712029722434892949243365738482627826302000206301752661206810861756862584506056072404530558154547717880351463740811042290301114897312710827974532199793809804878966393102497713985191909448967960435579254032107899449754420461429691524507567915225459033122054445779686094939119247884614045149846585107853412914500977997085093570697556732152292041050664813368603734369118844817428607460228822448041227322077497641291876412938364097192798991708339883591653494765926243352277045612170511961504558202931024018003632998144569090274519412529452251134352815440882939886945085850079715221422564896481585824123410171932559919415833952985607687562194274985923414746694234968442541042357814559062411081585740766210742419216423668638688637649272650188845157122463119761767796401954737726127449216658108231414674414007995944704154864276673949003357598510144310793978121536361994761291023652106916034558571121516533401639898559762379245747130269695118760159606126249137046696132173206590503660121908162336830808442014096525637810454822280188704119629756741319436905423614095332831002117557166123266606159709178208307068817200791539789219348292368514413135522963638685605590148990698419141733991972210182469019373265665368553445879851903649342171300286632062232524144127092159157798511623214664232700803539283079102790628580593339295843106246816770899232434321879507638296863831256405725541767084032373569937705818346404834162626050996627877222095840002860853712966193421010761530551179924440173013820049567143212264563952463468379579725036152613602030409528390262791115673966525777248287939017122460382995177920642330845772630541341055487083150621002130241724632043700770309897469390235763141768410315107831723919334281313661157029442242740481228369992067925975333223367400693031799582223081661779453136982844903312769242573550213738179545653756854791899273114567847951774644960390445216132778247381034699060299862128593736905181611013657579095248783673591984283884902218529942412699551285801222328692255142640742756682423503274968112262375604063926319509553902727558052924288295428793964702442447833304529568306934435145246742376134462064716113772024112054576289468378183302985594046200514036716960883604996123173471520203173804002059939617657760798085214625165909839244573814313166613515660402259961775694875154906842696607243569445982090929698670564896490393590616077850235439771781296660535989397233223405403149332288998889362970672540604975236779781192713875894855611186271824187188882413658701063265275150856133874224014505526944089412873678062462167369348096487069717233918734325227198775786389823478502476949077141998918984871753704700173905163859405486434786055340993940613312178547122408787127351958808116754831610277170674847701449756044588735027899480488803204727997335070027772136599090640159177030591697152107259099693429713275431765892677069327613109696128314826966981002058553544917443679536397333179638165692896559953342790852352679267364797733993791819592561012940509278012283290134898331750624170887078975305188506196966503425269734011168659942426153049265362506780591409585822704900283350415339607839761360126626441129241024075691896478150301865702007484321416909551510452652188429573711967197147262606343187018584992097606775853242845533613370949312977919079640341997416448813199867636926416176332506604494056394310223768310948471616719781696826582249662773374245174942746631400089735431712310832720295712719198816862543762430429524011908060759196194303396263636861290715928487662702493562093147910527070836918468342002200039087233275045738128295945289729847356749195517920200770328136279450356750969148041817468387215488318902496339409593478029174816469734599197465657881851007464840399709880848170527636692822113431638968077852259836411578025918826682497715734605080783394768766905072587158083799081249829026352269099276415048457836278959816425473145066512629669636778802884859509984642502849294087151442388699451102594786672534240448516224965549145744399713014492309366432626924439645250263975561765236479501910598717333042915563532815762219925669947354673760865121669085471286789047461987751000449278253960660028617497508368859768899080626405712356878119239872681110439589905994628444803064267490889912423449791257067283800731347835173358487293604898307030118506313407037985768727511186059827216759203835278876473309387666349628805652749240672917111991984826366964167183198265966226636845700235818330687786707854193891861056600820381317916052041807207062550257176946734081614599981112088671350309397941194844818725878875352266522273398360427737635837920600143769903338615278863241268354708285862684692935072230014860601301347792384818503728910278861569197666596795723453035018134924608245828664870437909101348742688568454125389101261558187338737478808241976901419142063934539308312476608365309394013273239481426335323540148735794352805724689286683764746007088241220378369832484212803465885965966993388903696241521489897756948901200325200856536713900987207431291970268433681742514502896393288407130214986707372040740574701621101294076781142876226049129920211017159870000143559081820581972167321359952856890571183694617523873867755088016910942907885358850773825487329713726779008771870594849460558934147392571645587949525505037377939699194700695361471721870155319231674601735549984154893859415117910179099602174788608251726233014567904173531164868070917565806403907432516830474289511884745164779776266539558418199257493740015686429604820843310749409919570706301014986021841595039984906197289788531915379299119698081774383833706341667168012966275745522225352174709418970408846641439036296569202627818595552187186053914393090195196514559674234719725956107868986996642263565211015949996781345674681513606436603861211789279194339017270381190637696455766335803451397371265241027784812561998335690438025391319440111375350941802920217801972627249616877709482832231886821093389946106453390022350393960909707424786966499840416458287434214143705388490291901557184044429737461969840241454431489616381969978815632712020795935945682696235411378689048117606686742217095623914275306352437205447494460125397338245279362923593622766281229906694434473714618871356440297494905289862907686737189345261278198668807092470166903972488674427379188078293695013240838670909287567858406444699301544383392799234366175273519195054947918953586415936783984565294427350643772700338796734767406276905881735515438904732106190795274580862848470907173859326508027560220966685269730147482184854613691210081189080893909625600173793789412693991064186318576631664315956536960935798126712239718397314494899680811549229538714656774291672066156375689569158227727019812093012807894790186856113961968787163643544239186774034152189290225549732277836796017091239419438444375885509712648623811609113727854914305331129087673399780955178425302510354054798896354441524414128956139044191248779303746975351111044468556731042846873431499389124564268444529235153212102444223885668309422060560908517478847606402395527782441965533224702835220874266945798288694828614287191055354722528180566707621715277626785637936917824293354549886000877776580829793908802840747805617929651253769977803924393345032742474861288365344882275321633449574276155950996261384605647270708011594049643313029637904379084049320853042732059246658784481206356296707904806580109540597177324449361312198730178480216996801612529526066839955403605508984255046163932308757820930907239729843054777769697799490452669815800707841565543825763262341234917360834958373487445170356903165619119560661751529868455833998477414519451766667343560669936031623802767162178801854830525080685920256076640584211327704713121673087576228794004052530245378071508443221594045425653732712575931566866227538783298565278149515968198510990387505898854500503622182792317918855831582894665065539363600454922642733943819019613877884405057540150063754144854906442840357606984834582832414281842886947794929981311216033959164595916551352019508882069180733756195054930697036496695014477250915822877827860561787051375628051732584105833885460876370265307100294629494939114851359611544509052092149443814843886331391299422241182098362282032773572329717191272527086244587652856591115539185637215107172315115941306235379346658086169345226984846029978065644563716468244196718119941821834980011423691831339983406214207511148407735610687433652222817121094149215709130542453330963001246622059368192723057158313766409181166110495133894548171064320394180382521058994854189893357933085373096227761684706647836484716092399315768947397609537048990647170939951750643061112434828106480611713610126105944732138736223544049439985149798110703285691602012285190008386625462595839054121962490140517356766538202967056684234627224809015920299285030501531323101460361109449324598058959734042475059153069988376264218621081377620718117570299250388437699783513752789771328608046676226597228304611883779236879526872700990175556176924156211348038996260730773462043285933962261805649703763832715300577087920383238016680304008265883560208876110574170768934623786681410058091213309545676041303004739526854858774629062206320162408129942432858834112087394267312725071671134400038531456771082324898847831053259544531650914674334688111448713685027768351563750314736403859350382012256306129423384329864942485708157504959021574408546217886284360040123049752548533798621248176099166127973186670911072761166156040627100177723227228627450292260498092610011570277683559635462217876898918874358465218304424314474331051994335232083288259518631099777747756390334646896188888660705821424723195050031391755707793532702467968379548786258033061094815673555974134627517064091826551839542299482580444041931529842390202219445900014279049212848605740330832315509236899213985259106038689337309434128856074389436121426699931053962600737132331509859600550400132132925908100869808222278854367341384066668533555409215825110597435024133300594155496851394391435134885031564926047224496341832654946970713493600074266770393222340957613562716213436696141015849438313448468837066723277577530239320917954800513497155133899397678072931460667984099770598978851425860764683847345252343291190376596134421774188751255697880252117650440277370641162219585265239754306711433794917570767957650509966503810913875879037853067782190576267223277339448650401047272379140882046886954636059340332208873474765544619266194686822060638536526521124515295681014634623308960087140789158169321605616529483389151802813952255484069181848371185903272680431430164334240992707998373308458685874573699205972168889301457962336804854516510911713957421353779852329292810262773350649648449175331448336796893852329414083155187867371582674141502292166977342100887859060574757626115440723595938759839005594595462513360080938964639156153028672247790000519337521589276880320475188907002209414577586413838690484206863796703772408549494915745957141446765036557319086249510482661264018928509385112453225382390754133134678568851852223885836644149959202563292702208050566984775548016332985385271317418479714370842207857436367929387900708875113207406285766558075087359806568062238958088074134749251646925542634241172783122853167174382488135593257927376386012790233121132311145773228692940833517596640024373424927749313460039245363205620893593302049586898249109142322151066639755092144163468957499609032864756901333025002564420670372593072722716422668913075046426597458718919725757279471158738153880831927431672927884172224886040252952649577317821219089178719208738363705842523336365079699734635934415842296552443697995912381510368003463740991424554166289441269455564152003255841506595525460545815806739781914845205013870117396745013368166323202969634835000467841663623005316371071233484952309669688121000652986344945597583400956540994563036280548415949275345113930316463725354469594828625326390655111720163399853097821036207531431762576679392558489518290834199744909445409586752389258564609004119689551603337907138166172440119832156335051739473388473729238400131103167604042138606715056479456759423801119558022277191753191497354052413245569965603109157339928654385460359818262615895337494910009761994220574683542056066218594768216279543416605302147996222921029329951071308782448649382495979851176939134961309943586459978623892062269900853289582569137928670784734046901982740279779798630467873280020218927218688746085175590396746481677397875800663885429777761317218669832490653207250339787984351178250964300683786667008961724374023129265653718478712937541688664558554507857673154022525665486490608629606737370550859300265406363753147851294870016066285782621890175520013340771375298481969787894611695769043381970575933054503389265770256576089879003791301120108595578857081345534482844231900504449771650603425444267242171055924137561329391458632977249152601727551347474542139313714239597582796947706863673914346087918315018480035617365321473697792259690260823818763889690101347239911809422853434735608154645828066985333108395356467736776709750383461512576715213811117957010313585379046680836035463395489816696830317517860531779498048650569592726933225764098771617104544255815681553163044054756891629554747367863474354578939978451475117474168226012669626289418357076993327619329288149877048204611668533596152586592370322037416489477978390649325979542044413623304958428431318886610910541001049535627127895086424950320392198617392186077987551315963714834089123426242788808388198919435055144116852752267170223377214082633955364916129684698821833966244058403096374667973808359211260046725984979910824666322824212489961225872935282964129918717466484079459282981418622227942491318269543460132709810836468234804189954882908531794438139331148690549633761722945588580214473133552708963328801246928478869465003150919299570753082844125019734095573236921142554232194294199721555716811488071754979415696188458410744258695373647972421032053504797165020854892397662012174336254674554880260952862949763912435175029731488914415898805399115546094041430958213134689594301855829044073683430400487226416039958967286669382445836856796818999739365401163266231487847509517701797637124296780538580021061221066988775628377710354139102497082267747093048711387440674034225547545513135171055649973631313732284817830577255361246262014582498195317316607125048932652187076714900019861879324246299547261597534743764411012454328746717259889624980317198841557272473764867931953623748816679100316146371504271585392449437715377252138351906232701712067435552187540862397784107673479807769930745861404748269215678302413916680346289268651599612528559924636895706433021818636613174023584042258932489885942043444777817038090726294104979351103801375306910483507931958133365152733733292937107223488389134422710548863827500944318938151444714656579623838125794324899185963665565120070564962853753202721261477579616412047534432002858573153561889390127457843040256043221823522209021008648599392512617281991616968753792448576980816207833134963253975566533523845599614636005288030439598764063116549594961633101445291958382905081797091385575554950926358604187074295736627498510356397803712659904428238398455060445974431520430240092640618767723923438492133870392988107430860967981863557871016424972404541457228902789136055796334963782673454585225608366351271083323121604466438395862730932830039734087330368367362937346983018685570834037129984793460556479910351944712994282281328414813452337150763236029326804494045024313754423739282111518058634622494959424101984990812812869802782988900814973499299014636447963325610855235124342621243406246171628281827525818504419999448553720310347410806239931018346715104149409400129220387347086641161494259404488648861467174032808422106670987694499610688924497920329908280603513591967837779991676562790668417583899722568883955160018191870441835672719671751216548502234406516854748264036893751614768252079035371362456187355230783325731684126761520583733385358819430971526543629212287029871785099383088863941618598837576031564369347625764929653486004206988697018635784868220112337342457169276074805184399264190420705292766309124399842435983484955279076784819167807523731518190375046134737918948460790303977956495526240241836391402997052950472981902925501439662148559863742333692573585874267389883856771012798487829220832558887530701304865360956497817184842440830903461739505096196356020919961358667624701692231433356996550976756586936150235658121619032451911311314066747121049296157296996328744502328609523533972941004302623392309156035418998825493032375333614054207559738594246831844755774682432486407227543680481437093376863699196534855346258260939523653869219854921285091482468491718366027199541248452524399751758991529823800574136223382408210297719729061463544528247337694386918929933493160548252976894267273840714462960543414362116460731319256581294666952721947872574397271332425226135682742371686039553062330836323294770989227653872702094973636087101412659192017979104846380209350819585500765251037506287604484345748182820439319356227566573388949716730694125390770469204072596885478277595530179322315821402603954018575000124368791925740572070216285378762070974647066378746496173987152377760957441799043433102066270851530507374937971682407234398868540827148024366711582465863447755931594750107559715570833975028059468908479354975704635626949032608443018008955702030732819371177312028893673847228624694067421490429175232347704119170148474988514069182390753993645857025565180865457928733233741570853538314785613272635676809645831181869277940438433368956116835519592568933618995215109350001489685066852830837135392570835353031559277933122458319543679076374465736705306518811686363756924539225664686024012628155202290940585891396754976446265371848080471362363259122035765401589909674539172050799654935043433829709081056636830963386935436364677775629887068321656843708713277679708594628923302957394406147816818168915465863223158509750201275448712134432858465104181612168566629330287373439864820651526638565137663321898684361433804010719908434656766491516290600130346776856567910491641562829568442445457135640010412905429086977901398724003866793630702533989356076530388484104076695305645219760618499849225275514910654036567554266171668296966442497045630110539683436754797472619147656464017292517230667741308575750319675381922637410683901156131776113439714618885881217431623061460736824442332583560102652823904108974795280114241981995494013194756106141057905319505268206751172079100115670493511032736068487911950394165135459365937991411257069161324318217963949067846761286647581437828644602236538233045064206428281681413340451090771225362684609387263550632409346046729887581440347708961244667547810514964447193986797834820788050223257231735084652992172672436891335880138865843014259991127356552284844287362149440849103306107467690633874065525063220118859120380300303263323112785140962047262565112847352678921076914075207627774659993628787260424073635410278194165463921598302112745933773432941447557346993588589221161976021276539139271171874757336017612799881390903487519538429698643825985222398259479369775180540990518692558274943021073833856147951597854876351866881147019399713388890013249398597363970393612791694002251462694171422361636669256061818409700120002431781290968439832251524399582357217799883519348423140722839791916157384168118933517332785751532990414199537334261182723662389267386313469006103293240658095717756187249881041460598696274132434444502615813124246065003855236165979044987340720383032891028094989426425399223160819979504402661902494762181125434548622241185686484837146936951262021656126668599164599521501727260772988241274364845815082710156848719315611472131823947036867390878349332295456429951612522925388985006201965637201519677058352841916865097621272266541075498944410770090386026506428700529314316691688374709489001712273793958302128409835741756591583177395369667203060561272296452583192397131596368654461397063127896087188649641168940383333478192013963894765480753439195192846208098717658918479935615814652603937642262033889796024624651146342893243419799591603710259058295651026314941423029127065651008132259377967662909013137767120753363685569122027842166567404285189146608635701390168805019114060363486113598128915433654085079078480752024691645915880232641001583058229670923136449401045268400672778769251638869353178752637921930849917550351072124478404166859137000985587329681975116177371756442045398708981989512649430650512840708609236017891015881287946136921192103875406305255801494511054083923898051225754403952811515067169524647875232175195025261240898572923031249401646065048672191486950842253700648338674794225705855641398259371601035649225506331127444192375343018321214832243596556932865527547342932410782174371134860381394422809069786596886246435441857488693773043663129615769359511888372422943058439782649397494256651812284630352334806116234808609519927151558270451433435139520029520530176810618284985573940383524680258673943698494231297281849694488098656268597269314301695082502770713499083022486126054291952521771209528206425664733404958754485553570149416074444800799772775919250199722512374616165579390150580425033297846852658018545945830540599107588106027537868482365667768457368911710697807075649430901763147948437105352214839205643896506548525310084684582950102160884297141978304743102080149067066837276353919060587729353750649971577241692602554822060870293979787493276673200879731816224849150055713784397106700433689700475136905230003859408379673340504805399259428026874556825401158119020971467207712006780921696773114680025579686935586468151099609995819369722087261733639587038439419696733816264334005719536889071732188675743417841790829591676065080134436099337393427813486362413127105892853391482727121339251389687828053615838861716190628572589839432178735304011564980434136903868798998330841655281680824734137382267030450766270674200356754077092491602779850448534721581545432804203826100110194714692402523948042464189643795902798155453600699642803232294144923985446658228058977042294883099273330472636859208354718219456816790099062565331350402444281818104544013265229340826466787310631124622222307619938687572482482237918249799297868512073073418423449829169834629314901813133960590612158455291579337692886721250549007544699274889529803457137036897367768030145962784477710785346770540163108719772851331572731711198293352286763582185837325136668994783760211596739204322556477988706068431935096015984110291688614741838374215347392385959222928001060835260334747081685902844685897988451735812612868736954127012856712187372223001897238332947282252532793736877196600538084401419932276975793497002226382975449563539628919368870815651946053531151953571011989120895060382594041651967452599901073196929975792113590561029624126300777114302581712945255157251657756740736028522643530799534103636363038212917165810169611354440457218556657907214746060876232788776144050463861784340442237806505398725068968849996875802736523987090546674145283097469711496136994340977975815213242718253867477328540752329563800096330537156501130209057897230148897701862222700752036665671864433201234982135727517714701635600230132075541259520464757549602726049062277124466406641495332222945612281059608359979476784051548284152178251782363779749204716797262716232614314984624198142686018737394637895550666170602434089981979699524028026422341433210178690792418391718155797058659189387068316208549380894656036666574610990027785809754477454119717915764650042431195781406114310943589449221507534071615033145154925492058059777407783167472765049997713617628899673911877027323356435349094752035010911170022710616659370382769796159898345361370285857576991359807263353307007724819029753829642061686570357997773957119524992570382447234964802006960217480259573050913431591517272061746862607355351276755299378847501999519481201999924247908504147376613629224042817073074116188734623232968328787744709216136544941391768701473052498067119673378580625448612256225124310714255973408964702251032793267210009762560632839018276870487842236439185904025635549578522877494320458144249412838986756036598354612531390444070309158823526871902485384125108780683303731382720239076333026506865590306017140278908051331222891751640035415730974809652781793942437097386877632654812087928943654212180056578479679762330509519511464975421595956225997357611700141318266118060823966797018523890783671833183345115530211168457927903283609859496682741123042515828444059915828354387269234184174788657503403620343542118114021372898100629607879015106452950230924798562589485697478278467746375066893917218649805449493125533249590819362837606514828579862707992121126318935580801273166382982470701585352586643007164935302838361318333215458505086380240662973479356454992312331175683282680728768476007595709023036639413588696311550185926048346406314969320884364957572101153207978359332159044245346386356562173660353119430171246355930147236714675716987431376179503225905550895498007360291489318154031300962735254423379433673534036911626975854276065814574522295539863937293770616838954421468358903026198291227210735569870120461325405449790139329116308337331665635172606443019529436185909897457484827214330619766326280859533296090565218023546040160929339477412470608679720470845342416171900503327485842787039991973438312919120617011863555107812580298455567393383413983519714576560244594099926560298565245265164307756932184570737774309620667927865715672743538561447086237710607339431504466831433674518601465644400640383400622454320928489073657780799544098936118439694752419002676709001860297544836734474168889291986072435127035786083198581539630606890244814849881882456673602524721702933359688312754211790486440417077671530699601849882957529157058917699277995324619013842263892290133101628637364835732986614759227849128822157738588556941091661880458531271275008890178449447139827156325567998226505962957913067694135335281472263847439452597896965361450994191984542979865996068149826636262578943337712321661523681891242825410019867265500648869678044415957346997755893316315293887909244912316471417464799881397551700394809258051529990418160592347147514500864012672990894189070257562143038486183910033664816061780507840448372979715399772038787035811782483998440981430152931577421559910102218622479967691126549935492978179369430812410699500830069269906989436058997210161724694006796034359290330748545845126827201698492883695149949439856192293258367541150909068832022457195807703291699168155219404777330743560236917249235437609839640899398819088714571922364636593697521375751967310877136389923259156996639536180312580103207576633254780869742308643633420162352734279233539362102179904304803152322776385716308085507036421377112367799484447875419072959346609660968286573976772932597246212225059381608882247375097239431140488500150147284347647520201670245697606228127688484016133150703231587276449650805431889336342694785968490965459171694353994651038491741541533963986208991190978645515057169351513181527454838091537820605130700916912473977823598965854277214846504562425999161831661134833746145587170999944860086333647097983599771642631749812521192319933378818128408672097157442120850600517706218415821619943519454411025130526871796873571957025001438525892657032142655545415532300561927749109336422831425810115451816371038401719073231264016655422547780524458642560588359354395242347573606586368881175456008858054175502408253851305506758239611828167447027167969669797392105046735612467227450341451363919547239296935396648826956691534828815281446250908490072118647060006362925545630476370429579836965481776209989786064168445372483592312784077004950763985179456161726137335047660720046496085330700897322576565620825307203899780957873224265294234113571836697358274732823189827084654309287265124067550169447415134800816927167319259054371767478432146148969901701190842917433750500935247678428552134196828861189267241430592356397832128763694121894528744901132835750216597550571285249607569201443225401493647687931268731140486910617356389966208169388139831444918761607166999924898176646993838148753387356223276591494209997074336943666153325688823160745452268880891857020403623183927398575879429731726097549052737447373702440636745629809342876965814317287174594472547735864828266737120568594669077041728724272879435055730153725979663871883951780230785461141600131743174128160861055341923912082273786157665282743139439699276575649088609086847393073991728462209892153679850719689369672055228429929731860774253991553156172305885148533327889481807458470103136687156819862456311707752445509209310609881024099717004426807837031566505748201799371883400725696122349433234352760087738184639709891851725779026936398224462787365375333296035436331859595152383564811297388289173472873219760796810043407884235379291855266845308477020208355998493976130022958994828208284551753376360212217515223386674875889674272798367572035766612360422152880377693964599181047088016925312989729161988278046355739959667736854806523293080184814848438923186234206493911000583475351997928163495537344666207270193670550888151210557230109714325843224103405313404542717222457128433583973446947069413427595014545452976574455847945155034836387349188679678261622635193594526825275608212497750954306155370738927254707913667747979015822484599481947443486257256920947841200782125823506075578597559396749274525032121371438865177748043076591310609159296677266676368234063634167001944188273400613755036105235527407585448151234627352980056793386201089681658336986315250490170159589847437967168728855126328974832115187366258569747138616061920916320919260892920166094365221366369867251246007699808221882027264514177101587743208225399840223699930485148249087899305144540812452869835073166893455450681617951490369002205156153826883608697513091875507104631343993016227443590834743963461089412270040873503814449184072048884055544321840846185103087104571653541681823500636795370955132911643910882978527256417275867662621111304938410896799115452975716954702094074891201164473482650269452719755898113768461957887345377651402179388446150293278411099716489960810362734863002319110948929867619098257426450590581478011134487749733448407999638332877022897654083820769054318561051383225516511621892808335991417248387107618513768123640756308082173408834639743752891792961576476461263779422074366027123608642875065698071987791099624888915578413564026346400499049977995551746974587863489359938506499224997945196015105544078312877899035199802837595068881677965519262774484468989445270727930628252033632819565630513868969080973462580971794051739032593650458306147717155834220413429043316941714506675355001741408915415478733089254397390554467370576204730956625620558211042849717826755326504742664551793223553771918858070709247078390277265452611781400635203377543443938877556375001911701789245602152595533226932710441920140875777115054196065910820003996604994948525530165264468247050301679130785870294918514240811416713495414130422589945700621236861112765111024628724813978452214137118376789571822378501580848017826659904487847822809933558769076030301520435710163105588986061726512910496754029367118590692133473761652412620583667110625868303816781662636458901906357821295699480634009735890958984045714071662114142808960887003948592833063891318609710401871329255904050207007144806412281375260261560609150965096527703308236330955221974332002172937327233656339079452441451437406054250954806679208125772872720922746115437152589204771778306203141695650884499100583945238525752157157868897570324952835894386108613426470060921300401810934670249641188798442397915375994863952737305418744953398849764044006765063235618889474832860642935289261783580601421442298661650109268684968888396184605562317121144237078956915500096259754361339179949362533464060176729287013945164949904973750631097348079414700489648341524242208158795767665642748273803493284118109566561827851393520199083263257361570102200796115679529524652559933068556669526161249839764522852152499977369112349541162531075623249940519672045646658727005678192072892340318531696903000757943410007934951779128638310824496701702539745950825679488367536716339895816496234468627551718264165830395073427964967686289499739263999125601518389066365995228919491865904470046342219883133646132464862798004315943929258734500944938173477938671913925024521435859696305558503924129833356619454681687039923099332086799091962375590881802094331595895391495873533160435222573382846509383093914971827798997434893143219136777636805433470742644008908718288033469546581068822861808443848878807082537275206512973638353844613953293626493397412941686710679034459921164809598149764077357732032864745547959982346047717203388241846038969378934694191503586709279599010988150366041643521960063622056301028210039407945655991371875820294862533036472263099003134448085198370704263860469855735678773827380494555594257513747057565652809578320282274897666926060743783726012173763786160842971734192872794712381774699172533914116876587280617099866678993722877210757055687921412666582870851302888602933184556956630032345573583407110103451212831852925476219250661426453154636476292040704243920639020769182712729927910576977722924765618493769945039206048962824865675025371675593920756518613580890896966111432144132786707213761018721163313254795763218416350399324373101951833273722457180886615432978540463347150855484660032238814971378602548901559366371817310406286320649237385000403790994853720521184750690586616195932972397785698128067099820861683407145782284498373667163975556848956392681847343109982455798854059702921559444765024369195778603965825451507981696656332831882141734659976636101718570040306224476961922701158763287810143638174105466210142340019631500751228155076053888806962170294089793380725417327425140106229684539655816764946738413973952303284446618992274842664065233889465757125749576098365466098234028195774804189297674451201811225106807619393094297100685220157945844541472440411863030434653383208433157516587670987301676558441430415786265360874769282958113388636475377614055454594010949015741231224838047092247739261747474934026287529575813118892453059795675230373685771210868261525709692349565938191903109974048547634843109563887098994363425530168118985177724062110617542566319218022027139001512654964868051123552778795759277978119147039887175272011177631338459677072198975280339175453718317688416606539591332401182261270953493516480958958802408258482329945810164342709151426643814657189765727942376536434669267035324014904900188101386807696303611362249841675766263957410091860315304916109145952499858562221144548584294352460407944534907528961011249820348903077788558616309394172487759986571418966511920649554938062327875696485768231010723205377080924342203785476332201378364420587655241063896984175906172643444158332595428274096876236346125415396768524368297946198964927263746840048178674264754080663385840922818587839971467345162255072663397012236674361884408091537077953454349807612566284367822365310045739935383351972105474069550088605880271942978461566111481225872337122963521354816650945175294159023479645015456967745338355521204704433685314112602086958409452410105413051361491496031428664633755737402334824726963692808609754926855293055097741520155250963007471214832915322342852054358374104675640886058847630961802133994146893618330231226239424820865172730222255563752522390522210742316116021736990702183620802422876727281379559916371801204610873601772509150163521346121321536665740588216042576289983758595015662770477962952585164586979812462305606717287421027458913237110977127857174404149966028250286623525794453051891587680431715352939941020308770767447456429369698839337572180750958225623164453364816879933899604114298414603634764809839097477991733507567222408733361299534359403256504648616409289763650303890373758865271870780126401816578953430916412493470717198642225155738824250916018506627075923481632720870207332752281089192125459229442984857587161921621658759564559592259068588084573996656414682723580588743391243299239060733095491435122086964795875269155536571378293607216144770752114867253600829692072126003653695081581638996053544804941644551422144438295564774946050876761926090436545190181377771211062681866153583200681138495973884839595392280655923981130335896361155792368134297677560736868669764238417079199358541825328781121081616670229114355207368187592068577578184843047031930872083947637053810715317313739101883005042820189867132659757005167152769651505753373924514079665894657407590625418688034586354140961316262649161139296959017092192599597757981895963221572894712729522713540150440656071439711027123104463200048833407748977189026280895554939670428423490775359974990360307384780816072859242591149415421960259493438893136653227512691308122200002492054122569975760390939215758040149442921200809703132419820702476535813035604161700212169407347852126118936007569028435602477539022508805709764651207827197646396167531650455790333837167948697384834774084997687989703004479267285671086878514273490249441348216226986761539719038495643731446807871534960869283075845806545869831289383044883381679981686663933143548327836196992064295955033229776475838001504988159222904857514831866424796234691834702243475130717545628712709857337298030367317558278353080617424887192549027737633057867562320563269492685579024505493308001124127639663026914911932340315012027699730091740461621508553695375066824184197398986632229013091356363751065059382339268561682119829511518606926192210736361815870031498021165795834161667404136823726094731982802847647662504290424442059504030186068126024921352923227020484055113113705784234015583826341672351260871215969296666239440006721378502700796847772673727756603398425520967657451560693751249297784990895087027813836357041391601525613642043278211414797859094272135810374717668650069634241154844888339758245294571179864776119222477713949990958704306062694838850379947298134423329796042202043940729476796778644138746870013852697478680778150702116654968496697034126295612838103730036981820314953371599028011433843923765562411998846252100347589998128635901607801401019362124989706598934095279675985097365416861956634257957105197119677197220660336080152926012771461191913781093488234002398355099843947562086910802639934577071224800759522371114996843055509052786267664918785656400082028893020715908128592929288509633679018875676938191526620985944803793626852022902853483495973778516110804337854223211078195704786357486369548856857246801378780305756038764113101634323648103612686876604964744863262372849172171871403978933084609203347175445167373281249228644490942499980486327823775812717713305872825070008164201378852504910426647630828182907315171972990105939521446150409583525937038044782335189735289179818147154555165351255111068762937806621484403533618900121067762879521014144748082083630789942888330048361436510243156990941861659983375035707886738179291050115043780313164088862983538800972707083236339793028234235770830020272642670242198449527295024653950941812938624202914801446878362879011202137101951863302839612302538700479766874733483258679728880929945487790068773587824276363186944272273536338131352927325814354492003349264517150915027741908743776991815739933820253269104737885020276047593720678483235454458896431159526985067189679664042705985530169692073415834447735018983592252251449483704226421323034932191337415732409040231212265382839094588736002752920714066524126109635151089075814904491534717978904953932597211905026659788765497717580978481741948860385978286845580521245404004485935110105404155544065987447777227521486501604608161002599089769817178905726666184800764694068483206803265997663627051909113065150385773093436827752887945646656987817397382522380621880492580085859537701247286035222560856763338350157075571423260964100483600654933002283685556240038360176078312751905342082492108738088505421969471723945533424771850104507058542418977202769938858762540135768425948770000934543241843595086904810754959281147741637003328680748043988543619158224345097014534580823177089767974214973274657885627533650243012087720705524661270797989613023450451217247183246063918334020399987258930943289533468708163104734968130927135899547228942600505503009982741951091857241587213423202780010767353820061281438742842713428485867436992276100119165430227450298472159579476373758465504610623950722831914276175305599229527501099695833665480397698023803889781527457165313052187023033665956365273979627385317097328013387606313669446362105710926349424238412025371037263015972308339328083509930828256378289977280013117090716950252671841422932945523555594370283460507110591174045169239354658385578414740119556846620597638872201728806275547320689924874296725145063609607714502290208780763234705253641868600633982988069229479606662091996862597027134171360828918106136731054300243794828568715985913541558393790267412702483592705383529165129668334835514384050951117880485480415656699883601096950746313332905510124212123031653403297746834351661110348140233174317194416691376165325054021386355509074455508068380388872654994375535887668242467511995161343911690813006471408401257699646588199759896663376527024727489457323088745694413764343097212712253388388424568385780118907383844081158727699626725591895205782259374655111221276420385052979001021983811126537087651261388959850714916379928697788692226107114145563244141589289917872930350674597481331127650930833745298451203185963319904779431957043251380892264864555000370367850332871614279854397525680803361355664149801901466593389510586591559042261146175867844591115990159344090212860916316876551891560097434940802081182055542511512732031907571657118255022281503238992983302589548002994697358672694188452273841313306565440527021334393557740874447060206228295380775648798577970258869545470515030636547722604536073041847997164327794575385582024821642085110438641553278660735138383022863532451310198111582440431518518041739959906444321871836025444885008980574948226168472930679427200638836163359442423051418350506247887993345960805607298881202074704789419141429950167463350892780038978600857640662582615368861084782854609338091818178902101472000061848190680377705562512681474589128596861095562083098257075613151877118476370055761178524811046100278422219133172523585416409605962009047480509460401653165002770039950073978821347986825276037043896690434439205617321019355382100971629973240201292520815631670780041608904525572352846447057774361395210806829667922259934049452692785594102743433844887704602507175185162696640964268239699016079994519244463178209863837105068212034831898373546554341254276183556588093173705132226239635403432367177200882042663054731118804097859996957219374253480607369247345895715167838396671732317845983554954721126970100511476350583364232126021889314890164102112672717241730102390906680832651256308784937595930151221960644508758027054267357857872019048592594518986546527350905644255058100434489939712644590900970885432547482435114065943626816684853658233558456751467355761636019422497997392939711626202625821815006924414250344953047413902981134429630177042712015843272291467876546387314433880953977825047864757226053634400555514626184735538146874288785269756511564482785862188124703575644374741058895212819446611197348977686881504871566387606100589486442208140212889702201434274545740819717847313053028690242367649615255370146482642005165681121364378378896887978149037498445365362200343856079940496914902513176449062792510228966088142101681120204786474120920569844679176479564052205118225395193309930431406109176010556131555287103812846472735245380499854174799320666192487669062388692994945155306790019368647827237165460032099196646831039170546741751006424648497058003155742308123662017799752057556450130794600259532954395341931212821699676733801375504524895571274296952218699975823560212520560100247678408628125635966285680310224631400046549879246731456822508232686551351099167760303416285853462082573281024811703780272794902910109317240504802191404551713773620435297282473353870843267762558822769181372563808575868575099004678112508407819113229863744629912624856805381697784319709967256464369423468960592968487217617957328418308638460790993896774417841240135688837292800685980206777665559098889360913694589216174847928099613799121993734530728413361822333741818072267949846715884181054919277773859642448315179815092241632479668395641931079722047783106654532116000144235433302551152430786664018968026092832741609250938281564154737935628793025124677916826342836117825724692939142054783110261898238863808881287410094405297408379381526357695840039680321953497113985708775402364101062791128154915216397534622836741902452530350652913890665632633139482933362458671194063566142473983853228294211340400149990015289934086557024418153792170699697475865769209968337039471519510548180124966656197351248657130436794825821597562404030736904891608927609089391687156904293981919863892752613291433442898068209262305559172154107675591500459856379352508551589027381475305064182316702445492601250037324889531892702349281196713501746076971373170279126720926570527797387094057205965817242016329900058762563921933841501147513572051939947204169370494677142033448847274762822053356659915686621066156085818249205174883774617054946255798132250129070185417407475552311387769635638390990976446116423977383872598667435775140737189106570021606953488286295105521156399430982334385214481473132867762005677183467155256671350023182659187307987375540464785755548610125290962018253525406185275201754442785855367493860195514486764608141621666600739106481048619454649713115945325135687692626736024483559506348874664148373788463785796090269804017496752516650327405057312311641859748971224720574143459386485817986737634210112356861458107313442306723509407341654765336383168932702015688963589985365129101560747469017218152964321226804941737788816636103178013222385369816960049406253437230861800468589634585843914857272324804413502400720581514024343134265722454840820494551204852065437978036256670288122143553244830021792080639555529537154490191579767665676291321602492516430550724139351580385443800734290346406754504082695483741020246152493162127151468913193025537777457946783044154649737049527374104861684254978038511317987923767257424473650504981776393165220480172524165867666674296316495692593702899423438618483367433647393364539349231163174096172294054886488218558747877405978104234154031839620327734510458428526779779415192742806750015581494075704594770933029043490339920019241763431995731475300633274495730130477138046372441769535050935236863695517163519634852696140388133131316052708962692860379478489095561740157543215859975369176391782144661764611488709226395708314612463910804878303775154495684408809683981001611276512734415478573261556104078133237394052467798079633346784009557294789043606893138164006882802747026211993681443033062976024556799431487541859917486039086402199795748669541447039199530056393441593781671631212499846497427918610820558873743570669231240512129107244049982645944866714908440787334743140005468915289281432417247232964386463500785573185216263740618860707101677501113629160901391497803685186097905736848861059767046688916261858764428806255242142444312033624708357465678770720281745182859122055446048216934210019051322824965861884533562009470655900799522508218795276876299727277755520497919015566532616915065167885499211174082189556912128784556013523231623836939919926927949284225625103118284232391487551877354163065634420571139187121251935133788704249092302523437798296164009299288827938057888290407519292704156307731650395318756207855584977271039667957944690812386315334542522675269396189867895374076881331317913796449233499792356443914362020368362902630861334933339729797200340469327915084059655118406567057570697476142037622892314571547713607178239289380569135484224995029002452688846623663083300849538544552935215910647216910163721814766272724623214384408484280728116346028285245433363176299114089845334616282269546072615308360532867565141075705973446429962248220243509572004639242510284924591195611002467816358879783124141231088688664303609758777856526093835621805144809076983880187727141535514388815528730428621556727898943611534655072614135967227748542049448598695217774117981130614108814181159915148114652460398834178017928795043194827595434011474821240128664303800551938504044442698906736409726767714410378753572471684687569793441357302613841282404483701775019603850620453809263336337394009333598377741412396179944599601320099131300119237122483503651336122292492898139807915754960451640493946925469332342734598616284621071448047768169254062700436567043025530101002273737908175126476902033574950253049390656133478812770225418415373939230207892063489023481157070987811127877006413303836091708800032708410999393327605050350542242744276885946069685871322754724433896144025322292548252193235854514722702230090877823074905916535536378085554056239225194746332549053426434656361716415880090436076459891317690282640667762715722425746399627254091764493376668142702992823756486664598246356179274958153964203267911792431867691593744884732227660350687940196361073198759093260175130732205281879660203204741634059474950329619306037476407971924410144829957556588606437523772383809684497875039923519075009646153987448171721759613724056445319532346036432474857363864798146881367964576191245480661379104061171041639877026640277711377474418228122031445402051216840613188453172693611336542319349386594558390352291073181798202329143612855664602337838240315340377931174542323752553923954461320479964529718675758613606942896386141149447723100793460651586684225650341563988302026148715103393495278747562311109332351885074304020589549725100149634011858770173212987223050099600431731581068998881650815850968925096540754671848834604119707479159001605711381519004588702249141696685331362502220944096116433888147307341058186868937370865606772814342965856690397061917649400446383851490509372799441988702454972361489606319430486540470066096900590698796734448296633593490044663361757087117528944256071515252237796127247079061437393774241566204512451504028792766813250460790350278070463101571377392272853966830572725992772112704610726176125991331581092837658461276930721324298775600481589958206709413359199300511153482394436276973811391899802767886563160569236115812476722353577134193946041383812288976131681238318358338114424223527826210074744882363091305165282254040106859546201142727469385347418052229508678344588029499768663264301312421316913455978983985827588597103364173943272411516946275045060578386808884321581418605791063893624939364508072077919008301777601016123065583475952749372592248576533373751658087483281476032072157757456228170918586486374773868290369622512588197204665187230946782208653644634119401245209500604697942882517624162987355690096146299418123612987516098510298600789431566675725528609100797345004199025089016917052142562913604008440867874438266845905757150665511991982432945641439648883301862094425499898647495740682323378750607660094543700420341582602312699732887497977581933032645814858274774387197325925346098706563517251687914871785397741847703115797507120590749892070771107547675865251992851134026451097075796106586022311942796142445223956926827600813897274591826094355679361859298379294561106912081206915700115726886475092322052457928189649913189983506613547368085689027234680230519192967398514449792842518162730665139040431428074474889233871767126895328858660911452928209487590671731159134341812096654166248445058039699932408613322436670862304902572769895504723003164737214674595640430510103922583023075560725499998109301183061293176114760360558557153989593379942482821456421813113677514275467272821656586844579469213894626493930449117399128921182908137782634366638707548525577715679814406505721254796221946039880231054935515106836355160342917798834552765153558084323530874234111008179398314652811886190640358903733095120984426215392065654676002616740668662150931800844226983802117500967724006836480468710851571343433674305222102211711889708872392926082508415981517938330583213420067820530418553166394497760353231976383933035272176952609595334709709922286801481733987008238411730718377459821142711953444094811461175625739540084759710519708899628525768522005951701056895359709380401074681170261185153472372698073183545125795650170050699886521371074187557391614752973646541208748402061610970551804669777871169478296058107742723051285221054833470748349715153541806562684078950455972786521009630629194041015847993657442362208022122853282988843281421520936592837366847375888445832286984472478379393887103822565010201228740515641514764063773072068191512590548322537439976923605887495831787189692865129604744720430032444675190255766819951799564062874194710989047984356102615862251351424365188117119442166351693277343061938617068884491354031699462975251956487042750052160279505600000432317339965284404737232036213081919875829068244555827182410511579591832948137511193401669731103154099138885164478933970197998383303882041690306813728287978575181726848537358722881496036023294950409533545327174293164181817638395098149626810759432853670948900054209401428746828157376667913294050102947318254050603709065795089364445516305414920971875803429328740069478001292294451097100436483605772773767269770405990684423941363135717338259820005602058423291989516530960450290172141831673981382871129210119391292370195764526127783537059580723054374792420222719166403547821494584362576408437712925873740288120414736697586150994459934397025792118851637613534316210908575543083899936839861710543523164861881200236636804816180539482533010391797646112887447048562303529505863182805298925873398131746974299446511449133906441509279920631258451245930024148431050212147266337554694716955141602482469408219505163924207853390075865731411694193834111806369766684824810117122375468033818340855379242132919269501436186480603332152568010009859253611090702864381309598509207298595747499072316296243968203345652243930928627811586325222877280150338127644582393234013546249875913701566609772088087773428948856971950381901138588657885823782956862494699168429307680945814101564284638922074247891188511809799529742373062717548502063590485526409356494857432858269031262382909830270374727178386548786677795665097853994066941859115215848702365699044990896074786978817765308470825637970383684052105427504757639221302907944842718489799508606185367208357124927640416502380213277519490619845639025848984079594545400576533816116607304351166269977417742532496078364293920210653883467085099191014142487298662869626368231161913233312806495830856224961856617186231259212213690111565485491103205174393474760770464536490922767768328122748640152479144194322433124994603470569109786780544067431392961540927316245043134907002155673518540006989594410010407063049625203496651672569073707096817231293883386211151426270721080684153390098790832942555136301536221860473752439642505694726328625724627004361245674806285528367669027488973747020537684363358817312868279010712076273205670687823297492513424245657257146645418366997102588987028556380679677997131980648630055862277852563465712739924231858243426799188246916577640236524472304666023533426229582801861612449519827619791221568227761024702732478780900423480938376781376749362586501066193638145445784933966867956694172807345126520214666698583846736364083977614988418103744205994854185759393592426055275320697407411412714424597765300458711886555689256156691375167383629774011224140836798435313739123122325856890131565429722169241195961585324564062359831392317164064861606844548232609016237611773037732136504005606761224901532788662347867665023419268807290390739110237243305329156107260340609690410657633952102875511516795597614626276668541497260529882313657926379953154903798946150524954287903476528984629826933580733535072500406876886524618495901618766845605062944378205423404796865568352222494299811652920832481151976933020901162506448556454992173843320518093383311668093101322344483374963071837778605533125702302934576210078988468772362042643563447710937775497682630516844783536392663501222892309444049551964635386896642998285573658862483440522706322134230906715542964412273946110289581383872388380418527855587366064767569380358654217952957048646113003475847808558495713770562408236402586456735683620961798377154165847934620821476600138121664942478209349158713690559576176242384645355928347891388836862172562048496340240521556372935081443630445510143402815351521961462980223433929593042607249440890075688119758943667935057702604309556690313782940379976697633207646744454913917156605458282102246433833045992885469727294933289997599738267382996586412449819351908341307504653562487910296977518403458915830241213717022288155098786010285521845869773232160063129316618991080165531558449634669016748948533433318988501217651166139863971436888059262421765780631614054671434907661991193878174414091877408885382578503696880299844103398950342493854132273472260548936606157338460210620617865551765643669878607553864969165831398025080964930746609682737242621866692591774806205562839459469530825951999235383194902904479672866578908321255951145212300380265504941096831571326366218371946492115848455835148891899571332228576508015215685856025811636146195319111938590152215351292578500267915390278430397239204472357397962194461761478971798588600134505602181424686070465834144899226903269638609619688985828955273324271456158197313985104854331982168738391473763777671485212077520063583347724981151594725108519437375174620695296252204093389565706502592998669481157447416177466074099436310008555083834185264680615798511843189884710232180552893022018115510570093624259053009169608054781730286113195949203933577578144925940984855152373496234812074618123796859860108137874208009036152296123972465740145665362720375999442651665145722858583818917576039905135958471612850986515368176057293290296162024842127144379370150783946854320828347951827467529595432218951762455146251083197922427017471295058691319871584171691820203546453557379181422856875994580857409415902728974180125872601406657358204798582454134940965420954565009374960361737889642343560593036146644524967743499521783284426918021700767034977749163339296839269757443150986130878125366712570211455459815622446320187482692226116456157077073314370794953399313839772045930078399987868420958213233951830684900542429421130409948186495184598601151218661903009116664656118459613274493102799165145099036965520874383617667183060400532132238570698678132747923671504395379117059334497503953318596397744182895037071033572036366166835026280746178190515825747205452437359511008975253419104723558318267495687600742014290749348795185335783972163552477981895280694804498384685947520849782467060396320064774589857955468858072895000496776701314345642605326986543138634562460839175260057444242126264111313137840598911430263542290948875441892498631205696592065331327281625051155985481262087046342728120781107068235844346170966300219280468088228057124195934015034482334905718903873876501778268512667578194024692693711096523783915993286786094445915999224643054440346127864769471943445650248251209727318982074028109219564004667280415698019995963680966364711208643127829091287913035890333594696952074766683814264971072417056973167313625368019285511788373200377993584197911022923512979796253387469497773244192359180126527288032185131353031458700756440993749162915460595807385624561896927032201256859357134320980872117197299881081521355426661540903946449374212854006897808743716855751601159525835769342824928779207894074642173416817087800211128739792375026071456268246411537152846545576978241223107201158469973159503706020846621494686319694635767838997392440041273603507457062192992444739006071781658399712146196854586359400681481276296620664883363598589661653275461685650045630163494940531765199595517695861902491579863533065794049030298753759176126433617507882460793432860790289576035653861845055055905753583251872416336570442356854229770544710283307713188080130769806395519169978237397796983455404817856179973686357667484970289226366168532256404830274462456584979366563864851649830714826836624170538400724904167138649928680597682810231140942742524325770235625278017988710058295070305492702901170499966399814349551089834661788565141880729839617155213918222094320238659565190316009618538282676086062516551259751977221847938483004179141235177082962474416374688403539217839264118870126619357190908860054797065856451234228027563700253869031128899860027366060048340605463151795014500220316687427235149345046567043336656865517871255116965485674232330964807214235697235528715602287661636809391051118839997015304620905745618383716127217559841332649801208316482550522974347017618296647221987384977598348469389807854685589863562325761633298312359739579515617654147438426079804355165915642712891780984942313195752983840348488509009540272964294446543205698040686470229734045197476956463623768867207822159520362452268385391159444398485768955694549203427462139346760332451226255711503471889673904043427682043062343302702213858847358703442502389373127826199558395210583401884872844218756711640980505705701145827359636379947464840003616678227491725062876426064767972664046068666017908169515436518342343599415872557435444167749834820080679106106279254544569662535153539010623585872480766578263489811211046437923831685618716635377508058453560514568278049846211103347791960659683354645355158743332264930150370970545148681527869161415760260745119148687215360657422243006628007579887061645743500472996836552081115018965280820247304102917328884403727962954579596174302987386168380066244252954736409540899786347647512487080675805686221147044177696525863426699061783682173478839178193262519609438913148090822242568905697942538183781004288339083233902609826723881995116364612825451020998126311607924730895965348816731062282548095639450184346324175945898842708939241444585728081067998654009521003063899729178189600864927668762868255504603304774417496248725378973635008958098736763399111571889012260282737184420155240216379961256314120917504384966818513093303886089736964453282225767093281261242974774672048117704116441314380335698210718438567550849294404926531022984478860917433010829641026431524586184109772956501084650101468390929713507642726496809240497538292486113892637246412144301679726264922323630561674103061003813165086772433994437116891281379972006178096739506939368781245291248758933961399604332525573682990270707555394816560952561755051194837990161860121740954448567908507426830117219542032078484659924349012503988218731547305953691123740969345152243041356320681541377791792332708495989326436232297387219690669312906053900008377001825322649934677339249822741943897130032122196541618330008546884987423422887061426232022716969829719065436635693059510880615599225598989777383885115793046050349542077645194805793114800723187526187656452641719082973406456271174151203329621535618519392741960125323086598034744156281115986272614318422613140556227210965982663399295050843891776213877577498637694700529664952138414014470349522538200702747833008491557746667318573713869310855774933324579553340818318454303789931429765362754975765282628609322487829639331000083508460338282504860395555802293763574014554723617346301008936468185611429937527267506056109658143247118031311001693757913793259354922925427646182595364735989476993524560406896134325781128243454946298256848877226888680589134418531180832253696687985277703001288206643543017285478998232431693158933641969200960106578704967691355699794678695925974646737291073377883728590794780696501868908177116653410614081159069992390925558053392136962989941441921700001791702137045667369998925023130668542627211379368979700856430469739492902141688476153219659003266036312069425434103183820542074901140655478108392486269263199658623026431958061838104062810505270060417952598847960588582742008574733615947691406385035230078322976829100973863348891275829500994004419686126543886217587325381236224072815482990320097659290804740178448908211775144700803326210060608448546793283115562633500315629608638893580258595921535042955638784772953805020054255709301856335219943134164547084763066735791343202392431928889006792470858404277355382954432337568579926043938940159580911736029194470847074560250198270759231634070218343788856072983479581032574586109665217441280925146231328481414990669462432422909300043264965406543882616556416851862988157993646709531163450820382220892150291086192607029923349413071585530979606905379381630246980913455844854112839119665124728318404782525940110323769926824684815509020762186112755612786496651513743703086771435272722544934205234719209770191786472716078347958386502963064320654732803915852110743996625955544097833231395967521904494873972454911229642352476381932217633097838374278997733372954337303999522956177449868871989014763553480481274339397386467866751675188219471296569705160937324155491874326297186206694420297813949236533754381371802715780918021457927413465035913215003038402230625383788481083087455856887779241520114941502901788822792965522624186726692417274443728227383142785923444225287698354398826019051780275321826724972488400712124252313579088872180690441404855210509279878283175376898995935512590223717569432139118687822397796460515175292390023738433655446998549278606107212088024430716316500710457945914800411926364531818351574464336847013131870441979662326936394671266906162907399775414702675420482959399170389703071225329270152674463476835369686372462502345326197713941245463998283416428779994874887310167947748653846058132858181125395708773418585820620349771474819428887843278113996200564641717610310060323145554619373871904449187886781240545740882869092180355487363129420373398907406037641958377186389598475933002154603798581524269556302522985855779321028853251992271254323951918138980409658996567332708537099487969493839337565443216483204194017028146205938799373100026226479314262021094724265011522549859817288973129667900305789425367591400568651313886582693787265487366704887460595655821156063711263032680158414527747230129405885213737690475250649644075553089983153216851191948519358734388831281732387868520320858694481663524226237011545483838714484172711801857428851184309948062634073899070347498053201651896728178734587569421810475790062488255165876717980592486619961272312299866638807974655730959579521936829205300964850640778117894953536428602597919541678358568423896161911925624944317470665052155003640237884491607403238485454650662906921598515824935937206454600419071208870923390686718205609378910129137002113139308715146957698695134798610804026800599951591657010913289101427737167768733878143940049262741772068143169562984332793123326219791791700512822074848594435335225221638163666898118397069934802777085310907118533149809219441847891718278323886283037616932575665188960637727469437121088116775170641870055921635389394875615625400207031727981566134691077888894414867363004614584189008701183996370461030115939244092529659557474071953568876856018120274913669539315230067712311835161776373807757305922981624636672443765740864612529982534758897532300953976945009043875795122911408930675463529705345856485678835681488355921161355884569738588293909417587635554200384198248177900749015726948899243766299669091057809387493313856837408626174491692451499450547931418546474823495807019102651605307108904092808657752980562605983821794672088061204659654782350258458967493489956839687809009532561347854558063462050978910823023308984873288688792848636718587304631482509240206982443505845746649302522729657363867189559593353467679146636091552702161218171263236269282031536977799228791805477262657068268870684534556601853738344716856631637778626652437622968509329049370346015029703629330194354575164598382965064617842039978282113003968266676974271005793986303328029725079613233411716207963394706293847220064391026231449792466595489921214634438599462165250410451463166516688527281243007394472843227973207117211683462451460697455492290515776784650269680968294398506348379098243430879977972872893924983975268740688796157671150502312847327087778214599604882731830742805127681533752114060441244965000886490992687262844549817687163621562651633769547284746363125325706842502835983388062565267800978967475573610905191388466998777758467677031800219065036251645236690590850570798347746928588158692580236019203228685876870444839760537811077840849250477460126649129926815510183365886738277250289411220938228275206100089406393973306154087436256762713460007074992989289032449049022014056050144592185098527537451743395289100696974349276346643206112493237397506968759948034856529676288064257268914338039517184957097955386012211301857702115752796323865023881000500288661026747158495494518990162689504104908004152692984933569051955825982027724551667263490513670021851604192102011758283256221952630441088919427113982211866639111067668006579323600053333409504765398158151497730725706930146739369822230222945589435245465315571006547726944914730467844867372647131640543979849199904586854299636990762695288482174565441426974816387370020377041033306877150511596653063626048692186575418753984298057161225204408310961570273420043056489077510293572706612533171028822979452394650805341043053642536574853482578476967398540772813602261249163531561517497789080440573555835225749718225438117650119967799591074843759529188376088153203346394628104269267362046543769848808435132431621138712845215753785078913074266459661941231751006778360277571866153324841953028980798990084342163520936616552118112302754772916721149264979430040407643990331116596193436913244754134497732144973576508843991207624810001856592267359410388454126896207114223019254901085813227581938248580210588197998990218142490031143072938311857579870008319506460815640934516167787131702912622713494673635823242096965131698711341125748048777401226232391528648111295633305516551799371201273864046836497230530137114444400773454056797421299421495867979556191542593063404828945084397104121127584569007699587300119396401430590646667795870429190022295932789961923389463533630073148465562413525713865542933893875728944482389581827079836226283000851824501714272857332528812660980525403829650649348418422562757940820265864375206669375134983971787273989130983353665824487147174192961500953476178034697195957890203237762936179204878775248766404474978643742979797577953976135979086896855301549496141593194844561894172060117725130165953283299421189043775542800837217415925101465745169512016398845324020780272581134802103537223110226146844113538722737801167083891292313158996945560455817722900189163258209855970801086691360552635965803415382340264068000488945590078199090842037867024394490597302583483164222551527454267384150323731087492559741797105031272264127156639679933795518537878596204624002039961337932613426656172105294049570330582785242800135324642865087262818037660129744041777616035436668071847872387600591250462450059416784811460625745550022308850948897050591349901410960770238707762429723094733121737566056241227530825189383521647126253433909799525574526500700241946484204088981525365344825481408559899186910077262124005365883397280710447697206642662903400105732684501268544707967320460819190919206012929984921770067829763843401967035131865846954531495853649504153249251691540435600107549212651737762456220690558401102961584208089179965922522703210088519775619425319294854293511838604879402380980308293144610449700736913521691905493017461513863873794601942680253951824741384093891754727488242535213099370044675594173987370368713424592014153468463941819360992374737840552908990596761564101497640068034431378126317376825576138797715127148494557610295449345819061933519695294986880543645212657843104073513767443540584650469890849274911149926011738613125804365573054455409488618724831910710699517733020882814623063505003325872706700558886604183235138554576488610370307688823760510111529505573748319462958209452039470928602894616607265254238823034253775972806380985347839050007692128135355912393618473601708589249657534665813040157162460239076868614260800894628398320757475725150221277902513582328522072820433368420215926873569405030653112519061660431838588402756610363226626580337036901214227787358058422938107336341788442412668037394519361616036966279139210981677790870929721392254581269149070890338347136051982216620184837352886279769264596550412568952155358057872483401131551751440897080079073093377963223399170142845713661926489249326597355888298955614078941092108103078864627749528824778868643576603347144532484778330196692980010834397341042153145925962205880293098266401438707529965952619275767748869550222055321879787852208394209860576714228228051817815184519532596489549187070769225973498819983379830340554452572380418519321665120554019535137259793232438528400027939598291167553908002155693695759129729247050010406334120565803150422582200400359385939505035363743334056834206051692073258403630395172700042943361151934985012691927205695944474488106503017770995819577166934617261764133748920613921773716448555449783649527340211426142347909039289208679378658424272043632686248469613061018649918692286111449511350337433174747747142560306389103952223569730034840010461951227048490486321472059126595658299869126660724823533853393886275649386628001974528784088460794633030609253369345536312622220409977581826083117805162088798327622620527168155236351757030119576623348241145166652659057131551194500385339186078405179137039331056041784346417711918387617771494180715548228799964969193430414618758600273279797808599187172561050277015795569855611737994402637403475634013592892713576426594857659028396826130677483352170210322296270398173593227677553116579021389604294930047136485006781454633290363811449384904391512692533454030321333848342299011731042957210186346021120816942324948918822185152810314490494192015649229113286815539976533006174683950431516387972193397469522831058503718695808240863467731074226203638267941289015777658323357119481752974178620257384700084954126696982390164909237112473985066716870041149952322584021328518632279598028187807440499460619951845175277294604255153688618688170181163470774392181694898648611730546058435869207742368289040489656199100063286204735963856458904202295782265909731506323345438815573777208189917601798197439671853092751664051157740482810192135555886469540395397080131681005243405797557418805784738699127448243081120931347752361852458768369546479129739029173156003130865277730056801823544361175592818444793862214134846554392992996654101879099856164369957758126946131995536486372034596178834268373510486685401487904508463974559271476308613307574882528936871582534068312222197407578165059854071878647469370404202092171062228515579584761472423771415091048073856497201972501614219689150017157559020729819173874364313262195864630871092106683059437343701974436935052956409818427480340641480665196802843297128036608118740421699319932227925146838600964254681921510945301864783194633223993581207672332224259723400371193503203478365780350108892839715874777685005290446386309001463394147040055171108450118802293820902193529041033582486089291651546998248429599123418215083298514720674259713139472620912075041173320312769932245042492438563774329142602671901106773005569244190224682632358321675232764977000408088969593844421357929847851363997546260461370122752091003563996002338270129579997170625800555825639085430866152424187593243719474078395683884005543601275530192562986942157239464749136187524667605912799975985456761394525835536616435385209538989347383829569825582480263438829606274603387887642332435111419269653048580735189411005747684491828882740461765544538939319988547183055776940294826414218349889040822251145324342312335887767545592254737668947646262230816173160176893369990934652518951740189960835782955671321828569490581701184644477933480649370548404252679148376055358973149645446008304490582870179237772432008100922399296188152339959846510600624231877408121462845801127476196573267152113046688973782135759767920996481879756850377035637008802874659264027548793232780288079763140898908211523480144279637928027476418452306011455291301556325325442045700941118005077655883011033060800083764672358548314828640947178058233560180000417093704169512006671496139646216326600972241181089009662108472682336153430360343061355335653384795371532493656210363905024579999494848069860876858255563192450969869368644465297701447630217648662879054309920048253492383784399943851768974813154899311228227220731696204987722242604724216455199693179745350563378283740759734500763730669865554044159859702061664641210078422893453342697993011720191774915370265348050892709335459145032096718367311443951665667125256088174510305021435071241184400599000939666197402834385872817989350910111805533111011724127806856263292682842689813702959671955153264358235884801616171045034728579337141594861734100637879844180907540220009743221339590358679315793395327002077176920226026715536527855370981283724857980366327937561262128863807251010476017294000217984559332461124162862172503636167632910026795453982590836280523667083426471116375250347141812370477588370373821078201883374459573267023936776865332090447915290261166944275444718163219057263993940842284008587444792140389531816120065051624874766758519311222606854029565580888127593962509802786521255591928374139818269017393055343744714892976256358785075291317232675905331717160498377054066810972285009921839985436527639780429919288960625314786951463800406183534094031675454557076770171637995935445348094079143413554973113796390812222392227030163085218246651743849558451497635904824875348745056513555448636916110007726539901903418396447169273793473700351569217402620938533836074331340308236719525942344718848988442439493241123221042673753766872389316296808777844564808716944859064248096272190609973697379866097372779206472364717109364180817861830984097516162021078802105185003054289962700992346806846740482476631386594698342460068061417420955849611513285334432576016440405149906357720279280014411744763315431452212618137795034624618734095259317269858891799944492878269310501675526577826920673939031972900017643203379685011398601382206819508837961332232582792000219605955751269566135967854148787156459021173131002769593813443225742984826142068763965171751869161108920160691339615604807017406932304407207425982217770920826592172832502408701259170838235409167347250963529435284703348698837836991349916060418091408811338483500849812791759624391004759758584949849546197227724521784180679950019930824334194975729551937370164071124007277722764114413189311451964695261177110000375718308703796893013146184839861198717165661578342588097119568100719813419841957814302414818465957824970137473727765762670959980286762327487991923462893908372719876983171915711195824111401248595584864661354191540746522262196097037045207628636286689945297574400694265036697062824162929988115201170651786816911012368687802639349495089993330120783533073506401388532206075331795036174033852310806018878944565211833932474343541883433255164222476867828010023743140734454862789378728207896402702991703052696454177198776201644958416443937874330926446735661850481410992069180801938114763468989837263213925010563812118583828101152723418085218537284876380139120296828735408087406333753310766445930289972778087966710981470400076076738440943350798649468243348781725283156320377627045618793662103245738035798102060942714082037729197091536547353097869368324526119860549542780668882393384715479289874193814209694659758123071717747410619795191594435033430739180022620904999433075400661445776628893640035534605707384616784982823487442582847930126770365715694787908082439259235180768172987424474174697164286827726191641642184440903079423171765326786569818341568287955020165866537781441911140300329149183594293457227424815787400324765177451389015080610676200744192871957881367371885725287300819937023092252083513480102107756394989754680331293840860308392496779773016184212985699179165617138980714648089824141905572018153081932295946502873500911417163668154562539245771789723212774171162263322027115623159012657249360600033583926349677329952736188738818524168921088187486885000614220673373725713141361627626237386242294086283844424316989201263470660415139254106729215768350693780603675119100086338791557228789930431795004138692339803989155147435694821260213794229117431394877805892699329985163226342248823148569892063151163523665961517154118872108391245081111307827031453224509872832694808478439119580420546643709861160932920041288854597570843527247889426524217099690337136780682625255125341296503416397928027805137252358806495717595032764247152889658490478038784382713626225966521394222747561501626660498963902277865337602439812827892501343222234069384427229957589421297236768694615381150286787624500012489007401979295278978946458304274140331726080321886094077717795331461671921458935024383479748934946624732640678112867409501977804912765288803891131303631932040895978320480777796620361583749926777163492967755737441263717993204549867354997674065676052700578661729323962660361901742782428984533908064196536038450664346346365635000251119333095277203773587046957917674681706520982352056076511643905740194450251489130742702938907455015634292961909648796779680983882427436427982964324161064811114005492591880191437766019118926253851260871594262858444667824615504903120210218010668215224004432779466784159860067121270392396435841484770692624278115846525744470496083416744516461205007604799979465665391791622048496940182398677357782398966825080611238186429049781777366517863163412620760924862832222758924198965701857783468811707657908263234112027801219578909477694383253090743455474824187908587790841006801225444680914607627594417859974526248437900653541090811103242531067973537416428509554270419117594036947604726038960513133859111022994021783244103095156617124419436387601152621923146818525027142580255837280134399256940698875601448744220090931341000354116847050353785296007027358640203914008536351033716107993378684449091132922475943573486432446852986522202655760871267608283736572880235822780814709072024055220778111191940241319027529700593719146217960851924557509180440297670598686812386639358430554475252731466496507535930141070799506378723871916751388608437554374848609448362930750467744631149984888749005646759332219461355656236731397427172966031292751782313485823992863760638041564561158626774924720515366994779360633030734854108391732475374136998881864689143423022290346877160319870550731541184479810379899837460853663289556668338782275105015089542766140511996718814877469194019651588053807140075709126447678738969149767854814366484189355324368374679170064782800233493135664234805253829505152285160011424125936109151078807953183339892811890777539005022027897268840235307633611297867877480439817975333312107375320854098842940675675013671290265498842174739556198048439897520178434789669715258008706818394306030000131679827658279233294520940239469496267894712937769464230248078422832522520201424722616755859154728516812847987948168408959862335448687790237969357404285315081154374229458230745779959585035939672424796264967705842727035682327954391830650406876496582174023626658829067787658541006506398459220138634466183433832484953801060438010019686174973011191130913673702504815619770330238429237707640311632727033395204870450912223890451949299100541218267768704310790142239049773391561922282452933452670278076127216503407478099253424970181657823546612988852129079915734232088808943723721086801967263316216617300369815698212919277154520659418181617442272305587564360667995069591552023907975516547523703789873889389195264873952114365519105395380079407871573471164469480175824067369005477659069491865674713156444948409085271880064390487564725135033602065531596541706863109339761579076316417962623593170161976636017718993608294437281183687642592320132255608314806465165511104174194373902897376632792102067588698775693683348962086606885981497580948197401406361481805922104449744595075403909471302709379437227527353949176871288349148670169232090495101802245150649519327540159970213252607284598250041554182897476835744062361731422303847714390920491908238930663063657871724661790200160528618588885833570245649547274343655951393678949404696096573996508759731950444061861457471685645640970678831461047210935909671529179976983610413060011636320172531915213506488352754388446732162616968596800388363069522520914810376405875215361627006496744985406655282361065033077313697973002667943937425343237378041152788484303754749052177323232231923969738241313270289539390285369269930010461494471038385661986524595984968018505736399737773537854088064784392405058892577686407009335044604271791302597864200969118300825150771736757943458507644130052042117098320677316016583338840756131816982844702507616503558556162774226759489546237887842826025259069661852385008981887747071509893512494642226904356477483162956606956096869674341594543283026333507620108667705587492053313101461635458868899783284615941501579717392417463768117254504819276043001782921798454045808446558793213070562374995473586513071919504697901449744392981968301137608659853391672687294376316849576555616282624334654610387233966084228141120521534543183415877353589564028675043583539770945030635421754843845982863204849526599109729778328544708341391412976435101785596969635252581140377637109391843810918129158950212125565224020001298963818861004162132961879663081721907109715193721043714835869205774777952419837784160859516746320158265972795465873145706600546407950488153042993071678628440730188057540229199446383032986559329914770359733286451115386154158935204016353750385306087257440458011503396628721422639806502640566290058025573991878472843346670786826592025056566471372620802339059051459413634100580711830544053619910700749709195540009162570219710449101577985164504538420699997279191552153378304542566834386700254069184971276800220966985666267181429808199951423124439574754810704424628903921980558302053979819961805764819333892577767545338716841852443432889927587551704016796409551297322349103990935588837882412416585219748816769800965080561623420518685432036804766826947853260826009539260172355771904425083229611473502299522473554399537103347838375159243427185839785868778032209851911272861455811542883809093656872828913491777006850267392846315432564004655548061013324475595069384780504743310181282920910965483167518894412156469136953239087880694377659236333164063248763588822798010120800978396280143368811698654827042261880965304290360409759950090988897428636446748860638605503509500977610655931471900968795170391196561322590094045335626634112077109252402746621277833129409141432765325976023008361591271574405724407424889115363882295482101209654434299899907388070124182477931125788186930013006096352244417698333411662394781594899233073300873913801981974281520220159324077694238556184502048772160396764774414879865869859792994911160860907651704570193564121826116609172481324758283384647141982149779352918649640827062318576426723082207776223017112347138685657864441897755473133911724270743576893952222799680478912355712042630029094165362235606208770246425591702883025790034352757672677939280132908658133532287108506343990562545698424642416050738467412767573186491423688861877875156802828019132587224597019113482822191081821475853067023123508867201863414522610309559860778185243240409469328971165080100780593876552331456208100647840684191498308171010099733816784043709825678670751715710409337336444478546563142306136679106202471633901759377078515453917922520365069571597399997208079181091654934933526283033708583395595059573200594936691602197249228233343550574731584615919087895732413534625623356547847468559099514084738052816372986735738718553289795448651954782895310724603186887814021736725859925183725895698021455772512187654978926399944698797517789290148936349256890023497142173691196878254607388320934928133233910942200471981789708002633755737810256098899797419619892717769942343323182416763351333219413036749480926078107385749319535879827627128426121303056412115403646352941179231878948793037954475934504715494154053590520919963981493924278550407820787835702536306915358586420368905477393432340612908237700174608837783412877061581933396153188769351539782984473134349394952575028231442302484884357465339144393148488365356586086118169108146816891903390136409550740095294365605375209674487400758882521557872714855273369432063875381323310432742217831541991023584251369780525579459111348074273329838042443296671262957149528589091672902463060233075943151620277419396871326293396945684810098417145004841631392636758401438591383432317230276196579903455107287717434404714773227971061028047842105745343739301050587197050913254905011828112742985107128682907825145333855653963304382111455897083516792829563484828888420902472440343624750549424333171422250877556935555180785866317154575259061732350835528168265649080981481526633008825484502396647599823590481182020405448230048212831981168669451787483570742982925164933728209306672347921761463500986502817060376667452304529474309238552390857387674797601857466999350411488080315635827377761934713631525510504893288798404835937550998633372760775062884305583300020087138537549820448358611661007306977517216377013672689573924552144031341148959953968006730124063979712071236451998691995046788197421601549741272322442833387831246656054587874140072503803319792019811854897233007839680720121304694024384949699956114975258622453035013493943932676556329052902985221948813937723806772668923517836138093780804822787278492254798551171648046778395855733118924969599766462706079811050836996453370932479793707525530773581804980224520763079661520647839099714887502950790763367784850763244287243240157612467868540006625447975833632309875963539815756063850036813796818208960105266600527991888168248872271070366770501537723814671826419998001426829724069023338231976356119621170698125767452252482585574383589641931392056770152975696194956622319115461376579428676930899097050218858565809455881097993704688942232243103651782741663691908748553810956255196036677316621889298080397649732976032282149693735230112397617652713879993701664269846522005104553039422431380718374205247835607600825806855362366870897162017555382779003713703563982006902238337608368580640384974537818383325820110548368624486336072136284202046716326127149539141868730047156213362764719999762443382266647258521729034239499790087480316031257507466237042375996352196061873846789598256571762215793007442080560887182491082314922535306950463147811602662326619803052949476355050155875717759651954790627883127968832270407227516402707191182311164907632333968901432110840327730585525007757720041716151747662608055797546819821916418029754982746340803314979033045542089959968075740889641989825350332291356986795164015418270740735008237201840381697144051193825212389258890499259320288333588511618626085721385506680412256958058949861636684750720760183261007436087541116937744002456512141041864174602753269891120039797873302565401766264793560217942363921048223958281698027956727153091592761684791546982928248881525028110241182200428738997458959071468787876998198517970944659875864504382745874531772930235738187894368874006310578472708582202480185693244795962064860978208149186271274141089504028754871763189077228871655122901657181154453844358435015475524401082776029615032887067463017860699156453422188592583297777420392352749067036400577785928876048189131476212547716008660964344363418426389628857234196377210466711834269948894638864757247862000136882831313526192803044995782789495210680099781839043006711374674695656467648412677214809164217778302832183927976935286254355799942984294702161391131921977780653266648477751647584157088427908259862091327477558471643556903896776393328524146901615986169039141810354332467533907121482849750123195032866962743243805533234131778591922882128826836834858017597300387922193080831554171685396870905083536433629039194789030605061683743059745525922441494336795804440783948966541969393807439760761066653746332668456316727975711100051078524673618179311861496337001601019557384702511698356649236607070160106837045340144393938549870589347466527815752027004121841043045067047009918906518289226017349333921939160211364486296753810235520272998821845446505202519080924504271281384654915099406047306567563913899857509921596673182955371279985115427027405494308372706840314378653506828119424162816241554233958040990567771703205610367809242657132389754779959933713941810389587075079483123742422015948242118642321286385740424315192975432802934387952254127935118734321059997626203395782907233634364238492862268320373475197898390776910930195977571340316235985248257890352598963506708702740188049509036641389333633551302934278156653528877753819194204360670578345532604447568596501344083483016247446663184425594284742763294196156204919411858954394238164806627012848688821557581924933551387641370955064371785750667523288912424157149393525076293230897591879531060906458349919221164826993511912355943690283097878732526410527831106641074140728774143267091901683186584893999370333295550015595293192779311082058538308418232698165684286678024024861902024138834708610463005274278431827201028842367899572202189181672082145595353492182074235681613743920688312592745235423679242178327953328751348645008728444794940873441774135565990978526650883319446567851100885445957048985788976643284187757981769788110641673467964493585819910080222218309784471124534607029347355116868266233167799896618062301339210985745655731122779993060933344082411213935497041380597680385342740424707783032965359435677014779419156290038261148449141060491054573208581204581601461878300195210501604640262240059511902562321300896397571076464303801856906759222769381322187959126816247235270319945763411672548372636580632751561078588649062399607015229048703752235352297865310387016794779483179825811685047799902007111435842221665735167458851265375650525960578938965910904788715467349572287965771174596913218907250249325469766157148768768956229833134862708886288443637908514182136642500975803382321783148953153504780441006460457934557363674062182409428254896179066186396329594909504608436965419045297829034655839063253838829804583504606834719015782475908274078170182198130924214306189118582030333946437792043364421301269826455134419860204375028969798702227216124039133338468545743224434686646305567045696463601891748701157349331548917385269932950201395804262936422611006675434945277116907656793575876027988582742031192450239498588537995334121517251411815147854490093943660604454916026792523097502467358985523249568121574784284922067786848280105208937948838739279249833664261984453831114491842468667749310098002353752308825033191079475972784982046713544291934796444142330705889991429667162826615741331174027729141207574762349718519710143475169948917562149404613131324566386255218820107204065568146799424725893920364779986077372010819094541348365879292789236486703842621960169048848468501753700805516795422894568162591377262738591542510337590383490938365603019197057503173129799550771423508619060477479964963255795293064711547118570108182060657548338404505542779586202218803915556858058524910866002964555352908737206124969451861306534826966113165928011248937117112341284991173671354847967001852821641060581244356267022945379444216697499013850570777466932579950144295137637049061408670585815629906852219085277991659285866885862193338391672775769887214606814663306544525720077291556160983497035843757852334846673497727384500727223278792938406227162237216991146514040562974603533063932853445275626155231006435759234795068993765498480780469263918694061469940361072106282894596489338598097085688722599034979969395277437436019892571201829977336273213921848681262995100683710268954649603984030082842284640018835435478613496015104283295683294962115372957457538634297121318193105074512245375199418683276987254842030218164067550381413222908722434483333385060250816468465074331213639295042594706016642895012357261231477832736067975427456020346921580066727825164422999114287880869702636585594053185490422390522655295803639753189491900200868213911701792188198562728910521444551096437484684449984852878902603033917232424298501478424173696459160759792019860250265738198255148043288961747519480337966289391237721159624816531030307414025067817408337155268010407579528477153783015539583972805783965696515146139544175115909025151778311926907452732742508926379220295925506289046952172696429832757495229259925143340071953548562846288782515944292851322896327072298580302729294170505690539842725033769566201031138969403091871190694295373736983066466351909050558361861541042582548821055244106767654066015907842932824918071187862002748342859272610091480376626777344066438160765683795222869706753757111268884165248037598150657029038034960543147505841575952521332575591636526366456907085786736068044181400958664236602354737257290356706454678720889892890671879919695089801151222248802799742545478748815670100998489608519401329864379154407672926223849251017960874112636434389437042833725418461240104513846718169093940611165382683572413790643100318961482997369026146315716227207547346415778622410146008637537769462353858427620299338222457579274472656509863378814199147878287335041227505235028520337283769447674845569014235967234554061580584533591624159722909062541780651731288464746845716670236943906774382633275853935118419487777154459097369832413657973614225642734208379088854265692493897701397365593146907567019631736967825121705123387674087141609042889433597667591511998838044321566789937278562470350115070690606191220916706411448353168699117360448496940975797203482220322485778041555862486893757649366183231694082371391202486653474842252714190536391603249637896883612747377677757612713794876641585195580210330587054261897182147431136432326284801348703349828297834365297041265570166048181620081177354573422095347746600663424795495792537419451186325590563575977756263233314342433512800537745756898288755600721558153328199061356624080381638859400997978427924782224113275426340738581376596351244077850449751601719881205511696157262780516983798276067598829315936929388149341441008397711456536075440248424460454518465818678506309681435872536741326843688041415253388161266841526147000321327707429403843174710164301635455526362725653333649558439173695314257897089998018296976035106085543884300532388700899158529383962468176582487454729424042891388872993293646866424489622344781698111922785335339145560220454226712611048005441198052295661310873088722414928230182260615762301101814711748409875368283722210524194076464626148334186669605201463818811987034369257608042012540896356944919719821066625838266874379278173908401366124971551921782652819482035481276921209598642175945477919029128263583741911175996854404904093617674437051665984848938721068587594193472298627508651705477348966011880331682080027373930199492459603752716867182529146350626639344508338761506492660073136187421757969713366498149671189446587467423789678248451812108086656375594655747317198227218041426626393556475135155289880301667524460783533879045158059290153987663452658018856848715432679222606684970441353078639551999653612508209641800773873634727200091694977897987623633061494028205324493076094101708760307371436398678716927417321774109757301343767506968443864926004464148807033635985671982092018600369650817708305866845574966081239371030395564928897942702523229979708445322690811273510613999028053593844454178677764077272184622016412582595490850541283571827348949396219544301985834600273798812326856697100527232205575204255600732550577771936397290437741156889511581472556189242273057847782068023181236426679687090493407765980424828148939003016920043605678691651103861165068170980229899596721059966480183951839225219731390112431409669058002287546315085146993581708828010699748066485810121823265395552171468129970554645753278042865315930619530778660967604455990633039879156563986897037981340809705162198574242273156996521409570232382197380507345123648405856600805850045562330524869830009657216434286190852250804711704257092504016196424363949848838267341263400664107043951407056390675790803972792414614410061010550805228285547816480961240777944050672850571253081195056744354622838887138601723780373997181222132548963502470769845435569932161800216499321397670473389344027602968962138057382644254355618945504408871923821779639466791211038834554074327837669691485874365083655487105286802126765604015895356525869167975233504427063657312005367797321946501123044096959492551851351179943031080703021475334416321166758098234669494584943156730206871558237043335436718738421549169469201856864503824905776621153263848780592740070462420012496763314549814630166615178788433752637375971595509143014295854505079718452303776963313571021691585942176106578902290476778685331365371556363276086798522107345825617883131242987900194582385662788207832278442197377207922869743997627571083243591965888665633256077846360634209677799910896403919109087252882274200141924915394960270922966620509058276449561474746317721602431231602842188949309330930074216669959411718728216064853283414512969708127666719402097226894520514324338942223929648895666009618914332829662160668390076983930307673365184184061519922854435338153986976904630278611236019900187537101923385904776322166900302867187359069224109342704788713069989359469157712618665478056359353404145807548602716695424916616739721033104423654693516454330670844911643988967874679427803087079785734369378684363970885188755695784895874528817783425109392391587864855607104855528102996777852601941292509355388225031220082550098816669661560381166370826675391025157991190063021128534157285056980249031262624379295047505264742417168854298980049845601980979391357395221969094157684557192265670931632413488238291390412057883050476568626039305420630988740410885789783383850757412078701607193725299221208010404639458769358945810783136343623686440444327924366988478494736889189295140725547950232051636736571357421653086976128561010266076832978373667733934294717975129907830171196724754606673556247953463868689512226691069598024062047858330120454311454841363710261707425471145339564166245853273934517001169124016984606982938334445411320761524167778851992832070687132796384183279719663108611611800001036245483347894259093757600229977833330693542388726979740071185900289059896547987826582251509442320889936135136132096689348256969387760309377142341195764777198470372932153521526597468121883950975486468024423037222264065253655542800835341006321911622227645102329666857541735115487274489133182002881311802087345781164496372360241164560743300955178023232151082900035361391724009692186683146385014082866532345482751581227127281875794120171990966998145683594593043148571754498274187805722372444007232756643432880336477149623313111267619861612174268170753030244185182625475454424938015509238520826397644962094083325893794382550275018006894624098676597767130451409119009250714894442722996509081867545795845965116368585241222153107468067167676493431750610396192877204981375203217352392764374854575165131053485138397597352054561154054034716268749865152372818991949622999139976595923848807642775216839499965279371606925278490373509216247738087415962917351097121017344400724752350879071225111649669035475292555377212454733701124079318517204185615508564713491771251000253055272358363752356907742128466355841585032247143308723728599151043129227877207477518368663963044645941100862514938182401104126750248758858243450419988927153949600761495229535710996789070137497337556326585799854905234784348135705533182192174780951023905753973318997227287813804650967955802802618066151724970177349707760644447525839210813941315370445565082456844660231678544701286752914921796934003424304535749367881389640119249713119580879943395981063916080781002296643702760468914905167410598185403671452859883541589170300240202926130477756203688176590538257585020382919462470801033995546429439131721858539422180255325630786547321917610289813621780855006513034047008444824206660230104136468160446722183430069099097457124774311029635743167739470774743345740874608013632629509714767095977542694746661025340217620079854384390672694330303645950505232706698160644968720484435077346995561971416030889933407646867573616880022164671335854924130700012607825273126787388830703763838164656287863742042156685343044170610916997646653939386927152538817930652777310661603930086733977611480518486329023065041135819670677315353048914691136716446432549473197136740933876972162891343963170849183739778279474264076529503050758565141968318231384891651464793535766530690388363585646750371855614449161171346258242606508023783466949786163115226730973605283419269225447503997491377184333555785213739116911804491613718421319590700532800675704887514604812842573491946944315430618904562631532664414127243882588968511548744837754744551281258215945197714856778632110126487400698578134588057903701446087891611070554405145695854468226013887638652395362530937825848376742922104050305941406373664402921434008009209795157870223964974879240748248020945974035897546980080606139396527643484319096714301906816073199208059111092235250847000766431332974865275740181995538773441026607946195795518747842934184570065172533631322341393240491720394838668141177279346283416837984068835411185280532641172068816461439958473931211939108508798504252753661194736938041592640085783603998911479502055978887417516785425117242125531448435396150776274363883260118844658590621703307429654587087998435850766795117137658357953790338601626244815044242791569186510896251026797941800736844670473879379034962927110175856498656782000389431340263078091720622385659399895568759929929385706712172071042407453579154479614621987190480730363773431117349224421301169379449019596415766953981040792936702439892768656604780423680993724659882282065481818644842032107909380663721644968587283362712048077126235875040268238975642425819464396962878138378817442787407172727405683221544403002851867869779661751040181591641840847092280382334037569581801005287646812095302133361272398998146706364901656530124843725662284266219333991811407009986219612853665703470120849892316900734858659072334656111302774876472681940422760651877111947336263854175064230131459075409301362095018868307371215381683274700438311805293663152801211507982650773751352863445169461875928218042124151342501025308623888694831041475723094591338118988897881456160403321274677065393839441754251358028864397377237501615734857484756338353483618282894179716909851703091170086707225279127068799881452227325970221537826485692633363910175443089043985165101832097184500518515954635122215891617667637780133156097174129193708769390709605892390223135439795610596595229311494124579771300643824588604231960644542610497375108801964927206073739965545647894855336576100894653059623649017357205737324765991211741720713229823769352240826347486021701050848441302682261273361833655904313718436331939913675991021059398904670723175142020883395253778512287840191176298818255187057467336151660698738306642704481541150704063870979134239535759596552568797638138449384449176127568749391735195573351920830830802755159688729258456674603012480902554273158161762682445188886880708656189126749096607163099795997845477313908216328406126536797250786487344343551110037940589150096730881808241330224242309371765119528218752143235747556566583253991580886428010067241003374731727955284597728224336303540098726340646706007429371728917488643631908202881095026819225518972529859228597623966610941886317963972425189698535155077707167142076572035148362040318371253508584097495921902666106656545439807493029323618345310051934845298806053772037283527363110053570924901401320728405930148120527984398697223913347181409687422200211791028552972557067734052483961422644284820549213584928264284042674812189317278565280212083780959053692065748519393218076365658494943242841344372074981843422621272933836370446528616614374308324667448974097153597537103345875190484925119406250146957704903199566825050667523105272166159501692129931321867195002535801027329682182303221280263179063124259123585613297695272092409119659490208123280005755743512714191867957028189427932187339232986276040010695556440916829820687869190715515709856527745052490245749271744864607686279137577301601845059437789055920729071093095357391466766488122146875847912464991584814000954549228688912312323413829263972411000414682216733010967319016117414923392743416469090299997466248588182414457556696381565109177995215620810381386661709902241915901836270046087122890665861957653708314128482331151313774871662856304684214340235736987864806812594874044810548303427430889618072950214711545900484025000443232386046964319666896724776640858464340681532829283059551421704755376431443527089423891598005583522160808075487733274711016552207102467472377531738458083111683848064238668297530717697365816066286652017348629913096910087090464134125087077284675752693384689633014241590804413738689318132353597347437910202338855078514157677816415295514761135592647959927733032659410245449226980227178011076241162536127449333878284168499028871924147454345325758229039460640454670581577144077615833329866271547112113957125717345951489002147394948438701584351739982404841737150487783752720132848194184991010317752481766849835281575850753807857432493290836425074474663594508785486968660634151442998935082054274879680924972320988256239512140339310035643104262190439069235785436616104038841652201948487072878090307216508510761385963485792983193979056241582005493900706899778102729853686386080744244164810909778764654388227319096562903073422176319874858194115151913138357567104455186179107193575112764111715156036278243668583343445139288792330303807066519161023049087972640353882252922803822296898991655548445628343824375038063222554583404484081696567069636261892371458369948950190949355336578756902076465478010431706813489702570212370050221177643168298235651968486399166033314069753445199254778097568600571950868157198152323570189908593673781483885654666858743888376658785516401619183067074577625449464661101801753071382305407613157962977529902820965889319943596336503891620670222232568212078609737245447726359334765720025946051229671558256502209083606232955178973989182777596236784556047324313953335231985892853266663222151404885582664181630257196168012034878240600519942390945639908030879991585694288498368918153647960682496972904870351927602215941793729967557978094686916267021672756503629480680521542353781338480948755604244885921604206232825529020020775640922959149835999855657472118665286645678628477444798356173532859489933312774590543211980247421855868757946567458647168499949383209586364507049150648950650384216350012227857958755265741295191675096498078881299621581048372437707554472322522987571053397045045280458405063751036521358485148530557300743751857934528889148878637337330434697330514453751817391473815655721280027448534270842730866599105933344675366927047447963415621343585464565380300019437007613854742337793233433896731873504065080534506588392063482195810230957471133474342604100643293973156009382923664300721299483052581692470020610379262168689606715453134155051946329071048630110137114595245767826745684416367287217469976540467510121006950973591396035678485921341470714499296319732616614165669583083397394685248124923381127004867136081773875498616641288049940041413078818742729026867740395213157431801280314818734154810673201084181181068785075254044426445221730850064747902603290613745106164751469357539727198117532245993531997872657213826175744904933485861587180125833650123175530010703986526956891517715031448024891449975690305794569142455975493235183335868535524500813380662339925832756936396303988330596131548146476554088277730749803513301469899877083071207079987414720615095315671257438844616873991636073804697989894562220094919323140126841302899818385572680337351950488225973403850981051718959740532049400039074175988735247782280673989361156104409721216948688334481741636338878112511319226805294503932821836129496326644712031468623881332290606473354788701290290311125658449108767878695172782722145006627185016381575195809164784635350368639825738512263053410976550265667331213666706901716608543853798635876465205778433853535865442046885463258497029652399740266056096950747648855703722602381816521484333468994305260970146175014644676596315878702404162076574508288825585859753841117789204381736294577560999910543366575142178742474037478836564118068942069652363971375761473114889019315249608308784315559578884004273062392879956194109777431762922229348349873669004506525406331759714131525696875849316713435026099755490644157077660205115954156770258808291263637211382026162795149555998433701969892158598997099946976416870633404715790885475565271292117932675007904283809476817262845626893260261599773006577025440155467931312600883304846925944719880992458116339734794670555790303829135035414279020254761861056721002670038332005905197220975339013935531660636576118336541196829803779845753250936949299730042628158807636855533107235070541350545649651779406446773181969559696334564772771435893458543859429154433794508488887362018240127093133012830376740435769787323034886470945446344749968200926836973807287836185940188669870604900962785866926288940401018646844340699896378922711114051809947762302877634690758410741813495596784693110124965973081870116829177025942398266419153106966733141485068921806896093164471733139972202542471011518974988555959617466740988691296520529748890704407045874986609844539821853614671969135679442648933157761862487254293394762634857833241157905018985284108398996284120741752918421854611748807757326940356230489891254356631361103650587746380453615296996575002278814047971122223343157222204110176578982820170527223501532312719316076503660225285566937992336616701521465700998100621908185209535699812786923250648427553554323156518064688744414997859804358992780708508642200324559157254265246765990136575932097969073022446629565522068424403429969804201830093605032972043865436748773454315427587622493724469515103594920251329711580342880134058397793082035547880525730439321975942871451486522818043593523412101218011527060793012587184814132327178633765745424265952309889547100135614805912706756458255799454390409667430115729302633701840282889514550359473699691924381138165428232480756492168880970055375556122170092628537777663981381748341928585232398070095075503296635022407905511723604703830169380587847000943132813550040375967967979858889485962077228646114683912627730842525667760412922155023347534682401217487351958393974568968324120516505024415531789234372117680221456110582801187933857399688382607490774179298389434189927108541650739302345828643644002905067714207727710420498080828227053257387101540216252510757758841362782581743664176213777685133620718720335830647465958769808077508950827168379252834048982330364524110352976806879690799331148193559480450193705445694034760120063553883736025429624566987055662476841118899955889425937938430959666226329879745697529105326964689757052552151233748424856675801883888720590756292489224620828688103232156073400757743564857658099395805082224584142090718535221202133422638601242132066436369059408379327139423326491524579283593289266661717782116044332096917528614694166186726590375161545279746274701209173109588179359201996260508859810549872422759817974009040892615554433844812968847188552964197857201169257889749784625104495709809792971594179601717688669584746810630779709679391331608044185145213776876563279556388901875517521143104108305498835322754252488502803233087280902496334795083660484542176058962948254660301822336821168830565523821746572184888150557122932075469047868429634019256361303655844950591994331822350792123170204729555620547797466756145327355598689881144487919274949185422327603478087505906585779467118605539529618469286765771689059684641060766738587557512351202956725792499083322034377720553922989393132343107783275035931237607787029847263339936472889978457757502464743374225295705836386257342771777702396148059392577348724795970233459993365786403678305837337002975993380330528008288967118723659705838354447012514008032276150219850536477399006035198551969070818761611573746571535410938327674958034706390772797784788971035888631083112308845248910219338743639224284584680148718644826678413420301185354769395030531304754884129567720088645721585757444985722183628082050438042428436159187437005286298412942402613363507619346550816182797945390562388953835830811635637246090770613539740141935801518078247778772521853559386922937347660076410615404808001887350483525549253831073602530248072497486679279586911342329610300436873906593902256081815796197214255290613679505453736781536163145192275625574446659280453540101278644315821709252852005437405079978093235856158644398685680219684684085712049272481309688006030007782687413861596908509290579814562194542644708044851376847395454189318065462911952024531543940758961850994086463400216911180433756509748940021847265189782243548781582066989263526512380882758896069222377020506440568212638592865629411946249191104915793912082598127707593263028090833986231529061161998402750453336403620428821523756232291916119763405335831296812880737751608833059296511935527197831611975081675990076179689582360300251523167609442953324117245952088784682361303268136939159667327333295637429799644510861711965064321581313669223401881710628657716613411590243773161208081847913466462517764148456500399400170275604426691769965780133300903817673732482969751353578791475589277804049428228235053742783359220674282865743426486772015336359912861050788323644855040150667606654888139053396615914250426856513649422418781536524482164693896360860763005946167083151258766380314524972808915617171592533460567397486942157263006069820969255835871034048139431402084285814474614619005904742661220252044058451320075196838176420333727158790834588775304843807813731107362944161860641342371057223452829251581498084467745583948609765224338321597134364371034858260198374224827582422458828707922194644362035187517305046768756932000408383451912155900077511783347115514597602560507630148138900816456696007162336434283171885288160643891913436811455219505803354577121000509117091673736733504560236902481138974128755029626340191960423820225207364846433798115304369537559036621454054920233863372593785663770225374160050562726078331362847088926792444255548234717190687886590844294314998246407718123173036439590584346827133751443849757498904493059137406103610962585739634057828107977110234829718016090823179435720456477200261072331165512248282618006723807193481906063656329316430299762874499216782047467063945123075885164528835895870667989066977640787748826861849225748725946584778466035215228758162403368119298906445484670011428114920445846432113504624530985090100985624369747372656986228312984525000704396718052524403467539667421751364809862520770175119779365674827047678798516075520060378120779502850198597496165511255215374396347407691187893061378912516585746253157234223686449370837375609730161460665131924362526514303601993171685459957216588135773790501015264868306830229813976649395534532116338071237694270114576267445301787474530926367509293713894201405200630732500360774263393966520093758915837569406850275171799305774879629929480624995653120310997370050001299580390424528210895479811712609264111754805939668471198317092417260613963908959764209097414393450415472200646022564373595992595588062184394491213516436379023995329786470330218651403062886405006453229436034301722946860749629547100446220488042374206145698428398490453206182035075767815229639474530332654283252728237951120718319520858630748594930725185303981173514479775770244274415482455659243230070861509487680121149300024105998847098178751410346391533524714126528875183946325834439017731136847590943981946242342906836456825755463358428207013036425024286635145392723319464694825155821366728941169527230160494974923434581574538112770560799209227885271389281049255938155758059265004826856728735902518538683880467678306103097938567894427211037206599919539170701397411367299831024985019177481579362930764491833403980132460850714059140798900682319864961109099689143213918952202935707637504817544651820990794131834726965135575091025383549539793427062101143668038530676020657401637270732899959492339678644402540656735522344506269930346486016040007482920354798778834277375664183388136662247604230099832013228761839431076414489933792813044407145177894510607405081543087286860241294257764615276594087187790235630083641585416217276027107329299947558695990298133305334276590945096554756312303048678549902670626178032650104381651236668643739539528348316219523491676760574149996758532185385563415447243814504869794308849210552356008788621083387105627751614230112273396059422573114126182478668337993633419224829298493931866102195444543687864350652758580045285368558852366529199627893913434444219814418292062516636242635044537619328584765451136224794655305979364807217148516078365220305681439505853751194469343361304675665034412176562372044925269473554692247560178572114793583505538528320193472307729981013650140198645393046078572968445940646692222810924682062943453782305760987198473412553846972156220994137824341681406596661579166635354258576160316834793268821132739881059792207260628289639557529053796554645179280351751659116956564577081162810641089440107013601304298784125210363920973415401623922103006869204147907726172385464406710813164672043324402081318075503891420491064851133486331847042691183522857550244725950568771828035267467079551563477577236100757292902269876481047255412077193280785336734755257507770973446872829542561780230410235195131715921174727526607878884743682463770134023394657424367214494194692991895143345719750781833224997917766513733499090507103053362943765694016808048528326446881130035543285240482300532566604695751163525129194640068565095773902472591223382150625933711946884822899817575046895135004193677628403366265348559258281901514739895503488882505090309945805130083019621474881880670907390625255953889525464152194596256604390302166001702858755085659378172594832191705477269696803686792639708853343573887776220838821452659264703569421766058653744724288957104885718058415068424598042250856027518298521523296596661581934406845349321080993142080640476706984263203281288223519046944966215019997967993623994860616788780849257141872750782519850539325486084689663188505516939014370229578468502168086981510188330134228898905830968379782952876403538686301834245767987122489457502622620707300042683439570905089412302105305274454201101979244550943847823787201226136876912824181955530634622284406533949577998146619339318264276375665357112461955719564231904574333279343082645364410422594130399706149207900476947326913423958932722910862158450319064023235554142982253875019900322518015834389897935127792654399803320271325747922567063371283194605189045906477711462116064089427666459777600046226163960956276766845605620337512328858252517909205046428634443053130618182302456505149720004387009513585776345671842002774552829008560937194119147484315312711589778375000823153837905822533107603155091822371027330086401137240226246974984481653788404136909604966505928306711314972438527804833437879540737791026981910017621375443834403907779998250216469147541846889939204058312247024256324190761045268647432941255471936546181671542374150252767224902583739131568183964129779510968257443985443999288044391092174334302980529009090512695309663768836447344433673836111027398868854134837449602969611492231308004170837969368687446231348789082851334304968029684555443007676616779647959537678712561188052228438782698097846194713954514592488031941962421630017271088023920027109368096120014592327262596103084393818538062371817890053970161127643072763713613846858034532148514295817456479321744229206396497402107837339158802339169494342768301946951356434966948939000091283968932192912248487105568820707752654407121592736596459515400744225683285250290434726510708249337278376380836290467245436321930488133328326853981660478640452412784141953138552979731401938759452811243971674471866476127957037258033568463394131634191249387287804393285406722797235533218482652713582715259139622985978686311618648691426683661122336322329202841139147834227823227996912806920328102855197795666932233566252738289420476466742262326427129513721388379838338684617556267894147626270497395718692385033179684275770004235035872729328553398405362192992729536727085501336880975497710105498397135877643676179442574647252646150904082024757393123132041214540918632480035767027725080246052962564176434679441342196624598406015712344124950752583203778128032987493488994219880043695382388606719973833216983173451498675810023722321799148797327403560627702820554688183526909387667429201201571420766157143220459253401013091269876804985864955509046584569855793916881059288129281348515427134517021597687182743058736996637924625271839571113421952373886955175431315900636133573954024218404707813561221792576813207217052265331622705887577773407537955607194019280456767737315157543454376720326536761298964955370056711075006736370860839905895090988395276133676832896738471457371709111769964215096589066327075040479815747078697095695957695482491815160201390490976190078365010339147726193034831940291043502787936523102790707488877576038888912262185560428599745350249640141068589751839567487516788333233433489851070642099719095653819890258156978522366387684864463992088269178078164233611800061111845735158830941337731019621374975938771292263952878335465800325297280768489237475863186880941445875679184735779320487376471505681983959158520438839215644582425022672319741225086646048581374823517548845497119322140764539839790187474357415221860390138857408922760664451317007892868893874924137577840880205188008051792509167482616933382099078889369604345452724991134109415581566584836220945202602034322806186875543895090116539233207955724499403480608903395565844748482752405405368407010606239614206341544753131919521346556344552383338113887481580754382576379161636913509795452729664895805081876528803941825754534788062031626599715519660144763882534540168655158488999434280243380538212959570495997848677193596028619952027304145274010203753525745938244934952069935380203290949897301815500964508673122099514023131249670092851550321761067648184451061063127954442155545360762467975172510501007317875235181478942528854630508652329976330412830215912569544914647723582192164971419954452679482245394924347574880912924533377890969755198795275795929269958815150994528928646015825531220493775666095860402582304859538124959421238490557873181462968014098864224539586595110969442191208927934933153676380997821053261797479424956081151732640269967403679224405723846287541042631990809067190786578313919433800385116808691222679233901758682822652025604307829313626986612377363006344056837900198487734700844391627780940520710681740660250329632066815505355921565530647024570989884370491961977213350536099512738760430668505680715819684687318600750660030227595227795554314399319059391998322743028214269012520838550359440031642631536015489565544123764861069333321593099283179620134195569262435049123385954977463044098751119717665027708318058163036106058735518406763317744622345893292896001643435160012839315449290539780997846647962908949543872422320737335396606315800747129312919740657938579602389028481450494702601030997683624009404538922362408608124280847728522459058954782915466265196655446439359555282459643554750000740267045377860039338496675308203488476667091391074779417602708366050277660671153142903006726209074315888836759396116799484513945150482831840582325030573355691267874452186107336207740768850070064830963230621687975505109370005832528828207529259152294363499866027048698213446139841887990600234939353433046094667335783475485344179007974144826818680817356168052547524489097829686576014040078808880272978994307994737117653522561162483445694082814769800950248947884821814045947582997178291393666923248299658549260956259972709953565431146639979403244198761620685873295900420631878820584166166215119679010787363907882351061623792006662520628604554927597735575339800585383225416805293829537548868756099053945710220064463945407842185998377968558975171138580576058071794554676663979735187181148955489400666734324667462083935472351405988201695098314338436932796424010364732494806530286710646877834511347233375090540146692500919594038979168656335343850490271707615810200650368548719594521453752532547393171754719825067055713607245614640686898466262091259557915304484606782548152195898008263518291890012901810948321399071896437911408423286379148563500926858520358329625584662368085929818326401202006770384722331577129217184209936284498389782522219195486100609813858053512827505596078383728248317236716061177149515205033339284285121682073165533627630795942406406742040468187618483659821281793442832707487827657377634358732011916625073178291905096668181519708307203365826844073727343459963587226740219698217092650443510909405811682654343218950160974307377442288939272591177558407884888266864911224583137876907523845042684816462856576844955246845817555884210674558815481349324317212469052324767079676024288388667174570163716020313182581692685577106695110924210947334408691944403682450558458691396240124956301354386234072746408885367490454704254374066041284070394832153483371935576292208567538553399079531520727714995259272988184117198316310444091487529334379186676945837812231369658616689673278149166268732061766471785255397762605895401135750482180070352293950935809929783965531707724786506539683572006108910392325435731956117643676519012884853507250578836152663047476339606137108200601091150610559661189347313015495302022822852852298819516106014344696790666381837271452690535836340768323694911470506292540995796152244226362739193388958587645382080838924996458105346404820049094086897466865228098254750493361360176615174464183471504764975730053438165709990824308611315549375565427361039732954601187110419736057385559138102206109181015090435948188646295712216565702269928784233777572326252126905358485120215500195836581867322917874572826215702029358867036849619299674516022476370268807112531652906202922177436534939610204322495547040530503410938756742593082543151318778167170087016180708930990123754043417070951584559893868557840231077865709013204401078568501889222093522199669342585029130085814696408094375495916073066904878899442548251577888969208669721347952589188134158536090406509468057588342163285042205624973952239425941750085747487926025283857730760276124038316824230468824961140864510794020522398469914274265161922074918605819664195023036646738138109528821688352453086729347839931708366893830893602019509338316297691048314942241886189100219481416815082706504124359993672016446081408154849497478212815997266530570395963650790139698955018070627659134557534835231477917460206560220505453438960864597675753334643888653141552852501828802052930931208630628359534260653210985331841135974044716668753221873052679827538496191774071488466986692937529589858500623464290214708189336153650925156674329494474729404721322725020704903994413143779956997265976876044719535883651616016459932778318264600744426953564182861688431439128035015594327175585602367842027130411275032811782872945144742676528422617092536687495768245231963177852997982364499293203273735593801006960393077235437374641160342628352971262241118069484072408465938255876504142376528148919032928647837516467193133593438028816310019262369997136888334142440470841105452339849158931075486647584816470397838458673945617200101866813969317992669054566556412351941260730464667158528559788372178892293213560678734097283117403591734668100360047626851001297203650212776010347759803602773644910057369570432771084263932133351106245321902949805244056629640776202493038950934997951145706391508961770861206243918159366079618663085961251597062954990801365873328948122953064878858705453841086382299149927108122522254649256341895081888635465235817523967065186899985470777150498837087383933579888860648398137803140648901530992737856048682437524416349348147367376866082367501317882676784582352602000648581348476849354461373540968841429423642743010360187212924106603419141526906834493215989149850867631085453867035945714511995892322786684918908954808568087350487358555362707485587702617139073723670556509766531853698376918065856699704557696785628505199084305862126473393554864777706227188828085701639551667254242730042564603653501494239610911691073082478070482343246762907518345446951455522595164901601321151219906357283722427951460617842680542122429437402875292646761672567206907964970901117546576743297370845434768263725452297378863606277002625829156612678162100175742055842209233799796582410497180960557143820813556661636121759200208063644180442561559922082195332437039968861022621213765523967549582608599209187543222921046297335470989447990290990727364787042303600390615697443583558841086836139447594175893120514568284979098396289046703026128533632840989969343607161242418214028138849801652185922114140554875885707219255470312936925168617399327687956839818814789497585946166238849542139839471076342607371849190962623364402806582982427921239640390642948994168516043041887303580487532778248066731616640376723333803407791256157256828851976301195267121473952763583195784270937190124173003196857507758907261672617649202163223377932460108217659752974899350798764128127672711756357069514398517928753741406217085314390751273911891195912939275381484415545925667494745090913779517911572066929106804433082547674871042207885664893369442833486165266721685212953830964784493877393578831792991074272039765105226115084915274884979596070368695136791875491979260400269215289853056532278918625914034472104938842022710128723439194171346200036058951659470428219015388885683859740356699363646006176300674899248296533906878187215045067036986639053590081077759745759353663194396207369935647551665478473799025463934688671451761104019115872994930233567638382654589699705533456562179691361212675089893323955784504517205438888778295785530469158165478120359536325399157954102891335717587765910141691284103907920951787752822094623145961724338751438197598654884594760865565896697479517312145888600749985623978508448651794609055556117672028066558725866911201128419106362215451127899885872594699292741870648964702709439051735754824910401817320381208575205389389742107528190517812212297977161487398388778224898605605492965369702037370009482135480294830805786504880509570809102986834473437038170087244269889626152728406642158287329612415997073206767980556346222977973879362008665125091865303226855167605835958598413208298207037090337957959734513126970873383355026015969883995010027902668626700637753308981316008818216992507662898632358182269634720950703286532711446965821729562113919130378996731583723968755485432923576489376153337959514199691875954993138005699201230267402425883124357857954008341201137835250058371709571225315853370076857453487816570141182805890111605075558869925310742314209044443185442178377629885434179561551241111142021157397344234854451290773818545860432287635418418925742051011538746328244082306181867408704498247878375401531536878318323820720975410771152359700691614873842353204010521886252032165794706109002842709882720318130909903119697258392202949894483101306908971935107374510028815039141983003359992882835848338241214418197370797972966260150716477828746745453703234651153525435341205442913017537025634698348911842743259802784857017311483940836075162683165594277560740307410458060143338162081143528707585704287551658601418889787582201514243050866793631600130182527353089135023565571461838734648649108602236656132025408666736375726379158818339785412023050073931389046315702546028734708267827410631906508302465540385600927928863564134337171305014063413978356330979596054883381991243954588206251729311260173653365180524433536319078587062160776670792277007804719238129441854297662830179637986684651782954583355255082615477419855596979435366431906887197697005055329823724175248573518867604239437108380493701749001112388977651791820177725543354759680635446205963534836438630285891128343833342405211873737053880669328263706740301854888189059432680653492924863434957113008591285506220366503924402920923014103769904629689379031060563096522775432141003296235971196193567174086949822639441795697391570368227484490628273029581217026074301522208987772581280649091050427453169447810451962469995228925778045503262059398968106299860178245482671893959991662584463111554978526792175654809907087893860079359233696648287117194095788912030245712187522625269835612380471204476901791583319268331395047451133006311557608735452866353499022491450037971866916175498981599201066563522323230028932180176893746161525039775000543636218013491253526140533566304045820256065442089439134905175219849931351776326182771562294843236401113408976869678049591084805449503135469055390499146858951923493378564040266951149668356207623479900396182436780953954578267565802643393766702536555756283019505817839285114934178829130692962781610644653690661753280202173405675872615628996602918526854872336799115603869308716594981239363465866132874051850673183529774352736308185180119134695633662997528125826491742004508012916237920836788525906092077076649873869737558367266215905553328703902541473162863958519635289204406605913114445074309844310793725903543900428971966881150585976934587757893532662997805986380360953244135493955920622856675388965947802447276834900250095605496455863070655845707608247893639319407383680574443906880910123765000026645824152362202239022147063691337311940007836536666523142171408877818195726422239670742365731055754699781421675021697600633233897899946752601774181076568574570408461191223497522026987561732728459818062918534842894267139085528538470647259704334328374085157825267251153061397535538089459381440391420957467533167876799666675329475144712262614858732315077121686848523190269685177520285866137032703363754914148066449363138463160918524115367023062779214620336854190599514727171066410206793970655498761649822475770680380256774042152720422156195453428052112100198822204797111146645301155986568683707629972816045619727974318796668192359938220776475335049726176406307087819939172698979815247685656146920959911586875088467568373700569911217723528261195314259159103273715820870665253458685649914398930524074196587056757674970140183714886378042701205065961508732106274946392998374559278757862522860742331239883603658143433975623676471589380986263724865176857053256554347515251533272701368522609305795971862101580899436941911819687120002232938319634127116924098206079907665915824775193209880459938923034919826330067264322262454523239355115234492122600695582205912168211022839704935547263479655368614273711391123943719544012696261058242769190514817009869109160491360730171047043176130594333530341795409118480220328542822706634751390671406102543850268008440820065600716409757226265169780615343439999613911674684261150798878672757920764912262908346661496630468195198545974664796938012804536088671165332142268450685177282778117586005746732414684928653318785383123635427996987890666840042740563042600512474797850886049057012604562039264274915429406975710467814278147565763035790583737674249039891471156873661780778053602625753702596519691437107537665839524868807026738011194024683330140088774092392088282574881605300623546226288897002819715666339500704007515847031591227241186893453548315280270022340275098976904078723018063104062624517571139529956288611684401645711943472531697886196359704000613573083853448166428266453229926354177083988868540986239589008071994568705161675345080241440181135613336587038809586198023796431958510822172061640438836827808097014968764906204046863704457893820377739518748428265709046114169787502868953665567424914036493176975642095477286087875495148866424007458885804779094765111414625951084028948713158229240164390761494220005755741364486654308360437317794159098764389943608824842793846383314158828810055700221788803465007756203417433196702434252237226781058796701393093949581517200031883759561750229242955849129181418249730559324132402949259943711492997705327989067455454377292775147396861072564162279247132239948587611020473966120086695371286069370094824162035887928545330162102452902848403626091582684948351807108136758403264903646844809434885614884800356696231104624149662843492482542248596646280337102864081013694604162534849673370364730468250080361426369456002544473837859328221052222124911242427491317514478500102789486440722901614241933224519851295084510530325117407577626318362702549238902385644002556769603592969284629358416761200282561966734262833379676310746921422557238426715325199739351267716849179425511758624113984337664046168106837261546317620413334381436406382167862188637845453798517428956821322188975198856800687653226226816626844050777716648265557580980877664732212280740291851227793506106242855055849333139159442697567492877963317323714618825574881619808645023030124089488800207209118531281460554092406291993914686125322752023984039292249547665598271930624826723373854380724966275685421701437524711135430580161199434109488888264097318775857550829753321546654214087000640721724629087457198705639943202704362565984298463444603916360469446034097754333368581560488270941239373926468246119865297779231912501548356922464613169416739089033113845724244342043844980277760071476654332355666982671978960115021050162140845830725883550825426282860712755314016723372116434666799306616107620310067244629737373319129250253059002515455190723532664997766799796970063200977960457227162426519316226017869695472255337084570350814253073475933743540841161550801820092992834901711042652338854477999166247901643620148409896999988498525036700734889442463498368679713928529448364298255003038306780967438652394666063898666947163227979770610634701521002166257113590593088568126845343813681577191028694177729480167638951359975009540445304001454704791556529363502803056728733424194139691731800570663072902825125161701095677694281468304912977868897794784832412060214180724947149418067837441132927988618437495854141395732164706995126413170225798913629090570840695994511152148258464735096291797740673545270103017790787583983498320481897733495657414703766566063537552047072810567286309776627768209464643790896446219519634370973785578192352460266635377838082992317138091295856552564043826915737648943954782871875087813524877832362346772730310858449520049409319159184406568942507313705470326920371377563011039988005755735156559510235638608051822314645435527225285509787778101965114013182650842346856274307521022884065414324654405439832123071271309016283935855093762944936476509585283015829883300634615018776667030087092931502130493740142855812256324586301025431524921628275579217804672934303653329520791121366974170926925921067110167524998410645512408457696041043150194013502356521225432660212189854236887469245635174370000273939614583403109609622991275910949288450728378625600884146588469508056202191788995740178318410902486445082326737209732955918802496071713635020198704385584630333630849843776078100667765149215405996015606058333288040533840629627352580199742762094812538454568696739391461678350555068418239315500495891924367134150144273415055476079897254391163251102692400968668676019584905709743457904485005247359625844537641988723619015280965428479886555901103836645126503240031890513884536466892092771825050551669998114407002313837309193312044085590438911968418033812167171601414271888252989882609650936099767474788107556433086693240708332679808124722335608925247063233055081644661472037790876454568824393535359286925856542381638880979318663187130508915335325490528757097181900536276056336838795926194244420477514521513964394852538264349967565208438234952094738767622618755396196714069568428247898053932976384141147631529782633403788111522600349622503523982693810956936702190012925519930656930108546759981317688754122737155241552385574674543309737167963634727052395467278872103625227529137975544238983812586072468475982445581001674833014526415561674642466690528709184028479453647295797344412660874447812895591927628673696257607054803331767001101053686377459383222683836056804078809147427094020287771313215197263873199900214661765566320925645325203151645729370873243714101486590510388344425171373046056159330878329939679848227943445786649006216475358856461408256453585360875129619325303838590928846355966014955131402014474184118353808999759657814627515801327172311635684490826277898106520133477543391362721235056728416771352376071065464038515985196500930424203908206990728852975845382284659382040272570198271863178615691930066000685249625166553650757208889849114801278242558195054855718473594703135409344591560294743119081703435763872444352377788589662802234261145100602665463593409787390884661455081637156155536381490913554915309485810937424553822654607046380160803009373154392271601658884655584162009527456669933358357741977936560221259986511707174325824498341542422442370420588983179371263623729382364820276161771759019856048073765113044769421528984475533570341081888709185947753512530703270379489806263898169987851252882491713591144536369654578165347763239210339268801501856140041866907051609009275353982678631632613651183897155460207968527630251031124394698076868783817760990600963009948948295548115042740972768726762341129673044144763626911891981366471965642534782161190458073502754765553497836355595869332807585539382211586865732901048312067412963845594641125718943576878210593869833224017308120979834171745939104723996951802088472147141243965220221805660793787635804631633209719214765319522873154536514448958567527730046844920889476987328956878318004360560995319110921716471501560873201722282455073984623538918768691804100259933332220287668918364248801263769144617026041335520226091460304867815219597929517841155733479024224502931493940354333777207192194959097927183399264976923899736099547819743490020404341109664374907712748532405429689147871886081404588270145769692317648332946679637385977122674635538040579638809968066324145895722338322034814477239665998837480663495818594898173985149544594925067541266159741154780663892781795854984140575430570118404913317327145513416776645504834443111160404999440432422268827474123925722064788231992406006696217140078963236635902082805326218204774100216936089823711669125027031792762764729036541867938897952779466570824266419655509246171153109408554476097868288289053921708692334832207024785792162280156255045900028013795284152524937309220657904968302156844694769375477527551303799509530395482304802064783645459194530289504613120587689260297867632014185607619124447508188489886365811474102899407988426156064093094325991517667789951788324860838317255263052702283702134242555553857500942099565725938816591257863720080197627712458578631066900961566438945757844058265108435319633039606240414805291107059537836733096447549261077138120919400395143839828920695429416655521347034722942972425892265332050230380764390122381540346119399790272887158263119320051207185514917314527756081237798573805374808083987186857230306948753485286352605894906194105826334233357903424458928398176322691125953230546678061318005856171173622391123033734269017628967985339083919137157094650366214855806020924267608429295293148673238678727100764202109903040434037954995870573858450327795999331746343525941250674307558067138649197141313393671380216331568877238609999605113177729109397468160053488436781005912952334751693698821881811251995228969309036883130630108181481925014647049974193499050455701125720880593502835451498817365621211436811497455408642824646769400198234950622345454678160106770096202099093375713361939196106753130430876944735741840549065584435550525162944444040049739063908501952025464893070780684524918082320120682060067270865023198565583650317941985870492575648895453505284676197725915571553356815284138976415972725081907751318788527386940543921306309496225457569934887163803569119415591138373272286020834546888119150464412542383941676953668467909126870538037992562572907886709113188387977529549705123362236373070277553056132645936999090158894060710174834195577076073182427921010559104455858002821619747777185186512308459175248645124446547821577444373260606946023597351929680673171104843919128734950388038126911189097952605994999125391679944322836721444198077188046639715655240014424906145081971671251749086034087720206936707651495461513960837571557711144947963173776206056473501955953048070534152178205688088931071934610115195320544470134470057135382224108774460778441660558974688873973822345489067065627871685198845192246311477830585115151462979881591088385942441237638993659032493541938177915566485480419518187069307463741392023837900370823816402325990915138096977279824781576826844172271959637229029932406113039957007304115247611577688875558264270228736090510995283621749054393200116016428976225153676999977806935065553962310658990862831219050782130282082886314011245598246347446184233203834775832269803433966947383194611239197689637649496334103209468022904641901036205992071472336981674806879630447784210743833670085561486943463752918695585644800409816663513716512149235447408725616683893945513446749248334383369040893093729921263800410622801361502003787245186269742736691278044912551054332354040752763626924751855014556184734021703065292609406766768218905656375653764417004210902651479989136901722918896462806516734542215000978679092421159958330279209458353271708085530946771813477339804414785532230283474943295727161942041220357006993631750268197021900560581719132680723423988190753226885422091495568020699248561110344916730982736063858276882186763509503921537584523677295370902774769728381335346522838005583946153645059413015602798601462180376865714739395982540396409476394319988556566672642555535032178618819658372797421122034862989432200108771793363784983916562775870718991657142985760894510585740264808112537343007568940417634840309402914293730092479797576493735552302709113886030354710508084386405614191951854375842218084795522820877708246936706727900050787014366873845991151008468210687706166679138365606039921592231803874905183162174206699860895787486489186544226864165473867835635699443647413729364488559651474136702717387260469648579511093798425688619051079305894216565484453725041327476000694642007427662341277252891822674464875910823395643926495259615952453890552241083371337108424811206329398368370280370756997339293594135482433251608252983296387120795492561011106981694536688490480587011007135148153075324733087873784490954302073390429342420902521104513420317825060458197177211398602267595116307997842940236512656684559366428145610661453428235782520673965778198446154682095525919464904617155074826625493692130146173237540036279479161343052049574472747552374433710917124637138992741712239490170837645381889917599604036235705327141000908263826268037827444867966925071439435433374101226864114765904279187027686620851009462657378761091827466587128390037537137607819778267231278753818033872488560351689569630064340086953108718908059839165338521288741704595921752695341246632887097873862510935708014636406223624184453748563323600322081089290317871209028132048831932938426494237280073951461348242532058212688963195989533691851572406544054668527595438932754336806741578579512393597162672556607591066073128963341070306343615053343080890017727599985890171219416032895503122145481818868897042076724051908936364589914024904016855717306781096062861117539285412323027257415041009698591060646362660961169966649708501062987411542997660603833095742943954057796997886623878663269883659169789324354561686117086513245437108861042104104237467858367555469611229712488972675631194855933291483855227842776480697279798849676972377480725089970606212336618575513326421884960463998008927106273597990417176600116061089997379618719709570368795988683397667650186008972320615260149722555495207678538972099128865979731330716933013952202782343899328423994039564328238229717041144617263046484793493852359956695799386238043099287016799557718650921617688104277574893125969165160752898423248722632225546622283672695189039631268991308534479329043045305863422440325171658407694343240785077257295829090660604898829734935125850771909636651408105569179909182107940011439573307578011302690857824894546999257470735408637030939048562157310257106058516561040068460314907535580504881757427243889135360837812199228234146142725896881764792748291514071414128158073182729016343748086552534970732219599255558041466507537141282743903420619970907237675993263003082500339241699882890882827693066355989515769679212756919508463413479244000623905066075152676188101995475921272335834203408219100705581184027839890771546829857948902597364092225139682755530464678801615933288014659981059762429815322511550031239200322874139556209264419270697652360487241112148128780428660968034906393612708019973414303843061868439729909832921665022800288680146963159832175556719843309129820616266174922899486163299931780966591526575910520646680324626311371790767593717747719104251553882253013914206692059934839750502509155323405668015689017040995434649929317597407629429157258089958288986737608746740286734733862713168768827540936191204595308760541941318938011255259521833033657878252692300643784925333625583834696418269340757998129607895307433188581251193053809345894283511290721626525026501912834771526137416017534920745074064726780455291375058073416878552846766504206786171267457622392257112750083743495472477714932146597559573109307806776734217419327591029974043749192934085774747771985709550081940092482620447484575745508747814888521977050379920775133956027052233293409570257716537051295804545193223659352671780914207598444004805825277137622725523885330390139096113632112346949002881548547935547915823083294460074137552271691430341217417839300643697256527095564868047942518958545044623308055542448316527090419005722704357822132419144813662363712375762966365565552713607303439825876990117818710199688632707172494844522719266680492955849139364152945802266742082604764055535868998772187594054428032751976145239431449200708060389954729264282132778715324437541745669481722962973686175551991019800150823084228764427386217901509384828842656364626413901776081179658324694091543930200337132581505869770789317342607916497008469746111913812429419159990901301800093692433841221072212987717593357785165153971516832215707124112915369349830132701575380007173467396670271907944126400657794638154415795166694512884155320459829062693342634973107132504110599376773570923352553747793048624316896354952853235625980257273661403342021794139469721959119319840275486331359672518192628350165801980823452661756140302534261657927425383019542882401590395095013496541582425351109496657211232228356047758608730698702760652856312608565216851938138776216996123492901076474463466719386406460315982749905051174620741045001949079549627259296302942114607006215816880875489171894742136296069486253796210384622003883535574078486300907708881990759859766200847078507715223567743279423105818215732329326592609135159693853400911664922095811552600864500620736708204147118208823405912089401554585718047844266117139560998147828769331308355014341877795080410561151092924842219482558530012159497762645663142072256153570258371587482668505827811771285128086931444749289977280443977838611126933173026026958348277465687418928987165480324083528869814051910504183895212629841869974992058692298749141743898098505053923077607530420354129417688756147040914258252243039024092690298986165382278543343208784307120630170991588161060020498877453767007928815321605414814486760529732673676283820490905447604263436414437792690421656960469669452090089585626861871148222168593247880676599093683661491523860065920453935729034051422226600018386245995768415704177173027087150880549049644839383812359117140930602238776824090321046804359601713413171194392395871435540054642868727926754305121038767551634745001592344205055351080592668708153035702116151166379632857953351944472003232582581920865481679145293237733881469634551946979072569168811296615483478761339476412648794702988377257065802643971785572352483693383131997566347680320904746692641449921362346682523639689238080446964670095408071244730418229646879962046708395935818778012731423087668667031543086326562766691197089902815512685618986928732524187549514756103962141866712848573745461820797826063411505539075384126266551783187551615320902419142719796302879064542197159965504652200401683203251627061365794781301319904363919411484469661837316564088057431723021589772951730098097005328397465866377264348647038714394029235881215986824316702982377625513916023655508933075724667854112165963648780098160523806829843039402553272967723790917094238312532693317652326969920999917886705607244440111705046671681460283409611739536284964634380501424652772415330883382745300848930973651412872387993455995702306639234174506668134614046524545521944758994723094582740891558147911170051052671163222494425382031504385455035672808404892049898342289415734522074157493653008837037355091615804721236171368341957011502964572772438023991319034986479344775283007995526223601058578945997243126477808889454733893063703055657838667822651255028652003308580053600907469183300753175121651195281665668726618462423235497852432903730765087788639133924461308117119772979937173618917378899880291072346815030560866623624877142083876381950384551633012245456193019349907912508556284632452931059841675489183476165049928865840461151540818333655949108897308706568877147042551876249273173108263570231268521567087870407444118410463681583028018399966602437907299151557175016465033022086536758091907930907132660089985693636913515757748263451388350938044002360140752286799294385134392279552763524555126853495115619521121077058121036602831488961639652193902692920109827874225978315818745298388101062497334384231942410097640514632883599227462870917676108995649889306172781535425898546724245001024051351678001998935662708303437680905610135794721258476111048854350469719669321590542829055325837623303765529711762704756181956609772794107599392258473734566971839922509697004191684621547432165821527469116554709254053884623895311513780271700625203748183761811148625108508401158645777314900799940321353680402845576688603405719648048772540703215872791244134061330988117837607154707929847332506933462288238923122387973334229742497329058582961363588140682736328936238648783701693345643981776413858011539833684867562540498435275185134883479418320128691725937714543855244855970540070530405864402103941910962792859106469074827374357080420819033839043645258431084924920011639448583641989171506532314952837069720201875482977900451266789201327483750711909864795435411894823746075157982889877828596977898954356936280993462934062551265210947020490850129924893086032118180202951060744759155242543560674264523866171513831722663996538671564466835158905757639287491269793080966400717956083448578844315090345274565339074741550708942089135743923292236343796328984831326783023762115922585750653635294791728370664344121888946482991491912701981060740708180942593575611832858862310443983234884798706733149459664211766248595396046825825143314069048061755204415149944441803475926037427903304210236697105885736494183211527489550333140988032641404325894577845124212600779683016690860272657168866065309082303736697105309802600578203775716964294630502747663228265558433670716744408969385504836152373227322762634048308653330221380281364291320295276997076977821216234340587927303190143071678514804642021939803509543577704052433945558616536600751848911589109690604408413957216575939939539302743163783106899192949784812184601566179069343625562413955075604538544531323504728360642721436722470594292131377669045886685864302133860387877318765208645667711863985919042417778483023860726702520503636368159295256000454878703861088630021479867875675864828064100167746070782797862911561259165110280850402362789214265442550294013306008157477618922925747893588200631467192059506782621093681508873231985451859894470339107008343349831192810907640314096973518986871473870682928605955238483456652778612887850187907673282473431653328206831586870119438108182106868297066952946888211980148056859364957391888086357843597212856706213891346691279267408416890937688474854121249154020032601689379836207834686544723394774634974269588544182835519208377174179770450393475410855829989542959373822613737695442480341398165379390173608807439790353041195702671498991975824415917956963771170420799876423942866318185816214289731402308980816334685705754367538574559830838124443161856917030413399446024244196979514994770780257902897897668137971378556387918959248968184270976047828227734831202975360942087592093654434025755259050326317280600622086681511907948115930702349555699205287131752465115401943700291141096100193039058971943085266271159277624723082905395020024317463287683958996627452277363284083420042797539660549187301194328726085682173462737258913117041856286109985466556231439526319790889823734990471386343396471623907414069299506820551907405300838564360743435400607911728419757772181767940227824301779563170636830335485860489496451211859602250351156397264179292571600726404062977645843099291190063600535301508222950139352664019812754001225326718332731182327394293203970576664123209581392720459048739870267347125389062099621395179914925852629316026340834923944860499123408788648021665033700496850111532007140810473190930226808723889021854688982882055511523868482752502981320439660519003084478014834363551881758120922228762538432706945337252835682423439661005962739667828525787892106717067802448522116332446200159843629605789049231920398783951590858123893760696229611547005297684165677556434652091889363685634943114868092725877787918247367756529829547566147213468362544130210189065814818382250811419771843475924945946049863012593001017078111722775730195990402451473194342108956015047878031970464821216279433086985333710625671585235082675051794213917552013132838544137286121603073790637133560717374447642610933573318153524953975371255400368666867461769756657365333510891136646390724271123151032903585018983730610597075687239092173557309141042178377202664879167604167844646488952355832680064153173440550357306626527346678969148653844939139614943686764479924820179180457100316319644794886361291862045177707613115567773775517028853077396741460990778998608829533694202557824570048356468643820414435252615136216793191744113517908974265482422309065174409660420831461596470731854702536901141658590896801514816838058132390998392867314704312836799039298006370961428840797326833147576820914008858509969875378337608449527696429788332236280329933915483005262728840563591418709302364502510941333417003424452583756350440183785140423278690337693517171227238537062476293566105291814621474209813212366621415973205488263581185766417153005013702407486403812162195972804586350874360728479675695104669748219390066149523260280530124766987667386527660017823737435540778746789609030367807065460359705856310687652948209222993593486561256280583910351488614770464165211908272191174258516030366257717179251320510851497150359198066535507858831919855360418394938769928028452411586933434128326200894261093799850289240113183215153629484972093053630724506344022920962083776009601776438700850622701829628439176221523183263468243944174985035315111963137702182834489278801770660198327808961941290575107468318370679645908867068932038183523890691070330463780932747666831665394421113126819771330063011960539840192000945659606851487655589051624275960250270495368863800031079518875181711773964566447449753628669612603704943241956777772950601026383922507957395248802315952085182642686781644961414140186798619883613452297394419205125632435259997549672519206945971061480649178400190820089222863135598479674695193089017024519936860651072555781512213897483675150547074149481582155611592847464896329728979188414944097902496915366946270738989642858067036579902803615223201246523878015695446274874449947342964896141792842052177431521795104375019280392591154989016211228087898842246069623497652172472842761279105802641079198989664727199919702952170270990832655250585071620587859494610786932831337511016353828359657637275754995170614922949980168548370466731347499914496597577264693855978087443553803753919428656712466950760840155836988323320674954735053727464717390736583482479289022662764822097805458764949329969720587352097104303592492704795406551386317390695592837309913214357518064379135906375988805335980809071525391775024928350630132008279524478966023532161057510182949343552916217840427863235985851386960146609380501586057441051092747476404539939614683047904383148798685609271626239930662956963074009352317467265733890996549098443007178856226132431849731400897027926307808049523877027953153504238915770457902816661986695421711834781322384647554311801718367084536480310072365622608332903817210519359081407615253447242525268660929171439447947687992586781865092005621097426275380377760498879398647588165819472894245390570389067462691245252653547369837701186249387674367478365328746965869656886514666803826931792772831338226404195880911985261864268889598619217753747328067536447635181472720549414617733376733305977033452750590523075092983490245177097496042410904355413775376360547318264615931238472491973249487926443699541977962928596405659934838072505355029899666965091212049683982206016418765406823621374434839778027023787902840854233663910859072772074467824870361388435185687094871659087627185666637273060469491674027223082969194474744344126593177133584073973796210884803478189149108601151540659617110943373689724591340398283393875295315544168130914582206516016800755846297483301087179144280533276080466676133088087613702483424478004630597732765480523273955048149183085513847171981159753412088961583201143551632522167466696428988782691258421303912468263954013671499235621776129011038622330685367359429044823054853674120087646792065084956102951775325900538826497753718239124999326177419484242927036498476085163128305917423328226400525329995562220233327631206225901836237701118098816517211374263540575151165966567011147911834812982474757894556970005005171531326407964929849254523191691684804914185303780277850022038367739679742763445749975610788505608778495021120671505499058939152397213086875730159878679264024380861726577966268600030176800079469394329056277994072882000943246127570128023484973056175847893291465873775838854155839120109018903724704446857139752657880620701518337180497959090891230419358141548894389937371648440368629935647935929227756914104993257506177398179233819319013837455091515223635756886686383036127627973870225932649284167045549950078702410445619600828542967931314667795164044586085773596164822345510619198680874101548830327539206301633515700966092091720783181567067963727766299181248975092704729710312837393552554659195690990296445067811789232170625624725729373477657651049373589741317585284407997735759736873921267662427962672204700523311410487868755275372393982784860586176150185911312335080141790333642535251850653210542859955966425758396891020297059653776700616333147341287317155718546505855593320332528467372081256373693449618413108538206968405656692095508821430181526160836093561992850427439429828289044863503911584139170168745867800630416097821913474915726150503313943694880111125608085744691298016704513431329016347296441035081600593061804483169780305550888589126956669492032991290549400697119410404263436606005371590558113647305307074351967091024932219522929693953739962621148431581890410828294471740637313097770243429791883252053878407777475755661312323537696488052577487794555573061323056870277125951999263697846963705569248331473241329229105179655052734912213938093889928603258864984016537074534246942758219776744770274819266777828265648905389248614605017067494220465051909922968534485847902776421907470799644655069459987285172767488144677441231633434193501644240797480733788037195173463305005148659524140750067173437361751477925532330135340372973404322608327612521261200446925811807069283083156475855116032203501219385376778642274682169237186151022205279318674951510632897537539254618654898030598739323743625931163790178579645256447302669543775406909232434063448099996421389743489626220536243703430872504010361001411740296848134180706442601976425279624748855680095926749375257585390958455812175948374263287078032612598248579865320662982558265406790962073440563570061095668019221756145673307479201863093619452834009547350740542768559616401780444463570339272315711923780146611267417050214343944726075268714325213126286010186233652081289090118538124179720362755129324303560061820668530389828481799180016744399242105891970769885550109974301909576878761403805063034022260980892669999727331832606694175803545811829710665360732664196703817491086640638722758663618143815787949756756879494487731032564288380175848692900819876591952475187396045411010968410018808146646453926701846552595577181561403910907285229406985735734260078575715083390074373993123825121625616180001377227917861028548828683654605707356178701728434537322254750222399187922927362977880341826564851180562565621228100365044096929763251733168239881611512558195760107498831878196516397991285488558044727719964529701608290143892648674739320171171709573688996790503150686881186579654555322322697323127427919938902563464278701234248606519359782419576606456652796174166320906022134475241378668768269111850859123201915487971731395672295766076680167131718301062860969852970992304374590676989700915213917642498668106757055011583559896061029248561813862776802797166275655219754337289725111789417102719025209725760691682298055522627569111540736296998472856754062172423221385885965608917750950081648509523258669337017895804028130972125445125900575379358550215617763655910334157479670323437206834104701989331719107943458204074189989735497315290850971935539511263250878422255452222917818652573319301879893596108339148773170539458941793043732834573458838346069755131602908502202546421661266214559993938211821222087893352900966602590873669283477009154992577659754877967216563702368446760850113864512160176284724815548938828252129333139589012882150386487356366156762709352465863066209771985898621307510865210114665616609122512015195385732967001293232104114992686203336978232429749405628651778359818872333349604825640909722031329047377218636973146238631993966082296392615328122412429641345284637616458181749686193199334869392532276708369562151851745873315054005968669243329410826456992894075984237825305725723217743338343236785646340951327362764797526601794075094948667340391026600108270106072335734136828694148291803972020566569340946629265983997122253584024420760403237301943835503394518194725149035455407059837385152277334601772562177355918668127541246667562640842328167048863617697039997866885072992102267982490348376259071864742593920420080345345903414221259493734922000009588987266331128801896983746656049101322383835837755309913911945122561983033162195940393221683184336876949459287034186801108572295499257869727278828000951864665468294077578571072388748985328418134467336901883339951620123253915639606353913466644656373103260405452020663185014542793491278160709928785591477137242001289240332168461296593893718014343957789972105155689348432849586507798545925527450898596059553340544761704316490693767631558414173993573368426459838801110046307551873702241337242053560246467797379027400451231728206611493478458571656960735958092924937180685228193376751974678735907524110202749413288366749849222270404867326827480923435085473368638660635970949568703924970756646517849646424477844824686759718322911141423745973435058134393919167626009616957442063004344525224675093883331456210150151399096000190775106424382048400277870418418943073584649983540378817222770574170327875565724339163096269096591129746425614940978648814996038284954501139973513667533391334412967783605075330133844106225297744902936429928141753934912040711764222458365139676188540286641022697947211608501830262798525883551421301296472935960397719733862245020054306715934460856153167752306988957668084357281341639573610628267084919744679023694612804023325499702432527360023900185815103385874034375625646021245908648451801024727463091715676957231634250772915378400353725494107999048263711197581147579302478228333474756059914556656059834320737971469470100478257458969708730157024349761986019489766533114241457984755766234534927402220172390465809471373748210810858402983596189087018709621367965807682865373034120210325035552863844271290464782199106114495802902126917040907086044704768631534964628321516784824275712114852943303806487883890474655447420573254955819082864258308071785650057067991332684291616916165842847013817188667311302259819094221882404763195955368936188223433720567338700581927294075535616500940973406347522726332916969091981183068575875262620790913999947211356508396862589702546025122963062744220719254801546198947702831896326281179835130378481538209953862518813868027483045203704834623997034154286536915169727492906503657018626553472166952125737926448507028709154200955426430197297096625164784138890172473174317151597803390984679298438707957526547301808505558935420096144458694848189124967743688180435683138050406747336215266087468656981707462232043157880685941555193315221473231616212256069548530828002298266226191949164699059670494391960083331501675272692326511953513569975374027887785557895283769274820915804825165159498844309826193588938209362003465049969323995391690231798721402413865814857932380624932051579166313538519052502506748917611960911004467587853696107360300336101873105527313652112610906951929340686443726396748827583865339011572791863711630726430675926240537212212808683087958266428989315842249087379543490407412828263024600119980280967709634521398779537540213437432979671995858742072822780470021327839985774753492259139130074304877379638312039177503520838764137444977128726903101142911285221367064341702018741062679604856053944880670718119320926187687523443609486642200459167116355762074379855989113505230245482820008520064400825408070996042218774661707714441782946788215978043865513686118981604447275941209673568015273020470893110974961031459521803053276740955545759344907502030088599529099224181567941323696464573207990397527489224568752873721249311922491316825958535289261632424311459209178923014213866578231695099769283525992196999733771019931133215156869610394867957314252018231334125618391356225697167526130901153948377372805898459320805154930560650640723199660520577335845069377045967554476173892532590626393665732382289275779180472072942974808620437385807176013971981312699934474284261603974726333188436126795403136255266169962232907085220456136978674084193963646111713813232794491093381851954991298247306719184835162273141500408118398162739715742862029838258250542353026705701744254326837042812835225714359958462392637211129591026751616944527563685062460901183617754273675415489902118500168657410579767763220991259048477631270602941890067925490353838601715182020751595325950674803730500019853330703339345035208127021383311123574338526592495662782460425514571484125817875917961724157520786795935681667755100063663680048059287222349568745872927026937418341083779636905218826621560510888080172374100871389005068278757750891840503469374202838878203873876043103215486254153850106205106098183785294046099525698123340077802764665366473379140231141898364301427829057695752775169719085827815351150308718751074015566506229397659010747777133552257940883272800559981390119527039497737274074770552205645005104359437102703002221166295017742426496462229736536376212099178356588347275857707341124501272695499870765671152119979258728707560529094085983502435237079451986915853562646272439308894079401851402038867852466629855280291197798135049302493086098195287314564155628096131556014811440693385245919813665690156257206471687633066308078651737051584867445458890453941928927719163328515307993164623405930059579059567291967899550141639080759871235092321280648999762316303777459498960180213863977775891021393219185173150244188414980066560532390171952806195592359656925611595142752536788777718205667808338412044071528746847738856371465285613184235946008034414224240976005993520555055096122078938898498398821807825435061238103171209549967643422749456413951467358858156880645251757386372073530527925824749950610419879254440406903964909729355739153386645602187901397737761743592304991575628736472464619021527377423596316721548036160639439353609966609513703283022553890244618300303661930246188254820140058647225421544757454008006424950305150323854537613269149304833394492700746663815266690346433044595046042037159170918255439994292862829158960844688216286610050257709080101441720135040566237520580474957220081771836270022780096951709619080889698629612563125571587213132134923418795455172977320372423121882618584762902517169708045976763539714062987509912029736350985074536864742091189243789039563477917658745826502730904222499062473258753940136975377547701414444316221970259960471684952809236834353057303969091876125387444029059307933112349510693226541913538167552088950595320420352780132479460241853418268232723535025230758217190635899377272467770584388754853240724902102171998347099969617945182556101252904113684819048549965974257557524923445643169308389300346158733608755674812343817908594615386110162246960366933966847385847022562022955029236514248780058797658780955770793890985014921830556951890744942489852576267038386825130848205391138392788716263260182459489938373654133393469801254745936527492849269079842767718284065565011198557470994776852848172820350529604739142008917684078259286089691920204437733076857570174080222147451859814564591265580756960134718072433739363296615092262637319910273592160365433091019066491073611339090645518863308148861552043462260647664011792906628104118008174575785062295092342676881654602050268223924452595592543433310887118520519632024521344072618672045266620023819328170631581650239275426357971047448644819362148877783010249360741573759168184439468185923806701392707306149075207821011407008251779979025842437889139329509105924714167031629571386571142114991330535467235512966902000140909022869132068574234376769054032464473762866841999747837973850716637002367974644576045034065949182002389959219928622861601521248208134605411708456303289478861590713927171007335897099526797374773585184758197868061212380493689267348936746871436078799966496956695397026701392040877511656963058649981075328083374811724651121946508038011186115779795285960437866226034168011403713042277716485461564410801980259224844873484689584786687678401214004742633613767424035876629516324412811616734525028343334313471424902100432097219650497581050677496775147448909979738201286423083140050952132433504120026192105577124531430989430417591482833863515895238827939989566098286582968492196589487951120133974415623845084568541495488694080393523267127448490887755296684657936863475602932907339472072354787853215875137880848503093081506236050939719439220018476685962999699654576960371864724545909039410844900081774314241214785093881409831758465886707059201138162076870181911905648313636662400418529921928327413015700223234837029836887586387491865728876412348517984960770497292905511368329114135106306133272490579795309997494023883016003518681045750239551697414972224126376869199712113466874543512599981847612003248481581872517516218396743998167843569459521151514797845449440595872271866215265460978687722129502263114460924897525223736095471564766863962588816595287330916504773979659491257389163477197621988531945198171974793665549947499092449740589691662977746947307426390960373014766338655985996592705485255901364918740292015697490161545654003861898846991517066494263671979538349792637660566306268883120766726447110514512432012602035102185693593286378827960174442809934324623787762066132732349062256331783669936682509843969577668079102030078117852078909975647191180689397836355308219261485489053448611983769229737180767022381043734847471556239212462887947030409148800102161100899346303274440335968049612899974657171308811568389789833517231267497486159356951193096627415545900823734821469806497185643452658015314441440105852419488758347877348373382282209546987951291139438726183713101873250991176791480647997568924249522651188602390373171855262669976057677469268608916756600345247487989309482311022546301809055255145612539347198299362717366856441098381902407643519826189255022823237108908335415481552270254910444785715151509681401283181414555941159955129334783824144770462476282983280808632390665964938651098345065334253057705721127561370358071034598664259233300911091302918383987568880899575848541139420887430376661117110520446507525717700370990870047227758296840232894574873387018508585738369210646531272878189425808502389892988507657953773204899514456939254311410350023781598714868748918007301181210985191675250748410873815773075677510771402115947312598070608813971675508924588377894891577482726758595474399821468166653691941757309142652265413913891795997300066573870363255727757292654288194593232759369006769949297984673638666818473890208003955965063928839574345625399785062624327654707041614467115169117785602308615421768586049547296074242267062628027606220384304273875670926163738026992631999072374293537131551959652392318329539179520992544738888898078568925469428649565720862478991906600737162120631842444747228051267789363201535895151747828258049447911839389744185051028887761371518318402767262560253016897487918001600933163865423397625171649959789991337042735054428455354676954222646588593879505237670649716546883254876359291261281148474456298687077384510826401339827185291390515139861369716830849926203539871405376120504803402972069268162298607323356326296042775742639894011097759482784687036184145442825840311031033101851781384185057944074497051822931164786786229522239511530854304877306488604260214126532096449176242360718577057564500645451965696356238232630798423928823807708492576615498203654093720593295671206194229827335851196152110975128566313940558402107461948255188121825673263951005053036254390377469975303695104914224621803724432834035441915837204503125375137064130923797294001791840001668447792908386403786434167495263964074382919568465506648953394245642370161880562645031189081110314018548967945569914588860911355068465742772203867324847584374389474999509504413403336898147357730098695492777531596030690289043879058230380155461673301071846375182641311913472544271103561001735418555416371037671368578182724169387138017903307573049389719040698045981455962581464884514836534906911171530263207059112130849943751141512330769879017278326347444350515025935306517225158024547166929515725964803994123172642780667676439782701910819029898745968584650127793441941361310736895190289471758981431613458046011251083621474115693796211121227711227520109471293467663280100320683215185070407288496202342025800786589677368464711634909000484715248383987898696942621588874771510763934421778157281222702881626638126592563153474954033241762603024309603103689672884365019100458380018707616031855933456727252894843849093898639521174019599907511738955159369741418043142774337443515880065033968392562767892979969328395943852126283236507145274361404514051156052110604768203762959118634393016708681443471767968998895676311119591712002826268157233488276496612803048709432397354716942933923427136628484711693489609561798578591566597483685891827733733104539566817990336032788720830629382169099401859372731426427852229687579108135538300532171106788364838316726931936453697561202015359332236448608968373500782107453688353331276523042810267986004223514981871331469087417943728347550313955945324290400624216114117872020288536957969988547778207464054907351380306525088479592178826119980514491502227189037505252187209516150690348951364669418842371448270485666743281893212064653892623968255677305730057063740530980212005822728059951665638033666167725449786927053775686018107383951829580368697063322859466947474185455602919197590740210465491472913082025341466615591103354644060971760979760960173793095566386860164787063558322137955959220024829563098828646117910471931890003223094856448667196175232698444789742909651213997354679901060437790914047136983247136669418149820845970570341514041447729073764852186047859323907289526048378529848493591555373967193904011573495675658236663325717067957990065450313084091077694724535137393018242223722668054838467517284421841771589298048422625284641154147588834293384353670903697672537904123950857482877880906641655877834374965823093774006154858075510959659651570331405604224979025758700475420685667601455017860435546608215518862023992365588993182036603846443858489082627885290811103631081300579163395626350314790445849601008106673313743651281607691833446814416780780696751280408615110258744681738618508414439232893668930376179177449749008973789392534095282296612313126388535650281983857103870750264463358343722150566416445552620787319732146639595626763238243165163113190447950228562182724042115337418522620304654738000136686937650563405072122097550642828917566150077595140133194820798865972278848810095050515031059994821723643868798675075326468372653783872312037266415887820296193006313949016853401053835024402373323840610902142484479716060314825637654090894719547304064276460613534300456346209361214384755500307475524412383146863835822104802710577374730164841049948814217840442514228277166720235005547288751907949516373675093012636787502877789225847176325602449729927400982008677933613020548500116041596415807661349703444913415194232402558859442453229375489304989617771931203162189143165111191601462083056408462774222627296162798547329762089426227738354620643506399601709927549722653527058711714114864231025762652508109190976856934627453265303665900721230464040525952224586074139392904951914985789447383851118609916069173096794911745743009380537462305729849187225769176244355051458301553831476943947685765926983716321947287147189875940356434043022662801584859071583295237807467575153630061798353619022462561665091043406100427409616450992555593703504201446247164621408207673960811925645601870915461026541299607004713490798826420503191441838825047783410385121611270246586121630747817878171237023989321126164435358909049518624447306813327994491076676397813355874631210557906181320909530079741788925742753743088298939578638999395675116725472673622097012125947800787134032114540058680387873692520901656719589639141221387816514003777273579737563319517752413924096263474986104912579845985354254590065279622754960955901728991809949973917545321803264793470547406427128186763126232628487944479708206788793934839594177738180744395042507336902775447704087050968462445063317842786705740776492040978705595240150050082997877808202390821046532011150028500853674891512284257836959057325663269287619802400302083125384936862717953928079473621867929013473531918517799498639144560012749548354118410247140104549246168609783694234878588662305538845695120486109764031454500783506478214074317690727899893667184271016143733024302033111650830777906887128953981671950697453757474221757501024047044051065502900075922825968702674476002057800142798899609638305401779709539909712523206105798016385174153478617073809375346781386657902003486410394445195897148472394313327060079001831745816280297893028731019241060293478302912766030914714743878948140207741396523459400526405462718132856252941798311064555515664410321384673345828817387803113233568435520821153341792782515208158500342607863181598910223705432408258664358070778168821277871684616426955411452092387817795306329183233973092687429552114694329220014735495982042154954341577091602622852230545365385712880226387462437110943390230651745975539171521939297788386276052032651766751938229618829957610082798526724073923742992332109787609083171891634739645830590616900791419887707406329534123028637214341659764848297293332963986334812695881858658422444713063058560275370741907995456329929373235397898448999892567169390628710492048081765911043204611924966086646197426837079436958223553935435237101437098076293517523330779935172418015212465127222290066156624890758682700100563566296587382242446071188051151361465753201847216963481880655419006785784781466416567803333544253458653873610265997660514247050931970158384631686674022096261582097911196865790453337620934413256080612853961718974510476819297286849817580573094045918009609914471686799449501392386922858872519959745520772225299217391047076736078354502106354888381175997280098549323554748197474525036690471814592744043083935716361552646481729598462085265450404431403933888321428406379411513552234294497782804500690335333946285919278220328570073583150035814944573779725348005872603258029570998031067236680841100621140015116527585875528398856479124940245366677349111051577107351696386709961733814292733077629391996876699719529340340876007086739113689297889952487732254710476054761615950746853098096936137896793865789377099357297917681109531426317989505548005487013769128401258313705761402496213226230059301888402989546770496571348789096089543667152637342669963066180308930519094641937521923734320739726309119038425647082831755181217827191937073358690766272372426539807575260141409908663816648683002343957225761379231234798358185834764757818602768957791189202460619551617313698291467207472504352077649356308770553924454646402633785873031950052164327105655594062786839848832962185992527637506153172908499990701595202985265608438159057947232372733666639657312119571067560782955175863003436830832755247144081991178407419475723786572355769461674024302762544589175480249994543811863337064459628824325494793368667322844172067067566876080836159378132329218548075292242965160258018718349609452278110494319258759991519925558879979513325484530127620624337997475976302076601297509215631059785839197905914210310012909659318305547258800135498646080485684348555729292470097280414925981647227211545399914690185092474886677368523560742726237823375246950332577370291219997334667346335493024940527825933388328893522227881964436459672833326471437407160743002114736352588491253597821117012995942084956867485267310344590013579881438624491652854491657461344786797857398406356466238621990662404174574091264732174339217858640488110065975150361521658600755039970735495260771693128777465372496400520247069178405083514869556933727783998525773474612519978720413526263761819767029875615403191132425457341137208610691118729554894613681544221793924701181683288430318652823590701373906246814998854992262930021778302378143660961347238366756250861243241245492043874891922756964759142566640159632138616231761239310032507995383088458651735672057724221614196945146094058849430922763746512060453431287770290085537088125573232752298179213605594658656735512310097045001756625520463246783777093943355160962746943014618002999812889058246876653787625939967170399632596168674759779847259926622471649631573575645488943775946411191553273130930906213403360922082727889276896811994822824562891261530927542260628304865941070636782799217504483167241894727186308416918739546387638220269305528085685513223761479318286453082088460685440670192001390720784596814033880039389406006458885847545947808740730703060379136126583717313623461022713858014114211406529304426103331601408838938792147152543699625686459654593253699219195291414469508209027013105879281159256446356697346410176731394844071731610844231155587377828840520718742290636184790732762284651453815455104158103301287081238952379022375412151389195258256229991434712224604694344297534005460804753038515603893127009740578603658451950364622230428206023850548484831353103379207863564485284162107225168510658552237355184429982756615637319126946507705844417843679621662854616552136963594817525467470491595169542030006329156969755592545979756844964309634581905087212182626358004416325678875233546704469411206119254051354620318750674273059029220909094942091022141348480702855488610958058693389307276438938048716264226620538406648871601619535881419463677693980737456003217166882103422113005333355471092099828760395944786815428844854240140682146764775917206759251659750163884440088365925785059654407852961226948305727260496812459381127403482686203986284348143979534022724042107929627583067812418044409797753982677880055009129514102177749394509608234507857571411580100641615629970609672916220688078149247954737890098403521020771087053901592436189945380407586059015835166785564055874615332107301414313526679282075195304985585768000781707115767393568374498861991954833669614108622555498964485459265294722921056629102576761846479920316223040582046722273322860046998810943278974277597538074375233646085193120664741259426721537033505950961168641293644184667187337814035649402443067861524821872728994610609486420071210196967641279759854447958243331394176052262071212820020212379039626269830901599726400283818707316641288978417564019150976359536123060596217170461783782482056868722374515726365565094542008675025827955066707000468487893925940866626125618508216535813135457505635894019001850235125105598773111971595960524172506444889161914786724373369279345846680954821862234019368861628332774619667713504716031075820315700003965211566737901716159354572005977363517324420579959192752985880761919920940674554576955391364082157206835038176258276382147856559171609760361545089292207314999920208506816717619224213232224516216122422331801657301453418527882151419465624152555552207302630302535656521981150060003598476075737101013763730548007591391539969653276275737018351683416227618509031149109143154163363047856836406910951062528529963723525155047872590599261348611827259435251093849791605455979858253766105320260870976215059952422366363938033765138098663836144784039390731724308731528997670547318192557332851222044935521007018361238316951537960897761865056355430057504325004979458844483233125615019211299709838995273379884289536479073091290052153100001216807853993994871630992791522288988637295980410730000375428847137739380409005426893742398481011739032108689588994957187713782309160834849489471706724313111005312751211237698898273534921482538991469515727924270798918253315609338025940939431331410553365918392890338605896161604184352125916774518085808443704473441308523642491042475814598764507033262406101893175115328035488657097478603401359587281787908383972248699149551701427103919664386163436033108895931264116225073865649845745813160572028646086212927990223386000948183715989099726142944193572073730221299908636582407693663417782686689545069285371806205899907421398151667127408402320548812638539398321381100814267053931383350261828572510334570820675235973370509556645853139677059676581246742066149987723446676493751031673867561948404619243796235533485258704089809916594070363964575763739950786553575362492724093959940445088499064004681632384270664068078778560929131702099972026331156966627962694076250229211156149160608661153887890239934746481855263388594259031392896862680468433529428453414700673604946398701014345231477936059564095236585876251181119894090014697317872314617349472146107146384648028387882738566318639618054352451017244088961763343640005308645663504871987614046855430517925731544430896288775683806007680546283335555585245165116921018894015856477405750051736196043909161047602216432922192851157278554234472434658420185461517366649273893350222988948266020325119238771214057285242767752571806072361283956755793802244838911188796503829931410552308433373493337051248492125286142560667292100202387660711365384851636102343908270156920276362240194667040935430677135477507524716639820302417954063080953076712034864925221104055334457720671100621770824102372435910717702488682907660163865777987554987347282269318521299899226775778601021740436453624567334067897409012312567091173688399808788924752274446029605988257992546858048422527302034561859645553841763826600318545730511053414280706068152042112592647874853271545586622231812883864988226086869579647719571851452836793714166671294777539560346998603213625311637090650523777522083374511049790011538480335119457607779943583075026635869306653447080901264116292602596023946025873135131869244835375478125797314779737591010852949772536702544312987805384043921616409638656529438656396273684421251076982019116279442062426243568897033950470546674024951506463393658363226900996868121121909630892878994087459961474196976215076915741199772575141366859886062987475559513123082093673888168245409717713925160507602939184507857274040764331471587976692485652287529311637258000273359654154896844344962897070161129075532918376503713675557450089128331208373398592603395020469794352146572181281318984381405986610465261741131937048492474978298165168552121577429093405605362571267591810125409052614526502940251396836883823408992120253908062265459054513925364033378177381146573959431959960610436666799073227028253862719892334756929360255235866825647624909269260602549510318361821904133344711183623163111208236790236163891175453807702184222689741971262728430739249523865086972974573244913153436204502377036710750793807444261580102425407176321622272745572249507992999119925817319702607873252294345053901683595912601055952531384444504840462304434794181394825690501951165821225583773977957507541708294599124629574243827168998032426692969351491530434418870501788873675349262318903584462100336018549042930596769734698714374263180307986677131808715155943209264060479017226017481410960508929303691160501892587403435242956238852004512447605772434657634991756458458249284145308508882211799823950172933560212665506863121464406883679981263440925103633669967239145995286098009716546709100248028043122006752935497228280989885985227855417621542419334677698095803864120983327428047848602442215209738724256526296380307513789758812248218983130561638237463138266583270604521013713522579249839578914670634306240507698353077367975719051636181600290991414168665720124537726825075320576885126524607058607151419628353626661281778844406971234383270127985737883455299038416905458074478393362772780172668704474467987230848496594913718945773122895895421722458749793004906385646737918289170592395147059634632208154102351140602608502954487991881285420964673371474787087047048539778270868706638801707880656370864949936949751400730886080764956624831147929834220874724408834563289818553873499703393564108304976682110115021728112506842942458345050968156807734466520017229871010124640870188366404543703244951994246853813774333254349816782748997595108168365609622195284555092913148586165737613444176820272243300366578019700021419228244996618118155024491282803575639887502805529740734969992233582843285543707736497961043191698869728125573489348884950360487473584318247534814874713432915380729163643271588513142148137805726653669443596697306626896912225874168643092765462555268316279234708055703675512533382019754001879250532462090998839864104195294306293172068240300963379464149053497255823844912305504083984842935766882819714276665368652578786937305251099379911270577749527520427677096258163412642506623935140323227447741883803514370031788562128149034686592630180932452519641485675424633691949857983890182494944211371993731572291840904935803186276598180235432495569821017394992045916549744277002695644388322962697119256041330537152103871531616243376968828818609838564353386370905162891542103144247981102170522879468102315360483449507118199117773936835127585202050172559257015606459737613615346462886946101880232667794775825557787636770271653109367461894744397286249315955981061791851602360001781303820599232256208207297737607445212731373946396613037075064036594705114552512371112726081237941245836160020303163883322990335339279034004914309440409610315669996038669013792595533083875532609300423125328408325097923232251062845149710591514714186196313366964581304111147654212982085569174078441439079530415856650689563137797607673064504731966425180665425413221030016388891769405886474824972813459826633786235505228623374779894316632991755752433695616657925047738229678645653710660545390380813806348516755648821335193000692085133730120905301767006921754247799840713294918197739076523738042295417786021656821388153236588883664060128299811340175477508087471166317432711821984452610124559968511035759183605628913096315531617562123407619803401969897079509728944707253499859902506830063496179358397833887318824607284670012396268589021209754487189986935222242050700496840275410987221015702071825181661340497758230195786021675864985955993643993697951888911162269121499105377970982586322457288462164985455338024591577647661771508362625549018573752614360955883556131395985459076043161978150389200413304120333815102962560848385711464344305329730485004760994189968198558397648105151595456460309209335205608950220999605394789032249737252473674759090852080839795997796136979255568359889114057664352316276518995044255810382971962197753078224956964216709676207313019011342863933412576864678721755364365176913920304528481187974382093701709233706691269066194318462192451037788231321020449983281513960888991512131627623892668019669388885777011668336938153443812908553484517180071685838532671058900331446703608324918789462325755837292968033463884502596713093428866589782806103188226944576572126778053633714702667336961763133882663211576743136589595815069655802182019844376241090969836115463517318431622721143941482300992042496985558068815483859356637397603428076133057508373230629426186732080912150982051631555373562010522944066311485800326960928614987430357760580609361647348215568677795124192302330216827185562193991874156626398356795846396352985258401943827392249503095484388362849215505597262277781495629666189312001703976030723537045710678064333233303235955708665026343196026693749164212201251020973664350357082983970348111610377678973043157424678689177665657025417083553999350046987673176137120926954583761291957260689324035635034142436254224186395065681149760044713640926112847431412760853425948073519351787544402778550272643501015194453487237890154087287656011498892096608928970703421883734427711742746578180170476998692880380176557130119806452795843010378078047906319357478445483527217276160475782993406283904483605660845832106915244183491577117355591176777253884897489190013343557490423940853784958636324699089698417020797888053167253174553894883844164716352377229516774009505003335411181394999068667110662716310494297836217133278606156227830610558067992917439619830818835859115360909805478755052451363795748294645421311816963242769111493320107292220608538941446382168458926838931730204686948152116650656233942164039578263393874312750627544646485816261896124587187268471435767492412250586881546861453268165631329676335159147794279093022978709098265488786497146585738550549485760912501935285944943521556456348488000042991879592850778826202467313590309489378382872571100807744930383162834004583120965182777316718681624922907856355731375486025283483878218236703855374211380770090263129414816668503887456011077078525861686942463708361455047269861745401716975548791575054111663454740037773585168411059804228447354374913158535930933736833026197666440970120121852961203726447007704069068966491526326763070595139863514094362964113109518273069197265216208874829133647509920540346765332150170614470173517711554563297879136027861640514530688602624990251541001767846490678370384798561009655772109731564415810646666732502923416586787109443911488054293611960584629054938518485173593103697610352742677425173241722717206379741223079699511281687305383172281766732544412917390911811731430087418985656134781786100613341252740794359741283436714632474435609524440540402221053076837848095295790843017727158583597561155465511858593298323294136893612020006661448213384748686285740077060304063298701217647863018738190301663387570401779030960418269760013714561161741518835067306469733845585517142948607456452702065169039500379834605773153086506007321885996381071774215368714207751330551320437649738181561809657304253331221763147688225811842811163333504339658962362529340440379860067065324672931089642334205966351646890739519274716421574398315439353400878132325067705941167791270172203794093022921195299773923116435705727269092140362534175292920476678224864590691178900043575164796058294037837469985399457115386372778996107387258260310548834296183916086201839837013299021168721729143854983846483957200394109671384485228308282128458308703615846145599716299197656036291713393342433035742777304256578564405988093520619051846217829993298748663334137441068879782361913020155108299058350332429644508909586660413085210973288757843101189572378838111733051143880372854716335063122470414792928876300600016844336549556889949176258597474191615050182951253810675248989473700456952825095392231807536483031501634424675605846080995730191521694298487091614908954268560294072077224046182018716352290412079149148611217283433749673055895600579191873546925967823733310027390753831269654830367758951561488610523216495873221216709049808229609220726440588818527061313383000409845571098596246221295379312315344456384809727407036468512362920515327055014974031975353416394670213701558411701792974418060764171748397242325783627967866547746205386010237550548569063877535503997570573097494664293430187728375960261483850808691224823837348225598047124105386491019167467452464636381479241756957189056061202045365212145522062078271305060414744250160423588314827362584179834996460623765124463310192101612898017317326024580505036032031238575340289599357994035553377366460292092008978132573259007124501060554416106923245159320325567647262112388268861931379927243567894281130356379815728835036196397205728582209467812000548170439978248191112263010944915873922947846732799755335089717210506176658605321407118390084156833646319244290925635097633438552429351972212188328744188016457074288526776455996018941543029026469700681008237583141403182312547965145650161839430578599151197811171691416953663582831177342838917910026254777816889346748211913777102287594855921537104603281013885745158254922368136215009202679003324631233480500480318042324925088869848748677593586197392370342175246672867009637216197651932326238188482020803240908335195801964794892525838444419579075353738206541256066551964194577592181339812750001413123435058829668402955898392207727796965479258872403395628911173530843379570015408907436813315200472145502242621120310222955985534801187520379484873897672573531337940181447801527886828517490575283703037607134366859679942269362412874813109155816211340518525655150416403039337866152997991738375736348633244833380921586422486554083284746359190274600519891839089954482389800990753188443965910351112051444890467499453692751776432392731251054552541730207009248879069339320500411111945140540190644042051696571611105520423365700829867217188873055686832067572581696306637292763121256310355453721196655568256236557107588200946667175045971990463860551434504477105081082798559274000506698687421858891555891088148936150972006092854719587545879313225275926627651986114444514055445666632193181698239228016248869937748496083292249375324044760916442887700605092417696458529327963914913681263050391298251561418104815407476691315987975054418703078153843171684095033754854103948299830190203970120871453710246858426269729738853332211676472823035926268650300497060557252193274948515541770556286804116719938042760924989386061300580344271059840807844505573339018005162452156076587408631298619027843970246945448993967534113562210185475800033881828923265701528907288002991228535315855683261029153344780972366998714932280290351251861016099287169319282480458054626656682144562679988782293671887826083572254954486862822387712597483880829740980859633120921768352104561064358015714147780188120816653339476538878376371655351442299558064677432367396404454015895714163352180715276866583440478771991586007833592295712354480446682784121069671926024710926667088109436384251273994194759380614027298320211899415588484747455177497413751365327448538595917786718436021942297269500260903320057496298103547183216992450311604305993779472948204936339033670089744058461474783472828645813777190262786862949717865617539221796655715743807614522329338427713079309798670502724574095106541110117357312742730337668946349943298398400187813522233209998507574684200167239040953957217996080101370167689803343043477678761786614121270940658413458196753614810958355061720462741274941434030980273193129647055726786058939165922540623164926380529949157592313031719914072737917590133332431316017406415554611040245431276159944090934505177942531402399865096850086025164624994161525685396957383810770108520922272730340761283911837534345348090389155677331816670862865515878200044058150538155716209239905166844576822194715829247911786006415890245422306304840695852988582305555808166637514028174535128369251531544528921286095180983207331321777507007542837630496033647458341090830581259153244522419345820810398906541739879094051928887607128738862970187420795189484481132567603064632591942409307266687473763299290437945006039980204973447821483704836194467740441157302639341697993131424215381898112295980079677358530574414090502756257742689047302645065392715481716556486048678810081519254617817073554759832236592985775047210908060720856019217393457994527495477550965343719687851730663783014540279768724368825041559467350752102970256129457830014125442997232802979712206690878153526752595204053524860568588772370950041795939416525414345660775835026897874643267963082927921601338241691858085641316650062215319005584097090923843993197126555661993134249658004052558495217059362800080267014330356367165325310564280042594049950804752497517369778562459017827379190314364248866737660103550894476328501357022543381443340654841387056252928986842876096541487586681840793295123420167370560799508011022692257092383512011602350224355926971457769565973507663440613326888733858647190677468144568999650750169443827750590507880630074787935364702760450994886556670582143824734899329866005212829569400119155767210063373919011877015683945443667165370892708381125079418087395597722856070824977027401703278227163961607138250384659424342314999535449454013251257578829176172890081833074210131157055321910868825299217797006167457506234313688216701481305383859315736519805783671680922313956101570832344431921148892674267144329342897920158333576285443990653015401572546711004609659372769336523017014289014147678312297693714608592125381575114987621141094096504144377422130701655779015174405990116385205320776739914257838280681208811527336815836074328452111262603173594270833436415445396241575323288528773178349220792000324489761705345069123183098194967289477559130676734534695767428948555028498065754742364597756124036496427175277541515975423828431659487085112507703567544910631110183669484436140017532911783764549582209930259776731578662273969658018700696237406501214210221819498364989207750172995532377891448293803700390899928030953006203892676612577161102288491592812454947206518650383930773676627407316378317507566642882950929013091756266509636673851600344827965590871090730494463245223154238235962178632206280318005091813292215474287495325552198700453706756219478310034708347669158061497191522197197444784706975597059830107289445194009534913612732151535776016606401552810133287981566734715371067333250556886480121260868176616189630696280619794912523979199216085333825797679988431375683835470966368422173761502522005617538131467356071068489277704202519652347423654234558875075263734730465364952087678683210634488500293253486829781211080217624880730189566328053083046750320350163962225131564766601873291042870476110971015073687145124577414047083117174208265004198767318685641848024471026411223091579137560204021989294575045054728458136828647423825976823530085175436786729849259752754136328685564524562645857128111293726917266901511471913254024106876445723499155639831734368469429875325572511279886679915801838638228955722181452933313730019968693051623085686559035427329020181378453489430539245203796377394881459821086531064225464449246607963594665681709521721362293657515330343417231215326428118723165014060910400714449336726976453828101567940502613279394065870085603440537614089709833847354369754788001466518223251723315157419446687250070388419768873543740509772885455911044465772766739053554636052714463733026410739630436321777485630306143162399806774596781935192891237996652999258841679951110727911405617885906227382847431299132165570093598141879057974947445063095960440909046336431706578679482412433433823278975800187125522700890095974477328053787854375088349719768829497981659083639375344365207813922896369742353468858627628059358738959576858352154515609371376610357154472667111091473901628927373767287199155747650365995732707857163089589968965067129300021217538196023529045743505878935408667360315305410813637628786112524426119363312450790536905749727593823186129050845371725585679337581773688853472571496073353033611633739166026410907226252518853225039028363494097882009698170492406997058857785142815757050171433145374010729702297298396695435439472786761638424221763039314750568675175157211023048274575501532521450757517249920625954803305554240013721369093376765821436187872201030768755268285799534386246908530363567665155722718956848843857989037719653675248535437100230054993962096993652334510704093061966518694975187515688875018715852446441082568494617661617839625813021864925306591046375615655703478156575795865190783322830994828653721225395465149460286057396719236441943157713033913310774775558988619131160842293958144045333883127721066749410751654038386637103613964812031934914630327861715171213815399831394217755490167587707918500331624768841726446821492550678366969229721012576162644177718642075917554564029233027197921525205906819179568492518997803712196958724454559160077937477842852135798329720781764355719826374919535795458566076134956977205593084552288726316366154116389306525617972001363046913778051903043642321448396713250149069965761023324198956680334713098074146943482650577515096252415318232714265020609423423237496437081230998955427433306769138446054002664133275386352829251320095415696457611747338405937515980160903814224766967846486157875628473882148086986009239157494619493848006383912992694330568291809329983572594697926774222983149902927361355311860037241790300818439803839674821794484272045182743887669393888253658487644836980900319435700717062424816988960452567828934141686783126773694699476269828592884112117144180691325680882525118702491263201752723097113570179387760170237692785568886347022443011537943198040263778495642939225608553070316958202867207935409244939087499898310466961557758887268285718090104646445228912730036669541797681105477841345007257191697277644702853603288550150500573408150675718680149122406672050573344561634334103580297922223992242736294073978680365793578083890158674558233261040637795650416691677714079068087622370387149589223834924983114117481185754109598340373909585064199148071405275482863131773634248670974127603198233822213488116452121717990724202731345882615371394270300685288524568892539194823422884227326138726528876681540548578850013669204368429831915772741356559554972955750209254705735411039795906765228357898125979504667504708909594804883738750049783992156269758137058319400267090611682085133549097143716725868307023140481362100476473284931196764999044505626196397573479172803773234322632643260676476609928071377520676661760901167888247310642637587414134427006164500665447127735749339142999427678880186537860409264763874254931826436938819721638113595926438076883913761585417533478856998456730187827819921714517788613903983669230433239457676188124149247328691054126598638296128855602823313846211703374891814438895854819281071742233080656749095091505136850757779288107115847187407375416062429838905998420116210125422632161029757308259443083437218602611429137733717765493662407162793004628702471517207859333233086194334212962288277519046367845543455208155756896234110643626513645051659342609836629672170378837149656571624773709817740657787960837286233734461372617149951298188851810941919277034136828208768315519287674548968701342526783338365175511028193620083977356587065196231433203723626013584669161075926165549056542926333096045458575092721924097171437826231464752014959931554114879498058661037833333251010514477391228200429181371930669643939560860559222315250680284267672937493057306211388891048772837543689467656427023320012348920532757458887800230780586650239045633543181006615640367489813683832334951414998214298579060506036438131143257847529612825191944903188658534435533707046811374152287424681722330895394108194409130666432632106259114215710746589637327687691380477140594142788584945072850176889503830833634370255634290252989869959866967608831987179709778318049960983995048911760589395304261973052921272443494275218511118210208693498241542204687173944639165046537187591417867171798611541787211424755742687975808808274441118265910948427621698906845732085706926093304422164739106728653893930219157381716277583331878131310813741581692504144699048413944885909184044117536279245729223559952522559145632257385149421488513911691494336852703598673683939020335101255757725794937900734756775868307562611173790789061678736887725099088481441429080609055343734231746338374145096222615837785832558772990460896857759708560990498984164293372160396353656879434644897563426310775421264223124815893037254682889830137501032901893819891537702813275743973099794647853678325515762253557499011207684451252691760985009906774425585571471202978001085317239426232987764766808959110660033365799295939892525011960891515242235510348286721017715927406712713519521564068777573393698869760987099464258620201283621023979187472708925912151981579736662440773063844996758061021410209844142750877611904144849272870457488962061443745004007019777373742945032733458554222015370970716082429076089058172201710670749972615725884268382518694909143018582616924775848591469340579163444907728636651281888768458465571385401601031293535169892370956389730918785443554440963798657987845927542422739901509943478278166869107924310110617627080812919551614965032712636194686408726069910518761407850611316086353811132455842320247875441642301497433616506608903236955643723697434178327623068161264789455924002314600548471857052727790279055224865659949833977374966496937749643513423970761847411908910566638847799912024942164436404483183954372326524603243349562759860989789153272363661311291339859920773991858869294279329839685170401482493675128476161980501259993384982006084875770551877529888086232566866405547480043979008312106328484651065201071651385553676111852684759873348006874185838877410368251570395491100138838598752031950164016920345949323488208714858428740609902174990581722895994883791106400020430052053520236905755647820663670795061040711594772705190455520426247443615172251377207320243867271145465703107273425612876827280874415902094550479179758804420739171656413202076422201144428390942278209016313761794379223055123050033664568600130647853112115736429952426648676141843544792764858277186435210632094069863231603267245270610259254821052060765270519021821272313910978972083444077388108333699765120121929670885680720371374316887036602372638055579329576201016165353985527242930516978908862210450044379240291035650650970365699177077480554218205725362504606808398997915127846695752245051214754844967365393508024874049800824231440232986859014808746167323325309923364538934552591712887720554992484679355944389711472897689213073739805178839947250059704176885426403149525947894816739323383256229154808925472703366626277568632869662564177939659145159358411739319009808829669680741597892958581915576944857091035202435932472450441700423527907397759483381581520195355843566485417182786901433681309270713485733543768559506988895090321515216106597111311721421579682552210622418069803179627917452750285541235735603143283625136204043337023961570419561375230458250305784186641913928499000658058088387324744348124423925108593872038232613474260898446065169919844829359507569890662504827899735494317972333488677387961921323961903906861314694637890813026962442888686686881266526161444614885764043605624852128290982640592517223756484348452212836333895092973298761637667162904717223538223834204930946447734881752694023398702806419571290909410696846724774753158955079781111547918083134456181880682258725581320255052901653406837531902305592067859905456848902352299648856801805996263518053698326504715955844389029625838173097563385295307683697221363138252924874256940706085189723129423441154422362203237851982208153200829765371276996976927570089496878066818518089107976150967843811203578215861319594246839345529908535547681397187269920885454453532380087078315942923742420760116654726852593771472148569090588574647562247400876699371796472433342765522687982342192904424779802205042693335290518565500299921864506813950263472204625122838154681556409761749198578972991746985463673034882454488283682585443923102214129978375274821238344881455662188087241372604996309705249278662407487249393172379683611838448149744768784830399469610932401111560265737648926758359768480443969681052023835752517093909419707182214320875065789407737348764388727037704224462103905624488498768260497842220526077966206935276244751613427093719148154870150375879187914517458186663509033077845651805031352240547517629169855570145894198321332727703317206701921657209338828476146192924272236649822280288893584292533997526648172307385984455453568984400622500513022901107415014708213218014650579388062757356113252298323635330489564985736096209205493080593528412028082549719852224940891385451963875139512437194313633315273117116963033361806139984088068300287904482178323873116848369847647671141598870813128984164485807176640409642328471098930155599465366137446483544833775303247940909375715865620347682639064346094086869481486808749653122706389879756962166646102001001717519101949413450216949159577831154178487679873323365296735234330474915671065826092277172904063368688175798648543225158098343415081508253361687099337148975810264668257199590860003695523917731010368528559589387237788211031341472560165060827129567193098771220499435005220794082381003634406104227215115508413426599786750942937557885250243638576702403438812339370986186479086237329540342190449354413639315588106967319476988024431503968384836590459476709240390046972247020770983606124526360573861095215710508953036855093743750988648190786986693451226003403360826891182351018766504740527345452966751053668441283559423930907214501451667716554080515311269338971830120368085620335520868948214830895789553280596701106680862364615458945107058626550942084510242646741025291336350078563670440899481967045711982695429818573219018353757990670777657648461465512744517305576897378853186281061407385393664045284876024433842585405767843427172309755848648564548096853243301264153130430671030741992908389085264206401643868827897415298679957844778733622298291941116833847667377052652550170695799957720349530688041774940425520608133567233472048491019336103203007872502279281681016580491149625461057505090716277352549065828671946668696636417208543887570032276761084442894367854832894100340361229170664397664036974295422245978925153643680632955491833519295140518935344174558867542703919168134834374852779503717408879486849608028357086514550541120431256876834259450964782528149672118805158639911290738831664364643659407557265148900690927916948628204877164598340059134594910094711666838684736079118168647669803002745541106712428728035361836540448398328451455258977710969196524317094709692644086882908297714710225761918958242900562788303889184019998668264654316189520594897309155820675749972079688394866310690176471240778586084595353338701741008291341033427428409011039599821044956461170778789037739976022342379325322584725900564472097804867363292491277100986877835111246108451379219031879234456309882039931434483024058606758614774404726197023357437419627312009020397475353853545961139654559568026171055886127594353960472542502063842117570200878704795356860920462094238173637567861857895208663840223486875203484026656778187224663079001621987480739460184664239008737170551064168775710644983971865254072825914234987520668587032668202634936431075269260585985506754814106653870566076799205116652267069090150154376552252509966089118251956957092343670089717583840426746230738368775854529162918067977846658990676235925169760385649736908123077874940235508684158825881853145491007500390899573079681709685731943136208832404725276094711477169352440167374371157719700639978807308987058430010905071694808878741605900651486723420982936919565575276739448422060679453660373005439370618586769335450855598797853678047625096045100681151166026014807780382498663114550295074899925794496431114845314939686764282133413481232869485423479742319304867201423317680340931814324347137486988598146951859638567519060976807368195226529413212489926088209117658374618524883610929992952376388954674902648974592627559439305675330502405481118705278076147452366612646986821056946801781535315870181456954986901922368731037993980764880456193487882279701227736981750590841988794405767398570315016339369528418415953768553224516680302431565627824325563949112072518690238289048918134985719697832167788137166370466432723574276427961798831654331261480353580950654085533955907791282465233248394049212957903289762518667827573247981376790231041663122593315857322491171743617712782492490619689710637507498225991214348730464698960715792262064072216091692319200803448760808848348426375457925765502819472341404943489101885420091783673289332946092866829129092479932259329562981660911644034309863075297203363623397374992692619123047129848590961595753730351505479244401019071306177990525413466163663228884667146613762027391566885456189524390489823712479523245136026864019162468478885670594472692382202442936650287242703440198148292328576238399305629846246605170701598218915486978807006238189462691789592436908953268895999798028624445713364550442519116422362287752503142924801116189774617273374948021883109804666974735905461537886231774316471851163108532966681071886016238041726334898213790205044414474045127268806567389399460381272219047924531485475742782529697214986844066933813406724539464768289549866560998515979435097538303865084956735825211543489505373006144131883583349150935495339023915107144387340670030601424799757690995065701564777550502229344697663986620218578966001028043537952706299945769217954888384856394111046324474097833383182884856244914462168142383051129591541735227503362028635065278329530828139638040003816178978823149326880529846374510525291404685319517807135782346105248284357179782246942950443667832125310008490543292538395187572666375941777453730304927032987277493164452254873921279955134458997504816975563748542217462163882386177368246291985110551529660631804921360398818575367794240214396709444624136585824257181806843033716205293317770929382592282408093127039080873145207380707665923673027823163424171315234258546972927319101622587956892803008029750462098691530401253774105658588028990044705978707310606884205024469308919901802098690981828069738675518107955458369906899151544422788471040799869063020819827555848259184155734366324559628004954722648709843638625958400054503853260408250586039827215906326410552731662363948473148533875879949907331866543060511334283911231127712059952194028514527899549673125614051753203609652753794069110094181309720280796828156518082346519083049280989791107199562572670134413918397654358962989103560700460011656124720543112349083264229217147951864797210794496603747445129082947679448327198419813052972561943618824523949034642356558768647959547370140989360125516443913846096836288038629040540245499249425887315522124525188272666412550279594613994134754720364487003073888354186579733088055756142839718023547769467653189775455090917498332863627920564676852960756253917368752056202669293418025079627508529077030072008446364682790343875408086310303867853505778134916167534979609242058574863476602028848122808883441617715736341937278887530227700848863853248514145798942218734143386348307004341267789563837518574132891997931329843433228178844283396927853227115207374282067190946447407983804081718174163161672185507520847994085090503948739728751910565148495714180713558217240281127682834615745378080575595888837896094514668371218401848388204622271184953500416815407637791871109790013353769032248499976697857822914290548639221203205356067147919619433454554637999506872005258383363565636760772028253586637426289420107888774643861031542520728200639806908354382558334354060269600038515409664889009203092995390109918519746301194037005046047244108089181897276492069485424596077323184465430230717191774889154294531257569177137065586824193633555047371648675233428347453735435720069052166540872952877844395216943712448728486301124884193260412892209199189280858392791929517432093634419655455851467820272276251747252525505786058834689702476871549244171569163782776668154280981045018383294697119898082123620685592656307892590230832841035385549114369749976177343988019068161216482950531203011343648252669930164427583500943165079769245686508397917879889393842006182948163748672940300889913106849069356148830783252437435530096338108079138812098747124728812593832860628818287220589682162743904966887936644022203974967672155115616404945343438959380422562455387391182281227857256949936290869981063414685321435402532705827821846929288615950871352944089936208104170858579636176811145569996365644289414452915793601074917218770286364520596268611618803854518208108346794009551649761553410204692286066859188560269383709908531615405682407210375480031503910441211172535818615058556958183115388206064408131424060057308692506118654198312781383979085000777857324777297988577234823661373622747661640247180989502281674377556382461869230925603582008720738507558918934836705464051719644396304304172644181101057224098524036373955660493622175919244052697223149578387308317024248282023911117736891582484424638334540466098648030944721863779409495773592713832141500190065420186158004884288524300923526036100813916819349485463817816077711979252863973780430071102138834842049383524188989551294321381627383812518886413596844812649856087248245213908071356767533600508404123227739512574849121648276118921361895443104671096332835812274575717761513885289454225999928671877099768735152570304119191874697993099589012139140661575650183837835736451192663850719910351683420099641922710780926218654850458585052913574431121063504364661121423717150027108006814787710436114779246057287736321360140353452257918709188909388963303056913829717982804957897722469429373620121422435734737111331252961892742163631086749198222556971208753970853049435024220307602532931724067672179575991981466647890433680165079731478101309556205411676819531295955711501465617488976750058903940123538734630374457292369945742121773978962339099546865991827109260262838067631576498237888507114454140881399335621842016695659336272169029057932592764968905680889948166140340928102961195415665712016004832823660107893227654711720901943911686304157955554188004142452751143091297016463761702476591481286729489010636728881048232388619197065860850717695341450167394283897393646432712065661693418579188246948564139005680790338504399465645867785339438316400454697099520277061364767169023657835433875045087847228301808558675060815325780415668281536347142948440976967737606543493400435590130790927150961867294613303700453331222037015535904424866056409760733167958154769570815038692585913303372147230683125314832788405572363808806229305288532641672516077413164903760549083001705008262588973360689959777723455406805902165921894922437981182138604307865009188581555285458059315947638135454141321040881545284409126319413183088850680484785660293229883165059285795200607416204363275611000160944417671615142763136105388584117330504981075270430094528100281185325124548047967112399255969285204152926824800894036613180184267719637848412909438747436660104665062657341519496797951332336555461970520430560387903474363909630734052877295215715799961904281013785699630068292860469116865335765625428035356616354706897566131284568482565465597172684203101549901661619724789486344339139583282117887206289383467606321998621812151503787562437564143945702358019323730802459111944384962725326886063142262288843201352746282349243454078546860555705576466223593722354817156991091764682390735303019077746595792744678183698474425088032831088901362498441986590760642326887957396599153987361507480680335983241470584007304358277672576289075537131879987412597846154918223099825981659629909475936298250229570279639029568107966529310732451816604136436831900581032796434203776651485589097316252836838564803918711562170984905438122007277798476522081315327144472082399804517057021145329451347700155933964903711241485015512462073814789685301737123473782342263274704373072560902530417321781424396169909743271990190500044957855869933590564638293021821599265326508152938198695995072100572840031358257186710739039670680601635709420415706570482473550340830218736629423529808403079702102009838731715446064414808650506795053109390725865559245961380259661871080834293720623918017070389437298264325736202775992793940384329178355890790495947036176121930713191384603474042408960405039583893495824849657061513198389172859340317889912117968073113519862596447417843267773717404830106873125244874509569464951260447690752571729162019503250329460386087208274445576719457314758622898435821428774117324053383163994554446187524997225518553077715545763848488674675502042765796020624490777595555104201515869346635585613394952899751244539612283811627614958545088672501227489154122887603206917782219414523964599920282829147456527231939645752220554860459176863561769526520465093119956949083005488395679945759837449900166526774562418627379678567602899705034273330963645196400709840555328515334031915417680042527595438412396592711499705751635924001186759729553211567235835649295432480437278789042710959125391755979915641439245301319272013798000931759548708930002010015641366512297832286688746987985575345688259924701878080078225598762422302123736048256565421909576022300931978222743305748495912567974742643264612128999131508189029440617910488045328660601642562623536114993598299401700805742001621845050177270479381387687726916977852416914951191319894638110405285261789552067717889797974512125002318265550477887012760545608311806247437987581015973963858707090509349752369067864419601126401776816904855228648323807543801621052990248089653261973884410426175807892953136301896325986904771215454813142078168872887628804186752579705120527035595431026263849971343397701193477524528858455429812932704908462290843160925551675236014619904661305342191979578620733761235444590279723424450426544244528127731820180348808646586411585756972111407971812388929751795591688792611646394586539205547262571322847076267917747835949828244470718270512736326114791138697393768901926238565977913077647252777955067756799797070617790148598218894928270276753608839438590317573215101728023345481225582766278097917656563563557433640738424953438804052850983693479023077555521833425234058829565677558101880469065288335503451724925642347403577628693002776598852016446702212895675217160605552471829053479622147095674553077190003449817829904200714802262477115225711715605862366144465170771635436090715679383138012302734498383877619236158119002931853252239595861476259911359631408717029222568507895540051489192647583538514423072821495169420516738867543193899076882991381876174403399197903466315528835447106908480966808261422210582906207206263615530627231926678898575715040820050124340199815146011400298359416660786367892834025531493397294967608685465933756520954647675532632610308570539960615392562089094180703137535839332261548093365103893472649996585613587155967038411191419359079705770712298421394043073873538945218468349033660886078221919100314011132525004166907753157885782255718339745734375405893921942724677971795516500986657083462609277399522315987780035780162822183681143304460346082874231654040433246538701794382600196726233401392612417442875803832112007819492524741585621372320585451619632053676888409769150361553834524309694739566117905259522744915297768047827331866217850174314245952235786774100504661043440794692122287026855450931803350582810301158751986844807685968717843659116220331510969781487889750947771333208569567497487813654551356695532704166053040850836024218018303045778820988352669253877231481478536089701902019362900166986071307162706587749242334651215961012215078047635727738044305778841150890930602458826343898595192967285317461871122032706759954459192172245419168925098919903768341126368266767093373243482965488776624688762110066454868930527176228791639598291958660806207766262053965478780131436450016174093138055990802562564683909284062807701225287972355437671600301399264293926151105829267085661265204939802362194213594362407937661582848713951649502381721855346728238553516150347470766093408681550574246062476105422186341842358207140925516737316699695533280739747232402853362794009033325665598940319753129831185122977762770600575301575483178845857014069691456531076459354330276118956458130509339810478804247230886455646727913441151720756614240852665416832237913235036573199800049081822830528435019304918606856052075902267895886241911470158157822966895349034998724223682577565903437058589619307291467353429253010715043025449117574239486676564283812127218842650627003151621415378102869523844600381903909771842136435645815065393017798625178249458365916674490113068775115510763173012723889641894287409181081682190192420475754433503196095401690311922984664490821772488618537387045533481470496403338546917359361261355460756231994119743115464050585802865394177645116876200302755396096898433723773895348351175114376343960997593854994963214177914277788992523841635050355299595044260363975777420970819384503437484499142396073409885559039979213345937509527410378294194841664789728855241425478450536149766398478329646574596854688490328981427285694942387246813794787261768249625836837603927704378822991008298095189760248402655699504757177521154704848196560876101414965462239821635358299300020219522528445369594463514300550781697731865575096519043274081640119383269456820863208861880167986680753944420656505961620498394543440323229365819013943466789377794965677953428803421695937874168684746870954172830546016918310125832220727172414069139100602099223944683738291035056604398865075127464047271579942935415973895959273523017468712319583534625520403551431449198542723849144252146629387465999466570161449223305928174438006355216088545755975823313449853999599285371970722077480282632638265231623896911562402292606556919257458661843639091081826444490612892133602162227188178327684979326840960643425823929033776046531619512748443090302466320968470877292739505488293615255075010636103657467067549473164747212001841606206756230829512174934991967522111391104100947216903363811762879667118698750605123514459665561332377729934047912876545766689440390445652791037052748026722730175217606370906256304366525106728296066682912131853799250861785844667291078456890909888180067444389398775090082233106938946906332095048539933609787396566791662199801473795852318004429120229557419599391469793426113628146178382564522175770059677079445238627228178279266658014903116918595474887902561260383247636857676195482568404799943129874481378958962341903420472052254367685006770810089273638304079745030580268555684126393054051072781228215781153452089512695862796509777969315059160183475750285944652490140787807688092282761788436596513565777936633012566644846665120662795385690521375584621497165953612208495278293164872341019308009542974349189065362461748977286436584140045515516559543389226177055037621610450737673083048910916516610917991561429046508370947979142689169506925447006635182048454427011125225922363697781924410673731659665301155513721170802730974651920119209248831963430907476826424049066680146471606301315046764904711853319858238904404340137471285849295746678530138459188686930508688594315589103061012997243289843083792046356566477272957357063267284210449334739143048923713093847709611264783121079403195986390899020143943372782292829965754203773337518230956238378914350509814661384743272816925872421668934004088676497750536554484359080113668107347827963394005239297526745172344558245219708861541563410293105367690058248670536249388504769081591858691864753163605340092363591821235404133509645251569677584255121339989796039174030296130542530087363149435569228201127655272876572025099536897003355059731389568157656537782686378580018691056317685398741851975679958100824376143484862601518435547802630478040323571901857552037271409306037716606905098083573776076681879447698365622744456680213103469894577726689386267310013672220859145333682278044689910284511892422402555921662280903888600769691163954646826944178992866415327045126668926444303164423154625337381391311216850936257167850666243713117163940924431419442656128164594382616395287843414533462629012099069084162654176812944349670905236044963433319987820625356794439631896148961135538777828265807965274724554528187008385785619731169679893910093981599419155313864610238608853850297866247607099520525775612361917224513658283686382539059699464938119476503570080220966249470128916986327631517736796788932092855901595049438015110692065163934914256173269887491414939570078815399339850318865735767195775146134366122511395500804145995342466195307971861709165555860555413646276042860269706407449356440567936763921209066422209267623058596783696442772337599273748217952423214544259358592997326412534732922508957916989716066434894076686140004677250471524166801169736777034392519698006290176761292608926166947342593079349961182820110830299356996622354300720101380374721294572051201877650941973963681476635090419781658408223653568551648512617012314560850893102794044893504570118399389618717850818602124262467108479630059956183191962116796821303004048742365990951788320606430645917665039083337151456595465604152316413212353094182445267700554087149355901643525895262051914902490475377896350390335494331957040067801281862378292960648658517502263854837422528426471575697596900630942925585907373843619437786379986336278689158897200506360339388693767707821588975518300939908361667946570471357563076731966021894950093209369971678418926330017683164417190123076690263335738585446668884443849888385757961387502932000078969199686544252717771723823283715582119281061459470199386952830816945674656081372236082307713212876231466025289542874946419496852550185865376483669745041380098147122715683355983173585400304870766271825924183165212000002395517535043088877553974680428821903146186494186805489741707946865347040796052318039555207435358348134687900898940682615225571822959418070126114655702563367463050406306052959150655472897321216778096421985585307037343908670912325512912280187960785209566610247661737005469778114660371887972858098533888539159531619943827207749758883749800220124017487305265470516076700129475046214314356993577475669185252094394097767381048902942910024901418177526140637812984322097440629466724151525583983597773489848107931481418618866062091748337274265915295593809849854482236474917826740432814198491017455412368246599377335753045960271023631861837630402317415326614377637122097426199985868915243230541294938450608166470968912440434002376943945722860958902025894873998790814713169297768706332896366223106105318473287924088518901718957792184798409525734399995016874205929498305011988260180338790187747959420425407290669567435510018461147275570639915833680743300613207920112966181326448153772489794496525926782571568017744818062238242123854362312176715026120475259388131331911884073953923030613153433102726136660517571320776464945457450274097830678444395958013680679802303650262710316913733228854809546737515044366036710843552167420982846978539561751603528551001806894429602026517778828010658025256587049973128250454808320239606863182433748748577660299531875825476843802273605541156278910787696044462852481686081506823409405062368553147236049574954632785053675704771448600033578862075435775639899615539563945884535341949518032484539548013117263969426220731168712181201001894211676782608731200112610584699250901267289421047350142273360154352346454131499205524819708880848204694416127219172274609064546045769751758434801948999900513612431885254573809092134431254516644087676999714376157015170223794801908403285108441652018348017541693524854905758395015670161490547084196545551842981596838663173895684785719394872583922792237658533039182693380773217650438184127260561927446179626097399518555675483604608316625962809554965333997922930267416333273545094276632851831115331748752647528463105845007326840131713237187153893427158231422369586145611926823678909713658216937857452601699510818056331639394365382624942111453357566738361814882217051948443614541285633467412470110316479269338233113252932234761982729466308173912430870105126492273184193306897777617995344544911122048517666360373358828925167807191336664902778549885222003204920915391563703019319046251433534646880719742971866845100391917877417112414309016784541214240267990547061396894826998068886665796060508116970879611389960598129808365917872637279406300221198466191751257962638862521357368651461940600626368935549009303279094557925500378883803289741708745608738047952009594107611020538970588441860618369066860294891046068601737339118872380540001652357848237212502931948282871313756420248812650311445444382008204626219796246254272196997655158476192549803047325865955794828473448441664843449489542906394466110351596828301816155404994357918625458593939111320365267051830641189503767786700626746575886027275501737752137096308689205794299062455109893718277978587863822419296163498791086923068874711515315351385021572133871960851391553031406348095220253600974654815140351099738285729650766950251281108353672800862167704826100958629976865714272337559857434982156295884227464090289348147541819237531781980212632260145959295507408355579897960764961922605028925424442666530523297484904805374899718363341296176464805080441493208849135483157857330298064914577554552052592113444496242224916820068414898586909407860776183577767450085058901452057689238787164852525590425938512540492432190882217455360182016543805986367601757521333662329136367174192450699660069401248782892057507094449009048944418882561425763783654265329766678828233223135129964345930097420585903464014386269250449999819418965133746234346511892154346908806280847266731880830837576697434580487396506489230794432881674639701887456633955398727079738120809155674692679596856137645314845099000022460656184816198781772212663580335128764630640952688915816423987470803949981411767092609590030531464480760403675850352531725359057436923098028532882739835442467502731613550787998883120145016252842717381893586967082795452180032378478899394102276335164152817186009697768210326610483588640735618764982572389588512052122987305693251131508443121153606272955434823238876573450071155037703635864526432418450927982724265126285268592026884951330429154663976535995189205520077111150543192378496672314108063552476853152351208380189902061291199223406999535820204642246583317608191054337949771499082866025419164842359493897349317197017506511045816456960096152208730213962480697854183595862784893020360776415692576813138115239289744519228793009285704182941091015552723343378110875097118054735471334312440406385347643479528306484458279564074193141937159395424763707986590069596698361608519888228442144686117981135150820079563989684249620046816775113646945393996156147846642259906395317451199033135762375768762185186096549466018624542531904879960356304598737356467267359213400669798865372990537335224996661766326572124190285780340533769547815923558328054263204246399296243409545565509630135200846418228232072429960385575510563155533728490549122007352192471354576611477677302661391990626161279683516106226609290865235475310656379335680543285884215655800631176432103253135789539879482475311459632751355658068598467643947105040894703841470528410856728337527278122128270884076712415628151419705049835773727758726142285335494519607625790740027276095921108480799851564621302666915196558599482401626242231592261855134004800608303204169941571941251213567768035723560840105965369876868453739106795138047451237793170374922469809773341474170299938460690717155816986521430029044193993475390883336332715305317176765303948878118446470878913596757825131328855976024146180655492731524267918830653071898165090300619359835855276314965664897036464368909972722124767429689608869866909859691935274730967363072172965200823693070541147798041905901935177749292203276976852152681481265806841080241377755171318989045411910990597973171643938205012031704042365746862186071581267961200562648523064308633247149399278626284580764919815029020195766063854010054738732482314666195549059074126769196792859269374865485804228309543508138454439902681131154048290910983152186243643413379532162927948368530972784684706695792555339819901175023068763038832192422199933815159615593170085157410108761095647887531003833606435200174418845231588697619948421809221781619069057965561629383469272098810503922180806521055334766545031921001402312720412688521977966844912405373297014497488467217144096909236300617366032995618132330218914819738667541986802541054317099108238241205534170480054192558311825699056827017235345071624408534175249837921547276476647612752854057793241818816287862781699946153266821618638437395767350847811498836992247090764081438717961949150719636849684199256987793784172017238049677079012210525369818305273487795451083656531575099339094312949683604250036115120603970059933260117777604569435311161751905391273918323913118654622330327485120055775058939341278345411260907945171115377277199620974008568194319960937666084585840529759772351086410071052409163482542086355142840207239334193686070434738178805971305689640995415191669510214113534213851452521264115380357408653024801857675640687968300613832924373338393050475223559990132794091028148164173210494608006492391083424604284622916631863117170593464792622903839178991352942334003748542807907543603232806700489391362477198669737891871347526962225258082615033255792882235483688476660748439459393703864882270307144997737824834072922417030692187563581441818580080462085536935008201947642838903381871068944815874853382901835830689563401109192525927239925525478896232528340513971621598176865530150108719110107613629356777398873703451319045743577443027941556004413153766181132432511836741743313334816297269950932769373426090820913586338927379774164407452907010985408718283209223179517143454786603197785365801784336832072867103834783644301457584863824004634458435635793596543660144869703229522296465840165523128045584847528364361316114553252091352385444666557968057620024367488085668248962837217551337692265831742977202522967638211895723166367991240223095229761820090896722768223824808652881400617202709440746407664936392286746914682696830693698438519873896977538962309603112308548082407084488544060145836061457861095936434524168652084919515321859747655197885187863152772272367401389534094587200244546042662512826980960556209587783713803634884085677023906687208624052241686257902237622418137878984152398785400150756932678548777213024060831467529427932050743634930809969788761021864817247982281160824373871460500156329354921817778101694005164721636740111282544037703130399718836762412316162549146636036495229570095233451190020094248679273588680382578786985776756239742637332098294179165689008345904547530936105657889887090451780380809715907831934718406410919991165769477240244167346074537971824024098073569588457635521787595528340656070972313061886774782097854820918090590482858761412406684914785766291893924512844249996451718366058282043619348276685853400939528100956814217675415984912590383957092835545160503821733446189525640146658641973521524701147277123980643751941712387211797132256940511601982232920445446113870006265407406356115446997483744868717353353459621772183734097271919835914502458922522578075462970914664637870368285704808464283751396639400239055617521537410808829346644646861071369136065675424776611305855372802454670538223962759066991114686888295589011102005714006757541581388485822045296236712798551865759696932267758298405969193472358223065483575290562496312303438510485141883401716903600193327660156365606546224579967726738239241721289707698217978894941195046008699999061694283360489854512539499027869816168100780936545747286481695127433125334046182585025083068318392938422852783614067709545748102515943453845802816361355786116823464709629591767173291475489741314437662949065787312774679740192175200701316687635172159608279015741395750477655190671563876704846729890756030548479416161849689635419456743420833437219861924348252799074788214465778660544217475986408161214236348823413090210271243895946186112843409363293115772625297837154779255932734386686035581807787467445006933824734597542849847291519460823225017249309960150014998273149787459358286829461946705625622029569866103607265404771387068437275115389224510153992093174580833414661861821213928253125041487533621034723494553651694988649844955070470835663585531711571647261543037132956007786742827709912139851671612453305558294219362271978259516130509501136715336932377491013087464346350562463783862401356768379286736116907481393200515464636708240322984636005601375409616234333967496290187831424379786095416564141331633172655193288324522946290831035280179209939934120006678109041590224441469971397209875999088113461372852242006070557713078353341362538977259423668874558480243367649127626986139612249767739993043798741271407383594639453380405167996401467946588378931895051403223174084699495424476465029082331364093636499518117582777473176684589763512469499361014509155003014572551543119686384288675991456216003972445658583918129361250265503216533293751546785479824820762192338547617460320863395235806775832671523942611678146252523842632573738087332870582183469746081916587331838876519982939003448153881952528398535825132579349006847395751737878801133002888307252091226648953446435741077835147047233798137119165338080493276029003176689073772193242532656162052292341820930799176784359394920367016509258739032989389244422977522803413313127373198578588302453574655274546610467457763232892493716317362721066349464747689594782073264924706075224883218348204128489920031536899477162076542995211082337591857222477682559898396730320739274574836517295578264850865527581388816347191766703812494749283610308988679068560258431146731908243736514327206498230908999254471346398403525058130740752399207668921666609627211134455601245999024006228201468459739133841159064185387072554250195742844995650462054087649271130539168854128034785357367282673238907968209781849708636648999184043346044213847627463066333063355138853854253211140017699199972540053985545913547285625960746109671975248137093047610212909119636665246953679277446079706170181387909946959406376149502368695369859791514813968425393368206160085269095206402171331467347572636600823452468327996878432627277306150261954504276508531100188987096473325909997623612656027633123852203275290067507496485091779121927755283513637714618341580484104284060152792819997369091699902314472358968688621837145238631384346851999827837495057078047185848204877452209279412904044822302478251813390222930086548317516131554739249277550128447128581744455900085751719198044162493939284738998665078419932355254561677318302291344914370970870264400959805928053573846764451001539457638655648500611740429484998939309341290165464069648422247037987083717381340356620028769686990853573108851824849909414146068667778610538877242639152284497808428537684034510930920616127236766093289867874229606330646634213590270322165190495831032925523791517899311854476658682824392743957282576013667899968274776746418589869621185587275906080346562013594057346136532766333411849407737184296009135009366758458570976665692369612535165101092987572146021159249067348022551499622062919279049116198306569716194698173595874429840297704817712935364845117485558787030230337657911241415176640876916759713427585153219862919111677286019467340186365817907456484667520742388973756636229640759754523505173261219642710862793584041340209443984743764282549258135234775005903870304547103722067370188674407940037939610212390567046666002186377547230194852184899734217311136925143389934882614214747609006013584499904654308746024402535856972484518922236837104416285558712850557487327269477260246723857633903639357560974298224710210850807950257588466913598862399123524593459699409950397634187112783471663629688741066482270918217983461686890645696109652524581034199378792050793530468906300136986472242084741208227574394688142945423602690344209573634128309446247246238028855364644367866819035607688358239781236776656779722500611765234937189567773431461760318289921604739639407108734864641838217251671548072257627941569194065025233962002508777523479539522563285848811823973966240452833150289529338328716266234800091600289758632143730314377188086731607015715670879743992935475972534879164561561199279765072758301495247629933376881145924171462432541110968871522259077180605866485599310866644956748095115683109943673799234775877611670970927337700408164948931579281513942820381782064574415976330976185986931260605875569348740584055445543729352603935747928847017445364948802242563707392266281714365553554540973306782149611513484725613098996626766820720945293466488277450691391657284306535103422071993234966790472635698520948816615485313098871542924477589555721506877498236204188257422877099637358770889949242756680878168728442194692780178150834650105266796221824913223349165541627841425686515163478568145109569291569151265392718271624629203169645146850624371726766763608257884654296829334538930116264072131983662322575554548482895949725170197071261045532056759099198365898208990129153736472705826652420023329173176934311549694649815704648823065524343976623197914360904419785227437001577831716343403377075661810681078866576839221486283419315961902514035312689822249701710796245505620382987360199980899440117810052314872683662928598026055885346584735414966183004910475526102451860691586513711115504309440014616472936904612496063595017097877305472426129227906152488951780695610834084638924594355097373511445339935113691723262110217101618042035588357720808131530882127407722406890079990495439580681999899920630142846170740436856488879524102100946432645248544427819579159308386336645021424348520955919872081078815104192149548789639521806362071957587250409257087874659243668546287676946904636167728576084421044176737130497251040056408988326087333159501466724840130063752253023173687253053385854464397445646794164647637829447552396873296896960844802240659952529132212016909847010918460142413021590144949812918306912698866720371175287505464301429175191732103569675687264351069129223242504463192671538814596450807890334454984009457980294293980479721683437198069617167874574898928917668112267552975831271728024309185767038110166852111527091466220274619957825611865478513394773746146588883069079672286015113477936520951772830577445404652066528607045816807380112617320111269037047271605522728948454301169049375859032300716271504047328863821504563489760494981307215929617541343364277504714026953959371934278407040300386940188133703583999937310465104565646505516249518137953338405404775242181188712911403080217182555228506098145543063983497790488249344367032468898532283792481178066450081178958905262538736507578482923469706688656776188766387609765612246277329341117567693182192415651012598249606474072281693627174994820325518793955477203183623757982995689289303446379143194624325950092260257872855189963921012826292917234873050951124578419260969356857124871456456241054771935761346126239732107514607922645809670167299013011688718299280273636640148081757066929585995098694118380227503461330456338834247231633429177931090654071597272302593314776371976161515427295831073157711109597862329302543667926374638956969638831751976659722170381742602438960787416046603130140807905369543938375229861246119576687969616846530986801349441853922094539960984241127618941365467128061791722814465583833972023832319336937076731833789170711216738800496066275178919570884278026898114438786537060719580630086488941376447949791312657108188709381497139591513726795083233180254145519919987882148832509901748915071194678726252802423399207991167668768498903898474438733931675526321336828651091827596421455755065566262388201331590983241357923555291288722670006663285499701373280888722390810404950272102084670675901119484776239875850570824662955635903175879904252701739215308208302226540884737913307195707076179322483283175293049983409399478367777426729056007041089715900836649018416728960384208889412161508923371150280101561689266318424045846734425135585035593588323291094345519568621036331565199827633979421385011749454215360376395166145114498042895870729511083971739497113672506652996169962474658980971850057797183617304488020323820053082355948366438795156534451971159635512699714380667249911471428707012426634588035171605433829583513051076895651225562192900821528670624475220130305572400051473907812606273377330545414458335495419974093255496477189470123531381718079734696752561074084678488373742797704299308572013252224083780420762087412151780798531473083951600926580608258078415667089826362577238227148607712433795815892050202982416313890365705678861968223666153795469913434073487613021114986449929366453034176770681695440454724096383702173756097265534382868999171304484418636008782190406933961509339906273383447240268853054470103425343557977610233261159221239634677474835354040006358742994798609519250562598062880583817725664913306196203149856877628068460509915621386134319036013525077665024753175238015268333055536397600187537210189208336865663732446446310843325270298615808198496409893259546048835974597564946825202704285545410774678803472181883170143690617094461836143078163340076697194494689391005207938880830414846395972745363654450728514380621742129108107032828861417529603247338457710051878437560053340561780321728866972518737906480654151073129454043046880387916863154661528127981408079466168517298782479809774034456376349696924689657948438908534282036480078959809286525274043625081996795543148106231260098054613419406342149359986503829257941464109120340763412940360869622211776772978139333965681675559139710061648086331074211695536088561131949424340895534537773966962198673179475429526523662695623226336978397984518244916782755462978363683269326667664473728785189315144017403849009922029291917158854971982773852347821031181546987758923373390159282850517756920274583486836165600346518835385401777741366236272478758631062763356189907661214954950435937484918829470219453528557449165330735549550931958703593785571053757275149398147137585588256515495473888710807332919793313387808950186695240179422278010081121898085219303791358474387062366510407273500843947863490281563414081099723882169942497135818468827596121614834911113721060366432154103326128145248645531922344240722030942826001647478501515078154674359733842357219871160255711871236015023341165653435133308897316069904225963668272155789888882352962911981526562451031325351985254609855398449072407198736599798768958521007560248532289544578704470636432409870510774368523611510606924285027469238200919200728653310642750452975416220102553342447759940544149457022684738327264950087271899310365851331746614031691969579341668551939627417889510656911471348958190477358333696985249198903810531877469513692909028424383444651019626937391293563916016718003306617924971925376099502088204298425112163361677553497975988479446796455953388532934138321606234693483117644378750475478176604690744327584946305677298773031656997126730293522858103981843502459280804178327687858835502177574283096619122243546312240059211058320972636375433420671668316164240194566298466610345465068398501110415407277132278971329446481541927829947900681651527225444516672287039283393242915756946614579479838522268547959010779606482981533065091681267511871085355143125117172618667938508353907551414635688963290243658112707028805053925195660471546202460411880493537542912234195316970410019103034440366790338198613400257162606118195046811877638467429803674130533016388367826351400247484542030825545754049030741376688320365075849917183844862419383678039350472433874453240348374008841332623678971363543556259503071171884839807913110061800862382549388777528383836495136041003364767707904113154547116666399338402292390094121345840481956977351388489759160819037047288147941505886154031627771823853519926194881057080426123618386013413775280797772087565645790760204868866766761395699448012115041323574967370538531088917519384996096388236862080824853276987320399309684942000097141673508255470298250987836046559134766641219165020800337183877261495113402286989050545610664341549021829927519391628867557791869564077747894207017324286737443954707501265942894425091063491181124882275758937325994367845687277958281471799588447687295114118789437245626090128794037138426704640549890181162346868443357418787981708764586147538413428092054558891706276229237032816895102524445484923792497526336155369025669932571563459155828260520561100813114957459913106027067499941302062318630253823234032458251154861546697239558547829193102064818317747212834232581418492651672945548801462539639095198416173424161238154006510784151879245854415683409423314107675885558027718614777379791503631008346494894097524507117029244894138093012939471593529757042577444756979010457695296087803598742756228228768555920472835074134863295156902182368418401255652822708827112094190928003997193023742374054559992272873292312665779738577573566774872777791261378183125681549295879356013691537057622523837143170660144784270892835650174167951968804007231620133835692297093760463925755015036553090839351132134575959488237807927727339799955776799652509302033896046079113438992362137027836713280312813472490789145534277955177924801462011970018229333585232898361820019891426948938557498045645984390035445401405459617982288562835508016397118980759201163421228066217340109907158503718164845397895206571657055570540809388376851374387681044823028270331059981730955413391661213972689377251057049631724406841902423083867703253044689570228829536133498594813710372268134224567548714549088415028988534569309303612712391822731267136474263940067400477463268653002891689070763880691792616969629849245289733916947645933235780431318448673167266238563623012105023729338424069308858451027261164600783896121343447178495652226634126671455456367750865876431371794931732176528646426524730662469414872392794895488110694774590035917573774678489698936718107387589288478146170216515655028186220840549201232623537728391528768001413188070624486980001172530209723638940340057760511026502704619539428280262260529390557393700882685616965109675845203973148610685434245213869312371300038716687903011836900374339504240883978426864348141238921986351419985117216229183442635697909038141189295228885573770980770839131249643902781812107220970389209242210644996692027807535795757599083755155040043941227639267769551569201255939393075692559374770547391073653166644042308679034128716553203241125110546685264133109679997222992509975022456029187296079919803604133954441466261755724719095640068426091839027080873464201995287543786402733796900017816587577248915243597494069323197777021797392260488135682894961172702855576547081550427970918126839908706044425704513136980314600705432883655351786841658748967741258982983618348651951999393377487590402938642498929269405119942664359970215998628306624089199856569916168614174514904752294680087882941743443132931498210170320265042012834093609505943882861346036177757684855008312218118627291166173643960198251479278719970403644130643484236951478606411403020730451148753242717775564257375459560072081284905521554637347533021611959269620876713750718975935330402051995816709938797547906849413312174338567768210937617790876173543133043886468478334129625188787423778079091126200319495775813600759309208262277620143792171586266834150018427285365825981957359267610212613801646342258204283555113386216052492140833834961307083064795850088542534584257205924259943470903444011626062779423272478169642529875440995282332531198705064789370828397514269536207288991553699691634841123992789816742787778604333305629673758404279739447452807366973135517472546188378968903465242905651673791200963385341069135700961729788760395236215184437807576524049678326505168687679986873887681278902520733609545894229720464956409149061690506700889171839898476994115581568299389271804532852043934879360264198015167789278427423219162268862267999017567801480113243784252701236594533100710025721381143570428438918742335254924419166584126835124011531377605221046798640719734190227843012640666826371855664105010581246532488848378944034061179448116606721725559267542406813729338679061838478182045426939095831347966037348409505038549426687950021033040169568042970601874849707725766731678055158669926143795214630092717236961956205102548732867010101488749488061357020752122352153316690425064954855030160835265149457213876850563764845716772280979610014409689826347197528585651793237696303181764575722390448336226429450724740221351915489422439161743549272512112810736563968053437268287875138561141768334849946940123084984279556738143356074017041683634647727493542917777533790833612297841449713984522291912730261165546086118270567435747698998784113218320737245422381842056903093813909807313428496405724242976099520897656403262033747400907401579456057424758637514544401757720435895337571773117329606857754090677241506190862874113252929878130222482664748258137340301251028841303677268123447002072283147257994012562034696678818784170215780781646240878257112860443922713808650143556651703163813552389203534317810537698946002604327180675931612742396105403289906520808233826938567021571949046741543451209156607129056128362612625769284700051814640624169849059246853204635977841391950682001376869507288077061298699495638872742214936837066502018981138742887035240090406930235990542413628366927494233061314631172498326040792733834700214353881109972518530885764395281886050873046009142556620614366506504996382367284475495218634353586047604829431337711095108428422603666961760632253942165836597706120028841158294850800379094216102555760843688589141621519585440452921333128176363169176992218982158884284960025885263260050196665919409844421029464106922455372249995698485777856308204799542162969867821775920477152151593469047104686246459023161170778620643572011188076138104642730759632648099897982117122804343939552389586650620776496047388269602233406127582792022038045945850235920222213088335201432137562282315102735885122371535476435640491364373958971525731707988467223873489629576361773617128094570659665727425264470696587838107757080957713575201085135105312345828955642897650780888895609769145532642690501327762864059581214674730578577932721238230487223018698212900286427199596936326937428347865192836158621729084169247852265187429105286378459034358605784674256444782703365954005867306993020897047959315954226766289584273064065813737668522287456882222158297075581685706071648963207704541174287184876981641963290213683287007410359411121411827466897417360526844097202142449708307907298400195000350128241576501999974149224121779295851966681666503329022659294970107205631117634885710467166333023572444631910898844840620419187061486243963991426090133960295471575336908616262932301833662831625116328440397041293670013303284186183933891212438377337683559863927592324121087791755630872973838410417925652905870670869500754742480243594977845011975303494455633600691881514409587836398954843741105535313765580077688402027154872328937634768983212652847059272366229055403055414358174707733888271376115424301011382895427400889242358606295398981592815161261951848207635337072680494848139225465720016228838300608327997463476851300679902463582719192348928760566345218705247873127440964836947737678234929426169025755698498148877751346352254081373256692223111129257221602869710965397804572427482960408801169891355877912203220279577867001447411712240385615796784254837193467779159984085456252072327277782462326881162028885701011293933341882008929265016118147429948896661142468779956599052398173375185760988496497836358038956236704581797516789474750947320403006851634981683449570369171111188862601248651715015522141876368449090665293532637188463385541905201229101980933741616048245742225096896147876725213238051828588975813421985995421289208492568369383044714115993775536186135650976344789051849050262716863573309818314181738130829795148193992733162104103826785710731820684842929151947777065283849514055229643314523316573422111895202097413888718079411680091874474824161123817384878602378285191811413261328768293884820780973057662753548400865167268007713156854290654895813653832138061764838494350107258972294681523206716756346389733879429700970551110367604774831913097169445162629495782613650777585393176933371939436778229391087998369766231475125915052443747532368574308636684125638073147485255307722565746664712733918506202177982812721818192900758775289486872977791791279968836061169627732689176434013406264824702372259073353556469760370931429752631448979450988466412112031147594183958520086409395301901153680078264414295915412993716721807877253973462632259974722247098861982692392921982435603523825415363262207400783588186403660162764084911738602489497995701759312463847644100063469048553460963946339789553791890287395119370355692753960937967707727819580788042247876446439842316219783256547554228158626619398944934592955627159196022517878216602925660282185910112887900692064705431569494181643572212096949838188352598953683785790778803832340556609827497912989440082727626472079805838374524091130788033610242703238320798562188289660787738535203212518981830356774892122277551569882442860538883904376209921510838922484829080795053663573152950707445838011686294757698950177096679891580502260339809480401172607160069399856874662401699078772208260309505547288961161468665687287230486793819895898740686550845677863012859022841537700971291161750337389272961350458455366456772899742493737773959727696433862872413127069159755711166198635147414321411711737261474438984943879783920341721544375045486756831331030354739600629783829900057077120012893889599570924282378795317364684973674162186542527517063150779857759087496149319654287161896808900008493909635764253735647128806321884758897878747914107601036302947550786998367418156456568410716146826439879427935540999458524397558625171920204197927008198116826163533933434534878987185388051600617373440325047024800025676879144161761238859780348553237488509572903106067718584000886830816696692288634949457543495030504076283411668108902376879891421869665777979800644084347496760100800297464246689671364795585390517589706947263875501024381238391921667131303363147735416950101865051656213726823462159850762717870920989856719459034274655522443444522726732673203864246065749081047983880066617568613852771400090328182120127665393620166759343806007262674918885513913740298569022807406787258803522860137101865393740385490390555273931572610544075482436235870166447189664666756878441990352142636305498028125516516156610040699052112952020856913776469446032182070304339437697128693673140251186299865528885128942417243660676104171815141014372111983169970308791032041460910847656526301145397100336649854029247884217458962920634151716340268706033876790417760355513080176826970008769143631395084884701968386794621511463754852022269352757213823635411501023651956246615604721941813400175110149206336635021361335175090210274146694936438610815054332085996064971267923077049263449607758620741431287969009171542158950336561044051549545589011136583253744165884399607884274599537087478639946516292875283693925042395151416816447867252920569494494570986813057261669944827649720466224258778071728995949115050532704970561209030383955050094717029866572068241485264683113865253209326325883162574233887544862974063590225934599656847213862173966818469151173380935812893630002173489701297555522825034990110421271724454467334332397013701316445151090945044322743913893308337945813585747518211897832677176077689877902344858348934250116380698380667034835263447699206254050038640260496684647742201840998379295324188339743347876422993339699278282779682869642775889269263150143870252635430962073425336019763505404188920857131261098677098498167937589416461152119249577007214100328845498424760914715430130258458587320847683450637897728387796587540132602732206025922036095401298663006247376310833765683426210415299803794589570821990512820947577244861730746952478728436732202335000245931861436403757793919827081852689548363834134095942063233698565789200034941608574057421888782377814466173675559190984711790490821233952484542229327081747748446952492637858908705428029479856795264332175527184722205340029268147745367395966408968634750881371385237904654687000403774988622555587604731059675434556741339999781274114699113720153952799497330570723868849229552558092998069149088878636637181628034956399797442082005249441682013866008016505303337600617434290639139782336695165085986646993077878223073085171893847283511951757585673814311427316798461514316295715479261677118076155392093621337884327006424978939177979454639162812353253169318927137295068493702140855572619375875620117020710699190064071074270325526507581083888681275595860313308853959754208509541186837727335742870181507742565834644495355327611617792228402347081946848814122984950825592273216792529579011037324845273856267305103352205269412731649732393608333082354703483035655108533444412097356333977733266260668695024812779406580018778480106985021944220170044608509758002703014219452338084542693693832052734424779311803525056703664318259748744278137531457950528802731456602279632559713155557341297596962999971391491160344978234463231387542745105306477266142327994202145874108817491520530545612919740490013087626806473031988716111191828039451928305254402322238568473722044823164420213130489777641511425210114337405308840724673201305749795791284935251127356005592988913730372859249773792166270666259308680424133869607535698566819530289059073554902071959082007848518729026586211904495211745443000620226448051954732473838460677499430326951252874035473420942321556578336700282669789570799380925279785059187197195882967787745658841880503994478486011240813034764465514939538695561773244590491602804852990840790430287950608468747491440191478663727537697082682138121740826487457508701338212819455506854552028361177663779488353028507753398018194839993882531658246714265322066692060170732707127472595331402922899343210356692710494334268755225778060028457819623912385188516922657569166563485993757937016374104421658264934431746058157458414592275289338033790420079356465047826583629937447430154313377692412033349710691515050042549276164755971685647182931133743513922557851068942745027091932832604823601804939727144906426358137753407384103673961531668059871885028991845180018948373276688940467721799369501747495644536230437189714960108119282540361514175774153239413446313801495781776016217398583127565442023363628152504217641918131204326924064016526874907928551211170862234350103360796010800475482487620565101464018025885338671524114522719578856722697937494069290991745536043578733787970219028363825488276383410958904745248775402640942902753935936975467673128269569297042544760259872632657854292330194722077773180646557485189346572127749369001426470565656073481894873884537620594070958243699335221743205303265703418606968906978924165615918896012063813387674144671706961236855955585708534140232130125276527247423446523404233587098160578599798830217384787454658770349550960402229532898282149857702894917042573661805587934058162830984303374109105232712259497943885048982363141040669183495284090356569044087527579220012471910278374268696115340559980203095269669488814338175563871541998990499873590110753550372416714594524457057680599906195830352840807400750606416955055167902142109130048734122738503254863757588530662860268321587191745865241749272618683932848634839161108564969396028857435692555992191675984073762723867025607605145095011937918400231871176640278505972954753633972950382358537717167033639206559033108087615895971828942909343129070307460383639378448437734507575396638684553732135473413361288397774866342547317038371076077827095490317441720801488086996920772351284258815055820842449038319750094423598789463242874978645538047154082023360042838093316248524511473894881201546704521007303188784503765972881560211689294853881692202543837379006282403457581032725072211576888087057952317783845520583966130985616136151413811318338842706280362278674696467761456816414220157992887195243268017560714996685400032527867626708999627367811429912298522602810148531385497529827769353428219742942196403579891441573689140593477289785541187354954970184386941245899315781456147079481125200320002255834406107513175785076162375801271420360471572277069458791381011049091157131034752047814015612236156657812852342181806508931037677924670436268094792962231298105383543514421994077678040287902618744637938611843281014550886603033809572571245055122102360694490038899023526915175213708273081917589119836019694484354312604241053369242660534494593084656070086600837528640019476923707175917619471267505252155946435740222002581400036522882932284143665636680663519862045989414548196777651195896012378450941339248355570485811840443983363085143452274146325293379356784981785542807993086542722583664177282272916046739602426214927531643287663118962078583069352620998816736990007479947664413879797008005748832097413728580551527226148537051388437170718290801266295575036422676890254590467606519833026318475941950475617804640101490267108005378497371696824142959954177703713503989267612861263274836447477304289365007641543771096222077762405592330875595678982243093522673484860555873453768693061579079463012270195674753889203796662672556494645802856476157903005846188750225610687182477630105101716010403718290276554714717047057695882379381150202646657234379825572808523383608883382909466864970504155551827110555545190885586207828132525078891453458175523001721001091345100236190903734719899637553858737709926849828540100130243543521548679595999400231522178117805986739055669889420870340109525652970093603681960311361836340191472133928282176479006212795107177634826935829403377703900275070750426932129450217342230927878930198740096685815376672639178587735908221393876739319657065918749788845243018298800574579974750176313070217096032342817240841982183067293369148024764089946120331365192780205120851567724732813545711829281220970048348908574221110784442865997903631880411778455930445588571411828263499552056416113267799465287931432846409286676181458820862166673169504361443557632482946260153033089756198253468607868980555793273958823102338449937709000271783471979000722256498220722243230635516043282630226234124695436714885829578765258126518925446874233522331969527226588411767905316927825005041391786711648787841242286340541537750539491338711028689438735520766762216282509611683146574810960557133121505022597354755966972817630243734951564425584505829907513780263861635809887411777583818698268938815889479726690772305123244116768531708038556851904586781695284061033275721082094615354200566027213049002774481842058554635258524297910785776727991014387211030710419383811010528019973361043701623653489029649897801582730771954166134798604126373792212358314106401478220145439897663375245993928867650013720966368897429771684558052028713661652413547307599124759471487375968439008764625865313342651059455219039293439733800205865684043979371852520131251450933261735772554994685584958357372103322822332152249003485640498354677697241701344893004141029414806497336364322505375387863569230238803137400104079134723002645340529787111298514974945633648049207073230804579157563957041711332726794344037049493450334436073885243490059881536317562915726333064489166876106196998683350034125308868503785632377414761845739792871070648865979504544388141095468302088875228069479723696300447314029759710437602577659956713478197587653437967753511294691774448243227408252334147956038109973524825803460067604035140347620722480039358798760217017731663800282000634055349804843379572150667096787221451452752304546289252339635569896644407406039982105179638364544543271644444866631246478251693226978665335814130554705518453946499966129812452747528825689238949342267694306966688547861493589104142579612835893004548095092575118649016651587459207877366445918898151039657408396079215093176901092988424542552364521497438860391467386618862246179898964927430817872488569680633995130263590207539757734303964981653387083642994604628007853835744281345375373790452380821859188009360577513133506401534323140896778101391539202281366712646331210257767639652336552554442846931831156369213137207411346052851173575189028190583559143593806758436486826324898506408245749042218470269646883213077213669949040327736740839014236543869177756718249968680769528153516982045619403142525195607768560046306176447833972760959786442769472536042210289269400845873240449995669426903936326574020730464091141341710537167694171829068932512713929657223040228026504907998000662309432531628827261483562482185869038339130492791631562100266488930822303909190655548409680930055344623174315695233500803217036870938039807031214286314647947667396835976628855693668440133634998893057557946332030986899151811732839861806540322748887591102955545569508355839908484140728001270664354466861641456245223527611582676358821627505829223701707140892394763817532413070591828116281382310921575471358493088029051068533676061254611100890593014600319932672769507213431466747870440263824918969875875628132374681358050271824997441960633615227092614216058382958580211022614978204677637115007312738398458979485047880472688473403261206624818282746710797447792651533304227024206251031507405884430254839807661587130713548417017646650274164167294506441942272453939835642452961617875641387067104187661330138871911220182888024672421067991388390327278611028599949567576966550556006004761419156521661639456347782640894955559068225870138606478164393577431754970562804831584200450437469597283742587200988210612461505912533224671125018771317044225100979171940913949851297808292666831007889484832405041274735306255240106953098346152611997357284719695097202962247831756186796528771682341181935429502107663433488724335500419140873000052854329341949853981532940806466734117254293520386617891488899105572874373031149397614876221317685352222151451700600508418852872082105798726100559283313385423000553732239774850625971305386940326872673653831112339001109974546342710754421344920781489237007995443712317563338833621754301917422899450689493343374639579180502908556338847305932897175933942291824281087007599104494248322311546100105683531223727136136244451853036355964261168465819721001374643109021595428146719101794714532223555711675418758591012349379911500626354771938868880149631052687413906012070532957052705476926876374811293456502380104538314767536507444673398918693935653398821749002987461394566238923037882638762067759583705018980561060065923457516889243254632413514587070634871853732346934310040109728772483146807438384543975957889444979908954564845383800959854076635977495683606214183682967238698486585163131258464518453401306476095297817758125979721004241451252576858227262857584323890646570585482320197060707526202447437157586870456779453558224849955358536089790566588672745472259441100430501520259125459224066737488793503877536702427138166746015212957135556721756069825804905493678902987393655968220197645169002051444028998426025917057502642059949328654352264428640412146140752866089480301375696806430143552813730053701194314757041831294236685519885361615654000275705647776454290515201613313714248237600777825407773205122020337937959614266633708679868146398977589443570955257875128347782881304874745851811679165166289174452653342769694663383478458799710554166655608229473355503089437429771203318411696045915813485429092962316756223530534309101234252402127754636621194903595602975369737190753827641744326133568412714182577594915625875636076882126391332802569910785111492767102581399971532055840512571967719459052241790954982707580817321159871550960109997840920126928859579169893509598525473805745123720157793931874528826645379397246705919965073689681231867057057175438983261172591433084534374192762999042816158269816803265930202345830361428493627671570188125915932068172271944483295564458740130555929177532986785676437765388278954175792843761374732816186181172671784619360953176255895521386725124496738457514914720565313276716870153731915173582455568569133361323632762726142362163334738682609991900322726310137012575593885245042429116367437839801378094550441798515141336202099971241443830567219664740901966807389949434691084065439608366632772078854551580800752964784295694334048655510804510457060690791426471151849128743870676116816581688348835162237597541264095043599520892842134826209888239463070953324278865628547069993322688111211937815706772520162884056182001199444301506758334261253582454703022454035418042711899058219011678724853432848334072394152399893378904306487169301631268783534835555278409116653209632942578516111141865268365871367810382590066069517962226649699710169370126253509761773334332439244376902414867423296091653283956777970027940861858125014248380483634194459093724301654285621118687905651960180993942771128514126956195903974075039816533506489365036511377765720858432145443934218699320292164812132876855309274791945286199374620813878626227086168885889864945668774799905992762170516832286397602366094708848503746391481858268776648132292263579335863654254174131296870418119149815495776365657589358865338595896482940091470698805178079240593257762052348696902752512582350139266964242709742990697337116721265083773036822982285203109878533877438279583228277603292638111424079982283351206262815685659798932175750222034493173084267527894958914247756935996910636643121358868469352662489387579841908727451698279449856865911713880316127683116494640156675211293952913030548025889949504477507603548312611605325693834290025942796191563763615562336713244046353633059741785817925902760991018182572257977168289695842877873481132366808862812579351234375121283563276175600998355215072826240115255742778801476593041117760551386826654598507445959342934151320188752283706573944779262572266255414661897450326000733034788284849265303691607048769397332855890029265923870227806432826385360063991398008159276166061478125305038609527470322533732714459514114544436740371948643335944956776747915375933002574635376058017809029695529244014587573396189794600564210717054976683304558147812391513307495258571038812449976352778240091206197465094143966624359109372545429516247124529032998329259243029938621969365739129118169072115716029535354609387466820196692648099150377787170411130713238297677887553414095325933435784326854238034498923371715428584937904918735624178717071403943433158342474122546403532258439862587425363020263207500155525233366507666318065849968442594825569419705847160190175604509430877771862740793360886160882657158339096872220927940625137535023454838437701826977713885841385522492033934436485665276861895030890207458912907384167738712616518335776575599747764086834662166730571902590578516352864134556059476621932101330736924106305057589849390255326556795248112797415803789008322898950827346294868334759149609660802323956439736525270049118682404540443507367179067681429544332500102012425604707460579176549399015110839728596468928355527494413200695470011639602087576216532647035136220171218141647038893100309176695923945176241600971314797632689263036849005067777939990315857339366162458561796708156559888491058344641686421505397994129265885831489376768037074345182487417807642306723545508193401863131792218977269084282629210028499033005268095808205329019459870107157558278481480198920985152800223739665418820566109708681457985711451954751660288941568654498801409906787314040270368170452858480888258817570641143024220642799266806505935631779768070953654986836352750115245454581021176244694106365379137526592263461577242891906312098198651579650797431027828335397825249268941633481930870680638992419785418943789651312248077147222593150908189783810744957464127669370005022010680099045390419414172473251249897955750202048348775119900064106202270389240887745676752450814396927447448932837279892014504697806275521663399084546299419627897039526864913798937254757361159278346161876823058946226428793182780596728240587569816318120612519353063729279217761026954612959583305681930477396818924295544968745860338774215797659994796416110471037724588492372652783326106144023868823824376161189129939564211891713533183438263621883054381734528798585249251051546042690332290141293115264788922097376301608797738280960567549031672481474079235090634209952752691256824069649585904233169511114557189374075035140006087639146522987408996527742676714380174572619310840030973668305809074913019822674170849846869099043510850298040810683843767101132861703478706044643939370882700517106109693799593361062398234808309770030207141718086282619868973182778030402540941399997111952500580017056809965260690181031094352011615374027928176104933106959112274630259078657441460003038800290852019288244541641080060924530279702535510296348908192689005263921392022329017374482255338858470684070970959624958651112686961714079468682682984967106121960639266175096882478487131566461556331016421109287912924269123713327658245742682048111568064700913800814167292603682240766494671520638073902464702125585357568455442295933948537796769908179882610028666672911277803659698559394914324983901273397307745066571807097188081132574289461340427387946038081854254025258385952523578259394216527635133038309567324945806135153339807964766092712097603443616271200186385562439316626037451334097496190268254899715678455851230482930031923127442419268682043976885346507968503738021668567304678101370456212801998604306159121541650847218448774486452565587749435888807368583512338238885185328713244362740905732260348115887586857461317934733208549626607923252445414869126533912063833815926789511487447027760262042218008634864821696354394432938565986988728781849720613745417331026159102502123826518508735651723732901743100504107155648740849889014116384677428906958580208208431606270739869381896755234160374449855933215844223772275671716399362975324542458485193485800120120795978635866564588955849501962554336287450625620442679363258573314005562222608916678235966104790969725458037606099543896074329446721988536085272101039131653261904243130224610975234762185606180264364672873331549432111733434014499484225578215346488410051234285235939449101281109620713415037216843005577836275051703434595804073984167472458291179855836487057778578077204297043429834308746208574883281177199225009634588377231977665857062740379101180570246547743220373382990258536258134842942407046191488258974212846913861581760025288199634634566398429138059485670336617920440465287419250030569146784834645611070295256679837066358544032806714044642087229890393697762349731360314556536795016846222729708749561684929003658884233361381759095104682101375629283514722714097824913171532487540046929886357212096613826099147806265365997862551573016745079380271248262826175632600875063238269465948704866368328510918803508321558630124902517064142369278475622087325169104318932119111355010007121631797009715393597871895751773238804807332106779949962818349562089845899821609232014324701313388858947712380697135407773222302630849795593599633122445381285961202036765011590281694560790530819157742071160005725200242206643133922990414710600641585834986031703049283587910117186768376253288030944833311047799842312886652970457194073504276318325453672695068499969516502075888221764500808558122454442457972076454400143790329699942291248792458629332232244564143312882318061487604603467455913654951031018782692899379071579929154265220278245165457760478006278760873681321498822571735975298224166666515419591265499441312001219409384771887996614919468856137653071903835951333688440252903443688281486159430686376446917369655376523641694064355840568439618310190714091191885285558721927303304160331549425316033700157974501595613464909870870102692718175344196627886888710705118582663389442944053977400694724570295885788426114497705223967280225641328279951050570592764050537805259749253346245374463978783577466073709155212759169161595203895556747479568902746316390839306902401697771026314360478942717171393358015760633390389558901161614378130200552112976459350669149497648632336356308577578204276333413718960045862660422668981614724759024661137708198432864429385067065212339604832337757312087587369061984415357393740424783504631434167838833349408611469695778046569541962070756828865884904948895656420561382686139158007294044796641685643577964697936873859529808727864311660690725434500381273833100078998259041969401020379688969219104604047318762820755073281349896514696736856228272680055848831349102471944666943265648355048396383181638120603041476449377981157807119594083044022150408764156480447081523201789266641390905042517746402595258828209092270904192770296956857198289049499176221194086322228351326303699971445069449410436332919390436279936796550868662637632794754992614713018542073551931975653672873770450187265712338323373284150129889069835246935829695543221762453355690152015102494650723122712144527963441252720895430586162361801982776099640210734084862161434859070156439432512828215579531287316056254738044831104718831443151563326336345143967571306412626538635951814583661738369181397735829725233477910780466516730010409685872674524479035341460743111761800348866104077325457802751857371426667764806041495536590210070717810115504798859230470047538644860634244108952966464879767946317237534164414599875730100830574585028660755617853067570753049167981411596282124391850349073930883380416183122917520490836127337766439900472883201326310752990029168798680503042598779715363220092500435057720876642006959529100664811699105862376657532837200003847387421896700403264897088429159796377301332969626937324199566504669583032549277829812962473524705808276669538555818509796754350062196575710910441921340136785373936194991156060445659672586970311127885376964081403856325036297620454505552469900123196049273623080788691739356136402914707898091705909725856740477116521130937351486112626206893588512034357697212110896878308857317389222373782471175284685997934132918766365280318932786059462396900679266887458031317369736256689089767472053236370181494468838417353942597554411252555509569813563707932385047863538393414490863290207698433278587356700605497477886754801706528472850415661849062581126127836364324909427289661527973921422381033340139779695182406805547043898042827431281545315219416369057346302053032308829849725883745210241551555313468741150863545406591190938982433907077633690320545605702618547243752538377348269918707807668681079646448615174409115390035536700490731919032247246197457401549205219277781408806011006100100389626168531651721902951048935322222855193490437606008939813723489916238977346457127865735850367766198724611349837167183007531712401664994870247623483999152085381447119113829361696405168633519694170511688951106932961282945011362206755413246794399242600645627688574283300099358566688351625010262740405305962671006328918912488068138446189340202840950350430672968455783841797263935073844751834199159813535364679700059009210641134104827365369547094934852817283182226349028158157446789211324235883106550557737051676522936662712727663701915689187128132556644922231259036141017905032280774111142387384952972417793233977424693286115766887770812008816248765806954091872107727861916048796452776413158743303716716413059457077496740452157208003755019338529858962298284277204161423791866466046611798926905947231797319857912774861607162559230997061375111286534009751577239328727978378861391610738626670555111342170718006067886660048587515254097435614793233641676621330098834002558756937993221659877945264626149807386325961808762799646261629355349209282539727874883534460711054929466876947363840112561572808673240670534203044691299522971345171397518745110104835310199803340054775309319484949782896016827485884093290791716642315892205039438130045426371800674364120413947358165380184576964355328800325946832001708702822189350069134926865786738867480900884883303533806061562028416402811107450638511999923183909973841024246080053866525988742754956425496946366050038384402402961185841827394798131857992416260540814519961205249009308490507012959609875464456991542166190055368979451806465627729107821026496442925767000202881177645573060397621476697244086805734108100667244532399015827486188559319444720967644564830200593812000569726378925747066703904768272651422705997794385133628814751946772174859529785206315515283958156390025370460351787453515132016313069009693812930768290375887779612328174074864621263655206672733117186185201009643564427979921315817734931434311399280413010374322380556156717295245842541921863829493926041921241659521132625151544142986000837650603145024125385963859337829585819646216997057908807980513787299858539724259925039772260210909797939021836998171150671979114969552069672543228998178052009831643890090528690268472194822569187285006926946340208263980807629740137712729004170968050605956928570891477647335084268592299586640402496570506954187011092280107196042283278566422130754893612501764025870321227066723450681004007905416813009339375601003761007509324759709311973665665873863877260148090040742553352292525241292357900016938751699854440409643617166589787837042800626315823167078660130661871726777920160693190600886930738175081412524767956085100400253404359732413489852099705944506342988810074789867748069103428611493130337568159438521472278167964076383085181572323146288518941482348082071291550676670634500513467068219685862046653407113868780612402575858646248603122139089545045957817412127065973225262511234408429758791401642939134046430253676452005737324166606702428477915250946349144021609776265636792032747185465465616364108999372194907941079187045210593972104913880994229646887832153079199959498450306157878021555267550279999200166858428552356790194006652701401858530044357226800434380799924961638138493936493018625586245799963124550854338468534656317286228755419379204925639483755870276845297194411407094788828287882951484926206692750055977541342438159590638716134605858070350285001327459457739157109350667128589726276493101037159425412445807314867723323983564406455852968450435124844045272758045628175073343417478140457982185933769031916146227315665188509110833115383643022945106483594944058306821329178251239730099977849103848109102353135270202789676783723320220485980734756689377537199540402352903267155577623569542848907674492598897539107140475299676871245007166119507460354965320184383293002381644671464093086249300926135068651403144484998860695639292676265561667787786875339424386992736889933045804337949160363536574739688535051972466728911187874193744124683274088778508452879127930211930541737640220574392109652367585372269869593819008350753140106015957110307149331019970916806796206373053249491685662717861101927715295232825669615412588480619377016991412120395501111860094545609880922144946841833752596277324321405656460620083756312609242622092705434633733073763879434454970887624507146755422675171495519733825143702982544684267108184757662861100709477862911040786151056368918336608649978791519614653566397045602175391071470405139555060649502083610589190115475595538040009163434028315045491210106883730497334330826925211907110346489637119383927163571731765104881095120277865258946447217777659357326177299355965752607919933836331501168985222532502325681088902632160263234071313282123860039839508698331811365503343887083497965859230476381384062567102968604831094699969438462928508502371560038458960424046974620621750579294914772525726427976257677330850902383501915140984455586163287204421981586108922717316582135493612625893627284954059587638083421721282413987747588265054958456479048107273276072062360256640263748434975048737797621509329811175322446271220727208916455672677343362723361168299038712454138667036923034042393000954155757670094807556818115310899700510140966606846922427218619387830563790196188636065544828714363639093506181752864051428799502589713219397258577564984954645750321103216585417317728123062675841579313707085141162353565616844781495612798136479309804766308862863466721093442855515238057090914061197440476446399660550686217804080705527543271414926173769278423673857767504596310950514816134861700041965861724927979382791261733539620013949942330841758222356726859812549431823744254450662434707755454417556865535992081157319408524903631253783328912757229519859394744217887263875589030161337050191248269905478461187063174365910216907851081494235363942842966024593549869986480228865837596181104885330972079775117330304349285000615827177493348578529356868927172701161303162753281118403000324495937327197798998064683235406525272499177376067055987220300548120391205761287140954703476204450881263510699194707927681650027078489883524727535395325933564912191879986828952386047811513562166105807129447652974748710199424284806129209416251964375389502272877833153943220228470067556446565056829559196188202216353511803489497677281536311588906868908595015920934409880962339381143942697870863678701186316216379370413215638534479017903124263819073685160418678589856971641731430004861857730828881646495962148727799285970552740459377712512047672881202241800440010780683842221271513587909509046530548254901883221871172129726136200871518312413487365203407564270353726396571089144686501840237985309241585826551299773421361396000815169188539432487568793296348038616105578329257337517533651394278236546322908594912317006220249885131044515624841211459920281130549791251171752505987088072431385116183447150046632033797864679816883512485163295226629918484051631220299218145428697372222830755517827381114046721223723878125977914806532027500018969948980547046454427189480513739949153067524444359151077399881747439582816683905675958430341580219896782114589381673263871785717234551234839053607190258640066629404075550705733530564008039616928057241583156144586707451546099969952652829799159526906775188639506633391596298525910131967264965163662956635967442433935925843047281612181638939028392695276548313289704486204457666607957320445748905779321825593809187442093272808473929190306984680744981846669876536890269558755992209126142497682019741125330636835147627655795292116243833706788127758048221494215170179293843705097530312288968134699101509895430303080075328455343592237633970377064444502581625498311705046647070208540940626302797741727771299851499667530176667001043674960862913486023684657732099814106546721502021473991486737102738878107070312840959890574950665209759410777060788927972907196484527676420007151582187448495535401352734249715104805266411525121036882528883086005379080961571229083063195745331974482047540224782296073985895033701391193663797955142315346448669724505595456332329659468318148356670384261997654952510313664931812461540079945214205380951572080890392406257769769829861149561393298314691237299782142984247454437184750899788456404578601443492274895561796372862530187412446688163713512988405135140949945441309742512930314874108682307313197880384078220203747041505845499508250012275976546719908191888845638604075604586287940646311279328928475946666772582792589262780848347386652575087790368697328787900850802577760511913040807520530492926238260899404951353194799562637954519833267740674055937505718672697019707603072869594583803421750329187555322015499384266206206080745403126076292680178814905143885130220664707635977008003010827583822357765921143919511569730820099319285695740603737041482465359758997502081924801313600330695409722378178497711354460837738339216447193911969911886877458699478764411297193678918850109401651002986822003783863859899118845178936419520222807592053587889645747500236556701334437489348486109687056042061251719066697182818164384282214210264457272782705542081620433184216649583515751600345943679012965053360330751457820468142399277420630431238364781553610253783741847120784928824093858001922918806357622850935445819914519173965280325217175563636403086557550922063749571790276770360061162222503449294783536406999115435264885265605546402871548201738900260447802665907348652794775331856416256154183319776228212112813030283878313560691970091242960964893527515102021847647177695481056487933031975104736600778667441311344919125135922119805280786186420486388939507071773423656229393824028239376143734924387324968076516682643986789316066145039133695304312730230033576572819090990053384898877500318812735524449823738423870825619876568969643308390035278822849148633762719684569407619357989521587867146613189949285454785226560310732762078883931852049566331555965410889395418421844726514139126237832721134243616021548737284595719781097107457243865879456349755579577217879366367707147346922266130104705021302165936834445299999482592437915761043124472579760649916289778974040512644911262788951829052695479485557158503167641930808899406796881704473903812297239745883226063129669544323246561340940361877732979757754045038974806060850803020048720130400349508797199506528146029725705620844874661266560179285822339387629828003185539109696201443950832216691640793578893049456127215324777449815664309590905545630566301715117292166812837334898405610701722899654930551723397860402313327506565269961302189348229663419664880768280704251613414206174883164461969866494467883975502332040509470638541493843221574394440395519728198936016845587815249424667873271689458766598744459805992408680817933441810608078611864589642025414324574092220833438836077306201724236227128140437707554879179605623658728317144800337806619636494490271441610262879226290978114346162725680046811054006829220934768029930449310979403801344698679544793874751062466829113974229013962105384451444252431850690197156940809165729435953129146425641547384057555014091178217406386360720156252619553778998276298080994574789500340531530976053523682768268825994538322644356912995360605147831233338932840137832740435363264795152170437506140284855926869057214436250325161295382507661583061757720035369481382880811172287691386657664904507160816771648749165645638865965696535778297237522246948023073302376061582086552334441993060564263057159923297900555392832258183549557663553512540677754113543577171520805356927986618342976948297941287619201170065803993850963951534479800748020797806916265524373593062160097071163287196816857005057873107655378826597234961264360166712403053154172566363750080279731349185038912016938251286811658146114561433325021220971440554100112566191338819374942758645560109510140962138283441331660895195818836419889030962282829470473130390384153393351991321067220338371961839689233352541904057719903062876499057025069843956128481142072230342059640523330367267458910589452911536291876709917962494565200722454372454963201966904549320623528337301205262336999423194685201011278197449802339236854431175583967951449562673470756482050320370203034956450311935322381015865549277816411500572965914972657080383977869605962502138297125648342330063006486409758208341869162560692863166332523982052375856703303819660558381536225507310213493250240742315990504296820752739727763956070591505406374196070606529200731548856153808813792795448973915708238003292422234128546104851783883437224816019920147613095759770586070439075602808705032389066433517847547702306173716670597977670125512959296467194571703083981853231598064692196638971955415627368412419482823697274980276657932557073276898134520727252952139471392659519010190061599533533046661040508728140107186375732403432222024591250264132667284679639788709350614809537952376991312597405617165435026983667185312395533738762731496473141890669306535350334193975949309485303047546835783114038376282979882353481514499374639790389147692798620411966017111503894287528727143999476647015246737444836678010086163652550213115761987450500415000388949622415750645527294219079596518852115542853578567409001350075833598317838849842673942380652168456369397362862752322187905231546147769933998153469714712568226723010778528231153452888970289892276500096941296571736749638855366537702567953532788039880144437927943351138500131860610975264855826021091411190460822005838693968427662773100149900287793940300630754852629968401705078858427697243152857599530225573724387503975653421822809094547525832329831681105738522787941258165464620454648635899671991140059198071219130522099675602997401672346026652465281303324430101036733991634600993697193743003578818377885444821270892573007342284760588622258944253111112162683590056880797227966181596765026372582015316518261320575219578434234309708729395118752596478206671560926764367185906074405080603914587795720503423326235718991638997070020429776360458817214693171942162172363235380498464537708866328433821807767065846987696552870997579135806027893690623776190948346653167600555133654383577358369560144462018603793890493569740923689892910965067815108769592349869155866043910891114609465920929424474283287913089954141154700179069419968310245152288826073327870762456061333828978360564690512551949275584225880462285582766543103454202722416877871565640665342697745925202418734106972522971724061420189849882932291635572355820607897050783419217369082440926795810131733025447180464316297197803368151381416388731652034364642009444514312387865507924214510921698946156631824704746945153045021558144039557528809639644611662879081807626779608550081587741486255116044681039157053573826224523905806946115943835241333362613594245848139641598133525002953409864948349699763025200501109289895273858331189602667999178853086834394046602674874915803200352508559819958018162277852794961067711672623425739782366834408664829301141823388617896816696309103695815833895973425583638169090914594702305881365428194872173612616968151908965338278699949075646346613401365488304273271644309867481919622742011798064017025108818422215947441172797098556691154711403086718495553730140668764726333259269417193649351431956528706398058067772273436790793203183360883180310236823996749029156498741675965416767105599064287056904162339182094948526516866791046149833711149998044258731873278477942207618119786365448789196905644144700773880038211517014748097219029861125599170094109848816238332369917445854929493141125430549002062988100532318828590249961143164909333610462262537821328054793855318533638101742992075429840933486642938981733558393613182217010762219877965877578385590909588225579328281854906684842263197661318419814566774633221107709340077798736018685768665391188996243502760390290086531854965124017566804825514748453009682591200795860128391263780588817978819769742411745739392828376646876792147578832681563072006948981565424685364756161360217383958427954549210160224755034048021966584113917711180656374840925932907889743079874637102210580314498886219189561572936013046152492506593875908093626216455555570076570112477224869693088541073064748267922709794208815186756346192659181116583544426746360084672372243876191662775715795308985372260208034820307550309717008661137425461994787156789914277380261621870281939635651408801243545560872900440793731609083705169405828095918284034915135301611776598635775903890315850160732082703429077116059620230977659850622923932369674030732180674360323312339058152611886685326876641320408283907257377111317384948986450639532932332771063546444402722753116611069968951013261117042740400733366986962045456916473600259354439619862262408486105849651530409388654681824491042349210177569540354691593022958611310390196657714376309665666165637959731969878921875537556950791724395747978373597349249627176059650252827754483118700034150533873802619963160231989033838694097421412881714958282337907713826609798904773901779852654143015398785715297613475253028513772166443095294365087274442037790203174783233694825935331951893324150151091721331538271337111955364774109114541908220477807012831889029985254956567118916018548996437355573684065369559659861075482403267553494325829284450629458726118350381795464732669814077325842760902212894270726321654113766357185127580156274760634283551908058977198233678898314336313360608856771800025983121035063398707694686930783505347517212458130692034455886284518449008515030070291134011376583634758198183865094269500642551717760198026623466101387790478091567717555603340007559322714930205279389379666484878450229805108869217486153175331340595311385469774188803196792862392751836272702369888994874567590205013097454313146542154207289822575998774643991553092174690354237072316044554101159316599900334191417700138168054013046711490561866119006399048467043667978378253481020978930201802872095662963337036629273499922621251509815873506534426768664667645619874564111552418414414920576452910327314122846078159433005638475076254792235162599445355301064798146074623871865120567514998811317681637782149006813436976597733170957903524340033915650074123085409763443909634374616117472151499062813985527365275131723752231798366279474288512282196008757033277041165585024809697684254405359468322736931252409739101120159230540316772160271977125411638489186778975667860446521974331060865941620000704981249016190510349017583877252104665680507099755433313668348553870204987918727137485297114376730845266924892006724902823570939088024321584730277152037970490304032266929401471619924218359385316859332488889183347543698304926876468352042035315689080706205350572125511281496247117188927473173491272385673900226475652133883399459063574829387670478645882779878370724905235869312499580843202009590694636498816517624143695743111733941169579883207442892939339004127764579737837414362561851637481662033978910335760017157326538253731982478546624484139665632384179374027429229340776924638595185686409485980616879685649635759179317462792747496740365074202997985773156675037898257121285628074710989580960612572390669467897890992773854835778830320045665821758177850569293628767725318214357026951807503436363629638987992457955592295010189691855423951636300304551913242012525713067031469824739519491025054654868423488163701432412706075737691032145235458419748176102946549967755416290276182799631986369900587421174425097051124997094571786620049598328602503327211825131083752739558374525309161059030033764900273926084660997827999597683911493597972922362579074409862207405998636523312420691589043478350100412645702895217389537324831044492535190911955278010146666117437062033716865599383397424126056118761559380306530073805872971078143969707768010538633312674786784972069105722385260046361926479686626830743318233297202789163861231005139821500607554495876602269475074597514260087850127434722480406394995182499393079831052496731837500288164208544369674494718060045013318363658432789434571013831813021998632537597563983822300720633515072203351592937702541145194276819142603604872927717064720223269785433299070837483081473731776459592600009887758914105516830869666373465662048598075083402319686007139435952255402196678941295297894375796132953113194243956189963357428516249283400888355607121611949754094109286879893730197574373372888821078462205377558355485373328738694668506980840144903449337341350940475648799193364527602228592174461608225743963932286563497479613101099505248135101962301212075052160770808503960608358903010934242263838971517972131685198420487681830449069028824122762266440966766384483314180263036753623706112052576508486193053880283463679558648926725756391532065687208946990080280965560657311757936195442496227770542868736259168667916251923677277303213738958479394046071081820066323085778890256374561197156696837309116342021931222761009963760792614591581553548307944102021613011028627819252988631363184237015699498967370891795631071618291923619035846780007419325210228493643892392063010510808377073684042266914286219957158547295454427567998741468135177168981879275883557969048570924213082491129380975238808803955342680518058083358300420191542861414580344359026763649736609588332535149311987649391951627195658411809931179671337510410113351311381252021039790698294734638424518947325848632142562684428696666256381454429742986790175784341908103904384733730159297171066078523780071710356700185453969478310312734103422064585209907768995291896702010403827482416933733797823408206704963077262768260478784299025701144795463707204688806234115003019594040691273819270549945320659148713940806851132908366484957584625732450111048724144941393122671761929043902792546025962460002694678584197411533518369462111200012086891868767601218614303082686389124917364483959880136034718281438592270094691170982664820247574509213973300594535687027482580313436565523475222239873412703995446025367314676006720400116404081266775208384310536157113550288676446702730038545273476477420733333985815154530407111113316785051164765216548114839341720539170042267050518525509926691301331782271863232513014693326883959850123632777670960018106198015210600186399581705483349360207190439188400742902338233204577636486054956956364368713909561176988686935559906546138442597186258429194618572072137291280299551766329038622146751101897364730510292074403586164438642210083161163145608011304216146825447979248299821989915122858417936415376050328066990031586966097958207693076714500311067839080976146173573068966724143915825379344060264077713216992596932080893211600506454326089393080107518933691977099798863951680318186623925845259319179332568588733782748371225483819600778615566142326441688722115496384974130565556439000271713088696618177458876669448692869203867873017597840947600727423478708889227587585380154070550882472120389286984064315452837943056352404461839113212741062670199637198220652489610301279481562306493154787796281343125890811504157839439756436588375215773366425473362034867584934529793506904355276501191829581775798486869581837150877755482449996226733412668134115591249033567715792068923163777489200896938831195519970380393091646078308558569267193434678324908906113289912927733280039324552701747236896138070647715198001542295224613216938197196756525693930644918621938645361873754399159392053025160900515073492214178692086880083687473838140550794454135899061950559347448656222309469725515683645216298159903029447662946845816179082128900439494932472814022395212215270300233805551821695564596173352912002923011569386570312588811349350594025670390711290564392499629396929869304790051914426250617280755988080262842471551626565284629227008946331089711582111912276551005253364718801121874962064459312689171788591924988995435971607777648535430810783973678493656723558433916807566975445721959748405861471091510130881305584514299683846881253669943675448083247244034160843342589388438404233242699279323932788529478814083618324773739623549285181910988649614197921707385631548002754332530714631849207427028020517103917151049422960677537639658850615989840670689120929205002609263546955910211908147975326236024180377588822169108490980976871182037341465509531095120515843875119300984239950474489673913367053664509374123419377520538590835243161764021689950957726175894365997825502542225764246334349737850412393540169440441429725232237800136262691273019894044687746766178907334706780540455461715254088733658631059324033383349498856214140556298818980229723510268368972612269950246193746208692203914967732736562873030137583257453019637081659200198530917410946857996253841629914024395684954738931031043392760390688657162792572111782630572257244686620293343822591381931790719590952075025084583349020950963473479159977460542130400251842022103420790276812501319408616934238880241914539755656357323624900732172752154494284572830114643700527473433647486046679548524099318149141097464011716094096960841729263363031209213001944264144168421425632795793692615655986858618851657581399711300780769527198632868516731797294881390158251008403065448241113470324347631740730335015453636879572178068918006806409461599789041908658870945131863094294572719329175283657500865056481479861845381509655370664932962884549092481862427181196175303784222267545198193799197591010300949325794875426633949382096051514443504550411529588722651292900142028106886281509194630280645561382027960995211870127207278918984841104194042817665861311339433785497999584483427075345827852813028334782980758770982867254943269171943549642163892353041417765412731098851503859659572241367277911864999799860370929201397183500914756061284846261888278461311408396770376569143986667598606142408880417068083270364990892387926944093711294177583690697525206228180625018974079711156841431318773981735161003791419411234712248613862828494089422348521839968651273894429382044538564795740344429374625910492777592620991041180752957766695721906310227344235052840353139856704402041559756045976611101203900265586909361356527086175777408697707148682145489536971918411900106704658671820810432761208760228976696107190097601790835325603371361726877704427977140951665193916237337153164785673614544527284615603809012074823781729820032711051503293500085313841556239176419917774317535832081978339283925205829209594539671073167980258228522256718248836514712711656325671660782609691426899086754987511754151843708791999719859704682397279016473220652549169318588097659849599919791730410329495555125350012731429262602060553520827692500318887438275644291875566203501938030569992639468799372665416622843047868435929226589211821653338862744060499175221351687561373376861921597212667427297337828651978780357696035065318019938793582112610225865840769303797085621502744559392658338048082435200168752051899644901666888899972282359096186388243169553529483645052627087403321696072779645365420374072920147079463306246659770492119090334601755710265956241873934548264759056466166140197138291363316367108070312100819534149762122447925634511303675674194777611233669725805181753735991263825814616267559844553309367898477268136893718385207968870424904486943486951035876364443935275334984345060750522454779157470748669929283918219757946706350720754219325494650878697889965081421375254994612931510855443824032909802146306122282029399304987824568550933769967025008333532391276177159387123713964566645955343484465138052252809221268972791164285510904616370165399449327415387649103549544543877481624966078290483295620887409964623276849023584958481073629384445228125427147698921828071526079032068310941679330999007331771540338835216039124017378504067384873862228899587973202326319316535268567431418960996370534259445359600559025743104198027089704874717220912837990236237877685762203129140404469675429681715885140161275839664186818785118378589060434453044741427960334576431354042429992503849355250243433731633220910234887273563004234751261686806173878245598956791680401521317291781068567050092965038950547302321574366648184226946764550502260762240101905668828996536967756092102167799787983855429953214088350620680472538026083269817798724937486857105138663517564579257878136203670277389089285694830745312128683395550411927045399793057381245195967677474028038198267003388597721844579370574134058542105667714736257890421980834992934303994670423406854966101896167353054212104886029007381852516806081278936781621613614727485025768005160838131172074909362849879322149940328159393737670229643147251463639737039246587389064814210874468615336552690778899567119516021080693868024648919772269205910105587010975025077229995390849844459104151988314609779530594852771413608326543796779404364068291664769245411979582720086178192854619016229387719575861868497405118805661338198070439252763703773687595476307910582503837684873493405030720985102625113022405312851408949793678101800264540117143923491533360042158670845610515970227839700725485608001051249646599203257550656257399158761260329187550101113169741681264920856607791273040512764950300714310085629029856839154572683250522795749206472736976053224963766603103720181255593961067468129901561680109652778939614670541961954760066775466387119080667722198804660992688083854104484879723385905345894393083731556875651453731300962707963644134568042565136764809198990157965753698470893840405418658414209593845864473169850809110281455337154141329666696921343791562649113709891748059499548640277238937706997508934399483148545978435616410029995602108391458841486775684062135872267960580305441969741698166317386857359181440581440220849310764316968715317014978669750028140119832133496791455791909603272072018222858477699241751492337518133811754871579918781940027936939928188266810093745838208139200523458966267144642369194837603678722493099975953086674716613354723016328579752408349938661595445125151238699086543262154786273391700522040483937617245820617707347662514393024169235792119335093524284880761382398106333638538551870382487018262839556094591618126950086273550152436773767188930489682359689833222626328492086590675158363683922697871649735335242457371627442683250090827837626752188447964570037620978580441855590018003916735480620311572380240629922463925175500163147080233195135885652311101948870728467997512287244794755762270187327955710175820219935639217261640260065724518089624983797419537920578531173807143231002385880702161298939415859729095501871428013306565006914833105569065059270635436479226832717852599845855393436679001693661312887458832101159990461671396354378883233763508232949933120633477835938055494042983613124235508485130778600099174665117494704328713649813532975818590720270012546739563891904820357583592555451494599743539218117607442706927937015661096237672353282289029582358868602216205001460227687049270020174918451190703019947237280742825300499321146539298131331724891184450114507051816703160330039547239203987660028329304621961040396122695015612072459464583289344697691528686147511601597606266353584125218195440768771930806998289601568631994184319086506367606429885269973544824616842637737405495790422315278905731627754392024531930970623994299073063398846917276184880477683997781464051757632798336259618490160649635544523262745945335050484427790933650115217104600672801776224882466527547439028090671861622290875974249828760928303444191845554154986742345298257040916660374086869711211854139741826080568974658697720411771627297162081153025135375161385046888866348518206959945332047772683670025295106647083862044815175197186268092792745512679299302298386118236180218499454220434543331935151040254988705197047565862944091708536374820408872400024310798527656164965220185532643408464468308005177821107032391751666201888645407679549880896149800782306877447176055700398869675478674298150769025894034422976804278544528252274834299157542209221204596125035238049144743539287450431342200355041704333206821450192071885506293264515584366966598567684090558454161894908628457993141398437401195831717457877947812652411217924611456824638608746096435872131928473056464358881799919447427368334097457727255744222327632488173525526874189914537311537640098605861175385876300828496891989357547469995309055265095306037860698927264480627157169774332433659704880313214610859303925759322459843316503034068147772028758812011327699448447291638970003126042113365326416668245678610813955357799853320663875272968265285440704298915654151627412088962376661956444211523594687635757562917746854578001806996998420884669019719778944428833135151848367764298611341113248517330759065729455934423125392529589295041255126823156705184010047447781529981320847226837248204415260971953484513100952121307775021985779669338762765808238307904972998160247083563888060981582410493006381989309793115575182503511497944872347628411976364202690242285206135459157326519511437275718835922669702058717046298871183668719745026484846092435415877111904538773896062830592265943148896203086278084948763607880810586075738337397995139704562027318130853900190305064875606039800966144680330363321730437044930481902724221988815428372698548035035402497960581560647868837156041054300219132469979396280658497645963211003932014271517507826501735190561401051430911653633903992154121195440519416089456324125635956427654741950353776870205460486907066294818712700866229611078595068902480773856104492812958698790906785393366894160005839764959314172787799824499077524358280038403340924904918116219709719617535751293828158191029515325905173894038001788357633059094754246076085097806139394623951825768201821358254167730679303615656216197830666201222268697398477370063132321583538931085508905017559308996233401073488145488593840803575918143144222077685446078829673393931468280951123058318487246583460941669597117590023864111199452372711757315697337724399157131329113350460466639786555737420245218125331139867280059076902078516698631689317352447090839548875738958657492106334972173648679562199703609196333561297337832520712277117687178648862230339642350866453704944578273254130426509060285910276033511002970147475406429550948340806798158433949404919786222189489945768760805102445174438192223965226027685057235047508922397149832309942504277944825463104341787176746263711012473029655328707615632507942917533177920337134082081545430750663600972424394517700469974047558591681976825376651491145217813753710625265306497390319624550845181692967379402681543332947822429170588099730497212686955425778190537274343486010586374167192808226882194360040189262132620491682563546001115161453924612621033686192264937314979654018589657742704475922502969754232842486754692703112335362917923692498731382383219391432367547329224328851053264123801679416181758066570733757116528173196743371961277355346615136623507213771399007644143594721295601053451608295132584235116352736599606488280779704852440218493759093253658968416624392134857478347922449161038836236528882887424401688874576767109054867964086670722337915313647027375046807703725989560519898566638922573690230548452751298390463165474074547223772139154337120150856845442394253007243427963728749206576282314900726190792989288543601325403202711386035420700137805950968901226446234152577974682766234122765385558282590254626040903404101384137682044800673485010904332878019113915265574542236192642391987702195793885809882392228588589479419663551686245028668314802731290088673275870844736097412279966130915954918232299394696099730133574439436747042615435192316590494060764457932830441257245205786635009574024502788147079719355707689511608942833988296559525350371292214806372681514326442052189516350868182496788995512954778541975681012514775821203871845518469553159004905237711874856902485677280547758808808398556612720896079862211761670772900628831324771333463729145947789549341987185647862700321013838031319852693001349882753802581848185436333723637444792232359323166600571957222202967337611816628283216118053051897757009084751075011771860729439056551629136850959695568920581564660701627463154931287398354489563431735581259044725021260504588977827599223873036032852906848301095879667863666562346978134848444814148272168483880687962593297567133984510715787531342222327230767512916516589333142450875956859989311453157604495295609675068693136935922512328701321667994367955063407838879186345960419934133459045255309370557459647729568320324745817390103066052977623624963163886865257182468344024032558922522814079949627586025702159583709131277923186290365675405098379887859160513824350941203741523429460008991360901353623071899884021544146733139740446059653453597719715933942538558141915929197317723465738830715761965745581349732203111910961663193881501059688071790575024943892905670132106142240981754977477581943645802099358608735464796979800280400072748529720096370438117353512608046721817262750638675406833444317864234152104471098315921939930046194966637061194665813317099719267319207926368829225352155491428755448214683337327295497130481128790651641748923972995320421607037772103361850971695704285017573028052689871646784642580639472273500749864638675113644203050769073366724426398298650403057542756967996171529402911520096993902871069445400348845197933130559156562509498084296358099377770748789683233030123176759739810872056742800662337003333357360169867520431486799783004434190172041206795752649651389792885886013399054013675400327874819543984302212076668126682406298370249431553380883074134085154998347607466938234458627980094214598621251538551220703287267301444865820186410800461919556170482795544393908306626084099549685967404438631860578951915039062851127867977011969999925050164896874397519561721165978761958470349405331873044387370217068361166333296363736846042220275252535423667459381949597211613427538174838726323279018994008479376365717441235483945651606423744977471173084541739867295567942200278665071549396768100128358599297730171239716078951674184542015550578971019928004129177317719944955518611258089868868136811063050091128572150285516471294299572089183494953063058729652694693854845296855050021896323873981124774275249379587016968679832069943274710922752651742178312239145245359234084072777748790312857605024823772291186009836808020211099308888190829597349103740650738432569604210198721513077458370680792119085160302875080468567665026657224975133241167130563508922894619781946753147419104866822906946893207521391464947176986558481333515870265404745077524048532821325597054023106951693395085784049273945901799816748192099902038386494880963416994208867284488573706096724840176108395582234077855503644107298692231050814070468036823769615177759300912937473103772259987457409999071766684345724721865759533720425205965156839926285872793311972799826557740113397818566005681236421497667634667083284985589995197758685572060854508286342547681226799731415788606982918836413024796896739669579090810561966277125780235230564654788374384282566414764710126806813647763954811431404528292989432239971582944454589996659790082048517764387094867927301845471408988907798480410905065006815783106480969392603984452025547989659081771885304042774130924864217479991086590897392580975744138325950815412679132227417196452802528773560458408266181147306485768746047190915948642015318068857758487641495249813534938261098215009141817229384813506527458930460515138436018985001234972782274230020007540738854083057856429643797930568399404281371068629592666388828654578209356705135430338379094673502646914813895868515648779724963610486263598690297559127076653438388529727268230557498090476773316347043098037552248561102827642171184171081627535246029696917677405351744333238868527801444012936298596654476405019144800063461864217087704641712835604750412656406331307912310382181684837498178293454800385363748040408538351766205722496366591055910791714256013235145814135002396655676838580623839487878535285352532573464932675925623628517260913298593445185245633873867304085047632513136979505933234792386065117024809797092686386459874763474619246943019746199026008113051269716822832780415623153602145514700393786781616652315767573133483004057819698279537984967386286538058897845924085103978156064529445177050952483698752541232672381829571805711192203319514854368350999626521251267950740460965093142890517275056566818754786353467008869811466691404780569139792453551557947738121329771535438427523757191271558286519122305328168661459189847621987566905047659053651849983347403883676889773967734467612749762364559861301144319281957320596272248188108275357327776191297530340425721306206038472200730483114926992268906500821063372873964123113263951381317440925773446569780309206991341759434398601211654233660330531707122128803489811003022538420028551791473856711413371984965179208878165241463017569069185957560319439359896385577669059021020512889123250126630159678776176214225377736296147125683962972166262595971595359155476181476909599828544594518085874161937517967997405326803811504613432835765718392868437850445571255634848127326778122619936379049783947458436855406791918501327329669878301533776748031980060416810655260650511344299500861882297550271046292754017199114702308571574900349705251985250382852261766181112740310206585601585514229975187163581792245772073858024494857285765954366130069361207729282644974286963148788666150978680022129166195449830130539351563881805614782560024808836125658291785437640133379861205994793508221620025999017612926527427100435838583910594996727258394681655009461459354301834640224588505916163273866613741227484984809990852082213925446687777036007552235463081900447075143787467290818902327364629898540096457909373981343216919859625962858502554195848368710821455622585877960651393114753716078576658721812866651687545985046411853246151351052770735342038205803372815861347956564116617106948305576816626752776253565422502432017070581612024567871217516673975404855532633574809551390199207461784145105077264007963385658026810986927448503261405660958659586182948850914218309957809681938422118303048700456250029272901267624257786700136787238414502501815869583900833381403029176513644172591644041730451021747781897247838518393009728230160172378708742108355036827540361798769178268539140519847048715203137299968132414044297480272999420872281334449939597555961697170587914239801193275639811342093136043101176152101083575873744149834883706504469648102773531666471821087248566469176312715175650045124825539821700223156305398460794967985506543597780271076151066131981658332078093456340961961680530226481081041219336323355583829067287477746682993228532392907998729099627635620600929189148680665295740540852151311609731519973513762948898834621485225147897739946311757185764878398293157327729781737880083634844291493258044678385431369005714440363274863962957812058336587351787882167559992919881118571015079433841239237177752084197214420050984895747282959937751234726771938871802388481406432996198834539275724705537912602894399117051685772140646365959050804837815879196464373291461168329121273927702985138087301513414967115120050302843056235050974527814403084677464223687683362847223521289922049465752272248812558332969076829860100421740072743301313023957518941231602927290451088013804282897354581634607499094463349552865550158625436545606026872060612272328736332359330286721133325235139021843481172111970271946341430162175365353034705934084933519788838578914573749773987586164350686352327550853335236359905786411428145867856838310798725289444548354375470505976218058503482186904102459136538925018743950306834438722675315700292598700430657370610994363569624641964320819023661061889082124472055767280991361100307681920657694822700603815830474645072024802017637150164196675123278392076084899685515280469428474234579475227074052171385585883834955397037338877712511722156339414937314153525576590790123829897151499019825363830756553565359404541119689378192065825655288574721035234417615441435247379000892549860142061857834470390920454492693638342146427442371993975666177919237041107109035621831094284845409570670380584149042424608965529269019718472912416468928722516647641563424314538606674899717820746972438453746472489246444108295629625382969790560112487196442609359730400654992071199006010551282045348215993286974990414468004016217074632138349947368226502794095583126722675724467248987850392908543789112624447625631945451162905604682355166286781038622184955510594692268166043239406409082918869974465002602643368800266101279385399522807761899449556092917556454480114387276686714433546592366062567648412829610031242920717388684835285607096120239476959138008485829139073079554937793624129780501729422261634790681789788690190653073910211273547919163373135913530234369369784900021273154953756769836903854132186722903881646658651599603921995931314553309809272047399536555479884673394400207764548932615517535457226491656811778266210297974627722640568959415166833532679905388057278750683892345032432988132141673228942281895365592762490334142499791404093928163961405293894168174230805096364687323926567543813203703054728536011807002861786437275167029521221231588786731287174254597884842145674991775845035083740251423978388666443873172617904790213018847467319885491942272973985026004325193266808757769825666384915689530803262147158297339210463759758120969615545297935039348671031669522172402365453815552428368518592962256343692703297718957434376325621033073159875914849040868429356985855715503722485649629751982657368825592600330054447826228292259258647707692951649387736790287279486707322488721805808031605696818511985863648698278912629398058479388254696728903614127567704075298730540245220071405065201572972656397990546980193796589002419951535339577794567034747494725880149876125381214489221059059233026256196514680370379233017001908499971703559978082639573854979307884051448230625214128625593978167660610392985927681736803744981858261858292681891361502027169922461404702767630834864009847606400788162552237065399316305515401117611166124992702466210189485714424028094327701425970101012593511680155141752696521337683119615551260450417795072346418774053443290047297787181740883567919045083363990461347994260105084469721189106932009043499149995201071440059375084843877276282596412485391224372165527008905026399813994208514614943330803382246928167192058594348212409698591913576098617540462846593737099758149604653214275546425094811111460993734370387346388927535176694455560711824540795207880431582795907435969816181475385488497438358938319666277857865119343192840310445355002010282785752490842723804929948277013131484439819192435807670201500816144819714223020573090173192688751974786019361325521231437341131218260870813217433076825627613773570945053401819525916879737616887254567087300724439206534044540897450215478237902570763337694764980129026542849206130459071210877601033108461473665932305963713506903257850702179729404713747052875313790751927439835235213312650216747542992788795503283982032067273291562590470745536150244822982860952177676448538525587026146426406219705630705037506298421490257126304963299328715934586745380055692276182933131776984393268591031736155558389618735855606100698283706530151111102305188285090082950935954911540987788686605573207713305157428325023239118749154652448748692890350995387450530906286682114612445936241937656918764348844496100279826250017622194052023352745568393683819419664527737829688407592524080673880187492459231452128709088411510705672921956043422521898482412333210204131134102360365343796426042834105831901497035751678534031356996435372500182758405745546147360114038047791171695730117486196187678729674257088260946725820277333195055483595408969412068799281974128512953288356955907666235167339155402133046907671426484862146429190818694426979334382117414728766679651513593611590319973383663038016993237592522463562578617585125262684060142356743159662016924499242407269459321311374936515069857342947562181033724180837449843058078598375270950775983075264578982623057982263330718045821380423061820784901899524444613633810511770378337491458848920652740498508673246956007628252176476775256307503633981989811070724525109242104052989320452479421399696418903511319639744727906436319950275249413692643433257337405753556526985475369120508703211336773578200312670986977448349010966567664225761396897207262202842695845988327256036333052234468854283821152578300654060178464333568518541354512141142885130320100005988517039113043825861613262398469685878831913725749752928095928168472352851928360384178235367677581776168637975901390780158330025544591836005020073399200342163837315957163582792659453311215232842218453321599073608325310468586178682618617956037670977632924878107985505588699861586126242865284176731592572677794297034590696138083503429871383389610262168461436103385573897218622744761138889532832820612550167659602119187619867356989417088877817356354182275507233022123237589241589226580270000138575255545298503148801892434510534565557027037952118663025512214848215615484695086025524413071324575770643924600787992882961433902228484561705622743122117161657289296274716099928067911276120574230617557180686314112408118143707299824937714706835791600214324330437842051672647878514436350723935324649267657116483381231776113224562692637986434613074574257202810261699542345940704585266001645142662375727847674693312544504731889920066191215113390141861688926020624818118994471731986551043902402760671535967429028610350918542396347654248855184093881791977162813888426758300265252778613466375355930210861879331867559025923214718728145116744894590108081846483908331608592693479228069113876386318464918654735738454504388515450300151612669891742382911118342765360585828411289928120106909984413668818954074387695085881721325792662989270696312810263164926980916815389099967676900702540022893553756212822488765783401535562676202155511408073757439568514802670793634259491698667323741214705230396537682215321732645458325987695558394373583498430649686661499381707094176310086771714777182091077772474877952635379365357400547566011321265898456091163615700288422554243763523265742277363386160468786808747780642139727080627206012384579464555963175545507487103647822003576440249464546538302778100133941302171487112939951635540410516777515322137350890464293087101055329085466611140509472767408751494461870614378541418942590818302448017165099392924183687068464315842541493952575724571541008408389023686766936389408501709070012425423997863105517251937759283841180563643914698384064009759181073637014761467983416932419274990342248266758073926197993325229349888940070521301504736879559946883480431672114601456067141969834023245773431870094179004544499172629693272916385242651374784330100046567402690321906435261748493880307131652804166496654260154807127811099670058927973851338831658398722260319102823114913877917680980223635457099290559502738892085160653926881558542182086617422064944469297975053657076617714365809408542873857033521630357990400990679453322923177669982615231883714545319026814000738513907085739885684218914094005733632466278318009104323849731956869693531482664588167631213107689372015754623828691194354833772415068284782732614316953508344727842989356914876973732731946602665006122598269458589137175469378731367147243741052608250240136357159207794639292630365727653544510190545025652518705204507275784697934737149224678194035905665075932495181445442399382936744693781870256034766993691640072895325923256443721568822872573282949711911307954688981613908146236568305022144343603125908595550433145760160436299309416955053658030103724380623535428531167991679912036595127383849578716138056439239853626240205845545054234203953073997043107343987141459370896528136912386126184644362876284121184620424153759396954549992556605831558038210308554897576502219067816594062000636118871919151021692298576898893917927534682899994597079313552309084539945417972770454999018921113299680679174120650242926194482830900688107208700917583121112242844502493252115860498619689353081193828843398710895265754786083360286274198886264968359079062124842095572089038839510027233423730290500106736859396871693412850306227094789805454483201974511426891741423141231824077324537074566404598259562044378435600342827893758573748495999362496211039808663934199890972669535254521782830556311620232705833088513018471007089403986186620387172056205342543058271173377869036380186041163384048511852787215649582626526773667532882949089534303914499143885950198435289978165776273174481139296037965079681649036355566322761435879623850381058583325097892199558813861168234756843536772793619580441432528751942255028830566079739137394360182565811537094482993433131348892796778474312476146196266234673328228297513413716058521791982851374477800040145140682233224328081237815254780346087155239882288838674921272097784960422027160099575186799164407977785081723302573487912144969802883115033651890797861113238336154597640903784481586305784026866271539192605377628367443282937153051232421257136938870540337044096582371566381496623493881234552587596146696405186111164116379995690400650506597756347285392987396335208030695189809558477970341563708508678662419046334389931266727021658891084202085992338072415324944385592632050565607320218853931767406488802909195699593025137633732055312630459110287165312399814902001646861523442102453137631384531665834064949300867843939525306512148840912180926489397450197529699271185161248485053055648159826418015074542694551167564186653742112652195527818896431143575281591409426664276869872069945250371173181443056597069342775419238561983379731928354653623703323470681044599591580542613334709990637024045519785552146965938445595196039374581145580301816655859413276410843953390425263318800572447324383595924513799480942503582007498085770566891931817346486014010059230826084205705888415666627227522580105805927780263026675798080788722727214172618687690932721029983009799439965956100904705271872413882060411251844476869038908686927233706624603630059883446211692459099849380871170205588188694540902512452114324081559905755073630132747701591137753660462474704411185144927621903308771896334587044421632776848671027246959188956914918270805424287210595238317451278469647542923763785741862803942329998212994755344929604790496016709351828710988944906946098585813396754347637102759931410905981871209229425303694133821795222027128151578182330276924949972281530848811245600063217533082323005638328615754426815388009541169717383201911052099961120751948042732888390426264634205759734624191349634116759923566071339088233391318672259406919135604363290471160857232836767000976106845904266297384171875760250929902963064895225200063861755075659636594797504724213410637995226903823217473791052105438651724673554127018649041210808489255844563204306591653255214203483501802277420277017367676331376297118274583153557041782577333454979814597873783251131848708647016451757517598337530583050689038108728022058500156479556709884408160373242949013378453440577912021385483172142304595286178747965422387846879111264237584291554881248543528277494967180849538807348264879176115627084103228282312553144717601588998097444027265945224172929283860046535487091101412495539757033341780863993167376554091730503466253075130166025022253638238048335309655455665401952206752008787555354759082066463689115246129648327128146445348432367540726613922094892210627173309577565848637209945105828860163058360977739750739241494184512423126998490266898255256547771763148155758887382234496363405690315593268074614331386128808836995134842166851991659274253519791624763599166299513935711939334868358349081863455257519697555732871195918878023616757631484747781994358849903460069864717383511078145101679948035096797694711817162150618241903493477986901338349868785667988666424705615690995029545253097315456423836549248123137196199786356277860421694984659860369924048490061047682697974788934841970770579162583975346052243551046128057202851878898446480733508772817730733964114630311080721476026798179723128813753612918621138909759058024550220471601229056297463859780885649972517655785145326952956988770657127223833989928678380167969592679592600996334363895122772206587498200596750891150944820694023275637805057546835757223316957044121829035173517842616349578377276858196694466096072905428120137084110459968847549265275976532386713656448768972181045802529988837874836527088891575643286258378558804756652198848313687945046474094872463835441658614318517830750935853402217643219979606762703789995328173990178416987473183833907417789202223609025919772570566472637155963275259983928283412201531495581590112787126147451641009805543669350767507891379760331808504304770736360587933259159478897335916863325897302954066990880763880175846421341566784299495299657919007748620645773975423615423036851548744307785661185565325930587906610583634725440013621080668603728447094772096197660067662936624477359059748183390974248745174787395989406636865693565970282577169415696371981330380847116052253031886519509707372063060150581823922945123798666795112793636503882155688879098497361526883979525122835368885625882316432325350512768280744353417448963699772852117243710510221307252549309320121112992583862692796461084225167362446786092568782458809781471099670413178411248152991967067355579315471349622950282928439915877265406647283343550566880712469069154869016701538999895004352724996188189074589022528560419672571744895609440692170772771460087988856748232388909455576986849706908806659177508933330593544061840445404044483165920920988941507982083511279749281169115709752046291741427841348887066984558875254253831891338365533617341748404057727785118541226303749196539186262920880369214637743619002723173651862308241014708647666574019376430484936741307163557237881808821627519611894100452992049076810885382485435829368032517637500466792126110536720958443762310943219192590942209531883828620462545111897434107049511774048416984466304679378221422233044568333499049505580906130224216579236788365598354384132244256525328485764515021766481179918030908748316141858603452848218977382645738038577994305083356170390065410955091612328642657615693499972483434509127083083836378625298541310480889701148253714404945351027436970212274701161073029057507105267614485217070071842546169402465526484528078409090257457201474169380523926340739966569217729017129076683950039094915178245260383058443349776467980263739551095464406414732142661186535810421906448455779974179992724040953154202115265574088751155559092292853877237951263189199651302275561540503288148852794592137944448950821717610777479407675764131878260615617061690128563586283803442950425080802195875000328397923297406732548004660482629103096943495545980591799167362805685648224371183447418379499607203173794344458292454577650392653398803876288580374402266327040719244336766453790561284822592416692420216837407402750231265938306618607926238771545744536408161485262154531771584033275720226877530175581545869664458531651137806838480882132470512591406879620197750819882331485698846353691546151177737453046566519108096484847439957446124591377839617801892928610451053500225938323781995053031053020655410713125087749485025927351060830896698064670221722587343803987317429399508907665670103467601005403078531236589354087274141480292917983683298280066524435591641135833971426426070811795023026504365238194881270083061596361640157585245983781844218764266091164925765124081247939385162981332215977056588261484105972424295392504981459704976365411927111967783098904620392100238092986542123692015639579466027770549863955670649646475540871368635797693331388768294444218781629203480843943123116598463299372987451240285096961435526429784328657645491211462535738801839759125731554244219343506394991098612350014283691971517622315126568019060587667944572723170102348153531314858671170546347677341829386828565824980606994748695260292308285454067360165751535468525524851290777286877466657559323543379671833379435893692795137056697723233310006021607218269194756074557893297274234217088571340585807725593140665466500997699169583124833289219791887330424858547370652040361844731453678047416391519799561496531331886483776619673810354868638345849509911559527248826245515224817015066635094194320718892817320849997729649144087675016062813882407308389956562331346524702347694105255155154355178696302219877505677060878920315412541602901109386803020995540880887653829221676846238066587382683448494368480766144397518976248909353472793368322672916460232615764207711577379049229152281165234814761127924996783105514965112045229345649676806998859140510731848427316031504926230441703093046758688695808930623598911513610616504093201787106252136984685887998599385866766948018049424266979006219776994841187447444193783825191202069528795553458143656033052045795451447740313272659059723802301021562523583425377374152883729773201689349506369629816467767900303204491043962036206019966845976914846142921213198948499009050535604197617272358810981366619218169114613393526210528045178711648206633861441365628876063216001600880397597867161242621589407605909191677340298813637505625334210173797094269761875987296165165414596090685605992717524002165384206782759589249862328330399123842821703596774830762267021290722315777369839953425362529646502073899721604799067868846698502057510623853176644214217498296541946733446969578391487070100592793696889811036487431716086375133662622652086325634441100726733868286870069631697000844071486027649197397024089568000590360157515701441590893012001584714056776475922052219265386546721090154057455900757379594904398261665630093019160581400255824634802740752665393445700791203318644095292934964054287290080764951294623139088402983110389651622987852585086440835855335599016290081414093156077970146191277441265776216658917119296875552867637977269279047400302218984839658583066094702764193138083927441998209860519650269663864818530528667390831441371043352845849674009623399194203192873328117432894405627761881930433755677641734535747026601407429810105607671624311991356687347272211233719820511209028005511136537629703171755175921079671637255384831177855276055074355845700693980840652854828086394829097369675134799566560589072209091128477916176859602732437849307012654316452796162132569638957889452131332090502327351407079989074995358634308284212891492507829905474980274370633329904049126538787977660957094080020618343407930729752329409837391517668352647698081528097266573405069992313062569930509357102842623027141287015741040093476034604571869641092210802407020976732314012359633722271034838537229669580880320788334238400472075792117119511846861395777320800431520787101867967027120955318208252443266158440250379417816383612527870153324814705127737207277990462338817433819453632628912384512460701648432474032833228602156948108254142245604154129085605308451004032391915803820013881558343383037577226596964196900434568359106772096822671222547653249817744760232934842449717160205403610099660267553545249928369199827438553976043238040385581262789986575092574464502028904761661313758287204386707227179975534701571871903445073429155499687730488649704533161819344961419709647951822899330687367614825502016380813209459887553605320301551694415249879557663724094170355797177726740920658871571524665161562820225275157493603402860289251135229776936216098873695115065552530446932314207707003774949179900045925845714771279710263403682843366610999601498981644862919615879329339768107245552846144148585825892404387859336332859891276662578238770011682734385285914960281401756062532192048868647420036964840720032437514229002397055201592406845888058652323762914037439819443915020497784765806541875879412141907673077124972197559050557051717900939748745987706889100593888647747744018947741827951921601719979561453658455209052004503929493344417989899955616129080725505657417748807145363171217607869046877562613238952998464925335648161559607466569812415093147764684607151040457491457395785386101176731504752830056406941361245535927219139972686941813076913259710525103291905447210673062635898061078342405132941781790449082541118591174053659313306650985037565965468911036627412638168241561735465927904606220377440035569369426803550929259978772698532339176632983526340032077077511190875105873853790971635768660312196250007970053959221712856994061535706296671389682762540537354767232124194796286448920819167288488108539177071382376738200369718674734430754751086265967574509285839777605540767354110988489442325415919969159667524266818862896340066701738498429678951458850034321184135062079316319613246292588552052217001104078947429419924194247137085257349271181363782151183790722658042739052352362505414614973815289863393501604674234145550388128313344675791938758245834362306601513179622250446341893782617764141221206901103715141736318625933678038975358474978963288043074010995211125862153602186487814308169160580470791130462130594178224933338332874561139032237907731675457327012597731090421684249672274221509093933224529468038423357829126639704252573924787542386885955633565404230828526852293556457005011272557822892653845662339313152133226892683987022289750819855036500512369335680602015433446163953429296505317876723563554478778456722923727552329387430525871618073265849129173412571373229632807653300695205707473752145920862933523481232635112793872175117400939401832130869611572979757189953069521498313768979751201928244612512689766151494436877046235152678109606000326381839308866802689144607384197591504140521625447341625363741674636081103752769728054667146884704783732913160450074371500578302363743073646739762326699921224812971069717995578662055630747015810145988674962700493215464248524414405854718880476918273665300254201342118274306083982546173556164333647039183135321691012021667109185679585491414497173070716429453423584394717939122523372913506982318669914941596496871654927203377972527265365056904207611571330878142444956032449265394786357537681104931469299061040216823502167763399123077298009641072773880560422311453915811126800611093568210670878095521169109702212659493017837933089231207015320425170415749892701027435997921996131915740547068219336677302944577651611865618977093365630387473278039234538066265473272989122912283844202431293121253406829846464786334490305947308506883134695688349386363584291832245016400690582322577196058408858896237108556317073440869897262352013624555737972685160165662266569013042958925684462764627936059149828082732888735582187636882732781599883621872896231691740790648596244104248120144053615268204816654127399268945656126258697839058401179170546299939116872302537589868748320740495119645509189587636362580197370094833137614921283738782911660801527333630151908079814996195365342042258153826793613367964051816572246827934558142610507203429631812686461050438886515169193055478381420543392366877011984134116222666350736591903070207819482088121286358473455806021868911102454444260637849798581714232271960811475487992085121556963828468443734292930980375683093489710887262804272744143256037322729149321112209919840900152080919910239146117329220527963094533862659535823087656154128796265632207992301381205008176921843574597674132168291794411750324543981353360083856410844467486170903805779485933548431150120262989046905332117221923330500406915222593524479906757725105603290175999687392744840743801800397510490261495242189905643906244169734894315370670506450840344989967862723357466170503833714612432983533962844105829857199961285786005659408641991285418099264682908344538115385343871161700153919847494248285079014955664918654305224338830930395500296838926478046914000961880293329536195896627105387730680502879373138626318678565889151967624214488996664491973785794098013888857320007174003950023549517232933667782318237699048858477983092159832049467179962841991617867792141713095161736634429190997933646989609089467589036047658216597978285932019782687055474997150610146127182282957662745873244984921669684704650928867993214895562622308520343811912831692108764469826514632736673296554214047023988655489040068774125951218062046604993659891012174100111656228243775781452784801739476394921040527458034024069084181231007401349147900948531585811365978458399037539695343379680341801626242878016039640632635155569419717503509817161099519661223400220562315781215604583229872578132414681454004330968628177104614723349411408495726386878092776564530584345244030062219472387957300611256602531846963065068929175697211555031041312734207280332836448634217993535413482965479681797905358401966698690716426078011406139034164581175386957073989712585045407992275889241070064583738900822231598635158211637285943840009079889791788097019056845683913563082960267289058190292927253351044714676330680887988837800113022815726641031925549381619918324437292035519601871923682514420831756695954072919058458103686395337348574674237161870129253562147036887493485156205974435323315307784731815825071522742516864862006054870440222178546695801567000434386401805750907974200133794808891001474469022095799083580230891049856932253314154586076312550449104762918536549267270188755110500022678855414278246920332728810076664546721244070646037809136785370372174278085424863739181529230568537547744251574708647986013610411132891688623371559228936843846238405373521851978239326605154473643252001140055085957824295079130513191864334148987704555799205333830440639469432989226218918902271308117097922442589572339823378821401314359981401919664315665252973755659716678324335918225656714157775069562016973590288954799243505952508681519594242713619394442999357186649188319296838953315152011272237326369962779658524567752482413601258843462853430254451788312758643187569595901833071576192003279816558720269063766153945299517912442330627898198086574327307539293516572679000277207350335361091738406972573103448013963999989746863260438731526755749497944426171339643667811101513917687554681031234680494185740855033359869802195711804663357810688317804882068690055384182880728652764091246422696622063783965445703396162100072665983471406156547471022205767425525323281953229221764307418819257322577230994148286522948444219950699737018354115025059659585414345474904919306010545799090033466319232601652581318047971211930900163745641064861450507580799919929668674105777595365127894119432477373192636424568951541241994753148670165118008520632580930720393721559895662326970059691080423120078715306959067877157460028272342356921958485295218755506239128859024686089885451117259978065796755618926763550372242419543461454107980800273691785429133019163897478919092767273231724500822990680987651970038394837159340622484317525533857762427303826263437472699613788370959698288023506683790838757700385314456903113197964568787693828352082804110018872042107180686453149189317197512257812546774042501084295758178054788452170962018167075214573788262782659760944977004632461813329603475301439784409966629082772879320845707704596648045971774929911975113916207143646270072969690310135178099805117662598374896499374438133006054173137698954875982701471696180114638724578221375472402158611680505241621949604359975572249953248808273640296147910832455621054219035049760629624718766678321733626434803200925517433086372808938863803209974929499200472033916192561039203777789847548682906330267281710583821681033305302916988178198978449512747107287468772142872922716531667882378490971504301002385548669307641946452223994159150138346253124940299788384451978711132052535221289093906258888207705484892914095214841882130199650360757633496990148516471644682412651862252533016947881446809484097882342444415318448823300766881464785546876330141924150060810533447343091324717500674705281524233892599016951829864498457814896213625007658114290767518673761875795821710080836083294798049751261063595273907512685119005778847794135093617368652533728401818633296861216388125393519182949817242063781692308624689525710034827941544409456259448462368723098525883931341951682484772552529392283838179562010537886438717248182679022753086606274825708035649235942903789193602181710743660410631824203480382654556276406809964713018419086807356571004771714376029579082453763534032107779999889777359487549221418199682023115879155112135798931173596118879832037201221704997931833350887803701211270950095099344591071983183900894539618511047962181084720302066413298923889281322573443216491757049249509474503229939716421092094339651830249861812920667898159961155613358824143591033591724508528476358264690775567895203484024549368919371866795316632178719065578598575010915390786261190500566092677115671782933458848798723104369285730586915874158671976721917414156398297709315861106935979839988307248176498502554245609283483203074962277114611352921030290318309554842378188047673319312526956249163561132944764437408491647313930762853887105944080930052635921890945255778314382723053897283902880035783907911444486940509906449562866188284857592160090856562467591353467727004423410943051697416927281739305814507294579319557365837164375619747616037921584972865069242828065205183335299598524456534573284322917756273068282047072276215691249267020503194429304250216663632962440346860074640835735993739297021964053233152636356324112506322720703318271609098815165552056504476883705954970426429249228003898838545309549099035614534954987291954408508584109509569908766036431046273010489780397378649534252443463634239735166431935773630389289185141645809260276974127579281546404579714156372125024028469607744681962250446940143722642485574637431746214746294905077512484161327437955422942862676004401537069235797258609406143617076034463290577441604134144449322379350597591914646440755513623027301304201987620254814423937461449703371465172258818486545734221512728335487426623492185145118124944848970664171265623198554333132771583052634393402362257990802837823587112857265962571231363294540629949705350212908457182409780142014019010823215998279833255532286153176628379143016400446424872622399990836375994686345770110518339668819915607141920012897146768950966951268854810886892827735938988946876719037912854463267051456411075977709768725237106253572120829185927556125455252123233501882972446280004404691174978917611943974463100506469253337653337534657033092020820459983195303029721532872385411960362707838808660943978863790757095966915638481052819316058017065370764167243083021853489707319543729809455120105636683416897084747798100923884136318618725609718049430136815441384994497421688800267749367178219033696905469820596884792550244966461256497702696388781042217909284956426243262762008471509048849805783979381270912080941496768259843626894064852256004551838156296540092949531837373893016833849357410617049998279094188727054401086952968172751612181167395071759399801252483445028438914338773587172630168078659491229929956690649348257475991053593373735721813070774001654944489261249817078432033486144471144653510626170782479423743864146925172780811410043699439222922269453002185246085716133942998052200259443419890098571227828280609171326113792178187052555616520355148632444313245769604768341284994591838728624345595951877287182012385211601269555598321778963224584118376330888894480205200013230841491586926192824526459985136779166813593042508953186307585541868516106227984362134211832036527554017341105740798529354750187049516983480573933490784184598388277543424087026625819186752337023765018758934287918551981959011801076239307093290576178833204439154305161039849346180049886492629048709453901072479139472003678234586691422136690676072604867404147515568023041522016397356251475839244171652340125523717121341635201936850586369247425245988772352302967596049017223785166916548078218379277992223092630686244772098241526841080967682445928439643636378327265661141238115239068066835085411100832862380582043067230201811510593971250731194762199622534056032803561661965877092081057357732434273209642836884364610302069593269948181730263598041954502465254987983612957925920560117777037024419505373615918592540644033887895124360867083895359094419574097110854572331986301004556345834215743090910745626705825017651699048665231113378646798659601155188151830838290874844923958277824125666905789272522884618341724168752489132832072572662451758126713711736830435596833625324961830804363957177187891321286291525579719616914427847342789909294968158285199478646257701327935937842154674661241803588039799117907989738508738935533357304571804352191333444026467944865611552841332769751607939930712234200845097687704739876127823142303551005213347508460504941551962862669303796185351245565594596942696192760944341055674088183228606215508366722673782577477165316390992168427012973776564516427619779839985610577866818081956923632215680275482580024550376656853107552093600273522884407443845152280952219209425731426974729709741804925644836813155514788966313918986829051940826188448335532968604719213594164869238585084885224565329737191411443090617361239855424822858453294842902612293358346410000141480916702620415822148888746321333817471527161965074381106877281156478646533591665612182194282920194116566244061931401746201367933478524785024523616528373492177697349612012052796732466653378243972372295490734320794001558296219489575230814085291350899303416199345971906469547921279491042390223102304907899426494200728987864591534554389813239865601632553562419049423791684052611554385532128272285135650918259533483190054436697423439648432464618035869052795521659275700497189380016632642181569663453963699625598314603887591923332936499815498769525606483659363147671599136309468033646855741789709908169051271509561956461372045011321253467225031321248938577456683853722352212170796705832105518676259191780777816064563311545733310930304929056844948668843042835700671377955712772097032429442297391857108478976586876200137483738656331865789118477001343037444299059598298407349606713787321058907776170574680068573908077853737328686557732800834274726015285619378799647285646425027208682703361436658758272189634397410478752601124051912090052403096089741560436851607500703909513454792377481835360150483675005719123195857835869452345308313911061882449746372913174571845640485414592990254695472383181904371787955474652199825349337606065625903879121213437001371842998887845309159023869562917164779553541241636414059845261924093645080840504107331376270839439259859776935244635711902014042678472408271941104316044512213181804017894920203848446225897379437792535265395346172683781353320672205652183083527312644508254699138981322445538600158132820533978655258391674288383324343609990850329937533492728113334083694631694721978303656127367604760189548796299222337856355978995688209676749378912859563388367138870348916396730760317552775781037474120284294984946720933568252831793824954868887455302925464247585560221030495987394959369280220522551872737697930059684536773182419070663519291106294992080204401418299891362446253778065570926755197747028603969310138029927079965111238954728847083320269366883882789685114185948882196401558333080126920244619495813421155896090100829254104825370565092704044372515370421492679235389823370445252200592502763031658961613663252076395046596295843140662387678128807728309804252186937785616705797221223855971756970071915278817605185560017436328576846076461809117113278053399016381202461372026484480023829844132341984672669842072051659704376118991777248817153680441617489609545147932518812272621917788767356695817963197338411118104255396352725883016399353424660156534647752266661142379637370729712629974617153456082076617542181968177629910262769502273173424928869438971573073091135090303692734939395737941877650284194667227237618719801126303858878676388709639372516744925356391647767118844794788318460340053576978497225912026321888667410112615629416849997280563514500206541837818498261537627186593454020313366940097887354509276450596630246968944928224069016213174201765394167540823965991086743406440471703829941578321849077630644866159180413230122518282497075449582687010498247948521662489458838440158171433843820562036394377369931746648440999732703686257604275768742292669521405888045505043037601884132677915207844029339109430423384283630505842674599719024592017022674363408355932553295952842053980428046763671818059435549828776329862440713585186680296355033710566952359431091232118524752700324287709903104300888164106490664705034018893477560066735139531431024070005109406115938897410357323546427666093816200671740312430155558871075239373057816655683998251563726325456716915408888176328949567887094087185615505404023439829783083024277244031641027063425129642744847310911979691716525484084748243798065003573498331756631648603876735928207520692970764721242267262658851306959736534233545157040898227340026634491564122637506996874236721696804507015720979440545728529802766011128195518045869887211537682002149304502218865405942451917687566294592011109691232210519849397252993550126765373486950916662182238083822112202934269887612355796330588577473966044808274529593924883789236588818543600238210628440743283393073570666576262346529350001111125862286741964726112310748382319026992899903113331159568874271856865516448170950274754150815416110103965192192819476443914099863028659264181627162315567968094588477797696220760163667780587967823236828977033592551993929498268919360854234815501433234244583152296497182877049889407502568886996500289377196881882794619683951458926014614081734017463020541346255959480737922365279931492755104143693949234494382439106012208918520608446899187194352690333691216871586654702338490932681099326126974588959844970339006643488240356973457979150080712007131267109868872521263599085382403092969763032703023015823623974305754691852458322375875585674009402950842104137926543306084521317434061415679019106036931754102053284700619945012022842484659350991488188708569683959473974775949524007414115757199839627004407247535628598520025582282759538966480211507913559192566498631376788207555530984430285025678882100840403365140258538295195334944223501665205990705499320889623141209691467056968831191010935854092923543109927939531688606629421470987981090609592002262943741272727984318411989291283977089236136196063297377164770441463584629517595890451753099671373699119108719826025729590063816452010900203831022318765068358160471022815247894006457722283524245415631465503764294882754708979406053818644938514509812378327106717690813148745752637494869331899647204803752844154552036192945965727396301206454251778770468956100015738142698069930553129381775268527745050519572312577836810623630038172041108400888126077416490046089785067382963594343063076362266524983150737096750638544392451973565801915563092139662890151301430934754156690823899630412421302803408202687701910703505679957756339311646838317376307214407619340544568029977470472339610616102392170472550384373771870401409595525539573773026596463646865955953507960627126904249705118542629794596141331631726211089475086342252285816577802114324666459878655178827249146276318900236747909627247545891366083774225111628597801309335793367668202402309190795566752404715546860988515412567434582162079854651436708709987556667731188352557725628364117227401319646130622166702722604274295872930612899185238030211597531543266436587390983357634989068909287577976490228926735489668909877751710207998599695359806769270440644837500845943837876758624064753556697099326114748108875552800895882929833473916160726967723944902470297796240644157076839122702806908656636742322753168935754408577241261428615770758066355419062950390825112773212442533673774965487311381107973699051137638727922126365892430073529806327796865091874925022172978420048388703655687367859514688301742695411234471355960404022624554278095324681954045001953291757646209372763353268467318911559045668670713482021507323989627794248959963020531452579816273432024675489925290621596719177359675051857883472865169380872619644322987127855159015536310180238492826006546512411475518070107547497633776820584367573603019470579044229585298935119535064380055684678818677712817335828003629442482034641152457051327869330770283877810935494449972184504813322610858446296481976373491177254366755740801914897140314638380679922564229411710030804377438126078166036907798963739120447971945518853736492389934467818137954970940035462543000860944489707314460462338551073991213726587358243709327181130455318175645382732253569349331513081117953785660115023696540534746313989471081345347437865216012596409038145214845930648887154137874208347962097340437950148640675142947164480887945831852187705546181532938270297334022552126446642550348650715626142441229624752688450636954570795003601102529411699239163867148876646163194094891558409867798869259938449471966594415732594288133315848236397173321960877772421544238514596690579301376947042399760205133653357877969497772419657602927077574073949924275437894190023984875935401982342406658150479858311564537236854188276182392292767600279660382132669761341592382915662537637969534049103375247007732675186813216618325734883331720858500009208378791338205107390471389659017270377360761409793839269854247967556599408319847193098463972863324448883203760864035772519338915671620957297126188539667774437740451535087231995831463476982774195818457480926647111695314381163260402079308890332367869817761842060122987457763760872240122888734372686492960584767361000889400652868853487302177573941447838955522239380983417712928831714119267120631884004355677673371262281682322940377236967345495941923559151322000536622480507046159775246749927998503998495152194137195956569654401421038372009913017463042558571014682854234223102400441749287229636135813628265258795820796100151910642709010036725117729666947954757685612446696385778536140393587279838115194859390067485784721879008162511547219893174339430233285938690304615173894146993888683132970686352118439589210728728173539200733015135342681516110927547612280162455371773975663880612643813733858195325696998033555884752754886601911218085517781148923827868189761186924553185385219351933258959886245535488412842297079375743182530300395016972857739689124146786156816976333017695012627960583400152385790611361202261590101297374308361872108450424950811204473430007656606264447411603483055372094193092786018960204332121110727927422941958774827412959906057182072240639257840905967044239704977969145611760413051130831413808050070693712585267312245488665706799711619522527042858023803841254752487712660670547627292502180912037129564340286132898092453068178988445908191331769682258574635568223323033356112138380108740287044657238060125871810480526288860142050088911156403433880790294102484051298633398873330301323800442514769972917891789042785674421422493480685560356124761784078934184417874234715324639096607435326488600602892514439079812762419372139240405116718545615389619909862361371647862534063063682349783544460336046446976687758649605701937950632774623366215624863346213732779935359622172174880337494397648740558801234115556390571673658375494110796657578646150693184182522138783916400905731048014498975973604106630527196818813794039713626091108016386914915078940514384396221395775090062282533775063305380794940000414821744267953782415459959044984001243345723441855652789093694102902795952941925425659613072855349137065791284380389730953072204768072065090694569485257940750637942066912206472131096058708677834542527906631033955325991883348651829493666224447661881247163369811846261002676230178461186976515354798278704199494391446346770653233665946029416320173878087122375685034100885707150482186933239418678066969235286317161946955431241985994015564039771654723355240875937129193660028155233265258038153823772630799062473901343948402152924565881845329405011888155164480572954033082795349251750166033991035351884593688226421001118250450600700018858959401065067543555483011904047474733123079618141711993078007488137921447377350843195773862238963995300113173192492479344530751740371554191119668539141307288120991222228284971493313410967102108821283458535601218400160513814699056039629091767533180456771138292465989667557519268984048506742128688055475962701547207835203690673836761199888583747856258393593055058763249340707094614976094173145029327258711497012636517982006890563702293740915298870633355413169864893744515816305488191651694450358067557130504090269179163914263641605320939651335143682126409223780858257946207780715230054952998032311543561521961700814601049059903386622619206281499846311878039121400701962420672801373614846592779411780757247172778413047469956946759862231179012538698553045401984680807498042996556759267703017947145929445872877723138782774232577874128798217766847105083932751364341798239285034734460077867622079893750696571449065286977109846297899977511761932999863359571531137157804144621672280568167077668548839378157072787843673282145238453621418978347699888256602861094174512881805381696314691361458402928546915810392730910223992643108327719583410879166660957442111191013431945604585336592370163837687145785421687726027550810630849022132361003794176664014999097322668341251552432873138385771869273919719882110025048603556580438709276767198324622147459318106990856703893263376414852854517181617583471502128157905819742154603801373126911405887176552727050155509938744590316347375188071677459371882569182784046215788729386083936989420723756681798120708992807343739858555584188500409310500593002687837395935564002929799571905695748894307734253368509147062234880142712977927991900432901816784401038569467555022204373500576091000474291015026971689120893963295354969031033771128737257829400449519939391949241844857513651693141801527244493705315074394779726416684880808447891941225782913350522043660833232168553940190066240085915213596941528574190254059565154578956641741689902422155729616034497954598239546966239482984210876527375795368511090090522851376572530386314382417721788877809884940754822460354047459915398748835936268937100196325388189127486282701844722549348778811478686323005410475220683343980714415529596187002131595364954376268962700649686973002988695595581664949075607800344685370613256852639261337272161329624881744409502019281986580746519908985922939595460178413860584973764722863406926630549802605492600623019461266380452259940970273945664520045946161715050261382393903881531088149943960800791459906269578338262638934192167063258724376175540359689772719552229241103376741317818074815906841825418651086107698233844514322074753115557701020393048091561457740692796409767049790770751722187687431532247089362597485822414713075523552045627142863179999555433701955987289421243312539380508165557283766045137679881245708930167895246303572413916901196900359116209586903749315156618672064221532439482727064276885611560769462034512559759379422686313060776046106365947209229086204998484127179358895088893484261290496949882473271847667861550949888690522446367518416299957237949546824043896678581297671833170572537262064984603125061306214379613181229123117928560391795875608888561287360525346998553024101523878945973987803328262147955774638387360054378779499562747168494753318138873695582826904596812943274905648584533037571919141675103402461412700484499027963274636557761691059749946499872962865299071701025246103504037829970876382166364156987899949593500158915558069460682675853383940690986924060629301051116477295595889958026751742024882919268964744142743036719162512002572409227357283725691132222878624851562445384454365164176730384140801161997623669456009222375176859853765380097030231332182757146572516079902241452501387486947611852255784784436631992226729670910938739341090168035054856982613963271910719564520259479802355995476848921010261360291404607771082189361696245833401426803090816140009821855045659679447725068576676075617546580471213505078362138214800829011556961944190652018134582597369277212424234905251714530621662920294097399696063475297792363173848659280351309788744280044205836972614526451517203666962229431550574260601209153021456534339316119295828048335522814189012196280735510741523365291832883583982082665542513684975808993087954224736922525681124050559077343398176614618868874229054014768110153362536381361088601990918434029695180949235538285281301487410764577482925099344413938247800658358452794385657126945167832620163010597057531307668422505506280765763150442220068015914041954731048080651971388151888379399640771375256776182879664167410940906476637609582192191646504570611661605879313046664529761158880889299159093922702452389900678096111180984678949091201176190779679147543153211211199797153766254931849320138390844731696247253553950735161345055603738511523559365417860288118150503965368953016049730509303884532140623581143040073714086383743771819185770892773582111225975142110995314477613216785554359641276822305177326116998420994533152959829159705234474280174331271058233430906341351906989758393806774787912467188804236902487020027504292801751315717697484629447872742695107192148822137281194187061964370054566350972606313836325458806496303955554891948290398453552144927841137803939247388130088554314457974509884797711016364963615005204685990300484338424557065121900111719941036698314746291483268698094654297185246408560534611271807581168091463774808678813488337517774588220099251285507721308144058773023314993342939900690569199007679848333679504243984968549601224726631463200372645159008014623987066497446610784957846681543833415600966302660093055296245487952662791766576683327456733076368703142206973584246132330640346139703913273696996631083371067591857653457119108662430543963955279222145145119759582687361680810784678246408420829727051485131297804054752769877242082637794060958582472346706481462419765016063017980333639742458541450747646277133296342806172177781290282032486012996103966278912864891032769427159283917530970360278893592447371304282792755578012596952785558021228843629035842598998313880090545371530982477410186929688578924645636484240826374969191691813505080823033339614078919241205621625645650274157489523823807670814907848812907079508887673175419805287267713860858417479477681969040584163353061874687877597894195351853369859601545842067499652617511154562204828141161567107673286991796480440341918122179664527425756929968171163448030150266492624970202997846151781480042311709893532188029963622806054623846315790382254297725435155576091386058020742313157873855304003905202452859878594720017098962272664113486653077783999831657597069352089821064668073122596784448420830071226638211421357164718751328939877213166022381267661805762592461570831954466323937124801938291248970044772103565853116808229377947736506756842789205735262830668799900212298814988575097454753158729149756786243182250237125640822906168934615804191266535262245213379316281685451688031705645802607740287984894982210034166664478817362714837526212953488777730412611267033923029687939108168231122169036209087341662120927049960674236851723405375565337748932373666594461599940407275916769447640714405227094592329019718489275295357856591981731201831173260432455820376661275798501736735308330960885753794054962558601091986163885266550742726048626390873044937743592823038700069882305583263831098480473925904530100062165811140632289607915991706617425108771571326032826208525224256351573143214615749834317488965869287559032618297447520540229940062972694105168185976393267708257705645310322322082740161351342224528373729195890444428271972287193484620924145386329851403182470458327221988499805551162714219528327971510144523381460803360132637680752460011418323889485851311548805869827169945040245193208268844742585150737826969938328924500751242464371699726252980970398373724171049135067422995025869800616015676445986862498394955177766336679693865873458832200803294213661450601371155144048490788936284923079602366917548968202335762077322159465507181491841340018994438146835962736169509344191272117724559289741820276521654867909414762010716010208982016168460787064396034935582534751598331793665203263547955043147549427426356699223084231343924462763307217350798054579712132208354604954929446786305405668818478286130167570579464691564393420832553202769392142516735033771365734114479800201974891883852307489279567574858956158866263040251139520310945382959655404575957214146633667078138158899235668069237194014169706904812080839704065644441445350469756955842851073677072046361743970026082276782987025914721319341827932614177487187805166218924335274442975236725864614504420341246002584709030908443836391374541006333765207869974204222612598040617302586867655661124252138499030841550230700462896874154395690157405544834406992927551789912360906907758883677909204561428003413617427216403317216574218715728187588688992187104653653507135457035148025429134671960176695695066893603694302996966371177834999594633850801768119666195337786776911528496006992630269664191411018444581511040930173734987627899449945341064071649448366711967442271660789834306858989049541197906757055918280235868628992744424865299487789960596507379363901771101182266608023181876955801227080489307082158462597769776192330576819666815332522845167531351595021107579085933874625612710565048463423324813432675859521313429450027019401001989680494132052570801327593748940283832247916075474637957478845942266082439515531940673661877999825830562962234178592293973173056264695885320109378786743612423138635578750606643806408212020285850226553333550316126958808043661088368849426014307724907537792567289996451408577454438557773991394902777410232631145335337379663947347060543173171721312432389506113282620120824126707893205919856512245667350116477299286972529738320014225291451735345433731401342236432418054961376729885220500013071148459628677052620018970297301526647439130302325157642214600048001311877500957935415222378773238612998951464018555639480246851718035894017159887225784757484973051362990667576375820559159799523503288572179015557772584379786407292626289531891790223372168220696091529980951916693320740011472612042956770346903851667758768572147654319344063315927881193341630885065424217133786707396729159606075102125913685336713739739348670970770413820240544798636920002372941990950752269474228214434908479285700919865509493988334767955185000584114435587345473398008624154273541012175320974892514665503268613027952331627879126359157892605576745603012795822259015614263925986804821150707592488147457353115651754952107934053958858879434835466257746024678402126254705087325392447264216819460836075373977396987024801747051978514513894234655208017745161863179675028306372020489535602701317266834833604804762675403154415141462528062102711193588368256257618619305173902439637998716962532767741483681386551876440474040097663620095035232765336867668360597450254639392486091978311619542495263697220617995068973773285205835662587177389975848997496193541570408312542164436422239948592545857957152777072444696052476690834546805086244306898999541335283011989379487316025608912534610014311072538050280028913549221214741092099741019021649715396635676135354736685078363788595782212469143654369776095893768066108113303287745722100877435799660709670275003023535714621390466729814124404335532570587581442736197483850858444289111097792424995629551545801643214250859657753131137863363403257453396798781845093705508813286232103772550367153443394024870084133205072867353301378480765946882931554183176306984684254171462654762833726282590474545130004734917053042805123227104876679635072462541182693648172615571849612064525007318391256467270085160276724769855403995958213825813557175118769752475333451814249251004844394126355366370945855245926569523616329980202878247820072938871197428040268223822985815036008363330529770560112679300045836902945876849931582454306991962416111825443443137910936309987359248381805285370538603943517799142062073357155327752249495912697360620956028830282117822746996542547652640936686111871533876319151295827542899163816085282671163511352273418218418827194367569932994262979852004161404712974431335226411498944316171010198020035227713685909894999129876947734149475592525142745307059626699017488335537180828131669179953301752764817246581964225056587144124781982579079315129543810071878328584513136793697566370697023933430231769136898039314000326768214625138120824593616086088973051524935032304301837057466190398442005234229457844708190855481215461061777582772375128300528411832336153810870557708592148011711540444150167953097918266632749477504765461168727478318840247558267438321686173909979291518631823775888168599963164802582473385700070418282908679365552478996318811442923588877924592043824680732818686808457747323145237278380143690084861028950229111072979187267440572784290163117525119651526962788527799831937392869188423523165725630373393021972013710210748104996875796577829637907711755506826095901414046366169906428123858492951299245736251508561929288242279701376308007429202315313067455362784715023931435302457069762831547336388374964396053479438702668145155340354942135404504322456565035028992010321356451963908114942257654070838788044289574500951438527288725756833032855583675895122719575741379820638979358450319809313321856460012339252220268861694505659001457185253283249366237028737509242505375485353206009448154561197695774435217157445510536557724949542067620394369549802733457539665971948170402938505432836974884539426571947641516257015626071930228975452515874149394743709241899165220877241997219588782413867936212010795326108745760689720880270460659008192324586583486708170919487842154409501415273905446593578352921323943479500272400175674371022373280610231873861686222361592431447889794715854010844849294511531748142530778529551818615893735907784828143416023438903949981044689601027394283756011114560482341970748875312274630377176680922393658343985433934143060012895368310403745375852997413062918643629589992267508972168656882406728177444888535751430596396668670631456975826628266407670205911887383804314605421136137120674601563237920149515173839221216575782857029297135017700747613188633541735985420206872078335801925944020378023174184654785929015759200707831479079583171238186274573710410121379585072377483998232980557914367043681087591376599030471303982151238716572211720776402557069585457763920829498374673791813656402033597842469276706597482311240485273334632755476890946478217652838017678589821773964243279430181937542541173405025938092537383130778825717326389775676419891750019357133283559448287734843148801745797899162982244222285489053105160516072207184977262928241144016496645107115227393364632903952358456311447509236338918578978995860551707481607116603923266720129759553581090553686226478339613470742335164590908936885201786888503201220946144726117443846592242503285418015947072198356649647302406819510459115140636359107029444897468355268319349106819469512446521497623406889752954564005595319445467909213845163669306756399395244471863566803434215684450029587757257328853545716469859553556241712657206488752677109530424294222212004220089432712734194732799715702530687109971266258069739358574737014575613481939052386662043720403979905371700795430487891487790094596244583450292618879586465753091079879333052913447516296909735830129967489001816907179080645588820221512148480030892357582297012740077007526491339295284787943286129302302750482644187444674449306260146260739416441865089740372422530485769559428833503910907052532292948999242387693604335711521687408654545146830071377716666425605460959087133355948288060479747772097363348719692115151604178486694299066551433537206774756619517092204032569712069863927299928598430677518325358189462753521464728307482113523575248057480792197432012539554051027214313813354345633551574338139523890423190117861484534694229717527240273147407613521049702097535267473996785326564288582343880965052078257759245541139840825930175925306285611167776255264442783443724420214368008275043756250439268586811519691918158334585687300822074931738673659538396031630134558007227441296653292810953551242457103468783866882775090541175209265890176301918633295120969921520369447139186102393467348928798460478939723236323528748415987426042039492215967206061834331081347331760096648623893382326166246131304745716168251196885355678064584119514487483524086707928018768085776179990063725894437317336278676294535540621084576943490405545238146450346747432465667290346971504110879126631039111069012851102314851890829542731136817155399698152625836349063091173746812527035899808334300409300546142863002971170872806238101333890170141537237166522005046469460848957819197790739666495664730266526611829900863841245610633149973211047043413855254796921557692628249467319968639631935221982778406713266389785303005673667711391412181919619343170468178001453267770589105136951617778144930007846778047201235018264677433940046955142503775517437256707787258868694055004270931677580501215367341663307745983969369086253400181390959626299365487632709972334697618451161730513961535999292729402260454236234550582815402944474036588754000870661883759307400815677855304971073104884630293112911366433389342682761529127813889197998514107012376515989393088691860316884816622111402053936928317895299485880251357470248061847248373136914090456005756301623916187610464651638904372683052626882432974565574661490365360182268869141103163741578154021543717319415082584397938499184682874871793870777591519608658916435679423577736091535528294942249272658979311663628952735818486477628950855053358219770568341119978496793499488453038525154367124916628736083062755547041519809740245048413583354076181478202178296098888228985303186175870735608616894044715009825016625486666994603104667257021881110336975788788036839793426087686703410336490777231775603446576255167552815177044980460224130365675537410911879407520103355087078755088100162888959989036383199799094203983205490563997478791677695985429288386698130479863720031003849569691331143242508055320919822326024109071610884188950833089893262025002035706828697932288475791134723332256797440699235343198030666013404272176234246195909338770468311117929924681492739701165594131892388197627606882770344500021460792138149706171300939539096084724918652683764586298046786340333044026477284819781132142339486370429172486110889319820948313713661401222680029484569110247193061354940053568078419782711605094037898612809265059796431057059798832811175471950257284578986824525483511611084249569851585961555010369885304186688342493831431792167231280206294451628372767108702543320742259882186466211039198093765397442362194783979527928742700623087834989680480607284306286587265214023547889287206404166082621868907966218252544152711695608421863031651625282586576839478893313693434040136581819759500035820015644036567923239017722141655352362830431843544717316638770343919250833219655180853787639819265937617162585735872383881788631678514616770204492801895619771350267860954540291863450773037158789569980851064029994293144183351625296146919905504561749752154544945787527109553431777581404111782986903454196295595013532669325515114331552881289360555931576057336321061161027919055850162092861290223472507520269928245157954041632646981425197016462669801907453034776110659781805242849733065056102694734648630748663059929317702263892005017867659328891152072663353525453018286044558433590456154832196487822057882385450249363636209362513034856426530236913951516621243347075967437722389829297884043658411666509875773631139228049481452686890328079083117731413394618516690484697183003507036853074234785611192058784515746738326694351560395684274782993972561208330961118621804187511516334087803084242345761666069037556706541741700644457155408465691160410420277366831440027303149281591933058897947586259279343951616570577075411364328144112162486592478372002410900398011948292481384852422006299664818658806364800760312603164028805996843272988347568731691507503361112800499458701727880362975460652569973360662721088152125635858306078750861237061000904289845416021469126271783723930108287750008653137640291403563470476311867187253915312937030168276826028400664262638817542332982367477742403623168098945820777595348421008387413860366617155718410872225682245464454324147458759225352615952304102841884572701425009157381644673062081985570976387232238175502705263454644999357274839674326408630660110563898094807567220853332293658649097375397464410730272345844807832907077079170421912901441592351546365078996862654460776914230161829610725720429209187200590910304502914645606494778116019920152334193725263146315374002377772656312804877011498397851922870699071617128719096529025962726300744380135489324835712459338787370093176025327177807270658670747568315330414239023900311371740925299332815373614107909069857553297186558832151819583927254452855101819343381542936528460644316842253953790189559295075718358773300344247852402599433231077766017533152534647994200765875393057263341816849683217506582908213010953533523261574147744640507966932951207534787294168931285888025719825812958846714653032161584969080264244874270912346636537887572134804437417000584499990120408739879799875191137187756091406753703097135895588503837470122356360097943905854018366775050915475026769821502384628828173283131008363357988383616595101522783944517980083999998124880537867465391305952203079919190773171528036683642910149565934377202902890578719840179491872308308995022666814984482246620078438336588960560788304717808839820537079950800510788783818985409578335239100422024150424637718587580472667481030659987952211077947923451424922014249929065325449856506926714975152430416629909856481920075677065019431621424861464996521791520367198307314135773945697332244634177386154207367969568633698009384291118925112146574344118687202240579126645144878418923378139358566422210483443407302656043791476848850390918731327498709079457474883708523067379607283474818447405798956266458340884622346296912557287882543384794978320931008188386738985589721024535034638163616619018182316240624247399246688718303575350470053400829563305587289146726186199114992030936886993962135715637527930759943561696767828917128489119968154545012984395815492305373961035994603705092078442055314417087178464735621208253678734997014091618323657744706871596240287324823436658759150564761480112560283479588763680080714971017196267092890802457816268094827797590603083766170796955835181429807727093760899670341166909558817923214615415298568835357688259884715487128390512441058304939716898377507184004115649683585779520295544110633842054717450959804157337978528508550669955469978984842992400135704124936975460577080134574153261894033857260534416869507104914770985826904643892478679926614367442521276197058960442762916320704864773500820784644042111470166943882678300807064895056859467377948022295565727374312966425949806101072232543238463903449493082693191543771853950255829824203653332927125206922125744236686401107880563856631496445580839331982019204154243828383538685925604307877953377049368633728454569376004496510795687878063586761837315642545294611364228215208747933621390174805069603230263976563889181491876271890796320873092360275789217372277196093461214324751904722350979296742097544076007848611843325154116915227769452880690440559548520509190200068635229704301476642705857337909483958291999095945183954730395396878086162991497078674747703983045295652674321294583354570149130374819122179893672826652144309929816092969818495235206414237526192764845189036671873774148886097421695849835854457723228533227340095610328129328586763884510981393144369556837540260706209531155028077681125125426256617671674427668474684912700148781822159105769313255747023859129478768477427570496126481525196066665563560098230938168858378950446456207583058693217735116338040947531245872177893879430073416690578280314756045290412245640914747162608995261230508843520679199110804879895283311121164711697297798536775843897875519286230043134488729743385911218498457604193473835027629804262649802227773502234325934527816671635521245570004738586399230603651264607119495598222261051380093032569936560085559592656163017651596036981753748965616046248726481900582900912147278625750517358081012841396530127223715163167404013014386150794013976115401186498582678826407285907331420767567420157932876435809384086073792581691209250441217383157682536527748252694842141423573489639086086304086411178200622046541164980613438865883014311878048300791326310602285316172662085562441599603978818149710105463789598445117654603553263259832496110394773373631251979307225579369434239697212021226212028276700659186874878277584589770493365448214471558659236219267302790202908952911505102343304141739902508186069818521548296093763908874931497417972242649880435319291163725146509913959612463753978942918381197662213985346588800340165142003730968665583543085104764235319708613776118958597926643160512817381562830758476483166391788306697424890894273322681590914716782003806928310787619211902441108029303379063155377058516912885010407960959829435433002173303165145368080770516538841655788816959794617482989151930472519230173856654299179844375494907615579654577490160685032073984686703233498780880587025892972341967318603215356969319174747805378837638798686277814030139579106271443330918458483454138419722166911375015212481632133396069876530494008416599757232739995737783036216120132785937645579571368205156275205920225760410480238485552492062808516895057422125286157882865656107647842770936736061217730005153216157933228945129749032262132362458601803144400994782769941437692065301816029429255683468661335828738094188516655954980906289930464014682523463323241200563062630612150182303992422485782115321558800386065478143482780273630552809783751689319091320770837214948448860491537230102768633328721512306454004901402743978132488564771647680297054510824961458718706994585914031716416643791616299534475883820298732009553594624783930029180867404375303359114534114658784405105917825496855623909694852584020375123526265685781930851822276201143004339247329716653553401564756325826759831337663812283502710212621586923491197572399533852177961302825882299288512419254668867236700058174014186374825089135736819365036302769570699058044512521458319534180632549890932283691581876380888238244341769716595155193049116801226548786075239048060544319215236780298613483528433374817516719916049630350549265637922524212517283498199578593172743442194881133750087044570024002153246912710160105329666136442977115932449870443655966298755811165982957703974564476266288754626211522606176135374487344865033760180204362019336601498255590946229715588719229377251881640858045052173632395646615429274955622890891195761480410124641958197963038856340235262345235299217204235617215090359095239133390158475752345791504941680946756103769859059454138176466090133127262955706468290430134935356035963401443492974870502210859766811261198532927893915915981618478067642940940415992211612432050814902260015562770671857439468264731106510769255048780186363055263298515422520434667367642478250814060289703555995923573190191590300338182344479629461131999294260974032560235375698644441263192780389882620345621024414170881465394311951534705153306177503189326191911740247648077942245353394204851447839663561496748212661425822037411030073896447428111344363159852137651756759908201154104446650533720443725634938641423955322351584444814328198189337116308544768594124070755692304508029768122199271304796989724688052004960012502298740362195467472758774281420634413830686430503458631697018184422629759261598504047151467945907803527534442707431114869719356513805034880089340107003814638560787988136722022910870274806874047682530930055133880874825551896061198454460318980892797865292401967041015293274577237486986796280745708436825255651697648730816900860114536245257889103160368162031497552181455181328406976560143978504121032566015517357606787495333061346537170828350119783101327443222569943127394173336976972470726444205635662860240475103807895506282731828393933584778388813652092166637225650116997790604302321203256675152776745966757491075128356402493850427437846220693940085381343723388302512187436166687734161034502404515748640869539912605511101278397839962510346007829419205844666741779648903719576986908815802689203599338943393132057815049792649708646232149682208706680458971649364697985043558197706525073599829103672330454931534211251488784794243212448524663015887596396301709187570893815716117723719767013572444459352424688375193983884640584047757693019678785802200029770153341660091656064302738751899781594620105604760882398931094518454976499230263878300310803133637487505602767509786523722077981165676755241672486458666380603614272287401375948523116634058009099185189936235109605694423799421983877268844389479249048713361814322796010748392872551478954196133232004134820185127660163981343346728047099110719612688961812130753122862471412146850611297172066980369960445413189252769046140296790817357559296466655804757457182504609219783094823026975246610587828047597804170113231161438362862420881759223691960681532737869100098888568185950134705052389108290947184988629178456394531894952887101622712108765964809482071723869178132406440030879670500257390191103138283019068533711055194312297731817233659415378334461837398666302976764967665070041155840056506726595269331024508895591563468921407521540812397462927602933115955318728883116476781018095171376457808786958757783107111834218987749254371212322909612059065912021102496129795478479402512177683656615801048523619810622824531039569260274019646212074170091090660680164187439629314911319593657952678709083439710113769835494070654533358344771055087611519666401130224991109548345984616982081710094477785523679882416889602200034255380529852232742079186434106548217504636842868670495116143580885895271014139815154734527403003992709018179671168719596673165498380619515208736921386536773043415346336652949747424051359311506591297296210800644731772619026249353471283038051410497913232450023670933893417317333226277105347528190323476556304240239212653227604856102862460474301169361131745488836813776685427166886599712154967308084466961055425815596117661485932360302966261961921193751045529724600841755313033178489924910217978869227276602121327214169736210588082656025267035753634474378695078124128727036648190282110903899055239610941973862769321427475836989521118393236719176270602612627315745977000541252466873972985757614151730934490169591960646393696092547308328884896334446406844858460469836031687292952164372052753304844860179181371080598487761861657708097622965212121803329401377426772364100422848144713688472188247968160840127547303918532030295042635240466102783488042625516145494858369351214668299817254239454221241024474016221381867368774775022983776524239007522776905431166705601440871327129315038111829245583173317712961185070848194927981779735349435181949735124445153989696563047459333209675926974772184490923618833233295704415614827967652854731344073989534285697616260909902426776685221884144768206739092989408446634832087928600006252243760570061336657761945115237761357540476875546512465130069367067349436568582860000339483543061393487091254875001087854306131982780812353934596025490829393667487054092029228533705269000024444067103708250138480817511143366177796575650290989340401377810644414974526728365505403608788092436450015939609249409953024580229124122822934192232376901629833353673786448740386498841739004613844581471571112284078391067163717570139924061423289079316885319469234403027196814348135405165587335643324098219641037036640940181578467777506937489717037171161514786498526097151710403064266821310250020980148555405230131685519285289304663252149369528763798167691824747310216845501805690491769654619835987050231491262868568576419023029852638091087627502001364610842562774685523237751997214493027315482088271752360332112910745565293381430262097794113202920421989367733361407780927143839242335968400591084923019425418039429292535657869871710443539618643006629495688734636003082872783989924043064017916509838983825225929940748607438657443812227894530598615488380777879900511469111534126842696638809001214916033388524637552405968409248468656033153076882377673896375368874905733822182401899657321237637321448722488987363620860619477000474793501940068934650130317325569619987902072623152202370729544372814689780951572757048423812385304535188994010340704188603019307682952035999303822897555355868776015216353590230340473742034120872841967099938881445114502408057452891662084036045080835432025564376921425808964599378324775599342518408062477855418694847269380107077626469209980991973308903990334708709693023703405499923464898700426245796458021453933212178638362175908637573301392853241442385822572132357141313099505670873349582457635502970265713867235433486947756093537800661534749022793333333757061644405269292869559167807626313492058527660489090148399875331493758937958158085184335557428830331162634617154858647804283469046674231283505792270567981100740450688832524915532770707129342923068797744605732911306002026338355116232464633352889033171567397735257580274045640828153914387740655615132837421701248390326700889897872214570254856213124976198247654096348487255117588701289926447932647761829913838910066815891124654259681278372354036373206560957159836837793670147553062282096673570959744540699310905525060520434919070182632262218619590236626077556787306420487967070175617197160170521375446507854250363903076924748962344127622813126327909365937774075776750616693862743399009129611706655270913229136536465605220686769417034116156170477221092796224623022871442309166221631459541092870981730201149757445461520524289610337213824847354277696873674776767879977825519071534703045365351754339748010877275014135702379422722221684695395450780362093989178754270557061490706232531005478647167089873241415908828070679124358729376391862077019806601672635201106272243844911723242808081868608840538504506435410642385589718355664892896801438548234893384418276170403379736855596526566067391850621205273888962206327180140841196262475816888953510382031446876607368594188464087907426658085859270452904542630851044206361681113612437298434534783344375792020259794223861927616130283895175995523178723474574714247686778355518976967626425298728502957703705963130617439809359909035451777539010994702894666455290396287980487131518799508724332226094868430555453103224181233748591764889382086944042714643279797537572866593340753424087320391973422714893997516299844895672731741406277557056970185626812323238619598919028389525999462108367013716151718052419899908358854175804352586482809946093759247674419361746059472253012856763424028678511593291678626291303979457389503205116845716637745124634483375912555929944374950765833613456927306328793956765933812306106565023777723815449781068531138760145664431270906352496481551922258313198508927942251434514512005931035499818728857909409130151212591876106075201533737244223931190830864305995852233072553038383201527427566283601393796992992917672470387055918970522338274319470736502722085051986878443751081880728345695177232293236549416036878629619676143605873348430456743961645458684513292719261906864090188301158897901862028986321841989042400503135308753354760168916445303999438559071740335912267412630083103179874007690782598661310351591563111648721395416499682967512487204819545740570024191652451928756711081975729127950260368068635919721602823492084417344845054354542881878114241772377944899768561896325912761307591213429149923936604099845502808362908301340253532481761330962481337532667777302916678082786260453361348250360580743778243696956917850487241934797515442041892468825923181485817782901820818217122165713419361457092906024804070341533752581879482000185004500184871356853060402163851569238731943298255102634938753593883281237266653687303144763610014630416208941930933629812880494920379088842428473873104271681314211699432625280265335467861722579004488370319930318799102976237780880205271610887414341767497344176346951947789608296347051575242195593839980885209674050639990048615394324529901721619394958814907666603143861176904287390272838902166513599506371284023226028556764426162195192842167120032323481144315462289408424658228110200016984958054127642640870223736220207363505315624226002933341156938714811613840621416360098747423828501340188795983645622768309111086098409846187217535561239232657974764674172945392597391201322221788424983640592216105002570786472910819182821543029732977414315995458861934766847264349129013123724524969706562954644965211241877313547472660265044118898078503089840075482295093483447392704994914053248122736457722542175114912568723441172369908382981943724121079168018746249088086913580586332230118115615614952415082095079384803056424641934935945154535626817300355012631538928582053134150508533295803475347368702845544251495249098758542974470531792183243613646739493144254649377248152057178127631788217122537278759217138220486496445276095626115073277349529264658013701528417918688760635916122282282777461265899156951011595123996023561926863726957809189356655963019076049534341542478323796315744588141580889225689000587921539757100243488424610011849209615360133832226078152576082910703024625132514057769396257076506170111780629401745375299540360324452428466271719730852008365464570517085277742843726355132422628213099862134636475872849602817833094096138150182056565981806201280768736728047044234270278043193939689861570610008080709543157071359821512869697169066355229418936056490165634459748873966290977867207763978138477918057403461630320668162158480477247357168595905218446716907461760818254634557013480502382167150746473931448315946151099519556904105988087624997309332572858957733553031551125689465271804970657050315215264405939226098947052503101101792084740862711580477674980816517222963534821900505035471477314406634705460095075674538054171275326893644444451392985537897852879505473040064487182054459994672366309795604486372602435154374284805075174031735497975111460141253048391709447490266464231037823961435198185060818224082825761958891707239098899438914203281555188878775146968743093615400597809322332303649018747172704849425948022025476680234101431112693284586380974861931339690794140607467994941483544978782481088291999499512826071060034024913219638062689272988021036294745190342882641120473240786158435729526273378085771328974474199024590514634624313697026662409579361189024127090914412582930536377882280398315899976675270073721772264230406367020279462681113535930379256810303549208610801802418475315592040525542528784724815246040720525926459702099786253977911744976162166529146994632195146340882191522878322322344738015793374760360145162230416087987854927916341278140247513087598593712226550055840174941443869677348118373660201512806506730578702054596698970929100681182838747601278451194021414337625895033025679963481223884870187937270562641462499606361999296783148920212138236427402034996339051735498847228385251163735487674921937511407137072948134878922002347228523579684730158408801849246510255912869337453063490113610337846518836385561433714516869947441779952539981265597081762792138758944899218767530550469028100223633602037650496446669463446582141573732538013416351985815258265061245092567342847582361004948777457435392388242009456770001250912833986334658019702054343466083159269865520691498667878830453866975688840224838008735492500712791085336350412964634616205381382354262305273752446570081665499236854372737148475424222659069257883090384930967215468714702834501797199853643893763309486270616699138561876176392532794209941458917145893129197553217552446366779880921843180765458839553246969339196502934913263885334832354309823219878105953421419260110877959336852816544873361900403418813667118459985861761456017834762044389943094985171390181814980096670644763672849298876754888087633190020247127988547887909908255607305370053060967411716102375291615057162484045369874221006776782323104066842567872831997927179468337789058213721983989693275777051776176723048504545126037532042149762824227687006010580551670028125912774615236789502081501702915878282482235307903849145049752294224238144057896049852288930026608597144467728859485481794495675113541560910192230930956420473227386379688113464866707564109690568227790589247283274049979664531265960622217123690080323172281371315288488857415121699392708015754207911000349261745780373600145166108058568749598532042932275924325500194658640572768029369769349361519588246185496264804012451411565231110455405887295118951946556945059563294032999713989351595254518103008531891150909372535700923925117441205008838478375848109499621534034466410611292390846536900069197842522648862648128678721865316003205924459163255944113688119614036182507931579764519639495317687986261369294055649674429832300256236239321259584284479575835727308253547136631512888352136301710653619212306267846801309835513259959018389460935027925789966776436935559621816517301963645448079926259595613265291076262804574400487517667451490156858454803765266479677738785388573563511813135868124437462855765898053250693240366857312898111233660178747091479196362438327078130988958724745101518161098847172051935764658099864590517907374100593821181535787468427506192183887278134506022704050155279352377243645893864857585783359012813689767312589088691518782861431378239692911632960191866707763399265445104645448701567286423664994285465475180562913612725304709573659824877239003183116230341615333888966360239367533725920683513837639239551326720577483883647461004507823129331289162137936471907350161315092545536095011907569387644243839223086251853875654658645351197542806415283205113800909107370258481665356470716518940404773374650210942723834398534545336374223244860951073147263909471515695737192362120620176617586487379236880456776263392149833070847682240023904092786299966690406563205103731427345123096116867479073831637561780360760126166564152178796841079792151482631814864654207878870792625519458879335455952524957459891800704900659379142118181855566157723276911126376694349264535946289565005154838370526110977213398159067330955343627371841872159551186533856067190717602628191442024798040418354761833557901923201610131593277164761855677445530995425314322282280621499584147115465264888452386568787027030691720255693340401390878411347785169530269581681401424687368299778461006422163605893135385342578016402839680380740659374342765085915049259189949996009490360077812713370172533788366031455508085312136247455731671236262335036654927320725870853352625433374365173868440871007605525114384610346328548410128462498567864813651390687284527811535552210836361580790048438378448950069522937875254224123734274351103684427226891553395555665921331362645994255131207223835055578153379735600862420384908116287052495080213228385182215664351097581700840729702548254017811151823565700405262908592187130773616381528537828271966200263619201274338385130463961111486433831356599786938214580710622986956680416254496745123051603198585608038381143722583894781232757625055555097955030244242767131836255904692515046324779916978001304031611643895918693505335774885959974392853801676404901329298907411855026443385455846938445305098767894092170220318487594470369679326227099544080779297489693401019838292976630083291113985922026293600491900200532534600670528842552324898452410061635787252194692379697601426314464059593854130481241875695378350694343322376066373162379984720500533125876931391057991612537059347362891228060221651511043136559280963499208146033534188691082029153578519714902701244165662308465517184384857528293592661631234598050324600687527855346558710527039429871505964255700558263583425573624020221048458427493780523594358033972598490222977436798213328192583978790129737869846688533948164380813227997386240569010223345966911642382067503891103684766074066063731520439004409079534717614922693048934821607818723790324816530284897490321349086115078147710364463552225386106638249726648338784355223740491365366828063442047260582047006908419734498314911735859976734575084376591137273922969605162386911362275184222105749922519419979482307226291058995130991331734139608795059282040230049981463121698508554217922817148469757493402447269448229235006696350537391587489415044602105880378320338596166738848496476273863808028813518363039432477810868521008038631683334152084933851931941788023930229570455590938749634809226084392519713047632650388480950435791759382600293053726457667435932107080204258038965838431547462190790046114707241802231625522886684023754639026137107511250454926717187460472224757324324794360976938735799799933153085991362979858572074351873379095300209480076715450746352725818548308878765681508101987211763230577545684022126514552095683333839069754149312867412987271178603295002000920883800613857436168511395237586528874008199294789796795403721069280212059448190007100236824431534746975436807203184201026023884594055429697446257361990731890308630903685272699645324043700435683219419785413880824938718522046542546448089257018807621004505824107014761450071799578976938152083324380472331532843860089821447955137000538084965538833803216081988456237885935456472415318566754811584512078828821472439936669231440395284074611936459836443954185312904567700057958070765507843609261852212230752490473000845779004459486658332186491152634197706912531451104745272897522925249760976497772093685144231509696081592685859920468286098272103044824049330679972399905418865298565241010388140802577994809295362429861402351962145287245464916863243181449139618716586445486900967507824462233198400029931275185442655082714613617390318771901616380325084479763479546395824988868502999167179309097005520598086333208802440991143922811490043158372813151474594050837306082895566079691499465716901603668175209474307939545585442004155812436412066969597350486018808729493824742921835649181705757296762757379815969316593059140957393326234899106082361227003316262967424323914120387921174466603292803378537938308253600869891760775615392934612358584122181765585199983746318139941583770518986520593145055306120906467552354548296135320691931064064824048044468323208391034991170571275045790673654442785118209653371495830111185253608070697915542742709191257289819895037770572579092960411336887847389226270696656579810806006082884637375197355325884753120894987402845472461989227271415925472721778920583491331412155768044629362409075084601535057945248305117099822077573541646029081256964832881223114059902743268155947028293272412567304065170684961558714542224607231411536012611020086773397013699492145681129121614401243042459413704541078806207260286274119489030162747804008462410871698652310189250994383226072392210016000878033740359707516140112769195291548890890690813130620292491906609041490910543763931510518448364422322571266185074197810784256320717167237625126344488849877938905477930988516539853227463868579961273470239070495803195294709900732963212605411961798640513040931216928028570947740365247034622292015298707551983300889515209389404504126268874785302932246053010644794467478649927445051369386697771130131707981912647889926846454556080849559687365059668744515142012012620155590457396755038599498962721347277259231824842799007873230933557799724093808208402604467187459515696985683358910210815209265816271264195041792995092918821514553425853750663330945436197958278409031115625809369794570878581904194186969890204439930378082966268425796565999616390918952903537422055931117745625532991558531107738927631921525955066392197403975536965538869902779049458459209646500472519751001830842830528934484271726220222572601103173576355479246355121733748759545556269240178293660712504896584285268945078780515594430988955450688112171540007746436483312787960660516939323792007201325667044191921980916038694725167215946059423241987658063410282253529114148650732952610015525462713667462414102477112594932494994571681828078490945839090045060094273415661541007226150231006184958611752974165883536306068739974149998110344997355834794432184671970414060922642452829066827591350717660596570765122409483168248860988144110073458620558639694659041032584904931619259301086077474563570527041205093665023266223867349003413727931787180298295705591439887111996762998454218560231523474201548334414249998956071021438022893620332367143633877175400170532354685496957450401776386659481412138586292413802584788067822838077569665793733065323180548330319629768876239986086508812180216351403545340913514812825155412356150928085620832281724571630755221321240761148911483778990474924376117164283472934709792667425955486456536028257947763187880621892564529234457795489633390777352733474062833447681817216668249992790639803184131899639609886762303851605232114259714147510594052515586241899096656435311037844710916588348863520641817540238261113897653630986592731365665004479940682029010175683548287212503160660706232103975841534273474358512421167448683435452340050277980087019169207464630800930163855461399566904181995335194673691178450904128056732169376101100379573567532515900022738007968477262843165963300864702414392717384348656885859589307812002387493540001476725116463728214102265422194342953390536028167121012676939635167288196850765000955006237936030566263574575108502867283620621811056014688878350103006601495686187935514511348664033614422588521835750084712883323870707756174320272708340395250155913065511081673010067509646374920178455380273427929988456853155139617267829547025278508167065041208943139523648999773717095954632637731509578304592463694916962951551476509624330684402447122953869419725279993880564471419357946814877564308397026522428202797965003964133981375435947234884383604442478623867156161352277474659248175988436261903737193233519969904288004972624156419324098724589259164318427211829154072460772135775883423635098266497218361879349094771870748280971514403531299565379173715921707061678275418823675311950314514412928200937896893494739027507333094314204139737660907141944296689989318318466819805358762918089207534688374233009249812381128715290937574234160188201693992680228175774121922054801990041122027365515696727297225313181608268666063883055401313609470844746523858801637861232907457879157635468245975903011424750905135040799026639220076146466438470696039867170146776318327700321368164915194273669234651729264070170098915002115226828968460296105728477719880580676779051493412553587907889279556831556519518649395563176917222378352111827866937495971287054937195004975095348709675564944738374412739285872161770654828931624128940918732309244295260942405251926363285346996500887784637949944786954827857659483544224236979302801301534343694913149179050887173447563832370397916373175582624704241904542610779763140100458579564511959363869154859342716394743982440356020146902496779333740069954735814301371961444901504301865385134160264159743368906937892910210565518263859553851323141348984227523177427299287174627932829814061884272368275426507722144214724382256942802823442512880853028150822606899212977737887072552724810926821239404825135917882601123448819377787761113786844935488592463675834080737893209139878258471941780791602370470780449559276958119933253353948310503906159776542426267618246826101689793883286386537005649217436445934768387053063373060949204106669069839504633315073955616707051692777778807720032506124020519794369925268869797648579345190511443264880040685276057417980257173111141044070764517127618822236896473306886334591503364535746590926927132873983514318850732435830609312942245737439814862507890455733521104767027683654911325638639124005943963644872586293220332655868280544748592533472845035597850183183296909169289591643809927534097291612596051766547378007136835518011317480161181346725152350425734787396247225588052256931653710627025477091448271680661512318868958959685975556398067495769878245414246883558923317218879086109361299655954183091648083038744748236965338754423700742067507768762075201619008678113129030156282460585287366273189887253671502836807536392092667069339968997469392799762498090051057872681636257249331348310410586202751894054033028269612241345623073412718042586947541405390496699633911192317173314181207708629983688635066483418811149860243430234047116545276344706027907612982448967969508982024386736682264450940494599740097666288306769975974200667801582474204264255903305665514268390599622341007027435549416609466113862503779683427542550845171625782728947359585418120837711702801788097877972902358963583688169547883155150481584679728395311158302683644618806298197918096112222408191687392708855572671050431785406401229190891965406002352641253931791570702135301684313746525880962190867300776769538888703220686880041058075273541754441358557167508211350668965959484129602662853343852132111196987548030792939649934700363897399058163702085954001624415960846138323145493079145122267939334429684452385054900141925757637778055180325098399494718145244498432895246327694736575381089097423380973407939041053189007939908865176483946840327048428479224308281159212228680751079895188321593436498079624213471277017266237126789642701308347970785608277757474968600085270341427365782533108160882505212752968381378850187276371423727461406075461959038690789522711819357319750783502846501489984111187041620085834435009151188463886168104581671366060113140736020835319048464587036432288216496738658523013911845992430820383646679623828865683559896923967163729389816860495575621059519473949883572200674078203946595401923026424770196081965037461308949823707709432400187841288309901651070165639661299163351609091950805778759278689129504924158422625019761733552702113467533251398332231518072289485449584614674642950086317372240776455628615914630942657336020094870121439512091448963564717844410391037417002820410027222526489386276338099016364868116536174041714607342556492244665979169679966668219564960830999012740643038893401908661189474515736526488822969763985922878048848343905078499158428460518536750150410574677384223135586917079886597044086098021216407980815073818486992133911524051815041299407996907484526455041586994388488139889428224262710491979913413541157256981644576383995827865762766173565464731190465647834157777074458934221201726186846238609091466694461458848699108364927515233594809822303882587401929666290767720605811743775889581502452587236239900258668186352716544620713091552540717044537571420873147336436483755907098180919645954658799123002828631125314539811562852380080248527691904495571986066999461715950501956063981769957525522175362525708881081846847936884105100313249352811300653659415261480152775570108927539172290403749359678895804747748111867246355500975468504903419741367381408149157209922326574333982356609713250123994281199476224583486802806625074856761849586420945546056074642132171343960928069082938558745962985319483170814230971818200872572818785627207168933353756821559013997016137217191088328911968255435679988836191809511188409406599861049176450186120198062517000190587840109627107082818172532651472016008673860132634915519153885385933485339433850783176536973926137531132307720196319020323715224378013250073057818952888809927545111435080014807687951275250936980778631861459218906758806130520852423665313736693790613085602741520694270020714260897868785016009327483509333147044866368877818024479507451964084410725151836972030592667500562237603575601028189737886794022720566483266269224396790403358899678437362131658534415841132378760258714855243433455644612569830740084114973552342349075811408810568312162943269584804316013435785454913033779604975979823302048966349336441224825323849370178345045783334470721787788380210667963050342298619833435406998789342222587368857869680464070959078148820716447584835247131927623928041139897697919834737195374459882151639257635133067794465813731540722298572739688060071283437426546788981666471183147860164212195310225650606259153781179147354370149223306319762696639223500772267524926104438924867150046917539276690419994911700319651911050619691340605268357497012244516707622382394387516794999921670447914699377940370049238025539300339191481097540675175757475516915443619439761830392437134282827980331848759037401111319420585577491781539514340904378676681055728323937302269886491989722550992545195821394377227355123725077127705942160569377884618448359848530913443425835453733758100063753418641178084156933669206145346704034179067683311675738244015080248095557153112606805365670211821621039864344917066234596131772878032655667634614268877937359435398979218370693571925795405690785444117321344615031393936513377678569496587957306488731037528735913524246473683167484162073480797678436740495920253719589836880621332413749607920656884481880224948459840059710272701373172161587222308569120610265921539541024650209714961416712264551323814759449180553768449723357426117108954134506864176236852759291558022811424829920939906633489802798222193380906961043158083890887397342020601891946680346131520907088732164504542325319615886757043865713390894866913509034995545245660422661484861180050456976451595716704549532172919157087829286796451463165719600661907977128814765941697997486083481130215700977746313083518250688108636745082678668331085142183868889989820854547853147512764403258772187918612235016529788986724267420987756563498860628604014160618361375275813124185523140513415769666385192334598192180106040208114031187292660746024207829115266751360490227094294928042142368312623251827808330770396233588833969355038091003729508555374193582949008530843588977281258628434153996170101291120243717076762930716129253901669489125882206024233647335919438304770163332281332877861025881875248011788677569421679085413757349294998974245721147755696792741903040530824892613377060952616849637600731787933635963096611547685093131477381915062533805775933014964944885767246285142314026775972821320938819140288111349628856284664111352814702152831522846353290829458414523828505538367309602294463182392674493306013760902240208610637974141225439992155356241853810749598577625071403701147156990904178348218483575284603992504735488793173582912529845493979743858598611378413289971852451781319734451999035620033498828076712730208457512323971990746739032133941460639467903069027475808177702027363030393992067670295519090686140585606378589116995268252349791726098761426132517997899758840297992315646169804984198937217588620221375198676158637895170104338439036879576203325634670137463886789862837627069306120098816301781412541736727383958339947795139269577789292765844900314455476197045328968849208976516670722750798277630963433179631395236840742391123194958551468172950618095241104459510752762284051518738461032894463760748927530350926264003103709695959625467986208314719020780258312864016359992209728457534522923155811134744949720634770505133633809375311041187198408728745765444891957415299508084593691329297530714397422972925819881506268354843855730286162932934221361333944995259270735122690752744055952351311983566021722031717804155759849797865483424240107714446551148545743579138213246752513351757280931094364908440461016774187645207531746257438095761190462968519268274539494461387338849971779883714811805808945599640292281807778616205431622652765618675773797384140932810955965705646487281020364610365392169312918186573172687235267541496915133493037111928626728257278839093367347053548428005264259082919155114157888606180723726722496668941187272606563034542848909215092780677751315330657132995141862406668241758069462457886403811368902703974272175646938075514629167449129875223569107999413638102549301480981754055500962179067691516090083009670430855279486655246321264839568767173501265732225000926033350791379706584452440697957897698229758744844087184462053759297272640681876783553924321047716685357809099370682545455220446870624490490422935878106005315304200690546742366530932390175505927071416113495119448501643100638134308139867764816439938212002196344239400896487572309074533964592484592526987794674669565945170259757368172323683807359091749076071816991172014241932482952190838065912194625625822247685122280053659017574524495604202866131239571776648555359255058059104823619316582987435318541272042833229095383009914632819086727379645742924353796484130591290301473214178456983014396373602830719305999084767112741984637137192757184402300722477700828333674096719498004548227733761937842307163843946197116875668841735574304808200086139445081007220975343974003673732534704753037492142741805306709169826114724661048982238716112888899792794223272951133071456132006376794620612970211074237731599413815128932441678057015894443757539066727303446053849553914713567755721962265701686850674106309271220549847702680337267283700403350449688883890033258831987379782937556028049486200538088938687944815717833833557866499881453201635175042539687432370805864471407548622149910918397688857891116704909708908288884013703442641261047701700504236942944416579640286755196659573090612950740880645265398864175544698849401539245572108090585159879241164711045548524016309171310110569346990259694194562701111128506753960263524828866404085597900145685791518006053052552780749523233181323959209124165060590753498972134555363980103042174987156305224417849074200176754956037959094023326668268660688621947533213596734598979278514266125002785081660873817934138239409462307765840312705392987486140396699238712409649995401597772230734442725530846126863295302916094582711669036564891622632145764220005951653843351450426188608212552692352572083530379859973828357630683714918128634352925043754072824716899704347632457169404236783292200179395837564089656817625025533561900853174317665315718923105339829219688648112897668219421783927551749878231361060679211083283019099579211889235536661041007370870302502994280811843734453321688383558642421004637783603001051015449915096809204242885994152573522219167171199113265318921667416681013202729826352026722130274391017878039726429289550108073544458474250667440436969089012165252774608754588674243536858915610558183347194545314704253552251598158856775674788044393144771729376529096341522448117319514650716384415566209838940815569911448103574777714982198274084537902769947101930750398800619584829138390763378548580911495661564036106729369043202189738587493830506753652279083733637230859306403667149776247994007555116055739302931799832222408869730036090136678416172593543323342859803850558689459404634748477532271432588617036789214954916949912369170095791973647262239668815088189319947366364502250133734939017106258824646423343260586997160175732112979139732190105319918415871531754479241296205718725708612946311973302606600448662633806407492072092568615639254090639574718215717564419569179732709793032948531927420907316194611427793433176662701790156831154089262693564804315373082358868716058586398939863248956020614570184814267921309331156258025427150459194138729608827704423420293871328377135291090214847714969837013328794461427841447385734448448449480165675517923599031061246093998102608670802715461230980829284725570427155713101589497178172916224364162157351074925156245829587933817446217966457575843499098935616233643730884645560330470506842057896210285244495031189885997561441270961053207776447278276658686662995124852028162335764603424973056044377705929125523986345511812513738745426078885716687626105974100618830972841985053250845810116481599125517594460187671213126254739916988867604065169993483825088126870852816946282807662470004765166284992058000770142954871761959789708116101538761190551119944571736606037289469220080988477970863785162725745181215982482326744434607668492048571338021061607299380156289596536740682473816022154044670633539724287182519832059172208931645435645708073874347353032111129848120549664115757380464628870643953033223825964732852226192662117400854689019849917696913728393435098210608725290911193091788821387518564188337556713714051292074393565506242028198256975495865540385381286033205001784299890215871273224307196522283803796210387822315227238667885513769547187922091599957290445383827969636659768453311307655715133229696144586834240245100981700591825258602277104512282206147336973979315203522277534666057960236226486012260093228208469595060245874529568636843956386829589924407748845456321330194936834167221724071542137869691946321033347014262846584289634059412353956829659345243622732831227084021788183315142753773439495045356733558257448141200018453750364413292983185941869873213729573118743694171590781032003489645960857088157000736949372340109243371238181992245761766706470200458293102469064658347516053189247642498271035494864131134629549802210149582473151733731025130186525022029991369709121666531853324288625279292737436947908251874395487973988909439054919164710208677450247787670980165200518792219868014669407225172375993712746810645241351254492453793211480493048377497478886561457503727176812164732017007622721848821259665651719225415557762120157146689890267606794242191218045743439230562824839577261452051623675132959646632788375545693371964374791890896745339500656291734991923694041184175055134362916069276513355417499073657291290084944040908200716732776010939342925067279521563500666654538968482729436418251237063094731549743913137986032093555568403374765377173349770257086148798782451956982422133705060156998101689415752114314176118414990087179162269722257285449631604920017999058867586603618530240465858521403333695555576828734483909004250873374850583007372402322257489240821982720616542948639823266875186632460995894738056976188817357022515751488789833853493539762010969036863675033048622732077820379447152218799931990461432762626931707431243874102320964824782422359060084840088136758066557167512303155063394489945802795771583681502758388680841425939592805477263898391833621541841651003784576302991571144218214067164510397540610952095204486108491093279654119132579456766725091748415397807119897933826543684208554003986112890075132321704479179002353525248596137969538947800401042002775122985159483445605917089224278588966947276525227949559062522177258889707195910424026899801653241466455079877961914503726014510578024788542387317746074573884738956977175143388535419522538998311564101852137040511263828381043949612775023309803197954318259525206907274874358964059844925846009245860519161322242262760378181410690305881562366601488543695890247490592318082458003272621487962666358105944639913169910182093666776328375726051240307309113094807346195812519971082506566637896931686095220332082107096903842002339840948974115805052697842110028357040153736078378575874545539428791577755467419060356498459348057345401968692231918607743863932441791312693901529115652511390298131137703168443156063185070143355925263365075348036478337883402368997368688872616935339623350577572478742409152947899853743358595348310742190304364182633989035514693660134200576137432031458986154784850685760740671867494670458469676674014963095352800802510221368180200770007215281594394029324842889944846441628476530159557154566642522442477744373366849464473321786750253337788059815519583794838502251901203980869813986660461269060399645005251477315734104992531598794234188757693515608954814701456952885264482627972638914128212096061625495234994019026106928743973665847455430698340767373299996118046293844196178299424348499617452289880690308301072064294854471058722461839219583749418248568606867360425746958995145573006025139463998244186071823744302785672751875527226913759263982703145151830125545286746542240499595265880434491591486552960280282277994494876883256220132363728480570928633241998893304545950113446292571244991492187645616099859543654417228212934956091799560567386571047537558273407943648149789296672497192954469524852349759766413679739625114869533575264593826065296604091407499608493993102790819342042342184636378720993804909391202672468269959539125767319156018377946507189171480814111677571849796724003896977714602944844555770057789759814572656439574693865105521656065000481070504849428468178420816784518058499060092316523266216250322132456098282056622690217675792408678815455581339515471916880734314818992990154093922644707382612385595454918595060220419585196022517224122596867351813909680657576270578472219011563356937532616018512209541808632775729437572365018814122128027459758358387677346274355090402258623150145599597639054201217866542590756999652861759125359487863266765518856302717564069272228089395293326375344190822812583302195199562271550397985337377896561766085505922292897023915786869431077144307326762732093894241467556148084663199100959078411938705133365825448843694927703019323639192955454400482534909855942440555910279354206752631672156247666482412831137191240422882487980801028731044895399280475187348487726862531104990748229852873685104340154297125866058095953594190483629477389148638933485309850036479084282582790385363524279786159258005975043876114801783240160530293407819939302006797754729797164115428163810978465298979686231199173448472324988696899470339028760887610274823947332204329360377199933563397470504201797041266764755854229567751623906378658002455345997928359643739479929907736109516496767604367476711334113242616057597215080178269531656193578638477413174811419089481140828145165277385336920569952530263716058539134031926200169121287244430608657016544111932405727195473705806387553721765600015957595615402998236250954445552209254556484823161788203355471130571707581781947717664888998255613231881563871384807486219234405376179620204281297982255404498141448835192388627796678588030391044973448474244706423357981549758226377732253495184842607466077520538586108753991583055134371781795096724352229592982555544246004505491346225505517960846252626026596923379654304301693620065584070270705148002809024142018245680375190457463822582898591981311855442074382340137867828925162912447819545468318889147373768549305303367420777168449175018309112671036097021422325855719136684390582089960275813823234991186030909035405434000018591398341932667585999541179842528435292701767218890938291970678867087520029975136191036875358776991311097060854388477354399019937662036369941754340374839116094039406115596629991857182827242947444121175886528486358431922276750197970487461932346036195806989746653887495796714028839565021223673042569431699316927815729087450388458330114605556258099827765012477489213540969881754043528866837771505050557217756992674714620191967427121747727967932604182054399308662553716484900028720856739119247374546846803057349170913110547834623355836149256839793167713101846617725767516992341135447800833935739169329313696844563204899140957293284433552131802242962808751123201086412591024394449637087200719536923902145452647845240789592024531881189886779259148994772540806530443888775687960781172248821697041844194857639060873705100918438315917862801272744827593660084110860330359157911474297056583753094063116016657971478492402058613415728962343195993594249845239266560284706637948645451760549890895892669082715871908716538497133367133644093831306920999151451717624338229383855340921855750661474716011540791048472864564316177553268277685311606041980415468400892234447540907339754741033966846140680426983558797933915685955172423838109110951520958918817810673689323609640915421561408200456562066713728537678622303356053323802758228472235913119096292775585113512983713800699885682573847624422850540322044450437332865738593955205103449924934672801425981739137188481714473030394631543141953834786107911640604206959599994146622444182848663379718423196193176280106088344293972211986844095053272046931331472166157148052319448678159198916772719238626060970445959762909484385199592086859686150622833243423062782962140155796919127350539749996216860913784916502043654558552624113468435853944393037345386333828445544971928528626080369016973755534210878741599353319209989415523126514074941115088869298774462141417880921753522746284625149249416604322327014147694277770727198136009935369838498873809265779498067477500556454601915030985784746716455738333432595917277193791153256527517690159101771483858909018774233568179475514209656293938675467810989441421151430799510361705589836603098860136659929272491073292147601044877531999579672115657788839647382957161395233084615259284866996851852100913228270237797155933907435821072331332933119000548551374321224170906749837666280057705409623742788922182581518989644977910991662654630635147779032198646821450305747101670669420418002716351835530073754995064055839359558631320260899356642341153421950997208566862089940588194549076338309323385006445861238152550460032317122789930979397663182795455438522065978222424503675034423850115177193835127852122280851164615928419285592554068724870661276145467403530519579903424103647963026076203100688374765749904461504688823553682161881009390075777637489241886934090540401317825835318556455994276796488264829282741022571682775209560528432365385308998576169864951522455865634899831742501991333073364606475815296580985338046151430043445371613793227998157492448312669130256244789487480500398159697222705501970249076618745822854799198854042641554747482393567482707401260858654584191397901673673558622814733090909862458466044411886744631968548198611967460650603506945100460006482302669802981018252315044419441564016087065138557972165396583108543295269593351529947614992945463041381581175774904991209547826648466652415222444253653725708855634667203751577805727328828925226557491081214618783613247883507912582893785950058523103567495644621664636854557499638612730287516163873062035399913231776730540740636513849727759068441686570085616107198337049768641755236658385043103274077541052863148490923334907542810172506742170128761507175521352232416468589475318139595501830896390572847885220245704071972501238263842384328812149597406178719074082012435915759798510203940464254402998694218579430902718477392147197179550719660945602020917781986755073110763090902603074542825934214126627015818178748735943427169225224334639852481417205756616136709839681727757673016866746344577364656902469586200019745325559804950019899527427262639612045011534508880145830004115331774002655238190312158743132844982192053708978458882978487834593815241628550101493132105496964534113556290743446831432233735050599722819639059731334289214121259411661789636668590292377119059594161897607960938441878479373602925400141955668132944333588673375956508568312420037316851859326075985976759458543641235721115956668796969350541277326132075635121385552152290741540167724738870987114181275982457417528393482959597582780549816317291793914181983159216193512835868739000469337726581247484862306355594093894150851135792951409158891421528880775381683166667310472644711915853160581759114626466458395267392848829179028345347395164042141591624500781921378392462206776005174490099702852172328816145675274732289033380151126918092316113940987462298629766061984198071745875382584803183184181860276865711401677154674638243116067088528233871637708115232370270371766319577462230605392765249498445942489012237244092781610171961982447656011881408800807281726270883088211357067479817457886778566849336153539536530603165831791355915829983624920923153973397051776247728523963678710915069119273655953257163173221615676803809802654019384321998349364162071786226441042915987376372441228658425556645442197739332657271485087987765322986112289923105220906055193286090033894905201972962243798386385155815165166553870939049405399792279980469795200877332959910208563019842651845397231295077615990284507858809346609562919274284952312158380899302494142260327746571270450619322664064504340107876477836182440846760940375462692513958608624139266609666647572435995661789751408757231442156951594500148439701750895077273424586747463066940758718163404569953813362752929152368361679430891190010437323515265812874374407057297573848882241227940040457615143207000026573103845677127088889899475390757118120619621658440261905906399822679942314806662959504184901415197988752608719597879196531232529544509713170593514809370349559244069235518748177098073941085318099145624851340703107985947124713539442378480022369834826745910361114041425341017364005178504437648430404189911685465747372590288542931174635586606213787169847562261366224974969064365377376046814899891990940540677906104854122609575310263707948808690983806841960274258903250903445362807415407875435022850805224933281311701636520201921013585422722219833710805206076889133570122597241145552226274394502470093191883175391585270287675476484089841921658470436916103780420938090737284741340395428660589484651750000975574248388247217330238009664357973262846731169981076393251073105934178224589183191178009449358528259395969222790513424214334007467671566561051324342238855293538402963514109972726786547867590439043380785450931639008378447773803398627144271187100097170393271616403258025329136592329084485562463798217226661358887969329376685553499221411899457585754660150807618156002543501192037657784886840069251322873154231608395408452440835424602265783660117774727036836193402169964313549509965549106304687157806399566962021792908764035356784602064494402620244918548312783650577062893015031559766248062875600148815495077405594156021315506456712542855819323667735830337059196383261495451620392254834521910027400346856121378011389397831285443527329796576850883414788069423322431111225253070172069567570438584387744154506783190098331873179107026296617715907988815324055098608575217398922940712050204327887524342286055879321513715171500525544489748380560541723793253718538471902150921898183913749068398037758782363428248325368430347018628615779718669230849951190236944755833031960181104996781631622563506023795150259843833801147615002820040874856404846635946637114510951054917347649133673137503265412853781291982004406728572325258406429266637665426352039161230182826116554900552843191183145920643829832878479953693356486748543607327775081126484504756437498860731782498042964065801073101482393660588903211725143652341464373311976483198381783468730449606299278488342411429618099540407911363070844657373869263361317512992655698806682965229963881149150443681904198570616774549777472525542664344677585246699776200432519548342077530388909081926100464958000677963911895114447958791732531274288424036858451350792599834509720381000794145610251096032752585847883121544701180421239429216398823348369454839181804906884128337561930206928407039059112033388025372918398579212359871575449658192898552042381894310902602309349469532889674666803614164262915482060045622225064327360578889873476686263328187722002195978570283810458820967162770306297560853040583347432353649434930485053534687942034505165320282072637949028637783341671752091984135454991098520477983860617934902784820669647635458198638082476083141299713795854929375262392580973516949809229367291160464481819128711649403741029613674101835937497210714517318521815446536862465578799900736007795618134727302715747473445148147634904934631873594881799653994865814330701787332644922923123545695926482695181812005921125767169261524111098084312144247816020059090383924407359262282078079482095659062062688326850867132725026826825120949020475311729331630452721077122424955264039864787238011745498826575666897612085621775519507725109527869251514046671849498220369453761035504882019172909021833922809531552886688751444722588044205598742685229998494494645015194689551289627502512843607698218567875037170420183850468062532032896221262484652034701695478962760977232469167244631431368654492550532304276839468091125977113170229526616687146314710684270809708911372433556576847024006329144006914441596959992961329624652472240508584183715852557492361659277567152777099513042549672937195984092426405980507816737542997911567924562280039799056478639987118784685902398014075501221053071901495456379973120426472750046728163577421244505374673835707371320532564193391696450289457624231164487209751733618661535397574954998676015150749182412466062778221422991254595413286451859012028501153889542699158927196389959910103562656813504910616781887065862403040534565723463135860184680130650747610884376642265242646415983120843801110980017319793117519814282812464938174590633478480608485433174292830461259476228499101756553029509617337214547404132112307826714467095797013581331468575515964444959145262840569373044159368623923058422279450095278463651059730436477158444105386582790748630955897570472624049055310035415130496849884096439546077075853252523943945075711009722573403593131419117462186099876240251101522650940621640879980227598575840631711154989107401696054612786669047154844277326864880323287393277547171039534445117744072835433875513556661074754580860371014699245613813578110450078585665742899288746990502867288973579107959818512559265840439678921431010935190908809824269305973438316247288648135794140449546171865082114489982477248765440008986256349701953330018950434793892196025056095869794860803412210229847425542523710143701547092916313235763395140024928462384066918873732826746221649304325936442628160693173785776116856146885401139919029016942033187134080400844447076627079603450648478049917619436098237660207828453448736526803538472683018274998466906770458857188944490033302779597785829969421665339618550679442573958461968934124485673671426327712060766665660254333494045967618503034473159630201021044197824722683754824815477185081405376897602011034627679610203411684086630844512981556364248889133014190296506070000234969312758541337075569733499894787525912668706235207271904070136166616645719487973384418511110852989139904054999903757629897743120028344872841834405502599400012937811558603864751313161180344406084882509497544648450191466679140810057182092791250255000851299521818604979376161906835935297871964051794271747119481816047575174450797400025125296228124078957426901884753828801437645542056858484169321701631043860708411803389650281478559518708504193805555804326858591835325040259371064121131415058121571113157895884749618619072459128657938825622976771646194688449061249894944072513583058278160085580652092338194184352253700089704051393119079732772986184552648198304422869586874000791083539824390771985038816654911119165971020897138023539819248886554573225578622347850226088451315163400506847363113013919899591473754512036978995365530851762962040872692245443310298010399414606639115172512309078258790520951069913910615093015403119777854599885958309068349615056525749888201580168429532744786820399099939372927016235295806768819273094454871209008424918472311861570496594553553200518232270388317737371542534061644701063174003747543079496119843841374433444448874750577684526922103693067447167686246011008183725813276743336671646286467394008665937868004379338049765845544565883305651093137479178885306219503344238621471992165905761614349815122429674655297216711689941493332659503004892241495333654928675775829794139034995471237717688580621240888444646823377942489832984558076037844281735368868583109909748216406169045978635460495099072966308485198319163169338146504809750098421767092884024490652889335927360830946183580285870406971236002094160613083765290503307186358150557293450761101177634394266979874719696409864838855347353405214948443719856784572272494263872785141412507062062038000615248277543845098668990596045026654998639463246858581616171106611761104372639480826913566952000615308271916583007616402114048226726027816156155139037666136700336150033646959196790975743935779003876548463738249889155967490690575240915248079585578748909415647376767865640394985665591961093568819964335896958771387748567271013461476338199723699305270303712675026346161362357652768605830591741610159120966672861091914572481365671076799871444679729117195010960066583508898467041879936399418561153607756134898277787207752042370768387099607116539899157870604544568058398993039653402600644937495390253148466959683519440129778883634014023448477480986578243446344648186326995837155077453060825498313262254968258704082558062678955073000205033163500624303575407781430988551114254286197494283879215618550068467867450668081083342788329924490513531703944129811528813529042269747532896776315474440897839361372541051235082033437920857585950794825754044744485478581352666632124831613174162123394698587708090612763297226734769622998221987428529500068263152238500041007855035948257510326893789267218255239929451071988016040845590445447543414395811715346045207604332019097243902537245054228151614965974769302673118188673355164736723959838126571507149156645514516586580015255651748242574454555166202096999956675587912898925040425595192588036605968540608289900688321551228687301841110799780531068161777113271618024433552801647972433435774496981077656270759214007247970025800412256579412975037797724441848968857246133001578913063871425566862065743390043597407878892733459401976387633233707347025092611337952626424239156636586363724603232946244549826426762969420222006380736505231253005035202782640451892970652757321712906460109550174261083041232615037996702011458817408479249941604891666215052996135640648859103832873534337288390730989825361840580505269765482800738987352554049356163443501691806169151759541919840860648139051174381268155793637559065099726783814627855253868766008757736551626180543067171127957900728178860313818442825848183540089275866522403352164919838025552532342176802662069601337796968651399542492780801273519313852572612984950279780943411563949631175562727775628205875332749999234487091703496397853929708766646035777945541844571425919596857607964820976066769907684148418986650248628008592997648146387051285212229368584974628499160644990934508013122804998384804274050854818183384759937381521848712291905826360057150955502876227618081013236704205135294580597287112807833234127519693991365071808499638754432714668278863109686532840004810356804433955800939875898453787787665725844932715476165667575409521453764717644292596190015655448254616831536363727880446014365571195804543305413781292074767565114003176142642180904631669927565710652206418956698636547525303853547652945337485493199624511997263124404520218629422319788875139948235813984785293741165405079175371368882602282225597997847896137426379767656548418799819474582018657554184985509246448938235958310522261510067411571178706223679652370351476555772768005190178712205203800839464875297270605224997377874980226062481068313356094170988384434342655916067815759527120401013290332853273530270350328642584438458430629378792371859458480472862559562073731543918681136355018291508699323295102373146816087925129599643511508829619610175945513415900262964646224514929519113868489398349929434836904931179347167928596041484299830669627557071227188255877102688655285925261317834004156191942987189952889010330302235496658590235367095595892436133111896044670625441804564079203664710265182464513631609857485927278072126816275654971814856611115733587502699896751432293950454865548426120934492826225651091052301634457409917929274599759390416782154419322469390171238818465476630563408654847931469582490913910563657002784909454911194006036388797762419768175285536113235568314003714631788114500260299414905379158156150850685391828001975888570964003096569262126798321879274006778805896254620337618513025474407870622710315237232051507704163206117017732073252346942689432058704717301196539140335792504426843727254029056920714033465214057206052642309042439263303112243111292249536445124526205791587541189506014752307849269846341589303757211638911296832538388224517781708548158304166176239478415672583000793383599379297597447872595064738477784056121171646582390902639017107780407350811372151234112056775826974832314114612917254627123671137554663530165778565518766524309637157406791719979830408175364165352279049787789241324331082742612769120963463662655742274505819550430616204777040155056746444180523392833912197662408810925035946636065918969789359102212115773986325884440178523772911770077694770100578662878993734763236025437777231291899610084029004242272558408706137873176756811136412618822424952546527636686683417806230710321991543486259930784822546778376806373126856408777720601047987335960920089927201490418659626071611434900102628898355748655468858276114481641384157354324205001888973757865585012070183483644207223121963899916916504100545996412250787901733686840192859579605715713603016277954490206127847202503089408289813861800737978461017522576002834856393556117902087867594202567060678387456790890891529518016175973542658490227925909222585444772979719196289981661613065575570746045204788251473081418427111494486102366108046420677085837622620597239772059849267329247316375540957348032725076031579402655235102384160141195950645210191037729062477559302847331701757780382295818829916520256083905010782424760436283730588842149231073877209461492423991355483854452037971666021402740615859570302760694814807454325963212862997205670446738080799631192088973080221517038567208710965641637153953461171280209213499759807565675919386124294734866501290535951916822715653603061647274975931537685095001066603498491042790726231497796370532894442986639649803303077770619052811941719614371385069682479735076006528203895180129312933784337197532705743075419266895544130930598152682095036311681629921513636749642636756902883589866453031128258267080256351203016497288107749408330268270928845033806159887195133226827665466772788008291389416320802847055869542754300611391026753543632816810917595519817627150635434148917238337973822459210410227942942718410563807288531415155777754905375721282538805562778897754210369935921251456267837771740510205609550577344316661520697519967722299429457237241340745865489285464617081016823491175760950876612290812891288552869472101455029038545504731136416460251265154675941001888639167786801668114588560232904080211476274684571997185486851964360053675170166903038484870873093540187641280877761552727086036156944220704779292466420512040199013590226688774955892102689220603007625272882761348265444319655693247546909948764762211746353732467190374157747368288185875690905965013702942728585902380371984998876748676128472894409076313241143732860451833836033540291548821787109608527958876472369968077599806558206225919404120620097002396486694048954257207992792478544526718210567646734325554589964710748154561488535725132595239927907598716400353697419638183497547373648821903795817353653928352275600487344319293288749903596613653590920812313398890714392347679358190570058970679748296782000123224322989735796941306294670658880234123672475193149414553987078735200443586059632605013129677237008008794499105055639657953459773300882413600167855823171718938429609347352278449278491766896032562980971836852422231145623376508852630842118048911279385201413018505996176592869494173363297793752833016531135710112519046540740175488264275667290737287088710234533537249666532654804934399807429779342947084370536220260225411173937621822293204881356149735588544550612477510983146483702960021208267056267878798942455628181276462485131399622859554234072149177630620067633169658746057237569780167286477232694031025897436649771740258283020163628719145582699676300198434399720582878573351994514651500408065092256229801095508203355868596347261923542931943798613493685855822576346095087133647074606434847551675092173488964778809504818389846729878534006847430588675722401443551248738883792484704488921455401389005873808206076628202610334649185914884279837316797359808580907572854365263579330894788784946173221653954494190704787160704912861737960741188647364560103922924906058094490099023028642886268004791545354790256677551205098405051794593570045050347405420277452763445872405985566507819903335431185163053045603637973056017854552280528093906356914197558624272858615740086453784758960540934449331062183545605482457045693618364856268937673650815659865557399945320544624239096543492259414785903833618651285130013215279477934269048352634303168352233793813858986826075980395740344173620416229369299229695125359243333283433591845266122511440445369571184897293813383992625396709125728535775930382456893724265059333435145228182395138719930443634956539894219605556388858906934370085407351142438905440012382498586287634497177675559984122863901510932639350281739710356539790211297955326858419426591285556713060150463584867101728886760816668924876086283991259300702293124035671704078617222376586538616510598475093675126731715942738542182848105837634846256726239446530185727760598443657436349371885095757291238986035495191212695747375585362531768940382641532584821299095745736240002835873830625509303806320951782812146843021245758545382979716610187554593979965025565054316590514631939548113843440507065093121641364792319189066206284257969904446110795906952355380134486232936396135694174170902764224369441201696567932147422908438348449718078712629573032023369819103660928885322566782257804039505737386806760776860028488879012450027356318724722161150527955721689160803851600627502709276207416665816448779390214387686265612801247776715613732806945742333021014690452819803993649809412958657450961841568920142023428324354559365667338165679207671890554374397343193688681090013896093820536084854762374139696582836038920287644112066953397631589472647873359890734531886478631979909746024246407533532647516780233025111353793455523617549603284691785950944733060336881311225497550826787170114473556526958032767065831930676817699959616252744937768740967766675511090220015088525697228451924565902294801828130494052275382574909896553830283592978950409685955083112025298560113768702954207559768354437082238446015164363441979920670499406220819399371197764188740448362437910668461218734222401954662179156271163183216537960876777922019531510104578379532657436357069251747252646301214563037149057926864025617234055463027339273523462769167459573578363085630773623657772740414625375358684413861441913571298640055568213624860849068066410219290757137916382638217546870796315729440792801171236222777149831375363624456329799616124357341979566218220087994555513153303700017016478574431477787480503097787944081810061008042012142494804622587670983712106402210677764920876564129886778389725725825823675384355232475483352446613476712628146760054271309638597204360890442037364679975334932786876442078741400087329633757407598499792637526549384188743555025805105129599019848100319945373088478945841697032812286408382265864648226168149662017019838568583194173547729470861041380229698436427974359125260301576420245529513938689569353343244864830881252481357596452343850520077738210863717257456758869156484811320572345910748920297001696340707145220039059042417718865314157565786787372589854359408233544565843106188985870400014142672431097973326658465147551394269265860242063002262984433490400641225942775540895581801014509632464139557865736089532199491575400721534079874069307975651784080392002856770577508221511886732141426179497360481736666883062852313123460087635441451266862272710895104238162701125265097744333647570243165651024053277831701907700917592216689264444379609020437513216890289242722184354732890591578184273852747970893789658954971916287538194815364624110611406029225260853543224412170574259226780610357407299628330612253338948290191789568341926953894222998024758982279850189388417951156178519041980831473681477641639205000237333514321242710306689812928588387139787999047568221536824336688516928403923855678220703697212126632316226711238933409437908755932032071731674935646952663506269867603542384848720600238887923590483413883081248417441340494988575031833292493124599851580988271757537905781144009530018892416975337086588902319098633397885379048148999925525316805382571327591691866173431394649048199242206661384912723505594593644510309496950370814926246406500215279022472512040144743972122302745031863547451597585985913226961205293218160862761057863679706210541660646586573557753110963266174418356410881041865523299568496446117217844900581287536766283409480462040148730560261759128947567738878429466603259283485088113487033993772724386154086349799160201074366400582786609849642679184134523917480851150416438956523885556527102486093600877526495620114559759350770457459935806353117630788485220113473901919415497858033510616822369726401904210314711935903023148596696909191525247391057456679835973392377105113094702234964812210477673657616471955311503871200745716478578464263490008441856743276041497332487296572758132513733514405164674472384896761440575636377132525652845802666584113539659554093663969859293024521637806162343678039659029514464107246909913662681687218316998141089624244927384570364743499814780797320761205533399409505739028528063196889569347300397778118508064639297034678674564236532655177939142297796153035413924468098657327134152546281605927638242245082018903994001345659458570056323021461917274544656563186648724286927024482534639282813088659123709769920849523190568330180623611737438092367391073494751697724471732287976025482980465998108198825041878526007915907140256408017331283976875879462788559121565068486593799114165770931506962874065036449856028042973484873372077197964623581237465036207395275515374028580777029683590081887657000972172515843904816974454643634787780281525088919194792848230946860740752544484370579801885135127379916815070372919074973963215189478937547944512664583672433872653629081023525025552536452506450020098897172720731369746909709895135813627995604856775873055218389239881398916529894890136994517679714599203700172388558462726967167307000514949842594140593613461174847625988737086182958339480435760576541937753064156285013839929091382198098948588486353797225264481946475127246064798415175213414786004877889981776157479060778502455327047434183677903747175474387169046848502094910014223332357634824103335896632589746439526104086962995116143761172481611741212195162191251497423856629089463567335575500125801692926491305692040678724347368480279179567731834895701332186288537955165583177538754066413571834481106915996004629184382358915267514026898098687925478344066072593493949702550223078902364469479955471347570481740487413423941667226317227053123978775083034362952621676214922583134453419614539695241358067260793932475558997284430508581514699887222191908501173673283702195230749109243756357946821252857589815516086616417740872279240438216936796964120126938145880678872212341073649239399031636669621317922904897334091290871306834499739401598534598806202305821950367922915511570388693555671765192703863889928810893108241193717764522876177185492311513407226510485196010332690031906085819358256513891649851027872818532743840548447742378557573496239898742461766144204183080868399527498617745740512572819253745227583165914744968576436073424601339173354844618778186415453931860551632026264571828570035001192480032024964116035032261289342764467208153028016958191180687263863833841899375454012645978908518509449819867594745132810709785755496480188232309290551878406099770416056106077343409857514049978881463185339552914565476644457728089888259627380020681169201250566256860715405209909252839588711903269865260209508819011273005417969873857263953266521535114769995716388186842647207449411261867610294941880461897164180348490235506692091085846689670669988463808559720951270814482481072080699646426059338641908485729196949081979305598097031180272883575837784354376334491566311716395713117534600468108345970501510720128689603983749021710556378680771312841472159629961459435224537443368024898772104186191770566140956614786451212821232298812628711807656336027453764076070465214593871329398704667781421778726016484000056306051774265195505692911679216781426689600367301695256394946708950910304512341597097017774741707484840270639462591477074859088775722649205346615811592309182844046714489681581495761787823993126250261293832408877293078978032420919778429696013981401045382756262523677026387385945978286707513694427828610966512521814516268683360753053997323161866126660727860668025920205446538959867543606023900138113627981073251431507664257676963169364871829981819133866920090994449451008063487203882845830440896810504122683882614642572309827279527125630986096965298198092350950049434978998664739630821556346684503754965046181197872804161752367616773767780961760344683225947940422739918614842829898942815085698711515946820121902686101066789986591172841634844143815548531421124135168132886875867496259401904839181612064574381635758339089985697738854868892880741050681754732060543355854088470536858031995604266684929195856762770378557566497040617295584678303649191772674751615441586607320536382662912594142188428667477021309665808866302706093181886038590329400056949643557621130088462316168205480291792331185126825117294140739679979043402352738736022470506157518287066884646435616401074346180167580634560378826338666843830698308935618357936541302275174078173594223456105352919980235835008754480391620785116873233838881771598251914473030335612690818040702652331771133394722212450053432132247644666854603477128979036624281484129341153253020357729599967226204064989695830158588904788261335097906857162079240542471396798557214866535365471831241466700708639549034989701128861322541785966750036179552448055988476424159023785457516842375932834102567866598496721428333254391950274015518509569054186535837466863333352031886328638779761419437613325196200218698512495897218706450206707002087458103276608309382989323266954294704711472107535100527874888548825226082862605859257531936785997654745496823146482312146521551425175424841548972667170611331932375385100368412577644757068087180718466878594146853177166719526542694103565706924334352156270077521328446370652276921161778362590447510379958105127241137443983770240195467861973844510835875766292984126944251914242558793822099957576226581494852799635531964254179119277971209009905203598632857560984599704255050090142337710003597023296755727692356698659042818145637354994463511164898523776559361238615316803014122465621299717450004743765868622001854368734568098421309602212633801498423203438583450559057765344358686413816178041094577951176722397718332445562436858786021784570083174327304513261808576985646266891347353938285378980191973794799642825774700815924172415683903011326157578147431613632171489487713459643899279246329740774459452003357644548322199102464656563147516263031395843116162050549233723141013637181799676099086540238059052347525391987899821998627154566260590360264154918603676746826236039235723888270495205707266106840472678662886736369597335717699877138588329969352022258014952060815895470404234837274629111401035104677323680552331541247919428465630881904979299077045597972360268872482468100818875392602289843506507500401164054894977441564775691003133724078757079781340783817873161080824654954173866486671768455121764916566699692274023371520886253905983275356872955184106438592952971779890338921962712544614413918397220340320763999078788884811961358849823419648699137373500548422388083996240808649759402583032812142607113980574110842255426143850747281480156512711176964876611641788469179135513778110266660813394152151569186253449029487367566468996264292513490458152092477139932684511060434871186688723944352668795453788915722969442717801692271125390111723209934956814535965527740477238609174305945277499573881324387123976672026774902455594363974811753321535889114123272430221418252790160652469638628383568273276804552834028248913314782084517279451081621829629689271866024943081735341479026482798184655188181737406996090786191709513991321314482132030106380964890435586348205273133225936312641283110835542341599032427578780902893236534359341756309964800181607774559518038155640007461039614847452347017324218961196684109524591054659538268614599317886945992088958905465521563311432557475057567497866613758610181357592414746138555881694794585683826399234092679032183568472119619091461159951504076735001520271898047546520994302907207249241910104447699274477803167989734741178468929882686656461262826515295349547714426497607840710265085998504646456161430691621393143476042472542379540047870729510293550966457486131256199496985173602067774631636297981645915431505188596545606302387154859314391333577169141315592594832133860322066528674448032130985598159353255364554816474414941305526070725511240029043149169324468592460506750119974071244171692598371089335693397573344871005490733623430759067921899965474333343703573621558280782839084114406629217563319203102507281662076184851138737017873954874165994865238137699838325652149778027325368555064175202188092458557030281095277526902079904958491960509551873380749945486556916018764892194084939736561337711166059765537271927726684481113416117080043947986035958705831732606319355522810291562517688920483509740970517523071745785556416388476307629245591162627751985364844299707828029736435542343576594128417697947966211264032575264282744072723696561279390015607054669686131454202555809436868419312698079102551034211301278729338771326829248730112962602307841876328449516338161512008662428766731819215986398703830210203760412000248087425068080753467172238566095379064948004912501114132474243262892127404080299320826623595710730676394360388741217775582835731333133184265914419590581598087629035206504272432400348429138567275768427686629480126996080365271677194848581760089125848098132207259548166118033982629816544012783041271373688407531328672681635613351070603153901063102803633078631581978412712870322337301721066446095287109064060776458703133501706977432600247950945773702390832117238484930026618737223145755869675368327509247850887772992274027844247666584824263776305909136001291838297279654985832892754730404832534179715595846908395318292617623982383558250800502798849571823069021542826416768662257265447194757266783643308460098217362106270589195078080928144911905835404124141827881569458910778440164063633060166187243775456823624584415106064516129816813256720853494396701035098890401941826768222001373746473246413495522351331720827322086582006150054079282138767947871668257051189259128506232664054283352690615448257509469103617350222751786115451270552129625022559474187955144770724817650574694631955325919365565426878459622414030156471106713017865745299984127018682296022172139844987941113219569702198214685075163830694925254805730861365568763350635094163401598944841084480252220065356759756952599766572117095672144875910197432044640614762026876335718418833034313080640227701553114794282331038744405469750878423097350688993137351545107246265726829095448813328030784360381005351718225262993827501726836872330905674440316132911813273601369298778732330602983299256774559991916947694224826516259780528281681973215991820986798842883740976445207607908430104870961761378246394853139184278347831379238421666638524181681675101108376998462636250872415478265169275868171413410118717415422979820244494464891713593570703163825487668562936275775129560137642307246411991965146526889687534212024976202428116578011108384205093845455306453519018542286526615179838054367263570732383068609409670788222966443111232299419650996978726228202111474655500617338140405948198903774945081118117369707841661434544756590248763252086932483376246214040741265013384222985144561226121795036255999859098557411518622475396094916781253180369962335366339365116236280451729274572355525450722875491336066974829086306459279281063857486421110584211340228476047070356476685941497341234144741133446187745128869610808375015369788260955369250005449406251670600364067277031607736165708048165845731631831512070318647049953535982184100437450804560132645354737036705030031389831107703421174946613169276906845341127542549396141646671544967758926911000926104474759476338218876438814947907065450369685528179941080382527623712315104530000725545548178962361464409963575716741507182672445691583993286003499508666286105509595316377436364908278090776345102298177070810820126816624264814837309021456857048673186566328025838110011039906366392877887747374061338406142608864294694478764222281098574555088552494526050234020261379345468042156500532683687419205469178888534259104284463028346939508790628257072294745666879200113536443335984837331334317839771622949928317248039872069872915749505045972540275367896117077763757720144095203566402607650165541528406843866768343622027010843682281976747050622177453846326874471085484530352257078943489778794051215506215018419466607317792085575184823175508547800838374874133192388724585229420546894535260936265751185720649771734174180329025985648082975921184796615439472727172971597362719056948131015309304249480341373829085871896914091081308939530559678769637825794607825916033528040346170366710387422005035883208210647646980651264285531643387553701984488057943793134688723020048969715553553733317518780047420332532751350335458270736277728249773141973384453748458664941162978023595415851478166997384025187210084311803452893837134161870936555366267524929114546471803390519556739465799105951736102955053172217989145204550301938521752747924389519573315535083385449265027823036225772244744763566749407354549979318797991765413944118165314192851707410067197937780952025188248726760485584509483271020037323779081568014349789397835021467031572842097333132492723961264817850721159829258284303370852377217917730028597659451586783336633222506148332753683309853127311508679611620723574719544627793965963916272110026455272639887709500492790256791329609907427859908339122245197583045144570637472456960126630819243684082291001635177484794940637393490975883851677073156570468946236714666963575548013388974759056060078046689375268275259199740750941670690591943365335227361203490009499839023147202518840366346496273148187865344162102901478919809358762976285262346997508716416085414341993025946834308600946369670196069457098600571412914560017222548216474026413983944379382977599455683578229153764933274911301913225928711366001168805055963997352887969160427233406503376549447835188236933534830587802552370759738801226447892408936220118164225830470245342837558718077053261795564082529205387314367457947034673914840382912729580826985253749362871803739219524960790274331191818964782940782290295051183746040403173642440410417028019443421637916136298566927930072876484123165373046497344460481256019269341134519270071249219466596245751503754509175889913551111828575441577281462100896712779035534514446232540237821097308902074727739595407314168332292503960812317766359890471399800444481576040954761519631577371710063423567348373486083743092672444747398892533263146662704600124273810787038217125107283808068591624405299597448285502477751679337378606609478541246326801093219226556025306873168304309483821754875081604530964260727450234944479421469309318436432487257977559511570204728223452223703861446560015129177920166175637337483902631222804564778793896351713128051116935732827229399131255373723286613605555217350143020241417626625779419722579442559477966193541343607200283204299996907223185256594861028776155360303816523278058138950748591657309668251580400563333906342341336696452257496207269388449664506003095216204789978137668295910188061960613037914175380026759340953714288446534638665045528928330546849102247287748873696945593138117897625042915647620530992892292279006099013909197721025287931395647179881395391532910265459536763845385214222543414990576241026759033836929317086758336042391191639680861663178168771777430438781413342121702764964773336431741881662706376862135342056383267507233416697585720139338472027715216908834760930242627324612734769844522944184927454561719738037563812811045458736806837905338747323688042391104059005474093742802820435788672206976560983118830035908771668864181119375066392307067365775314989851673798535739872381031574386630896502938689766947375518896310835300479644363174759249035323159164416690675678424845675969451152369969659732473878253309585111210131565688109530487433625104815635224513912243338583664887546861466550403656744544087283979648324079573324542503345715681495310343148997343672895857273882273854944464809504682193206391058710993017766789009122342692980959220741126336006270366009868192922786360304836677250746510665667268979379829459999415786084857587212931380470594249816061498672201094935305911853920353587923196994244405222983812907130032067325282720717895946231511167966267136059884755981891250563674767191914502968374665471104497663639545936631731067658626852510749721412562498696682070333343001201189409734800324024013010592859927147780071973538127813691875357689022329993000888910517314515516965875195133220637893582924943019640206690657426021129873811842702739504650385229234150284395135362643636103557192469778768671879366845963871513488699734750934605932466401777768271789246468616292042229500720312276613681578560976504113378677548439518405723846372415609128940375674375619271249024724109498906717242390509197945755773624281825631060057900856552119653755964443501665298712030445741623073366778783059609609911497650618740705074783781249929353365123747512782837541453374947439650242988013542945631411462377087939161099864845114136236290944574149484310519341103253297756658608262159565638671095502566911573614564043311532539493222243967897282674063378537181743337584514104054102002418726921975758960448575971808016458987306802970849336732902258097642243067149409748276374014894078422842764197615669237563317211927053460032397050556880853211899683483191261881664997494710552226764335032038862996235206289484086642598860266324312444744774792636346850104550255531934853716927257797432366896689061674461439462132315260360127896177828159746418888174839061520841749605442085775663415734961631619940213771892896453423614620972726133292654486861601944752679314236102580860253352818032014585962615186029202488697771519510129625726495162990746278735468983033823234841994316686586390953032343345344495998467939114587472324509656170716975674930446007476547343731904288320852101254498117086773434974920649456358849231749745756386612866984628038360052825131996488443206277554226915947879181432958338771235259426110310416520929996574269189418737943139293380150348703367220515031839147569824276189216496737016681765940479445911110098576956448083363901467997060369252612108712717565946758588073595325394191340120984179293971663304357772298177307139941451664800875445465575877534972748918370431320989082150299474746406691165044255494208017123591160217651399637346518954819965956002118614078632527375510784147650241022019468008828623375055967580421030231206148457187335521019297318577521013617371742807319414292661068096250348809923730413806479601114459516270390602068170767025332311933973508420241881371833210619422575759408192997850309115080950322365798489049971906775177507086812881139753267584926109474490723355436722447065917399525427605277931613022384620105481721108205767424687942105573946424469813582087287722782429983671291008227304708269561604982874164761859131732589024578282244519562611178644165487139477943663184380459954014973062934823508043115154604772604724833664906686557504043242799585598199547711555169195929315484255523881715070455019688719846323922983927750500020344896724895383955370540044812888455375439726220974609243460989689720203126231197439942336378699898410114851894428563542288038775106221555359418451879814321827378575527319007059241176325416159784387197273875326695198170848700106056482666006667330260232852974053796599485279880779111461962746691485626234405911520168201003645577055449739335755184915213055475533291973108616874829622721204966847252933309727337669689430679181904245662139168498144952428267821308759601295990204685730572231779438519271298340015335006301775774311662433997645221363394690667570590918800548932830382398987428839275097873002043730384009179298902914697088882961141966767353967793264859558732322182487180908132322195597262714772912639217212920870782069450291537965111156440996562321053081010796561085559146192441520221016321412881808666110189666244407584284106836523391721715134352518268491158800563695782230650402064750346875882799151943720172929570231117069089341701234134938616028859054136021237288588474598537548201196781869742388897386058818941753900038970525889827097553390141897990785315275559787925962734669217339266219124342517695949995842099191188897240057351372938143883755341217559681376218009360576458936657326026627038414464340086724161668170347985919138379205331572709866924530886371290878334979965328296282297509803243604911765525111920706136662072041439073935872636014519487296420406153342030320264939914528531790023690067961432868832705895359676424667557269479834642729440329571060828190025667760938002825394568180028736665935393624719224780027781471080743445729460316106422370112599513327897565031843928157666013927253315046543953930694422111521731270389517227785195054949863511053110006821602625987223290564644029152187697881316006777186061424379178476006286615939665970864769878796638440894578475773618909129145046439471271281805564060172868579180134566552427328558690146522081982845893614625280194869178633770889382854250420553250508646027525316156524243206715123816746525601690124729419830295170148972991335965236301409421440648194209161173583195810858516851681796431570271470642802142105095271450787095325100918377641925817386665062807960356425843561412760203818016165467754603027399596688267207595036250510632892212910331861895371097484560409330835905479996389628552037758929282397551821765100813262537913750732489161100109306816673191195668195553251240082121831720945370658646116285489887126973844511063552991310407738622385934856140745074306520332974436604543898028197141961280019298516037119961843381406020997489115380354698526299045816115651532023128604717977462187951548380445442551563886750735200637395469376387886534299815598354009833693051494121417993044509490329029198732818950252281316733755758097211736941336058539762481400667558113690825134875633690644964810388207109710645231924380726824100228774844003998637411436942456493799315487481480987010214144039997579656340226331236836374711157889796968372656177328631292847938462445935916709293702255288330309366128478789427265006941229820494319580179318962784629581880359121551358247751279633845459978440835812148293266270511642667541021944766240778988361056963809220855015566871734434595442136239278050320960873926902663978214865077198262080275770705147572330293632490906737323448287162076456123999498768175780108159996122743851753404027982347249222254519621295382821117678663623665191206313980187791740606090485119746523492812252247275572721219216790173889676626845820703098921465509826301773577681985811271813425776716431991392256528312851035468242118145608794765315064421820515356534450850208980811095851704260743656436133336183688951830911162839920856152697046003917412519978735633213083016581596979791633335801907459227229147006631252540868842689465244559812219187424588440129977031426230125514381733554100103647492458654781458033686174135196394534715340005811042236445446879151886639804225367531390449556430899001127224784648505243423231984044043325938087881334784987050509772955392869960579245323287385650167619577820263717452655099252607663533436739732412739027026752834768644114458442442228170572061931513089041354469762119960430950538633829219916473061206779022199643961320623932515356897140024896920195496570742899857277532154900165601400167541188699395230945893562179548384944054728276195238640110096484952713333506876148037475112722025874230475678212054598299283880525567616144907684493223033091375830327751024110137376821012205925016907593096302881479120165766657271667727562031169038733252281916117931426980737939436840416654602418362296168787597447806771181487025039674090306866201608409069556938775236694112989954738825509591739375807330420723825490040126002891692628127702821163318141165006018063948698703799168864149983926917162297330815612476608163705203369612659882256225818553507891472283656427495668908151856443353387983968980580075830108351194222932317254998684144572008252677394882889703352425697258658513749370092151722416562713943549431350644344169495978068742522203150333474159376819124747553550396625283881472306275333347066914264675030652181013946011986684924248783953874095165721836224126329119520546216051680702197941913492762363047227266042092797027491096161258789224877571795496623050514350996470610848616777893020630105548160914365551895563539057355441397878482522378067585444509313090640968744494974815324420818278724237692586438483944491342289218666233381314833402522957428274169200282489060795881259714154980901949939922511636175850285132556690445298851055954391315726812275654682712891307820329497304466027215598559793762102969072061295817800543847247118259015631447917006726156467049944711983319583150511803597673986051764693697480299200725211758371440672313248996593983333768693057746100341249411831455531031445298080112340276593354658510688492148839941412823121133335752580818784847319327887186508363453793185305058130627749280239918602583896458445078592654696106157154318164239604817514391384907915346522018882137909165380738781720792808373818826494321087893080230936862111191012679140236770876895327521499184020916277194707538157488301104457605902503502276245490994737960852601723621653890208053725804316221911795523310551583431552201115395744765654814233235853482058745010841240137536424724478335293675843121213848010169742699669835701754784095274531466948557689352147185836303740258350606771254288446438273049067454602080057890388254819823461398472233935934822079918855143745288723484913556202198883293502132991621283267361044945452010447140443189216705865982863079525789420400141267019138256274554776190031471623263605879092275986368610399431353844573431690774003828075215655008630455602328941409813537815239526151057861214058424986628845138596475617895120035854053279385962756634385036245726208458737927671583819197070318337920913078193193795489827568052810558664055373470793793213912791886891824908990538203355074147503668846742758301782732606896002699124118150980578757454769124817811498443691742998402020366113658655001646013346402431294740364406929175682635084631001680656474943156561332299667040908046064640637283175224374499882063917841758695475649165972283450054980694468636433562512583038612546470312115618480081590998647982580737209591722859049395190834232991234786215260800350375383155164010361361632758267796624773997245479473383063876659974205864033274751592014658281693969081873957666549957384221057049926671051140974420263423128446611036979245264868814325664420866841076894018049528737659810467425911515462771366424943895113324062045800953966903821252192323325071214009574153986695906319023268755969086837701410893552245127487582694482985887444156435876680881718863955624254519646997935601846533702421411987127601839538590203738447365745554463786283611637748293326280944980718176658236839404918053153925259780507501039455944137723046318443297094602934417224083438589328219170139366516717558522295995040977902741534466345305614155140240135437493273412153926767881083020762944816423685856775920436286437611979876933288307562769327668281321593808779767490984659176024482412400367809937612094267886934793654806198136710324051435369267130194139586827102360562822551384444727806427843957929178311367102692596290799248257873426745521390201241932247726862081127272306799274190684519474851805082679383091593925006339235826288725014888724027059635866021791642082685449985984397787011325732005398632254867643288621380666623558752649344026666520308168620202556856322372884239679604165743961508981502061550286274703626486387718631658511164582429857508566210586308994262103883958636630152379988337201732098340035724774280730663159670274187916440781702724689203775385548725781922253091466295357982560233941036385183686216988368208200600085954879458494742491871929460079403182470742850380815895136711586282346074536184195440973517282437242022701919746478346968038771031130010100602665157667307908551299759120348500919300470000895406741850374487886847119713221689488673851880703694095834921617281234723373331605254868692088448201795945878843311311757362740795295178477495913609235422373463555220646688916379023487964679187420920730114768838896832724178913736086951216045183300447281188026549589674946298062535780518781577600749329668115325485881070580099387875497347785522521015929347130164120766654175419376597837564678312607311050554604459339915692812600266681437992493049794440018081292640825092231961702558374538487452280882189050973540271463798867304163623738581143579407306028375187269497051981389180499150446759137432481110298495393066454859373293663056875891159514947307172272861222516485957754926667320524402129617112793575050313839345252657518632128619563032105687537686052768531609422085196680036838485470550637938586642475812032467097328228154338458723525319485782634629722065596640312587197781305509657849507166234407834268931895149637164181420070537347351012710450138363812618786083381725014122918786312623464394154307076185657926887715989211370624883186597700369738446985991127791622944890747772767192368050441037061203132821841472577461327000498671360598408688949788906006038604801269987563486076066367689227918780052671178321994469635969908977639621539994762504880185864101874289506790459994055217427891269978281826997095747453275798968778976553090968336079891905870876327521250383712639032146731489369776923125963299532380790968943653423041663312817344565108222624591988557804442721331976228813170554417901698793203797128005296143856128539659044277916407698615176887021384399943088369863731149907502605973758397991036818844447369760188410826970327969453656292610506764776956924845114616374157837868298002507871636885024184346559082692935486104291319379282660405543448381835470010557049578380837556891465154188579712202277189076683521556406450071626406862131630082723051105220777589859770542292865961915310527831878714444376439943641145425723133457966409363704201336293868234845854191320042698720716748816631854069064087429357794709808882848979649758074464472398410342341477719300744377570548009033306209010912108661898714056922304906116581285984681894887191659270438602229524061060410844272126909063053922207329958601077982691850117896067166247375184640954568017219552053582805774697542397492936552285708562163853761529675608597284700227190915384643752289534618197086016299876611558123007121704957545057503098031703046450382471825824932144409960008901363144304158447405896525136979164138864380664308104202294151192346646178742789750058728150070937189778532710973004867325200243063480761013039954356079407105415816622839329569613394450715953135726824804580615099490110993341478402260198280982840697540151713296618416699175561148147809086214837482527469560351233824286218583651659500681096811049824381195915769733606136622813056390772235651178926754110261599536873115916550840700269580219611335310378469583718453261553749451622652341333894192595868453052989683058622884633525227339035779841725335302299244422490043018964666922542029513663177825977067239798455917642026404423871934693230623406824921581181665222890654402771229234930743071663572170621967932955454209610360614557319583414310637024732684967190673938465563900977110181803325203025421052144460345473303652667403397960520273392653736066546445623259714310012629549151416273480835323977811138679533963194598726596003079465793964926111496808662072521461856749630654948165038565584346474899118680575081564342262147528690772828844191670128021267277824106406901901783928141198639918965889999708836381953065386913158368174163903721372855930392737313626994047682767949185044959540489772102709377573429648687554705640397498822409669489761003012743650914243711437189035467918654366154848892502194335982661545238338970425587109046022442698628615124574110228406080219592633363422462659000572962692721326424564760816910258490323739914612477759028533341919708706248131614345883731663312285951834141737586439562133723673855107466825156802590770472899978014449159243037453876200507042126757569837520287059123643462486754120514952041196841821972359881685753109623166248637522375967461810355224528819934017115380802189484054046802830305907551445310368344907892297025804372911043332258739923676112155905535575211884617574000287109921831573906103074063796567483520688049394376604410953952580739899564643956934183405136022817284504982408508802689648482564457062156249204470686816796953400177520884420837659648580337900041526058983499883678021941329030109370660710005867741325175919875095295267603790513463394817936639215979875353200841340495233941297272176156036345269788920273163455384673109137236808842794833173818331291253754472385975638602526393992612599646312013428029965489170783922863505087132636400908610952353892945832728603790970666012493023930115412473640103818833754276243142424547755984779500879913531585863706480370520472871897457960568853875152223752947415510550884082806722085586959586848039875802317904685718301378636730375883655103202833556954872560865825667373114381348785032156652404897423331569001410028527075897117763121486183633431392769589775342137372170829272421914261753540677455790484394516971882359782187780168695017878525866442172238239216690256149866611543833577780558234145818235890930552038345101863992570816680067417109080994567147660101226920458647108118631707927393869882651097569938651413279249889297225385101108483476038342876736443787823223103385169834583552471193132527284810697483448298389525612991453054318300925050538445621291484383930794216560748884414306713352873686860175810579974353037596503512058690721462615636195986748335409994760325809217808025953849376201163488721842796451117520276609125003493542513406092178800885885643577752501743968758961655129422578655746011755415360331469977026372086249344536204871909368980953081276232948881041143308837674696304108444902414813464823492240772626940126020823274271615007849287309123075728917869922655305840139473929885763282558379824647772575896993547847027040216126836804207739488459872546433528539283592732955949260832197801451983982641720218763673588832014997382780125570403762579135693416683712836245924749160875038042713809808361283952205685315171558305006326264120548986253167612939409154178319850465876853966959725349446216944817507107286355826927762500347844835163410454218796910844064717810370585363109624876502120863453977836627499252552313201317991402809151628062167856687242756214327895820791005867902531212041213984280655758662463679407991725570491369027925544351981844221951365378396890988255279145392192424080708756197010840959062032236493939509215206576385871847271198655128284341939169238327568739609930825725706606038418426677509644894041823076011720421029407550722429175742371039675104858685332127466497284085487145198624194372239575115973033499312652215783428642474915489233522865886751282494527146595686794384313617868543268697251896717794151490227512042142328696183033467638499326464026304524579271103616889161318663476540862456972603413168010184171361998481425365958520083043010735205840685075313679377988902351246309847077433237226622164670167855234034288369537957954472867368265215997932722491141256838222362217608198733282394581265941947050257794596342338479060852907130451042536645974288081346102714595581497454863556526716770207332050581673027065120951318426217688732217408404401729334213438360382556738498909183397879610536442966396217513649679886866764751042483217142677062228222512474618147962940083935702380120329319611637714606559599234189542853045373682105482919386738652195488934911856452030557655682279133943639387364316069935335128820156229670165157401537207853566871430011750907260728700939381292065851942552004752696521909784762596262748272587302108629947392661997131888540646821942015816357631502193032862659679859515515686239315001961864221458346144771794139897697405958175477538308881676737819013324631249560298945454956702076796438920283503847142027139471749512203747938649434115504628626464166756296953921190468771045659056686505126091673553956997231971283331631503467562814656500756111328581930858717604384760299002802694011189223682115188333753715266009130419897152765542540462258618356494808045724265277193455753099910451347770552179863587414613354660310801331573950127168927146862477435445596834856532376073881636849084973058978476423255777351929097653885866969608813638193927678265792718784757624992382544371697334388169825006787603444533574805948998348563131348416611051592395891811368442396330796049154516401688410426676323516054651328267365890326716030869558420482957153369752151500298687498125979783357884647036232857442858651859628960642648332022411526211884295916679222109280425659599071421645467017112848372776845772619023375121651923211091746307697353178348474617905835343191163513921974888104220087395694919766181606717392241609833589392987079178584726486520634868261005924467103257534385569059371267593510222406667543779684022939645220761927586469678920958295833742963427957317658156286125909959347545709539624247861604489594566926040232582766355088488465291852778975093195346304529252046265746728605964679000485540117401546166926419746353606367731180442287185193381848108897812360882722615159029713476409051707965469393000874814649934809481804060536415765814980175694618296493492283669614779426987425995297867325353574533751722227863748914166652414391328379286567060630829288616350995416125381515568026584091033704366168338197218706364727904283150522653446406660052330328838003551998804678168490190562749952784733924584694508896562426182430792507744641771055678273768357321570915079192314939070650267783527383828786457944035127706014599868604844946325155453915332153122188234436466876769681758845610073109181986726512900980950003730502104549797201054563401064491143713236648622201610362055193149003988078769192746415649630370582805507722630896080281981853376275753031129331437599362371614669278064736686273251108911247821950657131136013519370192586692685326750783971765103273953792468090552499077483636065558512789748618657257965220598260869743152243813581003624565310906469701756897996786045588811848980575617298300175788920179666301725366065311911370425281655690914975925989373813692661325188471997381796380458426361302331079533173888497937774652902279129735233127075833253647479759998122015759710275319980564045566883805576868359096301421076251432188047834100517986755681894432064105779635661641233210395049969803077169634263112797666726335788628299986941442401269902228370577235029962348995954752187056333389166289113834880858052470424735958471525385123799377800097031900903011494160904281764602233576435741759099540697408307192864566468942152579127676078659313814184422174903312364112976506087321735125333174868930579062302686507563142450186679760819307934174585586903690946199369170530162180029331461513969931421510180423415458788684778719603097451205876597591450844034399041228995554817493939559353585441451252278612042390975133808000066611927961686865274695808744076867588178749498860072107892109512647583987939898356181831002694894671885928507536146926757056284205361308352973686007858005789303158599716312658964522047986184837117765293775349853042069482989511689996781078087235661812529815339776076975423683344287178387708867851703086081477847672097065392167650642378883408876690554944787045492275045577431151433332592669202054591679547900490890315797816999188959824320348762177607401984761304675865154765965583762828304480255570757740405597611157471107599202883440506796957174572626145563123989590527517161183086548072014516967102611470867133485749077996645173611274293934924103431624038832124583147068638989276680916543252819846980631328478861846569495511307535291951743887582296364355350251038696485847274151551235811079829446098015866375413937165386552028932716855974262105310569479538815120334306707274780975860610178959585909729911480581686909334119644722116901974856064884081661478665983309475535249113024031934914670269825638604644918649041609696595442361438613730519575415416927057874393352433632871145980921401550808851848882443385894069914333708338869096174073763561627697715888023506896748738258444253477273333857631761901210058206934408963269937308120738242591129672679025260765770584381498624772676295531880071451711722972316546787492638669414970307724340657218793770203579681842507151792469142504595453673485922765447103882656208453398956205366073689343744711965934824731221290096631949343489979865858638115259064838261190831549006308724251620362236120266518715413084974332726069731367768183843494822136125303770035228632608316467839512794059163726147789884129845959999264843483114451423566592015390165744700581009728219718279179815479000655331591465152980345101666325048934798724897686165385836158947318336543774085125276299375961466861172623359329871204344912611795403088047117350611714389876197035840789697655918674121653586893708374982247675234181701626912942430443090862216423308941709681520758022127260698346347264586537718109168765106103350153012596811603331711469635750674988843694502840455512392293738270964845302844883852114553267850659638389017152580121066517305940624754040836600029729480308619704221894869361839254281313579537703803886627362387682270343788629916662796910699092936015719209776920048367508832885265160469451393003193640056595612654987008637967360878149697597563246034640521443606302903978258197785694801645965869509068097147202620462952553245730325060834566718461315022149202581664736832792931211401574195291938866026468243577176432749423578417929868534495272631559806333373034989417006001889867394685261997120812067227850893219636142923325948770526815167533638273132530914289217816730660805454315369442587657999456563815592154146640092962828645536628795696980358393665812936150353219452465519343297949225618993645415783234774383035192661048384212341322794020363223439107260205294179666543987778060955891413333552385437371876303979922597588360877284354919818524791488433109123179221191033606879958251670851188526215768513066041205708545914726843787125058068317260274202061354277010014763869663872693664948074334529655168991298060020302908184878240464185319717307997213901464266649778645133080672652128634449358135735861021996753795911912255106050689775183956180527000090399166741753554219820815268790854624942655282664311426037896440504630509123759904090553988266298077721703377238751642603333207548040845576328975489714555762525401195769808167851056218106332454779606370669574849030073557970484394769134690255332453103068950797911107628957878857132592840933480266190286023937815060906932983938846915705940243204121620161915627463215415043381696449805943039133685408001900756323518420327891364975893250459142024011641820621448575380292885244674372624397226666861733939545146000135680766567394195585216427340645952946903608676541760157010286197638210062119626009020153588696268998649154501075607651211857548484193543559397173205881033862114487175690444490881854982625835826917622099186781695744646492630540570173837430067054675363635690148054954112423636882946094861298856642452754598086253003657319238536866415711763569489774156284759731428405049776608799837426597507704020887127916594186516922071063564573054694836760569515065240885616993821965044056933228373086976003003376548059278166495407855614322684799135862864868653851493917475035899002530497361459676145250340004684255574584177184320219292580775548973991437843666830170098551137432201167452001726477390238432606427747309590582268678580800179620172607146591568914425700049257332865857350478669947748315535573139434431495003979884299994774183453076033292384008695510980296113443311115550733743365647732911869191284675891460429709338572466489174975162277470306796461988601826450724648726247400027911734680563356667947183685901736219787939206526922222169497537326436523089393196143440242213038541263412567170173210552523961985187545975180836358395641543520161279711855428094361249232744440999265157454002420540453768518645165203377886458110143222307046121418095185438700813614112279210017157785644556072435990280267833002791917044744330706768424225513153355455996320493037476977150236592748064251402494094362111065688766130840277984448620706714188045126622242554491637073771081142539992034229941047510010614114550760216751386957298667701314731254187939939734235780686166327573712221351917387519389913791347274969545361435579213889917721026468261987521645611879455265274583564090829867789268924288316221506701570631419967155432813252407593892485509228427511168826247159561439230507329645641699622669421841263765496230286544306545279302686447140773764235981770736863119236724007898552664235845881469575096843503423366940764631807601244929315124611410176890555846693227061290989891947464979056385285098994733662540801042861258933057275132357849514005408045608579131019963714282878019508103294715116370481710341345953176891444370050916349634217615792533266380470149921530957515012330103324376004862295371272522826049884205184491435081216403191805839961605138370047765894370531229359360689659279843997030976068439963213974667420071077190819744828853283644747783404216912434055971004950659128165656000948984360460433992915954090794989888324644236163113216686681463460125075345328686442148177184984239387599729707289731014984131702228793902684663833630119063904126995692698777685953541027691684819319159788481276283980656856229288656896207455809872793279364881124750509544687287216102016081772632234943531627491395994246150501621764230625364229733141644241599817755912027029982445107598211143375691441799562497485759656396268049746743626980783198115539090640979376062233450603172530459988494986941573153295954770136899613134289798356371760721697842195071099845539963004674857209122746321095796899616597922689114792985486270655928700283167727212291543477710776155997630893093787906240074081672683017699030223296756202757167695104611402577333394226701310152671046050283445307170960011974075615945788873692723146531409057806064798148325399744600417661267522490322384943987766133229049638574114592812098397751935531713299256206522563976737705358371187979996186155464757202624747614885156961682564167607517025467597087009820638348894982687251191960721508253438537044494548766373069410105596208204114332963112519444466971460998083553682060923875887012269640927337448641201358894469736094751430045639693520819685207721541505787762018329012489716580701885852287229374170203624436571048897770691467091774803970973877059933840841728753824223032951884869360726941674966131956869959891868936076622582207717719952582332021492746527073380812664891292866424029465610039603445290497342746582551187857668436288482316699799480453955072539657353436845212973274036073481936523243646607012390169786984858831161880382685096663766863539109039219837382629482915074380511804280866018948006625425215706120201561534423781830431121755320078340311663251508591626739459400404589725698501711475196079059535488753127165926036643415822775639240211182613738450870301954085647250796983027787582754493693810938470755502643572047540206187494001501756869569233273503676577869229415415359469999825700985329771688305109899328646484008394475416197284061004108878020658674303204851383497845763754943138066515471773059131021280900855233862547492389508261048352196444254453626017912376244237115196246871619887938569032075430822500967068850302803103664971454699626871014775526695252679123567777280121844180626078891225130649308395216878780349309695108278097074827133670657031048265872103422711783572286360643351642915136195832626645154318564784317733854215072955656260543088604582254371668801880597394987108630994272282139617221594767806421432897915348838769052681209278290521328547266258526455676304970052573786042308698796669566473953156246914847839189678066661087771620290726244043049106266788816008532402329393690732164944121983573394995377941304916394312004292774365175491707123071734237421008462126723888510959113562165611548509730033974053521604274268257480122909572188952489143217476020397750959323059548258656648016884624737210941840682726620074357864227346389554928647725046620914441620342687406516741152212406677337153767135402832094083638980100110501781599164558342139157163200185509542570118059757570826936824156773151654853879186351159310367194903498273145609123576354160785021508069306441948804589993317804827850807413787929347077222128987521670559473206304017796787436467119804767959513282254943499806806598579982972257986751253640993653092928266528748387474931778361367408739167575717818050282074753364447824391286105933754500390888497047515305592305152458974628234678482920812991565029504892834388755594586582243685456374108077712889960703079303207284759204894778711096791663764118667608294102858750544645257844008695445840293349550155220040281327185226487327967852055909610678952300021416882439947385265848039460021046619501435085257064106836994552480751954692335092515062353498568282275489474710342363473489289024819758939331136831983524118952381363585718307854900467368539196862323308631944511174229801439131780450833025383309606914355541466063105815661444220131580973315582430790619384251357727923386703178813154890642190645650873698092686098048993406352810510687619329109581026113747894074949831771830178524990823522723675280093239206512499721233956894537744930118533952111279605037361441214579398076650999734299710525969673155800338267276284101252526652976273336557767147834580807250881626472591745174617833030337824254026957588001757329603695391935919626626122197825647180528229025668638160576780805063642355540605419403153121828779806034284527459191029160263209601622753377625705330791189808175365861766320126647649266488856430211363086376347674404978497065975275757022273154946084505163512931852401269026700707585324519684434729622715430672478214832903767384313827410973323274994119452405382765873763002066185216227096037632134190223384701249395156940972567000366475761491669886503936561825175587971574553726550617100012627591196492539770500224397689714412299999188704531670951396913392484074514028681382257092336174287695747363363774009511717972414548501554663255165215023526436852564292620729382515616497467290164946536230549128392977570934380620591771224406737799523529631668672797391603109886174163726622794227725739443775187746019485692192930630997348798201258067694270561924473838620309700623897081983110766331106189361994059692522052444314874814323713964492451069219648294295537859187654433038722812166491806076019522678160211760851718498693621455201989707594479246288542668807852204635154957527531082897905523275869559669558820052890774304376410535639150326571488115554855225450348336443307176153805743210723747727110005166772089844472439592290820948639656261183804703830728473192806021319971279779394195019945210286241163919374987646490912673931060590260584020441428521422301897439446979812308508531161389497409019172347553354904451327107833396808785237238129074430777152656148450147682649737150432910441557749016317993652645795061748335218804218902630580562507327574926739292803680213583053304569050903336188743561824466513102922108615798060064505012312831114549254558895065499408001895226647613148913293688020674619553545830175236896043269086046445367588303577378536426826371257731548536456373501103343606733912237836550352838125579883581913760008282080978960976213646777520472356510557470618285195965424505638198645487761895917420900034287975748364337536038104164676291396099355767713508627817844046749294475632955667005805359626282185662878573766495879680972801303219313229814770603311865744773408499797463670664268610484316252669526139802049496898293987975839556853935149428699929464913466568094011751216270633138231448249971765940307626389099840069669596222232784204120354323273922493653324700780794972559850571429761514244508805032807915388838980314190717311945967768923822225206839336892008785746734088562650813884920640671173244236443966920425140302540611394002863840428245817570956051717581396553239042944647725915579962355087186475932621719606158178066104401462470079772667877749474022087408875571115966142900791766416695225490074350601893342672532883281628685945253837448505788329116506779679409879390705073757146506511203621891940656665182899709966514974211772464303094694634652497120363485548678950036461328519395734520397132921153871329870654958692717552534820301852937599262546341111174748977713182970277426122290756640485193522249771495625636766409509275769647260115612244810136833539822101009207741063454150214006367765137154800892896320772905323266375950891180674944981084006889441160150516561876562206390701228898063372705733152285115224990283483871508434060088095259309152707405974347660029283498190995131347721020481752402615696388092073690055047969079597571043944363028877787566834404100051734556007710429665330671918793115688172501488262748282197878790175704782262839942540933990293443846399176417055906058215801484593664671479961102914698989013351480474249935050818792938884069629438402407072040085821495324860464877567110067830925955721500106930668940710013003919014103141372759846694666148015886592893982492696073920497107895837689074662032230091530730564265035159309642974733467942890856487949565034755377370765927479707945819959353811348639063893559808795959435618110814629522847175321226209345237983899083538530848286335062858895535529300768848304049604475189088954053118511598922243779590277306787804585414869974260808734188221071918368466695821851585458076543902270642544313738030747787387864258630373503039825086555284798099857175260187177069901911503267814012599849763938324998856738972011637246841087698128498226049335737048233759649391024237745437989603305951438754446766832623824769408837367474000495352581553617911958879429012552327052129377530156201208683358069188782632403363217024170548043473191416084681128624185102198816982383545778598259058201936980342974807313174613611577623163230382781508856719541024887060627223592554597499440643220390567257842980355708681731953032639745692679730731820894909471763494144781861188297471171562174947994890800628667830400887800367062971141103367320417165741489657823392688795274110035920161745237388233972875710128006449919986272714814905161667159718502154214982185643491547374998369988453260268944973373500266429067265158705423120521310695540769786725895781571084325526722269907071606486283996091160571849778079839375498103737226357047641577589928355917971505396571127170139068907232109870655117941082333465034542978170171308691670381097678171644471675471625658594140354667373271450512500911156589620163613723963557063966369962398209222293745622091100602127581852053096554459250057870621140019046016428943308240463852415925180144374521274656436236861518854357206228709320925267126481457199014543246881993094621903463688204461774057789747761667806870987043782203071883718815266464550139437137364009232216994509243885478958501938220176828173230377711178614702088532403141521970233057057972193514514675481638505849326609350269832365015511697772977996910541610335933945924347966259566901257809506349256144835722741912926237839936271315160140168294375680030174456566001796578943014188006661244301686953870986552550197680582655975768547574960842831520023026551533706364160256180960466218523637803917164233226564922735973632528824191235041434715163425876423786781721687056879669624097718017105784016320624823463901559512800978094864515706293403746881813767478081286377423289593753989286464719548596114651165439469425690298333288881601428039348257186638029159132763620795291780605735144436023021985589238155061704692371107984181073840012091795342360737045214183710388701280080005886204052788775315785596771682262980161454005680506182523762815161741356248186493408605999097217089606569020583035763420216952013531755206799198247040875060735981141720423924641355364304652367494603279919684892978489582124331373592506902991511657626563284694901756708716427699120158592096787114599740800234176469880950144717949442041622482007770909697250551410242917558715163803662575423311428428629706254699218116961373130927535918118012067733553212572708584616024538010169584021461395021992597540547315694931918282801308767188884980586407992538475148912738717888349172719036046174181822915664606043502813449551237938852632489487580011689733356060832002785147567529754505504206902574311588128107080758310565876007100381392898707975901994228623881191789819608567128098750887903392562004754208602737352744086248002805272759491612139803272862285585910980533477993504478403813826511880325952461751645368545093247292860559501856202247190634896512974350772647666219353549437619057871715086086291157602116082493847958205565587759875274256614052773233527987266865262732836870866438150484598582029240319525455414134453927603070645075725621390913534050613877017505750021414564520076955776151895638296695649911778754634597480925787016875182818890261142879246516455362747233110495881331952249549971782054905573587584476353200673419277738001384540326893657397740447573089326873711149213542955441839889026591890925896641190345638511435201319693769937907512494286490765797834713959536369853603820087804168304881220903318075050900428035861531689893533880387986084534492967119952082226457347726345692774100919022204636932909328970142256060799719482055808712015531868446929919207672074375375438762582862642497007803548186337761703293160013544275976104473479491266808431681492974954216435581267556951313457790808967865952218247990350753035137708214100482127786295441956767862210873398853573926263427144172183121542840786808872816139531613045279429264509837065561081307418449792686425331461728611547570002116493093730191356769261225301785341813195215877740587023885386756325132317165071112271274531533215492254244367001910721223793615449291974648284036582114690386820829793433505042077999583974646763390979817009879568355874108049870978824013591629999117503843063655689779068976327259217241276211794886757127179442855938798370791044718791631820500410656361349169341211738457290445933723394244220968876114839700958500388061219337270952288152426488175587169372728518631032195050944617896829743552315554375916546541967928414165630765116384072103213654170904364254988669206265902077251149665020126835161877965711157565953438590510397964764265570918248873468817255656926187319413058141561756163055317634527137851193841849171662717949301003970031057100476225315919447782970318249762966995771255602099032833524185499306496225533424481627666097595445991032184351249199202209093467426437760259052367001900765618431827007277419031381315757127550770729209034258286706284271223027673160655856007842641819687901385069934251326537253013995390208590721321470946668907339410922948190724898286712549951723006848858023741422916475998437081906582385286439786731481600371870384234598269458703624378299198053517428997720284367479908653814991970705727534986534804162643288856490565453774120355372259532198945434190629631495890422085987840636175527812608366450844616078989033205978080695890966738984953009071683091559181065362110071293940158757405402899703469802832984640073620478831229316845682633504076853095267876151530542405282573240625260929710256953711833306868793626529184308624561969740372485632791965740287476229961464087629145305720118112394509684722766977959563579231101921856875886662592739281420483075567813595743111713590288494557646870973093550243153054102512410489133701274721183521926685172056984784172416512746852399244750695887615251790606006653083174311984354476714223238029351761383884590792246152435548592350552216004285558794929728686584244133131207010448281337810847008659055307313926165595738608748060839621835305558206273224601400837222140010312045734749591325976180431485190118420483129356133787825011796260561082775482575357938508283123594977041263653842180211081495858083225918247335677668115940543684340637030139625640056779228750769836147128316066406262307312321649928500152245266566095762955907876821872890857308389278131175742634503991303855859384599666334842810292533845894159910541733662150699866805917646900416567970357886702120047769916868625492305982231091179424235650551343357798804368386961008285452922901816076650559488318376804050585793965304588846752841132771174731122110291663102776489004519254257170539964983035410360741127355533622676907240257145631824818082637240382792788396786980084314873186080808857702737103029847367037636859646244611992990726572171285405559522809854729495599601185910351736162162210956087712891926571916470695386143194707941661205867143723277311665789373115012668656331349852334347553458766831920895993710439246779521527737427298833535828523240491092480759747059128168377132585956062148553253916032984508519489083874207146976709950120836056644425974008801751253414199983057354421118708474184733121748999024265866879910493584503535323156672518639598142071168359209206700446835412639865796154615811206161082027790886513810270673661243661585502553014921425648296305972277372821362268516453321617931207496775772846210472428711508290494222918939611829947587293791142632107610910889971134654189853998185676786129123392769904721156594161215632360012382885509099530973338618813336009152997594877293071258192891719375476450862874982114980134602382930489623253839757177405690079281190201330483559753422030967441443777549086169870869361513967212226241894852797652068974263857753506861243132689766425575926680907934760047178678722414121202042971156605559453149760815106809629509135977121578764944652246023160437249588725920262637006498896753168993726024887536118370330182223145285922591089130845409860397903434465292390938779669988113015986350894407958810487086699373843732961612525496051525136861625063636644665520172103034334346387117381249409291882126460682283098015400025816445842777823303224320439374017440703133767461858211802714003829840843852185817875359746662780951138765830433787371186808571814268191188535456965474920992542690398958886660113793924110955450092377646571070540886046988789080091369569432773524186632310005939949589992191893665307674506610877875084079789051350681752005868350281291277026096803126213954183729523848057719044901585770976380699416646670731886998212905663085495878856624964417914038892189582114467532756144741076002810367367192599993945826990151919631793347112725188365060104069752240029764962631094610555467401395653369599110837910259314066681107822229021930322840397465292213754377181857209015620383422550862001430768252609169641440164849872511273541954984304158720759456679671156620464292540204085631597852601969050942744565559920957693069831707203442977232722056827047061714813903300884416479923768747347710780345355518954197204561271514329461753552877367848048383044783226299063748605048462508193376647702955921136733525942370750926237749282763829458713196829863294905374860862984179338773078083842314498742620389222698482376441637196706671198025379302187481319029035465902751441508174584957618289786365407832557331773195092807524235264303850335685754325936999945099965563154696701504381638037553451884557676183491729044394165776416551164996069993097417917861275459152987357208120244134722219651702909830071881092121656311141836260284228118728789476180095129386431085808682823742316746467860758394242257309864901689933476261134950909707886218127818929302362883812860345369721126554027804226607889413484293997463883818289177934721810111423679524450149675707211891837144095486664921694724227980762323296629994243548934168416339742221679984201576529160446966268162068616939325609128552797295451074885958491540857055712625834460930883811462661314212352447113118772497284468702447949983313321196905409941497894164297917801260524749296820048724837055353868625370835842819480474403385429493987619678362139707907203577947204638175637522711748545616600269404239050708369928210645540799121492093543229416429686792865342802680094511250448786038955919635090833390325660454170455688834731221644277109499763040992033196156670120001469076665373163960236191853459764961725858375351385761842752501630201495491353609819571529615233037262543892205988480581267940713290332424993160762425608664323741314478977661013866703140843945809952764451926520325799306841067015133940656543880564528459480829628562747408696384436402136744894719624102461414312024873885724104342872236659037918449442779091935114852788078494032529408877780120913568912206261105151064302511466915537678793696009701254281446315356458689026118320734805494177645486285626041530136195905367256095773151705857980593625223803677050967825068639884914371949535919849475682307720294546493961599243471779662095666005973867997948755001943545690503477099310135623908334356988289404058260861801733788204845801305957994930912307368958854824572594412735372202441511230980410443223240423304735264734789952561802131222092396102935362052791988267153234877122846637777415093294716246699845797833834095468910235309053142209270468209443290699692448118457614245218631205431720729655224330153423027421872611052873559307470747613635073102754966049109288991249966167592092854496791527805286388210396261022070565155643549397161282577431026059784783736655192461623249136707376516634245777095653914564883130445643969168556049701522080175595656791297173854504023149667515909734153021008604057919016450756937980524055763384506378532452242660170985054003888653012466235418267960520391827065237538481065391919226116430866346993629660362423385016585381826676064210253407130071965576314929822939304269273548977468985783032724967393229074513953312559693487280441275470505484573119980937110888613902016021845006327842243914348224252368831034142274841444948443653185927958373823552222884725714323598133781710768726775359006557899575517712101847677685178307331639603181406862846922121857188455358388767626653261970277831219156342650953899817546459185487598265935566649595895512247562281092607706112288727410652972483427907601090342378277735886924353956788465201964156879757188121874224542427141452617719394895940422629892154608535254993287359890513621274130288986416953884184107269433785395830979550188715128957746615581778322429411207850668469962051478980906440154749974515053149247078616442452249490030098968676759899240489396321613338238039009801201676172234175006734821291755769867045172456300119861793733931901692527308035193860881050354839699883964506592703699609207018748174425034969099776720421015083416237414634016745586038347812317952498815402792237390008304666664523856402042943682826701748147660356657413101090814754307082322298068202284832770284520752047621127543490867887279884306477274161957010898337632068439539708173230193382083682345046310796660503050677376650031750395714473056508678754779897140890868904401497453115095403987406122093975261128493415529226491237193023092544212337431566267721926986941806628608115960397340515383107096917050468918465214522220221556496676437094471787733309941715312922571622523456791495633586388662344702182731227244546492833148229362595827701175714288687306363739838752218358224418300436927880365146241716410179711542806045871549119805620299226103041854026664085716126805403326847186152116002885553004750778380813465662078419998059333880285647821365836700913600522089507991902298316374103743783730632030335567819367330873637044024013949339167689188950611349164805584004982495256216188656939561815357239622395473404424278760904820223317093983118844853538429079269171697749867776464769252476386003453329808168832116214747771848185702020573894747592074328704150210788256757961746884184072485513999051096294021740776979821966479444350054004451462923533328546857717498987513744867873495208800476583789482018255118396602148514659093943232292133868789478623350497999462046260776781812302730570947251332771803106163461449683703382004370181975241253949272107664131073033289549650568721194968798795584676031290937093527170407683009808131048052134222279529619817119038198941550806148908558425123418777399658910309210521045519064141175213980602872069322083676869678332182243008421764867384055437098505796877426102815488128371719828312716419749955810774142384307119209165128564500446724348635939479995989358647422678619862909754499847027972955338067666293941862068713276510158493794612218625149528030358244086564925210804897290627803641230711693016505092085621747675605199833879177728089874188714699299590168904881329210019526159990956038411599103411203256771515815894948770186319639194193544294415260866739699186782224588134910032117796026547122462664228456914860807972211592546730252053806882076977281912654751798080705895726636828842742881962501451157716551777133981392844350100829391143859483768172946728392830787150222680063238200723896287613436803268373109270619809235172331805308468573304998491038071387537405529586901136928778994692545317721505270950397066071036680125120253404648045105985962020370232762228505534660138710625464240645588626198515725710268440752568085424953470886404739569019044774999457508201639034172448739133675042494154467119093586755916071765357674983944747010552478225395935285603299733022363853752786787378750712279983621275435077183344779490665284291456778661818762550612834731256535733190771493583561622432582147145346522553559546553560238260427639293180491714296186743995765999910958540024977869638618662059545247203639458386774093168226469714343060422046354307750477721628985752610914718076170526243361643471275766035107747242783765369820907449306044204966745818794949200641572391225967519877580942379181568257281743132538786292868978865297264445012419132348371896360090988061823330598917766251365808755264316385335319149469763863412373153826179344760519299593968318353613331508051996465649388922440496260509957800879398001567984372661471224465386546218018138430824416955243498684316154760375328932663757492409877583017083920483074251466741077174110135962846649240327785229364006787361016099058344236452638463237193170230162841720744936265748542335758626483339280047870525794604235248848399917969493895130162453475680928099212612965231630021815437888790861054741133543988435975715021297561674086145657742716321050009775606790017617665977722271747366011744205304726152231724977697907852795434247323174393159837431387560728537163579470291003510933714131545833540071709216710988594717175125929515652004442534613521795736571503269767166247938693270477192022465755980287611792493022653946270324472122248547539513255476366746342098322135494432116407447244394783467092896568448320432883526318204333297328438425682203207267662199049526966421893658721879794584697703250925760073750807409234413330711703273887503796229660229407913462598817716458191869012336900765341655817463372909691636387041862695708332180881422805999998755775201911531605444886675290036465586757243943662186742356565795025658324303954616213043224823999784691720654649437973837580116794002077563889771608329382818454745475169895764174803640412792684485881384312863963654206013113704645718048257844537190449687421343582440390213282732811357944469907757919366758228273782332210879752418635601265121364277698837676797901361404587647119867664260176551649318141786279670019329250954031181729798034669411439633805900183054956727192730413198185401537128877459181938131927937295322318980440291661283053157832337238476656797359638291417668165423350194753356383855120650950450597104504705414908598626213541357115296373923896415022084380374480764900733653008404700541544808517391601183967357914234087583558820736671182610871719316308878863402299640732343090549008818994793382358152841529586001130408955233880033519209311786775879319343553587813696803123156371179280761093967941000579089476839947643287215808116892260402088252957644837217616570817161163310312126388376001088817768079743941450775766668641356187067045181166489709832087007984673694457920460973899726200449190491747472679435817775003474907288250779731916231523912350187368366884722121647514949495275598767053400743887533409615561736536014718994787829075147732839591126227591887352324635746317742540396632588951545868413458327361265756321302265221617763945925830808450187569349494803459389416883714028352839277947627988214489589890884118396409008468759672027126646869064785453313738274757480128097060565196901068362944784914465615155788414217418418296573150471487683773734723297603511051143539763436395809650054804898743032765550741095003294692599434666550314695315004418651978645380737812116582314028329841333029436526408633767383070381239276276988660400355183294785457692097198426298644865842381702068190197905324327478109918003587260358298788411442445633961485244012809908070212778688788133933744033813434189873793146668898498505069370355174092166489024611619488014359067371055872533223365805832250328880885509671199870852688901130595204076520474776637399535375882668938938512697942933011809111789458178266936613275653741472197752519911780293620917598467557900663317461492868687895175661334209012687956540832733616494765212342454095504206042496305418769809151781992849607551842432843950281657490053832479629500176559486853850801563834948043994042577373474981665256107682601281082722088729965613855309219289474006660210524223910776186273493234347685340262903905487161443686941115749108930564789542387685346627322001270818409365539665843368560619553594350827062385651515096564360922525895500165126456490500421265644088347872030420551461119146428862087573070844095189315445096038803760728139141953700293484256727769537996749420078425759706735076210261839672110850805016272826625324051550834711218715247869789898099680236539768711585913464726605432979926191608903325531469816353003257641695238543031068754598479901470195082916144055713278199271976061761540969507292294410474216716290150080061803549651564596077020271221979547100223777362075789563885710083568639255585734596442906687285732271697411272646118184075930637429255904420991921818770119644029547441754498877903510709632222393404151848351848354746224308604594681930191866901158789695799180394936510174355237470865922127819890381603677285113751675149287151446980092809289812647510042462865707337153670727741061167811966934259967283672964142383233409056348694469057508812884087564995193915041407012553658084108744988685310123338690352721957325932551668171542609420211472169383867726674788415728890996597658448397174388310835910723478978501175687960193943606846944788351426987117381015395172163180228349488254943721099301877851425188141433426181356677222137842249494326581266011742528456958973078716109647774484492112673525943663174202667555354592495800159076758328939575057112479484333806731979741745481397731199292141291348126491386692440259402776230693440208839423974004856837479997139801776302346102489137653522217597874639749974361136731868042939681792289504934185482500216667437509740838491028320921326858972994182931193306747633089742481515496101797456171485100476275494975818797201737311088759364943340556226574623815973394913961041890797983702357199134112699523061653349018845409635461721284493227639496245933773943071148440802102845272434205651092848286000933080239844546873370003124559988533045578990930543843767538272487022562042271111945026397651317260402180323095328333241182369256481413750680782723981295356503795919947235162656097030923941258716005379264933775633630535324573544648019627334382506797503199574383704313310236784967833799996305190143759750468170425226736331736460985027561551408479880490686733769309214306133712279692170913951843322728957548056626191972372639403641295425906922298590127473705651376098926775648430237312835375016685944185968860154943751865936231674740042404784852066690832696596435605445287591788165283583788330451042354306384428150894172610850561584158469171438965607981219702252651853467487939347297172114963119345329676416567692871860477393768262942677423120437994156555645909161312208255728317838364146006258830852951560060891735575326933431972459617387934946823355669664612950537983964397145886281226278819068342302075028898038065245943925541966451038418334522829235317015608751685624102525511382741202028540977203722528390200772800187720366154335055411264574570095660571263116452396398921649133506657289387709724731546952911649906258203227630310368160961282123571618750553794832387573732241986183242638980672075649996482081146585345945256913347124085779173986078923395039313149274083938758324159577084093046882507052951791272350020863774584317172112427292979767988197136697273295923044428802074988277230212512056747314569496303327163004573020576053831804007892371130889318053459219741680729332075221173260729796029530297468174586320422329669047433240542555119936708172764384047995701478786362996148441137384342434686846061107329618858804572364553299259654621953341334393245817613437619770530306217706943522217865391525894980369593561618254200008855396772337699450117751681100164907606123077299678885356890159034843177740964689735657857993552500257223420672706839725046758299211993056345363583154718175974906227094389459067980434832523126980489957408259127262620616406180243851843085112988274211317464530952216363514333525166132900404082065617954458482762801983537258171753065428152585136565673853505062771105196396764686931016636108237377285530518403404512377175159584765816541096792888920964018307882060283615732043340170935492635479105629572377754826678284962965275355496508864311055152390665492318160390230442186578283793562939631807828768092319510843341037991342567857046109676597594031499980631156980938033604968075414628021619496053977680794604583790203902794439092801527660900916146304896913893052958493324703252587752614105330150657996387922469871652230976071171716213733639162100256590852777622662611793458373454527309870407905935028401615123087794954871673020445756851356566155565450811643080094109963109417030012858453144121209037685254612451174207663130183790500591419660147475029832322075443551711954336391982326095223557027059846195556311543942383903856906111395961113479593503621918271193958570020307337601698994429603984977207422782122633426561853381667450272888041770972079072931610206393490998990477314621101105876500809851998755683320375390013825449667701104558960520881197229094344993274234475320859856605664573706501972127810984940671545658271242073070147416539417303761906667364952663161797771001589718331377270858817523878625593877967011086360818524505566081446712641372093934304157309616140171725669530649522327660238259103442556912869815418419040715385002718897848517944974883745105117049845342347276794592447678477304909656998402248556022235997159431580544328454398350107348551959643204310033621182064119069133281865801667407865549621151466171914384908432764878768898347851334655821708724480931612364834607696211985662960636942122236564233372879861757849057853738202059609307654492892355119983037719308065825379963521663762465831324552684694270352468102939576872014102259839557130906865514247740566399192353127502677511157856252096232545661498965954544422788292037582308197797586144649867878432396744193912478611111161056580156101265789640930766095587762626611068937882558165997446655672575820700049242221404470729404684529230958956706090915522326290344273009721990866955938571548916230588692671405249632834154750406371235747574339976162210241351542014020568142419974685332181322267816810044017060685536777082585375642878017976419330839031012251213322722489763597632984301968418019688711412055314907373874560941531901541943693028978056792308620804990306214859619861326930279437125233578840788076259355949632139771823282267950583149805276831065458455799619417290461773123598066140529039735484723579868244076520610870896725889732393762432032254653666809951164916285735653461955138880728636130157448847081309813357554160885438964734051421935377353501895705496380043508959637457665212844896845336399011779006967317165072609368380331793446200720096146415465495602028628662656728005867408561992631051342436924374029702447709328207180734796342813952804623179223311279139094399692758569238593787259490815656928930958107278203266162158272282015045588093006080306773326124285827244925466811666399082021081406703751155900803930023729274948528267322374776569593321938538956384652240988504943013345691961754807396398225868253123554759391072828191814445638237005383044601022015148914961247336308190605171398839105280378777602357779593400602230455034642700296132728501939332984346901089975636489639103485738941891353086284561098890860800551575521997251004054096806166093386639309663808823093825779806316840394434105940100858348037822784335395310878046151907438242077169049865484429007692137636715570142852909308634723637488667901310933661090149131100042994935852968638477787327957754694291887709260694804532652354058542521008772750021978185063488279598490669703849534417159780614748813049170192948772265096697207487316854101440820540411829474367322635425340144405229745061551845612614511487110081610242119064979165900442053404065462008319463009356647813918481022832973265477731265221058667682795345619957107444492597375938208242492774537459637614018225337446695665065539053295250437023525324044557862966362117782846802612610837002439055440422169442568664178220979559511580785796540895692620249327580721362558392801011553711837155218231814132244346097826321772088526556315271708842229308222775778554122368244485028056328814492721331950466475717235374489549129611819644952868196555172597329955175778889326555436983574694334064258245671056793751133445618274877673710470989890120616189026808929697164632457510667593716690463953550096578811780265386885354786691233203074438267022901092432513900953899572703284998608841309801486759323849584654123610365205488232650637760668327249101265598310695944625614747106041784437569214787412346648804248549698352990557257644469776703126603421646114392887325473422602362200196464177983511766464354953464756693435753617924784199349546196193340568994669465549547237471024743999667670968273640496135759012321983209987051050023657478572113140791170190348965424117745920408287932384466882377830295376990535282847764362843278793208616883307643360224517498650141865882553584162941140962792326541965201792017674985233875264786152153691707549394532887327600318886597605746528217608777582478767912499175693120261881453892672089654736835963152769743433699587777711795761918497589368860691073511810356616065985232528282253370179084881012850752599908339080319554372455875989691971434326863559046877490576506353630168213085362640301138480845494587993775133603688296609408211794149989245011932813585087091659774461044889760337290354107040182366485414141452525245799473441500476352747712066161718641062173262481727020474082758993566418954109218704647466113594402662886249051216528331115046752626141687924736305439351111875058078961396124446786018861914848401608331802992229119258036549331772419557890760698109495188552304526862957041592779925409541664952028264475094585137584335073616643449080042536841186922081949305744650405619997149840551249760233247181569930404371925234740273767047646738813051657078598016435573382583863941515822322584443109044292590286144334792062310934590694393266749582946832926769294522233149349897530425598546162340325701873508652976107180931250531877859473638700967806896491810071772266762355425167067975630825615235795415716037887987202691263566482493851347357452136867391652822428309206597414879779006638896496691705451380364018073907920494177825245407815507724393178102894643931453395958044566253736769749622504563557673558345640350609880120713377828844215227946783865237473065879678334568349478833206962066379213493356194964792375538342442304074807271111391980196363189682841173671954529584300313162063770869699967220025950539840617683725169067146177800633333554818732463358023879334022092492362891939010310633549412345561845265638242091955124660481493901813285931915260969366045419562565613881714757655413096411635124557288745259041376154490171364795929186916368567460910904475057335549802045593440767449342637190314177248795335672572286316458759776852115053943344366235603848091074657672974655827514869326480983293042089056168020144919110947945105275246798296438327761230802523705092673060464104097707041435305035497047598567958863771569992846274121819068794412907038034384767248018193499376489214857773271641756691967101667519183159591162228220614967524390765276978046207803070395367992304373986973077751309191102114269020400767029464435446113622275311747565269795925228961128054979270265100330729869620305979278977076973152122963061849027567198693646292761916992283479888918729791276418991434630085488955406603069297852120646451022588438940162091456828234276548105917008825801236920176479336148581569668000010950583007978983915562159117648201576145965734736887856185766397211227386840054019974933557040738614366933232420717282351363273869001659609006636474098202342255087129740236356688394275435431338969836488015202919978445485240065056795633378951815004276384699210368753855459840166171324342004998361827446212238810635756821099244167994411306358552701859082519379324740053757941104002108290169811331290013465868678535886447938248177873553179671501713118453574940955266886052451518498901212747417994512137584199148766671444084669739566513880790457854356730963934223171573063072316421111553078250114671222032317322469020840234601996954038238455144763487951195297189785483656405462088143210683643549465947658969161830449120176143547363684968677605510525351092559637350941487535661459400478562371055699709276056293687244590100353769268103123061296452249087977496016577602264731878114553388852987656468125924964463528572792647482085430057456549766051940326988130853420153333222291910452092302851394493506964159349916652273410223521571969999553681218937666236808899182569100559632293732950439960299705455510525598559591596205746884222050191890422401170781391890145920529923243387236361834835750729670048150495036287953262798803682880309980154945831421435157846393360567231346170350467272765730027030957643305081709342197760643403134882804681281094011551275794088760954438611533343814114165153354027777011260083234964719317365220933049573727110485781186437672183925121816414088989058629944359237263016381713470537997865768539340645860514791147681357954303878052607381228952183187902983735501618830372745269458671591624515255689139731565030680581903203825661448548816306298642215479846341693020854961697590724962072074935208762167917532800599082172161641012491258569422761187291522969562237422618549608134252763243411867576322999571314221938537290203172844887144844592051157983066977374786725138004141623532460269095597910035447992971323924913933850372499752777940316960082793343353802821620319798520542969051456437532065266422742290957544214693058982139416176734349326620960500937897410797747389078161460390259747147862297036655031498232119832499703097958215923752631032698577085365720920426208651084737211386439035187216610845232668118993642079132549224153497536827636441757434598112923628465688819514516776240661180697396392278442402183222315474537468387190270384111368350991183371417460551688448100956242789864063004977333348348615567190215924785515065550587459782181461273927960195196745935626376893227404651200719049708692325599972619889704456147921792701632210733639424708541240276723817527434690714564988216100563619712367869657752994677265875413735788705122542333614837403658765297686068495845953120551632249520929979558119997972291154961476514348114505280263998223126943463848122153956818668450278065910034332708347693614801162269383865557486375166971216563563275999370761541550246786240419148667784395367524550413906122439989117565656954897002508402742701167019674565132293912181965009702241056934482248658523710354987191113970980848607178234452347476096330260684646566599640663032495793850289186871329605695532907301661486849082556189470339672377044087104804574404245792928342035259301244145185988281743563462151490910337377440262628851311044796944770583783899363317883975744432530822497501774100865068703371606501862772662078927374265212551549986555755953524865929078344925520735317052004096390784387458813939116343070883530337088308955803521750053776314745018500461465681879909607204159445924106066483920858834909391323479812158370180816175557777740192648268706816437096048189765807285180579022822676965417632552213118071916238443002123394838817698420406196775125568578621946545988450852118356189538177559152943077219104888090577981235458718866032474384133653062907572665065965050538009014900557329231466731741642111271178965733511630976672268463918868952842739217115686531048439121231770447959015298233341007600796268283068238359529243122446107132895818682304946487385625348982056187719337159569189028207417224751367591739803021643230102513507336373878710787851096689174170787701643449670554468006444727943768962015793939882083012255124631104366220898758953776815425727089065858799629396055384886021673590873186580914218246344997139300831325741948732917635864845003776050137433282583479144661186713111397802831891199955739050657907463771400656564128064523480670906776358999615574700815917145491868869868732219602642431150602220222446111969890359661788627042325487060261273749851560413154270921748290774778212438231821151978853989449147687856936767082763420722966438175244698726052358790175107103764206441770566018492398178618994404443102990703334398859888652951812664474679044694742624754795413423673725499697516609526852110568639244412504497111540392786182902254841249286522741593352120289542239553801297365530424956145268601032727501359335815064034753526525953259348505135171822290046776184555658591496169225346305091131702084098791463119635725008352040496670723780303924070139906456291432383879771322984616987130553496854904962400777348226987224420292925962804378654629503835622556830575308440732123940821978819261490937953786066881973037696750417504180196122161424419002992472933971509800117106505919837130947726707309797702899544135365941945388575970147407528672823359846009844353726092276342537643726839280127138974981678619561661870490845746572359611548625826242449682263730354105487584268880247369723392807442931778969874315400979904521962539927980973838596182279533503572501479488825368839022852139716442955784463910386568461507155520306042955573680761884847237112225778351487728674748469838752137670632245096076572384768104154853848797973973293030825693223624407170559895958606316113536251429500352877558703696730448397089268439953853054121407198651420399215705058009475525725644586781390483496991404399456956817663255533814790807291245121354436413589742745723164266963669821192488500162068391448163617714802478493125117211085618647278684065453235566383550412034866324030599775313172020504161686707881348559973188461682835204984682825762276407177437934811213083132270437946174005896512641284682485553582639100842583450726995947550501437358616593196149291822071201936415685911460891715300203838834085481196194261992020813789247997064248224500139203016536903056217110305318830811646559701262123280754781994965425926691177353132228065293807406083273960729366605961638332290882408526021997900369139605590999437703772613239008418559796028537927610225297503958374281458084283739508476490803709159054856482227020144771502692885546341636839125036529870551786216175338832066267315541429865653592594713285303766610736971858813568918598167005699794519448559472821421152389246853380927468854154770769427442846587340095742827161910975695743377763952897071601132399481814577695280205150425845748516937445164854630450612060264539391291646436680169283519921899639407693734823937047803906502693036885433008241911313029236681319683848527999421694705419354511979823201363649068541097549569447514030608709566238907176047351828157417687051530351395742162742197299686956587754933081269452427682864923690962275490319161199260833297272072210389381131692443049691208427407572484093984077558469475592320701461731073304825805488115975421519180668849259372741297827797139872815852826714056754673065470391958297757109281440846989784727353647575106327886256868382657351707744941663482999846653247410072001536448998855489104684343554452504556257983550429556017684530589713716908790549012255168584335021497748328365922624064885671895498255250063853276801988539948655816600263123479633086493538453526702875382595756219326633820724540763012809744243368315672934408143360980574128179039620116325374299252045358066441221659874959068719773364837190954993250788570254021995028081287538216692229880031346601265811652217904890028932762159283637332918977622902483878079291028562690309469528901759562860570892753522899938138173982955313461501569012935015841492935046222589655681327731709883320897445764426686865605045805449381656981640888823085731336622972606007900651035935988871992937940308969865370413508035168431427839804192780593695480769428721156875260209386433242307421379232829354781607948829708022381625563501176971238682553991551119813251430753548141700211701700945998711150211817306014163217795634872674241627887242060281286982369402886751441307983443898490430290705295701543518166948538364515339906695625902314252810375745399228016654432167366730117406085043192283997195157822258754601556038233367559320993936113653280310228527467061281032949848855967917865964727613416091852724783374918560875558725709918463313531924395890109848446978916470465789709686369797144448853670452372411673127495838421888647888985373734085381278794448492884612657296546231584828132576844094836822258391345439461054601275458849133577773627966025051721453653679583935505900258071246862170477678859646880948466150404690605335730763571999739539273574236312712091413693143310468338030290362517868779993001666524888595412590040401304593427725922783761611112503180733872449356951069189348642433580619120901234528149357373515113816224745494407083944557663493564224485113204400222635112219295182558345196777412595664959610518363963514342003312231726376136050260219523780883768175223593263840456602651191053230317799064691576198978237277547632830222008630613979751429541642538726083493891865346564186325219815944920393008945702118556147060377585585572538562231663940538775434484617546237633045454926446807885538728548894578918895711337503156868993729663822841689346795627033255747827332062285270284400467633547512537963383766660143043267210045657667284167441749068313692502505234907543348331987410411408710026947886387340965358089253458681646233437603530632602959184909662632135412901827534972005681784232875845756705281789702845239457564633055535450134514617270921541784781638090359315088686504626275257558238783109603149301524987089160390985833820285558970247560998346543690495957856320011989152283378345117164751301695977162564951512893891080891712250170200952063936195735238719795788946341216110554122057887948356446411267345457974930115686459373965678676373600347429812042551697588673125738159669400566745918777075825769889868036892774873854092290478512105595567827752389337984235569033578039419836999036188178568226355040845721549967880800422526245180425259708667369808629820612612600048845384675368853696385433200938264121955645051031171698992863409476752233378840856247337647802692548765866135414794204097164281813880511682664549866843658576707433532765833080265277009846000740834350648036551492732355609081418392923465619020811344873973824610200145377881852914529952795015666648704809106601721153485473741021934201896728613333630325070275530938027457218984904573164825424266631560588331372856880424489464814504447618785382025909330882987199303620212942196348995753168222435392585649764552846836809846742963111152587747659481271446623718097355485417332142546142095853360673349004520685230914375320374149007617902948761004736133731559728137302145788625258884463305918448772758379659126088555834965099269883685236660307982509449497856567458938090592062031343020429815223164213830481974266930135758438254415242777778804870566520082938572082435861901694711468047627839007370949389819527674951246189001302741943497535511744857467558415098350478363096265552469786691104895015512230314715734371521689866103241352930253191360943365503156297495737753397669645096193828455904044575510423986656103624688652527457395872676480649029118636574046832747639045552773527489821222868081059295359091155961488589821296351690412775424662949876281926283277711170917382934809317580545836405687688868258690224589257022295346646574786187983972984175462191104186992526481330671751949480088309276238464603770944566199784010436257849893563332688227415639229073423767161680361223523073280280252498748213885164500565296926938917500492345850905140659091557939743015446414677348385048719877998369820911913891731137708915756550391357702850654890757336231446751749011704644505360053727672844295721683939097320311764434190618341693857386878229284453548387066544807238482073373266073219609698789423329807332027450804607952480302014931704140252601350473824146289958063313390732795365002902692271666810791073785613250307958043073937725088290486004802792917727329174434954680151486611919984493393133841858527670973105981087699357466890849503880208152049349453795416767845886097729989619383392696999304766135199841296757507687273461684550545479295402398598288328745381432595168041513846587036186656068134295080210153541872770902452224979540829643472465715913316870872882238898339460268082570818283491498479583781413396018920620487309474032423092994325659676258016588243369564542575118158207990019596586405188330317167005899918946192478889090923743208600649616157643025717028275665658693140985550000724641169857869679467856282080790096473907795385310000661320930936045419042686206263422216344185962784076075425046678024472404700933669567917503907102761665385590181886805226755502980395406369040046560756153735780406698669632318823871585658083724647272200137954895694534375209749638868325285433196721604559965483478607399514555299264305430741427321085266825846250732768965905728910974532596820108314472259290235139744074882076986146763615585840759669300721841445164066476723411779546890835174936810839481851297586811261315068107286254868614030955459723020277274885735565834541675581572040701710851920983986713053105955859936154975903371179407265605603339705938100597039274031367055735124959710785818974603104263544352333896888663518049137535020123408321231699452154475871830647806134100113892077188399810508155996532841593349461502657664373515483882444217061927374680534279889478621042075153709479831988206482072356974168901966355481966613435965413495892089881906280312757307086300796141275915691487956591000777734087949919488389267918477858865158549432554667492091741112182459489568672806124176785729426951629380682583111406040813634279018453721399167814865299388781913682105641827457379443136189240222437088762242514656348072552664095932487270668769155270621069621621715499258640688937948987706561204659253650179850504934572317762382651269189656916225359913169496938689324251758103077130965682868875975468378175892802749551336258941052884842137166695567196145214497036110343294766486759330869995301049902533459149431803425224975197358644916016861154825387241992906097726885749884454050774937342468078622925206610861478599140294021244355878092797022937149031011453707745881491463266070323552985705985289557938004779725307918638499717887306282025098110503478565225653913585212536634968921504809607876274521284412976077986720513176276614669863325254345733329842282072052540316411278913769246091546883004981455835015708938154527189703250523174298731186333430881744194834380744363530813394420354694592699176661956595173344139040472843889150527181508516617572223463571286165108795212700929371867005715295925897181788668860641061336439585013542246428992616690588297507308183663915415034474176754412833620196331404430274899051302527004046245877754936969277751168671939410441518632050677103823372206908530047247327150910454097628616300189916567701917895385188234597169970798064110813439751554028305716042920187211398703071819004602423238367330640470750759619056956423273505622453476273395037233170113881120203519983183423778016142368855304226242356551359376844589326307915874780326566379875017139404332507998149119406535936735179934742882540045462109894787469020889512902207836336708719049211148713368701378832613293979942620120883503739494230548979464628733079645874839305904503837840671298904229815213683164575236304170225223750012068814917216904542059073551104496969589086370652046578876434123047360043152200943104278475139023342661132750579663968336153240500993588784426746491102605915112970240594545428624436819630539787374459140881102472224545503154168072884029817137679124183713274326136990463699338853618066454260263291798877673135093482266409954442772019013372232575892663996224037430763426751380152160219638245653468854871304492421437736424615494341272957827868750039691907460220281188979147399157156325444939942859473650539075530539019577382460208811535888914709720376616361705628680061493716625495314246694524497799544053824991414431970484619063563493993850095803917502592139060974220046080818710333034199355560390061425745772291185500785484370008470119016826043272687385971000147031980353541345055588674093186211325679685361785282185302244684609208519782403463127522776976695691954232642228607482454677867824307179912972356469757109768131801635822416864722358720156618533473103589085973852992003709179851786153418444406637128353031573484512318255227264483786844177063162850065887773964480624240448531153422576851353246013151449820799217419184400475710621593237022003852596382378185472430244252754659934819569396435638622376410235508429765486761032051535391871263331757410685378680452429221527173846824058153763899885634624656566756222134726644165874663450468005161100961790800031876563496933897501972364921516651746942844781116169171954485067070114316675829712584987455958048924799347699828932687170569646437173076189335076619788356523366362945951860246381370491762653164047849839770667805609739602258426908027860213879372328647559296117678263989345273086290385003533094413612953608283673679604486278017460380566808265189805876905585859059720058163951785801227991977867915799459239184765167872969733119919036490782899416051814287783704194243155217887082272246390444085879422225116820808701174419509962418178645356502512404544803337799215693384840636864525794642364691317153851316293473074043677451934272423088637873274850577395909803293898540801900307520474705962993298535383897701504977099174317067305833890376240868152274734193205941821163912758147535295227669481629466510645011220481811435607413595905176094246363588653540801343588514825794071677118401581202377551101181149201358141190743703162330033243698097590518606472511890826057336294537722902149080802757628222870908911676325483753072860001735519116817531315449353221588895329599599887874454679660582264055076936751017056368348404124682871905896633146961356180239776303440202741581152376097691488764204783712189897808619505995051806547630309348109341140393756439013143528633591441414822982672875597052545345542837855072977357473763386688615610892932398329869133597100778896350451271389662364291769253386082088608548629725728625409100789673732514497030537049277541815326064009157993670449600981799402044673195572001304464319897200843664225827171457455611549330926736141435505482291289019354661670760683985579431580693439599427640277201710616949364525371681666647405229998915099622398069222279471283293799800187024703404552444738928934108136620904018325858011674995649106255064357247444909445573501661554741223857351392139119865823360301995435316670615672285141842305067609880106319877497369314461211299266199748931456976925342663928088337875014101902803878317680674005033022793168378563850599874401827718249532252872464202196016090095103468923137224844281111025025267388539870983164794374989113686399574050372010461977917595494453785798064520640553342297543944812311216523454629651997454974849519257576763200121077461574650744162115134977687684120093614034583578891765232782419811030090155426379663757678547812747214877289049928832577946550958291810161873472019349300446687153453637366444067958572289536501278007767811028502425908716230701937388834266521383201840010211602490281915388177686966883942509307739687154303867907687921737358561009195127068940374665443888668999532120827978952569072372958879260671222450035294449103730536705993766576007113549148743667561643312748081824273574323498281978936484529410893702194860413615916640608844983154275654900224677713793621142262456080919862138462373776683727373996779801807913232715464234178151955355140403587393447288237217333310715434777942253221573311424057793716645044067522033837651334310846570880128902725324090740522179506222729897135074763219975966621709925513541902139438050294671910803896568952303890595381497561391329407462491973016888866183688071044575804907722414929745833031018701207265433764379911047016298643221194951503442688786836416134921333670518280800780874159333108733247835994014640975733926208396469459924669695959023811243812532975838375972707959155164059113645163217946973413462427054719378841989012456358007200432895043711808284029957057401153094967625989690922089833808483451044983870196396419857146235701192993497041893572857308912339188338923019127232533916071416141147263596717735963715212572129474936846694066107361039971704633122132862168204481401816420934502283592992049191942210847150613498909411619826346334341661800041041301150863743538859201066428580758806771765573954612897069431090622502797957342075854642868029353298218904484761780015109069422012833736285986925640411393171059047100187864216248752327188524726404590549642111695606461105584465099917409656047218478237931707023428269780437931805441721092851591528654290377345605022083272155653606676416416550058505957635552418401440200532842991693934089330902785477886282872072948780525183610407964465092073600807588709772582803748224405087424205715867075012478667867934628847701196839371702286553520368867336714514486763705628064458273077983858048993913662340831321156461145955245962282386833117803073615620214222689566325466852724742246024745986548153351092598200599413563841895833132900299920792902282854387888206660401369292586087634050402248365407207015587406338691744092773293308107555153977808839451192473244432774499859653733959121787291503014492795577285579923086678126155373021120514573189528022977690593233940021019764315156622997995685415454479301624062471432745397933436662052644927740563381811475375291418225673707761885393246089326732161268164217608044352529605704140715358447413091365124812643775259166507221639523277741150694262436407767037813461814701717243766973161423127908833088571278347873656297736509329013577478649543362694575446223980520806286953645795545878787955366904092761747676414379289562261891612300721697799053694570109729867029255111778935867141699898709665484267236138906832244849306095695307178786194411029972721641529987555577886718363173863270890139921793358081895209466790978723927922963503829640151375531182649715753669705307381528608182012273719398172144007862356164489292888670887264119061679323359096663062243890559906607138233326016241354114874824861460132749302755330788825232085494654376737889718708442771550876669186097150605907597596293418217484171037143785355962887600023139127221824767458347146517830236452487846779301426812891418267589579006990926787007939051946541314964904067029249947341570965390467550331716220344100850720963104431844782077147378205335613441686679145791750603863491831779744674937533106929900117336694985512248325208825982854323519588682068990592274728294714777643654347582883830258059952568690957114383400664881228311194790911699172377982994024564235945079317705370472761079538078658138360886899468394032759490296178185282030162228807241121413219215421861535026256434659270796424752907206394428704049102110046197978679270912109511112532563017439819577979479689280038051415909629439566397572860628494607980754188149905007691459669367911667581330754177263055052975790016705221869533514594466869349091423404484261409023822664347161410874361933859672502487375843174015601935393501654791613716583844901324489122054807141289067993565764888399791464832750344004848182350486106769240631304630381077817823155753715484920364233213730142991756576342923427960768237605018687554636026365021853332924436862171128595502501826331215643714398967003828567826881264750989620036602980619035868560430489443339408342507866422127185814846884358418601042781114629338495423090148725213493609354455859116763023110937631470934615083877961840488289119276999084791736040257076249022371732036422548876923229720871431610958312035171079950736068520909286380733985431339841755771038948637047084655339216818323347959650617107395788872123710268602470502612712989800842721371591801161547221439967877346049060233098211507402514960910227750284339634923056703656702197151500655057577399077927180271911309918942213321721910448471034581949424681790107521347762832368166182239905584972892123167757958134621836409606561116095366629286074887416379826478777115330404610719506625188084456523345608413166200595200329690321582707358308035694741192291930875802771592220008499060979819430097880411627774772912419100573474477781110851592338723616687648536354907207202007696954782313026823366325525477205763164645658671214924474313738643627531533753272581947132043308869237635436436544847811198933531734400361641489145065255282866613592249722574654186307272996782209169750280349665381456115592495801002936404120829135803245433561783268431727114663126015716146829313304679762683842587000687507790685031793160160931216164075144114665900925062893886718379982087115897760087818736542970636213635889803533736467414006161816803912231248754075272829987295427653274040028642420770089335154597161383288493105683437506748361049971524475959865144133407718229582042769814068637050128641543674078009527991546029793753305117573574146888855642225708455252480828507362965066069476144496032199658876449969945745549362476668667622544975461155593198944472409233474939512802334152089323879890301442065986759957183673652395075575815564702614271173448662565489165042613156484675272361765736323671104741631287450137567294078895275577246644640654156282940130125073176490147594681197001635934371457998426224192226829168475695256800284202449551799308599021406221773576675510121328865186868561166427346372991579535114302933556826351368878988477763824213978078942964610663312631523460279800293947048071664849859167795354941546730464843242849944801697857353793360319000789631833332803964362224280560058179501411540928453749319110853982584956076112941341932909719200778216979279939262423762837026593206374457132604242158684702794593558501944905534070267023106859788736466994458348362110285755642101541557126069297242676387154216101684445953981160617577513105925243495142180826036420974116460572373410686030813878998970157117077709783565963773350465648667411966466872244122464582284881354246384676223887882927185616591110446516769721211550140597680875611447710062828148725858931132326971864785121645961127704732614838625841465637599892612296400803932845638481768367691754672139754196005118510272700070033217692589857211531451318637796713840951038443722329798609275915782052418954514599062461572256810392032493108823309030677866857851549306424924198492238175303446292865175075142780784447992421468592881065021281937452805673985838029244482302187167872004875574784289892517328139515059176877885449179570386306930364373299716825358793796204018350358942768672878935770501831369571868859681267037285551758638902411729665348162708955816056209417765098121058629450339605065455567340967134276627224726536033908648120649496134057224238819943251340819411095650154058356172373213429520726004380790759634614759623963988902092281908486438696727639002274543955348058458853772648387294219719208118216518238411794447780351578500413643319747218011670799298128687418841012970432437202282884608514554128987296137100764148364497019694128817951735126720022752290021315982910178133106843939700400742164979165693789333620060593555959790474242433565085218594666941366249069405541547316210250030631973978744155227925116659086545732852926940279424722452999428421322321114947852539697814162479036272844139026710774713512807801412582846019052303313618642729941217954627044818242921967621635132604907324272163030973948426014587257865413647043365323178728189889837608664181354859509495956460744541722570807156315634300878454386812060072543862471818588866819877353156409609217224771324562529063832352671021037973571450452424788368968896053077334372015588266432539632660605011005126280222052879321108671861930848781150194082695468350814641121360081204246271367953218193626484516936242153203950319373322421905844895634625232866106684000830384612160304790460747370846318650493340539001761572104108059739928496056885785984798783781867029759021625227204609834684307359480929098835109999309141117160089966311909451167588641985670002159346515576565027955526029070326973252872799173260820016127911462687984296946502785018949835726043486288943222610718984547934318243498472676397209922238941296002117280038855134798992192168391964321671563237874229210688558863649112009117536496200453632054567763533525740222218058499105362521895987202700193574640433509659564919514693848729210153674756496626579925787384731624948752121108020971916211440947375378476890462642703212078897037821582975568516963443136908190382152507416132786466068949203914212125263527676963332746281695021839675568534401834195519096628255751900288467266950951039336017346248552882568801094799652281068928327218233051409106129107917682000488388581113191967198054484745212225839766031960234535960444168708783366474378280890940433919633317127871608727575359032151558381581977200530432604426378562117313870211218822559406481994145332416813579324297942826235726454695782331715963562882628808045779671597269660286603611704662144507017280050477322205574186155461400487946512754592193681835555896556601883594524622827212051815904459614108061814338256275549906088171379171191799129246374581183326969478159943990480747804547953230151475000396396455889396605812504218870035814042200910221159670312308162774853639827422628015370217024067719867632319246953504116869946125530359099267601092395139222530744210021212716564132299842034878159889998930265094398300342533703989466690864510210575395494484046354446547871729196500729363399740814728403327472664564297919899638178705267423023314173979810168371021092960015329008448015004568298090255937332854848567776929730037769458141586745351970624476332883112100611313274873887387298891585853593915076611000398758884587725348791751032830841572475617051373334403226173178241988483879868104002869843474336865238543228936074070162462749361722243508578549866935031113909836442256969759509655267201691582741699884804955975472622139375982498268721148025470573057945384317700309607434327636131909308358192008726186723870338232576081145418210355889604441174273367786549604657844891822346824135927564203459142973223322104929154521188802734297372680590251409838811829378903052325286034656427530456002064194967206154592991851825652565560387393579328734942323475739255995288444115095313900038594841608564172116560008852925360172621818957143793749030581851079427446320794152407062223277455312313845295231011579501119357369143044712935070812883041004449723683688776274802663860887303021120535925594398854540950096444842873800494848331486445528644383344568812683232802837234487014221438323313124003910731184226442605540091051301873011832034107388014427125614172698564436011021973374568145724446070108330608061143153959984731510562151521465147219925020851496052479484044875267673054572765134920337622843886482677830221992883115641251458733477597981833993545877829045883246024418062139171655412169395236057925696877904688810613704068071325314016781281361580605014290266443641395603979326794516199476211389210751758968735456668709644271880653944905827203741871162532905746200865418841456639460699939815055603895027702504420296488979493584344776560507949066639829803453349194176334197627570628752357780343083337598838515231630817858360090158612381688390738407501373990692008046971239454019649618874367748706565494640862902900509871479473381961574316732639665932073840721150277156706080308769410960649307353638126139856885318119940425589546391338752740244386744951502876112273774046899069322221280242304254095696046852965334083160930455857452710558502474031133448346766172884455917962013953114910695409428921987205438810998503383748849438874994605001363007921573450596432941057044133369213502957849184231558014087251587615088824635284743056447500123287369573988632763791392534287828221259642365909899396705259352300689005351859516623930589307699653437564931071610574777406027172980285915273655621336155484212656805136557855790339357358393036947571867499420200717031828092765865676643934850049113435322696556074117049445716006040590383697317227934206918551324065284580930431298414169264450042164835272142716217908610461999644807610980564578334491120270719957176376056300509413557541285752902877693455570822957097129607317237351686025067167036213890652646250150145507620524686460245320243774072594224723421494778056972294386032314159184391855848182584692519813690123137570290603324839647228582931828638972096478450512207725728582938397344599536643429250083298365654965431024545207133282805430219048805870548134547909531642276514341312491734559178773778627776691926374933408235780906405086399033215923225543445625344505367044792257504166792869438918031953788807812313463647957772049613082194668591438868784184243326315549137658652242976122233272383541148476881521788721295218729837220019262476497205290226570161053896024699417182162868804341529752429377244938959591602553596527468884183023546445998660548350090391387578098081158877139284947851718810292548902177876737351083176704091313265906388824264461960688031957007084540405650815823622950616063458551323935673067149066705946156090381914141772137018021893892809939601515726368317395998542825831655191130363513668806683020312795258099927810693017637887710485416982199709706954117329456678691504184619635443540621514332816820868808279541616830490856955897356801303698937798513838903914588090485864896829263661583336828338032435429568123419613447974050792401563175087275905528999290406742814434617494984376602092728249506930878589007285189576704284627730266206765081833481810915040831169485363871826281974061957419003193878250654947699985338006772704739504153969418368455681446584679525421934690428251223877655318930226815976919050110949909602231634496039210374511692301818829514643327720221778392208912487979484913861383903145884686016092031656627347482170991168699612299140774977462083163614874563270730035381530158019154519731963899029190280029208686133552682782691187467833357350203515604388475989304698256952575144766681044533840235743930518459199749668469084283391924217184635515720783616249854126243790119493414403469965585700487110508029837778424571547050031469037966605301316974291708231114877069497442302950454321118645072393797261416765068390333334791849587356327363221914790430276053936040972260204911918038132185535867474990913869671936625877416809325922220349751112965495851661565659715019371642169398141314333049303292138629978909105166122643192404531390930243754478020035480465296441290086099814947761153035737544539109676107421733514164274881215041862278603448474957560084677715970824760378956448817765280640661441235651644365344665205140126973559992103673653074309786413163807876448935385476234852627150179245402270676682318344484856468022781982668872993010772042572563297409213215995723899840012555943162586709537365809984855760341724183721716921435939283048725459180828738334111585657009116386850270306601087978019342083250891330180565111340589156383151670213368659662911159944926520865185878386935730603694606149414195148608997063703886476966285210825121680535808920219243763631199680344995767973366541251238230610000899549422368144463210228254540368441359148168691630051257544960416025501463688188768998506093287332989225727242124022606059798599840523192136202739315065031592623983295286988778327756051075385852531653844739585792455320108658573287508271519940649021002759090957929166029722603889579775493848879683159285833272731985140975615552041380815671706431855879798886805967654136610948906211824409753007119693211148240134953821576721963505875855009300413740668282637883548844007079059483410618720887546163255895879514180154788512642888562579725394250573067881148040016383815323123164149203971203424582005406122614432250593497322396676702579986400849967131474871248431810878529479743757383260806530892328690895550571271695357837104530418508875157107747276428150814107082206283022772402027513434558234972679057249675726654896228731823054116901916633855655162694622023152293507936767029570092484338824242309240308615707796911162538516612353472298972189594503238139819472907867643094289855166992433092013429060979607146903036803714214167291860133194543597033961455003558719457742298354642823218525756185292628946154935487910003244411941099387180911424083588235826351435660182641024095524538858380951001685342300955986922776940899525913149682041150923177867035858528497962637219161625466937863161159406172381856064803855203172142258896358313579425980314679477184554248451346077372244849474285199484440253705908307635951704083183542975345454003888857945744286084415701130992987603476862119414617706488117854099620081448624696867822051839393769805207670413925139296906389801174875568886573537485549036808531728163858019308803944365403569248342436757492587425104183264170352666550884256877786237848896054573804784405614742314550568635250123039864475188421940953910755315376132125446256917690334770111654968572981614218974670579841357866053834918422927392653566028475819792232832191858093603239339153264265144133215713053082924522673317617306496378875827082374516818859188842035022801920695539290250603901708386434702317504545674789583892584589720376105784190836327255344118351154375951238423036149420946095269953571855898411792629352160088390072435330263983284290683297492889969535579936663529810506808290876511205404317573321684738092117120723729866739998187079960854244538394903447932146608506228347417415490335520959390705459306443501306147063766670995617826687718564454496549728744247604024685127861868256969189669456141159683090048480923900703305986845186672115066887385195234431013930835805401854818121538719650074191121815098139836794447019361028457817904643668731601514267695135404589529085996086844189128326498477117609592538411034259976278216815516669758226508853421718197840892636461654008434735998400015222379174471191291231059297133209874630957833185651410555413558102401746251139467995187765633967701699680294102294904137883156638736743164057813812825531907314754716064639878534448017670247453186827060735059338010208716287355883978922626923175803719841211195761321703692596506957520333109419157309287818065690553178200159930605009699740801401744774296183925037674757781503733921870759638159626149753941976999018324773505748769876163102644988245473542683118872972185326619424488469740182839348062738476722253372260912778065134740612913057590952003099507651888204055616999747149718483617788121140048015395623783766698864120951314964055686217971712839786763310418724200774000965952074252291955025735099670531188651026952082278292628494873525441669482391269543547157757309764883431953416013901834753315215308123935038170374675356140566456265862388059555722862099556906119700397831112121722917218101236356984938474437073129790495354713994942171564325655811714689500981790567983164022992629728617810795084996389979513798399919016636539128431066196860167465189785908527885460102738742655663071184863195981684592271431054323585814221308426206753387644702866639301369513942086257981264558189580404276084699067327545264169227394179845893767146303493135281646184142912397836242552920223421650541437514367913943626512185558586182115999225463002793570999211552827490341533861236642072517026212989044339828766933886372568255248453232988441277471893902002064835142537339978704227180683061316734846826243496901050006354611294521409429135954535100411754151182107012148496137640420031293735007681508780966643032108130728311893959948049080979285830217674336231329756875124557071022578000934672151761497681270755393450585063555266485198550641489344532423925667681587979925116500527823552230758451659285305420464544339704728575174148458883899146855643918949155125635912301195985193589980298029002939590157790647093915918856067712836109960907289488113654096902399831797975136493725841609791397745539873814989709198592280860511741302744466932021142870128360302772205533743958675373675658055593454779695864532759247135964475957209585417772327436018103611198118474008350159174979292987808610190751767767002912360240303102184082816549977160265611206602487518408262315963526675357038845066148018394858888715793846182457360274932770517826229811620871298372213753433170622766080952012050724895673969020171723081408088403658883114075541351477387100684549564766201235585693427209306644224870716348752802244479947857677562319383741914852993482632264526076026994632404779818827619724630870373723092115342851825651626878293129084818999821833237399042487471814632968575988660661961014455917225790848434193829952630386126745222916021089687493672310021605561837258266194907809051530024493165368881754865426849690869619303105429306177972778065505626437971580198383566772164171222793254398366630854129667890416212460352328329667703214277817391240185319787050650043215340234987049450496667987461995291680437695092249890425431673493875364205462241141570418823403881454599943018908768422368335025586511599859824737955873142393704065696568849020564119124715168870785781467068573151788147576103114482644448181416151467267536304623529334620149041258041030187047011182070002229107640767152052193254842921174994084972835349393407265270428524719385040644801222713487551842316715888069104896739114548599594768279206429279240141111779192018826924619404421450023084679371073305699430627277529754550096202597543260550394739934966095444259269043354702436122248388397106362409354522640003759860814141673435558678380480517620161965784649665796263837629031861393283462966768131635837262872492114068258179850166394881781984970900186652288529763684127649131261525910684018226522865222697278406036433060527599072154996462454627765315113656174029974646289913365134783367454442462700173775082919195596888142367542097732823181782036087934823109576503099703845281434515249285758360743736716373729569866889882921920165548509698290102674306339447845276328320386486359124661918828979014025109247287828972266174640706699111024349540487786113087290488237563950000533696405948962765114294541338541408050736097826671673284037785973130522309897593391046358065213249133391224587049063108878167975389651391154061298926298165248577248097164578967603789254856101921506367142744321807403333048990208182335897942231838998318834199998042529343576578434636699430814297925326695501208493130683673079160586493250603586134124102160977161622386048500740323095620057581866065965548935743038139411730362087948652173005010707679841333299404713686118287568208889156060802948119600599896108826426160948761671563678597452886041422361483529286401458797020154255562144496698960260376201313327403872541473552984222002808231555586778290199440415584997341466280364331068243379555223054299658796523033402610092578559640447817426267872721084729908120284330961519955054752493853957281983586098768713845937016845423018352697103236404973658311967563472335416308702268101527254000399924719655350110079573030095717052430933958835873409480610042782119909393492688960586913093553391871740073479038208793511624470478375118639909685038724946943830095036874612976175107640601446953744693405116810005881380719389060821091915478443867978320348853235111753473098709511485056716454471817137334861552906011019195623586112582849156110528531117839755144145865084896366019919353280053256970774038793926086659185607086956658587417619090933331423178462185334258962380722141231775561892769966880177212447641749634080160264883880991009997130507886716838872054664459849845504113695717601678634450388656267147345998810206503011714303261670738860453706181406005437701275481074225104459723293518130596322221752492688490714968372805551208597560914009099002746041174926410841575820294714215954785142300447474185463936040902124546473801043464424887998744448043210493910270556077145595380528782610801388979861174714627260053164146433700651080904335878267273724823292974946050544958392243283503077760313737088599309628693164204833674360643801694363029580981344674548562796974571713807923305469888517187345925795159087361470214396921159581324318668770875919454437383676229310752019914616580219679480758312836971534213776399140782097415757283606343615489607215684276568366838481040681500370139856056790195588598345552986697212971798407056797694505917638887733094096558244339942661156842087883274617241067428630974133591967896307257670436684621175020271276145497838046578688714103140694940378704310333138099600605781888628515199364106038341089973797195690561538422265268430737297573088320965531245897817029530658991829794444282772135356215932130024302250794706317857007106270592272583252307540172432967385939501395254175229518205058458406693837845998535860733681035520128501464064742066522107705281590209092674561862003126492211757894193042052823831229814064230615727999576190358840629622961682387599313091655740875459061305587432168088957120131691565058138083462382231226236975368475169639491077012509367915264776943585544616728822329837975795982510580424365170587259022132160084761423930731739620341264773850299196581945513496367921315487099971477064822584384641013692625895406810708073430600510368158115474759802394957826464855426027076350267752560714365513218110019602144586509899534990293436121718050435286823305655147346058886720227845027387970685438817371564108231460188164212699793004231307977010828551385199589785188878673135465433590874641399268225290500217962808549231250163459572522647291487089621776385405490582682723666652309977902759944080194099599778893681549451343650848418281941139787693800281508968848397304032428742920886578270666293660094403600683031617447150116826731696022840351340437466014573113418328126756284712349154161601336990528357296321553088058112674501181417871475032380131415920760037504686992628685597813279731198728233750890016324622012323239621719745166911583894623779006719897318891957820257286026208893938353884629214201196888573871305525901771547871073532185671845071606876422696171150594284822706848520924246348341488025796637907989571032715641529165804211592312583837236386640179331385781088808544561333554850824547578796540886967654785959324147109221704574511863228389044629078242333021181553164360478828557512316620074773154418623608160519006679358374110422670196836040678376106088111046964643801440356866690648730613746888498809023947990085237397708279581706978556850024265948411256427882264994659994828803266535862519394117677840155497718218045914810137286029531533852746630701521446258519712405454349254099564075529591487861648115887479283691619857807463848783734120927791151894423809907819639247791567066005892255841791658600744625369311515692945990371779471185990254013738068658850019930712113645357625797161188537896881133220966378552358810508865768800673492407090580388903872376832222773474160994614395538486853510880826823176915933578475787749540765161886362742155148266687058279930232936311451152653098688889270081846982332480107690487645221916724859194222836017598161756775068730061768548661634550580718375010010137096215722893888532108575559950683562465106854724060489936717554260302216729927931172726037810466699526662092898230260323573445839503131688667977541763555231211387925317337791373340343073813497815245421743116741607326600491212691020243068488913094280569544286020551808919294691938076173467962054990104854007590830518869175908710718236507326552460420492469902848013619346264823590983075983615543352189459118732785387901214599514962127484219322025857468860585325122365342529392882775783841753919773167278519161829169156420853210100552933976388125114965523518552672646803511890645780863524766680080217195061572228110825312542382414257874719219689283426616097345377951626450417366269019024814104940638612544934989793222248405854093394414233526738546309534154730365180384192353467674949181520316730552173008458579914677415247438318733850622625374881725985100181806079161841507156742584931197282600429613592869896065739864149946836408719293495195723933308820277379939115065665002255495877311907449838364178847894569510525725503993077536129103906998328462522354548787883739821719290289196462768374176557831722548951208389247914115238825172984536306636216791768117759061238750534035929449796382061621530310300398946373842451756606675248694773483579759079933273737689131871197714720473156701581750118014433592693103422797548110792371469613196524529135832707994146517332579944083878905208402029274477247978465811469595995515737730631304141660849907207010836841394119415190597295692559419926813289775547360546911311953311223702106734711551181849245530478926700923779327306819795117601428872000850809152164244014278626360096370301418521751346892939424104464836335274901107296100568708794075549291901975042026315821540817815168097946113686496233800829751832801798572990857755318877076809405799972959983562422995177294765599012710162938440092181708064366637408532375757284972745364965792644984767931402969387106899822339434184503570231512363270041389682233657116168215068153751836946264870814933634422928992867869651511295468993011700011329352021347489533239969767098748206683234206750150399280721909206412745865646254492437667318454081837410991922153572357401730852294852670217878864375491283188836950618086857382985026150352167947279323166862447864275409941851183156970009474373590464088829457072720990889607648986795856200725066248798615313776370100864719511804355698237130272686644234275453199657115798427996170314523362190132235655379524141757641301857761685382135171833357982984766990504355037100974948713491057029287263950851591684339701461317624940224205392102827011787213834744321636865499901352843740023219351960512728297331131962296748941127255792151857443644887906108671491167890201401808250937728262590448174071097206450512435887625180097674545668877436781819430718511804853762935114158050697514197008043515563081407688548372375517377375399872912089349311133568660165851883343694257913401452668540462675267129806797238572687684848136106815399872944673921417362088458883426194467549196808804984041399959098407297644164278609051431965835708754205503415249596742098760335852487726545176973729154671741957616486621764770448092057701594532189397979250653955274049681843344664161542277957562801951693050017615121096810333150031972453924408913065815305476646064799752117789923663894475816070726319101950473786573682939232051996592531356345942799818753998830738977747838188101015826507712421588016456676609839772141533084517763023609381158151459889291648006759548377791261123286861019675156239647023144804199135361217526093282361062588995408843370207263769111374965451687492646712503886723467512772908847588320634322201153354377991373567758428706337587570039357315299590850245175748294241053289498414122946559285435193234161503844962375897120855348392780500596483258320861377957799516932083173321321589596195206426640710251937018940443224530639842609208636494719705108795575589790410351749472863679955177113525786928522438615120684800817104253519688502922886580343149458170480302699338282142769424939335439971989683570646458095468201056778308956478839844192952412054744274770830082182745059615326939899732626204166233683548227907154821585327112378503408246789446695008326257773226385692203858355670082207395985433251917209804377884717770861660563253587178741412381586708880032482647306010837312781719007037810494823137024431281841940843223476326637254780320419482383220737632288493684239924458918980484598365616717236145090932694787285324879847408136498923532014118015906658828767938015892037613074800821565992446755811302021803382920258705707793066783554960083812989641356264313726717408735626767624535162615741537303894700265576750092135351722507146780979768311875044887430388142701976320206898675435533940491626028169033085191491518686827025532668800087049155608000368915930102366582002100199309622136938833022597329163296918426826771129970235431158528530890262093464820313832072941126806216590355751567963735146724565669075750421795377576149804750836679105906834400381509287578846779611980513038992764192915570891240870476468859061439183328035226353129676317041098196126172224471445236474442229627872106312558353076149182908739954459772834454491554614044488144003609559740349041151352443167680725455011644849555214125529550363857902754008480052934668211740449675188631783221341665749595707393456528604434079077372752288981510840142339476695096628329457761741935799370306805823126732816966238475151619963079459719615316003090108425645750741906797830212638823506755657290340185984238855831747607414338008956707241381525837987053135099818248281701112199905390350733885068979994203056786615264705416801050642685445476089351221321753575261376143614288504144232807828785250080755060276314611646209119284162191441553560289674124376918796701266823389828291752503602663370402848301141310293828155407549730765648298471610975734161281593635215836967332003428718909031301377880369861630664456450385610865247106936533666572510453766847564455426241525029228568183921246066857218838117319438008192593736316834307359612621845177124591868696127227411848657188639968745903110236253940277337684907841552026815064381908972138534266256233271026719862737685574180509004566664758336853793925722778974082486928096068707945595087283133718132227119409948762115308089673083286873256571520986676508018144890998553377837016744290236772976232718289425662669034789078551847712426694505012024848439350677833767883904953287964178489056870655812018278230757952651941071271229212940324069864480706538170639057128554941337247205125496802265417339252791802736479690445917591904539056885600082166171912279488205993980979860548879857742524918760473657989418861561997208314570214300989215248341439695433657120352198273534704425316897562503493422081335821279372855119273971128921870584852538472957031918824484504372582422536322158225256757610786628475888849164710894985166107644477044083874202251094147909071946787860496392410102899894447826344659826300372276321619817073757819643099603297064840035919515335770957414673448391370046371961358047268193287801113233671834764557856699489613235241374802228289885271704370851517522131724114070314255839069061896902179988521990911474069219348115405332751432707878578387774708930510467777626675490483414686236525493345793654086621209648347941965889861512203407868556932243184634730660063075392919570641491593981729745062880682124962259090518680068072585778071406571363537792561660417463086804249360659949676734453995857973494174496138258549404388797872158054838897232176438043667891544542814391809351929640053617177414386105080219505356263858056549026542204570382946222368867015001184448783973508365232863136851690572272200255246317284660379276280604508969159565850405835405770270503355469883191145318549261113280977476789461108060911562087726951887249020841232151631749647367672611390840623158360433067143614057785603399815813125244159391424852789765531886733111161845090330760655388035849357884354989841739619147393703971336564086940926325584152877185208640981386690503838111232732802255666868971536976473530689220576135217479003941023029874380615476782237466748490953055671228060729510846277723827177196484243694011418685214609130990028934135456422245749701858774959317363273009642547443941369440974364359816662540324239365995605711522613760089199141294643894204561735116867367787967996990621591353338167954053402449384431087487175473806318409249498951912675609223208904462110209208340009976015809632385786564522379728540479853089796318101545507275049871896891686208980948859547135913827094626988997764734698801076997025006826761274726119800629791712673262544601014961656521916587884178977031601159263562738554172478717859249696723191322463611481501854853564512633947859626353735432258434206211395849040967917119453460051470497952796837814767941363095389000026636175330719483812998567453496722491404942957562963291143628905679626017910311550170202919486121739269297297361725851951557975130139520640090753508356697999214944753975858873673707869365947286217915507429919683737412884399382592373531110797203306897276533368620255173498575094392099793968701870772697458773162039177944996688207968074198366577499480639506870553056832475075764892284470599931184216459660071744701464115874240878553035024470526206804389153083543630172415786194709807150804905055115017115680144640378039467668140765924170515875026157680683679049601913252681290443584433533943336386277159082965540999349181458466607075817683299980586620658299336159282763929980397366950317759146335829690237231469746383457069207047256588668731199649279277567860974473061823434307109514212096992727161137004419663766676960687534606767178233113520522764960395735282398601421664034572536434912090578015014556795595406061436508164602267179925229982340208315968826664485642695006156914794556121692008048568160680933704376669885797803200216013327343679078441048838960282980761537965371026340337093554787236187860118643948540482228135120509905247801221937220643558673222218349460325889749947449369550088112790366544644137869833418982487823609346942104766413267322403671744370056906205521187598874037507649326787491215909096335736321029045767804642023032321834581021008130909244425341942017324537228402841777257397037365977927917331699218698128873779055875950491885633569347241488604585374453584187793866883331814176342580574479651968339271575546554949395604340341828055532963427136927651103374041244803115122724072971169070337468573077237705912194259130513373162575962282971495868199773460801456199121433814107583433328889460575837284289704463141945412300543607792199112242471056441785975327379150705436127775847915982672592552640091599978993689411163180120970696987111857967855274207904941622703395923378924606761038370231177210620971172049301226349371115154709739692460249403115839254022242275164464364682393137375479462053125715699614616507558145603919131414637712830999186919750541632476737018969600576195620234766801403385449962065148272653512976228714074429225929457791198046337149361441968782859990053576941677363430642340629762937440667993034234982179114604340345197927573527870899458739559460476558165242219964966689554834452595119073009785970858060220599153328515388273050298979073986921990348058959347127959657906571178759471588387355608494251961131538673769306875007168753256595389788091263462897923297193930479802888666745086250758377799192880139567619195270000062926876665282937117167186529866090643989510259447780732958271523692320262053897871870126214878670915846584318673201700160126799368779368725866494733076298984932188748473558637939789241195447184133862449168200681287299921338181460865104497193337494188007220516792478622182583359859312413029658610462047392680524749051880789174108255683303762382804160024677556741081350373087732561757192961138133287070455939811046365751431099742639496160496972215974382839491606907275004950221051925004850724277406680376341724793353598482701924364787116523291728440493823703689891577355722180769550741333680164409238913831446969511826200566119135684802145350459686356515818401194272784755735063598968535225011824239186429943229224729885972312682842639482269723964205001694548308435065403167407579739210092488391486427041787984372038316807055709228626922682748750697418121146445999396200329011817845966799829856777494272172175765718379164793298570908661672606408097762118542969385420513146900028736459077001623022293137368675397053442622998837913280386811772436100886479693782844282590596571681750762840657197631148822390059144987457373460052589790791766451287361436030903696851356194933860329943209775499945551654518392685314390607359917857186908598603758858563588005734597928979586140621190702069976590962773594792521369697970029995890146376642280084007458862111096417424513537899946683927794187205628276982540295453038219544574876283144167747837262562113056248181325481448997109711415289278042335524077351535648926625708578375479091093463719296089529024097430126880100328730416009907208813286210925655844957319892772669590970187740819365740396300721523680111643050117095144638141513320749759222220377254462071156700775731476469619714659553276276696747445745418575786647262310505542605774028361420161792330736272093871884899721745607535239295301231567198576725630943535149661065279325984652215524834724491155842502301468608738031518347616460292958687938814560109056371744372914561700809807092362587106693792396438807990137078187164736861048786809731486134693230983983846084387120143248946848263060813345726374207067664708533558183887461860814679497579563491457363153113483281793967504626865509165789137659880456602671872443550023008852901883672841816449860597694818919079545956898758634391137720041172506009301083557744470545006306169596975254181134983493942744768582834934727045880373217661688637948060211255183491638275911315426638350572540500633841501447672756495147839244158012986462695086412736566583955821637831161547692067872145919205342385198692611623185456077275182286646228957026470208894508800579815026902374455437517625086067161645205289190308631957708327188469969718271661919313280221890293416463650363601999221594165086144649765193528290180069995547577899269918664451695891420156105336492614897723948313345323243175376307794207347852034486304164624225511877112097224161651044145234277843520008420098784534767059128500413230408902328928266847667986780627224966723863940698617100878729792855816911738465805249658308247678727975530040083573573966216846623584804748682270390517675861756093609322724270939925445341120844186194867208850524248353914085174407928129903202389644721040632077225879223843998163324077435515384429403537327554904125411010841244991220024431074915564695808313130948056953896621096351983610089490553373571366445243568749984540757215708596958958772421800931762780848855588557193856612776539944035130219016424089926685273137672613499096362359985048807502619177561473947511478297117108154381483230821388321156549179908898158466671966452104268433322078348506673325848362130502469596229719010854241171847460535398983148883182617657182883251957157532463600484427042416553986395012525664365874156889161799045241805813053699132548488625915705852311760311105172476885016250011438875549200863769315924659165239455204090198012236201271562833734483487226058714073137559500613712723095978363540026029605034894751245426011443328814884401702605141991262916053355773135108427921464909791294785985562804619049131470367073031792467935597815855493978702374838180638644330285445751257224965957875456525233018221778553867726764353805788401802538896431364763630257025355859022223469227701274368134347889912829434301152837126384937111016648906865757275367792181490021063352073832285989950917718049247913435847648261514304545219409060891645838194806557230932104170807776881239288174966905252082061774334548329240660875517146574281270734883674418050178772195321480014736416289580600985120990403868623639318135715229791253536232097633007216495758664642210109015398473088261591016217626442622734423324389172803570163624277317570347394323205626175899099556712408132390919629279950166771629892611452401293333801013174725377990172354608583837601939083225917729742079249965659297816775953453253567686125835814190959706814869549920439905531077026718227355692414440456490239664890872231834054987213554475696278874931576937895085386375172252443768393607853227974173213663017223167154029414485226594869148390993050817862970354016214607460966648541758483795896788593434802311360909899942765207175769739156466148722291217726703892190652654371226029041038978823184903148524143725053295501184231863325221653060956766562177831343099493996609125769703058976386974468325300525402065199821373077651799528404374539257261683177087238627589145195883615525174183441756245464943718897125158220712959786081449151994102349101633392045736179701315208329844166431055074653966795417135184569401352992873326036159299769341748700141758314038025769362507556378764451551374703289071462169951950288935210589648562339769918991401322278372095444009217962252215547143439965783097004488294678526075631210143107873281298119006663685218832645259135502475072773862030472695553588805557358815491637889081360219209206888823305231155897962412276954879306153736161169063806669325838718143308821706168546896802615085634438561231413796500771542841167112146312498813169343796503423006395237597795304446633599293618227582038332438820460227222976451776271432877734019975100348046195712644280756659420236170114448822994135051221566526493981878070533372061193819966346835310204936369456811551284556686536981616045314174259571314388647053533399430804746204220559140955785660167072788044502850286994399233011345789432583094821502349591419833708164664976177388648270618581800028443864898912228505424505508075640322792351855223457644014522318851680577858933059628021266634978169689889438316586297410292268323710609587115839372550162756155836363757853520122088697930320965755092827716571693258913661729621149812533233444570937086931257105601289963377454692960179149914467435446812532722379798808337285285881844071466529832702186867383019350365890510474127653273243266400215418768693719947951268575651768484205146891453934613610718644454371480649001526054462170422053182537423190246369678676175463272164778246567144659113184472958263891616178910368007890974315196352380704377124465075434815186388941043139236625112591315614895901487320205379983498120112572273844234016381176082281198744475165778293839783337824036260840875299287637374039096866874894741892570939323765291168750051258337581103824306381568315376883560261687122460195036559489194696312336562342013899839964137231966218982728449408534852566959045321452727000034896872690596169702958147161650139214741720911826570974278712855745818622459267242999380975700052156487424742217548010321301503483320788985573598127407081844120858370768703983917407472948424225027305195156448464270664469308952844180716742261817521785738692861431400890581930852672837643157864450940678526502734689812619877889154540104276942333111707362484598096111897378592344468928205965988988514959260161860941501661448080684594931106539720075649489045093856728055823919446887324717982773638987585068667432133301297551559806559661256498408552386225284356048806550781197449178260847308673207951621831543618913751751346759993057795113563149590298962578441277447976648487396818302340542478468633409871700374706095396404020069689816875805420858697551628457518636781053310313338053442274104207506099213850258261306020917203468956110377259210589359835216663482454876962287380152311856579490425384932337413759691813586932799573700571327654077388409081661459128216193298247449266163204977811232135683548795076254244505269207523083129879840061058131721001282817386646400328261943466700359683465307136022994449475982774168441296867354315021336654158693640623341536346183839761781575777602924673619670679445625736744764473706563536744261337771506472527023884230375077235167943058803071005728016350802153841497211198527345082563376280912521024382268196892709172338536363699041655242506826569976079651606873535252264116041312846467628632966016319080149020793030757626077912000123947884635568433881774858087346566716505309020444323194370746218253846204956476168603558006551933881734063654641802345893700807833040742144253359122046644080678354095646033279128488318889032152671547855479649151188951653808647835141881627318479817572859895356416917858803570665218742077058139541495627898038728942422569473970828565907759430467377646563654287274941726360235324996575475000061941995427838700106763223294008205750389504025489605555046711741338463138865861476685044217610641510433888262288735584057470864713010799504513313568702212196672517321674706885936593183284113839167070334066671733759379080626761786764545230230342025244531231987906649884108037439914899791193254166827361045391676932755364318409935698475156705645083604239772886170316327702130441384379095504577758249245621118324809961689881004501783597404257894801219144722242865352068157173118487096356486670470560844950921218236964010993821083809893937714647491829011910495093327980628739917529177777907410245214019728510849512629332045587257173532680429432148823469115532185630198201518241335121960196567881720229527816594854820884270721471478289827217645179454755621609329343770183990104440032458285725258914431091020366088852542506191163717948823473732158362539529769564857689228606793177668968295261993485358437995588418656521849225610031925094900870471748948466769389898063617157382850785440754493090442719512695920121197956238481166061600459800846970631560065405497147259684642665407278974304118939216326495672944166892776897701223023313532977992297218107794123252347157891232676372830605850869409489270774963123484427830893868744244630942995040796411325596789105474857983757090484654670976500604006644183795383023402814880025535384602612579311782033861785803730851980641144526161045642229815363318310446039710961956968685822796467746333008333316735463512178125771061802534733037827643789744126971516146135723839200776862051722345965170950187514086645925591964902488921347393393132588741785002872775414831590118852433411353830939526727139742040212741661909139380769158624034752925904415023494861925764633002244940598459271688384536499686745234598996951729415930394667412125698919604086509297792816282230806499978410084629488534025089759772492029610298183381038366889947041373169693725811457929326931134206549838083901525280649664809483467646778712895789527655777290959621738597133161344553115477645354806554077340908924193715754737798461544973733154221545948902248567247427350999802452139387828533308315374560091806625133709044460707249064107143106837827857877033419442964444807033036851870394509857786540500883767985202630965760167867766309604032139556100041888283194235944976054462515859018109428260088707581724582442343446410364173157885053381423771044617843030352020582071064756143476593294045379249974194717872954707453149897014838031300517420007445010566498280075591090267378960621545687673818171528136893962158882644093528703423377484571879463317479601386324270617582458303288794283606648416452739815239263617089293530432629763601270330306995054533221467249503160818692332873700756683129266733989291176232057084297829247238078257553355700721329577786590901676479475997994050864071784771362054196600151807974254256747517395351644287028293502748045229972487000751373715861325998868216886974582420414791856544877548933659392150801843345136030329292789623590904948906623191655093860170303020558348793522248138414983696253944984603566235232898059385508699314297897174063870862015545809553740420099012483197875775453227103715388124260497974884842835321245978845408987589321305918100704395854646559972138490048120691173424048436650430857659215193877293114035914383667266249970327694111802530366195800627654604918574719731171279997633836291272248576268923517335791864058155965814874210806454786402119178465726076488721849443142506250055045206201554031747406117771176271046750373521128553819717124114835710437308079864020538833034485473000948593302579232373708620712630578692017920722766063911034961293196216421092433767747544454248274663208960807759663491164943371215833406662716366205569400654567514583460584092679411754986176401799699834581493450278948828681877100518819510829135184134048663288496371719828473917053332038089245980536795181209756024800341016752342870027101566413306377703589406068316773147342081043527600367330656735724660832935229057265807517233282442715488687749179356458307935562233984470320097162303467911435811965351279132287459346145748982008105349308943050384046271729051872103338938519181418469673333334793393926926467466044884526541478420340654460598622827827763984321940623616106594567644028192158877805781363178652284546058245964822688073783205284838866130444797683191932892535652203469233492630562527128575154253514742756292017594410255127281910491087782694848083198494380026105168132616632090608447281468121477292524879983724465531701312244829921569347771072650092808731764246696738691972098376496319452530093065451711759851387072866702130732447388408931950603092862242559288113353553792849743620332445202815576702047339615564278058604909253543899735864984411573477659250861519479761064088173541066675274559995425729143493279278765195998204752404099944832361721381611561660786662267891821017259536250311745920580260633229106514372162126047787785316153788619292859034733137191965585223485129765827461710327104402051771804321487043378259974493247415230607370692213775378232440872795330938621937362912443834205957701606206985407171367173175593072730510927813728836821494961664246482565824942517774006323777442633038289309007362582300835145984403940490327083901361523889773139483616074291386001988826605889354853020143601878914922023106943896224476723830175036239951687793638937748545311808782285010440236531286572430737866408853823320956358569143227918118165106843569399106473943137335401130807461003128767516725672519114542845490843965029311737851805520440656074015267196168706481925688984879901169144047062713091086580985255680839968189919978646261601767485903662468980806243442515443249255034216368474185682785355849494735148325126361811105337055833976852764549975932143582184650142243974017828421228177577966853460340538612802906175486381542184171932840212630861704379404749258627999556194803622664822210771330984380993006751226097292943567705227680153944799315128829301928759767437834177323128587006811181751630725446818127085629594140835784885729863070420178607191483716813181447843332835198434769262709278823390063688315404578348529743147361051485704068442640712922159448431386196723879114719603849394113651130687999179600206435086999624361661830639754903453582957719512039287727726492628547460980278632195100940384816330163907014347140137236626856307753978231211523724962676750873984595180479134192447592489932974598412196942160497546820703673159719087275054276051316707166168784522345788876096310013516670843361054677683463361527142136156457146255174576868012910752387221558569527858570649171268949534961498038482859951605701803879655344828491321392641543325212149506939600290074206942208630717618660561408721237497445532823880077609546948215525325827309338966916359068510745068772107211267265272045125378642868975407672005816711109190406669555394805839480655597909361016855187076542055731504810709986847318498743928788751297502125489594695875759913200495669024796081513727081866796673814646825251862750183152943283183434087816658894983145343622002121158004332359116674065142829944660738553065391795672245432430308882459781074830071157463282793593444140877421686351942217111862398250895031188276545734596130013153262701595966965077917420739286519603015772920128589809365807971292704973636274573823800203792729638477122035180937791630234666344930945970045889332924496202773817867452032871492876950627994030157053296800437211085944899473188322887770480733354036685627623247892957242631965774551127491800082573614655764629565853710668307706077448225953661010487221327332005406037040761164551121710115955006794562531349030937579047095082158806185553180097121403632328789232242321234051588022889079702639499666437608570273873316907631477005312300358707499116570323364755173121609063786562193779917889368331879250780551016338000466568919021114566271327198350368892540774608236378768163663131035224315827895343205752721332750314287560051741426103588473611170149532981024099223775678265352383673434655016021732682307936016986621222538452698885104980234548022929749729669070069574157492201091457122563752993037296311738279630171290611848241105085535316727066833433929157241242257805473980053629291273005151276669104698139965311286284008469207026173734696180930655435301023106598004527440960530793504601676872016066922555912946321461957457732499735096267754258542956136645455242846479602716651752653580287106524175532309310279444994011249701350482316686259917424386058948771095707935429538860073001680316074774565352582316303835769650969279582991506240395809564546401274665807085980740327073135817119127648239917826275914399085757242283423601042709680146237944965563350604936924666698960586172288855750089041985934507889008758314060561588916194382057987386290942628652326705148701714407880979695136971397754299285287439281358253994091695292293764241545478834234406012875212366882479670782148340360657951092509339110648035191016948456434879674379368740270635638957174846851876170821173053487790512622787192633553785887341440011650886455481391658145690402970560635383834725494030178018510201617295057785877854680769213830742170718458497676808038671187899002417733497949563976417264301941038316141851904802301317799569889612272397635654525437007004837015317436282896233888108775636034096468910999165355737381408142931460802857489590775295066245094250682184130906197490241091866794351203169488860239697312382708963483179364371279217935534165485082976869836791606049067080827807969601491348764885201562073188728096452446849796899210491607486513778947494402918258322498039034794092599516602097626892294223786554405644375150143952226974035343535259940158702023008577690225234806407258299683203137983246196383592346689862697792483382524292787493231133003906417187135149212189798977698654701716793235425553384535152756114055283432397127900825638722239724469181854254409597449575840803254679922228473431044227360741443139603934278714615078129024152347467452292306815575882442708167140619363919431029321779885858289151765147220581573804788456521960018538256034996013423660793339598990980997989853634276057077420941730758068918006189534863013567049841557061737779109878110877662006843089526310409318015388534401868885369274188233830621784063127447314702557661399811472843718533123420599111775930519133648633820063481654778795503828249854937173224452111005050902747009955548158402087027060338845577301325019316188342435543026973107259075646866345110409312943603657829484761557146447341616473055743262391719881829831004409845525347556257305645248271507830554665949495741911327703862193668640940644418640617476747842837068607691437981719959044284617905602094707667854412101975221665026873521266317997071167890028279860685202945177395208525549540393665847986692399696627083203095210247359004836185834748244343087587357097131909966112104102231406446186811332001729541599275058936486600375722614405917939313232821672781862399411667735215684450162628013122911797632177354682372688753701163262373546005219391582435853134641343701261303514304953474101026606802395945294324371328716096444261053123115218439319749754309450635946533840942739914334067342285129147351121072940755196094944286196057722078631365022568205459987059999469688590156739941990640816918479173347471486635501619516025365744331476886405086846589189899758478353103197571477988330478261845599793888590944618794815570949888659340879660748032953517659474912847630181300871117394322144667007684982031920786712244973890048187299729932168089394513281396503199367112660158265941557310409086071924504321284922300967139028134343962147066266296162850207817804002631131873295541377222083754088209216986697388430400368112346980441472214664475369831452606066229603140008013520587334570565372368353278358782788980446128491283043069761964777502327710961642804295170307136956577391691897007432627988152737581449535756493362655651223444965442017944744375135227151339483926094400639606754940590605259811604153097807425490670543085026380415487643206155481806699728911016648317384084147760367770831432958180261475243149091376219157244589190101557748779509698126695936177962433862095676157388807128233215312576909897674089755064690606280891642446870374509892871495718868926580982468473093863747103193506765762737346248367485589426451110919107913320014600565899516281542405934636743209264832249405369181228543351178547837650085674163308180082212059907316472155093500358863132333749071350790947313408736367078082105034442091509371468312665681537240616962156041590950888846790324596057932124968434950593566772500677112815048026682957071191542282361983172067157093902619413879434521652089760958358918985496644935293322884768118989397907346246850640881663270650038872194581072435010352379671485330129851220082525916071190317994433135189070307588677070218096000762372938621788101754297852490931472991060625350211482789641918417298749695124299606807932945708450477266298687494379884459736562908540975323304948375575129717363233076854627724781656794088610074171459678871330964540272630541154744667457453753978361111664724733088695363667444222043916960931905346812490733019771189690291590852066865358556799717142632667247513013681818670498811730945818622219593352152133577830416196665124726626565295543355789363294212205200624160607534495312039810516256016390022999867861713486859045741733869269678898041247163100226402797231767680130376695284002111371975260978649930236541694565676498746038426022828567300861851809589993513856366860936594485463050503653690690246555356849375624435216528049730346253206369389489861949204833832556726355559619219429781234856044997074633269903537642796332174323964347681811989004999196181131868499088558325809106573721030697909292943812653413731839448913403145048262352427886071427794450685556398804924473124746871453067489313011420739384922403052513831331534836165465518003775323167149346943106706449271473828772289439102144919103453484916852686258723185044556994769991575489676087844722310428893575226937425346453097381347872474371177528433440253382355355434035970484034031784047430051165080651590383130091905241619445122381890250239698966975762636936671281734765978653413934628005641572568415489976431921023428388551472652040520008478165171711941883670843828814649832988679313059277534032204242841390651784207749678302990709728164763106762029574763840202657372842513215570781926554344297758046462586401748940830566032135064618908015432765552299647414606417817836249488319948169623260498418297248346078335157505683366347557851531970653878647401373835493147449278962549058583054954558386001194595650142790002889975785589417827796468747845688718365472501363281269116237337652197459343303985461396936781377557280451981126547977602418147898235762822591705383476143622762487218913994285831758118820449828908731745161887476302459517228566999721611407733014372651701513714160185299901512765017517308409951565984303800205059248189113022749702844173278142825346192105279968429733792822459763807707213841033246623943325549940526100465197875121529836567513331874623488948071563179926189593439314891782650175905717610904116170896989359316048559604471141075422486990172769885398749940174670843782000615986438204130846472325263341368138385798035156952904875527696496254818055035757182997879926388072720166864223217209820452978993826849272019668774874052035909851543606934874453052617675137235914280758510756654426501731590698606716428301923779742486455422507468332782441856801954158823053944177082797599047772100639403597783589411358189411286395264427347375230488567847886675762704026456375208484429843625630323165243678092258033033890405960975335959785127628448505159180982534808581469955635929621042800681358836755384048092686157035882481391548275963273212416801652922490100360834559493375468517760796102408943231400066985644645729312153448539299671301696108456835985842415941440897808236642430914197222320182367158778058086523052793253370968563898744496650977567302001086962681530647724839016475848673134738885122557044454443237166688372248957094960064607851278230677456389405505787323844586403282990044932822958169634813193304464202856963440640545349259471025321289082397635355413445112487849404166744231482066683351707445667395643686323934746075629186099651200210531384303888675645574393669643821829962260981464735483620379700742701979398705103252613314197720494380162072897371804711509557924754987122109293011911150964132473787126527116655428580660807012430172953357558973285331258074937803578577342896723167920666322416102504333565772903362393005577879136326318481962205792928809627552989921223393528070572229148467624805450818513281963672862095157494873357139817686735694034440992882961507870039832057081837229922462475715984656813480121817147072539094494642377559482771953880996155612220811786140260889995592293013588223960484289926822144255168204518704334306479091374355397268351205939404444228797389104886198260023896860373396270720124996411810151342664654981839672504520691149671127529219324103976799787531197766500981319373328577434940314141461010345139002982605465067520152459929410496665963577978318893584016150070839587157842085705000376573123586327228966051411523120216006845685747163979746023703461366528181231036469483435622078510130600069122895221943314355037551514749800430579029409731844116401796444137613680278376433703455715819109280426337891249943299055424200749120114396742688788262128347987741655904725639553812987415430911826976909649451692326689680076701705095592634039595069949740679271688475936353825161838330587697664689213474210123976253986260400506478956117644409295598328610805362174196843188661213005482896183878131885680149864598928565229624044318389474340100808272752789005381047034194877692200722062300513837079618568941490752648568837251127890914741905058883153009379677589744075120977893651507969410411263473023359559558267674897430929391332377645602873079220803738648885461443608643254967519791088229613347949525901972402418010360370180399307300569602332475625863398836067050465217718772858230307634925570329503949427521493840139827643921689661713183026024603210796012897099303055380224213776082515556451454649255342193717773250151773237018821054868441848039822245173934441953556514112385759548505121131671731351676455285113320251477080345796222440236752775363372242073756699880319478600225943802890101421793904321356756142039424750973088464996508312943869102658504202424370863890347741129514130936371434159504929621389977603098265392061010821725744261910565784244426388090332039254472714909078674613786917407241665369180373310394842967051116764444059504315270818383615261167796446416702392194645447000406192842790139959421852603965534433189597624169202163598492770560647967627950194454679351916573660468828483411553095607868118452097000548123466530671038108983001458585831230314544750519576470684952913372439009101279371981207981473981258529746839157777948777999711233219641167105949992330685337440368065902796571331959718418744694544693341204467700773592968780886684826243786525426269222501704875206742979434327626237962322651249449658952304219537732985408064547636114011778331517288655294016949642344379868428661453521768652912359504583166389017405977346505076570127079337088960011161924092007662428525628745575279815136587945707705236684727524952352155090662649888812528198694237959242126586268067917532583449501576211236875948011104123483401838141100706226060741358895849249564560980321123232961277571409316501837342412098953574325183188712737025443204624927461313786799619121838525780579408376236650659834920310998097933382685760391917759497319676875516494178948125308399093123902792205651633639155532885146238945079254611622117077584522038505195387120605168236697569414625654366466592388197372467033780144668836617239106734814960318216020757906267314539177836575899442309966259396798242663754853204436244808688137931108323304679465866696688073901666376423593291492794788469140835746112213372657585198640456556889148105276167417702268269453553488576558249680163166067859529938242674364314993147115537762060268590190253291484918406004312467719538428453625818628802070640414977625172523337150309274140509086127298568175226997928999046676302192267955986324118400655994147785713783980107632845709693988923286095800679126132352706088879292892059445875652755626307398251428176653677001069791077895131282853343634249036636881449444742330116749591384874788728471655454086134866184625167786780601282445388699768776872956149343801728659642555091361475469501238271547165158907770336180917934930823689933907698394264291096085676504781889943477917876740082382448372644165664590512401094951438772678015240616963642697510069900835850713796481233996882046315569798554174316199728484776349933399060072424518996062812822460329385289954398652585678695393946964052405985272848175278872828752752303979960415017422806508087135596774403670092789285074354580790201107576200440444366014706557196304360211703038470697037125183391959287079858866151550063613198730773071065095560875744967641448674027920180902658661021824320696583779184318963315264074651205709740856913631961060247759840860478054931443883748126488976031119206563220725207649395655803620375376498169452027341380836953373484533593622995544503893197954506431815565384431920922516293103776391986738593146610197756414571184504217370293313977380253863326379479175286029804843491856732732247977311833729248204285469037906038634852737514931983843565900655697266090388075685482705840484671035710205785390441254179906896260488258242416231912214250782677407643451355044982028782880399358228731925800729222134272218205351175738806052881603251319949729496864458425142970357357795771811828055074109535232031347351246705284652550121181409126487992147676802943217585480717263096621149248781477718836996479892949545924377163086123910529269179430159282667111983882528599957005089654225967454216659915480831370654233414420906454261474671255760009952452213274974052017891993071736959581210899989364413105019055435231641234480339143290639021621205153192494003272963761358717462774383950702925089761011019815165199549570619842050055592552894031249430500098616331804838493197701537986238558626793290533254202696539264934183565605777961187164976482698672999636209282510078736332886473659549364629428437626318508552805456283372169454946667329583916621682679333017671622323538543047107918710376255105321867902780443860842278819704537498286100161089067055857766870817209235581530567141148258092003030330914880019311779695627002528726348089346357268769937843037196170561538591265032736610940971734915332797615674085904892827920575978437219874629968276988609351935304117993298042700599849123812237807228486007479935119997009385262983371243865871428852010962600656049570973534348887533277422668198630456461102604372111265776288386879916150493605131182241541538456645088947529996570970565671824502525092304797148395916590696767368992328116742007790137311424221361541198573501023805109382699619226544974455224779413817475432303743944042778756472009794491077169288986872865215213113857502276210115672523927804035186231172734508513947791398193271048634672553359620355950770710012431842719869460887926202496989221228881441246405599526720994568840564299859269612118477479539495109965896055237183260838009423632755638637593528712746565746592422146029527646642376886505551753448287299069521074545967176371296771126893700083058746318994364012013900278941363236685074710288353174584143809467107662264213814242296453492231253392698071673151069225731102433033711921323260783661198303207856581517053642856613349537685679847862276005677633310456225631262027534518587098055155305933548684820365518636811252020764020631717895365297861961100246760716799026555734191920498834380990614171792913305163621664023590124893989888279928666412668365427357969658014705484242315479612748027010122726988738769064486988978219070040241040738839011557815653489263781645847552123763549232015115032948962471815756397342313977640661450088014453863527561177586551921931069024923892295582358322018009861377479314938422308054304752599665781878176592158237896583841572580237983797044817471317040537034237650594524200076748715315737935939848695660603809947635115391115532561693866546317994821266799251615980184716517497199393558960135011493898297919277398469243013769912918438880766364141237044381335063598445932617709233158394770102015321000224184333972860629696900425382142553948594625848746350103599798357688915001011681519383710595149085734164269270215585223673015466793377044496026740103026950032911817634413756457364574043619432422716264744980934991787409679555020520806858399057045856697525794055155225272825100528481352459140423475231435421848409607850850512415876136731248753311492517773025350809698883280187577947518451606386164165944264551294106199512133816659277715300408898323557706737109131676744053498582450369745999402401693540159728886139022409546305507479964310152782816003154577303214540007958370609718768083094779760113084580624501084856873410543719196568897118773638137871201231895164074535235503900653148257859772029629890524688183471212794091952880463315553430023744110859976683930653882418199089278777843510545660363804843251045713190370684114645396513839345171265183742990233359766658132048957559581794701122977227768744659830499565826489406929956577136234214235851282751803214552815863415266696913008158295702734615652390810186096213317607516118479070053987648604728503781757557425121372996194643709128189819203717978947494453424598018783677623249383386023118145646108241280218474270178623511724639981513822146192608219186372563354736819093290099087698806621325317520442066573869240204029423684301827391701802007670793490380307947090767446932106946968595016934018926830486121459115804871385893705115183528636831219569683056269738239313340135658970482923450946495627570768843220980047865299570994449690584069887848413532287451606174192902551599746023420347949322025702445584436809510754971761774285329599696025009489869597467460872741171393304607862710811094906548267351450511604304061704757686691294959651621265979717447852186217723436056680234303668097619794935429477931418560720606242480239210713261755865850974302070743725501038357995475690813741254908212691571667039251172053254407906481090080134275206214577036938293190488521560161382070399077094547816205699058035093274862080209740495586945735350633918432917823575741385162288851050617906502254270106086367257368396896673805914426452789911357195063685859446236218559999614217259142741608175196799824581995591444173966722303831732165576846340850837050191680260581871855175198658480353000898985818839224822345432499794958121491918986317469222739827511440285318950550999209942726915531574723096760123475867482296637431741107909691987749623868095784854439340168031571989431271917653123137195636781195880465097874132453697863562796815791437141139949483861588002150126159366542681338996485089139784540854754882313208187484477854818772440684914757336304782788718042716743308375113413879500857500722481332492730995726274675524357014412180554027893278442313016097623784548506909632423443697585876324615600281074526035632857885633268494646586881565475437003396262265594550137786788062474124342186425042889746607856534834786017292097656332876934610192198324763045770479187467901932779517488640479068756186056222818110244715846379840393768845692274464175457603928516393524324124022301974304768269299160470563825166334399121130417680274266261253797264802831720332709832687097013033227017789463492548721841700090773481919976049528894310319370846771427635710787637901476747022512233085474930019722685432581013592476647277980380928403499701093009528933613040580594984134667319618866663802200307092959740444392964704205010838445064336193434700019181892725429781874839201153450422417665099227959458997619551143552770032329723732408987844871593905833260308920855599571448295698425726302579017609984927974028438448665426128937716630099091771305307246469150493493324296292392334503405820985940201943436761478281005113256204461648825366392547899874958094315084805036225357934503936381499742101379859542549965197237424268819872864802793888862931586534104655155715283202439040529102919440799880141940050882601051203999158084898793678369080551480029812758621308940248211523731195326147323221754820359174264225320755659951509041348894035582760879367602865111735788752206622420956333199373264928782202645584171651630256364626897441809862653085798567561431935887528947333862257258544354185257039047471270849992572647435214450385452048819243067283049703220636526081275550424126577060248375011619730877706756762655170133700314924739292405901841605898685459345068636724427167142291084931134549512779413992813711194839606251977692769352844658676677224109164296544027052886110098405092539969306952221968568641473225178469698244011078910591135282711427524577244491615780645137136619757953332738490771026469190125694912695276967022991040456198282925887521569412879976380811115528624917224063612424062920612297626622841375640871141868497704750138638711736615397590082561508392052938347748715361340258056830892859604893242836498090170569218680261456578579318551535260754782923596686212674225987935472721739286042947034042875302101367848422369150335053132244387280355191903144503613127804628120723991509381939003659990292046071000671599796898037824589303540660180040387671489731720073902018254189879778502636206247889313263990726216241746593830354155707591596400994479359899961523167250813648765455390837435691538831610319533501842999278387605249050517120481239803313612485991082180155395005967934828554587972573049443751025211591531223818961868910814901609282311252391709808564197797029581823243628587625315760041532762811544861332406460685994520177895928537533645730570916217172476995227043316806618124407326107352906246249062649180907337001264640992384854436980429057563035307246795257369759301192953219522836163350227140910468507966353913502308739628084769987022820634516507870672412629394231106961832873162396243056258279824873823128434880214692045546132199517744108621650369273075136338147769927600866417244577624526061215170578600458816180721999423508162123604058050676427665595765605443208701861391382870237154302654253529327317618303320868058751712119173231730774155903898307358786653093401285391456023961476570957906868959588991991146233507712367677660031739164042795375390994611317941239459321730748494691250095787487225782598877205209539708345806008377535672800313159826410961734165229228009380961483696400313717832291732058221471192932826603139314162334417558675241009046390961251837882383194366804619998824458079359082491718132257730788337523130971335416733613730608245751604044529976621240566109443055884026019875194689867938027631838199389310686720541198599875729073098224473572859412126202147298239250417831025487649001425112497079344520751633104186296806691847151756919403981478390702344478326491885038393774015174863761299994368843060727552647161102484263169043342416525613508516196590308987715974672386733126627207085340265420567182281761481611990709620852331523635558867378761210176554990201702184987595923269423613199911749025954931922470538615015567758923204655663989441066572538040575911108375627356863410581603736362679815783301066507597416452924393839926260679438861340216001610710545799471352009049422831239664780401864841672585084225910538183335550442657019791167371766360636242345946533630219081323961892458401318539806035929016588929897945905825642743296829289006570198474853627627191989037850072556329618627673840414833671572224488853702110987628064922364740355443505755866258637166218973991287310492419073247540004957545690476583079497819432154896763366455492243698891894690673298770269453905687303596807394822795420224131280379624508704817205699723338987215668356933325993928702372242046615650745473814171865516325680645766304357625731306975896325824922949506083236939831707954574202234274157682521088205481087368886582400409167258458147213675233682861547281631170726023793055231553452895047847952074968090959410902747777763461412560297155274210839373826970903177305461091749163105841770864213017229803275802733786380274889994944608987174221339846185825596516572340868834880553751490587882962072504332987918973307578676148822659230513606417981199088125616335743100675468053177516339639776371635975570353282715223912599714298345295454533009353385497883924859183598151973264663417781501065808470758122012516623033393073447016173164185867282817432219177425452865014005970235637730276489983072516395045772090923511744981799872912807766531020287302945503962561567465858352405100156213980525379388858610298827665346451459529049653771796263339812303234753402246519150991843163745725513287024039174749199383350476653133232622098083226369025041091926138130593832117633809832236275205410407716168654370331228038854910439586545816388324029714856677652517729820518994177706939393417767766666289887443602677442124873841266565476949878811068210936853171210436153450389470810956697325719702091652977249552497847511514819216185760170072377273375358060127350763168350861628337924075346304878124219859125853433743916763432089706399834169691419105962559524577744778080405829263438059371785185657780004796635412621654957707641814827747621305111264373012784452266513148244399503251045738176291871069064183430027536095433515834347214280903662460720250510808515188806110065593015352128265951029856293273697104917775870995096345040720746868600620552021043134561468012192846548848537161709098403610182676054923048500539923284482626218280851785935805672170713610184684179038123657741345477665161526508426758092043842946783871737088314395954018735150721858578201805593050150137189667762287472109360187684731980132022932727478882960822659389063354857996650274270924541290368083727743088774038547775651639244917166079531274825123444160286504902144802263905679591787063238019985346732085818258533060848019240783412189438826445273780891660118630105868177619640370840270228158757635754807116217326176475171759788417715877080012589365263673511983198850141631210324169181420233670069401922020600893659020591272819553225071218579090138134103298004356058834536710213687590814155396575495704468931984097095786250080571735861875175608736337130831643163346277874717300082395342156578828009663077048096628467667186580115635061742748750698720879591977697168672735245806229818616489931685532130073053445389201009643963720177746165550521554707311073289937898844650118159771080577164104319881926827657125298867705211764625976583172698531441033007150104224633089198879296605937234697399129735497634087756686767709484606177674666630601399329045402620045224504579505533722214495997394817010397469863307731497410813577728789333306253761850913803686741041524981516143118209208964028662887933563180882119660560181087674434921435427217109345011230494330862092073932376810569481784049917661565418938775886965600774095304593995626565087996006180601484626832673446707376678707354346406184715923386969096980591252326986980410922019658220196149883740785837460136999824285527371533560739951351613025054875262833541680947236856686681709511104123196129193899542663927251522662369005561727358501413397802522485716693733052748370644686212741197795576579891740319314238951288575119699036394644331698364551440263839678595523278915460215741518249109674578804529157241104039885515471977576046711651598707635560859207835652124193428169332102710472124376783670401388572075947190246495051818849356130257685447767523645718366569362740476879891154936179744698022101572578296132511848325277435061075864170608672288455068527182922748513138753483875581350666210645619985927442180062236303557998089677611921220451972617331573246973807086140224477156301882885377831043424903167220276036125342665575917313250515834960165117459831055394886362976035179072847050225629361092852204484885245366892399511411695959449001884776721458125327904001177610218202906687584789754412583226348928916468241017606330584662628049099571282424361323778858950309990537921275223922316484172275847482977124364294250638627678476072655413871927756320932319399314609149060540873425631890145789535354752696779888323853126357707451524978663772858434012166168571799966461303911696288923859834973358758975386065374013734647597302929052760315009035253369231404542398028165636692731406111357406932023607312498433678868624535334631401629551732582990705802284409547141249246709685692463243160050418038140911006026645251076947014374060108167672508956110328957792540473792690358426691922478282293765248081205456901989491023231981595959280272106286222942562202152672282100885826593884565561664468967528175140971737088522131041396986073123791486186301932756147999759082302800587885877040441689806974781426343213643892677212262672202561967492533283100011105346781858011265075630926453983379313430548060930766864559741864033198227964656163634562400360248202411274963032834711059350477036430686056914101537561180019385198278555265743454415417240462749057875163155982416910370199735169793727870822327407776416516683505529494473357499539786332093651251597263762626203841964214769966947896436556392924670813851375598897494511427205582745632248322613693124315951924827692205327780744153734587116781592578491124769021238924168570073147518850096492110206201434573384385784029522723602676306016368902843490645686863842438844686950648448821969300704986968096595491817657496049847196885914518122187367578727593220518602387249466044599521264755003062793990098695823174215402227437733531268258919808328137018587421238299488856300934106303552915418129424426120425056960733000183009387141441305793649689351325210343901121647810065255008797790671279234511326382486349050161503700488614243978093327603813356047016523577603657597858363789784481730987218813903848443609008336200807956496600193517916375683749668227996029055496964413048227310837034568180432334614562253372963107191424789400146564427646499183446560272214548841374003197849952852854094971231051500787614353192727150090889463767142182250845328343234821129289976176982535161368920173384470766071735754602553501859491955190685448947165367443001413840633719704763571433353370817456314666068289054945844823359226189348720228154451824905257782633234168473619150946463407451703746659582286326457821659245552385716913481184760438001519034985074391901813152042257487570524973312937823432058587779575994305675674521698863012451364926332043025361222194019193731325638718086673690838108829658119693785848409313286940060723314736076963386370554290825963302788896325617038245713467352398961847362471745982274475757904187252265789387731587740813394514213500097664893950559609736872250301479803264602472604226367817646460633248775295937805129661287599936425966380226403982941204343528456666934138412831667964957529194257153404010794385550423300061618810267305375222700364809614044687743427815860234080976231900949468232453755432321585330729023949557032959735672893492799886352231501154659166697993967466512068372421452356412844096317765813109148706546201926929199743828943461742846989206002066462154944951842784094928575283608836177719953160148842871842109281339124544569266300151589701292145679267934960025002680923699077752251247265022061321045718861775416995812601924636975422352594058362563338782132922954628943596304137693923588710291450777724946764582768329493519641409955514277162080089682663132701712177289902502202417495448754887888077394138654444593698013821207804060039508929628477245389085057146287628554951537449795497019791158751010836563432331905660067811416190906532461325298081857694861122545381738907023908905445385407038949196940600955548499395280869552786232034755120279411553494124283827706915206725392743764023141030244660768448681078892454615252570526944229794619088046280941437526747375205288639356867849867306775458569103022270288783650280686303159488343860567979663832403488988443423407278657316526656469230173661481822187593973104037216565234816713468969643823973882660062831811697701212558839491156375891784807718589739941918916637071868740780748591167773594904722152762545057826675615442594164360731154312100840611677164662383029748056400070897545437557645491593559351491616084459743054001930378406696320576843672414125866083922067527160382724036987051142717682810573062773975384405846184600948499066666876058744575324849679335577572911956283566392915659261226419234073791632326326494127686214860012827657726264994019511109592788985741236356144351234729012151625424739274150257017501983405657836374430587776101814539723958046984908372377325601617463463647384886204644896944850631615689886696296774806856677327674465191292177640827952339152335217609198535616246377175632668519995573557640098307596764624507625417611302465756414430556252831262119378106100555992983484159776408257995186401011747373602491781790461935132093757745873185896445510389660602499809511672659672636965387656427972733953136397028662801233389265826405215715095809883651099732071543233763217022652549051462754827917609841975994181023872010777907091999646445020660183421509265313856726395263867757446006744951431920018266866195878031961446421742456438281718728244393878076307772425051543487158298338317105978166848864884241900989965987839121175267440968839892225781007827398324999507378393043422082137358034018385689395106657324550774019189691779707176304552948818818427028847177976924905617882217503727918874556436993305580836193491063907156301103310985802168906506331905849158497440846837360876578811555988658202661723144608906542640812594189737194848380990760069708993533754069809643940207897365956585639457605432814031374141652938042095496060337283589100550306710210159647657507275974358246735574540481121183944974793849007535053239183693166596205092798988623499533198741529395575336955828687842024314866035521665831661987941679602455275152087620022934720089877985172282754111295619295607860810758153099010649208237117892344118044337964362751382865628129133781186214046983834064625641290516344698875506368434068529607438131931644141797885505560423832305358484225698773717339586622997291702625606602578968941153052088497315708255289491869563963815026205456810100484707964424568089384444564611409975616409087792295256631233794784752124177380762336300650450926079632728527562638677725172748098484663541768420724760030168863294906732051072879034316801090865741689877727959252602987622778948987651106274953179723023344404901050177653405341081260873534955853375674463141701323015683984426736650041558575902761179433408238064323943472423823839899822610324061168362320467662485392878379269282781164317924458216098889222691882842571317955674277106139110697267858692575655819002951399474516752838744707776571359305398906425554738967633116873121606497342407880479192394921195051661030291103891708721013740218851220717049873601023198103115919965412851033698812618273775456238821441644228665791958055696487566281972497321216455102882550739540816196449393828872900867308080921775612823080871230487956581236323383833383198397824448976063494800933461602991395712005710977539342552267020517517779956895543817710555257659344121699569263975568212809807765669440506773483984311780123215506067129370072409529439059466867807083717848664135937415289564838359615785531014879218125596104889234544962309197293122254322245406561265925831973593184606143404340961683426098291441486997398566107483249468245440392913495345450964768911396698747075831634520852846717943828469544896046990962985613129528446452682314319575137496387490122411290026873013269419783007929077298719325297084379784414689036792540216255605704234606272415328238207118719213586334983776425587472137361853832534231411658024094319139934611937420013559219196966323273793250030529579755425470690950733868747758908106673844533767186870566159753412225002111019346887080028483073063905307001220225059341974567958786506505896853849519506100472372088066579261263567746474230155018623061336996129648616950301799996314984152815836127156409025635744266788717001673580279965129905130007320548182689517955359124966147901441710241663158495746017170568938338966530779320111610950763858685947349138786754164179607399029395736832958741537180365967672396465644391999986789804600338698035483450180177093038424191949258107978151565873007777049676524029789216219792895348006990083485559516326477729870989422832731598773332432646992503384227085414156153757446195062410760378985387064561788818432186013750497575751217642833336205263704881234623430514707640475756135843811323953930216477751170453325069196201594392280430220632963134020075484537125892920453029392356540366337922739249891972796491300629065971560029229503185314180275255832308234399827385581797398291745412696267879120038830917301330002752739423085138457054126401034125127986266047436932930236588673841371051840027385302989499813334131903322465122622685792397896451757464670324501567836619273758637317071315662158437065036173847234736722723762820607790271753611124534793231561429243973318249743929400583019210686689074108622130231059382893658293529782350383063277524071916370387423020485659653342619404254223552763516568119025586489245584922604660873036621239915816851687467183594281800754343174400995286671382516831858307806405129170760454025790777687552902261115944378119638066441631001022732716372328854831690497225985302249055625259573849755646158945625594286461913416336729802467167483248086347856633243212962071222647677616527456403627397873131640205655900792019549591476076752660035297407287692238329088825465119638097183214130484070898500313673337409117490784780204302171216082623179863511517448184775927509577238008897607451206429729602524557613083245560919671840231001991764951660959101651706866320865713263753465326981078206644068172536291788375914064097902260474962548224180290828701404260982060289864523645552966739337927377098501075629345224297909996591794529665430310212838177503506917596368480357765820684932505941145913034655204230608342274602779661622098475257454808809071788787478833330850719805786810675137133672307342442993899642048195391829333659424248903156591373847017443495463942396695796650577847264637650287952559107336768732896809616672541843016634016653421936954524094465730573562230715381081977760952582804704096529986654257995725562176926690693634376905274890052091026617116296300016310792594519275951261333019042758530795309431015012918813337903531798502118853965445006172107607011845819994904210340854945981832623620388981726624929371120781821431342102920487101938877616716117306548332944713193717928872940981656493201809548562666920618194007413500064802270720272563639950420634322284731620020766006800989540544260418901808799295548347922968201208179081438996545438977191889895263393561990911083166544109129146624993186983359330571126027756818358945425261290178364945483982917070703782839689118534587449378917982575504909861953277659332675429704662713676113008282959496722164084291481729979250693908793475624880153916049726334693408587454005262463328589407241582727630180250160669633987507981108603628253196170623718122544389045644003073246273261362820727032481413619797908011406600446338682490719634007320234791819664198697909973576857760514037705835453684072667199795259462816813664113504470951458617835548219091438793738205228184915315956505496542242854170221799182659789132814268350894159265870693885332235924420970274103554388781806456316603814243178466794519041489051611257252515536616464377022432400234468093622368354418065196180861186857796228210258271992476244351194561172997376496773552723292843282523468675059884555024115702104941774945407180863694950271867439726818544697785047360012887315897399912601525685008967526030362790543013116145943203296786627150953553519845798870159304694425753376187033845752802908448361475190728074807258327573455727365546970767616006795810555397374476949602138163352206448520603622340343474575102408193218147310597112528634543322901240950866558927270314669415641234400333474186765816648889200656554939465121122506260522680734711362705807052876381278110421365224358152209454131146885278567779701274107919712564783710995731906582956837308465059480619893494333537105980486495414878726188370540685054969393904285931232308326589126122571025701955446599686641970476258007661111793124862413931024494459654453268498629967921598612306055848656476251411180590440257528396936444729723308541560632641016541847535344183433012844363899338654662292146601109060346112714313373488703086392775857994027598445416173602478565156429081603928595827566961087346890156093983598496947716397968262192334674432999576388763088949275336990161909475437044175876305732211632922937543807371245012646421315852354546813248417497166294275680584546936303410011097728876155042717513629755762128062080258391944351901839099343858564449572537719166560327074148513485699885150316345252172631835580823483325712323508293819849876961201785657527361704463286941654691261609868003827557692480818559479306604051418322836185721627169861475463290696253219232463885572170718373679226777865539689147568076859240787385859835748789495209235534872875411574459427852830834764083784653141633449347990044570427279359113428020968819753931290360494020279397818090546869763056004405379086977133951760697277621824860281379011094060609260613293495294424548000499272498254537038587740419419166537175066860806380574666458406556479754159039767456178244608768423030084610820550725898569470100269211563023819086430604509798455674710561868884032926343889664004451836432170191014474039479499381608605192747580457463521004279564153664480921628940790090264334837868206329671846216712493125683060424751322209951500879513428507517346822570812201980104806863321662565445592289152363926907490531550669174754416499062792130859295437310797786470824829737087370560505066954547339168113143013876063932043960397262880910838045411852781353805252950367222283186534264291673185029771661213876435966529286123719292079547233033714221841985013047634349325288885454329225234786505138699263703738100730889424122044759779726540097678523190847414852776427558762424577441966946886012117573451393359361962580216703770696053143280718124501525371921734534538550344889127550637153678543235656422931357769872546454715004453492326800609109498344488963139134018018450626903897731717928417885776564239219915597807121162524348245737440683579113639954096145420648366152632898213323003935650974809282263750521933596552240196696219784106433640857586085176431227381639565807406556688323410065375453837365891518021041770422093364610930350545807310459570618661606682319511728672348632921381464074999766004997872170961892077275697054630104175588794288787722361284643496619748825461389393537333471672866872405767411814868002794373885219532118718820560312592594305600293676584312218340738542031151202341116903458799927463581919536820867117167956009846257452761751483694691969350595784002039885275266010275214157635422419016633893802474220803946978576826075860963949156095159691287952842107742941036351503929518652740630694977250653747560656795889471963756198267499500318257297957933576790207173152212437721991780429712461500133211435997484239498224783663337852036890303292009822201594864435565973285807215110527944199767669640327735110900600784044692410423224320306377074144732757224768053811455663553354752028792779659576739815410310181882527013228199749458181271070673600335866680765390673293214690207169193042709794302110548787372755508260506967338431647006852916583851364417814902162947602612231447193813106702487120423459712001738592340220194168984297513376996695016184147557560048038403608846916062478823550219309145014590689161244840902688512256909741601576159376834559701036437160702501970624360743254373284611101594290744177013810754530978873937516399551656783274735508394304702792716781774742979978621670743860528093543330438191818695537523744896799677835281674552602461956024656238488758267345170884971526692556683825672193471708832615281391083494268503834484613766083286339735860076599627013130801885464866622163341824829820461897887686988665030948289214610163771496338557221255629746443008538971030957467674084735000002172246348209280505176742713700441612068923581794868699608089269509556452220350997130150611865596164327059346405637279586790875415248370100661745568041006248368040295917356262561025642134656021826089687890515560529665174928867197501060968103106359714116322189568709623112771058071374653790042710294512705264611754190685619326645943434497174520430312849142649930925823843277535243596955520571898507008334676985774505410863120033322969315209314139667745752133138072088819725111419215380649655105658768121572675047798217416934707208777486936613956001813360651754887263210626132823201625153131937587525833724623840620074106857431676495709883837851225670241060301028972819779666732301456063549864001131951349031773044571113948772416674647029436602686183158630241081713036596877320322158109628434226085163242844139401518813730156316388496611827668394438877904018547576682051352559918138669961764035611759388844367576470560725428955422935110221032900675493353664517496865222378142390833520532964982680892711095807854767421545324657014647622851651823258205044767871531257990279586680109203756578946987941480989279491737296367998506661944618486548897240808967675790996139607334913612505329270779423240750821202022299295157494515952776154001604347851035754617660474319294472141894936657759307075020468707060021300890954331465298106321739071538151671845188452108933513292649427905957241797686006964398600711289441366317905103821465059004472525322676872974165478368281126522263016393976193232352333078292782053703535916870807933628006348538546145486847866103609193083158546522630620176738393977319217840523637011957652594860719677998568698853124731923721396950785305384065218582817155173987091042065928794343907147983939618073994581291985993921198830939398085153637240846043209938927247631167058348199836888560957066127600029367226912848289530331374161839335015230466199716532270858245227242973735261350205715799927580321653238805146064104311947570716854364704417473727809795780717650060791246464975593551001026477803172611704796910545500231489344100812877320146405372988793954705707374044866515263277835599612576200755381179698325813138017598320130622064044764216360544416704761899088539070889861860175503843020909666130444596259564552102440662960669364546051449513868209695137001132221473158881072363862273366210897443386009696899929893283505697217271002667562797167944598382782905395277151584489178144896515984506708751989354346405771973492028154071358864578904719568487859301318139786699287869158988311073944640123120839361382218641904576315999657446973983526642888409267063327627384406964238815913279889648072397826704177559686882418953511793109155962597136132145342774971878931621596217442609603628265149391924152143501659412189150358031125907155110468571192398044346084601395149546785395520289511121295736252468742604843331296706516336694331168767888447287244985119176105221664216753170806916897621337551629580586094066879833857968474647747689824568663407298496783128883664704786097384322488194743905056551297675800851569969166576178471744691376566907261648866584512524615153329406389889650177035074342266732332203037319548955795811242578485788820225046017970326487347588173667107835746491036754541261845849071121307974962370291904275159093549078672564916666721717422607126779861484849189504982168444511108506441456769286544268209479490247065717009358015569767839263363895243022620795419401886044196185791746190061987025116237588407897588987299220156478380494407164083927973535269055349238131070133598094000419000564080922340732627490802914895810795940130997156272266815298830330224177093840783717323687682882895733810906876764902208889582613747672874071290429307982041917935614630568684946469182928756484245350034954586093026840435324600491945657246410391431588959390362138593319344447456979683116620169989638157636512345837830148696317883038359340135702254512632199554186338322479490065750162704667578330027115223562654570385302920694955794782688725507272510551880650883849846854915980966688637652904208765702779028812196183811027589869950156823204610093102743353288292343710819180498540040118512595342634558044622120999343650794651469528475927551487609730938456990719377415598182031898908377534904139534466436297913132976066897922839857499607579025775278520603331103769428339463424349996451615479578018629803498526691794969252474790357516423298982844794817399783411222150228448441801293029040943626556255477234391621489307426459278759536427519113107521397688835005209303582596550841379060967854818831979389006364176171181236255665683311757403387313952829443062522311300122137927037659607795082375039584045084145234245264866179762738598317510465215299312252106794540854116917906908746824533931225945919279233028545443178602423890773842767973690774497367357554367486255891793975692811372067320158533802310381112558411828056252254156403548532702211834079294364038116529606354639177717714686184359261499543920663826128256256000122672611698097410563526836613157430259629943001071994452969268401267224631209549205404249281948349688547391928862528774233827885258221026424011291369190761221932485594105880468738297623884695897643265566874943151812965309911116865162369013734019501110832975601093909292320291329551126900638998595413624424663587434099648826826588093914985206094382392154070832836585140044324879196275176269518846784259297002892196244021629986659976243618103802368972292277597020017126007264705661512430408622131481247023358161751969892100196572842408771198605701863862239221931364598576282480161615095824824447303731959522867845546010025400723204639875237482512547905430426104413160986172830184954075373854001360730695251724099512157405921465975303711329860498451322741750952837101817821487374144049125417959817071641599049003813452519311803929752789106310528128798722520863617527791729614106549364609675663811249176102854700541533477691008454020342481561808116160874377800086730888191103474487310366550089920235186406994893234370446597595539715353966097568422906460580989987671859118529247683638166768471089492363919696117242858666055471581300706265312666409554720054463103062364684628035316144333006765305515436573552947079200283125248122558717316461728147461524995946741390245457623777140977399579769646310676155802162426442427835755498818685899047475858036695049496779913591068710868850482215478891719610876623292205608648730823433207338171814369527615165076499306899764609194050615693975985289192246079966178384504673931565537276284608751608347957373696256071439906688298704475766252254973958051758224648955863043278406372435996859758881846404474739911661509888940681496167050368249717349929127192422276524803799216988527612646899279592488119311458144819257946337920051730582278235329745411786273827597270140587669335588471127923143681080737356445631863143176241841595867941319626805423683602232489186589256907147911991430340509736509719634135196415338273701587772223734164861305008678005308324704452483946013077460005347173309783270805790412840851971664067320396584466908507885629719863948201652443463178182839453281526460129954541544385916150639380402753385820688245117309917758658823242219823190387619784481873527233690227659641708469045572883542280500908255320700277577298815361569112340908061372265789356332485095873483214746248055418771977693204082024228101929738934006625132281690520864780921269563929643796811208576734802057797239427079106130239422558402964260265806970633278357286179589090369306228903517622215233284970224395887776763728272480690612243082449836493984213903759729274716888623364294008849590408174855206518043540974623116173441337693524661991496310649430653881343664650868968068852800428889512504649185255464769007283539768927338979891976761746524461452499780763826858752559286348652572009310312923184299684002800961704375375820550128429007646627236638609142195045006063417967047870911418217874543070743725987639690077041064985600712198130940190607528043357663023216367633324782241666941398849131896951195949451128470155483325417524084868255214202740760349227787773536816477419024923555807395704311528076632971712740828552904290747765014972508720940740448806100219646483706983492639250129268170478671550455258883160259956364698665159435898913761141268069851665917141694453892087900662538293526258368493491947090084283415908467851892936454880083049385893215415299428154000621454930245133805417875637925417029412725100822066168368112158813164419533005320076101868559266261489925379540459430747710918199297821478330949147990036966093776401857371702396268790172368778551310580431064928492308725700893211472015174243078825522651296170624643985994897009381256656902840315296663364933733537620286056836874743418477093611155682351903998347703474326187614578762060671717311122824349040284565995073906200099025189792602004376193679901588304722648079305968341866866853573350538121106344859553224120935540680924143563731460784771751016741987636434304164159150893121982665759966408038253208954682146693943297297881610948686778988571602703094761506128291504011649759524875471469158244403373580225528372253014961593336817528340885309547112540703657200356811977016107625359430240220506960067046315813365083778234843769314159942194839704370730356808253677074054259744263070370783537031341981678085564974674388999825335961121366102887034417942280749361668302500078623842837356260042456647985956441926877224225302248068036556574565731883168300024869110767796253484579004466748960536269242964266550722907586240127761260578435246434109237467268205795642836716470093503891862556026661448731121549630540092095617871843516164181717702020197058967202736942641546649144794764396172594690465770329707002422190868372131421427072687544818135188870238678612884703776464972525863931418419905831572881025327428060801876856342128843331143718568828382890227330263946534956854911760679521105723464775704361977869094036436890948520449466795260237715333036381283019607767251628531411814604321967717920983546160766562325183694441664554689072187468020471898613168740510923020232333912394842258178497453538589527029917784392553680363674526168439777936113904877684538292868817287512609907548828025447248951902488024740087952433714811569947820615493422482907041504580010938605905824461670373315889810990725588689772942949969419337678761396933727344610844380955345100485930390139090543127932260554586139405124605038508743941514243151599581802139425394397419408772853364175393142388498047988471190832718491422694038138972983148541334787003025952833387387028675770355615543576464686112928016522986289326128702540407362857460024021097057125983445711839092413030412835960720357815081810082922968940426187264165992573669493875521260348341639235290008955330307728027291230825483246223216797635942909899134612511781915507890866406075504391069065871629019795973767335583073584116964141483567959381006173424790969605681067367554064996496744336398009981653846558083754695732207798832931260734266673961798156676343473408217301720004877672844114353662919917308348141817979566945062495182921282450119679528775944364350930523982221852317015920438472588168958965423911166891409495707513132014675213928778488484642484571313948763183398979684704161938699948610889625094210981905637501136048832027284262857659539908562839896329931532254086135181929239234880057077916905153068125749181974505911706053372903223559505211250306680735176625833356426235701091157527302311524705826891524478261014617801148594256717609754493268886098528684610914834626297444917580695382689444551863037173116541728641526200937974474385241683216357531681396230799846937956466194550161101838976657222406800699211205745738632688146757235966436900589733260930424317229138966482433922445090623752868225137724526034576174448981946143789804559262830347251016822496030666487324519362667535639587986746342102317610537560210678733098174672697848303914765707406996607412452299285837206264237645290409800908771294212710536732033417844265840659819834028161147111493863456877587893848967787625275855472931231065393855382970616832772246348741638131560696618369791495341774075177351698613413318600414320715483077530735174097525847467136701104961683438574593122524946624022339227192940588131817814170829509397300666973079326116221598759349230968602561578083360654829836765158993547140975309258661195935191543390233536632313366002388376533220162114364209985012691210351945677777304150539458716659076620375688295971330155734000219503071011655843845811557497640801063473203088754834965679206432698937068201340346489425805553427113036964137267652868808416735764853375988088784361335162140252302699470585775905585575843502377337474310517380450245228993257044777991681291452352743782739357791600379849041307055227776565486278959220903634027731122987705003780336987187199126531739453948329547445403203959939487146342796580336697436300743225949613563281873587772311543748131967606652779192847780993878867238172460572693028578703859654236429585083839896322987357849608917435969172410850400088805100413992399798270325280944402461092662748057530534634502612366665130140753856309547351894421262159440784976871778219615579107967867455764376567174895378797045778775210412525217945142822024101495192353213959002282481623841975890272531461216273192406509576397418374138052623178498312612691583655248285837215733685756573356048404384549271217113378533760889856789293724013532877946342762912104339934470452740883067518243869055807220846918421848870343891395621864588473684644440351086170697279431631757232678314218468848695466268470697658743139785532803718180592139723383020313797310767290412928374297366856752926732849885948194873684652104965434281343250452742987692489593508004816146371445866296471510371409773133051363438490866172605448551016719046954550085669569616040482448501693741200900292953787853808594542259307707517133337746629640115135455689234388447359013789303448065241345628257573474525541611429741430304092977070403826781779593726427936577040849326187101195060144946261956044432924737881365655871986357784178368832394875828552924077946347702392870741442850021020005560776763150702156953003324882432248050875662588035767647648624950653171194977772478812580173500584075378930041489729036471910032062027401518017897530155282103434547903653700228051583712442513025159073954040129007592946373737914742767216210394828236118433899140356110650383080920954895193089086849486677238582382980011213214489469264359329322889495522127268352885672133587779510684909916405919891483375837257948130328929370570682674425268852307559357193648410046265551433037090347871065511483515974971583238758414345381259376148716394221344470014816733189800720230233010534150889963601393722038311305758214346713028142942806695606109488843128724684857049600427162482474199375024654398887480447317460482732562084164890658476956131354103737258221351384058848780506363880997337576259262653976365844414365977466702262530452608301275645478663255775876696864113731325419472589737551940446533937582254989900666833084411924561511671391533774555450512919246717142063846174166572637479102834331425245569878257057046969433957725836894366699442753226310686515783583275448796964550611751442187991785501145419349370465624047147599552002840650680394903126523480298167450340873700326885429465545995334435656993461675491558782487920965485654879758432515074103128243595929060448324943206181418767014872148353893809879814598800026375818817196127236684147773592885958113479206522083630508915983055947706203428165092763613046508584027631735778387079129922126353142818449206244666831175417086959196062662493383775452156631218202836786588392068998569096464754981678797773596741854198018352916012290486151402938088590865942711883770290090016483803408317324680194501952527630243252749773509486032408043818162266868098218837821534737647919799580027237031694390633374334807637504708772500303313131870130100246044264839863636423341026099657143926172818064377009158024103797790147871670708499754327586692319192535899970384996173730702596832230039875266791236638996912530673821164606000193067500215925230972810996382921282367745809560829340171332839887032678323541617236120480868312692579165965692243016343703262760523281405863708716360121156674354173149658887305211954145391441806823581667918306886011874300957808255137808826722936525153233047416562059787164111531379852544167819811339794440288672216602759936555854638301160299649440423529201998822600764381945352053461458958061803145340610429358830074953604316111484452438887586832462933837267211185299880136683904628729996338015340646010063462020248052580398001251800079046244053451381377964931464036914713602415778992623062026290660702860509029665487799359749654952659196622833806675072453885270948265291514969310386592902581614860132794369754350504539942321235316631527088555200619163337019037075159786715761035603785702529856922079516311084954845027531651826865368948013460446548025964311226328170273083882538882997576784285832258265258342033572517499205400891349036901060657800993554352394242341715618721741101033622002190558657309185272522290132599353591688134799859000938886659656543985441471524745112417234857974135665602178886893242319753615539789548924154338706106734027348919306638983003488914358830587440899085239016673311081320698622237669501971113802108223788840921433154464250216037497965426219288928890622426351123716433966076285504005814347947829147719372548292037403377945288727072627515413232638327597993329441918231419431545917408098720021290452796354523739562601150536930146990570528105102267840026884332951907598315115062577053684402826982591730922652538103770004523527903758531783854545005885311097778895434592032832907045285019135840846549691328787217026545185243190644196966171504672058025188223501117373541877844390848603021478122200003772315834266581239396576876420017721923015498237883529400629017066523855682071900199077563101930851409031161236393233808262445686249559006348697786897623281229257828044393336441231704376017720903557074020376453843394115347448272663709193077960473413892963401262857349416246504418553997958423494659128295670168049869104715501751671477002537499711637596760156883284767701593406331822111552195862244951292776897136069102669331443819177271956678789998136990987376243962289745724306366610308524783392919944732615792010993871456662083215218941961638494930059170703191267440549286975921514945713351253233496081695616579492974422381495109859217473191092039224961258877456174725351083676680837373932576087677260890774999662745678948393831451356108642333199983896952494131182186407648837867522674495625919310918579566641077397282715819797984824396394840681057697359669310770408864314128876513383667413244875034788860072768522786103293772037469407992414564567199493223330151074644065696887339721102672222705194868568156174580513110942845543037303667492005054368698389108215356737874594178566872500186414998226874652511494005813800596458570324922755593943377297702877940797528321011401512045247130958947956090707464429243218872297360772129706507737290223706201122673481349603163278759429909286320224802133687195651816830483112998194178599077534199711583849864372596025523914067075399912776997858023785249204776566973927320997579346833204866619309360237390068246061074165690281643052328746519369116274456896401947537224725310380164135983002142284799825646477763717871078862955532874401103242402372386957031898266085701679137445155581305239221970820010762402605319603044730600494116105347584589887392969125010246273412447682045896860550899574292256192372252153589728648591809500362907105699106747041750231734977419898553901268796811617491017191974706300182230790672424074094346015776454712419391269287686734551859945433931349581189936191389023712968015672233822931970056443735109071159755897170220349622544509385175915200875215691275043000712021291499261586912440648130013350271605798638718385083371777179499962428039868082322907988821712450273391292517201444787307365350424855344087128842215057611542314098930873637758843380781989563360602790117318956133961536856033328461206512022157302664478739358347345710626989035138868788704018934122989676809336970806317692565622598154315488457955929038721533963256577345964034405926431621466105575306183429864387860233861387367094118588459115872243465224268289916939878034321514940117552887411086209163541057447792846735475192127984707230950565602069495761901818155734759534275940001547557652505568223416517687376277181533048982257079221049886283309309390811002710649228946688225599249813269226629985142281065477645666852642232409984914019659695341477185764968698347410837537756393963958401423170070634417105636269157030878529757933428783198399520015095598800236443020495570948791850891960383860739094552037139779468985884695939535513933463784259555459056122838272700354366909276301756872823671989565317167632841164206276817158304537249180083379084979925010892422860989012147353223891025822708241227408363343922208271898659822777512799551147154249506943383423063749377867269187752837098188787649861869755536385666625330970792699829892661214516474850605751487801357905760567353971264689952174292551737719777394382529726432802906819404375296594276714424829191566465051985621458023951961189551721920757184528317908440978494731175532947256306031368347335437977289996073767209185257280285471077129359439530081190657363935733404068519884788469795103193901302217565959106853078702903182892229040932145530275450203706496523730690119459448401119164546747763947900231323756679145799574692291861251044474389184387022803859693361323286281676457015927610082736919981976332327500482997563228291110972518097327569750896055028178169529322433828066715099313381018162178710626626100510636221960269713277179461368727581292351023608481854712805031495958731443410462895241885625384338619198022114569223152298382838829104552392317466983369591497409278041163363834415656924316479865681078882079773392699392778531281695786962161487149336510347306344038158641269359858746272405221143256986852249323731281606178522825939799695073197411299763357640541845395194253844872025611546800724319812635283142738482754319085288283410003781252034903881863115305941749993624065531469207713453365977814531794227630554039825464440562829632109211751328673375778070973898699438981792147148607598808652681437042210945950604995323636809841855222039786001694399185859427055007487266316225918041474213998560656234572362971048366090925752539817284816980045008889740597617511119161039231805206683875499214123004298405798700425498459478886589270328419348856993713640760870703519461293649739728152562985927660205189454051949926968175224064251205956342728328785820249224032853035688969248159515289913174133225947004931594280502796917192388561895226018509510764521399128722003256543619112683864407617408602756816463727934914203831235452202830159737571163358919465584418849172651112944971777316772795621757566411523644833340458157379957648370467864659192391849044932439383408768080244313904289044863338654827286301871609565019233707430019915907687295959808922514845162234490288956589845522453801763784365518757749888572874639269762434429539210359055402178195922413149122477488809454375313710227245331633483995819616147138290233977430615337986482842574050829602253710543691892041015609084794325802201357726996526581691941467758366904204597011808006871653214727428545469288069185578774107825569495985283919297425212859886473742287315569900065322798070364787140061075959717538791590880537214453520086666930706877084101513682779392720379321672143757794392141244237261040379692429609145227147988891996626103170749980580124288408441130731572674102180109408070793537607875737388835154025458316210047982696974590726541798041868982245153106031481103000288138228385971256567010062521500435545020655831164072210929678613928043304144540523428354520043678012796044530359531350712696100349923629086257188714889470279988962574367724168950789303083880170361162243466030746421211313289040020378651315524316950940720558150217932944607372199196448960665000843688116005982994269253482291700178427142307018071704266455944050337167330300197391439746289718333973774233014879753463342435231657648927661595561632722550366963153716308961561522128397022624733459606024218970144962052643929612452921188397407421886982960369636149637097815570954494469739339679635099742292657076180782752704437493218261913419273205720014881152826568428866864009922531032927256298334968326404195381516953917487117035746057158063728102021086105565296025667904241959883836716873641432827038131152800214410830296732338662385487635562912711253984432927666914096686363736102028953565981162746323398152430077685751108625715885200590133761517542469701726361127585149859445354972694385053486263743014104788470195421169264650008734993873739847860868198001201300856083644616831396691749559129247610386836759490193431310496630035238515518194627610421285856663391142727179422158709701466129219866254429668086213736316784012262014267314104439723434333732189567249269513036189383835024136371835133435485436212290843389737419881613185295460481414800643422953018448425406390688933237283224451513693217555337863859751090880666267272669960864630721221771727347014841574993901762137360574539701182863061123330227354287039732410229497100577160157412618091949997730030716061521049290920319341598915130640692808959577816646523281685839460804055145749704076772642538328508340210597919404723674507821759449131396489366321145789064896390992162751390282590261141843079993128068607287891174955133835516003146273239640473524038781074563236880884277030273050491783538081210819153495377896103637556755553608954372800567369314620632888693048867531779670838233257651826986062395750070104687377796344902635987786851176663048787556826346359412570362760073880050049750887781605132951555596785047941177462038584932323887731338812365340171481949274141318701187658266420960269249938904108545689888114956539978117040038044257178660197574541074789549123220430220336107716505551850325533129451433509903330781019176506088126724976584633292338976055956369247227333713983342352319586922753520799118955603430081613694383934591373093648839193508788034363826616225270515268131126148346593451943517033152858477865206483069159109375931293695807812744722909895433629145675300791810655179553728468849666499654554208709875087808828372676546399552694505424092036586336226392823965432815741131308240236916148050297127505100095176341163118159344539277886519897661338398833196836314311545614863475607001622760357443356972961257103672855555967055126343924737038912633122332623421614445381914132851203699630163993312557806295672324516432105155529501487864941666551809680443297659696854760133462023741825140689815620658828312622182479759544378785333560793652222694229562297972903795534765429760348262315885214570992637081720424488476723521964435382042080965180654598130087090384423596061294842215647267901149075869972585203492221891583988349480859856947985490263683949318195672898351181912158262778824903352219184274386493801596822747630910046471351581499863881250175560895043688688480391716312477589543279175901103929863771571192124501624311492949890624153893359891868390643927471620553638153835356889187489831507903275479156209955757741707440420425572840711895764737764084547322501517579403162112799055207418323736614216076775167005908289566418312867523555612075028210339912159145167986565664964555137336046522517709521592570551537167695008508169663861432675728427644276401282859081884166393896536127276363622214926608009360413299798857587437466118893634990752320007882534627507030612863869020666288509117053277339185492618649156394890745626980141607521044100206903750220076704124379778966031259820659896025967537385399765762840664608382290553167004490150769833668244520928180794820389885256817517692616010392872184806986914566850840383090832438250708610571524569022595360643664651840358607205939164815740396145438466770263112527106923925138286418415526188990985043873738594980588590860086261034519340348325946784833288921129501663859653465268784330061892412720521929819590924285921517023933098914208512746204288522540505172407593999925725776374010438777328299769870314488136126932253183335779409635079729166307659242221932497929128817256012189655197188940838759182654298701224004393649744597681788551682737567977820117113872014619282055266067801095069100834768350110215471392886014015657543248705060672385624789051766435717118966169959692263524614432701400914167937254894292007758998424349828413837449621594194424351169358527192077240393127494831686348332237696755764376202415407894181403099518449019125596089032020234814013347294681664972306386902901078577447810124077454093433543426143268888930814659334323571847703116682851208927958942195446833548448410097007684553053215381652398612658985106484540639336989149810406157232148492003462833272241787002733868358923619599936924446530502349081957901874387679889538476882998549287234671491171120848549905199607999522296503755948932358582984422394959100917303774900287958851991410400426511631447300595361389298789583037309638277537598348020366282839277716931337116225077323833041796571640785088538844422733793952103105163168546609796202610494194998199709737034176995276000043247962252446972019119578723088055754137249401366944427637424092245498100838865367879749356663972156613524200646969921016727985314647263878268862842608115861212582108383378633950792500416743340545611770923354852496155161635428018760014629162777909801836104338475904329631176828848475449754071315594619498127905587349993341050548064458143464365452833618068618387758190112930229629039567332525696705124334357770522717491203283653107967460637919195286450325450795308529700084778758309097499516605588449382908777289300964770637417323944706459708752066315071707081891859877387012883452879708970779673705855307285764997864448391983273338809330314361449830958171852852060107689217077272408552821249177709461733826783217698662883321001555706759323930341054939554040688150129897848775084476072801213101177461780532913685768139957870035039909070688909558817065893049257700842370599592161370657958829563914425245589056367921493653483243478329109241028615836241178987219739308107962496659466566010721618124890245720788117132136486183198036157372791237199317139283933263608044048650591083063093877728698588702206862831760682549546015768093533960786060975920922459251598423236704443876869889139661760749728437502393036582596165126812523673013695727616366531036750187722209066860863712922577579152818150763074759563748300180847169261092588131115047343151858905774308367241462889611503558313955487784883546225535798327622419532978790496489854995086229893178571361977521129139028580136300140946314350594099421369955593335038799780687133165436357752246842606079368522904299006993122745568210853901007343525562436245872590568378844131860045021713647203674055641314138434869034607850000134008638711835176843819896869968583515585140871249695944903187500346210993610404517448158979888917188560523072808937649242721234594430893292830780922859135330244507533491028189741613062817832640401700243802653331760935117908736973519133615321039536384458586984240039493693194444854633025958297227221401270542350420863364888629616257121875558968318066832970339088804330891133096038912689513798945900869395500456411332207541706309545843687661784271792940707177750644375304944668543276058797585556802160033120243792888793010300719637959373999523153198692262901858570996969124411295708674415813118846917567705996076017083195997180621069106737737466113129365863771773000022467263262286345238580765575598521138151985188092426848135901419567174808073163610093510205687255228316840745760111755987407726723998641315777454147830088522686825717032507745832284042728478544835656089207515555957317532974206140560650912907171860418734539425065261919282522330833169143171408079672826635520923310369523743236902214412474164919220973551521102493820737976666284512153910463991171880372403877538998954046060514858032715740480740967227491107998820891250646554813379611811761092861150609836253208589172350466541137639510347657231541595175871680839358677195904700331941947441162369525107282683292591602428836522725519515501355101431324656474763873746198206311935599843656272326279659820011527463837825245314496413191209133662035367403939429085677985601296864574144942660165970661322150367530223533396518068551054963006032795584027963911461979124741063814467393799212857639035572822851006594961071441090176372448744021568802662620139329792502071866906050980342167328246222948952242569346610340860917384592364760816308321636286617295789184321340107691630632173034989132007382270089300313609232782064323146865841510879324776398898159155683631092795842906642833437516620952669225709983355347480137570097591051589298590301343291995058334781258422753621865217572949468874839980221849871139321338641531965933637316101435513730899460319704963598979184446517356767060243263250455744735358004317019838612821611701021344848407303594486972570080763294426786471380858503070096355441724518026842147901319484106650449543768734227874393385604809885909755863177068639592244218324601998071969967606892394805540126211668779563084558263096377386833049403945605744691826521988731954968320592792919329519968056570771472384172743277430923241135095228808022075958257667921228250801262522896806961617631514081091689619386058458613623025869270947596753724148008508678588338156384884501973117453385211172236899035791589690450887262915497009293891871204402191093186289837153431464553772550382256710473330081212663970416708659787724586791369737919059717459330745738050027905963017365207655603597936510355295989165962446754837834975746181062654274792601619033272544179550070721631855767617769405570631063397436961646733217258719991875905284124962990890467581222160454028048450314035599260622799374786474908619712081377724599028381521636733246166473102766373202836228996042701880833644865444686460754080439528595637869372647810426544449292706480134304395510503969937134712174355310682332180393626811128157519195512158440589004932036922148237301109286172865510123697108768489605820407341978748267221901262483174849931237329188386439628114895643809127977588576558454472325937754560811012391920460264459211156018515332538839620107855057659108403778042593921143852303203359635511114515745973657848116660026635249375561765669310258640860515621692876971712615429248904982857547843644509438531528165525890504262854295191551966669408892939650497116777776782642494682725193465727396587196109059614407839935565171498516406614503507318996057818134990918319664541488771050585601358957779054343435625624021514079383153782934735130220553214485304087908902926576947272381466031057380694609364947014592425093570986687867661255284850349308753935089301668239834102840771691377054050601097514588923031327416457087883307485116720786109308630334797554957801130103110809433369634509101970519797410997090483198005356940316671222181682820545087008916346237507627687309476039228972320816202140847086597333796408230848253956221707648248720738474657877422807366120758617949058362775383043730168434478516432057584168536259704496690061495517940140555104730599456391650724451953870109018183939880514749098240733924420911404459948791501350002729454762451697662647454016183799166786768647453771405487739113428245571257224968038311960554400775115872204427287989825722775408007065581315938552697904158989923940825248562194680554067428948416345688964857660050470672913217513302787933043944148310033048572061433583314132947280791036192528792925491737267215923012761752927297906414272071510847392406107851206462061945163619577059539477398846645997972880544238108316921255991102234444116445659496323627466728571212293630859626521187417266196758673657538102258585667999317293097767646994385852289846333614833008997091135057067238605047907592497447814422903896424763113731715232902655214052352502188181198664584601531002442003434890864657491198221742168864963658333968421915227642447806390165050037542528562902385174238904426592502887320519558305240534948680891263017701492991897459718948666830227611001044207349826698107608966349218398033863089062966396531139213186273128093550738495964785826031734598318790870167128125367918944943841481829591378734253987381472408390091555574072765105501121306584256660654690240574499489503813802943529006982941747887966519319756324185159450268449806553394121089051035685831548012605180145149477436363472830012097819527739348480824365244579084495267996879143298752769507274919257397615866530298977825109609675152058437556863746662923320929185803601420148599966470589958313792821413881324737483007571687187433577667830673071213445656256976039858143372866662134874475497440964607907489675058423855596908516112695840828641279731508909625584857536364114587356107713191869386734963303869188668604465132319864068394153343856971563883350881615396559715736493642493917306702689313010112189369938603615936148531786513608801454986579599760054934905302295805282617765499849546885190652281356416370363664322585297307283211996053468979955960943752951221741492061486558303823765843498995545078380426830738314631897666486463041569227157631874204752606468634843797209500845891841612773482085018988420689095121437160292706725991376294215409411013340252518264751185801075546572895682250143484859955971828785450044150570749647748496733435986579673106781913997724111186547914728172389293182898449275531898642655961384577126489391097352541504777671030723893164610524361299979270483974657226034224273147942125272894262647429687169991429120844263867673132706608742833064760565396972748428849261369160868678508317776564373288610751355888735551349729693732792899532083556372720439448412084609135961927380069613291054805854126692924897552829527732381939867278541723357506121562198322701384927594844029391329854838388369715110616237184980884957440153416258085074359473546564263212370163605515655767241477101110013613778148980718645518060954209697511247852529535113768835135953187942030626925982479502024054471805152921462359267585450447039267005803102902112817267931919832273813281918322888026643624826325618089009864084098484267637134615633579067212514918306068581631611126541790544508578519523106284203992973918295937701073327632245981207196241081283458362536089654339231847218288812227061234149945101559814078271338361501269739689378872698066253980729108816898460429445637119318462092482650433652715938855169496127104842021378933413518694206362574747046254500155832135291836300918333221634345774625869128684109591796778598852319125387993486771059021124017543718970568159124523456340382751173762997248212020332919969987957686793642044456380498533623741750441436183935435925724714576810605489804668093821341757488741663050468630240514611906346407443528991843157141763292988222873419492888318456050681565238807404692577129493035618061131567276405202411850031442362824903413545908280424458793456595965485765976146344660988877912300479945131222704197055386997686561324531752753080709783749849637025211627843717125200998900439517795882143702791430630449879119313908576973440050004556508021542196757032926574724330250525598660904360335559071004520706777931388314347260540853602245481714058509712095877891332605810655101659189440589337150941996652870678705284386678563993580623344394900002754003402918878952213048442626375415533072145603723727721337836353434768370702870969652609321483468238425758471306025282549208705696995349217651280933004976710084384991531511069955527907179019226680701911906787184585752166267910586603084289524647707649062156819239000586542947647059781257054878869936789784409557111044002935883044517474163292963585628846809020318690418440633919819454068693374814208065548901501057714014158009300623977889451968574960099416506894827818135909580365653314781177527733305295205204851271221711554273143180912195017974704127529700717500380888212968790509161940153593162489279609248173484696273290543503907911493191811342886850197557260362652260774981003261853416024217145992885461024838541642916366661359829143823563931675921444774441042571603959474254821231669748318196101571963154528925064499382835396319514273445504657233258148665950469143597245467258786425032868910536016399644662150995005863810571484592548583929415304688709246218121124815047414519806031066135045856337754900061864134946807471005367721855153970828789707208459053656414206158603974640775002762126558558507291250218904062894194820976972520550471636324029501099763636090883083263350540743048965573640235295091780085757946251027307550144529171599655953603458282636575131188947411348690134797270558438566681153923706860096253235056444837841514020557898585791150260318870824204728870449643529189190871046565561359814465197438143323209543190442645742202956335706448286657618884057414146221286221583770222011444440925786659423028540164323826834452692358788993577058481076153385625659614351292736826972147857143914580821681391547335329269895908647913757011304532551592600074062377758981604317856597396414088148125171424700755113513712700991899052012113465502663189037631273116351174954343534175008701441458634966605542392514593143076442602266970155232316465266472453371197038859025477813782137195307463046390994442751952898599326863054310507891849122613477484588360630098778407969045365040594784318423313389686218110874224636782731780016720893110869287649370988759876085335585137690792916750105538400468409636125593716841819189384012611621387675375905249447385107636331174571535732178611670371680152410713949437479772176482437744647750059887881134884543274460559128175409976557149032377712807653009318838708334432793269881036837756274057440310602271945676161538330988527211548014246021998297291684653787463497243534889217981287939909391948380218201976253853055949009557503969875149439923991450997915030095975392324633074156638529004530203198693371681290399779581134436464041396489727946886669035801829493002156232575628691673308189863624588696997894259933811308210530057430122196892847647079766329633288603786633022220684474635977309580573206284297902598036405329741009001169679096443942994421067081437018609983869304136894999684240398080087476650332281898883822502394568106227723575622922996262108467801639260160643080782750230653426539506397386601671467435368222383889853657596078704841134650267199778004133171403823350691432116586083305025929433832162985180287957261141704567725673087366558802684749239732852328840291970922816020207060614931106843987400478795106549492609451837414520122123020292596730901102315294342050526014692878959132824524387510418441134659649564964859500220735134002937215859633426543710025316878880552258115295517702077956881737608941683543475668796080679211675985821677521984203885591199952982175009893419580234627377066549107866278453933102423532932261962928967476622968496230005147441186916960282699231238638648113142507341313059185226391229850892249862521253128528999831874156748318420341608389217617825344299993985063273876108813901731756678405051605439933200788306125274290851611893514553751185837562885057144148488570038409557490249361548590200782701276577587234433171305624310353511874222932414934032093731568109800486925492679106318968616172260712057135787256438550462913222922572646585813746588414537612252150765106099201449046272617584983154363836466849885282764398756678902030547296478664066121260022155300222617724365859135976852565633258891530640612305617750973578232789750503501062017567900369899803834402120656011213552192628532083527140768502452837292948873012126181611966889751052912418622619003320541783189181043539796115322143995774786214190423542625922367477370202825248505025523362214393677088342291363600646520506432653844943170562938024833506390771025800044822170969433907411107517663366336407513550372220611708581816461267317134379041398320318110262002281492745721335985515417243205868728912540885598807857545797994667317913070975273240213850328302079009010964382306627774866955993252803184577439364712008580526910369343101165477912492521687118021964830119518901095073126837244616567120987977368074518692460573263807397066989868373167240544871220687473288061669266109274167457347123919225030119426996184138538691452605379410236859216904097525629834514283468387053649236365028003487650527733189123372177406884592242517145753065522515105340617866596168489513952919098094226693784609951288232844644022612882073553480655976308032604403704496647948955118229923421621417271018771596840142411402207154119088759371961001312690774634895946992626957780089372986550241923922163065716073124607017886130695919941297169258708490128957284744149651740704156632714426067110528139546609750347649974015729026643263760247673963418722457252326436253254391352054556463084329156061152699855407493554286719236343269271812756144528036358180807732347044730231187926062889963872608751027753185592974297846150129031530717563286196141630577335371258264052980232720020839439060403300926713677884224658740932812510917313279061858575216428650926989948210470448327856820637639590825940158121555495619946126461907885254594153238928251923852643429481761899455045134779574284293567406120293027448694561013841259529782915871688109839660967471102614495452464044146721674783209003584348227389355167827399632288529996723526494515247554225498035158978187428049282772215944763092461321865477519638695420582425782346896914851963244549743179310383486165720790339394995714457270728577553860494771512926868753436534204430945314923957876949552089951001704512793722905991836502692073354789528652891842467193529946298138501521437702757012937694133276511733063872600659925884779162777768858697791045662601693105452620693477283887301331380706151148708712081055490092326999068781527424725511518899959952021463110158007516113255203871742700282175248391203681402030612408746805549212688148965651598615671395537663383562211643056071543021283980935965903234093358330816840189937320278351486494521148820984964601200454658095513278960295772423147204837136541796659816460341809065431312800348844120529064533649963858692687394305652653060746838064580894849393525998354127277427263754034517869467793461362142594778907668309002376147416118472605780388540379299970345470544105995808375312463069169973286387257057083954138521970860236100765675383284393142572143643223412159091690305576452256345679861873369526834541422564029435736688128532021194871535938549583754921372191381931413054396429101833665329036990940725909432370651373536218618987460620926108918105385800101032445672068496036302752004179852894643221546821489910717416564136711752168506220342155171739345027499628514465497918317855281863967720832772498334402269270584347059347182037137939415400417227798008003010667415393196376804966126847698256197304869150844975791604049356157713096207725346866710334026408240202786026514753391018245514529697827611193667364669956607799514873928786394709420762637200952010553573327312290873214402832399411656797379036908433078567910365268908501792244427042140824764178175179411753306457737885962414302177340974920981338561184692181462337931810598584600627518945314338930902731383575104966924113944793485377364184356147383804217315583359716751951661916156566692822421769739974087994725342751981805224353610364407282596310673690150384623709424468252709697876449048235704821503181325849885433508767349430046727767541091741752371305270090768307733351923890266422499301053097143401433028026317837983273633706722645225863614287828615716094763566561975271802978002084144617691168595795144324714734680554119181867555447724681676382620730795711690227053218810029390821904829259207060233253817269992978407511328409590909538785633407628917078190434090616174180460970815303677106957079162522672090198001702464938621270462076280393001157276017607945260605428898013398534219454699453187510586398433910859979901465927013559323490727071468762608612678495881263267275986725987588574965939147856034852519880218692209714327555374598885028478061055320234638704907427219783871469608759891324670748321130095707880167831446509447972549464657386617472738628964033282616236956612676946495086237883749954890495951581689817844095868540770649112805259807326032577910390120061710562414851290157971323115680914908786289723233161042734657001239159943189951961147574731239329481998094316307420567421246622806194016117615553176307351807936396541483186521095746115946866078668782561332266874319255211605151524937864115825043370310313395432259797837029972897365410274186499060952844165673698563132261441365053323451997133825591620113646641556110832461028466708528231901390983513225443251087890673900350651004328898433177011620705741358735209917065276820220680006262138059316231115856119864935588168875642961478579483214327385794654067395742199889344581215422247512736295741927980901369283266679492759151414131746018630041187631438325483495935058835389938111798945833575491731031453427466598677707863889458395981706888856193163514769050900800848183237145681067176111004899499716120406763666389134931393266239661931433041733743463447133886715880538191760444318995347302162151450177721295677254097675668437474885403345273723454431205519428875596052375726180813592619168414903310067729019912152094082001377024172663083911586162901868137356513537852347147821554907298361215827680530263950986171885160426815980401947810681733202745243689221167067412673584691875164466141898302746746467207727103686217387735910802201384291726455832780341351506465865795109516058187042772267349912598031775691321905151484809242202792012622522051582289999505942907425408350700827826943574197926014191766883883647431021832022507284383198103657055827811519850599373830479172986668958628135568800049667684650724574859822614817816477597977227336970436642932103536121651783746018847198223884367813219270052649088479023039224288571224917330446575856096192215850551892156332225091489343697237605367667552772020443277524775280149399515346759570380991821689259327368018495272523394061115195790285737884767962885147971074006707728983117437838917260824853691016245188373481590390258351195223927282775176265096121880655002783358465955322141322129051894128860561181430890246159943327415372763260415212738457489440781287039793479466506148331261938760728194208278860111374187998000371250103740503737550595889504589098061763428201013774127199582290653000770821439076284482546228141277797690146090010110886756638623782310660586652462526241252313646900129040044674532402905805053836034268568442178892894397869356054625634849050588998954358800552254018701766669468000492142228309452442498849564497926108402229229451183177745801752306377202711060598445805536637455899061092317068439663251431213282580717650973650495087151889580656573117636541792302883914882166358181655430432242967882942356801023863855302600784591125298733744397133984042181930242285476019484572694927016550992896380613050237788626432974138532958723033144913705533521946331097047729333680970890877340677429946498714079489170375270224560119432933952775757625638393037561252669612348072715184959579756612275037019176423434976090244307941125693158177357029862196337220173300603987010158522814509711159168056897113413058099970979597332781402405768259332650624157755275415899870034247627809639630267400593112366798414781313036744790205440445781889807544584765439396827427371083192301274117607107778017648961491382403799114169324691753693001431742897784815791094966127924663564285875032076984548955902241541748021380183771117757476395006978945207362238036370807073033065098081585572719018231461857688491422061603155265782837391538729020689569790605151390199856101221310779809757123316508597237001324303180904727102486379170191243760826514193621759730023209565815150145477673853812143566577604053905403450679825485648849310018379660110275997734181282163514569189564866651296710093764810418210712116996995470864604930145373634297473798397488691258263291958997196793069647958753689783829959170432339301839844575613016790428460700143111368454860178738969802935702189087085493001380551407591305729682826615879440744052394846576138799014931158381874167389102078280693242775317054438517647577840663012577172328945478914528233400539416902830565480971475577883704556368671051065337497669074101655617525313868796310612569909079252633611486351152017943736333914292573701865502283630203907288995562011762461557225157160009522020298290410152113320646344352317855615680722701127958275075368444837970205815311640560632302924547581482535719437684727066882608807287005114760823895786443728772079859246378855266074658567800383834771915099778698661592086924796539941606165030937516260207619336557803246920862053841665337144591613448512785595390237324816435634672860012616069135645585478531084306186425015413271969255240509345253179903763639270945668282135997349932007496272993522510698086074961395785100246080775240517876790508150959612877355529746144531424365866098159331192685159002873242895127503026196503512207014244053462281400316318817441808332810106881080976837857522966565180856623092842005886129554934162575315385206085672176102419942666259237557192212615546773454910092809186012076985361006560817493608042141765767089299990164884808176249083366872970097463725880240702683216574724374464732611599154905741638434181298518741068499329156210498045317880030805211217196395986307077886771122744339769197136592603374589198984154912683667884530175945690860725580764325059500557308019841802623626189276586115886864729188873185390796552447379267644053477736946976742270722807823905842430900236069796688023235129291397581679251459486216674580208899172053234965281035177142231854321898930295930275207177991519814716934712403098789704541256787990011751442491922797068551865487527035903359074536343166792084299363597106509516132046139468101059098780069913303355123350723789351923815629835885499143454615316727758037433302790755039800481652692261719211708833231304126388742423865186901524567726020839442994259130078787835064079017825257505761433838104985442385392368687805101664941842404337600771910254682073257068762782172365429844896107749366036108336850100043455174737144744209626998966936661068422814575629488850879461088679467062052029522131857450085181587443058529113203677394425980237429898981244574674285732530263765890384707796796295241808379788108365094837308382486555872656446769920486600130503442725013170144298079589758910577647295507452698727918891107467565317163110412959356881504375251038956698118105669321646490001889656705516710049556186403637854775274558750903978153112523320106045353226484801922020542296978169857224863489404562309397122062773882409337210071657988436854192044717949581685627259420640457322959006037392788486909187893684069333039699469973508128312692169333033463480555567799132659220320614238061521352043664202328273870928350141540083759066145096891649910777010239629993537106367804353515484987674144535126176451688652482050893986030517439362797846721462767923729082142481973477048183884727498290026845341798488154222914182862119902617661093123646837549719441955478089316595197585149536330787436576454327310200177037289458119827869676302040853435880358070086903378168991058945828870016223750987664332099870684851029703355933128299958952795704042656689859634030418665641477165038234178971160952675124474881849826050446928342640487982530593488788457667401004776172868761511192249534482077346813582928214941286413624186001333729805839423805077814380039975387612771308124534104770413268186494883690660800645671792217541987574664916006694091318918130356028619629579299355106169481084019347351654218959905091424851058671588982648883070528127021830107658510009757034758877350640678554362178898481188883768363630226342999257219406563769742998568959181610827522950243877085937275284346043132822685734021273505047066561596111810094101055019139850033577476408576568497370563168571712143980444081172072393785376178614111889456590632943866338016492410256776950454290081648430349538886944317295591563526018271645312449429467594659783670298575968783802825815946069672826696236354376454629615514541427853014968562351280756505181874296640993671346361257527470287347915017946642055198817246692664798709156588440600280386364412729493574554702009002112020996686770340626510375931022539812165757799179887654205668419904022312795298250844717653521896247573644338257482165916970905141248583811404947938471631416016652785437664029458841822907176085507576841404271771598489667945147846943454901824715244268157669138825012439563663796096965440022551781756857529311051880723825887467017162081747515940630266299445512276733218080698536959569352957330609633568331534164660690930012579559133707533284435932902684494808432647408876086495515685313665512407407382181212374155275633965725692173294206476581086083498447098049983833791951549655612789475227255128623463625139458479835396970570279447335505092732863075070740280611211962704721004898968526269063347199521531075977524751595913707798169315333136863158010653658201278369505408129552003048183161859652146391902367423129987830893169549398070567978960314818631490857061654763983836154882026797868698421640455565698817083696208958566149627848456331544334854885642279060356278426804564120373267936010794031450618170517818699955938884264946825322057833978608138708028983486853931560106401712008447085970638157964601323340572016972027649596979502163579868418155601599522975054888298165292903635624927545841317830256159973983043874247232525941069221285010062228681714997889926424467314735162787991554395493308718163757809511254035033089328428621089856723456997067120856307842695902072374467562526474177380348224808970607964424685695548851744294781144798856551608995532707824460078413505313674061745660764929307142124584588374291340577231733471857975317300489108067298318519406890677092521466266875734805512224317465036990700421574692234717619709543526537951181579707403653930054461542751103632146512473009698810075022990995020522105929563354756196274714126891640583190394079998055867503196111834613161305162687223601230044748278209261976261139349501640515007615542464521929127284564361968299011360836040182045111361474466365757873802736465709769645986075175585554183181656137675894763790901532794199027140384496069130473200400008541345941701741727325450855156771133318014640092149829361070792956577988840573593469457664439042492030782610662824503553345000801336010298797922336322744744821537551916077530008175632836918629757369403186167042633489722769757349121467475235182511591138833335586685937841325447099991022559206490717868320300464194209275251362764533472490129375293194899955370189705329845359616413417626833692296681770531353370509611289637034928147128646305800585757508272817565136601117826718293710685261283886207066946560633010721483466938960496580046727766383401587579241760086767662816764785146480417811508319448689709240886205522940496399980311267022250089996305711710437201617259420408762326001056647249015269581741519384188164823082102291801849485561405911724795421139924390795909512662418532984625216158072449499687863606501740774726353657760174926335996172404969543112941984703075994972603295624342026216604693825255502537196751965409722909028017697784648164996973904053544474261575687245080582651180201290694618048387808277235934450958102404065067885150824577643987296881706833561236366521068877539942554761978364062529746662599220438050679599561608091344026187458224091879127900478923116637592806549296633967142533456653860910868784315913505263355407980259796475486010074970582861458079742183363015254164585528210228555801605388049500587882087861255777596680161381444403264928478716546433927100493950186459610425913710527748375828519380803654125847905858609894472765423384441257062849036529063443233518373003464096725896010393243242473171455477545991143602346193401608080343682600143358533590765329434873504299245143398641240336954329280789258319474614645177261066031019451164949239479741398112936668744730347657128793598762061357867987083297710829541927727665544229864658369847857020061927280421964922498759054920975418609662507019923591619155181976807813153639185902018917203282727392870091718121818061800148486867020262259175848563410584838346386788843407605647321256552384154529246242971268046909255600799530070217572034216958347494791723531834960258118174991930525095594124462832249907467465829616232563741149068088895855897202898500838520065410331003379140886892581497242206644166810395642724928042184465547386089996858886085374764556101403693423608231693820069751076445972018208566455041365421703964598977692388740266796027497020286853128560405595460271105862929448523915731078482951454446056406610898334482828300102363631459257349160444606694624068182018172547505064512644582936392048234643699759987726061506469659215071599820923564547246691062374234783726596088773925232135701166307081459959681983336419526500957381764097164518176917659657811428530270612728050486908638915616874605555380311393274372295069086534077410428558117818898311929536536549713647258319112301838066611221293071151671739567751834268671480103355642650913311156381435622504342392082795540704342085439208566552017559355797991290268577640395066948052835662960211206594425649311658078135558924723268184059947387160337296223623327685314214449128394655394406189883809341142580488336364696988381486913171553043603423031573124983171723360742681031735340406939609937732884419131319510053292319970106264519971832698694312314840636289279796961398953167971766867978754441404377171254031826076578631500080698062923874141415963338843064694960750217888317859801778998742565501969986959107712342886617373151216902045516769651048662407871257873945641084656103201902380393297813344084329796164884133855176501971156940814013790288625985101554436079032499674176163233212608587568868416052098226541436972463039567785463617908903179963820592818540880931162936833516393540367649070511477258011867742195305031287984189223728814638456015437064641842190045773719535791931243813500779832065639658564527486775892561536959493049163273317144610731743722905255490035374158580250695220200715668262043059623794098120313882445714496020197507400164041674651282859500855706720107978570132686304822297373846504665114426726112093291108139026630972277219948231176542770394249134940590102939287190178110696389131166113205753559850888173729586452715368159379143892543525184701152880509983064396239135322332990969186852260071865167252887960785467149315329578386912203376561085609851826346507419611811382775124350384505892871558502598040357546612110220689224798335841743464194028136210639034201212108813868214251178272548898992182551140924697797034299091543506777692469844133207035389216720213206300213381666319076440818602916862143133632022128117090682138715028897001191116345269378947883225866514166606445995712873758578797678112357926447055875708365302598850179961964083816436031070910000294257158425419880491141043926088481380081626603094787602465720942187298556714958673541680351252547782873852263683130723837296938865201956511524248744896376612516604850943656788558532830347263473028678052628087342591576869243531357131527585190511140127063239789038679919226815381964129152519469860462414713176232442972240792835777611381839285570632192336242355205676507492201442079952143435412349420113240308242627772057350001242514449582552587969947206196802006690734335945411994531492980338492845088712988196712747235039868172593399601591678373119586745026196670537269343729578266610312994346194687596687452138734936642295611305431804008158395268208383231997477182080359811839826298270893019509197099015128641430375379560484957303105115717053811596788031605790649517379442431645825039918280563138496630118479694537392880499805978323213993668178058174313267046433694572046306353960084740326017020096489118068015557344604868611423070827120085813770322580510954126365509069645113983117186107105971331525201750758525895358233092592509766674410537617896829212327425336862264653859025079900935561194805488419032087007832151990525994346193938875489308498463092136688833102296310123723428997850593128289927562738779866019395818463212729397308499723533301271213219666275787181762317215623958174562342550175170636102362485970351195206476077955592355712008133711164285438365924852582382985252753915643359243556064457663773998719085415832989028814626693970025965792204817453641964252780785425559662715123801347951450468664109241265926048330074570578037616856161481540036114861177299696332382283360839477358653495574858012674476522500750257433112746252786770598599795011566054524056287095498741802863825722974464202442878707561255347686921550920393114786428017588394933535595936717054132891362343007125186297334731119525091121554202266545529178169383711183992119425320144249635379303942021834057919720259566724467676822125830889287535292755318320943314917253538349243827284510645976652652494935639907644745644460240738750742295116056894777722436224318966780770846010759471640825564088071329841416491343866411650728856054154473108342706621091406825763559743445271294744048567314411296108043706025498419834820026995698769253245846999720016301909712669384354351964691232145521943236577970664959754519178111304610158980963589105858382842228152940090022349950533882044213908458122612394100142547558647058249250081599555339195117460143842237373216014661250653089923003612987284866283853705363390243451631892996710158737316863421514221598895763155774864214303737284081324496841046139389102599421304829408772913173284647630716748875321230136382766063553359237230766999905770865050744252432351730934416545009774323965732272187841191022222355882441880514853512551025544123376982578740390134273479454726138155568627013111844034864053247232224260685818116124614493492226393404046210967524071421108840703910743876183747455901001349397890043346542051963943504223933219881804206431687999874585187088820395868184582558656832102729009629563805772263349335483680524299278492647545497747521568706347058715605741586886021997873164104920475534528933613620996269105088759315038412583788297396169358000948027910756786284633718460208769633873698785467360578652089704956200827305179394654371981956194236507428012899455501608877026645711533062476700018792966016615556273318966707070476601923373922733250345866318623203645768334420551055831577218635730129577324170743341108288755438433448782167902362140995731362265842307510021238459146899868125534718641958519944351764323192328141994944230136001237435810153476250338735038489559687799621053020483772285819586832531481309059733625111623646467696017899659801355005243833742596556438118720907480862490693780186462508570563123876733556226765372610539627197413737198417222131996295672586903221728211807117957824756265579980208299612822965826014711795810301573823134510574312233278651979826942554243469017242977188271344323889536947259557268545204293241397336331739274455623379075132686378562576773063293407563722626164570954772992896420987450060512951933644616962982758221924017230852362489191750874289371636951293040852289301150470138749528624854353893292126009097096945254272535914516136160735917467218312042308926823349752948020332827580014632518101376999174857467995767398895290796786998851880343200583498729146451491559088353373192496421695956899868972507568965810318623245322397248885052479612821636056851948318224482012376613111784163268189293770507967005921177026891116605277803229750924318504925188233815040902392451925159886223548153745762616319084061201354858877320365511518687124226361920565107471130056686732119747068314385514512316901356511602621611303853483124717571774758004490268920936865008951265168944741358426276740042411118847117938084740765205873984422466218158647309814466735774683677236840289715731004105476072003901355826577488811521057829351439710650432367868753811457644330416967608568359058872001485239364833265971790502948201573562579092629442662225210414997333326863861311647618443901103924489016377126824050787196250183281278195411141007563649408653421343695442713947013736280624160068993825950044024879845375570634397128917307489093108488602286445344547347487459713556547395168309352920417581320920628959307430781206316840126530695006842630658242609430436916513162219737117941873017277814806625742505773504889682657691493526221875529167162116105371722278919400911985966987603987334813589229792040048767686187440086704405408483569939469114866473302677527874207433310209738629886080931212918098591912301618719067312562604125208714435155124348804926164257564887414386215525756046214030106300827790780062896190185644508455151629616216011763895426309763373737584155092814390086244043384170517046172297845530112490038173557932096143392184633257200633218334978728049363888604619165848090744830460648277663201873378414292076404590782349709627338957519274994840496637241253622650479414518367670442225987214078126630153619989329259451136268903754180052062340142685226082283115273613904989431679340099929105138021802433363401405044220810898153085643687903228581108925333202642874501980642197906523396834555772906860591854126384012777386959057438782600347755042159720078619419263136658197980168347092147738163765015106037571585780664233065234672356766084864136783694817825028071447589683824550020771067132779457687172239480424177750146553799964726594296249615065223250624252011152475054064693760623106744421577589351921245064875062484392349083317123123672415186762636238102392254721063712468991813979992453939058671713669967967637965116497989479527830496649737980755985666418509159669415297527649212490756099627531243534651326345734625320924764740741185159434072267937477332003917573626478037666372756057173680309305150223852896243978032975067162088750120665576561243342993120479205426933084273936004956428326068390930837400539802608181080185109745141034227923042995314209299255470789470231052622162065663897193515291829369102273351552883912313498785989521927753508910540010951093517471683442549405909291159468698770711446334739647132184201542631917388458807183481168200087720765638490487267313611168867027315560518024545696321147695352783292287994425528241964588510746429743442364089694100052013289488607296841707700650165159334462230962547040197155290370085425253237103600383501356343419487033371027629844904010239963997847775369061977353890320977038376851411613059874968779013867359111133363459617978582408753079281159728436933993120637567063738351042957083708354838608088760698980720295827027726401773032638089190168670344228538673062531623407215398731119805119219222306339135043077794343214439192774596135460352841061889920862594238834737281356766129269097544364643452979768170035173621998366697544414111090540254188008848192386801088341144440213930034443235376589978333617949145653424683085877750813859654355869433752683608949642128395111668943456954079157023597236010374800720268614004301223767107904030615679252624511147562020976330959473484369811342898117451387808227653780475916428355772485129343782990027943470092565460821797119067376633229195076757420060883420616575185323295538925956343971847093034347098334035646317014856541494235101801492193857965114893669660668840609585301409073448667753873591463164786568890048967249460547244160650525656212757797919988893377158720131165431314841083954214014127650593185801449173616073366895881029845378100168387899189264264977149864627393479035334375476861618620464786225227534798980672103583014786674284492642525474085757266846900214998405225947680018922471593820533532637894024647136896689922480138665216522639720675002759478607073632354388140475817870816228787819863697020413459351671482895845493020342888155724770425367350360736117965999556514458465052311483758614370465206367911083038660517349939116691448524413295795952026638442664660664060299586132109014144019884285573558083106529803260626245642296567481117817019060846087598680827285192339773770545988119561472453761147666688691425069446543528949017652028020840992921113189680878159433633041313248141447661601892707555169956264088623547403104822476312281249854735236447466701322083443895569174013096577093890336754732750725226604263018951466382867304580015158677154371581212358874200804778799963691450029909587585264080364773261929827974001164414422686946862971805224877937927192025615459152781684766286161311516573932203889073081594026350588919397695406631855900630696589454598320478751526582306099172570112838769935209043848880902905521956337336309230249071368184386492960130912893172765006904658170593039092869037719473769188399083046972178303844215872030904162966976248078259704876227197630929572633315968738515767830148920014892359936395636011315150460781870161158945420664103571153645449808103529073173384518682512903431120192642515512312867708129651372924023351472499304388480606011616886638785544714987194266863669291113414154393553584485216274254912574060070572092568028664518870209001983512474859221626649325087523981310368921665986641562224583598721074425269678294496937911032110066371428986879440454615809638740698289264566314999387407970419947184223035786388150546709595658566834287480269422002895393528242180548668259265787522376350811159218060781628056277585140777653342751379209671857297464587626302795168506159156591155960073288022152039426456107771570473748887779536577004037271856913819579786751653628616139194975520211121475363717557225969589923884621458313260339936097605741232876055174820638324015723942188890992370680413868264563128355923245860488298450429890209548437062942190510545170012651326375255357031690222121739232956847081998275340791948621887379911363689186209328381190253934233263143033273644876882013131689458497544312598182741936205419828980511636178990274885020806904975867879482973127772437504914632684741904668887926497097831698348515045055985283986449962689413663039879538276878772078604888902873994032528506044132845574263521999801619419115782761425341049721145968647047211334604537132454946665104844799238261827143220114386655407336794264900756784550893252077483710392701091877894809073081044578304072719586218188278946188656304155755459859426694517606489281406493975314820317767754206237492625150506087333095599375211195817050774065504982985410487708518402231293553134924215552978227067676702731078832016058791112865451075371732388892596882585691196814233381954256400872638251215442436887863559311032342657895696777995029490577894698649021429318409356633174447668235617284472495764109832296611764756162677947615391495155389821521319543038130681867130750965132750093976338512877339062903145105542943169664121778775165498153260394967329061249124090123866362136145616634838223180621372403424528617526214964531297237896966700167306478211331863007610909929324218585427756659852665464105757737263488568680241369496253050214979160170346713764414235411378701405672418920785611440419776190766435049290262130795818703825054729009848535450841793093096838137640200355204910305431738476651870398303614792560461882670867637432963372920730343964238790655758097050163097189456148339924493448463965846965747255407728152459724653758215438518830509412025520222700976673705372528418092198477066734139381433057875499021285035399290996238189485179089741073157292692890971758058747160297244440453005655037418799613202192809933450076157962123725862929510349849197518149614324734917634337370484885713137341877795955707620359529484321510601977692195802400361942670274791456939458471409052398331684373775012878806180518928653607794464835795956037365763104355756004579141422806117128783172666924096499630129863714141120718579617660325755911810669492374287234948455268549236254449212015462674171933438310720961839717959671077562463566007205057955056782644992048248403743329631618844385011597701320039090182339321244887690090454586560609618935982431763252808527298763922093803767861855576696503994074037535925436310543964621576839956953841622400579904977237769633170658095062707174784814656742861589955861662349333868577842213568199854159487632312545882120547766314621999876961932560612818734515617612540898340798648967172606183058246810151847868610483113750477645144151494579989651344487120005680279974802761750763010922344661763298621585361302690577246864781258561277442101036895505727093454351423546316832153523520593658219787448869024483254376238066122029687981572297782531838548555638077168612516592423087602879120632265324507448554256008255164493230724740290066875437870735952922014061760494371786492704420979112763552646377501116669777386443563900067224438562312170785232635735476372419521548562755795105125280979493543540988165457834397088252500528242530608754252450808336116912523744542061783101409836573703334830049424713238683676735469862866927290563533398861456981135249532531307488538178424245636397881905164317040268121678265275853735067027871044436873567777914345208785908691850290513371007498297440882231589351464091571677785763622855412114817930500553336456029151837811713458199136554268484563003043656415157712388400998821107858864290953367872415471453259828422754694853260176405250007366411059585991813473337095138839533383906699880897864088873132931842126067752576415418931296663952580763116591763443487802089439161951420196784359206268440942562318649558565128318026665006788948661894173829460881386931599890899292563858026556254495836659187668662223107386611947380755168714263368094030955852331478213983661864786863123904507910417338102163610028631977691343519796045122134893701576685082107636762561265193157254020018734925705152453976022615764102341526185505934900654515572446944443348420226086426717473815848981853195470862495332367896610210993816023197649256372173139139987323492102620775060077555557904616154445105677781613890866367355264315949695193756842685886694393475352503261046410733219054992116977015408625540088055286402655301171042828050050684726357685021795597112711941362583941308848998251660106910617035857343068034426783222257589091540981866511858094402150862126725082279993734809506259109107115753552996240164301265686149872883985341195938482044931713297560854346301260880474022554078904008527963566701972546361636786810796977820725243591394336747606023136571265499901147819819870395066731701640796023985766102392034472405909430817605677142172158529481639256214272594375518912791625767109304382481517470147506952576183849071213389749637548433865212561242803611911610141246378197126848120641077950085935016474320675006148274013909541724234206032233177346489529976403072802670357709719490693575171005697452419548859864870085208983892092436789665362984718270276972916010973354386037626063088409106578868016968118195553432478812810236842120060255570528466948006425023026897250160121468429419746069219241763168326867747876485225397946189092591672627492533953219922354814485022682445982835825094323859819000288674892240137869321800802987694603110501796469111976767828418345887476777584838142766693414075496523498155997146974762530082629417803270675447212676143502871152662041514513277038355205456731919544209141541734704488224591960635350516955272884858378819139089100058110693148878491179229335459512879844536359100775139942467957831063775097066680455132391197632668304812976304763295545049492112826054249885787826342768233995222779324690009368282334260593460038057566620969236213429041923867962535873958245248834114057894345709063404270199170159767205893837399253315413268080002080854671498449635194465728072965824114959020172207636463862917810587865949306241907064603799071212274330074944276462363377068529083108237941236028007458112276356032809760773486159612803655335470598987634778030070681947114760625333589169794914490583790133481434530453867230821748337636571501977936834163816851414386053101095377216781988793258423067053835415975370231987549989243049116786286670217354531320875608538319234740962153289364336522337431562870326785178073043227331304783576837226107295133802325916185844254073130554538271452674359852871337822237224778544578879381553103664072487992245915740300588420214545557523850218737033971997212965404356690375339557696641735317796832407720745941198776080022624179515659872932749369648960365477066963141752502714290331631058706192033340883402553356042342573766259751674944109197593618066818176765715179558457233834014535217307965540838018169248309314815266574959275992855798036659406426953199737554612632603234889809884808729794709016770432150033657065110186220119420096551883780990671403356565681883721641897785494416906698740820258390310679262875520306222390327048678768765657413953655724171328447354062850144242536854557834001951790414606048257933916627792232908512863379729057436550276186957904561030272061014939410391215868838709522685840923281809849227147057819992709999045112683142693423166410800386460992160592766971254436949602611289872424224175493128095732299819929095662959809423074822654991224549237262668189651694190753073963407944954105532077853474890000491241153830169673855783732870537445054542568470660392598958164330229499466065737955615384572067884679405527955587027667783623539604653686626899683083590367471684588409302126734886972535056694424167163861389445978296325116166986194708474343567034827788320775925661613234507672638394304806154870343627853617723717213631577677273668733102025986569133097757157069038983643271917523208791944590494174566364494866708122157553815382171366772281466503756063154647446567064535906276449501342734483908422061798748075913238523277489481935918709542634141691513345515669074377154796855476136470537654581585372149667500763911274990217864380144353710823681294237651087754246426134697381490988534344159950403703772184655657099631658399752911038311337675029363346035177503482222591484949284200633518571214243918900100385453351794451261195915485168619443587717786320539738565935037213985370274050040274243451468717469701371865038192216634424360087622579792127630273266333890725439192012288041509391751481147019727055058840321942260635421266813710149476808082384635329199154850588384048237640358683004976968034815471174890505001585757358524427060928298695525139079978520384499776331003019745452861851078653785257960250375914619807628846791265720235620152890597207112902982361485606164237797256951810449520329016769915284317342231198935306056164879559433807929053218269328226528808633525534363990234185082758238567918626806150107166967435232869754800293205137549169584394799340924849440730786643051060054085385791036240808551856175892118801761171276643899275438731427861174488359452047714659746111040661097302596157219133973067737476075624611384477022649367757268009893278882551798682882845988142205198815281059735439484942458413671157937328700791141585255660791979485321636048857536147595926436779612942373641029180219355359671390067157321721785643230309233693827102532024667980492655819004830671866075750046916184730915044809100086783446285911272384374443684194837002953381765675345362847258605687580521039723573049579144208925352688387845420745289070336540600388118673750062134504165790011225014336254379349101236211477363571154997584574379985535570681072359727587585328140867374555415957507685346248030846395466657541320455560918909466897982282093126560040614828103435172445745775875805206759822412329104256737086608552864210765535237651393348406734720417013496404370074031570474635797756059453293206723431186268857938396543527637840016118261911247673879261711468890183919241667955026273778982395357607655224622311928049655797711821861810935113572014946831636079561380826606111961503387603808033442544825962650068950280514865824350799614203778603753027095999099302469132913358446793428934979882155670211708264833852495615352678389768621119897767608285935798262846339927411025371070923048285473571806082084738384898641656391817371985750551097246069487806218288179258387222789241595202426403023710445347957121067073985206359528746322637306731919191621889211708008059518415383369963779456976311749662343237126014105487790180283383157068226091952622568140879648514307722156567247614047597582670534358296397912928413107584373921534624564880066417098487189448742870145994416700216697764651883469806337585979756450668352972909282562291468967649398100728786652070543085195558237461009419598053508458578138381493481122894173518693825501873016483084998053000640463260362500082606162400876878643206578701200268969489546328436995663711765934572386167119435937338517032645577131594094183962816923726115843331638261335053228164632908804236635890657069877049367330553940655929547784669243458872336579075860011513190615543557597860815812915354985487432757729853043235744450558156291768588905862671364473840788907996372106681564356511471668636323596891725335592764389835456175946910167127850996255919921546184485584362829827606996763756911083598666887743435918658382837983088497763577566870217099643642253312260731399939187191346700059666971748800640624051361690335869813968943048183131834502128235959527349040010742921831520736694256697397102056817064624548407480782169619605617738938623551069896985742713799220628850934860718071664165258409977916501274822781397097895461067122104044953680608917142302055352909706152882114637958674211881113020462671800931752254808217160424877284679400433335749485223586471942141925414937055574863837219300351189238107616782424322040827255623442107108619138872108542370125891893248213086850809690138163266709843550265474691696096112381581230179481994496063189278150921119083981891976246848478431715044113982886053724055403751135241942076854031471719584820276560806518680828945731908773444317801400007207493166539687713366786834736296951266072787738705852059807511035970442906801295785410575362838418711294707838142061446669859026010155752971740967481004002665290515276901581698897185365455079762359247387454671503955775139375667528351635590736447145042992379581222837055417224629931023614695070138910484554492733365364481889941055580364590587017402525286235962286108407756904586120353791648045783616167097160265926129216319084652877939327484597317135206167989360341637187270631706006031029575834556902135656217369097216505056264481502184043742756515682017298305014481373161528661619796721927622740617601992099207153074669887819353763239017967024290039189637189006488789340556645441280442592375660436789923277188853450596363471756277781454023586351434765044799366717994764236532686328786226760275038309580963108085813073079244229741028029018730603825179660132547662675746587229421711319444199733929467597936476329513625750301636178440303351017873512347589174009309894979577492016860899395766976918339997979952211832431836003979625203303588436487204850420943445062228465646483712847720302308699999077085813093938213831648656984664775063380765337472383266057272496002264871034063432560816866957510318734040362608163336800545223922846622095373810123628518936973942428856922940848129309009200799556060528708513562696128530307338046994731138341150358934840557066818144283174641542687372637197998262260395530717734268140905002734259282465727252552686310628463859974045420276773210712238025054853894532899508655962961694266917043398575933611496608189060587635989077259998179394360115442704756208647683892864109539054812781678676825936447411923431390899836244096196669563936916160745353120560379086337853590712440800954127089046681586884455939487053158729680203229807270192192476487217246743811707594777620261640846713308819745362933987357833996370954000748662573732752264039765602815856970453725241417233004196941430840770291844848554153265513181326164131237830912017206607539263346284154842311263258723579865968991196982733162007577516353958632039735707297750410354574381390461453401202357216887716133090064980455512616937479802702431666522385001732889439415794875871830343324163531954527484725171970838231020578991909176277497606674968017413066237550615717036420310995630858639350723124630824416820861934771759095464504981259406844416040830987630594911124384585075242593075234240560817508506213074344568878922858388244645544912879653841683725354961075399139711539124263842097476539750132477240380830570634667089551178814767337243408628731577926389211241761640802673619702269791460203310031930420509957110385826005760725384405164761429103503060141049616786260386959586248776145608235083076996500306096804474297806310842244429911090567741190180818199539961799982826080157258716525102842915381951086165175753305073982919938025629210182641004634241045302572911888168182064848972403439300159804614427332396396702618879363727597864417537096408048017548647167953931976314598622990167767223230744591843202057056980223779835538029028703529749898433926673716716916216525824521492854964902423713071729580892549822194511388252449462298417895911853635259602098215871355899076446373329857754585959457721785898431153506083675914462945046963234830668489235315856498256557397311942917640173741016916318174176236028715982848218001560249939305858644105582204701084449835480906301409237270517562243319480386537787289396385252305122272156546172159256104462353210400234672266192053177728060337446008446610312178813351509545069259582113004268031612130130262096053351281791855123508249249117964780227377437400002564124878161283622424456604935197049407743459567991623066619925634346057103495117381878486348164949690874468204410601499105863975471401108012181511024966269861614676578016371307435942627058071158428462869558708008781387894103000309983877152806992149255521073312273258948133868904098565211113455775604485485489095731075407403500784904114683333066832845015244168770137783871017255229629439605814205621354266134802200600040873881908258618422616356709223820750655557318572789587652545104708684036037821334962403449380050246897170887248287457063886710032201333048916325775729347563242232665746939524444203049698007785041923228309904032734711205045949612257481717038223234277261786605939070074580365179613877960276903148010270639762975214748448431995088166562955593235709492312446910611177254380961236203598937301764662955005129141534065378326617897351513575966482087522215226621731348689109449701442359364978200709933743702911386636795605628481161684685542294621453928802769550816875841892533966125614097530851369824453117663171707577995325183629241211896670709277893388667489617083620507482013736323926423527737840934476038174247200053586316288056412095079464500379932084058261082988832989316739871914017606204065709577047893328319578220247756865630910705225912874029194154201921615787460667795106341338131502492985866684516678206636647564370922286747705122893754911484073042893089809099974917578957741151551804104155436855063549601461026574342259628501188407071251260477900082725311280206603480304431823198814410540647680848771664211245710929327931878033679614187495688930294907495172960430651977600838802989205036593557258567573273887063691050224657668454732287749771925337219343394848489755820304666139628775851101595357525053147616812097906531517425231537392428360421880416459650860223288824346575759141289893474103274220439030256447542391291933062063453284006961283619787786875309274289128371108557462504097599314905760180462960127799600400160503664197355057115038304573944689012966329306179109972004926780785885392697839000607586639373303907830537966862078752332351593448737401670153577798217308962768083412634142741461248922288404998931991027208709302454189556993926882345223246671396948169772016285865694155448511041998275655693440958834458092567433424039600452566934759231825385416915786890147905754896868302813193113062436490449924146668833837909259274246673544017323224230925599230037869952680875059349088468443246820564514575716302059267953006066978547923630687882587257982394513022264095656799546266413747773513219047987858981065225646273218913625159608248960302345388805850868598657189871604021113484654074799231812805276417742754267676932452048101193051061821627779399635354930729511111173345837190356250925916434742666996204878516702508328028309982802866167949844474898680067985115746636087229010125723901888475867931944018806467280697333890268518203007077575481502869752424235267821617057078539362865989775281263050517748948720550668998109123631090810739401633821753124117257666892977520546338543186544843614256400195552478639615085414314561246319133819965984687147448934209923884391037976010520126442004876445381273666675956006795312313879143673966545917206095718229994835706636588283554719629839028991027468966422108978882826578162275175456413964398599508772500068068427254075511175684849575261340179600876153115898624996569656841620702636537148179408701444079622205565144609103346677859053184880619368755580053228935644642069242344941311343754247281500601708648379267107308993251007597742033087349861918244234188985621463212645061745043391851116588836252678901400116294477062971377142089311253980027046351804812655335592932149580027063926717114678391237348890554599370450038729520447353970770338429591177377960348725745943883599581192429429555360084097075098476419000508816266468696466914540992773935730863189583992968980832916012826673147556105840379462599622184111384027145062950561057987280660795996992750376148119850407330874154362868334272194636876322546471670231121543760107234035350300050783851586321100253872177324522573499035974096360277518209588928342923393221571369784205497063092263309023312379319341356684969127644546216974940133954563648498507637794941475040087983451671900522927428875647764108713033689663173016368708521959436740999836022263062344069951107767333223016963133484480243789606969941091056561628470012347603432965780232308600236960628947854793163946424916464981837218710204007104555695501185182914058120639560035793568387164549631294453709683464494366108064795677015081854099349381520555870450158347813248914920585890875104091997883916257555555673224028214957759093041754257023957068539893122195195081949719287187578439038869025651909274372276232408315982279856211827745216847768651143675224630095640466164911640344720951643774510849379469364524642886232095328380398209298174761866861501846034708680464097767596930598777982588926788818142449775503867672993336257936068863118193453266295583064433636947103610994862652617596811125662140897577291605313891018188523911297262350689675146211576302093467238191644835977388670893843732309360864071378663397957000231349471959708116564269512218126071813797941419457683338984631397419140514998989017907574910104828913760668740642048753093543478219764288809830066899420115546270921978490083921274283226438254576216342001897513604316252523152952279317898927315571888361863744195760433244298612192616027461208893210900953673735535428320324934618383619592405599941334429892789823169368317747128540033066603566931852001745727405340198953215226413561875541660013266927661504951139378284077872405422405345159516106852659595111011637111024763861089740901784314222220537650743598665840948830660125236997944629207084877522698584486099241384333766259719064516972164032367943794163303735982514057639372134802124522981099059359654878465177765423053780769165233059474575724378706070796709424240880314029563414353419216026667538195083754136886318732948175815392936271684021772192885099189393407531656497725960540581124664363848085415076498870817020814944317097779288999343723214297666575840859239474240056267300716759391187832784356532670178426369563665396486135635930910899063505138950506842351435554908792751704954893036137871987750298485582869102355757529333161569412657852041260688913307670241243989028223606694996752758428276384323979465328527464566912942716307677816539925499200396398890064495381536193636075027856806537500778520350826256651069050181513814031535676096076253318749520988273239754345248655672876791603303950961857512033880187962227076626591375208455732760171064745722917755628961298990841321053978497950958342576440492953824253673125779043840674559767353072444759352407260052808589727091646920901869143402945993286019526523856950769115773003067154644094576492941487808845696734778122227446100310793771358685463444109328898799436370218723248436334462877026268123779753724010189875231332922341661482754284179315411688332042556328049914573099930899689479697901931548239335301391507002499018460008898753894733906227170964151180554210750052179242121375842591347943204400463888595875400252999834160337071306223831482605259023488509924235202418060570567752341886523231638705310770111422127612950957652570697345028677068483373337246380616183369546739129928718940910367599428460453204275472116130806164838817391243598173002408481652901459337102126447749573800212141175827524069248604872733416516602740702152523954029499310675680369286200432300732499404176302815658724983949317119043124743610588348440891743408177067758792653605297257156174530152994791665081893456830959277003530712549633171480333417403333450435083353896949134173956524441856090319332686677439862483981980654173413575501376323290752451046528760477367985385889602089290643725161095867644992441927413665596927351106114171542502074008023083145661511642986822310467064435743822792736586356822403524120149322849998854622845881891246275319107839929877318085984522573361533242960382871757746625355467458086687960051379217220597182441498307156352943494157830695460402774183818720948843648442221954514081743284545881904912658373159860152792306045849319493896099105604540057737014443351115992071329489012863331141040003224085245922075725191955008489279791712626177796590615628090463519090434978457320925733243032299195524953075993687930825995674076075093989372860551989793430677793036451162582233548749472321533983343553742595421592517300704626119759782526968542061702794906518818466096281605637726844030683635431924390009076293073870721325272133777557365612039523361689603365330808432262030836250681631362211987321636945757665891732946472073918414804762033405769691769658441107238176519632018824226687099090904311427034407038863786270613150538669061868325578282675585981081310885525107088112541154472075336992807826446746590935062735971580436726296005273621284495372447423036970538891865282850155940162465062211031959473172833225813685711576248845306615129312468086308690989874414407357064247986991233806905523761664971372420707358208448165177038369119978152216309622151691394660806000975504357301938758608742209118828534608639384612250090237523751899094179463866843637202306405461882819383436138942425850338497013895000680388861747565058581091104035455639057718830509486572404647779726567393150885888633902139695121031189979537005129469248305226519753207455553599267536019463587881564099213735215964032195418921516339302024150745584536712906296102980844752612256068362280673539756502776526491718665589327613608083662738221149305117349787470127550757968353865232043981332265699395912728623544787864977083558281647193925413136581510645592040341266646454239215976022211350157375939258251911095791415630830051716011496310158118291040276501561997820720453023830188915873589747707189418770168886176121257060454331061786599723592139910380115951186117607900617504271426860135720709691102575905281754336942657563021931462052411636335946287459087260302183139009733954554421818720278892085561968415944818161758780364932409000090791196635983473309853734324487791393533609493311131595746268580756241694561708073418505552724487510232292893861071723747308420974002476788829160372249234238074269323014001321942823677317445729776379331112674816819232382477656691192387262274875088095621283959603374628972735990520324236643011264628680003099653238491564414335891222889727478947238997799600345442110186667640501966255261984332082851644671511201378590704071948815011433241209157379371431530037365868434137849414075535299107910890871312328832744878335537911633390418491588818462489980568582201638595244694633829284739652732628513304744532948911369565279289743691757308605478414509277717831477377892345030253437220305534133470585017826434068610969324317042510985542747673447530259539410651527877387666797403627272693380429146542920836802402886324741498853175044435618116690400047754472883214492718965134947492864336065779486813272767192705736248614644430405601973499279904806004290483501860205833237995248068979070140913185972575770041815659779964013456242981687603175444734854580171831182029238189101311914190797832678541461731957221745849628082192792539516928779247351996406637248608663776795652430009498773865132778472878237565680686151695083203759739939206636858744766147458044232935976563691866230347519071092578498575525927905048977175108552802918616743826323941542211065934564191604273935813851328476216969738636987560577428721830460715709478504757341432840594302080336577355294053826468257533218071381403898565065413592344482185743138818919600857095861530350055512252605417418299238709116530339179119324918986249430670393180046698903395737948869465584477543450839945882540602325408998048063755944690384285442466822899008625878594207342823278139098972135261784591997773250219432917652060381861404613404135801493497886459947010263091152963614531870639871404770459114868111778708107475231907000784528584823630617023046458411515371793004381279095557786587322824204524750321084143970933735526678536142742136606008781665828233321554914050524051858880709680841585113750257972322154707403805483791302277766125572784761085390004272151089307570183013453605775647488435386112416774341775597415508949795372443103833338309977105361109260417747611003414684072213256044651653063696969505490306612892710706244708613436914663766040476613796983177743298556346244100005044061783851283897168306637332182951506352506989200532863098265669991920441567115167233334283064809758205698742775897433270257710762732585434608019862730540010153185392523842496274868921112170388874510297972210614674793135681358831006692896830918208440688887037460493384754438163459244140193156368167432611836533477073355172190558276359349197053056745341020190509520853270062782399684843577554666922656151284766731675058620300616374909885820125483892479922358102781306989549677506795766842906394139211388430446393972859792411934542601041227625949447211647008693682994670322018107849822148583807917825361340384050958600301981403821627374369512519537763900751568763742261947410376160081434056153110423993764262319390514308929322955464146161636455042582321093373763775187102723202387805414416895036889981263006063086731433469699590243089079717187206763662128312303458020443654888756068982246553289586405225790330034804050676406238146597458193168624297734828174341335805269060402830908520299870099045107913788513933389429419946461071858975753798864437449759742355565277903842769578293054954247097996955335194946569898999135932908531000265216125327951189152462610706537923010359380862352704218997270185727296364609391327490341865012854040174692843344981591344506990228217459105638349313198485978413972018593858542792962681410868911590435817557051101123742998828715063137358542521115747815608641137265487958564873282557593015295079080503433237004884085707188926777715149457058773025197137667077396740010288713094475059427796266575661126514647744937424657959791078923036148697756497883871846240053418826836066087212814524239993322405820415649168686227589021078946659752945934790336676928996323771131306186027032353311025856986996772543559442323147881637436676270555789286588184319094383754751780554053529814640306423675325923175232605687876526810632186066640958413515234475795475592284059061066108933342889234371484463718543715459966719296380196589735460926365053279050585583554039626799885690475383767697120824231009911247753626038413694124143985512905219593378455880920872028040069411589308798990883834016187368575680582678313621224600228461848320186747399126754636651581715979667246731994372509111602027701427584287865040745585852006144673479313760020290782527644404982794033369598297074104342497437453664392155981363199433906531754878838630345251119454135597082766918065484817751679626504422005236565215041290637564160889946415998213385726547939082933825941057488228267868405170209466003782549858408862855723479984475473665706198665357021578301981675256552503208153932078661614185789807853255729501216953166303652998381577692335712029692387085972443530756895516890719503934526841954999531956625734708257261805144296790694402875357329773222552465842561238027974559526118761166041754040253424037209692632909302699280690380529450102025319741229932236921963573045239590191897157170465778093818923636687010266936659694108350907094856897177980686575239130635602782864291131511476601890436231421880709362607569426788804207390180291034367133448043168887976857900171716157417396303165791821783154050421305585946610938542838702659200359130838786735975875114876308797051740482922784097046918928130547041905603572003473698665530614045794806706998631683341366188545711415738463166411565626169733710504458654244302049941448131142634598482647784030507247565897912730475269845288678176028588931869610472159690257031990092726876382684715585711048849629009375637255548247265671295576780824436171755138495243838339295340289013184784871915579664779323152467249746404398263108797147662538220033373390984239635643127887390454512908483747950291882519631187623256950084945254357009670216249818306874226101900511127537582457914107109970488525830084726742246067372293402984545317935116786792406879256126252782365537326717631255484106786471871900871626326142107122254499630112599962458850511273027113401854503137558495587706626072489394753021645004218307294941413686583578005092616647853260115312104261519397479331913330178176404300993671835584908363434769831075619243108016694492617607652971974029678590151329818095578883803307265036209836300877665866298021048779601882664344857564920466507966215712256664575605150027114419717507291364248849989802805163954094852761863687337554804676816683636174963411803854500690733553556146357320266935582315490633149574266303327350683920375731874085982763593947547663032450690547211156085045095727392150767966452686379789115304628027787764005205111520565670315835547333788477744641557035436110074245366541133318846843584175288441481080443221807588493191637421807968799726019288776854192968333895311185672530161731389394074341422557052349292428215996458668961614630852991920172559709316608835104284154816930337505432660158124754302596597654323658441023926218272660280987318993465594699471895199906771033681236590401708285175366351541554667881548370110895338919093889363983865822443560227831702716076716266447007696436628831548748703884739814144632253901406882582804708280327428304316417372111128919958620038300247936104523220867528914589686346552454035165306649402252494371832544947906496440779689477778538987955242883833778561849378940960106096284102139606492211782707692519847328685179736093659520288047037449847636349275470543904440532850537091835648516529331622642108477312777345966125470255822945234102954659161328392480932395048132838386970596721750618380521230243543618732459069422836576202944051339525762756698863610545342643583804214389486778835312148596752917097954771517209458907214569633789476556111968097542237714107571097557517151292572964191038648845920610799977012506435055632324612376533872736872797288689129720906859500049547421091198065419378561942192637564838279700213133845843476339563676965778288600908838118153397684328738726070813951077606698654641638592742875009781028842834988341490199430226415611971095916898558179658922734508326898145662241359120313864656693500247818091306817483278609894364726269835984991175868381120901512447304597298552203371667477947806553236463401277168672952970322559024812122769578004827824425523931998535684489848906030715945052394391771226893135469186953204111611913358757683532032189901470813029509550263715664472487996041461598513138169401062958976481414835934514700937335567444970471606445272711179174521568111993205553705234789660692490435430452098765266868928029466760603067507896903101938211652159445380892711414677169015222948279546270442747150032177191633622001494525456182838281315200779569863400595638351006995494439518208338020311324114984110931780732354519979692281535549002430327942164077056055624053539498650691254010693120453181135371550270131197841843798192688020735700716092958839235505579496284668112467671160521265604797787417873061203105236669046554998837735643797814553704354778768081115861426101390484288520130362210458507670485211833557283131122802713020456855070332576558478672146576823074168838026340088902457535108984919552433371086765579753915276428323539988771638299577951037774794368965770431189300883432432296652701922997077032982511050176550433823369334380565267456164433238333287822711988486141653640320714812874838568453250036932358830940565814244465345365736623166486513211604037717684120154959199014222274099264083352408878276253770816405235685458689418921296484632345846499560909664162915610751225014449939737651349961969749309800643795927797833148934430383547090019654542267445969521837492157855915106477640081053239995742770533426077969101554142218912370027392941160730424594270513049938277117046757411651006903937492205019333080597895052951827445991637203871779009584251816272686549521729178350481996980379432844930245328068693886741365472297177168723722237454741300061210468881492971198334911743486679985611705998236063319087840226118172176289908463087111173100426125815491302632368265938762473495250647727280660432775673930959272455648971350167710827395419020164724304177772705250667433291089470172325043475815803273912414226123469245604999593690601834630071083842155854899862631333491360545468401966194056960619340392943496372968317980167304397578749656753371649621242578873340428097384522362092356516669136228798875259964288500394945626401469373316763604828984034792199057546014460797488787996263862522980477383097086645671854449110524253264749369092631690599476328188345751771957097920317572258012106345584659129435083157152935389023497964128993831812507965042884326525369530876514720233942119145937037091490446824254469862033235186890532324507145423360589769391696347203117964602177145925389883434902614316781236961460728049462017735148304405673557641265381229247929865450263830343684874664136481347294745352184359451890603760113928813133710103048290422705357404078872054317351870447465936481235968477979177306290830904375223272341934339594459857458267689161626690439462873158337565093538930555874930291226846533566344029325705793512943442368877857224790868239198942384501350315715335095002330009537717342727836039084629656572350675665278058195691651199145911573294630759084812746378176952923117946881733189028571397648471016040717491376197733299760235907763785117255175602522024359483841028825627152973445606861838787159041221562158407854420362094194674821777243037677265419524730748113283190838748018293056561085962381090802410378236286924124125562483677008029681994432638894241066143438593775461687528583945427333956093148740639286889042912022589108181929031293807009349856743708437531682099840016676197884693272849107562349931436200081834094827926025252303593715475610262202568358957362972997720689462801589746477908740872312025795311071118456162914417634768733392066570924643786500148122951842216614959663838710334364314778583609889810101198026092463222632669543706652426665068003788299117483014598826489645426823195604764764798347511048715739768895792427107355484812399256089242426608354049409884863332508301402442624440042337927020118752666403451677711624449320410285302751451508240343880471000611232373877630344433630174164990543291250647167796914053592729098221318854377146144888520225298784483521002100773727629965389860899634503944524681056701330324911345203337864340404773166175582543045689280299553181051228804703851029312427307031636072425196922720058360093145310772533754299793449403505862396821577972494637924585721492697428105740572344867535948008629974264438493403114204536039655782479832192944587496865260230684917386251828329062421622987791476159774314832671590188924916509212216410981547986012527084662272986992049893184744397887155608990379436639921759239332001170303586283774715274791521369559261866887124594252989984500102801336599602294715444341408654211941991464855180390739960379052102898980983717561567930498751516919854359957765674199024496146122219603744121907021854555103067852584674260330486538220926203419502789748576464190158857820561262155665472544199202283382019584695836664482738146901209389247757502351926725425579987491347654907118893090232423298940135625038338992517332568248915194408057926565399272285960378311979250198915477429900848939440750341989578461069690976753160021561438429185499639276435695568280131565770361676141453637551196634226578401965029509734132700374266826651272910994129413951057824487335529939870988174232382348408169354626253189682509172430726263968674535111519311213486099444494662898491657435251658377275606262016742179362508160185382655950379857126640521175960927574821915638817018812282443242024159715127206283680696203867563795918294972995437314614589266157483377987686551392554624524352873434843520121723828640787307880235192227111204136075155181462350185788931127880049893895839749798006831469423408023747856163878956930130294059617646787907341720796367384006159127840143366000851461257988203496808545408235045717262688578375980805296428116999316068783196805556481080592089609949986821455159655248189849221290638967259509149073470708066035906948876610036579413312562395983665953296801485040204624952020362496498357337906571177680567316643250092152974737503100240398638222035497681419127951499096517885241391600694864890418640240161303377211228205137670783782483158874996157960329604488960445740884053053271991190226664599508287686219994928697945860747505933618748866058614435314217161925411910774933043037148924981517177784185826775257396784158559726995751410486793181261189650347311395506250983393227334748889411135543936970844562605409868056162342580570226630468332186123174156983307405929580633335315010898652293525114297599995319274275709438200644414441161406818716836395853720723688958557124602675356793657861335128382661563965060344582019316488535279727081553985270221444576330538363628653817626424683074856248065692207509401286102287030048104279472241182293484006640139497462232343182785401336206346998478270217595729202022267382813691115080105536788753261067306085458621194295248074927419477565826058732860589924531598353746522391350154614886083069602104719188369172350616587040806777914708927983723796274543580314278650791802354670116974143266692682921047586791887886046488021890944197053079905658418925828187878696385079620625004973601787431208658946661377546400467731137522030460690462030433758781444112780445094297341402490326379517675968917298093690996456028154260374049118272160873536041428470850934378419662432848686815468450423665108466957611170261414716576926009909953913922086526491410567985750542594941376793403184669269253822093597105926781931458077446339451492269634110008367545545432803544961577820125794241972677971833621216944751338995828650877032993734541549106898784322928769771129592627201689244396443466730493814349563452766169887050408716455530972174497563365369389299169820788494230496240543427364205516956994444532091703939120890407085413292332014839006741910681939964967973752762272884056485884456535998403248332493288579354552541777439560947412633030371603912518126723692011379572003000383316577151685178226154608460461091547801819108254931971479950480008812884714442827841375656811197942439840212646637283008304206792673519459595566758602154209157468432773134410678331434738425528026746860787787181987020559608729832416079654532114644414722824533894420631663727852893055753466452774883949950693410795739225540696081573570513619501559714622310310769127950178590132811415188012911440277788333982082310573795832599691082218495269471526213082203136789026301529447711998148106896948164327938767642789183074259496591631451856815277191158878975354482982173126466980084498647896599123233003091822536437270023856405705343991912747227610785593085904951407719774751130667706606390819052847101577667083036200100229527288481900615965479978167402801748642155105034641208225485756072967976645870244518025370563864733339693581854580839737511737465962986246165678591194863302607202436039725209234749637413156274184507354522635083348361231574198924668457336848625898519497905832188139261721516660276568276578964996615824255246723308565704949783291536028797948204374122432202326479956442349065888868053990513968368711944308316987142302613133621197598151187485321579792353065671924428727099535350179360570831727409127606509727968266612352068660345003178604649688944291332534432546029810606799207871413279047489029352040014276659336745730892902271624613928705319427629255715712639458749111174664860651687214901465709100448281965139837446176264066502930724807048369076641694117420524637222532494002319250947059731981994067567873692579034122946972114117841613721046723360412976089423798072567201831083031937047076065060941157393646424306052280219197781577867438039412598398651276348597709571534396092194896772928891998005279844693036792322137860844726384661761179832634941796171488471344645740562468432142823258437040035997349987135779624648150945127577537588052130060688620185700891804849961634994133570545695271709735167315622867529981197210932444690112691963652814154306426029158869637531572927821077414306384461547611587094149927997976822491155269135132052129036356725138369711599048092876026107796585751149293818817998150536242464053055283052561461333215056621525724177072510723000977667522560432849366457434176970657551339559120540305805077040202601643194890122272976293169885017538222776150759600216614659728728481695004393995579627934576252001689574627793488309390216263491524588427689015334322442492097791200356592502899996946360545929210373323351387057518133811467002626572285814668067275725810370793593765548047570752247517126455633039887613543922322044685495600383701575525865896211831539691883604874635447906683932658427299809094547938814163760974613148485518829706083896363966567870387295222778788281354236986367081242747903498596555894401291955980657686023133474388493812000871192395658800252156428756341620587598008098148968584399943388466564177160414755813185850907696604980274902120966817566332243627530021593929263952375030339022417109058173438091564729016338690156085233339944938029673219788906166773374031943118021902332872644777176022123292014567421959794942324258905904308183099948775300638496113952235114346696296939832386042190711791288168268013487750926109084824195537111283340503780399252082772702397763794470001211264522727603658890932162419409498169917338403329946351383291155426993567091717774116762513300935373806669121538405868069121984518602290692633286726524562782545918185731158577714494438351663964571314443581017063590814270102327605186291439117698802204264445308446588625147588192192246130785365122221144057033583695179722417161192979383247971604576757826221655693060321744614336500639582272865516719187817579852660919953867129493067953453338611234242247255003972835524173706607030318006898122263177994571634156023129622752880954706119296010973114718956967688174785926699940947289527213422381863424333256092564535904818230694712338251592402728470600546995736324390904023689054852126098459683115976652623176624223142942687507572902101382709103541355418902328329970167904508019267795310000764841264167338756578421539283194652594987070625776268296429638368543668788261754709101360806245040909715561103660834942583792510504446168300743087805502779147272869080671272551193425412871303822191249834669118515499365180834488342799285954587398300538566017584196223994040059905197021656736367817026346640496966072480245898800213542533333056543378104517489306349573209284719974649377430787014842668375364636494230333021561523352415861943236808044916609759452542121946380356056753976466103634387876048808893028372656196053185638257190407948146143793245534272602063199756694926995567136836581136625713460657972228538656156170321414971841302554351485995029729364949746633205092538019916528030995024126749017276705952378285489806140510719084229892566911477705553009121804919496151351832634051394549192902147602034968191616760193867995236365901204028956771825991191105614091929205132479840127959745903798106019176942948744066399961898076636392155986178962446718945102593845320695975223870281338205658331372287656206640646586027357401167001232186916503019240023864665130163296782551081632162773626429234153396001562402852809614254506526832533671324683158069360275919728885207466519999002372070343367775020351999690563385055850742331272893095280367076081284476020346799093107023611323856654202594977367675591730227872935479099009005417648021055067822351443296182243813475060296873601046180094763604766535824716008475851123305374542872528233514030332804823943204392450601941168684006006426745793884969492998955394441409582565425717300612064184733078790482630064258610851844442474956070361819298280803944559120083623148206556923911366935237557117097871093150240402496949514344831518560195868922496549384019302199168074230609462613838890392849427134636198416533523917309433007606575564564973162085377198933191408675933026325030304941423889182931088609515496286432596150444838984476284537281831008007779939787828365366357099377945587133517485772379230439498285039690917721219656969800159653853800934088400471471718252604283459884479429703913499480901345345136120264192235110427755761506498712509159298579915540835333450958762231644904574932070747702488695055286874006969824817226028140743467657766299419532669792135516566588119471208850629107587644047461864831830284577123057304069065681783272779345674300656554854761712537138583125110333106465887851994631491400645662298765301524137962121151881629234997077735941433173108825571381032563712491282352898938684049021036833888121173511334392665092811893385576069090491743392574380771533721389838910017286348980094873200550188608730207393445096664638063621853889927428031824838266996434824301677132422768995990843038591345749353467133707537592072906749994795036184678993629421255715527707822402405246127868351406417505048897695978986479219527424877554404641606317923852963497176424569750700102449934403022491938420026935296771429394787170962313896267190115935653347421051303039257349652578448161292925544277870860114822200807085969606018873953633699872325347602827388445118103305911532286959162921824402938124741587257045376078809137946098206835444331937466854486027253471097110003523623407992019327997694907259119088820529450860897251947831213354392159764743520432045827327619076889606976909633375371714418449169168604871220934619127942784345534007263493886380921113242043851301680793106818497457547763092501070135653112302183026473732649219482871937256913479584442331396133889245535618195164242755612773325252845549280527143176970006696839050380539745401555736797857944265484859164408418725231305494346288290530125231385973658497311951662017334849274843237340914895785319626885572580021909519669266344309309858304211517379217491792468295252650424717326787753673446434702724317415407899644164934906516314190145317820637668184152193438933069314926571024720735358255479627887553847817900566348365187890221559361768223166275153894899680808399050413163837778074208114331840023295166674862027627914041089800906674581695411954718480616806836781518789069674471725276216502643108734322979505324530935410235155775376215624408983536566533480600357574459996642182624381149946953933198187064230156703934876705029444322026455117197385601837552783315570406138320893759999634052770661674670084108756385754836175865459147763845655283364813630739082750077377278457381794689249994878265607879743954503229770318308088064254500978469702693168532867528723980602728282589828474715059649415140843748594689987944333481156419681925579608905507801549361239230366419963537226273028583513724019948960331529211207002342235658147925815264893171032946105435405894296725355429864054472524534270134107708650716628591402589512812097134281366460623718949995523932507733054037742432437748100528665148267807009821863919835203060304710746804733649430967939460207162950232473504165723259596662265067969142213241210664531007584736387854627698380737077689486714674286882684730904653535464655423720616495902092053959683496148295445801789633816509012518677763448993691795426692769405536802291891607003155777677705404920042844557724811805500813508810830653192869860429554941707585333957284175817565377130763683765379396088875579523119483663795698587975359491302956283881958252734970952819169966958293655419437001860674417966447069556658342189892661136490489523969143839281695573753799157475051256517546324142650879193652085248706355992869545673207817891946930930556503107757944262656157738616872140474990564449145724992421152240384187428754067514372321694686090100747793423386647119647955628507911358662597081993799285640669890456920237943540817491873401896001704967170451437407251373266445750470116026695766191827412623312190545318608700586963488553826776950150643946767520786539555608319527331410801513353956076852683495131390460012020231760922311003556994833449351818852134964466871305891706132778338256516301592166968321972522729313636135578603366273528941619312918917681860242260906329508304740696533177962096776624485075249176433920357962684558499849337461505772214110771896671934960964089367187698967891378851789735413224426620170139775101745858366585291794176152281013612643813080693396583355973798053659758954494321770655982303570394258786073612188509308148402342322816407818419077862946612529849878201899397884746786364935438955876730502687252094182349744861485532194066823779364803648484668420604133918317354106184567082164998619093884922142860691693429983517387372307076263875711137863095041061107673745020066160616885554606419579502950443556310666299622410740451233058753798289118968048179334679244605355772208169799207376007518308794303183397004433964279337626910707295845969220624945828126987525121630797923775289022991674467888930650919845164122198126604583297628942835912912632150461248933582602814525800891576791478844056508813105872440480870005031226581007415108965750310958062111110329105685423406993148158736657782396963710644576191045095204176598127761762932138158072603733966670547261454721772673851292069420978483335847945045424006061057261848044476405219289058369079157594728104723048166764875079139364755008093702043488104884800055989162779962392372805763096695360256699713573009597166951640142299166659190731298370011534560559466955011255527165917661380626451796861372204762800561732267008142960058284718359150314828726644990497685997937824991548671328303910596963897411048797677747148410502764350978906675794454559818230462573092510947397685529072379759850277472599413838597170608766606351943771467292801689381885376424683483075865951780835334615389246189963891623175888356745930605476435637378385622659735279366385917276734305709358555544054521161636151808632681916026682173893465610320121737468495714997706732536497058020283372786785195097826263811363958152244581233465634479279694511472021513088754024703539459695605484592129642034631347708559448930747398558080913343726178492510533646480822893820940679715124124934782322187254200027459007342128511457556153499586969019908919889668775855729121741771599301393195492393277881185133440386405350359334208760772163914417626974223271559938697887666279679312293453305806382398745621163391833834174677301271062982250988415268717080077540987191352874767097332138940613553057747206136769801216897193916417584807815337179148743939747008825466093866934754501758862723718742665287131763459963304720690732233251843944661917057505859117338991029093068668061614892727832204269863351817882587296211324697162283407554601943906387012512964487071100989676433216844209580381083529010097500167405752448399994449882314175153177824087831827540538074436606581603345155733876283457451550996079215484585600138755018905443968116638465313886593471050476578296020022290597002252017490597094230997849769697911014537682658685860814133238932633016221939391693348298988411190717736043586371924730650037445097794919351357069035321234333268995061265064568746726373263148828749058318620017735552002653690521145770229006567584222727494873004592136688283853346383036472605170916729372672014915312150778981045890216833422390534432000513538644152598970802730458038360690570313171609423910508778487040576203938136026108651288858743413279485587599817513165057965191807133402618849164021951705672320880807294437338052616782740880538229744741200247229956110773483637079311491098866829585435612580636068893586091591524799607516312794768245957771402890709552505053011742168519456614505147326414043385527134703681714914507136711593150517166970988539140244472916504111868388785662710440959245151121783629717670469499339795688329115716817737232477820529454765535134423184116593732164258793447882102331801207648201512111870560526712977949691939378462697117111620970344384264310087262625833310956627262147454952545150544871257627795646734918264050860808602263414405981449392581109586689160956114403931625919411509423886064034094344187729319276667309207615160987126339438140941861943006107879333802384784415084216677878213744132451204688666479652654303478757770995421233333440355694924578531727996548910845427178358618678519966916409923107144528576056915907586924459089995384995495975730891424305232804526965939571719863331943559429705862138678883620146922794137462772326321781653310864365848547771543593837269285878654570436793273122310534470739122465702205808935507579728695864598701598080178490853920002250671683286247386478408026610154493319649299209041037995890168734469093756076014957912413804430299961304737496233277485104262589864278078714279670043049687727396805933913607066055079040808100857253509305974574815083204366010242659471010884422688691728538396294316500987832665764161796125885671808291519694287503797806169214142212393592385791938970809992622575480391388675875066207908878403301874248413074084250988213577308349127621102410369355273909363128144664948378057258592262524349632521321608650996213080343024966212025981698299312332676114136780401076432407987166710032737648636040087405716994026051940894681097274385678633743243908619805554831791807767615069719547473595266491321249470579132770414532524890632709457399847770190586461979511849745766550423667682659424477090749733129854146050173836674856077265508407536932274155521933483996331213022070167026432055896721093060005111993691479403140073191616675611082234455967122542983301799555908756376253156941124892365122500767271845437855820934279018883573778298011404452582690675224267989310863544067274205092139063020539934981244174684900915026303660153126297719321441737469454089099543745181170792778504702503584897169211926738227720533523103000409119894891985516140987654483652515800478297770216598400230745595802505107533098741864740045853606610979230166493788857393305130397164126655885295354144096476011115300966867751370233067969689778786160396839765886742960463923177911050672526645046575642060067558080808959560104137290190508085661621138578841358725504170862691264355504504431654833747913023028784231850627624412444245655444009220862696793060906887779375208608983468878962936401488250145192639385708392724041110451251019890252612020345049437628241880400214310092787614459514385166016319155653919309689964585020165554019589196328860241155529479712523600538181215562125986831585625914145948647485112764481124568819698111073909465943666948278403548133736914570207295118728743709543625110834865387621761104154777650056161302852995353831996747372795609294220379545242572440308910510611140024003027063822596382330826375359548382180154342039403009071142998953252106415769943626568768178223411496907752708102015097379074315975876627026391288133945453152632968171189896390025170465894651315821407982144055825259835950361414074270473370594967064439502313328986668078385308506548396419949770952368082770424623496152199151349447250633436107651529183383541140778234921610510665029841109168259738686102070042154002368070305821478069711603042858904325262899413513525459201449910436941263575653341688398461194668699148521831310427913077118596058645141587338028530510035378414637122687664761803282902467229787203460644009961050735406910833145590281328662916622510869887724853465275297611003831042131880251053678122726607245398874194866113743922871758405275648988438577350656457307978295882678383885417616946117341636490002336503552799197258560258971435706464859602095323757654668061970781051152721325048623064511068339921035624103484618073300759503411991079784494044549804815029851556177593540614043803266244278336304371904817236793059351512292405884645908303099253052785705453114933018639418822210788566450090845524851687108026721345434714319114432747782955157020466356611242305865353126769937159345332474770410790221005064209801976205513708449525576630105310630064292816170172589696456951075277647192402642372478692287809976804168384349975457741036631744021785010928548867372354258079723948100968087441983029870826359752636693449835890108189481311856900631327241772780897126965347001813227835954016833575166990983811727777782926831886958843637926184559830294313058119126684457064957887969378418214226283307563288549526648448274404685636436723961521567991844845382170351871462813024674659843008104362948969882128468935996034926518761360453599119507730902727269682802183861250842847307236580749911153993150490962282681212191120823577742794132835631559702733175533670502301680273924337440225552632183844353789825565242641834887904696169359031768141896022411335818616586089402728268329498163344438841315826642366420346861991125293361995448551929870808235478687836709123843123780233759824525489465103486616175238070112446462078282752296113203052620449299896867048627237763982323694059553293007755626418668554879222852567661479382179280644005352863022946464310695687646572615686045195989944637469358305429216102022928033401688877364909127666218593483768016963064181361880666995883247138013208969396235857757987040686548798795663392989060968502179412892604577794257703740111517145667188116444315558851109986628389901712934361144675211456473103801843276766311039279422955925518526342830497986769543102352561263656605734089911313085376441909126676230298080394919580201314374634488450677654553710307600678980827414398840914849995024899784084837726372004155360274608700545815273215874972938265803876136916873792901224157397345350770419044975834457381553706900861979153740040275478135509181419863785734547915720425085290300024598222520224049439552973173810755074204941111005511386039293796914861903895683777003057494784786647989125075913129297919542663225727837916836157334708790482299636942892431957651594843229463125890086085501436788114984926490500469777094194519424051046793788460869553536781421609429098567387124728212338943815476190730885319382483480959198133783955093057299371087618290788107974382827385444521934185672567543000247654177493528063460929029250385717342264983706593438946769605672247264085137466242135252358498867965142280774492557793693842027075979564362767238472884302337248087211301327166608849176424135283065070693437731568014674602043050446112567477753984945059597756645027774385276535338519344659734220442362568710312424584821993824192182573736143764094802188200374983944071340197260564462234675813436891904624451102780182563398510773387687939579474104117894091746104959146124035367785692808679787108004898942947738393529269348215037801084570575359090191967621416353155643521854561958544471808467768719582300661041549489399133843251771157617558424141602034815214504783887299500924966662613110747306337704695968974887708229721019196678927960735764705074707689834617708140200948814766868725550661013479329730060660966527375545012593646704029730386888579553556800107015716550589182597376617573136526121697086860557658705205574972411323117256858746648078031730392735559138156188675180507292448973026759044776330061068300744363617450523613437489295248214729143967310300801390199580167817778777343470045508780204516589589737506475925670045591648919501023408076875218406536102887724612627086785903435508729889117271128021021416098666808330628309080754093634403535286387208814603681685124633072527823290077847253521579095877742894924472725824863563143521919406340246456864874634234059275961863530520601038942763679824904927604131369724652447292847067876149308625128356765962745720266881307843572487208836852427623766230348514465108488243440378055874222820681288996682002079663493860862477399954426698174607705504452279888301326301740733244822525556659304793264751709640690806236698519092076346429843232995676971219433149637168004477649897081144275824687016590051797166875550936823263524150390298674353871796737861784191176875407468313858772678088404814848218683494298921625842744004452200111199445034381060805135153970397308547557967417472208308903022269491182277991446753819551332675076594317118367081404841293327829487684902520301699134680369001804973970959151668904278044643855626488068465492908747159351941148117720289353367369553960013222732802120205041704700507343347682502959036543901918332706780958218773689671798025056539927491069883165907724534579349313542513779516876200783249948674362639509561882596795175002212584282036212962465421068433628878812599673855589752648680348417080033128717474754337294811775397557307326255664437473370572885960702414614975360282200796184992251826509820918064612141209968229452325977712026994184811895124615851364486260037288464466098097187200240951972664484866089313797559159447606364549245458758528973489361925037488322225601486163216293798330787706095362333637182543741342728926952574977116360760216146003342458505821613982441426796161210396637277477941475577189436525517520662354783316040306798571719821818439950215600055602842752981858935690062131311163656896953514107216993590727805358013180611727652867682290771617841685071878739792255931928467439085491515386823878017881731360247437814154635985942301360087704514864036652322068976707443839359442763275927007170078479542914294220439677468712380107306568341625266414890952349890558192767782893271459673486774343675404779629474488659102446858331342468034096174384012603379462102825687060785076625227010375983595677534247228571217320172546385894614944039578587019078454774667816282949396554000124156863627499262737466131405546500449617213051297017771521547054162960156602990721758368580452483778938017085610446814678314748737561551810491038001096355132670621380316024462727407374206086342678205770578544202428756813114688167424679453721317397032879136482979294356565811576594058611014440447767158828700397603372367785959724579017489016322088239446533901567914270712222178127103804703703307850388791253709520682242301727350892334261331485045068725573567828355879181725447773781988762389056619002201155809708532122029320024025255847448888370185382416612917950220612681190528205365931681652967337512652731559203896172523757122427236392137204282058290529860007048275847581197585050427812049731641539744664678936207382965191514624472111200803064780931360793836345962637644039909295791429523447226938904456791325094863981871526151729668954215522482094340724805841855525144102304082471583638829757086091357133326697786555136881219826246268700487581873406629890858604654898855882443958257877007746862070976311158839162101807442029270858869957468256290787966193720858750082300804033762078071856108041572028569879664188177894562686381067080208639533379381867984403327533427376666576599930092775563785021651939793376757735835017333025562602293657387653420395109186747237552810539217676318740319175087264333679583419256955494411177162917155038418822353573931782046321317020582419351660516396711750414846718201075940514450543559764420891341276429814017862562681169847052018209238718127971447226652142397803186336278965408074524397539996128723158597215164463707094391371054213115078468740827397090406748141209440586409968767692199094605178360366174149346004812567365994317133523148828998842552063364245828727090808404094435824369169050582292776471637408137748316420346618480974821114894755713971552721344506563720090530814616315683068566193381138462399958601496547249374828450827854991054665373397964048969182111555480757036042695615950096072397347932556129737768459668908248959919200249968982352367562217743446674684305987215901522709166578868409394740855840661115052105903595702871413919326862056154308695915414185246535737959085966183243642448068913813845375047692470321455079342454984290901935464235318026542136931841511440338087778459674454998803908051568800941158656005031947136961058048886343465266553006533864212900420743897392629331084243351312277586080854815933821301381594581396961307915401013960477557779729544770998283921600456573810480374552670163972239188152983819153794462068861158321316739177629909966567615883744354608989359984570786006864381923543420574435408276642684348476135192961264329368977364854184445338272331283504196022482012508756652249069351150722216349932496243700848254816432818968142465865094119424615849983565952113730157228193752444615663513116628314967178400325783146718858010542365100809840237450899176807872850690373494079673553819033932947898116797609744119022172286687620621580396073362395263069755767727465796187856822626868822507455178327263537979431947792960687092349122602132500917999034243746391224665054083984032515193336402299576036227693246276517553930414266586615531154843258106626686863561191136639326202445777055591770171889011346385493079659743563419492427104621669728849769386503716419335120536233972394483913109308100619684651958891972635202999670471605941970920019478009942141595308733877336010622495841881091423958244168749767307416633287787831974629542099220131946398970679411006610455822965351116725963429015440048048370541785548470043885961816963432586854137784471930606822659377054807023314201064921225875039478732494434627682952768802748536614059312580287856954147189944279375645699732208580685210002440002834195415235992837150714760576475491611594266121871541343566212879094327242432320238938696944854798594293907937203053850625027851844119962094950827219867031156755107524994152055662207218991397123490830283882095965151109259892624082351411184344335250657015387913157420068135318281746131269725169873517701082008732194717257762298474225709135399212469078819345187599431925365845509880006491847570923367867983915894462903657871703143356563893048177094318525904656993976185123311153263895233616123493757512820852384941878946832772433247130050213491241277722546162197864859857818473828359263030609076712847858603726474198062611760646628502001872238502159198685476567358207754783048376779276244399605256463458585823311129538322894841161164524374465328818788749751815953899338023212470314933194922753760372934168905193715404007059679290196080571799634270883839244766650987726967856614728209764407891519482974425282463584075918297873624618402748274839703713144090606531130611313163175406012592562542108036713944188608585748145623064950878673079077637521353373106470642929458460680037080219155285882659001376566556626812423592199671768888610860014993040337348866650188378790439684193801518435040715309399774170611011261123416539425660719115692080158934969357896802926751141214074674643795221838029954824520506319914516402988843800242378555300364982538714472605092570779688672931727378155345859402229369899391800585328467505591449294157917633400213509818542347665157769635720389081409918115249764439078040882383001860630003294038947447479621817927839538679512950597704287791998336349995471811665420168736822256401053817275856307017868363873378599903756169726846913468712894470711584731055677225077986049533186385701319967113398629541547161027898149577027860513035154697183328850141708631018769054966564339691796408639930053792790767086891492946030176797105643340892848578863905611200343089801258430846615366242519073001091002395575721741319171176193013085615244430199484681133365913755416802047654337243088951667652247879844954338383170684050758373109547753827917396140321568170587917775478873618679839093789583973884646063852335125273058551064036287784971188836043001866137178473961565654003033382612323116225863412053647507706685439104992519629685770146481139400351917235674805558725429671131520275027081953776019702739330049186495149742168339618369199934894229888479141656969447839118142255372149799574258811955521921623272013165562891770009593647263054555436032414978474986881387881531358137065550086187632677889252270187518224360744743527111592155079572560049567205326415602431379766051303471326813471694445210041882783983613750708402230715371008208352213593082954834858208530763216064931833524468939342119114705730619265086906143028269073364179074646014309576564856009403952685133203258369024993281886231817299809252917419469140622319843000591776214376908168351430727298523237955792247953079258397047141329076660395195041543435698662684530496385987545209334629705296399289416561676019879951932006869296767370828283969033564167570011363026779444132259544102964553443006092128572004800776771976312833536359524471680327530104019669110700968082754119921469976520375193850851275728023753147225246117238651854273548811261820450233831830685790272429620679393705136040302934584693772717009066548582011847243525491763088011331727518828093861840822360615040187271638411895386346904437777941204533081632036766279859774274450076419935439970524521418580682100015530644462708994288328159448128444180046786490418026111920596913434213462834204646549991350783427139874397794706646849121852000632156499371264274028109158842186452997081448418551853307880015339554104555867891229475518509835715763195155185166068287168135770654520687139744398183248387908108245550109638810467300548642805531092645875265447732895416132083904285011836200971230915035952635066922625110373138063200393698932884747593169133965317481628893427019790161651197692731265580693749316698428070683513473907531831522307843246467562014560059646802661325613486507310955306381562383382977720683634523118280798281979476349652537686109257159482868713739762463913526173754117950331395824709322271828066619267455676117833411362380072061581817002014011585764201006291816831395616786181806781366092731437821330442540090554976240200689677005982063277038506996426614502532449461179750330974325120835150134578620618638784138901658817519345436153595419451398540616862069588949660120666440770359795276323071839239359883151982276664958444707409471563635518587727956328127805910747273001991894925763240435497345210191489997614675277794628406454735766702872125516080033899122556427339844751782134661081332177869999520017495264110636032395782816040691483601197786640647474321860457346243766008674331377014108019920713305404435361156426280195807489074059205597437028569590089972413998988523988876622236267635910092348678436173178762593462790615428616654528854240715057033064044511101452125156245408245894641888714320645323463139616105571791060446474636218248382177786891435373300586860955093372247075549108214354159883880665271232569414589956387875684512971906463442104455434684060244733728773098142641573572827557116270634614230108393675926004897366972521916209933172243781687954207530485451334712239820249907220363639331574154272038544044818507289406205076266229343630278213661600106115691218490796739685677673639457878624462330464818198009349746097981215258619032650216580162220011670740712977981861229594641671649737163669486564537291394735209014509952884515530266971172428749820012196022182336335141220829262660098873452993834808575849064694725925881819942583162446376033119464352135450273501982681496163727859348168182323593103253449225605205495351689099080900190388318045285941359175714009651160002567803118428280339238669241763409628978299248169599071810422997375970296991423717748575406477789816090216303205524355071929561550971513841836045327632582033488461966632554627153910619274030545848835680453373432796170257799404287162754675892975994398327274905912909483028420276060625402975740524423339296867324427796915454015763777229347475743859770707711792756746572648527666025085826720302963140828840246482941183901281588825089392920068896351177484503836110782549972282490034616088410208873366995346092357028186143350250101622634957826467542200659003947633966061414966071932265665402867026035787854814265377698232909287693591856946438743240667023354556462117792319088510418301521932859323671565524846426995176179437608757594304327588487323897497728259870555573851662765746511958765663606280610053275733639618705177217018047759355896606494161798861678836265302294649619576202452890573694831769875468061973421435242908572270933117799101496282135883360589417099950471551806844360468700372915758086559415796005684304726033955315895311372858195669986003281631013355886875783988709763873611595834923549735379943773855608303094012186254054791396375316312152974354216555562224182555149407829651219572737015601780280434482922304471896248328579563357515024017111009851645084136884562781485299627892791880446281986470701342983681644466987305778737249642541783027395852306865257919215647241230346332457179816323803284139980038001403785639727500630901737758964726910327951177171542229044044938440768800048730845465403178249852411069306032970974763241775592061727803950850235110611277424649354123407418107700764698421045712398387003118632220485986088024876845456884506569741836301168347330263679272562816895994723954155269390446969445652850124210666356576784677084379880917042129501603391944449959819876961901159265114325661073957302938047024298186608970375936526289092495033235569244043696023219950906798909451368931447351590757227276497172136087278464270987010587987184808101342748159875494188734396696563114908057150407837478843848937546010594136900905813730687479868819054970972080765895880730821655039019159124228002944033736351516629835647961842574972323910982208202127525804503471236142265616399658177565442426148828077766556146252612399278018099480609908118879445313942384679022379594502803648835476589258619597684122453134210683768797893081130810422125060567144199157631619645017089114509129219169952109718341148645889581281321744203026262904449842459921585401197271947522900165791484268232224964017370608214615659912088005124352963661821164934269149426413727995035018144262069263698587890941420131142098579281107661060248854116064090059151470203980526116143670099939258760307047786395873142956279333790037900859268250941818209302031676489972925391600721688723404353990259661985283306782825246527333536297591670091845099319187548266501299357034199769723970228363353206232552249328188967948774983721566201294831358519063787692541821177654588958382369691903761144232429872835303666848407540483128395546513744007731459903742977597918436075103557451043587456752123251356075531052052795150844449465457745991403519897478943084128321349624758916674895751668793126504083560837219852842117108517946319830036789775057118037420878652354469911462243744636457642939692251059644030241125944734131437490873711384899629978270434849335047830737429490540037051900814504197918349312233749231914847241956165729666866172105791554776193177473657818374014264428471116423496614026470929560351621994099056207844368537092169441112500654304806881261772853135551346928133300717280410170322783191846115365636502260467764334670954570567880728487384264140577249900734581823520121736895161373711454333893517533053307469211767420063276987668570269442163679299276361600895308951719784184297885922477344268184364919487832123188073244804719613657411694769904492580951015991547250503590051736901780834860249634978175247717422727064834858229142535834515238620436559902132163903009621602813649832691368029032590763951045171684560753313635323863959681955864335081362269628994260934344805260545758252679088854763924368374848242601757545853898709244127816830358015381948526644665959386308190333953966671527885053817453647310901042291441632951209206152322268936993978119684721707412232205045610407850049113518622707152491905288714137825812933425931079398406722803524652704541101161770357927529937412696046832610066532570736096189176161907022234677457401253379931624663055874955397564655079140717052586256257208258887063286700887693959720833859429086044617782411129376294724091817263686631657032302443135311697847886132296398883142343381271014850967682546247634057703957893850043880359547616744329027363865822971917339551452980023016467122463350273848607800451656873540856090585491723930299831773724992197068551767545160571044075210096760044388538000190956392749580762779873761564626222372929858609645630265415709173564518951105192316182879585599035493162944364844933400658943516848444556549843997053970434905194532215087635786267460340689356175532125611129988835489622491090321144747507507745967557962000605511403467428473658195613829873116514149246282031191132636458478739506786396310130678171937954047308040163775183025976342081345390170420393566340009578172215158925851739277392181823282404445213974443497579041577018518550346302184701975469453837167683389257590546927167846832095839189485547361315912967913641639492605610138140924242048667973357501290131607949599241016534588803993958494634195299471182782689843171553106813719857332582278874538505616367185719153860744314425183068214672004950506972180321055640428580028688212427651422374511620126873328029113198106830515789572995188365306847883910821281516974676057921916994603369156975411972465619370029703914237684246191506771728339335821948890346677248401281651660906069191221639446735545408453533024163012405355101338874172185061182234491530743662841553294774332834452421432122245632206294839290451550997298155341531596778161232393800461068336976009449654205795480477411997898034474780643202918819451263484044944919542163969899870547415142586469189121491290895223085344674634143743397486342393024774005051932329579782603626399506563577779511137809830840774373585962390585060846654601876982643787049395342510097202126885623378280750945411168012507178946908726460509905628724684874929487108141908183355917625717399064909315850012168540747011882682384531046081192332619638226658936793948716793647825672956784260585451304438876325688908040765481442285701955563491592901173261216232859144454069444731707567892945443658705121183046970131747044921258485501541319895750566162701448689568075362289704945960907206034105238559553730899245178754160405454200240593491089948753665209395462907597984814279908589669410371820440879008407496805080344028484718555936841020998784046164986171035146969650013861113211543316982496788841269002001759432744960022244232803342489780483427656356792245787964546399583030188696978800229830783730986758815118671538200469490685896380602030119415373527795811889886228064524942054002847191284865400928382734661916841784160561583333590238152043426523805338662376992112182325046638305028856444635864385775913865139611046366976863928964854469776451393276329838873589576073528089945897189393015664313137490654184628480889294173859649448141104129950995118459508201413569132551688281028470385463296055521747032528393005553580328645577528374131607001063296445811051348057258784491964923639081062075515747514048318833010277013635291486268359119219191166334923162476239132735515217752583283797774155579925645330598524182700913314395044883376825229612177315551510237832760610620672878291162037183942027028021551500039588889429749631304076892389684708055451094381329118279963585129642717666477539136029689066125526000579397877639317643691842158258044939632752233118011075012888146697271918940265054432081342293091545805498287054496790565736938629390867735324052859754995275866775903965431870032123889356961575416722166806320333935042000861358105601932684498454501661841731417839344837615788277321662476734341454350104744478378114794576599137812997768224515569872118640122859271696895621881827327156002549315690597134840873175342118379639284645788518371686851523533044232904081729294329849722303992691516189774743228203298656728746740543635155365023925069445843342614936289977086496676312430367772994421426691376641121856551626375032839499963259088291792806555786352487241146435491910094994387886915299272071463058688461402937554622652576780500837592757872309074931667322905947732015793692987103097687717980691644900634823517865891186188775021846370908394748733600975990252099318835747511307085320628314514868398907970617254579819927385734147054980419797501197168065627706052424970156819956222683753920879905148049154441522495353058684157819672303833647270949522347563101219768748885125092762507806329532048543797116880786390754905010317370472054561008921593891629013443127391314686055395806010630005411767287221198721087050979288187102625568783399531138816449958399614688749024059807169789648523930681872765315327269026887811866175769317081089551729246850552908727109297665379599229452402772075834738046423856665550403444679773937137028281619018635158067428261514665227832485255289490697341020428790046518383917304850388908316742899020074751143867884828129323209511615900106333126746102092887083417887174659566816076849244706979612713736594287779267201552281664632007071714283652526737952872001068397156949057836188102304886679906740700220625807068979387379983732821014205289166579444984295865571064760455515636339080623347789517350134143845777493953795636336467614638614535039195402098574010907172918544935864397652826927040512671869250571842458860253991935212799320059753012844452282590641943448335770533051586760043414086192447041608748578769416755980447438135149371293955370229185457433736063735492083649187601556409570524649713577001906397584163072365922237384649506444339421012948148656464188894130464782951507723132128258178602745153225473973938071445099697597213095573548330395106812760930498727722379359789756003663775458400367713557777366623355887434699774101096452273393261951100524990806820522283543122390317581210014848721581618740375217387348399632089080297071524093437283617698714153032567019654270899465623370857486060124081312975802182569721915658441065109033258217096726094134411539632845040089469030095478802094117442083969890200012072354655519081083889945521492139166382842994205196824292153240137448244184852477054881454231806162720599321373791199413732267721860817539880003414345178639268339266851123705368769109557132423541726772642678132328361176750871787010212934382254271347687111942263728606062421199150667718602465911424721155910147057162085735161736852125282995434157799958383238380368992884008960886466578433756111095293506656215485401370397212989287161634014479496426655102156524452367658400482714555171212826750153389816688900312152022267554652559783865653807585848585560561881782295607491794317956676929162184785609434666779286417023994456684027542575023724543523656510520771372325893817144909150540141361224400897564302199098430515920799330183996000390855674722029272354924166513371841163940887516820929240055460904242097329556431800869650929837943221628720585019710910968607381728008985214680151685641484210706122186950365616398500789780786347714685758352073290801334162547297704623630585109094019158023254370482268604476248116593624883581039234136180443621219688678941854323146984218820228964889773190010471825677679883141381774800456529475730067730091308223600786232929604927660509395521147258347298630409576214298544405627446530286304785038122961632153354595618690189037509308631054441112898313206249417788332809148350236292607689156743014841907377754746010597481418695526971565400931032184798744941972923017677847993063019213048952387205190080893549245507750011341726147600722998158224246337513924376563973998259631897374860176425225452008937911046579193552809445312201739570438882184737162017674719744137611695352497400561668306034407020662959516465290941956950111649646303737686978556273681214434976557012626122289764532293450590551049973942967263275831864386756723425592706236139202150060850587539034252794215898905683557379098541331089909032635358120124079204306683727020186797761151897762184397174358951917328013852269255236167353593108341144058503303397440639100572950726106174778655345367066172102420298227486824868400349178255823404305867163650478192766067529208901700200207132404406280180751111957968227835278185494604984389036698674977379053312386089953955690599579514693963139555824359394943913118915100879521834768466918016390483427281801125268371538756843130505517284397003733681765822810689679655692841174947213058803162531786269414036954400569069833226034462822744320083999549922817565771971060072956567239569657461270396654675065195010719303327213827910382552198376700705362330653014037627360699144319638988522901905489187728318708505053336699440146034267403737182374525142900588645626787449708003388957966692358995661152267216288431103832847459763717343106851046318993987382819298070146257687262878323509594330354407835240036522556423713418496378536992180309532516353525945321292511760106293838276991681869283947895682356855691472411981688055773846211809762412206057929804485243623515645233118545813431018931188394622763912466609581336889405428868498731330279772610507298255271073452558810894040893389399335156655702083679102321520637842675974222575789789273353076538131074036685917315305778331674222324915690561077857343411000220123972184218673486789613559857562819542862737221670622951979519850604297521308636339362552087677226087561044771998849381418037818133811684275698920972806896791285812905085222524754405406722645803944589454997721436702727634737366472661438289864299063646268684284217073743940795078453355412438273475987232919209872821493475744468447209817130126460499832591983215433498184993480145443228453036865646797065346039992789700339009039568512241978418637419361015935891744047277214512925995243418554033602642271779545079997118709037953547800447553058649515402532167966222657508821558990430640146757316663147865278151245676724866610138826505150882088716154273546465431881814557057838735783049519315919775037678908675402086002260961966719152710788843532938804298986677665562220693523686220426369235952611208145114387113347979440454443488695939591374992781261896663158108986137813786106273136706838631544278336208984138237381752684562512917858950267831940970638536498061408824493730337764759489437814108273743442531989978590363263799532412332202008857750169454140540174417935466062852907311020251955014701007539800540229350297011640762555460430677532649684493588277701152787049056692894702529192059203319830781262709834678104084718477036571112499868325368087687442428090378427125181600907290934635276485179190604577146047186485578667906242750044892087436196684234048643817403231165147720340702617096314595180237195021402414851025824191141298466878262723387864403526638413771600781296393762205666249441717763671368490573602572760438281770955318708965026164479424394376337368160068739851931421878755492569684837175495507548640097739484481088632640379091081637120635702272518258519361337164293388600078066382941845040074950739235557070242706464202429549372741697393306404495631711232175417387714766972672542077401060809857932854835668107047845131553687890570705699421061870427094886809709194371496792801961236128022104044459229706089623417416132560269730614821109112261753595322572081714592220441888315154961644085761355275823749967498583997390081449106726364865801900128667197239958139980730804144981960639187111501652393010440211800684224660372501277652251547463264296804158528227669194018349378338378696263064833698622867668951400318749976610977945262383333657538490314304880880746353953086166418213178139371973515277286973134294452258509360798213132740936469713020187106037676405984660816184857984266880689739767838198337331135995517366095676254013952410011693515543233460749160895221273776959494933522075145403979147625751577183075660242359327228529771617442814864592065140096454639535411622376825245157350612703430645322490980946339794479486472471915344607935933567952204347747082903530628959440451398011121564342397074438310607200709509515744268744608307700850354972865718009962725628783683973923757267033088347257657787353504305572014661121744972038151647759121725952475378603692541482970399339199181642250039395150738835685157694325858440308764603143486621666670796803897688017950831741880232471677169982853087380690429238997600071757147884915251825732006400577978376764222581448385839686117410184434435998091493994812799558669875375043923922195662522598472839655171507924075226339936652791684119459542081235279842898010958931423686091496126686770376880385056689954756039282030284317950762853211124408150547848871413988135407050610295242435367886609843169962606746430987761324859934960533395387947374527626368059315413790547147599078982569691413392492039826475883794442489019385053845460409606509277949461204832052818348471289473639466889148897037453869690040225068612069306981532695484728220506763736217942842576414243138543591245322881371353343647325163469938907770050598108861517258641448927795192458898122242949024309142770628349552769671609026604620257725464151118376253827791930298943691777686439619343268834008776396750916373897708115796159708721839207427648647763267109204964257664294698582665355602065456102678793025860461915886679635878239138424354694990860789454228448675066174365210199677685825679436142768519464143041902883371169903082023551568757372931044784437989519253792044488003587569437461160138424268512102602505162431470651279070210396015780726813761550873481558436139761678259368196065837341345046028738853925776946507858738114564514855076040670634774527838029771510621419298354351646707535708067497452072479776459829918140604469226318748278020276196833380338472004631317448005940389599653844310744106044484368764416758560471067758961110575267632475372565859881980857884342756521442006986537005666370273239679923011215711836210652323542104323695402606352991112218885563039000191137348051083900650696884973859078141981466636702550666570533976927759584820133747442543767719433201786644172423914433366148024568168468046347578267109976472981510614832725742630916878538924400070320069907039328268055256478416789433596472988340877258478969360607332653353469371878907956834867012640417740022727966869044150055967239021415686753021347640226144250901007019663050478518860208600957474650647214754375523125194819843698057291262385460757348539329182034255931606691727070218148175461130427849321332141473469687985164093058486648941506855985557383128072071583957555924244986044052740757631693697946773270899483368664052428540976561118596038731654533869059961537681978688663748188033148602309291646470074393733463649570481766558291561612216848830670650620657860515595432454316794264999015230749640844963955845532053642295349348323788638701500161488157472857333242704103581524272225896076493836034671886609765543017027396289088291817359324596113049174645142196360553382620523016610601084723776999913837350191524340047337951433694642137656178961084220317209033449583150973527184718016659661814279515138074567017107278994212556534172833462468592987092790401719695903582026885344943869279223898807989153006533234652729406408219517489869090580014880289598811870940595145801266640336552287631382608426765850642102269213046842802862037738437000780969275192968396893180849823015157464038288298175416610619719624592367910737299443731093955859914038158631491198955653185117031077940674454287568417381798327616163843594195035430782238276742671908193637039821246105418592363005311634003616912802495342704201298800364122939853691453219662318438618360373870805371799045856658131860889628409493375431091573414857311927541632568719012152125512681103666259656023838588770050156450929043183306369159757282314226210625442913771839900954764260896286515335740295008091973191731254332340278748924927984187802458360889925680671872788932771933161126457931824182077049050062936048814342629833830875209549422069922823845269337176779885066426531039893193741437006456208733523748165420239746229885671665164489661686337551284202466728762083102435477260061519576106945606671819052116095148177272591845574850528249682649646718396371644926017124861849590234395710512289517904198426698109163995923157909624545673357516961078851156786424545671113466243095317406878870528830876248023166110227388389750699104955542071016432605940163406934646741718478647422882155803836191563521348170243731520036288681379250444750842646819176088391914558248377513910210034820268822769285258800789604457258557809894473402979098689773275621351327575993040203868774006367072512171507877465691036641332878893558432389226425873640486333736892400748230491852258956686728249635467026402331387350292555792539789637869511558937885960776559134134720159983447880744122612442306345111413803844707535420733314099863294018389777008548365029324618250540344397447913924545848999325994239155094275914024096331501165701285912769530420873223969938884917909465434487108049223927937681124227887081699468899403240780113591872012756516338543604909150419491970430401090536285685815023345739124345722627774806951309114931644991457620689128510482337420140484525868894380966680168720333393799410210853616376704501861036577290408056678506702938969734449553417459229068005614608511884749404744347610630841519711349489153862776502407195914788211366696384567072591828495046535945632668864279412772461138209456009145291595319597388933916108478755331986903243332202654491526225271093211595095180586700069657466596726416004573619583716710521101616417979672703381427889137789604953378538344081856849681549688003708947733633098748225856921549874226121391889734626068556634237416799212538318154737547505201216847317841940132917177432949291575431606739937553886984494125891943326472780905717364189162045407388422263206917002719921567773809806392845548637805831918710658096005270098247470170978960371437377628383955825330720116577223815421445487394624304787813354117391626536137074185558301148374167416626265431471891327586830187392580873156774467524081548738568225585232138954896858957891702126590507978374782416349188547194683724320000243256501234099881860517739456980687892187997297943969131563373493701191255030952955621358202928548180958436059989914468572493324481650333813760172136137160602640790581042749214278236607975381230900754229503726846331744685383523648202974442451199848352590848535612763977056136678099971107352949237114529356538252769296483243234405098975660775027204434006153657526929327909932665036375821779323954026282958125240621734176962231758649287682117854808236248202557813951664070798062002927089422261237941173599759689687162419758984434086382289493746524025667803006671085810946135325458391551280003732325488406978088960103683022510529813677772052610285234803813842027471067108422404710026826624477505261096945956199436823897772544335641720829694414918890101196461296422726625277415324656182907154849669633972976838865503578903596689681813985156936933570190034228918202156759617970868687143297551467326395682804743498125507915930078665840044528814811998884928109875938647886353048952951194417082240737691146698073435735500245117565583409146856439887910561845811682464691239794228781507799643861130985541518016256241454764606838936420218160351244333143905629787688422820624256783419590891527452350762664689922145367621545295062283708692759772879738163922083262392282081093490696331681064219066908105139002905235288303967183864708171593992825392617213829574417271989489707238411205373844341172371949980333290602322441877167954538856916338667920082490918874633244712883695501724192940309021455163723365552706301108656817811848352855958183620383866776912174370658343547017683017605939092282135324084455790265524772533025277299950427105132167569827814455224680671944204461365008301670343483970029149750056871684397590816497881621040425573125531891091377137855299534574373827474628108113521787429273678798000857405919882843082735756027121931900229171517965802857303792452354283824819284490627790273183758283006680831320947246431353852621543989700085439895265278109199356960117031260139856372786873929974966199726848850652694976787981608245263826404805552986452949160851409512966248710895597556898802591918118585053035652608033493732495009526981540300000090522386231749596834628083403050219249452266899114781343212202563772052100147495539142520488635262305311343290805496123104565576993508440909311522654373847561730566488641890207308482369713138157889927366189624447453099379340024017983472037820060088638622237243707522887593912898968158788656654017297588216915503518577317772780943986828021054385991119534160427552473834261463115493569565967609764674797622175819557975154823396914406213887807780892043906501340400275159607148960438190893225285518574086685549730380145200213192593629535398678766962770803115711267345271826196982577025369636203579669736744374955649083856538413617261220198429649948602374567017228638244123479704448647751060750070520873325683927062081741625890408220362237325851174640994863901868622972455751681781374767823473217058526394007808631816151997229459488237511482135385594481852055931479463220178470200186885241898145742738500891824724593305079731472625599458433074857399603882963226381686817683304825351220966000707243630295824058756168059272217377432616942743310613907496480183173187986015367098149268787313110228553818185988964650465422662165177857595868388934400379396467282334908036777596121869836232785462740837050092955190547005594778894793650706166734695649559837425884299620402778276676738913111761789590263799271167543692607412909647566359660647895723833302472889482535878311177134981967949073192174234540082346298875136483868484533675407809259286536340131956808797495465098611508208261734449061718617131467542296541156657149564943018243363656965627241922408659133764417223643188834131293246321801781656924821269676982678557105514318930941500699219927405616096339262326399532781060326416394888073825836262863796883772434270081498315909632785737943871173479898561049056586795691647998936776331843413520575268595337964908225808845246975351628922431204757125916902140849879412574267208366465488571152089201404493618714072145128806770122199420510479023106093575365240091232200173852341956779771241770212782501999256677787421281519044023596534190467173939361387710656821956313770858563329409370370227690449235989150066078524458466745668804670625371310883408845295329824819945701045061630838102702860789528238955406359922492398541830694604832020880593484571090463808320266385775606309316001550806316241020474113760543168074095326564131820141626365152006791815508203707765083753447333031862587880045068848508245591591073258123556296604421628365010597344909711855095156944432885939033911975763192320781615522481774703484491001184163223834144235767509085573418209266704953694745527023851855676825651569275937418485702389571655941100655580047218660831055867027922310488945700035844319045372278025838491156354869285266384842795257923711866951630992625529171334453149311746432162102791177005851957359668601655216505154446740104384451286948297643692298041946323338924699904855519340471450662518849223953198388589758264379939502966282081880295819618787954194826784282364900786418867717584128083919584584789229075431646889064219371868455551807159754332754074484741168581166089594803399391114133632727907990580132581840839633014246609905141637030609418902504631855415739015993674142053611696925797609230657017253732416785323099541661993036471800133087975186274323025642769939207843780764329544317013431849641574239256947311652836320533796383838244044534011179342032616014855513590520998287020000713315890249100512806314592109801056225068388261900404539243363754487019929339303680224891213316016983208227662949398932320049024388192522758602638511372521389534086736143019906945053829129082249344143820031012021966876673956066299590808372728127730689984540652526274448239586809707398496245115102953931651771991484858624374686039236323503986415272650752883366142897728710393043552760455243290683788592419026012247470245849770739627969871246301163455757348061171136979028263372259807354338320001355314102567065895627624302933090504895775863047708326433231552886875127723060749505117658424235112767289191682174693750780831290923009589062065877579714959509063541588376225159770358012552803428667898544510178758876192458526658484479921238594834698631478915747864821750872155976236359395168707384406522522842026983555891678227426424739155806046994822612666929483952602300170904813823968668382351662839463459567580767291492145794940585741357695743836159371420808476969713156235417069078085038015937800478455501466276842019774270084037423855403442025587425863475342058416167525682565626029880747711581924486162581251405622867575361141385644075788819844399897771306387223282270405513320379045628753395709523823877953311959932028459846392910696394784651872806230428895826162866445204884613046603261484538316607577009684743622839561983686643123229435840651545818541707053814336486970860877202133739577394946462575217078275444841770493596962268039779887208790322426960086982365665547896401527446643881543604743942153501389653245318595481353099426096773067261331730043769252265611513921158394592366821175642615787430094359729186997240717014229625869386907713933998500347362665194500539112422792501124337371692594469873703241725860073969309866793240626402553949256066776690915441998951371985150988113964836273646272812016916440205054447203844750464898405346715857980032563574205491897851685873179012137218981247449304343408622236674693133685924530962341424890183502450493168331609268687346541374895909848064389669200824134438643733088365049216013515433205231096280877505351733226722751605788000439453875521944226681061380029406532837679992188162940685131559386518249724945471441033550053470354701846257175376580116015275073226339710543707943306634203413994494237265595652576560743677723535037975971438516582676933442090160152332230631000540014641935259145900907024935374809342374181850887245517462581912177067594966277784354037065910717389118550452707731205954941810293010483096435898458095643244140971215317000341303098897747860504734169992295049118575127752190235810001042410794165226564064655728492406351853166405229566486531781357709548112083995194386841879934448782096821198198802303190142352790706881325267845851581638355602698238139080203973849056301790518186381857133076297547225445411139605071311368788130901745405237713454539491700869994574161459315077687705239531378346456967316975884074708954738549261379626832333049699153295501147065818790210055821694189114758993231364616586196520583110827001332989683529852881023197459321226140101763581744014479216307665580558805076539473929487945857152962231116251718752130997011117781463692208305802831297992219581163818668064199439279048937196478050154441869341653012333652103084587975943286795499849199950548770858188228787511333429013615196558991304839047088025546991001782905302798339861732858238472079447512608513051683807848213839000206686549130205702239082906176373154047110040610591831667854636830372076951191359399094838639441079385510229365881707226438532966840001129704654134162695683487432620143837159242696934236115011875810172940149938525499363222419297098478338427455476718186276939610060119363145190524953783174370687215984639602617563987564268449381387732967522094159543624575120478992909253655989826138549689218135592284831762737697592887195488235332894773136399931786177712946965316477464695581724241538406714990059238627891553257564350186910384387532637982907018426576348477130004985669352454176008575522150083336156719393018905392825676951628213649861374406589036052123122734023552248935065412309144605184739490947063580336573327788636630970252899709675496325979275849631283508691411901632355287470073437666305701025647124242128278227022848676440977509943236134021841112925145804562176608679358081860423769411842578731370373521487098607908890456836630306389151479344823401297609498743185068489997817920381553077293509213165057545372774722830645765597364162224380556080386852711163757100012465458634091481187571087217175411316288626526199253072632501331524474755680368574567798906615407000750440713161649770885902169213070193423759781194434884872412112222892984382018362150986386852460188282718900232106564096909612327862907870380947845989437351435443287945090397064888965453072667216553471932597764932912383710106404259585960418767394177703152523160336837155265455961350378159077218602034052223559723014768833326499960021900654591088541317547544887780010954547312838267667765587524127437555475738787053092729840456537385416241437406241384821990056628725428853389469267821433616501811702930382409892149848409087017168526344511340923900193927304224619962765233610641740370961891091551152598614405489532706708823157891205380521404775987405578368178255024246888870635951566304899495632265949913478210475331937972486070463095143618358154065376072686894324683765951188228862021728038663472609211719787740426433998751354620803929585536303302820401761231082450759741315686470244053390783862261616858717843351397194960064517647664233438190603815799323525644193180609148180107971615963737854491239791318476954159881199481687945583490441004150858842915268965657143283815117552830056116134262887234777113646027960079830699405038601524645205363398041300438306774493574616923313380698781871244347435190245210140967170238938480340777679729894584556884470466726804099120626799171541609227428464505896813354362645836403926621849389851718279767338648894465217889829453937056340708659658537801019032180355580618292891866342865625603634915004709406590094979984711359515993988566112993222570690469855772376601948554024794928019760453934194566720280671146013785249282143557186204891794590579393574003107567863501573175914852582582386750003093526132715375887201662528281857983887983697016431442231693649869787031817361572502476479359893661602184908320596384236138121260746487726310923933036381297238063747572326204353114452345375380055993162295733202880904487139799477370250010818343506961443344574161925231484616853238967219430479253103065921691545484680402999760529558726586094894311038770571793291706428579467590243101497072079278156630772904196213958607163504622768036332947546660118858709952435935372509536868311717750357603711259871828624018883414722659968268196206625424893687016560032396866628298748874665948084582091467814811175109755791447304714250435513223461668512340019889508367953117826106112181978798284149841996486794817832858315433787512191466139032336230717335667850456805142354552202382389100196143020475813848502774631830457460869085742818521240080336590838770697899013211905360206070804375361271678623157705245129334308032083253829428384177911589806909975719941262662354279216098015964384186337836327143170744275154003228309055171256838848645828272557109832128250681350205857367766607803946629106569588144060872187568547362615828658486986909345504015787631232447944901409172816783203125636491589342070452201420044553758243597283670745855653796971300068093694262330654823862358054115405361865221473747795592949984518180244462828651164026851459282672915730824348454661000614437520015606353827922664578519807153351915736575644438292363556025228566339421674104910722736031201101354294376983996102056213320069627597934929191558051759838407048804534149982482374157501244275803965230360980778431660765607728053720918097008758415302200919608545049355536640895324079960169670163012011836178701018579731017106572388391916861213931233964206892181531954178998773771822733171039582810339325665425249061737248586344982902306870649548571999927690609946962214969568232214638061195506021679795151675531202176291901705891893152253998422893834601980753021296306741820025574935809037344171495829061463103016843651939235208309959748244888182318915558255167328344841611192874490509357686686620337503420461448878393151900879871251424221846047076827792201733243967130577154627764349679995228865257966260670317437084368063427747615450325750994709800486083210206331976559040933709958251675085196923156705257642613808184400879640523529724236317195635263209877436184706888433334698400392789529612352285411143049804549947252096119327353572736567943243486293264161327496559014736889899001751279500359908144555333485998558463605728001382174681580536208773430605914609770765708793743686843581535114102469372015208197945997096928175093547255723077579389793582209570228047465071233449783151799662405894048115877670949077856004005176380682382719257762836627042332349954345746104268261997664178073461464768818836250997006088352526359083926340064325435594836061006122098901936643588489797438526524843480934094613336553940546240141109944872158513325957400421245091973646115511593776293396924061620887174764524509243111142820579931008662849266767884296622550130307364678534587525865320143790894005694330515547087976557505148634020292269615357172913843873610449914757159101947645709279863037955147613091673914336112121153818028169039769249430109785942126517153014142807654701814187403970217734654622255712576458024597028984729158287693253278279405496358232243276913697383751350259866018799184796972137236499379214410656828299909358819760572174560222769341762612848126494427099087433985332709614542530566128157455876137930387552901447409870247359977223717176667173848326471705816356693847119111451916468216214097519362022069909181135558534857202833219871514244059696345646413824698176286926571186544934670464326395940088140925081464889173970698601600476408678862539012332264774998956037811225126636939471270744992574578245379089121332887892275076639613051094877981025430542258517313034738113987178156507008728894303686415147088793587256025176282747764391049344405485804727936069104817835186858081812924529354419206085519063857145968145068986593344258004763372691989116692137210902009935229468196409899280875397829746458386309631817641907107717559006278687309618972297942199241755053906308337808635402229384670646067151018749677719297797640136195442773328858914273451950953146915005147274114761543413841602062849273597947065930184068669418888829994551534566003202399367698626322819356394187304154814724130804607266754230058693043743199056084705993050724255088845918027856942513500003865063770223749434483661728224532729159488088880148694064348685074192751051541346436667794248142092714460012663602832860388958155518862842174459543407999421589458679631865756968895049323187538949748315999934830174795255340382258724730099580666643069134524919094608181947953921576961436280056955263166979150309090496130170860430515078399409295843352620869373041530006530841810450203026415055162986477887474939038097367517446707283546040068012403469240124406198662330873629585889812173237380993628966722315164237546426709050912570951977241806927132234268656494676671754045245844884305279039036855020505462160580960184280016714245595590302847318713550214413790715165931033210136197072218361234347515010527653364604314466747165020991534754022731990027884501841592565379495545207397653466912350415251672406091021250268955403988060148548634453252818095575000839397737131123053629007223719362056939933396866805945404846552631722378729500450157704742377715579674545442679375411054258578804229030318417041983840575870709820010271665816538501638685583548580248526375795005773714574522339772282120655832644935361510264927978160643738560592206694057321947518295832750785224904130768528071406902233353020028388914010738162116078227938513812697811452454137874144904450063030589812589424660199772159176045958745071769946698800949563500230482017072235360460751535061449143408574122256654336607846193819720816482956871373503820877707319372439556101183457129608334574748181089981085030249256352592031500197029127699590121288306754689908691202452333561109447665673111044898211125337241883606558713942857765617087229510736081643454204409274254238481612395048561706137959712219578804618557391637529208581014751720087429074558135541242939710267893456807473980150347458774468583148286470341909128547450312465242560549082349867896940116624802955845762240203588487547755566358158410829489658627345232651659307818055892685617562300632925938429605458760038296394736453240198371263765443965489216582468971968427470709972985804558515218534797793758805784489250369043490748850607411557920083966828295525593708952521654853088817928974122846191494953473339125882550196209335683943925709717759225516910238388160427145327668344119524748071274059344639026798272659827586579962320489277228602912466463909571377575467873841557761400778864394600850695698230917178228335118224618806533795151687215172916297325467857199970624627382855875235742970834722496034472244143362966562657523686592880135315526100333876180201629493725549126572275673654212039782959634299412304941285784821146046237454150872131718711640494997772032242564257049323260381224513575945000374470979394033995120753551041518925045263913025827830991749787665574370262479336840161776417016562500371391879655053914802118182196519302050412410483529987567449064793405129806673029852168303682976584624671322377575448477442043654235662166646391179047790477368521049456393413777856572001953811588927393431916681442361731945115299466986462190411913441101316314838537884882460011569045842486313807441189125136262915572349672646153875578921831329163710230465099824219571835953970560409251650920058368621552816379945559232881917529543096548559321136075779696439831493363956770423602405052300122777586037272639538994606249642838428236008013631364463578400800991276909839265003244606321789043874765646844891673699045778126080762609910926681047308883359792159595399319801575888707590744555164779576922291224184662232120145655988349828035007940181621249463148816068854892740085812194601597824231812189087278571732657753971694382004293718875661316416075816835049995055856474196470305856156477182092522732662473753830590066459680699346331057051092477915854230144111655607138616188085085146051009371627187974886838120239500952756418171822614388929931474562633134685865891182183718762603067902176388775586881675534113944888556901672697391987444993362113197603543424512362726634403996172813980932391064765516867416441080474523574301977529385332867115907582523059228980777613522372411029991490732970936377049588713732595091019723751091233001988130388071698222038256288574538848965380538315236406429913292761163305990156203793763412506633274453232281613341304652668355539539524632637879987630026768292772571344692390380756736347475773882601504960256182098766821733840478725558883559444585377423622159057549068805891692994122757584996039528759591635656687260393267338279775623994320106577562400027477279034317930008631150587887429747158636101734964095339698173343176215789573030323247941955017826819130303181044400886089946002633058558231430762176427390436031307224692320836031661010746377878573255096797848309547707217526560675994014486556911401117022251346868800749285522568261334465482450187277065226031962693196919364262034278201057037015201193336515931343111126927852690553934769817584061659096240364269276947814307542803406628596370151265905324720725595768647518497162526148479186756812953032007008949570763745216456986601545825333286039013250077823255268578748639188468707346757189974058262448283888370978474967720271519758901085162057798812449095918110101806444109294664845656553581943216707964314479643393103007007987267205560383392034386135381162245121767380540950264482941448248886894862379632576394240110903225179450756169136527985179598176898130562537416739844055894662079543639923050718181318763939493168468133284568017649516612727807350151763607317889503101647975028803753214483281822533297879870844446815305804454768768490486602206151844816838711318468799789598648408049429192538805651794211824052159071073273473635475536713279725569726322993218880365169969998476493022172495991485573690490893751379072624236241267530946196503085529912900543424545652231100953726132991559194464320801358128705262512726577961871951297374760137436350780895618526029803573099688634729747166376470318199285046692169028380191119529761119011751600156816357858545975398524438780909743651528831992453693129234128003855040698593373548372165675238054514667527028701278035750443462939475734705688656746861055355743956647873950469276193418318433661315956047278903360185228224460510854666525277901721757376710603678075875977865742705635806121750884311040123358573925048782882057208690216330788089965911119295042776225240256598058067798981567670667767264692863718945982221310440487028863005444026693459356717995752583136571971739250219036736300964567239684031843693154187269977689503987326302139735771094132491100627216686550758758096177514119379625113472172269761294721951513914356610238526052127246658803291618061730295418884619457557049043928861523312245001479622057585972415445789302577198033719791279794337338690265846039423548387741607313657250279949524543246653324867356658986614817024375494425336164442415179835545150022014566966806582075089110857872329792433909694347685808958331129754203559396138973572069837385870424773598674014628635311700031521948238519214527939727935225347188139001830175532635959687191741449416638765716166522601545132849533143553968500296062431080962989448853048723628929805751512227005456376301703894415202271834803497388692449290592119247905034917527900162824795825496894470242438550987068607236630559956916764396144789853599831983079412743994386454027798749015748829034361617310741637864756406412782838072599579083343002654688554731846128195110285810531108095048786958603902689682017081641096952380264482738094224167003783176923217577699228955037431663647382793034744095411943865764292125649978112291077714267279661384567456056259046102796792315548097778765033928182998599128527732277842957428564558858016837414251133820629423747595889526339261594909405152300374447753478946237332692695960638728065532127881205445685116133210626315456005215115475834868331220507530561140415834296963890484994629465362125408227209508839015383415400479899435091158895736119049781833892938954432410512792294656419084887194703229623055610589264953147436246966617816389185745887946647919229183152171581077212616991810823259196451236069025496489760079034316519350753204771281575852327077733523351102903892982109958988654181848369812117625586820677605928271882245699271368891862595858089160638910049826501225624758597153649223382545127709113120809276428270994106152079536305173024603738596648990157712105035928208491973024542753104565460254123244538721515206392038619860602373657460095529326414873728882686541166487843488447715569334850346382479974318529776961973473714558266596047539472668456709879966648516119654674721733263718743313580354553958067172741925244682874663748169745329112187185723223899496508465058835283261096168277762130204309354496591726931958609276660168764008574540909554498080806832783901741252695232598792045755719052561981878257646841955427248837166244887914043012641847347136435806337875835066308249354129765370732891325667291951559245327998018818126459799520047602352746515401865205467922528299065432361234380165464740641320641680398959990053420949666687758973161096564455912566032290943319664268354014339929317608534228628818138624118075627200656967849895741870992762872414088354122149713914623479292972102404894704244373863303851103778719504601117176990120709061290467218785603147719885210025017596296241800584080819460015915375128905657433342435109559290071375332240651199073534847168021651001524799784089291088340045248933418964684705799855698204027990092724630088270323702224728037934104786526234250535972465456438672504966905104061076127053787042492403597717706097018327284205089445963532611076164238463754252679818712140807995961431728693431124923445647539826960812723649573167633417170023143709211715158461981868602198160609558439527526873291534714049994686128422694395314120956631352339499885736783223122014937713282175519129765291779816091878918458194057007453904948551072394091810048506125390769648030990032736247250422022776982646092322145330826314294744297405991250248238512590228555165118477517299227058471444598782584377444660753391391150460717168223820849994178806182672686192238178194864282435503712504048633230766458829075103790017375145674265258390084773482261012894833121162907506970640336038971895898081829099995781057538229655848800007801683882034874364886574931262472363108948798525955505676020913470521702753484396891455604459340102060807382174377989942054218835162829274790596866237515222849980256206431553891635423247843346453531845608079151387571329681853598320646220701926041345657828624851728048131537896742297964476644197322589035789170530547784676188203753276108817472457761676073984605030595974563378224474985140382735577158963488796098477138823292421050347190445505640608298702965382519590493655166138180956283443886386762062819486043555612313042955194749250497856829864879598088942478937841544900115338141135295677256658383390654127791116198972775104433606384689381346279722465020494966728283154859885589871770211145108170839888842276716969899105044067764827177542541052329884945718277159329022404939170908099357900324577631650759974661147745195708566190636751687987894672270883316362278270359264729248488569226830985472722346037979817713261054414393606063050294163600973026346905307059746131853291840522161590349724234247151285761724735609342766000492439398745832615897945384164397618244669984154063954851338626450465711581373973096494422798993956328009393302400554571759680866212973029843077020576615554989689059479949575575672367028992625940171003903690994752667318469690371087299228895530887681017930838572917908002152025179454673914330416862001116564135727529987028236161621864929995578779642486060120685919750880297344242806813403606246996281122359405830828329237043736055009866447825424202178681291326090025702784491164500319372360087669483013520366416628905938614466239634766165408199643390474371167495827324419073294569002290835623479499351641583406662606752702187220572681757143924279884318409389149677949031373687590889277059673465888130955747943246978194739311464294517800035862203757079282467536062056980884076169692431712973287358230604457938821135041319993367439898867464478049585805728702892358278183534184402266381501440790860012644508650669997656750866067846426442095524135510235569732257627065892673276357982117687994972025901829627350956067114063072668116177322666504905155715579984950938863012615485481930147774923264887905436708255941954559938218715293538011331913989204235294851692533410672587108393354136702246236418857153817234150503988848165950223224349496548716552901317649323299462262000432192565864587156723020128639506171167873616634803007416740624693152427659484216392962765654920376356712497217367532240264270191313897272633156748450561016257541704813425561099576389026054612837889466058565548314946656974084737370662532319999787039882960705742612768871495052313470572475849914341016060048620197390577362130231614760691274748833724395253182560341605384406671329413356680851759016898478079012494884315623956618048705855563114366373466968944294128915137353886099280085936993731314040335522704362885418251363640798501051089614991351503923828608233465435040178879539613728632106013672661456985260371371626623667092693235175887931705983651469193098584974657819911763836644076698987546959114506557864590819375367712620944951181464427387516702097631498183724451495820547985577232880142562797305769377931844853054964408149253374041592557833183383418895810384258424857096224122466995226032925038962888343037942490094727621861162079242885708681124318916679149620210238942292289921619729098831793700508106249596848418242573459498145577376269082341332867686189927748514623438257628786576713280608507552398545166603600567105356133895601117512093992215115050467014504972240640609966741449921350756136909796758173215990175401168114573749235487927304476085634721985998707619934956225755920177126632147321817215531072028214527910626741412409435590194995266020107671005378998579350505679026122576214763727576658142351133277632605853273002030588448911203257131560311447737212666508526364071814742543944576092377775901341810607869342390964544479344078791890974248950229617879033635507906346335362111464429766725796198746484127139126886874592970862287234951910601468243106508433565565914345902030271383500228830464294290514942751490982853465634859387889997741566977641195040343895454163731193441304765221690490185855646917792205249662239645843365846385704336413408324862644300452191425129273425984154347335158449662897053878522523803155257977274789338321237349239891266354049483629348517337753949503636363079652283001658957915633332303624795373282324866623739679176668308923383658091617964384725791192203985959734538520738384662061908518825071871433238162363224632660690211371904585760423106877219067818477773923911640530291944114361663608974333029747231354710123911548359739817296614303931624780560218062202176407077595232871069555630353019577093335346978864239201490841782072680534425850138956483709147497181785995054967864009690061221182383403417426808879630667321284052372998302154045404288637348476888665345423804899858259531419418531094267179884523064292381529008370022265597436143938949397557385581144483422706935265680080679149134331690944905065772282312953911220781038176512108983794379816163123725821988672448960515449327964446417400920500088693984540261403138004231910790730257414258082980350170244010572181185521619699954741406284049544173435401673821201461831764987745223923827163662013220206264050781120099054824621668740920548610139146916265092649609882170875900357446190772675733527877770267542345385285820900292888558127475668455433580308946519725023193056139869961170941074485932466486732731825028529736992670612932170164515393974765107947179417514981056923106428255653753142093177687866927272588598895533219435464986485130541441130508900724945561407619682572226037540746279139288510513425579409990252565524886437415806886306415852264061224975090320129253183150418405923340318746536525980275447419574382184628670751778948215379412283334992252357610969585394616438582758941992798956560307824700455978358061028205634919196530709191313233142068088546691258364511342115029955930742950635005963236305705225830609564707850999461875203850615626984695574350013708477218617453592001019053590742832490320428935833022788441321705602961199585196982209461187555310973865481105109890161960088167562267280539841241232016386378449437999625740291170886248453199285620279607633565850582947852215559891622717621238548446471888019523532004678530789831112505842631034711837270123721709293876588458453802013515797623171743104703768332585215023078259312423644965840399666849036799647871740681555240501433669333030415482122352883720305283560600829772845066964401667228765885897372678265051052513314537403456625531445725864091663375638106273774916334289259020584011718549431899715879581200181715579637587805685119130010826508686047560566086261917588912425479910274710192871458277746186835314632120628244149439736778991837038750495674717764644623159929131325145019450662126644837057782967701499531564148205714047227064064127349712933012684656424129414428348441277899489180541524559337849586740605148649247002178077798376785272981663473148684237862705023344074849952429102376291408547447290421909457291366680248668652859911111130155150436256230021074211249057360306380028717444457722662587775720043231630904512915409429672011599225114902031629739062069075399083077051823252812033526765887295817736100878594820040221217259129422339622542467430273678109601541017875577941407678390974119783328704023261463154540532019637176984532337435191983281371955685306345569819602332751092716861534862234497504571047328795634779892395909304510455298908012847668963767450223821132498282570434873379009301919761231791300528141364239614681000418091548683253164145497774389987599508528367903451450626378996434120372637212201273508687539476396044271172395403364184505565121151003092074176681291669867671906546699270359394822276273098294628734847867957484380124562877114611953976972466245024363224298009292155475278406683782802041087411189812588503249269075615203628013586641403920308911496135892276549558244262290389343001183555745638285026177323385773341945348601429417475520099506084222044578255202391484105831166074238285161082292708637018224975509764467811417296801434840206456672530067019845948180755274142272041564488292373487343734596761901168669555360810585491327308818443017069285324574851419211895773989083275086283142955032660227031377314272241646400957123431937446070215167599335835779561413153989076010649790917479027566466593280621567088441153767058588916507550999573319416934616631180887609565133223015008154059004875199472507456937163143124389306588825154603427006447064571872577663608390790044900959372685324937664484629632100754428657374280829015754213233443529421164085155747515410370075690864079378408329514335639627520528011526676115243868955709789644133386680219054701396479537078508580667911541098750755277433629395524146987535192049158937303181771331245861223341107330635140505208505621560449083274952405925424475995858899280551419788693306642435455188050955672531197438402101045412014526856491465283017117577700640478715291537319579703931334362435242052226125461633363338429934267409326216189885987853709813134606134727046722528302765105866409766601326940077752272629426153805576158509392309021058078225670513772925320169468143695357408552187314706000874821369599171570668535874312824819964486439375511412062442333061357398068586818771653270185159405702950244458137209173917281373863714282196528387377084954729355481996337615826139741651027576469561932726948731922044884966333098056437227301034249158162711105373145781171635429096423982129524838600470208577194358712766660712815829117997911635515642434634540380935316545776027979610318453988037750306726870868488684871935188868547810356864694596854686841990129110132866393992425188017157040464561019297837082938462613716600456262849211334261004281727859596579812770477978520495606060189205056066493521602734610652162878110778857585409947761752563661034438888202977259457080705481643274809106956049353560475374365896328360522778945328102213521248411983236536075851506140092444430166832498142173909213682222425909309985167360499126167365807572328535219549489778592604878723721227446742417999366190480236935141116020226917172278804280177352567292136475920610599685017257623915464974551429981144200501536463832261095865785543147439472899293604658549863492304431653388786978566844046965043773213352621329068553541606262347536500223339159104542909138326579109945426422839050235571895510010750072658805701123597551789865627776096432490562980923215904751437937655664964235434724057549618657043412976836777148773448453424813031818494412116836792388285820630878614804472683896274259526441526114409245506490227970407819321596013086481923329591729728740431164025618613280245177099546580911374990890586138338197681510644414818317468698758093026793139251336847692054504726833047668459518482094288138038034256753287577153045330814908431591331545426709812550763940106092008744066029644243225938065439044366638774089110157009244530188915722757400118755290325466668974961686062779651089011576218778066078909714676699257672331443184114583354762576118741184646688939078905257687377062972584194802333479103106775331588201391496906600587561846636568675390612700678950859690386065696160926970168714560619397503610771159603007073073382998350177007083660394382573154710272054298268249862994191336231708933983055001589371731858890426859113935912615547460448758477680981989163613620238062641934409246106798581183463200493187394174326880519156937702636886401756659445451468884872106524173150963923517862224111910427057215094242216247875058351979848705743299335187289846932444164024384302752057898998652450408171386452988654924330912448356734301636751217185591907543980924321346582058951497740867929718033357152318836712556926131854915404497022849511403219201913755380339714025348550880138898404360528024178276258320623064363095184236149178391791899715876254153217784320415198364911391037747298433565151860370361135346394367030292139312273447576952628455262170823577978575554801005400650010908533002617197725441294273952543520713718022671571885348668538991378990188468275993582482725441114382070407465693526515549606086974620428724259670694012465530268488939473273695791114643763966103521603049117986176545920712590043731666698194552407697494381281466572365613884594878126249189254767239125364757092316653249925808010641952297921996217079913314846402228748516443629636046060938405526474865523975477570374625690999863787526820930321766455766535541678655012282817869920205158117016149293414281242829259471738052117889355722874313911525137621524005693902966107890162067422901174605202813173375479275919946964818313719370999925677782796648741712948150475516630334482129585286170652373487525142150784054567441828836281428611362203878060393454976107480464265266743445038704917541812530745545214427803449954086206527131392151534058861651788351588397565278974193073901948294776955580133774726036516572178260233293174813524252271849737861449184281125693996333448587721228619630647838801642102834773848758191198576688607315787764057142003360973404577771384719934526679224380730813386308449470831460786355258789496533760503981753496557856098867203878669358702494244170376011271224097371344397394582236373970664611172874959879424146823572307020253999963082636543008509539862279907517622363527782674470693917556387537306722424722844412281831815046043838665280952195035801529359945633912298903655352052257669040068848674766363394555870472255204884214448687114522118887661574288489598220253310200017623319186577493515768777193488524380084376987311167457518134821115338921621382847546272158004506271301079537947484557495913297629889048394898126959018160133708858870081569654755210803832886214701846918827208606571258679209370804739573062414824789929850364364624246818092219258472067824035930261955448891629752640578144043453253067776091979530567416424817033622861251011182524981214684021475705410639345213107684727619784131488637159729671866432361871430119104441469012299413889481581975506496707250929978924323950731109158280393883423922630706345996934516973132523419694537045683544667037331056375441295765048357010991493645717358980758381240734376764868379283263908550684306291852957850351134733468861395469668949517633141542538849852206435364278873161390250037244815569674747458271126876419586492392693369732589872625744284946389989338820960020150487635818322121923787119686555910074703119600729255343143092387522378230318132540947557544664599017246208431306655235684969241778889107100084175805328154869286958876404144886469937987284979735625723057476067711107140072888653974393588092304570910502941174571011888543354261817340353054377946053478861441415336034409994731703025059597028432513098344990415691327834524756396276516733315249653555766469770410710618178744540049772646388805941902378834984553225595980713963503207991116803296557745775078573271181703481919412657119841277402863676160274787766503851910095824934173949456521407911949554296249554364244677919566959850111017936334181077610321922525311710938244093130868009888926764914616269326772986517069785311169108721156232976445581569919384198982917395640387594191667477349469505961561236699007558627898948585804203943876521472412858750765878126012795844887150085540325609577284229102417888795745736509814188589717163398604496802067192271104969742960589017528798558481355648566012706747806555084721477647369256484216613760036763799752405254980483075644272663211762935314940062029498320617265038736033658389884800603502686834704257171043807745064602254806833443847031947190166620229349000619612596675390503060346391647431243752808270813996706477929253316955715950982905651866535095096851347965734920340111188210860349288913551660909442741010223503780646620996562305657790639362123553976032967173440236335532957104200424317841967157134177348956665275248048196021405982192584527295569470664564049901020603379216256670023585024085480143943390488749918610847160418579488441103678251490787185932316167780192685731628486890837881602572408789637513028370675954075363226052924326990515397228023199012785907887901416082597096142081006454562446251669917876198040687323340240625689768986736340900464893188851881299678069797050811325969210348126335578630941429755106195747402317381937870607677773634062961448225106513364638707606410189679209265617870068644323829258822176980168712039949014038474498824428936838768231625021116656319804997514559958639637014504149160942463737248605693351301667106964736873592762222937790999443197127000705517311828149178433243089775428774724986485403232863812668546434175710193628776855588013844485413505675117532654653906045175133572629453059036176827806701444984480629693341145538597445895313708737332058290789920197865236970979583269954603424198624660947620063732810098552252186230017737611273210282522857811264322909794227897261230048018314889707495280271931680678676799299511261318157759774840234506692152439503741977382038780757232376201976463106140848223225667066123796247646756898577645068818400512848833047101500760867590543668140795774583187953046838759214941341683114116931734449256524710396653874336070921269849482052181548118551638622202843008713225707679156894327800936541674630785992665715430343741534488430724155961040931092776256962595636415504574814518632664764141047101942314768817859223662498036436097826498977657139563796428107116283859767071624383154410771073383687418057352835079145526642140488295218560578958416956491921726696602935810002793427488260979597331871499347485520642967577334659687499713782535437669016176109773842321462750135510048691123700591757490766474918587311215082205589687425030662679653497030414297987317296889821844763165541864900420715610631162139014881182617498912380902883166226145424270513992934143849603640865917000886731360174317486028938424051905603924918293225949947047228776948449336055150925604374107037216386663164875078228213049865798384411082085619230535052402568890078268207211107664634293820220722267392920963121050462030222370968254908890796159404282090736889270174377155679779609320902970109949125522811886854206925128788601244090922036710600510240794252229654184535206924660103263624014490066206147636570397949251661506556824522482374957231850291399482837612068170978769853732980099305543612639180301749538799250083546411511874711363220461701238349047426428535674311576594204840689104680929355438836967997354210736026189768860421118040467517907011634982530697539218925718193055781800237450693081840721701091739406848641657400411559464288071420852302030018394275964299686937412946283431413742194286157995198736028083326898907400856896147751689954439438031997568014540894339002081872032458810086030410708523797168116990378231151090899922698942722344197350047794864222019700847132462052167796667239730865827226255968897274973344048986289367546890988370727275122983566940152378896880658104765727866514119771270510647276143867309421846139616462036219032355319858533873403300014975208671876728849586067791446369254263467271547697410768013143372306091937656264060870889256251448310351711515661960171908044460521619068676368580665145701971120813013197023613590467669898396625126438140744904417925367168581446596618910765865334033831204215866657873961230649982177377422516028567366558035417811304465916232808692376140874271561799229827641493551438180503888180309522899924938691076486786762868302185144181929179685737131920736147949876084628597482738046486024869045980786144543984574662978815468383455062529483158666676485430591830880970762453136912836643675197139256257881374698594567866971245908453102614932871200508687828923857173367086765371626120004619370594455063981887171838638140070174058611247042788909182970677086737806456526614499393928774037894586148258585119079350899893057773293684436928840346179612605992564736430377781383690586255166002830779656258270000506448550794435356425850185672538212558802693850080489388682939658785716010015689581333167985549886696865987677355673993644973864401731074750887966028803664141799962946399913325021902639338257125188605742825307418333457289353939612000347237016222924117238520458138430754687336104492217358223375002779386561923701040153108857196331696677894210543608117219305432323648003128337803878890003852249141149221145293687543026406260917417959201596952570442427908322438596682376996377017574529363650917890063747565258144525856445766250021142313299962891754918294702570863928193130138360561480264009777934563094848534079948043250132541826417692129733091210778404002198694682462951451256048263817043850140210085553682236360568767383907772811333460920235283564319731682495441721052087474500700095124786211671314499947661849930400392161232459476249852446665979339526714419922414383232204104723564816975109440741369767770631897101643409261919526294525056412115850824056473249410088893711475219363996900083483955710924523479111655593643088256422791083968321038993934094729222097613718049828420908046085765746069439935347515790217533811183365351692564150790745942457132867110218519443208330918392422180397633929279694424602212086024249728413675926709034632621646104278160272900871447435894699441813859710696139406340349940461408019117984814919700515506921865055380308125751692078006154980186950952191309006497440849386918686127173870669516095180470644881761935897426116122924612249958039930761635034181094308464826154520798927644464124446011148447426548291074894697634797801849226246029377724861298378484752419423128606026907752353745586995795030518208055351315011050037175419844880208646815384267182662680798057060221487741966291702287593341892557100006502982598934141915887552559279731050640163158544111293167002478924383302841255799667848345253090705630151168276806375333620307903121618340752792291453665893568121182740438602540126060758027542043862449316407846158662305720977577467874354449651065792376299437984532317965892302233292029518564519114779544107161388644218772835147191822544209601629693488076620205612573020943364802591630044133726121852877307178213034514300359570448015373869379881150052141730543775424538970984059668225938242275548814414502310795963102286045030829039950427032656729740253321634369658859749093066755378904576501642523108527473169723990593476393663764854737368398111403505075752916853020638706340778779473489225071026785138666071562324960898715955494945801624312427720592831614154369281264852289198308689654717739373614150263462986870513430242655038565556331876822421741710686651112738370389324589860672127032110882791582675373269889840590296428172964742620265052680303400342244872489983788354545748108911940470977322963716700337374109883879736014305697844860294263843337436912561347654282623866285421987656374611176596644383629737270262058818940785536689193773344337506129087553827404195960909696375210812707040087508293248522665639332956829387512974861493507502219949579959467540579808660103457060039956734475730118591871052124717352669258351255239855607502876330273319967981538989488545789151076076591317696585810825594317415225830419982423922850334238023120588009447981398046700937799134748801704559242845943141479801192248480203478423779224065600748544805505358361006944938349795120329726493709577900219134648591224046031998692054161486925174515629375700779097826573628954319045703632221237943730780328009641114419610669911421999802876503064060678787764905627972243320698652751607928704324368837657130331773328630255469825444155558674978390590730043036624432063034141168822261578151401503964783672784747140162646192905215274371393316082144619572049195561327108335217564161226064145398912742994129982249021849639636902917693856877137369542832392115788823728566396343394771438300183175749938674529820245208038862758649365787719501769030011712070390136889484468687337869398362276762854995311262746221894828831647945633552014517233883190759928375378745966113271853249326131076848785007810888375590963420935853614199401955624071315174004655177546410018971615437363348210207399261416513708112928042311219982906920689238633140294897168778045080985336381666900459473640393960141097329006717713366173981009241192396455384357552662251686419684006185481642634242861287245232418032171456640650123306915378549403205621125099620735763459712193349445746555669087157117715174360702129343898550709806972385322471667192249725303922512717045306771402082641874414293080164753512856488327886253874105424403252825245948032582106216971080538485696721755168200484211974013022540721090819546564878199337408002294306136254046757069757068993847864532131824475069437215775793747912961603856535915960640715271361972170869091007700692680825454852429406822302593669657510536116526019344056802396982644818427035166274728694121481740503589755015270071290603979798078466401573809476166368818772578840780794392977911201621032139728002510731174350238840965585437816971584077376411209788759884577597617444321095563133798293601644836057937495181136985482630603735716928696362475306515849119064934664034469261076414564114182482076143314584216741675545588018592696856583642560927162384383326999386919396546700342607050346125305875731418938566318023581581004051508799798397922402393941881273474799710106865100510484928105891389447487830506264267081984253831456444758202712753330538331103840097317538144215404672730266851215885953579342004340997382498454997853225457045949065355076369015476165961344031591833064733093803986467383485221815898833219467375674210756096581289529927251441868528349774228628046574329705658895004813177826074376969604163343737939199992999911001452904714665521420379816865760423588431832373317456673324948017500958444432849380047081112915842815403116810024464065573585729284551782092556529464709578106640927168355563754038105984300856603004056034823574780121865813638919897056896535914604285014599566533197146530130205655522562865978974737622544784938088600472460539287388532709670170774833439305485685558452351313898045326142760802539344273354463281470257140129522788380444487022458164766053571098732013922091610605434629890340657482721935175750909860951414849651797637272100119638323668581356964727917138234882121152880663891470337841387820869128956072710288493817494109562790834041131883625394107811190489014121372250324038916791243957311282956569820983382590477605708357511425702597741027835205981612132720244523319376223953291505918216662199069733497070406309296094061003608181257253846327209515739043098318330324611258848057173131869861383633985955405229778971948173141170096759183622383368774504119920232983164655779196605303265685754493924682731744834343237696091612390208880771690700503538935753263288015528725994425774358813453804397467048908735744921336792762800590291750102670915845568409801307476154910920423096552973462004911599928555951203391865850416115208294608273243551806329092172868514396343927648166103312652843350578561473413401446671389773999015878878891809960525150559219765411350511256070279516165521741041343224373492232356138825262696155596578810772623375934940340230328063761542807974473952810958027621271383320422751802212407632192743303848558629542191130157234294088407897797259302024162551727998857512495472837062717779824899373771411832809675738312188302155820199762424809300799333778188341912082364154833999422042664671428392003300410815230866554850181714420326757941800161079023525388876508664995825792550473950625244959009908980091998207123874731111679704013686230130310835237851331070135270695336991857449910445116876991236703250537763448047932333339946456113881827560236326594454810232774419287535521405147457880807321471379541567803736060413564773680664903914271691880154916768003187062602188467793064813971960793894683456899909226948733981660620723410813067137639349382856523096191465992074427327786927866730397077715606037735106147941149708180886231744048179313987083150558309558463305814309908263360947598465637232358637454437859543639450537264802634250624432077933354375122978173314731217580557439012733612064030203706721406852302774846085734554313864534143833701053589485593770463754029214625721508375987284097030784332975668205753239843247503385973415781340350021922732869866945457508598197005523769380762488902497473184197455447952265749233096931263707420058848757109806847941237217576886273137267033490614191511316781687922195839544140263846471144933005085391317444460924876548407200167131604836809698581279081421783623449316306306118769268202525319117061136736662704881083178331715297181608595867559200934823092090202913656387524401229632819650881929089891292699290058295193405161823160643636749227954532221162384773208315959335049630075547827343230253919023902959469583002619363729757170541804471522047031073763362556289014511563295024667120934319254508548545598109397968291258648101736518577555125932376825359813432960564077217272178332582047080045734035256826409602442669433918794813142815137044166101281894470127575509404404110776411342777476550572055637739870483832104407301130817719191320142064778374408647135995286003458596119387355860209575810942425900274548798713480356429029877504771983522324683024394654896064761994696575226957086479159356636149453470256596659786661565816792272273231977250166630008378799324328394474734071287252517624746440026244314366380785551890251894509446828850684800051910300261973326802164644004323027165796848508606419608120810272804133530280848253393476462310812006577690031250354588940619568348321941443614514263527900180042735563095263219876781147048939411964968260930443552681884932097576754776951946355808919153891087555483187513792307809761955136064930291814621269274794966251240758905458197724212638747724456230735379808453818409004157560551609421066959254723020694022476484225062533924173463884572764844339869335565562367982150893600164971209232360041558211183662844318629275568681925583110261183331915284184922259574590337797276276922249701929085446944536937999363235300012034103267624443687278203985675183230699917746232225362911940494265016755706755072040730087895432988678802064163680012440758096322404679849288437668166437579066472857270966826150592267623637051928329552981310654397942592484743936956590816928682528719574922070169295574703210786935055851699999639969715231729615655535370687176574771078369600027070067893800486432258235369579780325396785243021413712066548008947268351030508499854567802155874720432754310955743551345793977925488974013359209170900288570565427977059472680671088167897181600729209015213605952477084242137763250900774599057068293876759015637042109876577989724296724151351720995750501411193261490687053891758145004903666236152699313922471140503047748772863584502296508570850070923533564595186462338836912204173074396940088146342948654762985011722596833606702899649792592225857543363249123570389983601696132611976316836494221491280305987161739487343502497135032164939625113351959107841592340054312847514114937999303956063534815359844707434160455372979215442854384432357859497765163692925563977979602139246591588591170036650109798313064019095243906807467697732384035231321315089226708613016496957830054321352186973462494140872065906092508788516077187391678888356025862711338143055557486343617288249184191733879206429904408925529991452573315516559987509012802087003355930448961169900249346151174363638397963810931208565959776816277028847606069111576281651388382111455086657638932640602208632132585334214175979915781802656503497283674694707303751685927845583922873987648204728072592528651449969862086063133923735864119542099067614171465609058675338378823874223251161058080733953272454042191737992115639081877741521034756345557846300953173203792588489054059859238517467796256681438914339169007126841709689755682832108942942246103354889440559308363764676122984472562903165005329777659755351776354167128260070992615940303510919061200906022519814050919880167099651615293151429733685534404281067325019140869523501697795197198855889861580378971764283294683593900712504588106396902098646650822656180484520005336603956768970845197394912162751954800909107145572138627299191678904530429973805765376246102714197480326657825503218231627769418105562351489623418084114117939380570678347040347792466053729686537959543057892797718543791307286304710593409336395977131550795279593630734836357704042722796840775363232866081444724846116722105685261697647040406976865625706747050717294432830842936878470020515168115393307788226007997197358777368627867476410379540873665629459478845871815485789410537753734569966918192400849476292479846312966469174930815483066943259052052918530243337963079819834623529037691324232035215982613720580828586379233095736039524547676224863237536311195784204155458387428690242385586469428193526918539777074702408397963742792569903793718797734661023654977122659608221271274190052388052452778778599924201401011352110837451265110508707239311460697694703011831493935101355857406970589690606657188966046862568154062019348631108667003624916738716042786725077726615654157629090880420885146208768510324432756480733202241583060751344873114404081670904708341171444853651876088769126297996496153986560858383496480450035865713176203045960173102124027181222728413404378078389130807917234785109009004048553158543847457970026992033452613039864418171143357738333430370768530898021718410175975621408376030595652502183481712047817308746580915853433721155674497809814944313235282794483453816088220759760804570698342643381868396872018625813015310985867902939096147941557767320591680471091819010217671269695656463998762427948406772777788506117250256922303091004898154558423311177720737763846609014713609034036123776477321138642210367077194256309555481625934277598043406845499508236357102179973808687579252489845982535635684212103109637379582057267861127124954807873284256178111903935658796737555410707023801772645402286167506727852146856301774118573835392584770161775827546303996271142020330621554820122188797580389687900891192927166038866832364706480349254056314815616903265217840349324653132667309968715375801173732785655815296312176103393129894582950576122765483406165697410801029738276310933245978218855115840244892476208280271524394175248231575217194677767877556636090877691102679035342637014486225964368280413858372348443119605005819221018093820157191074554036451433751566352924500034173601361999868182845153238314432265398330605643712475939464273998669044556692710676885077528702565418390673839412221417442665347855226964328968928978352454484053170440117152345704792186775497738228359499062456629977949282651140030490864254393864309272156701330240280060746711573992269673807334593239667161446351498628512915950467547074128839374744275713364769030683595618861769300105742952925843037602353156651054640736788675360589051275115104579202523571807299034857241119856317346624813250549006631626975034342775549610235706230098012006466831992002094680173066675462301363487628103921791234023593220156352069559384961080883986396612061975656377555258725977185630968090803039997373445167107950636418864159525812168936993849517551648161303543119221899236394133526077548280538223759729539233074116504654880432954355367841829670520510734941227169480742478766961242541185091487818397013558157239129998880289025203837403730369136318336498985403034575260168678369618582994796793507570827700195681844637578374637629444681550700094045851377541827484470472139498048574451887739396524213888818749748517641417799841378909730910300955268772202912405275813411479427156531536806197298418856725262599919548852690178686035913940498744886966228671853753935960910901866270468496604206533961863465807202293716360153661029193120517272490473061803226047058494043871357278136809270895902052564262000496568906348554711437093922064940612640818526189771351579041424286138463844840197090755739136722133049022492493726660545119040645328005623733413317445348716736221929896062945224042852096937311297253399402209482931630286796644271147334563867937687177265818941058891000012519870784817337478962163564705912313219394078564465470531805846530848429601165745504619921390075120861712218430652120594174877197233013062470030564865122376871586730328247482225728076362511002105731259533766277517861864668788410958705467090834648874813780245650084488135207120653281226561993994246506913582164535666343243033648665120080108666987758197060184018175724845199110236397848987604778011949962106872337201107872222946604907685599253865681364991740373794782388038732459033195560937485407559909208612128754340986381608364373107013457495607544388697336665723943886309160499090784329741487628032439793535154294997043508784817335293527018029295703219128394044630962566635961175675853321037949462617622166132820170129617126441834311563698973465875484412262672800507332648335865035356254905943002342911788432688150789205252994836145090228021077736275997447328476766765126881084216715243348972731567413895872316376246080613832855849884891292318240241941568576282263527936585432531717090746369794478452264471193528622329445751089199413138175366901291029687998547525683916792772809163996634916896461968958470384398172043856860337393945151809786920257148250592788083598983884513195445393294095682087780398243560842412378868824739546896585832080863133186017558183049736117354516571100111024589005004702283265490558341895483457594079933746878807693768438695208089817196806332161639439817472540075572049802458543336907692064930995111666759502873431141244312193738413611702490590118304509743077881069572664083983636543997420947105658750814357498068238124154834624040693556554304843174407069453233341391860097513432900985848857551669056301741157226693483537452912541806641295035091332366670578353877815609231729869555153901373549571050593822771160713374605469738360657309173058172895493301464255619713110053154920018406926991060060896466665614419718584935210992353460331851184118467397207984534621351494273922851522539967961462262520681434234127366248162921725616593822864255290660775415414048197606767951892259920107549455884670251546977929459736239082123762509090542522474486740487479127540728857284527809245595276393635907557393638646089754480887571273993920996095992202416713654649662444885424987901612288885723255451732025227750950563948837797717197386172156781343053763265731801938442044246124300324499441353489090323121028066512219802972865070970713035779633631433788619826202977980037595620930020006458788368117033581822816147253118969065350933025026708070831329143335924385817408242116713338907435659826404055171134266804334437178603490906675352857991116495682284768743308489108453698816358318886193794669959806466874165241689470197708932957872724266278359934525382999604694791659295958150282620120747514444613416597714000780959418116522628779422515604945591120607590943483616835710344611761544157983232357944424005827092800458669458288843059973744081924834729451085314505135539162766285986204264964976764853487619322991306261207666966638422904862312971086807480413786729813988446738389823631513117225528003042432921077731477956886626954072539135978391609026346209815789816581892897595601194262446871583889007467811807650199842536384378533978416107274827618170909594096762597838580763291138319879346346798141374348438497918268413240966799932830761335377086293730175889296586078415023190797311601880669317090031034500196520880936841750647458080316823522132009338218710931213111262222489900241618976083696554359286389887742856827230241166814791150322244095013582775199841948295477923683960407066166701815405761970019858723818649568383231626955788016572562587487821058085822641321206966020792005333847544491309517692952583605147956400003656457245384279662193029182629222212953687715604138734328037479591663639849524437052640573569503437354825861888938891968270910827103361281813907876788375270876479474672698557988272529285024330345522567583554029019248945010437092574152908644956132795544940643029854410690053211054705875355172440439097877084804971962352336786569079076260120816582780556467467637121597821177879798099076346009073897790270600975837901639965964589335046094898169395188720196321004124523413687170861257086370720751051725591049478345248259268931506649320353720169097323302186699794969438710682291845226377120776981562095888282146420194496428381656258762994085016923938245675098668420992877273179397331335406545785750345592876541814664828965870130195841436820403239816933659396221109042777233426865106930267762944712503792308992324421710465822773884484997231483965874977925547589557347336111823285779275813715862320147400911248431985994976496949268460221133840387699414424813577189602936797951467623943826821031391922166898369799299462131523963825475500859737656228862975687655997437748533403985484076553342050163967523872535345168287364064213387111815602988886424286905428306391929046252041457951810706600566001910266653732535225896000541410979920942741213913222778781968199645680443440443752803001980708703227201337154202167915196108119136097889553039863540026755504652252408039808278591870828779720542617197376774185850675510273164507720856026294885036939623780926826078330812443951010219234434944381886896216956220634668813682703590319741351853627837643961281265663789024559166324369213413513082048197937047884072245882138102680627248099536141572137462954221403064890256542478979280010318703556081867491257931326516397240823789268099668312840508740417953454123807959229422862140204871334036639624610017050032955635767786187387407727182547503508890037338139543777847314880228700375363257547988588798769172166691801716874821303246095954792238890920392833987305633311366845851117073278822405046399138305852163558906956407813996013603626650587234910887135524886611672702747035184196723565440651959596865706265849748195851273561583319277651062051527024489358256263780173408113005787700931091534978154760215115233302584107669917854422241062560145492056040323162225681575781776661838099626689404543019877188676550903641251494713701417917282528747569045801519954887060737914310464046600853167319676698086246472927354354274255988674830699736894832439339849016309632853237081313059216539261249617742962787461590364325894593011300117476134738953797838699103109452463800667541368315263808497811740255949648079843534523740044656821611139195596652824756321665176145607469490543764628969006143584801864575101095050021078645420791255518578921019924931176169352324016489116782549314671878904816247019313802428395702230033373001122966687527442951875524750842186489081817447488187078072081096257896241084219333614371117688117102365670988790915351437475842483640744883951150486510234074210428627611527691546190471797101151171321599344449793483223640363079454536656363676110542942018208514438239521465834147861923369373266870769850957941669044541232806790667398344291820920119008876771667804864804094704815836375673870494099936912395838281125444062134966083292865487181715432332652357984468780477865912997637289662438473083841292442034348196169435504827252323233992064152773197965034265966194981525883074891870302636822761095427144059462994589274538110008503314653886263332031035662836659692802385017719416809901672057652757544606252359968171134868153996920802180991624515796355304608162501784537126859813173245807524237069227036722176411157957420400396165555825953186773096589058518208545026278140251396471657824686624442293303880098288749582775896077816847034929847012914008889804554224694681271434529999487010081131526481939934577852722767336755641836801636520087251880702369569837892024674996871009324945867780637912580207450143788228070415099646875793405648506502974537197245189784375917980856799940844206016907255084407072883675459496235677527774854622620606013642681446180540085278534594836906172090192786685802144701327042153484496956226181982623688729354241444087557913068375677603211598180032573206480900346606861354398655884114390456713321812417570066218439505949297315671147277515982745244711759916027806760396457960018058995998069995674540149972104054939872013505334752535878572665988037742449340995472964518313225596158527874799990964629513600928312243511110474021834230708464371122368033321730716799184521283051372583508738332615524349163647116755764135139993354112000573197418647650634450580528439860636439109194352844809526306528891926960355946103318420241235924685038541135339972365293650157598184652612606570294865420953042502844060380516833044548386011689372719552127531306633908233855598395409142141197368488767249720853731411030941845308406381506896355688366400111127329939651028978164942104974353471973436505179370193792582560930911452326723023681555532684771625741517675035902894153023446161621468188926939685860085904811868788624570961461660176656804477187738949479729441522271646276554352342833324427078567332576994803442800338531241662764233238982833287467273375164209471370166510015241422382117157874611709847142908248943417711625316400663788326953968377103991794641617631374699584625475560389940357461549041339874327733427675099265774336458245442645177595590222460409177511026864194505671853082826254135141242342488748352227583583245053661317909556386669820490361985432811790380685597864745824918777165905409490780167871036282344639139606718611743677566002316578679844958457089531698313701103320505136701705118219638356260040249077341548009830244156218772859814378591167551571457494058039458117660083285082009039104141471979475044733813750032110270570571768371031579843506226060967982356351959039679028462976964458417649300615584753497581997098030679036068365813801986789066941148256458210949757878886277152436365544212653997250122860128883964839294027480096263433405152434333351295650155009513721200321895983065242731743266915300865927815423863552488059780860465090604511615677867108655124368759058260919457275539982368988995188465282058872098002118633595054443366098382337160722434785052631532433118032931855586668578917384687940907203338004552800219168941743447749265140829795369025493985651229281818255624657934297128686424950055290448123510805018342624830001395850203413681231203124087604728594161506325638520395271093021416111860140134424919420769897640387485143670327266041453076191669450558393110034377255325865816153291843869027937604382337491204521038574013398888109590840285174807425406707148236748988369963660707721350333292074679942157220751020605055633690653770392163293052978224691090183954051611211848955641406740310487075945348134240524606401876217503597839815835138624175779614146173732711428898964845130711886153159710620027440770522163372625452835566355805267139677320375810070589789141661444324951026281058848403295290488077143625797774126602721627787756414483172617588069683502155640605823793742510846009784292276715333725109663994544139304741208742107132636218790103404340384266610777709894986254614592809581827862530219138551661961443673395120418863253788702879719339256088185130726845749981141993632686617571404317398042692715774889872224476949458708615455262648815201670605630355311387261222232576285753657304569787149652134480037336914144018135695728180235969697901037951730057523168135433323222800245399570788448071137136818547247307868077634970354333684234389455706235198150742770681056224153656071919910090369279039691077421881128742066695532909973651576247253049008127484571007405296435241888797484212695580380662608931251438080934714931887155943925774529524205044547250161200349562924865637343117127327111512316686031757194312461758884353852426882511193749083291938671333504418988097752577159996562303100248090574875420950050127536071346570324144867490114849256611397968453262714195698052063350433112079633743882582166262125089241658423604719617501212038981198651375592781324323153405527553932603369344365260994869635112687497658795417065915597675051717737882892678503065071491475877169997046235548606406956521377002500721280370443627123155219016392627016355287152601683206000321774075318571885022205027866775094857741585286453377353367218542172351920125603389721118880925795152827188818632076258079629202141104037018478425938579271398647502743785108990393876781378901687256612570103187194763707963485786419965718531161974196155390361714381796751522002377045298746767008546368684184179634071293549423309234777211417770140705566135527528205356601246304641490123268904983946627362917577144579215903446191434159549352965138575579995768484468550918987749147825685263573893885112563050303892607414295496459710026834634775566802590706341634409018719351348024024211329313289153705692225235642171439139288141119356053809254350226467296243409073937397353311629768355302609861679507777536460144866742794727901207533078556979988591451565386016200776049650985530658792945775960127020253392897259818762488669033139728409280565460250640064647617377842235364561612962661839290409752193595310969924358280008722048736969850870495035401267407884128980807120680043575108430151838055516987670186963025771315683326414766444673823729198307190394309218952511923728323861979831822819585530506583589789457697487596127384617935928620241593305970479387412166315390935804306528085026884754810523079567550185093768112348244241144405111565502571922122117666313736552214628122170145893687593526593511076859068028825711145289778931439235728358120411420941682098491273726731601981976894042983528410843999146307671345670125378314414379237880738810078286669307372146202082997261097236235222401522509084235106637494116409730334452560742976379132358332932135105703054173087182924699028390798376095172896027861676108784361483999934907443434136167956626849069345516514421168507102508160757079084397605722708321758842982648716901497862352313327730338554127292832674482074558201273219140775299614528245288312520035261818908562401240764629395447769145971697988952974913941641824578319681752184343052403966131413902062385463630260700421234196520588302425056794244418522998215080426050127496012559407490466756327676217759248228389726064110081369557933323586220554194740195283757943573789040070325112767915303987527099962902087069945763296651227572389053488160513826566542498478119695425257145881424478158148180393632220839460408565814367485691372227769715493652835593213675839874308121583526912112582085130409710626743471612270572456753000619663175284409722195028604880680833742476992649380840857977460434164804483650638309891251084992787115184436673630403650976622165930695377946538229645616818936131677885772286659985012393956416341261995109760767445784165764243389729393427235505125703928170224081414366796476080485847859523562985333991596539255910971598414415614101950186535129611485936718256006486991427105001028798096936804761769953497981430919566782771574081830169773155208051379689514905747222783531204753427114268667364953846895208701674647196586708726082858398719254651298392401651841041154315300567703001617868762466260159205833026586512497550932970548608875887328129099094035103442843556771592262415052214092502038455832517690202045199655957397370610930998628602469011568378918280134733394625616029985278259818475613469861323743193539011191986485398350453722470966922004661155602779140052744195203441476647052038990063544394459635765049362281925768529991705363718703704871929293541716565892760514571328699628095593510674803391169035053160339554330853344874556165457433600697998032371468327986059806256639338660014820093833452794449541083719811325172922822119648736391201761158877904548611933860821227520362380216214015178055184397485073547789238511382818282330480043008884462136354496011195512589318556430925680434287782379382177136197918886549074667435604461800508146881019552602763598670216438587353442468527964533110299974260513081904562086099193117686549960790587762557661412486734494018895387287053694663320129610265059244231609423306930547975398187194740154399500343770965348608861674183901839326245377450865958472024844383014913630531239443359149471863604145976240890578354633775455182516269897040327537606082806270485663519380544064576617717882225582489241915708581448252469410789109384686525807694479757146172132255799962418658363664846189933107243711333312115318951360864845709292363229512681400095377506987048786433336788445164427763183667422431541351546080592116690245053120249330593777322135031219690113455913659833890829167453815554849348232685335636969261984739616796800409467896985413562560464045865167944977879933297947973286363420913717841379322797911016818711021461276773656573166453417946743053126623194843239694437641073362891331903570332217853145378694341407163417741444797616231411874778162093863711862571604431545480463459018319646971069440288735859505403781513339855556086235124778839680480309788037249812446207263024889945827159103637616498706230860192816985230834536801754977462636588583099600048832465782392583424318475390533063810316672984765519767062130022783082761277205538313844757670148680221846045941710155785935717456464762507885542800956989310823733843558801088897618453866204571142527429016727158390362516854735522279013550173108731270925360343826959883660143030256186606674986706456176055146382239213948051051812350533256621672727768109246994902837395701961903841931972734456442760429657982169869202684445094827096208690353798722039275385662872633791980601333489873798593501012025117685655128114194583246646970123218956440819875997870446436116251948401328970673660984227480836864416932041427001287380496902021995324201264773173048069321793091201131719989908953349151992703834556318580980616241657768480997050223447908072288776032983695205317439352246560252166195884988411283134685210314070858212685496912622958816136948975647974187113971728035675724987648221112189914323489596005456101431398765816768844389143078957073460512632773614772880353056639693466816492582999519825684409863940510358651660698308391512411735790791948263017477955572679528196596037628954470180478127815287491455790823479780719350671887041346878536645985075298853052386712734561981690732157667987622179682907485964364557985740532631555822624853192754512198114374330620162700953647007063869843664099287311357394831283739162382833739960057038859435929861317782712766268897194679133222450301017815465568065224861859359103760733818848615494216243588142546703767161878328319327330993655752662483451644474068428050460108457161688451093813397967750358836644955259878861673702094946848903152223929559075700168419462944158070121005943869198951501727925893287472381557455977116089723251268934873293136321336989177254763231636363469470337896430312214350235344210600127501432593401194154583764171515597819535621851124272297972506819714037220526613456521713858734281671897701569627171531525654414412081200431534231143474857169634007835115219528938531096357499928993987259429581650834643542704945970569168163279565276711578801448380281322637069802903182509720533083611617812345815746981145056085918669310907478723051322816670902451710915316877235111596309376267207949570429071066450644877385766546940980981336497399662619739270061173170712131083081313023403643778624518592551245512676193083062496375964179785858659719555900484212721797549065825011347099947115570341508562079327646022814168382154034912884197921872620593245076333858521660919615070691509630438388908807458157363695727812391655235605992805087214518456099765095863001534642335714479830065591743240303218457518280494136249205412882917646330763700692731252172650245188437725509750843404760738326225666081540058651449190788955335929696960156219206410530683947414065064486569935345598149692118780736487494201884938044690449711985730079794800797634083200294438310670018520121103951441628805590376250780845986127693669492552454586673234531058821105540756311849912542070507338666296708379133954905562784172039054752944721624675001696631285368535057418322294711085697424832940011227489159261660879410859971177966970237264026461655042190185081692493902019433990763490883632677171529171887567489497597644101614812152298407597064483805778031777450359982209922663152165830004914741444143275654306643685991317983918714346334772460986453099542540880418882617308549716409035937533250544640061977193915731710034123341069247199330762342237413207608945873718390738071329347118767366154227059000261361426777132057236770195189794803186589558181798766812240825257981334935960474451464129985326102597048885995944042286190263093351656312542603060222381449166740671270215184205935150297363882184568012791346965039999196078290911966449241088848539243993780933390815920570933108178483352673236102650218343803042996110852298835167450443820057197330069376083024868483640432115805118469256069663851591836749365773172126972463455554438559067751820843331443282358773233375207964717843618577978147225200554470602010572446060990507707785719091776557604964438563981108560609750963339352801071330873314819252137465352945237360188874211688096381693468179574644840338097401970008562133552456941744952373820996937368940325580740695306778730719187312909757736435262030484117144245763338244847694688097978586743140910360601858732026091757417182691096679164264907174673158130160954445687316746490610361794172443441264587876970331158112870216646054950271036676048208324169876428913279652355233379886293431872756427641617499621740025492468812302999426436215209476380251420542388425841354517376699702706439324274560891173012158808135975960954670302869183731195869732487364220470017811124162197729038447111614689340687348316480473145636990421643664546929515005659926493891281835808124990051123324324293199666490127943754020316723078679840662759366113280711714532211668394281630773606457864773776896810952904901449013128526307024877439054218239057867559511124844615794293766163922637562833230837930969745288708615405594759143104281557757430167281994209530986335800887933895343831992997235342400895206267340949427917339783623002898065748382262601365546130531076582610451372173922557681483099988456744009508906651572129720445681653237217952166400834365023640012236389593231272168498966608351882779100072227995302510040650998653488540632830152904285042057153815373148482356775211354942947133867756082391152457998338763581198153610682149622065362135786744758713715546441450143029425748510315837925220670559807114570214513092205141588431428839420834053080221307746648159524186291354866001484328079244125564876901596469515894048836861924433424381655904682527246795966336430198538222163890953576577297041004104716851844351970966652948527172593454235078728965853472534047452627307563713546371389419612207809934042414886141009172520146698439913635388018706553828902045793249820348955573848003363253448244387642377766105557118240291238409770853265702397035792518653799104693473676161975999665633484149146258487814125414166271740953671152435077159709288473844235228346942656529231776005606287974044008975121949430302435785767966824937781694320554476844052626131767354986056230678942066792144836861474136117411219164352321229250270724711105038923790771808461658799141312715976798072997862079075498465595823486225444222928084652935402795919550081902615014989613996579529188028186261923300291745012803532192979015806222606201952150179246000564396579022765350583157542668881111996838446919053554769486411682448711610645133448426481977000010052999853807107940889274656244197166569652805119531183801075498962686619098107564296434477386644470048125516384237345503850001950893712955749142896668095363295816770525359050314568624412620558892901935610244631447805569190359316182422610064037083800023965810331603247062415548769159524510819781168123425963581634581091969828504222626719133417695545496262627515718919954691577578228232923082509229987295312460943169243487250893336107541672436847893717700248220391741839536972489651087681251644025105135482942714332388340723956551103073187574303848250522708879685780823716073154665325678341445676613072648045861846427033242879128346624122045028014337559669602998226380058786289325161483301080837733132460421233109749001221494779966374650841159404197114332198302564362020966878961121592103995230111682548917057945878506037861837091363087619081124722700613014723416865573733912116778405943545528366087832097012306528937009657438169156121352677031854487429318059961590387114851156969995930357342903157359321936942488844493539019537006961074528106109603202403653015934059151535019619264453583294356239061639460289403978616304021647629175908252173521491026500443547087280973707061718870130181771349448486513162236042426684046953010209346541802802916301868909813579804470511513926111889083782409100414284235597526407299313534030089018106143403995364006792983713914394584584806102835223853085064087760412868721372592228663739382488616248147187644412484555648878898347071741638531892065105331974934289539467561773791866660025961549653163296208985056921352683812822316921067591163607215607267409876389311372916891971756277854396796098425525989072681418635414254496141094664161242628469832109449316755882085122090253579311024945860498064568395962275632302644884812906581203802318076986643524103529539245806286083958597758101427977174990500594736716335832201874823781217484499042583115906450422463262514987202207189318252344775664822634929995198768122262690233492335813397342479348083896421866792319003147501838506166897201675465251877602385163143368541591834180741615210137970045706247700083262609850629280144741765902776512990132275474936880295139951962195128434257281541155655305178628176433976323590334499532506311005467595728142091546356696500396802154711794396270973967848860322268590190431761633271454464395851187446307205035980407824991223213979132592646238167208498912140299329700545735270931784727933926110067248328818872481318303808351175280952590087597225441586283974614173511167235819957306880057891384589021150373380112250283086126246101290832938087601433683401523591764889129126419223764064409816577437824352491414053435482570456294404784320106932293489110752584681067925610218583017891901268105646610587244033087499747754347609595461776845411284006218197407177375847820777639268064365702393007476875395889206893400635383873903492344315457783800377800431006385167426245925450082197397985141518671534507299099000469989628471378570005906378312064224468326421955573487239334404799028605671675031208803901758549417429168061376073490440065321171825622027954853265291900449203584638619854582423188283357825931596000859847618338045248732131918509022778834114126478600702395517679852696387341761897504479345907996636491016787991303462127672073950104559846307730521834349245220180042166767214831496213720589234451701467178598838821805591709270708076201568845021183475235039205236878178053868968349050620012985221526697138946024941227410315299980758991571330062340882756948006624887049882986098704443466874996698483134776416973302310499461536705826446447729617711402774236334495002676931873680879855057419811648508325635418856168917449067973463114704908719229228455372529102352716964504427481168117218122216489508649359096340093431379902062390940124300801008113255811587531349496564149726354081968532363643756845445152864439963518990906327434052286751434759428233012200507352579809058392344317870624370095501603400343512375348991772581724306341188967363125987038624962198899983827013850289393668633608568406447958152572362481140884014088292663439937491402598613755656910464174301323602315113343201644922692334952307634367599576403884226336739349893399873111751411377198009766811093717664974894761879404110460139335691034104522770258345155582720034038924344046393911983194389603377765463846527110226748256019986340343030995801414034423292032232475885876248211961142956043027073492515720293519128458584376245699404235804011957149707629245820441981195807178972934387037173017336537895182938871513341832184666627831300340762825882416238275866970676719263389412118976547735903623573541876624717272940203515123242153922098582404797006604589658115426477951527142906081990513357452023096338086114968349637779344822475012954688580782733398492669274642682563125568294586092198756698265873943594519787250176215273996182533952288497263256428789580922849035333602702066458595256564081910770887718681052012689125743027188467653177407499727232386309879938415561208639718164160470277607759882076161329316089660105422804063452037564796172287743342435105722425234739092635397221674541437083446665742296643809379618261612888244997672549518336039463377219306427953271944758197594294070802120135153426332543925596932983410774692173698132805652317623682443593190545105516557793766191717800860879143086834659824343717556282983183806966720972330020411680067643424494067391542836172094288614732008327130073768964721848842601831323999149520872773044035677050678536630639116857359755350561297053616964551522607915085097711360664915441458747803645724800036812282423124102186524514791122669160896052158309271003329330873309662690738776639342293027905249151242241373287164377850467080016651047294685300773053633713890123946266872164214040112553212455751553398894651089066113318396627935418255984447222769140227233377581739927130402209559705443411354187975441773557766566276699982231607193026406984536598609247241724015917788270028556521281452969858315110704582522979064236390084604278128443223707829205913975058522913035639603906761785577716181048425985784706156884129930841713681679276767372099699301572516440701914781015924670398972458683040147912739396324868196677828430686678214430699874392112092250333454557204795288976980716151566142974914947286882971349932712486871303920108117273080530360142828477879252474867307009303306985235054876373248132705760494044936245951370007141772375311205096396519690812518913179185707816563056670304176385732687496852463674027655575738483691355285696570728343100299960705967257534964779739967214978400611051006389597935987513553258779621124981084595076280843154467236870791111686024532926512008445545698304085454535176103275938188341808625809148511897076623778253228724489618934622320766068324553439848448583828549658673560396631436477407863090728125081198334725996246667479769571120410109125159968383304693728261601312151800087098977635950693511623337022156496611882222314678042065786398223552819133500098185300353619962888640293325635197441805883516619098418791614611675368081079407660641256338571331753987892927962721041376595852207002842978983492954869717801192380638449318164304117122127624625726764452448748102059660477125668080312840948612178066870607119098665214275373724371200445088889278643722718858152724254699598212040731040553040505839091356695120839582239353406876366390009048546201585563943777375432336871693026453843155758390925142603841009170093320735985094950112751882770524763778066098755411437552779473574294850414052537709175778320618589018037931766010245188330372245729000161048527953602652476447810101533965165100050502375383582821129363151260945274753326869528760073824589486357728748139747131823371844893346517322435165260356358202720514179537481891278051735809971195458481959651276502109685485371450109421502605476944719242436065957065455999620378682323301619183931949463663831863525160330889720626681423270269907429633027079916775570918439356048187146020644591738276567923762198091789379341325117361581188035801620010620789956243225383651221892237048706266409258717379246401045665034799202930710469896429135588862242556340185420353837638309499980155153356594782771275918015163112704598726577703504073712675951565850974661020298324204151040749065022099355435274572013864002602481760616413855946963067972851666567046889755931413562988574410490036339484979486190068841898366129505118323111241310318856619059008196758517681930384091386006822367904278342214287909008470221435385881826660819707289750115762802244344662507001851156499240997927561316910910295134849492310599776994632748289195498889824987935832517934590941082710810254578714120797404624295565713042040205980578127347311642226276891314021051218700491613714529391603744525264418661698723183896154598462630563786084402203120134746230438410168431098033675664364041314078636092989629241057356558087955946540094876907271048140765448236215693842306201694107001531603718338515018342991149494315157841676568571398602438835889254822767029640858792390845892462302195722668541239681851692293917357913667379291751283705377958089653446232686855534220833738552430502105669320233717176179779502023510303100577102427935096740508217782655599940880798309497099508391680202972662005636986363599461608924361726216223721128756703005299291042833606202178072908357664240381887744403052490193622267638252034633320972952022155176591702360775574414911458906185371591535631834752988943326168961731273363518795357823468999519543705392415086903373116579253051729263654360995641779906577620537807282334183757910354566894772426360115134665005884505190227420817971429640831093607451039796228132954129123271963484325316617707310762115116639961454809374183673649367440586537018415934169469054096391869658051514766353040138853741890468278862956429344384009474103829270539084050925227310793908183643987368070418960845991749047354728081829096901367629306147820721848298016515753868241828261565050514101704397264695671210963456902129825753278562480926127274821654047851973218461889844039806475423380634964628234421170515269433238025214179606268911375373129553203356103442316733246945321265797417543407573693371093209999078699387779565930300431801655867665849907334124069614617747931354811918979957935394656332511097604867812959766061575918846648687559401873959007017071247005296669608326523706317697060760568528284123362951020088523219226418188567787850882675294806515833340607067306087991956205910832242882701588437043162735913871014196639258372174503666430042126559907585699881782552603254178561548472516137407687760649066989524887185297026315270845181890271383526149880677068349302237944295636932615720812565626939007304402475499665299961610540363857433893021155638349030800299149717443223368702693039390874745321520955477598235103864468696914268727031265234980229367223977560285269483415441352259742844864438592267391373604834781976402638599524465141202974219385548670607111421625683978409760017900227637335661027062095249296703445542970358530442923545314689777895162390617944404281241227989985038808304643589203050819652197910453212506156334557196514728451880528665717933286375266483105996711243579336016683757673707736254849696648393651731974328441444863875602345290604994617842918273638784698976108822708372998450163235892248657688318388069939717183782458719913488070259608713855405460135939564402965571798393844255276634802276371901564646617358133767441318022015409735272379748314789804083602979574318230671302849744487522586995266036126530369523754522791075355290208639409366155540445597691283111453166460301190809972165571349377208295728198724031272507875490796308593418816714394933487252135905111678810446224838840139758935707512264697193119204424237252131377084348700690795127140878415885111977672019498706335711332585654183754295835799067523074412852335643411700008173139742731568166468176609071529963101000471917414314374551522614052771343398738669782556555784621960635249144378661878125071119202497628128428993788598154492676269169708580975537417833405635956299625387146834230406130343745254319026615126143323921062836667318219757792692927808074864910458314108055590058816160083308351828097349106730442640166223710136878924462567973281486475920885641434756882449983754171920756566071963724760805129910147860629670359234718000217451676465789505186335071981732460681751276069014791285822300559105789790016569799820017753419194353706850470078044732740410658401582886335079176428108799430647615921970324499743613991795529731685671429133828935204172479811158504604565014813183919514134374083360485590914350245561427950523019794823119100183282682097470562319408737558381184424184883568525909308541248304161877530704676894835171683685715611934439506065578372716508824445411247002153400351095443957832515393047994297362075278140175303823265968607560328487386412807314889304347856960539719258355570061985235699639856641289286743865611806344359446749426992168524950634766840948391083778988504191400069725060062015398414209651252052548187634192725180144559171935174079946704114704845781978284740775827730808986145016071388939970242425267227609979019666393021654415297809291489540766914215955050764132030291023402465799634259807468115259449853495627185075193034751876904250574364460554396652256938573517338125098345466824248715766119488306048405635678853404267564878065579337375346745680225796150253755334479555609926011629793760532069621831260544163473241888921813315751374189388663614277415762536695201856500890706414719188436723955218642877645874847537907212945647524783893993104587692749147309221514554730842024341467431695200688208809211830299007990861975517498800794685043246353463692832324473410651360243862693535027861016905426263249513041431981772081000361598392093442827883885805207087130833588701859634726503190935902091235240091355908016861570841926992641925308937926086946588187664426758826199527558617789915452426173401699668288818827314317944772318952119237538433195267250290404742059881526240785866550645976800200858414441486632699265014286430653342265379308963298766021838682668040009238374846866820107596965343397540839491068729547348632145869347714263309027548356467708465166084074911869494013018048604283248799424691415614353443159420738270826666400554155456119156406732894253945581281873260231835885998240166800684332752498053803987877241431942335581141366492071948824023934038345301368033043821165367304220837568343774061681491139680157973741468003959106248101057854652060784011951536964762346072516005764794490977427552687539988338659767488022004782793090287432224100078250755891423054564616184357224968355026624424987812843574012556497256555446273268030230432916978393839050853920088662516884600198165601227744548599601099005680221860822041353288808325518032151488841447658553054557492585278030739432358232269644655351772280711997669233107154639460358731354228194323035861162341664608657314617710004873160827294408220543532411895184623252083925530323122480468712391054875677883934163311462522704466230528278744611641408583903672098953321135785314162224499717059872867417182269844210004974388820549413993248331339997431110223451327314043410344126072824667016010710240903147440863931319985544086328833672920572859205103551016341487277800005647203337973084846021162528359994359456030233181475447886042777044210553426715841366382946232563830923812620795024669604856839585027459093729284756506231003610332436690917191075012758150450792526518149681290250167813337015882091524835396457922196381771973012432275726754464908110576058092983939896722129504283512077410276438587737205298059354647867234433533380546144154062527626217730881324149646016681755981021032761048764169594513557725390469530209184753148323683996436603011674271892899728120636398917252648028576519915540281646906395556339206668738818496095462597688734948030043004167252472059370159359739658873407923946045384933780043226431378401422502105753329032674274998434262136955254742029028648005906003520906603255993036745869653253427465785402428404016266510201124653943141349300942192787712106760436897256982986609198927113973122562732330347639585016275521478614111631012032420393978110235001772024332253236843330286700810604692663988109106790436408601444816065282117116364695630379530847953103390633581846049334843274640597378639974945013361588503826658639355798985329675227706944625503887715039503446413991541425318664155328158628784710107212209882206059770923380817020503832545240548707332578606397467964011991307589621126761812474187036008710126712006273772749485730916442638217849477228675751767903480517556288195843227339295775827241546815668958653045878092788130445352143485603836344864489513902908450415097711316988191279171648967971732508454362834081322940410512514438045132798820548950187396491830544590863008501518063639585228467629079791606822225653620822352639440135136837473101406627337964955321750560739167653359883783112931409857401143739066718491876207939676157612625120084422946797160270000362189084262552349905371749863672456419294347381040541151474490351336756677785052847961252739836444199919142799130036062617358674695799482591389030592409906295095123893290493403193340832912952933324752084091239341031805666631232705797252393592430394120216139654972779488913189719220004225586467288135636589501275701013965351434935386412693233510787473789691844488819883759917175251454922280684425839484296486035998385864938453825201057603964703899041291790268511830483300785688852349999575451756170989164348909315155863845195495272046699386576905662697124237668026371607196657446162455683417496600338646517995377979148790832870145824720141798806981586865727998502491559197199334470840923325138417106619619373169415836436038068868865654444315839788041500345128911989978898558755439598980458818805254338415728681242826716035702725365772585617969003902848610949969027175825642730908202783053476696241877922534276753980080942555618459035355116826046349955626586097990920511506546108420714534981080410399289942924823521608245470189550460985924725895100669559461064608603519515969945410564779128882049878143018217295828733803983171119467714745162067229613559178551419804472691949118714378882497470412277296318797431390680797465591239690689424988815533635428420974486727354784288540579953984838880882274366948913312974345311823106296702122945153534582017079209745499345634277442238847384156229429858792247957951413080376876574011906331721535180113254040504307753780316426678591916754298030310299037743209384199622143333047390030917301151099637232926119331828634011112540337312775802798408682299022030396850827250561675566261733185061807814157745422560203367855154371630722794809054944427917732523190677401098068476870640729777070468477977298723094993757090889107959743341852498858277579834928037383542160372384823917491661855451221680842789345956934011889581321771860493604043704165986422550000784946147123921252320875699034358460744938399199866249284700695767658294260161028841790030753575770747149052211692048183492081806709190659874167922414552676402823006011080429137787102781517587540123664806486897440332052773653028509999256634548180503305935514073136522930387177234339385567090092554465096047520713354206867035278161572058669140245245747352172891505582665391156559526122680596475956341028575047868781719256200312390934903901624656044207881003826591668259025434691632472873120721284999874211176328813153886471685500320373767456273757412607372171056162117329253381844185911376928223048575031128521250248417743780948240276690446292405105084532170732308693746060428656612850291762614964311349361349069374659681545412242016777077249000443861511524681182754927633270374618740594792306628780604421903505042860483258838603663695459431408539127943736401256262357900015088424824380160422932336804253466253172245348528619675642336626834635248174507885483874096995749191227665477036946983420550585171653731242269589771285832076597526925270748758122813742251291673216907692645230255434144467917551465058766898239343624225012630347790996664230426456413986962423417112423364210193477760696210544480588300387639719745525878198861248170522214207252429562484342312701511097734641426223024646297068812614486947576512826584049808351182521908837072201074706521229109208647283064684686085323402173496276716816047672510093952518101209809268166221213351429341008116245427001971557989064753927632116996386740839780420416048313448345922145430326427192480513135718976274176076557280090046291260715005998368600917312409652184466793591710721870327920003575779303745705467710897230196285958020592204071741747593790906418660940101021982790660175901881394387247480681503636207877392888217539377838084218026494766527686964343115361689295444231842903735785803556341804062850259114067958212819960012375440590736306361171424658733838555461223852871026470136559924726983111566781072597442172844041476023351921864436136438466412602344184831823029230615123323689913501949242384685753533297186862398890034139616140900682754552788166192945442420113971314472628394963513580926444269069807083001592041516328782756546304013957225286988555064677721227541691061360374006162542556529785234944756164417038403448554541019331177285960063130211265111603408740988068022830447953525909254396427690509071428226807995883630983513753367406649105823500662774807262642945253940748426386271807396693507793286898760901165004177553559471387990228803026440167398237721664027207296551678836257679841212571295171675256571517920169987171598342438751854019035725967718330652727256679251862405655778350044194858017881173778355600471217576566066972930402951714203533526719290182368126941697100082102277194800368759904650948879708231452644067637195240464754860086077205995197569065001315336398874174795438813325559566428837310956475643464730751099573282841857627979300757701785842989501497997543508072941406867896201951959345817900669546478687525414036609229478744139907118606692240971366219564433016460553720039246756616128297680495613353113792784919143557028569156080070620896085299841974018867398182019728784125172743204653280648081268625533161174223611557770122514914155785040082990742485472948323051793723456713165353907032773356493595740213580880138693080633508080333485997722578591462354885745196267825637378193897381630366897322248183116290239116625165734393109249816887470821524733713614942602018298788586600208688634700409859452012233952747509807001539456640944281759657672001130358502958412449687745786737273419803758979454697433526302709962357631137081943645924001474780509498885658668441601883376843216342201601380891689521463091657513936201543158846961789605004014224597394863484253034193029154609418908013253487387651333032304401137750990401166465638901146908091701586035769264886267618653105223817966532883199168483357015119948720435571916062513631126139165698691671549189535790986408776843204196423488867313126560602125300726534008070187583508954602225731321757151720285239779941961297612903966405740538818463191213601285787430610425368376007918425197443278196311732331309450198088834994452559966600898021943421293994325207169357285746565824660450288225564466833529824438679431799417860069440703232729456778101862441084307869569786683817507964763796588452237610885813416988931258260347777554891637489350452920720963621351259947258252251017133568336931101512786724854020567442765616149224263815802719244613488726783278596033351911319875536798582235404977227749623310193242433716701736147275737259880080965819521313731972990456768369125904386973901646208364608917465023560153348712573022039517698660270321816284824535597600263658514880547206502106553176232173397161217990740826370657470304288293041930351901355039252275988345669062777508481656382058095699091219387078721528148806562927875289168138750462732264197263325946650300022653276683897785943093468520723568573835820908996535593181916613298238451234940195344648811281209125282052944540193608916768204849695940071452919585915956196683352888567929839383550838252056166526340706989724388256918165434286394615028819992277037379153892215972051858682110748074386693418766865917744014562185206617423533047691347487753922120824962146681186499864324801793558343042859023861070984562186595191064105607782349272144076478684392049228941763020007895981698009167414980452572635136919417963017390674732913669936845234749475768941105825349745222633318182562849952479393370123893167644926037120751747755195258102023994390179839025881071967095881863754089153584314144248314603449570760379478853472341393437480070541745504842390080809709371058177067406937790703670054747316775412099224527509309768608641697732053450887361652275584420883567878821178450960127746942550411313743766079238376912945549940313122325502884698929616694532536512305271446050672117725677354466279228170309348067021283861166921073753099329363723065125003464764150351872910169743003359217694045171151288176059533130938903566214609901893714827274567227990793350139363927507735965658345555070206736586654317946212048230094730884299847116180389473922468872310885957338457615145605224969723028032764023767762882828928367420163051800080303224346679100857253703176782425662678780266639720389866132314263912058523105628588999935394141309971404945619907152687123479499096463837463406222032291033617025256822555567449642206055491139359543299695817879701641775726690270669404740469689306825870197534916218863237495759526715508811782270757800652207734233256489465291452746477035083843235524834200121369231904344094306504392686994987131427182126310663414908427098024764131407227784944672890112137720116705800248904363597305299972300482765529141369087729083074316039085694449783645074699217512825402875508926688332366400693482716336386726662573631937458778131388195605934342569912439999599019670296062425037999009001778202606226048750035516007146045357599613025611512824969084493274948066933846908899561839583203520188568563742766161129426791091037459587355682392769994568631922853784114234989961041305859748263454279902349586996265508626018781962624710755323975296080511894336772527622913161952816341535011373485439895060258360562203918319707660562446827284300380599878235885710922110219022148513980688287233691859162968360814785852533624461974556830084622618188496169662268878856811876030951727896439051180558110757217418116005338451732278934469678620750950345839776300072573231881942227595585976685049619845284816060877296915495702492817163621078845176587317550128869724213022432307640394342314962604876908620902304653516016567274770961194384229214755701332464636169374005532871884611863503087974651080213943879432143453105141830412467842963187471016511515856828410241315482582252891343538369325574093512739572578218172667815778154134413986839962609623395851227582758915153780297039714859615592098080115651775767967664842892810616520861468558668691741713216925057072852216861678545301769506073588895472641784467427676780549146050598144086428951261958833633030844253919258940330398833888313067829404439552296217631653405154952092652885821079100834043965695420676041548322304793221911155482553983304956671964232164165251113933360535992374574008711329370950860418205555799977518824528551650397450615599314008719613826049684670026739132707192521918188431814275379542949472345084025922191478461058522417757119135979255229086108730932074073668841354191823340146664372493820250321857249211200368031399461276535443207151038373170955605676003962822674828465631796234911547031794621089970072027209585465840477385850702024524795849018093279284050125380045506084200736265609771564027139775876650101252049297847488017299737595901591538832434256553356320489710487653972260602896205755111123987042220187306426133228150022100532048175878780938959617600380771095089968012386476869071163404955173986885843534477163925983067595670873330154936632090629604319182375979585617174144787176735901760593732863702934086706896285320762763763993076849408353230852790016894218236484170341171542230894467142231033849153354583585666666820842899530133635343702729153024759321549460822190747543119199315902926417607411573295864215128989075468338945112527688684995601469225741827091117656962827120706886468693787371023265981985490630310830780689291446013997387800685723324985553476977800448902754011379180227283917577291165302583354034747788547866226911507314863641812012454273806763317850911829429850408092345085747132404914767142199586892951258970950592077763353479302169186345061717434234784386167522842399275171536370115379522310397590746696902701921787590668474113841904863111780053846459538705355677686157944684620699906588856022303590899991691666141869829168260193367700164266628783263073156901334736497976892186272287488680675516961795973283560663710434981606309245160615892018207086364680329402106506673748731140823903725019335299928026091180870380057534537110592021682509455774639172512921551707424154528042532365302968362020341460035279792941138756945009675977369738699865501048537937134357683958844128202851908476905167560868514496023762297213981864856388646056821246332276574052440718482813385818069090937532463406383697932907035785721614530593073727282042247122693089085066754983547205167992440275307787406401367860397877420124785326672354456951127896266426709887411038241745907505047407687259990102244666520565927527344300869217702454823110794135038027790978443567997789568772948468543726300347547959655713767484583338868494223965454054244765335231244646134808658188334637431625865098373206491702012310968580859999203425645562879805580999370179976226934624786708325873928761233184527405054290793914838885583396958187244946881102117428182820289238686132943566074830945279698619938442625847417583632658997875541279567530583771435986628332205819025326717143659478793283888604561073726201807497936026248972391073067199752672013935719281862959350357063132129478016081772133259706282805123930738432247116002675891703610547755809689829992323389363482654504747710162939575306726145555077710515242116047690003342663622808856675434022188175725404277727891062677822590538564086847265079835494952794576117100560264821246075315886419270456332081304056341147184742832597918050264105814600898243939360671638330100852662179676052869455816424790338708405304582070911982808275067531479285019068534429696453403376190310431563698672049943650124928647962901898533240475298885422919049956988243641556873362634387020163671488883149458332605384799023905124588887778777872426287749671091398977556394732087559958893787670943382427609941157390757584094412634368272416303934349549848871752435571143101139309177658708248970843326389368961034910304394188478903440215046443474384438149915762939180577330805734111729266666421930074144305657766979741239753468286626984272153816294455402863051029832691836245681420641391358141031731076544352282104037696288808258268296410772062242968993563402715842433957591997109384425076559871590373917363024144153531039932963884076033591821201951578491505333502082363924144561338724120822461789019826185923574577175851514744506603822312069381218477994076185148438439461298557510403968044706328942972444540478535788751304112161139816168823748672340573799102263156519866194193705733851633162489237375811658476996809126966483850845823597577449945184358024480632582126492160811188980862663766672757740082353176294002022427147921036086824329640252302367801577266123157007868049208953566437904347058961534802025736821581716319742866432614766659933065288969845585792822039727624294646819808106856226903581913454571366203316003351748116680918629232744880799404116806653970570120812421246535950740573155547711581595674853397761621808683216429270934658416467259652190964402352211619297923294814499280860851547364609111199245655957328827606060900774058354599041689837221920313300750631121410129153728663332386065333031221473159790748034497745642471471628913387529161281345296387239719254593364918209955500237171206764546308118266937039383714928281303943856131125663777015076686857886066180843708896080171097702651578803695648068650584728563167565206950246413314008408728680928793058174641336072557089564535852693826647057125812019264021333031768815707567233646830389834347604985994721557573837202214004681554184793975953661215445111609945587094065380291106143877431134540538145075392372864834239078846047087791959506609742931166954836163223534978762432671963577445168418407355870511007095477874114644294772325886955547544766906872827366316960306509795117369433798830163622469221470929120985940361865025881604099296632767973181940504334470499327980350817165119366234418484855911002794804772151045536012779527047126626984614522174055381637123063019975635387326865042754521644162437621367703901532968473840747219867359561896619393757719751637146510721897131390034428866638778666205615908540449226477013159544630584318722472612998129201471854112509463181374675832473635951454600376211983828306274695061616267252864857825827475849359412047991108794041045117973087357590291524310929387952799217827024278504627547773901413309790352383458736710357879743313024833039048919792466140151797749677701120504534276863152627953567841030181285531718876984190684474938246736281483053825556623029818032450104472636333023631835986688479591064345401533511222681818509788694572105163630880987076807398889567871363566258174636387618528061686654650837147109585524368284498592920345028320026647529989918633767420952191190897978736354040137261283835649500108597603492516603198845313229013159327734733343433114451161371867030625841877769379363857854799476596961802550556877283884391320226632318116091124211355849486288268674877497131528197629995070390693468433541239670388921443306307602528432254311967306151588764544639283058366238081609524883242929919423488040932153465828773558025822526252428971080880289125468440769224105536182673611963810915108167129868479252510765392597455830986625487745591726273308433932100295406706735633023886740473701950206766728092109369413343707508398983848713172259035042725488044901091585589553971722415864455817252814736394349708803949360557960470271509964200265800478095194646331103054772453309805226383288053267925151549754472996214765873492507591058682919529102878485523606631435832405767504217573933304008982989131808778711566343587607303088489994167128816251082381036858735966645885470522674677957142857381962978728530877655474471844723356325610864643518431018201766504909218455552103881925609303522743469841973234193018890294097051253001834389808613307716980614462055002887872488091733273658324462099517133053475599249358781597939002823941961814741712172884474918118991062271556037545068462474787467380503582185211044719022396277132102977817438935909347806575618318350711445995760759465302651771259834299636303236027572074252419608618483983221812231047904174148658319920480468899939165612628650794092337361950621210072624633214500038695947497363785822810042102008146638385969508548683770961060379451134347061645930536391402621341151886823741173604526131883428240175106308998109307831417889556878281354739235974656082873217168004641343254916947931980755553494562932778941683225262705396155145876513344817909257133578068994502666105150857101930245916392481026566488922251388274723774563549890474451912140068477515242497130465344833741088544679221015948825677460205880719069319377130171703390930059432420709057947835475474428097819531043505781194296425644972044925670319150233858234398223010634425321322907761356957263188840399616907279222412483909560850794914332382165811797360250078693760784018726577071311539936929557293296132534349678457817624576842569105125683850911160403412535752150921746178899893957681496720513747793506759581480622258261351640755565594938433322814121409442978337554159747531018013996241991336979801531102410490343965819498336570005486188337508189339936244111779267470853367232540807129709185059175593260368714037931485718046100907064494724243337130930523566795357401530638949069394883780118613874916798608847609497019305500453267157200711335401552269635072526815459660416381446263577519953832655828840000193784237352796077235154926736258026594879537920933041280634735784216783796134919124523458498092343090899676554034868393024271631133624572184373876286263798252668516898445567977057840196144484774579889135903356872794859638362471649845287620352316655428619210003559319230730755897010044739332540581771643324762867755045567916747721332999743334559847802998517253695837524447871570863882931094215303452583762793538476820705802283240562591157342035227659867274127748389632208117967770538207203602803441919293036564677774212444613049794067911549554548498363635397726722712217079891713116241375201933606003462961321245322630005040398806431471186281115061118366467232404047687458429232421496851027903478660045679187986919259527226271943284110431435347414513516887710190093951670191740159113898566859619387098331361925899857297142204640315094391375509892708628175944819818556616931868963075431489255926693338430785101667623417133440164215340997793987675644916805650689467529724093025015080780437299510176725283249369644888338492180776470674385137435113107976054986218554161568033060136513639254947638818445678378101859027948423130863768936220334442019219106239252402728607584366323927613903380810998138572700769797748252285655903187303942656391050880413486426342549488853351009957163575042523618522438771082533580143005444331800991980135687373193509601913652728311758521253057566988367617539327458270099674292122844518615653988026055504920052775042543531220820451201209811417425704093767200616955918408273918136393297584303830279961933856497219836596486907956545557393573295275025841111412642090053521469930732258820857717146046971831989464612362935697549889082184100001083168845341315421432675069052919483859478714240100491556832155972228720386816162011174046747385138440675590007997245227191678045353414277011402953852122976559497075549325262871267572390011417211489921441211787112824200933533168538707697882525698541592908448529384904033413513130506805323688778976007216014048876957763746990715078087588948875961637102722088154200732164770277751339694386496962643287293604114612243411776078613650066239422300046177540009320745160817839824763268524942241018732713636771920612003870665901333757464337816305174150408340863637240188889644217404471453257852013611709676511606464282471335308845036597957261470906531020420317531304599628815166521144499580465156228743510321176303061632417454667973165335391439098144057423440272443104684439824002647220569305147199769435043994881890274841160837911291858902153515710769519813580809008365138363963444646308891618328027028627205255824089135143118307979894394152255939158342564850499772627912319188392590922327210593115508995712824105663554705831060686165751475842839090146384914077951877752090717702035648781915555011137393702735407864856231617531409296421343249534715190650946731577911216852948234079644900444423493747186778020360796806547128524817631277167284788655908619680754143631415394770289043153373000230340771795451577807060661574530280374087080149009724623201843840705771459376431423426919910988609161703111904224398162003416346662609465716082505805666056069040205735890410402323950198496715018874031754757037115816040343752477925383858986836649871177858098356932951306147805163402476234754212981049283125394708843110873582047805069418164538116493618373295067292585136011335815652141904848536364778556176231037793085790506222141917365239203563734917295791243724172924330882070698232621010550631204534746917470065345527737084757233563384195415435120686062940343175876327082537393630877790980187296854230135170206357064391609140721020818734691051552255796772345415106898005342562396966064101426487728834004430805898749602087614262521661822646151541192589397799822051624304446046010057504229824492054707273624729269399382203818101487968125412636499456955012943818314090835152987124472441275012611732610039076177518056829203243332055208875706854545356075606534565419863176072708093145496012220095003315183251315377041062578083489332133847782207833179647862695265203767851222994059501811570111057204534494297664369258928811590668554287673311261915066722258936405830248064478907348448937028375564369593652075147907550949360764436389359992439256135993846785752771433378351669843484551125959077440291461509120591447103655126911751630798420582507915176649720357362448748939705803860243279664941646482959327581101538154489625908630976029212505407764227963493896064653933919023196797334406753923762293283164712307790410437327259601204909406797981816288103754813392800657867001573718050321827811190515884997156126079467823286688068417261223152628155126566437217832849207502476256210654359054254335202725869266305596590975618665411570499464191842531482330888226542135209099299971904881687074374652957916387185403890889717926715322608459101697527251690280453645057166881966393051294580976260310833649926262701770086203126495468297985991169206931469205253631001945607124920656058237707651271451878956080796391499033547537503226410589462445312479512790581921643988359234429524251211176086543553194140791062542813175247979455566521428311828177827665523494419165009075428924184246253832566640950714681436589650048883158670726261419542155180770628703354662783088652007086430963413729281068703728271793087730481252587275504733092591417504828109028780316002116426066252419118808647725207543891002411025191972547381268845150844206957984476451938119600443768783636052560521621478332930603656439901111237573509526927674541080598623858686989488834132441718148492794089884529989363479388678014062822030758109812121198430325771831163686882414158011193223290105546781200221889636488431049286121955244543325595484221519926930546136641893675253602330294265012065634472931553218428745810529943215787784680308930161278296397569792513851963309106706307941642870469502969576295292324661570455309623133571591790785961265908118704808349560854344959667448555642795496613101671890534154785051058757181126092223842530732458052366361365023583471603538287416189867206373890043654142080769302476967310168492054085826955361736376742991046343535132838495314363464620860276559043163815308229027160172611181247551929508856295160492895825987259877963173552407897334006378647444631066142653022288420914876107305526961543349866894025830282386257422612582420699327024022099660749866154432690937495457669610658493008702740739030943263343239031518619946667823268371288398160926608474956885434650552840755079207644822958270192217399764898306073757058635803535388117506994166485272364746559364979341290517983335554020719231941993603976430799974692743583768373719056336712364802928845633497296041626385332872421812240766470135100094527001545147383537943698126322543595603966863749123603567322678637883618471788524043410694165776029913487388288513655931917702816753524046244820324425416318744382835431788636982724354255967893896750385534248314089240661752150321988946141041122677909649242396804061026132236092646475922469076393071066791551863481258750306326623860689209427411292727417172810826821997216524184757909667715402769239736197052384452816943379017093228902520004763056031969607050923314621370280401857515539431953530094765190782984993125939734165064263176024343579908301774269480105327712260546893515173282873199752551269179796924080920826519612177078214487065227112266844008860426067721619746260938890289804445465516241155231443745085981765928593373892322567583705696310006763471439898613055654182990776505765110632688565556591110365649116258106448547220026318569106417193354296014224604826391781254557227840813718248347596395185487941857493015241689139305443725738509961286851430499024330104255779271241026173889457911278516650099468772826893179056613934053108278189442291912328807374561202905833276214892475464166261315829122640533975449867183156856939362205174521668729889099564201644086755624934560691804519673437129893744147529126952510324231691880271535273210345020307623929122175535359121018571469851532161244935816425513966629189211800986975739504889188154657021633328890514723669563431042206889230833257460163152623292730369265094896663290573139087538486948567864752582218671397565974483504899625096780735393986523210130275778621290427479511869610495106095931454427872599524982993184928270483956176028906706341467079540178717339554224543578925631167274059899954816119288013504409483368798670110356058607788705062716777656703060607677621324464279574209335096182990841742589862645723909464153405756545036541705695614433993465335673843536517383486088633698286518528396823141877196736543510341261566508618975629714306165362689579981191919077824286538215464519129013486193019090254991264452473561674375435563891980861305180383771122110834809353993837302899363609291054271449264275672391019155805889933225934695271639758299373542648343855903717526607127678825181691388260264976287078939300736615145333181080672876459944750821789871316054293490205509128012610880156017938748087747631015005670406866013049377515204583626125179456557760815308455222935319792618930549955419662430889812041311514520839607707360750685438683990416224205779304533424372234290621239200512895225204312896424747197055000191635116265505917773161482869004878568065018811158447155883623083589785355068290289321895381543661268086156404546717160155519629615036347380340133534847807828544414759362429500202261194631538062673308331917980001834835071206641993982697982401688129651546215319298218779792779659979544483556004131842946768993743839481655452597741925885806544620143690734105885478572082405285041819981641846529510946455741802162039602186198173657880932417031629893218971766620181597388579352571750238425228082510179032858562606668044277380264905270909655863295642543595467363238964371697855913672927327036968110657941162623496597911392375868449475641440266793606499005491920513968258996699658959655230720525332917464067551422366481782835939314816415538473799874072953153721265475974364205144263559133289082040083650236507263599983030325139311605354796695834488495973588704205748245880545817694423630329214747183876202130479651504686723807439186745494693618918511513603687743950151100710517400599613218815393960618451903850879460493088308236029861803612719466912827784504393319103630484817624745011975723658273903210548025366493054887271161734500116681022767290816684719814874530007033622892588097200801675544189462916642970339977677765832786446241985238483952441660117543014215823860006290118477422649047298937175513246801299662540738417113268993378831124954054318404202172319774897656742562583553244593080149000518004999734223013918076736160518681912950816752975718932115168523892532647691703196410385880443184713231073037982429256203178468544338437792707475860797370256897280749030070320138135952301620510958894125189784324573857372370441972233074175427275246369970693555913460316882459367028741111900115961593901217997696196921955375925402696690887731552588388742986666699681034048318237845071427848841487115298332617282603071643770299699777890018422798815548369640190037227820522408322470545723945424157090139555811814616387104130994203718518859271937683406503434070231879483510387008313532151490515376060020262989124124680492581939827202674197893950036814998124848820984564737507647656504344764796417770932660293111762850145104968273501243688504057470449208228420886178542910356850849711344233823935125154250345775136181787140271503580062906699116924281792013484646630605667826424760639803371792550402498401973130031165654931800931812282955177357879146939099651869985790714674190030760466787198595075831661052984743401910010165923317520535765172652978196761447478222131334642250153710480617527297788213786042810244167106940414546550471820739925470830336956375442800738297505092233972755835074200533141679067627288064795309785964083573202359558173785465162385990278606778157787470419305195684417624798738172483419760355633323665118246297160099705791151128689689838775284936070786239095279271297592097902339574781147342791394218193673115702491777610834744783746578403914955442314388333333590884645494201209198571127558042206456471980047078366307594909443408374531354648182927850618275812520718748806734389130475440951197704653782804846039095524312341826111844048427326405260216742435144315387898976346224751697231184793056032749445811635181618790750248302888686262075200080474248592063235874657921743100615128307569762857060553286612684399977548419171069804914670762901305158262222105171260488156334378086848021601705321513195525335446606143704416849401669424921466842826305864243674237753828334925729546325672509564534908295428388196274879457505791651395381590142509391289240162650454712953350870134220937297707721018850573256837160081806919940369835441917521851453367431703313177373772618091514811929833056527143548132764943697551676608763943086453877262313696603920847155330422073914483116609658502765250353739519390979349140054691023623705053812732806669349060452626415984501328684102955288167514323210628560612451065118209387734798433114121155151087106814199501484652277230170572356171136787714920401433795620743760030291853038518576130271066169580686582482852685415281744364571147769032768451773898464091549674864460006499193114002072197202513900592422825862305596157513582309620174524812419785377290159287088369609988966726924307278032808483139579510857006327903996941596418351045433385882729676768846585662750462911118975321108486072546116227923610294871596986005465448200983296745397387641609772619381382954452292872964762520356221757332780582564223392091705183853268691169149583338648548732901247333739300606911081617841295047349026776831999119509547822077941284323287094764063572924478558579731623448094180028506298433216545711001179688402323061674147321657555426478514506204173153611541218954628299989323307528582673237753853379293966140618731084908966508033158878313196040733186206838149553379226238279646306161368628488490052700908909101324935282476429239188390088857938743691115282596837455254856400374470604804571432083131046971890365474794569248751168744530787369236175186912851700464069222185981452918181248442011619789977948975178897661852088459115601767295134989962144200834253921729699288835378035804935637789898560881907495129538963691992020401474724934990750464249276924165021761956201960852328521847067522491333265821898674332676917686793292890240810089221227343534319840804052358674416079125732166030599685377895913295777784445159214112834013822427878353554199484491151863461364600626534388858806381219733743040399736856926699436102073506103240047787995794264415850823795721769157287531630373722122259728452982079148229024016272095452171527199085459344588070749548565393977561132121743037106174423919095045418482087553955774410375015215325015251703676535182065329850344866557652692018019335166263706580005781141873921867001275932742144657239653417705603767025560155482267234977029652227828481297123623028026803089286778583437707484229455966840895869616570916538044423992957865130952946507345992826611924139914116528602243117672426636592855915017878506908795050487742701975032619781779792691860847773148634419842672649998238046109124668090758635412303904896085769612382561626245421887179230827410655592311724581998625978077630116164994737289818844450623672625821964655812118554328166184542348169940320379534224498796996265294979357950151567786796805096801004736594313350802189666227642956855483810008854192703117319969084475359371129503573116101674575129333669945727443005517441550058182846847795621299564265364925102580917720707483567310188966328958149029733949336707340733696956904171515580617748442995058898979547102415917679802555831173131761695288556755938270675333821319151287400836233428994979411689541310262393136990706919474387108065293121171811701204757456319863404537582098530635353086442617982993558368204121379566502676115818326329736353709481203077385731927062825426637047664726453291029961483869521944036757199229046932956092575675731239020712217424495955688785916069050291625422894626476295070976547079667326610216700837355969067408492650841846130106350144129661664570864702734755846199841837953220637632599711324738741009975102956826369531812063537475534490842996707290799150435901195830327412950559529963826378108216776608378307554842194345605965418444322616845436941539062772652720170409741889214022945776102597723670920614064677547497361122073531789146165353266899099191236338519737270070144482844235914839591524995027248061061439826014061590858916606090714801277168447777903192682171463088465617309420133157339800331497593011371496166593232768996435159096065451634971852300507874837462803820475604814381963294429810899013248982473141269805383123677700303068978529627181298156378775319410026423946648151546414244824312800190508125167747338142150497437804054156597536523065200293449198796098330465663179063808181555991542502468890411756374633372458720755328417904926652600615696410962677238382838760503260652196836926666142302688900137624634031873135033551773411059673162509134350536586050809663252279474569930409471563068212608087540555432514259032363402628221007242583868920770140950998583361040643845619377893992989855597895268376488355101178339096016981626141858325703028518251862872530117423674769170040299125510419964662107794962979963304171960568488082384893161917700409085070761371287295367036104452582561675424877626782327320058719080921249217011068975389165534594148904070658785544599518768848622589349338847531922575896536402160524877032176747113197691726834372878775324625262541251966857078196005608304282179715221298276690818979885629508112796823587213017430005418989905313926876165322688691081038370583619474004910114128524136928804930372357892825364187280957359125938002375363830326178725616067217499713393381812247946792850226889191328800075854465138425388075010198652480976464322135847294060601498563347669202588721588208371580314498254894589583268432732764764891004294797567968561309245041814311303863282332203112755833453454384110132347058456162065533423894425250441143010048040536201794356803343282429018030503499666748792296226951832459845294275778039247996836364095804853789722188297380640256097325415880695813768553411426165107437126175653298074936736143837194868890630966056704548612943167075193099458327819462884483515353291265944173492206565858474520599110823077008863400143303270372024870915906376515826092771193920733074896195251625583298789509517722820375641395276749789001185826675309960935207640862504038333226035568033618313554791761778257274040962957146494541889150671248572137793030309726157815556864669506788744727114814479841834496647352234638011863006619477619648378945913646882832800414834049940712856884658431082060144040307536100501717774937194710367116464395552189636710434777263733027962724181973486883946899454482521401231726456140905790298878564514612806463581144419736363063531762935406099904012138459448121341035979574662720496414037122626005939764445181130653702496933798547842754361891734367543724788862181790673533762429851176745095871401143172539995360731772747258503417244857658407712047342592436935639496640130982518777593493377876604976779514325190500896792225117869553739049018180263542411134236285032858903804309305407627318162679593227924758719156049192163873186648789227127166700695805572182444308604457995145805544090253049379451917363898022841843133031556080415264192124705762426062611402371422097843807480112137390747124104086175185679395240317910730618015494442699880640457474284823497289587218694507500218928177677692313756674041781303249502160207825579871145492758826784925395260913807386662209811676736724784806755762220224181856208053208128275644103024722212111201103142254234289575632650531318138687169978668150182380793399280178168068215319018227772588497780410597505518865163393752753874045100613352829388427647082733381794823138009260251049052100072267997974782469155447124826812395485485459733574757387559045772365096148871551977282422228454790577838563009930688106107051650363783772419489896215500212716861319799273321186975542181322683927170070032083579293404344747456475979310331999180477171972002782843027327722463693835455587981435629275733707566409826491508687913032707635493653853845027637722397087149189545728119494119604947744140655942021993053684181117603540200538597901638944527478809069620138865492659146354711416244723969686096864121361909448269442876907408848856951829660572577697207761573754466360753616055772297097692450119072704945110446234124457006303190435216154828212785798504093991678513755480479965345579947452905924509251491419922333999946272978249209240172671986774616074129749092474003046000175008946731242644258962622265497199064296996706716440898365332390707958421610765042937334201076216463216426303050604515320187641148977652625855244970494608983398458023629449467621971844813647078590942327329709845057813322654431601288847651649411796898035757672023161327677628987727233369901825038691646593136158609312937323031590072310549934387307765952431598741269429654889508623402966191868584918588377648032242347179269934901000012917316482032437991607947103159274671591068780932667863663910168512131720154860805658991606248119319912526188810737083754906613039715374282266510954423503113943050229413057736849659540862787998194196022775457644369001647890415036532299966595677943193309082901439180169119345355144493212124563208123656579898542200653562039018422584977756241458864661777298704840445130870121484890960726687772003499827456594817930153355211936317124006412403772883993126000452229727447269964629083985712660760607469860207249266720723402740606786316031949439708460723748760631703185594423339198613726315216214997516114778937013120827640762268179031552887266657764243336951129624812746967355722872979695041129399206743184752957688425535082792542283280400743937099108927109372075125963889064007493920547544548481722683924875724454713936389804791577286864480277079998278046754650959777547897682250064778409127567750028942322974851958126274797510658481761134319252096370007735749871484474711096233217772975366206801802760424584515570427099804641375784587616988808668247743094126593241574682844342222392223894973627901817005680660410612958261218225225342598631897269876747264398242719719917723329669477505115459001695645290181520277551698780708376717006659830688639828588671665884340181524174702965880757045349113868102678042826932195350073704503154423675489715527992076836814455226828672979891157063859703296568748052684579795335819797341170330925317077040570075317977851274007460602534813669055132438976631444406655050290635134671276090307826136071255844648450517335686197459873508925536252120192839571273001390597156838504594773762715941874396554446668999613734850806954613680509002892122088324447096573637380452845191457416185695874538655940999944729010375757502202627692682600475250999830524604824003484073154632886258782025635643892172982925269834165275420966282753592062206010682393577819754560202651059510385091444387009316797483654871942672348723036248715086713149563246050277983344747963914438135642719445015539168288153331267212922506704473009887477410907185172229368050096679069733452879659587419686367644335273807717496470609495935029591859835080497837522461693647347015034269319372872695058948352799192763775246055587183828297531067353632434207679223937636915243816202100132311637296250778862748803228927302822773147987277684134041488066265869384044978177385788417677590044649466899018140812598500107159080520107454542081889450748474238942348107156861655342542542079808033201550828327315448610732972370189721277434539069452660700876866313016290303012003580349849992253197518162339205682943637606189051500731226222355792619489973374569368940720573497951724497498948258905309168306986328774323265097857706122757302870301952022263345311801697561916336107897128633327657870064534210732612385514079195018284156649044428858454795264251436599601786026198245886775804361032228693990358994932250611454167485814081618752968453558536999658339808119635088044287593497191892988832696034475797277416250884401975617268589163859732606448126450528733657835280683321274601207509273664879500884447738429888128073725567629360817055559515721792439532159244492088113857731537176420220808345041459750225142585995595522874559470515872935817524592120575992100946857805450235074385333415707989878245315916240846765013278059211631379747017829954541916373183957604674876617116306947247418277702028810270483709511133383917373267439231909110018457267228813171393735243319059885009000052881087355932290791407478261953800103436779016293346158681512735926641912114871970196199068491663391642530170507863605341586510454866788811879704136343802363228143751254548551777864416268568761119659919999333529332830426448066804184352820086272586826673319852033792334505176516469114277807557274564473800967409621953674464888621946710390329252341146147745724715739651386540504105579618700521696958408289972773632942937354492519891650433207221705621282567861730628480390943805811154653096520495757293565783873349442489299786597150566726414261243837167980823674499308431214531499855622314421709710958357412055004450762488418527233729710004261885825314465472978752515236722699052229624905557802486202741573240284790992942637477943395294065914286390177450478450063767854660390626360959208084810665069444509688651046995685289307162203557482563723706277997253942203531202147652926869943631977385469284357931427045295533143791530428729814230458966089982243235704197398195567573085936197950086377576336844972200921482316604074413376313295052738541009776647964176141840180973517142952339788745634856861270788120590482523868392183275027152647704146620163281443716059954884034215454073736290648769722790251489983106934180958404039117289070203133450730635979538040886467763749394425064458864009583591362256623469714484190307115784708668340825369256742030104621744946937155682622452962201240514535140127111840167971322194856109109364734647340462427759944595587488997906449125455017890500712540311396275394308398678678601918399243684309663776519469325389131039007890405128552433210340799119171059370893648941843492933282007813399972535759377468672932774151438622613423108599813615064332348082539321886244872039847065035049420022123820118229440330244338259880602992257336464865657811652665208785274224120486317698180795508585159345020924517967043289285786795087058287152265323666907750735574352075847933593272096339580804689766530129328805817895819455924369453370704674333510537278624837024854800256800451882048214392486443716560544038860877646433598186359134187902944021722552023086690867933812440559219476081229019917347914766804170336726454386941865267287496217447957935515644192902652000184680015084387912762682633807113811903081448166880002297720272994051930029455199069858569876851802656623010261362410548609299365832356173758556400467166937930039919297453026872061936215296974154317876928636191798476982999508061526149710498179563526672564357761534274881170596511358987227641322325072807743963393714383832125061097548577590281322591557674792460019935085433925737686593303982497991016011500649883078081020951188370659283511441705848582563138567515263281837284152672276170890394959660509862137021770000574291466818540762675293264417363653486274022217236659475437009905536206859031972760158018665732055755262733014056937687810847142468478131478311140069475575540884429005856340701621004141945503406625540445961457040182085222907899254494064479387599421876548097389654814311589845338078104335886077475378402431521653111525713653880830483823647313751500821055302117027005047963688062162650626184936656612354511021055007597457710458514306432658484479418178012305151957802134188365955660290594108871205276484949924444349895007627271532607706269217806738945920892278974613525549674443115417629405928731185987868905637311054485298795275926196748597343853008372282151441842981200775513859347280751182507021831911901746302848748733019495885053873960353619231789740257300396279025768661906232878953219726542446196821278128649070390015707889778800322005627462635057659157082298311952605217225183426183073770068515505766735455122120656018532071278508450259596340215026358571372910735323983666634651549460003175096534227059623556271970313631145602290565674859590302977016810639169555293480832031549714732060109315072261870747137827055038448127332754036946377653138993154719134073661775530680344426089659323594334880132691251029298329688459864670078485961006743541094721676364170035753356893781743233101173939875989311370358214862387827816915478898018610354237394434411664746462712108168059748684887267918136904816030415060836641959161860863673396621824000130082601392846765201519377289713711965553541769736194655569838828725278869903447022354177441962093424884336450186424138557983428959502289606574690347190638578905332181774674114486548177582546476059172740051267557959571348870695085063336235270945658762577464491281382467468843530202948240214076442752507253672443547812320221963971894636886291606143583768515634198189208126500321519473957509402321731272342094339154471301575508530627172565729800245537170169643633215393725774975833916764547400752696435549838141121847279195244424813730936835837978172407522034648360003383258334271839402719398329098943483299426877056818197589910856843013132541540508568244328394016607949342419606753114457269340121602648285042098571676035974406364332857246708497373507841784854214679384152061057672423658360652972637104887185451105072436859829620930991346367653854217606583739608505153591102107170522394861588185907431157980253290556539914178327231829630453785638074786040145757773352230774534336303446910369859552286017914830902229508474359216895215341879904297981712755609407753346043576284342234425039221461172256494824254319052884909929783372072656252946604112824320588684901584395287569679109286840686142718892534096245093813031593897198945483338879159573807716227591397043072954120290933728030605589076082013559795353356716560735730229588318405129241516183227231061683747558489566038796154219672252901615275657667252987690244132814108268484511879147797724065080126269957237179466324803251613716300456455606840852367605069666411062208963065032289682837202737782817778231385263663321332836952705882552209964621174518673707190802775555999382708445010583088612629295066148634514832349768950312548326749741179534929530329201040312617868929864195705139062392677594835920463300128814237009032887639603873576645244233097544283200463143101035746865267941030581820696376447252256461507469997507240300198973912179649929300771630034437212623980702268350504066497306058159746691655980765875834425534601190271809144806060920091053015401544415151173431678370603006865236576551218946580896076189661482346305024503792136001812568506700965607764716982359857302029462119811921917277944454472682577921735959413435190234248962605859276981528737107813130991242485997883273777277759069325044151164601521136801973442565084741314531609880683980778247082571600895970445224402916692117450870719962638314467553877066576276913729796752161988346141767385610662660730101522993265116351484482264120905344412591367553785319901682061563558213652196335304214540060121730053774494925983119444115338941779356615078869802223918438068960674394265944434452508631162404269437708090782698156817333673257776331899139762685549842144959885791064775705291304695586839068458111094746902608489011411927929052469096668374271020928021380982996826195068159156249861920670809782955246206347350937862201523496588921882865472871033586156814982966759665172228560354978698734933547508829880211430744317950873950173063165229646796419478457318406674696528235529137978245287508789134275590079446430212945592176949219091112887180284295857156459447060317426728659336062996135419449332595660098635297755484148141887568756749044598549672748868889848337170146007214938329022595283561041431573661310335244841025777936633112889082323532156711344702437128632521727747207562335829016229920283548971711679740960284252534398745880203271367428998818733990407963760082980046131271961190538120464612025401134080752705764851316879751038569375393392359165316684649711124456994706079109371961590103970095037825760486118727712534288889364530827706809708039066542224925879782630099909506132894546007378113978809559346129834599946945526478222182635185079046627576996458624346904980025838444228790155132283599417234689857747649605411113634043319921843555131071304094401059735171706145926118341782808313249785862107838038829265041208726536528719198320457175107098490289988160330927409117201233842005168441642613115183157294391333188299712573595015376634858218266079317781588962004136056156282298667435262511095062621549609752926250302200750634579974287389088532134545512297708405224774652011496357330730397630369105519871108231969431630499658996413738267809028383748666440121300831683473917617331980212611677894946857863067827499726240682546041749996373986892628727681985810682970970506980018137000196351465700539777299717029738545209188490042049678185523769977890824132045794942622245903105634651229685407495821266482307326816887374513039996798189389455182769569008119833743762443624238783899696906086343749747311959919616655799444669544421702470239365817041188476571332459174422665116516396705302276658737711540521782231766631189882763469251388865367944489492139570967430967029298999848071024866641480357076483495267110282220651725550397886356011614430142826975298081018585929190601049298219310521548893770647573142275266756902442858175774217008129349260681692976156599801861308693961399007410545313177232148572441220897765967463846407379454206402116594019429689167158669451456951457713021056932685818481552298049719746682570916949633892125215654933108193748340887358298714671401387381550761228225067506502798437890683416520524570036599438652741768014869820460594419913315767309709079004920305383892305114096514556007531801515007062130214616522371124888203910088328185279416721192407837060982366990892326563627554586625915919670578390092930536486466102376387426803009263074838984796039649730190254012460751186554978576488336925434919765296051181614309893684120270960386179237614099211883417591429059400792745458212273290722418002428425398732295996781877612232096391295525712605886644204403537227215355251614998517368038663079556446523807171874706112269685096013656907760812335538709853905049510452653330233214314469417791616817563050312117988568718551269810587324585601403298500136980091247146724043879728561211200192825608669671947232455635209241724601117782175182323332309173438582701658645787152751044446992318658132436806269214335354356209968090353041115077653313018489132593395143493276707488849209254055398450724305733445979762089542509615225041881059193851966250326416669381893367696600677522613663582638492797096585220700012345611597386509940458301382329308812744179368981323667410286439341774195724219370705870188848165112627556195883518939256134855599430966958304912356348105719440715714721282143278121702076181535002338304741619097196247064096013266915867657816758824324206799407484424562248452949611405983335866782064855899936661284771820579574685024574919063754628541446789562086148206283932295151090251159082599857514686593021104430093310710727606388821699314437898112348887966788356932476843605554648875365558690477037944673985368441076942123313052225934582653398063551812314588733160856146454080199920770377456936797685281658943684972535810383207925067078639525889393017577090675188541300825391166432651111403452720667901660055388703275229118241972680082978633661315879615974412270081007333848946905568016583020773577816642716289742355261435396968081530185820346668127315269299541791753506461566996268610182522217041035144254572258216095131293942476839036334991840701674482274392879895436596322795018019413371817282519085334219542029992668671815359298284739101200727389645584158596747312965492688178348914081232163687347575605302961014656734853568562488228628779784760808881026112885832910793985896646920908046087243821887601829624660019272036349313377259064360147600501331887552190878150413427013031697442050376151274807638716921193401278670951964281615005365969401760019258465825041906511440809539512184984409934312799754207259936336076397930195033081822519826322517524934048467671045173178208019891566229555951965296702371932597568456211092743146961045881740174209397308765221099863873430093629753762522533420378780585096257389882322463060052269844556283327082617907117156123897317139930891299801340884311972462595113832871704014064950119097242362918847779707303655676863198379071954377012650614613496190496463408639929987381763428903754444208226662050002836955668199859023380091565449813519481056840485658914039725552254510697634555655249166122174926065360046450203633247365881262332149081247703735278047061353023262032304634826930836209284650431645638364554159836306350181716701643788650709867923524463429981793907360935490333787856787909420247014296215765980450041954491657787234255185545355189163806882216034736625536303219496749720600567038455136237935585971451702545820957571626810885559174441183651236607868602061916816046411277840482955867438621587959232592458893121455975128686008331517195333679855334131213320653562642030060265409606657873879895491300901185924770253776308468839138661300131638171550729960789359360377238373357887353133058202960405550894353476424743422765929388443541207047650744895996419275424543152639002134236368605829538680914651616266111158751531543075829073140079804269673094918021630870132069502421970966730587252501040572977324354811504748341343178478271421085576452121762371630676602127892089135868620516492789670351267906625495237795338880186911927843318187451970053151936133230717021429456174057048835730242972257234402458014225299759763665070921226882895549571590496636692261010415337213473860177255876178589928884425953933987348299492118887943019529979231903972707595315775274744529101790025061656148226895546351609270845974438420025067133472590788854342424381809187758213106869321462757595490693182313057480923222166091052213400959559186509878349679753395463548289218293626185380213323040884925109175607769259771589795229315635453180203428739665644550069288144684704479192024989844557062153022549150955442480439383372103806227441072559087032950434443216921127897355517263419720698503181082706551199403967433172251574023924631279420050858919041309182181240500886089430640947064781696826298667793055347955284212789332863406666089140388710771720351152849864523056230221233447304484916439113707593906641434292709971025073106612080966753411680215101179685147827872813383694184767635759775514598309951922038619478740237402636985097431214216324125709674973906560239092507665955783243061503861509812149026205548021282814223922015654385622701428450461231589707267325275776344808412237809546006921410445466009346496005851516000362812376688147329169108896651040836000882992593227066383683119723688646345556874472337641124281863272723035393870243343195794208487845383642101402815472741444479601093579877180769729033584301281221642767849032340928211623520354090827662052047532686379641585527273647960643184186451336021375807289935425750830100517583314131607509339741655308711585907060283632858269709271024296116788237911390107974663512134151062609603820714727745865186528815833251638731785758309490745185052535208748979542569210416657236329409558599762372875031076228145505655681465395695583370635579729265370239734651445594304607953172585770207027765012003132399912365910824255144646899133012936264050355425544615672815710158243277174412743584905316135502406982889831050898359845222659702559107350905838164964553380648648993114539450049160276270896257264134876653616952291511774658784088959559273787544210046648927418694687877475797798768383237145013486174453266948903039489161436445265584103680794565487979912751414566057425619251858112516296828996098773603140662882054350361596564673293320822667722894318523227718341144939642586009829810114405317054974204258393953089316345049569793512144645874207099557655737064872884270857851842779445476706356257807271061537869416093585119623908370396796002480232705130802651147918060833613996024147843557828275964955092304312071318325286159008148154197586953875327595180254609589694272206431981417308472680320336854226368232426900352246664881426072552179853643500875955079629125201303893279201822797489750910645539283159931788604857576469281302863118997044790552283035196042803957175088944418649162576616935458390691784206534148996393540243342254492633178186998275634686805983357701669735521597959274992885915408920379645040523482163505746424400059431448692864172545976777746094731417909456600960175354567084466207297474446728426279597182446238166820068756222207743962207895362856822883506257497875986045077175735694639914842532852128126712986036988016957009073883923971873606682073266295816354880409762296035489253222940823971670954132527446457346849692547431493371577092085133046669958370902053298956053462636112356722936419256226883677853671091969232039308688238836023904226776785138073235580506503852622783638993780144008833347207190184268388846973095002596812101046046710358613093272927336806005479820448086212447421084748247622848561755416703388393479520496727230364838244028779851807518425620104021676933692291839928340995874070204729967270612429178239214936772363433527974003060841111811409780559720279144500559095958496356099650228508465612092013222336315096055086423229011601045831552861828992313870922789859023476590463892143102702154921490837775649672086952300336730352952404824281038291919666422468992325013104237270717070370394135828725108900734486757575138314437256625318359285239827407923740806317235901115939137466945250675242079458670726024790592123882404978405291178399281984841329884142931123123229784033137247265731249352054016000671233063895627785407000239267381444455362686455334245492785000259059274061305908451659884955876068836924760845692955663685633389646778212539863654066508775734494535203715315761113126624408069690352220067074810986295642031957503664924514357979960576314445563356267132313707959044760170974881519083140118407296927378178766770852189997501127353394925709644843358873394504801309579683034110837253782418038209900707531416846460170511289404966949412219197304263466470849337569962781288648529594763870992148299952824794037933846378452264673036834074136781763154411423927117680854387265977355765428466052084122875126783380409030782318421288327804364182707356316605223815743178924429163182583532038232981617296410665339827404665978327572347420955818421370391904209579666213421129665187630156461596154462499290509553330586737248201019040791394742752300576938331352097383767284123733732869430670442857118010857474037832843440621943522296819209305696615846202828465063877335374698033337413523587287960302968860198662768400584229097555841386146515516618804428260023008879596682582054131610289078813971562555488650625637734458089432984820897752149974670827327476339714220571272273544164517905237386250731851148190268627456715693109076572735622498408541553144438120480093747525420131580209275870416084528711198211382520440084761800706431347069510401254546737601950516272628444459700278627643895737254646638449892962718338156446389282869762246431345285960809181306112825672833385906621571062621102581030478779624572607404756333104107803055669316478832575585216425325765409762360597340051102992028537215352068474787179948637475594579161889784724736098889484599141145737021208743362199468658206386154295523335962265700559483351892701247408385335885681366518243472821342210939748214325806287639370237347214583707010474707685260262186122139353461127953347318826858533316639084709288485491961492524252098308477653621826828298572699139539380120293427628352568933348843670538793282363774654757894214502351887338286986409530318959503924932068984693904737459442570252317919825836174733216765323049948513172289674043754974604378232035342292743065260143433546142536682266967795403846577752618897793035267414838260770068678010765330550571609485695495638489011478809613600333996689660653142285697890753898107349984852775873664641772374219432268600545850782348799836621217989319356871618598001295207270677166625857771163761401597494902444543438723877856040698844568423492651823601374349112648612642099510166561722623869264394192461429488480362325263014737529703155390635614002289181416320829208416024413070411068056167606152920413888766733097441510659024944043514260672494442276644613890839188019657254906258228164878578790363310499810199183095418399894314605700481009991494372238597179884658364215772385095192476357811687699476042248887439657639200333720610223785008612922200709933406654404961193878936763022850849892376166113170311838635876027573716514752173609250397521438297585243533721161680245506156735655302008757940168450406190197850094115256909263752114341898676578109401049177550520579534986869115818924322881024034856345187983616618974597052101609643020039418076043198312101860123474327357487944134471688614609472689224515820316196699890204080458947485505498415735455603750259258188951273434939808758958586063056296326480665734912960063828665044035002306144742409072101994018661029053734100433950051713217140557750792137393944077119275266686633032997272831731998987756509519569025708329884357580534635874985237789945809239152892236568630574006224614131176323558259092837789686300762947539729070557851352083266669571982054747622808698350278847559087302852651941623817912098537322536701849738765293065417688577866805156190219355926226369234654655488361797575781439708162659069043643482573134519771620026263834149095039851046967494224617079394029514489098894196006263480828072237838196095962586435186541562899115255025561321732310675894638683393485819540638180573162671209290402124973830229264884403127831928201081511225688389434539079699948172065204788611106473965073849544905640941833994457557569949039316822888436806377816516057876795534773274414155010391636126944361519995399072391667781480445098224949367948738874130478631886189210700797806384158554655968239033171402476808705957045753083755724460224289941223798188517580872659852244395286688139975552139024880173923429100176939269292045206289662721289359027542591269118065723306837555821035733410316030866922742816748085654518880254265237077119352116761385162210086437894715341368493137214694316054935092512177598788228073464906954633253756355398605945935904568441718243144718858692350340030329648454388009263757971941335293079415088857873140928027614719040791316965038208678553321568527793301926097599373349785546226061339614352477453869363731840991308602378435301160599443622715691457946619604518374868291495865956827625210557951523041805545835182725426725998835286357425850753851225137748111134671412455269634282214027017644926964223945638065104773442350540898139158139712832599003986689750035761035299403674091148131443328757024463488156677450549163462084547497806457413182202268593904621023167583594574042327310349596809176692609137876647247030791135830114417848803762793114405311816591829855621891925772620017627916342473165980738439225060265847628332090170417849179038845254997441429091108858474331297890723707167050312769972556340857601439110022193194326074774781079051010500499723884721192114415889855570621787789485115177926201004879126419050670876489134465191683548658752545540568871253197512822863741221120963944877585249907168894826895287923043352847255587721017439378495372679753645514299083761451276306676551897187213710752626721813178486064524253923739033682893238162625874827159146281627122415397774865117924064643712267088662357377681997628846429729627354839289287493585555996626017165307656302569376208418462673364092704533730247461746410911151456017537836229293023258115701210904593794568412349622493367637779067339353444247566455945285835037611145873216402239984070780378951983267857785632565588485981021106122004245978470261569697443044827966721123248808448825665989257806325280475288497808945455692377462661999227585692954316418864896612351420957293420568182814906940015035853184371061682044273618218640410479261011660974387353568635634819649786397804648797170900187185352932194275964210450928224991559553130522087632435404445655607166332538265084969907035080579245468373637628599730984422337920814478935240739835377498365714844438648697112250177309265142311397160924307269323340427610575894042239639770261993884222841894215872774953116020557547978982728643638449036005663575318287647708061663912427453152798512060161087475038965449998018936201204602347658875021892591954909565098530341582661631638472176213951483600540982627497378431322104350951155546543825442411856525117621650090901842607935328544102489615222377601032724926102119608100449578250850229015067726773308072403120152236451790011946172324698996319911972031807613798515492480082308697414381455276788154182694711145852010203165509519437047035887216433392548125186172602062493596604572002237062791267768901659329246786985326428954901680795064525364304680872866570715142465411815920929257329255015753389854988715855788119439120591503574495653043590444867039691019861669543296286514672238985333908204346416390630047540561968971668901447470014943403323417491279103899132889744187960629106382567729798310401146310024080828164230964363944572819484009436164684095265110884450864746223417381464392190568738274448366831679802265177236961865131442203747629476959066840951926024692924624314534837886746818971706564228875649407773336533682941253951318873891399890513780332005500519290831274005489642029343816431793137414531332577815782815979583503784286751658350502226429616764649755775993913142521818358306869727985524965272240764618286504570105718698331930288552413343557947170869002565085604442138686184654651988852530111525776595367726306262788186809980993641069879022764054186922278031386147534746080482958352885490414684581228595672712085468476642847763564552573463506354982922537275677890818485275668917058962665611470254742711663724963200977732603360724269602036666055021948058757234906821407760332869911723539895504921991686349389236785268129664022655547887883657937234592826207722460162370301735060562824046833996356549958135089546798126593870326745119160288289323022691172237181151090677238411223594205730756474710557568138108590918903345281389097837414142169999142038759173121510270790365401728652301348643938057541142206475075486385774895109140678406332945975022988427623651887087441765707775690643400491801189182551976745702934806805664758682076023121952417258409678548271600299262644990919306377567146209939715242780931726333497272441391036573115446451885438861664726145163094311055713394723501086287738504396709921348972125086352261884075736497571116989259376737516169520682728043430906689095284308955252559876359081428789385730149251768197878273744413066114105942595773791827509016748268546959100172541804776473007048888735910793629271651361123228830181354333775908843685763272110815832449384502891455529187268202054768372801030736954267221270541989719424405527839771052724639064374625880755604138624783469312278780783263458186229590334476051369388621510897599787710761745466510187778889898812072313331655432407802739434438948944717927715333472674325507160397337343516699758532776440942529174505378835914036511797152402881040098008729400418513269759874193579452603913504196244978702664322842630175551539309983998290122220820231789941603366471257051647500300257009036323826830165959388275796591851837508662879008725220824178065278101523996854767158345281395826023407072125118612496183046183805321332311502472960168508528719629294618314657142389619816003213985115381013133885583069170479651342786525888289341211036773982698049355706894968513534871042489548046800568117955449540123458370688122431781554642438384197348130917863273422787165164523541379861712550131990583579574983527998204795998271496285555004879361524512165990825380313286753433510023418588134410517635939820740876908062638622849376774860013933404627783085891003425308823101294465489389108767379837513769966296982212367968446503364051917173475479620959972472067359220524705279548375588109174533103635690854461652743545548055976594453181725569600952552021634744849181245395183165395342292686525122137300033318011712129574189642349312059112827964053311151022363497951575009696956187142669596669735253572255413187019821987860289484887126237044530367311163782388693900317934587520296145052233096364699553642065156063618878832706399664284900592729874145523084214112634976896503019318490570563949214061429535398142563029637372609539798714033255525489222630474410869138369395560760151304500362012967902024296767488463376880025535886453276184755297132684654254648212161610084018245493128583896645283929352659360218117507359216344804155911095189149725756763605852022681045663650027650460628704576822576873477646895460273126445382274889510580751831595110806530150369769630676351084577356427394903036980324200830585584310316666568196924438792156215605090054755534921442167182862356621645444732959778372922284656618856144788617004763497054418171629745114737327753871693418112706076396344142574963072865721133124567646825188329259789757438535922833134490013516914143228245982777163513818190163461060909607412090910880691260105338100025547590299137648309027217609358542651053851326362818423230294431258174059485865570565063323637771022046530540728237607283772434599647979968229141275322563596586469127970502681517096032086610914835081909673598997516182256758059938850125153741504593477211528956446952556449640525841576167445674257372941280575571424481411236320711093769804244858237640899095444543937310549559117170877790173181164973887009089612153023254111545250147432726731086393495148668112964247852568272616283771710434430052397434319262802461056298238148368576955975073108345889236568740511839847135906030033002876706389282810200207845424483959283711289002372485833045067727220352072884483297917033003591844290705547990293989982766257970357628343686851522605931999310650589853263615121730874401216935439499812566836566804441068875348019674605263036354280676580488470789219827954291718325672649695738551992635427554588118657336043097903150779257846264446745910381226538485999453103868161609783502265492229860353122239934339494646432530008767019240728136615984404093587783311087397428568174153685768041328932639279902640051820224254823520302203255078184352978986686605345384318871898060435339835404416309776027646554410784314495099985398898442348973920210748583426647602581402386714739968240661648086694314427451719857674299441355268377757512810910045078086153117189000261494358119854418423206732658011052236024723832735578223027312774688636741303198495474858564162745795549063959788953088496630624091420862666587224372366008735594053649984577215070690304992106387060557235886363156232595453150999331372259215810207478155521293559062583251389224298279180536105079186075080665936824282094195718516930619516483089504546252612158022975602737508763554941462615544343710539989476572270076667519350532302047308834912306572135971332855322179944144348217241811439124472504188233448957864667891300596637444088924403248810279286426378283672841513421547011999493445750234277830207794761445702357242928221163522489152079162255898320582097984893229935260018813804024349315202124630149730182681183121151948182148101752099365658487461632199783629504046634726834740390324817752458445321620197248440975262111933924365970253756898177398216658206312328041737801896695384784348719942889876586426879280639163923003631621852115490984433159737208307002626661400363552029649806542806338765865628705618885624178619926372081623048013961518949300742667921992618636631264650263471396338888015286228216656277109785853938580011135537467544636249686665310900343977486818772909481875865885218406268894822689454736870023033815628540736504820764362539332700468474521062946667157811670539217602363826306401701685771001291283300587601825243238663772591316171795140937781533387872425751557223354873494371070262175427257776036834690442786975875727607689283069460348037271169305314420201643650076233354125370074747130091053186587128005079063323738419300735840154777302195962560306228769008074949204079680569634779594137924426900122216902997426370176738364436319389554989928438827744273402249384594617306967276972698152936031268229972394651750471632703187228396415208612781265497050897703730586282162453843460597359438819097443320958095870057987020695302529789316103981210718249294267539694127539656133919219931208012336188903016051679299426575593655437522668496194636849629484334117596393473149073911286598069503894225568063800681635094525580530268652617409986273084276446794006334699214083135811587647634492702264316414000289497416386679504993272032909204884719409152861122218643598626412613719251207220642445542629130529854640985740955084472020722371631756219025033952101055264644502208164548779937181492887611960864537941850337960582488864041833946411385014862581792619559596932996180373179274199254027505321555907877577771889676791899784990348638957103887718674656987459294525345164613711104954143509651873759671862514913531110305798208595609915226611309479344958123474579230634405606117594956712504460434604569451499736475024663513963404481143467185963991994072294903926281416778796585493245681155025919028539470255899993897433883096857684962579566548661156156431242783568914649907390801080268163552763472352812554694517236066258817984725862448306593152930317667480033103712360585931780621780514248119652583611812360702395276141196288978363327499134227330450953734157581423180541684691147985898844897664047060342592252673612303605518366439861628177057291233085877093580037004202416445776421663289429844211757837305648126030182579558722266734060334509555484147714658432900007186195106907221086366052656299849500233313670824416633452890781306764696590154911344295076189809708614441481465909664916656870229205598361327502698953362084125653125548413084145658856135716524996630360326822776000330075118598011139355333528246751863133815387292471371655989630100608412199637291072746999824231675819832004282757398341313629739959708031187514261203552665304846447575432274381635783192838141211583417965769393141123329385113910781538742870760047282434279611340156322441320998189991068571999330716952470062929643156740065694150913490165439102996931246476809710088563662371130659793892021763096247515162192846772750885952794296764489529219317164719409244585487153241927271198953173233348661825480041585390328016369095402019599425974712795642989910499063907367944890728061416330548479354930452892849195712297040918535831772607387911706869157064200840911865283161940148165153793456428801109018038655402045890053572143181135417931803670694779511076121185642400962699998015381622013465118266374725195166688506353744205848659561699454271867833448874075648324649591125773039320699278140897657537185761104272698618961038913040208679938936319615068769636613005004199423963207730518931816657297017361861614147076446804118886908498905680609852127404801873006425519856191627921082775968170510176524068520877257947324915289925870752659289220890500199607064891159095391757898900091844384429913965567363601734774748710129522195526853506505129828343318526197443500089755755696636766536052146916337218171135494746897771438154414256564282885138180435401006440949272683902697661160247197371375351395419411095580190454734318123179430960185249802450662716156628624308605650987151836390997506133369430779563306528022500579676282058266632038697682783696383877524834520735816243326227604335747148127693208288921608454584407199794168884113935588375198905574804066721119812666896802708724968837158971380945721258270271447381754308458711368413752385396422849591698894256404779771203613652486422049673857996814741782587907126012465706306758648778085415547428252243930441614125825738471039514217074031801392122677855821581566439687664348631528766014611655401507660270709158431889982622503628481829840970111302012218137688864852622532147476029983314448553414913945795452958020096770260977847568242971210628697993362793107157501696712942796103685280158477833736924802696725939579926171890347261776829947252533920563757123416589799372352357391304108237463214615604069990985005060131630490225908787745986907261483054551632196862663035197410383080653252240781084823234251401590773573480257603743043696953885538697120858947008375734016154572845174340770116832668652247113357500684881846254495500952139898873993472499060947493116277263217626324209532856224706357926721113878001678392816122465537903888356005384152508802275290717374538234322318961800349422609516229304697570308727217162058861113444380826617212061777579610563950558006702284452761643410829823288531367171794695252354824376813952315957136808696584152941995896931691526153405646413078731229751373260583983039212224225905801049295036452634200877698120078128533546946436216333429599434355854345441287690217921278577304108472599956866843035071565353006083353822159927578174206598194343170075415743282159843799195572507277657326342699147913292589571080776688448440170091314074093042424075623091051541986440352284898157960887915847291944246362767844889848375417551097520032554903333010656800798534095071002119341683191465042258725090867369315308882174390252947113033136244306381758897912328906699843580571081387431088340967118445596656468010120048466544517872569148952169375969294986587358137804178719838673474396036472322045080159143298808937840296870150375948930691407182378611916041234780719907124951403137796825222244491269275262529590225359576299809059908234629388885854067397912260254808287843195621415797922770800420390087802637424608768704534548538623338573170755180096959329393951893849633340670769736544990663060504029219671485852607273992012540625603174064773613745309997867764159792456462989305085372857757381817982327332638243293076137039272929380932401024644601522188310874900246601523685698320784625376342114150423158153180334479090402256982966656970090430155610342202407994208465085119508219272789278691805909687085843642267141906440260950687724122006393821748710316645794740946033549639702930444029115132689431058971560509751682990550225736331833649781209002341043658269133236045904866741059738606538585670794698310427753410138806008253935992275139482004176034299648954343683986005958313322675783539447643570403075793185126038534415275261390319007326050589745600261483137937063098342980410651369196278460333075006836585063252216129515607686461119047668954187964117226800485018805605089567020716554918478191098292168311737155591556591521268132398333488681033334405610275018377404397648289375962352821476436776743877228261582266291117061916194019653280203174687798081129009184329156331825306219927540909480895197754318032033671618193492663480436090799304270283574159048271391281911632749596183256407818519929740090776598719145288754834315647692735353437327558649942008405166502157793132250562849165299314915954196301045916222303583274175108618096181147870324503107281477449388268920603201285043945764004820843694936440930092091936775890206972875563679236160523109927263648679115038349694606430420664471855646368168456295857647778649326571024702720796906542779242024017057556524476730925319653731986394659966463125253232756971312865758676593958515175313239574115351048783763762352531830581756087156475111331768282898700592805126847057232974319863390638975982535574097918076566807962159564056187755590864869267102868731964188650019252113960534116952571971065155997827010309877790910849216775683160808522303292461960288292688319908573385286245205860979822917980316410344780733991774148525051982411726178285705834484137012392130430643585974862078964242687448891236645173914667133424737662974710900990325244165887400248722404208517436241763575077368712662069270776228644005446266550431336112897762729369032918710669633425226617589719947707023373775669987169161112294643809753270149085176752422678417261815665869489476745445476633957105609681244308898871932848748665173286535447212208793440465118199020048969179559184969247070832746686824665149599098228516176881031967794060246134503679592111138509763542003633923583576264124430325280465715391228200029236762411994229374334813329072517623500490447692748634868122197090498241117914254443839742015520244653851676897052360993705479456077547168470488203357291556793874227158183050498470959367571137707151142305352915221057195021354260739810902765287666511456304429331500961782784442795686072856935611420552049667692589401581894513076161185044993902513650649139713102078695812080564919449413551446325342077111793524650845202759636904027355467868689366467932043035340813516721344987231340581382422125336926525255278545024554655488331931751991183058901631981983640014190410196270499508651107451399083387931705094218229367983564354689019187656058942524063973820437849050817646971338198500399529542026919417925659191137031606873552451801534989784106305750986235962658759007850099824163945788720336929808715581800834585647506220415759447922257233203082890366955054622568480761376673674692246971314720561009997929099681670951035641353973389276276868582379164055808314956008613828409662564678059893988565765862127280343500202589554545688881477927995249648163767545638322752190044789528450324363460226318975602180944290853186734455787228483511252653714801979755591267611035000592884541941306617143918885787799416354400070019867366874017443180995695310991820593514634300227065291304861754881058798361608526275721016038457068819939346644915680751587634778343367109506152607610869216662235302079572864930126859734205134525506651411389475295050968648106427816713414032472204045803656003268973129914486605178213482402450952577938741137142019767474763126221775076581299510791788925780451880519085505675857090866481914728094155991291042483468398288357496150044467863730737660233999380981153500186055134700924000225456258836010632905243781165302300649783759177776512824401894582297536403637725732540379506872233123813984058543736500913599411944697106950975968544078556628122443558611860652865315934813025167827494871558721338835969735943475490544637196924223850220030117388299032040939719395558712979565963176389929387616875013458095509297828150465505873607031000674695014566640083030919994131383232681413541177992375213291925687225867506719079891039185953927132218389680907683903456530997828462829525453138938690751926393590431875833662079881943128471379287077168627650158977018564181790692647940110645401332362271872431983454033582939793548797383907616865839624276770829625477206302988129720814002969973443373719871897295856392734543759692877056437105270665068434606546428154957016700888695275123196104530350299126466821833309414548405594137329509179383968264208845648702341452751873408135666905572358843539370897386658926522028822715120391323420018923135802151722505588209487026274293977274784127149625290560486434431823528578144068231279128087189092335626878094331407762252703432857088300467019126226872795885810023632603511706837205812247959618655543657312813796658319120456231623165925779273785431642759590339133187962937624745340593162822024095321387467683425936203440864683132564477483200662684945628118278659962226621844525798223328301494616172757279281056547413404626294942557686042271803666848175003793024451991587604162783117134110022029474258617689885720436718290818758943510049049117907716888018616092477407530389058354163157866345446746945426766240953051436882879920371707653255140058947757630431339507823390295429740715180190646186002473269740899527042088099023615785216054638133195096066502487231910937021959213638962758410725903285013423078570690682954599433352116097775711614691319697779098357358586828421510914298230392656971968251555413961234607253401449232339167458600640171063672962641260656925131034177988406301473221974964542753737604117427010895669314810618629440608704576144743004361256116273008757521904296167510474448441899427361247518759612864123288508935137082586759232922142774070728600959094609388907109056282591539278317124994840434738548851741338871154378234488443679755532287684734247579008202106874345871571230845651658932035161164700840007066338920245219809726582617576839247961276607521307926297843034012199603382890658722801257058803503114136704009699749462094362500096647281987405746418974746035260237238593732347236558129230749980827610930102140066151476019734928231132302666427939756830171576308699469856778449553654988708826320318626672615887564208296255877644140219752658831816732155876548665038841304460974571684216681826180914071092315967242269255448501206629997323185165164048774548663812810678560129475371579372843538439018618428890706139310802227424679392663955679328000101916932449745873795812741077999804083481574314631230539626104030015503748776378980760656569742224355700840072622473224654282536814162257624922027999098923056433807121080000838087717298671330486730394695944568333073061316971066491337763853803968319661241889479977088961635152776385009879999903468778779993797662030890622805888543899496501269587842250640454700266660797494841662794891755511213386900799606937783123510656857287116058309694996397422098658053497117528464645487585702270253772984924411170513754574211259266228415960298215113593549984114822189648011765245541656868946600280915389109835692040607551763360936556062102098898000637038716888520813875474729947318696416378150594393163986583196739232330144388355380201956812698233300247575028639924264451118123349043757254689850159944746157680747728925625130597667603578054932071210747377009651906626667210982302947488685236196479525139337362867064650184214596798297174818702348600024091814102313108125473119894850618239174502796059134198258951204288155769505190097180889205577936292922000768838678193025108755626468856525469603845631006468932945418898100886636306820129637773322490374705955382949896386087821503077264942581172024074895026613714420793956465612964424811918849507764104274053891865309938772423074570012716522554110237130393880321060869899454406037013398284552319288246227712421900320743191890147182070128245071035076544561177320658526939733873257444133907724517875672959104567204281275431967302895804891354089885825211324364675265163140626748663609335494682628623198616334460210781704077692393016599799069850832894054666166849101501632546588452869301360015759614057891083784831477507026149546440847635865453462540714052251547497763998997156638664191966483901919306593842067176065876474528855183267482057384766770289595007456157411191266637583262110297630285471363092813653173705155870152173265586744422767073695394704367703802965053420078512375686476488731231810719875812496563734507314020837398866288734603064797812246760909286178217493861608863413090953635412413338494785519221693737953528155576902593186762737642323785340296724613288246009022033962313110795054612611211929668302582010250892292269999927724132600517166462504620744751230807425610892627057434585680840287860620556188226432235117742542719211173684516521866061768677506139649852771110535041104058935788180688495673964240780358171860529876315442247710544006918095978265989553838372357274374278690684254416084829282873132814454169306280645915471209369144410216706713452510368576140094946018490570051191306220262687737902288015220380368942607429313884465467099958567971711136303179314843970326491388932891253729174915819341845358693210870914508249020069854468015620927880218962986886475490970422002063866631916155903124043768086204028863063366995437105296758789580345394642478598934155307244259379380522103272467366229830691844340477253268393698763052446947522300262052564657294285734209321831616400033191195194024527323385942204752108913993928743580686326040294110678550909926562751555245554150982979133148346999268673369247951208863427020159193170898463933323970454682926698966849875567708478154651460718106225929388615775097591095352703525521479437046185917430200476734049058069128013182300462000217009357843884185629314208648168064425448582191162321191334631567975624948050968881717124723037237957803735834658751821905448978308899601678634289186604229135085865048765385156516045654111472909258302406857635334656354362591910718679240327454326929597056673625323534239584261854206431292084403101132039990840514948543464700410311164637081874772467895498408237071695590585622107553361499807645142492076119525997040977645322598710742512014964276424159543313124487710432647561645858763202305028973011507332510553490025193206502320747067908811948218773704682926490932062261096621527123660321597767836457051662383275035091687037127940041173972869796363011910055811027117062351153966861365653372491412282193842735581986365101020424980112990799802289074802613647570478782199286339971540950645644265880235066852369781012002689658366183248545793859885769492198091491266326149799491121734458560922778966057087518482805843222198612132289145993927117708676087781052395293614994625374098077562307450977238568140876032688183149164858280895006752189926506893266852221798780815419340581458183719051187051758168345530202446846121718442287947473734173028421650026041630146480548224696988530226928062205037938927370286706383546256135397897390318058230731747566472243504375185562155191721860128134061481365480102073815609360467767168177441524565659979391634274147907264540440818654658997382710872468039640830746030366987689947665858347691092576393899153518296554127282828233294162737289489253439202343426406574249778779486993053350135695056916037912600418299440057202648833895970243744875154890205121435738789681632272689192908353850021120306213826569875631758852151043609840291929618178960345795205767593248231369145829831695409134388976476098587854243549735778954791330612421459732196760133190637615835973432666191908575680123013050608335082344315361877538013241995151484053092062976625718705454724293050077673593729566923072029383179560312392824094613632716924622411868684222923576420908913915260860957482596083532707772894978128546534274693584470645861143434596813761340113970102277101305430675214905807731748346611157320743610147761410533558762379266251940373437008790617770436112301056414888747656528036726069231136175687206301765173087921577271931648205411102331353913123605762619832099928307645740859254425408249224078746130359571374634693532673883426638345560368283393281191043262826651870499046367911645733587378057727898258915524521799610878346985440123973333615367135646030906807969909710699247532749303637417626565027429449415687290765650741301455653740110908038915738585869594946441305230631624289060044663850559473637833129396887889275145003008264684267909976768430012641595621550804545071982941581346842336721736614467896398811221880606737842513252676788326977985965650791463439132846319881834114265427535079135773757715721395035847376861904289700038120178802917504445246423203970858691595838296175312599878376567432172143605052652825829683280845496263826815773486621123812236340416056976414618999497555863153621391434913552942659998060506238638508457515306748454711246627644817891720927631079079803228391422248391537015671166247938956348297867809165611110421202578743390375117452486731384577348904893768803528659406101692195079892609399296260880973170745135264350098561547670197884088239823689117810601245251129978596784545850427076519949625144983572201596327661418121637920437168566691510716748956228751715536619370837406936737300600024776368244603266987908649709330426426028337812198223693282405914586686409628409609684895036810458535224613031916665905619589204925692898390767479503718181450776186139721870200651472890815934829281621211311317113910905250731493953637658258423310293036191368592636738925818920774981307709014147724099130007631051451310569969193341028816669947254018321953335404593389703764334693066224474346748104290683262618483441526891170181138300481560018333032076160347163748253588936315814149115487476477895711542738298651476770166604397161118989723305897504434431343923361431367837997974425546064323896746471434361353525715783654115009882795167583737075281249131621953025233943410777567658655479543934839245269348614223890653838522635806707398943427479361647707930653777751487095710168712918165503546057609809600331010886666889150594125182160139153795152489135296681250055323421965630482744422123861584036921449898872879782221609734945917375967532114952424527456929367329721002808351841779366075685299166535558560748072057511638488553882545888500323496068409752170040173709786358028664336208872427997896747207376449711095679604821352713558794092641991156053133111347743025865796902150392278825942040486858406337457569497577007562890960369797420562495877023894587775631548031203622642994626966450386847592358544635420361669117746858159062435465582023075416656830044856225471620586914866994839823517222392903730329685633024773843852548789028602971375477352595567853973744700839501788967255650678877029574595423028338720207262903135515685331310248937358965742463022672558590757945695588541234337523457409034556404650669377132395426073939956236332927609236428631349910580298613947515743038375279772231058729200690275737372791081372151305009656586225111737724144412920854839797245950709519487829000119711068429960043296134626173605066509015922212369247707418509968850965677873094918706958720504321537171170571233995218478589961682813242618459211467242291096324099942399737722241411907001053790567163163287917610232475050378394087026697376591089007969250764049092633546356299730431065085097146672070318473470603803921919557405653355276201256688903702230483005425502343000869888122043520462349375077410303361873293199312425722206622333293767533433783110302780061316849306035974726694083804456493877265187179366131524095733567313898743387862082457944691404055639851644141864921687862631071542470042294304441191777743415075428705455230539182937236406121220102503365573879614300679284328611665582007445828242210364431369732469646946200711676751594536783374087471983806489995710942711350319223079972984353927468258925239988953725084057879677040490928985736454010896996453368122530306260024095451410274684727728710247991845746155802380631086053047633780307350573197613626354745940721458551651701408373519767160291873145059878301116417676986241573427541356989212197343366492743509480568680747870635099418971544620870658813983275675357661184543855632822239381981584862105661995015854433848361455421296630177076103933206414119100233272309685704104815842315058946998243692731889478020360310000656085156642309128681364235022700620407578583878206783379666677648996694763595881539811211244735713978081942897199518422855409130459736569938147693031057252986265627408195689735747901096293684715491166524167271479161663365916983048133023404182134683630546172950181221205894598931208178775038146862597394936356058919020861755460381482899233237265911184392806439526386663785200747581147950797237000011671610207167056468510576700587195164972154771192529716353266628818546189595868879005043171844698315644048394564259279021174047036224887263059794144365945752225187036834284581437147591736571259564153008014857223695607351024947639244474918384738026416793154870743815361560374761577676286634020934703384280344208448553527430606997190989307111242654067685281363237361052621648876705414396799585832592084655749424934897528606083596324147849535518131876860998776050931552055587349072536936914202640089064453674681127137325997966475533106714928370452528979914257649888542194011317913779806536156958995360391079778643186732655188088239450107193582409970740226030119260969052783039191448418399089537122594601638360914466146633694700037752667714352274701507996679315852752519919394662006230789265051305124329527550094117954775702253363588945466039348087477281835513192921664772370693153467632092760108170509329433335865982626433298293419469843747177630270683735821196255915449720455611437924325548617510572147172522580653576787071110930304490664707318998668527326935092343609019644287764226918016205082715875612258552829138227778450396224661973393466916902140671480715729982576036181832184735772994193290065961279640964609977954736143546153255145147850929407097179331082600456880073890155616292513157760661539415055350818225018013821891432107579007099126518018357954083833297076766536857324382289334679303341856233427613204420524995788307078305802565718858017033635106525979986994546014224506005429227389483366039767685602682339532598542523409729930068455080148635495774455871102682049380833868650224104711103333261163651209797088057733074803374404296398919626648120186402705966523867065845550516637738854131003864968153790343248858737323653347148110072886046514509895874854437880986773651560748863473014940353388537264195572519809564929904634896253875840034810774430116878006622698124360696680773318203435032209400012316511008405305454031318629303932110919052146459156827629468905923364879568805860332711518398654475221150872300594164553438538807630780040356784721695678531511366411915946792503761199887778051879986351554913723174200070944710389793824939417162216398880126025992010439605912723170504482699813780966962225536305545309724998591120952359796559791241574894944134210835285865424750339154891849806611343258870808243031144315020206792603075795243419138738903168581053175126173563978249325366992467561810184636883291548774524878533951265022914788475150721684611342371991512401634811855000672393249426744675220975125457573172225117524730146552896962522121262431474338235431342809005606328825282435908323229369546299347243656677548222017573942712222099015753182957463937391497525835703443548155790630804279146701665998740091848938460260968650737576438665253260735821866459951563580674775304321318431339741312171330783765021235740137718917732838279632008974895601420052376301689404162073349525084678457247916712294817998880219666708875720784406035734016698000855151239812792185622094744282750539557722763004657332419819687801131148143368478932469890777250083653783497561371989681914708594315774703270270006964289141418043353350809981384539081585098715465268224648027895841178593654684491768585312362065057530926217862651208344914675785675025084241747499940509578802139370609060620958594466318254011010973416315069023204086443849434864833104940109949359979648199401894438837121231974324613245141808751311888351369279524380979264966884243284367501445625870428617140654049430543630102633099037535152827717300004859578326118568285903261441049009302408032657295411305690752769960877143220352867165289609350101534323557785640606762857600923302920722305631545666159674841029830697348932708918040349605800371183205986636780765583745264207365750388740283996245755055980655754383183891554573787400384469106190048852851843338059501683551571881073290429352469271587136157148375924264411871718146151607550879906304840969968212901980489709174151543785210174050875170870454283291356779027196870594346217048931698103489411035669136883813407119072941113843034827831619015898074084744518135768354493623173095246751285502654961026555312813053934247667396282774406747731224547845077229965708103564264938960537391757075404915300426653078841213930335966757612514836279292352047188872813184170247492986433049154689918279140070340902471183512507210591765818538837391299248984705377891650628681771657218221450538080752463849362171987163625527811640888459464754566340197642303666911578467897408557060155459272837979635939283691881332701885342678839420036646138305469439860857070879554848056115007236156684343663402055337731201315520469678103242454254954297103434004505979467565960161583516648972017021043485343921714757745489815382119479304402719790664959305004035855232602508147286044084761242604271119558057152636621742084762428845198020102120027717671617615731160633882682504757871280635344485135709593722347406041178371436330578479597760600351412807926613843939557007028324220183763544359685170080669777218459057866669807929516395433227668873337942853538119748672411469983454963948790780235503654032683247089082815695576423401292331411127515183036831403532503134909542195307699045207531520946458758789293222678907123538695618697902231875349733108548405796752036931831533187402306937675458565532730433661050036998865922231220166927256820479661149286123860537459751227974012526226887184895081863362851440710903342746036530482741777387577600673439489613095193485156491516773405331959656051493633367005280595580534332268800903757475606825099663869087679257611847005347189630689824768916055654628006298040604902957204010960795282506502640590410293928823793772381663588361929627810239385169853623207032942778636167943694681788242675265416826144863610971308195676982372934154631674967161294052441978233393262668540938537296033139109773318632682478595041385521208728841084944376736190341069458446102047067523122661041566347638845636573341003694476878122389597177590616737553674167780371161118212392272380728377580522338390895787029000800622483146027758597888615725194328180742013460752523573444045469908140763820919670508234683635726769246836114669878812664122023121055593528268950608719374611775392799993440683445049069623669529068436801264354191250760163748023921092809359701421330935644220394747574014614880178498865829004757661707571712583564189851303251105744908329063405823628894675587701531063082668649453282408578908830071866046241385934461754367418085444084000438557471841940210231097627078112929355432417695149029052298881718202320309501360267766759239656159379813679973129668552038803238768375370113336649520679993460189775183841224896451819510803347745831894365014580482077085032515208466598507370884541907505551752315837718452898858923334497879486807879094605391957518358259771773188438189041779828383407132873779906649383170722716209350833669551204759976946328335785320721188521280262965705777226159244444828787610724684831714361983791774530085511968840792930942450613517162215193040112846583429064317046052958648120602671601882275223346754905552881040566035895878879579913314179214865930790404655221616862942779801474438465138301482968167032624526840073579988392010463553339819750177183293511220359110430552104343936478051401167186779633888152243761227553714196349925895069115749033209016721668088143301892941551510338008581087672426524034762882634599433129661332643229226676915104424307976684188267700145341356925047425380022517862414898924082188512572504385300920420000219237978623168793898861358093907372511631829260495067122351408080538468088660395417420104196139373033581963932003431430379599107775008313581358137197349219473456208922874526322696195577943113259793901936630694137006340274037897570355769860823207245944221026625330755125121027008973091668810988709105457952144474261574887201247263808120190103690563679158343841385912562518297422971760111899326960624811759575964018306056532975092910111523038132431394981214844235625719409164303919582067728789321564471211717890823379913041390177416658075441100278888064818595749649171200134790494815470447522020846087351666667049661604746749087358503827804277672463610274261351902686713353750245138618444219074990022435380303358582068601281520946132951689006920623541408249125259528732673009927111197741433368686284787991764046047509162558263346300060481829588078708432606857014146978477878151991137897044010371083112674260829391121850504202783988769552504990278466149345973403812927635955121309314558636345607664089256392745485303922320436471320476385044381863383208009759246710320750973172273381956839246168376499117294144010659553628981066053050439631795365713473451454527680906631484748209777574822932642672177648557038460547171623022070956516595197835625099591131954953583950623658638408543427124023146058237349727761368004884329949206083824665368811505172083678050968315981569210737148353334900551235091079385116263114960589858618517455471065861147209347196051956796574144942808749950869054653443905911250757455368297401416608398408495715924335961547033054951660635893966024432842220580876280822389955595884076095189353574340118161249020006974718317167655770347004804995563065141457640801646877689583744379319083510673535118352716814339437442789642058540260741022692672659033483342394510110719866615818329704673325763071393458348929793704685930339776625943921679487565408434491495008331819737395110321910771095572463801598162612619084849431150296378154577783567509623905469638161521121080846814726518443078701242197586046282503160588637953324554143527120892146519654030649428127564705743036591437870800152743158464570292313950938241429697032480665253326150121731147607861234699611041282296592168448499836299144246809648823595093639559436412520174615158765772173981437610455541633659492242461874321151776865165262569272823485587444428727719980178637354799489457090894409621732258927561413718977905037773644610570244037011146680894490236973689427537118999630926630629046198666395514164056503984219903814811773652048364887219331142698518877817556304109374968417414215384349799475843827537909891272886265545320208197387583328862088733893300716021223150998734286655982213913269455289179930822619005667677630145481433284077706870658774033376786777009273740018147805747055782139825842621883606158073397385062963495572361600234339848731344697394070267432171972903002969062772498887158118012542936949383624062008077255286390521104754047709992979655529365771179735820330863132903721258903520999861962538267334868000091718541180823221902122560828277033314689223809235326265260587943314068272112057135934852169507353279893090430771599424413305489578339908318418034158094952936240640476132304291395436210604849704740814780504530950503501186367106969390759101060274057484839707013132870720083155028055937540334124934862217187083944177081243164090485188090437247510888707046916068276105869629215830772695728095492978156672755712673895988646976688909444911888536325504966805072354233214927745747037789346980514563527923263882513029751377960621158411219799620491950396528068995823757679447670293802910161593834468775752191542219678604462932033219529460726562727159224652981222612310582478238087108579667937264628383055347056964900659900829679765200459869204924737535272684853272934669645943805752979832814954352923513922721750226140239413397379487736486859455542019625679983488278397244090970464054852609267946456619841345718215589317550647695776461936064804822739238958478574929213168365433055953339921623304088082678800729568858235216661345345555272298878957864805471365193658693068041412201896779157574035608434523287311568669622132460344573590058135074841546369454570259698934915304946599409638894397458579048320301306454069809864156829957893518120621615026075697239225198479968230675024192424006408949592154105111255690150966252652380888749610003960583900803253012965686558278007683112102407403609376926194626447172088071418035385596362157483521784409446024304640577534954555507379283218332392928678076236617483326151616816045863635721025542638935877222785307497533446867856984562764879855058339009544231925755921752420851034491964412827097285769017027832129584593605963984782538559167121446201076194952263398337453991075235532641551842150887290855521474128366543966053169427990926401851234954371299809310242830297542050846807466802205403172787888173505468600912521975317128733442691039781847998857155415771180361629828462389048815549103273345426067567529919679569349095899408598019085850325220778018700078568635032918095002582778284628797757539293323305264838889849570735512034389030761602049971620959689417591055008534938758724931448815967999986299456072555313378619600980407568593918802445833509556321543129959701156516134655310389783689670535922773123412634506744759515602297341113422488635909136485208597050476764822956246690728499814322046443634591957225144808527620723549182276830538531757649793495474205842477427050037743606349460731555620112264007918388695536896562525936553750285359959544809943310499820417648874582594211182913179087580267598395975474602772007234809828435163382545764616126743225794314525625158367455899829736092074682541702291909293855808213527983409415293812912919610512636952296095189037991821164201759274883224960533945013947383007602062663882436248600410155876532657310198609696911673271325457205714190988353943088706909672333645717390138785989100224996104053058596180093805152692533910269637421745028688063623740796229929833693965634667866540551336914324799969012484411450183917793549155576692294904131701135686780647475282492728970322961681699617780607501797124248195391001591820051103724166328992216850915139403405782179166983027504336533467672348332695371128660766866445907634064966385488143982901668532726647908489031953172598179277898825285695171232165524784356998894112271811605917068117371663610870443877069199274778043902079754146960186512666999756495311899313465744042016388421153921823333695044271505146955141937440453917680576171876041347514400516722166569958611200894911004695504532111753812998328299854436247698883513992566236187325872644921421213885645617354573131448466823858112295231837885979036726356905658412149089090971120067322277245662020091589607972011899518431104858486000823198154267282510995152692055827288058578427412824361675218085511693139305475707140244873604239389031401353149594920552026587361922560695443172995590683104085130706566224175652906845014182244604512975101511489863779705953219890841910615986025540990546529171143288039812505900083151075413913985378928483680553625140851356307083080501479950054312486718009569813884354681276627786082418591875779218598209050890314887585403796690801899041681545227129602440804283617396619180311157141887278567176431166216088683638020245951745953336337634410641049820917446833246410437207126896415822566070538675412796818600752826701468807639813950077586170404016435354119718342640195756469733427362768559401362647688530449200624366811336897595671632083103404797649702644815991274363626029656997720780780797188937619373665201502851248796630715493626687789921029457640902999377842576333812275741591783487019791409707504721069406851656172172895348149277311861469009599644509029693436953163038539426291635563912884202935907627896402373763795897312133457793852051341898951375055693558286818932729729179847168473457530105575308991464806652613068118721649260926316125164033052759978332772543401673989048107910966401819126593684675631926377639114985656505100101308732197910633830855010248798027545889154841591294717789339720253595829207707808966960329555263906467276952779362477691552539701884907324092627662941040714102869767090963649763800584073287708391800042289996545445505242616782043771120158641488151484768141388088696761981601789757827522424307149325275258395889598561158278959604684816234684566200441060749081846946110130979084412867722712326388409401110543734477833952179736050130055848474604074700203887548729174212874873006873099931600105209287428067546129962648419965571962515205102244962216816173386948711354405331777303871660590416271646670809773309625650769829530711519311853428977233207131114664900524900015631734563218981154913406720780918703470650815812304791056488330077133628901350416633732514783166305691404160690581857879659445065333910761669382623896331165680818844427808319923438899901246421602392983548460734417913690437101056725249184859500766044428681666624441733298386017940266504996505842397961642491267868691069003017972289707626764803837294440097904882480026898723770974644123768062220459317463226293953224583938857622451347190954500482402339990613978080612360802191311774009412509066193777829693661399485604264427687042122415082712050683326617105109390708151076785516422405326461912181296381366744807610492535295950823165648870620755095165543466964153446344984542140238196598141087802150637437422133716929515557624011328134378365340689825119347831889062128320047704280624316037148593868891902227618544019648227829993000020686410748309450576395606120187415820344396371239232647571697677334698211820286018321136036236241715174680204636974399478662786358225670232889902611098887510038802931345651185322758358360884096600836761966972014875372485787517608841811521209093993562439695047423131719945700231348844227738364223647219684367671211600242829676640599135188425963278833026297528196428174291112451445980019361350724549946265054589604900653847396409593652834187727391167848525047520587083132251067876540069202215153620581230103945712812847252358881095423042318801734116032049248919129671548935915559473496674387751090185302789836042520355792793713247258997062311491847497500484335035060644962613501899833891067750856411393573675838774155499814181157477184055807883728275356276597094089733399354782235646874863674775203288861230859855901170466437575628168992011083114774775970905428624864619078459469002447079678567124513488416427793711288087510307516374831713402911491500379898546883133911846676275094541486008482955435961711075706989273732811436981131206844711861863447516484307041977998349905269505196742208526626295497116854298878339661340305679908396340653065439843512308014462816107595447991938604968236707568901785727748641089299812261662154750464935909756094874674284542995266255995619803603311294609996255639372897311685277234896641584414011125911081310391267231802160328126973181894962490231314441870908814736503697945825893799778554639072926462879925400987583149624260852973323431394208502595159421887800222165560192166512158873352230256877753338523580539858498952999088102648595154258434289107531125418917039932732179743461865627494103225327067211895421201342625514570618203879502584884407078606351565084683458104727672761157604151948639262106880270423135786103534472633792541211336657693609332315563790447565569812559465135164050242882585645224588088146847814054390427154602305909538522713729619182206929232671963721673378697210588212075370844867909106976583022344048018074779380373058803672846556247462217153294673559070593410826804086727994081909316839376508980172392461344930834348426571499510388447596040632363232203479149606166654190581720161373375473434091975636678655041138822462449423207397526590273163541293331125870145479489677834765533546429880174341925601380735499930371210778628645019197946095170417573501281737373239378495648364809576674129328573575843167022894569743049056151586600857056844341699304716593446371829353134621234490742029134895345443402495958067563791489209609289138949893662895419829932852099930790764588247149215214552988745271705941324484204893934267361248655319603063726154511303272753662499124070935670209088306249328905551095683250971982946251766145336826636580339832122850128097838296481573482865048793082562042792425574812148415565643583792366065980288074192820911770063597638559900518685707753415575392271357610952671782611068062207681625249293274874156777912338790008893842266940188063756439674159594766836579865121441959521412785705620311445484695479844222272425844494030207267464043068574006225661763333138941566288541549201613451658065940203938092461638091182060266332765897680646664635983653486194369001031496498186527016256407189017205960881003022865033252506788346997599970016863435602645176381101636849897703742538903573314215002383027889032980428644222188181733378935285962063976767981413691126545379380982639436211293223637018951138600148314613955100697866305586158858693351673524320383948127203375360423441455679137075614999287579640266140210831159880750479403788791083203764822752766830076050413325029677095179191737244963278453732147577922854260629159498381026862285484467757537170905063522754733606935048298467138586185885589580742257592703961881397470525045714768970777258251539674308147423555641571331157558743594129164833515674350046081633801640166818223740500297026686626657006213574559961776731350878883424777779357846570170826664007478244852672884117131861061357615118750281808337967705237168305625086560341918842041744002326812988744918836543955941406046249518216902056918826541867131151120686609241380159439099022516466119613549983903150810520678569478377394132674987482168036783909210656349327516037257096671983099375582450335494827699325930200039578172174686989203353895896240253045122279571712562359191659570154509545377343022939822272743361634143674528972549494993964566032709167556424469113447099252613733488478895780165167994040728115211759851843907601614747750827470249926508143198038321775083354250066081595270216999344827626754503217764441094456122512150735806970277926624470054785279080462197868209861193307018855830147792351715387220621780472923166616114975041529821406152583389726666905667772874397911664832588365785052412040140132830135765137437897568099418106310086623935734164998559163383370573234026928473291294650160777285261440419017038423884585116872413528476057690200772423595862280197149471165930969583625258313810133115881066121996120945965803090439283589274472389623120683558095192072299129660853465315491971199814009249741162858412119689465209617523804740229809028473559394381131860298155561721462424315525574493634697466443426873779148546828733660753353268760421139600797582262409139696859830733672573955075515797626443829193919068172434216880693395259024030056253468481473637843361343201919486648444545871079285978210204487528638348750212835838910808353238795068314186524707912840761448346434098617902011662267722622615158849198385683259721263372285244068446634728115966543399849028890862825784065306491536301176400773261246995938545682600399535624437644164232857312943822843511307804874524444966117163936024666265736671544328791274743305061395157455249789686430089737725745140643339095950627869221643323811274739537551972144854135295734665917216891109490240859845754110316270014001000761414914808161019751108638772928222935577561265727477442595292774245997911088474176703123551061584104955664176696944068886466852719931522561214813805917837049610171870372738958896210580503329231292003111858945778573573077919985755953332801150824165960278028852308097081196171062652379564415858481975422180174394866197777409574260706041124782536116599990310311263469783461901542207662083722003851979336594810752287133239290836186276374751804738381520850125351864873436887919292787501130248509344403361167378493631529705578106508594343419151499848228981778606071970833791529893707176678513878724868996590876731721614526779161422481819424075182120320932554614410252128326791753537886817612770215735360616112376930247646933869703732244979782263776524409637933706076002448262113430458410724578860168252660842037947955339776278875880390521994525684683638561099228902759903363424065947182524338238054224044542495663010406354401919977795445764030754271812060887991579115422213732067456689527097528439171095710962773660906539080174072175132904050272151102572541101617908538155934704796903221073049224470120791005857104509676562384910988537779420239766048079814775602474772053927091320936843660866460556828398168938200047439821378159274256881733013191394912610887773648736466597052529809835681506963725994969100785417796430938169088797083185369414764172184325237544809411642205414505009938711675105196060553840455124732667252736597491694663996782098247627201945543670297130294481289134364492979983195957903568791118762491112870205842036804679302364504717657287787975552770417261930428388015569291180477867474242216413560857545634777993592059078808041590552194111421922719863116196232381681178506953182993334532456190325925016891653967165593744620355303716866891427656434076027075313840737721690613849738792329336695158181867453918217428443970454248020319842845336170813365397697330426022136961595815050123241049348134761413668575601700018878857349919091471162384906697756399160666768117668094243846688659437924428953600436971723421886676786994296773502396976978485039087672275044394382120482409333901779791963545734706130570443591498110841238068539275995476083600939789538734018649789163855163285354255303857417216977667241018683980877963654797673677473525205889762298198376582003125981402824974771465654095417587140579047815492369761837410860941652967608980496846919154892609111376525382909456408912207363956926812210588488280081588248738142085472864139251583215384650852889056257051803899545273525688460529276397916897387944626578887148476363042333677520102773997793892170403722923947809978056959451706956206750468388524350461411042443307608792309689341422947935085683182920253783249445836762671157031301417931206382716963436441991593757334333753910378250304936944751706025586382106680375513645982782639226233395536474721477314703511943075268881465292801764094112793797013400980671216149632309743179177403615365468442445767765990310826177573221344376274443409979554405865521337789553299088336819269089055388819095572466482866606614814203778271686940433464883341443165636298152307977996444895996467323182678301256289949174785516335114378702246554232139387211946087578143611741920760579775107347389065197425166682178856761304231537156947875391588878180260609966044123529597001829391356077550738774634404979118398711037427097425203119506702634846117615885181238871702351648107738527096410501547970494832926980185140964058838719690838715424485648809225123950119861607706308518442217144812474395187437280412782452292524118056349584173408421532944824578735605873000829345962913004611812046564424012650422554632710218458284832491703561248325282411546814264925104288063977719498901607522717621971240058976185495018660737293044365812877251856161403927588561707665462468849446975471665971556392700566151966028693022719091923001091596582889064199830740968963603228007199517635164449471736555038339144870792540779032087596748707628659750781810144914623701403324418623136771574528987255929551123847908673156879916033459772430969118163055323095912050949623950352414280287953293516741337133169248663079007944298271022947182132303949728241348917731532137235987457317824780013490290501419998749824359681285604424451336917192772822399171187135749131817347326515227970072157041911136043287366522682036689712146361279549901617716572019896921643418566030327724401391456176988338613102377321128436986719013850810231886664599382311392340619092672578538604775418001042910107387279088815907042441983007609377102504638379046678799470511255106582428645775380038076718004711862588601630581138107761390603328519174306263773142994855096126819763054083564325936445980797999617240462137096905852722396885266012932165133255812649165255070332600689056493571971692934294992767040617850279414854992627235621135319767528488384449364128166075762546828106079604885297225990693576232914060104105323123908505948513923789312315628041447568758280286411063329220475899864809568284990661178312766271731279928206644967697787977710441549942632827948664392003680156971378731066158002137366502021463561688193582362177736294972485246379946165498505241330818711396133309015179764638065496819859369670205752963512984534029249808144316533802115354735065431742846590684941598867374100839771654974459235939890612140505044720162723508344782746418285269863832914009671371106508062030754103934542639433770352211809323245997421924502113308457628873408287734247345649870873402784051368991535103097117164934545600184999347740514994069370834030545736310455028486158898692769449991835343394553703224374033022109302786127870827148549667799792203195981849205303306525604905935062311394137353762583670051835444853861164869751868409839935656409566645088677221563007898577735252890227914124270738032443164931660577427599818520935250151501649397082073942905962950875096099990319306381471551666916132964636179586950014106102357903493974974645250450960475278464418801446808096902453112398075168737482377537478636058122033222401640868295351673636292223610477137192253062110168146464869248929170911024028411578723602347708990336529039205404006531409251748377579373171615639950643070282694578011606929962846981105542942306065009484822479202785161770930409552740495510138332243273534306755630060079333826720665469439513672037823823174765480264753259418154434973683407360851526283234358044672702058450305316705663440936359234289358318772662654397276218829606469885331748452907765621143765240458985124602645414729211998550174106075066060761437022299687798223697910085703730405121199385202088553031903942385437422392657294180879624315867471879111637557823922895459869368906731544666409887513125689729476682018716896697036932423383906575192517466390010051609528794025503123229793601013833760124341861895181261472606463135057091606151271587882409667590726333403096612604939715732115066822360809910413677905081842334247242881847084715924905407643429806057278717288425054970060830648570654461958198083322371627442169069218728585833277548857168822580142481895860700094919420018792700226269585245846799295091216167357513291580627394214934494600853161766879992323282515738245447359396932365822537690714066298251172986740436380223801747721728553262602738573964587599648649999965331296625871382590993252589021162183670467560968037235601401984260517133372180061470218715884159100843783040172861916012970069359889510059955485491353871020572460688115610342707501574705675378553189332395268669387454676973772665321417639101713987460377065193256539317130623504987819433078021419214520561876455890696589505907158385391587348472491021860078487104549147095986090901439517545374211778394310139033450862266500635765759482389168524727385043147626950316959646981865509560191950310395738761539765981744334559531591664918759421581265158908969492773908501393965260621200276051277831845103175158330465107073627113063545971414636946553433809835621942125766532643753530167184470948512939080452462518830208158580735092601539695134768431606351539712053942001679446756329666367481952604347046810506980918638811968440000236293481095882094120988576164980522302489747811567628429854936969156157059909944903495870698166375915365297729624862907261608672814229766073188578114901419161273564504785728134029348412458448136967598516744777252420941157128399788888233385146300367585344665593255113559997509713177771465913848296853505694046735201298692879503709784932580533073697876193129888405238575406402447440330680569029013030501609349038499812940509743308609562004881303349697080859962402569476685304312646468301242471055933422780117784295091494086707564305094696758237225607396314839400366127332980534183682244088625950993261662064172417255212391794806441584932213185989582518797667744773558691041247512736749277068101975404233477722915855777415796681444568507084853186025174286712035063618042542471001776698414612979995778779916133506596939668651625964258689045247334513015109206378079970470085977919521056657514563621991562554533931492646407000135381541314636003585426336791537487240893545337473937408902677441897313732027852246598888342131119908225935090074722350664233175800962330536684057358485789222628935179757634229427137519529026364480318054420638160213085138292006955869471469836680136515920890262906783837122367643556956255266592053917543022882958815600797333059112615030144969247541548394547792860262809720340422912073729612362095067976583722364969118710018033705987218954283251550523199610209899865209093571065940671975402519568894211063587914664281468788945227505748458133267905283808330973066531024305423379522631353990640857241894364358943670880853813189601740757080576759861989290544461826941698210646292483085662709864731091226714418723256024393792636175156475762962727545125202591300918440573808188656311157382208630469674157132337896153395913413239193806476201546171647905592990514447405098684804063579629447422033576546986135479185154916590275571214008742895458037471104254959432360090343928288649784707413694245221038808739347710999395415500706703592571374980575843405979871282761166579805947600935099023537180184958222814433245939250196805269088449399133368922669995773371882441495852173009438739260889921333830053513864863748098397846640026015819156527599082085198969234985317247843092466077330352472417068511589457481889939194984993021925339822792701855744708501253791675341873245626337029278233058088107665035865315346459977768762577705165208418965237378027754997849688004393864358989745485520192020733366015994534341200084987924371556642486412867433605405329652520978290858030121334933735614177189388361293060222219834033581839721268668591399370322765786384699151583495264143009240569910659565536711240249302349768183196390649624517707663607206092669415832021645815175190557264273320543324080857668131238634652917265795561913470560525216591138412129984498110956749403638891058406401737682889988141902596569717707639783765325505141031025610289227651440773273248210958120608661807194880308184567660648940511270358980632943955650348132763331631047494650975381700236302272769068262474693030555124350104239641201562069990763348520986698637604479626325848405782753954095131983211732993615514811970272732386513720836519237284922693871924776766034351056324235760503357897726940874189190243339041094316709108630039840066049865906940332699529314442149324425671017429473126051011692889794247412047096657318666001235944052476299215429396578028920915439007578739773562837757797315227679186236119713998521960532863434018570557948028146982168646205521822274597812689825450599024978275782333699998563499391903224508274124109106491104906554485741583192571317036071826131136131665425919386434023349202591456112172611821841943680373804097058718108037884475551403822175509405090857757661164396813740882328766866662508500130905391999534344125387461255072834878001112529881809034788636588623459192239308475853674765227026271862014338074097784917794886600190679657466714540659112703860792413147727402678805945172331278622540173945296206685884623933145585420969355055946640852473777428024336890076792614612233028404258010506248619322605090385736356612286595689419082861153542560586268728286326776408236524855310676775730253421131345059403009470307664984094727576368867173046967345608059440788532781224157268390085409089166557060656301050030739861757629570294664767232467495224961476243661210974414945732643704829881992414031565705618965420730067292091164797477241283579308550856186887600735846128157609484949390479127023346144099660796291387239737395164837748839017102103524500270566072604778693171723606834500812486853569260976716775522287615077584651834486593166620614537217082569150963644950120493991991342779886140582865158705148874145187419082343572062622760320770012335883835464067392938159047278171464077143184885350292885561728400057997597742698493211399089588701537402498325242006227389855307012715808670720756815392172047688578840521144554463465343547792644127296136244920068883611712089202095253525339996213387066403517587752102666397126075068241325825329710570552299261839482848051096045775485852491188782888531749251174237127725466125395955097425568156112790985653904880802524493400980624974441297906572796467120582192370056756121181014232489075683941046273209073518829354903590753268510671508468433702136026015254615503442935405025144808922523106915422176998408182478189118462665765880746369046365171982022937583972064064019373379234449480072551504134856702724610183479044361497632282875873314134286616156904380248531010927273095190529472668046400178131438550760078858584011592408004304771089260858061112546165613039027328511358232708625684348495678132773753375813009790336776913606350388589490638946578278048076864862924017303227180473672337183422608837203705927614528637875188326775444758388218431441712655315700971312905168356943527991829279114677036730093645658748933209564380637685597297476064837030219763028703351583861343136571181450423968085750931412690763725778433673260569730872516419760333027982459711845964024739297638365033359336898604141360245965305941945065606248206611396957508139868949863078356685325819310243869436418138796358449616428508958166745954643535331473038162226845602939096741751644981912155842472189384872257731521211601345728310672531830079369182322345810451508818640639542257023496426350038122216867606535856925641120151885183655222375890884231148932349098110479903121528717745631182892065923495901918991756074282124819473723934373628021094453507918788910462109317999042480063460861669114170212716965865354602471850088275588705087959034663253056514369489086780882238850071876508170258312955761275326025374517286181918700038965768017295546664269969031958351122990497917072596584514489403582423225712386678847593424983812856348395138910397782604921661011279984188755595832448769906681001456937694127392315085407062659556158496394666714608890416098200110043551888850755034796354699878215454897443656335148034156969365063641189220533530934904017176442773681149037192636889998733648042146129959779583787296191782480717506056274748232928435761020623380474343108081162283445284410683408647811754225336961626097560276284094194714158016413755921768653394965471905626457387614484131767176350397546431832709281506643193933924008292535028578708137162845902836756488228430501609530251613662536798431799714472723016572989204445323338417282168522486234560301616945894270094315478563256122962232974338153349499592324076945484436924083409396721591859480807074135822914570589988452349485175446848092591321523023267742133350888210959970598054730539472695952112811660260356867527491771536811692590039150715319208276881478135637748833622274536701645122528894998738422799082576981794963089873152326263992343912080250721739693551453055032550204234127067030230077039462478466474847779046244750858608768151491409571192128397708615907588864535876286904698201670995179251262263777937589363954019789933430294073563796176823024275872403969360712975917611354714336870592582860366973452513310197416993661922445813690481060874597058191799824671127321824655912949041122610157073075783495174722189255547091755841927859430506352230588266755682813764944454130298320384755930796055747150194196299367200341281473987856166160756652251248536337706119234884422540835434251796016207750053951411328770421492042376894737487952188440914273231468793397507237176681493011817063015107275165114339756861460681165348522966781803262826297132053103486416445662909510600646154422562478179814172698793609959255413286530202710498948529851915176139110856653947883402510689723093188169559212491857537808087131473657284453343808687002311126454373769687167215509079272294630698662601858680184820750715362414803835583014907182021685685151674121898972095114696252887989377639504688659186411892255471656990098426119157906031879177839177761253580118361002417977251340410484383393462672102565675509811348148661622688983314700113732975400495632599916332279710605533912477155792963776575576648810267596594597684160891229152126253200255595822836308065412004756469001891160198704699081414396192949421633178298579003683606944193257642227546674644142637895441452203677092451901359163198812567802561490024290824114959975564329450782771366497479655641858065705782324601042712550905558887306271129496995214093335980200288486352241555687586483019095254450902924129002128701739837642430060175090962891538333957435497179741204811062887206002906209002676741895144283187364244678579090999080402137976163377166956019896911044641160966150164786661062111158660239639565848517133264885793751820579342868492385635132152148660966625157355661436390910356911880363214442115916513766267412686659239256332811166802242725130739699321457644729510990182406154646728102442896404796603095439250181296815441343576327782339926249315407613036134393836804258126521871538366262796606986075367408429688912768999431694921571703849289148811123049457179660831868196958918365321429182328012063352411232410769701557753792312753874930636338887887630817292979040066727341442597449497162689846233957135547620141883354338510043352875762067837677832852848814951804407467290407211182969841196041687284073983114107777293784033046919355429250889516627970154098736885747843580850132152853695571697916656894723639831029939490988287452524768398252679369513100462352344972481974453705873734683784668279805410149149365113610699018502493850061403206406342420336821971629070189088313981243970525647132651867687564346319314892885163767392412273890220248829537825519615188194059756975548113217973746932056610262086414427961270155782799287654522716594029801070724403434354095625463755933618756861992834012752977419717862087397585475535203490067829582881645062191388868992992802182359086521658634331727142598108620949357277901066183877996321493984781568543980379341540850102873044659355525621178967695763853231485495556648828553260236533908200223941599028145315082729182185979955360591883515959972878719288284947432411009914720455917998442576979651612082134045444651191658155397498577467864821060801258133400246503760418633041238282947294232958716553994611872225409313946269226789868094162316184675659373686236148826514706056798277897447547396694272580459808675835976353657275333358552734779717235739407419548360103496132250595941157675744619434454860856235338788023647945834600648270646246842980494552006903879921690251994952549981202127446552372675689273327041561480085464749380781154268425399509999792525333584726913835060093021370975153770062481405290064317855724294386632375259473762513040829552195715478662739789636027865551078398501366141933147065679545901813140838565401337318389552575723105616180816198854790808788105090320520237023530685203232323843847590661953556007128750485253365160542812774674676839416934182376922952163268507872024497799511893000133929559744411049794181194304676226317896276141758671735591641517222095296416304972240559291957649874379606888971915016344860278508186417459832572162658543022009695050454917676032301388746224537376081491220969924735467685698738392845527682480495928430590991340003262236689068258451717000937626925143430580042735982576191170464312576785384029200712391726981346937372409955029949755440548868321974967379758775459445583188558009083380671203924047171894762576780210895500361686653117765060022771290532755364315464903522337918081528026749404382492774911007012607007605208945885182569189199773730728959753616459640528851536905068679054683474285878458053978124404623276349946058430069525543923911721840932075750550983437542494331606388060383340983177002467398096462508167100109707695305785681757555838892975453088147896519416879962346293657756375225225061372782430580460322249326185232473590399652365279291145774242574951518201703039949895337729212862855573258923543740450220223459232973616415115448427150991555642912998383626334491609047659858765359141706452198572224353286683403635907701263575823686535125598013120985714727626496717830398252038495362697864412435355581327749957888747880597686189361348811465399544146173321490505963800052307978414387938604628995108832619585018052625776141901929066036871940297212847044052506898444249092210247669368887397645284993599002753747061630031249928506869177493960929554752993378222352222227103402449036559672381607937419386155247227489623563173004214100982343963286834699404137309975196202339289670588795255487464857676959675051485816993187539611125338746351430623718736018917772890618663865508020131012950378112578705242693757272180316877289138034970229134787191333666121068820875044437026246169944140428479578695104437509992587685037744922430619606697989747986705646922302336785696748573347392479494370554892921674026625352318599685656033010788316178389539887688726969048728001888212706118298885625919230566804781320699236663992100258212579801314892815726462737961199447585437354126933942812932600634119190482207806842085550022505372458916013819689783700390977691595486179360002275577044099108516158724986932946240007309556570414112675819004798886492936492714969296650476892749379780888505205624750194357554482428453058929606328019637499707798859283672783321988542568909125234397063056929310716367660318937508366516543239429170838940985546855089118557078812249368395296210633827457585245956292167607439652163305932006304886358585057953151859910217186363745256459111510284438551001462070323836437081041740871595273453580335973218684748552399483740878664699410112759789454649670912160534934920843080176641822021233275509108418387776027329805026073628911547967561785495059783150762274538872495750047985947116871110437393210418601623044710176313441131138863337584779541205410967829032720593454826657031111474372162374881436979693648637075662350742326500699798691521957218936363769934038088039317892614726888315309325689317052137059957671283146855202999991328297849989334462097896129020687761294475912170028044257890703601851835693765868302867122944885075122754495454544670372786889794649858522374904043212033012340585689080845790758220928627304560418342959096203943002468698811397735741615306429236578977049128922733904063913357996300705007787594649260114487393107309441793606644731585839524256903471753963328219785784048784636983210756528651319757992445618003174877386455165011480285514332817862359854959106448093644481085511587610006834888052765597893890876029058320373073539034734430332233180576086109837306193595735873734950763598726334064543653305125639462477541518950941367662042805525348226843340719737245522655963009267463892700915376606957309474127195965317506834831403855573423836260790004702045483933621696672603297856057879022309258145921378904631919491296971468795631122609786230959050008855376858469871256239246895074829028290066920152100694133316536455116439488032915110138938532634555566285492589566484385281389479681378949886039384492530083965617387227896788034230715436389805471043250341237401946247072355156771498961204407044668959828571263982820451194523431310848251306572492139535033391594881880234387572846692816060738533023617298819193249393335022212129443128595406218142195468349536843089011045838733165036227704577784092669060470255246441974962883004700895822913568622538725533343296663022484838899068314437348259040068548556693169470597684261779409101242250301969948690424426453047180070093600646642093648092433794169240500490364561374041380356627290007671248072160886558086867633660221442091693278963725015809072061299267861724838375244199560257265573401776569673984773103556436227978186616163555016783827593056359633631452163800091532605166521122071640005507986407627311293597699948503502279078018131957242430808780931956830267423957547170612238988585774969211742305922284715859449340341424980927308654150335694489612823893200019358270238814576325062399424254253291522154225393786288904868506423426805325365501129745932544678765807309376916460378215882342059288056429996524645062892435851569833687866576533722409025304954109595528744977674866893004125417416466429131627376160725428161166689531447148027748255715985918506457705448729082914434939220606622204095921863759099639411872989598728036154715273093935031108113999697911880557273660071514435386534110952506407403544648378429474333857234846490048806266017737447632802345259407269707915780085239607384538070832232709237317130574962738245500880970196756691108843429018343508670512524160559835648406471000542858985778904492036132526810350450573939155958637440361207883727137830609813926187276605950903898142539772576643517196964882778980573719205504554348792663789974484183079688582480792279647771770499460457595073836817342179713741396566301666354758544246140665457960257744827317499773362426702866086862653663179760175848144054568299270747541624941199321218122869051495531126870783204694846175382744455667185699735429352362426935214987549757762202701673068319414970276773134934378309419601288077720197977562602634190142243715512559605453062386744966640846899448822128828074587265774026755323440877080761574249802899444158522462383068861285437368026890291848482692060567322321763988995580616169904098035718058983159675948344462525162457435882300292269880231371966569040066568504254190767888346362598946499980838453432664002292655936121539069014588412718080016458248685224772324840022509014021838793880393111965238959780283078750521137463019038196150847508584356325214834095826620107428296146778503359665398708905958434966774428163260783986057714515164799435623920861416123504667565172760058173394284459674774815062847480710996456262533684554846533981181654927744863498556871044916661414516963072068245865735106392007082105455074074391155704661250629206010370198323460059629154628006476602135138551739685858832880698818149566558038764342470971662295885470773404225705969804939427038330146943887681298895170879764206399216922242201398422729513995887768752017481718259295442335845763273207833130860732512439583571591065863038567132142796916628274011695924875996426710573812597426921927897493590586751598428456169870689970932480395477131895258917815442278577825430482270790907622052548285812578188087530834696920634214150001464875779735333748228459559415179293217845850573707964978622082614085721546154711829503731844976024583037807093431040308821163311701398902598954407232479928659335609232611791385797656538717026452691624706024366502920689935907805082869630427421605839030297071209230156743523248238086727426993837973508227089141948596663567198636945190430048459599998502718419527491195055461675334111985772275495874376165129584527585424459586922199719913246841121793821513323743600387872754793064511229230216946073024722934318476865223768445056305127150755780474692464220975164712933451801045432382538804281909423803878733762509340659614439918342925275768188350715693556787704084622690148754911413465996322292651266435016765089279022282207880505012742767154504245126504313362592398430836735035777821172853189832666351784011977474945172232841148162186733567371409436901610632379529570260882822223956699248565948588860969337883389169568892359030560009576421678754747122899646081831506175745563895440629118303096896683101907129675374547006420373194434408532319068221730138277969633772210797366891074649050455121856812213673002796048116366054355672331112533992055959982763199397632856744060678484839136886313187576000009076529238246765244307053536195016930747036285869229992398762863094341913281826996923581634036976257024714999808366023753433395212285564597177409807677572363055866496035228434426252222116463154128799561663639559149805768820209286773876475535895662523802327764220038639937559580303937467613926592259021075580253001268538991000311313976154717768407182816790781637875975831544889967774094528681051395112729486098808546154230320964860035658409848626372196873799650308328445066959921224988032215770858811519833133836493435241301692384486331065474918018617975938245412869682083305704833727381627244921560416120110339932216898192897293565852250846590618362605934197149185695932910752282633979241184347221639692041370380234630604463939678021574054747872972961632853422544886901652523121314214778693612806208850534893458384293373434254572563575104609790063735401661752671484403807532746385061221411946035249305897667681527464857082639311415888809109294898768786300859348138592379424142882065845253102521772755022414488576137963181884409010902801412135234541316786546970682500994131433862028219269813342672580065344266059862254233798942134040798281895981972174737919936949795306233531070620578714436018204281549303773884330297599565951100419726950641723658974016686952087886563396093086985252435895598337687877978010101625555755206685269755449048667257524439906983054009358646052135534584304339142533768923957139612973597177172223717047466748111444074053289762326897915135202641227625304728176626999251157208629833592317060048639329044704506230892134825716972257143177601695753035124959384248550846329053680908351767179863572743159483449713560223833249689289357860656326253910530780544688712712167064824631991901486745773258807473116715064757351927533162604542402544509234165264005513535004077211748274336509977905048690930253426597497352717673482477850968054236024718475684751036838791315564462601491008719403432036616267644286072702728324017700452148080236918039195067597858686969275176097412009923385999045493665148249539063657991660189781012592405398929755362469770550168972019024555187848762757263134203630204084178415168153422463134431257351646442405847063471808054563351268589029172783519794791057525909344495293818413855672975237896399561476975389713698268767437408138674984173773797397332225765914124336801361348423591899733806908703204649005306312553614982950724729264504401863293111100593972825350343696056389152450837512122088054121510685769308995976508700553602925165449851264910403952087706791724237460396879571301868086578003790652950285730481901759844336395435555875833623286479565684477774904680935015525706427593207960293657465115440154798816542535475387137921802552298830573703437478717140944997733426153273514264424267420506823036283656438485528337649984344121852338565626413921269706952253482892347004429553243312958270804824249505685587951076423084536138735244906837827091900394831464591801354333472549090826239303180941690956578017232834693446593973162220076445228794926444573907436007226334506797418456945066753487509830682906511702531315404392575938210706328326105201443303165164768873245560590845885253794387193587931598018980902587317934754462186720780298514247497909305268228190982132387247002484846604419614435560834923927928860772489717609952495208962444458197083454318849407549397277171118784746029509711528594805217427951111057920528042421322180606472048026702831579527802944610941629732718027771512002487607689754909367467866671554504892344647249178733992796067856622818072974229504524622308834535877337848005796536903495556608782962225441253371257670870566830916249790320764115736135507207712566648536514382609991278790988314700191323927491687399259393532814173904493966923422421338097016278481720484732812309680322071720877566727539218850426414606243336128832298806541635968292689368775675769871365550743145723203603756011188298677630619577238837935095271564074231458192444108816462561223670498986814877323074173352953465516533084464878165812837812652355493230587667624158317908269979766362469825283194025158768774265972138995318879142423638503294234612960788782428782871565533887143349229921528356393128938688343382639325091686492921514386293330439280967056070663066657562693910504264614369108460819997992119853664274492609987607992747346646856752673103785405507350622119953729826212123248161453784512822263260030740050202345704069599507476138461692640352567931135938703611295717434420788748698666736330646542817969555040649815846335174481131688103446668452759141538706559903956984611887229832813430799157958508344916602735009765495213987285418929212512490284401408644785321090641308450110304723956054914095299314438481893056147915093729560161505358630074010300112414250840387791540545232128630372196549447190164376928035218246188057809196014748655319958759854342207970062950564645661629990229076455754224243993284053434825297684848713702237405559115956894274530100816945700512330069952455863349799847341892373856271656170463457351512448671818004147732812477816967226118680787623178192206572037555222532616045155579382497159653116661448900298541519871767788308801609787070094412497359770356610851041042976995451697490867754485219261230919855845403289328157656126728017243307306619007620792682840276386562587550011077927940728245404823094579461428734022289306165788351750365077944865219049338961890231564487158323571906399339353340717836948646860058301522442794736412243910104208636449985403380971566073302447610421912402380701315883014276747400720393024279541335000365051181107304013296708864846395849753453128594774114811558289995737457380486760720146771083118380102772839166909035335437531352709737682659689487833221579781656181347564144061586016547825405130645948418504955002043303216553191695938275124091201409900778769197531716546107976923913310550399643786169629800848380540549170019752885144319887412464670078452503439828734735937746396283275119538886894870396160271190476195179132032644264600326974164546853017797230249192853618792392945985313686493532011308024189484558962527633360842674867603078835279344513825876722244678299505715960154030065867344698581344090084615166198073780174910262202770083511162275284900598511866410834994027923224842719908734215259986930795788977300812795234820346133280988569995818249252266349031144033563032524492112793787594955557860539922252043765043628419847029573348783992396283319308269858797579534837171486528025418560002178762850357612882288964440471048452051811015303945353923359835272119962220583041424977442211271115774389538746059059118525114094898719631465734916317065092918455484387438451309419703625444865994331617882557837750741270773330739730539436490440785842368579275811462996142219277373499049679772871711304908032644774113371003838393573740696019503157854764325495183470076771001056721617456161203351986980986256825225619109935995679360980813521810162028464163310586295572654055378412398074281997963740014577767486462336914337282060693441786990570285532905464550636386925209888490777546458908791309047594379121379546520164758153285362214057494000817782118961612095136317159572508895133989730607294708686311272030843972870799293628649329255576077949970312164820951943893933556889231147047601124270043104066276292361182789710553629975887189323971378726967386012114434887763333746744518538128987817420427417970697631111841180480988106266856349960453898616343561485650417866767974347523231639122840427698169012436924760843193734381873353358646789827692692232661790526467141171527488464624594696942348440312015333522267118041701676100791770187311335226226704149682187593290145758286174592156788342281589104740424280014086640412186978505900048123705688588703826580948972346729575726556990081643283342933223030676124234192240596416451849260879818612018735246389289755313734819332897791087472195181529873674384381147768816853939819876936890997374000031089540503888701763528118215497581427665606873587457893421976388136367256630995790505447005473748551393939743731227731014163714214113313503782545368129496780666088027829772999332485575890265042722940825835813854591750626748239011282159068506276932881417708072977407244651254203609312236068704420538996457394310894115902840607921825679619690450807341133530554188752232571594273889441157338614436274881137942712877718006908118810727825878504160985518917922391834043876662386076455835477713282519751235631430386522654958942611852534997335667700007178463812155778886155107002703315038165368591527077639261350370844542721894115141796063650966708102936268386866388445193767320503260756589904496709548487926214692482836913737023101693678679499257502156954411664492655423309369206062783115630950249412856825565316686533271203804099989977420740166835864276410797890346382132976982774630384089100983326236025947083023963630221338660372336307714622413956780554112439223658252718069626628088995039714286755351106414355193997427683136234461201336736817034282007134427945152268084653043797209562962815861465119586184078864609012206414681199938178964562933847003943600762647280058050438875747290602511004091661809725551939068073217287741720171641568092387353575403039553061736686394364359174981827467696164702433318043910186383361791626192155630484439069445547672237618413718516720281780509673644174651107454069037431713191497728272618433253996536196531676516531344476254538610547946206815071953528730785083261272304089369429581013313055177752853629613224975298218346072959270705738386315565091234730057138972890861970383800576929236312326688907749207157265281719810263235474446160839983070227421761962220504970149007534503471061336353294936296393601359703695933973045399324601713844230037917016715835184924268587089899127289271591265998881769832825115949814436379575842789556687098831026325370672384105701394060924125254786649716898021392433545633029376695886211775826849854279161186103438424527204396688671719529899834758616541804246374858460605735383376448785651220878118216640293635728760998078299385470804521098966756139187550503357624389816028848437662775860046223593558453883457230475061020565529026451541532458040632974902223798792424160609902453924306224094025424245408270104096822795783679141795285061585836672426366744378426943004877541229263296962782278947250872047450103101928490042981911552553171260993358694732522762688109232077336841023989708639590876937918208135614889102559673313496299297683659055635422002211920253861910275592222818539547711037599432607694562406569847817867762700560107670166844192623427659980718995900351181679024283144191161681814372109605082062122025955874635420613010047170747131778506474130430742226454244079714896016121529007758647494485258417995369581253014359810568654168310689167868909136372762162653431104592501980938286275052114053926657601585378595493148161582537606497458122672055370043180530749498547126469186713272020221480662338862521360202670058227668217874861464584402469678848611862127397927118609173779585235888617178437338431436864655083435138282455676754333093938175155084079597582460017464553030436913067342920219379830385970909651874134822529550143711252935483466038346546882848903771186683029954944077608889547229290051762356452228268914993122668928874174104260659313312168070267151976915294519510204641129907037224403428960616652823151523814312067163768094623820845663484691288153508251561901879146134284457614909287075607929791255004015974240124344867563270736685186946814655481002490548208371934328268760949614522691060090622317665282379809011743361155680157114995954679316934863962141880576443835419710955942309319836362758485681516732666655782339463682581551799138431964711937844177543408138257182258292353683637652450906773820053468394153972863677281071280518177832833804536037050292916245003018145577938357128577343273352898171802814279833889245112937362537487489816391427594303837868500811688184232660925386054757155047181100081774201885416761243885050657667795257701762080643216342816139225899152269377488417236360109367039097576366248137084774136203550502457222224581903047584848947550390930433700916277349242606564834766773015301126855704773486930909311704041757229402226254629506516392833982605269570766260821224669409579553608540441784471620819981120568025275249310563968895059488290628185909942015800600126974816148353053152626398153924680042796682641122079839184617248230848955372984052571217476222040733065521065867901682560712359050972615526345156223366446282397203937149400923787513871536871031546607205727812884133754686238235970355873523149914811293335306237207631565010349237996257659178851406641856125977114631982964412394405003570010781037120693794471258341366726681817054825161896370270263357215543794634823116949230852855612800637823671550409747738035739691797150540993645951218822020000162061265448854310072158716131766094143683592169768400837059266145878807620499590789059243179985788647094738202845574572745689996266267303541141839452940345867630338253322368218040784636633937947369946650151182615405274402072849405315939693583475947935028266559441600075782278375018209938235077610649423390653707653820553513908482316990029431926106026983997337973164413122148209623715435506803100490849485043835198262615813571606015421127218028379517350862134727278032436335066928242816171749520401370990810878691324817250237713258720478418942755632163996417276241776069743222323008968410361445806967832771185683771700840663487081126194663972961628437425209439336643351249262842772258378244514937911188702062432379771382198023461531185909926974721326824112729652354233311080272001706679043258183367938497890338585984258545461745122989931922434906957580097003570545046701732134713127224834832837573523264557468473180678638472761611233987749843537959257361387587458894459630979329279374682783557404780848695869824146064512739367185577129343959426977510090650953883636717913629044553984558707769252094116691641161185067686082424308796212973027379157859376587122484440153038971814810276967617162219983984752950625036800091155209416103221000416272196186237097601914686892627690903891496501450296509920396975178260494500311616515148310802408038743200510566828459498365464426117124904908647485714222410783725644025185636674449238217762454291308816814078441858217805660025700159327567593797197739272565312512470908136846008692458261692749900021385239499987977250478586751616698862238162612624886377525653593896800969218039190810117590129771561644174667046074584241179147667156641767033478011019275866442060664905898090576948940701983054339858810510553967894555205728780669005713643215276503446104626535071950271880328329542709327316307583323636934630170773422424295795701953685011000284963155382521798691804879842972093175570719800892955638288822579910862602259800312409120791451518763325589247999180668186948320655001019897267865221776727879512439662947341730521657182621263245130497253419551881574580247527882685394264775232495750961461739360665430131522893384966996962385787466096410570239364494097927372224845148516256067312882234744354070456379330096407535186801621148583331982377950956823552147003341524449043305916153463019687418640548440468011018448288802449437652302471019684645023822890073272389582215624618477079708195115734752450323571970174444092568620880067601212165853198794651569864177566204183967858932247590122704942497415034636769653571086133817360580857812437480676986542259086350313165413915196023443798589087043932761267512346219436132907343913254973977988714709672637400995370113347339004606515002383419186414828119164635402998684050067884901001784416980847189475879743755741815929302982022105585184598836784335517625567863727301402926812932093915983145613970259721284917803616654310253803865260882269808049851714051231940288214206342015013754438344250514983552607004653491368748526748272890220509960953969266348315348116994756776923674926518528049536609978877771707447659046047052342169313503982068536494528347480329730479353929071448465128159618823728633727988331359830141168170077865692266374569909624143846264626753107190664242831612631441618686051069737973750387871354453492243077398962960954300735032757889897397553331406043432853913936554242412361164037995973449860385059011248459296629236684957528556718356878877419718990793211442685850666210593127832549153335172475966575534461526080540131695202190369273739102582864119946535884166037109333864204258608830176196962500091207468021044804491219632602071549805385999163677746494898087120971438893224386370027816047286991901823688726001878136685076128144974637191410068136656918532841658608857094296524113196374130301519274496112982549788971856281462236520796009174084808724523203258649390363635583830541574275354849229219694468560262795964172678415529787580390583524132790483500054190938152301249341559924947022237574521549367431352896322119678823329070108441997996629444642106143731069207618143043884674398049634489015331421011736856182674996110677752904615529002680073384032329550172547399815942968525607837327949065929248560001047014613346843298800875379888518594021938437291868032497699003393181278879988287753549434378535041554251754912944966103923581045185868284573614460249172687541161006997716174796870884429238085454710969091903612906129855299834759575393067928364104713142386776232513204000883148649618756568494948759582782749971081884930856769041440060305990221491582790266699828929500579050311303071576619068717261627701332026234666341168046248395819778701030146925690806599552642456971741029490663722299236461272275370767027894195992874442571558916198151893482655432934608306730010425011120318204648461903266088080225956012868063501741194731483258673717692411459065474425212592823688188719558088324182085306726881013744742793620508242258528265549715577610642074053609701401701334735570033003396987160106572438274083795786021602957364461637804163486702379358217574587724813797224047930618947448720396747488520175235696821051144121834206075973345571330680272819804742087077027587994271192403620394844613413038501256594082624361245751018326784584629690843242290379561052714468097231798957187935999177114046471619026653803862613067952613534254628012637277403124228353235219768239375155840896219247204645780192861377412648636258583849235921736549322992785193940113532161061891745704627917318448671252167701466177979119637809268019561317774489072741529603715777601827771200085112194289199083697424650207617547082372835646286145010096218223475465769162916177404139923284247887974469970348073506531582304248100731814770960812715845844875405505148712380028079552320563239408233049593317820255183233603208174868655579251206010980823827005977075137232542469505212488926186051572656184406259017652562880171077582895276008313458351710941646269639272222567763551416802409148307818809054688289995997031751305881075123450458564741053314544019663761204144434902397199378847361976509087467707364544315992413598616016506903867087972031790993972117571190010986625124593046415916194261648485344298353422577157075555017050862371755942024195410475695296207826714739529313701811758812982732952660535161288156150562342786520862348632445970820541424828674921709754967726414074534540353461300923287510604022448981259843978013141869949188269003015195789526815197790086368919273344120792759614404256196453488762504502721238578633275013936224285993843630181008729428738746812142593826332143069462846936767415055438181780939129177519815882662024438508650726443143304522664503169859214614729963077906151251174166513623905866252749071430156896847624025049904870784210607315474767131751288443522473973568688998522490255031356966329271464168765734885176116268576333468264121064532292754669835882177887974289975737851581637649367847276242603253500722808684512303258640307320395360264707597398031530526939488025707253958085729519108607253046131871836034076696367141070098366523198724377066420439216566230510658675475002774868838339597005401898022184638579781606573562047844343717404603220195463446993194192820923377582959967495396193227281981277542078502526689943920479551286918671115004557994144162366629913240758496220717881219730653368909127268969727337537068937902815391827643557269194296560844432263590759338575225468391322768065795173694775155063924584779672663295257969880930825075196632921047380619462481043175471721013831578736786465504104637091670458634513363601387382236720326581809933712225138954283224258938018241915876123658654276696011158457914810090750512351104468581975416328119052762859196971896758420095449257468388469626015613268541867495417167294745486284275393287019628871003904676164410884040408144997839356853955457272271783329881781438468212184987161387663842044938050312521835261515374793418106619872357812387483493460533632771551637651921569160786905124115208746049638129712683796368995337347069858219532171392796832303678235113640932081107206787258940166925886720403050492127982916710033094206245212041779362509637798712784803554525716610107349600072199637463447065952564425650398225180884685878508221154253604340718841733971752630524502236044691998890706861846547926087832653383413705762415093306079587063665069577161232474309003377433947310688403481458041955255779371526482341918992048687476045744601610846619019830207161121631616372787202602749631613668302732960431428888836007800265433042174322606675405765324509138877296686038846688772142086908918455161651673816276082790317694723239006458391405240612156754500252628848592231627563094767680985463429357215343509160093584779891597459368975944288230417509753714490284095463451827690240736326647315082290304346602702038536130652928081778027988496588126537148633903006407300553059160267177665086978619251261047718296369298188475875656208377546351477570793622127272975381015598940615202560358957937742249994888967397826998107247949596865736243346244255458924270039293120073632689378075644934988459126263617544200320612675955730231730800017091794980160862765285869840059474654277903269835626568484396700457263385139541854914567094988152220559006103082177755069627517374595319315188152136346495740951846544914840076037502385601511126372863363847884371046244102755454120114474775975268973619525236933865959622749900282453326811014541732409806293807837944581351061649170969554297683504333723760232004486768701954942220266442771149892619027949945026109574410749851699839586506382354899713942625380595967835749310060284988103273979819859794051271464945105546886848827582695468248355337035271065811197284817820083501576723714099269180297345550374217526787984831016522120194514433329477675945177321010696893048221888517511410282991847223261014528755695269373894796748930607928336306626939567489727671904946220498743280892737347061710558124885816132623717507516079270484572669090757193568537153976159001119638041493007786764173799008840164463006762014096271461529058744158217655186921288962504533103379522521195226921200122121180463606381296456367781491616979474434608062195256237882505355321972568706075785850659965575333823289459573158246603362403214259143541268341377173804319018971358616315116368942212666330280086175179000323501569744141023162995847288642238889009037293901740370273422907685664338939577915409732967500956441914740516877728556171323371667831505265784237104109514035064439455451170295358492279082262111318545057202771941927905503993755153693428131691859233961347270064301317272254913084532258018819101185545736090039249158694413882733657597421569850696525371687396877267302827320303242478150153975115399141759831296540695901948837949094986112420988803564162617429885960267434573362516294151633291319735183352382772032957475319638731506246695802824760263397140433575701608103171415541987701080925694553195972118179682001561143209999110788620777188886081195032918552921145686981860017953972280423268708894847780268785663585478131134850548861518113997504945201693044776835749386988122667089550058279044957128040943890069237762397635256002223557662889537024277994258316210535164748466440490121581013062346383787783124806088416517486685774407646845632976101068836808339419042582347673933042163661659904153918024962606829335264833774558200423462774377957753054491558306752228617053194215978151405351250038810498012325926161208383610435574255263483888385126587855264283697796260564080155343956973672919046661932462661520143000302700653181072618913226310172519376875544948406334657139591140096327482752254195561673457321765859399004780625039116524048584079993425009775967394869002834083869030158413777628093194126387318945830371046933169318772897055309705108920150931318932779268108269744486594623001068462924441353402032986553365106062305297844106232536120669729176874228011957676939669278749819903328727165690298698512204379070012633444726632834489662305975576447115100890358680831133081528136787906306802264355766633374386685263313677004032067614200016855533612983855106063786617194886130092856097165560390074272770622100826381930820799970230555502340670370412131939876973675035057226259078981409472000772937600737290916182713217551543830310941897174129193270518376696460662365585714054721546648689033451738317324629847846389466841462193884421830865045530875172484897500404719312514590929183593821911763950375193750167091826606602693468907979391541377162320600841637396243599290140371889819124185521007955197680837757435187804992779165329530822805541029299417967134801997326377866322578025580311412122830585219007389737972068447612864674629612254840927044197183754231875817106288167934066721316987884555877386681869461396586587960977563587765087668907054854314956466050541779453254665942986833881201255121503960867266085627135667916718668779876033154815970449949908419856907637268198200782594288731420735814220030422961945649258291692366480607590384271902424920093489883489737741272852786163339634111580641478593594954126000397852206150609229330905134178791169075973662005513642633042877645901801030494309516757123248274842496933397998193853604604617663303347599306314953116669811034747861412785365603766201489822173476009117443463910588050759621946480609638342285848832758365685657377657750140183219479567903070348867056000728978433772477154800498893722806189836717201496308807431864352543128763044125736883009631822303761892668534745311649171129713442739850798588095039039189056276406131312568120418000597003588696884275120276750805837615361228044392147680869568300171984391970093002894281012998517619954337832111041528279805543067095327317887826733409292456234715234475735092399321119181616783823544296302242399189631760969685436327885400914088026682297317250776985386504779662450847080580129026580020196143744106726229915877072148519345020938345435599615891693688655562850570531353971581672840378645760759186768191103251517024641500477100937214044391202935609034133920116067388155955458243281943019350747398142359405961314161273797175709131421002608834644625695043598886040912828853717563549432532235533292896663755715990737058818865013886398850613657617631441821732273176567282860365699298376760141324854370137819098572209620882256372062088112620505499010387336979284880488872033057399617696647322255390331323539467299202102664492816249445089500906176383507660422045493928657583174884483202603127700357668390388438635409450811273894337854819954238228500102506422009865690116855099876918038881687492228696666145999914184639669095014822681246838926255473493593121275888623240349841752962615053521916823196146685829731731188981269375910967020367219982387908967872267093067619938932417880061020779514498963167292252758877967465823205574966753425797761496332995022182929901175157992179213651875361757893413169643921489660589025586742288327231694044387266576445503768857928803878136523741724977206933367080846187716545430517986693504773906742218749587611715424982266229006000569874047885232652895399645996451198248123814524709709415022112686085187784997906614564622447377901856319659708478069929221952664370958780684836314900015679746686434219412667331397673317316112813087948463895819239650383627360956026577252378809449950679123266074993070918764879531797948600153898442189960422509275448143839652153026104847632636492931098281282828218981795923324915788664437527324213887970695914886494737740888981628822505230649857432640728315492262851270240683960869920574490353553818948569045026977627130280432312679455306574998977183952710943874007936989321852898771654652458888932245490981561402306090205882958760402031225952255725399105329367342891491647404510659764894186877691091141313749161229965694879828929465303760373665479357596140206112208955227477976354255399232503389256399994411455243356720481016590516175525679147160646032392973728871117910977148083294595311784698981613814148255007273492140683478289328793257099113985603894511135981739910280904542856643168480980464046601818656141323715563796463977431187145837927773949202340948507540998845041813292696035797008873753033277198234593401354471138477704131030549456490041308271748137718738819549666809322794344359111094967627805139563100314091358967898508254622778428489557879827294856998282748605281829244103517497595317968419901316837322352755112263037406938159720976847319912505406733146033594181286329417785001756525015136619342639685277412734452109311859854360441703189921782097942403331006944983120227168378303705437932934139135596679183515547706371258198579774797445688122449220770258641436911268255751793315092080280578181911931407520189877097895039569608042170301946087536986661185481552046771702784143454874279938840774440908836043756917463015586999265029735421708633159792152218618931494644017863204079194803032476986184722955874020392693652644844292668305367602784002546728870050590542625003107926973533096769715752823610798791353189468517300758885678267581768980637563104850848479116986366651168220958700978151635846930693469994739791616763287985577430649546151808941498093917304048379343548581568709394176582892503098997371069974226142601965160361844243787950387187928092086700461212950491877350600977806341072487160548023791613467659113647386259798503088919132952824693700179647195717831521425194360530333226242532414610917378928893905207499835685247724614218483290704412489425238816945892271288868937416194331353763151422961000605250552671441211387159297544728832119121072704499149076740259947856232475420983147022253545592350318741401075269914980773225488288780506472120777073688602410270434515228523610552695513443116306830876994940456445756509133765646845793528617577473806635103589214211334742574487497451511162636614286879144816825313904022397777432059209996194371939902930730348534785738728903841264165833719777492371778988522400708788592556846811332020287367915929912082920005737594785584776966176259487228339426491009781328636948397183223109806887513042718483721556778554737778894183172728149356461709829226378664899855065568484655825756669110007189341373000333124132978381461238624348519576162063864339976274732380189479105519291035090180866687959028363781760576461032647884829048849100293624297015542676564830923659041755969664374753405159175848659283878045603206845549819121020172171755221211053690130695283235144372006295055254210721387045901343097243854871337481794273202489966126397770028249848387649950283444661503626280365015568505372376660066048322879384659579184341405976783174587165366940795437336232164775408379142804549666062574483667523718299494742898253769568128894041882195282384694006974696400140075455967879396677078497578553821899978717823185880613154284362666033149378944019767485720549041273724776952794473120560855712703866961458656824404666122280407739810352040759738302560572064487719263942746023867013210166158010381962543726347634795231968448602421642827226467975271627722763575850841150753381088442028841306700391045167531038554743047032662817549497897518265199701881718142064866041840646953678835773900739261386927774571136795420392962204641811190859928674005462848066125706604678760792672036295241926751779914770191653803416623901469840161396451037362818167216425005044440643432872185223871218671860336302955304921895881882265212463695224905589232079199352265949103389222439811131074753159815433286527768683067954711103770509545555127380796685601914797404770416891761154622222820272350322636848976335966897490349367007260903762727671425425106222157479933399740162875383519270101304268914678663322440858034993610289338717866129709994470479484765042500241267664473911622557986881872301873292122796126764583734025942908074942902435275441304023767990587452101391742551447209366172508039604984015830383408663042868155147800798389808188507740041684497042180962328538433594523728105240249171751065139606482262090606435640088188997204507556114946055002965994434138561309041662704643425474929003490975029250074451175934464163587707488644025150286345141604274155956748271009264069750597019602979246373091863957816091322694534465586445328149774626526375997106395785368787633453176231938350305629999852884767117608650897617227919285658872769874298513533123582678492410046031510703412321300059006350217352647169487099674185961019118290451826131046551572192830735219051078574609062464627919874735621907532251803375133224518733618004905492754289954555848077544732289151841005646930606448936602853900181142450868916877221200565595427324651130586273703000308013099940479317038331722806664263823566603578432398905996924964768783595944592344538544580099157427273090846743353463981688102215303749545838956416946844201771064445461741290134443666571756450212063504760356339359623093444398907773856681701586163767284219214283558831540881870380302987546826524977391158707850476786837934883252620940803628292657918392358207349371194441961045546972113147069249954205136506189796966487189672799117118278572469934804385507276580996728980104916345919559344501788477521198055742360728117278844323358961944204499879683377575497671951429752498102972980924207777405836861685686904206062720247727673264445769812470749376134609983222373831418032500764701907832014090458086720058991111393565480468083594418148611416918890385013437922423924781841284285307225376569668037940615862166487553866623632201539556822085686117195308063022142917263749425361085553005713849387072431085627978477454341439948701253872718382357954385991104839449632259010496286743679661009736077638891685086725196658050404443659741484254378955799432192086556061476185792702717876031728024452098035827721336430966626080088591387194081688124604104626854758667292490055805729241707270831393354908312249373364173997964124237475232520852621437555513602957982435307743234311677551710118350668721663824999767856916623355014882701961200828782754822365532772883098629951080256800954686820659272140544239223801339993763584937816619845192516728028585229112636596167570351822855608575566445282699800669741254581165760913417388070251614676755741930724798494262432324065389625915259251699877314659166676765182555967223492386212823428642434936243033716601435780367227459973912821867104521597824886255691228966700867361935687950867453607871874755263596453826234727727635819084950802600664981822471401621171517899796673993655960148492453978207165314777462443885193914106807401697741242241584139517689655125728259651810250526835241442434797240517229765751502436881315482078614270377612904393991517111048176988447623714165523412018319883724014967650656622867911493843586354651799298711681979128140241271034342203679335884480208305582683508941337118149833349305524254531120248485506763102806358526950328983925139700122682870707580930752893931928458340399659405168271787113332522941703991752856920495414836274086256726109691505913743443515807360606942244532148715910599492605220294530609757909982383612467413483522188036343947805153269095064695706128173792196875373706630788640766655737587594189732569940546838653620717017436875244104178254776234705270973727817062091585175427497068687056491403366891099005660372250167949698296077789765897187500307105538995490252129935391734190462041158318880057413846591562739948654806614932321524498562166453111944693422168002059530806841893486890878529616300535498868451034011540604124501016927774457620012799680479277483936098996539862440019554497250317201227314882475183149416867551698144424425929734877348197318283303054535834026796519357778354461304758161047883345460548455310811614701403704131653448338545373370018100906330754991555117638627306291799721200059824269246949847986867732210359029396727804236892278862087006898212565084511980803189326502134323067582809675142624255098055216190233640421008200487861143324295036120101930640082517413335284007214970644209469748056518178734479489142036148448833689123423225319366092331135695628797947091118229906007659485010826536404845751505459287152878995465153362130874188593516960396250608479712353235107949647533215558762078157153002101216177315769839737665247730128448231093519598099488665793024020865150614627496882346496820825616319852349026546541952492278808808696784289813879777721077883014852727631865863143806748292278542090226835614539854645770491119072773654876648743197215480628545289546697694535903195386518084593854176467227351154585271424125478799360336106449421916644609309351280425021718275090917837932939294302002651870697423862148007043446534681678901374009963467850092265692044052614011479655953387273865229385995074987455995206195206291968755750399666713145119586473887325903998828061718036016948305612569391386103225542682246186944377061197834930222403983497259076010902619811985277026476844591410278223805457767130827118910169030880670759210424224103953233557998524838908210378487712850664699556467748956830900487551571240406450223592409326055737418400223272353996182621985891554527751108686905975613228147373785108714875042884257497263153279243432149254490190487390568938840252554067789349854518402492701965415918284446721729998485916231057747022885871620191521259190804097761738240802266391351527193866740782969903761501894582960090860162166925931899869894104912765576295723797706997328835054195003750792904959721587423297490901808202621380883067423310915956117451100521071729672482022885295909100222558248093394131418137740009852472999612534646746759357606624845089654583383940257571742597018806935802760378150834410810870089568145874295822552808253982747295406434023975607764162405777918943223226366234640044166592783196926092651372383472073528455500131058287495146447975376018320337535315550331295123906354500216232313408980100720313558015040310970126173849381169156048941379160848594267213635406716865419417817339906199627611769941479119419548459826581806876774013614807141259537525124137866243955530598754569463768295763958133438833986721221480172671795255622084439800997916893978241219526110350101438333771997529128572920534962169408043497702223703731152934503730382797085640418142361155869701243349515607380605108202115904310567926532434023757871108043346523411370819800060126117828310679590640843877539629903809861024886737839335231482968742347759552362492656999007748014932177279065143606188962489422549070111057886716303130805433036931130098017670096126345351563270834857097280191546017303115774700464746160502189078346177345283494877314428610164806956976044207314158322569134179382224068449662438212343686026434195620057349146970624098508140410825311465685602386137750894768600582679059958333683466730412537092034621868881590243701115916971247971358422991416415461422661759455368953045822991591674268927934220173052826048652469759005204074156050501372743232748366530836227023809728960661872404979792554141037054439207720307221531388989665751674606413475487153049136615405171780797196486961780736102989609446815517300345089705177262219455668023094379766261271119910301284304067319598230158890327850862615584609316655034065849383746278149977365842927305050888664605310677490276900548259113791850586530524459387537298358261368858453449346589512506305096109775653024004477409124233914381250232116520371155673604909709237524842949988960041026232821578722849667353225104971201500402498393363461162818634715289768219679437260857282306909551298694157529356821738955467908501225882426185635861730639440221708579667053340854384028432833740434905731416780330252900318628440637153966789904897327224876963129894596295133520823764723347889273384279626666107694246128188597757619537987637909648392152915360945884436396389243308278463674303153802411659259182159374711528260672760202047020734288810048579586494273743462397641633803055047638722846227188142131059818687147681230527733465447194921819975016493814881278791952591623286583670421524487480180632673252933943833061247415785736636069060082983078668757264390078929570694141349175726469373284507083188780312412605959467972690999202961274218456710650681354085114495573169325844272487264584104827847308739827722228935644612303822451888629416010547757777146097329480426625076566497099197358466430292872211084148423407813768894451000335256945420424306287697283688392700325652254272964953018971122365500507646642281586393638163895655807620549828904889916133747013511437919601780716252957331010634659103536213358069961257210867370611421449700113881098236717405888982439692580612194315020576561596940929809867911627229272243962142159016543249324225322557353920805035591593896090209340873508492039678007978985603731705461665439783173249002890495164398536472934119540150828128732205335037313313952473029253361217428373698568981410879775927825822155121516388408709381269233914948188403505767209829178663851862701811821310202983408965859599580816480840085408666658082600926929988978093885835838796196548559367995039353690724836903133984893149048595010579684896887861865729638854225528203803857728213193600400537866508421524498874538196448066022719855850004195012894746750152452668642346429519994147027050832373476616496314185772991967513411885260711834565949411998694590365345085018586243340099953320414167793050276005820424837933018057567713634460805009119338813195312481131048893893536851106376925194121517115248352867371480612138848187243736720198593775108567464419886506662467458817351508975425810887461448818534035251951545545204300842287715433090847274574864394426349598113906901124183678127177601668258841934585955086557803711704547807839749685821114834114124019775942253063499147041067441230276998287315906610721850158364230580657198950437352919444775571630201503269453167375709907734233338805861574502762790975395510235818242417895540993465897268001424012875586001457803787240577096184698867387233580238959335413490664581609701271172974756028065235891416545530653035237189953099871956981768373206940500672240964370345259550308051229705649603089506484612204849390439095723824448033860430201851982596219514408311534897881404416003298626013057500970985795067438427636869123639679319403394275384308412959588552528578723067557349187227535435638732263418403078010791166532963543222602644148088688662129210721984729334125882257261918879005260445096944891551001250886492740901481686505274020084322756152195378185353884494548895220964311363541026885996707994856302960093515794937674278045239785799205814099339389109384573282777690767127543528608203369632759807505063051407629296263772011899716430732566737039293068098916611213047135113481086294376408187435270162383775880852037131207137713550023604722700684513114350284568334476267572985568022446967432135325279839795167008108784655921942433760200759618822779948680348574908311251645683869026741594476417346674700174365336484200746545083670169421720461828295182133252073171118161088558245751450163355995272065836275435431136350065370814759154046545877257259262064348512955993306250240972535717756628549980519188306768559219385744881018033886169144768301092897226642688133069376050678260056712630591963403855577232729419084144504610759453446433215874622906709524059380505878142405334931986218301086005255290739975369996067364341036441174664053180964588331607735250898111055260862924683230898621910871978502148928315384238838583941939854831010401032454312085973232283588199934675327422892067859308669357508059856455964154305961522385090509677417102590987923823692637855317141017189547608623941134222145582627711345761853019135294808431915469740451618503798292952700200539926932202613201766353437607550473289407052331883057135973053223243613287190804227045410079154559893770843386156672462680675523221754010817333158680314553438985498959253895651333349080599211114421176125633001187880288321577058171689575090182520438763249680898624138299815588011299287135306323780233850510163289833892026038134606292035033413146387814439087389370401903939050984719805049969534140894128151047465196484706267471250513250951528837220217574056201064378584068581605943554353363004443891887370178543440977940812925616143198589931613387001648720134858449633391069489138543845237945153579671874884754344525851818405761857164871047092720592475806684939091879375245864931407272467574825549521135589867273973663019596959008010096249316711808896073567123134073661467703392841594619733238740203239194622869976288007314550316464502496734633384795106358888506261043720181524105360557938121435717460068920860601968461869492528220315429213293982192077455079372102749778373193611089578583650149736085219441888941596942958804011428677983817153581129965075685978616552265234988937432930462075346126833089201813475761663734471748160141568706397060710211134327521442654434016041675741285373665746070984787908890692731319160256769242824811176546217615699548243841744810238548575213258449790367924266352043625863623079675400396145753861782216210136790712347527281045358382113990931370344383422045029666541002615560877963596848871841503836510373022614778354165868603790131044686303378373031798967508164753424868712095232989927875167077586123036968983291657941768581276431260177352221513490381286691030529008247802786945599100733863766385095885974117529959782365005718581669452535970969877849549352160611113294931326714183633156195043486845616702702756390155128994439962359431970511539522043918111374348463815047593854593688318121915761102228989153627227619144220066574387423367995182271107435831424134063752438783945134260990634323765632798792772323956465597901055307832773137948289687696805461442851056390188200963971927246040983120877400215771825608150949403481105718308841485953562786942712989124377895156127990961837642994966120138243315735154718929084687207376523373589952511070411285937227925675783226090001389615922385040306387872852972318606080843024453685444651728632204418153627478791992591081832555394884171449871604681472102150665642545787558980633232099710269889511963234342379787114925111272882551487092560486300438530957587518718736433840302685361330471357927738968792435215033523396666895674198237767606042421700545303736946163482551628398698689841234410026364424697300163650679160325333596957990075734436803191152462116269639885063578215605222298420064515668246388637483573690515037090846840693900120706109811436005774108810878736822138794095409595138442936963814937762707973372198920361463450795766214421166133246152580060687613143947315148760765362494119545237306931226071925633474868819557543238295212139127826925481648596986326809555359005251916375394264662728638123609956901057855915141679611608747247984014538626047064507079341066518704090577681071378660378859951869063436895573210316551640998412946257510105167579532355751116973287890813072347412392109591123836949273292485780585771115184977686147302162316255182135273062286869416632904800769612175880784802903281189397608132792328171506780796016329155359223550625617649301847878658343329158683414490806084257748112706154615892167090502944839949785463274652912497420272653226580089780738256405752339691411113218095811228924986278011740093827062530318066427089430705430107394279058775836467184948401087187074122311810434465908061700146251732770461962325990947443400634443827473832468758791007012089363728322718188867579528388997528982836994718708424496187365814121120230117327695339542800040456184710902566658967441497530472360493453048207356501436971457402258094827737099811044371028128913885506830403788548778993609972740468574590417061379396435586340298461077924285786112814197175333008268626131882838797986293039794829041759559579422385625748273336265051138519880558137818114678255397223271693578971592221970667019000619613414772684856350857726046390330035306248463526034848835810087068459687365711339048245656499214247515679156427206328534046724112209403475333198091058379214506756499108773365616218243603030930276589233792321350964023797915131888319427378881144146696313384293193014998900157104831589787539068180020344525105281072925222697671394270041688811970583724839656074548312058608694509348351985390814411312845222755222466041048934416174525880847435325504116407783047887976454085416600387526679424970233564514175146585876490273437259105027677047746527717762951858480011940548731846794007698301562895410366577878147514107617924266964485313436396766375608890594945920256416817857208882210320476243212857446971171240387106942215846077307716286477375093985327015611473984004261301506424248071296677645965992194823115979298681483674510272184556166251565545382457534368018501691730294299518309029835855690094562487774325525070414303136794183430550579362091085045178342937860472688141371617889308259345799777051315532566536819391633291920154145465493311790690808157204180398915509490811731070847733180875270399185828375819270286929645177479647390820210732697341065946459007377502452042003042180249092086920101705709605343984775839295655865346425478937976820704742319841349348124409665420601605063668195203926851014060988022751993160890562484207146324946152413209306772861963847098594431351713915621742398667116683415459003987151912061603689602772823542896729897252440547443534836842849366699787672684576525564251691315993334338079897694594261809950303231899383405671105710492780469810284957316077744578214658564916133761678009903119470299839076299572269257218774370287096880726291653821222420650007939556870572270689888127798957770902243955019342739661508626731322837815440733315952297518381452552718831449705654142767111998572650640719478480365824970638394969925445278008309219264939825045520167078015278176524672084628117610977234322563047028998366801367802324454992165582028490856934453177274767073041888951982575886668492505021875795594093338080546073661677240974678775192718399286117487139259954538520196012785550613921921435138016688825866574394618084621070715380690750764475764165921445271126833453075454415703688925661622313101972035600246544824629980790838404973651179468698422644676959062822052017739684013949566627372737511375220018091116509340928348090698230338613039622300332174379465143087000721732666510665648115040253963874790882421439404146793608062376311381283995854988804334844468894455027450217862098066057195766291120894709609178932672340329651599634254422978470781704868173840325156202243481170955210244555781673298337527158473735289827021318120786408514029147867450425494672124186866948196943225684694585927261950580883276462787521645279466776352266498247593454959165764903566514679081696608425601283083052981215960383259612510651207585434312423597497856182822177839036166213772278926566878699580319968243357362567786514147157702196267751911022704694505019787283972849536930520328626910255752682404735079731368144380347262962860994408658157957972420048681763965618210700350226222583847778935548705998035518758474190810849820535576186825399740435751868917467452900056771743796305333424347946074625573248449555518931483238294952111079390616065403184086304175818542102742493058535439351105645433489353268075422342693289212871081191070969362949190849321163416807409063891899817994124852523373651937022125950238193172003805247320207063293082286596296284910976248123875822866568987853611778287406111619428437919800197960076651411165199534423162099169025194798363530346337337869544780362067306051479838815985252485946998799877347312886100907866794816579258125399185349032410505856481808070037921365077467360208261073983505493537880538586872101074710466107619386263689055365103574100627471231573593498219571158365501453013511425835544666125390285953094452040409223824840815947562428977322328581436716535855969916183394900691028218423609825018928168682069070321699652746038295322809021750576615106133880941944919631725845575363869678278123445252150769768854320382519608107849947384014645028221322507941746397991975193402587938419107655667866096385783063070124323966860200980268821890236122987687134960862510574937496377601875309255194011935208143321651278567015052975981082592684895291420339667236866424137805640287532395044329835656399828352826680617560408914956198476455475163304999393961899964132144375785431757673516309059310236780873720565521262458527733819860740795168451358962235357957506786870070776291289558233618673746843478873066953964474023140383738255652317444279700588995264622676165047086589463243725665556528215182646199325350159033416918545143142328619808744846891910480347530895052650158215250778163982991991325426236036520890120704339777458311470737810782910176235706857935542763514250666539322425808388026021667738400708180011665347272765548527656593658433659262580043708200861027959988348124653690867834638703262625362745534892424758335466807704506021721666625965163490564210559243761601741327626148210020024451520385827017552961568951891091611324015525955799680964083768242539262544838281544516735414750415744275948894040401951705472386786449772400217101555270960060780303247277209631178838783511275845765594353286676446485792418194820149451702180073028098152598446069876699189482304465281879388004822160302338021474326189988512383154034393248300144388383282829723097590193649839164712143483889340306689162257102050727236300748173464682913656401171837083317114326669231316778640093161441348062669397197536423541781052082918204780054636514316042409069183407599879011287615756681832304823239337788899443489946021373016443342304094037658300819707061540655521766427799682866359828122926675232416580027054467211304765847425958347285536185825181617080317113968151334353762676262513267002086779368960952894810945913546910156428972007266346723623207732433521880534067059374306739930804259807492834946203317044970491534250438546403923584397572652718973627742040276628089646629927305316072132512979232974937693145518438190828603170786394771479343551221168620267452719223843572290438554169974462646518391206864805582257067180352166543089349976839434524947725847051275765712313100088429057991945653263183310631045186814323198923255414288174456993994081664043452055300404605355273848814199909126201036500804833539894772293773633381233708046925999686359541741193052747762691056949549358813216435202668646706591091575522375885826533546251834656475498733399641588298041866367693846340687719999786743471347915348640065899598034735172269051663991864360894114938564689305660898411059134629151921803459270495942508355086988522875127361942110278436620533474878562643147790844937129005197844234489937767061374976373024505807793718946854505243525951289144444362288430879603616506698614280575340821321899721062964384750237384316115697559831773484567887904395634963626378964939543122155431586681227915913531108573214106339035380178513717385270972897574583616670008811909410676741563071462576467838500966483172243110433937218541066302743250602328635955801255994978970793825077506090100944741893063323140266463380459395326518781274190791291376367679613412298165342834641866909592706349973911923022044613325230993377390849278174841878859603541531549719514783160978433769646037628337294973581176698513567180364854511200176864633920032402347054257338681416204302564327783834885025716812075367441302454918452100820205865926761359728291517591855432112345905099495289908903044986663096743453935461220681132031641035015285298458948904245421666615630601380107186020515807305167335428736344071728920175142527898934296344957084574485692391037985021662241384182644722340594493751735435712860641517050205743636148971847431234165511798831208197109144697525522987248718854001176799165528444133440817506228313403958360781501688230152926767527596519735007139532051313948933414268906027255132858848904549943812498884634817545266994873484196137453819836348532247978420368980912774936444499784806177775616470808736995519464171445623558661682515553892604004322557754172943617720274774801495878501656739345579409635201004796528020192529222064442811582267149005199368572864301021832323007929114132566288715024416368597179956624565351892490573336738237623170007857692195050416582145957358563476866419910358022203535227208363418178513437801113469074999070729059635140330281896668902741409577547067400383271401821026906735050521362522543172022076940462557038955741318983726995039094643013956404767174731112785574717019796268767806026760761830902009378739880396066546001645843824700957317033599392831989229514013859074833657839545639864750360141385658863698685349674474134292966080838079228537235490531242650473759766488138719065061308196093386204883952322660923710724885796880441738821328430632780229779242179203001895470387669206879224079578987824792441024789416354576254777125207627068222584258310375452958113202089111257709619036126749166709743189278798616908704437830341988644386233239331325352171066067959611553538250198569018490161044636806693650704846830526354126768369671361383703443584624707453206860042259601327279053566432496470668935128581819467945467706983139481963961621373694306432662517182002951837413612184760432249911898376166320728541717396876525181470773293752579778692105088999577739987048260989612716220699428339375766596155666597419149838679969431868380006039944635556470544716902312698680004071346036076259254025218617972970485621635824532651454462920482771657097673427839827157016527736959772008263335375434437146300026821712185935319816743874431008079529147933915926088818145141129489645579451279297990558322443503285583391296237316463864676706132070253861189470151689666722656019812574687753145689038208121507460926732227090707770261561131574798179113471117249504471916993056820902796614412197677658425002933150042119378440793763416172433376156455160638071477536383571160457255641700598537495058212472036397867974360134712286326946566785901422031153015140988174736031830399054506127749750197084952856235189019471751117688831484707192135363636567253064870524493911768290696202447058040505133285495600851463627489431284356701939270253774445135045556305676408301772062342396958255710227358400324084061511073486779589456735414514611536388512121795263998993713434693133913370796887707923115335564966684806589576739619683779705059134851720012859256416033075649320594315760890360313600840631133066729207211220637752622064337735507098204161336886158786662397654825577708693414343779702500257686613812951396247454565311462789895527987684187246469460049834980069741257925599591803290532058508672264248295625277263547088813392391776820077526568075784547793735572969021448822098605197889928310169038999545982152418233590921950027587936739301980814656347464346411116589775073301613328480082661094561821172865603173707891237957309888143388807607692612364918530880657664851349983599583188616998684014972380502220359359621507620970075304578855401567456106729602983070281867637049128554166172152085860870697805344178531729410337061193951123878034099599115271028298008816853670670638618792977792249238808591754690026549821657870404832588564557161224605704197689780547086158827603913593476147892039686289779745628023709733194323593959416918513316212855281902494874340853499451320388668603452575746383795282261607826496460080734709362616834123989915986437724387015575228293722505166394864008052773789329595483876643211499666866683548672731463018623323851415811400607771903100399619100571939161514722301608242591992440044513850099351462920216371838589854936392176221407134490749430540602625580176082445801978508191677612123794983899700853761295897459685175736992309530925080547405630503246141079750204504915175785332823870136742051735896093272010415408307143478602155757198074497034947812240163112237972380682768171686436372498323576126249165478604554613185658061908271858134308802288543431226530716256467952020961791302723007343737219689295581065371095906673189620154023381210396877076562837355218695775191189228010519522125984892095752374585023800057999326091077271529199526905149813640045042170040058863514067999099194015534951075772238959765244134620414208546700272565844506087898212121500327648422333731847062846231971826056566427667540830301195250323017209069522536476038260566703984262590558281972825813776474143420091104010076800413596389542760802748246538353056920685465948939445690197241434516022920182143721052377242358576566893123926762985432193663140995421285798078675937731005461837467333804299629163610183060685047327311261248494772464783327915559120315989098104276935856388073148642735459312712777507160883113244572420024361066816110380368115517308121696184861477041020195198888891957051440393214337074281778983182207187295500133740166832803255016770553906281841931273567372354258188033736283164330369702960202555241750801035777289889024401794410677403434374765283394591693997637014840338611266084662353233724949981514218986731257757381713888541209851158020811191838495673814557038264263111025203277939383721048426695599614016265773289221000874838585092145026446824878515651403832066642171228727597534590613906038291882976770256109011832355717285649775955178972842434969215389454759049523583540509855884355442359874606828996121093555206003941449633805993215878472623677363917733080915454407964402028275420689808651209732255698070151133419850265776185583842691216038673903337851184467334610001194728232770725706527675111628308167604383599046704200612129629559191770177640902037661072745772792123944863259435739686212928848045810903604194070973660516992120117594305588621119883258166246579342881643650839094747516714875679714479298734960018898271810391607582872533866488789062005231801758332848189768626794864145540592184639141572706407330462868004683657351652613319149321241407358954515972279129645413550316583051685109034235941581660166297569561281939987889893018595252254100009819664187041227277890785546252703634963895064798917528642242843958002678786058763936035520452290406769899738507575721438346323253798662830426470953248818652360520171618502700606530095873765898648740092887060401527648924192227741939638124401974522374669071663708714809746384798664391637196573775706791332655651570563868546797723354610536521653237017201985674621207357186261725094071277384711412629031404595097571635972648143121800527016856519162784213717807923512900219500008800588464334480389698386133391133053755757423341216637944389188983986803054425229308834765185597313328510080556794167070427984618901446239908593735584429453425393594267308153990965008910823238080785410838500846476348801108107553032923354753852999313777019186416465016720270971367180423842208254178514531702652145373806415431752669787129674058183111494161977554815797890095906009400099356169696189133648256273959854362456516588741635524466905780832918212334150185039165853596704309942561731985234799454544406691382916421195643790611652653321623434278415103719270761586655409034745055338285081973665175601290565061363096673883463095588349658664347411868592514421020970391991632595496847239879817547131187918154048560817707114716931828105304916512176796415695744877605196631184042278197282958984971355812206386139979747207243087011840179226213206616506077664212971844472085415778911990218414382356371883064787373373723532059376138467014401554092571332001132260491701847304357589952950641717136695974816294924112864953821017695559966810848789887490585493903704618540477746721794188277929139388044166671044518650632526557478988073793533323934033924207745418932160411009922468109646107350186616229354644566227370623059131919597765958792879549783735079024550352725762126839296266888013317436472352485530709607142432684288497879271676851300046051862711019695495309400510352173289916739678486916665361060315149306300725289455939052993198149543185409892769430571076714701984904377004107564543481789159147073155229388443952173674735676877408134285153284733295375118972623472253701749210212346908703589385577932254771466006043404761607152442683168159096617849851403273730707626433235119095676168600610185626945384422300817808173087612602518853333488197183583361282799227333008143507872607518588829553905781982636749125594927493875261053614868836793871565114588604569955600938791050572811986117630080462006600630797474404005136877361899075459144722192493140833950973737762276806135606719596024146455083588540867319323719320695787441857292582079861044210803159379929849274151145821656555273240767460397155484017508340850816520300115316364608762375017615884170020192208099418738235022131515485883172024512374980185456871245686296116112148249240012915024834050623956665395392776422453359670633208417830584574007344523601572148989806595462185965750284798288777198236073171875447954579667220193305366823106549491974774118977070850682008480383054618728882724717618691677817642288540760172230947676616239336124445041911482652718718031789771927832196235210975044296728588873631153006309348310387981924108585334289606726528742830301151520586176207711027046084713954144289446676753835063415809241628620692702760498735266228798587572460961884016629212370784508944965505735089610178075896477979003841404964175534578401405437323448181789339984384400267873831340297060692541338355969008200260712316030485940653170411490957623914726559164094064887742356909353673016698077429610260541995753215378750112248315539138317354287665619695528805807079357187169832439933270933024349074937420464615711770887857118778058131741426312268387295063371998800907458713333320339009625823996951910833835473817830748669951917537663682449947871733894106758301625295557267347481289631678252058843671229856359081086330546145328923242565502141385453304402247364205749971504263505235077576110704393945993612587680805591420600432488928601426624154836743031940338244599547824465933735494766808865383637671072032331261066830295028076863981925381595764653794436349159440266916916799672807272284673822628127151870744365628285411756263680647872499725585866036334101770173271998099620184411672758186582674046894645190313607994628273144859380210845429517036760314882277879857051231822955997136030509337262249661612706873547499317518998219035771203095838044695392775625472645493009080036877644540771601372912532798110668952846761472915149169812248573091872350379684318675719441318119144593432282095910327148615794132441406460398470491814604395531551775318004146686475712971417114341256565408902576990439858562859636612877193113843864544150706867118402657928319366709831557062197912707171955733924329289857795647335572680278091483055319430337497201660897788628194611950478525578055419465002068085727143303707562633535658571864200596132775818412203743959909678267578862282920274472144494924038427730802450814438088221539659434770000456624631643560499202527024391448320510272479127355265695182508557678203213315707185238014311885094907533287177457418739867195147471948204779398043675026724868508947624421706864201552641894835115765798299334529987956472532235873795997925883549560727676414274209661366210003870501821526957717246149359954290486478981944675853119751438587238113597279936125382479153871539040718880741232600834925895432305322917105993935958728629561556658548292185862095181613586779748390706243142300798312404374270816574228524480195233990330933564953121055271858380386370144527852303154765440573838661735926736138857401956551625496381478940764310012039078661693032013941153790875494500059987151066372896651288525118233603520733624375168099458936215735671938300653317706018036325780544184044147568805318461377506211000689823411204030398812191103968015620778638970322153683844305708469480043390062136664526206521168566709361676709922338252599291759522462073895002230997630061560790973427944668087680321303145970757729533871762802856253865961010427820808208952842594470175135505923770062286115507338557191925045903789594299238274141062055791017433314876960207247035952156704342424020348065755167538566877122713276595621435446464600925312709114248125175833046562185734616288090438191324020074227669040561346368322151414891074612882229056260348448066588628001531848645467707461329199233088609515026967636925572767946160069142520198720144733230721712680317676730083197712931859094575388448156187636477484418769363269158506061634218823510526711663557281700284572045509101974156710725159450868083408513810962857850023654666646534576753854967379727828756253335754907266354513955069571459655961242528937174328612861009900120773694999187037762081092713053216695142372525528702874136120014836980416168927738827749563469353216873786957092616927746308980447966247800793235537237731557168725622792380938065858801254497378884982442569900258879387462828688839032844462179508142766380451374937727775342084133426346471506729195801350572757560536680508656020568887396246207762710259918665176818931514507976747215212493729695442954005137246435218143416291800750651840326369750593704259383484387749777237864143380334824246940389394334500552407351591741443385375421815464870599734391270006986649836748816489751505917133008302456243166928154880596051820693222545144931353503739833009697230910610006950490487383084316168243085529880835879218255005472795953654880129266871057237612278116244893674513318557642549114627727774983362679200339467327338994446238236935716822929658057509089756266066214431818379131624874349346103925031896752643786654806829731955752474747106404309113289147964588103716466351358132796475928259986588128252764399087789301045445082526375642216583806526725318546926041386179865010112347593745143794044447292119326390037478278461594315305936622514054072566921432649065245127159722372299305209916753823141922795962567524649945829290053343664217922727523684526714968065041525965756896534351739979635096051455165650662404318750696558586717085104004531665599542191272103158304451593489722580600835472560817661393189414367959839294398790088446864436881401535396362186049928969891956869950252791327149296225369562220205969500376038504254727063274446585696198087997612731279290950673676952119650272594782703694811298867704880032608015108711232928539498260982818470141506473849422498097346929129805808697535301953451963477944616536874503567137141169653163176346824447583239425486807330031384910892113511645618870044071358623440313191749344744604292085619617611697128708749019422037144114644397336084146383003136864470619882010474625259075589998323924489753264063963090504682552417393249064876263098431531088226985858411779603775899815946372409335242957877156734055971590401338844319893195187192932240685171128801909062300907495969606799302289824686007780079260663012682877893088650350380278435505819305020364723977376470262176996284070995365859585275513687686426450097383053934468906456854976469602930865140181311612448603580743592438092855321237413909692951991971368740553985810769053995324070926775466918253198974835372766307956749631023328336497671203345881422102884868801551320673371611632132122058988614932970294701486756164775345141228338787688622044456422534317604878204610499715631164805591038887275916030258192714830394235625089130120703294421377621581149899168034048111680489173083767534706599474151308038210043014899062056370514696581800062110519078706898621798394025869310107908801129497866691861825372069695635717443369745228856275253010023175244102624875997100628726000321490838391112071316043084534990546389892901687409710501485577419990320848713779500660057104349845397795876127708043201697369348577644208944011580475915247817665417690470211881102106215274732757474209266889905737134447494216899717507156339692212223370344167753089358107297301635315626668900688750822220119543390373862923613001688492661793126074391103101689910063304465953987162914069497823502457400637190893299003442779309812466215903861914923418822184465089944398756784454089177761598265504233898452804840198801711586031223363695956429259588252270064646422748261789112145834911261698369286478736291886431699255712252358013874106421244959842548118140535953840378509812835142333255978182033843512796717129294315771673034062385435413075777770332511121378008948911522865420824307513783903895849300383772610698316159935378826302198063636222919825285388363231165170213740630529462944445040313350359067424461098885059387860558923189418709228082192187666182002182607858984022812862272334652976524590505713910003731792738335494441652050693794844035229087226800961873250138145187387737077475917692112215624229599219278245944995535102543520755086934628113839966382409273023520422982391621190241934127565104407826224877471155381275337095987786499038860904127076222572016305781163359003605654077060670606993968363520701462794236372310416339139342960444071745799944701329672959056118122191384917043888039263493931344473069457506107733969325977753212950298114026266001112296766870368444277489776789535269895378088847005059075286544736252284059810422210443873361175025151360179530167279321268322139024729025830310301865173300855192252954896559386852814492680349896542813305590772884817996799258229080778459741166209546494132263254017697930962284759887018281396117829498973496391039634048767793416476404145761945224325512089381446230791289079987858138041346141162309851917615870787618233590289918953275977090397326967250242542548463943780687812122883952440808238909933393516101341094023835482303523067376267548697246271593088481674614866864455534525390702973339006815592300082594297290984715577318632355043921826762123715781963670563688882050546478413780477681550356213942695653115311050157602283985588231682883748010021516151406689195732165495036452802424719523908463216059352387804602393711245908107230864205056593485206291029902811004053926456178411728078625814899492595533276110747009786453524070310837555867571829734372476883223076193084890689433093967843873758492937678503695380065736035501945118073562851881025131141235747201975860027164053968538166467024375376071311180719856418720803657061899423631882378472023959590377503732508365727777589075301031917584439587602082102088044306211741954903950785772016844540657613758523596478684932117553044430599254345077663300992789244392010858131837733928319157180375344794756985028834009755536947903154192396142062455217694324307311982783565025285089781128828248442364088467593663095659029396812371706553860477163597196050344167730144864178679931944622456743032797503879271918680168087697154880797550387789805800766866984964955317809048434827858101571645041669096305816224631474453455091686273276607354423865488464263181548710799421869999035285640744533291146740696059774825824362548437928301059008200763193344832228239324437939319003164816062015420298961338087816765883831688100358510129812482533615666157571566114108713470795790639831968415092358911853331293593728659356794669541565811487008437929603408714249167256532521601205598697892645489722131744055313841834403167599494342875487631878357865260800693643024357147409600729030902941931101847547981321356589421275183321468842094971013546467021095686556189160789163681255065487368206481012312167242672745892603293151086176114365563810505056296246897746997764424166001323783134054929869785344866766392805987645718544749018046397023656463489885855190961979981033988928108882561388643929453720630795230034374288050480025760713723819529636125667805136413428938942026434856048267634214684944780869797925216385957783561867878942426950706933417542326817083034898962018036540558874808947085832639732481478886332085569552789412700447771822654819029541109170124565693676467561598418960472471691711780931345094406358457336980484815958892987576786011072004649666308419280987845014840274535557964445689819355404084540458326214626406015297332781690854179105967921469214406930969306750634922761453139981613783750075118425891567270458240442249004745916219978345583307229571690284801880935087444445604545332311118345331631894087432344005517935882874388001535633419759098507622924661851557862114647902689932111246747262825619737288630754298017347513781599612878176199351987064760340294443100411683818202134090109371828388097325647501892653857512495715169779261414148118610513316818712657074780591762030909958310490758946012208622760088905957417364791326734236454871776500778811470253833171520956984351649974574696364424029739456829505945392106207426780400879297872251384470294818823919472755150549531814377471642230727066239358728327505493509024028478667642322677068352757865773058312683321681467295920263917036890915752899093532657940777338972991388822194540201844428538999357696521728940533779937366273594866907204148402029519554509904962504201046847970654477361570458690759288758719783808177104290307241782129731861978829244394165709008795433912019169738601518813221012400372107724316329925141378190673933436078787136745758271790250484560124526566012399565681240613815873672359427915211955484191282299098278412594136737227467514229138084472514994937984073495549211924887523224246629749095252679151904536948237878875394710635189851108776558241399296357860447230229663352426836050345413333008762231414968540283987719884757783413696447386725538709618486481925603149930287084614643030151987921884626264386537150412281787248814284522659512321994615114509042102350596504723083177043032225488766425412051138708170117289654009343835251173646294902969521896693708120270194930750001554133589563277277607403446052861248972190409500201219985378450110358876381068496990550717014941016656481333982683763957856215623693464907799616371851254576172736564983533972175576131866541269092111453157313418752567183363366574930083966331942396464605702499404502161022117987390446258750686345581847945195224716849799974344535634342990211589429816487818771079527057785547892636758393195975564689448046939650177894292173226816113451802908675258215492081720595650831780813250908524026169249917969458412215730918145808918689171561798772385332282225369023799778205377811978348000566373786666646524730022393908868301498610821853535141760523897103462073097344163683735627068099113795255165744223079546878071923770650174769513289791828576375200487945207397395203471652068962734685347210404478236794779967969677619333873783321965759367998460022746961399365334526947597887036466024227119062895912152990200379498107230270855159250848587952629735198377770385444870798409755661638285553418614117836578229378096185801239069449634379309361536690674374791722823009206115269023923755938124682717763822458076596296115996875013303799077773988672086928109874030927646641888948441670713649708912877946251819744694093767557659552916691198110285359604503733327813357286191928146479998177523212664924483041850481003142927838981157127432180380885787387351371847181249523379984132222465556865020284089580699452561448401928036949541389701505384321364029301447131599897934083796394050795278299428074732821227256040841859431947563267598435211039289881613584890767864894648758351623456529896401503604407042412272227798342938322426071134329933874152577230880825108440785837102340939120011191641047083469927816237658092648823968344084453506190532014329337795701889885185680347010597978198546211168759545379055334084646402544557561488000804219695740272124631458433936403448704366715884362382789628933212833659373117757999859544414165965072047066609748750716975837246199791439285939938737033889587032900874160320163192854391402899769615155772855239789059131501533831361042704432348598503109389395292192999601449751415946246703093770071253106778469222704045044328169802555837530756314536923173654275676732543790936176149378775416740944443851413804928325298114401616377520561984703126628053115040278023530859821094787127879309246363951454682521141011911391696566254801179450934403764107181402961204548863680695641008156290591426081874516548156409790741906968062489758224474729144266407281345890513543675201933592786801869843547415281920768965179450635184626779482133980533923052875615249563241530554021116862752970762970881892626115020341060194751712781823917117895391180269731722720635945789733237461995164877044041980013479909413725080508991548250037853265155821452306747038908474081992629918685592317383218221852763319276803203871722140886088167084665381231037163051159307747461103718499727564570826427414854226050547684299326659742642643982189944156612212924738687941697271843745802614278916325277779406243286838407431337478023909067308110731210090503598216979887500945120512641061021823379589625042862364935159126911639747150112375605195890945583311860416058517754303560165539844911471563818612656271241158170241995312726371984454839220923885236951828011690227212502704774083680825597806538111326086092049814599098911441601398793526834752144215710519401157099292803295559498934633851479179923682787128467404213678755100645988288681135562731322528768215637397618639440777913424481132782146393740400426614863457697533053343451082433239754141310873236043398952571526949161655783067100678990086640362902398793883222493761478378499175177344859761268103001722775862387645627357003523089766878503432191306147763488090179663143738375079895580910435887290290898069390414818286309487962864219360439079774225366865065477495103360605941013669594854330321850129607170606102890800109113778091497654332234093810699059612118714915146188080465875737685901144183238199837410485624050957078748469329243846743859076872592494095115463983163733087304462865621749171014655967957144595748159217443430423791932155617676943647870413593480233299176481126587847110666281832139927343772237523898233117450968501289674397717457953233170307489733181026064408405973054577100702655765981082746870317093332386088347581007011805135103480631726780664835937301432754754369133582837539018895866370488325760824181086432949779550758794885194432316275161419297649437846333978542063756041943199959459920423076608249568200921585037905369573689482307718219589190375511157615016788832138884969981401525359639218996965909878867829333642799845200670278341786443695728203352723757021214301813365281725648561184656907541664907839295772279181219075074133217371115569915931658028536653908696009762085094511145294759770330234992759649132063716450322431220080045066581997274745995731383984933560676635169123914612511777863182489127509008875043574416227124300458795214371385297022212746130496328408941277164986172771575275877189346768356296722242178504471530321434948738896666188906382153836706074625666597623654139461948396736500907751916941609185893070034891403732123292862263693824580612823321156268814551911596650877167518110277405758788184441422331219275783652815742582723075465738614393847517392026480739758532233753294825359191664861799531146479132983832480725280376247896477270699677035507691909601149170122782639798309960267438694608692179555801885533542109761292654147844984643392626111068992299930457937226264610361628903053004810293562956222188633193772970872188227234420115559948854361827121693615348826668100599723749337216119806086465367110605714610458520508860045785850936284333993848336440236284324938547926474393523726732542912395591844934107903983409429188743043741362688513842858898627897034097002673043415359474852480879030035950533961613597839195285921680718222266067812863917822145898482138230221864122656975196073306862282288895926313838525735848962729434793169907308331792011920865974900350583833541848714788359777523655828220229252622487273017045978257751428571432277266095964544269747163168730863565040741002531308923000608623437931375255374345069322330992252028387990474679189773566962492936336214642568465549056669191714549827741512715983739627079434077081490267849081309993771032415231777596411086547248200056330011026574424854319801116039691545322837559328869426030056745878076446464854713266984917416574398105479224820443193187493568510617696411513874031318450567882805344436538655060607707031612191872752953055026428167439570585778710798725433135969369441656853639002011305729098589264423967459952571954637202917173624568236830168068800626345413970355443448087345503907097115369009862804701100228020907138431879847767971099508494856395384435069215278460811459552833547280567849400635708595109365885731193184614714844140750391129280248358549876165256884048854322933658811109903122854294652585960055568106189966180163104903003255239698116511942344047312951389360121998253638588268145912283399565276197709220545600746323926812866190567726483331647404674834101863181802387648163612062137968516422385803594926275054390813299263125811362027417597339946531215019588205273105621035013889287879934195862622826106660608384638021491058158152027367750068085535711368029708994697291179636860312649489529174591874019614362292448841187115379915298494317374713942029888078782446823455775478277788724764546059044208087983711008116615129176498658930721674846085810121112131373683286688482916133963462151019487971195543211391985460576963897034866479131080692260010447511474670260226335742825136034559244746328651964564029123406386942030641658551959617234033288446402976438835785965000757902929120870322480563392555795395173864918366390309322588696074654363468671096134159102485247293189530316945802899804870680054305752367122357844365139653647188540942272121778737616779050572434497159321508386210988004526503043289542556581418174643134004607386508542421439834885799683371027682936119997457376873469440987223422051184927999443846039409740250575639378702038666604495008043696769889674911219375580383087225609189216924731925310784452266717596025919619774731580820362189226877958452394180995712001944209110235813832353764243691640263302272202484534738249826490045802244743927054861947316391697151519729742533845806710915827680227803516011751491783044697153547808645324013471179528173864890250050948960694245149723132729396920271208382936277442351645388054357640466417331910152358540656449125346404969969371553110984849674520362620832427600299388083310906100274863804068933827576669746337077856745459711312023438530870249408339624578251095350270529038872379306124686167352227831509814451188802108420840974591440845598509567139572978620402747898075483383395548150910801947414833579866986706196231737512223665067118793048397857407620921569654247755444981509790718796009932493679954777676749922548568280792114729430669288858022817630040426063110216587789368786108019733962264206419470153063253273671634806981697390042637601915024656258534428470152179008169372904331762582933360744325415898505200861412622037536382936203625709067837506710835875830879446069929895352354634216925345878527585875812340247684042040787531094161457285002798632064031822860680164750202809341777887658479415043592223852332142153147905230720642006412564607248486541662784037564635358116238966007361918253336782515559067580457624306112907292744397412870322369675879365893798284814068072850161239196985800445288358744751028890163735818311109490220289126812908198971043851114108759615654770213436070310620469419492271824301289882344039102050590638242396490671719427949154842149186143489933322959887226301875693130533385464081517356335129360180863854974291317080622823950684494247927757572973384105729276730903566962186441530793923497023632833569281957064136043129468452122096313201290264306984733411687702263496868644556007436159457903013380175268507067767690131062919449185874763529796378330988202980858400854053544529567396478371615765509437052655309134902323224815947120526044876274881701252576924558306420620800469909745251818740481353063904673618794706544714315336864176691471708449128576342271199692888814004621181887431042916982265049951639442666501815740288619252497542695498915212146502168842749586634645791803912677709340089529288212050133385516300995765768059281674021412282925640192206541983398071974839312702510774730723619930723300988604263437300141282957429401557775861153502297272548358545555234837542724206287418296377922170084911542081385547612164798613945044356174919071806272857946951227678632514442326515567056371570054146324023403730945913006850274139501446085742315192534921879400195262842274414550217806445808467852844275134092192176507930785622984098506265259034483969058137375921555605320486336176505167452324823615135043529272928251947756740292636029014350943609093459244993056241477876910206536522263159236274723049373907585617158310332051464245658986913885562159564709875676165999613015801618719676506675959932570779578796477386300354912224070074298615860956748268626669551802862422116684890117656378645680555437150134883183581606436844038736543470834566423194681114758759519780067627502666635570531094305389266640256738978333764801139170241598120266690647823678271480397411614255623684985115653936710986253771555783168190375863455987105631229439291579847092013744532517631517061411764597906002376277640047421288076377426125680978812045132578213134910264831880284217851131677552369047382865898643370792092547159870920776330910585663446700201281390816640382870674894237438770034367353387958712494213534782449293235257406659929333272598023159653227791502728209393844806393947676793779886039956751513548604184164550935029995799438698575581707774117844514403212047686173424061564227323616977669122784177315077228914509080258062795418094159788574088225350617295158754945215482223959247108805986112326461031712310048594627766318483903198001485130273203881475840205609876902513564583513137882252827654452211064435541041792638936086886053992165416327182192674712901195375873009881868241285764621997787928884480132425821429608798908165355386773473320957510057823457220312425965481705033496756462252396191640810862880338063762162784358411922801919759698531105338047302985353251500633599081476452338656731121828001249892421737767647350024947487190669625499692004868930589809796908808460239610657858783178790457170929742456684559436521451580500622822038198449919420192323911407661837303813605248380802367837630289951764567367662095049926510715329953905899789080342547643967593825972384270886867775343520111273591087185483107450416563429799583254509907228716422323848173480162726357861522976384894233428074363049898513321784706487401988459394760790255652303845050465616694171606325401455330820808298875609014424603798180853341640382533496254469043204920861663581410744595076303669426839061124466550581714813981249127112840599607180984976390096448913084225069084065729354023219049999046508280803931443885080576874461647238779035750127652937858301261794200804869951131228408347281564027684156540972058445315601484676288606231336368624047486481273416945802877014051114104066062690346111107381698802194958062649220904907089924632480123150361243940610893876457367201220523191724353221366691090496128380874338620866925841115405222178524228371397301336286856606930945980949561573322784051288612402743085576158970317502035515519910090880962315233699500528841286395994765195996388156319276153299656981859231121646883826181091836557377716883875003916924041938019872789753399485387638259349117689399897107727920108388049528267997826110894337523393665212404512476923925452478094386122823171509055464325166472884445063366809021215250771860269327101824811922843525376031576760353133770943341412739886115961174558335963820289757711138735965597672790169575470686910446816675113389803090811530921491874948058100586244236437157519182751007241381210219949618129301016894021151381565857641377938826808155753610439123410445480370910200982184492011775296594511344410562250471111020840972196668235304222857838074384892143649255812707869341974964274718653601502329828372855909067283705963156213246522085028963219956120829104301383080068666486419168122925116117474350687073821435973150479960532713547806041814274512995807507826804234597530757895332733391407406192998679739395267579527411192500245056887773134565171785712652177431158584645252542781485734982530879678105527063377412758263027049887347263309496423167624870408433057908571764778737268796402358058091673190715651265262624158781342766190036038051304188350912730617643837438879699519395057802806530600618297048149437582826671309072214737315971273451869699535168945283137790600698217188523556923963964674748006893441373048704462555260770135283178134704072024157006290961937108571345443437544449050635647783875874886720263650136841437163929126111295333884706868187311754645815191135653627131801458265922723502305549023895979214889085214332601086758166634397112568738830225792715160022103191057124157490021036032420936705239536523266361548100342946708968569257766324810692499525278083774964876601862795132382714735964980087932792584699763187922437342665033884584721503383713590642529323787186409073003536307588662028828813637974218330516319530670211547836255989494692233177522878011163390678862392979372486140777362474792769013384025024547990645796907905633079059607743182226529873306778473424435736676530435426951035204587978461702474055367337515525736492442482756303423840618811079500739012934549973070934685268047141240127664047654575342828513969449977171409118049183648445510027099651994026797967911741406670574026298471837922538483496812706736030150579117965434114892508582061348848686462992536382701110656412584127964430593971136023457870660769645963933044857272815878836162226412964812024224258831790717776130305537066989875876502260335585904091457183936247832670457925130166155717698268615004020534567779537187404410893992966789379147159241942423935454392153827477906171607338625667697866661196707977734523276004494337677713681606906167699445945781009933562070464326683566507399092301932193807367528936321549641563865874689657964409292917085081780785328585610397564452374377984925237054680070023539809812112024245862622265962969449683408602547465939144432646851471671409879274676000253486258616768192528491304891896479662638506354694943959707086860714730883915366184794620275737332037252094691733861853366684349340563262235035216985563421868344144476020314287721568353133746359257248351877379638375052984465525983754721773916945955910980928158146990931524314306290665411369383596160233232292887675178034904331787050352372558489321421883076048702213075431104683274948625440756362082316989290613087789037951207638634793867803578790722741688532788967777633062590387987612968383089549189630735168995186424250936293735698925512451069813266843488776408061271027191022617595721809164190544376825989978327219371779487627238048209483115448390471708053231953584769422687326224032934907952020836358249060435059333918802164452894015166097838412915491238828054156880367276854191057052532336522953072388465947250564271056532868462656604407436740608297790390355551692546985943225943866697795447538099455896037167464289292229966492697584754699314643716887268747007014938813452450420829055602294724938648450259564336544773987886170498331142684910100893751571960578953795001926884571909595818517135843723755754020394365785658964686767285700840502417462325657756184971723990290905148305970206979252124030416631832556915433760155901462077289475093593251980772831957951650011014969412106923416978106859847856327928205615389168907638635587427999807410319510955463973793428135549469207039051490482217077365726105279521000654406587414684542532345207652445685357140404845979600980778273944548256223880098082259678261609435170624997512203360885570755504992407083140473882638940484556337746055333243246603257872974655086766093221279133765490256721274686631017313444829149330514889658478323679360335806926041742954447083423604429253323654990219418738911955622288694391467023116082189171846142441741479748516337866953149133031274030249801921105147958751643500322521619326036165121399986311603401177477312434407064319975819566056080379163023173343130112709455865185827427952014877507361953326588816945583421486597362626221015536074983674179445790386295851475407206180515792701463972509876499086563544550574421398307029654102538221424972848060901503425868349596157783906265495892014406211726188404575026365731123923824134391828021053990212706813539003328863054189718650407439963887247645103517142482368616066804492569432329817924955481553652856384757231075476395133386769607865877457582443973441392732743796114006494459932468490763674849631269723631150778583229515417357296666865453780155106129718751293809569895448140653484308556621995102373248116364002179097942391801287383257609272665270912784688223652819627369199943917715792767003784960505689925422831623315831192474233301179878555011041656013264139185708771145778650442330731884918074607830644039980847301041509210849974907451120497835373325358980169128702935295755338276675268931120471397213251131663719571906185425641048609589289616238153168652146022554776762730032221250294747271816171043372076863345240973998553355784105474149308498738849622947208071629072943630668660318757283181368391794523427966253041882439991619573553082223020827155009510377482733548806508003293397337943095680122207460712085062314696945581929232003319365755469583318695285208302848484873824208964000677605306266921643663972248348327970172552276496915589789184468693341212138287316255803486412151415773110379133953935339784540331708223035851337265226894594363731622545095377507507080181509407865280565756499353935117742030859907155970032062950496823919569834309047355274048771815070070429224084822070225454222050120098943284333298081132373660686000203711417459264548821941920626302147482648022028593452580278119476370735514967261181959914566001658443831197457468807216422138876911476189933715712219496603841945248417044647131044164019271275060271549860422348347728028707235499998574318140149695907534292884745479388751002711622654079437930625570634742359998161326276316694768366801313179079478676682027212301414017499995028073779878458305931056086049277523521560234020609303221833752234377377365441452867577340767795634759537518532724309732037494019088503429537300353997560541957257582065304044578629719089656962482776798945867510308886973109507915515863570641285214262506310140873198830612642659452323526805269928882732167192492891636610620831788571913628546515044792866995471517367833030836340106817416295998763923397012315378919014797411167018295944769867498537377155287598094842405026191148512407974587222692972737628566476403885670346612165233166161074541056594603344462431696506046349196544573663113824656669777567489137988164392416897458363412178019347480060739164319038167270332996709482316984132525514912101253502903862536769106548691906312949214916220979928037734640633594982931693789213278270743046554098380416310114681787165383082656223490225469412991767842010003405970319751207548838831285867532552811287398850370345051959881617280521905363883786516869590985828905098834374000890567090548440981414221270687988229243955315900216557546895466999060086930302863606626737303811828628375889804891874137578583377590734468928824792399695104455012634905403316898749231104926680521599062962207161000976140691281189643134419046839818535676866408000327971914079668659405575916454763761866118995086179707218766781734484918564495186414195046649045969627041904667369537575118858485083867078238640485762954031359727973825032684966066975959446836396034517345803789970212763710089170369803716023343228839686332220027248333960379422398651183623759863314920723243784898819791420014149915962477244147427920097485087772402579925909152680082807462247963747783425726135042035531672613954958931952108005269906069584359209311683896854090628409752573134133521467847380257114946834683142168863766769649252182521892447920013743664928774768468265754205416825257170995314660331806647276036538522263322812865465466390443624203807506417330192057794298856494800571769854966752242344670449917781207334192835385052078237209346621930602357506484976369360956810422663550650703510647457958600665703161922807673396863879827196671760830721971078338106124633544140104147375126916134225422310330627440920009769677244250387480188374899924855823218353904540401723795894647261218525173399275671269527018295373344385735156544996668275603086854897817871972571342036650892963630867754952641982855450639720521595680128649822791122851260177399643534699913120651013062635212615588100715565707994330426560352824483147479459920216552815861721163135264008711833991238493051899829881417821006338301672314969722164400349890600865325225417890429577989478319403435681624562233716585455651126298067662998257268509459717992162645809701907418453690740627794657154265242014943691071582899413850228411762634179350743865047244970539475236748552280937163683640670482979657088924220772061964848033242164704657111310309499951106374864453123045883358512780766761205104801529116863639972251622957132201957376354852237308134804941148461852915308731046267805875214048616872937443581945417983698722389975680167698468595006064626895906374337420082088964810107953523537723508862795592203505650663674146042515572607517892459998152945946411104423537590815771420069221162100482695577077577410807682164430677808605187292308766251799950907975060457547916847678958307057862482215384683396297462009547037374049990357543196098732520593497111292410324465533621038872406715961689247253277560055311183268827813312048012712676676513021883215693847500255800048972631428392015735148215141672279829834397696096056834805744727921319531943368766306204234556278880645187005708242480634666445148428708786005113755307287537894739540306801659206438113597517992499104947071953896353212867142279525792825037845259839929741712734414335271105162458924735846027108736489759998790528384509264614981950468987047898502356973387927315469168461647624168404207774215810150698892534472420829689394632861097461252795590974657555149626530631120224182604062136574739110042611515824213966450555885471991136717527025275483574656850402662796281088765242848994498730441539128437120733800357976345252279923586614068087648835505124177361942793001156109820611571413903506366508601359814898398239707487488367427881938183859539071991403599185900143875862739885152316643219886696605598528347111469763709332542111930347891627707514179447947256006603106251576818288020514646234962888293818158716288334109172767081253992970317190395552457816787260783037232936562642289407512439161861013311351557238823145372738523763937272946625992814395096957927147434855345276288299707725348575093853105822847366660569346268387215269557797269544972995452594820392648768774580405660120545900226361526469851968921177783375219052212888940041781463961151122135147507611729811854437966263269859270348494512047366248638904288344577301556579211470574232757502398353748791899851138319883938652005006295104852853253974186401377762917561180349171850758383120248880981637269775501762256454523565483825616882977754188459933583304025578401173101570363662492348495062957445670098819269271524066804554645873162599260029322517463264512001472458696687142668524048257324034496534528490818825127516489792486693741501436410687984284247746445431466137208869017381322012924151770273335878738435321781449017669795134912403872096111888112504969821726803931928172270409851970951026458325418776939465117175863652086291861058882540955133516082711698376486270599243872222938525370462057559490006364644197753355343487469330197085384915669962978737055986885528550867565552278571500956201320780119426293035262883212203028956468349625567633768939973625385463729492199134270557439472008549083170166526664177877787285759433310154856999344834683233807723126061194020014834105016850439496197711454688846036140461239115640095404585953318211604890878882946537518337308264963910633644047630512597774642234385032083893854674939134815360579769353635220169527314862874345641231168178130442403236891388238857725014749244941163361989253140650583506832620236807576696991224757177146294794814402502197363484789780981330173714993293797142944858710182158346771890043354866298254838957656271805642471975387364078246224000624914357417113907846473048830504890944355586433774923478721440787529455652667803996861851313341072444790546142382427618576665085003035677681046377242947595565392610177425687695509840261956699465058915790525527330184252965156886759656727937764793321966027672473882279041813345513418981535388776836035408735501238219915628538572817616215729956405001143628896907064709287360881634332884148992637716826095230038489841560029552651290771617908548271001439065606646471093781333196084545090275547597554933962645308535689212681297798309005244505808123831601090369859848661635992098309462165884529961271819726371062659933358632904887037953429690398231598308429343767542391351215453243992453253744537130027189808088893169563165733766251695996899927671988490876271672335784598686658669872184612578279134414710998056782139092288760866283551149642946626978988702399134151472976277376158834885857794483754733690089873786807986524353830985098426864976261063266067778350829214438932445803085491732073435791065664129793565864336241600727348539303802206698359252065523425164405307739755404007943884833253880327265390949423406641624333672501905319708453132651189269718429053214906419268978201840617302893780110874344487326009591305446340030980543725271591753028541557854534161952475971422802982948876345320319507458967530831155236639568688654724800876245154115079157205411877614208114479024826449496048378186728957258966028332158015564871720917738135969642106027526600668639758492443248791413349352876506599542837970219998675609949717772282296423339054399866648625163745595934014652404604129262734166510909638415244853468040942635625641125004337209746790352594297136011613080436523588784994494352547246240684395616271483152203960395279771098568365888403250232812880656966133074615851609847036871339469908978553827083133471279574588726799119349801776017466198972634434011933805319256126686831471832417539351745762969190086447994509717009768815007511184788141341771552654285843872749989247308314338604753007707433415034397829050722898652503243068626626771046668352469430377846164136206526368877896346950847528337065323465329015313760139459614115557924826031939228020774611620320495676182548281004025034708261841137620019530902454753298111292723117759585627283367066937533209096786505269245954341984794993499475208177592087464431100212429984524642896549185417991358127107112338193600807737179302998377313123783643038751525064509433338443729997724896913002242022736047371532839102787559672261064598449980160443927455395510355394851102516877800642667273685483352976741801570340451640212633327107916150212400354131635957380157206115873264933848672401270017408348420493273851820830027091182900891354893661365543875985685650613927716048182910753770591759357887512797204641840732123551882629937652386682634586421591765390833813322391903801593849431937050424686372345699664196969228781074070529132720492707708746926345979151651670805013043977016950550698216608831306512749573497653919808258826435722250113375731245694029597828655526611904883169642307866029915688148831413134370478954467110894302759955025772084809430984232481050401752597739603514118945765732019106680150006051063978902571036477960719523182413811612987766522488944124269340869085394156463846741723508774797225661333997773170186111134527751888227867731193794795001501952181358192565217038815913337804261976776239142656180723694271797206665140703095366834927896199523873609730219915470037611023019760421353439540818883383783596545826824846305296880149302648111906817912836047183237759734645650759152835956230589266435998177633842660741885727053111268340928065184310275093024953514868051781347155153845854177425111514396796282181984070683066630417950637129913149548661478886605542962340811826954385548345000763339478539532352736478824458161230804081724316906738546922419119271091501034666588225604318762235688301468210219000983674625161867001471124916445924680896797451659525930735667471013750473906080588050393034095707528549027186363893070015745007799553877936374987493700081090026790571856597065218879195792883549523112799067764736405407496440988400376350398061250060856179905841901706937125376600267180963392093752355633344790927354386275430459124805465835363106177861959730538873936764637092033441811170516635897004186343666776579135684794647316673623996552279953909186683359511893939396673868969721999814111067676590569072612217125455857126392235077160777226075819836718820171008567472468234719114354158733985366402916052406828788501379418259792271227091185720515716755080214375061773414875217077087833346612965672806082878938666734016910984913918341391132062677161642212261741776096557787474426664650026280177266772569424477019170968157108672853086116954202238083089383434925932256886479780715535570490009638839625552420889927149617964606487613782617288417671072239284550214868123628194451582145710646158270740659537383427944562832345513863572313757236939304947447802669109457814343196307372149938209627522567155495891257824951173755676155993797171158632777122137742036936748979278899535657765493669025524156514657638217928027939159258962487145249851885942874531686630374246595773092578224825025145571035192722744493615481518406697630554981500255676881551291277858380902426350754563638137549512193397133480569456510270602863744685342741890458420482025984760449552912658645940834310730180129186890312971225593581481397911796381031874802930741624587701543073037693760187327380218878651838353864487734497155287808611305940147629739793876967476513001564721659710412981462810692431965312707890657448842574160044787482845176648391886857964847142107159936814879845952622408259341943822812234065147030280093458213345059566072348227201056481546543533600424273072923599206998436230055285618559044324200375637724540786466981489324256796977048705865957583367389062464401588644569661880413898171588185249911724821704478791381159176758170280148952109404598104080471509231501334838618146747744955551931107291799344502594174521700062069748247135675468220133357682591006615986830261371712005376225212386292959601238678072084569272323027213465217239335800631993715419391527052389884450855098065370893381933189451429246200332562931316698931198429548352462818710669085555064430647536919980100964355187481483023771993688644995396319483512811118778904787158613611518281324033382977490089688826100264185123586408248188156514857543077686926397283187361491167717418801152440835997842296294272286867240106228575440159164407454278859323644296094053316292843262034841494639011552944784139420293273473432513566863338609729381543270565386927708164988382458915969451846694422772239550094617733596139851171688287815885739256267400158163319471915357679562673888324731684163550116896079925860758098308896610407400000566666151847836553310242191682752925335661312454095759510409022381445300416383650838470776625826261998103488236894552084937749606413372282048301854119292997964364586853162569367772665372816733733781600741881653434793202164711268569626131982851010714070224030517810071034840050410256379154959876667253301778135529681782416300382731662295700984228074633791968999626803910526307914837181781711095640881872897452794126827107196242012713320174614776645140597442972400866074350928035451138796550881144141559934931872234939583937704462766200103776177777601611608622416714327734060154723417189792252225608059677628061459162243732171408709067930892708954295762655881987417615419413934261543251175142972082423211646131261449069480189013237310728382053910939228864169327741929736898019034592411058210504543205247200079307671938342703130395538155206216595834285164447724895524394593499107545606552636510299320131928273283616389361968053765698844581861022327103265408681158145296316619381146323868566017858074170262383098862951006427207298369134177071501221875146862368197464310046362222710448786102262840421641303107704545867111238437062720982070745645110843697604247275351446820783955296755906748118059128330465718169755350909275249216900490079193743755796915445531895150456489375367325378037128921066221909829242018991779512347963641725499902696722299478572784365477564000934372966943286116337259119473327918644940207375195827493208254519725463537313416645022787659959248486988754084536526048204635072653037123619403488933263158760241504569778289274486033239111354604348026391543885053293459123933836588779113009382114014769508150610644017690374858376425119483969055189284855728274899888077760404705412551997875958944566228076929458123324965990759428811208381386152609845146767517004244770072378295707607636454986454887571871523032604546899467137696842822405958340043191265868831694322259457367300011474593408644795124948132046842065811791988562863558695088333610127757482845940790408008474546409396802550879464081974207673705932943749103160196489820449801494406126484253122938254012997606672157015573595731310740602919250197301916493687478427562300602463614246464593417586676311440652941371627680259496988263790977462372508793490246187996739615976882528656114065118913071487481425130674338495170934436076571475416407480866947601043498274668737960540782984938810921717377164850644629691628532000016439629099193855610993799781445642619079283110194663556086943288650362295499764913277592478435442473131495443786218714954962759415127616528503151347515393628278316287812120255373290412729520708058602488193904911397250277598539416461111667789709924676208748223884606641399439976554140752996578101362434767732749783814141504697458427128253334068065146945034601613256847456750660050484879628788914139929053852078857494717507634701794904233897292661076159364437600098013628575766324482514947911693872974347372318000068935048213187962127803547361384679652817635851470752531325821516370039177743907238549113211097659043006979483276152603764060835589325378096090514229856257222689581671191127454988949598009310808035467747358445942569240675953817980769933539630218454775365942174374784539076760709052044286873616520191537453203476628358993406147851719840941035294878280622639412316134861883408518568023998718331337236798272181177950344331774295998064025318648218531516888276526956856842515403514962268656177247831201695209798139927128622108644688762832085315349115147946977485166792859959252838891690315797476805144064003578072374943534832914113009039140553470295076175513213530573501937039898279009801108450311177034332508052158078018948509055926624391307654861832076870736117830517322983381366251783101417187128462009501590348617420247635143785153674231659465459816030618785959804111242089389493200258437151113524455924300595984229531058000415787138748885037466596668450001490428313515970155364068847806798260849865030744702463227959318627557356700753649544853605923721489548029886690295652219626348106074113842634471455256709969893747017079055881659359776334585475772396647953199374563659424063610568975840215227423510967259798658231549895801229438052573000103587179218849918195487903968212192880406140055539671057245385562238675635285402467361516237757535610433303163139268878284989890345442764626373528300014761428017847934887278758908031707437010898944208675896908961652805528693786460692435285099619715846185951511252172340490200675361137614700407757254466256682614242238561348774465666160576425145167920319399240977270832247647148682106945415667438173069995047597428718330451778569836432632200352864002289611855254998220291641506297820854909182694646147140430274177822118862852586261497172142250932643070243699598429873612856554322239295353304053085264075675857046294085582451722202086945651802971257513498487735411324044211328396071877332158553559441131608062021321041314663101865109797993271349222109291818781903646433651282894422909274243556715439276512602682897903344600230816550388516499016116888974845957386191674791799004205988858071264370955381629255890534582746915822316272364034882963275631698064813069842466893712949093223413614635626910921042094689716707067180213382915037878167102051682902105131011626039560381811789187942815399910621575845363480713310268861452245615211234837256082983886906977988088397961079246782938610655892618519458482427103963650887905576437145390857886168359256110637770116056579010729234673585153399599919439518523602914100895588433423786702873405900169029261041081121632971140874689303745733751037294539593126875251591826728095299737580449520075421568631722042890557750368281784853705966839753102034822265034985813666536259616006461095664143378207796542643587803629673522467827419115654130426350946569183276337539956698439779617516736543213064575349877601077590681894935944554390829502886430817546083947520933793687746723020991722383770862710817302485540090117742210731919962538321280725303079998971670092449087356807507604001874464371627206224240847479846194047603479779081555622538101207478201842478113250349769340033670970718673584319529133588690179910406010660508495784885845446132738494670715291446519565813960528174673142113384824115539785234778596636166597828368799344257820558404850585876182223843284518088167825001551346802699880770611996471138373520458653026624455873168083755214491264744891203704260854937415496643603345348923953662702081495341164645849733046819190755110178813470819883388847097951987784931949400930173156270888924575251743039730621729827658353490065047377802430737611730731864754069306519944096865320172775096022996808078266828175826588965779339185267558928827463451140663674599185073262687334861072475055966736673494462096119798501857327284390434261772350923284185103218076776330588479639914857066943351865222866912865686539878385983646874017391558148902477875228874011771305866289874336349057891539984923714714125993711635783975962158810413589702298643617621725115213154000849081486328231202066059442459132556362899149382956593631604359773513450075216130041478729648853153648465972065673062879169035074580783716594671398955897736580825709575170955156345882662550365923005369880281088307650505716349655760545906115103539829182082213633703813292211018139627984959135356866966875504161915270423573607683165094465074000673979305992976410228920711808018034659380177304167247722522215878232836171451273325958248058484270584056026247787601624810129345340334263833548341075499599461644400376744133731071253908898066914492497377136137538848979116560598404255687584863165935625980742663674783534735411019834432342853556844919012842339464344529815484059273405301469906597272968794236518872592427935399776394384666287384597647210084515905743944697414275095291238438601498584746004625137513142810103724787557373067802274870517116877293525688759999246463599523734304949633748798191323872875396240089900992884711072560868322145591585894005773496238850410579267916536750432576274419268214218347188386819531943002288082430661917936947816346778860805390901439733185759908683862024967745293223251903541427370787984793386873026189309203163035049102788129736339333819433430102578646864441384872862365415682064954683480902347433971340042685127913755138892366710620149434409036840681498618020520030316540048085007298362152139422725548033240520102659815181480119324552133343236289177428525036284663443999792958452107988309008924218047254967613188945563811701330545807256325200436442292488081949624473208618009694790293982200766246356148600875901884169462345810037616307711499401823365613004665933925546981189443733788964852759017877829050058602509324405065343236740355238483329171528360422060789774389288464849375166252758437394986924488008950520052630373938506568307587122023624837411527070674281663194609998461074598275815807194425125368719864300630567577336219718072711112326792512735445316707383644352502375921814080233081153743432558737389965070884577641969434634651167092437954882831632550774322485004280415626146706697552179739263949087650625622633290808730147527677620176255732697462419819887939225949940850986814309888613287486657591706707976129908097969196831526288855262070611745034459250209727389495507531183548364570919441329666604071868339956124457967779036700320881433878669805957030943720378823502226048122994266819518544202425204576446369833435272540753999612842151876547005288805457609479453314454266806550928889173806484790542528740486285092840077167970495558243056636219962419025927642289298127330779791322552288116455852156840682854583410479068676110443516298186332636939429701001821561375140545368295460599474665653981997897332833673343819202220474234705294954648647684493579185334326986770409463563174523438095902736707839112351024675577382038714253060634106475794090121218497658559164371079923504670526042186425201985402519225141921457993401139587812498834498673178892281512970231082045515783090471946313583913121803264364220487469809136981052401054183182114884640465968843807539448241354563476918729374206520806596513043795369802493984472190822086855242180149100753777760835643526507852231593619154111639305566788579957467630615708099265672365079977492894201788145448461819110704047228041475938137376885670787284690416389964669798434828894733740717656383897674967425009600568964647015214277045473687416925889121539328012030885576151541777718230535983574308089773892859490192799270901835276054197114113164410139352534358370037207396345342302440646736368886777683311567969996268364172694633887840982607713598159795194843464351151595567708276303025163977221751846061658349151823457459703935483485447570589050893950041517069758871536090358326919988491680009283892303621026088182766427184944082464981020404669537441018232517905033214359389866490990620010455837023761388782863853304082188563664797390418073029070808008825551166749753505545700589825806719502667263690417061416980468812402724905492942557657106750980869685752736996322549411674056384502024056888684086804854603641304859495402078835005014404569635420804103842005181623538143243902038256338396032485434524344766686424052969372180051290948873204315767857502402688598777504436680032958560609264417691209513227469934262524521170662923349788098915061622257450505707356766183965391155670011200324158105441849269237497893986132129434131041927631874740616661623392419641047128332586372867249824764494157305016101741927763127935206093854597718384222101759500699403577181329125086640639171165076219188064753235126029894373763875936378824651812404020471165919607694724229126596544609720717382336504486194287828569416706701127659274417608477647887520517494829102222032770457598191365909254066024327121822627038256337903958746083413339249258259679043252775387644838904120048007011583754440025929167746356730900342041153978030120056551858202833941849705563070493895136858725892714885122273611478845003838981163966424311281718340934819923424143685169728866760163185425840143699614742077900526189808799184403839208104906329192014776342874827059217404829446292963971308255522950709354321295277546121892762357109208894157791836132132869956029747382099281100824117991129429280953399203676424972910927079484750397886815310586263953391404850515281472667120651208150855438824574327938918218455525043144601383187790741069107516915712142654698397931066667848980913955597814422744371211126447520758717609490814178294465439450964904985424345559245930137544877633064788689785566470005810254193819752536979361639383990586411524942469819104026487136064443343411219334912791553591811979216601300082402620990761646191949928501533398175096949754796958527592827663023091956829201982392431240481082547492848996658982389118427243725123362898771904991929821854834849245054644806379322661299763685283235588310039059616942449031691721360418019328960940396057948011583979454269528771555601411327897582355658393944885429344788727136129142799372236385933906217965584742716103099768424384619602620390620034629107390344341602001386606199943203240981399609131055303821058212549343201167247147122642204370668301885570908986748526620709910232151322168436580572628316019691366287233883616536158895253539848844876272941904486232059578922397693078200298369466586192648168369237316628687180901537409653975240638540007441742306957833492346092986277136597412276786120954068649388595170274016720932852351388056845664166711470088504491205916557560822816745268061461237782165195709252051928738923461675958113111100258311692783472244125254001789702872986402823312530650602084774275767379083301330292163743019735162515543381703928073834097135253005396190043371095997889687075607163492715232046151098519128028555917213314155688033974492062942861026231600417818812403943960156778545260460015564096963712824236337342046107081246992752421396215759035376841849677413918582441565588699824870658217200472878263687201417341777816233733041058809964224278075700486506454008977922678314293638279000766360048069088076781958983280656543551503224756736761508973402144168104074454290453663420832187324113630740983601084980697291945631532891358086852133078944692543039048468305851327970647066920614129015966137850928497508915671635662091468787598631051392891273924338064906022459152812744938880960268140948455288547619601749923168236962281313489582595608422865081068974244417949296473980242641804762963184131811425008163116804104687442111877521459763535642288922299913498004121094428467657088257494117559097636504612833344904515302988944270098375722743125066175861142435180795482797192044086306682839617150268791110951851114927132696922879399782505048791681571194226792574406869844577213410510410929362223774806270105597185933791852775716615479004088172098716601426742578897193464974799886399662803351631209296177628108924070364979810618232000267872293821968502076256508368962448009309125409141536201260088332139716789994849009018314318578855174802123133317432049604542630023037755367559143672481770393177388209387722428663884826758846297871226371757585820082298588842903167190565109313240963314577785013777309616083564444635873193944556233744590854559010004658806208789541044835845742348211218995888286891889556350491716413114377579215669849081780077287921511565575860210527962265094207804667704726200727956928710699002764978694036815490040407229379369107396364725716529963200254705421998725003131822927023991011774778610841818514554724351858824388654254099882305049108795173865406858536279629988823585472686925076786698324220238999378463889612907091059160053596701786204974039755147912433706546753275419004989205810451283364300943798688519839354562659789316315157206793138976802997055868709106728095127647675299484821694434880621470383769471628872438033822516804160542829841749532096788050792119152599942195968715632557983014316042433528277444713406261763542258943716492181061190120098906337102057523759423427636941569594179993085199310201951400356665175208055906175530471491092120417481012295416117927346354787171897377038035211452962567565814368744329988075816286498112712820042702665300250670375076686917885402545639002606313046146703999901744426444266469167042798219754594613189493584771576818851908102330562812397180881947026364030038557748880340340689958032746226152933549981605226945323036664948602494750862612703232171175879476181282213101517153385413976896780003154639669200449871763081358786346776406415629530187189453147982226496592457900996315492821444689236862620352096720200037702403199178522655788297909658078823445883945573413637571349594218903730534238360845621766666677029475601375319048465194118747002111606445345257069313700079043474365954890859681379881775028533558124947835778681812022748175823889181791338767189199689984747845466140977706151351927514249749434985177002025136802426769943260715581711697039083713045046901484833572554202193451430933160761418046968299466455872731285777765448948711441644609150449002609436973672393723716289828764803421314827312035737641581283394183328215405869315337421393622733743178133445604799790305018319530110608852112638725037393834823185419212310041511408280470030406116209166752586924661767977588386418897245291323873696613796084344791369014312952852656063324378749815019398807850700534446219493020389236148316265253831821136886334438250410887730966014738772599458017918780956762465595308546995441579629084210251970464410809946659144175785373833394231656259878376509479861337885788589055795532074293489051873917425820008421796898757661223902280979734827032131130272441729765466068412327322768408066384554692516492060614404083353297600128859543543453053491164011723233376433285303286847245995702823535608884275121102079462893963458832551191033387817878189610402313933716554926237271948449695837927119443036349285681722468659088572953230821078837347128757300495606655193814174227585462456724777071847749262961585149924279084674583450520931855229276680084806894315135824915581994272748844496888103575142284977166010738067558109145191867296493900803079449270314514923594042004417359622768743077717348067975598473412532643845103994701358210204009401924827168035613723932060656138893208986263277954730419108200163686835570455767720998989266523815415584457298961811970751252296697384063032419941607979588219671096578618728780042906962258523593236928344352124208816837682218608796206559097847498204451904712484875606295799189389552847363567454221255827139850151464182549953669064321380221921998774985684020721914396992024055287778899675206229087677225714290352993624149932388231971742704114385469950541009437683665198327271228946575099025328177955585144400943363934381334638530779384708185479489556703614852958096443701791867083280089144258450273275215210255387983427710290929514801595440530990821987408139165463314081603859317443416063227867763696066124417315403608147918956957833592269694028473817036745120271573345505301650564599095115654086580171054236675492271060230856230290523485261729097349358221771791917745405609637421261326981781448736872517491195854687612906626536624304828486133443888059610313732985663115739527572789065303214517629966527052865156553334715170223717743103351781469901215872816205148161953891109135996720295589120151314120081510571049096550038977866676817146440917411426916600157722861541735192555386075100319594293171601883796343145692661787469326256750135785377022179506636090274766619158741054194308049756997469528929101228488193767871708489849190578189865333900180916194143590105051920300636404989849283937027348959165760307908140952867205543607439762211131976938791468678745724090615507434347073166464076088117717681159510233840801169253944546643030344823370996244532113847971977769952425986751742756052947562896402610305582512896112956176892894400481424176985218976312158162286043126328198501200644237226466544362819620680548050553618485344660538830999637647245833403079082266504899170956526928562324661857312000108267834268294626876930336565422407677334435269144020319303740950326076047521864808069783710563227049309004870744447662087560263408864500049994750600654860072653834514244001231935061153982880771838045736589747053092577155805461728946649754939254760500059530641104221921011279087073976874394326495950196352317064100646287122890266290846385455215012160495781209085067501412610836744044667595430152253127050835985471778431803615997294202913799038810899710759429914746595581735862959329250242643678029457522649417537759125865401210280948903717879447993843717681890184556403687406778418531046975784638404833294659501668364906491960234149163457153322249312704344917240113350423746414138132485376533741261647269166947401320813813247918774965889252688983582105903775144257899119226596324987590321703775873754229931189053305128998826730577769331002530916080551878659621249381425944750572331317608054769820934216080765937460225270277815028234635426112956488407578406325723145843964994132186891296022852086051557770703702409162910060402817283685571189062618241889374092167608134250819241860446259590106706115046912818602539316813669664403567199762023883750078154625240619845496412390179402112761234059600932924159744003671499823109796177625596764064190556707799730077483658158487398358766626031206012342851406997056297148400146711778777949826430417392580509839726652731024425536777506380586821456806547502831099213459511966699125023704196217336825895167404507024105015240011413419300588869423818533102190271452858553978230019274010943914268055692586725237833738287328394433619628535922152290425253011095203888509426083732085090959059121011245847219555266391469606002171678167906857536522574509681830768972439084785978890150755268465126120947090753298379461022818269038050415671442852615623379122813472428728648538324660652724019564222145339021373539817405605503220554868004024148281519912148842468351402790607017235438764464343449531163120286535208286931925248696319142562011805406900524238071460747438399494059074135802700445264130613454291130393121899154069722393756339246863325415652505534689151541987135104838417972532789107300259467644264717020503866212161617705206363367206096733594845883448581976720254384203544719473053135537135850795548124707457718579227615646736251960570927829798517302169633807596584873357084834660627458969380765709443764609345947021606762792027940098622103085541359572196791377667614095937770012300160436078916253066018020159878531515500618824162085097377619953057738932318457651017790506317535713983026589694594431938944725369573405555360214668120568589533143393670020058865605887489007611281361162503343883816650468096178738777111837718238518406206384764499333420593542148874354994565350999949941754982725204881484326102235052054058883764440344577517123507921418306128162192019363280110556893720264832425618158841847906141399284081493824949466140905642856669531187764235713029340899402001385431758169077815722595887591983510314791447697957777461461762803923395734256660300222828878037749832229529487681220098510886126653881368945435971769609140791948521641299677672344929212311680184482014629942864360157578187933656964286667512629772692373038513044340596623778995163519989341763332510097755665228551591519917095577268767558141538067000093659252236977371360864041022159396246755476637081338191070810866325143669620537857309773776393972932504467631861682736843117834806015629704379318208901355833497715993966825621056951747053943601480682306573549602696172261159954347978593814908484103910393837189107914284335978037403413883320133941646025378776878737965604896399653885930550792772809865057349346478347205418751198394318273682266713949854034127272110938077895036697444830766916153594127765141155783566678474950442905091151515613125794454130990992455320541218693047931633462959022844926343054915468136952227512626132307702360809917706803356312998454593240235446572186412678926102433033883290780584492104912670444388721331272033962977937541769867739909626864321344169130926433665037403601301101551461854526289808404373477264923386001230792491660663609165621615575339742280884256052746475241398640067042304666615836384904833853623130956520799359535748146281588648527960038659909607209112306829926130422812870282300723368930166826151034054159322778893712375894491958433367951432562188732341462421936403268382311265528123055838065458023875590399222187436707951244293030909142194751894066674510759957519874714697970828508323003460019129207854739959873128981477718006630450788757217635420359610866473627045672756429773781616966609927440122521901144003088100599527081274777876178684996040325324395230728470987947210508811625365734136094374579552059247022603902630882802370546832150184716539242240201377872922151970966569561229667078527457363424118730622079343783395306344844648636807974249162240368018233442460297177414150856048180981644648951753694358428350198533321549537584126299291607421505372785050070499518301624075382560319151576516416988047211731857470571322785878590925385333073990771159744667641912670569135217485569224424886931394111875870359419763880991194138385727297937668880539318815984801567221333305573385879068228981228731065235132994609498550821616569196085277690383087321412954148845548236427947071585658845132189835665473510976721685549121608531267728385120057633308421292046064953568318806880371362708063189880923784158323228021687640928788782884229992026470699977650052687255080285009800289828759043993230464826936721898997400416902211844180375699665028073333995942765472518462612686165519258978131723504850315810627733667412977668335328706738006324730556619539627726479131870324794722505764802151830735928827856354185156790582224953978630590636100646633709881940697649859848621202718345598566266642774438891089187550245576466637835260758243367893221228186504482633109194178620160267407095308168668423577023721626550370385456021933859497475433939377893449929934653944353274174267351066787975773244387084290224699928473158342652582298326002384847609766314812918526386023948419771730060859531667489817297144695358765785824180464663411397499667546974625867701461683162661691967083351210516408356929993318024931382195164873098149705724094560300197865064560748288781776610480141814010998888343900118913320528930019243251919736608658463466859856830925571059408234474124747930174057237669152356876697364821250497284553861424284769705927960486492353102825461942963769554728039388375119581705060130465992270504036403683283788541365400577929143697647673701877129254585573929947390104887906075778843959705081391748904635074451959020464897985136279536169753511673826725576110823839371320203343561161330001205109133847912983559922233899904248250383636917538493457496762397750353485742403245753350014244874325293319390864567603181879287803482749706614000683332700357765577712298883181110331735752579112290482384215375072364494592799984481377034071240982818272755400892383865937864097839960226878387437354476799111465989581671359429498982417609884944524981646011002132893852772395880645428871183449759361427909076956807564121556825160973330694043115134333548895314353009174816901986038139957732079845877959249048155133889648824850022776759746230643799682341675978389715713998332312954007415913348347680504373494320453947058481582698639609835523182238301603886480030497923268695761847761131409061654008556082585747160285322978744958110280982939261190988219858436201596139518523574522105672736935534238276557737102370611727639882294607159902366844836802803194241810646420379253517148347395060492424243770157727330020460549541269312277807699023408697276568343236420598700930718017011356480398789300030769562261969143091441140464229065074458546974399634472046976180402885016113348655719488433728028448352285444583399817710751130116172159590181654743158868441928823135119452302624119094019304344706796040182575868164995801274797208691318869082667876886962582111683557658249732790546485640704005107764908844603753905373118765651725076638869198754463408792074402815977977232118613120928762163075755137139347936863940650107156601942058887388673165838831437838292030612703836940596310445012452959921565329290035194161655987942951883734457853858850682062188987757054848222257108244095613889177314596001270588586339848241368219838914460450173926148705875771777827288231909484507750452762425251039258915689338658563990315343239442220773943180162490559123688282036025362731685191339655429311465987225273860620219918487304984677725372022597810971828224199888178471261341794140545218583607659955676922368888259442239369064003881415037340171108890042930588630985048603283605579235800108678874682355789548967146860843580626789186838179830532208618300626836770152517515621363071079429906158173839757163277657374266901134014480140248489103018962511965728187776020037859394833599424006559304856159210311465247688114782511949054251518682353198187190708152321075443234792538375868768328317160963984188178534297358260974482263777384144850067145617444051799418668525022494558710014578634506119217214455623531749007635856828732903280177175445809285069322673056228694721779743874639197481308097386584064403312013292818480850751789523863664504658834524531111237252631250420663643448763191372323128287742969183720668181222408113869053860060211087448653985702459999949201759505481453627728032057427833054431217730331448484340632560348747824318021984080961157948327408271296019460094484456282199762863887439547917860425190253430728082250489665510920250477380915991626905749316860230799327931941056104704959755886332998087366909127872139359977065915744231126786169354940225624212568656908759500981592696574906681809389620116973500958923677590219142465584268799208824010497967022882719725050653231570950510651542428263869698097480532140091442581381701595079468144055671376985688170027408001695641709322596965476651023412727669053306985892073781000983118274185850853151035113828307611297003236095641194495131095443631899366788569336866176965480570966926781687415364916683346328316975632150709803003034352720189087522666802078903050285447377984945350590680379794383394622219141766510422833206179558737301387609921952917070816678454435997986069041193617378371085000036068297801468410211569673091138061613624295626929890631290978234680526519777797835706512295356897168945327506593379721038943863652185822770279784707169013416047363720367024377517322411415291086707902306325781692030739351570350292302503245306328253837586737677782035285065727080944045911652702248269505483525193851676243841278217483656257207400122502149574973604039460109043965704506397210686991127105363388185961623841814835894680913202755883172956927943823979594937490772833844841183992056008476325975094381848417102516081936208910578697887656517112043143676453420199813870218785340486686994369783156562626062643330126852482868847720344635707844186991248581820639306865135484332090765251412924400813511644430637497354145868973679827044385485774422651556953105097089768847164432142433208169078045210200889587741922265417127592392747845656063129037994320529271576790909652002837080248908926272884876950478039532012496109367616869668276767435808315986075152899649104552017137187798208247284713470454320692128480001458519801032168068154176200085397052563839042459079520755747272019376042468476419950910010082209489674351638231142228163059041642580926285563677957228358778637903567852712391817771683757853258716993829462013270804459631836808175444068720651374686040326264251078158915668769351703807612748891720852663451927536721937462755038789279559882067286719680620534976458968679972922369626521181814767532041541408850123104144241708910805561070263330797085589691171510141957868574409086186433064097639922357245712919199965610422866696647961339472089039216045528224149934763402882238942197487064321144403596110865977720358837216057069591199542057089155319736747942081302727451185523595774535270048349400421202905856148457060538079476593438154127590191823909500609780758633961926466627710077358693406092028807651771520396797004872515436057101747485407058279698997581480218484139754479831463016204699510543666590723122913732299827503534380314260622920974479342578689069870492540428151002707064174512815385573010539226154921611307000026401605182900612824822563485658790088777881004987612368400692044825959159198438240492217493673175259068640776571577901233578038772631793599323505462177939432830621963243522218315693471932771179991018812397222396165066799039457762070031310718018098678789449470837280004388057265392740155361215703694042453715198116669684638888022805933215546954951248708399933212665955909612567043746876077389425549928511920414581510215709851694501355137628435331338026232503187670070703753172915422932965527804765512557137864148660582648929036189501748076506978628702924972615701026594073598871919714498806792116009331988822537681289243743088576527760606890274075664965921851614841371209802481376160533023503485855243568556684791674097718111216909349206247811541305223826024639153055057805792024434857544275957217619511764670366668953399268931215548545958563786131385759181973936081535117759724084267374632561788283821189295228830159535389413982193264791314213595009046912112032320901043311095163804822775239254954494089284234986408781704297337840993841647661011190048688999858158668906038455672460515045946476174065784001778072343294103573824249944933510784355919791215521217751944819762043119042438988031586715475454085946950611660881027156920699112778771838617754436426549690695287485471339980781600101751226163540848282824830826893664200733432580718747590353978212478264036016360966220638133339683102830915258353405697685365721478896475106655022211106978040900634410162223089312137559177191211227400451633296365592198164006022679429710526762729956623207637947373300052030394679993716635226896560365214572786895721064137728373935680796820468468788371191243113167294614900387614852825688275620040358249975642562781929132010119437436752129594127227112266551025999645908616604132169912113395667522844594443115167032536404139569658858943066356820559134325453814704384159071824776249031555765553180280282839968892081093334556749224075507638860220115894081709892612633398382415872730012519935738390041011495662555836472187856372993277717762389005924434687420267455261381513042054473678146639335353220564959383396512386515611798874351459225605274739467715582826768135165627186687918880744218867584336667555186192638981685330854238914422997135014264598873038044232708941511473144500595916641896129193045599484225713295695874177071527533361498311325608908848023117634056795244625707883168433237712341000136246406577199402365097965128869532866813228416829287028503547586737342011236886281753117888648026266276224237737853091103771880987582463508763690605237671638797811791663180966433600632460013163227568877381389511859601876799705725167324052198525337265554883621638235991769668832841328737857799538332656588153114204162361542497150038259312448064092067251258796646579287370237351590709005314089722875023701853384794283264610047820072897064637355938392504536550362214912408048516521382461646370755158939622224483790218228121824163758426629023427944375745789372571621237069057714422965648581752029592747296852416811823384168286558920472638523066028955073995511062021026844148278268147069303790899030022203215973674201921432029782348432912339921533883496367130321476689178344716332157608961482840294982817518456918316273796779550602515762298929194932765469713929494660428415497160595423469287555020981565483249113222285577026015530162245167394265318404270336535793578508654188813151562522216474443227274798811900630977078216051607618544015610497431879790986071466423698037747106497735736059372244221727456620695607123415321645582126155747324467282430120973060445340939141164141120650955462986119847337703845213319356972763616523108233240729584931826257245365004087169514805370807086190128596645209643184589413006261093975207610262822769649878171863503060291992549435620658796412988600670286432471984460018571841021030800317705279588813417477930993532434717122295185756490902816862288522454312890368749416873380501090782641267024837267237167821947221606000049922212003355425485273903917047951830424340242007333598674135156856654072426980755003213761970438184084565510498384270153659911241225529345879641008770978480694577326172753303922984894307507470017453966807060136607460487611043145678730958916377292740705601469970857220804460058511419267179385415680267741844029039382438642068203085156162792688702076125618380533153626189274222107297712377472844562453030839185409111200755212978962445965286733839220531620407400517797437414536852378008604706583737904198690161303979406441414596919518691446581715446337655728953902716645618044664452680005492006461101998398809393034016639893885951504425932483881393544304174144920001923937883822554283870035977615749261067203956774262158944635716307135926945281428933699368130848657976824249229470443709704016663393231790609236742630003791781039563246686685984759523100942366987250396642838376446261389725185948587328295771979946644061511956281751762850858243483269862653585409851728144987319180378462490756983696252146070350173278106038057664716152490891298018344919120134022221984407203462764953172545598897749089926133204484488159277913243866523708162741154480593063258323272831967836450734663928840187787427805748646277448220310774579382200675262033286764461118866231595263816300237656363471437841432382145490807882939261156991391326833642707209474269227761537308441379983779317845098384771126266444030820931762977630709274462256734806498040534157549737895370975254834179141350409512491636363390977259456062483519933019729366158807557070092792393262642423933466328916066233269889790354275397101911616192187443849071673789236839397555522536018010552724996990749679241811274589333323464111765596212020898072821618885758832049429446197421876012951515776065653365601115785346823112514294365459715384332912487188133268860132191220593684270712624958345740526787178567262263791813644533452105252685468917234577647816133106981518418631156748060932538459095313757124301447491965118987945880663099347101021773136493220704918663017320658135417547734258308030043374508328809341152867711096611393694207920728035367415911052756642823359133106522528336817330935068616793395731474417574588871783312651090108534564181158050464420025599459482847869487650999770535346474877669653980309711409701995963739570469198012488245485030563434338398519763293101202036037027295039276378532554775763928935117071485147963047080347352463120085514773948050096896977703583483891736815114854818425606372489355722173554821880770268492019384027241011559264798089067997033499187415432583784620949233113899429780955574356127123197255617810218532829006681216362102920760029691459429947252769583176432502892941909905193884212805514066566387348433451179100465175165392202541920229329554689889607722558100124712053522792388455671428119559957540654793119920509984598147650591340949694857964720290638519386737762747674972921863704367738945417414371112349244326422218147942544963465429570884191501806777937655791091035663257108606619913455380037489983890182137379065016144998145311843977816089749981644496130076594484912944401926319456513707377174298970924097365062496780555376112489887626614861443005499240030387062030195662306646570808837619983830844515456657142886606820521433070080282541911060613605808672806593925131187877418857174014283031643315478016673229018283621881550991630105104162918574531366816469851093083831950679713640943109624951894524029775316696362325957419948189832654444898794086980970730507758474085839265285752820687074984686805701693810722598209124916874356720012840784526162115464464854770105157903847102184177083640037080192278988127665634442843398698301772878016098958895064044045627863549370690755595548237514900469479535735983381628451530226085903310711667283031998095216461880454699531985778777668833266383479653567724978692262914585586027696864957254781218907776972381705187277920270847053039073177746017215135130739521758673910603547001305554427346517571030231701376004537076262603460415762842260516309862314174925553455729057080187452763323768789327273544314376735658304788527748961910247538907952218235475967850620027356955439513174055467392268155099927544472801723686206403768321021096752328702181910159845927455224478177078860093689976380810182554565879020851020452288579506776480386042643521151482996044844555151550867493317950597239330121180109472630633353526207942299441636196005272837425238055449265813401563907284612817766769908607856014857439075352729368912841625445355997638091599895580445804945778917841176193769975251422044554889872991289739448408187544268430488710603615349772475096164705306511589556134777930637603783651240162833815181604532432021273850727201567182690088984668665805160272298879487063925878789711493868690283954922918122860718841925003271931678442436719239433478716115680782505110447976873908851215131757322804069687206576956800272447759661781536351232279582914437437769633145354783729430586088628687160525501766127064253837721916658294188697172251038643384665694264862213760232211983923275989060001725980424615023293610280199862388479874659811778257065015381760879110658297543134100502289004553071159746204813166812172642240994567188499205975620889388255244419869314835567812187194087379040923369888998119457448657931458264077052394215850064056160490146072889179580776688142153759452150328132239302875357337154520673356965917494660498517699722343340524420378815397654811349932859535556569130722993993837611868066164123972417398276126313600544607955577509567739480574434501943044334609921280352442263844249815491544096528897668122668055793959231847579306554183553011102061098424652811149752107126347969573360341659850861889827426200749106841791144263564626783232043801368677378128927646785145745097167454782358225835449774058717108293724449551102156464184638720498871761477687931158074404972517972248346634878248376567169070797304971825290326469993835864113902123182053683236690908616829311990259965217173142151154101073168002978027778218208530263668031030034279309740444697512772584693262914129150427416189384544403906455391549853274335468511860474010570689163110857998575022934567978060127462923819963602813309050950889789418238853970732081048321076645865598749566451859797315087754994976218654343719494540871760698775190214994281504717995462521390835706038593314522879515659822013510269160867468738490586797350200808708893108888624180961110929002760123745303708013248169623836667957275521009203297721359713484453969509316924898655034086740933081700512403359940296031062446354277259285407785716125261730009771977681818732034480653047421324192301619016127593782639509455514613780293057109673943833776966645625416375996949362888968314265300466463935198412395414839647553928023942747739869518450681228813198828770336998056287117386223117602739018948531796339016307489341332016379948986545153660167674750714585681793784885069908701931808830696835369103738027106560693798776255529189641846674755652120751347017897362749096047082115760839957274116726157369668402670605931926353761318743075501303320971438144833432906848241502929766905727899630545729758019534804516260356126807432613312794819480527655321315246289288308650986043960442057991482617265806022341069841771373236419515117601138262741009108859811126028830973708906413339690035130904885781924444708377661553203755596908636447742676158581811664244818335137631965215152060386298609213315566958769601971676987100115544898434161453677792548940842621170244490195649012546358096544575759492481585675210274506208174883331330230466232145184920629944230319738663653960883925299532762968242901546535761010263940666854554338138568037550630780703410735756388769006274195205844330829400805489647581510082139279569064824420719165135029655319775320567144328263232159962043715012578988843450320422874345519169119796615159210290349676449663445377147314251397947000222971560320728897459543242226392407856836285900765955685114552378534440174454732865032586255408594170064125138039359972979078996239752921584880256958694721191144255081444012372450022534129989701022805510412826613089688905443160502069350585369041506298134601848276962768050158931082668527177022675164787361277936399273872314255356135511721451142203049239074397104342562096918965553961346026450135218245739446154119179071429158918021645748535868763963490744476885031863533058950937769799632500062905967638663759732510887713057891460050785685130836327820347107673613013743179988860501233318263080789200490919094781253371446519859928933617370020994628491804983787571896616537605524797967181753842366038827291356093470419615478401367077663003615345659724804469766387683526916883065472239116717078506167930902866128997081855966100550324758560951623572260656632398052134863748088593808526553929407533176594194366817362067728982254752717133777552338529610245234712319774244608579205192430132628339782558063486219651073101308719407881832900540637784944543938525885743752934268042527642668918752483604874522912409090065648815435345220893117528169807613061049774654794954122752301478664564319449884615660017614443487747070105522723481598874172789803245929674591072927584175473871645251955884082527476857183211898009558550294003441427179456523565854229945103340459346697306316207474547504668805092829479644787572592035288324166533983546484039037891503488805400273502043830698647701116523016123287862916365206207770777331789941663587892948815310613300351165822769762500186047949988928064223774112475680208389778134036217936359166883110418455952371390448976035639262642229680692205295485132343683487926043744474809935930839385458358703677298542872380084386493070537860624606535943028752119311290351683123735902822799222285695340429133882945410788166446245528082473454947633818409827348807098444576408640577342283021927653674576240355334557146459244298202622728995272943243401107358239383274450974628460214557175301982482222218016509917560223299055645332699381099875049515911374125952038382944157300615200043059456032333056756016866929453302726089707567154319157523000412840611189596675277358388573494884809524628301952221135880402589556199867444999096797127553850954924482732520310289554075432223551522861682406683068054810246886879700411891342213095734131446000761244427812824133196962641934866149893677777526367944367110781787315632713141804749136507525393629091101923455874568541994317768460940200845880424125117360382621385847604277868451239950293044474794629802701452320366057802881317163148580083814175826757124262272765723015454117567450438558926227679106253940475426630263907529941542752707332088092544764111259841718959654276244046723634606402372401119599949447884450335332039449179183311752792027604193224427292666494829529817761025944751100107245268692863095858217225556403709203441144442651164944171538347121727760177749200542372909412051022931325644073919756509841944899851446134086353763843024496051781209778349793162275867778285498524452858853143073155066833487618744818181736383808891512202173963058461014064026679742187526893881671110402971273533516732142193779204608500612823206145956570011793124989701885010466621435244974233629268934965426118508622080034113736482515327343554897606161888258270687516116499697855277771989910643863691455133795989858693942355320744498611223371427912569622698832253483380453133354064710140120129936536259094599564609978262673601916581415218677106255638446311362181132164883312685492136730173339671824590990163027058408410325534935942683390657181738643987371282766603109754861068136159891793469448083201428213773318174079454954757927555879621712260985777681443509333382576263356761956074108329068114337542954136918367165578888601437831960204487578049388768770534950840945871924487646439001470355070105583413622378147047468122789104603574283156356106733604409664154276609318139209154658140698450477174338587364948083895358325456331791787982845167291045571979859391813511446719032853917559823250373394206372551514654196231018821133722449897519628900282218314700736058437088735374448574106314770076725310731326434754842047225932259180280646989842318477154604666940664440360460576288096364754862107166645853414821473896767584838743313215337012095455671996115228403775076219339030217034095501067457621152282590672669309322301980454990404681650055388872030136374445259249973072969035542144885336200454277310154839670436100487740226951177551302705502795451840345328143631061998822001283825987723610723978249377271299265510866947516962015460561776098501322846500989850331030424273475446895188275874098361733382440614644447969621830722666823596756287499856329504958482107503530928548756766058651486968617342182018452815029154641214492105677755652477884544730064993857617582187952888537905507949873256858925896126470275079914616536704137196648552442729077374333881721952511266755422588058175524949274652892643272454100296139800156825921678311509792719047046570418385850193445570475681352873738277433697854649776537449632318441270854002985559472919607878148789046026959107197776849714389403448910013573979908314241535542239956693978786778810586322448076089895392073419252798040825821878788134968915044664411555574802920720725658587563126263627958346972804819550569476507942591091305273332318115141211470611017555642033767062443065611874465785825378761956964375214460345322820303209666940854278865329749553646323190300029701811605523138813535449374120789158214402252733991325050522300126186546909362291558482258248980783622339409056551622206148745890565163119853998980816305014475998309788244268789207490559993006416673055800582429788074435238937362177141870903116160382356178216152939655238337443181155017340642130007077550804405951406775701756493142050708643974618899421340936913676367376890707704378713601033850920595979552797464285151454638451971040791736518815865684643071386343192340820242243624352158359714275646324119923059737068964449260607718332024660646685593990006757875677527249357804132345795614845491290432832224595104011474798142061111096389593828013953160299544949119629562467316398498654567691763002791987244390496780907197156748609993263345814423194620041566680887340591268837239979260871668710341843430319975560162442513377643733941372720349834937910023209408616329112404998304693844753015282541713007577948690435603146401149272446983098040652246113747423412233730479048738664309543325716191925990567982178746439817531534240228317649777150999625993196208972956082549550978340179574350245474242889366848073861135156819276417757199931343908900766490151173886191613519771027071793651200132101656531080654055789593690018433857553637330691071537683380332461863888672539751096935995775496524919473615422962959531625034667870991157573482752880853996686077391663126873015867184473580925736227397973692862060024406181578169362382061249839494119931684905326354767522224438197355954549282115733195677092021293487836644600720557941688804458796603543423470494605477659704611441587993828925612344652907173222764592257403323959746461126924670961934502230180857682407514249757967547610604285422233641022061284707224700729490159947573503488526184774576968606458092746031920642006082212799542780927707848636858698044611366616540985867005989137389803194147670626827906190896094212980864336095744225612303411730951253934987914077527384525682163769752639487479857025551253001222458273173949451744245624208737633417557504921506758532905271881720697676312630165376733925652559599066304744103771687178630210260561596389849687980747200432591564018777719847019835178334313656327163828963284781992430992750435666217698234215540987802965108390330014168095272761303255050827152377102700887115300159590710364495057860481517009039404844162087680006539110488102202984428461100184587423792785984879377465327976729238927343511287928129752031209107984261045487202947309556748193542934957251631930107219926475091247251916414065535698640261839135225053512195460520987561890117905099694080392629872999395161730341623156826120379503865229771570910483625407474496285573362463866787318148341316591519309772692999421110731383038385976732624931451482535929608782845823757981497759534158738735547821680066293472323484287619166628432751079367986552451992077596391165982700501041289241534008878342129906878889822570555488793686651661765393585088094333597903376244355046601032868769180277966397478838393153282096382763069626258783615708962883934086056266507265784701201492722780057774580547002726871141783887634673161004369677157126814331856906747312385440978807820301950771919835824020325281046286536300969413469985121993807298672207950639635474257192892013689449051661317456262806848106053078275332444786996104394532843491577923076307773359695190822424038847052967968088308666667611655382727835040092934894358914995324262074857027853920866402897776113337317192337471711763729194144732713708049971640297339085315793970172012130808439256988744360644137484892085171148489249787182309896347439480540307398333383986734908187413634986078521175451982712130479206599344783805965408487690477240450101498843893912260470772164898549059244113853358030777850396855175806361254506883376611969189999455921353708348044031767235324918005293212246349534317786430885971125399079762499014095304038473677730902456851932301768153640440961513639733318503191892654509009923132384108022808379984433850008412952733862105141164633750721620555690947098407313997647582454882154990427712303086613146829227665351093712602602505808753614826435143931643981117018559869820367104178123901666660953773794034804004534535087148522292215632125327105913818266211659117050106687334463609491949334162681815971916338099069213558370055684694476373119340986212103231661795545690436314678503191996555402622106299262231189496125224202796465280393978846802753803225396519851512220274641519464011611483675993821642311823827740480418822669379017939881475523257888739533695786639121114124207045746876820675352547791406632273192597744556614698632360649672970079608101991372581235099997198271908145737269469650804902776542121054195516409638580852705169644898712890504979366596217455647727191713622378915656745173971601473652460737021247810617189184831462468155912792695217361461891687914008680649485278748587842462884362817825922188645423111294145213157494080289911630829759859841540989097379131517608242818496188647172650138680112002987317543513639056217682638057698073285609364325022921544302551404925650885290545360585695026303219897977770496359817677891332350293493729266225112279959735890113167699388586155033016132080270673689264760660741460219625880325787989193463624459087649259665485405219834455674819146250644820520051887246339395946820155357256616781539592860702963595905915559946432196965741470270485015126373941901772776043576324838197008135338071036552975485321528099195121531612203623098612680941393192804683659166682965243707355819606303225933603875745070508829766539433166011065822935280245862586680239130354957605189685572883301524973844746823961693826652329363903890338163181090706705417835268686742889057642062650726754810511307755993352576270408383825684825829049831067088979165433213683985134716019858458234959358938707938157772531517388806250598894336083150073062061408062538590047649570699350703976836541042325651664044549751413067744664695559308445740286959936914811814125504641043913646921125915247523009186219272695967369103889363558467209227829225026291053262390335036885275925281484647621383333234653644275521815788364388328926091569070135544037737261109058547394167406840864892262989554915608285385235628829070615710351305549107668569154360653132026324996726713792471211059364974698550708770800483445897782615283671728412804427831642311957065547574210668724770492650910933766880847273309533371969793506992441111716057933612880156278125811592249069928360490199261338610602335883532773505475016088841831441331500761888774944550439438900180421599921264246085197149257064894026198850590105121437138281522500980689743159367819229831475965593780514947344946970243318346740705290773773040381523718872735914128923975693621729491788108558495233469902879630471649550696327058747348914076031864176474496311277922529240042630928535061167103041181352532929429943412067072024025183016535744965244150428125669076181575493689285277865693593793061056792786925422637037682644897057998399528974825472103100481682308351580721137513136670863179261987916951339675551536297910821367513144240006030779727144310625025558145146139503559781678769507267705331968968062713538366142496977504670963892083747124136749801612063426779767085132265595026228968772388509667058954547938648862914035130858512581593276849929890275452181622187471334765460737840714378350496581302317445326265668980238239363859378228772711631432036757238841427755409424111521616437626582836132023996838885891072709256993750969288671221278023811171219272731029956270592641122556430932837745300755739416281728211670719138996991645877024332434076272168914598124098009774444743995529247744918151916311851862689070832143729881064523131405687085689338532647383873103148864738432874306196604725146897472153085611089320724228592126312693461863395518365295818108551790611618768829780439042208130702028398012717133972931022843167088300987307667124653313577461437012423789314568030189429121635429219349376034446298554721848591256445601167050934161765816908681210596641266999967240755817955386362365933679771945831862501434938950727845341959377542613263870271289393001270039439841168557259053215317514421562799502250264489297651004782481365040418971329614855880979161058980839772375925649569831363932662098843390176239391086512977700663996289578603675919454765367613030683342247457338142888089241651749528488317795269124536309388915524334101760468480988662631013399752833831624405921275257744856576644322711898056801777661357957992951199218848403819817854775916871525224559209548340336649503768849686346700735517601755246530889309482518967939614989555109479292373175199037712189522493020803295648617094028646181275985607568828169024802986427863744735646685224073553076739321547884086245552075706496511045287397441015490477537298240737267064367552998767585276190447464409760126652608697887476452890819565518087291197682977882058769856162451497803023732061101408449430645162826250568018928323812241509897858768359389545940082911980444512948105358740729827289952632620979459346424065552482733826928995405466142910590474413327528007734304422901977429834216986939359640364124923683443857015154348698174214470946332501629850376467559583416220137575947454929967314432895025649897729498094247430545575456999604697386223960821725270975986199274573109190171332997527543672116100763519056117850055691562910263614798883686292976140670763182860364975295203111405249181362420323070836452609278316821350527639162367662953884229209862006603822634076880339062977826193797515531455051115925535672299288531890706893348752444407180508147764216528695938960689945463098001009840970835363852222132339687242003091024824637250573054571481048741569811939485658191612327429101216488442423463225454761160202152961188880675350015784701325819265120274616855579097267963198167676943760482101170926316566658641878103588414166652116453329495841599756210662045369476943871905318834015370652012521636284694320771851654494953905235604353940316003546964513896031057175647964772098565338672945993690687409091777497762827723131979892347831300281084749694736294688441822478255489949257297030337039591159246115936083563036272292453576828635876536860355010349853974674772303391726290404787423747591208240088022916477659460577901492552526104389079735683226434177472682079689883467357381304194763030725540885912837794685455840623945333795920397557125982599453538792066357998548130467490819552853729328953151514844014200900297916830140646536967654670630239550381484227062960910211323689182712929704152634280851800713485829337577329550212076187204309811026790068376419266746110144308336642369066490158368683614814934647373733522138291660711816226703350448795821341738718031006840117357150645300695078446006468022327756636950837746951129185010345501512405321821630167685894208768266539587501707393536940988833202028079625006747621138773408181944233464210118663005255226526542107555302678239290953567770748893938091650794501729565481932952110514082922791286880982219117010039548117594277035467625301826270202849349876239299576455197155220093495565234372037106777501445473166952469575080666518138232771235104777076281609455865128788346179801574379741696486985540770664711762603584617808316534957437481987779608064791538207907511485494865229646443285118301222609234838103422200303870420375294136842654335897381559874356450488640870904890618151925749353916728361933196942037685805297170173451064521809898835500367147464337343207028419017983774962352845292704767759251393456889564076286069409147372300661961021917442580891659828773575721587254830246219130567225028939119085484272844585421099373264133548600054745664592453191801891357813964716750775964140944270058465999054761612315285614289578550885640791549047688464652224903872385417609311149048411047097337147991178170320584441875243083486344872101200983843006667777100170673665461702830972910126633944890530730653916034786450119071403209495715469031483849116670340253810331008498908539824833194259158927778678779078989167913947333338144803240529230717386044358624938405803439022293927114101470222096029846569343300936982121419279381192504496561913514079698359902618187079169092263341160914645685544147542145535097494922746605575583194632324972111544535951558972114726028403412273487155972015523659168538875168878965631431034666368153325373637997331612282778807500509813724218372286604534451360330098116614743493147996563353026046687015150218098653478133799062855213033407461955074548830666145284717042538040186919661665173558437570708660553960104277227549790036855347522857450239397623875474592419884960529103225054967739917271391038663888995738623084010870898452544153631674973394518494237261817569226170098241697348739164325664461091285064043353188441253804725717307650751249476940297925754618127680700765252164601260901348418346287980568843764285560673568806581332936501547751871555744085402554276350574182997865041263378403281831674065839864802570641449794772122965622263189481156814912947787745617115185270670494728298409443379049257277119305975387461673592470614256054556565561632366288263346768330427263855747936143190776324286787681751210673827107370950058112079559310252199684174929089683165692303484189080449035312361777652098525333749563607253079368591650774916921879450355791134665026772588167667301190506020071832642418276329535321764346484975913205705550290709438096057669456481882306312865568961958793913632188153079267254202837164066734251236605817761805747127451407198994602324548096970386084721877847644055120232794136327996773866612454618793705240793947813869693129058895930325744052459089867643261674577955389701753667987154603885168969350613506870735847500154551150517982235225197691081299998014937588373257382159796764138583831240758654620131741269369157860816138804486345507623399473876170668524671503536619547894060484013786809444118113981938595573445173783065005243228656199536743572659994588034718126547195322022919801094113063162818631032670625676859888914614213106151189309451391241481785383367397846029510709968749730633965743488665645311616733173960904726681404857288794412273598578205241485319923006732689412142378670040515038156129929082806439182585518590377755618978776869239305443988061322514487051537001322385404303728943786311475176352900331882281997487903193675961390729919951585415978031873767835083549600996184106362376991411034302526426778768129413105395840064950752205728296665533597096463028727104294595661774611223411050909996792710943258466892942928666232646400531207116198901537648556138043230173901918534213807373760293303062920647540618355700667112114306439898551164450052569196084612518964011624465382788701461079516177394141462311903495115802140391321997618941984206847626378019901400904478517806974961678861491276976459528039209531875444596746604826794568424417352513324370401115036854453336665534883421893809654655038731581174700344273266043821820214550692530861726588322031599581521632135876534801517380732412899514317760426489549743907489974922492611007093902023260042172230171952992135535997246101823161585748366579995637836006108116682308627215275352100452634225929485422299530325176603846123853475486284426943952299237527016460929835152605064426090603297082928573295980564565798880161902900190798306664642357244726946866873018645947000939852452112938209683892200706817695496338217807038696113125868831294139908474171495584281126671244012753764062111288030336313594081471049593651196388909513383831788084528516138203115077348868858661163587519431930235495693774410009271741160207155700434208380908692513510400976157500535135747901351949162452352762767281639016390666253282727779480742942170857262842117958911561535820184280243251107144844407083087022271091897669580419787251134935118215370180438261319616369935799262764108263007515183430608977846609479293513571820059758945828188393464740764600077080827018890851221321042636967290007402844703927285406551074585877900825360209539784774331337240435203999556122602503617916793168432332950049271474535061267250706017805808085761866191202375789179963168377508187095879240966999004810379737864789907396469706675063151391959412730815831704178693279811819815307348659157337628142951879122740658070111301337269009303228780637148547263286789008550442826661124665002703418367383020453879933814052590807173977569068142376321380187686507433519161869097544010812721636741225303184227841472850190623687545327006432703644867241238099570470788286296683447183694348657666657330764670103650628475570860055857418068315880403967542923651435686637293988802083531404931390433638684510204684583911538655122975363705315364200135457267558029188914568464157770685943858153539458355659323353914006045621056392046624863625078435086602322964321755610398739911039968162585865016043934879753210994176094245143573135927259348123050711842487863361657495581184584906916582319270408534979716619571123216495921426071077446023361564046689725135568773898768055284167454379665041928635360265287955853611629880601004196717212974060095725900846777419148100238212704076248220119523047672287669451818523767107664002850690076637293243147159403941479421442270095850499861054931887848851044629668385809258939459820155683791721849515919199259036069626765215003463492067177638189938541433146962766614979347223840069455368441282230365703103743614442525460326549688879199732059422868504924542271712724171491884899795166387607221764314935537702776895858727825196590830117932895618904568866089342857822904341482473845901291922504592756444716010641511110643190885765815898799790607825076372291721823192571684708736880301459049091633440161011213381376099657434612245336241479415961912564275262270731223895042780752445689777705356496632317408120285208500401266587044383172591315991216294569565094845236146027182661313003609173347269174877864505255889816742921520734831335684294456922362598294740731880685636877620989543133119616459592643402354528324886587924669112165270982615274710027387447249690879635953145982213633720495152820991517266234350562445907007119845768611144674847682614192183535381941109538499917861981820440543412845186537299272124489768956256283901520863431458563398706304310180511695922134600456900813939070142625052304581278021181020969120896046172312535008661163855104020095062534622510924253556533070549346931649218244343218352105683800748317261238871582989304332352924575777366451634513971584962596712709407501629925045469402834339142807060081527568565962993599593943635861543941516279049264806266676794592441414849417184502164507008346788463642986413137027175141341368680400170170553608589120380856971414230752930599015400226326672373456999671867949224856268656341928686467384569967124291506514649302326443010938989066975587151877878569766396607951033162075265111276051140933500494500526511633464818297463764106537838658189227928153539556458330774402659235148922215422961428772473385147167390936243768501321032390703729903544811694414248304091551391585156307307695351511101559492193861258099591427994341218463349737332909514513679709465105383413508561509049739392816456833686443137193849194793094900827473289220904139843287146316781077509237094378478564675323956409972902092201991755521514953669862704186142712013708426705417241413472646894667708811878352588185389738867315805236089181234235538048220976214128870744796003648625338054411656179614585311022185746961084578606372563686543945944019709077042031739662548938882769666692189335931129092627323828801082052497028720939316107762090490186192979412820978426429776830123505585792938330802242722551655500755549652521168432463344836976177815529622059162333610471264954680169162319174383718894044571365798449383226742914035881689242903413298643131774005783509328199275053893447407139198245419090856627167431860873080687630822222237830029200108917402760082862177191395421663390802152999764697003555250288223591080649090416524804657524206388718587836264971202881477153741877580256570319244256501625683988132773247604647135624533919629258627069685260050185717970888560454664406929442870049729483789927729871992775315685510175249720177950105533177812518500896078066004812353822391870268618450094993171739429081603046820259027460523359438258183222986370780421065303570549470528751089070513412943383433630467575563856411469333882633932383348814898929352887977877389984247341841040479565260594451414193360743917883652508983025520787495963295885978185598198374209768054766025198494473203625068821981295153543420968415079529410687547004569064643199012733393558903959757733349816676356172556722261825938890451503848771081660873815496172706762012677302213866959936864400056508870752136609157761717397788205065219060834491360153274425960190391146927507591458192648213170617938799521738033210207966450519192733491845555782972799940976974108417136194091598953153981912321928304579922592801792937348371648696142726788740148532753135924649572443553582855183569023849013194869253823567152499676599762314444768504007544143984007548174742791231136819254028411202204899700151689697717584817336524656588179599835177073954295398887659631112678536489243151598694019575350965059202998556180648084289801867490238339676714342203758308057809367329739340754901018366584264351803937057776549442236098456230505310793187637160674580229332360872082270658524565133827506987473226857890975518794283166541350338422500857389643554769189292451138619829669462981924175066858742210998163382888222297027915534407512217593562568907171244407865107508191857145635048752469846662646297057845696690003692158857390993858810518053957825263259305689404649616398033541125883312014103971450542487757294176034309051913733616938417297927352076645908825900804055113108886577374276138022890487185526794310109417413505278577980121245448741869119578059846181692859967878490728126047566301821911261159105260916545426101045502393385554522598150555188021787931217273903474346517120721541434593994934936825233918212441471151629116702179624604736714986934947158040890219854624610836941918111726827325766211780205672142194322893747035494196187096281160252074307476527967569780915729018950077942593832680415420100470323531560738273467594250852861248689176971236701093112846502819671475434497389405639228163539386014138954387733329188549222963317763661815692629082600542659481438106470015744622315708260428075202240814026434916424720186409742879633570539770639268022003215817858503730845055160191592485109444992662521375341498952014095349428592855463841500184559988297818060843891072799769873993782350484484858179055080394898881132742842157259494381528707584648984387891799617982582333364762643235563209334093054896094728731528060857669720798693384375659439314232108324901268765269059438346517510159694573114734021482928276245360586383480209544627585393391839809435714074301899091843593486562430886023223549840602598369576280238785643290931073919579392912039642980783637468142801363661031434104223753481431125916422275693159503014677893207426153998028511070966087562434039048343618436334567040283722313240194627775351639096971872727531939089294362508533431080807266959409273252693657820094832736306962456520382878655476784634437567355331615899522307890981588882137561062627922226110676492674641054741305983580880114469899655067302153896312522360533930782941725462304500712929690782793346263400642130282537018629585011237414182323117619858236063095236359458486073745249958256683012749153711096193842960309000471943121559447168876261140045498934181480697694320622291487977956439872253237646600447251342484743662279978756815309765509171205798157888067355141939917349564243613810556119208863524861031517145879862719046744755199406912436943283948701620011762300162550995624600010398037940491678584045943881458834358370881627500271523619927477899280847142266282089802374662725200035948740170681424002267147132330923137530761148069056594604009080853366151364072510701888535146455821641500778021107315139688787372834412821532280379125626153669495265319832031913692500929141340309077848662967100163164353948411098065926615954857651188785102370171608936626118356129492404898708917190963841117676595525510227373708700958291180781509480168373389976623011520276783873027606668968545267729337281793318015238042201362730071981007859667977537788604541947887921633529680648884309164475968053384452371982215979594714332194697150302500013124261214571216739678203496275218304661594389201284487809470031066694973604514573827794564074993095752320540159775653281955310616383715961459807405779970804214178423961898149645678558058009703473850409376442450002425036430355844875455665450938737064862965109371978801926499893744421260235170242513242698038132925315363984056251480526246049118044075224536349035653107829280669642575912263407458291624510579650216031120375256526853864339681879899734646842511629322666522155393032191913037331687105247327416630941702274672514021858313537352115821037565516961551209287789706769499383247187453242698329800718349261204610025443051906903240490171657091242805481676118367600250855169378484799515811396495254272485885112304147407738387070611793744253073207694893922492533476778272877215994755728231438616677995887416618665934971649759140402271047515921396864417387414857474546437362885895855811224279474640832203369539020484431182950439315700953554382162062941817455764715365206451797667655976041369868602387698638689265898669252819215854956734035993873515382927120031180748677554134506151395885492404050569630778776391277899575317265317923077622563042492215540238746874256008180873021432820543294649190998532262839647395178822513668073738757905815247134878490157147040787900711737921742577490159760099709331757308898970911972271224180398006012602174680926297624015076323908840614185710674097043496890105266515459248518130798398019986280648383550905925127473754007109973348581403883052899757083070294823581112968671736192936669328932681031597617754592653582244275058615869815908636453340890389557550387270718218377201426575237186206068662017760278233837994032462644711985916160370662493901042729908303414381598466058926956063772368325599951391310350663873275483522378318469038653942614628147377099687179849097031645826468816650744205004435168068543211703976672201822557858948902653396051443655607825311942237614603791316772830700747517019794619493743310850530709987810414435930922336227648868935302925752531069303073808572167631610374742842966394544076001553728815578615876360489651887154133834184799452069826750367681757812801096575864678138910780082928619245402261543523715590821190733557231852280968161809004285087157575915426970089642294729494084577362728554461634734739326171461304215541728293892293205815977526227311161209542541997061256365672407996913753863881062318267867961457047338576555780026539121976944165692226908868219846353568069953667415402340677769867469834945613214593072458400639585614813844303465100880772799804843533242904941070347160668930825370593065621398300227387080622265137855780285439749928542874340934350229222020018011068407532596825649343276370224573247884547968634357228870709194597912424816020834253211629407851788312393859545190913253386907342761824808114028090562008275553820546839530111170217501862491768038871795712626448404025541858228523659187637543844396437877885813731403418022462885288881273493557721325342178840687134593580119384463101597766006138143310714046106789625342739025572479917015391472010698953871974856534945986594224764771561631541089014986510624038905336940841868013308209333784739623996094887511034625442853588817580798428389240074469083961862878422489820769593232355577017799735333363487238591700730583571574914142869440681758481130299223563386308854699263746683734527164331288701539171908474085571203525879039797007387456153753541583217127184524806142659822699779192162008205480488687562405509872826607098610222950648155796081460263623662197140572298773209410574840297210888996020906032886965737582514544026869498643466546593855001269295143662845210608240849261883619600045957491949141387545549107863536789362829306802642018356845486858484403793814231015114087698360158672235405980014622582657214252387243460342430237711336064439142496123229701165719491170335729654723722954187126538598174599709512657600141534215975017084069534514449352825595617524221386534558800716252703950543177285208598789422634356866884601476343120188917014996669033436290585303024270237046961760258116953914599340572976423162080874291592763904489195425482028553261650375383622766428692112815837101636683504540060973269269854218380912899994004946139398500022486279389150473421753857952610831080920164160083788927723888981846904788560724630368262882349365099936997545720556802603950695517789251849493636699952438524568610875744111235365876255980285915914003352569680594911992174791317498807077776948941630038819147907741544285914443127837226551030354414760068772534686622211600198031061776793825082420031830359620121530435225171483626850755488806879069607185770619071487627743874041895537468572075474259073235907559828914511189186253372158697155960258062613347383466098344363414935387960602207442799603898659250841981377317289686580900122356937969650060707177691213056598267743986458955250325731183553221586563309055696600369979896131906666654526622189765394362046595491649267881709825993169297385786678740658148894784487436810995026284497097412477605515414622330682959954201733055200723947491324707427435287542115410291887842314231663434614829596488444838151208973515004889896099965522240295264825564739597558161265345296730463123483734442385284777511944458749338527251462126607708001290644858169584543771013798471889142748405796083123024590264911460242049172760860314100435416166489004476303308299581474867531215249367135676493180217429393134997218539135843600177888121552395363751540163031559360987469038004597567079036005407897776561965943448363094730536128665601245359450311742826883926721808631034047076520220082916750316555634093761668256839118159621660538981741789667962430792576096838490425213093426755721581645728687115750380384271844524479312329601653288278695611934548445064979821037570484345828490951622479443529324856324795125198043696307379838324307970982006478313852008157596322512503748442955314579634677838961067248821467342037381169647659483717817104450494178770026037263584330687706064668725345842617039767927603219848138309898356964079472931412648087593462321665942799389116660241656878367048208349881355281021431287102316949969026137895536177410978628716959678472857482537575262163573694753148874877531805709972602283381972558502487420331418534853207204484850181722385380698259178353858433929743001449848243635281575802143131937395694593074343361847282524660727435859599272588765588501670395543200336294519152141189195963868171709222061568995521235470251062946956249271067812081060893160941990593574554024605161388745398318939914545208312689669870246093945713709301547826016976567878979548276197428491810112753354087189752838375469247660526421088534656355968525325606414659298035491431158078462840311493641730171695943494441294376626618845708862721591406680747086869203293934311857896744912574804137595221624844088605052476752013278064623398060679939940563654393951318697525123954512579333853258805112629586733674683675521646971627177865700925197267574629192765697705802158221021555447820217857142553646475883172384629449546046639287413062962771887599504041821878518177122887456379315500245528399174010148410531026761107495750253071032838115061303917597674826800106830588843957440506460571846005535935150751267367922046542183658832261143470289750553050975110756712068803252437335863940025134910811099522219227781021740019392718283690275498871017756982653485131129016154065825624525425967980979139670505682518754082242824822857815307494603905068262300356683965378557797084418898120330817704403312304639392546461670268845595011477414929476711070679911947157742091717238592639139006038286912991255425672745079813567041600878385845653452347952071568070099703009299626236510685473151646842320775015915349594705290476058327524923603756647446960614517992523638303100376743969000130713861805036685113483744875849158231062998752709522627227732717873160920298669720039900272692366142067763241754952071622035690199698997333343395753411653270264985113885692189401648845918987521390746194867631262877699672599581973806478581017394586041132015045363971815202587756574297911152544084865340467039982255469418398044405937382721035524962864129454306013827054294248987773317532373358496562627626289994045879407936357692640222759601466753051691201471258367522845067580690230873802043014696723994846411334256073009450061199621461206380468924723046183965604109981126113253834778674282471974243331023257729137410226271546224014626931458929080770160061910619528123545183015412896451393384053670708460275794633248871497223645251543083939447222048363500389017195596095538943130109745071140758392345402719365259567655691492386201030250814430276768141429180549814709509158827390756950548448947939729770636656665335275000372919684712612095304903691018190906524061854075941491570274831083668180994781418217054668324608480141922364675618946639746759843191042807291197957818892572209478967371880086257090025606647946032928667219785717064882788086712311374657838502859957162844886840377002574279824188137805663339340992465029052918115487504505957741891745096794949871082181064214435264284020200170254590142661722205411044647148778959741473711715434602569144237462788272446139283837808482269915257615732568163587015000472044918349126222265533463734032486717082840773887096196071508215082458016347606937721742624223151799866768150541027044322935612171386067367452680583070092826838756672910717367813203267901874632297078346904948655596968646562633595315887207672814483621771787902398522798501966133421196982640800474721772149486745989782149502214620805157992202269410921732226214721918722425869921708497824858317531742727097248123371560564689114763054622790552218893946358364538355312018773272254158046474069947195990602555383780771649903489284336484481823161920049459725594860112645337567900376135165566292379131257904766194858281919893220160051477374259361027426611678483997994541925509922223817050272254164269451237570728133830025101538647146372938830957346693936816197544282415094923015991887971411804495902404516854806517152873711280195291657730939668233272989534014340977616683339777473966177056093706211285797486266740862011498036680016238767299296018380228994108789339125649110116663707683931011669145961886440888477414901819195367636506091460974283892696826050944856845747055569417779350866203142865265646444503091431972374998900193248861710552368016094662425872738841503340017687507154484370109829234183453530096410080913219120939936124241962564316661375075494201061393345669559353533335448383926061201423114705468864323086564599781921813693644324000428064704414753587776918669792458344039501232342371985897620483806621213256123143861165196886502537417328326706444537226961677302217529824555894173629062677698932261673721211981844351435386107149823996674115643882605966002444852623478110694468190867180596874216249422555370753076910673641348909247977835785150157315465297641727134189802972958477324257781634414356397800992850242495968613069318674518937011534405915136326552710476296996521943719264347881857853372964389407227854078823188424902630479959903402153572488359784732304951146785819820221287027714337474030074484423402288398929522911601773428589913675787195702304338158083259884984492631412472086860825334359340158739482778781517988126806027952237076501779804646398150868777019434906870942206283978872507320419426861873026401715858633138738611670484360013681804299127825832840255920020385305458311431053754606347836736674457602159979526976537768063711907903570547587569502989090472897533021317565631471721143169907501090244570401987312137812349376553845954787279700871451605425518114518708460033016201818088950265590079528937014198045572601237717077685552978742022907883097624350314702562526354670917106051019214698273812073587177132994430444030165006421263997506558554956014352515395007833202360355290955605842051029024664422869609595369317290530000888909928324697189240444493100281102171917608587431917349549216256953282831032185572568878330592720554054037016435882593436051632819406321735988214296991652800749626862167471133527764705363837570802836029483062163083501315366369493740439361942238071797973056433413729194650680193557239046834362689485792050672863580700951677294915969031988140753922385757533396520490413195865062756623869923177145666636653450618646091248662747298420496898681980895415833896023205812784372552818993509940608054506883955375253822952485288832830616860328116573969374704506215616367892214753674362401308578157133979144136899452728657858051273409869057363653077651932639978791781570611498034365763022558595556761741769989857325682333204617013673147401847786065279502650851227063265242044083176228914474347005892158878457409627048837484134061909691235146088272067737970446931863222173639197621696279147523113087118141321368286948039805308519034574696671301031547567113423731424642181055779041576428467406257676040766250515643847602538875431516646550159399198199478853296219716640689238165750437731725781570879163950804825005579514751735803658609256329652365461969474558486184420731567972872867906074655512027263409650792632713631231117346684001810998100025883112989612380301253638108255725952064007656687133899023599476716109348324287746463036508899239040567315547679284062471040696589505755404261268888308914114462264703461215248274702864924006097818205436876695330686676732749516091463916637152183117970696838215499870931349837918750198027869091546982912146470635223794041061085167523200358507257520018421876223688329159328556083535005766697470701230831878445619992854347804856091549726576998870968297776885551200868642561122398262643448599700980261011943529191705082806331766096067400122375315980338647021837979785196260917285136709392201208883502347284115443164949743969210817070242902318218032380944667732041196168298861810584514156337853238040181892482460900735440465306840394867554916727907313981355811279628762718858717550859127285518068150770431101393148581259361810605977102000561905159596216226722055254929032069617186125359443280610824286780799348267453413789680112313423521568751905801122585707165861738638358419287853328690196350925208663328425750236312376704788570770287312830133201499018575242657022985640352922617557835098255672967846836834001307822148406985338620921531688915182177482711042991074626403396496745468257411068417162755938720054169756063436292770381793822706380392250592203675601779208238015218060188365177828458922092499324963990734926623739856338230892756775443472921837917178933392102396388158307136578890174908524983042410852348338504091898151648628116339299794936365559393706501859022151046442084519390774370748735512229259192984437918672737274297721466997545927685328540180470278921503947592204519026377347077010995662141533215257339167177833761769001709103576021678947578051129088954297681983077426134290716710271179138755981167273443857379708959442052725442432540826048732426123454022377570745574056873933262127489517278434899962285907846544201377962185921570176757437525326284391196766542354607133508782154629358082836181820671215501183425929765718789378955725392241646197634668524853954267649914558943174619883740936265667595685477443548279106553860586298300475932040892258243054915754222884550754209321550601484031070444200718875670397033111013406425816087627637190934716505105493714288959219094938461104562520675874777517461376297422759741362897783943535139534351331148407225376578734148069526747051456500679387591005916428265988874667161975894528016193662268575055428649169731683167380840237175075210080892791582446089310251009302806638898095542842492348415071660093206118476922010668509559376434475196733452395545775263167909025519878906293324861328902363678179564580477691673734494975623625438626883578984745253818712656998052369976893835657643628844007141569926150539624040598450456246426165180456280216690285165634576662420242347219658762444187990865650977042717786224760027339569811566498597246542644123695039632256652866506250827011533792493417727867910479355330844004143462952291934521520058951896233118450240449664522505300049216324702280012774380105921188800553692926408513726178383328369605037634746157505155577281145123281338474687012820641927587680695755807312515875567993333471355256120310849203336474046013611505074426700553462097446790251044855736713934046924907861112505053443241034585538148520592815490078864814336451390411924681206620187947694297477253120597505766514414131470219764050574191233979451778627612004567280534662007298615198468426313552131373323813930156143939273558117540925382967474636222464359412802190590746883972210470724376153530917294820871824500661796575122568326976163632026188530577855656485728169427269520621927237723672577302562363032237471956505263440495141186579701721404413932438951643272694949865303228465797267203259443872291815130999825732580568763104575393967019355474340421408461040337707153319606939167539457842971997088396332346978134140206594125065376468623170974678909138943614620572374817422857973135129967098315616774274094514633512966112431831404106561127852191956082709530785582035912072393123462340460577010674541318234253535874286069573116229930636911862047691869617986854396916600925533733059369040308524931668559444014262485669127399565347904205719568478508295634036604833187721451151571011899568050535281144948747252453350801494797572221154518321189732887258198678803705387051086641412268800619709935341467179369054111222751993827851702516868312383585796840863001862611442873203472145913160624537384923233868625284109887717076084556589835871613784564107641382131514765543447862821325923797325050905179662435364319386678607792257672191270961237931885905847625004422115845115651366057397878407974386314552920063560240391045115839576237332612579691695391218450392007692328440602679534082172212764533667670522430185850780383964027737779298434173082325814970043632358207290365256925981000836171385277483247459752784790540806584578405364400340516624887866827975635145115650831610248877288775631198514852237944339840227287650928755372973629975448971836594189272953661035676149682938334275904733039825277844772003466135730098553531660453061272204863612346222264470554151244588203307498208989457057867321878678708656403216172376820218503769075763310718773756409461479735304809385560869794130000194337225632015718979819270189136727023861497304127702197772154823999121353006021002144433796477971900416979365767269232046963451848003653027173198530325158535473181299311398104857916156632680677742781487711423035206994410632875200854403389770458066715389173870784812200400480608236206841715983335001711696878625588093822286439941696015524486259373587717097152797633664647047366661210877657333986590090138260723976009683933182331931727595330135514720418846163829517929250197516880900041518166035165848814832029898698472546356287816781929268054657061170425173328656098613606322466968535310753286793964850807242534370768600361404019458767629514719008268318102034444624538284460483944638609725873971119566128534883311532149714578443742459540892799759410806598392694325186159632644838308275757970150741318002165565217749084833581908056174014387609281943531633255083508369919766501407866312061397422993549238419990226488628762080759980809934297972746802163214226602781779895045014777777885302097935620213759974490804865970709254469350893966345807168120402797987314938450647122047635167071803232031604380072122376230091866080025153116047657717816885043830183625742484715112774826731548295715569751169241773976591505507732693631583035424899367971946429250189677471166348487390629718954860115955024130539454750683610730171145927925269653691119013185767882327947461355063593475042384783771732916928088720917388241502482092977031521997647735718910832233455363982786625991140236859391334417757206005582825068174466969449131645730175684425219740359386631935288019659253825662129120657705280694896149859687992303180108171148679484756723095835731414187894859620321528537159386724909812402622351860231106372101206312097611466847163649825153698731345021526779167800514152022600274438330691839952676810058555900107925126711571672079312625472733568698946897228979600195215203493481654371217269461471953483360343241473253497023674060823648998982486137526858497607914075883712388236843926067439792204042752690940230268574514765835791323847651808143569445219825471962493608728278197259657459962547909991257485587068673762496799072725274594938371621777515888616839898191336353047516408910160788021984116658149211201017876239869606989141441804548704961230348467490246376226658797364354510323896596023304840518416858056028489823787792387909768438113754385638389295484239706125316851390998209731961820722855113696035770686008280671255417219210776223990665721506716515202822173779562003419459589900708509807691247061845177872790362143520722552705747483404051995800141912419577536828481940131167613213258952486463361194513411723701893251427256249713604448984938654432204970589035683746579079056543662159579425490661294725544332478992482781588799045080444713396488285746074314917332776026642688052723250302090761191831703949597186820841864975626623103117887851038890120018569092184157651583415818542045270497876701665874765247940965378826266918510755743252514175459411380540365865620652299072251320857576468352506452452497228492824142788899574370295431076686332600451305561583797682414424371313917505460478895955078547635127009019696138846075364800208409704262619476095609618721306088461592168011324240261525340639674143004853770009322538597910658564689569512483608515492217822097702323809131453817549145801403104501597594976986316844148880186421950685608832939893068959984268659224132826687617415874410091767289218616769908079296036194931735846802548512552025282361062911971652534578213661651783093282799572509392222361448797356748897733464999578056169046629739600672409726618092514003104104935195827788150597275456453994726924142721247485422304761316934363012395450602741808871007407122296693018745400960470683962129112486888735805134280055877469715447576709825583663348461879971056691124061150852656475188279581659276748890896728482748971393727024942049339222981534154822069335337597405452540133023483508446518869943404054624780856238941672743073213833619016746514927523858707439699879227397243376805568885318974738809255028949404101385852251606909071639195196326220342557236717611292210253511094503514189210801305749155724809481771970121977724780942501447461235052885283972389784894172645976249239645764984224476763025098236699204364411646365141133588309298551874800296385166157645361960603821140192381135430385854855080502686141795115505374390731476532640792756842139469309571749200841969097714916459118980291201885653165977807018290530779674240555794711744201348571718296094518551989686067220495953576084355194581234020964207334648536283564923096332291618612221180363287321755690812182236574783708886991737759646185815284674501115743067381775875467111475462560662431876605571036380694025110692494935626789884403523074070351033162337953361700162560768923441509579826973398873796710616192914168809700402996958790333680743446557833505286197996731575557320681031201043707571745921754437463327247622573682042911999040192263964732808124701089623520905861622448421219229942309053232498441694384795761558266280353789549859911784953270316178628037669855820631955807051375517362445296729876216698915252477220047923270694430943231083678971372597507126580726198854940933773668534160030321040195466911708338500324862869433170179466849962012811112380086260015318278947857729301988423209228560422809810842891910560827554557156650809192241106461045026365043868569772938605767490882222765152298237709747423916556894926873800391718394975453018060287142156548341361038182500379178396031425272077921381475302386866911494108445771133575990003993389144251737796456488500094418850671731579400612762117872096517921443840737240445871375501888577511509851738491721941429012030008608865738400725250002269236579399094694577709401394192392000969722241812936900738094107207573319631042205204879476061933896261826576693008541201948260258932935047895442494963706915720909079282600211043046174718125471647813577106031132838542522952949959169227283407918234646477880049336644950290395765572388056750348211470659640609232531757209443011020271706728466145284195375158572238279925820465165134391108122756026324962949614816103784737258423461248436603404493251515652002956718952682683022208971948581322850789587680849942933667703423385272438729567358716519837028905408680024229891849129469859853259912143271892129196667284054566892941719447360348454405974052819150241509714130394875994680454599026976264050692229753592349632703239431802480730828804492549420754869821691985703712307541499237766061025645220082262037400096582565552378266509225884306502100197200694899475605313180222229532488379443222470985716062288439694257503296799677349110853717644978013515971052917281917147100975838628649914979493977519135185848068412616414342519883076558943271955023640454720766516721884524707743311807260007655600591129519768445229448881307348421692952617851006040840660641308256085828294938130811697524214344176020410899810240650078056968852484512911381204870768223904654049358825418671283689587573130742535367181471662775842820929165826473940684622469562531927114152131049284942802790059089037035148152981662660756419249373262326429330285791087391835748352359966026040599148773367515351564169264820634703823745437387568431075347851625481970328902434738302149318433190810246654450823135032677581714049822437041796711619505692117583089628557717380721869942261408407316034314360196804776408060977369643552598170722370313363033681335852827587034748590403858045292649671419084772430206467290279082200267380957820781484248447243744517448482441257638420415410257789766046725081114167283845191865658681461303302687397989747428032480622984216441439213531021272199758705491451491173977691028579271280754025718179865615964964900215679560382866269209462430457882584008949840943271745927376621705067022937227896663813474419801699594096801987539950957006827335483634304638958407147270871489106382299145885467878259763364108009968513229821041563582216120132075786853531849045673284035194557700883992550092930673331874737229899558316147688302855296447073292134507654639480782153857450749315930624000522957212170299963909938659383036012831618050122346088289298526420365922552671178406402094447462616456362387958210547932980999039856266811898881273178812663060745768023268197919076976547403370168854497150087273553793738159131173411082722180261992014418125133805481940934125603015614686600296943319168141318072101711664255919412137720119083538371630901125443425606440343504689949267125476373104859009482699585008066626333398839234444115023363317228242454758853094295731453657601933557588276583656160884289408106635045951090417318854526677860373172207412987589386024451083655108433101437788915002764584187764904657561401223271323064263895869947765602828656450999778530664174712162674159518642302777083834198573454301995954608571300586950912809328725649930786811977928335056439646627423391590747961779719743638751281971268732660887380897564199746594886224095577795557830572205041380644855370564417482125287200175022013516989041540489940001631437477582582699860991607345924304617742495871042745074433752533344562527891320634344904358087120320925134403005778559250030157670400834158792661754408584886408488142135605033168246448358018204680823133360041550019315890283285643963885645772613960376425939761271637657813601710555001724348171699653491635211406675650388854371489572245984172888729216973315695871715349660398891304756154518728520702834630017632778745733287627895722553574688767939624584470533001744752431381446405098447569029677527813284755035580633281518006575703290431831678352729030034666722974766958051213382671134104511761463965897633119142241970212006635457244987204882683110920023430030060360111127231624784495228090784376348891175309763649076813384724246133173294695176497339846900274066864495775144549114599549703587808302759087365331092344066630375126703602515283352413768520791213158239800134383724254096511291133193278573339044489713228090192170868787554616185067648682282595267929207747185155823092674015459147492596052533963976225046887380932884658871617971599977857806679814849943082846906342450488220410252774067382907411072307516287390145204939190102354189875677243049246785331952679125830045619855826617609524571206186952606954141747755901536570418228214214996520379470979426564444339077970276451709318531704379437893885104023721800121177134802097848100013552774719954713413009988811061469737676326356167926689610375142778818953739851602659654202546522066744444319742765498558737928678773386851329951935635795545507603146244770277804543063160492926541802367258798977499968566632022625768355608607663402254493393583461616359630270562057277768073726384740126688399154327847331958347571090212743896694124818861012261764453066360902340266501236447639872891892826645679781682531105237245370295158913876901167665573468294804617226516743779617613235297757064618234042702037742330283081610534579028319892329759391496951173994953117288346543203559102496414682901595529506739377167555581916502695615648151983515438976966189401340405235667808357389209932372326168494358449789832508562566445430746696889287381543923797865594966929193628040958571659514011270285034728237063272041966437071522486428826063785670110575733711916739955941376890005629286881477623793039332439804314232790643200085752905692482328447806533191312471665372436128598258238313197025163351593177842116598914312056824145218515489499932956412023002423845377907276696296969870299381651684161238176197820076401281157660784837054219177340834194265767813120553055384176873478742679178120668090869277006850709578653927197049911094237861668807049169171351153796870330065437510314517096075914275869984247628281960095490930348770576745440363327369184793088151806885208996800943768215441578881711640055640026869874237443183766021542611358367272941700785799184917863849346260800976940306025830819670632951496149430174162284275654719875169308058372850995238863101327810706824173896548524287477812890803406283024411349202540178883841173247017089306518371811386868449426998024602407551709303087113698968718301512166415358092560160724359569845169182849301841035622207923408555153565670170086296909116018772555739690448566929930571291237585745488861082530493291178804616793694118751925640437303588334634642487129324831049685310487703497573343963141774434461486321630435438668464078716629104360671110761011712650496343827543404107356423123676387937809833916896064271773503628078604416643516972744008371803343893767684789057262425867542768274789058898445729385398324896755702080693708541423737511246803054843729463024395824475755855810862750019988440804871283734922904629611017848408922738718992890143017890677562421106596611031770560552677171428978432299652318111944957621819170381681976082068323789211347384822483036579001796025782970808603421654437855790343303243713889147159718761070339163248725890217916411180469774508936004284179008493241586758612557684277942275600963378021692448931921592905447279026390741800570425003513468876283021224815574110244232399131500310174262545082033347961813770806249621897687291362046499555194273276119670568492940043697675360044274456898637137693002537340616023787708100038078257027489223823389092540492242864166882266568974649238282568056048081436078403854496383199087434040643354970250825156227593552449699947782236242575196924960613975318737473893585938927186054981662729693558499747265115076544042396342611571219022762672902584565792776726214484898547821223876603572293535845509685990792545518906451826063201741710307403908335647241394430101798192091126142078714273817287618213631671135118733301295379812942694455169976948874938157328421441759297879524598960491985146683681341997774845776310284338981191621067454978427603091860271283616404213442500981000795048287650731985075092640804638658362859720955413862364842107273370468943417422046520357501757669053401001041185538372301147424368684242571579150469668154057658352080482266069148800789210123712043713220694675945128047557156478776481812490079341672081586100839924252039171563451584879350899452394806075957723773218254005841197483607270555243633189755499335005120438880856751581613194264444386150388199864773256261267556737494384048096246596186718481656595934310377584659290985994399991040236576316494720017136237122286235638769337506962865587037307202731003915444653673402024470337508479570998685953998838004916978458810326199847311785672917632360730786326837294543808681423086251677857264809236439471980046820021002052755162147515044111939368039576213187559374567003437740188938294510486942742236660169890085664969027349427469059966320885423731336742223266162026440937982019404506194551838883009751444758622092732503873007375883977557499461091913514383485503017153322682352621412142333975065144043918656346368364116938249172686644647092684882515372481937347062292260087409350336317822654411211235051984757401116835003095162902222190095769181381304463710673380525455341867639734285902308719717149168250125894254688561052917097531220318573617700801319844619574292594067247912808690162927402875716915484678460384253967287591752263806833931492836859619503415248517056420464561292468540850009323493071144167349633494266359921431834128109937986632883764053901025997984903922325451061994385994746123924498404620640203329750597498282884950367685483835236550034247352623383947053099106091559812246660347256829317168163875154702889207325385498504568864637457005898248008394569946726776737791405879658112514713045542910632822857088409467716904527331512996684013155234567239409976794168017440820070510774025391142351730460266701320554141454423768050932307796813167522510354092166702594577070926087970789600733466460519203893383441096352519879218311299902618528655798619028357610905217614706342537716483937962146599770188877850809931206984300355869707659942490958653890673329126428701093189679399434315347896659948376744666706955877285350931738886803755560915428812055051768582503893096054131179258830760277747138359055589477676104073533931207698164976549060589593202708265129631856676426294715338779209247066728226702618007967362669918363256197078196344358372660889580481269266452777720745394966172910282960635959030888415885137767513757664416650530507373344289791924141829562835952187426804412521926973911964002109832601441536577867723005967330295036463630267858345090328860287031765794050391707470837002984108578739150883219125974434055552168775925839434262773275541547402119531496144968638893876256867756382431410502067851789152810759949264424563438567246682915221214270379108082403516891577110799200633495681575282377671615176326347101951144684977701595042836098423909724309379899491375926415768412526889169131213038061437427363150270330298198010861574543284045777783207122479369044157112645971927683979963045686927648578249755962608315908854472172895210266154403164867466996527970737571953120471264462711955043501622630465670437456305718337863811043700497323133542781252242790864309315305591786596641845513680335941055803512362342404686743368164883922217977298811161384368918529105929437578846279437420097234439587874388466104895999663570188455419934923867886598116623359258194806434595110589227009636004699410771374171452076771720128789207589210693826895853232246985941924844140790895664170655169296428030462670608624513308285143928759158196109416038201589091962662730007015764834901940930489015171786094202426688086404258864466810969120982477637315281570287078149112091445755426012403038901843384138592752524273507397839715841370057472559682989032582963553842653344593824899554501611283477182334488464823021333931187380442126714243786861057785818052834317142002006427808459820536754522132972852421857614325459423815073010739754348232503884561873287605593002819770287387685984310757132509517285316143643983289415759480213618842665558358121454425737521564641752910997867002707309055585274183647031585367772656873130461521586432709821893373756431036478712603414038825940211745345716815898751715442636910614683446961288626834238857648865824482566973024051554555165370442474968826961687750483807100046277026549528519831320983914776172831985669201279750725137597614346337590723189665417728552632256801619372284021249276386234210027258620057246638312405533352028369273447749792790713851140956338650508262683610268903136327387127773976133631888355208786206315613481078214316012045754192746571375870775030071457339862595651818355882289049580920679346605041126082924243729975274111400882848857292866239714071138016079977108182479656593031601880504548420856073508920759658206881771040956791521177975744976848862838542513531967322396191499448070260298212596068569334217906580643207969527663776567540220284430482966246182899521429610567531496708651403658144305284260473247692455882556367184823745184725933338408340984730994220510944249503223139922516017462072898736587584346467886117532984568894324393841417986859295007838674012111655504965598445671942579581271839184937189054994447978063783432607718294340581372318107744632249453053020533913924393884637265291135422318531929656370342007975993072583360454683370759309126178004506742150103203827970312490415007185478655127849689619318280143814425595098041089534804049004994470068770847603775935833128949222939569231891339517082545467631522308910513276816271845396164622131002456008946371994537799977454388382642497030346527372779794028172866086835572873709440615655320988589323391005241214922954606460534452772388766175695831412627375591290613505444086683927378494738204862896312963450633668094576524664242422797570704131794789856232007035503412129452941041247314108879524314341653060307955052305938712411805907266209216297960154279468016014552117557293769099229045385620198490449611162644728415024422573235793476254923351921520775556583668608707727152021744715624110650177801448702870017502256712351783694809004966095103691976167750039149673948437617013354675631389464216704852982844281234977441860529747223100087502297230607856615597598782648716219224682452054652865540981810660487752671977988094221118502084912666518646733212769056362275381538938802055318308090004200931638498328403191052630041357102164112795232427918839952580428059562457999290467241041455472416287161871071001770750276268181165595411693292306347574951862383217568437816371775597923704866711787042090124881473966018178758543505906806312680428154975170741333304563042036406831552628245376123776360737985325789078945586166017710271510147648628858559205332472473565002079374006890431628801925959105089824611421006251396945360168119962218407760893763162062345524767785625587593840091106235549105063091524039515581080183373011273554988404664395596039342681474702884727592601734627940488640934545604553394696454413989664305178159305890264610075628421089415247516577612764687158382178359623092704585429630820824822776553642094419040381142555806423658325676867176859112116623315649644294506462266052100772830286972900828201584066105350185688855113539190121221812938070101121082819768711886832464678018576890002748043283477460947110812879322420279968702794579600845498403700797037704617464580111567104148498983495545876413275118299377821867416540728154514771802682285326813108558610409636848302679604647225595899930566350226456799487260055890482112030764396672324030076757270481788157199769593925674902946751130165551057855717993350859917841228755595004371802681299218235537907223543410633434991534763717473989987013665926968662397124534953260672511367724588618434073994838657221510025603161665628658250204355954445000758669552882778005429374833345130450234719737163621004556506023779063566479388348604819014903666139722940574054225541621399024041969213618461157054058075563687934225881740208648416115926822925012410636885642670320758344314038623703394509017246468787759878432971810126473537653381751452415376642483586112283567649520316126703599829434733326048615482203840877215598033879714234995289445238708818257209889671856810242748771847382438978018683161538225316317774195496893924183764761783853106962167197340093844244221222674386530439651384527146432880223469108359207149089081291690483041822081189437686329330973041387259392687590907465767194582016071709461107537151339855826334375247716410823219881084377205862305670952844186633975411118505793150300885783747297989867679130173760056946904471435900889894290685369686165442713374388337241870693645363910947806633267713761097160980369408459815994823218247739127519573923791586749826822879829000382489435721253102035934845232572596737722138313431537813732266234286395155521681956372627579952836404036584057448882188027705553418376501471877644947481530734555699064401520243732224224774737518705207132138628210783700695608968844625977949738284932149993849068064100782057934039231481947303394236468023823590682724146858744264708383776159059911203603896256365948121695283332737955150628155129053382661298485474997566161463437945382595157438849240959308425040390446804444261689887670403074503742155256054190500401927076359992960883405751378384910815510875171337063744992309404582581759553975302138271335105893702381877303433818485481058409192364077294566884166583513782953553316125290996565143202249241157513321258722301915624573045481716723165716231210207762085093983465908591420572329538987954098089977193486024863174881228162958079920947110593535420696722062852162721459927744523550359733382950022878126760237801406407254829034011390056632319753853644518877300091453389339750144815382632659403691177687126422985495582906512928550522742988542482071598350243004837480401639120319117536880229177250567713944953960561775031229994820731784527071264026272017209142644362518189434216327303946490045338757178476649608740838425651138260150917418963318841548128172891466967843141953911488145467506274890501721394849575606117623760185081749625303798454284790968031309337944325279236601019537531098691312137573393077071237462893872023789914728186519047662073487835666401626270889142301692937725883874817004342239754119003818690889854786764128545851370522089817962106214597928365680025012342960000125824041262096995994740430335705611362732705020609108255493568498247743613331340932508963348234127395431532589981419495886774194508710586944110190504978517999433412339007279397540786101135874164585763855802358244725560610350563541616313743166067619401094031836140526860955318795576156101953877109252432562607030311789678716313317091590815404346753645912498366619477837870270048619748339482253007308711078083839579097683150622717265003678082974393708074046506548961777934216401967360682055480147220261423268335255344418442144343346533983313058411096468665969800501214989941712681356499741718805139547908861039299363958783653149935782729205945609590393781543661153037825486176908633864928424072261000814659084439809803619284217253616748265482575974054935489268432270783179392208418685942069843223349766587470820500777783537168257973629265893017357548825444649549129069723117600838725310364743067357577878905161857541393055802591096995274986911701220896188109670430662899584523098773715599773600694270583177109837000485509742144590571229988850160933034327951041662038354380168418694129547323079126310577332798276460173378916871034907726498938779449916266755448295360351783740277168935452771762515187068577422335804456871256912129377157357289217080304801956963829989795798371965209837857607547147367415185706237837628291236518767504530722292752742066064734531212871450044502947085896261394184819728427248316986034873199939712998753870210319194431912948146539971795873411928857897704096572594227888606111850044905219801758527632025463963443758498701803628841138875201667246203532407149681313086157511508822015815777336205636238682191981295326364448243498331290240838016402154459031478060819289649044468469494479486483386636655761650648859363565802279125498464313680431849546056734924048682386629897636124799852148629554654639520463109569447634823088760025619233130041177092595778090899098039438939754919301932285923397733506691987861448208053867500868251238794144474292582803587918224581812526372526536979887608281645869976157703202921945584247591992314956942988045112786332083924250979034948433448125222963715377038976462997398306220956375765250259612802095791263509213415373896382471330671888184765559027995207004482110048080528344236223875582533998293528411996688753225473495951970630492323613675033405491918451595418939251862070006366093513265399034697735635130245726767388510996071891527642015505460604278400140109427166057376029516999705636135904353682099710468898041629201369025605659952536925656965665392170844008802617741408489239212865763105491582175920608394731903670259244829002340318445277001669355818061038608760862392886043191328578447216820621693094172086079322691052243931579363828749171253304859406658274082608123482603690378160890812377753960024006561770960467263022544054851877974049396259992595279331288373498921798384884539265355244796196087372541366139694831112092132178277770583405341877340455428096524859098331512126270888982430017412425693607398111301654323674562426008690684977337475314833175419675413154029212664262580328923109838050838503060755115682978907431047375816535007980194748168860391919893833344884111536855358337308952459811385123388232529179225892757544809184078384883353490017374490643419455991918624635617589895572016556451932121558511394196369083081109409658216924122807785026920113445288055204259139222847533993107219360772887133355554580146243963078497961766840822900907129969649508334390406019882790232755918466148479993400431901069790805717442606392104732637756985166297639624444550743266475411235948019261329069794959985857410592908894687587024011187847535808728312645930166769773825280592922857049257653818451399228359207381344250003714668510256713961382456988279433023798213496392011571685233948724481180691662269407347591689224484295580739886311543185566637976782588680439733654387611886810440336681175431053138329116444058760160820385998604133957352015184237715996957363715988090749272003787488477421155349789347672512621306820837844158444205987202692481806790360727275751267989086843632679050567223318503955273711093042741915031466325889276870348707906017023651529613251885014217159595994432585651543939304407893181282345375564664036234054957436294078914139537613349260894511601465593512790371834447419352303315993104094022265250642895400300694443410874693634398988340869338506065589028056867938471548443611944833618161405575625172197187037430041634459254187871294564313635344515488082583407517687566529015994264214418596474623253479987876422781103185665590717158397461087326734024449355212508262724728142947331270400354913206202079263621851896258020038277727892034060611521447753414691609657704259917175008544224156628378061223486015528238011155077726024270354504577572433839624351162199526469902955856842744696948335906078377877825113212354380218405077350915763553346916965644724934822412567395119067618674452147510618435700452399736484515835764697795842260217900935990965057378914029920691289884302822917692731112448790290658729372175030309379924749390222796783416787864273960654687772751155694882016690261334871208732114811898405268228884120902024140382100394220379001107670665479627961581640180763537949004912383179112289545821896409170417922386241383854655167074579447712085823033197206579453639111222999720442917483655141873942863910974242215354662385587055857386219619635508811102028018980918333181017358411905672682340147488265190984151604925093665889477765271678793251463539287891188953387096143810658141810490975986657908754124027628180827988526095255178133466618681268614959377098880150793391642231777763228794648171909394102242298191791084494031720970488033151714129929330149629126361340422097588034946332157951222621489700146584926170123039411957325064844265898119932123667695565854220062110273924591388592235201597866657638998213709305339272776045558715878262884370983978228634563017536318175907561019125780093087748825147233147418748046898351520650111148440026817934872704491350237181368142940789378464133227849617665236328061748620070250320879270658012662465782640021817016288059583533424744073413293616928852696624672585170735593765842951088735950655760300319137950767702467694356991834965951192324138190539060292624428155890750182099980840222340122544600437212155296734285398285392406940366813658222482368102260118225733009655999004239360175130155693925033946404875259095408612718337771838633044205176136804331638618230488284927516766723500974192358337811876979781506766084410882640876213933807558529891902088999655631335584293827331715974443274517105094634387192274343723338582622557579198738644886730894664773476743034009840829781126054532885178022025904741768706592061020844901028294301726341770885956755786125433355841940449788892390108089096483182882995300722334884300835349712923285353608054541300542639071390219310861472339982825926133339651036020931894187735693699263778597703783794729928274702588151368708007379258908158520698889309410274165885098172626041348164686870528421606396790392430152270296166350616149591827299867290562226618033634845778646944138781958520716133175229500374727945794718369417657131144368639307070569819269363220517810404562953339117888956383424958496496923442833035204120402112173752106193293261621136557708501784557965095870097082440505434859172330439620987953165153170734224174965710702800017006171288814338818585896998476960544998773234701720250746869821657369037669057213919183981468461055098922720843979049792958607764400169969539555153188821636910159551192110050898220482737612487276084990308780766360536481526741508883785923394204307163234363423153198390696375489206133907888384823793188185416608451094656741114444172237930518396792063717466469582654249407992354078293239521025021479738745048262980183386941041362991941134989442469286509684736374185154006272510127362541099484097528387317949220922829481830562830957909616691517272284979020949506383507265681497146328469531005073888270351769170732164357605023827208801443289097255420090901340174208397465783785106412589424270636080921002720772784169230658169055648670076041009483961754434180064248886497630240590559816485949511014202232823907017791040568374085423111404963282159836430064997906917194587195412998255682854178084645125640152113838362179196873646390763143327628558370503004509596570140692682392235430600664833885474819598321418233145005840032678341018561287142693620429053374555407117573860612614433282962054457658278436078120830171649377642420010694468049351723832783834736739871216879950219005032090476698598388983537910444702645349444366768895445336252413610265808176954679443285375757776507826515398397135142099073856630827960632810615808535169260339112382196874571876733148845873242554779382724281868305580057419501513940973831001306020312732314979668271021393912331817035061122892131994447864507742517852757855023564932379401115068756385900977263196301279864742551493698745156459607111383098331226292513308897098837370782480267391320894964884369122553639877832153567826247117925430348151816555511773656868061305409724666907198366879161266358488963845630867310059266534681226577059477885180690211704720011069700952680724606315551932854603768771713651800674497597131066148021187915964696325120349650983224109974713561040447347986161919385674452282667125477346331162535199345218228824796541983778882018029254973952590347497952964163025588758348372197245853760463294865264983761683067230007757602401670306776800213101394990397852759788047839764010883345563081120403924407849290529824293650463287483708160158215079286637049662943973774251255996751477777912630259729994130344628716506625372040237954826924782236528819375800413727498952780329355842715514308824828690941269716317841124272903574154576880239862773225738169632265977691837887353467457177037246002817659296336946577187448897244718706389511698634483628260202978419987023287256357968922673370925888125351620694850780469107189654043635507555192898793268779668215747789265653628751415218369018159678579317069534681121144419914823733428372789108745061505620978096763457968208454596055815680793496263116969934290869906740621064605090093628273495212241437351611657696620186344148358700997736743210658073791858292721106364492326274167843852585087273451053269594900088198102222598080986122617044251147359438492469111313518654036517572761643218882326034988965590563601304895405516181523086997897173020296389702048336954460187753187489401589305792576879374472719601987439913632773946660751310735071504991827308790813083225078597974173145801809581476616016265862458763721192758062216011622302513472930060107389637953379662020600330122146198185960823261838722429250803542571681018352804714546163481834632798411420877940811500870575542147608783859355403576399989644758402622749918423671734494995408776323190877733288881159624875106139065962988726902477862096348639789293371967195855840971966918632970740906178347526619340877738819819369896241823392846982979403979950385627059648003417854940956377274014371981129039152777853358704466139301563273823443211511087027110345601027926058366588682050528644500701034547121016100186523335194873223308377598705948383609639053745523883077768144351386395092627601008067417732579928923303358612718139268383750360184410586911130477699742079167271840537038585715189181619437566359513225811473911045271395682197115780438251365844772617525873362907272154920905086097868465115010569112092274227457320251973807134445719395667649376385983880267978276273414140025024035231611530044256928248665942455450094178539300675397235183858624833207908011209148967565005062789764759247320656120716474166473084002326124568311361921357835676337581916699130668060923168041105819919354165014868892950765248243989831097214395020099678385839669991548525861920930667225200758822393177200188657475391193833102951527273847619591237197618318426248960017682246684845660353375588924440065530482646587219333249022129566996332533313184386208539536358904112626843520152305853188197700245343541415812455083185358478423125836518524751412046991701132904277957474441952961369792343800350590771197757912720826534942007878875511442275511871140069008590310742627068935460827132191092889956396990356849613921118263531872644788648186991323606778881220264620353045059786198286117336534835500628083799029173279952426036044086463206098567890569215267657576510632652343554188620727557951860804020257161349334302987197643447009025593810846094338575078832934667341258354629071984720871335709987400057361161030191394173938323490835137543558973164122950404553559831903592681632871865072474095101941052815740652596711448654890719358862348038188405253164450465117805671524474719583689641134384305945084232838386457953008158439995742331378290204983848654471840969228140265040304062464877486238886746800325067909385907391518992066865385976793700709165477163826734163649494699765758532430483651508721724376846640789985196781632139163039533634212826922715663959395972098615974259363582433082960238239519774622266945296444758987813251008239950880596822798623205364218570394103775398656128683795713911232183522738485421587739375765812538004993935649448314401693677287049189905661820632520751450565786526005707894569698215468463434015583200894317386831760564720780838340212702467959620108792942255091398001867169344216144879146438032113136229845385619859992543818548925439420648792058678511920628686746509663014506178383933893227932863008396696231348667743602946830290421058304995135727007120104559477350670929417650886052365896582996895088465563205608752442853811302337094775263561827116699478640767035570941202284855280080437214867042832668293724402414904641558704891733013987678000279814540213950893655423592905929752959540111905257442029774209095368476633108288737974181326793300633955240539875720555089724530165797299466767659132520172315782819897852088200841955231461919607798430626659823780785245887065844201860503732051097803845402393852505443996445787340222289997481093617356072100867017376976726973994572782911748788185672869782364600428587533986096392231163135732662671215861615079275431852195892658038959257277273375311122141049312278688231449465710072161304394622752028981619998960997334631179632456746962659877801864569348594003084895746367389550036196451193916741975285091067059056783016160250700452977055259558031536637606834299224156016621561953686711758571306927574205752279916575275189819503838575432086716863268689333993630721371343313638376329161357401208115991916128929702931135325142246569943781345319778112533978629317043017935124024287440129950517569380300578419484845682446280364957690202076527196256691611529735783427225313478815593689496673037369997519472551687158806604379082451029793922664677202961472794511986274968689012257478462190043226160549353880017581815250048930627666257192742033237764557980070660803894726204076736382234900252820393658987560193841055174189250228738445345098613726181687026996904283431559965334989283839051436891821324465333984588996583955788137027087898986193980994267529607756820810475755764767908202257378622894838596902486612861174212979340878797851298161163884756768967643177022438693617131011083383292360651592385589808893845822144052647205850112157101873220778822474482138207402878246420631575155886403619725322990700650484953022734615095768471794340864940829360883756447362726876253789878267809278663484359332658345795699598862403644011869703052888070671388855875719081568368579627775072069533840317716657528936889874788831169729141381723530535997457654035635842828360967983776539754335731147581998243279089894731255127296236039258354248941008297887726424930138124336467245743354798414971733922961903642741577667038138618086405786969938579520517306599506479862628718758823445167871921609607165120081148949942648160356500012932665220565119483164672962234693945479768279017351848814364171701298862004113805466553497025857259691080981994401172506759433816438584732581502695669906688230675178910184163872615902371446716303810962621328022060105677576782209515360056298313463812625252118357667274302227074759059292684109829517196975464587848344816024043192347531502049760148977241909755534554855106567540663141032713764367146593684923762864328992517319780688413459930928970912454475091663809731892031193402864298334627804096405480406487402476050203767472306439291462315304963244539772446646061891713732553103873823739357060508223981234082026313274788062893579583207884273846752377839712414937070697590765281662462625303928000643075719855267933988489331384020452720905887128144998168768307211306016286820450139820850692021094788450405915219485005204779825157122447423793192796221391431932715101023935624053055574708435752738790787110735394555086542141068843077872201886484655145907831786836155065397311602414987716319831764870040157343019268331764422750832734935359907646561392065104233105378061478204376762159618093216468220492656589332258257940519821242026965706260867441786218721954760923806454916772707628618282309845364536132791007828972970484782178963435474958308701481574887405853298457323974311888472445432265801842323980583453563555817208960121451380397152435138506927927586362299147714854715575211674103217754999432488553471223327360780552861457654562330437993888868502693272216285593039349452385871543085087577794570966164985897289411025191198142483905104672242409166162025023440297801799537222006501111082483044235753067959386305383468219291134932576489306350981287060410277256800881413591481895459416032868907257183572442322682137029584448465660691632495703521042102629030003491070706865608752461521915606258245814467068657713191694998151643903956312159149263666630414966247334810507164810433085603318543504690129349489341378127187943389414359581741974359257659017077119905740903770769420603744497276462783536725013622321166248164153651796132543630285593717197513641368440339601200614600325288125853688329693595884404347294023851142883280976570881444174090457259026025745379249454993114727154599519483799955990195621305191260524813615964223603316085357864918490195014939567188273436981880986778918715888181052954264721516447609557091770241099744417791920177509759996816988053370077055859247895663943124857411572567596923166818209931844559279550989216684209280178491809314559669716006174067330751815843075690210998173907001767969701490480874269032363061142928123022951777285411607494216156236271455127742539628032010581877154464799944840420654768286619475386867849128198008122606762327229092291071113377457451062662623722267680474683370780927597652256988479475622629289858531379739843804462722402291286213384349713209857115917475872763268119837080182063218424460365813954163847242796109486100137727821293174671362829424418209701448973972394322882777161360224176979095860843446197130927209841717258433385357940454367872896672450842443180679763936055734066319001198719592096711862257810695023867011739653557991800311392536944192729575836700146041880971237510343904025789304153786002295711105109834608146756045719654877236359126462140898421176485800479395189678557812473249797809386607281536729481623103606266058557352988201137317137304109758936370654169105394814887927923740659878701639422309469350824554937728141920794311421681079084092343799828671877375755824350238585075819879486676738095052871483799575643044900560626790905009131475009756481404277173764500747181444261475405354961368994078659476190569241509085544455210625691306810238381118030958381610953610059242299142930854123095338385151969164883627945673869850829700082288370657796301979197150099225853590221488363178490441483225878699471823570380340752816715766788861971341359592750521285806826828168872668813308988803236225130056104860177389792105224411927250684088613015263137926624518934815126472730096876532669972358952608918285793415013835283646412047548490273148743934447488321419371620545426256686451972025385812420798478591420779624905395038694804724101630027604459612734431556354105944787179841747436906837768302883480508544029412799594943562584181543039542670474670762932806520561434867230463119622975058403383465578351668719681757789935422711575733412914296043047438808710994995085747089782470135315223143537243353171480644476203658862813595377824521132329447626660779358269753432339540750260082092916598082546941830999532534539361933860173528068081572282303815835039786737652841750430917412362413649425652017937728401068231642007136271444431773169347112780117296297763973323005004369276977298983395823008267804202264461819689409637623623139194325686771175721417254933662887041404089813209091156836077778603121547983531943118031876372285818224538155590294081848245810420352705917034540482650812357926142089523657932316048277134484394929273098391382561773094477357790085382765363257371743829565331304678273484012541464182253339220047235000738888545976661878198228750212692229880695372834479576153147123774224934645387069993898506689832028236052385951183442298118506320584180830811860629902773628821812595521284671472061112014731547687975323842317019106138221169592939461493863303834458867388298024543777600010737836223915887394704903916275759545985774993131468469465712495551105332667215712445773862193081274220540557349498054458770764147882228026188313344271336387338526642090659198130618472171776689713265863579928763061103985974590838237000195433210680349460358129810326336902195555801217966733337816603651161888545952867466968180482149251447035801751538149366726186979405108000853140430509952118843666428291598827556299833756319087588448757483447688934027695936221135311948557766096276705891551366579023230750605678809383790371548733852161432688517867220353370899662719619302907625314366712685892003997771866595119285613257062027066847443380091253901341459483795263203437609110182844877279103930047747172166606342563343425358383878874263408336415918349606483340059061378973044220865258368886118588576267526157051062957174156419991393781725936660462176256267292677872460787550906706857674685269896276365301804861037540745142674215028931044817007216696886495880922106341210175075868368392548870776525951936797148831006801591115186393597254233884133686480472076993658399238038523896320930621707486127330546050937250312728486888194656549939471644489990554919246057620356194660506821198878535100596878196973007842453622779409166641961323556797305450933077343338872531836798409887143491599090575667088548988250167371466022213998360395296624957586999954843121619568789822184341204827416512879872637386705683318212478578427948588597259378447766499499096184685536422977054818573015954114128270899526637901785944936302756452573736613832857358436117478457930052421036038743740749028143254809743064063237676384466817363712762146331822471294173708132753596216363747451979404166025588990279862925068138087983206482683495884798898540405814311034355454941720512333433556164605193204453266402640254075617330922473135804842598628826961010956450223864575343127741767151434689204162783349581335701875899700493861596590825926147291010830903897193203087304419829583616108604346443051306413169535227684763646704380673553981280639451276875497868824029773629574987461859611243868931002331120520466009055786273153409558949501737843450386027098137087278787447085934866542980819703610459017383042445353538205614363483203830021687022802014109188383608071485769465431281519998162680183701969920592320172937112218496654219748861931728273914936389379929000917856417041698261075537428067564450777211409039637325921232300083239445560323963593246658467690057073016862203660129140963607018038593078630818267770030859204185806045975374467170583711095797423599862844937791311252547259596476233473216751745916031971936350422279522310744345326898893457706110976158039646155348502146953524629242279883871984992682841619183513459961219935824332751917641276092558880099154593130144395947979059023555417194883610252154913433873606963746025330713349104468863864144563932210472978756611707009289568847338839099401566255171696420577265513091239052959587095189219268805441843081639569880293105849162091336235271259713906632476765218524993563027331685403755974764161954671241973028265708771053889938101299160474136870740075469544475311220593650399580811241045516854826009709750688660858746980451231979469250538808253997529808410995290391441758165440583890729669384067050713832038163096933115474554926692175750861858917433508488190185232290197363074705779675345218756140829412493076108599859522088914065655299779635087461045323499527649462700054187827135653018673175672821680148453187967445439330721247290138115676706229968260177065928555290388887703014245107557517329465080505970426687310100722490811071309480330874305096189882333531896887649860905149495422683626273361422272350954080546792958846866839074872902719363944504158473914453218723074048080376860670038586458016671068514048479990127373266208574399613385754483282415329193852226466097385230093149304858346954507528402243417489648176853443954186840137083267912001694741528075646388557771839748950578255308315832407165296786868599387525783798125391483995708396727418661016577682248004933090975311523653677781443512808775288046816431279650134753678618288959577392166840082254032353889927700201757473460896705321205542269480794904619596723648908842009190633863146039824506462319702495773903674787981525430370177848866220697795019359401066385998662451394050642438617618401773703791360458888544021591916975304857559356334558433560651387990229165579357459151277527926626389413434168917372910756781984065019727692660980301491858661647197142355982193589308779163571570572826926782808709003686697581913583860403135307158655955715810528405733019731051249463192394254181434053026316216549219879936917454538429890009836905837976372846951129184852573708707866187517393265863778823824561784655884002249334654474821024985151023576502751496747345227844508246334873349827357367508830720296742188912527420407878492981046134527374837451502904515454955051869365145953547107935053172778862807243068019238477385821830820992298978454226165510701596994265546327632954223749763460851554025527607774655873403474918979315287876816453122800810770172113201017916910991003419868343588926194498389341390562780618905113015270202726378380591986832657922294824262503427149899253057929197256768645718618135535725972732968211284613215291469988710030324765786695375552757510348992887271807587188971824702720497719658670973922575982713198438435265037355002357258335747925707104201782703802448555250240682948110355225408439638236627859127618686183476525455843203267787278939538046936464881612521644035090005546076484670134091834468653873748564063329696279209976685562571991668276414019397612877153820289477420990507917447332025711445165836155147728513438484402691234105072982751304650200632167712281570497414891765727617976118139572599590580643771096411970951851983226980420951717781794139080838438585866751530037082623351670297407078552073844863653658521928999161043912691178818582400620868016354004923554775414956193331365617964907890304289892425879104309403831668445336796975954203592104308642000434502861374256534850770132274727221267520009407583455695654388265088332043582719574275277445080670769460331279672300430715994012228547555890842933180881101586705719520282706645022650321953993109949936144585262524696364980114519875194464424827754184733197620043618592352288881188963924494607491125524742026736441338519897270410997303918318346430582574397581442477629877538504797168729092299859945568889614923156189111364146405538613824337822587080540874440780008981669432704024518650654039735654422055000899933645568896518105848311879927435565509232391914574230829747273114813291850234009662303604022398020163309453802513063471628423216615018377410516045231072752934343961474251816963389389763603516321131195599881536753110903724721897195678438516357500979380345626981177097247951762796280041301673082294117561002143166767954018802941827999264671030907444033441973027342819414831619665885689749419027817815000791206933817612726252758423930708588952685902837244531462412822034483354807501179839971312228641656765984834789903674746952852042038514570764326546777072515906337208156521839116668806634426110619188277442954504958314122744471419921660907090252368158779128925452208498516341767071356868733740096679302871584440461831045401619876223978974515037886282811914895434449701124534857062776014782715961154181790813226272615212240664531025699026792166331135349532977798336678865071916455655693281887977564448430763730082202718724631714703928543842165803073683111170144276336099102695004902997594310617260631838308211763840749856804911737134948030053222484466373344670944369414141040797039383789521371451849925329422898077652245685729281599260360109324975726378591406717081066389814416328078575540200024578015581169289925275487361128961598929922923075628280381671475217822429999095006475565706152705995103726036570342126524904786447454989314057971293333875447841841379734186315602974445014717456340575777692054114074870180762880744837754538196702997328899764629838218030212287942983080155884050389030440282153384140303189784500692102685326261914814068615303234060433207019896638445022492690419503070951917157031937244640863417120799892677642229745036863838715110124946366144998292882491822943936680223959990674198939624167410365343287216877149103813631821006410637552272108746685957572298928117189968035728495585315858504258498315962905425318773168643664611924938307699688320411911311560809072789220211509903805819320957546677497261541635761934449854200395976438196875117450390155929442063302699221312798050918065784054791560165048216788452519991233862977142177964264642486494340533833839842772883428137699286625669418278055037901644754671732685749154050268476776596755490558909740508004063582724749402560615979722881950691272885634572004780232207670510052439592318891726526751311294176656867448716886671131934550475110347946422727240895964226365178691607069633546735223535393009573529459253218127858049714716774074775988902870594498547949798455354282518527166050368847157554435257214578574886649077663005576339463171360422971078967799393005956816527720749797322661143696493155301717883879561115264133258557430974273073603862424414166823204569946056303138201378132277222512614180691414975788620544752337365716425258718484929599393542237314171006485960488814179351187083422434606601381164569820971528452565537404166792971102470969355272797678226973279191006906547609360279185614090615353474035150964532402864379192055165189287325253475396313497308633862282840124265941192764161765898612001369230915296788858087020312865201760730646730897978787542600201072036128552553208989661651670613126076749766932911426701866425466727300176362000891792267465481041379979558753821596884511980628737236639114384791195614487866260219565427599804172066229291463845929912305815515822071137443006436150981697562281772559175345765551578569923058838282863504770879856886905103721186986425814328756666407419408093234485648082080299203720638032206242817955572773028343678170715195789601832752021223506460810945787054720717356285488462430262543651124621362860570753245785746371461506436873939196766692685541394885234839186235301357312662983386147910790561624546037507981965523628095037637081920000583906232124132926336488374258906474407089434000384659665175295337667625872099170345151306137355831864963582910248049752695294327875116846353208495889344236056604324025938701707249516697867228143894345439051122937524220802546890127593560362889578591024690346636841563816109710818241910708124607341986072599247757339368925143428202350948150245776328958708074287242909975889703981246873590675672694446200904538258368633822944612650284476352080769357542292175383811600894467686364028068909407065272877341468549209470918195392459261556122434618475648141869976052528857838421005075760457471483278563146513214291177075083799033434025743890853642680143234917283199798859003097069182160464653503273762019443607277986661468880504833025761980987268506848994050318016408973445153728827628006373202070409934460231986780316312742067139637461401631930333499329666426220559658588229278626270082380832852929311488128535618539619986825012736614934750517068770677841515404214350644772867869464421301827677936565241600388409820092723536902444533430539846508249785572819198564147706147883781880073545173715811117425891979894354239284853674624476634280999956373591348425746178811631872460590854420673818631732743259499364330658075204582715533337081354609733799070048718365606637815928317973128061828692133009190379044515736155731494089091600638215941531025697138468439034753280799569266006093769644525091208609413717979245160817582701846957274759178028968000446701235311818335243824631724504057384611773607105759876570712929355678365051315887591845217892576442013306791733285028464699151798937989662311133590105694999113862802410296742467013820842852942506484276794154125589354451679525626484547013110956188781447116017859159322967305763107196132005078444041536123332414277100826658109920306479879861856644198481482450126315464646561258743687994793127432764836637242350278013712218105573054459679712394519711499324700431615528440335384592295019209314812599393243347282661898793605702401719715613277988207019702869263886007655598240532592883024506974454722846291761932945387545601984674840786946894598384226305050090209356041696140226566803549732284332867756821376113666832920228788746518242143411271891278020570268079597457639849802872336712637072017486393499858124803228448036948289866300769247355941546196489880962628614999105789122903390876602440428399781203813814968376472092878545988443626244670107746614294590351725547775014862411934959517672442553475142390807460726526906190057691866420889106086643050376692466031816639725974309498675431384804632046186169136717926818916459471370318202438912010780621448827329225825746238188014173566568791394228260057687894202626707332442556848583766563340005673626759508041060527853580638483819398272558254672655864271930235291069136334018920565621091340641100617875571547596882270594843689368523808063612240943259017217358712179755116040782926225405060537911427449572285615979069475997246369819896441747620047087096331642185608554387068558642785981198379974261358876082158373437362161034226250426595708819107957758298435750458259255317800140519822161590016503974762153851733621379369191160660388576255346758277236753459753341627501728061501543414707166520264174641131975600542157877070848844017761403624960034380757259423227287229892910389523089049206673487314624215975278997567511993244852508419436757223661877105221685475933624389969878247473810724158881060385715430680449949891623538555647936185533938999710638796806056528316776926158698734232659590192092093882544321435899444773705076323195986936689454881652807538481397787320869744714542987177269968743943881506693411199926630269647755189219924017386844090215844591210145633112208832336549241890493109512264484291043571845637661207610461841537997465116931092735876148772506585974997482104563377589161897539994115199992661895252971028386213047770970758172803810103143448088754692395747659716069124777211819141548829214969460782772315208139902130738879396545362006004324791721931847809720369906502893789218337544989496483547701587113251648703230448168242433170744717051110925883595076184725190154818318148906159706359320217401073744330589023580302808350359156184642090600156188636231961587439959562187112405492596826953520358824984404228614381944470331305270799223540147711725406685970884381847750324312584068232932479486079233649039325359951530855490557190719843151302993814212166715196871721700122817294631181986048574014593650178555973180410868385516237201060324156292429344994786214710814733126867568974990237544889762737082203786479519010400400454869248711175043364757064471579337595923824542378533992431219692155609143460713282694050383829087743279744799239952974449543105335406550120818031263343472008395061747496753248239003878720680992922346532196178211753589433949127656200490709463890271035769902670878660033444754254502093805458426757570530008907002489015808182186424386096834706865724755361003466474244715817005922902754503262166361992033750340087538248568374792345516104823622357992382535831529540079884116856126958292185663036336328155103428053478622858847874066036189257415868838433666042893534095556887709787094028285011036858604920538883445056031974018572918737634401533683762646487557868667526047453434048210589886317290984128552458435892941365541579797399817736305792302160914103146656199264953438572757888261440353798234668462124832326064825681749835978034186049553601051479972856718729829268688920625104900365706387798216868133250671739403105010829110552223026055013807731145442492428978474967976184627267759342415093178447382495783218458885412021740576934943964281969685289222345387922221793764919577443348100377562161574480132674691060406202380133136952691254049778329534710501182076872146105008068776157061992507197154658085635967125874477260724743555704294990627493486099840888256203662654049178352219896564901197567377140914821690858914833455382798161926358833983997530675463145569995298118725515182575944008416347666767095573329134262099951528797979309526321949927087448691026649892597082685962834194570407508379102496306026181378381170085560098422957466375045481879389634938924895423228890219811478531815181555419832515783311615270258910664779574511020534256351653105502798268752509383251226144393403348109303515685013807372698761158929377412913861851257471767384801835980880147809618876306442915871144707728553895080648622878412195292634749754683537010467399454330003225861318405291808844350866534136944790117174534168546938410784522795606141576899083195875900164486022439764107853218990708606887483636439471695905814659185161498679898767083203931395680631342571397297848204680062936729320709867715990213840818845350286947980241009108900886353728927079754913342731232062062879307225196583622721565923639188735625289376878866804096823268274905286590938335326039102647823362876878064089907369680728104308092225045797800259688669017274357585246474731458468420582001468345157724883902662738213004467743922983322732938914904295697127300365671321097929707039335228062856581906184903073049405445923658909123352621024606106083117025832411073359516699638325552741744488456137797805547745773707592342699550168964007442138862774439266657593692799143373157009709458721466484849131738541235052166375212399381057759423545642966445584470202633022417422122309707997812618516327338957065254786639581478955885641376755072059732900366587506621646658412820516816698000458374223145908511844734651329406670561606833660211469963891163323957218989045237164446197526866985886782641501954878950864767771425625033313093002229736261979100193684500971013434769945121040474341055336824209201320097666495179668312732101687413774407936145128789803758678949175151543567986597356002844928786008621843316901645283024243978673904025675527107866580913550707117882027937303088035873922156508166545389194609673063276078644942346771055815150922218359148893188333390481559506456483922242300321495313317203170869479370650014280806798619077963561480714600980032712013833914815757895404865063002778937541630555306403205594571545478479809201302836014133149306016099278154855902319742152184638912460787913017331213872873719621338562574904184512160067936047602783502177952866686457171740770477010504024509064567821064556911777734580432665220161103677743142052356783048344411512974404941201520668040848282448959057082393007786991242698878209031779512065125339412480549005315289441291067250948496345406763663578031583618863268114960543628742784461700578654552009010575634278980637614065079659003376880398796660790680634642851314444915306078206307476990058084493603915074687298796228437550515417112774915606286058646332428212159625520417830606659857600908084856940981462936684484643993178605762546214842767325338574668890784016521992522594304632306152144239162919588387392750855849117958992449656743814198253404632616732367389485429547876411785110474015195223801525294420736017975035566886006237030716166169712802267317745922514842688275163854783752400417979958509328392470459533181447883344674158534362532948847564159444621959462435837684311266525238552355676720866577127300459106523011118395783171420521371891044425146454282383103821086717133892040579147441356079454259039687194654412230205758337199847342764059397467470394143781863136367276689559933581838302045372356363000233237598619454904741535687299964041362031580383771360397849416419363405749206210291758874000244166999781372927945340867255496546509560104158469113500745539128340214231653263901852350595841844666256608719528765624584872589256173192347475689077651751600448173890495546989168234695521023665147894817785641091395848477385254688446797534377043651771014488517006470833473695185013529738141942475502849196491035863494944717698793745946312558870698888689968541652460660612102531207759383486636533193448930162528667124429896237557649650144176961952365786663785686345655620256737799569892771510739781848470227830775393452272442754450508675492068478734991539032626988951166665752758604356326433386900751786341572317860726056536666916525794426101698387145338357450750953613025310019294846669318817974507022125796888775571302300909588216340957017852592368960741493172845392055985814852067804018727806846414878041513867266867751424362934789813040244560058052691846816105632332253850185324495021342014645969344088640358729229177343124478995670642381261538837853127024610665888105416809803673620927781270711715796362708209064648403293197037799817422997498889144161729439852551479270981950025550139741913352049280971052433763749662570171842662127249423184496480338092738707043760949615712904309926945097880942050128592279826437463704392842447562460956801593814557138061445788539768278103204187943905106104959993930534248132781157633132347903097998962029039693409030376530676522175681569785832892806738131635953043213407725830453700547192276258403325972128590015047340505097990747129569792808943662273292736266094210366004891535074989427574662248850112385663128309212134129619481076529638039939629965228729657966630349298932659761093034398106774292649658290828591621319061574295186178116655433996588540647827697455978581355080639529868157185215620853974991321282230773051699301751936395410565863890684838363795704746340319206179913808702530926698214244891952685009836209612039932955748372517818744756053003292688373670192545214397136779799439263747775357612910202534843919629252443464824376929222334560055524168135980970298699136762400855228014303101026798649627495470411218757085685684804068118880454179850423253443457005510613244611560541518627674939565523356005108292860823508639005674396206048044407364623893908453550933991666992632942505515185718320434495433113707307002132401813863746274025213324272298353209561171200997137397578598986321985852323084291337109414538574983833527639780861154964152281296197707569415842853484348959511821953323871454548851187924744515305918677603792796723233030150390928673904619996752746665660663058214937848188628673024760412745017591924299726525186275605724006017711142953042857122304914872414209595205024405562758758981142675661921011760595353098854520338665949175390329704085156761363009489895742155244642552396910469565543631255989813533966008537120008684515695876541748242844822008889521994680461046965659053101058339160529643462419952744384179497994717205638191052733015293706665750811272001154932526749379748591745326865332195962152786623167968712341345107325259535913234690624740717830792550493315649691379112241262382539391132416203833564932406409910473141966968494942628365012864735317738719278344770704293022920839653076473654356558974541665189076169625778862380129720306743327498175205169961433518281959140996111631629428510734290658275853510309302685166034326997084546933001105170625894396841370500802004831966118465184430503493936603986632978679575266622777914986386640710407351916403580417362605921062974517800501234804298054596053234422734321392236646808198916523674666367979615235543072287597691168939648773530678666871819238923392217565679036978226385980006349557842289949274185378897660863405859693514566448935315144348966175874923862919870758353290879177154010434800407817407131283067205043114087796954250489796865322598454249695527593105870303456073829140271023212249459870791695131687612587476219242796245514712398521299245902373333685609835912105207471474708640179350862484197307878168548085139062956652010057875046864657348093695298411907943100773259643801782048646171205735049933105070753606887240054706301848836768850433150371504469641764124985164966760487758766791436355974908855937246246622289296855989782300583881004578800983585070937980170933707899843483395040367850733356130592249722760270610753671064286821292939362634722870204997729058889365334084576289872078694720407033168964409059012513383613323779701134160735680090466078454576810452959769219979385671398930248331612012178248780061070906448884694321242091413100184913993110281671031905773579519502436036133946184203420839863208434960882851997411076827476829542904802029971710929376853093449975818606838758676175522267443373784832281510871023174255062082039730170810439318120763553077052957594665803774889461455341651800726646649116361476838652275193458727972215637342477923572682268523193645964630756936747337089976099254518390002985985924826166152425815366856259166582573147722889133379433791854106698433272879164215141800469547966679019922373686962548163082086972877411775802977103782601404576794856843608162304967779949805306708375839629627713867726561791105242112114049524441495638528257023847970779503611943835766492237144500933318327974296124698395654909676967094252228074465543746342521020772811858014516714552877047800113955052647707053247708562158665876039819994753466739747060050816633459497624309182032231641810786344858219286583608723489805591783563247027971095466782412473422553232487415998147886332650251492163524032946109437271218882968119758418994037681347169134369669768887854873011379936549387479001792254428291600232427169537325514106771030838875952798073508033533554871335430409111325594615620379447556189975232333420053221360152735649238730514910499806955059220484035189383441709541603513363785207583530372297572009917240906417159024663695565587973357302191717649820365594235239909655613385615348622116994033470589466500044074677933702882082849475620638998944893690853362777025422317166404938407158257473612377851655276996940606999316760090917756417092745384667302652366054352848484556731012241672943045884087358100494356127376023377923644691126653682070781109434362080410261234140596146729688592077297637630238293681930562978242610802570885416332769083628085321738009914912208853626983319823316731188977389331000582397858982499336115712396639853750731020309678448596532860348994782189500401254532833112640682557978594316186918956590912768614576790120349586631610941328183960506180564173549915611791732271706030801526017767097911307039013028534267789981632863755930181613531147651551584010388312245808813253976311261525310392417538534025687946979911717430306086900854208578382622446626572529430664935761477450689009189781985119235499912208509493277811117437348104764457654932912905343921942096815030814053857291262912693452863530284220479785201774018956243377080587932580681631392353501567274866911197884607773087281289391895709449880013858996923301891414221918142560492909159417566703885200928748632901966542518692756656963454444356578024662266344301003289720523473955558031538129364539379801720415154646193053338431204736723591513915622868443121147174902822286257706778790810461711635813439610223392104651909057419915665271008180696918705922008103946036718497724771809233426613431974970492385017853456769416129883349007809570235271832340210963970532943954383971828130185751168801881202530756589698899620392857254723583884258952234013575160952011721211383920811722868106980893861202145319633881039471325858906380029185196198182740233241411118788821648240473956151659704389546633982475213669786153820960505061664417865642176991413601748264829862812644659150652078871677616477573279718054645416175549904387767545302975189608036543993363804848862276693984867336684675691526578121114546827837999938366739274697248275718184646906205254501833500177978347286944411919941032614554342155281100536922180076780764989544743278519380346314411978720555378404289491738341998471206377875917434063681879690725567851055625775778400744470505625866968608874732907471621022831368446170460072161235860775389317081899460491519453556946469670700820831357891941157389909678559167931117519367396199430918080622289489243121461244512865059939759293331762045799960778542709307061018518566383836426137695421603758237295979979248900335637189366507022836392877718200450271301192778526076809302537101123413435525680153386373570316529243911701767822022520888938285844737512254592935631609906263350931858349061049443565817190797528211382498653380384699766489914683250136725617566641517964035596270566391033655578196876394778664262410735412064567016478178708327274181131114686417425343954611070504122407277409275565353595189747093207979682014851291744387075674865247824063356056731869403007231024861546510619352914486766972769045098515784549615676719876237366743226696739058355912043847742212041669291425514783976871690475711643598019098705877056515759825767115820408162994634699829769785712242936917542518992053869202570332537377612067990477797100919726804361761170357837311805473341232945802940358539203649376738181131230874878872246563754814980345530469057574163265675869375089203717899881330848575016842265896426483693856704698368482473254571979955177507030228793278423199260013508509874602369264409151618515270602178886240493116301831274957238724698312531201154495462171584759391588081553559305107083371356289923829331324498090528723250117058263641000772037859465692266664285988380309240174026052130051199098948546928415165147307849942140971483805032459424575128578250254617473743724199118122898976165847166871948010610181094082549700217779101959767711807034165225134350670721823200218803539913503415439393368739622533925791034609056884777842798740941441407360957423936568943744289745177010688376395010430209300707387399474202009861348043660958684228658432967479324766998724802744746719390865389446975729785777389300383507622908266650560724247040871691590754775938059867262136171926466790454091253248845061354831922541184840659532933969949351805410176336515676897326938608996873044334849354769432893065365622091824226908780358822665566771157835945290058373989787610280781838577044315062341322765761996474805679349307987298710593029914186254890848974783614325357168515351810368063689759391199183803301776162435642843580901063115616759669012871089549324533856367517701900163758375044931333213903667178022823279513018755741559117559820495462296242688217983023473109124431533605146841983418920696998822649733879514763251358689867237375284184046713885111713204605087807296606948501582571292384040079717005465086528438531279627142873986483679720425103468293977232447546716073101115385522417707594563109200493301320767582858683043370660324574436476771395169463904245683628961419057201002745667790617799057520748914669729082080809042809094429488531464416941805390461863689473509297677654110460976591764344021437151851234236575695241185936756180466242080328360279146104959495748297021616065351869926505261996061268321501482044847874059092577899857727495375722146810518004969448541544666497822869566089245318428661593427251708677292660515827863038424373508750704336071111425538902986049464975863157824155279073437395808466451801019376097691720986660143830955140821378419373645492513269551423023404428152779289863700018815261687736863356867405998551422305840987147224423809400271513587982535909782070261839035722187373871067785713714667444694136687868182822542617486929890165136968354549940373954454129399389384642750040760654500456194447481526529540528302303457335440675926745179790383131327353725363666109002860435309393003633391799134264412899113275951536321537084683083528436060928021675572598400904501505574846048227156938172174811956054173252778541408632664292366205145273184441304046354032069613359805097514732091122394032998590811564396998232128136798849044530728232797706414381197461978394078146508509095454079505139898543530964643515497477967305388615866588055713302396300524352763411752959939775081641455071076829379288256579241363086949543963918743987942997933276121324364987558641788762751636149031202969805414949053806066473566306245268648150638410658851132612346548310534740914581865060962903707298052990593426776652505929130311107092093429890489060328758392166558467280422465033545740999738810191927415689444381896748814957189778797815616587132350514664194076239022337302518681749877813157783725740966132677469374334391590616379873594129242980213427460577240650567616282178443525800419142554763716502846130296686677294736575094956953618853223714139757114365332211574278058178188423185410926309126638474832468756294117576454646862269051668632327529802572944669954805179152475731406938811834933683770736156628827325253005940360192091449330644093790880458196176876508851674104641285059011494860244399345307132807060890158953723561619603416724634542653360221254695853660825026113786688609185989555360610473832946758278955006641033248652544455075059224666106071487864042122881350762472283172290367367810868564131549148362611832576455974889503640770549394345699883484720305462159634817445999993765109753577913169773183097360592543660441796253291977817790606591923202784992124084035613912059006540401354239669486493158639204641936199933145800974406304388940518228500879538044985233632898746852900337744844654653955675933236480889695258987055221666902086455875116375242892514947410394748042115105095668152395800923381819474461934787672455718162681698228760946034342540044801864297838190014164318703930553920803510844079664918279726214716757394746414680450428374170110694543286446635154502271752531273571422299057372116475155470558503676451336241120602745569669411309035184553133273843184230396632518377920025185336371308368110789613203739237528189787915979797222317922048183693360318922428644324413984820455415835810031410916805577554322935020425255264436915170802996033097510631744865005360971895321472596787613158603629598463362511726079739864122251930204462343849160027086210106335137124625048424686916491051302289833005195981884172048582842768295039744070354622423457400067705832484017665555313700980082719859350630562614633438722343273627917018034118122496534050147188681267351950122589857597168364216240002574822838989209256566719111990874470251726881166930491411244896531057812990277126635785491947165662133604148218601698631624090221563342291099181155693091400760664533092563725389507276518407824394279886232588087303785851376836520631341113359791870962515424409357333192180982363735963547134634293962392042493077990092157547164358946585131752121868168575814031492006669079217079443105085677397465999599483863966750021521193023224878791971286542706837745725865485474163680720012726012017098888886344312846740603848348090953157459200331821045471403566414431273978447575065749610200592277456475861640309306595709313642603276836432898148347762458624468667563251565586451927696740929588365696506925936153709866505716550768688984451467603939020561331667014836690493490076349960775325976554942949650134830856206346186547299712995826571960008280373708560514111614533620600491687090447014727015708238059777708667875551469926924368511926029263154224361723393278460880112086849516013758099335584110696923154593500357813415360572319422867051317840045123235095112534026024818232411505112583482855737625545739782837574016047321663485714824024320340190376812176380048338677760723328792206191234829480876504829317698417347892550514404983750439068594832253233580970857970113570335859091907234534623389052068958121783513763789117122775402059822808875589290307023120605063265517264550296414551410207636921438726457454846023174838406056157757929243208410687638262541156411818302348933572832455980750158324557428569428298897408019876486344423954752487349370765409937066084454239497063553051389132615134293214564114640043213878821993113036469814426347914723429993747428963218977285805684438535216377783407016750465539285816597602858022733978211310923098681200343481223414059872236713501315595975503159961475528370486843718016740459151447899724742941343764534563835657926683256808808792432545094008607994943388741786446556919444659713921845302140024273650218574339937271461946613642909119932723517747548683284642134985848680918120000916780430512985076845275315678202793438729958115910494499312777665747806317172860215098586786209715423709289707406049340909256621603640229842716054764330691287362879290805531905478453981515610981675631012958051818057448465901742100413213348726380677753271040777951167479377642773792695027496881276944095342519938754959846556214434285211142520890325735559381688802873229696654070645586330938952725650233188139532633539476664425407411817080839627670865840214008559195184083714309520856220050069865301065703628272298152809616024579617980525367325569734414623786761384851807201387325640335966337398146616525279523294309908075694649074456601090875292854462961396441992366140614797651643252900071322851223505865644941700924112228461117030836174558901137888237054368661155640509490997681830862719480677492627587177593700100725431255040510016906531993807495833162673523922270536875138511498716237363373743553201558763051002699146787556076652253931636788767173791568945089565254544578439113817258985931775027429964436438139088013731102900953518932440453332636629668746623954793389110608381847680699548840910794649960424451655328953020680003853221220806650944863018128507921525263294854062800435615741090250153512177244032093283327155376805324939172069932740903083133069358961725295881165255399116023087361584789316484907596249009572749898442406631482838238444855885461702036398422409346623799918538958091494404048219973685127768673227429373364319008281711578603386858196676110477418615091033929400297881083532064026321869527119873018567729531830152672357536462327806205318266796864899417852792270148947831315271024807342699197420736965782135414704947560526704927857723349892227983512205212387876145959207330824292749029694956134875430783053699631826233547522188599605146982527341766628339371856317487296262563181568139790186579205085225736858807348484117224102809343100339756927077370545836674062002263485133848322987497459342229000104173338039685283241133325941687387828497235700858847841585087461974568320988568383208259798570642471651882621468771680111902236017313789331376676054026774698507601738186497330765531892326995044246297492510960810512745915209393373147426833232981567114289860363882749931982385214464795333520896782070965630790140310803628574694883218571552970132281290643554767299028294242498648525927543905792262711020349250279139601912825045981153790840954696844022179813353183818176025951237956890379666219357435258814668206315708574813688454592533143276928451019587618271731407479290970196979740626910174398368759727238099489291220666195477950741879950183727440388213210317647125429442380963684690921435681516664646807039243560834368496778832987882757196926805429408127210575665960415691445066517178755177241919583026911307788947984128619162144658321574713241096730502509005660899937455126978595920917679094009918596026648728824300280221656670921616588574266131506674437522250894994431946446106623644364650299207190011833544701002687207820167560646310528841826534556462031705491699298836685556782504377373121703526003308939665979549723636983164343485236296459521565894232054966770764567240469485382720924852467904563059539906674556493381301322972926906543047979766520977662261035725807798443984807090539763291049068375576621169107374065466677359041414820265710878918185635500483206161503954974687323408024357023021714730991229791746927330992537342549113957275834915847381689567406111424855545948030980535987774194237391682705555261270106343129803253960793664173815237457441606549878269593073337945186194845219526787326593249893954955412018213240125291956642799849924156189013965145328916635671694118948908309692148422078515671197674099025356535469623145845764485817564346321983832990356210815372348682729958307245002461394142057421590938580334995246505799997249110843751339108587218648180208764637608533615282966889275731484715209604859292825852695694233934869973073188110567390148893275174372385710930537206552267466301256088483533748896642614668785616288917370824881680392126417857845661575874103538424362172200192482617310928792010964638074343947766672407230866599701699275045903099996849785683278856975618440820696718972060339001481124290131960377577419452103798211074089438996003711589707082305496739659989883955448013671202088530645855986190092469232544618490169675865623519736115679282465702346966894746102250658351819937501201691762459290486404354829943188240850160574485336307385271000078900778783973296484116600168562776297286179567765208136391319874774996520659427468409565223528886287171444367035921411127676609820224140335838743158169912072173845022986922494697416400930181197731247145478003704328510400910674024015097897106989986012163818138764055347350226060980891074426589622650306911933305676305355868879037205546805943793998551263798268960406291422188511872280778210636535107815166225474675259097994025322781178643372914939070074115920408096547070382417393907910638695045647219836518039577974988615222500038230732913262276257733793601816372365523802917303626291225818832318885183555410363051044364524611239984211553034348054171824186014080115138407924717195858459939063531786815911236588190879905489485779622159161841574599020026426505148353551450861714039148800245798200007664297174989204176577337940275604927998431978745391327187840481608904351397086999181705708222823932945559900920268495898947918398976942506719215140630047043178676081630407458729657173400255726830355751945187056264308743121437358917179227606277147531278680679482715494493085741715238545761601185477243969051798651060057837541450505140853400967480030495700477768361682687518402803694371859613268936975856428550399137113516711113218291895544619650792299974388263129037457853252439212301664721091092230949511813708589849089855144364706724315736083199379995539202127746615130525795711665320528534823903991897910211779259264757658964476213335057414057912954699865942887468031325523555554730770348412140289616636006623050386361959750130832009626376215716011078355512720640807896642271361235187806261826846257021656833524258669461027958890645251089678845782818766257465809297194066383395838938207093485225606143693207240205976806255806500096156075311112307241845157967180966554985572305747954017938398793151754936315245606066664110847746010095839333115581214219035301433825422371237323025288255939057694507285494998969454386780293109250651602336052015355657835202290512867518937189033334307350801614012118441965749748467225198713780615843624215463330470007594844751252189216750332819375155963090628672883866182184300265744784285330822759281162768590262279012508310589092707814983135027001327267669405901244363906237212464065269428261809639674647069929524664384126283735660137980892317837653644906611476719517128678930399980958016664258571290151763797777393852189563687299253121441960458868118694549584094236874070346529803450401218283989355734945258060295285847098271475544957059492269685075962839089969645775054817924927853624185713060159122969565441820054645095383254513943850732572034812184018777283498066218196039722927935704610289333104300699527786370320289727996814918364534819202058648031347007143092666777477990652411495662374901315614994189746814024959641403167010725631818563250900103973663046935880074737113920834721084690562089840195717720235316806194416138037390678949993636987899464540305716452296698053870261444384240316069444971260224981548756455151771866336537146964375859359938679777915309562629913409686497925684510605720632799557890468890275609073790841660223176956670799173384818813585629770932739524523213241807753690542346681515208445346945354865754846461144960092252185287427322274259937990632862247647939883551203231355637903333693143250137823788530151184900658365565037853728529146133425598693211061300011391338697773385521208913521568162387910183334440683674352912566822273197584105918898565291686408118328619493306723169091518331569333231481305610559566489617451639660629299781795460541431281141819986173952367621051756499851094834483627850393851128455955061800935298497802202803881401997327516060842251897380446817186132171518325466200191879113966458345674923012004344423795640195402977510724318848498620100334355942078983398039392288014878711293010309414679715508798302270769122216264271116034824808171283113820830644063764934836710699016097795566497237003000558957001184626706809946050703330020670087805344786067662139023450728933817990594919739770172987170718402140246448206159190233335675561980874300444628439995095779690776644465131885516764423158885337149921857468378717012760390613837139159618525433369952837271135069050630986447104145672716677808013446592102989828180932458039415886912869442014759687455757592450785027487958140163641014262919439168434540482546665466919185253152421557605791412319986793682284739443041676346873045110509298711040913056256092133087128680509789247539929401164105104198843247747245681102527559231575877687504909877596892260934656113504545657821218243566235840134988835004794823748302610799851817193945842209090508211354346714448876837023416786913978847885112299765652469255924469679650084239188907649469007722652051561126045461696896027736185443003945222519679923054556048649828009679425967202357815772370970269042816321016224387168579465551550310419523866938523993112208623605964495677437713688407605866060552140538862604344962852172490028982985181079093714366360255122690362393753765548863913115072764220713544120896275059634070138069057986201320807680683628565494431261409826808650165056118210422483981884489239549818150966324439106389969430932628768034285940196847207698698132296437812852485833846198602718352428050011436545108935777222945842014531971966941734337354932944083419151717964363584124671390554936164027977209682760466456887779791368977638836214568728678049504561194532812927532464541170278774844997432988417964832682262185415847261989820094628151190236431657018314352178303964800042919659406101915343761966039072312643575133230517336935281469536488238380560544213131560113551858913332997961364225146038070923438797492876823416420576636722421698986252213875449071084395318571551310670495693626324629649146970671392547591255519752469215444877557975554116691246075714785192619625953018103787110299639351607890076601766202080612845377083869575973563937470657809745894826605507915757738665190899320075181793293543054656801971800745434047703828924380493624609320267056068349384060925874182574260969829545639299299606673525681872514927878547396490088415619491584735453214784896410646721864995416593150169192496340206276946462484663985991410117410829315832748870773922888613320182298373551667241239514260487824642285500805979906573866601909644558802870211867795831019737482722268489233386219581748002609825653338967297529556913456194883236255591802541903664609760376827483472398431518013629518251509067915228021538836314342571772465706109513627429997707338386009980358658869639126229079390050055129453551918446308799952976554977478854282605467378404866915967336421028227340417090567283799023241031420016251298033014589999777768512038981592291887535976901443379036807988515311443752378362752412742675739084862920430237951618184266413524029617747797532687468529564478109676299040808917441739112174896962475292296948998755476433268968077244532130512045749156292346340716230759338046898426526045305877235162940100822679752082611685397767107767251211589273530170938208926664440384854294084351533820552191541375756411060000432403224903210544472774893245448584574404983169641329120724171638484023371996700998932687317244598430826450105011868893211404983149989591986475001174140823934266177025818430356915467979318581856065005636661566133239218363995891103664561314261612244681157191891308697515257650656108747224163693983082763707910620493059224324204940008254863400156828130180366012234885332778166966580442327984809734665161453974511520980577820454830882610446633869350462473770942841733203847238732541967372723188447226180917457327180511845719584177636708721516471308250963620665104369937378263642353007978501282078443791908874566262156647037869025129294191300957550357436598591857455979230637624159372357442420289840907340829312148841373166061220315244352913005804221529962427312593287388282565236028568105569421252913972055303512987014865292120668143480664374962369035740721810719086962700907505056341614521359596542344653474406338011315270390751382589625399287773393388373699957308210929988881131546732577396736380861322453699769679780242684047287562974400838710612867099983983521475387443861023797604964068735438096905271334544690607818864937075844708644088598454630826689030389643922535965892109070683004147756536797785016707244696606258990183905098250478763642560969427075903136408297873284828231455114874566681508076877502342451945039040533430737010258154138808279782010623311550959006312543206352419830727175082762339831926684551194711366315929107893399217481250321297086906719327686094734761717506505351415949650985418715538681025837842967424622555617202172312653861909696777725572610082229642888572100120858965170367278675484384267210930403886280084909284690866023179872992687601780295492978786329163323114507359521619219967217079626550959976230659438227434777774514167014637270263408185998125555023565387169000114557216235988538152706329707146141805564782138015708081428053069203273144772698438284747316220047861198465465235100242761107363628218227045502659595571340103937413778544946354705253624374136814778846445323404190074384820935150775691423048883457298636992894157886241665029046256153586910365767852994172265359896139542148143144323316478021545644549452031248676240241865213247827716427156336619158163276834133529008923748652804199775132562994174901952756154115190201754391032150424765158735910652797473109969737570386584671803461832007251517684902384651151030170626772166701927272980706605099189662041825688039964666668566747400201403226707048203688927377006445532187394680371415450865186332978208609320265349727434575799814155039434233508360466612664117840591827635693182242100477839133998015087597999921440019971879426468794416717932522696760501943148029751276201879613405856521678747413124692704574932561799859589719860390219228424655604932658689631248286446104569600138151242321034163221590708402537868264157400845436650694233057645871021129621439652891339308415471027023514604908227957529060465231615255966559548304901764668999277245059711898501655245694182943673857682386199297215686087850475173144682437637013110995573491486137104794755455004389614697585385146208200697175044711994500687623080649102604957729016548345693901219478696375561032867177182943543422403395491870580862984023911253725488654934147237220811135535529182240964296323353226670381640032295205535815330343969837170081425429353947935997203082913994031208684604917891013831718131729791741064342047758244040864920284174173478158122528695655191793281029871542011669471807115029343247569755526764505578798117206038494782561070626919062820277120231025398282830166987508194513637789346226961235541131609254944168756758615562512998929919587139541657740232661165381161213494604044042736992904028030565494382490529826134392805808619385684702104750565490156244115540217256799789941206562317198815604050273061610736251331510697649234117022300663291742690679569319605530112564265248901950909698051209422006406034341732613615088136441288029341125497799119920976091366239047531859474475681605127300008803205910676559175622132983989281966503519277411626253798727320891263952847317908929604840090209314881462900105544855808090621067990354574804549315389708788744610011228574928013241106376422808446738945506793825721050298623275920742749977105744314146936611211970364830108236140332549842743984066753542026069489770689767727027812024112847477803405035444882158341915750610299762637063109021896885968912571118552396343304416866912101271189248809276344477575488995343964866554805623663260681222652631282226964308842442497435030991088891590030655550790379378022800286297758285908980677639798565989387642081206651283734885382752477470276704472781977286698423589433402917534831270742860153364719481741278637069879774052017908370630093224187657067584525854639133088014709699199001612877587049375039257721907467370806623416844992740637962059064067339829215466192917664677337797748118725152426936454862756441576135348111769754175376812377058105787007687094789838803904572398323031519270142648495296010958162317101322919019016426280566849973691629377296421980590839476148815975789438454254064413448987860259681908749056811604911439585630955494403618760050376396620335565327698511185377318473887357651274500986837505594466555917476213969507335435889301567288980361649117014284170706400555148544082048657684823881462900929346888697746909812325636500860763710604023596980714164500939507306894199435128043323443493158638037867596472158027115513569589572260812859550199911879563865356006963703154735302730252522834668443992820133767669891994158465662214928119610289902559250268214734218943484609444467121771811006503326475308732520078485501345729914164866996541269628986020139238745661002911698411173351078557805979220072418196277472589819079035348185953013624368812950673485492644285568288981387990780826950983560853013622734904154698546438281336195984670815331514287610224968297366040214641554396514834223002028824852244357031167686458009821743233988608727743987509726977257869730320984153298500224676911274925119074505089917489776515263302331107260523206591229600881444722996297385663951993319548701569372481911243786246514915938350862755941722378003357777728212371550474872549105274626602390294911473866593772856452336225035094110059953534344407119214704684076626018931283732502872897949755125562105950318995249454927294793204436620697650730674164067603712540660248108342854103588778307579928971301416695122812471749364673408986228944230616568178830849683779791709666032138698239516767297836262856737585134602226095292446652261832639281906466208135585580368551431645437535131025182337486709824105348420136807941281782883646632787498392486592000533175486504504939431670292950310794096507624874429528349630283294001071668239036459423162201666875763180614959551592845414271973478764130269644047903426929860208795829878140195828056638418791209388798953614880910678924049298330376839217316446042642019734665947013532886171635821974504909600151890472767543820390070195731801533848604584112560718977329676910251160416012040189885716995542679849044281924913811309316537035850802757130000898858075979298789361767057851699802727747953211592191622398264031688075949851062546954760520827752805137466696982959836781773243727705909680944925697239815010519840900137203526952906154701537371914387148301288957293794135568706028663806611011089634330269139595744538061146369926969195156350514986372421634500180197087728535136154352111165748818992656230722316982587584861059443155577514902251814932706725131029625120812225619637367891287321484075408510084488564950674872661878316851996941408888334373626160153798814190226044546028217276688787539649059691074167247029546316858402549181504688095587200090335076528186595945841859411684915509583517919816362287934807319763955263307091150489332478589527853237754800217324259565987170181396524853545201078601864678330705536883502852818530554061781073252915169489800942817527558369968546703607818057326266628035827743138880324993890243600606633573990640323353426495178429363736876435466753245654252116874543562784868540116299767011856952911743983253887384255587064979836342826296514622383608016910346248968633708190491013476196615631366209665126246326370627440610004332119722827034670549523259665696039697521659861284945861433941748052674173516795888249141418504444077032593278337020587407190543093303734414265465420341577499065352218828480821279147581486156852186005887649798156292051050552505903542654901997361318439519355916489872194359025714212746695841099891229099688696015452311373581530260379885497832962789894903722181425846199123212391041831093722424797532225335173107399261684013179173435033562957612136916885126892203440205139986585730078900075872612486068694638529140828688914687681193018775566830267162230332934486624082601948391232484631056888025299526868080832643812099661404852311067713219679760715299961796475150064899944079272120774421566645704081639791717592033339659778254999024286498877814243964689962044839866674715924800811291098269770561040542394507555009282426086269186776126693875876636268739327792686769375101576641771981442198640666277964820990994279874601541468648690453224444250424733483516145968012905860328004711770744804635507736794063217901512988625358405134951800391317390126444148625477123768916490223578584615657773174318535641339491756422714709286209621256254570253755399633045729206956011505638211893590387329619875906775316022167502620372121553389346687342779653328816264187567299433682179681693324320965224816184591969812813750460313743531396821381107508105170198792781794259281659505709474456781021889823354249557544590003343116260687916492291696697750852637775338581140125299663654437546235546879523847651556304408839175006144577066748955692057817103272229796580856266606204964635298413817713958863775045149970139162412570196844915179957466894443559704172616622943046652353476919275219667632258162857808357183172215910245136993775061059999847997094731090513180641816284834125936030925724016352895857625492269863124815333141830871250692357139952033458202160386576056548575651320768709702619916758431633481203711405561599168817164760197228451863635173197544456976140981947749986557366710577322448253774532477335321170534268809966380257472293616687769732902830405441022387690777394129811521611303320780519363231055652755699569032233856200327231066617906941908553863678244899059476297249391074107561541920632127271734424700869105901854397960948121391549317817888202540899089092829377626568880377338493052793617341888622166308446919256137197121135050016428204467061018808510809389493750392604044408189176939819459277638192360599530618818544035967146987396707234728540549246780874209495600970950540526858166905231724320112136183961396776517331712168972534722352188295302797702734710337260080299345109757435028502797656975612006131913915078000122239365966230224138841395797416444812842531524491467067064427991518353054346923147142353865174475027546047389271555084695250674417150261184236007813272784146113314268845394917756923154191888558305497286685284705414977519411951500446222516501447315187988224683935399035365972903823037011567777279429817011574729573175083928247207647914536969442651168615953933832206544212599074663205439770856102367839379707914366212911488706729917247922965024833199196316532363030774197034176838323278111447303062159458983014012940269038212183328340496490719660258432807668157001812488789248716145928578968391226681567038591126978037484964815308283178253603995136955865816386878932695407222336714505486516993705953563348589644382156703220361622378026672122574208721188932930038523885345652548203799731353611537054787892820737258746377706948212090324005138613989693224787499379364729722809609331162598982201064500927507018731212975369311246360844760611702905053380629842293012888012036395361767439956217470064214258641579331403649574945245215692854587558375271371863417542334146448916219744379083856538898137726358467515467740441260803450452775139778664638408949771710385696583993704804402313738729615974517476679569278916054053808090901259512223794583379436456912094027035151675711461743960696224623716015563259256057923896283338564135952541533420797257759999039620077829867520299228721082358810276888874448356161275910545578220219646239768702599227950662326484769399471940942906200785229364022349030320666051154308411358654872671465493827582440359329825717002978637637102746094810495947072479966472455356500251041454021494462461194482557703456477224530694911462820144946104748244275917124922947673630191404357767504742154667983969476627733691559988894389559421378579755297482741862719616474217254557431553304647336095272524014024089062588138133478862396472606078687258754684696805673765503346028310338430186144100343051035978998341236498896701911791246904931827957352445333001654759520520468703656049625262327687160325092438145480347890172147382891039545943734802729846421694086771373524014127947321825906121400528938767629002608336989578865291412884977613219535635752974526863323981509266011757484743766079198227809333167631726740311502334368432438487380234334541528965313000310845089919288361888401553733453812776437532495055838086214218832093141478273914959728620578430919240109605416470007090020681785707162300271281671042866505175751621189811715764331418851626035920035148253082072531176814826192987769815868081585673749698592401433594307180393711265951684201159464285102176977767233128263250573209624854242970753601755452731832128395303613274376014497861015222653345767862880456612323537191220559640287533564468640063476183030966670609478465952340096593542853667568141205012291931378439910996070569175340383915411761231293250901623746698204921092166058381600496889696833902724711842860749852068326005008883834836081354808654421173548974408486904649414179174034664801669467503141527347309513781951853020562101070222906250801293237250711615928332424809748496828237795225762614119331304636548032403386165624142699694818976490852768294954708076593509863276519528061537831426987599669382543747713640744981976225157903298224211360966790975536658482950238730179988164031765279490409629181661179086829014990127621625737914818693438578286744503048802591635610018372813225071211224868480616179221239690458840541226610027451982579793403263242495187764637933641748296567572851465179133866490802766269139118463558686859824148884548454864266924228148496150152690780834029251738331719997323174827175631999665508038244240775153173217283842376015865979879498218456507302960097731055856845245619053486949610578012284777419816708879184024440957680776966299559208361655488536583637668999953433589630255584877685881358163637129239786957061466979406951699070804837342225504855967131617429562188856443981200701090161386213528606769711177499999237732274559608087829666886514796347971252922115590762813636962983740912684153086811971802162517623832423072746709116085603571117387090095993119338413276048942065644033449752224026808337100261268524005583144569436915278382219869467947425018956926276862259312876973725566113424467922448764970666538298531481243327556123030026547538515253459020212446630471314607786476555688712976405195968281685602878765657919588593024670237411577422891956898369609179163294258528444863957402417273621189783029098746012618635457604882998987827932616360538904281419768060670430504188984339338114451696511500179109520442029860302600613681847394151204978664331053311466868324249539069174165878221997252908814426931490246222025359800398104700146275201698347994234731216899271854007401406358147872216511118810504197426392662896586765122201529068076600492105799587597878607027502267880622452065591347950851787474430268189079294547377230937669073547798570067261928693959805846840077426157257741435187836984108454092534739478432998601803617659337870109493996209386810034173422754209185799908932768319686112617065059604085620316667122855790442897630421011436734860656727287295245975144543022248509323098155694788608793610309866507782796168307251854545168643500194574729998230977550935518892290092583848240045510430340768685297441019294249421836872435456780773547537320575090360922411952242413947723919572995279692224535781233436817038749470727925816521471931614658813365407960978494675366337688033464434004968259986377434326292682709937761620124434594222751444786715178091364145508377041871030267247728968038431396055913480005783372425415202148498999434950554352877117905766675332579268478271557481507884386489048795586193872468171314310605169858862502511206200449816029621417810239120871085242484956229091843102757830790443747477681083099984973022817196312510151933897905162357268151028796045499420349219421253988748302379696982420417956415952987324947436929003607133088979661897352534612030421470675199787066073838913043419408764009846009795280903067967046616935584014078481315870313845895372051576487576640034418837972262343000207034657447297209085559314692934993624022806033698014278140689059662954517954815935141688380886199599718534034191557234097335609896173425604941341388337471772487484091251608997251985457896841074894367143003545366847200947875112457025576461563125903404194798969202947268772019950365967286294046737519516748412581601014086949373595313920663709555261508962053243299064770370354535617661300748036044362264305201591720023373579688064665435132999801350114581467254193374527432230057297305492323681837281152365891929169985909825014781233819480133811878891929704087137471960128279322338055352297406091147399241404641825433407743347135194597595141071030898370530914878764830740826681478153108297652214598160716240449280195629961344271134224454269492531008297787795010832354339473963708527647925136497213265774769229515297290928299974628378577106232335761675858172231958606374632190357927103187216083069863670528458732226020899393894259366749664129012428049737233131583561559072894436070685127594596465937071088079818250995365090974410535631546794644362080818345527704794582820281793211676012744270862171851440983347640207980949531494590855351834430672653186092045609106775186015586968294460464848460420479678934753237768789009078476034636988416089662143771668316337694405371299139268087898820709965646015568335364854546278757430032755823742674236744899543062545305529080100774255723388784761419856422701311967438753547985264492737048573171181972952944333326288746077581233289844272182091334312392397422168540135038918199239401147733645343832306528700658119885124934796400155861170769454441233643483379143962843467014788241924375677144364565720580368172263687839376280579961536238958522524419330327510692564099117796862305128121123182469063646473516656942222905790219682204252366070296951912904974794865325348120956241436522538003852703056471846980652935137132774383287218558234407036674915269185021435237962954004344487949665830217806709942870461908586026785871924080572456377248608691826135097617888563858436953690642595531988414644081795696196310483392439055029410813584873021734408197536941520087625688176937160216233658416118954890292223752773662575575258384032125727254570222888639290169840478177076583395542612534971191798340214091077074269241103549247514132025801958509149871344882163618270863654694311962997490220094018567261198481287768824594340495909633513061972220380866923541946882716888222325480275725330899281329159906658210960868204302416430402853670404258775592959850890620189825146004161052969655102774248763170402875327110800491589486776488326484881762984184161641966446684024115770117229605343973013146264566820964162928071694405714596997905535038936874937577876722406069982382467932810425387891676626795909970155466681786432867967846952583456999281952140790891327711037102951958822965538446383382027359043587200958397109264637333304958996841729536025455561852779608629766915515832965286807898310298652776735444718687937027025716425998778091220124399133310654189322539266343047322168728399749122884702245430260121729695799083843832907971025801013893537969694210259761458314126849407131926139166378857062454649367240439553327084755193987523906463187857653198052057346573734663221784682255063451448182130096969520275901919660173036317669814906064483794413432133167001636653296071027287351370104705209321236719238501507772166325602946211216156270690754438292789971844351466969797359670905073206451039085951942322078657019517036585430337456342294083867953494866079227852765055018696206192246622148390462543643463812867517676516004694876123756377159182026059094259234867493786614392752529570254105441873305254208567726259712686398252650060914111650570242789378489713999026489092109609479969287511279868934673272354582269447491791636096516617121414684708544152548177547526864156375260382346104548249725514764779230445124176375863276395875742977941430729534545606454054906215999325524992765089016397861697033186454994932193021104040989655192112677678315951198403241146473683297650502674610076610044408571151400775882885582806703461561754079697702457032853827893447728445031432772803894775432756859191524345093612127466665652915316907452084773862112154520345273091042300785490058563517914124752783653621935626661049044415784629934605872084159130518619479632599846458509598371490518633888296512182620864709273264615709071708160087922607725334204977928489539878287717565923559379690366935121228761012322068560207746159898078287135440714419402049455219378462055165244032782841000564652316690896542540632268943738139776556905005928254933526139984791660282146795655468979915168042751072276489475025354753791010522866900463962818418323742703631309003850610094803657313086027070726083687011513775281725681155213126857168631336582771162079143717872415050866651718683520327543099272161693571668956196873169203799715992295803145169986008949881863998837213916095303644739348229329666111170251579394885482788467950910277690076557119494908246919996551686743586004427775284723099614449514418494127711808024646340170519368156317615911318392544370521433737143058456202915361699380707473402079498888965454301758191870130901466928849776424175590012390790356020102629910732753072966577741497918973690984771890426963819034932085516858526016874177773249953904583108529713545793430570531807387568860269229767128332371993633380153844491855240612752413020629498350003662739899834514875923935597196463728413642279547415359421934190162983742767173505016664627320224025408828643967673152624930503733339115280597130057466773960434020107621453828122447383924734211852518229858638804568142975343132215114054180378416589736588103206279548656291672709175457365435863161163619360385648629100332947711525200003310271549200274096760920035151967812283016479340870073113136773464502680993178075742232573023888757671930695208185123574531043341845713793101533969755330820283044310450577549416335030564278922793999209610803309763674297053266962027904780969739353351011584325230394445999865354719981715156494002717548726063424954004799792184721141955609435292237672556293350132373990163703074105528527250233169972094131905317821806141483462947314341407440546446713474926724021298644521367848223955426244606714630740651943678051084264334513351744459678960844745299675563873378666895692679587570552391633042871653731835397119697090260767086540701169613663289545045795745802069308478017880194611823269922001954109209494030329255520845309272312084386409933885115750027062239502241045256503446891377103199735655797541921023253007530692863680049196899670894852786549876498168658171426477781994145608976271701524338184177442431367950413885102926474444180525358445025949979675936069864782892366890170945367806083844006057662895785753772679441010615329315414415140290737354802115636218591889859447460940462896534944266883111890171393775891834518694830324536147301756583394241917647929303563779726533204281981634805396226042653908409118830696835762189888909418563018264959324683889377922150485296016261804028834465654331808909843081596730698358515346912886297482969982667889762590913188691048633032218345114224666077583585959351107035805924371200586507891964809451876852795633715244276428362770450426232883159777396201170439263531823296184953027400095418426876939341543525762043447941457185410411962684387675596006070844402764377616225453125252929345525401517901292011768390099213950666301559296979419037985813152200463602290671761586233106927285802519026119124560343741472850942003155433411142983454296418005387802026058161437567502012241942354611014817031152042104512340829249535753190738782700444668240236839006574152685420926338460185763937384377357588109629291393306126298582113642088752226931420754276845458586504208412862949625125465945362543611480402791842895009461702147395988253453693920231914525911714339278444133679312307604962138132749300064009878191990815366504463942896937737150447845895851101949125670821351337896518524530821083285397858954636322997084249092793717557053580032357179825940809408020760001583952663922721170219745437589098206304414547561090760664599795413571412981073909674059181693460798742633954725851806025335098806005768048128230154147960232483552979108419708540777359731909163459132072605792000506963903710074465501962837327399496579150657199686785739673636353851019594593743383728676796869887321797616280397051022294969590330339275353840993799656421126147105007595463933847276374904889135693809751596728289770560204431882088181114382082655673538549221369898972358045120400932076167640182763490882825149712436286171603863216518322014391474714058729549692761164850872635856308522704230231923564082384392213578149642114697859429577931566776110722207333426482496981709372478045291313869745663585090534274716814385428442791236177601477288928217741546103370705133033216745123818908517985941615678870740551691129621144793255009662159075002060913473251332230601161777670507022196551851339303687652359521616917130147073624255661759185565145522991975154414908401544207319817561243434383824070818148413476158769861128968525164605140815807209444605923568917003184876530477539853544604374057489983705887814480016500964018964654175139448397199799040041528098690790246087042616553294627038445539826117612387327707527604641260721893192767201394330319434527504068899592622112362506111725323649969457645072680507817174351062658633737701327665488302090320243657939497613719155960775359049623272361606506230685448863013824675197785793900397105742475650104092333265093601608259887732181632241244739277229061024942769735380641502350083448820622865422548077497241228562306170908917274447061948831007693582919549312316022766646387832081008381675289213005515691938983048909175488588848881918467420276040958633569964895571612557048632276495695351744832145645760402985158576366770677095580968856868062931719743024359608269867618842194497680080540924707385657550484300338790428833604375488105511317015743484521390153062683406528738777288316238543100308508318027626393625144176138503026775150130093464777442724313342262150925291885824091440268843406957366532514463504586465524423018297570302441328684373540592949839411093817638854201304070140642477368192046000499267193582563522477248500889219776024677459606239273258695538805616193941312267650390117547438339923140111961057864679930201653677385985619514378344020876718238204650806726510570983490804049484143112835283499480575239975775581427047569656118871235855890367521332644776626314509854087775975544723941270583735955876419022855459181672635399012403736955456752991185920579053597908530887828958521263162654594331765437320113854655922406202718801875342731870650497253106299944634207029880748774498671555996678190074908376914052035600521763181329733800642043849738186847750921593530965557303449895114637767403427842914808642992360302573359763057452546767194024274678352761595781226943870708013853086742749037675431722918180037503921121426269716967205537292800844700542044878871374444969854926351997430870807762189228167687378106823827467548990564716769218033730280893529588378090875029080447154804286181811309875926659054363790104830665609893237293098534084955585351774689701728245928779675938574447325397719095715438441422470049355562165849249045382622896685304700619942681246272900482862017905639307085174785937490125386375551127971706562123399927530715992105527525906540230520048035901830123246648396824806364885948865237739010389638627219598834924489459003344588095613549570278133351778346800677131418100134814314909727245021703236179071470738560640360120616945075016107601086339259289852332274307910686514261195253382441387721623612996067037050148695153320215943183773873740676069882443097001330999038206571131165643747206880880196490904654241975088385569047247249009213943408956129965349786897371927432698545126071981415355313775266451630092980719581739798524224547519669283203983436765210634314573619668909523829430691431894890304239570211852514825558562897981878532108519959348010710295828972324662804188352349188351044959877633823729042194245409123357544258164553862994666223897394247383548691587652119485265640762367815799540408444845245632368752439886728142440786358210172127118165484355840505881340247611573631459841129145005796982330652022344378998468272191367391057796603888325523647272695215778303782170572802848704473016998456851004399996922556973142266508545388894910743331548354577766586761061271817118894334808557449649514467203953991930313084582679788263239462235213945323169170529983342576696924318113450924106375974534664028119654540189110326722298357582302112496452590008129936231253306492956830613490847168454685361148140347509266551454671890372575462295602567117160348375499445630792802155738915971717428151991544026911654455041731939307528094584677307274207278953018914192670155383801574159195027653728695348141534033156964332657544775567972303910040850365354598807472332580083351426802431581189136452580642436681583380136996120529029867737068790140239308877087460694748377432160655834310677693205951359943121272994576643192011741614162067063164688381675511391812737294026812047545267139016913791050588092296191456652029874948167208351119179401914617450824711965949974519825028525645481826174381191199258202039618886143137097360848995037504826583709419528836995651305188725614587657307374282729563939507147475532397363468087345194631594300401431876930428828873407851191221396191332144795343495890273075843629709876186634469532909133358331354046361512916804120809545360200663926593207880315444535118570061821140840373296755847899174505216129715192784610734796384338167027666363261809347491306048545911247096217725748940309407288289553378379814517484978565854170800855900489553897787243818201623118007661564291030007745869467934246618468196397660824519876750813349964840560245427800801256390096930544932884341063610850030655382989256952629362878777935172488465684735773094393583251066673606996704200967252581699856963143884994505180482925432493177398774760248569089387805172981320789726508246209947871338173542251145595297832382624190244687691517054026554473404120142347159938826365655599502589551713952235865335313547126069178937516463179623017601252355882308633409816564862014774546798233579775390225569419247734610233467525738618601356442907383566564425099493304371294700493043525207077520886644464966034847296158215276578937852939976068506021537655446113792642676940319149653355643884152485597271101149306391151220309548002220982346056556564723256505536383365211091835942002903890854800150085853424219763308099556903416547260755316128116383801133562687619184110105107442045472227383322162288414236350124330013648955129089065433933225434281674993349336527605444296639629416871659298765879990083480685127410926778082123725534406797580036838105594992927950998320212382853831607620599217408995171028773088241429288939708645167372231121452160575946508061953728112127898771196160120828668884848605982117198093902005590634498101433022908705319400858436628862984869307925901668990791996354086870124557643035454731726126607739016983467135562041253086917476874062799950216084794943287448608614657534579972499653673225674626871982068254144906804980858077759584825174098583315712916598132413333170657674797740549279645898479357224185746632823051592328222470363624667273252209972732162808754980489955429626056432440491668425004318373154199826723748346980701191507480580135202504365434382275623358447561336326775647448100988227205563314880165132933518093617900651818981333582694037585695691448299521665638932092830041501030937249773750013552883397124572532484269108575213349914378537100445953177676320914244841030519625126870025586634786331813653517688037257777658639738411872766178119449531653153918778684729384911059317163207922021664211570322120818393111079430896567814270555002624205424079049606986400320357790603265308336690924341510374105902467094237862383401783811305954966368097076476531244203478535837468158381304602025015954163970286293598620062442653559905223318014515423283647644498981862966437248898778092734801408673806884625817326965366188535630666416758925041906455443174635106529716370500373060823434231639152683284165431346501971719632046867897124764864549453695621869073428734586000234446413822210285914804957124159212915059622124225028960520302732093528203730791644833696169874691876450345748403496511529404894043063309318843110530164538893700786439380413455289078730302259278648556995418541597480270738774002519488358707248073060695789576408555220970611891280724838354713294857850477499777248566477932155608639653476899751457192321337322383697915210832810322414601877171249214385077861552324710206864236637394662148294007769274983902266585841682850659287840080516554130641184355673390142914044102455237439458432647445876896936232343440732563910402353176257908509464100516556954514425191094062616111718760181617080494667801143995093050153512128641202789127297514177953332710305655950102454439563381564735278056956965526686682312909208773814999000190381155315719416987471482540872987787689975324970804840406493513425945134282198550484248960931466371076531205115704239763997614161737729895124876385797185477897123078602262177643963346385510875542502828967551680812600075180824320252164520842770268486694006106734872737283493529812591923037310320235249286500326767052255827656361508401408578433969257430240575046403895987087840202945697284402525916321527539892434309860465893562961171141862773874779292988165179329741438998096474311679295899888613053156379179857781520231846932586154059999520417949081676649026915649367825012467283130850738055068392455762055598781529386573361077571361042513986603365300549748339523396569229612820308040908362273986881225664739551373641446313469944914620923223739365750182938671030118597827614201532232927721331453207974378293014245813401842520337766680222121385881770811007088066901843068787245667454135690088153367537615151799047808517527723350897461610265371827813397998860129650543797186934189259012154556371926213830746681306079939372689683816352229784620423213352805307970390174842510112395938055991543079066666993366382951959539177032546306562804883964549186898119761757269352533402363606603843323991964247589600307796406512365937151585565572511206232482066053329678735217393723469330077582547440517181366151232830018663978114686313622197316603730709709932081660724459157431312194653297529403647066512882113007609470852456710683223766726517393872836628147661355537533261365565665538704065336089832166959150169050008550244355122214739932009056289020593280156506729773543506891226729780526083160307915352647035970973342710656905382858962778614321626110757629247137218822933826903504152187982804427280817892709377625892230669451411214449402584585500605084728128166027936770490260488112369740521702276664361460811803966330636292233728135332920261729275937560598490253868683091629011452087603914583798114702636670985588051686543805780882376654021771837599917063036152612894996511521177456052302003539164356193375024544662683095734373437074441852128724063709323489243821262680754281379520950847208847516525584481637419401321313854116635776791793130533675886950912550195155667194158282329275886472458028109531715549758192814254359966992796983917815032570137116705647781950232808081846519104142607733287501609353065081125470047033658190041749695496583045512885232565350735416053134026888205729513058381858016227194161453930043136995786722463435702519484698464066965378803916568913648135929472531515462159707686874018404513724734941016291028885534377492105785477221998281184442406336348068152836126033266967271203697092093572069657220587905285759063544451803675079291540540162253195794421771793521913791838124073567102692999564211248331878139310870690120680841296166427200586828414289775223938892398534447721862284007731966097794696076019103703045419430517854536419093346760953229098506816689622947673631278230621724483870003327399702568541446057184136166622079435850033482862734546562366123498682735001344887535320489857735116732499490307675872338040806624648419751071436656576406642292933294825790379236486213173180165978273415110297703485740728195833331402735323496474301879115577823279252611436301906387244692570221906121500591072004322265638684501196581429571538625916568365631049864248062800186570846060590623307763221571938315500453285301114246710658655053821136814377974123883848063486743071345743220110807968758872875724820893488159854324507077130970503128393562452597285140822395245433403537423887002869422915311847011172672067049132364038640052970164816397004626354195279878905280880434958365157912722421826284959456653515982798294992205678492988674887156680391587568393679003606508866896019962979919083602132842480230852961638880498924157898612909165008403333162396953970073941261638469858054812201480007458700380585568205190746137515732449069260110962478695933695077463076485551421950851791765622509173536161023773154685165800205890639672632833210960484026599750029397622254008982826863724871359355110000768264728962987899015083498336287914236344180364281205678313017765242118306072426903454611629334673484903928599600074989303170789971318029604417412100598574226867260606857319882202569011747055109211447143005791449252234207640269827459703333932431581607475811372040393069521291178210545175846158118988462879042219204428250732244797104672270019376166382185897398487255637499500363347438277562138002284272495020414231603020632141595095213703373176956403360666393556064664674742323651439099110312720088802154474008553154159265068013176563177461353345698173567554992375117367704666576255352660454481359776212520346934268389949894462532847927824120387525112512472962076810663615472148891571637522282801888572413068978606939820963228152572567873061720764187133980741773850125544097416253815547453698149212771196817459102374981560447814340445666466222695289089349237311225540703465844977840540240592169344820843829587049034529670697265187521085392630299527647149861465890787462451858105633510072616138022180234426804828575317852548806358002706732373112330555375812720817445539304499938507045146082806857675260394629669156425035013425292484858535818823179959806037659487732995118806098042112114511099252295881296229635218859234886271596147850118889485299131837654056358405011326387905709505939169973043488044761898228484445525456526929558450655577718264714310982181694818195834460528574415375991825724891842813912543534041330803255751509158595094885054046764542571258567852225247360975380484630658845101558618297159437901025021430914397054317073934762226975614164019216237214799505369908069323303808093574359167276647961245049438006819761686893659289992775695694787363520018963914678641834056472111164530296137291076829598613185202088804337752683670379914784569076231057169124659969359146891334473201307035209564959737689906947644662591856548753190487950445914435230274847184660300805737164036131931284479064195072030760370031394164300830981843640065313681324370420885365505298696678162301426983201418863873631510995458774649970197373286527466918650599894236154305548752274973185708026976521537566995282022345977473872304330084069061349865907823148621306261510920325236055678687984670060416138021231134976033004616408322820727773247126832801104623390999825280084001396289856365108554780083744364090907708067263834154923754527950877254587964549074947962768323070854900874759400651746954922675390473589811029651663038703092818080282701042555039336034771110896373887722961207911123332994086312662505061968067740008734141126234742730322761561300920705747505042452021162939735319119760848085569035897550065958142110272972061186139969211171119378969557462212986427974572017659670779605023428715320766079859539035651174916147653595656203459845762509013523796143220251131287081376671074561296465300050281842948896080745761100103127641110504580338923873932132260947888535478850495611939751820169349505176126069074373529687934082952969075314797683749189394971386756029239770543480507586694406521095253313280027450884767394488924186043951810235933812351219117123801369346036691024773906224294741361073687707453354345681721063699541484483560376544157252757853259810691157704324811079447509066617178190497493556579922241189593884478623874381002075350536064507973547640208055984514860233015013257613071071139551723280869264527368036899355988973812744031874359006776491111691303843020200309974215218873332477904563604989889275080721606723236967194511429808564242238023792506948611786417830248754214816767708232086835085533824185417324791202005564179387872280736906945295020461083639006694835396195476245340540462489343828000350288818734831529270335767929733391377947793382777743009072933801392427928939175821785227042991885099659633426118782428355127158082364523120261663684123788558084152779917868778684874475570394260062740117289272581267864330968748222379731663512908591732670402920071944497502648337894535764538587604217946322736915953356067478335156000164972593908459960884204776760494757954831330583015772800483028046774985710352674909998505456486514976724341553256019381486734626430066230709503579678673162597512335139204243873479585920344059778726706500701768086651589028495210183767929004052054888003840684563103565386381577092228115688154561728687060881326373478665526840809863806244454883347694290085723039573812851121070560060659403338339228572775650947914511818977702647594931896820862108214968202966128722226608225986775985857437041477312369458780919609095828771316245632397385236949990645027510267300481250748919888849136609623668753205939153475742595639081043052629177973348567841387112573014844981836576838999130626382512327368664534035033492081105373945273640072137547450807491935606737538713971105602333985315437578694892628887846420463211113411748291216464985596744825468939332372557199731037551957470398610001116299839667759067626394992632519666101066616122206417377848044558164907130290289234367615805125465708555596305857022607096314833017851091834751277943561272968231296956316027054916302719615853278452051841356584946658853966825159796427534674089420585227715701357421721930202636985243205983230414079248715025754076614233781760058490984454927965718316885353238439117959622062023814097105792922394036785870362144651953875269284656618059431487603584840550724475972285529780827452765393921523866812531955535702070660099207446216425134438570564179290690233343981336911958813442170499120490441792083879933867727897284817028193852755318053840707079654847512786118278204631467166713767126707721424327287275524071220713724925603370900535403052915103209094524648072824989695159211619886170936847505940924487561968105571692989194603013249537577183135693546418100891354878383304129049404368917792276335801096780548198580403184960007842946489536480024928306256873170923180138193826118682888969535083033776711741568513109530483915855343096901860643570619051261826522094249376078667935445119458292947443961788743270556471649153817806184715079230438822306150121337581578821600750845044495322284166966293169733835124649365145904094592998935571732145676196146639211313260748219289715397453970094189006623973630376401656500381654374982672642203077799487658950524587114974890318678406022198093857851433590078547229285008683592693454432120084294569111837660226100726315248923053360496591192453671845703611244069858500790119041541005123390881583271664029223580184528079519526367596882067295977857060049417118406808442459242109027830457319285372382853834425776769292043647744485200300373398539886436023905954228330802243323058719650744887219658311087592249685562622639961389990290891834149997200893939187377375115884981809483696172929252342467368682189679240085035949444195912252459183966818262367318113484074163650966412693506743854554597876352841996362844506100558862080920296275963306721918862232519308098197760159199305451909701002506878243954112896116789727999199551893816820642289758963100809940495740629570732333647271923960822833318822881075786822024427076342894643219146453596441024196218553766734511894122776884519926794810026212105059732663596872198834534795753610746148373727807628123472115669669331001137563799885068397857828269299805508188009837734238352308829594147427136781194024792185387449066928702517188846371477662108382009768592441418187677206543165043296614900661241456197686263806748497425827784849764117483352043806187300083254343331916853592994461923206633168388426631333538881416292817152403042721801106366015866539881791202918025531175506968737765342926537005952467149568535239092696689898460176617861925267585916315207496311290324081624887549172996064084157466155041203501050082064703172904278400520580518445932391797909310717848466967447923522368273372127947382858343613755116543323875453898507292024018184088571093656807523777074539691726832104381313459919670566384202509544749472044491611272590647570750646257308650478531357289518954422315900848396272519513373101974740170696471036281007305560052683936441150389832419196901370518403596938105941721398551078436639514419263985732314659078941328473234424334657441382329206506997193243681926611323436588001268244576108921151268027088590603771624389398692686743867146476567777968762766088024240756658005113928568699986565162954750647975365530426398024799026024921074536232830747704759267330715511887939481163758406974950955511690963586850323395444521909056679447742182510258444637071759967259157059034326993002661538845700483817950394471100432165258077451182321482000655475157666776674572788032145404723633010759105132965093279307825262323030328713582803944798518820286485025270227197480221281687914671208820569478349715938406359123350086068272154486091673702111176714528681679200378456712262176409000053826521679859895245653653721679992865940206527007122266014156697421158007918565990122044362236201527109300485095903435477801984633299932500247999882967669168303289062327455849418278015273580513682750419064404727323117746377055077545700639597605006238551987484495144692115706404766724615627252525480874639080564003372128441862344854377405693353423421957948560649095917325941444760036489067767090127490088316340321195452975130081843620107764556652841462921314920000931378542306631803984779210902470870474363870345234193827358074656159029672586940370082293943780159689368864282819709258965312042738639558655294406975420708605363509515354541635721434589285284823317786583506856841428196967269661456014551008764141318105750622992265213023593581136683510078542226514797361956643720810556015023598303181717590022755456309494768346772303345248129188807587972227345319821515892002858410332191280266133875498793418874203477558783036106570703325843756055064430533852234687067690558440052608244788995725845221876213506966478050769685764128127540888944429784909447748474324466664653620757162151216053481663679305714682682946089503044078303003046891477756861892973428392166141509088720820876428774752582527050400156788911940869804957499304296237992411273048170299865874653691697577479741143077147863458040079922980029357024185697573899500643235163050475554040424421416731153985759849304974057410409760052451878349060819997529876946922094525317968606253495159316173311931946332530771392486107898843883719772749555716613830973082101825914173314932647709309667051896966245480664460467263785976701491771308447510621857893682754357492083035321905127614858274640337412047302721032663784079627453660442871077138928135237852823179970642476444357468571009684055773149197101136491874203145195590402843930539249104583545943287626845616825512341479053135838381579769523813731089147137916866838719552769432690674573424541328768939868408707050603921023552130625913802519335600489617417148804652284422384682267498540851667518960367513567793498149860859064428458681480843947585319258446669012758948232838498687569345831124610007516643136302673886284028577866061440603466651511887206053086348488122594304581937299737713467252191521514348757699370663760266023795117988273836014112746375457590026796450551141180974303759197115928743020425158150239016763446632651642581218596009695981784442230627328592535479600411326946385671437973709199814811352119175854524544116239218493034964796480087409801896091565794489472623181261664983382007682988434274133582428688319904426941282093482876756810216818518007397242247487965340815318340331610305350846165099519068341347503710037836568853062527512799341190989612394290360764556550911167258094980155501719797371377026847145908240412883620793218318879485882617269898157841690358087932954785775160808084101358532324584249317673100736044461432967279816240218336664810169034368704335919799358845300550284901888465189818691862292035731128549903724149937728660816742619145379109010002813455617910860390055046788545443523834259776770803555641928063986245660062502112683156726332585836342666914352231090919255428584675639181530963624585233375977634308287664990469384189755774014736565219975904666850582467893114885866625514880442414711279504273823407026937532045714916253941785645885467922715482776240236510511689689288712662010922015809322521556310577719471659111966231756390472880744333669417577100225525133773434088881609557102712482031076274241009338255273631001998445233839723006813209577264416058810725647970354317820444490871132785441994912307763595400944416890686028572766459209045138749685404983260934991812472814319990646335015892700198664202268819846962633687798597333767742849047217223772356021641442185734167094993280396642754207666985026628429918328842110094715421904446262877793993791987832985101731082266500509131104663676798047943665426857509153597593964424112060969006832352711313128954630147187366763077490369697664151404839152509971542395954457869340429334535221541888894118464170389968718395164957113241138052866076483444508916157890879050555339913330562673956023003248407439651248137238929431597499526977174382293798898923873786712546686983046692842758213584582804143028807206295477955858504760747570080970141265135388195573220676457554715709442458411131247219072747036993201779496130068292289275455910344247358785060356979861253650601107184235997887184862185724334267911271672532908930753941815582792870959531317662993674540743072759976726174284019500389663348237587355273794075041224961595328660099690000420457344770193116651456901608602363992412329643088392161399197639536719371494815438141665892591632427998337142512224111277336736249564402914464185945410328813802194860843072144570172463074869717851248450107433967135234461307612896345836133712640176386826634600893198115659381278308291250259827600914648331084407586384807701328365798475194830888550011120837622308648714577524011247913152904314658194246991460050445836045207892588833768983102597712446431688434694793352208930577689697194712860858402080236207763701552523379769465816526184489274706077058377868244421369365051455142278998792542417396987274401853729361694792981986377328587627280394641861978273079496190810103376722970715964306167286890415601068650381961119391487694503213152792721692766572531909963168351516189878381743737028517129069274703550435122138978674871875865658098827862842853803816212819994712665871337296228149165523705309452933552177145135297086924009659261543486089591487997399869883118564145696088832878434508780327575415404721820926121554165735389349989028549568062876598635875942545071039027804140802404415431435424544614236375839758389321897563002667378042420847501299157151031206623412891219185969540054226636305556752528125151006685014247598267686758355010915471487724253861312864077113724528102447325811240271578843854225724239997925333891196559742268407622625091708499754635987342359348028147275297845451970380032972126564850417011367076376062027347571355699615155008127804231390093376041887813105572499072010905508856255210184025708761800276345923470758540252415310342668294992421544403977192533271083686441895129899581494497120699508506752275569156208847000669493965202609925707094886307808263932012530160078663877897755661145960225729622964390704126947224154913570673972416682063892399473385734770723482043310408208512680494780547643615134727396522271504802790780841782428434788090678133484926229702870762623249492737400142670585107869693482585928736466132062832737263339280573819698680775995386913067407379280958531830601435740564704305505714226848009069532396730715173199876506310387702245806524559653810216784549545993136990404207125924984331701255137478437463013851186619009939738213169289984318226501404247802569924657069577977098554504118450954872831510869225885795188632184792508638618015776800074921778238378858358283832457003440478476721739906628181939990329999345992592914997903494750595741522000968260586844989416864169538227338852968609384843510186360545793673903269247768234590844639015985533419857244795779375654583969422304729895903035962304089652406555456827412570210479598719739416485750851739311101704127433603615578303935080420630287670543813496789228838149946873089817486614852072223570301046312174449939036382913814021903637725234848173149816143590121248288957702971162670511818539356092934786404006854911007452944706174581631669728573889521588034840795375074582670171085238925738618010620001941852747830602900102187149274100984970731305744636608149365953880321784157412481357447614882506449894400670635766885054886849560382823459486650870331527964712804080634552630120550430667723645845928667021713560239119398779560583630073171819585008747170893420258522398370783304045231384815341362900970796995580813065051870149905732005278815700886790735548087950192634324374345066106120145560265360346228662419423232668942401258605747578307429882908103846157622756289819970069184547637295936434172735471304463083144181770948904425326903885420720470370165095176999334341877801795880251190962956761097656101270031487697909696376965569205241467433235071180455951692093719985461110519636070516733493620893077730875787885591521939005616504966861501482407603654805952968716430340212489911655171811181702507808577742395872190807148102362692715041597776012336339663965219431009351981653845909870164524943787883853486467798101697679957549920613532194804568588227156604503640213425503555233659946635290310805816444724089070301545082567145978678913452956485608001081094367888789978041172543509854876606685252318331607445533534886462594455252032288724809151042235748007733024981898957977561069982608332376089543959347481792091320924283733780777148986290473043986973047152803161840494255423099873137034868187360192184257118721482162486648796709601398162484172335408532823361735452030541818760810701770466833670834622475367492088539325763672361041188776525390673920309597476404759999593470365416957123645590135796561172455248303709592975083126552000425514511234289394478549046021656795732719807093061972771825971949273514482289604891565695905897826190242550590262299233580152204109140981181054084385390253760647712190956009958939600659602930480375874191657575911823026976019557469622173143039285880588279499164375178300622059041489152908815070285863386992411277736285010231841887182774411311452423770952513516480523937616069656893370453094056120279949271510996280997783685510211392908488106367671934944752774738633877572043509472979255651601034906667901574020688216728868356181021715073368535438959653105186170115368423448709372171959798021571266569228934796547693080379797633110110201699943301022802154398868066699113180623060585028489350087512852011481090543350032356606929081162221860027577063126185369881213048990689659046929175395297222634714047170001475253344503922323399779699268445862565656782870445333053064337795052670886238131007952945400779612605206391800536308759634827116429357631076303116195295685758093631670881278433637330417379640554137175422684863725058912015927013884926655238936689499804338253954728086750878851482503125882000396823271561502433315378674347726348276956104274732770748164638198192776554291929639718797742691877105655992514878454106809256868750419392694817235091219111245543638310938968120213075198064372134802502962902330890108315711475853926029046080153938213751644424842543302567433159922322820740435201520500641054174921101336026985263921547967978682919635668223292811272653700369808413130197570897084219323750051322712445036122217623746936968741294562107057595460472676050280567462870936048399235783899680889446959818582363064759392406002719671824541373299835139086842447819145883678615855350569029153125578969824826384409665927875383129151055458216572262285459898622814415270758085265494036740792625782862483006235830867732462145385317816204632736093888448890086091163996007689394767335194245806482072242166933608918402236828069432421712679838940363921521773897197988121664277043155885921908222355418614288740035155445818612394357738676650786727796608931568832490584501692212370228206303180010985862451511953405320676412419678034030385511108916569444142357222275642520050621790694026982315665126898359746315134621585367178933294370656135787828859178670233483075742366710256683980744774582114100170344141039650341946000389750266388019784550367402504962488167612538223109296057107437785873317186083180800966437668390181168411320254240882896011608171968811238240552530372921705383134320627055605645575725772283363934797711487476544523662294765265126070246405522110438176571552380682038322287030982416945957047275309138097057793318333496867505010229187602874157203061147818327189645676311368777593851576793708732064945701419783137638514002491642169445368879911251691846735428273890939891145742438249532002631971235815612098002066222805053927636047381609294745139533673702479307120890851907411002630623327195971239925791680587571664943444428523563588151262130111589294795208756482260467920780203593772482711597893764047467959758995780053520421665208874959434776630621323158472250807183191306926184801988263823041111684908731641292733176660975679915260504021395217373661449797332928298765169921690276433118604075129638115655322396540319478603612878145299098865069698969167835999450877297020631791887534701944109112779636443625074062369755056546948260472763516692668151116657103593553573918253270318964822871160302669402293854863420675915531083956207775028203597898322418789962861736532604928914876883587380777388873092324243764996239669726641564142589844097796622788273243051936736808533389404349505867400069727733586729317751607146193853190069054721371914535853968736474319990710519329528992745775652759785051910463289144431417668626428279020414231385713128697494964319651276778782766179323700790167942030265621120638449700878720438636781906254321638967197155977002485205016269071769988088275045005615416953819185207896023340708962555582705328721964461894107018936392044807680723200402590348097357195302098135704250577042727247380458567058768832436923253350561336722804267645490390485363065028347153287244265075293336834849453198629678320656470398597459266912347313192854583850356079835311663747295526582268069981146661972993409892145231323041548988147080213518884066879424216779393842296312306053102465254075849551364987598345653290025241380599571418180183775668204315673765794173601439039898584951008100358376266850074308135363855798040916522777207366463456057280640582058494400096598068841103523500644562210587929317416193255590667003510247053424378925547744441648627779827278923747674762715970027312870045974098601912683627685473601879013416157422083371655901607519696155020055314271824182087974203393396753911949370163055452591511089560445712843644553376899722975962960835718640715916232023051948743724037795967446253601633732429195362495647903662816130304993056180110164322788766027021165005185846959659158857999892325736019944746667967500546782535873387207363853007135936505033001606391378055811525573683209060678829385978242281058600916089436757451508224778342215478691488017996801012871191992689409434171387015454038122137237494663095314230263548294906276293480274691374665845152792660913179263565413023614161153256920900068428508596577802501752896856568731915911730351987500602479108996588743542842340968874084405075196603145520950062987244352222598106884929373621787941995055956766645932466805918730894682873919440722445979934323078440607530677687978586843396435423514478092877869999804992049600118156667540651295808493564946416789240694504771979571511207607393192195465902852417164295219436819498055061193943223114357485332572818261202787748744085966655660204398509781924906685973213527326008528016076481975922950415766868251909886606873687355049831394366555816531500153203411371439498657111108592786980711523662730572590316948346469983632849509257117420332456152562252838234756864085393537577294798480791827519250626677695735118222985176439360916659334828516349409870934308324845310654296578734231937120697081199861358279363265125534740975505737002532789407592245484177909347091517878613161764267397725256675745124335246792186987314491770633632579887701700663694002218363196351119344751200735907385310828425847823820860800467000255139561089925381806824681010969776357429332366011544734971532110304643997082767932260551540276240511602563842193214018054256146343024617613761474813972947988568111647350189559591906473441760962128173908525722990027311332522454138485140851099559722548935444395523563001337372889112616381665078245266437024556215315723348699379597316291245553108979877300553310884727840485771643311914465713726500495436496316601249832661254015593920147081035916309537214592439271522301077165702701648583664851123042584824436826802196517631009651164810195046589595257705494617405392300103920077267413569775707893899344731119373029813832469828978129188320942445738613546717417365720807935223032552891363030326910401202812567556515020049223869356100758821343220106688326660241078389385251476136465369351639208224656525551337282779238062370496418904514246183061468874228192093718874168520348619657113117046787574836321769557250138340518937085088531545175346449986167853686364604202664632452868823951552079325073126409230739037676836215381741158441639407372108479914129097315580722841293364353685892827690581563455846287647284286900047905293546783148587714486266766256551591201471616517510077891142571228208884951313801487011362554122698398003383584285423989345259046955141527390944084755769076848081301912344553808537710404870916678941341072901127688594807329036166695665655188482126438130571638695226046050564478804591626808648309925814737020552286140979109353011610459432563642053959223639778864116545104215591130744976904013810759676328522636819801598599012842262480753824841344393634098717495105200970113936288559568580943920899402509194037428860126808812484141213798445298885612519886050147359619780390487151171810174429738837704029317242077960712420960101597271487580860603654373784062070349537969207815102621494462592799064486715258203665933040187535552797255672879115365633092434365070408585144513622110612564150926473857266968045966958909869728177711577353096693591813378116899001766040404966464134576074642217604722870508854724618298927480674212947548070108982484279840632941753002104344376909908911874743639772815685949107085467244972331234664771017964368601183222266740161072900156146792101870472389232530063243156192816395883876862292657990268768894199303020407334341600718286295312248689505218073860198068870784029585709003557558090188298595732195260923542784499804834727312450995556199255329309987995372661518475138014973024850818222350334405790110874473946442577652831904902918414516189631653073865711033030806527264600863787255558831092339010048706263082115912835495902944505613819367301075351566148862842377221566098731677375198523298035141705350508750294984128110359828212339670101070788700547383709141900650876270766153447421508283919796976538573438910732734759326652843421032724213051784844811573756223230353690216297241830773488457768340646523514284290506506163919647115924414634798427202688819745646533276320371988261599607800826920187355679109164534634242739272195801840249283418557012819843697408613920185061074051727626605755376887529033180523394079921902319882177679975473597159027217889341827937835380814195782989854483450023319055450212717910548157442058758076740438237727222811243344727775889871714414636099607899116383064594674855386916654304834744029998131567480494369292088054154142757439124009230458172658355734462220260235865597923375009827639879139750518411872220692678189030432407290763062652842043426534224806009399838919911718432714942961454950637057884980499702895917807782242260861326931555111806709759339420147811207755909252111202480164832331834256585864241555182245434208242421116171252257696264104071554060665276353075709595743537975490752101616413685941881677844410574281277696248249550552646813670997510214243933693094119938864217059732013013217406321781504495017781472821460563803997562394884295551723823970204491087774235602896541084962848326066566131637999911105466802693314188256658579806123847059729272230639961651716225936558393994736329587059278249391850780222825675091902917417991623963157188069287397650827700645121332565291741877413327797213621402948946042212567281681461486805794471469377478255362508354889924823699892462798147916950562596726352699137585349593763069201863160641665662002195074862262205152951461665579604231793734815031375015161038344749724538461675806137138067623607135898133434678571414422333899284236600025572621049982192042531801012386941998353541120329966498263935801939071454073174094066436316909947877302074866238539381519552402785524551036734795566230413627056200976899685397993603296551689405657903816677643985994382376855835816608652076593614334390017471606496164090009237975213975170264246142593579291500559256215453710347893516100331359709935618011879074207823669550401932723714430474044102874072957769590572835095994607931023233411153265355440894025254824483282274314101113792053126058315916305549106780477660625601831563261719607433936140187973957460207349482908797064428667992203260003678686920304226902635044188588838101385462900897269282583455134706239719520680433308916188393416157546118284743764041986671556900565720094081421697056859151057784955706727510637683133220004074899235579683611390055863155813002419718179351987277358732664613252403161165847377078355856105112276993197134230859439895576005767006969158956487096223289045461529459359724337637077345411573361216410397008398087702822387982334598159333888622442556835402775455044006778877887120598021659013318973045839862102799163745435043751401661714030028787277218390406477698192804208152467403802982853780211408567174046775656965430256144951651147866717830246316852408989943652480044695407220856916102087394781984955431091368211007651486951626219096193890533049384708363810789659185170929716796861017546415076009692895864132955300491845459866813178731257991143019784067142671720972684116259576394717874906480585739994006965835095042218096639571577278394472883059923063820636084018007911814975347362658913395735831555897049853301426375104911242355688850135201208297710587707716361041713602521794251966985849103320513672257955528062559326817022489129994788197247143887617260796615570764456963452254158108319414323175595710948594852846649892948483953861290354583802389292729319199688061652524276959350030692632654843771846275725539206253387533611829567609820856371178413147689054380051972171509031207563303553927550281355483929261077182796838923632989798591407325996357842825722353530408268956311845434666248072551279646187250558208422923300571034088960923171291548848842860103303802950398664441346652012923671698493604577026002080987457592279336600733899235932815552752339995759365830559488891295586091649965378341453735885668186775308382170537528745893119423134656849371599136625791214343867120125634362489304470809692993964177716870212177098010771975006826408686515441116444742082818129866711885802790963370165355144109511166731319199092651273672087995734979570320833160105270447141469411499770767083790385372665223830469570621192476159645554048429671993769906754430518577727983637635445121668737187642286724894565182111070339336765365580833387864154150666461401399778204311184866086086820510254905852142757169736163360435359440934061399764285427128630075150841240418398457654280826842722406898787476343323869227798331022670894836097522808114666979467887391203171697574064209747849097117291271288609238745045361686240291329729050837815681094645960527729819120391928888144781418343240889143941319376176963836454250470236321779009803112406840068847582332817778514875084766340346282724606563060015919448452988473775514133374675505365854820617700042693187024956341533257988499791845992484418589365147805032041153752848047595293368865190841505147555372966879232253352636217438893669580985950344311247107015666482968876280320481061705022949130242962602645503282873659774785684391233964389559681301616681261994945553384082808081401684216698623202059997992824548012701750934986456476224685119813139570604152352215258797207612342284198598808404364380886989445532437732952892045200508212643099152836988817621299825957759705574168148087749625150914651582715706704976033471167375060374522860000015733246890037936318698376942604295902104175553542659703663820830862734774988483048471619154263149233364552319608554463256404609638866711742249234958901468214087515209279277820705015314010544118958603379862225405845526252066250312133273967078986655109107941287655067105637895419689378280620778147262435785999996614321884029451690155192159845253145608535788122004939045880286892435663915609729506230773034157890057777224886082109272297046487661083597532617542683960606578257894022438302167645361463312573365066879217022739833263171461574353932515200106240891499134638803520865279974029537294274116326961637299297204177681420987203196974037787336725222951330877334409115303747536356996449931472406982740808010609320336734254646310874493000347418088885431401734203973549886449514155966954771930678099252988575968256553860045835432133629783228061987645331529465772067337871732983238680785339846505497553595770847978954850271900593809366883658205740499269352614443594351633438283528310141353822146156819771387303028694354415244402099241689798623022730192207303408566317060355051088444846942664008699178802600404146329086419642863399038702349670484412729707872324398230626426241727168814821344077759865553360469576276872029753167077078629312483912957638638168388011658898883375237226474350278421365896299874424105595039635751396509500726365153554171508244373235377774506540699243271291602070976367822255139916793188918167277833066687413090031888277916721537748904612374047045635029860025439512985045608793415974926010335071598911180138315037167135372388726872948765530939983027599512011734909905720128059441296029587637580009936533824114189193030446441684704179516272188531691361593644203344066260626933933649625046017886758151803208338425700618619210952784021595937312717591016832543618242050524091304701062975419122320853373278614621267974253380021879037222111956029645159200851457727544586959596062537524991439119839570961787519859094035339408323594759428189948686343780595722487931114229507348135619566764035238291788855398031953084981946363421876063056817088457762403257075850100223443030397738386138299883675503472376290932516401977860083507578695141031066817771463760384996891326091068527229948517098755989605657798784000571144801064902805294905006030934379816681606401986597680088479637795346924991369766699093358201619924172801321684884691836079565669712331270118793652066911959560941753470315778304437913661263534153203186090585025969735952843364700479325149272321903718722716971391298338069778819991659587005248244362724796372604125484076463590472917265034559695209424792592576163574061040959432384774726372746337936597548362506299253203642374064128064143059656691033033978314203286635772227030781327754862828018504917212075622964507287270670145343835145438161360889242956663567969943315549315466831396855193505249602463026594071480259100254480913237094932010680869678156354811364607175570030801607364923297606877575070588720402897797965737908363282343346239085380536241160587024713657417868354536511091862123110222917122316266531235385464266193718276259496328358461782887919407389696211040962624927554206431055818224523858051153036830724996746733205557141909803589145147295741651212025458191025190709611046869233884573238489272214123703250907781520016861963880760521958315815756157032183872700559317822547974745858152727951982848226068482684588646555472635837597684775738926459632428417992408206001123207962714631657134251568083081708694774167019343508418540621874546138136846601713713061677922061952488458589236684890063715672078459413153011338051557796669536165863066872715671994070215151049717485572273371833444448228819600181925166141765440388286851150667375662858626106434897235300074943476742181517356888283257959522920557010338983526660994472505310300182164133345656997228994787648042379010678680735478011572499850504775308721318953334103029588018096184604505106848965670057539348201267802055456412728952090021530405629714046268864217584243299478338294776006816665600139299038122149276355875138068099652009181475757900005327030671477518191714154606773916863850891878060724266759925740223083717799540159125333143359776961283279289000352135711316605382830369156071549766793543346060158772479600117358617364494624103134523334654234294559457215718905088713534062003226809817152356138551540079616431007674484183789287508600221151073742000605270168960238899680198750134647573495091254313158418424133596248247924274518328167412549567117476126724518993847318564980226565186831396328715343052509552389243675874648059395224838175682598681579612402692953754856585638311412966106176257439341782547682958149140539967524611111610978983936500901042927900758688688187685069147568108985094741482556646589842363257874904266709015663696399997380620335471572767113950991147198568286811282303139126433769553919389769998561083619340940759525209392358661696397371642842590058620839938570148654902548710213085555650397960435273315503107032119738889387236002565145359638898544837831482239517799161703299534070129273452537093575956088572802278680603763430997229885343789776941310974739225784392281583718857289232261239504070605150048746279664781077344922520461039059266080090280255567754227607450914152607238351454392761884687321144836911856034309162546022232939288563953257875379751608516682886700114370832551956884250597643533656302789726430482586596211602729099437594014786855353555914722888482706954640181588038811624012247448484766930926532400176466263751049663271052579870727082472544332815498308135752193947914671892127106867031014239503586078558418913193632745036003202515272596497794813927052774894126488765161682255817742141951452604659916638431634377141689628065408196901728875112590684125275698961134420115830880246517950675619347164843257763364779056710610042990880435086503355364514404544652577081795300213775445168242885473243900379342946935915238905682859371508048442411027470444215151073663017077707817694639634134458782478341930855966542334846897019528894042645202768036312922704852765207221250589525735054284639501272680612043794190651061701850094097409088984865397371997764217550225171716982764665216629916949717887307273749529615048524074321229162323049450562279920463325510388790209874987593699362057300551679361863044925232216775187193269785528441676281714473262440276147633538374597064711329188942903552454455479926002509340350723080533026969278691864940574576779649532764025399242072516158427381863414423271157371671096755647647611012492153344207086853915824902323590673233973413050571957014555647418617762971049591047208210019964999803351748220967042236287437897318135681904735090193379939124469213477901236745626316020770856063942424447067935130994499660986697298918740508381349010702727757835400495150179909482360368265437783264278580635972896809545456444758015824284405796969108317325410153426300795291724853586674901144793859813939455968613147377650724318908170378919453213256005544045595802375132232467115842449066513519406522850179209431783338547404259903737654127116946221704544072873916384646670698372886022844653977694904183017299965282222976694482591011845300371803805921829639943011663316293209924014055540768893940293310062482303937034286679936253064118414359558967137988887786648406127545344891422372891558517679817079396186745849312012668574087175311797854110610102699714679683605286388383453919407602334584096328515279612155622626827931203392187176606570742510585687988397148604816505455130248558344358688891204667962159381259903306686797344050265475531485922708016198743466969451936716227769862557534358953793185482286595512989938562027224562108368548166616440972367544282927397608983757723683211733861575283157467305757316209438221591540150287204777155097532512307510920826027938494743396607077059661942954030736208445196855491269430290253459109663776391332373466037955921926828981671610175511001124971188503981543797932912740964841138614475831456045374013625715201144349263779704801537155626472251570827782940552213714896285403850370464512590987118272349750520722871099854162163798775065643986157619977225159854813446063372580783361380364197933249487652192071611705014980757405461109466586553944715473653635209841052997816676259964775492688454408691817210733339240072504296668553234161742701754253337527030794460576828396729380061778461413140370092525723895477333747226459196427425045577431103100897568913822401416278969921577421143075625280732275138123567039446711755471032266062880774732957081318441015121197179266774100806871280763479491178207418023568873588889097528859236991689801943797774598099249913103017245859474895979575072562033992484522577211450963464386819941088087309949217369777677884316167427897968849855323381165378110162748329016106213627607777183901484564231570728618349653147572473570935797853354067464861280227806394402280453506660634143641916412452362926622934292741542945106215833233430404268472779220601255031373483707442477050911736149834366113059880082638990105595506545563874619881953316844151488618946131679596094867177265012794264370874579794665191300620583073572648778505719961761832081820576603324317706131157522017541460442117412452602934983931711500117768004354303621667909845885508834282951420871112487770494842087058812089618876446407143180550966124854776561315882149042333961313076115297786061126677682768666745206723572484145787059316353301825315705978233700492662813177721062010109564282768573420185690675182670077302494341751820356943914971601955848191887956688327897283624281621948012803556060240688733560961995958649035502296065333050554277313170386396787407278218265855960017065911599379119678881587072870345186621795507448256846671910533537113567624588489234328636013175301127736448827935301734464465264555991513821019869701597813657250249454801352184749062740376618322438069734518735810001371122699277617275853646522528764805221027959150642250398470722717275032946703193634122476030436785846548161927439226891820452095835203223516742531919979311933185702098922534623235324681174974614916325923827074978343304528475281903115904111148164417382348147219970865011186836879852820068468521426062741754330712997443642532748061299697119136015040294687213765963008370282860846709310738430472694306536139387241423947049826838498947118416503864373106744722433225585144310063922038511857686107652219868387699984367324479400694697030761306614790551279705400182384280041859342887277832105404419923984798131678563760449907450740633464569494607825767123187297693216612607204852673713642385099724047483631484295815749305979783172007256095778925000039867929148834928717295461168927263808498362882161768659589306675272294173662580636287301435078172595477579468874746291651170246619107188134755331375384432282805214024621818524097578640949170636501843149306261892743376907744013050814038763186898209226264271647170735790817603593003513471813472893019352098059130147460140549676355937210801959039952854758288891385469046038008818625517960535769006310039978053667842157596449858363441481854470632714083809037387906654791877431954090811816046242297441716818724690544819290203284883120767155677623199819305779500195087328385301382916762424122982935989996626964252664539376688633476621134444156311860284883344232118404989802372839921873532770680569355967304294538536924612301378111075188153246774795204562359925498125158082166621557032501870437201015806757583014963326546672807453116696009832312132805559375845006946923533982489193620278764144333994677956652367552244737273697807610653273487885592900551184620827516498243443347538553524707070133208236825859492444172298029845534173781587675353375816676597486812799421857222455116389230326744580506678619946483246857148074301043219266496525170055742956030027456248022396302445720235453786788207719817595319553498440266537534170333866308767029470143971799094264319750291397079509372429030904090537969083340897557265344853950358518376168495999760298135244846193582092653156238645705129556285409600012423293354937338946367004955322929875116171089226909781200728438496151194752776708602098105640798838566719590185877465634638659027458878994593076152763065423636037951557967193135870317274889700196244441147267080148308798311585323261734186963256609329301427663637846248076229450455342989645598489913935691346859038646415735077502275074244427934149303043537936123032783221495906742947074388457761535185269689301113396949685151809903093484076884992237810205457022500157899180404931985937891008681232271803582714498538839869809838057351286780337713282082399879320751562263181181380277680865819213526863663048593719042894169545518533011311729957136746216866593062755460452635840273001158134590006372349506633370532007369178763099313366715020054910582247862957825790939301538534626475866639438969074935756312105441614621564066172162543876652443017621094967142769613386702759511228023197843102763659653356740869581199767109892846470175771267237888866993177765301312378169473595660762365142658200782713887781747948079033885152777036113398174575750681522692699932962396599204412359802614430397709832975816411961687793072049505575382858968751954141287433307964785907565887739965464854996642759507567876273213688832891488686754802366452995504690618338912186080865935493129971279892254879528861803852524592414189951811213848213628338755660325723187574546920836415689108085123040337760850653826652611343335414986593364721456207913473475713550079021894771061683911884344850409476035020909725017574086690430365060203567129528430082497316382442344790969619464113726660827461936271814514136215022604395849260912752061032121491095717618598669563251640683528233455015770838945696721616538827080257449588359966547395244835442895094055167626653367171530141530254799381082645131348625647125434516171118523880629179461959404485707967588233630987990457987666220336149149699482144368068220918406486643968260270620731958524596095815543169440965932903122637634436064682416660899439337449892374028617458099621637153610251482236122634310928074818954607535403512262531305333970690742592631402634947105344734702098699725189804201039933971303943757399332189170851612759213737637606772525191411165715748640656242256774136356606016552348638265252299522876805087217163237535340535900888697807809719929380773689138786589077290416537325979903890621957896370606119358745852291039306855863639899160406047968222984159433281901425085282575181706132741625243158622235766744219313723310451665680005783874885793583726329185828504055916311451394861947330464998485387830555807007624103346950766167384476160277759017905430634095133768658905307324987857552825776171844238224717850088218527597259466180557688326606889163327035752254683628902051717662672197991036952793613757375310351947715439260803768679122046681590599532244985479652910740205880574503582092369861267615551014296250565517243635834992683274247616434023169811749108386820445665554782562332638657945494503743199823365315493784102400867869136632326868189083446288621225044170831238946033222812266421966635782315970349700947156327677301242876483881945722437791793522125730022001078172061017557182032420396423642058484076785770332078620131886074119223677953009675878752913153313131280514557965969509417035270926838220504160548723677741119554013788314488267329087686244518009560042372943413304270521304458815477430826629222289471070743095623734494387261351178842926583541039347094485311746243886959481651790395036478323984571887098564894591046044684540642343169303461195765973530487262216498253807853621871709689007553749907986727900996124474480274215074426510503343134321907817855676745828749349464830974597121587802988280788259461872603687537031277552744278667340768194119490316737868550660184508658423943692316825001156845361369952204911682475448136940676493828135343178179031735971575360426112363975722314692368487543811087949590380212044731267230818982714885353532599510744691814791514498554310990729293591067521339439229492372322786216565321806705264384665011348840438601611785830633180657017820094063315079491188784253225967136117086403364697280747632617029000278916891389830594926011950056928631196514025378612296320819518241683864021489341699788759678773498181758644082278534231233663641094180187569834773994261106208074628390214563779858381347641095882231555513145022039171439967189736407556098602337763171145427691407804871914379547871352731268452034152248511025124769737991301007832503591612575260980581331814762457109968463097035020335185589216913671654662072793655378771668858790854157785455875927139886130477825972089256211466865421678982747008105231394255962722688533945311136170406891092073066916539186192332543521165864571604221435220278784663096246241838736342590438361955493125032396430161689227457204109957263515203718381161858080923190616000005082212749570168523212834311943696605748595210067183003737819289341894037784584836488365132580116442731987877356444671954389271015615820715247230707910079240968106635627243675377505837827422822699937538525998852823880331779777996949584533460980898403673194720616785195550412487334876270969917172778218645871364092763785398589359163536233115219536816634714799465413450364511708519224214574916430483083927789859882186298905988434659836544201850611365830182344913023350988766394813308791883772900749472688072891410115194647487360886544894440310173578289248571750389349403814808844845384357156912999103244175276580028648326099410025559108990697497132664113289871221961296699642816321592069311376047839950360828839014507783635420396593706888132085098268790793191823173197109728917079712799519111894422176821083187426934203033089568516167181827660881036940214704436344142019784286071698824497058384879654053108099726095305774799358082677567329472110489831214334946581219950630675084228355405997649833944300740027573704879066736722900811060950534271480295264009775606857390314350097780210162640530274596168712827203177652740946438781308509738422198581752716558315406248233020586735979464425239400290153358967103223428888955184359392135990423108076780883980067736867896430701395989108468031161611780353011775168166641216163331796274185828102851146295436607554993398519224102566253662591790903121303790268156817935889805727364497504075729603088817795071332940620452633526442461760691056128385719243420764958541350301461143195605305876144218573000489635855481484541476172696403775729016428862519755908471817930727634276607169821760109909883538577079155663128264039889128229278470399724306002200190722891441592424519366021820724568399580873410670724887484547422018766968753760403720607818718302264880110925033527197943884931053038969879171407290383003691389077127963313890440672589334159906425680580658241162099466174133155153557778179406523258895372611796335607172573277716931421309673653336561806844722564155363883712214094939355544858328735892794568940799416382221028395747525857861286591567355598544867323965312155480742797302387454951512059199161049555001555590671692226111459140757737561786735097333839503220778219400008627396614542613988640196782732864010250193429220601514474575631825017248939131991171413572301798897932540885247187698902515551810316055545460218465620893492784565550733057331857098627728974576669969185260343987214728493693359043824833324580891360809563781074006641078101890730179148710910057033269709935601240267055310758871815142802402477610216116579537601654010650328383004119990692412618305220301720884213073474756836208777037425896003756124939724644329682876891149996698700011557830880876469590687052344976873448776845335427516074878765618323968179995102560229363269707682153135070188864831948473823638499393039841443992605112590786788036108210862618160806256969651845745069574999330567692115536996751896927027332839541101231152767925477221750413477407308748191377873637146543508001875501372600721288463072734166346515395980087875569421291360479771125085480911440435753375072844746559182352157372744331199061508207580002863413887940866312685653474569344370968806395594083897925422081100059554234368553536806976962883069777678364362090757464309090965764606781288788805838304268854828807492762954121173106075703753836278104425103760873312230808742958897952833455056023015714361953646848208890093500361265048078225146093037805850037898251100786574939833902259462067092180567538705279446353310356621270689487701025084223622992884050435013289948103937184958457641332471418644553002421336935614152907682474621883518144206577635396582718130367622534510517046672003702929626750598587056857352404980190727893450467778218522559546987511207240195604315669281884534252015391857825188179628318153284485217374219250300381093262373549719834729143378764192750861577812930467776578445353676611497154144259700904395943315855380539818728415352881712934225355130468187815190224979095789882774802767917957820433038896509916865543505396429668297098771599891987251919357138432215491737692106192589157281368166816132978938858963636594122814975480379986642655609419917899871436128809221944619769948545777549027577520321899749454120234035471278777546936040153002832748323517016114255553589058794677791109685344073822335030110580133107943957985993686638469627623532262325553386027668406295823044100927046193431369754105573001480803457231275274238705576532632100235802028479224783274177485108244478464574599163074971255165785100863358485659570703121450184762201665424034651442767638477006500288484714762883879903426545022477403041687823691359784072496684520860937977082717017504039806620530734432653809537904327223603694882321092592320158253878006954819216848374728406665106272536334117572894262804320684133593786373197197035247176955888548592088087911276107275111799780967896841007978160491177624589365925355853185840778143124495124365487167699664773819439100930375852710652102359197141188572053222824271539208220996318550909123575655397397183320727757710358870545886049467603105031230625165963404641795449262062860633830323668117984532791023892778599035826378078673776025623643511168242330894649571723332012192324918004450249769655177222655778219393848236568223074433153837268396779459697800193914706623696723874230221407540547754476122045529639996061489889170645459277627551812253399944342405720610068619414965370208827577785489656732833008099324357112395722137243157723819177451725568941853154103474182620022982724034666472820529486262261639370577124236492571508291622594841455794964039900901934621224333847924473339289626491411512799988449617977107623700327336801614824855991252264644461814345698354025909803342936934709273758785156938610668871884698261068596282349413060776834428713958720400152952281791416399539750173845283914808037995157876609632512715640456067313971691256222281639188397569074740261225003043246659739402252484479254545814077791312570201129694327977266259587474912711136100797630253177634997147855801327511840608299930526956364131713173167673548006782710497412018203460247742950732333727847159364624654527042472348644975410263418948615027795299729831286400582302705686271008634894689458651889759686930966833059594297819860666577959820595704690020302764505131616118229954200055589089037089333040901011235832141785402863114214627626317332557423142925597095809404424125644986541466827684030151275673893122964106231230283145281969604852383120234276381732034164882160518324061693635747164080792889202756570533944536975385549726052019301445880850720905519798059915750889629234985073957574973965801948017915074692121370480243493055644264305316012926512572446935002894834037340748943964387027096939646676280370610791328966548408985384697412496488445931010912190557074619411038110998462486075962981711188022750700938840301603655243751893449151875461865299953114284835486542640719212759174017719169054196290302548596314745309588952186340310290189568791157143539889169544292951692321350745561853718543917710104718911372514667815477775661962739295210977668675097092850689135127100168235007609763054473377887136777832877284375480342521811772946184301726879796238858957708518700870282047509266129151115810994902027384530988455531128308545081811625022945541883725004251295069872269769960857244872100554998854368187622266439697735709216065755185737522781153262174960321950583211881524772258814169673130512983763744694626477247268614686695249214491900935780342496995111878823307779724650931187312348853889910080377480153709355026854548984921808429606845358669939613359958092861885426937347721827599016243184776378043022115687464125814893856180739686968056084633825680726934976970641016334021516630989860262056511351269901109993571398202761800697439229907128941617712905687549297901431028312385345202437954859928530043653440970958924129307777070142178882708159343780845522101876586671430279653609802130985304230454577851312770815621144032322311775548288955543513597218435741529893156723436170324569723522698050510471604127738945851542211783061093923087232528695658203650308652788565232880190174992968446198544761417360745102977561448427692096311990848241873849455639763646006645710352422374625958908815437120210827929629574265325515743200175442216794455301031222103823892071663289116690102784975014038670094526469085313476499218816381512795526922718264174165719607323376392534232834922315591252354039596436789411645489672254448344108109517624931164281562957188695747439136154170677654104706577522538754816053900751891963505044382669447389643531319050598345976691932677786937363062569990815987932397294946499774729780686032130825769449889960257234614845364854103084124941074036050249810323219012958470494071242123973969776395961884422890830431724163869491998855374447520386724457156531686719402254708714384576640698717812935847482760111836928976204764980605731032928630822978924298202039352448563794082094069568868222667858224611866195601884437260380573198690055434543125777929566198524033097186141641613007230342264676681628284613094091676449889561790254686429084771938853803010962685241839175756674116911015840770576828095955084046622601263814612287307169372548156663137196346144918978350905820473907955962702395012038129142553940232704851862029955589292819474914905766116870743963136962231682924222230165980476203858415703271643637020247924228644722345606352288416435392461948253894474808046934803205473267560056195791487109445577452327055982956933637999084635778576960763511153712241222638948664970358638864026295441146399715665815570098391527898983418178456267478868894734794955099795108244115316548825571225450497005125190936007013410180740387543211161910296838770741828382401319849216708147283308512540364397409181345128752256454515320134183228071948355960570417800367477894546732777747619072388680477759767903222344148921124323969576696757604957716237625697477819065596811482428482420516024557833895210628685733867963239325336192418927776197485588203878714941924615912942318386427968182739202781476104041782152506804243004803653323218229994820013309296932953910406859455784946562873507682593156394815455088726719313443059527444440641948200691315259642750409309366236410388426674019222028270123026756697731665764404729305391579487215856359072106348140460486041715230824233551014881645595319887549701200909393171572769141186996538096200579933447543612851091928345143499417295272944632472153049657128297325093027120054765082605312376571073902576486243942169098846535318141857300992059180924202254237510913618405584058116640324124301908584220010309807913847265082882044317230906231424858641976939845949243469612269238687747290735173025108147304533158133890934825634301491738064195988259028776327312386974406873238491915054295285822477013956718663896294035354205270214818570491519978872459505510936019917362136699883661837225340239404214499615489596258510548539756758968197222457801457746517604216420389376319119554463391137258845240292429425414930736233584080084632381110910809458090923446701658535795288124125860834633041855649718704664451890015261964151592035511114660283394272587590988689379025547870430731345049096965947688301748350453261597145660884953360410328611090938603371690525027179866359419635626215758661003880119465857071406998743482185659198700759668252596591291326916454168410807904635689942541000735331569938884727501510142044433841329529016323948130990976793424305191188879386531233401093141462867532373356580495812275010805819507196461344593734518805772719537765947651217585319182501217395317042528278114837430502560287495202401799061842874668451735663683740702725374625759005135441334795624493075004563102809155937466249319078106184812259150996966597508835442899895080334990065328993309290881817115730036780115685756085158408957481459318852089691173588311896265467160093776800000768471764462840781523027311696077949207778853784179617940423028133035666119097153209123873502178579564825854904541340676179726662732200073474095049401036028467321755502965040997205052450908856370941606139680555509242364091304204856935192547159138955770520230268609819246424552039744549290246811538564298479951025518285590450943775151510128489292272032695293224831748004055464759854451075675921199885756770888440067641453242574368334399902894093658223894653367349262032643799799729343479622316420283070006342310877809568316487727058660545496691417557479093360582262450272630026762084452510766212939066129506247223760162986916005612080135594595439033338919281825359681734622329540193470565451082064210717912082887434352000013192891170694344435825304945966012932152273473570279746897706742273927850156694257429468581619473270180698626856640280751705902563957061129417451608916492828216599247054727131612642766565967600807725864961489024656796117142790781218925243674131345118691342418296089697885504184866327124870490651850682462862868528820866937433914535468128347386630359081838458212837980686364302615191883257773733085975654463621256131532602387329758087731983336963322337067847292461846886998003359709724043789615244922899872189314510517293225314685022089425812206161911791887452273931958705608794550757649258101318254156618212437003923851348205649148930820337744828983672558061185254046790631095784204602637025093994496488576702130863146340683355597219060323716416092660068591008948119097545357487564970232078196331455798982672951793678504949166543898481218037116213206745942595050213660242039017499776833986355190347070994535762246807144583790637856391153328940902156013485899904246719048811464112455090936281132122044329814571926572432900776303568040828783953218476448287555161202015074356862331545921359815325173792857920190394466182341259941083623750069448737095783987152965749579743812236561477730569600111223273917481129568216813544491678713750028176955006753477996985164471926991413484697770964676091556151773752192060435991903978756605875572375608317771260407070732011381127494981908778741219825545226215459403659456254191248370491943658411530778873690612727101462931165900645343354677122865114825270686548717490721228538443151766346284802451651402589958203479418018171684025292043580803952290318188313297085838739665781758194521061790155459067776883613202294121252043943637331978925107564356821366609370573527097366015926026823592832557365586070105529570619069145638284030774664675029444251814618401125957938253605941412102108609619770458306596207236677949328325836010791754123890303847270984599790519367251714678001598076240477454112515142571022709948671253038617580321089912527131248600820531135337757642154931168888106740481594563104716708641293365085332145673978861177942853884984074453442845195855499568397368906210688350120539968234206362839881497686299333882956090629629269354742383358795078114846285166998554288560904165361884216264719859468201872665524472570826549865524908368665668054905804313050099670213718279023150909281540128177524106943425734837230282734238837912266546905954059345211296330868798857720363476087584435123136194385296908348629931403979611001205043634027508697350752746146722698062580178818392450059311036401243643627531280387230307094696885855993241488730288750099471533308190079454046907874576120910411220426362763702989077278633980395419454755767426377126126119128357823616178949518372461401366683917264319455699884973942115008992217986871725192064287518479262895651026419993166180430250963550542008757978542884865761887459544654924190561577560967617819829010031138436515091155976718405950304903697979476551445751846795988822474129220442765495765539087418843446925591117728957101616790156844886360521522642655035152440095440861464057063843989353893679816510984960365416458090562259278258375973690379321154383558932022573696925468107542924988103688213735357391861100416120420549499660729702121863321939754064709674755694376573642293649394700063399519008227039421205348116872841578454403502503810031918128000365879835318886608395419106653324252060258627537497606616928497659309705667108129582766182276308032169112326518557661107613711018687176187870306660146988657339089034938277659890976274987928289576695028132711047316054372103150667079473978148695768873615577717201266614797030695453568749043185132173598142604544719886467605467717341183563933197481824804617942719186330532590756456907334274854951606883963875690401118050970780269648102919437391604942829856648185222767846703859511421984283751713108218095203939509634684245499989022818467521678320240883660481605639411241005989724190247205527935178641409146774387472525639365957705523309323033794745984497571029213541869735026252977411243169683846551753349520964320916909600438442114450045739371089639027303809816201489509989226087921980693831138890346478107915449348354838904682511772475794199270708736454913051797869213112605699929833051170104835766959558969525065772918498881528663496646867370928199842275152448013511256059479871923947798307776708618487591502470951343465771394500492808618289165406135348269994006019994118246032135170230635786048216377790310692661884735933059578019528859732022280101528247506232503736144211263758454159888769007347590883935059367007180573693244950404341608507941097861542741754601398587471622109529897981893642457821969673958126998220550622091952752419488915470750300068558781286347009142755569635525401696688370933127361842767194063185696925272739690185293865221907573394186375136383758715955196000617693692840451688615660759985342337131915255225037727064204922406930887774562251991978659137824007320299228788707571730922043808224477538680018920182766831199413788568362798714743837527973060459016240344043848874937573520030816741492146533614041407849247244574882254016407700267388899256388254241592933804132617408068330082502350422175836790391384464381490995784349024313134745294434005508077755753345374484213965518534248470956395263126110294867972937994997448190442763444872406520842024260482978297840584150622465502356832974297986976065036428358027389328457794574680297580448811824231229208256409586860249053079663408436494286897828932760895095102794758483435597471350925384104624105547947904677580193337867823778740529372060145677181146731238397301105763102319677503379362336342913235067435780173101401395276093389400251337695914423852143101396870984905599258260001939284497985391501026911009374036616685630044988054323190314025916071318249739234352287072603594273091134694978968500180886444005760252830959170204470269825033802392605915082625043363546900040683951155359627346253953098205993423928074604559324331833747104375028760651635332136450833885045558576951092126636172099103341692202405488309341817691073403629141251949826129081139205777643687995959068614850435548041495601868051616838548654136894200024508936229646226694597558084852096366786452922695226774530257877844602954328223398628396133271656376520612264175845266975862913564781995173265199818461034270895825333850475490368910497277585658056845062677790140817006507945060319378753003870210030613671363389429156547846057463762569279800085838582298200768618810407179644254524282069407666032087246100370676773147824268643406676090492731965610499039719316072706300883567750639013945570363316376750490138853365306483014993631734868698328483562419086553933414481970024206997911659300751316395101131960407907569597221236497014719997555119694692658481437222969240953175190614290794612192333698772664135705674869941255789434602313286175908857205573296261974980371475739395940816208316433314593997973175258704758399687133351202762695328790106092995300239845098859237585826844536231739166658198080303946323581417087789433553545638962654679161254662538993611353244768400135019766469261313789769698862811365534535263313619668622091016148380422428513543460091327765666022926586217723628631344482832708577850943939378322898397349506922968715558555524160495534565041825403161302337049923473298054166251862109496042844619859357139549186398498483017393121494207443532736669145326281823780637992819906917761469777786734863088544677308402775137661527525790144702083842621203584304944952884754953938741626775317484399130139576642263490854143646698529919869843554395990732751248393272482977398408676302570218218060842396520426455911854091326406941290238630793147964211216561403993735278004330418942324288725153028499961371192909972400073965747681006532780829945849740915783326562708953330357430724250840202128341475556940195232479550295188979927826313808427257863812724342842463293025670503716470865233679139621017852350720947047119716631081318344825267355498086389134309900005694108548185739718142769015834641328426341075736288886684406358078634870457413852004718898232520271520589419648861172564404268515585907434811723938855169966870611243340608129278522129598650252895666653887728163219574005521343553129318185005193419883128227183786191216063011465527631744294461169067506040725699648980450965952278452309177203171497980234094026325004447324624461819727404600511455717718629998171949573484484534267116817545846512006355768787962068097753987793203222725652137277802930770141910210541926004896409401495409557767939296416645140925995565572790086005660071262485951898443677803096340276261747087414246037406008133087708991578883998045420428863181838475353647295368488011219145124663121256893349632516399090619360404213484764702626480969411528108842282829041871087616729103623932954769818490839040182442801353311222941906331748052048751545152915857534215268374236192713355262040306606407602505404740280299902955564198557726283530338967995640331450278183780932385691805481246366486962851897203398290464697528857118533721828646414286980333824212665943332639479431153760918326952800293152429916902993157627979997123268016687546952739892997559098504198269019798297609231032726181585620516977578758208125366903358587779230015930195851936519857103479858587461363739698467805129342626563687870225998443905646203498210733347564367533849494915638912043947211593070969485760074002771145796799877121572707495064675995986213558548276799052255966239182687028781338335524651073913568936556249894934485612109531386266600076600455117397988923942957060618920811161314825721204560940634240553979445115653363728965756071689945953630446008885186353273076674328478830499493232497704763641292228455692783676573274171829862995216936054412772811986110546651499630593091632272960927053228075832695190023543975606678498470580546444390757380743588653260971517306891854315832607123159534602303275197898620470998510505014438379942720661509731463685678954175586917148872939225202262460313570783793230327020859253727359925273608033729704475131263171048702748939925397812049851207489935732683871014077154073302612200229633867484283762317238343631667137044007758849979083152436833818777389401578863849732591056386114872857812044236153795454142315150211478303839125421082518604015222928442369737192016545180358358482872607879616033332580942861967749955841887407182188243667820415841148661372056460456715878837634880867207742311567574028071496016910165703646469562184293252717520212645012361801832462171983174361017481803693995602181877187324889721516841201854436938527235562367625459224483082114628294668802597943624580807642478585963222159025132479945906863189811236074763901512518576360638157171994084522338809246885515509183650895789023487549089260737592964350967134971602927493748693466983435585563938614141614073412005767347152411202791501934459615481225502129026862313459039514910932868136923181249299612802548852368688961977827698773714634008905992104748110698822757647365223463657209593666296207817249628032008317079669508384819419540848318906532618612267375642790834495724736877241032429806861880444061089710466101589899323484700190592839377154076602064089405214678996522465445743688954945417068876040471436801978060569777354618124466928170176415671328482326679130785513407429756953394647385876807528588273883079221612264075204116082298711951274438373381783529917338523879087297213015698490496350734764962307721709189432121441362732522749513103630281305258987244405812577417410883413037434200317952146743827196457672012198217984356219829926513368950028014932686888651590928061520475112594741141905991112263434051670536637393365701036384515198292594397235378638972682418858364925703222354269422711940243365278130012500847251687434897104730408798663107690360700903040621851681658633673608818860257952176243625228605306412454353464873465839597115005084013466930077622398909693734380089847834060785990266818340101161914865914152577412337010750362180227524668924070787478166985753574046589514883960638069839285687350948297631182095902681407007976190149134183719967869610445287157826416267624122124181466676366958438586663385062029313122390736207527414296885129354585186030525422408544179711381860739497175857063669648930508604720413020917280328224699896655256085871464348406405452633480630964575640087050160301210845120686091833089808260940685891819079233223965356541961899813109235922341193756205943815694208450819866517651559274424192725373006853571841729832879765198750103015504982982090713874687912463613450547629360154288401785649810769245804478223211929932119971991017960733636009500955278315037005033927651540486912800089162529506808154164666713683116353119641403748007988650590412894464121091819229726588572637289816066603858664579647629209847415406285148270463583072736468830411259351672103683432972090574358284390123711542159446278593796281858713692067437009063423844027366635261890152555372769702161296201249480624419715629116391911130829598489273035884284729592416817528688298720034225379472867526017216820103516032970344516252871291719217751845791566505754742937087071355791938258272682576036142173873127420569197068176173552757846957215444777141735455581680161791525105443473116625695858112355097411184425747126248667498885362778924676862394342982478558697546394604954739340461283872907730351531194755321964878450501652798587895607394825595324659903709258560245885970655952225428241983085564071614022516709202666400704570647600790203898543849506449796826446349007515492537583755464015667954109493182686764267010451840137229742455149874776655244420734663377174397404356374610768129007396539508356119214441652730439699321602319545125396291242958588378667768841057960874298030010794409239478799584146002224161176292749160174933472311701972539286411155352865281541118526410571332760481521494948130963509752243808762585849939781945992982577467726808915694740733068638621974465231335322316502589375496707793346787093866315961400397134657742493381716069025639525045667046401638611821123034205786117518466185956457809107238377029771581162300551166797427463453940559725660453218224740324110953328345804602703353971791669742380411446008575127830070759212723836296796080923115461009362769676497920082490741874966391203753343733588089186640132275684301338927069200494920833258272249266314164666482090028926599275947369545843723185054423459912518334315978777894638741706484625617432014527007129720277231459527589891873767711597411739210214517433019705781861283079459967032784490026371840720951372872096405218253162445857317096386008848698711563295366191464869533793492569792874681094190268960810570965940428621203816387102225437024910970242569339999262662678085293656399259061448115531193901874871834408204032310384448720826076222127034995730122203101798736141294979114908664604650132891842207074253656328284822038564408512073354899447447418336074950301413583869801189438387254134812332976338539541105031945778289126842416218347936271662542112867068158002489894828852208911813486673138544509506356126843937020061908265151410912336372054670661092954279361968713354685929761751471932694182618208902194748660255593144260384125409960618553816828224561082216848827128024485939835898239533246454726046723188430806264976604562028455233806597358547745255437279859877729649721490007014869189234192169896481150330219122402660464333986938474237449678791106164982946033684831577869085820667122362959649134630639887031617781320159112244621998065384988835032865726985274095246391465785430875972215469668548001229261748903067509075584651595392811262333199373715587376065700308307156970466198338680730414789184268201304771545604927530620564205634764224046031394376364044917134558734676764596558845974359839008298684236658413416876079231056922256244308268099861393030620937796967775037444920848333086329878847581935985417648668329762666896636316346883005330103941635123090493751558565623147922781023986314438714528988552757403307582512805159213850046889622797926548114532667364859607158708618049295684238458510911649670919414541182600292823040839460545638452907514725228422393222480192798033791794278216562834022761679679984866864546041616980906837363368978072037146297155304600581181892201146903726317182895694523790035013160766880080209913258538878345162239546648056906195885882405351135683957390577779917783333667407469785359009517273767335870529263975494721989832569650513010592355582425548858205238887601958259226901935703924834696178165442367595915363124770748896597746926467166728087551730778057579860938654660262892188380094518995774398629624087861798352841215656638211873919140221860658671428156646830323379446620084472042671572307830373198425803865336804372405438253638441488431819423119550947190767588812680154327276186514993748881604642256994962247287493461065349710233068835890163233554762123420640472557949104290208831415026967268033016563363628644611019160204308792130971941394556089130028125562844866197875023594862684246407537581430005432649001675510547588920141388982808304654692674464957722381149883913064185556408113926725238004705163398363284239559203487614276414515147155040271523311607328971724016867063411094821522010897272087837588377922195299710004525308268414594353520619587706504343396337073270173100723915799819695924347514711780264327253480428280866379095261532012279956223926666069572614661316722942928161591467817981981563276384812019403665580087770468218611271306692092199421891957521414592569819373763852298857917028603732619093449496119431869877734477718282115397906298577299539756565750282571584398393666638632178991794043818964267297064197187954927436453110690069300865932029464396357939335565458182660657652954860078601825415281931634147792650538378777659201991662766507567902900835202275946619057386362717999829782767635443614540527719645543181236442415574725759071049504959056886410585455966302836740905065545214597425660600682594834262918072078047969869832876619054500969208338346543066053063534966223914165238868098567330765726749336785520987027234281060296858010989359014201737144525182595791365414615477979933615994393442164780743491265957691463454561933260131727170059367392603783762207464500256369639761944927759153905933272332731181201267162448993050906160230207511452084518856144019924632744545246333819908747820346163374961972797185123687378100089875032743368873129630614522647850682922146236906804045532932349475629148294333611914812435546261186162412482766829908015968107920571235674835407759978510754101965946323167119269720113246725832951632640749963394834169799464210818137223909624846907608288157549428963553761145212345251928528458688316438749938497187017899707975990982095579137610724807124460873166161453133535436803261033081895837983937504601030915483949809786523231736500530388885200870014764444450823280758691264870640176468523418896110833422673056845050203351745503777661629490415347648227007081684856787117808331552351223943524369242196502405529810027152647898676895392679986639879978110979644623912290609528484701816329796592109848853350122944168486799027662749788591371180471850614270394086712717845281179794653960497088879392725419186198294922732409200080493089548853467952121033049367724456940873877701599019515618980811570192928474689140926956513867897107238813155670896874483032829730387460455397432846013871793506980300884681440646887367774870988677535547507400402407758757527367099334908803920538830600333780889185416272841762254378078158082538720595658670325009049392019694872549025397168064969420382063788578332841773259213007683284333492201090763044212493989390000293119335451375154318609579148666562515769682452234470921208305052952516963462133940918872396249128308613209061561191002969658486590059577434139507673945610341975494283968863667086337334195945157956941377919370945106925219454506905271356476636998501761134898702418518255731218897309281158062342694084906634375461047518735639387845835603323420619666114896068855527590008130077524223516588388192301947059951673286354449915625106372339526862516017313617420377903610887080153996008441056883548322469954288406517100426169956290279399668607424625652188746081329737675925463300753212537549379683069098436321299425346694129663042438956128593010221703885502230691515573397969832892260697596202949002329822766082128888346033235627796609309791768533680660434576220074819587280276397059780861378459302133626604699137531758851341392496437313795359845148327418795404111105002797500061581229217772225884482341639262617171673999742535523459096694962994564179442276013217234094982336218971699346491299314634746050207274095965825336390790146709214642119006487929360078893219266751431329217298977833976077810487892825298928848322732597933747429260537005241026031517932041704427615783242993902241921874157989281983674901599018763112068670707222335307307699354376056042969183080425930886195614362874630448301552376887176167699062213428457791229087435614633534119139993589480751507002586403235444544291720792031137215360773360154962558114211454452433071459407514150167165670038017281301961268281697806080866069076890832971355340830525221645900307001921790710529863284430507228550156415748581221536831863618523720938407775325873162612237516928745511733327757347620565542998298521635786371262017988314367932843681079387223888246004465660235111728510733585972484468297974954361849931051795724556814764957588327989678672882209636895362102924935573360430401619262399859410144079102951824246520665636271552380692332605653402777523339450558841121890560000792690808331881781308225671233969934739206499911921408617511387275014179001331615897413071853076871979419101059502148130780301830451512862707386408906713276636161751612430506006747801161860658594716039647549739329805178232274935328210166086983576915081443707776116333168642506321689978483096999265202638075217958301040412737824406479101443927185894232479964670658525048218332620334000613405089216808792396136469314622659951879495754922350868361823247688896037225860497171913447450845374110361984141693112546276555443959115343593394804577303363825423561526448610343662333425774301605979050418214421368077439535094608617057578417466785076319545036487386490661154174772579403516365988334968059702126585596646142269595043355903779104315411313038507843575139425319333420965777410020518807116669836069180020056436671028807367967966704913376338158531656949114109052737776674332061176072318350684842941606777244427002428316447522403661358023508102664939581863084675977624707571022704397307442954129687239134015717647305247340741404486972182369423461521005870001553122914691847899712997690035880787457458266203914373584688215979375982906622305603403263347125578103201177455701493698516279511773264985827755140673151117144789786831945703002501428312047919137123994572200966904619640023451413323391720421082119958504299228097802116977352814577151360582068133393027340425506754161137102102290796941654317894899327466438485385447142022873061110789532192275657066642144425061707685471556665341961980480982354393939722205737817200786726953413901663773579302242490206226484280824801533654339863929735844623469907411256271912787955209559268960516873826090900649321675246137999238017843734583679480426637941215510936471001070301821670248460169544582998042696720725034102305836904345135723497707431626559783196059061521033002114024990643987208149002503197466840602607776885249285502819960807074332436293283010791663882488974718295493794958321558531561747384226975066372047324820388233842733256259522496923321103681281961251204537036483143806037930747527099686622734187386600682451086772046607349046933490156040994338952725687685593158214175280131106022295305604528025093986292891598048370410513866718378651801357519242598179217373860753336635536674090359494477257010827472620135094427289241649293255895951425230181483040452097604987900747979382098032647881864008361589299849839470668810147687387250426394487487904916795873989167079144155294069687096912946421250673413859505514111943402968895111115624472876202500091195340237602456368485012889671509095547062608403120715888188245291675610454718909033209293011512523818078710368100635244561715516052045417462161424965829093029091021538150462985227748031775353545453023213218180191847887868392953843230808695940404223156376660885016938783945203546180303835348098505179978982925900352221627504941832997334403656650418591309721398291546702021990733227757482477693812824671396827605598867694958526873966197309973223560628112177678849611849993867857311407030477227638734661846557226160971022831985084085443593252790844745606557960190444710340073597981759443079285937865935695390406915245763033328373377399120603459213686616243887015149533093127525983971654961041649091262519362103107461903280804746122739894042145742867124157241147307411734984646569189886580017511324610401687611658974689238872179856687195339561686992157238878112382877419112704168538976916782569018879066879303536509414897501830345705694949016181619524447229121166200046447173086624752244374041688939253822268984902578452964069528307649851396697360304517426161679830805993612487228527840532170173660727991519957314119705698292335631351569591033466837827279716675983504584830645762386329115716118459982572247421859389264643927652943220741609306529429926522258589004483076580712023894080989928094539001147094813759712873340604165092338255505090706530873205462519049622813900202784412834209941849001262765647316959466188741428124235162101288098481091342454253687845760127155866080228978316009689522010630056296394108581281554745443914022833429236528235876148201367516373709089258580874962948531123656621579564308053720295548504853459892604476956188057273256627149778698418106956181925307085958633278782020970653032111163339773699956494437307343310728533359696095653722809714277162313106957215008505801525070664944174185649938606542437209491336686136327769112081239900741588062195921674622454774532109823903439106289387263307142643830703364531997806030024846609810407377373555522398161778219324625537586046477535890785687785968504661358816239402969836839665508147937211972083815241235079470741838283338969240825102409020458355467966218492508430789259385523154662249626502331685325839245329292847315099567688099328886181745884524809023657329832545982609666364487384067111670016022369864712905718837532400810957638159273881493380270437149431883977986527487697305866763635949415615197792514843875112169138674878509528590115703146942426017107718692558934883949438770802688651279124953092729750431782280571861748732335514919970190314794336149835244260787293855224926994623171289506419159788535714596277129449055593486627103657628431480458814392723937320896530132765455395271958059169487468157834374706921330093937300150131172265108034950469407736697271270898223368718301101075101798380398455063629473936570675860999586434710752343284373289263394231048908114806718803544298567695349430545604165840767085499725484560536743650938978147864850129768329795382408197553734830646352613878523698986134476965978699835565737309272630463342121279903707345887518331860019479252497947603787872848328342679538049749213548420007363323452078619863039459463711514574157652005442890736584822099913322229960053459465697858501053327529069751478484760124941429400568129454084161438206215328102454201321741921656774840045199403064764139803820997456019467704469370928656192398150391969057064932261522737892692434459226324813668638731852014224132346957079046369467688850738180494236997755716585452119849826596034165687630154370002325250435472536555846643520999329230854110052409460813565001326997976544384208346725863843194677145061940483935160027837182283052479573346357357745376145594457088917644473631627599232638071352494180159251641513160890192947761606689053198918316241060559836615522807246132544398414299641968324467306960970681565024521504480214539507585518487700145024445107585496485040639137317396173223212868960448347863390367294839184324284653002743675612662199912476874751029962955551469544586796455612886430649381037316135747259538478691673982168528126590782356248743941149150973945436861094917337925272746540164861010414949442830888798130611339890258768995833940566844650489235132572317670218657051874544393890894353791085863849181410835959453730091865029079047412254789206716414084886812365408302445690718900341405341428660149249223344393348645995684467199420303062284752047884001637119245057974352877423462077424909420620908488189876836470722444252078593597494865828878774979662373988329737723079691378879348161641178560962184534033495922538037422741870970381501399905982538468887348616836180985562647224313996967058403720922152127193312546339292685477501599209602844111350330875567197613845042703675370419711742002465461687448050413209974101470830099584995031337089796260103137897650760667931611262144270049486544875627708475763666635248878234209059052137111549883331949459554332115350795914704975340328511403596654578294640946265504650505307877815908735560551919842893597575713351959163780662886884448897710174000677309198238578647419894507321422958520039049661995850785105425523988852142783622583905610455135270447680432792683021836104948853466657805817677108936273507211283791785690755886548135711403700161719850194634471042622257699869832092253860629330006209434676494198586707898577176913381005394440585494021952583050131742289320775930181584119979401152937207075436196779629617622758904995360963446171344084300336330580769981609522276004875383126376879685628238851094092427817030315509959217276923803208793962670060312072801456737737284508036779999301758364023606240648709413687512086958421598413153731147500243985348558809924119110821379216199489830162786676728412649173607244253404157508314609133506882535602304990556922106292052060163559912839650727320145321320199181192415806965440387545371668465223802747475098398675382478234041812320615493833358693973060537656720585797863838359886924653889388996745674692265575733591503700821454622243247639460972717647787565716681823628696810454447504233811804602501456995656346069474442739838241864431704986936016734109641805125668577603113302686501271257083024365526507534067787345071975478873446894762798327797844839554858796725962518402979935958367981155382586062793621515059420432667562921638570518245898439811799200931421914497260317876295236320063166303979910728843260245983225373567648521033271409044595349996479140834527616723006490493890746357722544767825594856469966440740941750387496321176266824117317434934003600142824777389089505110052079006813635714107947731682050848917301866695040646250620632750451262554425348939164111853066640351234801594126107170747514596430846578372679882620655257658034920548174811041923780569148596472251071557669176105969983586670533038768136841254378065651510422144694864913985134152010922708277954156599911825187551966767454843425512228751651845763515289502024260455536761970750637891472962606597186805355351798887952498393970973050445525613120835925730423536220856418246685998775573440986476173854944694815678271008251248988801569278277257010734967336604490465748137985129972829729435171988124215018919036449584115533954297082191348738435014955005648604877827827671911391883341258902566934760079038170442727096967257279017842141730317008420388815389354477983318584679860722946032202997641444456240466226369734074642875025987489787281741966784423048217207694637518089598764558747548067188286783827281612773690414823756177605321097445882297702317196122365583775449950604248038267535028816260045819081472704021826299676653084803241867853049926582956816071843584803466944408566580654030027934441662183110216287520956629612162953016399221056915865092093036354844670467169187760677741805350911996303276441328027578573189094487707420710109164568808137850171659653919903021090621204004477587705374310888526791189464866424502179073482643561808469338302413771625948070677627815489827406697358547999649538531079234118170534032622885101084781207577815133299685247800992660896880761759970313507032283718143448073164911166442964516478400449455510483710397774588084056475256126191177739434052729503572440100304952443590500138563436032327480671397840742258829986645217325688940123033908726134304308071692326938661701409970996545148362799099005862882026552863205437097648958360904990893882181848288296497035410064570323714729914468959732497464643329872459891823296710580544939107569367906480743896279675194497671861995367741015222552600084273070339132950215690224492419455510740477629225185711715838396354521103584894567400945231714408055964848767766936827393202779424909189204023992503573869686305580268990361753167691095854884235780653803895637365515664239967965760687637916629293972043233577900774018335810332756293138685164329416215284138839156666474106298523007282031303374282738583392905714183819535298654053507116477159364734647965440405907229156623021939546881143416644669596445350538066859488463348581930045787558520547436991953435961923235007215161092474229266329120354868211565206302485303673704842093509705451653580823177808267225818622867509816674965250585191100443047801595228273743462612463868358799337147402702476419870801120403728854827888044304402508653871166449917997734833170926098245998432952565825299668458901275918244910738541015859012762241925255638583852386941528428155964306432545977540874575871227176074075089112200262150992727170349531880409492080677100292463852473611745871395614929794905219536395789061654687552137131548356312319818818029960348258575242254374230341576751823357459836330502882965653063179778824316221268938565308837238193247405141585828506088595985003935305629259877031515619781092129064220548176265898614163100181543920516912096170868988824722077783018323745072761330621450409449137954211197182134650013576482133710681464508709621554040895410315516534569684337493244343102831569335468010247223836664136095452010789258004005012234751802820009148094642289728190186522905738891795293706005914672531600185714185606288957184731202471133777194082250403486102107299489539319275926409419838277102504587080162925758309659313317300363441880666006355330719468032668735057232586628008658770880150841151381560515500815053118296106143360837806866577803329845279559984040658961749847730874107564139473363089185666252298058534775788059275467112060828387752259455544409400567129498003622387320530092062797124080359728242800128281429756931845192865599982493254029944894150408779316149494511080946944285950578265469978758602341043427631047489628986556510633017195508413745880402010596316561742903075141500288841668107694703213591317456409524347806541938706464531498204971368326185982686698972374141043518502870881425065246692861204799450219766657119387559429179752502669503077840820417870089779430900219265667387298482065839572596937892311555104178154292915833382806930857063992258043869533614406477397724845084601752233322925135239437473713210006640403434408711960256289298206028727036728989594462192671414191232072926437055954330334340092882194957284468018596809848539764942994890556385956164800450838295814790132635754088410764265174304586476629730081176210503623193138924278189819855842780275764058924464168903052343289712248901813524710113232333477780393359099116595964362242672082104896692965319577106661839377630026297517066462461777953137080390536433420755216245968601987906691302060993078546835493610938824143789053368728575872453651991190911618329986555783324803278185859546812067721951763311318266204752282286768258654391843809656196404118254883350360440187505827777185203266217085759413077219306191664312133383380140525165551190242209600595327587999354365236272879872236532022565389568626089536226934070852924015635559135545444782187508451467493042739070888537733921700226345100427270603052654197335683215038588099472116839771991040729899536291959504147870360096740985838941978477393178840678162880985654411129712763563490992463046845139000782520340690861870847740278849873701651412431465161560541732790727500068781409979643366266018918812511825465169146725955150266708866751203202944288108424536940192453471562483777784915435798300473691670783302117120329705898747504382783026702305978644114311706623119916572177367707609689678220928609721962909389292723494351547496202270900827592255200319429429382265562258303331180672387405831494894372616567874634496702281053241218115200081462912956976191280499778048099940151164413055693819741509045411540177379963986741562282327607814210510345729937168769723130441424651667697527389768408991720001309533055201053118485059809504260774718318109169111461061615102572690285996955322766853103059227716097680599847703545402308473576780822149464634969324675693150345296631342587063069645252834035070198449026922736119216931960959335099340484399846251622248615439944057225194503026969911931791109482124824764602627226615420828522521073171993996028384158247675131815282037523748643639902708329662033370454565923686438007145496094147142453140535280904877738479531509264749629961220951282397435117845049468392446281470882652905977725288406734879997558371156423490468360144237486227308527059965569469339768648919346513751676962937417930766867963655200405317386236485480464536492118183532500534765677570573973891718247664965572857928241091076429384950286553536363756179402898263828356400354574728054303174676561692391372418861211155632031488660135478166909277641871208279091100404645138865794194230985338991911417972362852315061144521631178385973326610227759806444539201845243844581528274441134954723119123789985136471764338319071386008524055701858412128458140872212303022208084484505801370590678733871220879065517554275395207449657277262629734839977890727981306934482201202829554609644249635244792935983341275504735414687898583040576614897982055418081014670088302148659416229779384336732431895828101428515082671570917293739227703819498524838001934143028080220198230623337023585365888527670865717982245311871696595006409393948960075059078981506598509444565869285642281068895325525714087084497277061595488621488458836617756260450299909572580096321927307532236594513330795686479349133091400641900067054444124361355535843684161946458980711358949975681340886020320567317531417062338976856005575520455254198362034103290624187540564527609365380742663434695596949037612197056828209391494758285616917129146705596764175653152729685036473672545253610192296980272096703566938357149437231091308396135999598433255714200688404371127536718246263992486273305985513388423360498247427034946409715320185661003865562840162544790714483954085549003128349205610298461422198596407259229637091418292211859329701242748426230847702253353307856589700348240696267347497720894323714035732763203298188138476687850819748816343426266920549806588954573343152484905405958844719959179814062131614255483567338226234916400092839156432546125594949110089512033707315397061204778582514551581486181616890302667454976920628257952254135663423968988632234288245259259096734173075944429992216131881133746974395566934105811845485570561543779244217408260265606440362219018404323233540792242517664241758510418155159315123517518934395108713427647228564469556843162273707413407060292972219376166801805845861232257343177633498250510929523478467682761378268258395293126884992479336527595728914863365060820810550129396314688549794780563316060304228814801606899013117206922303893348076137780709857466053278578364169567791050226779557262684439821776358947661250592133861223746006686942664820156391210851308351121244849077682478776985443824920469856262515053484115056059691305946334309958847296926656936212325352673616665340726526243149816444481323865397253940607210414366973673696011077364310953391940507928855876726222300605829752656812625575984215059074280581209503485005781826934097997609229452069181688276263543955896642006396184751211460923679133522152903042498693644379669318013918701623960253601554658273392860267382051758423333090428116821222580934207375213220152428267851903459160396380890517593944047810699499550955439969417070411497239894083450073185432653195042059694530671083038001443151269191025868829701298805073583313802615536305440284030564570420037531809475899678967083695146613591208067508028351551899316178582789497216160148882844360187740352533241335296039482128451916638408034843456406575421789950298495880573095224520844605856716357161782812449980648119213273479072342780386390314123818575992653591532575474960750587822293059595825021135126582750138918285079692134757941213810327832375377325430857112320899362241577406697711525134641870862014643725268627750501548263071910656894566183904281534039753672595225499320268828017673495751405185693082134891153309710949308209780040890719337954804177280886913413226551469193797757346398376843314713390671166476293786623930670990036886440475811530854797605104575964941329935159221050925727018052992924063868603603346939047991064355314424079690597291769604853853398171277421272966046835004574207794892961030347585740048402400124811302377216257625609873755634230157216597011655730015826560836980158425743660683547211589048592423831911572867088229276919810832847683569547019405319793028906623734435432402240868236996903213122412772754220622534587434236025261627172488021116521360033358932495364807530775428179263447100629202968671482465236474887834351814392101720659029042142039724047214920718668202932740371142015055742611400944664941888718606145763151919731567868322172645004823985089220375338087564310712746368148682272247992326575692505343119405661437728958529289539573984525049813831718342852146626730977459908787222269970281060257842561662050232128505453728029440227175255539940465148276635286487943345812090626247414001418372377878349245008982468242804922687219509791564913523509722471986903143908326345434523263761127539350946453569319361350961333722757642165422150184196549032158465427165077538324242265081652524155985629101668054332261104411394794929279796100842408098481766259264035956291001497231056784391939038028745054871303796891140514049061423515326898461885509751026780931482419196387762341644020278710350060800380362172930521017290032098467520441169528899774877017674073663439982992111937004344846122535896927005475607498077217072125908444660140794636051134733858100317619395149781386941577738976145180819111115253967315924602805346154021079087528074101762576798370482528531376640806851993379397157023958400654303862067921425116087076645623660020628812824679411896533358705913476769735722248914487792045582328873925948199190350340497917878394335587172362323241912531931596615102176821483706957451351161374540645550332347879976078208075039313069383606486869266904464054423495193464296347540115105919194947053770076181717670467886705331401153972960355645670986382493199335072494668524609208473193102544290376539958423888283637577697877438124968783538222317303283940509085960415903938303718096823677616185950098456993490363585954835955447159980221691236312402537119217700556249653203032985104038882207747839675937957610800343546599496637967561490941415309337714280891572517119237150484177989211888339464277367624249697315649954327807132436108513283271197775607449926835021941485431782017361455688219123160933622533363926201942855957735145743785644983447129525202654636175780758884576260541382624165058581815183998289129213131684425459002772298972737044599741066845401064668963706882884031973334440614572098644606867730745717114787285675711299992442154117047464490780253584674933241015433578737101420340602755249178543402287388141943251500410117333015119955003390421377822699713964360804582553018687855729843066691110483875942208958193963216159970351726582497509406870138456435761208401074843177226447616217022359102060618551233462009389011750972135777959196611794994080315084897171398258965057181141501907056828104753257054380033939967875749485307543069447662681135371784815686195256878818659689836752396559773086112476427662260106450747188775962960948569446582975918085797581310997171889950895784087796608068547836781210452781675404727970796685236765043689572720816609044901630425340355928234789379281880798129814335479523013687536412920745941966385215460215978873462515537448191495142491665354988293729923835038150140762736818729002547401053024806512788543401798453808880727111228082349473175126527996760560837893924311575856200648125419482595477174881594826879128017508349323147258984846409671658666802718737107266752680918365956014149786780663238987496668418757293809198854561241625265513077424420435620933544856687587528942248080517540785268206683855325902642888859967457483399969700925304824342947661229127310389226555138894983717744155597760153716476194211566846039181041862747199088757361766150105923811665088059014635061826294418476292814778057373784255792249140588458873114450138872816833387459503771200838005510052109449507329377746532662017696603965244649360557693386213612926099575294734788638247692339073338911637223662447174130007586852094582390568509129249923970154862718593089444010542204965574902771567342331598917873330054099941653306697609876478359137350177003217733237846089059244344565022529576322283918317957174518970703357634937165809557739383349926746883203844858812554510988211680455337414039821743524502794961305270565248504783342709258479945563387960694187247185915485893004320942740471554404524022369188032788758405351386621436387039354151301994356056233838477542348777381380509375320929001322188826485419666159058054955646648572251199299780105437273887074061945410751021713337231824519477149577608718762094410778151529492324610742844357483166909324673032912322344845875403666378041728978467606243396982821674756244789103676914865032449607048716058677740883533433560014086652536594488770173600707168442964684986259514270682868631253810675795187018938541755242869313003117257473023459094974497471122459773803725924517461891443523575515542266415093994740131457141799650645070701211673180760147977779443245861028833510221416837486009218579051024726831147593151780733911451238331606758634665942423988602065945615715754278054284792643396712588430993638803172733385151541600887855731874901735662260980494806885774018219742060027291791628517816157395826654801377386045231754494125525250736292071661739705296232041965587302065445758444052673153243169360480642141487096593921145691246999590309123493817783445896522434670315087263806350466655543286633375311830837481972016327652206333394174014489157427913263262916245886845852136961052993803465799426864926932520764897577865420248949861763156555320279439944520983878356120269117252955826893688191953213373398267187084648654226284425922881652441357912853090098671389465058402536152102331136775148040009758398220253127298461814957334624900104653735892026111077003715149644228774127424049295823162199678806734126019904562234011536256616224510434909351240302444070743995874739264334116420581518814374849535068264908128198663447956373731406831697234267401273167394555945777316623730913780567797645882011053395838847564466151900036410852733727073298149151428080416712544922628588067759670338809948241685896251264924368385322446266088145533740938033583478834261831670480613992732843082885778324668262213117466782395699462893541137575383030635091691808652710079156995264500484616855650507357196614423178350866845988274555855841064687474570650335418526485808035857473747639183505252686184432713676189787857965105603924129914155552060725063618652424287776110268734693780311237770653510228427707361097888485328378424704438134689089559884227579178231600200002702035543285027037163311856917059956872672499382958619868652130678065673477369495845156272899538601984375261877082669016858686005571819289981046078024222833540488391696201655618840447412864308437832060330643219574055646588003872666510981468883929661072691354386233232006632209481835423390484353098629704019466162018449473182237752096986137496640616704659577241554897957013036894473075910848570277583219799726246943175669425308115270588034284252686182922118625575334673345908344320249838015599401390595671363217095333283263812144994666578621942179288093807245027709390325330384766809864169156397232459482439126387956487117479258929918242852994530378066867071381649495967901917080287417085462487223800826684408245928275043452953164394082254337173056276789080430028249700753963354948853734782695523933908765269275877470538053540909702937606851544752756561359211085454545398390821552092595861002631485409898427350487728183171247017856123834075739350754939043254457046034090808342761451530617559444348234980900599757657309388015775655783845516657535438454490204368456053859752420930029496989805759314563184070861497465034149613452078615351527411719590924473847922840563175380759117704659967838650984833687844953971100178118847307812124595306590733769883566655086717917706219165641417740909317658505384985471098031297861524709400861868509368044432128488575073155236574688654821592063011309007411613812833239566355115115849207899056149392735379254473923973365845711221027338359484388511552806347989823986395051920782147362089497280592088905620623840694486418590150499879340414686036688843881848053916977216235342769250944297805856962697286831454587009537319746675568504196176724886328763403699762935818619851602830429091050049218375655254024951163735081219727838067643306345125758159525212349612673703387080848633313308070315379222410273662840784712459954788062409114757283002718581880914889334556541170539330696436058777222040789912535822974823272287552941932818522373615354337443196599984971816435885327860058863154967509201305894167311082443052092267930425227572633658958068437100504601638155012879524476140094570022517368026594757730391548302871856856050692447410114205397610501444990252659294853223496636521019459590982367264981115472883342151231648316350979333933684869533289941991192568310328658017294646981829680654460010552137810047598997591846862245958435729127379379074010669988264343839601736490740155164721566272547472100788695416163277045898398976842868423321694227160066558670111993410605750358075866828876906990088019500163916354094790591079286475349337079404879970160929226194186685117268881629127511812386862104434683989425588743679643735991963589508433089961236919055673825063838343186418224325291571669285214715736999251496683862992371754753145772757399902139227506453327411361431218838361030187430516496611685308711013105720958954439460137071397687229985402819440322956248690824376914949293280147778631316178012360284555753173890694081935940831513287407731106192586795756502186452664130670140094579978351949029555843695458389436785959401221620751149809211038528753812213231669009816450294167238821105201291650301988003926581258555596086538826454855200937874414966270300953846204801765410554537262641669720678710372926032672874390818773900690100916446486815832390993470331518811052822806924354661201886118536033807465956423313761708073307145906294261171530009581913077586870200617413509955537830828915434670316527296404556641580416621185215889894655442962099311253034002856985665704563764052827917010132601297204047418280502108342453887380388764963608985166281729137387723774793803862040550931737608479422028640648377042481344541860786715240586167603121629210038995254318491375564540177735688304133052956085268889398319145152701095960938491423786514158082933592724862475591423643805825149889011267160497868110158412275733971575828882731923099677045666094813774975355387417629892745200828118594147899920630675598149316384934869434835016261425370770518317729934683449137636002274866774405723377558642961032518753341719227879378745605269212085537103826599080447131656457309473428740026419702112908838402439396442808818124014289128134064152126669862859779692564349275782315490352970334071138808457456174076707755760902862339217986654529114681463232303259165888251553032741669674343699551853054682419084784626371146494336692611522423899630015789772894119873506434092860015116648949537314696258977696910974040538277485543414049799503535883143778256420248259173517923621652648094565587121358685276473229052708683414631418050773028260050098908217654990426861948046877234473920569962576698561745530638262547239291272884709073454194195215741606609556610724289012118760138380243955098076741998344045256374909947702834585666310993194541317928549372783829272407893466643547251172835065812639736826929686823198065944522424720687089775637498527132992578618390309682458025777707130151866855507440490442344094433337823095348884451636472467675162363429383191553743373240592922502526060267597041801235742839735568193206344984371556323685922192986117680799485413398247346642949654655678185408361870686392724099780082459228792342703756263018044483081343459679666953330519289043742750066687645000459695483217075627418702475292672310079279098056945452661748491960455565727112757154414514302864847224734133194212957565568561901456890931406947039700170528896435737403414025808234203209457835940328845139030850330090506504383476728074065515090735579464096092618303047937185290592907164718280821625263214399134750205595707912019168831653794835746735372773732241313131362838269859148502303686448749124234904885515100370253198769989986419180186427814788949383323157653245245989083230658900269896236131928960854797155255690977136849795594897439329824561053455257624537048488137748610388484465707267832694846534921034723716089735382214307761119433773797416297026252592108799892480969580014953211770500185649954302064398810201714455975486243826616558903684677514032456951188502966697736017164743600348425891338552555622006420430041307689187607877166898837889013797190837068143540569898753067012044449283585990725208718176269175065784160464105072762858379070214874755328328324120914566570571271413698461974078648145457750531504831284877723691619535941137945685551110402924140711167574948359363890529153631723199518758276325844642767096646043666812409475105702418886757360043775745392746399863198826373973369994125913222573947724849435381831118077481994793170880166024229557127173935166342840812899793692281556035158855488975064293476661227809002832575202164968595422758880157790140774328550183335881649471875766089272455751342293341035182253760404026813537905933151158359772382259088439465458271915252532521540091196181970197970088190167802937446741815829559715627229318693052581277529951073567623914893117421270308829195055997465178045659530467987427801073199658867369655315575353542195087577656133859829647531128204258025916049465306304318043478530253798877740525785761848747021204771860783368146119602858873594783289047903850624721245460223228764371284145298310549052632817056708927121274136425353525361792574632673437380701378451260772682769590344412180300216618479776047878855530618279575686532245590775313693512514082333591961987360497431353712189151551298417493943484661308110807923575928886445075153730825498957077453930414797704911623172230460594622742459262410266314989413375556946453509367602791373134550696613291605020344190865736080723840495286141348879874352404010816337170331026427280626905154942469030111479868639701183273148058350170059633474907039172291923847810284159403221580419295455413981363721857248724080817544236979468304477847017945962978577235331612743514623911961396512777417863491161348574220844793975108048317383888212280165215599273467141452550819175033720405554703768247982787300763789783044053537154445852500506504511790623911173546330695171825310192847155534202062005784861889127361638764318033085657244654400150018424907016104852599198575046819489568098100257860566963314127461228810557017984590628112416241837114585828165330084473661353034995204105499052831181196707057312329147689707468913064440793022516982467637076357113450766141871926902741259293904790743901673541237408265837687767690723622010425889833276286737688203668509916148688665738708890085336282735237668965595527332921718669709553279107584096490945207503678288840229752034426083043216467813568184885200499771532972881662129567032693837394239507071278157510221909962873104828149182469711510396488558111045502078162070095055919840684927768914614546543546157886726928406778697302987983356836106231793739713217845683058907949453339259612623645506049135991608356981091467460540760259730680383037736061931279110211854918787042819129651068425208133308157163690451406107323053011028275460529991262274693637344249187519246938920568738742585941841457111947103615277184714308947937359463750324854457058020555063276280473253222504775725693535788280685319939496372291521680761692476264875576973850117710283862624334092785727866199526538323431299734023285951765943008299460807405268015330647613598074311467883645036139371888846471902331673755490313720028245022445633959941147396185825436323397560362209595102871325804400070185648094129570175894915669778724433466123215539304528998858020920302334011282291407461306762750936622053627569372762358720030403975792068072571821980073521821563067341455062517366817382934206209680663286243386629974471811420395414231339403138635970494803798847956026037435619950564940432980963054704602064407977217844198691286811380860546192583830967886071418555988078880457659546745344449438014225661840188523724644656268124177983007193052993985736753130467597704193361005219364410810114739198575168027184176374616325063481500527593357302845577199891188559059042981701176280364253584809672334917060666717939538458932322018053008223547821971290225328618433897311110257729118207743271527686397862189793414918141102876127136887159853940142539531134843314216378105633830215384976777834326051770782411737800937671266851574475893068720782391369232149610147910533123281501425386788271697746610061959776747951808441824525811636745549853347375929360638872553023006909913774807081441494290443155608645946802600637573469816479184474523592111504775526390759236683603938917955155129404449932035478386937319556288761305860678173573937251241012753432450955124247488835919688939175824676748033190835268862826160650977632546780193208088334971109845568589713883632504102292052350150671345462390935221435058329048420841978590484593482957960177540185895689941385811726811680300912736301355527023778574852112429195513073354631483609386099072238869615612192240742745053643367109614583691517510514985731069401111134052002042003216413127461303613203692049463959970289431343643812504170160862004569159404255895996394146808652965964793623735681944186006119888790286632475497896392360937488877465995153556800689782198649936401118002635520636175734476982271468013705365967553903709670505198870595972316494671893541011882366576719885982235546032716753595755503410025344515904327789974397356134412199347532698492210447832696589345204855937196096422244048681072692407449597057905434492183634035794267340409491886735054164924042316655322696929950518091915143433702313852862876885273353937052812129395952400328241757329010562004072660136328743895166474107552678924287375226216931989376922847264126553720964375582531021550102964463971923459213289326157286149212701201436360745803886060210822694283503522056201072999400643820321653478865108145704787033013005024245504926173876414221118209999549248698965124786841321909214615322079722127758729271736744979114298201780788936048548217122221155566468999664859704393384204403286824786290756027012278583092321057175304356673475046713524309050878988446673030570889659188344659657705057478009248243379332106126057285603533712159484018094570002413184870642598288694622337677929094840971682438410063174204671914633185156726211143968354263434221355842396420140147777085483648557885719259759112157939874624535401098728494071414160095175912509044023912598142439091566347412874926004562887813577564682406223696069390170997949895485084780249162395548058606081775536430036002748792734869309647480385454165720436648786612245761861901796680707328120852978683100392971373480048279140010884932591228915213948100151784669943426200921438845684922517886969004986357517575217912922290198022514123816657285809023985556818319251932897791784792122318244276182008167955575453472420736034337278156807710058020282639943557358662186950653244230617387113570729421294432246208927830395030277022733272175573638592150119168780469099254665615232276560225883828626146450706710819206244983117877169603303375703385365277904846359920923146620411681834306296631356958148028786711235005164739373895313490883068020262994552330029836617323745710041052338187409086358081151106759618239716151031602218302102282802414038910633745304445244023696858112717937691874299345040332778344541610753206256152839707374617904421226039939031710039467324332948919587145764407805795394374760981384798694554954933008001216358674860567858172442882347339044251500386371773720031931150374031380777819677534602852127716990870208338323754067040440755029245561397049479564740733921179124981981961708897696995203844222121288335629330854719282851258652906007064429637825582413292618146649709532994667996857261441688513018418487874818177780623609014100050940325407867573405314153675785455719769051067233621406947224369919322306807390546581850998337201861745738889906703529125135631015985039144199043024167398392980969404479426123264258432599125404521870192918060967537565361577427486479491058038498827040253496764262847820498514535495884785742279142747150764901647087305108001479763927767414112388164221155074763619089159308759462845800590967070887317582780315258906887433457406732239761146554344285018684717188005285899242762532180101148857032699775769103292364908106499434311330179829164360296466998808228451814957408253211090933673538768365625845510275964419338260911472670786033564372339007945659188873285126176158627807894559592797320265498171311463520143363343031174980052697201069305009269485569698156942155483566139009649955750013406516462661842779436492232053779844246114722148789597239344294785566836232718405376681175959889424311127517179948317481698865532572423944428108097867650946064517284184978941000374774741157599367935232756823733765124810763120295976987547854887205470561067563926436648665035144314740781001230268576760272522294787311746277194981316898496848960268389278162434505599497113385215854000596795673983017095519368572061243345114074819517697873490369866463155107950117838837380322418616913253617233156952324878582510026317069053290359941795470989996561026917650749232791339056104558966955978306511560883381882143006757843343895008435801710251300554081227665385467698029120756535766014982793316514138929329499283582981182369755781141178727392292557028918541906732005101164043358352456868234267583234385706156609589581176124764272278527309665796272057935423158431138321367242570426535361330088147843698498623660593183206556835246270001304086536275636933766370059699059657906230203846318106455052098528081860870433158506535951236737057802090150690696789605168202403766311575881476760930930391525273334455455192674487649897404335521919211142921074509406159662486198212611156947468231820414994012323135369350499298598703061176719003199765583740346767163924199008097119042864058909375654378122347860187006747363582187789865576355348606139211213021814191562284546114381002945047475585186030887130916111429349247114028543214158545952533082553279459694479903468154848284477818709709760877792852696553660237676224168380408087972084253157832876873875312684079475752989412134093213953074364375409613965929514567245351962347722827222743774069695110453691064967195035615290025344356977034890638272698414610330824561239562124575294453793301858263358447910126098196195860518674543984449835441007746755674380028231841228308874538010173703020765488240553350610499664980360591315880069114694849204653496640782463607440682434504328293936170191308895151104398706550060789595651623416073730903431799523334850261104140372636280428903901802752841795357532650485299762021737088965478821192581970057606115070611047920662734035867142166009349440256854558736489306789536010253410054521937590795420068809947998011980050954610017421883016521713746800492909655817366780717400679653581528452296582361294691148420204547647398749749649983846881825807003885602901070010831218161379203807020502078450055261301876887208783186347921028348266697268609234534489591245391194369477227064651621248438383676427153180988393488313282019630294109180017510936493183727162371820696515785884363912669587959284743590207971153006427227620174443522191646183753657680199671039336710150097815497526519353021319726073625108834178264631455322063820476704604876152690261811900300356281979063736457490343011152797785706069580758792418847935858668435669358769898724639437673969154319023530205078612885425714248808059328673984254407040323949498317998175314629399036090095806089522914142985461005248649561175343004452819373343972074796217981837135093341391179149964744537296599799353903849827811685052799153458320283378182657498448978260683857377354502717727450292367376327413448386864269864132434942794036357967174009115527081026614033398610688237025767599936061716959674357548044514963177253684655884373997256026571373470069405652507119277002722917106966927089493819997462478709104093387377422807619538813061877343895386574360598737289100248234982285986381954708126106871811288748006696330748248583288782970805674844264212125648217433607154597873136944420563233316733474341946968283653111604779751350327066252858169224575218707089316045879526689735891744028813632468860160691253418188706047348459833902215956935075120780744895353981572869767217968833018046824555889278672158017093253585422475559102364518471199535026544362069872984548915656657345664610146082080489991528077780494753931888421991254043469168796343992715877530881555076942617079134230838633923253842918897573436246445959646420410446276205218490760166706002419238285674906166942488035943927983924278513791712205438719805112466833939241434674794494328654584731864381711109907538676054014807954847605313489270071403577496975152871357573343682375532100085045923244435224539822621301123685873054493752626392288314450386352383658176169414987080562177279139416177973821398068385248617435799222621973976790434016421206356498996431462235466601638556545674929071514170876617385523993394730656424658355135787925246221916629184302755934023136705508994861505195152404279505347892460703365203871951446428450642752410442946576279136591526973594871319462894861241713251974333927977090241022910507181958930831546295483794403700360977338723885071896411381868085209531941080652371196960524374518486017248384815694840496481898640208714232928481999051273801420510088258516859998660981677418592246385804578111201030343463991886897224350763648276392906901005771889729039028115022910076793221696698397257887352458232012137480835080637795863952880548761568820453331883064984238947333383624777342251484639357398320691206159843063528771960392242612328293937809311885515568521664913429395218737112649021852120067219528115589280279473877167344900009900234323994238354889604716628505799115034358355904065127061130130266291522483410463989233694718347234153064166420467037243581086934540810836813490937464032175639609422567904921725229345045118405527241672044747958803699599035823425527817914907028137481832356030253434167456713277859705224978095247222118046044941040011819374254919962502989521590926117281923952838492906153618940939912156516399007200162841326727260765505426690402444664923321714405192669781465989523396942787597237069597794760806028787466570334374601802871290607875895354700784458840946424320345188450804815912727800918004717437935523090866120064975281142837783843485303114845102122758997795022612285984402718211564475357264518537133844151507333365717340987565134827680831961723408789431830107403638116289713702487930646013287352903715375791222836353604719975269326826353347645509347648214421101862571334929550213758900851724346050912166005702362055928812217195845420546525335904000614739013705338788527397521711709972518327673227985630823572833495176039473388886994004529924248933353464338492908534407576916329932852004844175318495570787970776271444430110954614944150139449521615651078203700639242503317786250135082029306180022215604459429641401253662923611295265667826936481590134501863578608509709626756251867091275310519983221874257479428527592841422741980761918250282987260424347777572483340579666319474862949622521749308674423349021473048256842712193108140706155764101725685702965503896997310042971618091119493677982862148090291561969529738461729766381526732346079640273214689175657560341036741920460720310144646863795579775376624131842781874824584911522476319575007391681748961902079727561124006002699330212523159247035068195050787408553740160465973152005762846008042451704160648635587366834350735101144171855689630315333738545151015367109075507865417989854706515134249668027045397979311610150953216043923398709424013261573837701423975334496137209185889769824613256946158186252341788390895890044101899351716548226206756159706365311294199050361143464621712251592490761160685309250312939069720906120724202034324015854796814052937315558713709062463850099811661403815481130885066506193135591918043281445503913191850834598519227447346787144847844698596630389231125313401708019640544693455095804971512306725277603437280349041930225471856519636851578092435227130938825438418853665062892077164079805802596737344514012024302687426244949002074452000151319152199101480674727827684589561254633773441488665928590017139376481970830514170972263674306967689407876926538491824352225997424119407889228164158176468956376541362794170558018456970462900108347241084940897556373014539883695418788167756081320699510891411640028631845080648597947366123926343154632347723926011114588651053938403680510141012042901179013295793533800012774528363776510962218499886225082522360357154476988486326500899180637519710262989974996996890454770551688789165665419084426828798685171637395945523899028101968330294649612450767781987836479311257940265403250027457526055924515437519107493986719478849238304891003556783652871161753388387591810100837141491523793215223173994880289738130252343015654606608447618881426055432684725240733514637540657441830932797991431963641347701140714902835483426932453814981357822507638940631423378721563773794962880348450915163803272298036094958039015073365049515127165142011127025743088807692703140903126539264946057171232428247841488067159092251071938139511192612962992238890311574619375895088056231056245468225583055927777132468105280149393275981399671079332583963141025391808931954528963938243353595845383058868673501294028720442889040752719632534899485213777328862715528917887532749385969356807514747482436605123455807499092259668608977060398696357278055654236449307696799802055274765226134676025207716743675748061577293765305574619620829830111257111609400653919164652575551703588425727780643222102001607102272729524348145853001079743461068422800263857736360792099826598689106391374171749714224527356043576869373131796930017908885721847602096928613263797086483747696789676711004605521628352901179312940730100652902845545486291968113865660927780734758319290736664844942634092188760504574752653642871447166872682059729558379527610924230752532921823413075485311120549643704147635613575037566368187650539836895217950226184701696844528922384670584066565729579039038115437750191178278672757864691104774157051600492533370893196171400388093691421103645936834694225672445778961017275128480024880579237785902181916422488608955826300239155057187848959209406309604448368404724143324378921099004824563179598724559196020053092931217767175734596998734160765688790827950647453381457432529038835236317456430103350928823339848222009048670156439024408933480326338185940225578684969072265693243040856667033400526692176703907063193355715909907806936611077960366986770678271270253143865248664246545728081822522098462694457840686522095556388510527527608563599455534603273531102422223442422003790655410876840612069249315041619511657550708092114747646111571434701307270118715129552644661007828551256691937018226738250226809868821538978635406519582203081592805766642102819032518579707644309534259675820807332251919510793748406843979008511904153475600467138010002750100019075391341326297246891139429236535258094061849880999798495290783376344093944551075327045087723734589061448858564827514578724294848052870190167046431929999944502048065591553931649749132961739273853793932033832249110467457270275033100319514704237205627725466439557835038521414372915281688213102683365553509340470219421784566303268710649905048985287123214004987210132783312186316267224423818516789944170340463881111018226462275662296185171792373296426190903679875344001918245769656590489364051169429721235943705548272237866781698364189220204587223696647265502997105533057003774031772064600968450251965599369862985606187426387161658249356918520789066185230400736794670443892383462478503940727991833692524343978643960901275156731546416014767736914568926085713852238425654317508562847744311387977046703182337422344503181811091830805890981114117255566745594030912780425585270334646237389865122151726461692609019917829896674283494860233511158598614231759909497339942336047504177134985767086441711477805454277012194725607419922088406643247913958693814738890714508010096509209799185588282418417092918935993232643997719803137305822682532452055447201397912382770910435906844764967378849772847946162579815679038245404711192019483020379860002524711105678602375839663006773987259207198598866762145620811363808694599338215502208220769223510119620178370333649726059186183892177991145808629383654742731614074645401658337063934375455960513128702287820187884138179416957928414249937215128469167957591502272222050841110612454253243163243349644462144988276892460062208121277511540088706252397231524836712822238801097704473223136008836873466121734721693932374174273222156889696174744167293048184720545430828475249192796652267094876900096875654057959762885439796199325806470159272347732150776080964388107993735942782229822589639643421930679053887486516534428006672100306624355260483741999429656871168492931165362513111156334753399287562859356074912668249383341256872491109449558416358678904156187758437951667564144910535708267842571340828843706031972482016743258992805166105547303792267412162697536696207051794228825138718952487781013857141255325747556957686909557856419494922716719899548211416213929129574757180436215555737232957002215486957894511526465289066091455921970211928842129447661263121749651535448063834539571616963982156880709796873600851166480310037266190352085476254576889378612729410526997410042374927652530023654571684105823508067708288706718541389411316929348205635518475284228973740277413979414781025994716723026579190223935203161543940325042504814967976139781633815642283104311424702190591508471550937493688033160177413460218829164498245746022484007696725045287379607659516456083727325273414868116449975613536904073895369843210485180604883084116296153661386532055269950778946803785237565251721801774864253184066202819964088196689897736469701703849711232048092040964987082944434567056028642016605747537185207385616767982412241056867491663779655027552447240898159501034696872323240008592283430480484973234074283987191049304515368071332068731860747593860689868407199025837508889498874078871864012628292587724350081724889278491825507396041419168862180232909154748160638892433776269655122123789914113475390946023217885272906622073873661018122631920496428713587702581252389030100775028324519168538963245043392543614665029635602146793589674290490599201447405604272607281339754773632408471187007703747274012765240411984845447386259370283217432053676785524771999543532722215315343467052841944096487087469054186321646598046447624992463206087722445207791191233488724053303023905558467495625104588035593572095166737424927632500590170960577206570747433513833187285511548315980527102102770614658583279671255055462816860400000347117754146931653792085710259712826735903522029040819566967362218131156429884994336715804259583852829196391424846945611091008859647904150378038359180268150156492122855421840863870291459166832178851864066150105114863219514976794400848082020868528419006843139671908131671439636516668712627401521563968259487770807086555732079304794484307345999856358619570997071360618239765513260806635860278560832676977616550005513502925282202970894896626161295795989891369605543604869576041168137156055852323588089292759537998403344317382559376887428521647096354331682354793185891923955764582996294143731324993611166873325069123174350981737944521702188071101289511451061388347303479171842758565487698480366506493958581040358734306279388086154972820966105700906420504037153491745268133671091661494179971498352256206458392317808821744847756828861164114702424485204662338293902499559627366263695898123811896460946958478877919977109177914729269732242134297230238269946213695271797801974422271568142552315739406726040973622355637008525998004387722932560613036272077810065910351846203406925114637993852611134349278165168491060983468428922729775401619468322981945907511865619630897293945049751521718012494962976530689313339775615188164092207191316793807150221926562885628230637486036574422396640076317418896001220672649617355269849465132359313841641018184818498060741214228957350729448262776995515657838914729957369470927898787039480600358817377872137121845584328630681654948348250076178379489845819746152603202098004389784110544323854277913730411977211331568373219091004154879463799471086549449089645809269997687055915065706827573520621198181931400127896823377284786417116849212694394046437234474599449904436648275945244334179177474386077701782870448223916727520591616401772319500279222972019565303364395832736896382689963938255521449610506411569063532702287737715625738456803319919669371528973201714123412662511619437660512710255882548833558731995464152005370365060596792401612531170616611584583662105634523212615162990184847232078891039221328267623521876652016512776229443156386101694616281528459310344832338565783332328847991999602147037783727706853022444762919685254973228930414242058917403128482315424185618090370872698014762892717707905370930354595509825880725487344148447114814531029659696085139169108716285960229990673795048417958021099036466235877295889528764906252508735961528064464457006045511193122754365209034585866887973040931662847473029471669501669249140790533828588559903012804745816999544801227765391089483423928294202081709733311701532937856219623316830294135961217169497689349229098294447690902008445634798507520703005836144949146103009583508794601502438743705885242936772666196133789163150533810869585312705112180778957241884661919964293655846231241590042798013653374300774345383486635718807841900905591872975450393627718115016610611756792444511148965864708231726188303462710320980716916445474974080257865335592877928471987906345505714669222855661306641358853543354968035484206218056255717279980634199273105932118191573289194523966146986128494524254001546535283383057393660368053713187129758133314873522800671857800254494246556375342696808383243906421655638110602473062602684653812673642966177971786346071509453229243991298219091386676161712831587478593328524575622056615456529353592690959823634519796474849098108950271241442320682852981919841613146163275934415538757541438464384044686250965358545168125014543102585506275656209992895780271433060479854713023278985516515447187007786658108275557514390603218362735962912179509319806492008606514190544088682771398025255483857129156456719581011502033366475637719850813648762214689534561246376023596912053466759506524241979666862626386526677255559951879578581151993131432028098483809157280244279781583458301348184192911230929848913257381874449370212247426306725296516521412599389533901937307112572567047761635554915635749132024554248759762279355484339775881838983458331860281858531065396838229907802850663393385567489214143474294470225249170397538937217984369675549885945584122277385240888172927544484687164411222809414977213032915767198414357234967018256254112520441596601511380721548453828496983645436700538087195384530038391434453628058701109843974756927610615524723840892811311369736171407765703463599989665905624059593407739327977016265773029091185438753301681759180680753769301174629962180042202267853671669293552155442281582136019453053211397063396448706914018656536339910324635814716886188346645324015793066533051787013901020253312377202336259119589897836430259788385152086268404019886929946403691463549215192102659752064988154034454576302710175308972167747581869138474781343601381668375506892499762293877570459959600076517566029647209555930943892602630676458718748831213432436576217057167603120650240211374369205799952911567575198902534078073324793850927375386284304180313602447548224477122207895820362711282077633147198114707488577608641429705450199051963977483309130161197743189711097707835237672158193039951145587800654493150272091192592961689318831378113784275209533558901073758115381438777395002990724591982884656900299016817894625302375488253553917394601793965553096694589091938582218669685959637487412716361384821112307455535713211381289572688279998536107704045007563022116682807828624510239014566215435894769199799912556565581702404205807862557995930771844643332527412170446354512081852572767285494618571441534633091234991463392944409750613964428916483362946166936992905577915710788867210340505940982426629869302902029724580605755457629063178584541937552703397585751449452810589566476938498974557448944123407304139433267586365437049822041259052260500210870981242959574343094028447938729407983618280380846893553650755541183767160984740324373792072954014638982681737149666294608402555008509350355752559212056317732336749108272854911867093644186794015557855609124186158739875876347942820178806160540991430648198577673801762222382141792230272591856615853291344328138552098067204270771335584233839335938337718632054695894179603267050802993460915313074406705483663943790293910001409050966436738823385413423781553704607958697620685544387469436842256082885613618335933322699948887419911476741133482821815728187056099679934434753254782971728574943106469531947985026958858887859841253844414201469577962689363295069955611668589735267627448649994860825087082085866429135326672658257807603116881895862172925727751176007381685404862941417419442548198013735112358869140649740560677976095948211416849775501852102495116096625245115692785696410953264639286185725860564047201302738020810108095268878491772174688217788372470024093189851175462165912627660285450224353911859236769721828252982968275236104937584966937308181226250717783826467393295732588749461588053560522993487616308533107609279323534596324344978282431430088173222947891731628038308813188743138315176385385453633019021402368014260269037128030395131040074485215171524232138996428017268813381755464478937617162511148463827491453837707691797571910755090135641449862080573841281091350996285038772134864982503130391057459420930768565785532521256171678706019249866154513515330242804708956543971560010896912357801984531325075737983102512051798191060491924905258469615332309222248218730751347320746692428712267573019437809096902762250328797036318350295179812369089839973275715767614829617096774760522825883976446907180999701045852294996636506029199353042371722178001998190394836847281335611785048277468587749348740781763774532543064148882507238527367307780207603696064000923939982259695718394535721622402979331979308012995118866644835514214446093783977832232930259565586285989019651140781028269488849432939432209870384267920931893476553164968198629823059971720407538023480957714403157529676460170728722190402808934236271202516193402185118141685722655533544996311484863313078395511831043741363144319538777115999384492499768165066581846728684327721132851103710261752675590978630395403173679868705679676687201750859647668713617687960949600395705861639066811559602845810410010333897560360021184593603682008346243205605613638416728733554051830565823812126673675655834975231064808017260310243504084457912966114343749872933531745594859298068304974889685778619354297819227751761807526261915270366753354798596216453938082255417389822549085088316077515631607251901945940869243973553675126959297200818389484671551511709221209183598327597265929015137987336718467435914048649151911532569233365601115601686751458356889075364378662741914838269935057290830956077908587715113843994066285636454706715115090979617100692169232823060550095390003271982776692273130604509928120920087805546886462514122345116466387514274030989516758246218459026972943460802883231009423320593515573674205488954365169818581758457215288864620258577467816072518139201357460539814960928674445659010544187391034685016015643527162200644964160877214602786101388108067083939333790134716696186570378229481211486221940738182488918823656466942982443604621658382440350991079187879804811855397666872542015420722580667383811454966724258294385963928633063029903249889507732402482434168550790602273702074124360863826874536738508341939854063026838844521453871846154802186967220481356445287113959367006499066947553671015991337811306687496934847805393284149702691051818609792191598417755778992534904192494157229685303162240544309779253850033699983112389055990054369134228225221413649450760198032486768224057343530948692386193652562440898907605029442701898280116902472655320244624834558108663930525761790208301084462642857217293369637245081808013688719346130666882277070831603819056878020357700330085359575611825439548087658900319933904667560863902973194416272367130044044624518417029123412758128651209995269489757788309465323956810703939541351106450300485257980550747043933971150234021534383239006565003089796968870207526290349516961749263091570802803120857264964124267358715401628936145753524733268942754648181260673239326112256563087553017253778816751995783153803939669789252893173688753983154685559059725904866108986622531147833556141322746718898614014394522080859154720913973816410215620245544949191514645319332823306595262952619484480978389614338656263055906927507098373226865959539692812295111560146454761103511217093887304634676120834926489509285676020141955433916471457337862871139768530700530502310208930103897340003264683549268478350914308291978028251904623299916833695572022496011260077525811889586131306836842856465525559579181998572169034436049181190341556322285175670557272245815198842273938845417962462188545389746290665048620665347462564651179936392204582030135224545900429855519308269511881056019322440511881806971474756351761829326317798409708175303459968193984319088086171403671844543360594855453705213229728952012241082442488688439518183166192830160461940388285537907425677853618960337727242746813757227309796863760502268048245109959943181718337021136496304584938126256948117882122377195205441258970195969043330333808494141847787541580695036588643150818292261633185080070483842231781297523209409903012913055835272958899117069523292669241757356203743340642846197889300084740444081007645649278168420926869585506412919630544156412907518905729989549522759298530904807522348764541400030595342563898526257720709762447120959975585178791452401359033560093777926200335887286467570439309520284361036156395402019196025571605147329284642299234052128756940215895650839052733779146512752288679587927365149431903392667765267876950999778515586789740358541479261761841776535510883838168432883187155345552153185724140285020677400767991155428995558841583611211266805287632118770602028640233431153061438411425219038719636712204018803292808937998452637638044993035722956926739683986355887769485129004055589895030572197834796142026338322434985799913921551533877914695167201097696385248463256425658295471053531267614131087059419859131970045086978541033037885775293914120249453145555195587169493461052259711416969208793131023775928618851705239572353466198556914579395720567443181550059961450219560404608393450293667594008377942488061679576261201229542041937553843669471362232629292434683950703781283499963008949170581619195307571748359337189895063261135452429096233680204733579725655279451738563345811530316381895943507143749754479788758065524609018433008127702710685906853192262405520231892038269928202696570201755721853952732293884877828143178336541367938840802441096909419678979156767574460203389870267429520260428692022163717008660239630105533066666513989791910247075689880794549921174535611968432094539017469437685472866364555087730510372661072415935884900361221722717311450794395598049483894984156254158443685826291134020098858159718875420446773104593282858329630457245575622653121959357207251579155014282676763059114895107014022709497350037490907781778806632636867988818722159596154641515261850400813689022146471483189177934545218690105131701900736073030024670845513137803760706883162271685461421681696615929593542734506870978815435471026906837617381192987276882441383519906742354013584709455758508133608640693163482762301324831205571897536162749432621407982065914900718221879025634489520538637237889575179038912808346672276822826433106415440865804968077321970398603815863552120955023283230905381747382501965250146064330400651787010053160928657573291420116185573643988071063529410940183425770508854609262810159681426806609715162613896427283556570589123492930078226741401180775271159749242478906267403068508555468327544764433821716960195317091145961490969246677085633211510303648098825555745264550044192958718099214489999380918556710939314479523836770160417176319077068069278963258671047762011673844329491005939296677549185864454924242672611511639100251248886822184832097973274036924689410192689959047950315836220469138621900230329386313919814299803437102902131270289035854425886390423115704247330947810437142375660425615275513159681460800844046870214628581671604264896420975207855190343321695641634359571029071427422150904247226731048702732462803516876162035492556874011274751876172655817048149457874792631697448356384328621709096967800851821087137492711129564292133379758803035030480399673012919525965769040152947789793981563917322825888984710651265735182648212677301808340099473243651886997803009028023470969882332112648390537742812172319652526440078434960379858701642406290947192773992414995181578165740377922875375408168622762129473417749465389064561059261948017157197631963405728386663266606380146650229174449755770363383538121625504592846834986707487255570489946718330964701045619824664459820578830114974394953071167872135008033862502669929363097422183309544090154289256211035176274934462668262655614596684509719336980238051310772914410698200812306532956346574982514958930806826359470448018656600733534525677048557983678350899193130498778745157294467467154742155869556078743026592620927095713109214400173547182139143515742886395886013830164828477763954212025544794825634742009781863587593282791011348839882902484095445973813618818172512245383234646236448153825778605420790966108869998675255612386597560692945995970139200683284182260790602888964423177347693108793680737326622091527601633833631178078831478855410323049156838954545319403993781269715294188919560600829358534642674827242017616881655932624151697071162716814561182469384797704276651292904915361599560654944596357735743021878111656561946276545119693885214199792887795567920868591960579826322008751948651493183305974455881275014759376053744192940171951032726294903620872409801773442786134751377902208109312500769167440810173291858773889064426815877742351673187336435529513845162206300360815651067360463384626151413170766202140718058728452877034602055028999729551137652547009383009719039891646605932102855848840169375160491885248392637965720427137311926614548968196199852441723931764435908786006393548332507402382464747968946354553354026495019260157942334359468945677127733969524626943037085966439349368871411716943935517154689467698128324042930338309742510859037395464361520327585422795842461151059789257536755730254525723869883667930719231384075717947630286325397396413226395916353696461999403260147718883237594480377995497220330126395912945668641882386777426118090444729063217150266304453504572831242532947482357271290713407638843268539420150711211489300865334286851255528967204422458226554654876678699352885750788770582923077481717369432746310300001661266523373553677871185985556752136184316452471145803806031204576161149388441114102126282461356253724748577063673760395023445442326658324345129694480509608491866711685916853039819652656748254799575900122307814794667907912308768311807274985478123534217697868904795768381315119946088133260759353139066575589648874239148899178547746810815857105758777843626370111760221702137263655649425078684310799629365864859447466392303667024637536511711913605835433432463433622037582394040792684015228427987056192139717942814349902106092334368752759805264486309406830813220471494158081590876804189534896318052356943081546620555735730707882942955897410444548083292486272493579456381445223281173779779725685557082996942697989315999768539949164582681032054250180901830822931609655480799748362805881664288613739872816798463242135097414892778231978006645006904392911538086089164404919987333641950915595580051137178157464241715073879161761255869046812998137028132576424299260503253995588509101114249254053377519890331825908280195307421859688026235532310904477350810088063623977096816442118845215605964287868635390202614651575377783407906851276084508390769860681035060845576667068524752150040335679167077317930769541397175023627128430399131543826069351254988226182237441535935365538163258744400505905644170877230694394729737381832668458678919392019270879505121063244213713038940622522103438890801475485314604626833937855636388402651325335031148770718487286563842088170643496422640545034441468406615855800878848470742219016834946390354660551318437471124133017590552130818081366428057012938637445808945669967025584964961390819051711937836222230438164900113609822903057981912673496671386246840331631843228470424294934648573348798245385920859399802361912929309992265507451838580605828699316017786966111714398703217794630803666272826697899513118179299656417510947962818553706658301331706216230858591570049884918373726670050621355269995880977023298067027873081511030041371399163933640375183643539644447620632220883525438031126811491403592362595546922365684432722241446377913159213004509854387949484237756524569259040258882145289252947725268094487254322788104376054328913775675918038737385811293537724220156864141429121946938403028343748472302178906296045437607050401160342376805093398189484676642119866143419534265173004199974082312314728733094044999932858406742872079943529570149906639170881500958901103972166810243002934463327100932797392332661789678795307842121459096020258521124121843119001292312892638301136698838895811198443321773098562479380583674343108497335191257324752986081675022859438658843110783998453604384341175512114523654911144840004499714501422800814441014422460043806427801161419603202448838247522575552026380198675426466456377511097545756590139587827745840060143735332885819542581708305357526036879940167706205154118631595631330601002363660148832847770655494941187709670029426197683778228730493431661596828114158452256087145678769581428844719191186066333236190995383621531878398877696254031076045924052915780367323502048251940495456401440573248733837341557731020970811031988919896636968652826016067424716586704788685070847235700311717229535652979294927877503472483209952001198071972226931337905599633196702321528998822544689481034845566835591837357361359725939554686888979793439863741510341611649901605829525653225493995046677357315323976478523781646674083179529244189632592597250597502168999791583706115312756219885897252938666245684739536796583593664100241168413119487889094416820385425130421662248729727072835545596941523813501157434983570488254894539184628029710485866010262974335641809309063440152555284795241087095952485151132187958236317973755852474641762262049072865177897836169728849912347585147778663059611541699269947030818351235749446440166963937140292470879940852342733384215780104779630451446564724314203408846604968655286224574476990056827036261767497164078386173465275983712801268731677737430069676450096232979412169213834822916332998945093689000903401277521141981237291418169010502488946134620179433925546053498070154109438890070246268577466176509309717716462800047839181433347345594703775987390552795167931048649415831148052476790665372816259157843078398489014931958508590060386402279576169498674319163462106651044553241306918858911748170041703303170419664021613069308162369320938989543802031397406158002061920520943012827248857682488019258704792588069679397270589250284418084457054443616580078035299903161490863100291269336904391860840499980103216886459928181198887120083506199010041882646764719363989971506681089858059291520605648201070481015780039196966306022225506952021644460719310855822096373031183158347941418349558847561452557428346633086932036039975741253526090083102067199986920895121285111258089086422638158817181139462712814065910242555452076286648763173939150206622903586297331906112569827269749169976666494945331632457418944072007588663077524665460619670061269045746991113968738367084621423162396122375430454683755415003868081873369141078065875565863253609695557371896307874977797689295334838551233690129829610819347555565894542304803398015046300764123691795042210624782228854501104022726569157208163943766893986328971092357558715619031271074851095700489239890312096263521957082687797565145898708158407641936616841229060886959734063810067958584944492087757181248529357565375596499655119884512350304658691620447763776574637982009548106857673383199181327774526903119539170151767146230507207890540218999288072580009379559213945408765601005989917937284780287648585660072786174131209527904324876213144799273103448450768104144412835796972665124808894139117020264232603135682476707829628864703866733730380278794449002957470496387856238470793434139552282157199852552564928144094446708786016814732380200955664885641017677473535438795467122596845877982097005425650372864232069702756492666313377465335029240775750580636823190046138472949966886132219139797794627311363284141146349133792712583931579635977890158902825311946847108236933529604143942076079582591923414262566467374122118447730244666719932394900966082340582333863882308113566958185695987559723525727492641765467711143594957025131851451882328226394397072132583492672053279229062077404461907484895149403311860795945854396739357440756064386740197060813353492362557722286005642660917853805638331001981797481625269673301268073949471942959916705277581264540191122128953398418783056472494795235862015609314227795294613219770174336129904898802108395776999175751767820857715305420001274839331627820822986680373634596414079060279777199906424134213041954990133152597257303138526722585596787085243146095402557984671448630399691304388968642462589810935563382403179923362156160363148520117026217470012375059674283638404544202112815752134110573777323234518797164645400968017652644576912383946575792847039253405819644973790616778654167846502410746807307153540593866613909996993634319386479894879762694623344706021683446665732430180242141107131986725568900884906628631659090534734833009335220869645692640490530841647428823184161034602568070605908645047719642002435360962838273618665531803634669755282449174886031547188905768020920075856073038868947476906388265949045888110256424458050278600127221307139444195085945583760447333526574673663511497153888001502516219293663302788159957676038104097272014890122049447599908916303999458321586402516705773191948575622465859897167554842678870984177648862356104782864894643167518495236302021809996820455225687297517199888295615695325163755211109138021058254062598596508329444516693996269520324630132191940522717002580400639115180438206331167650728242686853888332786887318845495857449666182224930521413917019551334674648497799530966344018841061262641917780324265987070328663422918586950125119535194813100740391354026603331071210205654957180619701839528249768381565214261243608131616363551928554132239274566378276631888714217927649908940809001624052417620678763942084091657307692353306061190779049199986091219603088172997522771412893368231303716065669795992140287858518591866493438556807902491028887296218213868665651419727875015604404703349021380688753074631683480605625512979342682886468060623474838937472461098299362876576207187635352976789778836740337974031233831946377729711196347847646610390200565031315276636693987894460905731883990914509152398078856575734951341382827634036193301345811777831636631811672182252382194223623477316623994870203601030046104720461736545957460811800976359536025702370236402532766628082742732013739227779709317320100757252935046003423837354081892969488310459055632343819004724395334473734951644210149980793299261742319434226915605730189995507023079457414684035640956063343996161435202388745970090625210471491238285324725569453713394871574138997209417156513714051440516495344145459644461605541571879359982024053144319468616549674872196489906227519775584562791987868169593709160037098256119102510369067844572622009864965248244292390663208559833716629310613016640922250342833197210670935393493010225711221143856786577238449149989223413517730481775851821305071435009385706471339187204340045482131003450473001490121841877696415646034049549832863209294761761298131055858916717713076653314066116486092948420035465928464893854311639565171312338053383212116255260442279307136788141762515666947282202478462699209464835619954692803151230846418880140511051754654951403513990661950520866189336199497231738394140466937960822351726374617908529986103860058838808341454404783577929610346257074687582492816053300700521618223245681890702925754612354684437293953244338411410109301941318340112687730775008616740363576262885193013127149290737524395465074137910990442674066027023497409322128692468851125092204448900688469570128538027817307274004695178924295001229060734316084151868314370386031949020604240108957729002672567171377850653885436161626115116502741765573544683249091934554521933654627117413566982795375565645690577347237291427160420736845397871715940324471684196058213909679636373788280889361969218066469778461271620089645275270291525694362734945471312235587538586772213413644678503423930099655279536170214654941547563366746733546579332144808571584249857043713528264223180945101107502711653673258051773053899100719384642762336174184037707615000270881046414998372145042168176750995196149743737338924261699300175949796414911195681379109636526590193654956123762948879248512487717906919379787997040331746953840271176254773192940359246400508794668909691479145254726421221400521161058941898288268838612849102536620717892773523572710530154442616060117258202791948992996301179963827683362348755857573552911887080210676485074873196302981615175666297245061804647222734756606937933374143080759400804558084172446235270085314560812604160139509432997243762760540321032351201262952156276500922639405336722215465585959089130796731868025914292772871283814945556212385900447895097496509881667499380268794278817562073548152810104843778835764514946012189958160238377286553295094530714111363802356538354149214560745758276032357270180647856437635710070131385919526803285450675217889420163262733062515326098026094772800028377298859297143798840078045796397233552890001194268568903676791100213127347735954687146632212016438374751829677781426168000114194247075649160119071577244085466040307399378865704144433401987503144896892803157460947092096765953745411728349224274964607942972999840264258244617558163938068796393267935544723188566415493959230711817828035612714743923820509175572909601911833563708622297871047948442584044305676509870760646764025919737667743117341474192582100660343923901822241303366589238267930854507097435134550022623407013014514689719996231165500000748247085559095054288936274792506996901395277165329292002251219853566879340092125774000694517152954711493548177594874251566784658880659106614289338298109948042622553286171742708994221716655910642085612146286838151228848376892404620072387254150309004199548385687381421490935435182101642983489647745780956662144461879995651187128688945008759993221903395181899440292806939092156312201100198445854520129791595881851954818235286482134975642808340267277802734126777724112924331280291391165887439679969669489605285330355937855002625552919600815378058507533287393729823352972214962164252881627382304100943355905113365772501906752565713165953223018105193213599115526224632265434570290406207782900814539172929891118720488534834945430441742962451546106505729445861444260676306614900964704146057558007041184818271586417566910659102650072871835356549112509248688670529818578681593927429495067211679719898206490135790559842505939024823445187747680317630892405408700003075203148070840765668162103909717586311439155866765589308762872035835181617456194971859307019469372211144043980273505243021896522475129029447600660823851749266706940443949796481431428360252931575328018033493035147563850834143023562603147317812382781360613218057409184447958495842834515739467015682354717273899484246249165860754762893967883390463131747470524202949405430498584544520684225621232840065877037315246888653499475752560615336258160436071173677700518282564673408719657723022508765580183251741361497387409023546803313934146599732839578476595935153954622538710816723927951587608706903523483903921135339599179280571080512069144701478167576522531794533999562002452014156562040231541520238911257851486078443763060619678809030492783188870628305447372053662130130871526570438228391800620075418139839856740637905047945822410865614821173729821157882191943432241379762843667695601547827856066459422474994887990890763328609124741558878083253580845078890528524034678674267037384237892082494207981856795579275705884707503605527707872754562958332906242044337233148577000741731802719614015937068617943918659908105157212376400258923735371977545754212792616412606350826617381104556232889482276354271446037318012818147663070142612133330102813584448047094153318561359149092211010833257882025198336220913382454792759840009374898890876041142949420139463671584857213874026491213283155855549511365226521244736209529432104363857059649810302752379088429204096133307817314990319917408103518602844040359235016164969488142089704898993509266849741706901555805465125700267305333682634252561582990197372912869334798407784262818219882997507488961079884723453971786606985793182779033376471935822669540549039096081643190529611718882925287763639402844670796159789072709220554583690238833369406884340554974781272787351467053344698765826068463299948614459687208080047340449135538033502094749862911078371294950917780119973409915681837854559353342992685364102888008435948504935467291932292100539844423818343105167645059453756289696815893151807364497356232011889665102307565051339629441723582953126423822230623099158601157429485470768081873953329527030157706748204991990261282217895584750779658983696963067390790985901565802382062754646390786027436787373482036723961490086518769990483785348834507944742932446288357099988345784475352614352595687054227975246435484924339762205831011967777105394635309222255061330770575406155498914820221051074211639574573694916535193216233743386707691426974812188286460597353647667479416710331649102209584610123911807781195758573113536586310703839355867024832346980769609599472255550827923995648270909597449228553673265284310967797560512926092684453619660929333973871291028894367096128881634228471731297789631423271184089493972222275464997323892948402146356749124012197815464708578479799406302114240274890836559515605382527938914574469449566489303907167110459520885765228519315491029345356864383241024606565381963152079478922617638650982889472502590068550135141962191987618352724086829971825547150417462352333316991668292530207673976677548159108183991813656274878684169406954423929693198578703276562459883367917793782925622425098259297367649901718695617981190623815510446607751212678639405265200890626220154168016109941039911477311689193752017850872031335902334709168991272402295441442976880286050769263533987101611973057029145162331402194101321593113391164957838306088999125375987864764581734809509065352497668207937826179470486410203192549219357664123140273054555425929360952692070226434296613792564431751267921719114918991828174190557901156578092946192968674136167219141613430452983798583979716256820776420158055852566448898063705510070198842533566981987851898193484760352580339646724680008078640793539775800205619483289220043914278880082066613110235193968512914370333503051998589179532209310718363417331652346447937529093807960746129260493672571760398322023223349061437647956434579285286026211237629566622979221257024843699338468159471121346931474532986446144198203915754313011841437917233245615806814747384861771203296114136559828379014726567313919778981556195493200212766215682841465632747618240684329283482879145171093368050543059887036025672971828382541587455507286256881740514652895005295146267681604534407543988719534764706128946651044511306923034225910612633054208797855427411560751686970090466857241799939101599480208683430014685067848830156243944220002167791477918808061928753573240053310938118334419663081361756538150694995327271131565814232880410993247414202324146010420611088452855678511526733169200116538602932904884814874435026461917007490718501684845031893206649649992336895805238800579758987774774141026359750489870364561923051667149666504647102796912954834540141349345634427066281058689551212629962778768627026154835942191241405187687537417713983628672532921903389105656176036684270749620499792168617696468095400379962181230643367865793149111127395467205390950865963067277975287114766903933267678421078148379096353134937286025861934909673203830453465404173972121659841113690093292632177894089539419489247602665703246069392368553842311285182441198054535949146384923059892548225257170662035126438796788808420035036285012786844045759603067511495854320266141146721876310970638442533511176412788263441240415527991944830716131475985286605223360158872268690547649539338500792617861115590174410102824188568031475269464727944543717605245823639427780450147182139604508391246105258057569821131610444643455886251451579831955180422453468929511853325224121161072126770266048815344872558196994059436148784118566317026073870556518473837853709224448997718393322737632185542355987199398114279295128509875080698214887775682860425839477311852719421265674552193626265724538574046037142610586395467809642364226713488453835148538660289309578146192098852218536879810571265505296890838654961275467148213088342874648559370007545733136662851713761397248783388263304731406612472060550749305394029480778783410070989398780150940352745623549416663446588172343426210987813614120799438892640441293786194160739575979618067120046053237293738431095194065554239388248234745897683862743885287804957901813846111740945046869354280577760404545291726260860400598594346506947074287400396758253060232124483466446759525043274568209847337616663059802332290646802881599147210706198319673469094060939637893416248583209420016125418992499950476315234011848076312304255388709609955710294951439130193622440444072415918879595460937983069056438886066966391259766358244659023425138409742420855548500770764005849845471652995491784937191395618976112654873550172828861470074025045875201519836346917016727075661541745707303648463159211467398753667237466734673566754882001271170491233002996712983682999316556860219841182661784761127398616645572601633164494377843894165952638069229630404592178879695596736689661737373790081951807115998694904368028313670055205304656849263111103797565069802318089169897192085307499774603970550791967525182811704929270099866847651155764310855232582433330865958911923211041081571853126246746578965536797305349591496865736787760720779210594527790294436551974381019937502250958598032610745608695886562430181096083967198910617359488714169072767475394476969204487765237234719565009184375411368204980987855485155563066762812821663091595954892435768220958621673577695921563053247819657367824127182036885535343283196017428290713677039014802454326086434148323548229596228519284823615463237386286958591586944352852798602599418160443372808383226781557468837600629814944673452964890865398118259672692622798827582511891197284210438741547097622609131282605349864628366607916422083144625488693201931713723584668177157557747807397436653292877123519210502723406472761207579419781693557476937972865408159804058161236275300930781926619689746541344338347845078616887185026645791057503418229486011477967094971234468108118576296009862820670889117461627948928845880870026528970876036372753666617309970693345185995855627600334659753189322430914172230076479459152210620153871440208670257180641388368495686802849794303506110949287926867217578858927771644056095598591436220904793559975580191262758532267997690246412624681891062645850181906046080970516593134206147049539910126035622967169143736703218227650940766004472476841132157181876286075649692907835150960374942796266202280660571768890498040223953514467241698130843012002290678901367566642734268966307925222950282352287874952281641032304136593752704685507871438663763285178766264830755356124693916462558414658710518526768473072289535969976244421545417345308622216450614898343084704215763693205152018250926458266486398826995546523063869486377965059820750176775128778690289465857436413774920361852859420863080490260855436581603060584459764589719229964215884163792995876560745345056860663013459078391923623079184884974442616206650438622501010096479118035066103588126478499911015785514399167668290233521205934930005100119836866830952465350258347619764678059242163098103556726061277144499352950170709232788531729798676335078519981009649127341590850528760047132640992876829718013774868018475915819854493590205839427014781853147849888293947078396694506440141882660567215062816740105820522289481778285769508376428079287430363736312451913083941131808618669439065250476785770799607882798493490738882675069923478055996967933677917984198917940403570230843270948309307638019028738152582341631960882729551813021681684337082919661471759033686757947698582773922323634378313034649269627452253150551724333851088817672708685883903575652410885208571035174318036717709317745023429361139683623260872154449921051953577858209159703713138666329992180287716213767381375923393967593187223565414122908404379658806230531885462096835548313457153619319564567430165311046286897783352424717498329891216748706634989901183717598875508694753720250536881171853156849942459128061749391492438434753799386841882988939848188398117661182532235975961822040362593610949841894559094235290858145019600919203528323982152690214679995784458710682861644313501635592256170644360708342050216687958874556678775050905058969811131718411797429211781344628686795333028412977324291018468823467964013118031567687588563231705379106916766923717899939909718509219077439973859416598699309966252184648565351031914607616244090559057163041565902231817842569536068592267629039963623856326474219573339844050987849502646000600350752963794147941723327153173933307432577981932980056199526076961679727415033633982537609403228337630839682130026466952507169331593710713669714237989834799338158453549085882551721167733734499158472971897715838888440678627575392057041626915124373582056003142970579661499280171635255965741481732578818240787830685090069595894616270114214695645507613420061370597957996632976002721275136718803263562507907926485841178618287515926046658124869866683601862420173436821256952430786143765197828967333826914688035318256438786519472791514900991052036127867965352521875515747503515034626698555699394419459270643343727517388730294378883719105973831835381335610434473021698023215335730715843491466592628556024653697270559868715370664802808934446557023414607873811703282122678304560719165462917865509198970865260134236615510782317247143840654269915975018793416747755771108007306644313802160957777755591552806496982430424706347765928978495373479023764901475280584594530213662646878123882131208133724233380608109663686172407276104069235415830792664582435573312005004885349487894440485047243596179927019798958659331248238670991502816321100299686002343302876441172260791398047167479589468009661721943585734182770247294586386304798152891724221266615169592615448818494252923560475799898612267181389129243350244662574151280225043863118718591956446307724132943957330381154891769258541450342870728263097899566781427429022050372885953320194721129803131485147973049757461463154974378928462181429831649889541732519427044466112131177837989760734247551860000324592552928678675248994502981293808268639794275581477603658776920295999101130699207908322958246624882796741793496645321339852164343310067308306856198594483928272158309652560296318644565200187730001259959785251849814231935772943950207940366829619981330958371553363650899607820813077128375597333128212139801084064336829553482449859166620832399955964762197854916955047711915364019733526405380205558636360908409867550626363152849288647574751811173723749754027482072157826284739293842607245490912236655920296341228868319857555910158136315163089671378710550196188593327066168931743963587487897479573882426992684042903937249676136063788070525733486046366365996485379059943491980681481108322397390021816052401693375995047550771384244042240969182207895448033937498447411465232961026063960963609211330441168131688647050021888490793179555556426970441102828949628464664419636602777677580078875931647748315588135772541644320158800205274298581202821416182567940431990555163969454921421611286334531042697665540947339701177555875922313002416229657105400873233751229268044383914833196320438568629332539130778395677770336261479559172783233683916563839469511578359976867399353004536785745260254440684400942003604773832236962825061255932103927398059290705629466915633520072231117306780456536863526260617060233656950434656773173256997008007140809399499805662457972552219005065092602101124995979332210867906455929298521809434012457121929184911468973239310067886413200069805728566516982003728131906908338717317649242203288562920149166292165882704503733630429377461069236315544938287238010002562474492545172972960534516152302480194008638164176500031685495394436540903371326477721214069409079942696747389678405153094788172864392957334471443284457550067847340371591454239308616709858888451039060422190223522187961118321070258962673292192847172067106459119930934420956360074959070006646820100679332063598924718869320277202930413168487385507423576377844703225286233777700474369444206852858480734390985029748471150227628740374097566943371059385068500780894043812105934615682356595832217195232994264849175867905297399754280321380980793550321607116180777883932020432810957056518095365255601477917700456183505238849586729893090026712892160760112333478500551957901525423104380430968844775634959806836975535940633862180306785550076100155707377182555801105900978015157692103822137847688081026721039381651868488392980487276028103946863563023410975506173487451110615805232530482880264332296799050802770123574480497869072484912963738154875749267153579841513257951726272238116567431384030431644892777089153485464124659071526702281962140077809536382346994191851248635955240110815334945628018837318622053896384918958776008306945622027570214631330301686497754650044004898801343348182286047179150521348388466341125307933608051717111367058651374202677684545478975895315579379063708722361649382834001556475633019891253823162113997258660858356666974070673183226110620018018896908674752391006319109985526802943073048591606346655184650951100794269942086143930903680496547429140106699130725150810740990702187932411801250540951911301784990832212660381621426038335874236937301183691560261181888221652688940257453093489252776987230207977462605156141487901748277007208216783092326411014670070865425265353773098258322843360741751485343478331992402108932013323942294511474341723506192819112274989530393749172548525388770632375273068650075487146883506258254314754993253156839017681585264273097399216224818219374087276348708260320743430095676430267958062068530900480800768818261973697100642578408115679144318080772870088922895591594635714768151720494869897489613237594467068494829850910545265442831218467412093788838755565415838240121980673981826381951474189249002448778882144263187328647432782374598646308691490299379325899892709325926117287691037209826711946977991492171104922693547340969649842968002883592019325191062576682800149093986578064597617833532712166241522955775250218880116743880454226142932033485362968319164613254685223778676734302957691558203456541940401536500280384796295608210837103408696711088430999279955213355286166804083261423755329365372424599979412532905826180576759051727896723303609912629875333608336734866703413866067963252656064987329446441913423225581060691740318719525508036412757570501261351489752890640718111681113915207774021511084868052684123552927036863002226106325971948412300382084183796503131762593707208209789046358834870197651619376045686793861913295066005476423954457520169550222552758639361751408624676279872498115156082687152886719167737587952594745728830597190218145120246482418139525710400964399951114894739611948527924337222347863232554225509382488513032110916442260116401612174758158477065762742486899102241271689964467761590615932818717169348124178591704745866713446634066548482644201297421518896141358274129889157451205695927765683437537520006393820949174932420527268962670068697722763301207542711658510624747168698051084837572793964734457703082222724832837891848900710575379337548598508527434798186304204729152887549028037438848774758061294387210193195194471840961085569081010198112420593517305230256682728855531654661797522469809279120289382195108604644907214132826398594190421678225165840061626358915689017520284081136438703081520715660074495690325311710814968943105931436808868778512226088572081035454840960140845002327266794857292234036035417830803483852754812205764969431653938400942691393139191057434848065404704433942818109677072107156575302517738042581145730998746124794803442522455433513577503253952986225850648346463716605423972937747024399368104644973652032623848457147245491765610900754384397984126895726664887843442011310013813745403247119742914087987350667396817666322743016301867402996049926498523353483400278370532413903673808351385759560505085980895935582618517782669267949004337171140464146029945298816567911177896341315591297929415266269996415480493854811366888488255198029935657510546130602201447801961550472983454013826931933154017558391489678478010836633561216399545354874854682765626388958437887298273481537248290900694441268411257969833913904813149409559671150501407200783357537716676530811228709693491078104712797126326325569384326466736220904741744154642397282714073038941922083366688314628190462804934259383562052990850655171484436701274894226593495186386114756171951847106111537642306564787726412562955740780820691248985330533434017208246694421704351157021255771456467081231809810240544705170752465663278705243072591215307316331178167080540040290480775175478916071935400879785701196617984333315300319172834104811198350662155997550103867499740117776257864825419951847347862764365252575854087024895011610475614600858820272077165043752616150745538438573275856047924475412128417106075026550138060443495436025655712889857825560345861293317060369072605832700060866003857205044014071075767358912003770452293377459577225101540681504621491856858743514567110733132948646147505193299063901378403695010350545624240852267918080204850985608586198174302997656100622307657522557161801680134004265418931642677575019430555476606197872971936684542787955142746107537322828875892546712503985986051577566661833570097492666754294873109485775627907415482300484469729629691251502827675747512673356306855356889385236287773920632748942011380455013878559553318703069482131290532646438024217217244501734298936704631530678367891339490987527023594318601846502216486746585061441340497431856774550831065410221083640641492019879570733827889941706937577756520184152095850163762694555499801148883197280448402296186268868927756199736598638406783998245193891179207482232800022886002872848318364603308131693232961655989327848779433242611911680003937105202318129534633384651108967892164141936061690933709587010935822278985957582573722992146394406024638554133929654979117290343895803890385782534581864085315961118660927564670929419900016063478057184909610900317806229403415310188304226958609285536818083808301597165484860748342836359414886909772575700300901208629869491966917413555271572168297536305396407174419915345516496255990489969112483341549871002285657870286861341995335458067420042582183246557824958176755247776915244847259879633140532277308124827394771426901722879662256732086457486315537987457396535270193610490119525377070804562432697882743075712250041916971901878066530014200121368180832881713036244845637559826719466111626753079330511613067152404908434601659954228462922127196900388312433386820935889217690916313737408369622100749589536224630211612323083858457501206205981049019756310514127889819950453416973619211888826537876706646292384395382815964956898573997191701112723170678892015658170407825754353142877269492670148048283958878703385837782290233513731600234151825048863277633851777671481150671149511644991763399088156415587261619346348843604845027013203751681665550512638910399532436648286732535897876937032119619895775283103795504503314107219805713520837432005478298604061109376060959913465544606702238642616009256454597094347112693749127757096237797427099216839982063983337118003220618098128102272437110198009161297637216573461095764924501412372146068620839263801262390269584233451260673634599268924032347991335471256711256553241076188869192067883210898999129737735540904291133993777056884859712452475870140722971297141782074017593380996310855355963596768477651977221716884972665987628800492005487805642897207057919944418353689081834892307693312784309760451391737857567975154838727650547449893394530779578502434657219154902229448335200030011088297256015230893669463531044704159780819891926766155958784845208702915665310378012204042761309755696944111247537311578829575450933386788614511793546238195721544039638222181196307338676054644833577708807543156986784226437680715767495604373653618581456085652504751551005938451441225144885532954966201636294038319597882132469505061259631270161771929008151970969477049333958706010855292340923646195008218095327593951257875010384470180439082734556536113494493501366623044237071940404297076402491540336667876784585304385767667403829043211250980611708795796544660116208310163497492655989260565285229703562720847644341995145362184088477045536528281812083069378131372079653890220256899536646560140259972711099160415031008975234267025402510269543236830467976926176997488907695593318449067828298863094727397992273748183696527187882929632643507055009045305393215983201079117499190207862010413591015857054508815528191491967052039336183531790518028439686532472459418894412928930617152745952731246495737852990363154871943360466341700106104844910171948001036791791912320971204239824676537351144847337872007570755423145118141946825953960546651310234299962409023589300422700779650529395767470739707121281550924026922460479327610563277076522382380169591253660636139203265653680249551596346025283663957453850339228342262570365024053208921933874344214532548980162476940125715777420627873461593263361762281464721187177610884908405017050834768629980734233671800021931110080628051284364024002375106896775388778990076239780004943395525279721870107055765257664497963740549203827091374063231094079758958909816207531759279805417519860101228505507695617623176863858735962552260476180988182259732057413749100610926001977294530712189150721950517861789954005360555565129266475576605002242008582912208877783339572640381526200848317074590089965749688039240956663976364501605944559469695295283908318753022019477843128633829485221154772425676266647608185941344629215510874132013445488815185219615235374002729054977698445609678212929969451101304836455839687835355441925299436714817336984484645666207595157802140577312148305854241564855444309887514817370682160739110316777944712132423101320076265016487528526980407129041699638956958454857222857297088883647179644664590170364226582231073040118342901184443712176451364524941642010909080094092601877484945969402988945673081131744232440393993788805931328406607713755273206687587547597548982281589417511383773120942349302546662510521134543636149112254929255656142157012153421150534248263561305301197717925389762058263075644802817762845278717666000313809466159845273237688708404304307317207696480403149068352447502038733871763584861305869473154195317495077657502217907221033775631331469996147146622903919391883544281761522505749212630414215269195821452022178109501304798565356682024016571670632005616074494992397992948335980747651479337041567765806119211332609635486269045929564024807128571422149210333521172776228550815286104640278310848412608757542221052165280241046844047739179732443030793191277328528423253051075673280607821989741759803418132075107157106822334095139343781401581365994043802584655102860442671167153528329213111276239559525566667462827466690525619932500818038603118542640344438311997183144168297358900989306196757552264809794156110233421025149950859183770912143547531240758193204258914416097907696008833872572796533691864798156944877435255941513365898949648988742704106719466500407145747256224039552413984475628314545707806224077128407622612778532742763744055906779691246088856236548589045293147704592568322327210907339512461563522008950531537154265805740582964769891580419476657491790539038829711571853634425502071188839298969737298361192876648816774167279820095915321886762202531212862429750524613130876440748647341301418867595447513689588650613705230566044578148326758614235540671484681375992033995490397948738521722411162169216285975468818678181921186212380508207501035279192669457402565030467878356349489619352396927089478383271108288035368493491774756792680108118940702625835357989492443703741837179099123983220206416633331496623085122205784743019146719692074083002063141594186257464102144972057180165593436086632271400943110630105663447911621384009230776838337620565446650311561378536777547470761708614031091111734696640536476956605530989507164954677666392415929299228704903079151684418549209749590215675799866475123825946749778416585235478432890433212384420804786712369136106398333336575236006513840417618303036830901390543667276529696924521043525933709094481439520118915905614814679746336831450979131275844282127963701414333926792124554049218191018013746522193588412247473412585883397425933740933645196885466176245601325661144621584430788862744159464353044089164348165038059401824981800181022044842895151732983538883202047279652589368610851606730422181918858698100433601208387242943065313035047154431348177914380000065032546052513821840143235460576473110452511691462527215584856759426856891315209261005969625919314755107926704678291415737201273381098774051637258660662345822859151210554309380564350370271280831191804176638425895997327375662824080543712255096302625341786287220629675738940977925195593081755075499968057543350583900510174433481222713817135015368627240753189539100403310492685316694706444349127319226505470461760092139602127647578408220117171593058463951849053694823407506375363971062035445606313651531494233564896791127519062202318764229103528676958352765094372994694536878673227147242773872653001342269850255977228618260489550570670036779925820712371914636398177106783025758158665612667702677726357935437718591956824051965539403843414440491862547663057836227380194068914834824874633612446929960587772759714710559274724500723482095641729536882953051275150007651076146220629484288925656427051924670391721651994785251501167718461707584020938254440961268258198680138925590974207004857850866718351622205574603077235744274340700594774618536726405667606775699784934824925235702885902966094492430274565448514617015804969428749363327267759545098465695582927725860911139095075564494755934188883910787103305642435940884650329901426881079410128975635242061709647144193935831117268863160630904467408430880186515438816458054847913418649075749168130288064402111729587077805550059759192230090199185087187148384434081786633232976864944172092377233699031378366627745540081626900510553285803646582791214858235372624579057329949082067666663984303938054900879627427660319188490684898341691287415975182087761838305474645411986469024788106960016851325349642858000373047969072314636275433527990950400169193241293553472666302873367302892107001492203360583633369791490407146123905083715170475191054186877268320850783629872423778112632203716684900316459938845208533835194951040954459890118689799589246548389237654623358598886283800949921482585995582773615718098796568777409797859809173214175055258739878083554241942278775880936326013705441216783447051548720971223295386910875124995852086057278275829185426142215825981510107684975594559232809699701877282961426940338629201572387537634796315776701029796027697113312852124780568753021433655118449895076173216793939021384736498742503753546562327112430182397909258230700368817102746166297255654884853628785295161147102426317163802347046410532073321965648069048824354188193220419963715478833430337120713753233515229356193908146619980247687800298727784522206789928813179146765089611569019394936899155087225440005229775481817045529932295700905406892959564137872471672963816928868151562293292180042350427796612042164523388446406886846219451530114702792824353464050636528237477604446148816843396741830486972435136469941468807331039676053717905951407069738148609083477673054677568680917394123871809340579705471874774053680998549805979642956532775359037845015902794013278057384972447912874632801689016920758802245085652803122547496178905365092429246508570199223451510832852043736091456493213946534589397474680334742005328750949143981332117467852964937174290529010906417784528712846134159075667250864890845640744964347090990248269618351531667359652006471741999851189956498420590372811762584154756272799437638256813970616415184532949896476457973446153471902672701476819408931650018380464310005879317247382951838290596376849906307689025847385939114112402415198940302794022344163393060522388793510322029926210958454800746858511268707498608767970207866356162817257726900770793325543956668074791528181051764279626786127242416287859089530309753905657313239859099696648638083264184994771288424483306421605800887429611805628993984616277753499487054272299291543560633466763340158438059252052593014840773808797093485389244766175992701555167433455253438625084952278608934106875670376355004026457307414124340281224387652159581583572058296278067557154331152024986085357248213634959126134462033791601074382728273531277746652519656666932237774544731271220635952887496722520282967848318938267885522765395205238325469184842690577299583676228241010838514954280172728386151327685648765430717896411599411566660739510397465915459335348460129218738499142438641610023402107133945043035322939173243987476970171505037862251868436899018104417486662513851896417264312585244670831851889296393961247922021064726952819731838174982660467963145388484730396751261185893450444217349490609843242661653055454975933877181957232274108815599682868814730625969957630326229634948488497221338956464437460936682184528658401524001986291137509250200910107361347692196456907681494199102852346865009228446704404191427951835893584747441580141844692342409659469269258199278369269641214197390379256962961287302253080310110532626285461988596977654101783501208646436203389113072899232247603283274195530744261026109773966423491338465464768175979701206341343828079377460994430999246228752898658840433176226327427352760810551085859914665293281021376236602109855568872324745957132167982515967333737754269308688987599880045450057218597710922335625764798870770443564917406925288034755779770227640627993505561313944638598363778206365030500167139821597326325315207818855594133082753352210496678297770460524760624038493771948122220213935294907145997072957465173473301039428737845983489156653825445340461104981693860090797500497308508571934626310023462594354776855978879708365488229495015301435199989050356628175768199985951582243007798221935503007139689443027109501213867650816606230450009939511012779159372275698242187931740762685952716393107470228422098134906747311841639013245509681950979535125539752665648639596186074209256502426101764410558354411595188139151337651988089736697187023317000763903544695512234335375257927741512802923195412991948084912299794004436586423043238736205089322117054441875104131912938244544133372981492435608395233830502155316499454153645267178774141098820334574237970206305680583552938820501644276341271769303559036427679165651146949260973918690573084924450712369973866144975847587400492548857697613175728793422318328440785481541571115425227901218748922043604524321020014545987483695340680422835801746922221751734127291922220425726780912726788582338633488536313368533199210278525602360991173853341192412142935930200680404430294688956646070438925458134679063614621499253900904997708475363878321335614168404058681032984811896750755108591540586117704243482717230018162696592228834255994475815717471135272420831037030776020259858198963185363541292373569687721441617233264834563793997894358329106563516137691608962532265905834848402211197373066232111524211090357123651535558026132450437821578504190294508163558576714421757481295086728650167225218744517112558768232648372430827275071967134498667166179485723470735460003699484045326497654352978081159511243310300961587188785366875259485625292016528316974672275951788725656058854314593489068816838753140802318471055303649427731152426465030900632975868244495444451671529169540468330408085550386628602952349472211414236373263443698138104281028797253553336796877278085158145732655710618487668294173060702989491508672648090264087787622200505997181459143371224831989232064458376206376329916782231313170736612758211609587114409727173469597364760700168880222020606007745223173026756730128141787110498307409908549323697493295557494292992257100616780258037366855356604431537127826751449966066660439311383665297881099344364517889366285895541393741562795002092319565448859362574319802330573937144233845999238469252652013148845665264983136672688036762094404645534926886126167340681449294146581018818077148799462691729338188079403133251815021876168607224626639065285076136465955029922266558978645010847396530596364835626608552029745951716155252260998816688230574956157147633650176205661328677636005659082262407468767412113038318691928784260703176517355784300011014891662105416438163791858476357626782014575834554336801747703946720925089464922950885352340293426261512453367379829693433423078552335499193663542432665959141628269160334531259565571922394030568246784226157271597958568340130249233348794865576534470198692721865851601246595355329000552617153995899530760595800900946535270841176532525395509973362902430558933691274968556373481816011144892707078038863148235339387772232108169642351051467732401002644991084922572524498515664589785973992249317784981931420807500500833206114725312993162083613607270339580835062950490208737325118768246574680947249088105429472694285309830349525977337267176061525268690159788260025675488719198426340570472655051717800093543083945061021426312850781893593715623243246300141007848143677251589030766933846599168808840465687036030612767407948091681957980665528090738415630003070498096912289806260849656232229502954395499392889465341076604567819810252457032415211082031423833855333286930464343764745401502496613330343657083994741155243220797438333315281785997384826446679809613147914909843147904473201911169288561559579872213834536492626674126240048358261173253012158193829287188878498133605034652791390511448582306343238828647243590820688656112097898976868304555869099368334238476232270259647199270555415203456530455772546827742193007424656081453497810131892586340973296990987843971780536181199212112353483813722939083020771722057519880638986625235353952872425691607769034346426153235412018550006337789122716668858233331873009524165839510280909715448443647019890859112957032909398222465487357810575095221986381119610220432189613197386041929580853608462386032339958297313204599279733736737883043960138480017169448463567891789799906204713373835028991134838675714580413282302036055016004157879434606622394998216760184596803628424970141552581860727507478619870865493825830415080578706908517451533040097664782437833989748423793356566368138469566877586360858837039328789813022313025586018072212316232175200422380791435416201193275993918603033241971596453100371439996173340234506228499112310451177614470945226939531223474778462132400222480901069117448681361437956241385166509381855825239814168531323683320021256046135018096030726864432131601144858310526282877205244926624449504614621174005006509251931586074764102043719837754598704272508213532309206848012672333428367978649028565933943734866417446714643164969243858545315212769842480973541933834689739331163191511885857877525072077959555468892660114567804346292014797702644207979841378198358944681535770213190859434625073337530562085229487949553843621198578261232031992192690683558589101232730719892798304303346710343586418810611794659326490925011341741718761295834828246058702565384038363617231579479072908761048001352063127852843619773082295926861245382176839974157164905636678669144621335578530144045581632769373145104939012528853368983460845205694948271137533590643022269833323251739885582903717958066146020276670478964508909477745868915706639009858617298360551943640181441600561705417201644711650657833896765132893994819840505280010850642133143266328944078058665572875735782258620389675961969943992924919098177322968120480817925381370164237680478179006102605448204309667916015112629171165570560641976230811848730032900388416185506704453963009103997465245231060857966992222574941911922645214277686366318436474651959469434533078996559711945781737153545443895207950910076153981872823001763758816255619790211207377249283612676036787426048468959816496285036080463201658637174484043109237146360788552633054117155349109015304103977568275501566464092216124333418584830889221935395393337192570298830104155132711551230307763788380837835720647815650637546314614795247245377417249588418898411201022447930136063184191844664582784266138590494375426870972887263837235270645373887500714405251493880503021632391089865396516021598703027186202759669056016583240436691016085758602516164353644304314902771718985467026091532005056491885397878362294332268598663595653396816870902113709871624642985439160735361685794317627144270602778926301939034088898198808723051406644905105293424299851179800981145464502114587284665351339333142986413638435793932421906443441795165765047032511674296539402386193900758607837699131316122270384013926503812128449801611405406833451955461217057468520732333672812991576524777520260161097592151631740348224994456412270028977318391751387876977416535295487265094564434850488792595819921664481468070082428802450048676267006518205297798051060608048590148642795261451878720769660009871318167912367517894138121332468856957441451149001257286147998866064323810932809578583365554949293903905570874223514090738385182066816597860150048841033325652625636052473450647088246093709291370823461792857291903923402125199312638694824215369580557756732792756524570465703393732631866549320344761014065344280797374753738533278096467751882329301847344675787575841501742188854689430103301555089964332435931586811018076619631654896186499985284005403401996159296752862799621420363656586332539790414969286759095359847096535130462107277376032816824514591080182398775037777065334726229014669995905848760051765330641455771596969028397576035539858382554391326195188872188926423230289499866733617527863310109939324052188548297619315303338927197084592823668764232033883320558215716648303027316934709348501893710843386263179495502933055471199232688634043463123578616477890940949421955176413232066573011389014900674342786354881831923565736418364822290027856551254458819133265382597286804685894150388779095777967845461450377755085469158283164191307869422578680994143231476503621979257859404849683765308390471087952803065817909898021982869158415639971550107498761374836161248866883189141097273700252158731329692497328081070658025096410963452296418090405660788264043443141484186879593026797255327028602189274243705302235858497039290499831467237140929242451319388814229237711666760278647795170577566016202193503266087891100719152609885907074182025690582821915766716771586000487628616579106214241720953281947613077369949934753342449518718285524520040705303247110119829850044868084029402130610973984965890187530914669959335749674385066726659206388562812179703985065122008559055649746299857753582164486760909838090352646446209380145756205731629420851526172615443162011799162065306940839060605633942548397592679759319512175171085040996876374199617025873573635435463492045791423220473319006410572940479174421080945759839362593914871317751434813392671023255336259338338413218921994277491059116453366677357420135177303786890798281067889341300990801855168390649331930348914224296374352392465542245287997570657428362871890406295502734300260931000330063385725603404987998592230571715173709305621513380360991176601508877425830126384079248248475384956244336861869463910813840130695166039164374793946028742376075013738145169057944434691997575382083356072262340633203708167510782527496645869216414966454700452138250649467290036407105785293265645153121040862322410706667341096175293000449587886781202693568449804220148123837314330394927551415888530473641995362311135811599938245923660923619167490958160480291631522062846998193256746344989395127536662407827258485945096675001124990446890173048567612272301768626450083417745348016804412215775247010609485984174585685986366266867205321851703984535471903343505437826997176147005040062995914040836824298325763351401490431373263603109689772211045525141830890024120135460267385457801093835088985084423849969678853132262934009502832917406477149025103412546926441780348609231296146594212440254888677832845406806486814603001330292690582105599395166675353955179359278380373820573876478713276910408858199709044203679479778856057576132085212937673179958154268247369687275471304616304698476095877037447141731943504129995638110401188491358704421678323458038267131490297406326484555011746603228868935183976537073924257509799385499398840848627545663157413226565868323752609408375401485391815348262329095046245598559665953120456492251410653536382885204848887817747912054350260648674330658061383397230911011631868320390964318444864341669308892174512740019491507417933021437311128152168086039918923493215789291652725251089778500632726845728245009613359194660414632911490151984788669983341255313648898886584107951344556617587298000513393334835737041605492665296579605785409552697712737010528745417206414711172955389357058779427695708865771558399182726288270225862886271866136931413938685303224614203921626244391037081546295837839452281045243383026697146575610287577575847033923473590738334000239102740396846709970091064416835346031162650722791831833652210043056600889257216034765007893473385644983384564943850636496744199533190457217918354135607844473609084808230258172600143113735949630646820507893300969435501872005248068349446269386831161079922363524819696960166041905597587950016564974863958908685401487913466036842074960691349313625833012347700974457324452239231750068279770940202876083749812753969277723859721720536096478948262336240202030998524439190099212223551158554814248196412845556299301818561743263566848643504556817837731289991031010312604997243159473771436030285144199171246231084517642883187920898550841889186209633815440352296301886686247022984540594353670852013714753347788339318676191504876105718586455335850507820478624311026527539883839021847029214609859288878611058876668038044231136056180217106294414378048438635031119494168039480502373953817004429834693200616135522612782747865558346720149511553920450840506198959015343409335850247604276305725590963347987774328188684923425482907447380259588242758324774203813829968289784264749075336770843580564726923864699407592356270641128451042239446394861633645182588408111436774239806064566587196919308496368366741133590013748969547765998678310051096779705860100956393037917087508939029601903611832645000100933167984022564431729806585641008846476894080663406180175466252408747567269477257667010628380136206855272904770272175912778307174223924421488716681865480789247636520193357698430288251404986118705561521880648134647963326734966058175641640330814862907259057452890810395961519396583388221245057617657665511027922466285871526222678279915575630775285063495573506451642941962694950939219049075109761326898037727855907355845000694197204291932430583858825849384073105221649594846622988826644691319178526770824685404387794626608119957429105984514006207110750851808246858962342177346120758118781893241029371508614267638402782163124510530689965298570518952645748604676058440134410964522996796003278573897354902446819399720537920071947328408231377737648436201879664304661149866382851777563984535014847333426454417583034907559186340005357571912891300367454619895253481305021391526096581372378818790726017647173912556349903146980316782961342303472721822670786172683096146576303854256314337232056972463366087042243297795256401751988971792419362090000882928146796265691929295791440203223891127022830193331137756617758932569824449092743101417221711412531704583025996957930176537047697755867146171051186146836983697056030450441137386824445994666006564234334775708618835236706072837240609136871200068444603724707148868894338520762846470095172840126311637124454196065481513214448848348674905715581659507961913100853135989450979361410042934947912618581826790304941792884410329480461154432831597018466135866041516706766511408646746485178700334676971427519149685042286845601601531936712719809176852637694689139186423080384936534856792452434835390499448114700249777440867378887944867451103012438063422402802432630888298576422475674050287233898309391483687731187006044530837605794335954765318329191323414178038496610289081963962965409622470475267726106339872050138604078926180972900351115159745237206061201015779138147012547688210237117782383132375744147906943794756743154821487518613592091657134653860624101622336906889221666089911440358891933380451911025265900308570424345706258195977743526721744027818670327396670405533527430273870890928245619736079038932104961922245906514263052169054328703747090459900097405135267547032212351746329812012426321586301307885433781147167630646885039707981747975699379691274421997347082374913503319399883855579244783868157978955723453807482846721812873491399169953195208167402865522263612868102026304074302954240932851985171439337477069634203201294240633820364078114245945956403310387349347264575357980382447757781067871697672895917472865831895340565228068843253886107717667895128578091640661332480014590908616528970052817854800585418654790965462793214759889638985308458162498427767811021181236239668329777674486153058531966720867420916973244104555117424032387891004485307801770963865645358025705633066174678256658038000257912237322602282077750986863616109662605816476173643940482852864762995957322011334374827880817944812026996287582423641081551242701156605279301278851766444855366747438447972462567518098524908074026694219048397900884801395634087297071005145160527538546733150046842112898086998083989537755566566731249532454152869965735456143851531569327567666345380730198220360549117300628924599607245241845264906113695195131732990956408351593250535700558775260385543741976385833154097739533668184869974707845733991468502517054102534579045489012958054739258122689452705810812299421186192396903513526779947543219055663455325832984392147730480255917917024653201971232677457137365430159669131934413142026619519817663628270289291051612153527097430369820538192390243857560934214401069198271078866968597525589909874828422938101259536780016944418332144029379539752295150899406882049416817624994772581646104798636660999703483077206646229855488823658856499289173172138294383681861605223110212921241827980509149025229805906075871534845333070671611132865140273887299015788429676550741338132583691642540821818081462130050330806628788807682948728476785169547324652667343043386262075126259548704629213970758214539101219656828057611988976478924982674591713147803931377839284494030497164338949452054588043671555313121316434351270816966460080087867992275958588097288586460043246315639956297554765593502120493166166817719512781669754650460303854669141690283960207114236917933602630452826696284393460868711675647397659732892524191536860867941338963843819774327402172512334207775865934359782795699948381784612522017541405093986186971493237857650741554182327965548566692628787630364098269467586983114233009923005918662404142316967486055425502402653980065338197271544022136909229465238096523209403762867286708585566986666542366602970148544227531195425796003244046930931057060948574671894287363847552850664319287566080481083825868700132692996558325845722548874020298743088469811015725572586729191732435593062848096495877507744173678619230860269575159656751221333106573186513973953400953684559044388075836788043561563554036584285076120791704601012161668029418304369522343356888535162898578606168615931200788172225254016260123807348848778692363874508823554996743263697017140581419153997780785203951677290012465137137619411550594725948004395476292205654355725392920592799068723147990586290438550816477579039320067765949457903377739335913259733490206835104395351609493055369709980144790414328710440140387396323137104378693475004467217463407235835492519157319471346209681112237123848681332764982426250985024037845452790283266359685010634676715610338147479367830479882946954897101179584851355844446887743008512303226498219338529154805677673581629950825374711645948154298941544776920625640831277754346143471826463735767289850541684375232247233858223981590204801098749137728749600192647348114044350957331678679093534515225701499920466702273369746075491746363755472708500670083544182919205481369249356340646705680464528184409181035100074950335687922978278493243670725968641620895555274160833442313360194094104273719633550895963194596883958299164604375982624375301314138524181984427861078567658033278797371801432949759802666920198272356101308660501870051171558937246544681322442931737042115619841160139149476008755411331722817067949833507021363795681152035395591488431673564707149500434453078140784817154122016127301338581565926572909701029061025694605640243045288973499322423437174109004999953199962621894825381307593360631840155265927010028678188667800091266330000068452168291075938018673029806988475555931375957369058880487879777225575632419578714919647066750835009214949308802837230558250287268141793526429063197301767081739784075291944985175513053021923919031486375163022802787164520910015343404251403935712965846454939505299934097888649501149076537621232498004758086492293612810393920988340210916528966314272822344143396536368740172996087229820539279535474516810699998667351367621643176957066649779057985449044040660145740024140833252692264501803689847942983921558347674846632284464158269239594735020592973260731087538163244503113631398015424717215099641160058783069710187212714323125315966324092823423368620785575890024967615688150664221491171864515693812174925142746391882432370829492036525993279042725808007035163142653978637929037056871244602980667880970621675427512235599763585836064524316647615624109465534948375039222219951683281348246384878897292037842240513092659293450862388125975421591540436505767947898754999603183889346510827674594418877672483258724892060315555188861881592160662086990706212758606352390289612769919228829727915273685865623767487218287814923252910646624726305993615308827049198281680602540346309696815997470560344756862015288645563052735748322782800770883777416239891884323848879510761265340635736753267708542349071196509548977887308002749076680394312188074762016633473656295651668036062972502763446795060419988774433585739018521615658261977106240648511432691809570665761019928756944855764020365808678868284389566300051833094649145273578306067081876606037954727545298971979392104754529739875390325958604098050224582010757585238850976938669948477876235086235543570913545145856084452429293483379387883647398476912098277431781105022602679474941981459345116549593995808323416224895682908029531662743841185197898797819331987715565439334769016181486844598380889865636767330281379915537214326175156694070766797066272407132247602363638391521934072775182967900805159331175625283116612253532276117547895942491528096224094719226506086064437975632936533639538949403678909852521884301489857615819810262763622993204686500300308863677486380877269096069019649382700087794249711601669971048502659318038772200608137122355386967556479420124374699861804780962219607718209655684554843090291834245835947180259601328357295036573333262667492687628260084025341641196689841583505875051575136428831251507753317230959225583798581420998137552349369340939123957023744655452111220889978543138492004292942393621865306083716771120932061799208965943143418359202594659864143140825866938418741651465350398690796683058095169840856558208602073619730817625853607083556254944347641626258107432056150665924256033291701618859801891977702045377038228086462633924317505339879599241711649684029186680293792354844796181037243299429767715232706714087814393462941669013800465092298412738028103082907075274655351157841661275063332010677098412817720527579601742997779767890874698001984813268952415789998114783879835752855956049116704006809818969246010561496311349542339777511635751598529107659653718895748645514126622474166614654890576969615865752334182939380257549883494358051188250517849183283928777302476347552844038642063960462324045405274623285025655825568701294211484913247632007153698936543016925103296522318935726427020801034175459163625796408055439349245659402257774198812721738347860812121274157041904525646381781672263888172248981520366491982163997640934378750783394965631336271151062272442004754935147531932920491792519815013890676774112329223335135304042972027009992169617811838390418492713944293327441859129292864340294208970396560436590010744880561307122937697453477125395579734830622261073341393505916402663254376438131445742864915023917635503729410961758622985864427648374068901490732753304321223927854548736914526881908853406555566094148776546278960053894861697002114061406933984311768955553669934320864005118805807362283437281443018152335502480395717991235310425513452791706182772585471526889252457550522551467998070425687294348016502379882754642953247602934409224142472828886366783106890387041871029813960663489402879795909088239907088016738956998290895000470314221431567507393227439193951990710068552464371251207795000809758991327122025649890431736057069036789002158546805154678563818190960508752527347968687735876394399144767048053124655260272946775016605263086400042554152257268134836617715380483592355964037283491144848733014852211207671037126186777770764313498440487174766683817963847631798995970245712196800873505769446512567301634428357786233063807689757786216676483796189146750573451008345164721222214391752054264668790879218005311776434830134128976109067854376866354178519939434392701332497768529119853977768046034422855416075097381831397058443334457884992063510637872959120214443894544628157439224316142563834677514260961873384483186123879108245683489443830081206185153145601133651215856890315171321665577891510163257490317823623505571154588731769926286212491668697675515167247024040893161344943114164573366723903227968842712657228055581574275721912352899068739004120723805203243606507177221510525842602932311371183248311167556609690839245287188594217857927975874991048426373024011731473654614536556920183796390535705813768253165119331681128392565533785247965650530928266322757218615852047101925283784663173444698674965092288768814040765584014953511642575899831658657153349904743892404589838808573283065179131152980404342495534929346281083392512589748715371617608328944372357329659637324600819856649823635097985566959373323978768442243917242863513847214784535330585155488108526648480278193316502135915048647521646132982402712832994639828999537881654244885760843657068624128439395063878778413460764050876053757163119241753251228379645600102152725562199134439071542602266835155029160332966474551092880684674393452581969599389250439660075082839552150980369618832282787605874190954756348169154436995236983666572737466076138100421013096127183135341792054166801308815569246437235804255795693801507228647258426434831393900660630335705413636395565975171368910138536559216979772483560003966621112987092171187936414771736104714542540918969972525491118174003241984604354253475086913915390632961798353450549055694523745061465104618001664841145138924616918833038168519680983916807060075855084424413649450295893235604040888063702368274682799034157583859863103896934725866814205635986789209800627679862971475606439367695349203706915488618963430343787382143856314890015365198438777108352335622150915248557156481218481067797498174667391842027783186411438238356808261328707668255732804768696903879649099305670545022257494786355676608674934767257450508478748967713907212554399056059994288071818569815435635514280318944875338043181649034527340729566443939116181391467395928145630305811077935493335831404172029812309411135890883353486251361254656623540308920316168910493890081198388552847491922324240317788091866523691942512520193842127056592355022800970790650899173764281783649265764051864177039291767923267000508632727668917172731647136565392696346364328999556376059657510269949637053035402867615819513235725434902072799628179951384288661394360395873839000259471884570823879214792552675918969408512269708818051922953028851012643544942056684384352188407649606838230716064561720424746578524310906510661147157478702883589180211406677835785475329549777474890868759614740084462580147453875234852991684865391764890729883652686895657109977180792425752212713667795239803464366030495048272577432963696752082029623511761389772662451072504018921807809062336991435246839056027754271411634144804118070039808220164021023171292208930279717825020612465426000360873237019032261689889770884901039237917314013644587325782942699987800303572116777581034906817206968460459335724078398878556031823204582880825022298222321992799689070796343922285928054864961277718447852173395746520767071806613765016912630275752195590568456663348172074490956866657163645412617818930577561047169805608266685445720387278818044478596935053458605150701309787836387490200183273486333046378446124731594800068487098368995324331579092396816886294389181325614846972346002970681094474491822223465794267669373105715620396749669790930873871444509386148555040840782680941383386965338018046549098025882489533051725201545198170022472202456514600503875334283104997200623105840835605680479397902890009485042639316063585364864902602810794959098602950563772092731567375361048438171067546569252503354113661740749137875690395436294955072587528632718862631558972564681725457864397695895760410422367542656086620144188644937077735542487293094482670327334955961704282058645648570045508374805913319126899027920124799192166995360674279902348889846257313269709329546446871980536127280334905708135172299331500195404566639796234158465788268246784590556989786214329251974031361827564085341177186805981820570545909649496449334454261322731736914755044133999368794025897095823455991566950967627271433664466681509298425733679251952186737390510232466065258979128574990347382544568089718591887398797782440716356002783166197821576596816769750180939324076631937476895552895561414780417680565569093679843017754261780659571351037209091333863234416755046817807717599704980647948681590749517874790331591135823943488066376350459060215487126965045357306754184015676288655834025422398449982303248898332990610958837809982495186930254504599018178225737271218075382731056791319501200664867648606820091079717041627085387236172147307542994035545104806644133569590902725847979862976975102702046380401134797775828787580125766582336740286684398133245305514632766455860806484260968441059227402766631438377718707054946229666003344354355979924596922961005317573478246856803780353106459130032931631836311299028169322167257756305343886479989433819862562882254378469659534002525139933483628737980466212735797243578887854139470106560423674624096786175371045378005405384482001637217124395919879710148662099352805094466178687016438073463867867271387137017445485785242579115543186745867217374072722390664283390926987892606118816248206166856986484664466918086604059162971505877051908136927153621415567043221708264722162662995461327977719314274459455121005480894822576560500533014545181143013109842755275646777787603723301479123649788976712964161519589213434410338570994426816852111172003556607225818501330002767808118246942493234530808137324015132868567439715768772602320783964106924997904691433147177395062927616905948861880562766918457557613617527015248686932862266792320139648308040443303681295106678539082843996597925186529014588437700198640077024285885303669907197624478900217463216129145975880163600788833406505624298390134927998103797358649480456470159293390512344109511076296841848416482085006713172324603435493971783970944562297193575260400308021506658018782944094179052123219610519404342354294041292016954051439564721135406410032674820280512666873313702054651338116691954572215297898743100080810061941470255430050851184698456853584902310659874186521189328788489696508589641174894842328168316617911291132908673692809131903451247160931609596772050527685624418234697843385925609734179889827424023237090861211517095308169207120666879164436281950697291262955774995239495021702626029600720809589537158470902440726438349372396296528910402446745333056642952294039157089808570528571831323610489025985789640729333573717386234495834488588013577668763971600145628603170276766768854346662548638469118621918395955085891476698205639363720841850879254530530245799379126873540745480614698412729471856765104680630026774360722967374570542691464419718850313218167827137361360260462379644862598155752431163165120493870525889199467387196594086294543282355497873138645125368455587006382006930446349961708986560141189206650622692882719206884540203298434544621746392622924085819345375143235957913430916217775825087900152638896193149784427991784629740731357155329944246414343303788137119018314302133376029844662871539929970244590558122454099889834194428089250777935947945736673074353351266858914736073393585524743719439138766231920210329983695497890919364699838274661258765777915524652118348912201752835464541988100159273730620916760295387051560867661897970682484179135138024759810751818561614662108479427586293624550036426684291975375301298363930163031911437759186887985116659803424997880833375525416692030684740679144770955871519582838155267911093536342433690912927380882344144006795034666293622331939261325927910710940185052363592012024718464244560673068523931584705177214216011982021365160563452172571389428972210960829727662094925938088542955939706882942439797392786761012105245063836012810298683729314754308143879333395465136887244454444956181681100430396595213396516586605077323819284450898310846584628103333222579487046682210024835989296109486104362701929730768346439216451042357065054020529011130797273471955940482271130844907579042618176848655457030035409373835346525306058918625029249468679891164552368742063722945920632363012139379147707569076689044199687411853966855326213733873459157327167521261915026571781166343152881733568308186497736946596244434073787269995438517193353672218298009593203154380963740632078180717184911733981939053023237511141589463163754534147338287420336739329126959048146702333142810808419100974617964116534347449959137949884164845376764385521044978917125455180212818927780562630771559795955196702314391438814430063274810525838543207477628826561294439381378620613045596520038784847505971194236644696365630888335829609306197270004662617053516391598505157292561750989653048467975471520122018741456518781994398469712960970111569098119947866426956998852776002544537745101672768293561298656238111703937653385494782305349656557876005884564916957306018637459224976267262900002051450160542624388923717687847042178077709267061545113400502327102079655981962827710555946330999136952764650218667313864466707028234621984443227412327071104689390035751733913659784464564805077464515973656177707153932358969921296258942760330206415894851615023625488722522632614579897775014100821843606672004279094106931148675411935990208152593431159215188251585527575314202834056051511533021299501668828950360386707082504890107677881182566218208810842751702958962195654398825419637161275488643712604858358281759603184283465361513255094812349327638404960364769782360579433809836639884215911746485134763181972741336470540114061953535735069511050580018742156384419703768895929006396354555919236323867690375763880259917146211432534578185062175070206912107027858896521170652400006159382861665672357390324160451335413653852947777676332343596229246242382067134329474716178162043745846251359066765022029576196137624938843312387468880497096067806941006247954381855814308538459109511127977689758269901819763055957362575639954745313987492499554364056284881009360883131771048820494694370022468280858315830013582866313050870390555009096736723209108097829516783000724793240813658379368787652575303197994940096211392388675082422167883696345725599299838468370966651614158513373139409235801593598080533613841934477609671419801812620996837796469233875515296574216316725251565727501915469383688465410394666116301406516864169112146242815351611096927369133888943594982624576428313872323660583275557281995282165628461141071359297821503861118198254221669691757209419137746295356644781142744709010871876376119231807659748421687946577110351937906796199330134467576368149086873630198896704920682190936332287116641811854099161801641861207790101351130568686397872170840157238824375735916778335112768000586270133336864587119275813373091841067703610154418917905002197805293886647010320418806384425683223377427730252235871807367389655596791821348351209011208534779336943813887610149370547911393714769618030721040662928757496822119111195041274858895227281918590442724280576862098930978852954410928233700494612249641448871199714926977524244057166565710139076023800594125344761135263799708740466556972082043081432280069349713046467281351608012599846163659690183996714407547922091397021121111750490145108117573355384093189754599068120511776678887478161010131008612179771463205624305987323040299346884601739889787206193005727302995631555366866099341559320597119661848926437895461703681619791861781495762111978784368347234093569431633133305212309235467818763722875289286698182822427574769942359720227677504139382706617186739806472450861036532924352287901757706801630838642795669388156856202558955674404468517602312270393358261159779001668444628912218209198096561339876604215959810742945302637445931982906237513996351862327319957463631169128040504475404000649018599179625674602608948330002194501778912660920160358269446651108515856795316002882179952683027017269056081936487319984772472062921335411368976684484349919950616071767170427302284689274091053499501762413019648466999779111327337614829935933819497211991931965074845633504233553247105412332435594700029643964093690308844895081591316031264477485098456056221570662834097951803671631755147725501997704700585103677868536608500640305982489163666763976094118176487904268689681785893733024378444443057685220350693941551789826467294134704483298093593234283405299365702232735690540409161541698688753316510958677353916147508505428622239518315355098226117150150322488903122373160789812754829198026848197800887615659082807170246076786006872233718530989928008864344810499294299274555510026258539951466586266787462512558122491579618571393716718790913471060092214092642315698860773181297847939923769539107543499200489067109503467647001809188186436653993228267157510439561199306501395826119609538962909929161798832825050435128047390287803624106757967874922709962705473199485093356125650494970723947479591836073412947044243846544696618228129960712315349844499612431688814187683106147116888596488353852730096901882981661702690264937932113690903658057018114080837843314081622975492233316770296198010965722831644228662293280667347493405551220309891659228781764480584400925080758302232480329553382220795693180923163438035719978662558316010499406096236108195073922617842881487651133310743714496871702827072874479390629656183074529027506620875136016659131450406960603913534785959777311473302582131043460440456699342744563579123576358138296974460400375790984888976482277464585106275875510405841703170050510600051214881483947098195675750350160926008496263316466805046166483007422661230112457653786288967456475732064221286001353192766032077941268838875532185011877827401136535391721592645662336340622273051550326544656737951708363262456293876790706065713532503544023735071793974666856657572103147195832428056887897195394639809843279074115214800044022814722071679322733684095758358780285045833106953290144417838688639143494601307887815625915215489308677089123083274002561260407525653676342937292339529123135298036034044433637173434884845338702554306068517827296901470073739153397766028980923223216654504956931280322240654298484129976717584177143605363707184977273368518152437088465581256476639713616598581060403927157555566606837699452816215074731303122796235017971106838427554620295346036545281415336381413576289472880323425685007169152972151846621491838805076963729536799487114521596978653804798181043003667637328023050400094082752804158252874882131379938497160045303561942454282229525150969854310866808778497199711411686778348161881274585261568149135370368131249471696518168407670444868725068377450473135074513629900719037659703455115913689905377424160151795441893015076386559052549593775716579454849791680990864224623941059369353602597352607152001671857886374512397088182892926935894593825304906915103532884311220011197371322499801245666954564771558315667551086454348949869032097655274300011443641341642624003607161352953082163767732030615126439372428465082219346210656700111742284377326382365111273271929848584906546431849476714296278841460010952582063425011718252356019491249557599177368105318683453046071362152340055195147264424202313209413300822765457689218514872323641230713801390835280572299749663876240060363727570386809663986143157662642204704495243709139732104656283047933517281532518502849283547857064480932394517882359381560603183424420129394259446935003892645350231535151594655280966169508077185689993625161689256139746679708351924570552120629822959398394555367749119785252529036688561806023825038151766838583620868265813343457223799683468264925269837542763388969157445044232507226455310214867847986049054172543258321245609378942731134016858535575516108385247393319760573515210303943664555599298072902234046469291856636624161633407627976874120849582393200845699862425281773216888523602519704081287035151412896691656726351923123156379361135572491621626713369205330747150525885756203642899286065817194618278590449312789334193713594566627342915286123982638960876581609455984092427960741975966183083431518823020584537932921896939123895130897591609647901184348451353666804852079898734595913024595705534539375028701831368906401324879795556312151497157572480458566276011690675509629979695468677696593932804361000998331042892564604800457710608942684040551500752939301855669349114818739583328504148271917129700025170936666497805257738285553809653110991990872993471374942051972421567472238562859426263293446319477767051989339348118911344964952687309215605414573269736193594949679994349367398273153960521521908256046959605893170248323519001660347619960172345136994718416764727482051481495866518329466498165296331895756251828048012785643962487506588606914829767697479539275653959123604678379402047758877470958238111825670639822155132574360905559828593641907494995140074941058798537608131520869312691383211885229578204510897188124808521067954952845610935857391764910167847020905900532603083262108971206060341566297728501210287328799228190781721529950541354184630317084349700364138022006027909347276946862958834347212694024164219887556831423628310503377488501552777113307464040208872485700791486966628593317054583338330994075680779047528741501146820822251003645192919707811133968221487814185864648669857168306188403255333134885641535339621073097666904697479123409364720995770915685558128539282625788665379137050760555104845481748049806078660628886973662266110549790053455310541286148808729347415927636177498708151314298645178074381128821639832661467259624535082503850699803227098550478594490162479622449190437465539906494867938549107867597150192014421783288899280549650210275282759736560375196452512883831942967531536534783396153759495569312306342084723238470551576555778438525261999224056296652284340302488445687397848125691851751941673196138966308618910674545331154054955162926377583239751764342728619168042558684382568710563184031225146116191908549745831682324595401518581845171216595750336797751719968990686020706244361815888287604771403027843599004963575538280689541154925575176569797214609070921106940926678981841116459844908178772120298276834578716078332939163812544283459723748832420122270838652168258462788714895577755823243916534671172195536200036663031598224978687665047342749295549880543470290744591522932318534310706977422186043724663383757663123884757098992745713864623897222349655050923916800088796083847704644687054559160657395623265954520700262726294625620819415880901640141886980506389254845657838189983930424174694872649991158871571250735037569875785114416671127103919446162104373630869702171410684268349179391477957331465523447257797398596178103221972338673116511764578818121908533263172723981501105845546104111154327599422986136555988344799434582017008266641237750144351692280895131043185384267356118169762204849117697645808103578860773170330532243701322335536307853515706323173501392929913776823058482805279606844550064422871626539130361340135838414498961156541209539033851812128561043250023133174341498530219667688912070835875825912963005848589208468614998504385337337532351366678319714335130270229090987834708842892718557064642297501417073252122818767560087144164518357232788889877493126355602870633299590492970088906431325610745874400064526594858781083863783357430533749477234133674946646001294292319915038186470161720947181184072571982150489966152679097539023056571599194491660988540383882282374294297572921679581255140809697355146740427321371006002966417065517400795209008787518970344827177525568925005061643681869787217404270586192009606551407481598136256307962451195922537453685199733962241524843352977850579003696682092064754167387204644626805835934408137985112201378147180265672084686074091148477729984753588715132556761549557138272781501478744606605733899392452407819754399978544449363560470439503566258448218428192233811588782958485262504757915307177052493291712736109860902411816872712937233237014456479346474483144899346790893238925135395149017355328547514735995437898166589071304417443492529411394716768489802298210903114408958490148117332642695408293450250295760705638605847153250384697218723848916763960149225604733017701245845119770653725463689240604483959437905786373732329542193607136188316476829935045997073405936588035426086828862265492612588901822022286304256043261667029664789048563406535813139001661367220303545717769963766503003470086778925041623965215731013603605619979610266795321669185829664965485313660664210579016138964812665591910719001825607561982418610852760830603753654275764602514619392473560472606556212280463035373030380714510218651435710456314724526310110760862957096011131085977953181929950120136264155248069981140391702012434780062191748996445493983044344695360834432041139268753895980020656546835701222175314612984317960341105500912838402061253866826589322957336951600018446293950300172438272523038808898108202670708449984482021598321545349156711518670645158039475617874671164867484013276249141673803866947464857612282970773816253428448661094715691979176691537203546598158728560158909753209584204266490936162963105673979943007534145012118925515793669609091595060741501737866491011648309684115038725592092131458677205777755469523756729678449942359513999135566582756300376642883366595839747300078246996190540618386653833730011017456374840094037646833230201700563084341227234917793484208195863895263298020829367625818143232484628464673996834245294327331803699612192857691792380039913577502200019481935060352373227598396156145298827001707837886430276651168908773175160464764263450499104080637682473478152018023566592855531933295012341493240182281182842274275714888274703560894890585673065192631625329165809459999244280476846741898333960735717290140756697993362174131309245105247736781700340652463680524424833045930935154031885000738184753291145764306941445899287084139821033571464449898809399465531105825074542367049804934556286630664578153645196692972792636682553416746126060345993567144004201068262409167321643342639406833472909960103694959865553967808803450114866850884507046310677053421220177712897851765031043529230045391154109240030147785618434760592255930297399455860818558320088486471423619246286039034794387599126626540229779428492969961114937828878826510662772167897333913967504876506397116911295222228206780073744864283140320198321356168696117028789201182452831580624242683458547027061413239939939322429808609325879871489954002439034158570614302767465085006124021354377003415566713184154204366182451476213464994281152851940575666271710765919589149445026269062424191906330510785492129070666925989291687187881571628460353347160160215925619677901972348873266024937721641652862098081330168920104062786293817133983819305431590583287858977960788048051834197336772105568949480660526498573634240194497840599024761062844769550957955824995483877655254606037748193735909321136752680082502133707797241349688520734324579238952637461487865832691163971419728430197263353923196438402779786561965816931177237471076211565924832373581217321080147083824677011472809678733269540483224287836458032519104999438725787374032385283750131774032996533212652326030741757579714569712415771213112611893251084289962282751808301575376112904376489764178863280213901760893643629299998285898511463900155244035146819817932337691515107505155496458710534936460240322107187331301202903135872419339246808839855464078587329035611530143281779040046281593315797921347001010449622719140111986666239472700137996274360470443854789713988808872623289242282004563276462465491636065222762253715100795523072351213827988234120684771380097417480095227431913281967338271850687671150302254061719981397940698229371490998161071633941083475103447630111785826094454983427541400645933420751926052442201352062745694948967692915243410097170928385986964697965950044345320395663140093308357359973471108574273320919218382857524556508699903331721995606576094210670725774802461309907335935521865142969025204784827463720284241743645611703968686972978608208248874198564788004358768823644118617814155663634125361834516790291248968716174360359178911568041610488578223269999131476456753120301304618026494799249113531153732968649351059860374126964675900294968981025249949112285476950502889598132348235355327420955866155842562322471714161819829263186914961005247015090755241033901181387519683284159016131598351381150515345824547018201610639904338536958782219999125167989791563883799619926746459712198320118676397967975159704265238136983263109106729650770572250246099546495039196397027542325204200117263049978078668776737820819036958786875526814940026072134180028120404759084390243515312850864904019076296825983503881971398170976832363123812558817893386849360362379765827005045792374469317518247815069467623174432273062868787080395385296585004273345760253302819228626643977133971033961753322354322846847883570212291338406250781527771987467998618925621947687811269684460984689503697592628471539733941734634122406279405817327305883183305034625202693328207682306990835410512717857490722284589269465187339507294862701065233300926797715221898455549595131734062611341856909057033696774018927383384036090322779006942926840018625175649842000729090621260704518615464793482884376152757208345618209269833309580100449252507102866029535228307939074305687149308229970538883580121467479153094119786264360021571816280971586533893945806960071173461840537839341086538563837888562334270745826608353399020035130974106394929565478641485568349900417427585585028271622615947182903594155436165298611494505476996765468825911883435532405454604496355038276683080139384037680706084604410445243665097666193297940469837255071752405707545581184391124504244504348965299611068225966929510525988906891337969174721840878786954450014132301847502483153391210715378586199922720181632455731642771533374380192900548382879789898671868468741498745076379853689936867228822800632926966345809199086192005219488460890283726445746299678198354091776552520071950871137658888793482209859860266224085287269493881586143092271466372298981673709843880092189798490267767454052313570165634783114349156431007797779087089875567434674793162570678267898719886416584854729227843366752638885920676980360845152667784801920005824883621814717314446442708378348177835218589006757868142063358317592797484082580863004827859830816742736556749855847085536571705797506471634949962023052728836401485780122082142865597485207718073138761321613803957573566409034057204276530730176882558441581979371183780765111690550054815744468515999120958548904704256401453002602877821976477467983267816125041506396046709407175988570313987219549249191400838297984328847837817829480720217637041685500651128284608583767439859829411235939303207393440556022952482311235179284511466186021832630149270352901454467717103440848501255121567136342772958841279975932064779644881523412515135952175298255401307607028812305961324457058033049550829770361762570148041089029716853757898480322456691283265834409660134890012074354513301135520690711969572324361451503321576527686053563305900914679960728013094952175114915483965021147677178353964574873216436617248511534645786561956417477314174311893192509980186249984080086542022948122302448271988575849957540727267495470080933829010341505362788602366321155605924498012788795827321642593409856114615936614783292025283357860164080109057595946723403421701632324117633797953282184605727482986045884704986475017502012059807746124312608868740209826876052326685816437571013896480819016217820140867178263176305076262874443429252744498555005521031827579841612582204048785152746516963261356134862384158981703407261740788911068804882142637573343109271183641381383974270784245774861875416894617010854275357284577123788614701307784032566152040820711340597704430388050486838897765650633407907770217967003367225306505993285321121681322613768229558311562255592153493633890305535003192260391164979171235863433180582472055151053740667417921519611752145940819312860320544511889731730175519157340963814044953758148636997777402923991506669874300723233542339726934766849679859086314349287102746162250655643039878405788513696422615680966220274697798568716108346279065247131199669826536810015221095580769555355002932491511446530157591608509461135227834063025407323356750077100271664942822333768266036619475139721813604547814625219853354070247316245218326381902243869749778204640217214708328498940425491792503704976588319924806727732311808428405880892565684596006520353471226314968989447469976578074307013279351158926271065148309353918742253399670891050568326767112243079424918707427831519193830201811242237066546172481024649616768281930278587560547314831949484002005469290347723908595616453562839573200947270901654409443415435531571643498593146695453973895474107484369468044191654627232766033471486553518974188472254255504785139745395692470465047474647947221670261437966641886112259963516679459841272164264857655197112849841708073028637186248927499032810357211270074744971142572635812525913175367488075325585868185460418133929311784747811279591178064418287959764623083507990622683138807584718562164924145217001841896026190528797324412023546177233252417373729754720090127794759910317905942844448169341791710034458758607111264940527389663690907211780021137795623636847245217666406442153135672980816620110838645946397657893829151869079000838106918415221007317962806222948766758622653605676542913774140364297466005469747132619557705318647908737111321850658162372297473432920712792793480000478852517967804778318019367578954173620391827541755141365417183575863031761839505322349619730482044302241267259084054303048867064436645657583128666376290489623228678365055196563658472777697337874208098677368798377381905595666688301858609550462559880366347309170613886810658349605274532279223772015067748515381490947682071366433116550741775233296059520054292795788665629732425748284814047290908978418137278431102926872477405233288690113252791807741991219322866760964605167407903464790766254632999474274775283625926774556231035526926088855168020357428615487017304103703590560311568809076508358562657297376578316325599419050885771894279414941830375311606969135893337356897297353119653295349262987676833198220869940559638320073601087042488782348912916252095043573024831447595708916868043589482567407572106732627342200673136998772474240815581185012190801851927110055308048719387163945106762154135736905664146411589796215507763828481868786026144144325695859706092139499314159852531256466130763505451033673525492545851134115733434765599543425266377735843422637402488284722822292495660777041445201779428816129081572045880182809230237900740652216218302280480140621519140470383068826363173689986374060621264607206530344908007532047341464857795083713341769243073728464154237605089699212621001655333133801203052312691709738299226639556194044021520459912397732011273446900060653796136438647373511057003050503484978233155391139537721008563567320164912239542572930818488711851275236641356481585755938607022487588353452027236077263847939375247548235777240063423827877023406133077646685343652420773098971666196388776733943609463645480465092052626449937348422147659535539023856049561909581461346097645563106172283271790148883343266336988903543159885255543263636860631766486239512974331410839243736734517805565752949818501623515695346154924967850814789557936436324127744447068846925888647743607357396449359038666743462148346080402358060811797763581081287535610790787383879780482618518177523343725045164235819065501089620771926227170906868991785507485257982655134661215935256815101915003469437553098809208680139084496891987676265285597863761390344685396351067051025849022027860255296414175496847097376503391064591185816803611532022564822216868152352988903443390245173412677773344933725212117944989146532827824333006359456084420240093461873545684753917064582886151528743304051402418948640936622799034989001197708518539831721384012793614081962425523483054433064940069376995877516846505750887170591433221061274043830657034158699122633148894498246165199057689718218697949311747323534714682267574684877567761551063256227502237870897342753229834981886266229340485837524159364024823150564769233184219861851878051156208026447201587334367248458491822418588167393371427401067383920970243542071284317370133334450078293782247331570447029302003112731631938456549284386045108614431183745664775109900776938777171759980497934629752526656234748398380611541025591152399578200665682905245881312304652550637994863485888651565374491720698948270962660632553176479026455088823592964572765732488432817568887702554355871911056134319870986994557397358574864333339365700348398702743703655204653202258872541433137055215501858092849747325627201320972144444801063221780231292834641897081940587137543426511238500304256415467954784657851558088242604439783776783955031399435608707665418199526737149093723625701688071919775409200430451897658614479739525873805137651622273483786354038136969646380146020105154063452898412469409901625934399309009341084806992110771420439063009412554579131076214918554491661325572108639265136251283603794439699354485475024670419713312918670528306909137343284207460312657894314874907387467808487909713669143428187463332634552040832174816064773054881427177265318959330477161017651913966855540220297641562900225088599379805152295210961547450508886276303612794406230609922103773388330454232990998111092082623324620786394579218531644058060653033966399371704039219855001635175942886037868098804067741620330579056698426123804159841559132309386044008272749400225246314339410333273499046759651488690004391887388941232030283841605881904341612751641529846550149632903097014016845210649849367821629279516270066312978321248767874900262355305010683633825053724715193562693436756109933895695171795471778833931876195808480482870530620898848899909872278254188854608246472402794167338771028789293624084210867826452054611363351764991473986056114644159340175545512461657062221107821293475818195815914042687699616982460850536173427632486462210510251625034816877330305946744093122685192252575269582453082781474746180134496376223150698690303237133906368281709283387473569493073639240186156006458329304059659846354033905534459471472553665137799717618873807048914436992201928672407239891862102355487548341209401624281796162923843268498469696255404289348762619133044033158706230059856052246001908906950251728125938198615076955420788946338794941147000529762643423854701343865523489080407942610259931081812983937550692179354776527110107091623748063492613913238890805777281393382229946726931929620886859991669021286890636797786263848216684882817778926316794928947263883069494758238539412393332541404168418287856737037381357163270921287302927870960337177927064852719320075798818564197091406738881855108540583099031484071209925487332237301366226344986048286622764245494658219734499601814633704162512665854631480545978773020800342685130723962741882311162286676571099385710442272559961665314765444825473906644724229098322823725727055631347058937531996663403148453419754829506937208859225571218689585250740933860943211132959625887315252318459794870188744880093532870521976519230711154436150148621878471800179257071479159362011904850945908487927785175145939333401347965926556396451114734955635758456863056236601678091451661627097735049465236806395005010694144837952906040564605125347997887927829895707933544899566890507214277903162250796398446692504507217481667447804619979548359674354913994708121627865588688409935268408096934308544505335613271053222640657269946416774132263909160054548591918656763735189952263376025435986381101127828276132944970212232248339917352641921317825362952430281621645220075922869084200377182724239162596956825758734687080645834856364926252695577912503399277773579260823488936247188481094483523243415442849646279225747339765935642285281143872662256961886657966787360232167928319825710925173632899284769944737737961318036887715493339372570377269414162697539131510751078588963622993169204592139807884500018731730027275707318402010357330435334764893199343028904837855310143373212759729035234943443641765033742968473011834403996147207046364906662264425471905216369066690441196847800717242234768406514687889629968289831767445400656023603426729930050622491279101651266785076871844485762843660447344188214770934983540275996002811985708301829768569576140551210154423343303332755482609854529518176100026009521733253627874968085278369235834537349955962878180588233328648376636251021594190809633322668833304052714413410941155593030963395392653389600163575312842999781796373851192161572583795473496697360000360797440720056547534418057232078401879006548800739845632555706351592806235761531418540787257101381767892367639962077225158723777602616807083834271862180248669493739159325689321102034058304065954132023851100661390409613677032262889832055737230735430875617145530846635084215509273605774895608517501524331362318778820649523366788273892910126660238475988246841410173023144615178123537581948047736056406453412981207744633347289597422520849373028646846115846309158167166074672710816271104159641262256347400315705193038185990307440622730439698215794819713602146236290592992916296014647560236772416409120684616043986768554491241503008372124529961174706191663942280113981427060871062828979309181557617432156118808211775596438747317604922258132707404255501586083581139681484808994644024494800229377797856913441367297222478009983169701079627124169832586348169451917795972427567350265647772866938572471738093184565235236320371323914666701305585072661267582278893651123225569680570003462873106431522043531006508809466661397104748945602881556124333448728384632972792478225230840029096589057663873340652499300663283433933236785964473503471312013207997268995528084149672155584127832379037107329745936184050095476530521036245053657563403229003861740827395065730043438149827413352085364430928191744675269247718702031222368120921361629603279354884129015618464936714516917156509601399900047700315673835141352661866399216469492768980973967672725016013826337833530626413769425453491383933029835362533641719301021543945095903292515968814694987461693668957225491390617122288315433508803658935395401369006476891863135142935598831868299514469141891957071828461886571289722597903524309843524072773848847913973135220155298018391292385154874872672148223334933222280578726649742135420121208839607092389649323459123105014204874612779555556294684110459401781967578385575090371879002660375404151014776511446998448150686967137283298135082195181530834450658491145999494404106740951270913209491586527909884897921961050048109278550883663800399952878047175467498683326475086992426300309056352167711950786703814706152448723061910770805823744192903429401631150027972934073266482768445700782077866533788627665753406491946629987259477614029558660870935892088782212968314653972755533078629417387762177542512704464747882166714924023008147290547896753042225009931323190930336884722536032297889818184853444390713139262987993685408350797142542193438677431097644520739887106894714388622340484406383968518983590009968462289914532630713977229589541122619892568210274805748428590743858911406692233584085322088210070106650636560119966305823373360218660958698558391719992217830007997518927533598676419901178214199439105958205788623153566932014869709347069537218118811948692533032032389389401388079904322439653130850909758983454728729399030498234438260190752828978327464849298457595003824789438106219998987645690034251714509880329774860263097961660661804843600963613263473477688518137351326234300998176712605303327220897258552073619266247158583369889352139672946666052013915743383566286744641676402279358630813151167280528960177438614000097433002489990947346550258683196086205921397889497289342605776706858839614068227969785884648429451111137888514521932643010731220650714831513120971040496881182550996701044711595786025075186882145319619381290159643165128294932123838517414027208741638104792208110814116341556081286835201996884638661256894731333635920730952833254201940915166408854469145172091725362715319791837015622197856100645327238719649158757208560029144939373901595193714733657056302632829833367953344155163484453773461986522214082572580718709592930957278768589921661725089253232926365320063380600456090797261618208420018019803637074220159337287441800751200294934928873260045086677456958763742398762290148388118906301381215357561606435989310731627356841429709474951969754416691147120198989665466744500742059474565187529312817534616754547711971624336893694133342692336544530855427994854336452447919294860186694525365931018081895606938415091855736552648258790304686642686058830593622335391238555434528223077787284425688037266425965345077994686109628449115594770854360995349906697534791302256329161286419342481016457560976724684557298132211443024984246467995303048113256854235835090773669618132044818733733219369370773148501915059883558531988325777949250228437442806942039209557049345254999084088584685619574295439912847968470474102899768282141830968525593339928732672987210910817222584700588361333258296377060746427841009523488838967212634865691153676205984022201310662435478482740555912872772968528478935683216097956635496841857902638679569223556001795466257408178882052395450535746828312489077404059787349593600006829499678690237596022073499688743508665251533162203142436391572226585574875604729406415669595073021699281011847032671132289219280103249250704080294536949290505513302913935086932231975408907407154235551571555717980264396214671621833153706234042020014983627825313012045918509200408045902472227045218414426510277058316268039227679212478712746429833091734881670076530884072257977928134085195440022669664049138157965186635273153655125386505036831926819050446641369378840362720231298178611373841085502334185154331690424728848089470057501932409490332066871459926749860971256927487931048817535156189098910742755900582196071043368724914187130437845189333208364047607289261608833175117718763644691754447028084375648359810251588614885055837851964831202870410478226359920971172536556755901664319724254624836138911899673130103471068377612938380687738528250779754449979409077109715573893765617425342948747163746456575358938635089561720574811148125164389853564194800165175954838013485060851281108144383563216765895174635306553649276191004120776301474269902361345010811939106695275494254744135364446370553846616110534629909044013425566502799674935738985430045982818225136145754798774005650361918014558537242723401398469508523606840099469918829883928812240760100104545700482972852584538965619992154745075846691572193243333286808768147240316648404099352557446390623597427382021449592168448306167196113531215482491377326718655843927844894214656012204488340305596036649295696294384158262990645191157014584788239795746302686930160052550897990278159964072831593862179630757827729378895193530140680397508366645753179861850542972849517191064152274605274644412630963235362849913848956653640837068930855973730215283695370400860894170512139376316002795741892920931306670733908191509854480256432326445188791549786835653495459023026938080725650609275458878223035473405801072839399900217124041632371423500763633561581153475491890843470512101771137317742655257440580364481305779201300083419385258084317462067882108277423397778880553902515647914776513980856816938741394552957200639675797989186468969650354446681836689028229249448198280214993867730427201406367186659713093501577803970041462269124753690788233646115387642632763690138029539686788811936408913446356016821961160004816342348595743520171736125965696187194864318399321177281086210987505453707031730562428337771258210171689403953101875574374967691934652528102314025077994808679563117033402458463669351904831932184215812839337161249245464855378257287365628887244579313302848019303554570534700944467727091526991345079284646545992701978760158090622733757544619880776121242163724987210788609000433672553999740554200332942242597623945788601312574402350135929011115767894279878503729732678890444882784534906925890980768813217546258704966512393726892179295250935882606380534685732336698472999086042384532804578327921851217257483483082655728422995327579127986118436582481473590438068031581255248993603634031948780942392659609908387498577202183096414791587443199407012463030368920087302032592632467004262279442794719851291931993089532845823633408939993009593985998020602365821985648851885899343032530101710231315497336235115792251512247071680047705812456562639505785156912850632595605054194192487127052150965428185602216819745182876203635211822352698003432172016801816564847476549583291285511233998054802906053382753260358453643276958350717552730074992751313412437683615001106134343354891002437470173216498658432455509351801681644221847576135621066200611033579456877174434112059429533121926362665864894804745931454517227281759831745043046269639830293855345965342496378094636341184354941713208873265982408905176271731137080050759961451391980556896489912862245470346231513662353248176013778883677329656781517293092826166326006702490064894602928098330598991202480205931255862503304649306916401745022733384579457624255197612680716927525699407456482788862444043783522964139456261136558334595307275972961264670492693707961584166784930580183034679664124227391749863629748304707576791384501291461637573563333303219887198888537949650835046161817731722384445228335364007613403149269927536810515290881953787282060736289328789030331703505784490427906613075455051559196701107571127697018089222989603603600560499240451202207245348179432836677620406479794126442121741785938105011012347919142598559413686085659494967121238078516087739720693673948482314454569712472088696493117408312681192883801834947815020176284354735960891753315340687201488819398450173171755401643752819321550065662176179400315127394874195030447583912457604305920912969401144131567483840045222763061928546304290845071914708946427283649837203092136699705325045233689447163433480252077859526535868999775781701019781060601990377710535966323394520405333478112611597381916818437568045386693952924811013816903510066265425758844558555465777104371136102688706772579040543948442346129791610928601781589417301402478631973215798925014223746456478927725447160662302522266687732720601177313243703376258496236026965708034458832978428471409880024030773324953877280731370034837763469335530425149573687633502358814730670553891031094134957169608724756283409607631263505780606268979822962720648452917593783336256539586842168885308041363176882338739391412411775134437945209418995840214377041338476807148306169245629946433971037479013094135974308485662842015127636539765278752788577494081036344182553109713611562681962808146441525457061936836982906906776806653269349685882920598139123318939326536065744359149972304831819788054310311316776413708585619471954720114095145486321729525730717641920040100803272037500814158629671253291989069375678874883367191950284745037208163940836824208697748258205356249052561790880612103692252934237270964360108426733012831810883709404877304859226872367420274742400054629940997424216985331800544090164704203315787970327456439685039731661340217826496665155536060647642873082421651929320436775953643303291991597194884831911458225021279125088256236153988953860655075159532848456264856326195286350659404190236594337124676471962733704001364123757701082634402448075819266320809440409208205120301971809268973135301085925465484075582913047742770344739196991329249264208758303523870091910484676030759879355336878545544861988420984464937943008300092096500346014242880328388402996455254310928780000978382538649468251238800888862281452013707545514489970040439392848582804898910868908632628526377752122323241594763787088481956602663550942327586477274534035463726573065925416925635608462476679101458078668368914317522916888032882208186642606780677888002086873933837928148000394389950135087133660143757267552525188235016268611440430590163571414863219717638178189818835867682700219880671010790668485573225597819793610623252652734140697684046248149295182968988262702992127815141429274797920664458218177658154789928742590676986734904469310595855960722386477624200783107092047934999648889277787905660794519461207204434930771527361110226457782530619845743745242285387863025642204453905391883040237712404246287290256335417002010605022425769500598883981681674825553428768845287330233218884042021951557882414277982013538850831106275903022592889169624178459311258720426913425856785406742790862088711431580165112466468719369823517202119506159810072892549974623214932537998044766900684665458905648758459415321087430314826900952780817756810572861402907140950364725322353932415493883064511974754421494731124974630759028621924023570592275946534595862501249706659213700266517485783529016253158960114392393546975891472141267134954512489830436856776867345980596812828012236732370332478762341779560966135225113640269492551049027936391741033861671768097732634467444768546298317650703248260452548445976979522939976005354064613861259552403848297030341586469068615605692262941846805657687509358294943560249825315199328690633124820055805900754474175308089514578429764612691957469934379709583140734955001118754852071370069295662860146595353078839392652787774643808714884721386740437796785813615224562320762908171454063793030779185802248453243981044883133816674512074520943940844596897641547370734105031207733229973234253326942880685112464902397063327802005435368830243102749191450447072830357544903107332048399747759507540224164840372943749845745696474857231094795420199612129373667720766435926606452968777309370307839722359574812728169538779352183026236036728049621776579129983482302317157851644443696930852807112902001931004779462159283353006139972323452815861026613202681117295188973348802891696849237047231390576483754638955103337713849263062336270309930616242432107171823224903262693906770599053812146562515465389151804074373483576311786931931452709789879017655028253982667587881558697220866521756813393796538705631375227119320022266495399300892504897740827834152163582606776757379604274407224014594554009544420173255965234825344707011856452742905234355466880619097624020079760662464389751914576469632031650667342622726194338953397121260821572137556315416107219343947835638564875464789153376607270135408541919432308181691384177608284630677979822350270008665142956760278474718676910900273039806413984328267234416281530382429938734888153150144784826721864986323167823950336044820068819710006106503203699873009979222471032752450379482955207328186835964135880753628831262902481090999145250418001170906363113222639803946037554946039989971704997654543127277357183658509027921744739980597128274081832839627903894405203555579479409073829688492072142058897734057855941456671219395306503606412541964884858136919466295180053558050652160848183995656250945842252646143849506660056609248001510586476951800109946845280373020660602873357868827320463418627307486677868628929918568549181333776323853247936841785618312056852153650700497103986270167664476439767088398140952102473167608985796440959487100703916546508184149061918745487291581238337037816107279347292880788992179760579949840633061741931773755675038837711853747299279043285620903532192684553899937843238966533572300198336263456255754839945857069755994172182437972719462090995601553770680123271294858969884949881016744578509831328729167657291561448182948782384614272137165013846399358844583467425191598991064197264014459746022675286300706319219393067070677467135693210770316376068831029427207657032477833055674082489463652317055146814256426545703752655621306021221788108405680526353745359955339300794805902670998571098737658207979496624519066823120521983150413334179350368607903428690057526197730544858449309979231314358069790270572764911865008650405755308804666065866251183991159665942221527270678566776853800572180240872480238041311292757500954947385178582242553233662622222658772582376401310727726665022323890020986802503822534314877766779667158041063990425741239599936121568465333903837371605206967837087963352531028103742722493804246834275282809408930137293199022722990459410899068070237959106179789399701921255447017913542258480797151173082255616414334710082147780849648360082112523810324103338113689504400332238304504558574379090545795431978226860994886328414441079609367715091920280929456965632477049715146378586798075303140685907445675213445688765156567205071830060127108296597587141916530771651177115267564912624222635905865431280186888784191085220503875700331546646461793135322896924807926230868604737987834917719426248602128994082410696947538013905440932559112047196356030285076983189524396023402118032595408845065684855511619461556996223449147958179651085640451631651777881595649567797246159188469498262277407834164500160480671394076620192063995108164103810126700556480167386135334691780394015454176415427286155913297712138188424476647456589172304062706863988412085738110197014982728143640658182577574838319984001868172565999973612091894161490852311495745089281091403097625415203084093979498310633227061418423374726523226502350933643387902125360095010233699404005851180618038828466444130080810128656522260660770620710542207387981338678807245765923495906593789867313967488868424371044767594605883205512306076605648493339035168382689999884080078551669213316032950404928449218880973628243117902725708727893171599373133630075216870979202604829474719966412634021737873978495447799971052674557461200832091164251867338461549468760095794682654177543227692148719551707095134647679231736068377744071170281365785364870359104507891388150134891020510747001611363371821274854988361656321041566585275358986848817718093636991853862606422511335124452568402428204186488494345732144787853418602621181160074908879143432285590863956733120979531960978469056685934260759915515034449873826054168304941339813314702364013869586180503143710433721195485463049636786325115951665692157657593559442661960261933223754076335175838083315876451301075644062757576467906694230275566831972395892635572231864418296618964354099995865288600029757826906146047848336259399820612968546040717523089010656908424519362672843723532911885260681488521866401732449233570723518959764442601840790681578197789669566203005966681876863730215410992490354512586481388498237838897899158720045282597336878762583068049952935626071471468087863102626894511035440435494567719767833169428052022641742288265564402254194211492683615441724701417486701919664967556500575537146838026150687591880687878330351426481700108593282595140498817543554742397047663419936308573450115169410133754110769658946298844703537839964435510042194498827781819632712376390558389007000839696735395537878134193682475850373760542833187183236322617746252035771549785908151980478275745487147457930147015247933017050002414347521796654705129245385379596506286864293832062917222594198420236459756542423177691153387614741059370117714116758618108891256516571114378180147063964463262900680394886082658963426146962599848983026884093648075126502260179271777380743692499940398568482883127414251426252211253483006852349607797327224666734806365218416891123527094829556312607878108149819416366412900735273107931634109146189566940436592827497413364754974940497370117809220724061608259083544956198276872170183668436471742951239967809265783385015290180004057085685133636445607348052394587713106878306297443984677376651105627956088801310910164258083170720938665591396996245210768444366888043498633422799102830902989839813328686526321502313401615688777009399245340135311624519233322894911273061249766408887944370432318553005820919685687246432736708617073941320615436966804110884844309976188433715536692999835686594102572805106700508963050936574908413393791207164302186555747662043399319472057515701478086633468535008474491137665687632331451845485471398738626915214659204295158579405544744956808143474564770764635439689648013699552378199639496004334057234611750960136697951719125064203064740598848756004358637051884595500045993398254726181578942172924659077262116696923709652212970892796342518980444159877741441273654325998411700963165670310331796126859169727306915817795490765000321714002847417331868832178577648312737160513749871523091372670310696912685486336944073302508463869235371994313488715405656158162906692612754255755100872243227030451677494022786230235026554114813088521002756099431154785982701937959165096502694670824107380510163764396545905522733335976757278181632105531852703178199847285936260975076053610998272386117524975836985581645256779373385513803191058511381751106398410665334300997396590164233037747939350638161025000032032193083271895884582026757483904414059738877459715024786586356020913631361677829086007896411724017538306568072793897707379285758056025104198957068190274061733478819078208504760451454623999461349149174612172136909598923071585390581121226135541319462339355981461564303400880574015472385648734047730937055622476615123698536579974664221967907958933029823305912604317636233257029040501692686919759426346876152746309501101729966364153789770826331506140076398777109013839778000854994344963944399366433342888269172195668897593885130284634418667247868481644409309064472272392689472403631667095071388023833136902097377893124031990503209544231005410132495781450588818300886875084352221411458396618928461410315427916197916266019648995262125594226120235776577161664956086824048864061058325317055212338880559203871878708736382793425691180953131397533438418117607919769119608939178147644119518980654091598336338270172392384129317815573564315180610941740741836900058380118507545633996424894991715537454663128439934402903575474830270742277569749933637287163069271461018686044912245438018141011399863559493516915125319042801370376670713547037637930654633851752036693938897141149096692792961147266467310425073513226904725034062985015759759911538558774877687125339677435446819067605909398990067769894265997760511108506589381341032130743628220283477849981529968511782998053986295957037950307351083031563339059988490157763765071594276374253463297454138690032618890648236964535800266407921348963729002147401703160220294966188995035120973674265188039433703961150778013808315752208514617321723710886844431723468184206802233782484263473515456097338807003988584078700827709157170402407453129360485823716095940885031206822594886867233350679450047154347996902837530572249249260940498443695659293151720896976237866682970561397289300799032602251306221120368049387048415795140389800670751412796382999720280843509411982425228520792948675113699835650664479357215725922114645427545644230823569858139502619388688031443812072975672634144343461139995657540768008515914977170368528549326093694541888017505494957726157290846418384198419960532017345171087857462925761450493582251657963287792793370266057307077809480939139695857166759107589737914237424553894107042981967242774689515011672064479516851964952165716049850589601278295168104485646555469392545187164690812232330576715430500752874738747695011447279930615462683173137724145106920764587703565330421404303329368054237479886382191185199510519524455450466395286968038222371350754484283181083794471334296007507470544291099379273251332872854720411262192179545452844500949537263311004595441527362262752837109399704665931984475351114883003721033126609479570597380815367491806772633564797433313992603880505055816928152972253419082326067864608128241491882797814429298767406683168724679368562249320074832070926087722250735113299160387628624984137570849761895205933937037549419500589985529845092856816997080153697659982328483769036754361340553916738097130774522936391804942393369800416972850811364954806011473886204497228290043588841846629732228019993336105196627359348498289208772171515928468477206622828595819534903982501261012176034593532868937848806906529872573257118511557335496130956231359968811809725748394697474486869360855361236833816263772221926240023628394485738811492047555711058392847165034209212362007955554415501292580167582520663552577265987323144488385235087450853219121887115239712057584769788250843564735734835446638355290001474573424203606981657446608089108151049760725721147753245876291622561722691866618364304531183513537035897496082704421338181865895090895843791096173505044940661420200699312345010290864050221422741554226787746396283014280533892372971038051357989717439611364136754250807295013110936545279636929004997657989193298772867033975604557299127078677131634144186627977878773311825743840681994788125710010638789541495378155825127915246493453508520961723592868829852867782530768479792706362180278194891595340602661372940444466594493471899134495049589901792083532393762355454709900679348383948694765636040784727734367094782465631656953219293542424033182383035664153400675384680088937627774072889315711104567546720270616000909211265378291908536533576563846713880461366365232394314202744019065129661765638646751551717789139047920749386980717399443044832375905204662264443020852565744545013398749758905435755723919664647789913454464255308335170012705086707931253873159187810108219953765159052868657528136047463335444515406006477102847006576280658160963891627363824702870382772896471641577690642718285118461711833134748302577592607595863666361373301490625861892927065267491708271990006051872217182183494934836296166985879925268364784108898262522893240883201237519998561584780728625797193570231007567809609224006361991611150289212447074626370476220817899413551739198120929543017997782780454528367119160002885217683440143327275839451653073963639642783134170407901464404524734908412273727471218473076928906008348725703076271079546547694602562937907625879750784621079916420020814033345459289093560485722561015224522221202826867272628082804049841787939685062857308128418768980581582272752130292272490117781174377024626292532580255631484222726997291649668189270966015428210951223867192334805819428121344790794214060520784747296968239012766185749891624082992235864039560607681881095152425529456383520648710471221707274132345363459266942966524077776757799331088214597033344173400086193448097195479927215777479404305503545273275579302792426971245544670824575723557630876195164929334728271643026254826438346038405792352909892382546889668677541432848722543597091826988225873699462852142155173614508856669166374806067893523533624755964798957693010505811049097033798553078802653304484720892350152448094570549880143576384080836860479712669320176178472490970080273987058843232730486315419013518479529092757639061511915575788937956649821774955387599592063899175977645321325306380580870420115709827235670895486050045147116278786634392608938016199173483886346277994221869270810387307208779909201630550028863575790173615233505574840642137355836354840514371401700579669400265778619195335133960470886249772161314924495593388157264290443019292450974154536332008408656983129419763784172028669055712081169413251352576288359214587111287863466881563007819052980112989727027571321853346150995216157095877449408472313599447953793077448073262047370668657742210474026674953500231002959996203450221900773926468213787141406490073819468167199274675639191395133509480576729000243626873261559468015991327138010451205633582793041257666310409113647860423364274267006194016961297019930171019414639502483309451116631022227659081495805824364616096597790387837690686760860992314606671927509920832295460116839076195082139994499980864601619959031704639298589387254583280100261281661381911644319932322059361007532958131895111150117593915850888996377351273108314699657833262541041257578075572153401591384844357494070812465941453680902263154061467652875323697792835390655364835878636903630464692790523158271617108745928380767360220532582766022293078368607764370582219490822703662962045469584496040468119966785968242749606210732263295939522024868936100891827879563678156097278200678962657235194229435155834335068807159950271568616024665776798376109528200313774808588750137653969595611681621980199457825296587742120867625900646967504160184026181580761291111614512842945975685118594387043518727530361538277911551135088247527300393752567185147430747041480849407372430458537441974332935988850134031215196998012516745872220235651404758022801312454084003427747995153956931359679431263138694108579028499812331580015461841126761760877980478234568066648065186008466771098288746296083463835716290602586168405938169759564969092179954639955914078407211706253098083234470529863442673283787140947346340940635701846920628688379249252584680884688583858939961990524164396867489370750460047686740214944132511319951910416297527932147513167785164240221202420867319015644087122709474195253383460402018302723313728437384691007317512988708737376827104174558407178974417352260596916031136443591297778675166853811275206963551682544792755551463714719293815755612454672643607683494824642884846471602875730231852441767770947251567421460367278586434195496383392772987463474963933908173112325465172813750059066892804907990323245619640993374717478909232308022241703150970179713144950510737892388952930507425519579668925336117430239977332210529099557550905070131690126258039758133766333073107383261184411062763833513821028753248189136709339426166504588325229903200324601319448678865043185320581279172637264165691483650803870145416352106406690304162658266103108732769831411161888315687268582330762809616584080970856885385514382245462836668050421569391168615492157735408658453405788417988605391140577058700088955494812380996976456145795503571675456827184488633987101960764962470690042437118236414592783319302457939567649592509158896088989078713788219371751502160210755599596476424140129062466183519523822727485565578256520675167349167222440128787325744565941400754650108667732151710760791275169181212358232890857747001916975359286374274341364961720615359658563067371923513149502922004770152536405188018426659094588779794499218350317169563389369559526341886312088286062368728569401327739614140612766737655214960300827606009021501475431786112669946448994661923818769087477191564105303230213923059272991445025220244803745559090043275762372737395819638667482892831873054375896067095854006429291512423632623000088356433866909371079921517756542491759518669150241178725062984012190754684959793861097025239922105412684404336975414893438012812036558990589579494704572124806375950371936830707759882099639184118587141707814336155107790577186599705295684212513660546077764902231908034890495673523149756538255707318506464108717986116535337513705556335728980712076442829801771299830361877073876794000929040431165664162301059235423065064578264383859550072470660234855081154575170400722386946363437686977772588021462133877297227158004559207045260213198477169769521855790854185647140753007581379680898421393484878124678522700505858492503578399344277449157543963052707057962974399894780499071850469503698435671899059015866023681028958855269375987802158442800304346904237401012240318753774102480350783227114893474529271511529023651979899189270206190205247173974326026769425405551708790933816440176592419255029779636272936009361723148287278213040437539438512349136855210991625750302358660171843182767999373958809017237293559881893655012040048257183738195517571673709810308018226451051195353867215984269515101603839519668483618451824155281671203938804114250202906179012229210488792193017169075917349989475657642772531695041696027890145579455958163960030148349470462793283389477562146302824929356137003037838487476821849192764601890430693612552762015201433589573499290368110860103609535264162838702631562834167497875824620385740146183044701483613531375729752061828602529069372375382628265935270734498699779259346418974509133432410436649727524850095849702228719006969689665207111016004749765504343842560290053913762562147102595100710405722588949551350408087035217200838964808806709699860799848821322982006073866046314341580326204503310036896226553053811611674468420789929689326320994343754640522979521283817154774186753236127990995020160733485795989369984821409053107245538845433148584804417978649791537856529313843531301828358576536926344200709183530889445448908124131550201356416648881199130404412820918630896351125110240518937577372653173311953914047376158690104373211399425369942255308388639030260462048342712138520457115104276074639765980283533600388182099035134534199585899353701527858807484171222130886968937362611661983843024966632192172941463406739988190717903341376968392611315326474480843862408216473361915861029288766945761477623825521351640691884528758597446491125054338863461520713616649251675567872923887599942266589366282578513451983640864005759284968098693730159567844999017009255235726601757077036459473857883366312318634467047831896726708945058770273487690656873756281904940845829927755069417741242792042711208853766858347692398485825069157037252426939690722635065843371827652612625003829611598844531194952884905353394506228020943659605630963253117762183978071996736276127586591722848471524915326068358741380040434701663120630987982029466981297602370100191891541130920924230216582044361166534567258074285491937121229207960834465587589223512740820208504373563560459864936266828735389403929555671168213654467640898687646821504109750926089266763661124600363466235742389952533798772582624050773691458942021700848708264242135215435205848843858066126929340427139455549343705370035780520954250830626215139864919133046570952148312328656118767390683778401433970953442538437518809703388982385307973205546384111190047215775202630720243310136887388268035335993651436785819985253845531663156870877962844291073001133934987228381387879864197045076034683622023263647250569920405018302725333507523830717291257658779990394868285202461435074449022424764353973344608489763982030248776333709269083655065340105253119207757626460059816425305256615053557342151496682354671934356984913287501646675555105065010364631881329072221623413171004398275158329537757319776475581610812877692035214404187176160099996566389335891168902325963974763783608532437612876486688679931355465070610396360859091011749723638692457638407438778137103160159682292533292555190464401184417529235557325524398041569426833749770286660743742455194421646866548111128299872161790597443884563878881459196984770185235205146416681091823701106134781665241684865968352620360154736244287405140123945145250344672365894317413814245227023128835461414343722648610776879709390461393288381775961227998687918664695891270448632625275853735107259433946823386565156421533912196243864318894769408582718843692720696441878072846699070021323995225428485896101375105794156066256048732921745629400586696400063592160410766104224099818765966273561057754319445589747511476027700641330928582168219944978769876068885355132781274614741956372853033953355075317829248794274359416746502072312002565369482922273751591831863909479914755992362493645661825659133690768293289610980207936597386622004313523607132432152029591740847166478779817244419889214959025374298472367860113780000565161367809562981899744147319022281807484788546697863152511418963600600618270404787464428868975298477530783341381993416683835706497682859994194589375339541624193961800707242714447503364945400978088765693100516232975302201611155785605108921229105528796230996750031057503434308164676537772127696008489054803379077928549426996354135680576198463423249568972483993456691763585735272946782900774726233302289597116460820956752306460169019327402144101869923493200347384672378072480574817237828013250217278293160802700439720312673227677293993756780195373662203617010056851985135978592863334038157166282812150248825172605661616510779148752573870054716306232337651968862610001408877849441021191164739396507814459163106548355204913121849823216569491311238999593720190672270509501000727928982891809648269861611471870833461706925443948487284100935245720235892133259826081052293936592516464359868400361493244349141603406047133391921739995929001168167751416550793808759197491317684863417577972240352617407203080979336475864730434740521629123159358136067322137317559900108638153511393507079593087956522864511522017172416593361841183058827316581657863613386837484558629501335367958201198870140698148161825458163218159835950253023957048016243341657875046670587667302735671676107915320205422439318196974360027528194400915383709220982413408665991959939126321874149998639282917982911356632003505774357107426561924106345832142182486342077000486050095309077182428506788161565270327759409952451198159096105182096053434800336366603315610183694720021122381587754238352310129148724714996507259017056441726921476875756472357243875808221423478146542116296109703458733091807522511213215230659080899762871838240974385142347169277693573146756884624270160471967262529343195126563563411305854986944236616287754372304823713863325960508740936695558077792286740564110573387343408669758801750615796552194608209260241402899303580264715836506276349385039015734636183723856991077924074184941794382848749553836973703139206011518179636720161634140668917249287107816380425191890942130727601188972403595204984982100397850924494644375108259915427408963819234843619530414625394386955188828545261336476965637383939701950925979945122041619895818298143856248379947175907667598920855822145296614827198878228493484123338382133338300217763628375802365277305022455167733721920221658233209668879529228573210155640179024251226598035576568075090323055256340461732101195851914095145293759538608101125978538093891621922359297793083206817162802665178338200127446853018512024829099603645681511482881740594668873044996818294935006726144818619943346382752438236990272093722932638630413432362011066418209419972822564092052503008158877567069280064195385355995761678612378147747999735834559115376390183872327280723404817995813635018914008920603470559709537716627677084657068770565757700984519281450925262139463302880704668379084992601805145320079892270450741255303383002285624507607524007732630235003281670572206295013193651241230300071095134091786850343691231694203526933895794005948452027424897718671792805629179219487652538501681635626218768930979986658164734914638235439034495806562584343113315272704441176535669716155783128629595495123037554563943605494801062789768617804334939251386431560694101055856646677476782704256439150819020777501934211450534672382179304594106230145739183131252219557813443251866815758693040554748453034801751739637102518986749208309677116286399480559375272668659592057837534148206137507353645505548250633286255380013608987361093497416594016933993236231116524846449513783574973085074416560418426010319770518693885416672554541771030149784488980028564588812448132061646152065533667335321794326470886476784572972620027401846873287668496892661011506965033332576000112378512719544710593181835296084360066031254276214994858542427016501059480372273555462938423871171006442037262006971864385849740516539820441677113500963943503112446120534233062473185146603821568616422908250150372631904751393035675181670846596944965874529137532627993884033819955301708011432245401211168902237127000667856046221788493097980967468024086570832689815166629223473052176145475242146506589129954015211150980546727237606261111287287368047240188484498062755123736502321851338691482743781178227942693851299087866362276603484760969632086681415124427255704542872819483408500029560410661031210639282120421213939096346028837521405221771044194632672726909313705185131664479510494308338192498468272084913917829273904180669918145927463150864653820152118650081801391971686533737248662778849250783910324489856311267999338937152430524602613262415458243299652590147344183426528931334993142507419821499709510428787516448656950586718737851125075816617808259276132513596478200423101382515526830659992582913616597468070480135522120207861746415360977522886812563631157012886790366893364568952754983128637936616736462220306685048689381698262888858812536927325037197289425056202180276564669628477755927391160887754568748342143255714054479620952884763902545750765511849598759228474075733854410560037991956453634899142825153298048885351227517085696899842836579680107396795922414407462741975304590121955001160445897605949264311294454817172148575418988378861722326665056320284738224932997098260596537335771984288771440832797250069073818014824712415426686425902252812570100843680312700347241717607207999339339109030154136877628648870714272842246775653778204407776714599782749846600969340787885242219181034560681947082230448937473441280212298973070767667143176765250691783678364295990272932051371145759210483982066318606657163519211564515255516531827720246102406196000414928156528630501440382824157229929420186374745509699315308589933845328582853668560743989828026560721553889944718776016527487437942491841769045458211988354844212865356385987316750547199969743632738916358032953345103117330809203475322739292612558466490571416959149608450857532209991454150425364018173309851946618438711746312194794616763068993260835057519838802527711897271595825427292818247338582482754002184078044614143895261230144593567571453999564911565147965368540719991163003688718672942494948781171651875783793055449381083083493537762851446018296816247215811619459311619095262504961169089455096641513274709692870972753658682514469430855862076263909984779785315450679558840667916867304884492319913885412051938613245624400710279593589201031360580283312557056366997139660687446392678653877006772648515097384473243378515514463024995793581985096324291782443195061559202179806617317787636384024429251129266522245195311241466371626034126071134159957435634152753693662780927487999834496266977254039659085195563331382528835308581424796206142610504484361140351490522398563181463398777090252143155803812679699428654568464126558021181403573603605606649999224130956456255295615990912590988731465174291062641059526963740865730539583452654704376295941714722576584107375110323357066196867736712130107659109499873368768210487130678265739578113235680380180397763557022656271715916864766269890355934478586326933432575135366614458444041426636511087170332249511054385292588190475560786950195905668434083954693493773307185147669251196658819729720966610868269359549622269129915671507935380466800852019123069607959316139325009559493900321915800845551346543531256980092808985260650709509552565208377994512527536936350315572041076687346727912962255999290914491047256024623329495153504611780260746072868190454183511199038059124316493186734275848577907520172951522446808761975278722376652986070233799656381167330606697085709293012742474648491264855619519554055331603791327193746219710620647087966824377170702175775201626254751360498019353430263871415002386217758997687932975174732199257425228584654716471359328685692071598154302526381865718520114719709876768930722879143337360449625551883692792535233954165924025630846178480614621961437364577740954260602762281634055790548414742526371494975701856574265446128935368972633647090366304705611095981697117105775706263057949836741012768934974364103843651862439012762440368943763859578952975097819444124019791276300002425624477343140493856572080842315308814618554699736949779532876368024359909125151373492922987086036988607220147962271528779871069535077606692708169184126697251010041551839523318616816066940981210429883601507537681646001129317201600710578123204880356961048584605941986314875155795378513386145267756791461424028977349821689515022933898770236424720170888178429702984559741615936789653552986404828019746766314586868221227864769363958150104148696640287544758369252058879505017246924093506514752967663546016667540166147443151703827767464737664189166911307720688149869372973635386719236388813271453267550348827942182189510289691369526309462175973427216292078504335340921373292781636159987434885090986247717930369052016500198257014587030155239636392757073671056700533399246054566851244200682594077321927413772730494697057945418822567109365446924689279723468903667905957493614741070351276252214758633654151196205863389318884235353701657776824955395866231357613449758543595758724297096135251267179646911815099300866745074132280707193693372733362187000183955091735384324966032210379954569832542169501502298872575379795444383335918396269464727905108342133241002431471463980454798479665987887608115004970556196313245212985811825749611737469627994766445362183466909496304963674274353466777871747173114103602982578996735625374775475564063592204318229909413504809145916114511939150527596812817325949363247317426638339453857957151290752949059139448251346676122461609543588541239603334068491432143114492320704438877843405468460368935861510572644550772994708222111099692209847153333406939990042067760404442633977542765907598840879988175122832464829693517888448833944853682149826639260506505870413413289567004684074054400112491981668527057445124447567780644456708393725781774954421402886747770101016757368801467784152620421527816951848587694870578118341578409991258804921302064202751648657796977654403628880404856748212772625133330523304440093446047225800127691691202498760824936796438554472890451052339912500512063130812087957726809879605923451869700217656253826010263761148557082417082036306601662398518488051265581146912356670791661177173462263765091454276892601434023978844242914649069515577098896850616565453424887585115759162348322162794958126208843334782309584393690437524452307173269719666732703705060949210883615154107278106786256946360046628098844042579094158970981641505411303074007398039887448585967566256964513575252661030354058611974740372390147748859635832905084611127544999009840315219477964449419215425489141598653021837236349438287382541463894515139562965998113264025319735703545022992384289041347869400142807060376227887927918535428731361710428754718913338954131516008132339316812447737993546046494331831405383838413273046626930452075485107450356755087979204714390372996146160148259591372431184982962684618452946751941912134165719571220338543612616463832530676488568773754771323460695720413962342557107269032947801815790176619506760978182512674423829312747902095305953993390579643074372798960153164438286285546452986007850767728967027338986316194775786879287728540520639025833920439881633484852367813216718593616473814808033578537032943104035618500684688341370195786762954896135432323193415075860397292642549811120137319617070354946821061566980078885862141967016694512826476501576306354984357233313107041056013268580064423082829270305544238809575513646769138315432521895409898276394190272650318297626553343637114191374653641857002985125668946533023728183509418370493485078892501822574517140172014664160310044129771133792568924407217419343501902021117439180410320771119633844854794695052365193032123966827754322840156453913771808956013612792593399466957434817950735648781188216117008586818539116248014869839325405138165026325989531674733750881854611007014489092090007473944690866840559976848097016191871522043509980841708810026349852885223251396832157717060708314716481143805450226238018379488870941459562351394687309978390695092101168876851601883301837254093439435976635821353752891399816029436363621896133706294111585729457497672535900066248809108581579553876890768355395804323140913965679479701289498009826673135470890013517840020371647011031205646079393185982016137445942539171332767865968897210687230046126196763334106915089438780439993216972754509780164520248512405846781855695976763772895574072028662616356191206316845944596386219813335497591522773064838156801013038005469060603147479090089528511892466668599952880466302621964644226740581960099667566650626948259696274735958170721250266873236504929417511224548025783021099626446963790900713277476776515585665558781563404233596803421885499648895513076823526717142446876963123229155041765506742017184065206473422833498730415093420351954546953972716325325572880990523501680307800249238699844158582776231082367710366119487110954369429600757014824662507352129023986634132756405393299068944497977101863773384280385117580557774939012642032016130561050161557469360404458775774001937103812946257210130819216207613120136244321334909283108591475722161050377663115904573641207465271147595837759985731584021699019495316589008232725277060114675271100180599293977654701920530982821630177499264833171729653049858039204156919119095957618823434466688830483314915085023158774988753134971153100610601288474799529117711834205512450708663175823663738656311692737079740782086572518610502505008055252998170280125806623850649253417934907607984861287825664341206055514347337234829639822118273666867179621800969541744040023802291636828356309583050193780219086663080857411600628076387717494729650442138146426429762979662035539413443446977160621933664016710708672584054709945079747915870374844026750136498393603710368172061223984107314872014605925785953997726938521650532260284440856988535079384025982502575043752146185074878170637735687639151635899283955131565892142148059573467382951896643037993558960230360586573348632650530922094308862824742234597765675099202689437944571833332515720222639666558294136191640567064364827849664345804125813749680820877824547187064523702259210175235870018840017642490403574335745770695671254503125532065989611192276996555456061837167370720571952270537788798283309216431232244066898231165969451465520171880509360523435124277967243909813719446434122424829869605017794775633410591275143663725597836759171617159967521508689159883315903126708568655732356933305469854122224446461804658860946407540899694479101969860868197456220958180207930251053242945363271129538525256001810693307572835153984294797726223337243762951242139208545745868852938809959829507452157857756729278508172622277953505687907961939991835171801285847083169929168342240694486825362895585650569187529442508631509220976742705174179132991783771469551907083891398685454456859763215075512598321840201987101924618722277768843076846226710968502964077028719715012838383967075974011655113815857828265894801487412131200734573531121777238145908108375033276097975540021909530863444328954500644220710887186014853406263299031497135517376157238139161383444459818998179865733739474806653759764391868171343830821338546531124249249697495426258831984533419762695331405886199963555821186035053389171313510049343597742441405092703541071550577733429794165784478207966559709404598170450700730964717265147790022287422625037100766392593104977964385075827996245588009246883830613683490426295112045255309092175753704447435009535087124389801928661572573792159324732072954201513623570013174356314721953759147683860680077541149146181642685184657237239363523173072096696550126527124834737747785235756854646762630700097537461411134665846606888223647556054815274583106923480462603409333982584899433033269140290169793984599682235012471193228624762878373116471631017860792970267312738789884011647037157104554772855761520507322068971111819654307532834378066175770305026405785491035633317722822101196480286145211261962210246473629255731635408776136454362673694008475008288297950784003377657042422875649547429499551846261387524719694047782737495535879629291637979012544727128972132116088138852194993952276209675022507841470391526711793810579035411180405994911702741211267730522831823612085601834105407115249236389322405599904022124299248368359771034105068590929805999204434470975891083355344559499087253008166810239881300026397597166692320432939715315646638430329435166370663239821146152311545225738912206927578149806925269615252516170286703009114482392118717473548750190218971813820466543996626764423332898553778559522856344636099033300655976876101637102904897694999571067556912031003493520798063304878373814294304241006038872443941310462968706045208836488103528209879790204993760434963738646728848743690160028398601736830074000668185655384247359836004953814704396514791641352195515069505853303891070816882450993716662249202602057984828569669318134826986844071013637146128267287655528871014581003480130687364649552843861745234808126327533549732320942843087752490817556109569196147914329632407680884155263597567006748177895622436311064607768215478776993257319952781357641401389270440813515910313345960526093366273332228401154390713419539435410026504458103065730142548701647213226211942350802915052333620814398188155455646305860203766931853265570881070505280040485428516701580887816622013000965881810402547378412009813854729060666923807127286065332170116104488077757263877937813391723431618844979739020038223359857312238513331574065868515581140543296008062363690748385864641223710717772928047722315973287388675089802051188753373054767197881769153545228933730009749128384581739101866065358407381351941681393621283715799583939231270857445587616223476621311915634060290115360537623254087411494302400719426514737759410906410383007242324915070154410171755357095169402748514939332207714730459393788653059872938995336228854397687032392587908972721138525025612174038424210814243047550585035858016415562988944612233344779815075147138828002074891115080862569208057329808415939698111102247895087267218624606085965329122963735060459864380644347042866949867688849096209483612677625280212625365414283290585731932481020048183708579201708568649515871635439836014719712206274892715032964883336371052273187842741323755776082652109018900240190529503638649716688473174571329595807684295185089051265764732670209396785569658134619915690612757769226356799676327310511064023082508425940769984311409343223298649156484705015531667773471810610937255541479104787963821262616050432074694618536679523061352275750458044931798265479340427150575701499338737494152679509560473853166310885517787151377643886829241631120026059677137296600442149581760211291053567690857530368174035525046670394503055767647121053942142015363088583860585129885253322725787061805239733069345874379425533389044480729585240879675210343319835279230783886636900532862456981793067707872028946057565965440076843275354661707415557049872054746218219738780265418297798506496770363862993942917884762463738454096377848006713187307974460443890261003116748534686367183687070056194106524598788813004263302685447112235035525162493279397066885025015844678550675405156994104915436170830568446386730530522483235155393061661003278048128980217785199076820065549944352308060792695280320888247070674280927369058119896103829548436989267956091364225771226748867498521591092407065526347207333615145109040684809925843920356184924435705996684725989840574356043062212906943906290146822263031516808491569402843201167784884648708427779056125274927283119947240946501237307702656775463502429616222326693737175470611854451319496017601956437466479344353765014250954357153058225504162704393729635470560960063386652430161747989933508998985401465526298357618180403951328969263835064922766300940159993258372634070339847091383410618470818842944940654612799515897551876792380916364238562457930454142405422342474118828505982663128125386627006678828141875938603250548258785713579516457062853336782911524297429998666679498797296433484240029516066094367449414018077372672286081286602573147371500262439775000819171455765292499345535792259211641700540470721047503745008751846667843354270608096781373058407985128459585489611949406178076617175486544546760872097110507232291804285202623752615043309331390673559772874800435791595530702900407332008200266671699472431715107426063506380421545363762507027661744006450543619566265801550889853226060045503019080646872776834741247038353538004686540205367133943858742932120937465860238433912302311710965996276992035155850063120852666217588643961864616728487846478072383650097044078586685629349432933047643337998479001638487481536842611206378132478879829641211443783416404750543646368175342097575002300029625377962838267863677208949993736760989447493364815205083264492616015650940640737125785052116018985030363371823442353918829707628748349650378718245354442432850063356278611163907692495006129749408416867127749248085173816569142834804733558103097422344765513453577501989065684217827569095221442675700567217966222756546706134554586473243000538674230161002234520541128919159402159122414825228286685674233905069050758696169378718449087097485339529728792021030250746831172911392311912134823844578763189025950510148875915104777960738344581806862973750922359152115415644430245665933743868514504675271159824998334557364631444002992278697617842247277301915491546279178029430148544996538764402920828903214257330703523019800073436415282561897375754520819793924154988473297223548946670046644618589282271009561842487897060018835293394392114715624648311820880552512839101202195420349484632515909124358427627111581082738486120766643366391115288925680590484219791547828952063482577186470350684332242884602218919754055169819514800505312189784508042735600342553749442890750184008123551358195973950085044918402277787103650798793317276968132691339358481034198568243617261332450430766715739522138856859969437851066647821861676785137588273969799827768665298337604192497033986755718204058363290389592158202942789087779599642332759617491612958486799349832031483071985470173702976389887882631117646308611428276430824155812135501130495704469230379635215025529546875893742701950595648263835589606926143374653269260918305981472869116224403817176820030586216248350398272692180754224522799434001734057757508634023615312495714882064701885875530808401925298808670348555123807684101897251886894410103938443904368894018190367601936178310721824674679300734466844564153296396063375908836716407720308583053822655323227415915195061226141244479035337854805688830158264822642981736479128280886091180231139109020338400795604780660752664912153175669066963795225789562893937161871414339293023459416217062409811590857936856315793572757702261025902881398005360442096398627475374540486002131773330586237837021862104581671034168246799472377266283459496730595158056751594968140704450582625044255263733648851533310868000250990928232486901204642102630889564570326841521643038550255738003431364769444657983109412145315942325746456148681393119081392396180832693102831479340220099300076141244647108173000251609747989258435249487190760540560965183865079898120094653946805573718669423022221785324726977130891232363370637076668316713155508328823493425855270954949759697071329009798023363855833679682538226308797761267297095125804221001011188261133150498318028465985274539593960328268869556182915338455135242387222898020370429414229458820495959301169966433209002240845925997977290110022219887208736823086564575607293644006987170322510405449919583630346483942402174105780117870309118198458416665312310698954648931819849919281468917278264526991134720543064646031672510625246252152493013851284707595788395704642136271028394335865820366907376344391585525463517868071912425312403202060057030075065827429201380641306106401310070845381739642974284317985753225899788263000565532552073482187310279567615304044388731552876882823411541544927371102848833403177149829019781025014983511784451978217229664860513690279970669098035668370286423382366368717380306212967991303333386435041703073940104364086142372810433010696884196119741582246743937700043455813065121577245080275281971716176068098248815844039041071579192887123855108289502684136679128982626037622017229520136632588735357486400807749489610499188209816415831556023843203375053084156621902174519962116931125517903066998135284494575119842948489072249457655778958494481330091805370153072646154307523137188322372141991185495824895160651827710748971657058897926354637990719994400962708379913112602375376962719508939633872860977281817218531169296616305428279697663417930234687335901024955734159344585401191818648695895468749988960511324492094479973508681395895071292299154515207397131227357855120078007439573203916521240463257594699648015690035564719374742833656886717290141557514162007915159592999762777077991054440142728575426951423198845341393314444695979475589306991781705244599518700415064821552635887466764361160125708800064095953795218209251395988481673982827775259260317848215020541700369124432700177551447295959370427728882844801295770209807966180611683650665131621696515189774346779283893077456826077837232484352749061463797096220326999574632010142155493586956300701288859833269678894598973248658954972629217165447426130521127397365182068203167569758161556782261281911408256234782716531400813513277111101609761710983870611585002338749656691331104537128157826057836272956226270496424571669900020807329513607208705665358228780058896154806655069591707127321875682645868080301932208166468577081224302306464217562264986325220395778622746091378903712867246860063685281851324421696125494193991271713591718836684562996204279334762138143190068909753629496040448752772819947490472876579808709985715334404699722678723364016659564248695240069274440407300807817625533039434970052255585738514036049641613719918983097435660714458386163707410375266570632311561269849243659083581278385694731034207792724388146261779825311273852177727889616068027727759223054120706543742077704019361546707753100324703839118026911358186974069542286350307249236429326115921220756489040153400577471817677377246564636485348723590344818029900728328932083586809364606234307613405917619171154126675384508120607096969950642235657671731011308195926162348321049767937975879832250663703601802519809195416087953145934815599552845904546712367522203225155338848170090146735569168496717774851051681392648977327101499380153094857065447949222297650904491243277100407232069753703607734968597242794625720219459125180716179095225458301014469987667417232867455136525918627556349358570083244643552307622389060364753578626568449857160146025075297945998898996490612904224253446956470130586537964982925434076292000966296848764631567772706359280501333255414470852694458529317111905237403282856974127392866622663233681826808777315363334582296013620824198320444920795473818734223904907746942250617064680117707324377605331838676609982045378953880134041041962921324609637468491705929443970841549734269958903186045537285218793396369055420356359969706588958861458379382234828628701779319622932330253302523109583469871145894391442212650839414500666228427045881019505832715078532680648616685314423773206888819199888255638601711675237690928538101745129379319123666912835101829827689959437096923336633142282100919831417604364639745902171757160163218136166236060965096869874661209714192370663375529390942676290171422940771872297246971307302328396728232024408559243273648361780041138986195604832998000676214196370621323246807806916071501140252939440870852251835312385905479910048546325502273271705638343867361385152563709802068687796964232396642599543562745195762622360069329586119810534307387101726454039017286111616564778639358691376688471356395026236268590529859490337483454476008987845320800167424374616552909634840118613435996300500703663507212301988954307310004171746466133042296112807969955557750510772302270714459373494219971990791286552356474307780798289535120038570808793670894191111447534890198892581681801012699897822188416261235301192125753722732361725946941594447418154221335526833160617639534052679660538078285546924368174984415545271508189708608178036757538872012282285967566752367445517079739958034081200663039843601541718983224063725031464325248386779147159663684783179505074158300849240050738015405093405112382822882974522518229761077850426281800999530631225207498401065159131088764712516856257233811395096063501852567238386053081935306719706589161799727536373237283463944823883086991645347211270909766895460274189899166421107125634731075137950188031335051752668999762828188650320099346350901610191196016165342961497814297290196176634362328342141388831139713900146825419173666451908710437463534483240059212997755947798866938764104787478516452687794277130221450814315620639231413459639758462198952201721211576928387646962082464664895302346215578968581203946260526934187574718087644836947478227537031267018464732931629910733344357778591640237594233983197309202544926232156069130000978096795168752841499870548868538653602781972417857906990289143331067314013818603836770812942503705715686944748843461539996694131907397821225034233866521689123651395400953952864941247170689371918019686607471192064255555255744485437884845818072482889167256428359033856739660224669449015188654028029474717875718662488088724254486911386799668611155573252377026667763887385189155665825106364055654200687779663416509050276916063893895458415153964461495836404167513499650499615390821130926045236926562125439662546248313142338861435917953111958239448566837679234935829233948688766349817557813475333749525055549045576613362408849017283819811085687220653288811491575830408651050899650445362095395984011864742800794272024854493055715690776364301932372153139041936775834160249364980600531407299487320606115178896947429430257723585972650242019580279714598902793380715889414625769595283197740050084234400562040781609091499671484164335780302175132054176118770619533270748001146460346515558990530063523911220406219352585101040051861928872826901775023034654175658305538934261534562848370211851419109227655049119868622652115614526229067041965853289463218288807435511785436612947107622859819327989293295672588374236415669458199754095631444402021846679962391923062572788257536591153857080301231806098290188054086841309170107864671677745157782892321730901466751255030697604592003206359866012416275780317812908973660241974348471273841376896570374737619983541003389828599799323749633662758207267273173922969881772413413316641027836680575505112111428555790592780768096781788121608365032124550493677764492349182921312067833853860987998933323531050992482320532118666217957087581174153326028593870328593408966176283164262054338167911663196065236162220422218350078330368549754034265000869190270511616583371599931002542181101212143994913788806722417776363552663729554363902392763505282003156015192721490045336976063806052354647350113853567646910768903007523815822335848081734687959322226290770477220063112155968637719531818954351910161087697066040053115672860482363902182182988675345929916871152824999448353191501990298204799611617104079096424130924904136391298411209543934774799293183286487628484106074275647867912962597923789547957553772653641614705120290435355164714015887004122308352588519276541112368186971924539182575756752790248067707751429056752090833015446364124001075942282242894356673109083812468433343948260886087789977338345123417332291801025092495139951166580414298627865971170565167244392469674257394274112217310665575662616039898173669361700249476664707392615751693722504487015502999985301624453485203918107774657545148528688529823275944507329171048075493261506422966764439408608041918786736817456089221091056192672306593315696555021863247537918093129096552189575608618212409399492114436248431462084768155699759799875429715927773463355075588069628279890592803104772073764918322234824504793191429143768913616033982051627066364830270473648534140658491512229220470475608539777204117833787783754851238652472797669093219622750608750295619218427031697677992023753315200817902033173094399433762281418933239068961217208329508909453942209115111532572370751782307168105400829447798180364888220931884336625522744276774722835212674530067470836202532994146384213657645109600400597947750062670676930513147296729207280543778740628833384898180929801588790834337745022723439149903033113602287404962295189821842263155392993691248652056722141142680363629663411777105293983698417208708360006046838004824531554912847415009288530868907185860126361170108059161609051005014140835571075924208628808445948611419327978166978047188571933851201080905565462604250590648065787529396817666509319297062191189616044820026959743648948026013965291444026433519145628683726367458589811391804990786724655220360482678415063762153538428620080214836450816900628333299003285030391257682063550675106498190597976047534187182574107445227577629290585560694696950724327482661292146677309059154392324197678059374456751809752987692454819615393478239832601878996918327389610572930266592604927242288347027039456932394719328984375333933884184825999766488132316816454275168256681543613455368831250817838847401969177730916604853258353814627953218114030657608017219041343746097939464452481910756934857953898887550571942347052188654371911029755510363100422869331291672191986717143624682326242710244800472757061506315713105917390045947483641115877594449139538689624847887949606814078862567744338154994472990447912105421132428096635010613112887763747085900925605369392648617561440174552118965352531532525523836855722832448806613883036580541125016815099711851476878835692639703644411410973206435067161767112547180686778185820078773496020953066300199030742661683192584743240544899697975890485526263748192114115981079062624343897449659219278135971725219942203965639595614390364920315107565779777344399211923844352722308905692134129033262488216523760406126767074352626086022947292122699444844947837205348750819844180248240203968543404208108620852013638098579295223657204740876299676958516575620809669610782021631269164360232709582667233811484247275234012650583090657598288831858956292422604188057040538173710764625010930079838378307576887544256916968001032960069414448062343703209411513507432193599347973146722484785405000686198149390006162593128183050223950234475914604286860720221293194126226791824524647887667988468718514702832519799332721797758054351260328592698148413752283463268689901011447706866775050227454138704664309074925148488940478937565890661093972095002868548035755379623063334716302862087001273000752226354375647411943918328793252770229705094374046827966742747180987873349303891853579615900821761941049397502442285324104177842910899145432054031452688992951945104286781161857060936469543852586147926545513781826788411074125493152800942024772294428676282019257031969758039562379203159309352076121830920608713355503783696446819935779540993826196646904951036428645131123926226110675624094775853189178992280369060601938136857549412498369842546818882973159933104915042043521958678485455655761560630985952442624570497518233149717936917269764939671140642464041073214172267128194619189452099574031604536558371556030545717702183249186248571349075178712416111711914210029016073514672118428079944828499714862666702479905983764601841756618841439972555882600872119383783474763170672765864021425515412263684610469446280958256861828888931358724704797620308430318329978629551994256851326436903922879832034702884707117775174665731729793814998272379496186976414684992474903988656566220413370573513368483232735529469337841982682421830079891645972550220925669312790112450685941848455195605205701777945636259442658146566285511892788820901647415934885049098704553382955053685968442505400592360509939889328292714838169081923193070150554636879195414693454797491202983780292144886518872822878312169866845169027469642998456012685931763290903761276523949243607447279650731816049557492507328157211091594969089754743959823607248579290068573758634940825714767453755320791093326112991161962335827418697917253732608381176153666852154160139965962672874135640462519172168990105781073000567277107044126960723218065072869264821618266589338857419314907712392991971497889600241362033250560705908961783460869763029708484326523757680096862368959176587845003315492053460000000960967933882278651372648977055982577745024483245111989553612107303191823016871468755959708669849983489370793474467888926286849481984195229563855271037809698409678197019478605542247350430087585488654928435659601582009658730970209499595934379839211526135498598857055086362493169190146894202435487060810080718360196872113257500822414578111354914782728676582082702910219879943438770401396432776498951236120070679477532839033802251477061879887333324231466379151556461591303380415688329521641423981714934839550878491671549318149571423988022400882095332092831677756008754999679199968004701722496988937052243855492472486769448581261278478139703125886084356715219087693147417860350764134698922315953340157585680620807713702942020536302109665590696247109316495450932902128537417452847644192110651434880148880107236996390528686075409941935931574990632478020517385437476865186395652183776007131625232062110037094057102369677770996662441053934958873958193295616957444564052362574165874996570536955808536541197871092687579170286477780579335916673020577084285636876311955600849234095743404516301448937547797544260085755859764715268322674400179975433549275729971748748116591033777027016657429665363759098898791200878569231569340542492276143038301596488809681480960048697030251410970877541312799868954292111465660943157756142568044946254364317619026665589513555233830488733111052677221356315243505298005935580108012062158569945962764663093781803553113161227871531330310391032092682555651851713557534478342238219974983283684128875633213241984955795223663540961670022138901294655979808029818530915307248537492818437573528697464471411760281002850225530372409330131779011589445461686438949675922718539030769019257446996840677747807322043658479918477879089644793366683429617389626347645221003253612067843974319859140664760008499710856514487848962352711773883601921421660927728740912568973572213409738852141655661706010510807903949543139343942203524698599667797479511024642259149700605091791730691344495597547178285507432432970494175416027567145043501424986932893264004892771235302361313127959891752086972167397105078175307210446792044353015232271912270652991460957575911172532484945842256286860112272776913701978449022146712134971558620800102902912715265953776236814918209230987852251892521117304402185210208833602395668398590836018574603768919860661725983821719046507138711641827956586351652525713475853552547099853570219286263277895918969843250369031530575574613875884638694441371174953564748538792186005372939397135439532233290126745349101620079980403047648057685782970818846484216101371673009457066451217725704821030552456496588381962306175884782755693896629432267857647351435346989936808028344606726963240960980052830019025599832227859989042692049135790372536537218256364929374470390681899954380643250706142731221037672687891127229749068253660406827711706796008381172642894425300807264481776967032692897257045966339124916530568279984561847483545747494112587922980805508193806827113814940056278589948439967369891809047334262378134916486522177880113146275114435111130583977280588239097922973657095712678156200075448837470372307029188627827640481226109024820352377336090674061763840988363400599743581780649884070766104683019026517745945736185067137923092686871174339362357704690167053832974309362773791107455932921680039446572343204544041730196429783258106141283999501273611546582228622020369345796919793760076266737646750636328920272790436510628204373751202927826277017472694500848743815979109141993935796950027285395756558722796900274921602447631376683856850767566445181453085958936563267625295537078877511810966922507133817177831907180667273916931650735277928699303030392834894020683884198544516229305541365838694652150625355796563817886297885409857842896094733863876577622140511191952357409758287512894491160887319199993493054722285481527528367202920476223094313784460106235257763182903663855019868622394354156988090176299266692585566085880934420439662067373839588962946037559317937487125507043818647243114217595285709148921684798730739679657491810898504089623908511195315872249850090268298935734483121904272323445872457667450172366453648808937918738121890308327746055598732454734772132472291535148411097271583156937934554582657206595229140400147940151798053860965792783453999152292529673300389441262707837332552147466511177770908142834366593525844407013328625637562258841876281154891568622778942766731905378547870784524808473726038175432258321234612281001662912037663325426169063221573503466770529447474731291721451450667048676010893663483905474167607535023221564760119565388084910888664368561020522209072329988996526299262195094782735165672858436274312122489966691801300723694844283827991312967487550749881216103447257542911836720711379469487770921348765716599921667914633529784779636613992939416550388722804283284255052813128196449041496095974972683388737993604421411373409512661585197673080644209860044110049738976600325592799118454650578410816245854755698850114127740614067726264483373335876317612805403248930140584260277789346283364730537494885072334087039162970341140285024040632507870385321694030041658494297860674718053416069379128791420736499321177006324211857892776736084995862143920342091720451130898658336005370603361418599648006664107114571855026990676071130856936504206568580609967486918775855353724363036789371233372731202285192612638261969790489639968627018745601192195506286888996725078209496231982000753884830849817682107030922604147041266318068913491818976804267925264210072772351011040677912882093407654559634749531046836689990278614284980232361751805908762560756005457895852999537061008650522950272471294006066544650212765504601241887039147993725086808813804383966833851151428360569300405373830640479583357399836533374404283036798035407293694699314676988521832475154215552334050775506692002505055874660241214980524618206184964472981187906614106161698439487684872552168996617819485257049984636605642150749881660345524876639320979981633424275424741689553551987776266114616526154946338116631774082326593589654569372164873402402091843759421714356186571842708031623720727641832580891425689251801717112712699900196343390323473558478038496024410099834549057723431886908963402123653338139568994969013968297056394560718272607554034902422733325219367819009554102682765583067870663200444417170744622372056054319016392978428142609548245209676729445717701781262691230205644131443261201024143593797810075974689164637680066127661463688539292957671534385711610954016510571346153431945719441916788142587300086945659293207814987928992314899580533712074369481531579736912634774373648938693782361814785658928561617790195268111658156269676129755520562249722576922014250408939539992390117249732159304658197860348334577831663873311975294139692226234681351736640006351151956571319976016027451727049776737362978984383197717074867691986662728751692160525557454716531145280588831096483841322416301359063973455778157521593872640383554168401562085924959709898770370823853161488852304374542478652894668757706196764278336599878726923282594748477008226978304301676821479615920502494386107615372847116710442135617684952018202203490797189033058201758013632544597511924783524059406413067665120384250661127866829973259744155210322235295486477095845389164018388994807351788245212677048502658201691152204579431006791056082048492226172265059603003467978345339497821817076398161695404918821783558873491221412612467605034431854619025738214348493074812509840032877299273181528878309109438933409727093991893288037374383396979937103569010404063581696758650456481694184741949899131857125054633182247974281330856353616936592980610632800824202182491534696487777957137528087614645829613887353755843403614786955026502425986262818861310889007875129866041491116464120440714409317781387687151790320723744078695778184152826771183467629156949856359429059233863969647905499783586792851168722760743096671819162145528798625972571234547121161457840606897109704362440456469995598476830031193416702514563003344378734630994850065906208391043224651413741663659161736190834318453323819443162720708107223373326162907011906872027145947502566690851532188616940098276623333413313569068108109206572426305415476744890576561015090313234524810105656560473433650213235521407643215474065037684278602091697801500169354416151286436100617378255159606396988576515711316148732065796757789889191423908034006057837223390772326605796024504476785091488065831412594908142778593255447560831543713128131866127436272729934372184324181324035633177704888274859157998148073278877065147526953428552343475349763309956768472984727702957181254707092947068930702414652947722234056342020948757210989176365916962835875889516547790695098555568056085069489895338151266306538628038583870719145698047978127914325644859136248323643572313500880140815981961299839926050324163895361064647164451127658685751894029450997394607669797731192229908227630291719436123756173806714949698547140328373555699422804222493850293995536190629844082536449270221436131961771641798431592528007167828689041674728078118447830841962062860723634379212981589851966457002469796333185191280924668502265075153239864097751707227644551879323939769365507680466321162470722016747821901798525811861375626286557892173744950354684856716834673374172616423576524135451234900904823846385420917286423820286081289475740874844610789818302940561389866299201167537744029372774466149387948300172199487893363643466169601016327713745476961858219594604893984314653979625469070277901057660739420320730882361553796639975086585396672498311331881356913574137579642613632540557520384114377080124525507902176011635810602494761153908825829614180781184845771440942876008608973361482835315876577656595116642100421702156966869273097084417283803362836998661004724101818662370390006555170046876449136117999380446734208544978427792713292862128803251983347760017198136543631018729273017691400816113103661333908897545155781448879779099239301587270822384796450041949929948496458336201682411432196074230945853315773525136443690171163869104492760424290014372154446476860230566227629688133909023824910033705872307049685236074947828958259650322692584818104860763700689308032416152779279299377424406425093590476742193805946908043466351120222538180982779992278371495698082510021843135478036761073052563006575335439263372667325232685777215447376060102279378388018399120212977552507984162035835227264631887515250379801052502661375376338584482927045514555292043683775579296356488187871421656386914808340686995754412935938145948971991880568421724503046144260656322624355648580196047195166853731845092047620678755226005628124306729483867250352503427224114405938162563294858263921462923432334991116713925079831543650650485042668691909654806437046681798025548764208307130801360285221438344313861630052074669794682598047615007625081612026499511585399128840708788048720346285549890385373464875429358365354319237578297270015472847233319952205104493734497567059174559364881177973997545188884491758216920970361621818112464473778570240117430806264341953616616466997442531315640601039250581200585903435197286469497342264702894477582622090460206620019093798081907960184804349027005551948952517724645585672902148954650858582878801183356554099309597603190083667380127741772461960037471068033208359244074898065293124540396980711504540234343630435430202877104066080364750425490770427704863106876078153313785005472795453526805968025352455205822860876000262583956583691564152611515327576853796277345199473734353655493506571675786022897548874760643548366527730494063307039338681738477427078829127783842627919879497114488982848991647358528038254024908358224398024283723725518240562666984060143848255181682085245863686875513852259945727987969186743787101341591345584023464859820074793185107983032694665378577346277441068645390026370259575370002209127121513683661250104442295707759251333230615905160554685346747527033588435336846301069394956979738225459721370159167283400331940410447418423189187666004260126620923751939774267129929291505213356520986665132059591027718073742110241687917513506294057778445224951019010604476632686072939968824734753767085671257333745479811259095626522565600876901848899220699573915153314414097711256932777800530562713447452332576954925020196331550481961271417998080053281092409268183004789429885886397642704240133662020760304973334524804485985476979983473829750372317738434940914333722459409154617466703526993046365183795848519806015799529269679457326505827581676087795835392858039672220998431096799333275953330825092732844717843668750113478717450771697792621878508006405712037770494565849452033510556367177942333674136323181311769056010320740715136035232136869329006028939428617295165654442740046908594400060766586256123446026957428578987567260397404456558575117609153047129222890066029442039415409393074136251204485869917708196756820632852253778771979972218423064946151102204787692499446238243555738107245652315674031404015366565860622511456757531509430943315921447937869402564668848219826040862592096592317294880531413141825705012028035457302758821905661721237097157070392153519480344054308826586612135611169940432200728285752546296623079521816311447025598115513037852598064154371652151218103276355481269487766952741226819652728889506537715198194034663704600189358690923810485342789780386589256429728744411279508680552898955742130855782521650188507651711111252940385183003358604550640765567068964200227103828959897464740167618723630139927697982653940694480645037516844406705793221168242877991131301839598288064506184053828188974246545846962436215494658815674894032574167137164898832356418924787447184975156703098367680336086754862141097673168505196797279222972569250097883772347563290588878177620422119709163609755604279274174727440388122484708857826222327660243573258407408519312018505695966314612841082894833165673787437415294798407793988373501151975177181316927956896567013261815194629388880088087705401985499621658491607940847821310462477771466186359983175862148842320947636878271675776564906540542218370457302788178292478179270009859166087510149145611910922383035041282547291356944629587518516250667852387050901925100269370171609574205293515920380086911270869131569673010865669380028810954309460114560649807962872830904219494924623747175012544479619104633732166307070558213095039783159251144171537172309615634256912989632785487558651455539488578041748598561754268355806248994485861438795512362311221098619419469328899239180333663109133048565245645632694795281760850810520626718269255925495251084307160125408248743555015849234957997959506449857525689399725628461784471857921438206658952774847729103069963982887125943449188564748955252301189621555214091163769719162615115536770716151398521947902596550364573001766318951880706669852702098045132609000717382192838876760936490486191338600115407924176640909409615583858794509178809702013711320263692762361332889589960484065786828672298660799822361156456763041380024158097008514904617487424680405608140719677597737752531194467909713403836054461788454349024679333917662029854540772082345087341187974747188308928109236665613350620212210434179516125349029202042070817411145878242163688321646438661418673637197824430520111427160028915537121259738898184046107012012238694182257326398067384743796176157739886416932137774635098846983036232465357298640495601007070444055186397008751107019517666382064486385159271901404153451284293439115343104675048144727742485151333451859447637811567530968774530039882533567141124775981544911392218600932028507762638651927017798727613308247739987485403259946091327918159929643841117064067269125279561778856885742511480713350225860551924748010872645275486320872008041102276057877163395681799186449643604899661951921425064874933918892761389555831242290543382901658393787231422516732402078373991406366967959736103993941250045625208803789000910830413862096362751486923516799844488334452273176721491872341603579938428164079359345510452824794748528910744731596082684530606069994002550617888435500643609569125545001817241361317457425924321460659939406741344362437805628033431979003060631523161614492140078615174913575936945593231913363959669425429323433513011214176967980878716762137474944252631003087606702416771001376350253288578808035307260002081990759466324384188290843505912235439022910183263536090786855235936368450354525518818233524140602005945881177360394300584408539887343748882648958821583183369453101953540020141914558780835867646607727857145313736810192482473378350111900027243392455848617155541217616471191150116923376340991700234568427773472562952851572260011122803207863714101159326719592526462457076633163661928819373221618787066537215563928006147726496721854818539775272442988350273807508222483659004093865508224248738815816473355136078065483624902438487142667272638946673675403190451749454693001687342653160822400365745363247048497130225190364062415998748030857666475953781105692324944636332666371946542233867887036863704038082774821051923647742340344642276829328440940246636926309548793759165588266202934300208949923112914497245429672826753115798758153648645062284245439403353785795875354725515861156546103731368017598955314342124672320167706880701607839831886779673187725072530984400448097741372677984281779951617452693125298987713228439569189214279975385025119200763354047995048981860025656197476758794988940402168059948332032861729091906408942531744289412266151302626716972255385691287446898569856303476740398843908102433096967409559086124054591793703110319488953857100133076701826570926653177209191578897705447689548872106239178771352002783126471507438198947521903689319520115699025920502363773918001957945713574245009732263803783813431213750812479511973888001474800758752458112046381482066709214161786996864154648347343997129571699314996048077889971532495851342188768619529266625945070460360680073276069567789837153637859925692353029098882102669036479829112714728776409298791652828164698261858716762996342346274027520264998305008352064376370648531195685407879123707438906629968134925330450078005506617096774431068805882397831437556364849251730682100522325359504859062536668595913105322691654672511120065139618920794891162795450155752381084198815494816097943380158467012679471860812490793958316262530990766297284860825126561862998071717445862521958375884904758839561972621682084053489175671260723466765936854388550309565713749289640629537184179816519150877781998524707350966572839610430153040089469578690535246302058378821792897376092356272335072953439613672690345165624607316905688253595453698234831928726465545420202346918720327215429798011233256107746464324571295606845415258576613472421600590443132862260820740044887896713404631492293203494987606408647790752157874139908199759643477775752311817671144718752925557296624218743441986752682457670446160391741229734561661045392514807912436405814990156710550273481179822119363790758379056532216143049696726626660855018203727076086951874371186675075995720634675454923667763141310817917503898686836331592686496961876398498297750954616513951594773359988192507078909280793724273477399279769678748402480349836107215491234377626748701454082026093419532712421496579995046224961390512768324188599957636542102301526188288941061797942877438194589008083066188116884592875769880856104923809045726063041816596339492231430231287531144545623518252477605905021904389093345982074961374408640743174632829426211623913490324378711145412386253978609983705874589926506476052962124469543855435434883926575666427355155690421713446066838774095996697903377257807869197750735121976689766339842879108514109707880679917089295442418035977868557669436565398587772438216093482094674424945591042424212842003984040934509267645626130861692002575792715509871618713593606499519858745449753140504462119582655194234625139125902466772963725291465002995579572791439468434734327357202511414448732060948120296239254172608062479474239189806244988183131192006961566502600886288858118024979210700316690403456012291662563824383858694656629085521822890665655283703650519301301488621198118458200341857606221157846363018844614198170931758494630265291084209098787689301720876659968011411474259644947237685657276651424264099378592078402941225031249918968504702558421107839735284567123121575331902752291328566161446935693517211153347505886345638179686773215739809777070801964142461049586734571760041915410161101436287323723389084084828112093792654064712569029564566361698931038171796977973324514608355192557653031257819894627954567232244606948146736820748067754443510727534016070978353682516855105766613521353364340653643591420550692167972898257655968214151398390789328107747881619358181614752215623461079785111836178802549547447216230079005498196568227335186575337136740340945471999162877160449531556920345017033263655987601172574922987855937572406763735157359121568041674850818385088932317892222947235106929048883131668177976819055026903528014107678492464161526743896836753854652956181925755119916261864502774957914247822879256846272059436855669942035742737434825419823541200097150978781732165773115494999067375136990646278321837271990065915156421791985116872863136731150525944030749186903361824059061560411316307456258512343566626135535633836411096717086449610293132016635693403442458854407816484064027738555229678784063008567382951051417998759831779534162926734457740712175434076360495128470897886779982409965808645187052934356536488179924114274469725021417371990439855121468384287366872098386095032819498397105298412698018029954951714448897222816376834718195100500321629629431058575952686379729670186869115748235193594299671109452328840208017905667341931655828974600666006741580806223847926021986357473846345575206647909210565457233761830853043532643588939244740610386994855243018969639421021665877060768827113343800569654128792670230179262586661928335381247801263235456521728730074023999915490172030086532625352008775043739194984540625299926170451654413598332896220666399492801308171335369330280803957505609462964457283338072591533189851977132441207741291147541290099065274594450454339767298816246690469040401024523990090124671191276928830336748230920118741318139407830815532121665144254495724767199233146820933878862909098267550104583773167196117657246134843018769528529938476898616216273157184663707059606797653560981233029431022752597073477458293419240413221247856400279898004156965330640230860981994906352615450952839582262817712476881867463225150661388486472088969443304864368970769991331396029470872917319667715448632638636060601025439932236108334259678463320965680301358160366357526457174150300577905505057159194353655931150488742674429822801572575685725576930453184118687030833079333346408153316731371554558884926308584794318458482321238321093775085218432110574961082834328801396191918358136902707582199723172481501495351553720707536325315445683777490775835326854248365045171210822195381290666186554048736498274638688488402022560149583492936921143521003040548260866298982371779647919851928912065696515442568566258255236891979932440906305495285501234069408966891073930996530149936192157616369099123581058045587050562377780600253193528919755477425950769690130463272493411573082925943786583611948148812147113512497316325224363679948275902145106655512134200700929016248629924178436794056431926728105387130355397797570035234225679266318734484594237758393152023291920015673023802005909112924812742950316378952224945383586503085142398887672873815998979458714074293336770028635215455160663043339767860081188318108425402045192136339373946285800865386068267615949952286855248467590537505150121009725955017723548626225934032988651140728058314631451154639253334034360928114455312286852019780285193758706290040356208510289637326934572087806402619260414428795125821409256913901409688685391107007245981156462150779176778006541325346981640705819173216306783463391990080651898426161965505933570050341980196992602398545222842041656907164609718435098940734567266366007387923286944751474475995382634628522896612373094217902429554869517486225306735066875086288916282070392860913766415922483373880347006791246957774147589954053782583374609516267619155616554635686540785723174102516909036150451001581493466379128844751724984892822890005704786858495986724487773173622340102750163203295121148728045740378046461175402564441376955310752415369462636716148005789960836187762894205150759430193944078258637397993587392947594016547940233207278991774921691518609225146614250662390848888960757076875649453230702094707884527656868397821563116090389634216695141593139534582739550073213490600270977033533615010260550297307401025798341679534943364278371341274813555732999387313660030026540268368384721114875246548028600878146254794435435893814005803980432463574848204321906287474257043391749378458251662446905416870048909261719945408780590658991053706263214532420228706472229371935924279523430837004057106350179927321079421329533470675844117273686066252560479736659908290623631459497558014410747239296077979715294111133518251034218875945007695880442707857157591674332900668604900968899818035947906055494397048839446070272708911638293619350520661697392431995358654352806862759265325522152274751627057129547579813502453262985314818010703807205162960287774995870856704236434258687343728132950013498957191723627915784672590937635887812761744719410177572290044394319461219625736756406225822046762692718084929926347430796349865717587745560012140849973446452362151310984673663673910129486764048320290350303162362104576091655413349360522671127240261049655627577487518158581426870952523743214670430624115637607308438945920001501850681312258112896157964004258086389978338051566507176871768527989593698844944581622370337044840664611257484913708028431901423084986818716603176360397759767532373575724075826272823019247268694452494064252774511574692870326729212252785603815636651271763390757970361965965569402207835188702826433548057377326402181376534848869673783824498754045170805464792555760714191313835550011991487333192015493477040111324691861211750348278414162119222193151965705423693895064050484849269555717624701265149785397560629576097575731087479061055151034781636580710332488912252757045343175896145996594188768557783860474296903266960565511549704301187183124504886484488592725313466269209941556841521443390684271396883601055558298404396309223801075009381901192700672807587528027320194007934447283786519294505264982650214377892228394072184660822997668486303237960327242317893422439649648011690978514774617677184003178830935998808968395578213866875852133523595319186853668803792171815143132372229326716958244267077724936219823067920416088771745828941594943494097870636620096010418212912024114085573099479892835820296403774143010449389611943616758848650712407428654924392377379974368944264481428337855412107573547083909916108941381882264457274060760862518114376901740261309067456079661600541741038347807617294811760212944265824540522910013488230248703755595165844181815224259682445601809874120189528264121032180247666884207068793223264805200296809816698795179571018626711632798794430665640403965990895818531089147260406001940346788872903294020781045146415657656758795308695212483180754414621581770167930213071121737483610091078462267727746292994921793112765071546989327474564392751377870778032440100460035782238891392136982438286345550577953804833582984989224526431341839980802369812055872629242102193539844720924927176251800863725291334392117313289151449617526953890623565016749077504786748799824669100643332084715378045654282500166896826896782131076330376146037858682957419344592960643722454314447421768061990124587419141762880724475097459776711388987803653842919967747738770789901582435498692189177980714031104608443480020127242592306539933025665950671214745877801035117320530580781932550445601332038543049239767247227676589033083760499384257728141447254102655051179195438749019235721355753435170455890005816810922612582142365607934412541372393518744441520917581047528256043032248141691255539879512589886525700102808769112300542953931802692876606958535840031943348930855226820931604493991529682114617739726995894244542449057942610826952616208103977003119718350887007133762489292504633409977133302622896378422449898987249354713973984430321359681411346684044943864300799952992616395654638056494257204689097496679205726620911241835074491953941733056939538419788995691636556403364593933072492788493835951902226082611802547205027835840578662183366722756298848422070113370834297573583639491405042479032166021552727675924438562889885906161653911619900173169522224298553270728206332883547078903129787623481384118254044014193852290903914544607121726504187026363003599925066471217832483515396943489038026702816390269123040976087962470689329889641630904190948718104444279385518473319298991931464682773406875658195238838093650872052952384134680949821141433263039419762678968480241841385619044591071500186827493485823441562814097714777577076425833297678225868657724213412101707871603200856830542387318785651864037525520233182694590866814647348789349853547582657633604254804041405542192397044314759117864253129964522711333161134302423238954246059729230901071922147899255478957451687671824448100656589125528153568397219244168162596441528612551585906043010659470256453081278942243269039326977893390993300501980693442238056742214838980852014018120578414815732367533363438725381701470855643008329976719802329183384383448317178524305107062499787053011984546853485015486484805699400984871246808883244476396543679722547358627296322311443640670788828904625003315297538188660149763398197915979544712055153469574870084467302184194221519589601387416541790523627858698750487042037519301888391225705815282601252161552306356161123985030391614493906866626886970268038595692669287792336492777316166750674624773570775137751813389716190952873126800664562563398560453470768731437313082618633363277204825498825662155821928584641009228073175671700733023142361724742218408211575472689324605475801522895957436114712071985317025589060150978697583955550269855832296156163296221259594269314502023562834614574831566122987036310483197215891106377394711432473302755418246145517746820101267196196737176414241317090752475345739111884850406086397233394252292502571945612582331875332572293071954130221116517822772740040509478862520113016933514271571897067759895751854576370121575401103316597396866552612923565151592743786762714563571734578884806089178343516085860770654487675590911646983565775345248940343535553588449161704085922155247818767633224915058722969327334492165693980016354103577455923598695069651073454133031496282566449669402862443586615247030630823705673097043919217929397691959521345270926047578209370045613879092952288209065584200306569901275516376795648989926740274645767623858073434878344870663759461403362626064545751224193834893987234078711797397015212774534640850318654566325845899959112270712130991981620550755705524570581031110801266991113201352929715583670665403304948246104136963834606207089851107038060269259294617979085054403062084675986605285546216446254823740179402035683352632571624508612633653466916254306347846706662715803066945975188217663191473248196639456246580413757767768119990879017706146214162518827132008684978839875560208992422490339715655746748483284770585614901027641949490323016507352450435817126507561748031547307833524085275833941401462049351925860831480449969166456259578019911967603842075416305519362875308052616985838340032777341990437602079990318261717026428530744964894785403409009702687351858581622215707683938932069492536410912262141015250742779785260912760024183000153162759700233369879995233430376682882435589937802171949951734538735125664937412087949643971290624245994580023719870153537850344654919640888551248307171199944491677470218478006966040797104783080917880774953329025666828626753230764550372602828165610473200406373736277577732872450532021843582736925301968503344925444223110025352829959895047429276546626954169984236817803284441533745151286044651712627605790155433428984412056503770454323830330230411714018125862194798509349701735318834189986454155299936255366172639092125598197340935974119215055901506128539608472965828180808112977619452499287554699245875609173551985934711695574295993348233184791225597860573805620158324124604678520511162924850492248412199721899776604505815014804284387231342739553176194689108006236095519904808770019032756417242685450218390011690139482017800168796044984543765302290156672672041864881519550620640055071850074444523655560526627592072755487707584888402089058205175668124844801246614543612352612482771583512740159355164414289681868819239251609209384814330511404942230924530536507403265181287092423838001904854352094995883206888859055768685691487316076014694174670389772105134151907007464885619192345023950016468631691497810401486492605099276156639217522165368510035125804253926373288991606271995021626244191844088990949089621004231452933991191578218951357985387253097586557305539858580144228778118130119637595311745792781826427275953670440784069951413690694767416790860344152830778530800670695533477717604812971315915915724195971391500955385275922719815964425573104878570106940106648585362222137967462488511252504641124577294529876396148271755028252018736341780062570616133157193071101273292566231891083526299514868206523295289454191263268995789503395830137589922021657709152137460697242187834561422052541343704343942390513053083354279971206104503445917072579215463637535973142360019524140531485210023320382261237441719273519577068073609954410382796515754898884219674513820011192238320025691808337503770768344561590294518330992763086800825552038031546751708926079789485899553984504222634188604824755356704645808066002396998054407816575247797615982734287414817747292085259765795032128160219654724003092513159845842749711725442249581229665702213608304349795207214077874499790355924173465541908071357761152615611406010105158150884969252888003661646003452062474384040321043127032273370575278133785173267464960915517467464168735838403582360116821121516789234957456132771059296884972788332039681068670899152165123918909370742950655653890090109111833342110235739566889652303642092569866395915053196870218146229389238161104373351567446784632706122298283982050396450627289640628666084811193101600759167837303335899419105871121218112889023193440113267745876105313172239570478327531680703934528918137465473541091932207247362626847314258356951360789350281998392571656842104337721845460967773288416802251818641992665389091870131764946490279863085735005997925880821783484259732194501773404103048674607661601864297525998490154722981062793551476949566709112103087511734148441827481932296719679314634859194220397692987125272317803137225886990963063820060471897065298579468441791285054367915534444896199966357482844767103072249008229450831309581192854448829769828906436729035511282580439764033920333762771648133452081195486970038099254576291934246643009539414442363605431770513324697167215970777298415340991540505653781751695624618243648352086326141272074113587423399382992712886948140270402513598320540457006534254479433144842528900236129179946321958799842710399449506466488111347182325107746290602070151420215919199912424983563602094088080979685346117553253676654243928889787409506173266590946336501305474456948524364488169427065729394710232673758628758816865955415414832361732468907661001945940808366424370716420617185859619903184934913748784874310820761290917049393313767756194055560236043838903410126408457380576978396765576717860935843500328528871767163504887296702730803292653239492743260259225568008720559312585199592931296122482771997321004804192509942666894264186969574260214034836003308652610237233560942606678737664219200474951932864751484886363357476800878166849951777827875491816690342273631403022684588318629658834822827097051639459636169722785604613754867185056451252840132541180239999174903610121722516318636265975443967321791018323644528232896340054337901550380830675455681273484296544689593436948248971195386949517447897116917633864657162700708660252817317543763031207342539739200927432660875273342822718955933535949852924396730919462434887349228767134696481509483510361129255992999687470182722443190277501675135064154651686100320211655463354581166152677554795876084021490788917343555309437242831797696838064197016616198152622051259469250336537407614930726290024222670811028246291316137277094330708692462509734831308025156316182554343539798878377033800313551849110092998287947002220780988261298176391505981416597116702550230058984409349615265937843887813435329431451909079688141498720025674822897343417013112641869209194083778969795563980878999822651656442005189769123624454311641607945643811025185032625867627378675055566556333767150510388403170960531065318447209096467402052262992681559850191969619636130599564777704307375245448824807390216231692743290022981955800920180846008928017104620614889450595030168256373415950049331547633213838029467728060528987869902267559902390184509733637925248937437144974625596262650372404853655400818433225074695726410254652497114585577678701024374842992232214044440926013156932068516382837515515589012711452671410668934077120444076809182885853553022500279561165235141850373305932220211368204216143118592983226808552901659691149414992838018489859878435846314198190182898640497487200472870850682679669397946138985043506016053423175740176504161222532658684253114724299119077277737053948049726354026162009795580144758958879642644191230446095510201689588939400369782175673791844925047078610359054401510888479985019697367475136994972336424991472900958757735221460282635449012930076173964087071024589048913557386785485836321154329899551721564250043735298183942856594604263807943012344933025658148879166929106966911827044255043169556487483898324128249216793534024566327034437031254639365938576616099386868095452382557984459418726599060917278065818438491400569357446161369668770434794477697633473933647967934599997132988768261962145033983803076082393991997060669449503131187158268347827974538082648469036745522943004728075862436783254825570030391317436961730412374181246173822169179264370351738117066475315638528447648642988147726280340807880114768791178642073378807021130755898447446044540721335245096954636850379255817101945959584701098864299485609828699804403069607288691284061772359992910015183216702210863782833046143627074552747869625199320894479220282776181822535399035862591733717694008203476648074537554757598404359060742070870191258411650292586443589282514803735980574030451696170157777666371701585541765440330362486237136072643725439492096252815072365910734195519537337611500304625930627288893896183041451722999022018025983145999633896887412667249983098553469022478683828409307250134046553872487707943972318431521636401874203989730524661804401762080003247573461511150011044299759932014854299155863042005909056318999168679376991073914564750990022538452918697149144588812134133561870306118097118075575971180211221133972486375282431621262133461349354017627010742041950133431673573072478098152032638309176690854969668268689430381434508445218333713238049744084640864555830496627587915438040609226957595146091239550810012971385475480182083395897316098689784436943167690599295090435408783703237575508815414280127698970627282804007231959501411573149307434971365727211220403127763487036356753690674683348716008515723208029997517430550435332324601770531625394795088343193363631532626218572676764612006354123599532549684705237374692027472613440809702114215712039513710407604238487235610646157276999211696677203456214346419378993850761821695414855740322531132145324991375976691846784860944123196393679160168772131282049027165998438505620494647633565779482441509215389958080222966015939059603402929522757384354511020104033587241222984080869175644716631750110606544324060521784519019132799480283935053114073858549852115796164278888503493727185309194567731544935166446752316007612036308800891198479438013672338907177631425202514749191720069447677205580852963354664855160186611404763279101549533875945739147438575541631794125509976233801563458700676927150884774404264789384720781650413971043589997619933627865736785475086080000925744608876674650888355316377035130454908356492063949899873333775529400167740176730456044632765104696761079297218025780665193816615079357238822125715323439360418493967593479427659034384225618974143920228589532722433551621759129747964733738968533004045966872779272786540165922883796045204561762190914756158152594053385112167126504627649784325395174165798303976373982282224988822667759451686514489847376762220561833934758885863742144354685804150677012867594156762054085055209284881176996865708203092237444269782317373385888172440385802091585450265648805091868014562505391384083357547760301394422208398507421040539204057259182307609633090899918391806623205893918165081567220190768989450560453656346716587785327565291610424495207509727273335319930100676549363540347498777816015593591544535991648077506915497847251390238785289970707858906455275550160283217941285307274645564123419008442416777895347587472295916397038120167793138602392206133493685743418500947112663921156457685185107140449545831256633403428661480954815949692482454183134920258470987531891035696262705314712761916572020613061177812263607191711289917112425331521221380990368116935098174688451579085282613442659576167357586384757737150355272423844320046739525579091430577825440269352871697648505949231723503481798921081953040521344383280700748080680525313494160061497167402504363347294148815184476120368438594530278700973030179571832158093151743147890251531658724840748626359814626690747076153705770799292648360356386271595795219130489344605273598157174332590472126250990223438293365223322729062679215018009147448750284248820139631945870142281919171760889101139355767197863980974942577769927524235647429049476882068436145015562017749777429222812580381231274335584015032657499727650638849575734038338168422674938826653777487565395253454175314951807061930603702218733801022191346590369196601310389012234746254061703334425108797748339294926799476523068678788776233746082728477033055344020813680203633045301040633377689244488112393894565848891209230033758944601355757672912638705128451790831035762371900509146901066577576934079104416957692329107620772822097599112775485297359537462071507667024898579065970814500599892557825437081798683179328604690563836382613372608295450323723470428206407449502069260259928462445191109689043133846553134987046753407712918669551665498853817383867597943524000633708045650212463233007912807731563166495332601368864972944114453918425537364959811902388552056633633818037179934447397632889350938219549201210696339669321765062318224225986271117623303238055798333576082885739539850039186861640852721614378511015337892612545042041882468183260651348261599697861751576964221553723163664279407205679527161251141918095762445934025081929856404204629995306298484711733957109922698153043226499854136952964971283476229704929928919533697516967790431212615136606290781128871849912669298667130343793624667395884619514843905235445061354838742526901590463508053292660294246628970965605724931993463120309188156509084128551179322569712517894887184210824971944326743184546984715130284111866024928564192085594485876740548602076165311566936237308694351536893951740486776354084175800590800927426476409835296919429063214704547596639691430871764302251200010466665473323679367004593781909583376652790025684507870839121321437724319993300134056386783377619251325121484680652579974400799948478327961267489183504727596365358104417742358854065041551121701233293486054620332180698807428073019974816238986979724002644706173304498483147395365635278208998496035312474298824264605191294048669826082931647539299057507649302551950667913339557165109544580603623391092144614156362623903581355877108590175488695364210722046430576699597938985140934281254881027006432389158797588174310937071222986728707854556084133568854533330922496159893488016787294250481748910192377476049267582617609588597453973126193888640532282598973772983842969955377595207078804856132325483370670725060796036333166783458160545158155846840248337804672251230805188616468848852639980179185823795674099289195040576061064019097060702039919161865399723271818178114556916591256592514843163494349339834068878077943259605156260249540020938601795133162878735984156257362481598799673820361538793723566213953255593599844102116489133850786364769001366301090773938697257326943799428080711001819005194808647577053894944214412041819893035912692153766238138615075011205693996856389407059720154395521210015049245665780229689072188317265687559313243964582974079516051702466618216457107331649717966131326198118085964189061873780438115576200998453015188838740916677281183286625043914789919679364908997363162470450457306829245458089960216775186435228097000532392635110483770137866631510868926295679430951339015664860454698934296991563307497392720215721645068159333157254271823675152327951468611773012931243159340546142411151032762389250130173512961845711958547141620044474013977676369940647997020489917715318463402077175615627093273329701515953842169226407427216065081867932260189686327556017317016030235426632477298575243738573958651040648398216624525000467525414906686734595834639326907488514068043847699563471244897611539517963818217853005705017978401046970731896572195138922953740842848582578754024111279165101448242278728754960669963574808098936591826654637604893698918598018114967608996012925103229362551548795894351333551245809691522322956743226415842130933250964930620583942016568432643650343388737638210437176979632726102838728112354958274432695471973081911539611418033421939728023693428889306319998324380784984195901582501536912229063967771157009248271692001531230062195439343202436680685177342352918064562827644434249334874222910664420829583125472564044801045192355365248581102168310234128278578050267233342061206930568390735842813033927618697923129135988439319808773786406512818524646904946095640709801065640103266328669348531056274807907633852105367546853062180103166557410759092640437660733303151567740850978615259458654221169171052067231439090021481575848965442376306440269839833581756757247867492523986355965743495617928606079435366016215332139879864801477289670962047070957974170662209006362675393993442852862553061567352326729794448445895604147097584795381493501091948316399846592968934970603800224163932840766465970491420260569057073100066829168905602973656311888735880167296758255249541082627721349004906420548524561292429824235687463956154457410769029634424941771584270280893839421131414909967593475373120389032182662413062248850454478073839601969503185827695899629870582720399675320373863668443042638160986492102176859047065849966552112712139334791285751249920739119027297278797226377750371833491111180721010511192851539317317390907561468134816169478789756358406842955498557835244922162737935781419296216143620265445956522206902241591775179155351045129258904692340235891193930536334644921440345149607350750627252108277135676475436392152575118465236189056666019197365035148484377730329906913248744436655703509052875503347882752415555376201505891431417919237046422382975965870944456599937194581826616890842396116239557350987891467640298927115832384327783424202463025468265197150686687286950043791174395569201318464928116263568321134005841590712840938683435087464617679822221835932768023712019332811116119462171021359512944279462049457451745714067207078158576337541125672395952152043925436591224903757084971756938651832745868656617887671793177270172300159919295684414992131289337125408198676929611180295519078794894296268526663245516964023770391051959676392912551141905339952249140376168967808992350366836393797145685868491761656591531229497967978549934375399960801845117409845603550304756800263232138472985777790300487603793042427635119935099633822387249776953345060027844055336436540272941188277471617396035077376213692704187958081222637948522307735508166351887194742234228171155949494665187103350627443349676183158367308539656509801969606451201732952265796036201011008640975887633804073335076717048461104312182890468600456631992921756534178733717729124501602021317689277551513619459189444430025801484974117344071009422765698146270344516340972558126619534774237903098290921867006616969596768662970438111755475452329626018380648505828163637428516970906181090166436845157382566595786584607531744064275023878990157090526620929924890515706527472266270119810939135742874362552076209436640881278449058424411580036528379764927779155498655970051281123573079237312986736144218639695198844330002865169082052768612052822839423010204145551021807518685110271969813884770904030898970319561804528260743286763533697619739422785329957443748939994099415760245197845793610859214791542599026232297695787511237455123013367359640872537646701271860541757128960213535749317582182701234112693604515684774396738434044558401770466283517607454301944267991149526665957946737287158784687464240410291282013163751852054434847031000751029026121345965655097790551756782801807448172139088312673738988763141696067540519024121736352295467927839221959996647553577091457439080181396208560278234970387242933647696459825118353080977726892479231484163481371310454727503559101422169457070279567765643687162872062834719666761237642886672454498978552432012124605715323407092830453248863403589569451745968905947273629254307217866084705122770514937946855572032859294987373703586626620250315606336142991205129561811002772973855098105415881066763589441532785753618988184576450006736172913773364920972698639048078331976751607341325957126622870775477439676756849149318128286126891486613282319997564501416888166930718150535179677303657779893024862459300771665560126930034010392400235772166678939917325514472151765146831307187704316607747771434873588585604882121797924004288808640728464690268136649204164514840584414654175672164944327529475753825229442089944807505094753854093217981018507339823015979048092787200254022953280606427804614065572561639203620577800329219448923273037392063338587540998889140128907020759850424753501884051880642121371862231706968215038323819265174022535357300507964948209797155074030648922279431550570073110973907508686079692993198196275744288031365266335059168668560961528892119561615637373997714299585111234479681639124505560166567443419451869191022941572404580257758246823455081633863455141794170594297157805367084234249855290135855439381284607576117896481806843409337571802950117339941596034530002527006133958411249243105755819620145937247706617877233879778729890427548025404513283001155658527980452400222913129200536427993039043717129576260226010143998651385084908743395145487775261295826892398284347736458166947288895474096235320926742490231006519338236256499529193791475733774066100874385857480417797436069263364720232575767449159753598250372035271788534129156394379471199309104129054572176994805859401091550391818293839229019637758188129119576013923318635358194360605597968012397605188446972354110831020463644219831709308971055631007279000296634972194090555405090655770587925582041181190801933052252939339969206892975484252389705387717208804372497405715378817265029200578419516648631907805981295434642068060526633582208539738348089050220472730561477333277176881043689670063482214962157178267079148996228209866330363470204997632106780385507807811304554501803005010542874884564050531167938105028959497208765673411486739075296617956851431056140991476829378461111195283809282727468970897138983025988138797526245436319069112309306213190967328953883721574620418628098245441063945601722628475714586274992201458197423053082671993685444922890459782557416966965359031241938614179450176092976114458531170889019922018139236067437580638485924131235614885045256790764424489603950844467334124777746152810637629286593934305491860528634280749796756123576426939757506787191325377973673515042038302681061884894255315184659084880833340632456101944301301947433569282661545099173888675697924980278340816299113828394075929163589276565890636254650977932975847657674293243273359720206013412070516254888854398322044872087277414649703826049251933104110627973824577726632725343538449779749795918153726440905752193080310346653686239797724055554751283598916262460199217523218818458508143349949649092619855770232858332148048405053123080330084477216530518264066601435022112781193746723952089201156617301071852138871525931984352636676970367154468610668177431019383662432722763512869063439016936765339974946901871169186005226962562994986207383986520440587943036449828098425414879300128949530126673087064230304236016942124414290966233128994492349557726609796820957538272202928148015221548771928522950058263921769289037547272089090642306808628802728085053528114274001225448458797920070522247003131457063960298906248418579426524830072924552358001801409716037378819857952136054748709695375587764439985832181485478513367756546839135703284194020680489381770824560933503213618851936056861033885056730814518969435742904817719286435825279196804969179961527272118657339234202754611430344414436037972129112263188454150593347572466989848859890471645699267408453196077581147790539708411214929453505604963142984653880796852168693099399918788197149136174635532934703464630508669336234623633791799617905511599209732030107674775177185387829181977569563499493579540749616987584052164028506320799801826613856079594581070033443522920265532580120375305194675181541112449692437549931647944064379171426303724139104071694561792769066903724242323248790762666728428981861677793452499985046603892104583336451299004297390896115108664275019416513190660557376614140168925754586781632732612008156504449774303412661559812326322372397970887944103128796590753430833545689042134894295440263290367435975984043218539254564966066992999835368293220256029988533448162690791876389856212490219670970971718008593778330990603937078251775451775359861415432561150998575463745335152223366387906378101674972828670969587341465572173458915117594402821167304756925615987891930855854688445862242661647497518829154713970211164190944747376206654499611576483437768630279078743312611243249710533228565147626685780514217115878694654784973699922644564574459840675683517493814247286081127501463292698470526447642248268591781106177664081358645475413417295968032590138006805311568201160547366208114659721063761644135882888297421028751581163293074790323776586935713753181841182524415348100132563366894351373203455362479337467907730047684366384561053791031739605830953998215780342581105189949956510204809223904393309374864452102115600128861065089221192440764749982876778083778675719937419273026775156475360403536868134514808560480194094021987251805781714878162203972907635575223634926079555861657399430352563997070572075688632583481963117678862264156196190225078611121163766486083066778171990385472865146069163741900142293985134244560920710409097074193409694452678114362455392300213833006439318597112302567968678887830294629626145290045837717756363643303062965692342344778619690524966082304317671306143396369069981937874831056591362075564497498942023569798244852390875332241964347728009499399472026156537549594857638503093858241316567618612351767725445651236000630580203748436221521989101710747427263803449857198370877942040183225424938321006932104918083336408192391139525714166219760967038787944042807909437405224352535790214260565647755929555948345344696737809661770827442436153857314428823338025882247074304965419399556652135199407734313206911091145016511442636332997192677533915745382287355359937162119901969357967199245484744106066297007866554262779015748235286919778790675984518257239357221060851746039483021115799161348959732320484126665804755238645659165693480946823363593423418142159299142647459792986934024294450673848939710480649064798893336256699433324188183600822374861410869114495031195933044710321286472761699226136601145707833949549822543157062923507873345578371763013180839035259483874408972155931683852142696521531574571676057782780699437362699934510402362296799357113944761240193303475232184765200913786117139535103461701758891513011068397785762401496908381813157485164664533549254002632082974752052614210165661497186475386760836664978179688074060822883766579385681166578907435142449962832377363014573584971579363518100091259366405569036598447915704188857600538014462467288709256587271905708487913583513982921877101206888598787667371505616500672411324604871090139799492311564064652712660927954036387450195267465190265153914236285733836650179779894637326567097198426438707123850846276522409517475573746002226941783087460155810052391359498609062919067953341006984762362748878110496494944852608461467831713958707595932791144981361637023942350380267146804544291505349999467475624591660193037189780714530441544031544748554402811900568006736716946015765799939416964068763792326597396251251197283083316995940235847374108306208315280883546715309566204814933886708172046231364574613429532949811164143803050192111679689442219928122435165063026218974964206254394115853597451990087238450022247561018912792325758648371520878611782442229146712149578092042398380272636765348302377291733036732233761923985155713061653655923637123290170240538648243026375997607860117575295835325797701224037996545666599191320614437842921740723935377047430467242346072521098640522890542345239260966145950246986724782199341015515195688630350381306846300959680803035132256373991088706488267425825693637456042423494915842026347880796121425928613861988359328575568542567473283508333071666139066929334893856988796326309257311644070489059223135628345228871340684907713493938850090630637443992091611881320505499633466786073909066256225884332577409937362756115450043187873410368373778079440186450112993056310976137577343158373170778092767259388558289938928194475392459701016430315725238817581214255312277361661212248315159155836414541028168495749280474892600411103137905699478788805606203643033536889462299083087618282516939400888324496153970718323633166736265053324409208849866893152836438532727401184762446449997746363062405608468219475818719532006321792832930103253194929921545683931588690343241280696679379581897735763096378658553381764734821518260812600734052912843270216116410661406690611541239158117265944397643915735151865817352036879235487230590904402462417653206344193050594039556576645904899970770943117035259607593648549061594514700802077079174908643020992899438412976171100922850960408883036888068094238916142279853742016034705638091153582514830852457549664930152449799227328974642808188692550495377655695232322130789456030575229752168614128683764385792936511565918383234066544298063005869388522279947053620497949168054639506435670508877738640950953515345417911831216157793489104246106637553015491006210405417991729169723418030441884455338279142333808418225977607173609851169037034539185717442205409501853917405478118453945020432590254601927967674638448337586144099588121678007145707120616284106808857630367949472690577769617932233521764454547801390574882762670258275325905969705846192553821831011145811224727022690528244545750488300416725818785467954908691260981640511641688105737984266492454368283016532033557866454234622260484544030219444093324941763148986281920585130455958311138165769364418700392410125160583181429905586444513360378907127188908392097755954840498046599131345092199639561385356260336572594252894890534165630996298512845432097536869234892754992218458509275126507326485017258489683968244828923202090073362193431981177228849743023284201338628624939421780244649152357460957578973662004482027879006807183654731647771230326937140208909839037389480533956097542276643551510454053138071311556362771258442047340845291884974873450699294218180083001078102016810956590187449358982429919690820038222078363212712201138974211082507445776099589366508002495771735215896694898495030962548500277459039806834126554240051483714751279471939606023128924201872989266775701563935528755072418863973575821256148749228526035813004673732874377393538232747145101128670919442357089812620645705118890162521943347574911769464290026997379883072805210673479874858589609388781007803336943600919564048415088380737103682397828670257082489241401329706421201534191370514962549825652252088547760478393591778092394423322854432776094387741303921823298759404968288045239846605733291805823842304291450989344504029542299136645216552649538432281516225522724408064997020077885094493155414238224995106783036551425333719037344904921835295797504933235534971028221473920645549114213820041345387744570168815757638121219203340486599088405478711408484872708593883712236403138316649305657183020111546864992648631215860897890640195470247593038154512081927403809572219333396903597869750113636589020221153295601926877931700449903628906543912310616895269453380205296969497710314781161720152698414525208415002260883814066460801367067532896542623399360553224910761615502661252142442735948593415376616958453460793340885083845437254322097100078355131036160470081882038090045152330824101381820595367430686781761974453376283322828774180739560372976850558432585992437530403782174897834229817136152005955149045088247187022071346232102976552514257325209884931466819113451262631833831040986702386862202237855549673025695011069101187336039326579320762782804014078422299554758272164264514557947653640490845681841163070001613764590856046596005865803967138199813239911086840013891791981875998300021713726286129362833448931968544042732601540979139843956330582936195289899423586800735067642781585101574966996233060189019297942659909492322480922520788711235731684766803530488478618638251806994527230458760189930981180704518271829747045080606753259374778978736588813054024451959976994381255141197690726366383644665970731752125222589001060494852203244710828651292471530901299964863305687862440621483065413783799863579738833645395827420497410017354081113368407894782408917667611169124207332738366472193657499609292852716510734402225374230426094198462590363130999696167260293276209426500463637304889035600782026598462608815177484622089955704837865187576879549104387619814729364630128026788971537082473966351163520996160303531838007625667652393878697414239056097519482206579913598638323446400548247056404437137144620005385831611936316799209557111826941085611730782317113941772796171052521952636248979924166954635880760052369055927694322663409127585233631656475963148087245638123584932863043170754585422688907234289564068346061545976157016308040185533319969640465424836911143120824782334184777405221550302112960989004775993211205642273659629198789876717556040126412494308921044023282024016922861728734867244215998915628394376758078943272602833420753119427477788709264300268370768941442879709218569903774443306795593918583934821876992041310281658041701007289602154951436861603584299147469678191592145785916343550123083583624136483062471740877562759958980946502256792653644883657012403444553041271847334594904952486161939704860693027260509924024707429681114175300799020907111885362014926839458943227073070876853415403547811254949818514042249261070303083939065231777013215257050826869609228238576468999794548090560510746022145243208545319295272500935578734640115669472170071061487651448803666598371261943286760405710465338443499408011920195102621031112964375106871265169134537526700847347771533302227382136628887171327845301474724848223304821838417583649498534813248343434363275057508964377008584969190300610639897114568699338352108575093769382246929444927847851926093790344057137518287154568227377698550904970867626814568346904569029300635225019248482066700306648903405399950171559102497720675487860681127600137750642084874939961983100481498871818503839309157816057308718272141445569826229921707307452392246959316531001023819477769458215424978670976206681202919255713098925402640302797394228408211308990596010399817037548932490077740531953250514397556014017498642989703446714655191378490775093046711736527566135580360824144064654809296533222053091681899375391481251594226102403354107332922706882869921700649494530155588702238565346310333940383236629886621018594970908493916325250716945304825551531446973353510236033676869905444432440816121835588786737652623567768979687475020017281323722246885358439532091391473244568155861755558399402280005457745284892120838227226544489496707772263773783058741792076453021122496660127591616241774571265046076431734919379480596279744321512028642807419550824512492366806981985070639375977152340778309728830748056716631797544934204430331954505103714096010323335062872145627132482047340506543751458158014482540565022498547586157421519169827734644545802880075944040401364532336254284910795395147435679097794623228861326871449115203762357353661539545244786713692940282318766746818524858286897181320699361544835903488459356855032467228848211330855489738526222989047022363046265807975029351025005554321976103529709064584235658629967992559305183391748921006776063426932389171213480718177793538967962683029615247992261321262468629604546529440767533608030482349248609931074884701921686689809223627538856258976464483051550055681735257267749815199527141596253849605053963553520757425024808299117260050192584243044207846606577792217728129406513511572609787712759283139935064635768006199672350272838336859991488704563225226709329648504936711740169123803895284797519356830051921399546355733473068759267871328875639449328211015816528871688992277171973766657088621803145908024210756546111321799615830229161714792142044902447152035280474183212797046717156791631058389811633951252816931546397494047437927098364401301995977727992780479835423307409790829464719473938349382205435680656208328490303135450589458544758514559027667879368715538403749843653551136640042757557714668002680247470987067252704833434946489654973901076590620569125960302881469129604639773941994596796366309486353829311141551989210870229654342629542502035244072958740693518756195462902727519375665086742068542707036154331143379859766349744978777688127619971726320083895581895391714944690758297612626185080984908345780413049891136104390320195633373306179059886981393100970929408106546555944999602879765221659476930150209663342382385613159551741012200117798229221321340771592617144588769640446420968020358681402786707815103057321433529795211585547587790960550723325827163905633614642505869740445184365289250994386048776300985781919917172305610019682819028688484897107098231126075408260432688798997129689689185944736863048484111897564405963413406635868910375688614968229092890967543619022920818965421613461286701571654207640001189144543619800858136894095983950249326342956324030937199226503401218739776208812801160217566694071488711446964938504561287532481494977550441979791594110194060307351274053117806387684439766406126759816195964429873494977803384830293359163600687184521089792486539309558385402798959652157948821616934460358000311181653172365422709871567445189636765312993925494566398160980059637910771861422946540211655779375707671314964678824006420570479905726799880818897547139059189512903263141313739858829932605294229505269347742642019079128364066514360141128024257979078055573907942484501533639114773004027248827204908157349326462195513590644794876326865142363967199783035415912930078080228089136558093213522791300715375767056054963995849697198510909773965548883841570300399604004041453226664840740627325008988283169783157993699726984204612856732067585073845991519398016520039829404074127021879178728094491652655279177009188742597148207445742351873038538250671568711709793567957470928247764676016142334128119158034646026850912982461199240934371479500089779582572731551911034684092661970384955843127272884515069841971274777460419359124457069205891856754038822651587815038268358453044190538502315120235404197505510982034642767710746732732065472571008466825319518786737645357171762134816755322439757516754838659950235367144589226866477716261200934716541427495365532893757660941531678857794966651138589338146405519839265740710107045916077469964002703119797678632332375226965025605790749831023815042644684653493965779134938761554136766341138783330784053651565357634858030715215985884817382933086461667041541801437255620200946561296981189635688710493913289430448971195927650716469019038588886406177272265733037798662758078909159536839793560614740698429648830317065288617411277705027673165683676997918200430066032267610178525033624895115211609945555121481500766730943321425034422177836835257210894676549359933717079398100261284519529762406946094817819666005443260555006596894230871321841236253968597969367962144534554643778647815950423478950714370137991685551966847304136152691451571247527282681615475549342336710378061845226078293093383595331480969044129474842619175724299914542927668350365596807942772201475076681134137064442586823636818881641340414092651031159884898233872829330153725692254060444645475356681198766254088068351062276084716818517406133769482522070125030705241405807745226973182975473917296934145751703828492241001590599583620851250051365024357474043625541884816713590461483606304719197783548745428620766538617043017398460770317992414132153338242621202122169036946295241846601681653203274264115133021468397370316037569683986049593142775524942126472081306345977475782210783880059102254734645678202092395905794249876583311761715491902009939924626987763995664624342823063489802409001633056208504822860936168195009867208090770580435806705847524137558498293305585795358160207768527335220142526242973052532705030621322180247549250741315859316922680409964346494780131603937479492346344747616903025779445167950613565223497652823397927422895823889305479563749497583679182511432538226891743051039048105157213734012366444962758108279706945802179563142758341663397517740175254541227885838528854512596399184609029168853610503340743816276524068296193956694188546852312291792886666094485081986239329925553634758526762369609443540800756714947570930299195166866268487404411140053923583837385126262020410659772491538227874989554852652654355358114938990426509321851246986648394176751242893682543098005078877109917655029004023849728610589938743605745099934982600225250796652884322110019923261747287425388430540205337392470548395207900966975545147220648449502788544552668749413485578148335529648513093946077689152649735029046990003537068115556067317742550400733015647675143506983013639959537616138408742602246883140348787129443166874127905096726070039877912307080305912179196532055796688259797112580865486034181919150634131907770969210288903086674938524396143255889054863008761177554879673562845242357435403607274592352540740061149757804571146688079797945343690997737225369155238762650776172763871578317769452180157516560034126242231416655167738078992466992483442103651868407572896129130481264094924929744667206615155144674098508703180031968283989686111741738321259985158978381407306262215455060479699863182256142508369703241061363797455017333751968481634409031975924338554081019347748770670115116805112946200917304535737516514605700375435721091389628851073866265863089528963510132561526646361167815891423474935991490075051894509393609384706373181977966182293623024091936355202331864307086277967897601225785053141713920814013247601945223277537661057954328004946130166740727689763145518957636867160022436863490895620275073430854182352275341915296203710931058627653613949155199732729720912060250007787614543827394049062061225978327117576655628977167796772883171643942288440586399567092172960173398401331212252548869713273997824866688596755534713703546679244933486254267685727216638386354407222881691515570096224171121466879487185777824034495314390515667541929443254792299334093125741458830726315103388258186352782065296395807907606340951073347799251492070267582890114010279611301430118977600748500410197899874725408608742647265315954930866875729462774181752035562066702401672111168770647500227602743390470731505101223022186429108009656084080479072819568906040548618463922701064081194998282772127429398862507502684570834940824065556622238065043368455628017770993838467409033894404755893099548096006222076106467547700160867335489709141632128872664472521216260149080119508033718067926532863115571737401005543556531653152765469154750429240476343633865133819489074800312222967344155493945573369622368816862431078902918948886251897188313921454887220052502643194432665565135992183164601721765434964919838986563763460882989677268669074893033133839083809679619372352862894484794358725163198852238457015990898971748008799483947405637385930888294892967131357798446044512045969157697262029939944864639579734154857801262900581536047498907506231197464974850652123061411061924671685072150176105080387920815969501758893915697475774860467917910709993173495856922168107788546497532894943937695926237348905657842358437840434915190703460822415110245211254501195465914752353728764169956106491109941513643258684530874966787135307467068730274855647944328496276369194786446658349070622259730045813767755384044047890259438288986041529894556776294682467492137897396582067231290410773923050811253099457083195312968215966596568868692057835086750399048928246055276830000307737258135797269517106868366474519271017025651604501411425992022201461286594629377681527258667345652647343294479455172364674761509443556291183716252264456283262010398394901206918185303699986286500808328495215568179271786982219286204623551500415035867937305484270846810875887578537714623783169639179786412838226627195593750001305654836570100492106969803894648285573955591378274869711829033794281887750539162517766775331943870889989180783087101746362676707856796465140032237524861204870480491138967476681013653844616994005273867602287032116205084671254073334558109576881718651576342740007434028684269633878807575762370378007545568863668340315791050407335298842120121613311696479911166241131568887573481190048406207638989623360770903034085372444078662638372242815595614814646095275234440053727176002451634395154624885258748410332486101809783437701165951054209143130575453222127447410855315127595361388562707898771922939777089997612536653590435065929570528282743991262522931572795197237113946305962814513767303771337636094924305141387638117537334214043309881233937944735427663289749984148278643867020403857584064470951692420022299238149026607275376604663495616390489911622254783170813528955212943456267406915821943441426514592587980207749046815696557355941782248917316473325393412418434765182678540260091069300765175904901952182639839708098269811497057715967245083303590567856318269653629029583645761122633596279870068202791840165735912221712166136363892640317830640025553873335807317490637390625964641137112307971785246028659449574267532240859764824827198173800929808580612298564740602211239858381024575782518716561895905594479682894564536648497193143248878282227850103097967987828596909821237064299602043746150063072495576451423430766740274909438655425169708640226512557745980610243517552797997913526981054433387148076892927481228400901066484176241061772804861913224166320289727875887947481436952916184184342691493592603754921022588894467521881057890799409865188768888786428974791962339906872063925706919162992881241996939362736610344299048478562309473052602021548828854969942572663228189789406106275982670356566752948786483903265747914555506460094748508498942412289209345906286570429821471381978840797038850750562248184613203106734338925039588666361643330404656083511170740228552885082453154895175988238638095056400627233197051282039288399701734685135768675011866970436362417921182807736488362777779913734267767682692714584842362713561820837754804329914074798581392441979018290405102007809403322949897247515853053433170693304459715938709388634556705807906944202562368274740950931688028539914500824325014473290909538049482503908906133797323569515256366665339790846709891074047860359600046925230095511767124622224878269433278974955147196491893066700091638789793820416229657818093163453371322011004767750791006463147181980651650765143320064884462016600634882821355478315883332440447325431307879914605231165202145589106066791181631398916212882865723706883082919893160637489901081952538819719942597283679509018624507904649816969314525948663924271430380877257272362541266889377403278058220801947267603635285682585451296816369235693372257262265996495891356930911165752815825434119388782630987745160889396765917533917572123501656160064865628707931058530804840767290654518157612272889684575730791478482278774806957621135429368203960558937725096005748390095216374549131845626993240320182550937513728079217470639374244440337439191039962834219286447270925698564533944470541012047992934669802021151231806608946394249035016718008498891603582133102761689392779645079670986008780293314139142566715759317095328364295081922935016025618288959733238748769025470491982202534838833497077872588746618128966619079651551065345704655805110759774294680065904981155842770262182420666461718344253598940841937446765899360076719885277682535377888976292437554256590988477595741341251063826487387008715445778545684562261868764035257061521307279664370599015470041016554897797549397514149243871768864811756928981218012380936151039551706739944412140634397241890593494056245118910967392955160421007241722025827955759836005962355225537393533605496036382228335110120948883250470464369735410985693801575354213700796497055479825796918392541765236042389724562320490268632831397061119479090540240222954235979521127243449495578039273804749724997996789976788811462991850721228031778998454128579358881102629102517232827159711052845442278273374894786653805261757806035962478112241010146739600093400593213650689905746644254930137067367451313304258514145101122810910093763836702864916200028114007880197550321850634190686808075305355974965113875606332135571429013438412164566791003709248036622248155505319198712199091158130902071841408157133135848753462369021399009219784717339470470959850914641095750010183146756163029619827003346499341337731346410384576444984499321774575668813610902253694918000996420523182929853997816461632079051595892023376436902282644521970278801817429014217710147687786132543064543328197590663474111029094956684247349476778692546426341777749370669548404791391849522998892414341899858696114640525517219628644384618367583645884678079461145600989164357126888309431058661805785907491886527135518336553687029662979724407691983997089033701615514331762120609656234143999028999950101951144144681260250717776967505354520715208541520301234188818600514867636519597085512881185401860667471331747359359043548352623220477820007217884456495916933652850073408104059831952807663357751951743119124538415081488903683869664017637660040495981632177176292702679368685248855795114739437101539325790249217977012613183115173595430197614560076311375792284953349781165449727151519505650139227552026300297587897272926073277186325133555277186921943651546414242389670628622400200555378184176263618498288846390518640854258784062929148008481794046348264416218227481624369796416232741131883520457999201776025897082547987519239083133739899835701054239252918551612848578087081841576602352565449720010061128865696100443145569694578882442924401144051448953838432287996394134937347178569765776194548656269321975565833721672962258922176651659550911575315828787062695287916935909343825982833704848790394824670504366971028686285766854144367717556619162707923733889222134409622350197706485024256373282585353282110088449058985062790676158591234175419922937688520765580387259895730295997490354189890028796344991628002195229100155845768681267153666160866709707886296910199110451594819561563931020837864797821623813841911791480930848761954408742157565194877203158625089568882504551049591620012633333182518634941169755330888695605448608203971677975089941742320569480096218989347970447241540802557267040613389666298875385083506433533946777859707065649218291601128323445103557048371908727953084178367118814671973680859181470984459982719071075999795246197674127983699906732053894406587321382302856679266361651628602303055976167017213484454389295467971165121834202650161635455272360235615092545617185243191652646471214236510434372589099982893849715515689315417813822874317111340517418696923161988234587753674862445811108843259672792621910697441920233018496303589368101837928403842153154750618221000493068734240798702264448569570542278227208010612928368063830172932535771609306095387559718218020327136150682770714005948958738011057340153513799591161435465065362838915624096061085989192617809271773945751127883307078300205105856781434735116490887018806217409662511045943177167592458257198141459761007035595639535948821483833944534364449152756462063061792119268676536727076175315357548231429728234566123593964270567670625054857320996572604231163859026117211098419870854467199325592867858298649604690437478729243122558439249628719821247132624561571842557011756485577654960357397778450366119019887384009697720028994320098719974828099974880855413809520908002716395196744395906349682726712378227590289538180645853790661415838553864432015309763296979199646470107932931204654137770176491536567212648039282594259850049235594906297674050844605770714116961930656123405898595598228737858192935796232008759530364776830846607958088479645426209304651543757149280848664276385184254987727506369778378758986915198188930269336665752138882274649917761539201946126511332854548635549111103295041634416805215196881490002002795551592318669565677922178514121528405924298463859481985369628317466403230336339538345363529873974609290620852083366000696677433780608391498307882961480621234923262471024655277302717728747825791452205978792272089797419000413703906196494536270891685348113294271301892528006525132717567643633015416865547017625324994545656963453689293641278237777486431455441540913190197311315896636409018238948836206161148802855438408118401065451569823078082019806583260478587520712912691344116992939054516120820977455837909178475155505047756263513396494716768813646679260514898168263170991736626838034629777474335220068667254731190446092160309123585623336814240287822061467624388037506817658052661089406086689384048185276969636038285376837975936930944352000933381604154281344805753782668974952533077439404029272565299463679009327343970034725029197138644920893039758229556612873731054719433824909050314689392393902166241109971467196917430687719502913622735657812099668272371757415437972131618007343964376721014800107582334066478534332335393262389981314260947046126362915567277609463483138102590821162263453405373421767602568472644620410132985870889136995641497632490604994335193091095251950111289045030966592263916790820514494338140482634156750271290331836772685600785444689312297481776704800140159481414473656002107228902809400248659622025745624502731419724545958087097740738077006133887041691817723856285263705669131273545702388170631288181018220465810036812028027489960312479041461640608192666530133464167007847628439250521908839813244078034361292424778879619149659206665842845110613908859581500560365400626665463902030532659092293775466121642558453587439236802711698917550659465534278026057340610453479608126683582181141394523119382579792667406104107651737435858851994149632684875100619147580602635836724676055032875819014264700325570224378023813359431581837842481381369343292494819290609321136848322023036728752211437214715584167867477452195427546856908303961464418921600524383412532548115434488113649721177065567623824138030697955007438890984561687708305541033025960159968069452445336348694652162553423377246238287771388779263297733445281037401125195909789005830477584831107414117356670724914346534664617428887998356392100436569552081782196992608492635804561704910416114653808868488128219296083883463470359427726114537914147289131945123030454005176021313502979372490442856880090812879571887033913272278518197264279861232794579176752531149676001757214681125247332285761855941096872968368044311929058711888178374625525278212697971913428175611244430847101288629788114293515201304372647273311948273292194693160081232333132895282275125319470296010764508044586323059563118811254822005977897213544490860816777006704369448138548682623112544731832537123574835932733828622154130084265519473361555060063670575442643029969303259370121042093187858014994395559661932987593188905314878988759292045750742767531592557059337155531459737547258661863769990902449696767805913819127291476260925405495445101439565587341015193924642537890728893629922307874396876834962443203878282411356257397606618203138299767349872271407150900893488503761983580500269051182716321556270519020224774411980637840337884947047063388065337621943958124724740091425589992619790722781862112162561968093119684464696283330122796506995444474387244335991499443273828772052874821453843403239599738600204591352433966339863294178363196530421929745498754392140193512611115202688819566086964746035115077401953492537047991852911226389395970033669398427582710547886893839234312495020959216078729676184430822493682755570812311090644843135660922556728427986194146478223131038083529851419688100774783590627080151296169716744574474840800149181860087677222787465671612702614234546753822726883171343450788785408436038617629533915297184321063745004697084299380491035695726509634205939851459148682415947916459959893610017647940428129282040341287605473481687901496876416706939122942996456715004247046673028586942102386892398766227076265163496625637456694755771602561640885061523810504898619861569581004391569399498456176499760967775106624386428591959695064852277068866233677883569873437953572375386794401454537087236993829058504429539131478940656993508200650138128535689508293583517259714776217425013025046900053282181768661462669221001280982373460088551090788540183824011335571544077469076895544459100671455824662993479695507440977244383853338181595935214068349470288422746399644956018628012519439666804872066368175178350982035354476454229253440216796914566236939457255738105837598006176571903504033732271298065541893728373900690044532112361585537727641546012864231535300866206812379687002397181237258811301474617519863945017285223742946983433391435492049841683349975008834337877088845571016602140803077135709613097061123011712773231417252642792231947381772760696374298827983582947130631770326412884021947577950105575754148904358653991513988635979500473756900012297561663411854622450386957463468511174843031936086131416044379077254664333361086793913805720099567674044497813557910448025476314858602712460678525393257915798026737952661165911236683394876117927960591308725982273840487990368683158200751999107824314958978738182185306760613107075297357894432527774144846099929761527311859503305572920670619593689218707428695724779293597282687178997628070372810501536779906938912899496788972399458508374244958668779911575127649907359406954377755885710997538979290915800128952069678887780295933638236916770398224815025261292448814997478581146012418217904422748358292960363934321624660985011629946577272640183257439786025425365246087989911223498544415661157805442762824379798217809199600619618840696476245617128317588439312028571868434143814020423079480519727879245462765460404113693995308501257666960808045895025696944672045053844618405031132391152116283136477562520495807811176153593059269773053631971682130313679721671480352515066748415350552553984754987005679548902334727880482849328487421455035246192527295479608256562411193710180188846559470308923626707664362344323933564250402284454344422358957433082868654996716736058898972402376051035477270831639350693747530899908434863080028629672274937393218306397883449351578197151746699688223993984771939365303758835059570921999743305215924450057946886560295311672638290648204938637744730705939680592496873355731053726424245962497253971663196540734244478126479413820770471563786820623409293668324341698337571080257660436298830782247575115189965346442336603487984082559304093331262299555276516930863596373638744324037375285759781601376158018962596744607140092421456305457270005700565683935423359252750489797241236482178081549813762615345804220996936227402207906773482293832650440564590948514926969814943994314750208185897871652620752080776004110852833773629089347002827787033573293184330365944398095222783996531802681457718785384088976674344425166019016370953966600679981105063615682354462843635866312006116829099343733857843805161945210890552451594610335578382468054124445187905476722936801542813070197051293608080183557987939925728010154236451054453060180481308925455789673297683271025089011119691548454697518242745079089213110151516201472102553913138225514784051936254091570105863592972025929130552159073873452055388861843365804826491382530695632413823656691278038643773255684732417245004938252067420224305311085923846090986036710750095663102125120680789490206264700296292212465449756729371944337905789815351514417145823193432642609440731275486613124784301610465376543539391421731281139652916271784292796987524069819473349305280757109978962207828154675649321759403298980828538369824912945580190047068595462524743732348459020713122370886644816880531997966878343911412191461225182448315962668348964646833931539328522112947052855275540732594504553305360940023232904709536304415188866855184272589107406401800289566436427675332503559709600553735576209031096654516576023798935989190256505255153061689316933178975918010418755144692451232794530347956168295447731835030855047382364093582758997669672035150062141421999039884160169321084026854180550637649129777619612960577122907680306611621801018149893951658709203874737734742668074131767915015178619189007507984131272978660924099888471278556548185571975296801292750949099322919975665247648459667982081862512984667035355585425220196556734348009185710935092604503621458107653349204580829608769735111195861195278780260420069474309633598247200035518555984095172249454344884835216624624964665842268954470120241561250227661344466106032531304525665821121348742856757549897840156087053001061515077106003190473485610747938013480185991860195748126533368111020701617895975181500567181169768654079883823669592680056645571089438282268720346996609429818868239433550878049011587327531876874264983552146635700257623160562112419346279461458671207477133076003841604478816888119135326008051983973282754923196288179472601987492062894729427626976764216739517721408218945044370522499786404749701838048245055400898577503399440536737706551141920455489550756337606481440430140456980970460554250769122066785486306083776137434273285922298562012973892169240293146797577176870863966915255622057835918528376669242810085549527685158524064579926459388020408277803054159335603753011340358500061983608845169078556798181366358494239794862050352209753878957072759810794579878399455077512220387973270650705833216480749957768772132623925789833297084085904892676013948357905009523190510023947905185929380929421552027218129466131407672669610363363268814087916504515981417458396645052618574412864347641878022493920180944325553226063357253600375661531046428039873091109937305505923405281080650628960429969857793411541698403526266017587529848328298175314244686518249311064096519234858646032069296132069423748415650545780368226169145126389051954330390464892149239285934042364824899988404258008103560087820014550820959036158058917862062697699870428955625317130937354275924513333481086564533075883159600045833070974054805269669698054613344829250894059568288397438998736022146926225031611781972865885672412466863849977627490855630991452614819022430757417543280550148972438667901430875523556557854006272692277773981545319802639229317833002988508632109206447852231373203657749346244363589369460144324984974430257150639909451279388051628317674778789145340494641186472105162213683007591609249436726205619909797126299759599546810548079552532088977552423711700695868866182902772907994071471081095502467004424292552890881663331239827530307588704068678720177402754855769671427858749757715049597970338707970916881524763550598612060513402731977231041514430668896563748972847353874200674255986644677662774451257524236512763417760314975539850121825300734711680070702764096611274952201577236120313104141210512067161771881074774272352802060685550604151596675058287936377367936688352916889360285540697153760168059101981750618378341993628300843659682736161786841508343394149262055949697095423297025209476071670221290577261766311984403008099066344891248396581098992689872290040463875270641962155926397609635698099007654728853276448377803823644604622036252753531296662905689869554432687298419933043525050391298444799000202409672570061553495289452957790751276483886016627322218133194982488030153822729253274489919364905585899650144066318168437496307050626346609126658587780734266223474238997500207397720105797296543652953435605500275607877569244091511282347334233487641508009312285142526328631481956451409403995287605364289287368504357643049913989589159535962531338684139324277803501636643041437298798990372433671909436404980474882736716241953819364988912457034816682375111672464676285874666217401149467957514565678856140587417118629744696539800454467814181630262475910318751150544662419921664192617544571950374079324116900560237385876643910580692229238015946785602984872009546462730924614261974032290647832292420114738613113821417727970365887539793824193397727044029352170843401988397818248531052566315124799093438929423705808065033996921910838152853509995944760964080218851502275236610239404728081629211428067039933713010136124881967199452297217146134226400656184730972683512627607363595594937314018436040392293788668730329912656724750339744159174353804640008044922498518585864604831440448536545402138243839577253606026165631969002614481896848240853777417185208638965769024446199900318329546761168927402570122480785622680742319676385306883702511838817334125023635471603594880677158117153406987174364803052368540873839858449692384845345489827316580442183317414439247709847802116459233919355552498082401517723556156672871310109738881659307287908560995043937077796908204854859812145568574355734774262902116888340018479902564670105968595070540006240095747256918455074416651916777243011632182114951034044912259380390791986803910628601920186788298359260460106968542755680871052650121655941140912364030206129320732509254037374845872694938134647938044715535333942468963857900798067719115302468573968945937794383013384555074361715631690554259513068590509045715721734680152940623778025758172284006207176916210203606458804066640692958078446609131975914762131114939853422202684077314065900104714302797745717564030818811768968878191760425063410967635989907792761307076399003724016332945569704684919657704515096153098707527331201658774459102576369839185925653019437045920681669489568817145998657239513605547947041369091211967337261604277514998478838304553925714522105394429351251176000214263588840737881031542002934852191292182441455369594342906614012086664499277972395315807574700558529317099562507801829009894123228325901215721155167357223493130406559090035424397049435152340522019986017908164925195120191749062348559225273029421076967940410411945762819032554663011809867655378905383061749947140697215956895711312415740572353996277746944775514819540942014516011282795173775504010797122799737587348503422958935699854734490411270092319453196380141759662127801962537264582722566585470264243366095949083008255540337011172546746825059594932864046006554134263581115508903437965923210646925923395807332988318019202418167899772170596869662246979197319297788333470957206425692835875114271555277246373563727475672375819639295585461247516994743845343184808439875570126824937757580901633284021684213827003868303568547002758715752604676873173117819909012669812663982207502782242453161610110979678969026741307434451575698071215001916912682355408598412771797962778743384873351482016691954170645893030690325339385537085512261739490403734380828064662553183248266631919553541976134087626858164215403488050217845675889350322344727029722438373405174413543912459810564936045112828397635629750020534522785191121969628583016482408834802401501543542262816091929699151482768010188723689105558848034740102094409268485172830015634226175493791167038366129665436877317454437892136835928530167309502957494337015642577304209229715983166968713248061925860191683067455202968023770846019145303292232363853641146884891906556040673249067549395516798100328523619212797843633675916230824652812395498662357224743463064140487800503870148046638811805278486342260440122583283619238241728070250898764446571565641994478893088010248193235781710294578260040185197749661970922320108093808628649692153288516326791248806683290423697806172800508670146652383677468259161554660935491871377882299587002842599663124049621274027705233485456164205904161595516660040442580075539403299854662367166971527468087610926991275686613884585198283536403965959296252260321354332644983307032563108261259858532784358261721965825267086996601608557015888936872923436491958080045326542747394963703128148030875902501683275972112824774752112496943077224265255890093238802623765453398354172682442090362279081246323139068466792288760804783650278113352127697615146238654336703995109781389423661930757840099029112587137743369974076532896755569871898137923165393314336099042564403118911938572420854669682832151516929056983715193029954978475119604718481135056973122495064609469325037916118052286860414066789561907355841073288257986993867888958417487549576370025945784438268776598302524138186099676181487339758659491854254480369120543848208172284790340353974980816909854112020801051122302444045686082480789148316065908807601715484918926320723899075090173249804721256336325605792932935128372602378032976023642804171673042318233325182992231395402370743764787101509272654319764922708434081005699254941335146416033046396034738259132566492708212937091380203592942961205689188720496298554054726663847315497800610326497838587544562218610585791171422480734671125945618461136930220692928572621275772749251121042445799774332181939516670554014578888559770228391626241907035122107939569259954863234549338081839666767190478672923238604987759479620242238685132340371945892974292355050450620850818080237316779201397185288010471372307360487310548880081913841220361847570846482429556282461379778482084566655603562930064741521778005754542114052761956022241335810144547614561225487881141374582199585148613857232224316607679970816677241110959836026079612733852759534877898366592812485587905431889276247054506632991951790911588651402602150981613299651701508020262108603332445633889043373793397509906846694352462125553362913179821356933208849907608455388768448015710825612488883758898492756398601615705371862706477048071804881773782858418742407412056623931105632876424918161740220973791903190995577441754274502299149829194897816268478404051288697902159567579219216622165287235974682308692683655323367145369181074842850878478524115727856898682740857505356182432317346197014273218126598200906080206934310094742379137453899182776281060099328839552796925974877834784535266072309182880764563961961566460222784861962592175889924786534750562438294599500082936287631570938400182083019379308094311047343211216009931541289035035987040005774229696808347403485058690419390495448109532970621686267710599843426477412315460199109949173344506252098698697848513927172773931206948709696727724758963347733397128734261943562032561283289389278780103259223027569226810169399205685604594120364776355813313061197939322073881140198140600410167647668590051511696998918493190614200646448795288471397027236672361373286188910440423270594540161093325976379979652783117588272618779463192736451380165351622086042820141043554022738788691586622145207687884354931774804071287519630064685281719603677778032137164940867047718412824189874127660067667221506860538135222293440108828201740398739287715536313645591633623009120453436020961555683800847390857330452682328213421167077028866510857822594388806125848459315539183558437505568179835099387398641627572287664856061701624078198388808820309637923335939219807161425943343948214989545155415148660014183579775992192570651043988031480324762900684828759020993558317819112938839036175599584846195803493997454813845494580813268531139434514326146516166034086857502452939505454170234879599130295438947523694017563899055032368874965085086497556093984100199667688459148684930954196941030935873261360856608953081937046575101475182700507851829108036330982334625623695364569021820858604266283927799174770354734982866185098508647039831755457733719429425943716058305633140232234017140212903020547593073069388301121265759964322941898717103408849799449301858587280304596204820475705159850000485592108230378841513165093845454954781148294982126243096363958461461963848494585280614890462970527348351232545045829295744564231045680967643131903550239226313121890189915545895635588887670516595372101186443522657329547109432806358875259087407676409595660703078083818174593083463445132651053137854296833197656671334942364346903410943588129251805133088388209216961131498825939088721275914884935656226361738897394160357928655740479078132828410934980691299774269921201179887128326536798815788569884772567657271856012544938460389551588224103273518835466924761089319988458292614418894824418473501577228283000619725180464790571854289473629119600093738285027256358478349064714067530975001734502581043891765236301752340091185720612885333645467472098436146489320196394474473703907860494114579178969852564547762131881143017960069133775648163189757577760343411579218708867602156303754246502188165231525633106138306865906311971506007624841156384093379304776028045383813207073408723822982699476232439871282280245694001925886532608621429795207743580408373288152493183231259789950200733038969322054625120734090709884304902728137590117396959672881061898360115828037715414941754134092200306578002328306981367281499637800754313442689461362213517906185064606275967357003138063385401878506610587420236701973652425622610264798190685736972758232236066838224449450444810142081810423139624874369443071519188861701869447695279056872723646885849567993145952865101646550125968915784252459614653698811186818586692631135425197337629232124371881002479086883847147662637203651612092962590491922931406963695540288761533379168970522798225937868038528871468146946038410673733367762111057761487461815627277338518465704148761786401054442918841576204720454838449069850450961649711532714329890055109064645857543759316398567366388226113810344197248648558434121170973258238947285190118690770189639382767263980632795505550648856450698026430827880099693583233598496480939396842728648332393450588763382676180535732318509312481206500139236592684430607843714586914839517179217283318391669745694838992214617264270852731379347709073862548249370037613733660579151749734089278074388852455933207058321960175476109862290019582038589549784087938135230354625537782145972232803284266748002678416259502025743116420483622921735741443381259334944642178269426554235267142793783298544485565516717655530615652867228564011896836439409336502026819656912501294049925487435458523231306680759755757078599915066092640163233002344288183430827734062158778346966540034069613485390395638417433207584847636706876898098107593911438249101757302687821772547565954507895693477147380343434084418624877053677223929469348759147890799293282961345702242384764014773208782372601820854854163505555300100581450601482063376375212407732688732148265090612847186173395929141530919825495734388369738411961766084824440021208567998831634020248842396308031971626873200007781360867616522507384321702644584558581141129468601206017874244328759920820404633066806342634395241793121442868478810721706332454427077579948149851161435642264893478600903859048461397341575967520889382121838836084325300518521498905262976738186900920722150746439597016248614418362651065197646426771743972464063748244849236637346639557106941840673021960415809284320817590299901964956068903818692952591915384362495090532907673217097547639247550394115372655427425919397602715272669024451928990006876811977517427137112156141152121262326999287717036771635613237254449455069989564892505458168390095229050663560983425465479475416149320220807996812140337705654288539756124665552331624737801877293411250645001959034432388284056499012554154513060465290893635790247762720925744764134932997206357012530758519776217059133681830461796384053305855130706001463404567693228219222241740259562411291413611721156150653388396397648185235672750669151382589178764525364421692210304785783448238083013069916703916516739988455370041411369741625593274664389412921650608968192357513283821928817347281800717613071136054475684403907992195188853011836996679588559159931502748810512516428238014938825282003023278892952059063454269500361289765737752091126049883941540540833004891467541263414356064675225161163803886634486591549148854450001466354573731518300371249364593040383321490191851868835589996989399365368178531154976025003244717478675291606244700961596689380979281968813878793211785318222025573884603674702224914459671504732462904189316457358264351363624913321032887690827363677310181017220268158933055856989813720372408339541546616091439425666187648422579285260263924636312445730289948127493210077006770569998074855671267996280197541550639596267065810443834436824049248011526305812257641231561719036782133509090088540552686291314639762191049515723697293308206780404277308956295494437646498809137296529830240167954172745983923125384449206431555465042765027043973329236095263735795338667500731420133799125126392397512250432891238669685011132606934424303533947435429401220884675106257254789049703090204592266050228057264250882903422658855473871722275973095693446235268737243218282488611891269988314196116437812496309663234222354855169181183461114845152737601269750290797161565249210088517408936287167619836906529405165913106740297677284650325050232225373349401643351914925164865718909911379034257938194387098280906238307035654698106029089906943474161355886546166426883254037822715417047330031307046057298088851702134184410467427018485049334439768072881332575682387833555702292729576606857893657246497579995282475372732248322776879603207349255963395378898678625449439174595917782157801816384639996227056502772525070546049148374525747828765376243029300260368169638313590975607332007023258275508473391791179105157496887231967594745640662795781827921566490116834124006583045112586810283430558061269264652632046516373723715308446140906704432735555202124778478844750552069011940467778697886635279435156621129857262487028735804082012798719425893166026440639571241380925335106728102824964728230597680645322427250742472669343874598148176608039062223431636946852994133108640956332666192182220296188850840203169566231014282354612585410371012400366995789214690782321845807218625946573037197560448482524728319761161181913123651323612711040462622903953616082088718801981407243778463049289691048455026388061667719725838952183751108755720337134218564244055021163309241525133191599349641352038544315928200210618083986873891571212160098801938708967967925858715186787739705226541134688828794513374561304439063473625812080927321498076761104323411982417461244865976811519950852137764425332689622741689011621159783030555422487522744644526726050684261511830112429026600618389910632597583008931388297121220626965872014018816303452025169204921227037268985921285605358004746329342155149832461449045704145951071604184037475627583377792478205814927747324640971591957442846240761262853757415476093364592669327205519262993024987050740439364713725190226480134920358115034022731826716497548827313944267792319486411143860105321867865532810454305140231459938830313464689901318320560783748704233433174729191937962484983294706281310175860638213714300828499010688561243935508150842514084429133836600795548509324802944084462722634628111124947484626274846840428031598798104282839488912064750973880954439590757666449298888077263423459005018012718279136044662339212485606044869897270744959219518327075572923562924056326967856178762553440451758477938637878649327167644164177362872850843237135481727208475033283557560070977228531596613480333838838814468561208712670548764657079343771273706150078548090366284013521277375236660885222411898685059566290210540830833780957653578989718710303336775257991782954825776261394307166711394603393478897500099654434279069238018554387399264476418782058561877526282343807361038179836427272985736583612665301734836566367838114153387973700888011610096228292188156869156443116173653729567995610121378100534278745910286019052861035751559375820077955846714028874381330064154411179871592779650441410766807561962184066980363697455686128942613641004947931713161863543560298906493935099981167069392537373912038524468614369489320838931024189123356996549731785661259641575639128786123749445870987184615398068488290277438197107217236757916157811944674210851919594703493920854198408064092513309140880493634216562237590171288666519568344357630890437306181454055253695538522114393294057210384057434448353697876786571013597997787360541393198178213107550864892322733114332610825196767380150361214972752443032447097736801933604177330848692803128046558938122483532614441769090549266867453184968689423058087474841626155304111174441639903213890143107553296117241482980124570096055406534550770599624775199887457110990269620780896644852635995597300055066435150054145956542973214874004996825431644145677051312002625832473656828064675032522115866330806342258314787288623546806486152366475903798565130808179961607171974330996581931644222714522756707448907634530868155454830782781077341073187829947028839497754352761443375979626424498412045530852414618052394192582230688159172126887326778206174227215677924041268016173299949924652639571522819759660628391159712946763394744537624502574961788524018333842341472553140034704485848460627795937247039877390569542459450307234459947613493751493038444084202902186083194011969419736614359205920690095857516013941424924631243762682752285006388362100689335508872048309523034312208446515984588492755833051816196705489461772185210568295768360278210837825419581735449623114121769063096703874526142526731139578340418550301092479106560857345370835137749876470998898422491397686674352777898043968550967268605343596350998823770900100987057769258427335760969030982971364013471571489446191953949643186385647334979534990883725193623370646496238028712161236499273207661833135759661692458729685481585384996536976416387669357332620042192871416813217438409231155036733452543311567880603445212323419545758152118393720869232738988511987706428890062977605188894820821613855141159796993987519131408428112005421685517021824200988123669794025633868685101902593994484444034625059634932396029762351957535439612663968075875370318184299441037963008534577619407098460406194805607043967645264893328559655052394056481214682021282147221036328708339137305862834438391022377134912160201006987080390584159972993925137815158659399678754852865595104116051987271377439307061142635944913043677502038555038411599548237997879392479577226877312935263122723933409100066595940137516078236991474369900263379102854825879361719103254484030347896388745952798541969188898890863440089119652965801451780111995083729924898840528307797399180380185482418571923428225266314345571241106180726674372414826490156774428796883788700631925367712292455547001711471610427427414421945835015496905821545339230023604940913950359695183064113468471835938078160469562509786323079521376178417010347129966401952873461148578231054284216240014247422170531499163868039691533483698705352781576909115758101178367137030956289349641176130198802773218086990531634814018832681650165129723058514577781791908289590615453185648309036783133127361908133251444260815444367466565958686185873448391179443274593791146615577856689870096911655565749987685419937888143728282183583084466072586038017079229354888248038267077007280323002287636738749922861998104206967953130051698494791300848801291972125340673423523469232775610902115214964935170672447956739913748944656586973950718532769087837484438268475065492211545899856953739889929527883555821009593195624849108314302501781227398158851049492350310587002441957330621185839504740006515898974612825562653235475271543560409852243447152525765384747063073732514070258451367926885847113216610765404465478577541872623399627883756314394806954793568557133161726206022793326010251559665816255293682121961678001708752130089796604662123536313616926266275142850278399602148178519366187518848608351372418164829435557955708189319927947924226343896288692098385758238827859458166741955869915309325786450343272056109109745166363058043252537714297116607078290399770056271081978106496454929410006274249671125253662458714480001768799539489718770913708525946298619732655060800392550780251684575492028506851268318698364789452591442256586906171938562076486082206726087270435826895167701529242132827722691946049243851484666702064985821766905453783295516492804825342494687640233411742200212197792277127969895995686884128264793486334342763374491742580008843943799269826558755145552478641031739704967983945043299294091449346659176052023079644012021724736412344728450932752432920772996983362189141666971418578680999650765088296435857779522736677113355254187027334175350320387857786569915403755851590851023594793707650726189702576770909980898619412816632874244972575666479921322348619107648045394655056464954487027787235672352748887984226892030764681984091637380334814995034229829138596177458397122210232485494259799271896178244600631010628236140851302532458496298864986528652547983127776088540780241035171829820699686754618378292178427859740551298742806594755641054891463039619640329496948136062568798847317573556732184649588061863092997823983678192024767816423593154237473962276690800317534694322782294204235776390471707226226301205668471134011454481588097852263232199385327173858991077295926685124533777882106988651816529971308774545224983989481975667689182040658999609948335484494864668729872171796242360221637866817624169996103264891454118061216771609171687601365157162574992825480965258135114888532773278130722591780290670963484284726406684990893016526491928668189778537959014226915973437115929855761113029778092951184966052368210198401476566657352621195723203781002931353237342684099965093980796196086710876910732820466617408462041329474395016013373077801861933732837377946224219941708796699260071702986029322935961040185576140835850905919472009283437119001973253655314462491682655522125762743910031011747442675463484376199282600082485290145303789963256633645185786131505985651391414071838013771971355090813839983172677000015554537965990342373797580366732854037827713156858756749186589703723822625580368539696593628079388313561694755197623172541289221329028796468621692234809225843314498304041098570931406670139271956462814127747532223409594460570785291093678198475511996905955857732997972664600912296612798985141952096871403289509734983285995309452213159338375924141177162803319637299602214969568691618658453439877505316634657066250836423777049390982646149144726898952231501119635917251935975797021558201564789828858352918220323781075467261226508036002726289210150537276027598043521220962842192142386661598405670556051252221908158696695347927805938888017034349568139277452346218381658756473478133436893846102425644818490712116533642106246047111911720852151915055922444456591839341639474162772978287781068250575629733311967469650709522363844835612179775902813431675438810466304963086956563239127910587458319204699455484921369393107499656071123906684644281380007849359211830632782687840381598855832202455995270855639233920935931408209910689719135575576950893008608817479517189391085987977154317344147463779883436935235904706542674451517831902288898658908760980377370113163369233986904158823339474810163304454068911053146912867561877492452651624732549538258495988538826759953287015388780970862666657078956373665533658855717969472748038284201649009149766187611792058420050487945496478010661460654247018505656654973897810464592635105265863302338442923189655690184898478700932818024622538669405523193094993520486471948209253094588801239259258036088603211689672384580459606326014268564907669669379920732920626278782588692142728982910455126093330036046993147489584160105189103303663272686087803063819014793007885678386046842887795153223949845656722897838279804962872599682318260408239964300968442580927526131244071096553864561785160208792144425255670026263461688182443724502199446708096094097389816193791227862316049229666322455030099023421127130374702634298821179396958468096230753807018396199520868889947970467248577913793386086939368181526871167816292927295764185260832669650042419024235917577076037727493329795393055580442531842671769753104513861732045695510369002265173405643945985615398985614338783080800496114657630144669689049000669857350873107791536209145498067049274776783566781735515669465119422320912162667098918212553675275775770514033265385712545616663671087318532658149827849855928400488254430177040924166323761112432795441421275906444216574680697966793045908527500755591780180460695454319721605201597807014295713529756685760403544296097228943998216550052687288180519135122543924903049562726332043231219119101539832311430977862796913250555118416585884278757176575741870529669469039937050605900610428754572030605237575027241829270316275285967040930385007250430100623561032553217864723445360911486296622436417435479806980400479153948256730720695745233358140427117756180583148412550199889308478178616848253286411224625309844189449754415772046192253623658601512002375243281545493271732065419706551474216999360320027809398011244977076332234064588121068662818179794964815270902636613265963490882241200660641527453633855545141818925166719668782155605465092876492960745289005095270863785349847908096132319417389404726703119227752768218438047139283886468379919047660648637677735259163162601095235050772764634214159577735154235068094779199841434063961142982247706562643326651684485060676484765290198365850222361222239198293939679126430843495367017588831171084735593519173036902178477713952515709767806973918334577780371007084725418981564207061014350569233776163873104362673092265135385273909052716411429754020957368607580844868503716336562130151784358917531608142563849248395822107546157151946210687459441200877061242081338576425184314109927395998503585413669109165061963846927549040514676464285782702376477195212223712263094285346894404796711677804198702608830467279414365826846701958671489445384330960664183570501854416399656551994300611144936424065159851384552015632386744308086283984883851150302925388282922668314718058821161429544607441222916307139320950605919899316336990328327812760065927090968400142659310760709304612772582363396321345814067908485013811308169846051252992003683842074859284495199644536113341467468176467896502989945754862634196653341806618032123646601654806045614644504642700780854397817974805754880098379867551335092777936830811285637504268459336606488247548233269666089895729871841722705109427910176431457012844929839477166770833623623442094323533125285249406007007547665865133988664572158170483188056040077050617850801132943488854281829922593918436456976730822146517037455279695598228707174079516088055971987054298662341016474580740370430533955755245230555932362246723940544454416209716158524331178733057530157700382892265946060689702414181443173949542609691911983183754391181918794007685274796648917832598582200906888096963571761278104990332589767882423623191552574134813883621326720706067035817357816091881647671201392605250173433670600950747694432320121414815791696733564398580852075784637425267305581175146690635650387200789345798112276331928310694915707912467817921675080561868581787336196346433363021460627706736330726473637598156233630583960307603581551029352923787181597199923263489755454546684413753703044111477872181658906751522485727514581728461277835136268173219807405398678850387187145531763310958560102405430280027302245909710466505229219391983172584963691083213481286024527896551802138588764761516887920097283900774275023663964256301748922837480306074840399096293151029610893123531877017755519420817587302189780294313439910678026979014519415752191086446829839893703602812166623765206446009650678866818668809496593048833395591467940741839329305707466347133867055613252646503319841932633123208487635075255159348648099353914859912310239441973514487560052594202809422244296426207545941838483414299266560797705980276055862791550311151908259457720285164210796484574404846948564188380648626837964087277253456899151893892463027979126317871334757516608194479677764259496176394558228347026747420864679998072470062292966487105533281077269900865959025519724802936868287961937417174105688135451821703587336149652298021267719178318304150532914116598403860980106848647433902658726180558832987292688022398680218392427939785601953203341301009972266111399244869651863975609095935997672386945897639528480838107288973232710478955422702658784660626704784689421030163383293633256300756291687774071646566240471046435145576715161423218917759646970914120049464287677514963667619696250752450491441194208775432072442933868088137544437350537040962374224838307026631847677179712594413287673931849931933524321379755578428205520740909514207668964460006217739888053094600033620011929157801286920234220492796386398666914142844534745821705927703123553578345710821006046181999801615666213125800835150975406930588495852524468319316438682882114573525703834831434562112094959414311038976556885845809050668057661908904119329059397000929398586898274761998041065604218065795505944975793952563321129204086600200274602030213879571802696665093271152788423347834653479315374334446489877673295696438120256359553921736464258203738585447225770523576281833653759014398365435877344355162248587095870589996941929062815642589576056019903413840856752808131760082989506482787646328161340205072661181649428695798034516542177686625744702904494120105425117495068564819651656197740697229166137936646595727243669519322811315229836185157785471703440447224169427396352930845963831858009186940126525183185516948535300251155613306243261305151037662176013066476850291512207659323241404409253527443826102896415309982246831091045408295692631612181181954548199984877018080324175547650875332160780971188748518083039674536711096529817992792031076554260230602286719916400200024550018053056010208144144669556892756520302885747183459743635436039435488437047326115072120715589182266344745380143867964318298555652828842145074075593575346897203806057625915465673304221443761554315883146795063692379337014865939605364917575973892448581895743483648299153496900856694912791231586178960231649535109545518932226676675106474162242868956291796430202802582063457608155930691741614849840278099254257095883871608141380400481783986503035935645873013404431590566139025657559116837597663149447403950686600988315942131837075418252473754952763398483452315785638758350866891253531251076827190456411209389231814435568285918680080301666199736772480761813807468748630906432799767108532084209743491951635772546083090875698601739991800427135621398812118552588327853293308310862326060377484584274093029809073514987252455165982543297252013934369865743392105004434066572694819426443695610693274283417722875383901137292791651020632373576925840757854268762894125428950253373696175026784105129456322180204186452302823590803604315005295477754985264586484400573665234175374476929299012104475274977068973292500047606675699777434702453835249697037108433266671996454752690788647733981118460761130529877227353416338109475531121681764540350273379756365139153204938741326394635439264392227096157904094744448552505323654192119443338480278876350286708539142099496532641597565338662197692671302849708864799341844601705842225548181948013405439978641667304014559536220600340148950462953212870695207165222756482998851241912014580054223128400617746875225710047359762281864830530208340991461182601738973052724550986642786800882498027136424162823012775966627378029057013816165215718810026936594798234631092904532386117759672720756518529257376871689433118182535240490430765005179684077734179735667366326022041382510147887115997143405568021003230993446923652262627500486833161394648963252682204863627010389030479602849741398538821624934758487713073691239778640436114734399767027398960060920307683486125388285109248369665236400729372439902926422119109036232902031549825542309445874454553688096843653655846752492604877477281144997586888534375189336858496852939293283600055667442569624062454875848485066433035627645521598983817885834211637403175738941329007463279866351142843206172164896326551562087374114645686536227917525346382784890871079941796931084642571419556842174385352649645991677110935633377889520439848110733199326334705705640731459379386742064160649616826017163367802399488084038107695091926048170915972985852477930447887319904031176358800043458017214694684940525409473847257285982147969536827030730551226791416361349593745524876069161795190542107283175785112010856872751834084858183068871066403293390330768515768980595562493995374726761260142235667615466151228746604775134861906595552943124288201672666625065650163453119684697479241317703863935745913520145924568155075903361960347617113964535553654489268018179398353838878159536509445735177816327730618950072475839376478259750454695539333957602532329251319683774624284009419771672141166165071814977977188449251347801338082673617403241602161129153007710898224264213576093746204322314511112938229327068723192928755450210142209564623769568305061371290702888120300608606737454363649946863325138138329207025589248026390095455628243902456452069112679112461038766972197026544673794326975751634896724732221837445192797581608498314195901423260499320857754908490271591450275242206487247188071722498178127939145082972617761366600391411322924507282980266413763178076966441291704788947370596359837422242920446870441574085626799170130832183026936574251619882682832073830801852826049501686661131148577324665367875764980186292249271735242893785432663374247574553468439741207116171990040440701224585635374226728125813240067511580265821766491669624250939194245885900960276411442356825030339075244595203625372949436693222979285562625962250703837509074961780544251731141072871411300147039568711050702789365427543685317178065617173443008502152641110913541635263889548136559001324573296139879271573443023828546627311371349368862439299569050887171296361995683923222032089367208631509897452966224247346700172569589262046367143603030061607229612631306097220294695488383414037240506406786099005856559554207304379782640542339247570584288099631690525408990620282807287657926631171008789236859083207599555250023306650609967958714267566961186274801183794410042056579354575773580425883042287506675680681793662114523883015422256453125994549050619691761656172071126310029949140285773918786686267673405498639795358934753079734416883493228715218973096945547649529886614257759961558709051283127512469226384962599184911083410577753668310004387973805200233904246128965073387260447406290744722103085693861079530712442336762566651671033715409790495321795985296963085236243326112987735776236703329361446000047931125163228274749833571136734320045360152362980463457280096658161093165890825896569724792055323062577502273627232668266555137231032676955802652708660950062152461582684306162418392057263872380661062230871096965529540702374395672975188797351372872123193075901062861307293031823727720166095178911594654670012824756593158912752998163878176191306703290661101897122749666544489862980587974057252207386931322021712611624027832265818489316649721800073707197746805665229615885219999908549837044898810344374043019711836215864748393442381770649831196255574298442867303669867504010945000082745328817054731163457523746474828526534139827965112193950069493578833106338873652241869932122723436754677352972845890179635723493603845540872486298715782929170909935165211319075397404524019230303289969570192758539240804723386349404828453800132593466589043633776570751383083288732654087198720149723173753159640108288539455853878833369621109036307298923688165931278347509418287124049534695751295315688016719931121534115834169687178473544079324156483749613813842823296380593635990401697798800119209760412997615040470919406212107051205146365169945007423731642063741030504320163934592856407934242297375717941773399746597935773247939992709673077790580469970406581354951711801271080683564110327750220803396257303288226477206706008932870294302300325207752937492016949476341221433458263029831317408693077810508591818668960755621171104291770683740903338610366348515607205143582114889079011867762276182648324157317666666116872012357653748512634788883079466743540336478503014945694020235717844185352230024538802986222417654883636811455411982997467110203052042165011984262115863720970341062728059191205599871795217680148945124546876273984946382424621659296652462046707031496699839384517108668313966961799373624748280860192518197419825467329170315207253270303037192839395859278646915509015456002437242893483364823258617687655405151811672519633666202372271979240025289366698684373716445548141412425265772976932252297941737320094269589013728091309389026910777664104522858808858246376559665659054173268460944824034418937442350057204029148683176150356583861053206194482636538715734806486528274501458755109539166315825414766001994905375009210628446746295489201802136057586258076736595949849363290236219092515082775159859045083862092724470246019330141256524270535021707091061896639525036492669966424739564182506156245962895617949785916433267533549838699442751871483453533802120289191781895531388213922686371303762151813747660911212844998626941786154218575073633057928451815056153981074815041742099495180818195744642261893750597060554557389461810094873256616415619012967297490255424921868465655107090416555001220097507849237806821336057637815530576533479996565859253814999993532937112024627046351148737556538266975017038455613490375444016571539067314670213243202054042984164286441522239966632476767962386564123723718374829413065036448964977144493289879064954207834249166485779243143079111417352492506313630468963186345147340126410421183563742981872813564436439397841250161289643670066317930015891930420847571747737618137130198409054341472941436436239745594967235224442909436109442050836427350446988174510659901070586756760844716070513800329611670706997842554098493112162262469143031412953265689901893693541344357393475598982393029086350907775548057393091561744457395953812481159289479020860047362025144516038826437866737229946236587366579021548599019356647390201136908435358078120519271868040107019208975262080165342523121241665403827272312127499706209904324495822189712895451037556417340705123399655108296254498674820738721637249455172858230636384330821919603613318034422739303940163941637058650169179323016502260868173001876652403615975944163605568893686706913696824677358157230767057691221502271218084704649344411087525071584101899096316662073505996960784548731842450443676245272955193092864937019435182330462493585664254874802072607586618612988898846295860199232848023321257040796375146823608653173373199876057451495866237544405770254132573814434441347661141972786838219175678061815382767132209979424364485294785716295215241276233558903414645482272484466830866320950929800264305262825863193763941775288258726615314262907561740718384733334282511609305751375860119796256715661699850031525415868408421628273414602974905762737437854804373777665171436588181817655941373545543157848809912957919219440361562493558223038655670297211351434126447951496800675055300209042237354720031210999233849458075196983119678706248303464737721829029909444884061508742868105163596724954152881609357321069616380042664107336370012047666480987075949473124219362162175464691572666690130642401305567875066835835304764245764613135333574140808040671072822160630701675580005875137756388548725260426390483549103741396812215597336071529865551384798144599965821700038621696310950908807979928937764161291268252369585054177441841187968395409620730564319477724247779767748478073443308636399936891099194150607678247565068182050227633585055535277075364676774519154972528557322137311453618884858046246994508745761867325435342575182099103996628902780205784498467627183955261809137248773508276392667734081430269585766501098026875981971402032192380657021919478206983152641628855575252747082492575405589935133773952273316914491866193522171565090197238452817520716469096899840399021865738927171228449821448896920935037120917267292805401819687813621692336395175726303958925962172413539563019393802409846679835961022033916436670541095031097472916280525694761676571940039646864144718880356712512843822733464864156701850441684434806664131422677108502640464266285830481118999292161993404937793221774817334245411203680074643502206587729943443140590020675732301668704699075616495666047541679682876205881318427930500634017549411935266731834080222092181289273515383801192834385792687218117774567538802039442293546854048840025381081029796703137528283799739803521233822299732814551214095927028572730627294408167370963665757746373571240994199502454457135700238139353517864463751196801679785548730884519564772047152215132329025745058868163476256522559844201966636096754125327067028759656125333306177986090451312742595383197361101211283263636319676598171482382709926909064948524936454730290222491535141757770584153990311174139060949819748212064417597781642161994008220510752583996085412073797914505628368033302759175962980250557600097238186426648087017147099179953926727415638559276898883442981987476557244807467908382979689162335209944655521354026829144260063761027653927515403077869668303443856416719740699710404653576867442217337783109000509232233398011853077429622984858800447005241936411982981063925250906488525528562781124479921429655531963946536795154827897188997149108864297749126285327646928121927590401499118323684099486798988531360574390840962808074696154082480370186322716023171847191979463952055368352806383569122450861756303048377915493502662667026631213714808168733184622852066740140356136846549953084055721893231253534668033144953353427792600039688143584735179788673911721502437710030710187408933975007354607468977077235581069848540440633969175797649786386018249927171813380140788683283101323484128332774173878879219588705492069956051215285841133143048245884997565659805753213793448686590153765389582031998704861924772058015937552681440200955759803429529904943632441108549009761776230904944373391201840241890866752255617019293263768569123690628939195047996069636769605842316289058834032180292307587397195322921852940631970090799853718292359209394762185695540559288749011667558100938014364614910867116377947350389169692390074104159342568886835362211655260285722833668445902427178919300105673240969327302268449000321949468738830095431591428183654576045927396903645394277003661546264460792018606092157507935438549154152265692151787367453350992981269685648469820267315222881367936035010157507022829801195186049070889003082671813270022528967212669473977934529782017780841378394257419096087273277204884029806681108577697611444114148898319084503739427733178974025428535540905476717981839270621788196996322253301454042402383943965509083599628452679778992250789259645178340349846116069249983767697694784183692854745511931988192029452622076716067851101307825618785567435651977408010554334908853811750917804954656306114311446253608791833638181930841763632780152088855522711664965173285999946382411325732657275807410343236351012516370697999264573346270380469452106869723278439026553907533096356850407158643343429537102229832552480982349958992703305210748241897551179182885432968948894999272390074630519342514306488118521924543799243505534938811668812074404092974072605025170437564615867353398336246793505586180075885833374407523766692924689406996381413727312186650698859389094597453109842227730115413201344902585679502722116808007498642393491915433789943736358241264781963953228479649529581904615808356028832263878340365253632357240691723364607241959172909665319521664196894658114843134153125083436913627940795219822491960066930937678028581019759542356183261165464753852930624074409661308966309963968649891103075439674896999832664180601931976616735028611057751760837655394202416954940029410245014628112692896101996014832098943085482983755758546229044811804063798044163423382349116900306336374145064756577087908237660486760667869636600040758597251325506208901870458031307303251996293659527613940335219910464233026195113371231630252955524199651300840860264192248461712983971700437874108110896060502938191846634456029962775649865275956301809123781742498390216805942700909322507596083933222067453001556140769534137780660445278818499223260020461313260709629438060898394174522758487878595066129340848124687760668651951706466081600979816847555942011077364628636363563081002282294993219004188208435969612499521386319273446946054273533971192875558468063141041628748782234265642652467048900804775158892815760266400275542220164790351700899308993547692759120082929598237842605937063652754082640614896929956976295564646846649150949567870152707374375909814672872883123043702561103823141420220412400523825254863434241676367038475183118072493864142469730596338688096664648865862949487777970998898479673063892163245423248722063490885530335267252590716772048663198846741679855562215329948299541542530134865084030046543270985598501143002184432112292642356092915676354833439328059077016175807458248916665537655331481026206261746699440040468711952394780188324760978911706213474487147696779718033588459596921327057160544513630423037914121067337894723647061654862610237654455829013109834747147366957094835207918560202356544633543759402419318764575581325839581392292879313543117042937049630493999381423868533283034572421976772246224112290524145506315123042237931759591440750740433734933093099349119930028699572116646733688131818962254519768998331848403558356752102018375776691575288769426905042075743910172824192889377804284899658765441075031552320035668289514556164634479172890672495576040972872300296639382734570690613581112703473772845144987369765948715013720778531589604788753603810801156576581175976110688586947916098705534104191503032106348468111104563636310121699354889808679998930206586070609977654717866841381913120455125012092014335581139257309375141614241183607208983574939413354568002678557591214612326434974157241218712137269437968679158184970955881393606961089387572429063389458544230211197702939440975370949055814786837773314718217768061834920924213317880966086154622146791095566476341319270665918355653755389541840410471711675903574281530153128959725287924169762662654539178195512814070836321806161967182448231317749794935987255395019565357255098340502543315390991881982646754200909691867235933488756428131954077542975619969972737329334833590932836506382705930129841764366610126985999848065189246923226500152405469513291728920379648712178527391953814603761206743666429465257171976468735056068082979329305757623218955801870425550487800841314256969810504320751805812982774858088183887547108350271094422262094698674938729683086697067002254400814062612895724111558134271688008865198088260206847347428780735504235795164297849792614029307255215486055183889061318735847787291712334132952055323538677309011296654732999470605650108379109326877505425016653516894169940280281158263676789063475511519409301157615093943232495621733504305031446790464298195327307096476131509923659140100639364470118967137410836264857177325027101587279086298610761054773224577065845670287053601614552404697591602023252392458647419074768996385306035228049696088719624997602455000792392648035468592661864056939315439868349666847846720813612387096522106574150321929702621491098390319304171689789052075578878666237704460171572685306766563665991046723970547869816116795963535668671428626149858875347368035806914414668822564898828368225571994703999064299615635008909579503425217037132621549588503283590316642487004467782282442473615264600116206863230888781476339977122986651962140825243799216888831356872165911866520297845020244574518506367459131243096800021914871202162934816804573083262756318722404700569355692015783617330050621564126427670530438377441587295961346461188074028485132216505911187099679503953687080900938711825063695901165198026522306601274567094191696623297495078943775770199527846752710963170134977324458777252597719811125432026645215622978792693802592428193540484836442133532739622570910505858261857985143611592347556342637284147381857172752619049602827591029898925631044149867780176764148658396888285047385323038036526668887404677112415399908671145775047469228447115806684175279747447195728932782322884787739305587547566048115334946336219031819697070716447633648880840294936099132428087801369131781742968327348031104596565821141082306781827615481440462184697444248734805257498881483340270113331880843848747691299768698105850845997491991940521911826149478342022562345274211630989531607025856043387244192705182020863653473867232124217481204379053057234983643757394881618559562285666686841577502043794811463144951743604327490285880085386030279688891563526136291164869050014867138601342707695939107291650940944036205847418680334010726880866656418361026182499100484740677198760929989448495851313984396107063797077661618661221332784964381638888324137686981661874225005146423336533149765218161171087244102472931569601780237220978420105743964149526348358294306778535050744156641414843759690325273938416937997299553023920835827969974745934242702405329042963649621355059914640148610386662984969643668091781550313477368990443559875195559742154705976450449206045841868334917651833289843261708175662786113968945548249231878545654675196484922038381824572772654802227880592083453116770343869769549343892728897366127412932191030648799376837700184968668460372260381307997331104895088091203122371730023594519411784836243278213273775115141259467603692655516282558323282071269682186206944958057449462369387688720229078378709492758864649087670511338748857010061635471707235445398287798530289041731414595475717910141064713093518446961475483688971407931330822167129035898349742288583201606483334760533320546661092201563663745055866182230501818528330902518892670494184129343081768641733276362851743081992328915686248998998718160344333123230196335089012232845830908188827272619937581092446365907565597973811230210741151297814715812337068558812726359442995984590385722219667455268948173235880829939232473618540451034662711997771074059122785334996529694072788786349605402465317314960936945311258893612072846335465400657168008786745491812893599693099134272824355030988239871709908592088684344440484137546925348957816068858842063073944424232321496974484775329796262605619679207132078134191856946639405267544378494952751642685879642467745429579645951717466209526926496392717471139638624748243507942780845972114766102513582908962176345217841156967394245822535087015975351266047698154317591525825809127805833764310838622841334144357980119827257740905452081109645288421732003607760665963429717714169015996251777258739290441626915371414494490514900132874096115763387430059982759156049676571841342878215895345763423848259028661032955052547363124550504368024330782131293962269908883869693762790412888050883892097237561994584745590604860946671552399001635602704370820446630444972996197089180364668029354994056766573295975436357172634233889022327592757303611226573755286544474773239775713315806385015399055113760849024470044409921300132118910728635312389279098305295778403616891977330345024469158057120115936151120600153793315584084874214212690939665890673349720299283143644073189768783238521566911932883355419336726544186728591993944203943676769712322169706131398896246239979422928479020439510485643693680158799219989767703813161356233383420524859890646266921060924322049215710044767849540915686389469462306257698498642254578170613367463294242704107441080251808028250076818053646195680924834626620236317301006855872248192966766669784397544214727368644626376210063926186824042533971576416537995738363879454702358414781688461568245845229447874656985948312220004681354009431864209571843850553500028025693197527839176147844545397907861130382952660269364160313945686684434523302930015959684699997802311542264801693531404260703866472748682318584233274972773159299013498139431513001689993580951966422836966173982503096999610915325133835134876569667276628255369195629633755127928969938421122252956014152654246740982890551576234208464061959461973289026209838584444632676213089126761139804412144024726757890354889015194503118680690110349549203889267147767483950146711560692089288864386613442450518654979124871283344065374397042877556242188076075645953449431675287467417284069029506678445273504057864130178837368944671519883751166247871653471780551780459921419466139722438161347281213733661427731196091580003317537735014427214359145094065961443319779231155123538058094160565355321897165904051157414043555942056700122686274033717625499422395529712482075808833862354770541334408605493112504719798236999819079140439604571027842111734252997653804055785182092142985183398487780823172943267241836400921251331433767996685749880368068569166512469328239234962896295644813987422996338971835035440128944713857689072172414453581254783890191207640844886749119718179920844039782862155410405509719998345671738294728111629037458742530359905194823410744028603480315966157344498960964660652822992746258517338669833218024244116190775663554465797207606296872839911801084891823554027163430104381910483769264216103846050338048949002580590095419634659627759563769594641908551150293681458016811241339826895443041712896522912887627107254317719894923163350239811796465105188457874726000915633647352416767661602133086020889580939753758837508291172415438012520421029141566832430703792141528088725611211430999704560407946235476025715855433255308874703463575727349947175479911975441393939660054820790944263275406777544119837346654323399833112668805994314743107883467049773939667223028416610954188859012153649544410686843351535197031746336275972867031342129585070545429904205845611616842630505852009752118742561684596351696890016328928095890304092743345995255965427917192472798865828122918961240114646422597467008401059280352012994685016956839631484125166028753758595446945986347760098964910779207331067082477722038638183407595621718694797241646875862040691145772882276409834033190283508711864247937910685273777877417126833042312102056087018324663503121388220477126045557698243072143930056930382690772160279799493997029516272275565387837282339976276290837403000949771504848451818501279728377984541834389672605904747718339663462660292986240780226535666626613605544973339050229878706698531599502548473771495389647052980317106161822080822561198218586277169121967971536468412863058378747535154381678202648969607725364984416823166754552002747746817252321182112919311058971560858113799309198053687698815985345573117606486310346076310230671409147161256003146963383731426542948760676481130880620570439612151904405935593521346255391578651464830983798762403904813599679017283318741439991359504244606463151136901159497194305806885296122161067077570311367282070596940041472195461296512234473621124168822150714642084211155622809324503574510508549542919761209021268554738750077390956086761510261489081919632537549975386770526609346508422176721242161208308684341061604385053285644580790593239509070956282544540521422780490683347760482143865990263068778216743254688101293595413100743257145691656749764944670477132362439061924667345092131096574604842204480221306708286912921290516175019286520555639800243583369816310277034034314447243637487744303122347535249741373046935597275412823091205158279851252575494421538649405808457869018593066861447585742394274416086987575001675266443305559595369657085353514066303495599510550518856728121916573930190586891949892639531813289417137396471201663912872330484790694011564986681193913442474717837147612373091416240918359873670318663718181965124277099389817391720009179080358341813430042821300500863173214192617986977096603897660824070438086148417155767034848364251580801824705146359165135152887970570883832150502568700643645842617119080280843141506582917356027180271931014103072947661998971630545393786239214767502359382394795870646500886428663133829030465539652344273084973769536251635304936476757263008340751821448468112926421997780687168126895916582471966541743691260905643568365955972947208545041552259344498450465880008062939616753102917972448714887385375653241280924697796864677421893993174230403612141226340051480956901591625972722700367010719544717844211168902207908833183463778713955559129877276684217961591744636563599779425588828148253292891759982888879312237117999829539574295965894236509984910540366237026477149476317731700350565483747005589548963448949818781760544462410863267391417325106128429323307014350731299836274019438629230021565112453260875830170081750906470717490953226754799455844033366439471742404890361859078824216091342463845249331980746919918202465851566268206293181700343682765269132689802054394541052946420394528232768596552777163109465885965252469435076869854167160675057316534001745798654958485346134968413087659003711450000909796420204287603982101314614491108735838135943896146834623236609927984186358328222973662349077354267421883937061326227337448382949382816727557247641556655453846527878326404441158404194534552831840196116399556920866858811746129797914264658204990297912823117168423297460124601121170625301326551697629197541650294710707617460130250955162346169241645068306910309589606097152668860350608437013129941759462915214305113514567179074882605367090619698155865103579272345112369905021179212578194250727935953618464425704807756081791073404484510185615173808551941052918844974233932900764567404394009467254006845141896309323611805221122932831708122374031459227304189929680422280453091513227591837876667034511543441724987865630090337567808751366781241858017354749247508397429879465302039430824761685982679960841850256692124368103963042998833113839697330849939523099204504607713893170373872521375462464352785066483069180195259888319400048523800812540179405300338948419093590884926898926036891509525966467503422004423275807522102834388189831501994397865560502320493765749904138501585351293548297578637725206649551096399792005668107189040246979457353024039235293331835284342778112161267167685300556601737238219847416950641445657188526309794985688567172330015633263072885810641318525696573860459695694468504247219068429367267607036989794324021763477717199754916821648896403781356378986401864298749918883548601579979413251120244106421145516303325165702440256492731718054260981908485414338064041951023253977853625527210103717956851541003218091497730078687362247593624392332008133052489357281606410729059120926090939598925393757522194765997768499143929065716817279883432066088693986109948136238878076054409545781696568742777506299274427141417782679040579238163726041540654716251561452862373372222953124288868223720459423368216717362102652103869280979100375377286980067129459501881818414361413384096001856598062873822228262559752075373015438170668904448847675812008429987911979688750908104822943204841873122005408411724372801379038922935358445630593181051551127204690344519037980082516189743886031637629570001735980536150908020647022609410050944620483655236801124323898801871478173881580330366166108240482373661336668198242328006742638646174043030040265459837089593964681196896223877524513946067891155480267825160894918297654063742853704209253484081177494670181451947669444749435803082026402742289149975945830977720315723238819492229301662523920570210889618199373267048571769305971110351080896208888095933724337700297134692087908546038556155250944232765267506737404500961640257264276963811535991698583617251230614277218938557525167175301303034177759606408127717599052215399415655397518606609113888186895121037619714505576889371015956511911254580600920264935074378317146265002889578954275147001634758014546739095645141311562294316769734090028267369767569518360508415601301772908498544509562571972823737249880638080149887150326308444525569871531676263476219215323904709098955490286576681317336325009376023997516026043436954135872871040062788923488238337339400502756583882884134071897388847378283490157851677434202642547089900542159491972202015334396107023280964795144843013403887495092322836582034267523492886233512351370920772781483160964427341428771679402720411167893969392415335285367846277153418417917322608159323218931633532951372440775085550416783619235408256705861751490191648076280074342441757645232010255711708652341494265580480401744053024111227914695303560856755120196597946888884381835317876129905636803111271859233688192054811150236771592571709873564736349896108861628306252464294414306306541366556465657540888908795142148625009143382485020063682634916649643731361394619526928893638475569109916350205598819871137811545113805318101646670501496470577070059858427104899010458051720931428190987988908533043002379835431544144994135974845534782903220151464125657525075189768987401012585990217795915499646947123311757992676859855778600467874552373369219321011052846186286637406419545805238982765473014621364175005903037233702065905267153682671809983551405447320214287558781280062445502014053631039867770749552421032794969066998680419893290144046921046926317157449790340207556220015719629598323797504831119041192363779924412399102135262308105807933721080766716685848184059088858472886627114039805713747579305231656911765581225585841205006534545055012468099463255403842902886447213974586823461740031608911779622842383751083248689802791909926537539173404113998670477087397999799405027806990617980949185136020632179060814987653241958949954363120304721084622369752889994733859632901462994927623354776472424180565410520360828908920461014248942105204136099184403015666132119222189254252371105507377076898146574173447112431828549049117390338688910888247733918217044020503826056547025258959730238866975994333299120968397466959701886914100278789504322122258249417588329275080224492078872836589716805359517706519424545830230520811227376419160453118528328661769804947364741293150745552137287516380397138251354285893856255149347633794419903250505070070114536495542924979607605289852875031078793876203143500011936940710267443409772606137124793147411892878719377471344189966272617611984643675660284405566216877778176390134193131504783715904555385514904147155144837351846909067858954097068974112698564423870162527304828456652681222550181315627337853771350643107347376945158972333535652096939704226345120295018176990709414431604935378418330728958234583205951449705308659191792511953942528443383292330724194460944246942881622221106189866765926331624692737638812484468083448065320870686347131856372985342310608591736232090968505964159302981581585770783580943065266418985681718372745188467357349424688702717159877763543151624448437019014946758243171398683856075455257117734165163411730165579485837196734620059772820696181348822575087653532724799732537613418062840716956977339476189869146037291747664430463251704282929667793902049785991323731105988001606473280229366171955277270820160316350499371441252209864696892201936548509420843926358264038140822203617732989919710017812470893900818947923789343510895224102320553697899265396134372631240540993101984913384034139459535019270619073460408677935084018249103162097938251276629091453581280448306785021878116083393728502758275234657172380171612120826615808744938980698644560640122566602663198637886683559793871827806821180474296100467679350883835886687382190939805272660948439797170740726481552723137960699210602150665982307543706566629772282354671746727158506953143016655533625595719342724041932235903190472408946131632313994472139549392760938419650671853843666864406529116455149651645108532045261059618733316632817471390605474820416316136056947982569272374778211069753289136913881644142804866469035193684567920133918356126900020806750071439767581039873857251370357973640271989118056984667714961026525181648593047670137265168611046291768546118596353039965804177101535010009093311194653580131727543858035761845746000286701921266382165967635119670894367881313529223317468736791478678237038293161255877481555162766358730290230199452848797509355974890863405383623169174947435500486129630080268336728257914247230835765670579866217482827353277842455575292816912564789286193284890031396545876801191510855154035857204301959957253526854133656030690408434575254956115875438143737271374378342319121370588630317202478402951538487173506018240954219862258835833484758022624858166194146838600083216511678967363531353312503857644297453087498563207201879374882034315685862170067438359573086032597809883328300450473349083843930626980096451658243828085238752345353626728058284623656823441935768108046228737342220378281079673659963811092043238263011225569315716053887986230337808114240438806030135988391536055523741012056634773462418535602120272495216316455922333561384585454587717602310052370928657278053933216586847250040698573970639694890642110694743884874058829157391030927013888624111862616069968766390683910260531142964948342311062122270932138142166457944050460154875248306561235649327257438138755823323086201724981083861538263120231231712607941033461507536084591430817638947189303635138377981102301313297910455295524088597121125816022406352492637474495012583043048836950273630629483919373895431292102406708117323401382302645651141251602705436381687539122500024683649732051254223853239859525246932943116348126044322378814050754975048008036986074244959311355381920527493945693298464981156003121459686650804253782174661288967836362003373091271458902571920619554824032146247154584756469289371615940592718185997523875430986867986861048721111457988939797754738023754022222519256104695606145378420984049258447648838338584938647497221340003225355685588416343189515989747420797642996701414100744667945564724387825628205369339009336192089972946054691400958297851078073756277416055547756994319509771514580230883834840114967208020688440289177055389137342036381398273988289606305212808290751998440361431146400527703035103638650783508489412083582747951484308506097535386247889017834424246084190190694424265322997628726550527077135717701318002091560854404647274114788797281753881316896383360990750413179739309930860729926132791170506185575413687868955740674199975423799119843239164327942040326574559909024430863564855902224198020257787080410264147746499089458596029378596166344221314574995531444711787524502889181442530591669382030146564177550647377751555209889930216933822185627629771854578796828930501418496120612521888421781003953687084820699615246023185641268721158956481708968284312258628160224975116503914285227821241058370086424963596718891423264816037411924504712720408983885672253585091374751097148586866336304192058488671363985817403301228811136004896335235221292958230826567512391294694438227111892696835378908156070531465143133475698046405063686995466852329010440303972775373843684561088171295120737106656031063426173645181808687657554408842318618348390009108993884708098150062669936018550870956038731020681794305895954533157579174615017070268700933227687013030431664463252971659586492540329523995030806502190082052071260958707868342284972623519739167277739272499721258374568378324410943330559994100052181562051705170111946190989373074557376828871011265738651359429558051997519664708018292583117343958153480170800176372826818225907397357157560697067655247399719225872322224591159773105828976674745955073723380510119103511774860450259744126134040368846453543812159088149708790632949259867228102857211976425776229624956068436375688077724316931819243540939843165735768894725214906992224534895364597133207725284985824903967329774919832594495454029857823469829898164845510243646587185911688258378814615637956094441716796317860309027906961866017315741136915367456953976299848363225723708276263087703787606592929243788066751768673996014622085322167079763433400146523836795643796690982709373625059796725899660070878793319951042846077309218845754915647247088474090564596780256880746078600831028747095259894730723144475234400265638538989587297331390565792048057344660939812005840288011715528767877494849195536878377406188381172851163382677284137481355626609048673591916271322381278022487262070882761552003954106710617738908639365072209034375317775892102932785152307368662115401116354971500017628275759932484001601341668684476917725370048085539609589531490929292099114780272374935602269893529172400674497292935262362621913262056581162979871277464179168605545715645679894580923183938479526993982599228572762391912639918892286067342187955200436504013798226214939455815445668714656622470301706656091259128988073977618141704521961662046350825395539805659966095072694317371619196489339960563910015465526943705580675683979916256108973427150592295918743539293046771070405657425972739642015781260992376507416678430667061443296648808329708519391192346844213333923547880882777145150800337158021305536538847672840536259334640004916875701604543296915141727059588080400310892634560957887986117563130126934241602204279945892528806346602071366636238594044647259967051260121675106807313211745480446137952151482158065011357421425816284047366017036598893744563294447551142282811035142720604361993007889401015212134890438795734959994990052453772201765039196008726809633648505665327623302792247637390333738213655969041369430635723553223282559657641907174664454988528831394969396800230034577884514506254703322411202762216497853333173100769024538883737044896602988277558959887965600870592332492995897979945953133839896886810216997494932397849877738183358811641665635820272844013924404136384095329412936253534228530009730748965850532782242136498169477106156815690345595604293920371349929577071704482881140246584619389022953004019027057386116804969831583007872534167008494938077398022846747241663261704010381204026767097162096236458668947780322186029916508709265546652726204664327574794133870546615474958319445819971899723943617308668764398910561701868995777497522008472286700985003176038338441310851391032411659969270319592562950578147132767591814668329989439122330681450311583047109785709218721918818071984947459929715651476327067762970489017270220207775257151563994825290125803930632566211841946889838492199962378763549723190508495986266594312797317177573427941635714806042941270199428941836206280553585462054737862108249789425403516738153457756923407438348256918469112484542059458178643266725739686738164198844296122011269858478850510768431865019049175156752537218958096797285058195194881633160388183183948916835965827096334354678277150794262570300170267963407840788563243814614216259834020134582936886985926914402177929620468080929182014971346443742166670281027814493405774477356705856326621683352001764511799967966041303705571218453944737711514862454887184897914301357968872328200703996299836823086022296133405411816460706278093928025995500895547478863183262285195722242309872781912668656440096258625082070893924709939387686704709228703485411632323371941360248693077973487156046938725390413291139232570531893187172204940761585147030246822360616222941734870102644778740116282224144475746770533950979858984542105422550042210183690588918784699069889648514652853982562626764479077571319553694960252687424922190715023389417202128212912868106366012331836809751385000422219268464729625320933604512383923060427681474606545317447173454594793886579097819660206476260491645819978740700308620711365613630796183433298016997808551126726613876525635665075663278275399914515428470192827200082763110563177334105678230127114318090387832750667689171152048673775197845399128595326627977045711921547183174256525430482181003794545242330653464743806927537952117166660700678838070736976872908155920035411318625647942888544148768913346984476489146166409382883932281344559109383962535851207135855025065836319830635653123596763929109236877351263508171975112134072723025003201820143074851517966775485248358185262092977163519340663956268021979493597793339911710547596968804904617781650135324753422929251080463010804229413979448602009908701906806283971791579087480050960198485887539888192671241881421582478416779144418962665845136012047150828869902817614044478421436313029615653949364228484295103562041341300723858098734768815509888965863094970058799704184927942527342037021623721328562759204055294902862611560409613199739600911338303648128635637339738292550494278920298380311628794492988380014628175557376799219550951197727919203343132182867804399215058491765438535844240339861088564685981952826720882680235289686117058964588586260568985037640084845594870140705392793049439161399368066774851041608111301907001454775849319531808007051630416022183029794122294520050247390561077846351592137833479661007222555886148115409068622221388162378285727008620157636280562542216142060797191691442200875893723853949914909348313031086504935610840458916035491806220695186561186209527528725708523751958373269109274427415738071898634726387044549947453454709138013652876583720890127709444918158303143604360806881779713834329447447685962350995799414532861506843546159135174183140072188455647791532202015502501981061930842422219554327309473727078446359313283221709314451880645060849855522918603628504667687208878540276156486031164600962926897395916081127751912294559744573444077611841780365029509296858518075818054674347098957908507847101125901693087956161032163702108142449971852159349131358125088710392722679458160888265960378311277579918496056464950626013046824002904872251238274132665338809881497116570293443261683098061210227500695694947187389244699055020368629742312606495254377726500554892192936411100700898892884141362386438315246911587153851962801108826534713856738506344874946149173247426844865092932414463213588775929614206890950165825981133220535570955944596709409541668021259601266226456293194715303793462054238251854626014568836351923003314853368577783814424222554562326912619393341487228069605437393424869795451937590787361385127615356698644418969254415904772468876756655452038401622472340067372091897440634493780361211418208261311773312572921332917571701465486562285072431093246921959351240252632220408232686509533605400858283475588025265909337820249359713783947847465222380748371729433352632443043012743225882345228968414135065942414889909414936487230238486573918023043333447528160349740912852038236088299326585266965816417080117153620705136426390260222186174867486054463406171960312997865967198024569956496040323145574044716622341682296832230179463838864296847707404233539825402979503106811739798904418863392315231676270849061281792150450808585531681056868304139349626877075353968168928274379248219986953543560347913716041153461477121025315476399618096079787974508340015613989608482197768212911456780011340038625470122821377240691393147835496657299558490374657328248273688140134419470026881711847420957458264742036338954996608295222647214311149774869934159077580600048981909127567174735982657746559073456060301280728064623038806775879283626930777828696727593975091793225728060865566945944677724465543558809607312871946436499295889162071188291506163487397784466172734532388790227939612873080229114083332982751254752385709789697488585285644665022640577051042474461533196283891955032626127094232631340491439896033922948136500299703913274140983122914481892151764258266178022866458357810976109480714662980172224463695082126853339217125426906992124309688060841027002074936760147534983397445847021020272978613519834505322872780333100461688306717929865092325396761884370323532423187788888062519236022137858393285639875766120524412098754523656681707700725876928927028931980240312817879444285461489053340310007811892273367472513465735706550998351271070691772230884597524004691842027171327994413548771904390317305812695251667395499100122991442286119687959104929954408567145698318054295330015057370737932901276169620135539316126819339818006442762764708994280211115375127079042782060896185864960217200753635893049152361986907301675702041515917286376744809371529841214279134813322975735829285437156997099642221519523067725494011621457437024091850988710711677977999155008829603790872014342696136734732365429087323664906404918423332966778870525633773189753460774817054713804889889879242121862862820986736869431963278101406515035621820880965441336792200428255987131389882483015628390784957793166021359036043729905410749695773118685219810785210607099009081998860145853285671050096143250750838109651084011801503710223928272136465703818970672423445057272200440352161182520258165918062596738227666087668082679099312354571252949432708592547069362074926481090553995476766040391704266303181538014967598958706530285711943968352580851598158457791371039065330697951524206917130784271109849972113919220984093932318663124591585226758242156474431678923906691316798575581369268982932509729651353492327243459972932749649820995349465775503990399785722759185247045081688775472148832938750566896440375077052696758576214153295943573492396305334883788584395231890647684232472885443585413614867312841710500143524106693876686551002254305424555195985739253749675437469666089117748002096929205964870233127737341165425258215778832339321916270419245019978585331154872261238246058755273879429093125215647622228704549497710273846262728016762428945256807274596470254749501711731712903947335199522193351608747744099713993305101442332729736183615478726198674900962846853647340950413969360805188844080505752346394715537608502441110481551697562629894762775575845215091443325120131862501700064558914130338685029055071295438970278563335550184868430933707601251953448861958179765541589825133592537488747426307075328661656971993174373101758350448691168704246581364954134602754031129904958416543397630960140424693844409251222666635646287057499308380277853107223754574757634552079117999388800526152473886454601354384444914733701149201633700369637224768548053820920183929718660274075002879172531215227415257342244620774508388950235695314298219618025976698114930349224638654368655494926451775615587414515716287602770918507088967183945126107553366149177268590693603275284219203325668590064255977729661221024125994639726377082495721287248230639474462911130424147153376848649823552578644972930269354381269626196939776879081887260753035257116362131140281705551938957795865565185885759786142930245261759395719326291651198697295413025226351684242512564914077553995210430729623607670114583526592979064680601603186699502343970736265807311241762728327760546093195916874942801049905687372603254900672741985398081995643756283876069711234579944764674830825719659758326962220982912538169690837557344046237662085038972579794432360404511276033832307820288996599763146577328320817315233788631448112205505450394862218617179823746462956223844117916364823500198450802406601972885753228373385395758249794547982831615991413929707995212570429162776533225838921542832781302950941462742589325349048872267088862702155192568928823191570640602762318975765060662126313048016968856113907741597813781707062753722247516192786485286501191151734851304291148333510046311995427568412786287518874486476101570419443467614616034921857565412070395728559219696302180220024967577658186976528260821812188564003992315089091370028761165458969802278589352118116794459509424284305582121718633312645536772382676558096448180818147092394368597622028500557858843617789481962125871580462968130837682669301317379473027525990641798691308384449518434204956460925713599082190009369331065797883283045556947026877086964626032810181183736716996572023178533638909347651244524267631430141560958555701044532765799290299335196543783543957045587180097477437560260347499508262934532519204889080029385914799313721373147990052986341097847801563007162901569978718869377936332027695588396942763793110482230092145038734634094663227843890445991852062699944567540530968638917904655605497020318452552079894881068412303273240354374534966556794674015068031398113491129165599342715591447104040190538530156603846769441443224148658527421517743619002901987380539156234160941193536407472456544130319906103536935041263220561938713047693359099927425434730407069838886418582117885454380897151830605379288646917087269637621346417245494983846154080032424908442530257715155594656190007825477902316244984328932904738654600492868530660872185148973459012210682828057425820940117307015443612785258051612504614704233915999458680745861923218619872187485560804985340234904709089209366982490271183317347808181855683382777817230499362476401478604380909871645490844815229844062867072410826761055653093169850384797749574715387826046058896199970835664297284207347519119276863805008387115970595202684910422405788735314037792453523691266569194838716424232002166721783441275888069736242920427809340320131085152431521852043620849460388297914913599803781259945569238332865788587495302475236983421249706403850303817991738539597056908458569817528843804963439842554064477062705157756454716443007114372970894412916256079424816725884151479981699339844457729153573885487845964391828730951476417705156930681321854367125146655443658898453147522540015672606754087832189342007866832419283672936003698319451720921094639476612033002665622308466335077973341584896345240607295474980082332944558244876964894283507968055019264863264987071564813228587015496195216162929325913362742759480501619012309326476338665667655877696956844240043066457716209694172397183716813659283990433882089700004193078311811376053656062361033559574080655858701227039055143633343117355106771437316484233123285764155201511693087444281365274264763533158259524963821379403088151422379413743491982432900269582814212689016767543624636096141625563188457210215019299368298106289288290004353893250769024718323788508559915785782620977284072373842388488314120970949352358775868894537630151660257724596894315001753322431314631524018511049043988363116845236124339161601267482136535320726101030618013244113076579446987008896602786272251744955052030711055956010155227692397616645861514085168204289543663083752804692336241122584798085330351752119651600523259487842980440074931081965710858316107912902034799720585824550981081524652663804148637095571295496269577681118125610287288408595563597762310433470465740316933932793058510435541287372093899542150723453976337879861983694054009086861120009591124504170742818800692195798331784700379262545382804748845178528053446522661285043758235492674148732626274668971259512177966329366295752714641082373443309324801870848140303195677750416821615634597546239503827809013900031156713978380647380203288506905837251536618093207360991420622828948058452536128139514431874931993429396224016908271225635209342036100774821108821265140070910540407122537662881344772637495579972760979830094332454070377104692848233341005860321760088618754069770265746021400930007663542671683336380058572965036731008024720451504487860004382926549124812035228796781461266530213204183542482542552296547546382011876746293676103286045724500338671508572117392296414511629969329660197674005064658732053471695899208742082896690409577706835804854950463005886340189237537362820907588304475010853349588237655091289724343972442714430660026155202530387311542927227784593802637378320687033521711243656997435385222137734712650544664595859104400497744508311132761741994098209097226682104908987102456109056719798045042094988694952802921352945812717319618857299061595972949302977908142983617683800762176690280875664321598591970669944921946504026620074336971968528401576619775293441163751918592284245861242088263605086349016963849946718159206982274974364444518902295366352144685176434887540965062109269319462799171227592749950629010801227787173701164033276308863251065404882205523344568377570192932304248221965599080487766652330026370040900756884344124325077547996972688554050485151770060181392829365045183134514799589703616439277512606738623821395434463104584403135471586058576021524367881401413864278683532676126663309192518157262862925223324249673451491030629528661344808877870300521119286184650115311486891470013721115811989370803669213536119555347067746032037398905385222198956203489026813760254985017263385694452136510506757117871091438941985081806531553943964915108659275957790028057563394591224628184719074404081321613125760684013537851138057612237655596521862372720391821427608383409376998140716134113112583903032406857905869452616209113331354170315858360824767863115718958603426095454515404897497828069970461118003155468955637986457370337842462889510159893343691146336253702947568100755439838295207409094648779779870268637875214532492163836356664214872115859619808989436377460498091131990185899582562981487878639663483729212883688539589483673662537251537708632235564200568200154436646258100130367415469406952033322173131306223356415430388047699161753388024321814928611990659769898968055814577836754091022561682500406574400942191401850517581110612709989169481328284272767258245788713318333593579554209946209625718456678419851187243361085979829701709509120990402696952413807968947110523126388204017942801057007592437122099212694990287608979370635698685716779539754434889475767079041651212379986406523237789660973020519706734322737916259301926192086678895214120915467034181729569442313018925058824187070068438981322637989507563540078737013401258390334097732914163095366523149270997210619150607124272599356209982119162083531207802102717623261245454655922427475912636354928270137453428699854336667880689555605390550820813669084061623771436696996912382440790704541881978792408620464807668966536507188919816936505433634978872062081823920625161280687102334653793719180915236544226393922285932461382934881761237458383642936309409998263205428361465426567282974124912899855894644591516094146385721864882599973464998103306557890138843824344899348646058130081542146702296280516353431521074269403881893192965502219234187320851795805772424347767385793163534480975570894939010745102726676519598340946361584046389099749782061834966043672933698491009968870989156322948910524743818696006702391944985434989859734020593556044051877461223709837247765326202863167995960744489425695189331232488279631741270601399810968120111157739762713197262510919738171180768234262739708681726397975715932829937436344014048815016136576204807930377623562619099015201717572940843946676530750000218390557813371963334792337025557479947667385113471435191785427910891076893206619351875955717392173784581805863320985896805022948780204391548152398955032342164508043665255401174390112662391091431021164626500741910004382008274130146107911750550294733356439051399287283248742880350949222039975845389176475340855076046872949876548111179970596628588795018375249745274759034282018896510998698719591164847006061079692164953234614500892345420112332754382468848793937690757946679186899412217430599254137795550253272321819511021610390606679078841924180923393988479728889191961901477607024784870628137411260620153399223499477486162099755632796951341008736655856879168736556713105296898012577120387499985660131306237347483836933769955898726123145016875171726300449695118520575859115936826093293581340352969454851152002245170860949890959955250031907454098867362189911029706180903972201497981731314634321995327467980993689505949344843746567266732662772954528889689870544542061887665927198977829444032336976310100897944087148325373143508831244741699601466535684593004529452800360401362548925140312821954640295012021405180021254207454275709635269235534522481796042299115933854833756401496364946184051716567061881534706828532376029541525482321483657983077994109082546802137418288563477904998674283471578188238555788395589193948347534829473595378153115902131660158038124435017481010687978935801758772147997453917686674258727118197856596302640714567948339594820291747706999416525213217863120599185832326779206195753179160339426443571458934924406605869506570907184466847334174926711142680780697617577714805271285873900778149432754897658628919932245505386250661325592760905031074469234780230781514712917601095159384549964690948814500793383483672603935979153691310964028203452132189546635002826637883690575910801292896330648769647765966494561752364519090643093966723855003544584246358156564332297739422494628142637743334865254201177733376956666597363569325284304765189523307952505234091946764616403450165483988466657941738688538310533741861915147250205532184256170638134135992051467583552740848794282635128837311819551016809295733526530223352631368688721480733791349901465525885886596790018820955727640176978349615067355886277007913259223093112323149469047764741119628959798302541134671663223981249374702443466627240646581422344897961130623980619540611634457920684957651350990735012184683175341426520965411273998206151154198612026929497990694399356272417519115663845272978141090924014672759696184754105283871594171684453274154988302236849748910633338235954883355457314256162947116229021183469884024347515444469297314938058841012247641658591959071565241872005574291492389242009615804699114517636050411167563781594945833862268879787838850346558771131469911538548791847550783804516966533399638851497467267452777384870049693290652312570727706849705476392381056285124211458641990020437449941965457130705770792651295594602646739418827211626823014384454960341006305734717665231700493754910755672126551809417991946721385602069322296716824419059294963760251727617439787678106393862107159804233429922809562981626851591199704863461948209690187071943491817713700043694579343459296039636876850726899971936720152572252735192326836083148090753726575215378131200718310212039202174685180622832877686277569918523612894967045977174373544406357305100848985453295901035976958185139807447145093313572221073338654856224535195171791274359835917162427662477934331841183256518648409223170042008353029227317886801305663353380481520134182777898542588295381208336766521707074150546355986428060039595337236575617065097769165864683521198188662687683186410030796385037567244837612170920120210128916376833291787355664106721077963848639078380717570916770942112804764402786767287148031026057641134816634271466133115752019089240872833676301867051685586811983892170146002337920725221461207970556878419862405136215066411292451928529401105131865277804079181673725521468344825155473988280759478992723677242305585289296844131772446927754349036382374894485653406598095469028977462125522955613372135155688220237807822717967901689429067790833147965109440358611961906928184145627977237823378331330351522470392664411499595198260190040040639691924970876205833647528796362267471381026293926272944170069288898197756006437800626961210189449671011297600252212503555548437322254442922788463040523529652797498954530429483062465025863100868697391295245530153032435021573599713545240797349187176410615557152498915591403974417787209991150969664150231521462147616083310608271538516019346413636516250443933234704006576715613821524476963954321354082025283088507710883650252552716638586121161328573730220903334319311818365824069277526537876121514649016305617314695208799295517521724893681051471902984472245897486457486043172949174906179843225947692699705170753008108172640178323537390378414386461599336011570372825967290696927437987434299883231016443474309195720907040910860278834432092084379855667605563424497509231178691221808282197301604630987039603869445441930110072144237833716514379384693465736709027908029300629875846121269874502182226713993817426722429874013073258484872778284091839074651679554788754194061640198206003492169215841345919972831042000112397276266591617908346298488726737657665541278549558133470400854900194339305058298664497274043220373572710347026907921641566252815642730037312310218446294927303489336616576189529845175514764982793224758096296203943646943856137157793559482917327286573134511112115294404994712132783285967321845726645351319851380895047048443511863254690446765271193725063509433183058793646527356218543457793614576787350360430164020844110683289759291964276326551529628764285916965446967848014749235802793798857207440158343295890595592760344302292992730755184170779202073566184030837568996683177215690087137275789014325029418673246251901079078194276715587724542373239067421591739978586920987438579696433305273463079035327606384481200993882778790867362087593760599937172483433330558974018030782327026249297401837466871421189451160649507564762954295593483785102647376113095905293168160721867330892852240693580496578194352337085610176320128364286980379834257419745306982159860262202877771238401099888486078514856785348443629023362987174621675162868573297501120968401656248510926924348962698070203244603323295981945563909385292143149278978829006885576310009339717965213997128925524323763106432747133000553571969240184467487475196761074090068547851124536334937908562797649746423974913471386448470775494264491067191222595588097544864852719539329838101653666712287377824011761515145595311170811545005607487581785007272198134037661126983558376146800067117643894336374718446073306019491809566705143647432853758656618176347607212244650291559914826720483987263991421016194770084445690432267574762899824713446861618672203701779273630200915853119917154779278461507065102164028876369250203217481307459953384070210664334526608044805252369268617575589279789906654227116218168588317189840199989383438941351901232108547390650567310143846473016035847747121222651192501810866576972083333391779001146093142666741893914143892452749772285657039727333819529060546686420809423009474363295518402996353349328782703330216134799043323472091886605683402815554691054705710880099113458279490622232094138987230622039721553631362012756786642504613165517505670158947986208135024728937378534427288491021382574033362651982354325016238022512257454794718500304118307602353654507514282249742263323799174985544364838057090825036700155016106837556892154255661232648469939848493133868020568185740267022056647016072169329596112659975720620522519617346550642343797071016575025197621823634586425038399604564264995623670634015052138736637436581683065184756762090864700158523368856133236287921368243539801768873780334541976483551431524633279769909902036064434715427867012461327543079535063818063427274823612500400987501280276604261099789951986037039402977393813278699820438891589989906918100046677775304452256585447132392119355158000827959280657926788506693911929378961318881436737936254103276201727448110591445678187303362884740196788023169946110988263020132837745031523896392486954676793310671579533447124243687686604461782112057112533448314294991405476437810059542507109788832065679320287275630466444213227770717143455931319932195321799197596155792162368778393827253178344341815575404400182249436895642987066888537197745900494446956936471531279568022541732961444489050044770940396496659557286620688259297337203681380844859560500660570909356763989954059195836533431209098138396734282960422861159825421587573680072022963318356065287452735339428080296804546851384092836111774398152132828415286833281172944889641688470778222896124549430822668339350703697355750325140237071746978284497196156277764538338727210506594725272080609606566250913871163935473076990880019969126707328797395765331431019133339374173497540236837101230102042036013300910115986865968899786525505284734494255109627679567182892957217198734435403283279113394863082705272699435306877847898298429177448407009824573394540146957824657995698028999542337608170662840910798889125527377338877540501212143120638913170377499366922937427198503813692828622903374277134540158392793693031356746497425381766765227835760973990131801095232590160688200355121739424293403875568820754791929185049968795552176382981546748454114094863853295260527115087204241923371981806282599122387140456871813835047761206178592410262392668027206540035253096869645187350475131956177099064538965056108111963484675245484761202157638406063681774972921158657857260656443753026516888563005611291466706187922661699721868224365580092655981244826435358665984767986580356435366903262447611706998990436052519505847368151289629908849195187223496976875605013173642349632430607127113851290922565922614882758039781950971763693212126321254179491764410025024484051925460354237122743396570578491418512853433980843777273509801879695100439666139849976201394498754957728059661501367015138072498961556185892286663193880942170835830401787391382890200651379374701844294215096652216279563117351247452425427400988323016500538766521021118772506312623503606923801366138004825998434641380157590661466366011980583770502728499459659962268099869178060811871524974763039007066935995627694084371532651717186667409847391535326421597300314624434928636115917194996274912148172597862265747434622411022546615261446154272313523570854731731140148814790861046397998250956120894364594253222452116669544571445544220403845570183289330520037835543540470171190965028825787435884289955505113388967370720128334234579728582011300603334040215179513503458022559586786091091687486688755044630347561332079529450433299284948118773642642237133624351795403861182664299847937430642161362395800817764807731508223161864955432705371914737703413808541679371072019396802639929835982232401695329945716527999868058728314815760837280712474969066631323492301875962346773632366743548348207770396935134964868988110930777414240171303676024911936474312391711443080739372897868044774900000899888961757308375950496493078457117742640987089685203714666885706285562410478346871396751883937095414894458733819633161815276330178973830014667024365384768180144721113737083553863639406720271521675357127254691183780868579701163237313281707142443557077337630425862657462400154010416676478999436150585977542932440049754044388025245122828151504979589400512498318534449259576372404552299525475878520893688595474258508377388894080777907511241264675012723626923889903127131263829810758919810764855366613412470055350735864321232984313594298874936414350376778273660397138420418290009813754377114365439222762646334464905379368821457602557847185439742335793783186119810569532901936148164629615276531906838562449452568114371211344143462100553689514552148422921291702493200777934037904446920895186724915185503153491182447412099815942103784756483082316852021449423429387025043487910056725359379538661696928958163925806598244965798757679809515168098293654866820079608433484673387174138035119226947605173212251391562487300385924603737133096515844920440440716924586637204287153612428967005569911871629017685933131341229715070242945335462741421969862136564080387722238127054320564437107822855159906325823052887635506037506784949824946380655574884681256727931589149878413691986797458479015930437523575476322409915073928537491419337395884988818769344989562448467702091559754145581257735940605925635015589189283681515705161190853712060650484363686880851725376992157096213429915880126718523800766023969611851792078884283832060126026051004573024990835710271616605382781534340706444882557157208475246743907934450018318126423061658171293817160745392620659933215764813941654281577879407179514836771929053594044968238336725122834606708086386099654571347270507204633856423055378598123825077199376136014362910279288670923808963240737587689005498340303653856684724241766796439765225035161013335510603100072343067692308872375615347324201330550489554507314386383268965998092282670880958344098136057360757449091711194341737700443188841140154560853720110361930239639282638429808676638158738176563993853262866102958463245845097764553635117214823257084642265646184346591018599711540821873299817638516052921359093889659879393505862876830306292233501323420489161908886129670082246498696721869165053714335653380933592863804080183481581882609037627030349741916432037970847558018615552754729703386486726835810052580071171255096295014873516378690957195318405363649992010420565964103685346151752586599507653220876976094148612414389213834588015878359299120017443274467973712706741518426680623417104859503022331271668978758277232613019750698350212313300726790941375780934995477579941877040626815605858475648894476775442481871258773214872891990831091038801241063346344814916217215247633605150053012711587558351033369377330135012089506479202135109874588541229413129150730833700526617671678587650852724195274425016614050300951065242657270783440766055061096305924851583130028590957804555430850753678336209417610877996414733279692605203856623397590045784784086376075302322643547129927065190655325006036067718320507768909223150700684412621186351186443974312848508926695883514330445999976003123065471332719509106876603701078802259724507995183130950621979390909645229582213899149540591586383379766926910537290073268934433077386413779942082456751165848349492748845139502296563434999759374673635863507168055555066306364859901070322133497453267825324735792518052223289015568094225606939660284752666693676593192975801234720989234679663585237270115460929086357836048503777411637462332147132441294503373364809851030784832369982669279248775567463638604988425080112338612783133220863986965881847211614826541276209609621292967782253634663607206293143629640337535995756225093522132273992058414696237758342424166794395926739106189965735305085109268147168243084585850479195983627431379572019682436987285468989475771155248905586525008777176000506907400575889880643262965176556980848824231886959629259681070360368126060607767793976951461313666043284919469704707761312049577684313905599930561282097742554162203076732553981968768321730095680974455694604759459405925216434188247362995013053722276397265363322089260269066666572970853422314185893689625012330827333845651485926030930881626246222410100379336631431310159879386865315157385306662540569107217660784718262381873512528541416748474015734255573169992793096363879811554331852851839544245246945679596316402583140627195534326886932834071959079263509982574114566580020558003490024549121564717107198503523954182888401126267475602374375827461324252792467943118125087948835446416002174125962805870955166583369898960021845293538850874356982847776858061919065104166394610289775822642453125942834969865821484587271650968743459532826851279307890206012991176103774539129970050617651160429947798102419881313346640448968058130822885578737034938230231835507136592390062900097753675856123698948602348779066947284125080628886961442924073718090910113541085367037755640464962269352160928498991266937176696159528890793179733304090648440945437422368953352225716231403923568800598198124956415735582493692601579230449235770415230065127726168237880543465872037351164267104831428263740882752874516296208482951493802340322358463974253813535799245885247608217738582079839964220952497275217691274346837759079041892168337556700974070715096993686587653927926040974500002069567551194205702330728143234336675840566773351054143046637951192462027231521978709253726131368522097438965243741607370255674450882002780757460540701781907301425341244319418482992376055914774598538622775413552689194711869295986923027431749233797215407980482234040357273979027131211450984463133694483507561911973920667020519906602101971086790748220310131322961727085083617113367984090736540531592350645950815969989190908147994194338705413115648366189698645206118535762538731701885293199008252876713855311435333087671334126252949686530955870652703522362802563202420629629453849798414642308806983145613180157254261179581076361313104880998840399517889067051829038186255095015850223008132469113632794088180699872074049107557345667542921635268400188349662116433185359475746442117770904349969067746021431737453946715190512888646280109833183814562265003282019322607723406527705607168083353789858779655519963455539380605404636844270175359304925558293468736201375111521837321654248586819511849174691779186066845938740968560058016987976206153842038634227173704485276265400736514858512570530495003245872863275131986258434256467697662510415591340597788098229077645737212420066926466148609111969432034262025811683098258350664053135573976622036071135524584158540164410230236793561369059760667587853512055898583460513058316984448111174676177513207348166770771917052976963520425928794626503127448771900104946508403356603244042034802257799024900189479868261011793947388849182793513328865205195625118389565631717171442346208187669430350774327640018520506152303259599686624936106074931849339185585731437713442395388406900164140524879423695517728529689557806136915538321312155356006561900443017276724759334692419487216282510662023754043115671432699606668040027149237285075775061864138238632671094825941290825498872357268318026610547557666999111318317463453342234330282596518286432036703092028153981893518317652291887813212515767279609038446477228212816320049073242020071128838670361786169664254259028871717572001372322312073616981222583609995735545974006689273435562595361980913562856278441673872368672913688075773657518927530022222896515678618265864510907451534185131685063556619606246906264264877131277317839741786246476486107959889878008327237823562656547373811950676147743911533228644102764475106817291689421175582071637991596580469965320212132593206925637760915112941680842394573870784423335083278589287128010116293909715654270366073613526669788048671723282286216750181348766412562467608927147285238793746232430119990556599314835191337993214058191563126616797756809277076980961087858730169317423618795357347035645190849926567961494165418017974583774512140684544410718194755751271053655242559076700266812056638504550771811879369970857142580354146759805862622285601544403280632318933515759600518722174016525000730178140298263920162254228126195201642803281295482626590131519786986543801650795149470099520266344379932589532284259778912947936564896141470266187909969831494441401745674640254088559124327464274262511023421087399298656333533091561054466839422845824124173996634685467281945802152930509349861058807873153338328256791448018268319256470924102253891208971539076101909911365549314575834975458189264388513224870753421654183532125280879130708428609098435569617241699692720644496451464485294614079810441149107391520534480653498036966290006049475524312701388004053256967572167915508874461705771428529623001866328767214335555369586688732849462200112958350911296066418661381813365403193422961652943671273671403163832773404365883158576128271010255154705995719014226428985566164551999647013714082140806833463531828292663117594405269552044255118996936439666421368943926451394571179494890251404765001232521657932400057802390326984433573226237339480379560322420491705673711006105468402236368008556972869311520668370138483720601058280706774964061153035131466724969501853999447047464973012688829309136318209359694078956429460240889030059180381813617660300391576264829307053403427726423173544246554018725218961734655160254951197667156160924397079021100804198964423334083556295115869268690025297065218555353050252682683435284809698965053066072580003113629398105877410841986886710670142609729416672228114997470209320390410294469025054102930830113909044756132407461729734832428171127668713379285304507796387343792799252970132701983535927842769527426737291785851208984160939724905247059275028446142002352528312332625050111734048504486674167302183362005735215774638189415507899206473811082225118830830716542858303439577446256270888647055821257371857463011745659191623901982945978575170371682279005402472145250778018776489413484324907013645379567397401015074110480657233090770684732990306772305087768212990284008883844018099742122805241472326152616296521197810302938023806586834752449769103729187476778920649338016986237933983826582206492081151949912174355393264365926538146178740314411105637970720687132826174649946634768500390067862712172403190666348711313223604411788727686360812813775928519425662356348051604581667274485795637234630764305895824389460627889722422644793701113474461456755796750423625514948519937050479683545622009660716099552325123266511809383702670192269588412332766655663143042983181554478290131028402428517825962371586529353472821140419878164764418687011790471757514352356998700780750015099448430174916924334335322974849770297382110871597475143626982475180737936233350267333738233260757223327954846411653552789383023901328499273991922246552754802195576654595398287184946863112397757167211685298226084077447635480990354055554640390106507478438898955114335988094965406734669526341531241259091132156843702817184781664392865532611103748310883084873643179240273814224823896437806128790581783698304178606021239059460007898092654062362787440197893556239387556247958501647409627739204113986500888800786770800116725842675841094376688152808688559478043957486987047242760218578936966945761679515538327934569343470408036300870569478723309574622261663422582596670854557668206772150071994078299525326960750406067817444114317666726440917033929711831349820972728257874853807911976187450176708751408595161105842784358274251288312902975426903755696941577371677876595445978368644220486187332812826343997681214432287545551390421699415902494886144631302596339256830627190711065846109538942386219409216139890123069209905140987230231741027734284781046203604591111493772208056492738236561890341967679737540390145978372045058768935739381568086262066937371585607624031007466131435803332478487930429358638404792686396188207904893616979884368258408350249360820902929322963136687150684241222396217908204567727198034392347349041478632257460384203653024657894257419285581732285369889649364244652259206902459941412732480394518978532066378066561719565750822424794645754892226773131486582375980211447733444748041638369399917860796004386442801370386495229489113279741680725573787331058141512304914974556889640547137963899579885637911041381911269734998124265295436109200879137303409672431509398306124547918852779471416696628212460050341417376347233866619295780696998004061535128336785351753283465046415455008188334385955023460067354135089759462224738045700544285123863484068323243280751962090333577588938394424653848810169918054087558166989583426489774537242687030060976202725439285825428733544432362820550148139923127210026553089377086481600619792787739378350807821277563502548046752210119756407742738820939613006035856752179663381550199875729865636420696547309524663865113257720484998983342289075852711595412580052246920663474050603751815990386443257511638740226380255430292603860665238670402787516413447486610517061989420580067584664571829046847197670705284021799734126818472662775468205944297119713563748618071977307485873317981696742349663647442964060989939847933464678886963486501061701011007010247658759926166968481753841089965916414715528648939601034293084413359724545401264516091359742492240117563737553107599280627321580882473180990078041244969326168899104993073502593934093282905913352515496551024139804947179983914913355249083804648703538916465427084936274205047632436626732799460850735779992092614859687809232622799565532065377522458605634088613034645907264218046549356311016902055207437331442487804884349237134712821013933372075309681915392039747038959431226817630951814243603226503690516689397461238314322462926598977334485582702594510444459181127849623048061955804704114016814974413653689881175350895333548434837604389979286653131598594853593089904278886213585979713886739734502548075650916501609062556180925511254262618205411623598177403134236403740942611716705281717887317391100999651433949533446698976179592309191577666311547521915793902443269766945612469494852549798616191622719949561338953058965427493049672719787161827527739320601455380783008506446083180819917698525240014388418208413183806405600597404859298568322960429974565322199602087113009931844223226198556053923302685391869075347913821878793988253127514655071012755505236473169691329446772332908681457251351716480689543934496372200557996108495258141991786733431635652169912635192867220550268727944232218474276193793214879925080990683883319112332936460605726479913189216662425873335072845149563909476732483758888242596008245466589178347509094339201020255809788693602253362132055072057508772933214048841958992024810408703050900709395978136598811814426026228909495147315358597230664488393757204715443393990551160325977598859131689036570500377303786302748246429653552588355868485006944281687313530642790974302787051348952553277671182142736125852627188415120631129871149981833681067522970996011070950719267627303584003427571120373580785677117200035054809769821940475741498828663681691224787309644809698197550222045630855892496981436495044383427401428325086587553001069168454300740947144300953992157209810783887919035280963261939838657814529583889415943689010873922726371653166865598396811584381896868877613998787331560134312675534483352629247427385857678230732522004734077623379403105360745142466241634882031688485224305018956899813027266632566872988438033610441672329984033657657701453589127441896842105201995919399400231463543686240608426422461117695621625206199070078405203620036195849933509938849369417125277542130884059109695732553350553184141784702837019478478786109272421571795893759403960633325028540330539971263615222901263431402952915507124588349493113371950684460906277356685431380931966900139028264777235398143114820681561139713713689537025037908933252588963237127568609824296329118577973961434454733638748921034980568107250960105120343661396042030976244994740293194065778801670787994960170080420001789793091857845072896925549098902216164363884009897413041126387288364866972445255452993568578761135037818320916590457090447996084984627303118192084713438729004663308874474405965498024222413515867409765186334689003492079025655918537098016858242567656092006792889624361085587574327646278910675601512783157382377041104978642561382353519834384545534152645221565773172086714648668333697905641143755471443179345431654534881926897964767756175617731976187415362480973253154488786278283352239539743176381330489329765819302627067939166000929001517205993636998392175270934864312007884120748626626727457047749449362333246966762920689313569381493128062290171140812519585534684800779859067226883713185786335588610675457455342206838993431333991900291667320626776958100609892547260548130241075914354781945634226037524699023166392282580237987233119104516538299174155933194333666599512901324717653663385171733014025991806437780859104896771131412319926205946377741970996247410169742258048614893936146069633711622784853273984880782290887064589217517947708620111116047098838091680721264491341265697875704568961868062069841464784233168934296493193456016674659027093377526687443197892005413142578922250824932714378624530383532012290753197944135710253304500100095194019577273309826577618913388804507382513285562498446318262281067570165082964110752217281165962753885100891292606821043707684172388169995772003602260116611417506151157868129047382923008628381121231314101840843884613898821111316854286341706181388822651822950468092887058667696778514976415275411083217735856418237818224183206885879949651829590238223931981330284941909933820234882211010765787419710062471334671908272391830314158240589423986002649202757979335423410839794108661576326834835833460716957755939019304245580760309667533545418697557903532552389867407060880965114051003027190007488606465890571611056796104160845899681603817288285215798708591841282400517315532301023340245909166639145126556340206552398944718795048427604401793959797129561381886351301899594654001310355943500043055326977489535954621108088931819769896855255712178475798913231470894932739215999418113586272707607576614774371874951105391589027091587040324666400460401680802585822986993501496228415019414620753324803252216352253467344532093521678594042949286420739435358086990540982098383514605341003843304836772437308453612512500920150211740233197324969627835817244032240297705354086181904975701886401842800565331696854531552731909809547613974911314742977322464500254507048124703682543400289015607959288210279289605158116622412177706870527198547169376359296696047585334990233277748880724737211575158025122660480252929942886001632836120776203388527438529496990571902014754766298389249799610667698435867637926125342119579871758898442191429346985291273032309009744637947749571208631108545504532712006479317826173910569333856279077657665564504240899296095168185935729526162357434960060567959274087588150649994873086476079638351899562105213105576464457206320706965663768218437094632116592797433721888701065575301106349652627870268500729089362204018103259377441474478361528551284502525286079928336983271481182726751834101373349861286146763801111774833642910411458796830298977105912946651150659651706046933388837153844740188890199883077157744635496153631768511301334877581125050570144343733815540326399156779403059486044607575757933724545724489104964343919015230691436408759938738460570169481724806236832288814317543005720470389312337779001670115245306096251948768084077372363600023962076605445786675899366261070118233296373643042552230499652437813829320817659852909256763838960908139680497192038415020100339088194197616525669109037240055806768102388210622467686600098726494852004665535906663558927329386514207647349305330594556302790743499441788626947019459942092748376181844140084686802674691591620481281514961498587982991132776737132237508663469370970902939717774649261349076252324160556999108893345370402019434503374937235857847197227886855630054643429028193017527776788552076489198956318277109169072767328500635171467993442999954381663615558776792597610456419271870577819606097608151618941862998875276862909543518084621912601622123878866565601452585531067864077549618827565005523174656171930782751055212885231341128020006584745552391045820162957926450168010951183705422342758295074821286067390561022919270099679639634726171696574706594795283971152606162997861423634025631734676661558691989766686582229603811778054768636728885411831108432751939628520070905178011891822426415364987785231934218603440152659834100540631441638065493327734512136176458216664390872288284519628705589908867126355419329324587261837373266273408963889856448497828601634388689799272240297702579398763208224326973001730142139689636943779195352460489784674232572231782473434577739069772901720881416989788534904463114052705850659211991660746268746760624955917473191376564493249232955432363256478288044874254337532254130991552185924139832418845664669702437596650957818466331205494637950875616961293346236204522632275895068586363635408077045005016694811844033908697387197522272843430341756199133590781220856074152913458284437152037206412321191416462993303972736426306329845755480093496142396233966253843681089405231783874213642577079249909867250197769145658133231704658103388812619790523771742104299342337823635898552310470614572847936326943702581633866920918354736638380463695482989933532517061252690255370162826081285078144095401847590004679412188422260523228104423399691328949536423538671047022637919472850093710286943214975249473417600166443076894040824804552273126412344276270042650931887745664956067777022325120472979226248993875467099601263837392536746115021784565243832518137362569457362970638628522231993631294071013123785814791211586033606669493781883249644221534539628329883163211336717934345870097327917539053737048345344297219667863908087116477159175849751869131946674774933862229119452657162915796859582946454813243118371027168214200275016208029307453206355930832512077166475358895323728425149797120440426648265730914559982154337820500634222121891473642143976927449683025563653625703581495955563673850773764717418498198147271573842567683170622208333988487141771380590433013170307519290320518003272710360464091773894230034080248132203943849404857092847113082337829138228833572897591227645315282541447064580588059411671523265681435083196016990804237539207104428617380510630831580026241694330826088685548298043943895409049380224229897875018251636413043889396539638821473038000005716668230921984013864367608558012199349158401606726653415970310741814698585364199814000494741291712893091543169777748767538778379321457104340077142955139479629179402839177757393096385076374812155648028224727695003952696646515746679172799474191714458732661606610348326564002100732627999339792704134883463692440135870186520625515995818283289119395795069831902678584637406321729421402016536395364592015895588790260136998628862324704912381652887180941240625032988176894668245170165130962269839705521636147062945602654001998458981159947985993614491035718682891911436378512352507942985204820975468238383157633880021823173797747636103448654098243702287392522947043532765586517019874223233644660305733973182995392900524421207639688358455095679125706882516770201714632589574320677605605295990020412017792301894917217489685560145179123663606849847983055265128104040430850208962930603685367499611456294878188444547885510868076488251428320152543105404804175608182102575640539821006404182901986961763911415339655328420342148742753779647926382770453388163955738935325647156694214299599825262889820133742233688904760912852775982590902820871724379193921091381057187683269448777242099233900242024791757823358461956266341204575965826982549318733075594458764457138472533846532227674459551345047647197900863460335515900840736284960037003060534387264149042903245570832486031673211956861827330391492611480626446128865389446879332552773845831233045799099914185164904398480355684923582473843532885612290189830300080848920368541144949676074726906309658408197894720940193573806308523427841097934460025810593536106889696341643569259242935753831765065709168211942739496294918171341166658317321998011113702482391750306101818750302552127911326729504239078498830664082190481789802347109901727243602373178975077031738935429929492278846627609561834006064200595045614061967495897106569795826812806423047200156843889049344086740326998761968605568692350005294168346349791898105629743312369588759560799225262883592277453452744022588737371365088428520487677294569391942066715701579291513283484793031696368254288040948256966861487362190263951739308254995749453898805733685624152011305520003224128413460352810185147130650867723393516773453717173899344523304139160195170702617014749604099992041447339433532385028449488010769932874316986006182786104046120013224179788262497525163258451897647162192759473044359340389644288706972127301169618675198366197854509762962023073922717408489824731670929675438261586994787471416152162568571077803680615814793831681090827506931698913924801848039444668673228789328981203292535390550731187983049606654257110294134914198876182399088580132006155917064766562987304621816780060716687299868233736942834443111614995295885923580748577850704786631142125418088730290531760260043053673486059539340424771375603703472964833244819187498303107053926550807456505301691251998684218895737840621177057865156422504619676034452483684861523507722216171647073643931461153007409290784429999213689894085475220695481238426770463206353371554436478405565399330611488363714161001137872916018729471495280931441873160928384830830124425773939442231674698705417298486555191393396018081644643047836059408240048128061709399218169016140572406205863388096114365258516973258027988882657478482436257502255666858752134104551632014367060312345841672255574311491542705167901096162089306562338589790102758687569057098636556651007410255922860387549809437345405807573317408908645932734525945294195275289825589031586826678328830944023288926673017858661552756602217287037080605576260862679319572328008358999145052288325843678909413386302523892617763973816776936359542171876762146623440544899841665759921592069054762226654396186022901212137397624145669687390304054773713083402984923158439140518456718592159037865610582055962924573352106151538093762571676402724121065869698559694633937980572099673571828159472588330788273869625355594555321060447607157618512276930307504596502210383940872569654251778657200514347823618485671098965868420912351203462660905043911005499507604731980083568283933739231943123643303016567583730038251629985129766228346924292160273140519500435631568998583754647631632701437824876838848238186373773152646264569501669790912593426354601588785044495493484506789801137442682752470240029298905844043264810480742922805122337443986781849523521353086333446339288254707256759099485646983303330561265259557101528204413367226514880003676907945531695646153485581413860981635015437125260644394427509036490430901575646494673612760103328452923979168716086488845276043806280950878863706166620262597993301835890447786180099539819655748620976575191059252166044889029525749232411215140326592144146819638947492722820370798139690370958541289459487569156180834538685659673291381347210574292810607398658839641020608242173408305240577306239531047214984692191760018781424854098961318415615287365399923158380649903373166953540304328707822268024372557987298488773530500412784873941852524541046547896535867590296689175510822886988277694040050266352398708818132060250275683974244297838453020309683449793282156269042110266870569762613367874824658294355194055916455947549417383693621557993306310693226334248877855964433343356990710903928104803233270359544837487579434985837838290011597759938526076648607749533037145571680280455537008612323783903147592838707530724340797597476335783701223526117059253359528400540295179463038494140048729992936298803414115095181767515747410590491151384789115886996025683868618067060662560394891484332673803988622061801903368294121271479881703971912081128907963012519874122960158269514770226053331472932608997966085567183783416752869157245106162109375798112029573098270569979350812929236845887444214235289436787917919063021138987135038020714813517085441982787623288150185520875638543929172063115532619235414995496760492639399287429199577541684338918934930106067968392384397742723761140344608767347774989111620022225622606961653951024400923809939515744770603128378841398757575965536380635627034472668620256697247362015492322217956670283948081988882079634880885657452060809800186652267088867711823337780462819044895587157603792792983737751027851207016291692588789312737786615824986018870588885844559696306713647253670744637111915501443851595200573433437757445179930999805284156210489203232660890455482817602761657385800977274661359651409268439072157087481560322421416574974002269186799185048158755535488088703066700174224186143800842901117773223503460492895973285138759646469994649185867125067874623503596872934430916362502271318157299147307803083101046899081756992705605496124951887552406428987694131383531898729007411980669003370133404618924295815004296845841814088886347727715108881598905521232687390321813774659008937373153259312399664054986609705154897788949214320633002949647781284372317224724768874139727117283989861457259996576150613801625500238211427191866755606043110412140826728759599657152473710387281307079336341660470117129132941209965588955737487062264110783752769796992232184571734524381863320260812813616343358234828635090534982249845685866523398049542764069216087519801991505331725496611149027947421516759559140387541780573161284838060476630455026779918401322295886779210897410118431462326171755388468695336009321014129915341040496666550513988705943960242182945905616859750035458059192779391467985737004410488772510004047384921725203223156797680044497969852120749556153129597563436045891636344506578074229297879775600835440704480333888108846861899749275045937900655538175625276908159396577592205982916259286510771417372055502159966900522963856831811638328007986285625497751989691734750266747582316512877951689557832543144415625379870902386924657562372297256199308631940739153281576607235573853976985946824659983054412948592834167779659731372122486684290604820769550057496801822022266344900996119700135985943018901624724145601400366460238010155484683129431116383139221964844520166815067817412707589970720485213499139986827988843246461590012542285172145552900400834750254445127199474173539608834906310174585011460552471619910524451170466280987904888903910181985837079524875855257986176943871845177321117681238613373021978110975194265723026479502424549631521186656187567323444186606011585098142771226549834733428794263348104744284933934419174916334887586512790771703394926438875462739053937789716206177068587931292529949994842232547676222573118948389822654513458298506996562833792011664696570144439247682174527152492220948311932006447038257693920887673677264963990236644553897200188409237811815485773282337008190522788467705182323928804181522925704576680710262643781253161505339643723191786039431394119565796475603990094467623357730261150716789349525167413833530906269624141613365851174891116521324400049838953115206842488250314306591153794405393165947838566529338269786384808865208402531127511345430105754789707167315860873953193179250194579673215067540924820731858048193376749931235917973287512164669981903641798660971509337924711173215486446725431948476418562675433658995857960001701277780036377777482853791554260253997858182631730818503324427009839623960861472227667832715262364529360368083477429532446812694631461106619042342335830579837067810930536450915798117663813915516323079712425268927541762562431947881630839427385002620109215551702928431610132611019500996119671750792494461465956992724179531207903737661688571936962828091328490056089814878456008017574979113901102012183872087535498770353485423572855497379341424759200443956083933853754790753806963359441727950805785108698293667974438774000685487788694696729418850016097302531620621888598400181666309437724781242040765380680168813213617868941488096767879362366516765255210207751620000746222163798088973960103976926651886501464556163717676023440414373468732252860598720926295046515664694502637097445292884858651422690349864369222685758538096381336284227771456885014346055800152872330856357084363930695337615938819586983305379475662345766443470336008443247033650690460447090891472025399388196597160638511421391750070215973178488923332420139712197787542041315481118979255912503377496845337085146772560591209652701442528251554074385954086411898020577480510559926239900011391734308150477730353774431487657540321960417802023612644218019977220141927627982268095268897650741561100136113199974524624907779035723287843419363507698224554117443920103732245529011167637147967895044953142452992866844366215335185025146196580032343865533721694566547369271738988243047080490714103993487008367618738419430003571345494669996820354223963491233080363621808031282124015142913066495190549454215422444749469540286300386223520320113335842453230186742790358190086010116163979039746987799666224186143845195240340556559062340858069292962566853313083741646071573621138583978821546616045269598744582065800972523967519014062782753038768714670452900799415156835911577071289722701603476785860404376907327917543949799380292598283216527199291311747392429354053334895781438050586298107092019049316327562479506383149184941557330310891012278229331744990148390687479461676531770084510716938804842720843835192294107577680931381113416443160362105509174107759192867792230808176162463140769113456720648572377883259210524922376623343523001474816079090832476566072690874580134907103110418987449589819901698779490919777980091983971086297961010474382216691514495048178814268190942894043194773515189235264484554692580120372527337570330518139680345284465722059791075987469349747830484497614883362414135098363197355982617456341447248602575141662095712826778617054601628269010267501632022632364697423182755875189102449784910787370872451444426991942464551260168560683284271412422459820027967246870630224226839836527202565796393525548122783315410077757575744486473577788024018852251012856034322043359287126969674270651110349431318610173031274499549225863982560764114659716972488436192713938805914215108137612294802860122053249384045942068055744887792826204745339242003405851263905296698470276925045370413065966238370787056700982056253619787009474521050187514622392182374551369221274640687413322667487849145910353745544760638807349390612014586451665264810318174334653126255648388411292370994562095635349142642283673349350513191753720849002490347441355883337150719544902276415294534524581272200170486889746742382725569523596293528402333625826081172607930612202765856269639497559069776960852377453715568309562706166819151880899663894505020693280933008670069013656717307588339022997009530718282541592300745797676215612772779480131051823171836089565989341619647704232563392401694727858831240718994374108855706501302987752050384581254692722885665733705537805107776174514200432402788170687803089749967589902296474758084616680643241155804774410000041337276027483980929709939176556026019792839484759449029286454537283607476837587816367987459363165140657722678903267657145287925086195610056926277379387097537073684556676582258800854818284010027595797785640545722198532922162245811445134177465133750046582835541488810885620308142753318238478375840887558851280415596515484029656696904168613554996581384999628469632208390909763249000000430989539179713021432963337206501852256555212750509231356759274237772860990886125090200518880527142470962051289632482105142232573873664035314130355233222395947494778452797117782560177097903126012665508822462241547792703126025459976891162933800007296565503684516151521185051219005053800723219749872234475501420760567929315970605359885251883186767720271619455968619553626165800801305454450239160818704619107348106717966477660282932576727463875912001053028339296410532221278683920405828043587483195335133573453511752940777490866869059905309085629416711283458335595598214174264820719915144403500566874060087475287819211208720121620559317038566089160005968916620663208923535109672398755937461069936582146456935136740485346290268809621665179829493268538537097867340116450513386453209967447667653395854287655914841165200052635949074813018024187797345542064659655973006856711993828791243616171783478875260575986222747070002331879239755059224792899528726854784026983828440771385213708037795360679713577428392253151462936543442490937503266355952294453753371611221490176288466765769863293304198942332986400799669534645673470081887152767212264979121160333875269240594120092830227665767828005147729660778041984858969739933931701449930139764192795101412447965770764194445382480124682545236816472124819440721661110999768137815309125411964520230277515510349205831422346920290100971200939134425114689374786365291758186202921639516305288215992341374671128326836727326063079260326692147350606766621064050607412501024814372585949987044011349733526632391729533032536145344887271634576083441056814728413699940712250979277309226429729108069562055449050857430704809619005071960137647655964106672805187135340750900445284697665605216422106613127809265544503031364404474430744962775125987359663679693384955134380832286038288367349977236944929762712066073908845867211628506904159558811469738925949177032135492067079876064734300868861640672841932831289218697962278042341064242065198019943400158397757539339972688358359371264926327315079494779353971592498965016466574085763831869544159506768192364714903223942848944899489163600268031702709298154859246074295948393184416710571166682168867481148887373163553366665422052737727710846913644761816680208792321301008946062015951391000801420935987968839864473340240188191570312363272881926656777110073453814038571530634253387379377069449137604275608916496561677765970938154418530269695190075965351538121559533786717971937686539469338137174400780740984614007124552019714690882808916348061457760740804095980535168997636952411208738574950693144316365323670845751526990803714708651177326576341226184822624743470577360816378889864271436888000328068601860082380306115387319971906167022979470575200591615564389462483602435085986454320219691943670264588180311324155433306472281210948458342530796874588123353346332920000778840738275243970419401526241959714238466961755157993526865645983055595442642690938368723745270768964362815215513200867126088255758770295258201681984051502475190283436068799775540955760634009642526955235606376067330549033483803122778840149786739830958789680229095397731988035754056269521956581586292426591775843313219826743559988815374347416430399047793435477343188748849378272213663120412189212772180377638904886263853942479555288331700223857120662513183814839078363039070124226234943894470214334809093365231930572230700836208563603982696959974428707126917382500350079754143871015909327910740285581425593014908530354661342542222386119993478910228459545960294741095224548923826026005820996437771602038232816729449255460969496344704771805530794522830259094381340357117715832549246329498363716495303898828573332733665969285617802055737643659300527150435467592258348778097130401673711235284017340758890212191787555982972780510149304929172549540932909446200423064768808378042074513859119452246935157159606187959199276728238914776282804872039256099377017246879446742248058673299185990913939521516555080188623769882393034967013885711903516711768334191473277914192538891345081325818585116690964284317779714606597210649591535051916536093536478960423925313497458819780114662447076437196408855121499225989812942260312956371932525546470833738829585635246151554311952622032567425322378249052147449945905126911623164372563338110323722527343176018601099827207037494941004062843444950558124691809755836394992254133767121603817415471174759422543416692105147157400518837360886921139436664448582731846876354321458245026957385830967085434759393723978706807728332734195412405812716135057065752121462098457237131800554224959710450911725913676750419177362240302399875771303661790604944751320129889568086342762021980386202314745582200989496215127105311934996535043114700006162021637166071237055942791634079281328595648599881170806147912642015754625456917731993986776436891938693468884673179986948477690366913748211090953596724373366968696983671711686749836565893943713252634158936636997353599611088907627315627659444610337918333503193537312152901244825520959608324036682166233843072735274232037646948052960918230206687612592102163361434519876325637239875218496056358340039853435917978539789919366793531652862570210000324366961171393650571584210698813856773108279743521457874341002504161699907541951690724539815263481393993379392805122690266250299450712760887036902974800644819116770810322084392481166414504292348042382300673015697197667171785824158308178459398199686982797538070686374447791497248555206686436429636411680447476415832462048840440382376956950284085467969080032560628132478720118618420113782106223850987035125879412753759559925982539977023521317118967729857941442691147850041462723395549124106886177078012353983634629943858919113470864838177766290540197246158395737568587084184217380859155777546964823368597182095091705216211567750796293198477021009790244619576249778877084649416314946279398113767733375285159252102057546591133827023136295035799935667024711715207364694861518493065234752519448819495868661608882318522932110510222153051884901203848944206774386577275842231339928106111291995638620758619124152403730135386015058566735973181355236130129574356550773224156523527981023581242551964527057873025289245782901279793392249488953188085630492193741313824627024410071762238489430472886455479887120835046599615083805673555906832767666016744300083811977022234236537085531706946948573607218030165404311413804963616906264569704966268986207074539723306769973987731248391153177006986160038799209211069897622180818954175415084185118176375715861026667861789007200265716482795873150866642058472526444095630439578347369968971662527696828414032516960295982538890459862065561501000697976945194255224825132603352013653795589102620416984758651796698419588941260383260308891663078170902935789335830498295233240555769812600351025228364067628329259404099734617617557371071076731037977322601695908933605275597984515231979135215464153209993466857893582084365621375291799023833390669293334556001551291646468899754445463949597272285921835143927565750631343033794541807915523417099217734331402531245589983488164265467256272545343458185703472736207540618412500394662734009752174196292286329628264051402403184220440956808172654957167557541952349772631142869408092443679722378656885159535161649866399884227859982774364811487670462573739097025694786555616083026566022508212332159540161733805021178399761446053103964584597780067403854027226711406544550633810519865703430718584080376129302558938440666139919136716314120885110746961145716141385685972005030436165397591245961696490965954008390061024017116374653741065579375009425148735968038342225109965205588015564548582134122033746113775464663929335393428590269627675785361274856637236622218673555179162252170137764885936164262271570583098191403215575306904814442724379127910834887610671324793311129933314091051545708172703358409782019562395173303427722349538825874553926720275437469245721880695517222277121455005238579515720880078156731204508350050167517239599836516751722191058205766893291079409823770941145996106741223367080509349357100278121792710533504969395328611355043542272850726830951090612516599430719062501996577528150311856241021465546284115824359329439869152648440783350745848816925235870244090042915071462525293781360365811601353739862245083469259990043309685999422946977185428920070207451213337606989430349709253486157997945564120445352109604680056253696658058708461995439676007427892331246739964303469856470881280552840614338429776390531371130562313359783848615929215724813012907335789597454431987943690553826021303029522202491994853303416540539066679323113159749200391194808540093785595244557734907347429586311817429462336484015785124066080943075303561505986454469275790328128109641851931867907068744125697375463731600058330196269181258220387283664867165205435104777736945256710949381942774640278363033297691830014784424045636055807178375977637064224873021348825583416593150312893313976525718953793076537916823291493717886791818699737240744691020999085789649572585633307650463514717728359145558616625546892553639263885005745141702550650288880736748732769468437509772249843596633538303322975017265603573067958464613194787589358926404609814853972720198021082976679610237318360263101563921391895326934823093614853180179628957419537861964738411404627716906987576311524459351267393712970681238583518431165126222681623512129584059123050618305505196321153470235041639285844653417465868479339103720558597826637369789470001259244076533652471162071307273998968272419689897132634377312150835954033802178865242751536949048829986496021197289906015833090246145211389867353607781309459295972776751105407230392498478184500011286428923313223641367063845128245887065132705579775080203493185835061051672454494048243689961734322412967817017922554298202150930465991073411272748336995342219856654943594660609991019561454245674857968808247813392968773022661424780902997842928822075224981018599302028030110310514534590787314985545394976687882101102832605472665471635278356264516074009004261509815803974154542933556479955472876282238629790158239032890941111029599797479004012702614922397878308669147235009538044839172984609531712655948373621029762409331320348216419847863122722039707154841028588740495218132141272141947961491835296495267894290899868185094627931745069870756683584201571260538256065858551588685717866800579289954802368647863799633874079367020299424976964110102184374466947622432894005020775199431585202677393411141580410438368913070644843010466815223628354323756434805696546194738786064510038308013688800023936596464467684065598516280118271915674336299551661824989285291049547871943839832827377771318267586938731969494504493053640143758684331659615549468771851653361010794991352402365288931991990468125224560382171086606489725198349053483639950667580485504267354913849443722323124227590700553571346862647191784858666504395750089738765842152460089066991599712467345083985117866744698914093508427238262253545933779479561323956576417389109114132897105024396345392974350723682695570834060688427064859212712114849296164244248576264996203925124635364457725706003240004407358170086468673647353901355173222589721768572820505539916882152474434770393383046033789370876494116741713971241190013558973765059611893945719405867474779627077115087552160925571278838370296484868364638874440423107516998689513539373204673492772882061158442087389064451074450242634470782867415296192540085715409426047994169854855437605384725275739398380075655936567441812291006240390676630814015253613889150903903305981157398045522847946405680777189761441395837757514131815076125846031444103874434157497831833876540336842841044214997116277817609783392617579265534967038598902426844164697264056421849806011711728852448736651969193374051162953759484890187175074756169582569113381301748157647124944061142406480560481445033684556014427019509558825106432561567545550749448265458862029947441641943236385628437852265016644271285879862930378992231737132734276689919893653478213907942542396999694969715229849651688412639901605071106415181809560277466450573670825682629025658149792290714437790630170220637314776084278595075359673539768052161998303328077904974436173610600477838426391248740621970740864475501343313821323629092244042592643228350768072726924059132129777046982726475593608148576051079186745305276258909442252313708859748270451816450162807574165790212159071665101369687609436199549378313611863780755314092920572905094788269758643238232170933008697060785187595426385798458257581424493688759700354010361593046433303906503007668893211912214202282106873409282818757624834774711240358836861002513391979390139199774533053530616359879857374916236877193901980519903161209040538369526782145951347972653367685266835443324091758842486530021860150667387421159471895671648168539038826269583166531042919600510197589606906397345978785470650977081181893780294202390937924088248602187797255491857479152173871291750143996794049833683054306555495669876516688881957617982723063120304987222406967472691631796512949486046494127325074749069425078238659554161749339188640662288338611007332872928030514467641012323848173575922887176315805806777663156081841849961252505210946809953812018686212029792788005412173292691680762314948922181424737128143130978911946636633862434414022524642159957159455340874664544006632385861097511488867926934997157062243031159308768034522997645554509397901532503997630291010091765955032467779231182147698320073472271435721164829854323179717335866741005422666195352714197213308960150496650553431517415275157961241805910212736138342292051382981585024538690585546335676911431779321109258206380177336810657263623669322265378048351894477270047526772701268926847782761798497806753325915370876028590105360428232651406409499082158187534388930867813508790276211333391892448728103446518467666711717177164663600311137727424546997875197991578621616681514865448234813547773674086406375834356352487758438689301334599424594135234398170192432773809382649679212499077465075359043842586557688604502259088207779029252736517461036061978591902790623933323408269770770860278022139799734773337584345952926509429312623415946929458359106588115298880023034932576229303445740093347294133041354045651928178476358718580683168440438091838496342486505720078793469556245965071042845374333499655717999552271887490329725528620500900295922756374491423553643470554019690242489429320357876062780244770338833146274757095758450648128930076936770966606301155928270655659266735146998533243613145280839865498705694304631247153647742659020093987198927049850891434220573363238416843099294393704076766073336570633653042985315410213110247657062563759045046393816325978931518503131105352558309625198888367719608304420186977279903070454959956715997774790969906541162639610077730692975140527593067542084804543925821033204384955510331689092831553498727426156863213386295507295253377444212490750529951425861209932083962359757996121829586949123449535455092183208434184363944462115327336771723422456080102898486940073583077086145298236831301231873366752110498291403808012893482838295794941296216446926360649548598080874933792054242374897432355373218808464254283769713324393244755480861310663191786541270170772705891004832730029407880757918462271510914610922030648478144705882775234724034333943829509589437268310730640796700734719555330712651304671606431353145967826191557190488116768798477430100958718344584208255774259973061636575723870320059307901690044137653894976976386419028027680944531253885716874843384070459590707095400780259059245187331524946631378424276499157814398823337565117961494550513395940040515831292426331740464117634738832352647234391211682374632204945000828521847757733530142675207502537833834599887939120311868565482751735604347057419288693004799575796193239395793303348517019335676370195461642934592937662473500960442771432738418849353448163298658119111253288275684625156774436970886511278587516667346012578030384991623835671664929238934835899066711690133673752840598476009656749039116919659327880230347709150563668695354630648424320359639889951745652052227874289462762545658396534428681727860097620067710633445995398445743422806934211949272456511790994981245917729734076853550311652522727153920154655584608552380418348397170007763019985036153217219633945311235417672131106887130798215011586509104979075778405213322523160707596340784495270480881544287102601877570424547682505370459565572131449151648476642964044142196436498085775843898984676072345555111474394965925814404862754296838951751059117226466718349833327544830136397615134409321097134726151914732587074026058682452303276285171496791530241507376392148359735558205192420401393335849515822850456496487504816840613556861299235199228869797128772721513741145022352072248904119807122405569619258504343015209890133998278416203199463290721179152041496653198570766192162249289250276118607187277345047863172716372763775723148201963606663454461031650225781063063658294716346196223864140963526875973155770183737383674275262216081190661675245588003284780116399786718813789736047694478000255528418834256258004233312285997432968464590608399837713487453030238484098616855995283812280488501679723523798187540003678521961048285661649399457755855027964878386097318800125577730929380831989608013381587286243390911883189845745516739596962566422180858055358565280762937683359250237954338427732273158092173707225802716354710585775780626089053213784233633997461703176760113025087598947174517046516745345523156639800039459210515083756360435611267141772677885004078168702230185084107633595160123435789497441039818205433081475773769001843428701775705647518286860728887058722825292993542063404057942294251554738582561783283270693003563015559976498101861167143304901197268051227667349872217601178446018506244251166668565748729728159721572344971140330030449009656211191792699144332507661469715353468650604603823619776940112078718793476527697528516994764122847107266156542199012880851015763664659625412228150349751616503647864676609275454827255274270561917512750173233437977294016348761873777071688198601177674655424586320911198141730339243951149106497779086767491169452151067121944195172543242000501310027016750029267384793370860236995107261622203581118879454500902950045572730635645771107396929911165943016613873937995937384319813641742239844688162759348974358638738880993542425646712946592200083895244107413636701814701240568775703641942076019753032848803984955276997844022024545785604060800503141368629389696421300740032720365920368432140664109225700812575593983549011910971053701705574919676573344444025041512556190813617019731227717611449808794302186695197100367312320269140538709757257948439556651138274985902552005452264707503904093293872902631671576487424583503813775937998197321737094327659146807537119811191993901266279011948745292048543999406403700951914900556951543526207378547431204681437218313204127319995030742703287308515991521539293612534735204119154366623340973124622354772214223688920228302550481066522542129641822483610413212622260237359144495362548606241652902181429714371024567608729512832922599221722722548841429785666371015208687711414351527108222996993254721155317020603031720403551698544680898433638111045325159772878672404203381943583832697288407094934232893394482482220015739276770479782518265733126664696623270396125937657826347705843489598340539558680222657561063610626376331295391198708394957848230950774078787451263422801450496101971273786421869476167247542558305710222846212290532899270534289022433923161080717445936161804345364774230116022556995307180125675450832827070067710533485899728969296707656815085683100038900228011653520545124357686563870411654799632681034065444051731778812847110793659084808729062343020698376208411497891547545707164325236892645205440904475487054006642791010952906620160494890424386583105978737359663234120587460050905537972805174290275015824620090262297452372586978887844206467172453244130709290173466172822333044114168197595018164134882286748703403060518680284409025228125608651189287500186264853602501195065670577805563022590536732926715668875874044602089010746698285787747155219644747339260481213948703379046792680464856741864480021090957265552708588489130557227904297834433611257725454617523578119809066311696896708683167071775600229283310575542767299621874761177023812671141257406160774982763334223873534388503315152227425683267215393451965422794556132620992957028120328486673190810670558177819053042918396393001472067600086167415437302062756971521675953084449283060944226084846949427683593479801704835405297675770959963330116955140660780906990593761572027568257820591875241335176082210243099750464321316935806884354748153690254257252071957473951150651933499293000464638398314531964700396851454959988909634950425404795011847283340654430889931706538837790374618422422794690261661280795823811415447954929369731264251094234412796133988505343633983787087462212375504578821503093996644964329385686399440254052948589262220975430263576446232360757054354297556833510923517372281706261348160376923851800072228966351760503700827254559154871973036253532834479818480499287708649795899967428957729616688738808845607982205461099012872859678238310510447528852966283105862480680544514452335190879407907708191912071947826372694671208686876906016583678048188590560983019488539485362325296294677686826396806961274810427727052328562729180927038106013565122764229139800991337350114245131125482661215833252903534855562247012042811660232792317320220637842033450205142881856321628961894487054910859598597008309091223334972242305771175621002023764014581498510075192960715170982544965311998381091043732112629518302350345467791979676552175393312236626690410951025189821109511127304858135210096533570563176121309455665059239861264577394366415332507138415802912614679087454713139080993808655547679880024641898343736258206366282387688835339026118933284620238595607534114203214724729034686518489938412195535717822772150943243633732362579025048702526018301631637964667212345811527088768694124992709450664995507474999060899262985470330856412994417958538803749973268161233319094045868055943738399186171719704436456057940585096963011559028666506459603140991897774733471631794230639567516805758525950704200793007967659197014944746112756990560530915419905062477113635320896059806513732571344767208949883723920958624345884998315847233053193997900520603147633638863317478156262547770670953056181433461503815829384151907588079846495057600832106526230399125629283062331417647934737887102293606370146536191401755421914895577056133336239373314856135175693132766941640853440600407543364567015753911334609183638859363554115543488190153924379403762773782219697166988360338096187570807150040738843476298448158985240042804967663774059515585713882218359516092080507424876814086538773544518045080681413988869519553466578264547646369693515274269089796992051513199371842050506971067901538891866846198230092109682333367718863345495968325295559486241710867328287948676756203741784757563569252519977281238565038594248409324745229683314223355447734673566608923148021502650054832223667685295472779179547680144073325766349427688572263838651593089285115459765851692680062403876787184450156906798835506628199693465589243429986017962490255075347986573750242564051405089936244346642420534581584647535314931089141890460289222817840727713517273440543518294230265437785710286887503163533092515717248045539589275704919389583191617250444798651086128711651838837382290616387243798819417267809157255328484849395968167568701814118238409866295543839466870806388076802433766949753864424450740533867707705697617428850823699657247038027915934288724681585567486896519683286068095421906887141752527965660322114456624776372646760576843682052505554435515519786783090716881246063491228607783709090086493529943632676626275246997299660118465243563915492803876371100949909541415223277217308164806555291118525338847321197374832722975477567249089992542541369372306198980642585567986415286314831858866942525329169095278373253419356613414079308302460547633667240651087297063956919911681761415183982331217725038814286810366406059913980421822538523983548900736169961165659377034098869936317011193232490728488618618800788875235290711265226404820208619200761241341686326784779899159856023924822349096449079599393754819000462507425771734741253884222340029844912833168858009007987138586482374658511859057557280381870254145768508249348537303749944130183726356053457385641295678736912535881688796554380744224909355482270478335843303932838695351572434910208505179256843324304291614577382975878044519239939482749009153111970857348164765375213033949310017632591602425453417975537890630805406978505420761076923253441207860772370899754249573061409280384448153788118556094221694598605766829556729940569977756099125445598936146873635178195558632482836252346459647290145912421893553588071781565237556848242340240322334173258996051302200943253314300367675736518493787340801532444358247506006060045077307398749271223813781237023209296612541220956511313935831956271929033041171631727718949058097174783532659700049907974008848590238714554845252459006018508654516580616980770210214511551507073472361468478002843394133212265922143044168151134617948971495651062890208914661909757546514076709122645368886473079855537060392511877334471900999991193835342007715740119230803107419653209490757141074241308361617752455683155077263065361279564756445197012678863561245910677479867402184275959931301459447455984489849882378685289517409718812051524839040622464540221751230971585863016973743944112035548063067133592153118114574162854445649512055527722888535585830644704048803203561494797174811882511042958908740924128420400949202491215620783111541794181435616259425107168777198385074200404326561461669013472902973841336157119816823215745435733886305320355152761560357796013426746494435966590035940912797764791586018557948822277705335745583344100324226942580554814707142404145822075819110902949814299066287531084524354764429129487260654956675606272463057970733082774866640721630483929298559539613136606169703376183902937410781118201970153240098716044624049532030380368686411217500200777862264909515643672319149994886091690150604653066590954960344451753409348214121419402757775729277741195521664160235415829611964931605646425388140269878118035412340234757229459842951121604263092140104073541699137507976110537682099576802766284734028561790378994881879500005869899950645315954846972749648495127353038967447350005833951261182044523060865666868239324405460327486496027663833507427676923461435959515247081270487265455462659418649179310744863939464647670478144243694841714065002776678877643221879070056677037267401603519208216721151150676527123839450961843835493339359023533792721955427761154937262022963037198224036380997600564795987081397934965864003334478335668532386633867942241803114348027311995329874856400741391339336325334784099389275737399814423022727971652594802164109500997835930270737948127476330499411090471272489797255117798444359974812472953877326456662336965326603870428377443945158625284314488346666201419098546818139709971405331774311718773313606065510718982817870130956422706272598350353683932744725694731792703980327398054972241483876894076781065594030131926045523251367291214526532032418781346921446172302977643816803327751390712995167491501841294601536988035329474440353973197065294464506962934461775323830226684990600950868241443665063416267860075743976974329682220517306532754317870511653550730947806462091972456872796495500301273043473042330138796872693378439438662055014093896038230588746834958053703900374221512243277402974978120758177009779177288467689069967055548124143091063329676605751759712994139757875153285065628322775910637293570206234732509991844586070567639878116726953347095052348790823291450385533336860757934288477060551505971738672082438983880950033649354922998424812536641249394925976903005036437900492568611646711494218745294132273628514809817684352074067495910248604584471594974149841206555212537888454466711351023777519380883874352342036107390228360571991254214645558720260617468671529241486660488314384804755931887654512758630372576348381750564721827764949107564346235984751324185238504171152498233957698592962439979823524147920295372365096909085086915781684472057050895658057086320075762787623166990979921920542690763333911474674362663785776155458548612571205906132016667465275217574824274547840348158628615491822247773593844366174994286699213494436799460617706258350215454514630524880460488209519586587985923405926185256966085975348545935985220618252786316873807279322494162050407228670563953907734167396305321441493218944895778115860275554411379879970179970596912281844222580842385612592292907586429949987715911333906877383793379149149956765196106094899061517354253889861436137685208172410732744450140126865061682270556541920535752841401912748211878421576190281152265800453385948280031119891896383447257291137564023499963695452608028918331165669059793020216084472258326182297881094680208382968504728245604882907894394469180333938179179688155685307009867090261116325580185501606850113034606897026259588879896270611943134965343238693709541792473595988566993154564476525500929284769597108305002614360494713471698290874293581541274627043269377954838905950224676813761316375528982738788869430669108762073905369779752171865836237275087428181048227266235681227102805627703908070669313505656674423248569542643195491216480666895036892922305651242738847150682916909590190651278376675588167702283279298702461912090638318283101389973518282686950585978270514931104442753607591229866035804456815242267169076458564549425048935471468953289616962213363523518309607316824057214805250808718049939943868214391714127976222910583335830356452153708343958036779423581722465770766428670134769585548028816354760458134841913700435764062245541155275865726223083220713851057345821031360350367708628683840709268689784825780930708040462205063308268355126581685001644961835743583530134428454946155401954242553933169977415741477751018673681900094208297859329285784798422201906811529370270475743337243372285544593921777071493949655510416738537805768614319385376670461660072703816582554487423037227636712832756719165395919888014354963794713649501045005085431461847170465722881705964981318460084516984779047832545510455539649065847191799574598427373341943867582551026584766294712701381017818666915334125760578898809404980408277827559581513130843708133683608983885753635560805410011397515163339260021149177182481618705046415200576168084762844960902212475389881903099615769140901451701805976618885823969120671930713873521089421000894179106555474808528927419462138828424996306954497524540573033296547550384921604975131155291063748339809933321759510644248040857524648655816551483065298569188722159004933010986452658388175497004704509420277174441051674154579447751207900067229470756501305218758967563989537095837955813268049980319194748755239936113636465460315012504387148029547363502022202678624343542354790181027845615764882258671090324711207642266291837121880464249926128094000528248976310926426350044334550235201825877472793539424764751501733817673905364872439971210978188601877372555496294149259736461321999846716090953742270016855219313979971381312492703915661637779423911638217781200373920487562279965847637855295888037940353118098659412163489967716254615725248785405346798383470507639534263226339528724281146386583998836119580466830294449779763141216876639332460958535648982862086806485215206703514163422391782773534164244608309415768121492476824609298399646930021262186916181484047624894608354650168265110914571852793815314040268579496846452254924914332110383719653744299232191432255467208047363402144382358134367908482879433445194580707793184013380214169189208378113342333624438012037603110112482763536924773728412015585412296087060370315206924208720937477357290203601214593289563848008669869795998370255544845339243928019077248321159293941767220576819092777601503425854048245464123282239775745037062867703158320641510182654731574913246497218441542005950015244598518983056783154838638821098008987292443543314390409487923620558093185656666782259006401543256851156900230714584693761044138885573053632936185175894286372145020255877444832751528964303941853332668824700299573536243048167190722079719367812485628824888858827854464603150376291986146583203247933720039000248513504070164140974726130942560449396399198489010480920002852745876265146943634943870674687436906031102507579227806962398707388278467831273107443450528202285305681523867906450394106577545754879421294080647331600194263564727852229078971385233043561345620135416222442309250645706609622277302915727193945134469312041913832931587121973355568813637149966475959768216630567001162529044279803925409139308995672461351457052004253098266460986812738218531248489903367864090201836757566502368921386587140805138906933362035023210448348278412923468044046744888564758516139556711221933828279404288368291716382751267794952444485525751538549169469304343692099259710498794741030926414647210528761266869470332314186669148115305445493366973405108896426047861527984174313462780366282384943947512792702464811859039031463069570471557861749645114433132436361329361844418849184707006397365024652866483153903502053628287375313787244383727851005934024797911978012014175432140117717843327744274717884368783551786559526056043177755232603521822993541610720470955432096386757061768057216814533084212661875975967569670678396799881299070956598172345562815962869592002730245448818084322521018171687230866457091203457337447562140394087537176419325481052244444939700093333554795980981388794291613661793420684829021946235514248800003176274909826794027514366397432385426762101208571106245480238486820884841423111689316345253509194224706249212013431948829801782047909463666197820265422406915283357663911707501396271027735401714113166529955506507466562659963640663896762395014343532177957963119265871780528630624739972450626390646714165134636392285225439819190380115609246384104290075332837541106068511048203877606900643423881122019104308508758412855360560567307332241416180058349182833773375348156577835797806954725728053032322303458389571544670857926476801747437577427900149609669281300941651350222799344931336815656755078236519415824488891718134603529943130110141011957144565153602028632621198037470730798442659439752535513260375231256693857780053186695009715193841818753331282620556212521387673458317596159826839946245777577593542516297128038469496890979134307933278592788682973743552441079466129701428634382381295319278581645822152034326746519900962738540019488506941364733963118352468307781683591725043395336122869341347593403175645720401841813247485242666291220144327067103363868857980387606083621399971725426354791453893486015497454545094334797012279661045079174435702329637184851435309102718554802580932441279358059241224284131396429279210890404761807136459745855219222944370044253285135172332569151660441143643953207980002831701371325192702879323126153427265991368426520610649198638645779098582268156431008568371614792689134345985709798376145145692943168871420368525995897287312716890855707676131826867469640197686669899241527225574294565384032389705175890090475026982701436696729116668424010622684734605069810635596023224853404721899452739400698531668362446787217904069441446084966785738356403892510440803262839017774334875743113716463004190705892154756044849179111973214886193020928518141484620763416459717612923708990058297208249253829947130040554353448493413469247848000564479101249338017737663556969676097482908341391888681390124393914699799833286430550899600139296768750080242897064736079344573461902030121019187416692655632405465287309582664659214601858577408309081463970490026550290605593297235949566826806658498929312652131045717243856776123750338662476162875422570611933032169863540960391444829748597598088790377051082463455850429922028974605189289437746018014436324578964522578593478733801066774161166711462308392892367862433424020047366443960198416284807370212207469754235210286207487604392711412254783934652182604522736144045801912596674251011173148726200213249367052231498441420471724921860728220514187382751868543492839015245232163728464916012228460341258169052791144023042934586087826057680697489059217765480498447385868238505688373504762776942671112910179931819215382953840690927098237286898679252614944557278933756447024150951887248191734185693187374994594616693695510910756973868960951782666230365036122209790691623077566784136139360830623933766996081297604819310576642190904286852627356071369168772139276964051227322011553087889420886886927320551765087707622737750388428839176130949504562627860149250633278323259828835810346264825278752911551596759965113156667757445742964824058341128874693767171884736102687035620897220790873708859028022580665486673695277768625526104648972892205381706033090465127587099698996075144283403593966468745863995318071068589891846799718429956238482983141422030603861290602586588177205732376876778503881032157245671517010261269365011174327275184200885517214857039179353090570063688161558089310263158264323107241151076624291307294730186284120017287962409542727433179245190851245074670075545855921216384992688108404052149844424993048353462238600764777837171514936635569755289131865763545485578802460978749442624283541060348263596777283039319979622467545863732692255163405305000862568865005853132226391095520186734621371459656512831339462902175822042338583445282890869446639097787017403925623067725368358438965081485768420946596842710644739889311384588490810660411579873779230914983817007352074876495979302856097540551035787566349861301155465981950278738372964216089624630330070459531207764701389708085828191671197911794102788516335689557141938656399160915093941723130800767656263817591440438872442660546332634637752513443234677799176531522765384438516371335817788127867044358032313607499407600286606777490511859430808837763080536076350871876485790299446409005233683370857954069887540334199559569274740904751013377302709581998195588580579908097838503898094833546686760444961535893310744721270696362525057698010445615218223353066847443572055832795167797020166478275457433656209094078633787219817132602480017171836461898545278098655606729367231395144819314048880099363353315471098065409855529931032494538817405758976153399634529919560862751131798643349862918174923935953007500726570088837365469556816814121171113655642421783743902353599396618606126274500821449685264168493965390882339688892038242582227848621016071518534275534662730847368763901774526350590099896090251983325060976420273695256707868150219932591974356953106316359128699660062897961573299740283686879788059196106803312039307928272585755183115284486799148866385056388583204086333338677766679167908480661952365795295607809226713259006623311966382984282888738733797746913470156734487841009744852865811364802626214945976237340175878251011203017420419573284847608731180820223944772105242156426447971909621185922759404509180690070366296142832788484707622416401088814803431460476880372525330755004686123878813266588082784885317699564122686650364075459065766247520705126194404230722248042983402162249477595680327340610922757878943332341099070645763467467984419374879381952787369137499414400283251788209757734620416791750825989726520551492145608454481116984689113379185405391201533924139586489066157206697405836646229641208050076477769395752193736073831748565146383157836025489279980417348951159751034137641562770501693572005376323948246211276467189560716906881118333845567169831005596130824139031137646220966377720711127985825355026970347195768014601338091924590304370067738188114147956587814373684269364507453906065249709672194576588672790841569757049823800698811222073259391062667926403207933408120980549436186610667599096578608087800875864613665337448628374666957707368085044638104729131217802991139951161044075355900001480305036418336169891833309095198389099867108750434786833995769099949589536540123779244366548666185951603656167621709838404315889684882775523905502957449091183967184859469527865144856160593733655647468681589897422868761617554223938726185168434482974675372711490055685020357138723621783055346682951283165549667249002032246425078765093555413600345891719866247909681585800027410172151628042039062839177652169522262751163504766360424987817532492020496439817047187461210128901908702845133688424574484008978708240671789445416324267201129697966855933029134817168958775542661721146949517008468307249600347685910664691884113840034108969110101362714686056353874714401114838633916604736312156868886362031157865692254053890483961532587620490033239561549861871654077343344615841840076195504610656218556760489813803472088507251701368412097294809279939434886318172178732183986475455021032604439691558204453819263663859192688291921236634251314828377991635552256691461375897248309559590952598365002396434988193801775879194610928556942442209666705046647045572709827549329315641364337513208452875690756076663829058007897670062646041184811006397552605838357847349856382482764194962128201831065065882243761442958305786557705931717889277186965625554140502632553585786515196562239778355899067285328273157396824233509819144508313561524683222419388815767253263528958656531986610426714522917893122100393930930737028234956493198987212258334744506405822889976131637335857059275478159268514885176704022434493213951965573459797537662374351990518919720141406241068044159488198305796447176475182531055544055330492472591483444510660798906218258128145686582253485184500413313602742126250276515761766472944173302436455308085326654738141382785639542946614958291882893020884033617026735157040411009398571508403528551270740695991598543096532221947956959701714857916006932410650302350226021956846247617158803541633704886026240568652034415366140776115311755427121632543752122524218577281660039269923377168626481031550794349139317158674870339038747343105258198160743621767613252924302444077083281851051710047498156940253820104448798918510888739870116541000758845375122032501209322297401761044313737624715717238210475889929678184300601136032068086301828922079174188737770145525815961328696106337834273338126593163155184451026766852335835455292944971345006398782018101753504959513926478146007118983775513539467950530822323071828059538141988360790709365017753566536783573478907551230615235962399284137493104950943914618450538249597559890609254559925713031086873216028274797692716274150484140812507112342611266194077671124592172890108500703448842587908809397819542494783333257752035319379013338159364233974356821027729863994422839112082973304207457470164370311043058144619013919390990353730106405722132338299874107658261844611079318566282410312801874344624328290593806074544418948726022987806918542636336119402311901996951542706617660372071493001927880968064436786127344302350871779252675826173597208575169080511789515189625719402526629686769647697289245057996365723752190106437591200146415642605991667632832363829903234489751070967523568490082737315689086020316007147259280175210135812942177050657337032006830721262124639804567848617428768426214981242671703002521362568393815233724533052536242605804248793613154880535119787996185924876747502818794911127364932879312452597264092649222381121079447450185367432418864932048955821833776044467758269281036797927382450949723005809905243503306288089562034299857265187192529164208624699925615040366511917790843451445596647518742469291894481701543637996381499421574881856670402378504628293779130529626180773217643376742477719885210465008522967497073719373174693223902995004410503101522894758761330957462107239005569765793065289846593100356796251136577163040856579542494312000598793531923982144183086500387405210050107106685117378331004012976876897958039690422423400909365479663484293322469659535736825345143656966727904849819698363371956631228396353365058290162309942757717619377839882112303170932770399432707223177148240438094250052214291452979479972903106182565726887264695132909051878918058218723546596091493180401552663307580387237692697867106243367709123117963169507067393534297910380843567338158147586420938479264829992281537551210808984280104368044270718841375367471921229670369756862555174824718738076510082007872357149814241218590672654256716364599800552680142011498060232209723597414778483990701191280299579349173360221391165785771243920955805583913061163738744530832837475698746194205610477840685692663385774874727725934692033726991404438904815597833583225472472952327676835416035529187016783062256879334496213730874333937587990678702109933074683023024477782348381691990626932777112368842427870901258473828068377987165945477251078590833956301836063724080965675361582941890931860635769982986891796727724166665651404426213415207311109226209089445182163363778853712085418287161248832999704398820136579197276080349214333004736902604319303338383784325283923147738100524207326679197285241764266374896417884505316469800917292880761272699772599673370218167136997062340241617319549659940221108040032412689976154444351831921511359556517288903095511326995033640844737556921665364168351818350724048228229218422530475882333484112589500462178465037831734223044620302686064752604165054804085189122273242893243086151130936693087549164276261769413567463538579595492056025470245271389081512123434070622348705364105805640030284862045320951660433622416299150416702953456059398849681615582578521086606055577855454363165802960769167264509657508070184559059508249572272426278825618627675642915632684566295065216242414241606804216494124298455803621869495805028737531532119913323383596071268197948206468822713480359771267621340672380084797750861842339851616644814305280788785684934478532662690463040552161197236481678153831769989771692859527643475949362364183311139833255504375536524675648434588359633377516410215397657324924439885447465037097633587094418067586360550531648176651776160790493384639916908852512230869151035914366506795019902153998202907285945372243180044436131169839078583847271358892366670450307638476559655144425589637717642731877818132756710685347454738586760703489086786434130242115594667955969189544755834443802887662331791507126908612231460897458549426725475822075437280777096031900387586097439578384837921364003364269098236007484027798676756518770009200766215916357122363256559696141920400805329894483913230342713206607752168178902900636558075329658262271601434633591535236014201390868476878619892697373128110127248678338604437700692157623398275954857898987134101627292214225987005530195438333447922428963219685785469084393554456879509106799872482251703192163957962073404352359775501297215681028268883475866302488560773334640173361355257168525614006687462239865268415034517802559141210957293374257878513446221582701625644507638280953538760565764821842449090984580280855911243570824185139805112831582892300995610635448475365028965459406300044610642181591340800816399141149098919276821692019246010031573005114183758091444105966532031101596858495754304893572591655441291370985772584596016063791264122364999521084267769553993309379926835255398073333194832467534590583069005387053333581773390825411448908120341348346006141529810344492596451149222740320192946587034583692182143730680033368749850706789188909259370094684880864122452449986057271747022847063072344991738090834024059625941862357844520750236703516582873532710937170615166588424129029090665102969082986614361435727026260468468418415264947882139147212812161176230035032595783756692091403505784984056332521201174503135746335995720871907261758452580840353494319904069043341700830470660118891024347445566212144370391238490385918135696361812646158020384820954169767261742421667861515617000143788638074843533525843254089604348314567184746960692109059090409228600212104470890287050404153795940802025733653052289946497008794449336601356032807331873661935936536928801431648338333640920795015442692304240169353266403993089449230266527651599689148117962422870655454699796453460056323189728067713217235805412380420706419783199998088238526606744016631415030793573301232813037159169355499611250723247938074026655927831405526546430570986202032381721389074056839016634870181527992516453679423809271046220430934231519982949072993178988181124108343530756648316570361094036703649980987683353003595002811674921008957019081511758716263408958095359686301800417612376497268795323787176785750090749969212533442353988106898830438710745033670579546364230115999573955722095601892122431817746068564465894205801198468185486249828639379109244230250036055020929101551378798101726107427343909720140387897333044506586081941662178421233299012926264128919213893162258888452062301794010728605547533303051977277257043452742664930257069349274071203706477382784310786073887329511395862330267571866953179959295327998801456979727910410067879793986078062837999303698228504448964324022661865491527870654477252142304574460772729593215319335388237600438525246000228533944752738684912610511955231876804885684311690743049126868848257806085816575378146289832203368564854659437909873627924477528566565439363156075042341760276731476542442688711692869616743100334983648611230299719872338956709964306956588137728700324194977292120840856683775304978013799888507510718682944152198921035783034854353444949387177503658735770796965059353130640254198066583386216971058926454787151212017742029702714575431548558448766002855546778989008910026440203484620110361059466953298691398626906144836994809553735490109748364050538606681672740519863207887510802586424785166507858776927816833637766761076507584670553299364148907308243179616978696536008536979745969528650375416066701165581759819916832658851944085545599841659631653852675183822843358119783695945905022218631780703177464643065743986891924275746087542628655526982779792185499252098233270189543416734865590454110447767095949635875240147606799393880591689351710552617916576655220151821754458042078596309783307896820301130740826861158824831831640591872621500878109995951348777917188027106297938692685453405819901251323342965335527332325600416967076787204827378251340487200969383155516527331037829231315447634521356627579291171186992619449451569814397367093137328417819872123754804488069391724955726551569932592991849988101438829731876296163132364329619647976587683615021461141749374347517719634073698804117249836717500000046931060853196128017168418869709079794153481809099699522548605412236294072839647096985171761512059937363171745022802052842761741691686672594068951535224424416396233033415198628704415750548374034618143118213319105163080142125332259997928462453734723837091420857463014053721209341800318093952932176331960249903469410007960128946137271954375197570015545721841411402186374897596158868630382027370066353551286607300515543107692989089911315866895586455854614796484080662078225469826207199688964230118807604202268265940904045407737205043250626700850155681312645258957903312990953528642173870987851410696435262234278386843571463996339194917761963959711132786723799054037785918298124271099211245209112853996896362152237142952882963758767306635759138195613323724366075079699459144182850546783390764899540649553454312255298149417900437420639200232814861664648309097709681039150870181900055235510504826705070561478020251953087315847726195257028468206168415762731379105414007685139271373397707518794158476653423721863558458205288148455194883807288770555753527025766795053756297029462889939396531276474976466463812189903816397999897200233757556562591503875215625186159832071908475338665595921423532169513376178202299084690331126567747706267979110301958227963769875803368799669743543689138781755481899490974565111174898514417371600187479849409195772523423759367479765364029976302844534533636489971542354013328864005442751756965947626261175654086661157527582795699065618749246904849797693622443538811074987731770916369704137492551179507073768902138611363509880711405002720328587290562222895621007570847665423014901848111678726830105932776423002724354196078884349887906236252172891036545019519595086693855241305550937491344788872999562021199175437254448555187937729722710222191983206799258796286235335955507328408667171906192041371866773190775472976028226653205477714450390375230265745494021665842821548885826118140901488445698827590597889083319872347979548307003980411057804540199855356975129838854648984146838538479972314350272102838805165673339962457325686087623374488180078460829388483787685328443727009165152917961806659606491577274804971309992289067390600722490115875606492001813731972813203832796696636686237412176939170426075190227287828046876907718691108404976516343510453054063615001149195691691083504446674045454304512374900509296420351169679074607951001978692476447816346656635016487974085177531427265886488891580884394687037186499559401715586021098499847660236805828760444487163682165292012432211106743146629144081352507054158970388018849308095858735634610437885242759549204472877788587645970728288677620496175000399923666144200342804319925617945393822152707113384358356039355779516570545843340751648332747376533875747226185029185213145128079510450991358467287771868632326015946749465140531317652851177821138153514805472972228018082167490609231465027440571013063269842842474629022774766583966397391552592947376120952110497460690881474494916103940886475136051963877325982479541559142617852981143206993609640566573770625938738333941832296010983465473063990429943155333300951539625225421555131491108501054004729363463075249944469310660140357495347997891813874945655852049055518468968771816149301791090957224370711226224874156382969105970050506432479716087584791914676908183580012790652561167084295542849957773992608407293168782957832383880035367978504522014736688511618020740416763554872356809995733248831003628872189004111415851418212084141239203482288814571686633029654470761041135100725948950970651313610383399641176864261490177446831278771676977362083781660520769590931215505643787530492262516264253720709224786353691771715459211323531709292577047110894547608917336680292943483249300858547393527421299672918096883545744215358213388754987078070584038576059649231275096420818659782724258314413123297946692963729526467182585321471410145207308425893572684509439078960573367742860852391284365912416162770349276893464782899387114529120275091985191602006799958216768363869703474485714451802676730622887525325886004690295522812781322535326076195889352908625914978151624520445895694507512959507610256786789148810654617329965783382894503264706277805961380076309685799250541746834066859154867785649515533789652363090194495693698090538313769622238602514631572841092721819478255732686216585905774842406742251646569247527182032234121889198225010629659929036052599021952133769553679374995043036067975414320685505631634095524932870315408958071657005864857210976483089354797885999100403321013142867718326239676133957077386418084409440807552149773128083866085357149081701396912724528825130631360396971830403231112636516903829835886491455488185920636025584139902996884791092065688357396793834943546866670668701284267700086386210017144137156620653268047734663143928140519401962051587693799116311108070129015954290846875487693199865548099498753097132088761731807136204895240985563342297718025186449836318477527147911792885646115586821460141485632530802650162296134137399386376312420567719091053484512267462404369146531378689442758450117086553180612129447865540675778715529449347036422912811340874857706288287464635930302259444405466300993576235395112933055307989101545688924776109674965682410900683555573891146630374510449663078948507743811875809950279030015743661832903116465510446758298968501277645565402597444870491577762418674238341464461707973994538958327598920027148403171914035961610047628694621993385039972557279553342906463718203748293254775361197192120696356575194151917440429531522718402253736309446964440686291006583038714842387034957684518613146143343061151140391161399823618392320294958444313887783875828482240012151856184159325564297093656684561885946593729707157833874485432461241627226882467258779694517462435966548363760949380480306856840201077489913097633237558036487606981945120938693853737782928886259518119382172214065409230959087689711463859490891585746039795238018070785401940785560981915380825051251702273032332394255849925620416039977874555760272416615654628245821569878911744006125665126007022132308465552300748751093833444142441159358466452416817105381430558652009423373836574387089532594768032279943714284007696910495545378280046227013874651613885956190436854382489491852558684909316662510435040308598232169417977825033142996419612482208125433278912819570476813851066050523244107827073037036563310354678527930303583662201579031735238445196921352764144633554197142001747124850868526938942427978591061713660463867317150501344018239627704093291715821942857673086864771065034065892468980238535199792393714399655017105894363560352228911947226796252140720440167610408849944746125965191192248975047255314668868493988116101041840375774483319390772620744313815658157980071762005020037542616018075011909348702997310159104450930569039188628736043209144686848673481032184071466087460113060048835912680816422568900240060528390069790646470780270190950837038419807205922918875764729636822684403721525349808256115339472914940778929220435412730599792680234529263613883811377414560251809358956999442197154439370532749401931985321127031330285452066655744297439458545022069018374886647745667200165171208613376665810948045051913470298052061880526980277999328580800844392936504276370499416001273453842238445869575747967103970606062369230880993788816657326801712038465290458952020909246495978591971032546482656574264237035259357586114551843440900756397251281835385962720909445350492393147252767504525844211500181261515227601497531953611453058059698656881645509836744470448783644616923035887566149970463319640386740699513910095588503553778844067498883698876705347787171278357171777807116320790258957376713372257556747533407449789568801608749772924154777985248600872568742486561117123600781625284791532637689916364383620250266866594810737986085246053519408304162769303089496442344643827856148884752996830504140495377413830903322469435865638154230099734554052533794449158522831292723960568616374622612443600136207180067970570780597048219932538755301487591549710190181024735682959785509852573112276405467739356390106773578978233083317440775982682980366188824970425776308088890901127815479377784561223312411300826337612026707549071824879227095098347660770905734102225609738484206836058126906667124990313570014984908930256281455383313232820254938616877254925217037205862009511404818495663654635561453157334895379337364340569461463709263035631460206325540716018402448363753777762391757162500159940415104374845567501854205735669615507130370035255814317145097410568947628339959700739909118101474808501179847816593182744276613012329484250552292240307675431283325257823669944541575982873396374478662614100337440007810324203566850204590174363304796260649394594191171091554709881160379093899992054838155626044143857342612584198490420848400582207889254469031650724804850929588052209446476930554119561585284267993303004221999772170025178531409959691900596062690318863545702618284748290980302628199937493154447449644325635787116056673302149019406283524413319259423435286342055128469074437354646927381225955940691275930402887834092575704231601615007562218817844972055209972688725116573939125983509140674851278343282765774231101258243847809868998465810871214215474948250998264639560370233730903347623064256389442215880536907996458800664605312391382614985889255616246700706279042310254703935185403847634018481766934403944069114023032047576661005362686564768724595944261852394051124314547187216218979873160060897968744888400442980429824166724522492899100811933245537998496519087305224463885380190405641565939212984825324860281769536832417750235561048804543186707027728015844625433363467531477072071534274911547059016749274295586784958770293452855290471166761890268484487909095538777045710689427953117113425869736693788943226815614605351469083468985333504912975231599373790183158333581853626898610876273887439737980786795168577297834533180114688928568638717632960187485104919512025315301103319370566655489639876609732680782485136100554269386824703596817060415155891959821387695194685688431623362634717065277877561121698361441115433267415763719318195546841807954353453009850982156393919844969721094069731801013233202776839194669132853645612294787138544211326167240887100567737175567216015252558161772308596805514776552648798149817680685028058211549268841534097531833513487362663035149654259706392818863724487919093127523961492454306175080523811966789147484731488807860131659120145978793681843905561993428510731211973471620754738686873566770094655985687964592282616016624495009890431973773292924542321839421874610246217928106170830860378471004525293340380475868211493843145411483984709072329324057998133301268998092909307527913346599111687922362259105447872126738759731061810241879493535866541868872875281570041289990805005732020083777410317518571804209654090888130783613291500632815295156409811189787998103336322389864617152792048349680593580964034224635262560264943381922040268220581430014824849472964832450786107401067002806451880983597048746703358320689416561869743835238601367936913144159070969838419298314968842256029931518057846456745206042210596772670257874861357717676744664211277003495019565302944013864211268482103352553432882834217885498202699754456067823757123719292675227294165710858300699411739173442563748969245366490485490695827295453166330425124622945884006862850382406964053892315378867981467781716305642045120510926650841461180293919378291304601382971046324066067581810422215719530649415667636056996705381413668641841214639871013369031855207624317423298549825740709618681481977574343018212451503299887286963349558179270343970196992578588853729511949001301099839485984991451225355691623753598008217347997262612619974955025824905209699980576496861141924668305124195446216647280844336154541967573701924828761534296118466745167997000675761841941705665953576851412943913045098969392271370605503234169292120384193118457337099418783836402066601271957983100132739130145747979775606061094061844543368529509094190289553332570886383293617478897143527208857845946056343488743639145864555190659186412041892433941504338670142478905716756188380917954356841733740829960764479333944626716458532550708301296310558242811574791558408276835340327381442905181517575261196350617054982791093650249468732272595959963655168982112821283381945144209636958585245985854960633201573443403435138121103508396881674772270899459758442688384807467687695725666050001018193946354035533655197920372431387165341252572100303078795306917320385517741494674223674439447582217180963853342581601133073160107176704034562365904581319037147868309519427946895705826291639415519402472804194264760241565991407953734127158613826889677817240005934097811666606915095237134027871982252874658972301646722290627728853723199311663023294771908167354125616590868197892159832436061730177906081865486607203579911683241936218581754690022834071763803511766127749455299966620152736391372211099989627081381540950753338124650939236375360631662997674167830620007529573345863011729285067372583621636329679691545319673008409804975480775379626197336516770068676620586485460699681639371139253825945683936834395741717787378441599195276707373903567539420544900876325566117686583723098426419964492689013776965247337508802011350496986875644908241940068646073539713632783745129327883679740231810744652391510477258112991615815208656659115250726671031413198399031348845298144518544624397051267447878144032183029596138679911256589222510465277450993132112121231931321038973852067184199061091736634944108647736975545555506485391953979273055724033755432718155890483012108527106462213287126100992899623355045846578438145012785098134237542714150104474943396456486191932216509094696206373974017087868710588303649956441508504916499171626526030272727816260550685856611050065131530073832494588410650222015328677225670177415662168923113699645971171805203169619604811066429234517622626269902423979605715436010892024934516240433372721237554398447457795945363507511582664505101705068844443336463334501847911611954466253803473209071900217409754057355133560996574761463688874710665196816380643976070109576168811668860469185729775288303738523538360851211316967217226414591496453316281515280952890100594891300358264377804388976894423630030168153367560989683793551771125394509845861888562558003322488387998093642583116348570618724787378896824290410843385254339725141454485381084154144345974563467735846950520277318982214990226178516533976140342289034366104547989905863112703004440828006992238980086114195412445814646259606529336395657883280206972813871240929003136328558470444318060158664737997187622297334927257844238845794388443232398499757442252124591852080633231751664420627847157688988081796312683461958817499922266853195759197464136822514812772411927257231173379291419755317273805279740704500887809583381968420024283791588319639488331135012834794651215941039174234889783030565408580381155152324201385573081525524318268540701612443791795405490672486290664094934934254477950555569890416731932341603345919767237079803246840482487189060176667124850851094364764999556199318422059000051322439998317999367904783035161179200284804924475153677795694597314475549766769886442066769821271381264392590731704370181498780386772131538816087243335447360418087804302798530977415901996180396702776925010948185853458257080339601655446497849901722348907210979090879677091380720891531491680954797055800306139758734830955348170935761206573588010495810231553681651346515524379596830859499576038234898361678207481206204196007203025826004480719788646002193963895198076966364072388874905511662351968811898089112188816381367137637456524590496392944134328037719712353182634259754487742326335892521664788619320081225267757186947573953132905564094251907882553724936545842116997289457367427160775101394978261223085942630255042384285638959632122526540597093103309145409541390014654452615224455217897264137822172964084758725676306665902660308260452114503634735047449121712154060381604027811960035821104082652788418710472187184894994172621787715515800511999353687569554250733634870191163226955229022993614370177167476907145643822968368122564877044442093060181656876745020802185573676551378941731458773148065135535135332909351574134975591082637922108508331761717718016539611837532606677792837932024744013357100970934119338351954372387576405460184119561105662133735153402340412096313511821602023222414128298247481870475239045445953047006297097893689765182680041477526797226803747539454626228696625808533682302384068430442002535958967382712067298457832617523926349210016826329507134879672927435464823555865656054455641404381337268997333455802248515318775363957294418722891857723168432675385850640499617309946666036306185873311365910091528994817913454126706483274390419389979176774741689132170614177357527330201667750547984861618850070570294958091032656128601145954098548553788565284200088565573038847042110830235804155162421145312336512810682496075941571776794854369995852403892556009084708921582496192519175586926475395800404544723614748307819747312328567514088238790103208018817159406513163350767441929593644363788222822648820406300607892535185512014008646887919453780711608784995962999851431192826625706188921363422915600913910449613976940266473559415823160025166639941759375670924671959353167458222782473897275318723965722333405787756593772955008723527428362944971318033335770363316854200027752133172466683159834797382678921987069135306142816879085623034258498290075709407203761111599908180145843139047354418298271520937626049192661115071512273145284560217882430044642081445939203482781891118057471346787219137391003216876058686271395032845701123572926465971413002517857172451339192453375495499354236898150750966227758546898323469646588953635120637231304295514607125656757630203451345577458752481856628306330035167653495389042673925319740917394763750763371666132601624944166681985345367627999348628530192609595189703199514659111347121901271015580472832367943644297263378058795436494976481041560852805667279365715056238509549527181653555341361214331846133555680470113525494828065695096626220679034040533433418219591541644882415291479620437894728567201175767249278713853103841471107330088307484982996405208933212395111417410708548408500609075115253168248537462688232339448507566736037401432452253941336270063406188567959757858273815422735206358189503697114743632290616659764549785764796746284170949070916972524343993594644552215729729810925319279230200350527783850471242389253928571961015775023572973318651947737928851430525566937857439208772469626940735330342688609866798190384252626651612327570224908450413156178976386033534724167588778472071589426839420905816807227100571146221650014732631976342720767723226658493633307171154306595529335290811872661689361131837835764685594801150433815340198186443254408933623285069109783824031334550378031465343727013011959556866678973486388551957578818858239276574366798705655535382891788950932426843198913191108973982351024913373414527648194283156608922289797043363763798938459671232470241869893012456579037222012179966047286204899480577296753339656360343238712283013483562619189384849818848266050718463549472221548356184225059984303225126520844745132006672513542640009393155780250696239457718745506774236145662837717214902294530267303516970694815509302087432966313510222307321310703417755020385806203599136838751532461603908922860562892512747433168116783288265423671916651357691279655635854917106269436188704142767540159878351642213708391775414383532328311193800746172485701514285390024137979261980162215521802866316358864528439851207304089988882026496623573601845625666287332835963010752888675382450727950320939147465879187825333603215018096536314287509102699304561908611838131488648560970155813181163852259982033897523800998819643888407003567602188301571282251340030684176553947795370844745791476562804700914919807089265583612127032305893452128408084729577320396080811381208803440460932560664328528525421218001284909451751058344671794217535985219737710721845416456765431561596445615580956549552806657763895948505136500233455501429944608669224051185222490288043291469135017496527867205149031603889484310103674639965660855544230249375390825249029424759297688394144668865402439082767291742187658919600967673537985838622565598958932929572170802121378196886692772912434472404649625642782800293585427703001254155453844031953599943610828836371307346101811939072992184191769421102319285131403167936755469295007197368820033854629243180251804681583312663251793922320885716143266972413698263090983173242279812968929430059927140607985873886467569078279437712860575245465018767275347400586793881751905269755505102509335498087637527346462412218961943738768598396222549822019003113977772423328251533431924861923669539320889370032340895348523816443715529954218459723564580998973011204119481361983563042412530287923087734267707002545228293481594109340930632819125249879324486604534901838328345258585067642532981649289668780916071077951553518901607552890796725104557667575908714300355930119581420120238862685753423947887888142573183473404746399407810774573624128185806564650487623839619046951057881992224199381217072385385443871321483490479573942323425701572882471698504438062533687277737179192126032875448836176573814993945640843462174956612798855304020650347452368011745218385226404968786388056712249422484916533752605056914437949364761198613746456805985477709638748494093633091860436990780982379242697862774958191666014496622586261294654528166275689496612411144814638735705212231251619297327377901291155526175692022094003196674246441898152193605125322188158139281043198917195278806252201251569549234838760613529924117914027762529851847230416389266388088595500353764892887420421484235661312153017544950671785559673150485005872912685013568415022745020783519850776492383990917122857433007069061865202840520580767152271503274072767043755840572735277324310787119705419101126091307241544111492850286938939835798062719533709424061814326222778134791762779411357377827387626626464249498903568654500445248795700416294543971056221440283595082222275530175714724342745128601111866850891393380054817524987473192700465558996462653348847160180175624217253146788604446818529739082439862987802327061563462263683222844896691038042940827921417031830569223639411241604594854991680247263009537164297466506549873493909929741075222731299141646716511530276337658386667834782225545825575764500394513871852045884090151799571264504567599005178529598422207633151070274981915029000814928909427537185603446151111792454991710724583384692580796642754108551880463815118403815253080288275658176371345992225737713068248803471592481593505758081664090217917167274113369135838445834237284288960544562256088323429284570281698908364322218227384604012064794583251136512351539399962624003819710946412943521384602807876673359027243574776219784901392301706262027428426434384885732079937694146418641653737692197419243456802917753381307246805470513526081666891118186613514780202799620516824139286134930521367785587706285725561400709777415604712372411336932715350128884397009708049792471780710302310356694934549936259094668098999530032655765624913587190685889903089891671661378016331899732361157061787453553956905067664337597503207265977203562972643575550027056979500854963650264050345434085861092609133164585931044568467266626158306067504583229480042244569545263929108275597620396122373601697997749258803924904109803721128744790158655965757710865949130035386381322805653929362436995389487302547701433205880370428230675332548626040107069700127261560443507368248636574506617643895346674632961550246277355591190112016551224623933952310581645895456612598639773193367710604141335135776141923958291675276681256613915354623248039348245074975998990549237555166525533657230515719837684681948168695656063726579821357976684179448916211574699484307489618646437371547735705192549437953179199151861387572118951348753420464220309098105933083172732426912648957563870193115212038050483761743273544639475415309590331949082108981340784145736145133029294900575396074896589938062529362929826107820448641450353153765351661441123553941638971135890605853403960111883524273705846218373270084643677065248311556410678469809475707615614887788193460703323034636061327728584228114032633511942293839327383579020347515801652392379037733540394531289375103130581166543630953347180911576033679602304213030961123659564634174743060311226882818572313261118353652505064941585603405103852215868711107395091436538133376994737244756868807063976494582065861321321158440709489085928698293251264302424617619071490111491634886333556712628987857962685632494966951924111556946835300297501177161773357601338572012518775070250363952835551531979103574665014728421069375816966991728552326505081852674119872088719207565918468593894814554052609676988737434591581491885155227559838613062154200961392523114482346039361234131183519712903267877433414936613262905236543272039639827768915527889772580750408164884854129761167506412179398678208032577832054491698360342714981780267843258909767281231478831723944128259417056668866184916046094061828655490073615727680064548101402714480994287903524061936955016292870087379030760950446817144657615982928395152018773358810719185847919322917314810839442934678179552627565319852640540336527883359109850937821682203148959566946003015198592442649627882267622668796295816258002574216450323893046060698665184170738517669012332883094537751186299378499353055269545983792808586769751119989321346547056359360993701138342553970326371452493885434695749997648492052103148840498190210851464686747792744133470459502351446968757412755824226207399282308024914067468938118601294994784527406009377776678940923521921758384945305885356328752259074472558610632146634012823272647926454491304638757699247836296861623036065312722812378390473960696879501270565334024429583314549317345665918191871595751171463361593840925078030571903158944294645030649203173584744164436710609611927221655147245952234296435607801064725419229093517148463462101507086516143966471782474047615933632677960947496590477740977198537364982186188128529742942382820885242149483443912021821666167703373879025181958824635255522739260488700114528058605733029296887541387326283615788882398107242937399976270460516695545880791623655183521115837819545000869283526701320740329520823752703827076763431005928638500967527711067011382759057525383279061544679956230114374238021131868679321972841044400143465513085519846730015316892608771876978199560894977448427029479950764192908644336297456378354374112451886375667100746546605773088699740603134634338721026463641509895213348550368313151848404839593591622177600249772494239472073510584256112952012859733811390783393590574211925740955735898673928107936170313767824132755293901521606963892809253959519642403796823322186963418111405094482281961346226078300502262184243267192579548104007120657698522364600770592234653589478306263882344056149029389815540962277169485529368304153663842866974867547700887356710926688568459370808133585259823944143889883651376010891603204196489828164522732090938936444773855315721747146426989939039706692189087513075540090734962568459439646089596143960298399795142740194491739819027916436874923386632058422765603742522837197188081703642360045863306172256198522746919149701463963879587254673743916225120423564664169329669605832783325147682054492987455204556920584435172736003800332185999967521599406230138874358005035192321752420680748286602454430060875033779698102673173387317930143738187644242146409184352460623902227107914233212372002696684207101445417972084679818378452388380838382876957878305271763732005193414887328826162255084360802454029138306247528788946259394366770229672681734460309951229448144149659006062732503405622575739065312780751295645397727056322322972041395740185503924466317113799269538942948364137895470975407497785792981963975770880891636909923986076516941611202585179807413437734034017558684424038254106130186809465283763756742573059477912521511860747165948882247721347761689638586921698785064678277401192745714655181175415738906297566343397730596761082606719755781667166546318301786316321232427228420087700443606768239089959133725106407941184848598922783697509241236159577101964869248813745657961629378321495633315831663849388652800333724953216405241603028046333772213909993056100393262757518694143711822787549516044287336598331203475334992080525812920214546850463372099785589420656979517131815441339211710062876653438916872464750528833681061632236610995661577971790650200175190974194732560092985247023329750525237725486214489646624484525185945871169294594185272955898628989280875451867658370378900198845246748312828381599523752164829486763910611028482232888883442065551354754190941320284420602392106224486928138922001859028538953525016425691398878268238534682595997077654644050445175334333022686652586295147966269747711828411609931368726292398284128491188812043116489593581697833909976299463347320373295570639977294948844390028922469739080065113986991022597407631589021313439565466527971930890460140800746129182686259321483743722564433476521691696253985438424263375002277041528511733067436518227695552111118069472456994065237986829684503771789920202845197407546046746843165037820118702818998347020313138209671985608157421220788118278184949736353413188338230433209372826749014524081881317520307618265775428707299526228331812297256972007249803968356655482608491912446303502299575345457924338500257986932246626215097296074099612237029186007202189088713566856076621655437246557751516890768711324774429833523608308926971481770369309612380769939813094544585610650639081103506611826736065693154679798700943653873602660451228765821038176070472395195469956547207142165707133180038655787596638560577828588540500350285924578221732640909175562289324460376589919766364934469771228232123958829857103958350481117256474030508275564767267167585300813428611277599586507814324676708045910960181948081233807457859890649376734405026873525029588209634623571043142411590849309219797798950723511975631502831719480725698686916349365380056065819625242240651646219731438305931182527693467566994922556532289418584038049173319460744068335993876285548171070463514241128047264048981019547446704270730263948569590781164889774998288716054218068040546351394168644656248434636052078528572702931525652472365057042007965276568656738840859016549391583315905172336518640281679954363788316546652551096486939556676955843680016229487820771047987569000915605570078600877276579491732538008073647358158311694161545304023237926681703311610776976752959256792016366522292602450235074561267544805352036942758465162763888026423876417296398415272369220760337072017832979442868426628127797024536433244161099795140567294731593227842407916163780111228976283552225878104376265624008021047765424646275776522996077153463423684961422131616130448485116255638373755016484143605307461531180357286893630139577265632496456814312841898333518971360507918474364988065843442637025655037760254771910570820016711769622920540918896880897053001404489713192993269389465663824598248990918978056435501832684804280063859826985300358726493784152509399223838794990257922821422396482474199131940083523230381590368205505134608211296140692848274204910517967006889337109520527402590059608584712910758104211680426317974434386022780980527285968661589755917787904910330724964215272548455902789366175298075667730915424177584842136424005693871223537790197805156485840946014458694500876746481904490757512212557837277605375508879768613139410733988836243131635119201524219297908510069473871146727103985996106024582182749011437612832999187848963124924660889111948658214151362095712936841319855475125341199343406758826365212991136656352282867392080196795057251911180324982227559012180609006658016237785275621525100909150465629593294892152913833424882122510576864154570255899009157030643059112153633932495821789645701572640399557445696021370782413489084427969172339446848081087419813661690984557377797014688663144938211036444357679578551140885340915447241087314412165075004903222617303866533966079909908216909839468206138460029978774328101899232234396803629108550565228244255380436714797361267014610719354333352567704196164940066454292008897615711712587800167552226750265051913318001171452388387434590469449675581596752505961053826950683525499555485020871522516189832030902359202845394251217581782439730137078152602508266285700717775579850606068930811029462143761550902512628409660619811906184321177857918985809044976734305726651086526680893046445782734835812969247027351474221714769053457613183160444710074254577414377504306687201334950212456017378418316040745770910511104079622495901041830495896695394859961654638096408323353151500703834627570302682401317094093103795297386231915076754757368442540339659530355441744330279907217756213124839816829158283508359027975874581804282202703565466412566454817570015319554331877232475137513059165299754168078347814521740148165470479104370014866254299802900580717756561475732891053526107959294266058924094158693680988903155122412905619483840460163272862781673395891571510906246352979100695878593157221682008875668601108725763833061022648820180721000680698404438064591307040479752503086618001314087838579178786794899209776312160888871707178545980562008337667393267099896666342513497178102367044216017133179257969290003565470047514266103044601247316560608705274983181558869744600267364755345148326397517518504599922470360426254565880236833205910291225528302869576694918339095382700771554492550727916736508502116725474777186535943368249009093580174046605043252868328857812835142509826729695493373265747487246479887399073476892887888536739279935103608225316351642715252604208330930735992777288593957588404643067851194394051296739773917350390280124730698500642273392584150910120064540585779810658447391619912278182076036943386856701181182916848027296705500002232087265241665682106524429296686802128694321907749981512513774854473274128302207669258401288751789808835579560832221603291101165041707979776298047803025747166564422791547816059249700741228133967900048835851728717538889135119378438359698556266886314798661677931211374849170581009622551891978695214601032650556755259929143935192214022276157744832459094957129276683993025716348301075528680684391936186078837269910391179414154992256281930270305110405324466871008382888580270898929336613097076319243488324526259183299704483974468299883996741766646964233354957872838414176524568297315368191819215077756428601794197806423877121402957626564639317718229794727058997494126559468834222607848845770576147831490569596418450615600259338587137145142339024760788132505470281016297743262545348378143855439711854814576969631817410737299608902416255888835701464961316305515805967401175881788005338172112987329836147668677326640679712434533319521748802006380225305655902541221892266737953970521041971376474977023728129127042992770226045276436859187599694452527526239484415041434960745309050945947307150764015351667834291505391906906372122171584283401204673582279150410299518199992313735518317425752929419270026465905609357790531084278350969087672959791375813704013930128309834036583927712119024696735473851432684607909579258061167397023775315498489061205839954627176173394085052444955011018467553846382231195264188947166060616271425093199916613318152635741488464168251107317841774980149960263800718394550228408804457796271859727960078480864516572406382843127639135590122549830655426545556857098214538533679145088895032464989487283562374001712988844722392577334377318597391813645252490441642329138502682234334993837394275723005714895577148885271814353162248090864005895497446176093555424965239793729761876600128614652446553149085252810751365153086141756396585667256996590382277342997220132110194604842646510214272978507780230337549269644776480005600463751748819698602941426344043133402895265308017534048466649702132430874004243762731831792023698042388031180272468414154520164585315890726278970743878044143761892768339481775975233362689191156321885904511265752351590854173640024066357709917236276531142284899293937792534733931106752508416234427674251396037112422934272802310991997600625656672407543342113888999252861345029183544110145526124333856029041182692857095230313632056511476350500592663625037284012169166641941778716875379070257011202542707057483968426444005153508128110955069804324631983064694674968572251064468147838647710480578557647707908552458189505441088904754161873324437421393623214944470775425738640753184172197931553674669774961664975978193413801162974040994362031070622307439024105133248656990069193424906329065719887303883653673705919168368660967410908259405940174475492073166807462653359976491654964625324018635421164727173494913284596711692411141519317368866828499505200646653681300584552520086826437787447566693033174235710717058921669212525248765826583074646330021793495238789379153248769989022339538609602422187048387513101536581524304511014308827795095728633172525240207475208631577253816109557389723181890845320388094976801512554851494725595217599429018818404168175996505461280263249482985752649905326096902150444518557804442084277022538931495981690535123528103601822854717040041371624928678565833041775939785592027387370643504649537166130984255046532282410208143627570460569695531906702095128973776676615143350892503620016523543715219354474188541102383337313261897349418023216005715313914646119491092141107749103491534508979206845924793289656966545803194871559934369802826663270219837765621026655906808826533389919338214858623923844246111425396042657859312639766194625510927832809816303398976996434037052813116235902727838973237839003873767085038746676717266168014739734290666622498402103869984583822704682749313473429905384191779567127920401904645903738565731322718764417167796412408928623485965407513569044029077042105160551885498376006816311554083656789734268672667989056144425759384905239693645243020861256777114966870657131847023351879846843102128017926981863642558790457323795893956463042064317189054338120968996073445601180378140207005734038455847039317975382332555233465942546061339006695596720086263306558979166513574530159334119014626292791756771316355967109288896495221101503491469912673772076991280721548249568363028660457711087660351257713870919727360764609505575129961297217302133788462423712111410171063335546914191268273181290687762442339494620708709902429149424606795367591083833937515492104897863115395832526899610371439506427550121083248299363805259433044326547343787426557571759803462037857326335860434525218217581039810832884976570190613181035221580059019889884519056186607013621857926889442533885999076729926552525678342759542400534458771545484119889242531757738605859836449986743975225617799241429601448520199914917245190339647824514948194455254531409471963494365343874835743093120577105987294992359304538849165647239320715126367659582707669778804507409715193928269369362406656111732179729637756937148089454604580672222725694457017130285669145395220787842354756920121467663930452003347436553654026651848958370496668825999110063438191786695593542873231244809621226910545810948836186450395924918781563230928659274221149776314258840124981356095590693047953027932213256367281043247213229153137201812787658622900358802116405557235163164656361582607255497691499273484544808279264574002212973504305172385937453199908488904179985524461151669728625313021727580276485448855713275338325027724926901154574208771222445307096849429507378801181133221428607308041036012413710861815859640352007878485065467695476774871310579847404012173814949116222159381612112526917674736292106332029563107530796089542334432875724382369254852540209603589201944048732560504812560711141909437871824425712353301155782132933603557155619310309093168775848741104148146634403199334715636512411497316683289503533666646987252886528925886851377978270638440801371737286426813185644976339021086999148073032931776149239574656357272876761191996291310042897563817225397967143538772229290258430707705627446090619924744756609240532516258156937029495961867780561776256432274172774116271850099295622403149826134713019816714180501662411926938568041898200815113488209728372655469631107322097831446640546938091845621617041349484508355927528316857927425159504626152839901737011756386576662882371634862462207327918965185056750866483542856805787422510186033699755613220610028116988503567418494423334448479913254810672214652548550921689050614656322641818459091285158474153753366827648170731851592167275961806967008503671210511187761855998670768637566745390302878991429856004273269718450022333492983708342003715600596000108448916004819669562081876943975681102507238936394234013396220709357695914818765125724136449387570186167926607643636490453821570059241085530181700253770762063201420325990738066768445675640805702802213159635494854573197424154091135952932421871527599933394887196114753401292200949275562526169595113325472519225434696542496880804528330030662059975757864702992772552489826538170204880517273418391300891962817139991399916385797623617544303122091668053303731256143532392120679637131755720928612071984351101237344228843275293247430927732491184091585151280579386888906709968962141763579365332845541308902738362340649234479211765798580034205756836392146364181052137345469330231196400206704538280827907895113037878898606767370959158801761870622528381740678483337646446072938398004846929190418148704949279664778641623671882265489658337580996879988912539252338122787455886686215433777298452069420290416742664562544150374220194084970513162714846716360823563192774845731470263503786704068609678443086549171593733791846866135591468204827928310408801551227656361692409785166281005481588308259464790132708353342195313866639212555274054513101576340508680241276935776173854272261778118571808910047034493169893320443873585998871772164778671834662333041349942319403638451620761447187043347428931968468763460165453942610973972561894798773006010430943888539060303556106426796185112403140977524704622608185369396488775371188490275344620522918411084527745661095814972911269702809354153349743569344608782708463297170097098300385749372421667866347184157673167353268180992276354729223287290044140830239840273920793521699826985298517919577057666154398972999370370547670570279786784527911807954468475252544987865309618902875371931538942540156178805908619599655459142164388309583044401972143244694900801132945267267638311697332440979365094134096383429002344247001463281431675681145311487176515519824729913093689151393182923199824651656675533252629624098997424934185267285544368063463121278478291814777652144165410610601872204465106427383209610730240958206664349009953626889807356056522994930573233047594063476349557779296225324661037813322139184056486028179688368993044998146226839951415997490739849971614190431945650212573628011964898162415124475477196847832918066241899005701298395262102303018067917333788775858196438163092683798690773100818331508917339618098612565182687070180501847879787586556228759600703629800189392321793213187358340880140578411446669200492769645855084207076535514832732763996933918474837991356169224347406216661084187356066190627455947846106304115940705710616757358862685558113623526800553830389111170293975063091680019069595096540271897470070634025881712019391192887921755393214108311906427641568676864378063551568523352205823558782144833783639253967349676528118395651923216459419297111740517183458149999531757445780774617873698840577808765308158396391823503124913841160437503615446655991357107137734241642996469829853585501641355366814248320611024300283144687539272353821297966116602669379278688764387665654528428211927362680075088869467737693560674541624241815015193797061765402021669293065779820271905882647182791047613450125386016853401130484296090782331469947992953319990050291785247371500015177494447633032708151182710586814795763358805546527043876888691894543648893324140372473126653284907410892270496926779210933405668088620420802888014670590564573481853604148229887245445770075266712188992670702727981426591902268997569200943814348032614274935393364183662431419993689776193677611336450651324386579474859764017760480616395003609454253109124743203822279444885165144939623909633150579700234593045238297266997202653434124567730658478661193210347204789556623224800007361247404243709946590549680015891966504864253792915663190457589971429216571485957175366715343182943522299227834817318125754582850284541217115706496865317816723259805009233018630013892876959521079364286804448969119613127332769148475920588268885719786710790872149971534898012493600715866369465200624522206461852002217257399705492281842915029453610624372744554718579423487346010782567412277677758946931089498821942952952267980641226280605074183108968619124958058885386078712587840988139034578594648761730997105852807335740373467211104520964628672660769380269758087038927954291598171161963577221843313757637541102132280670631135575800687961915848706084840563367653996238752445410096483621312567973800824965272358530801936464310965245669522143865445604258096183870465933569258672359780058488612828584410906990700942233111832675698321373156783245829702705476281442672346873631435409100977430867064984161832865850572117671637246359398243803385212735120180923192138861378053356838877181287206593446228086319349291982894008686509493752965482252407463944101429321568110768619149995857627118764986841947979713038102978720033343173177903564732019768566076981233812774201678757576950569876898360737332589658932179268681642709584244740248755491340166643941606855951981821639953545022496162782617247908472460354183169664019285357160543040056166802800517453422279194920968261562038640072112644464067432860970592877479514714718254548991067463444516338108670167504166211218113236430910223766792364661051397254607263838960641643867183941896671499810022736569040105713615864868320610573079722930846004918921734317917198137157938118573005284897448652688550262776933206033839531868055058035746156421803995565429808035955043157565256541159445033918526047047308127377581483592859431341670244351522442302330853333040833281340005131755992082191448812602427137923416216737752144001813425476882423692504239563512076706617903902896213240512021797742739730351292746619477035506079327599163800079353549558611727440864239587171316901200278283131596985055766702414158403571208027210897788794670285606556533902760850901487570191130629297699470842239522328450088430312235720022367381305384896789600896194201950442636172133194276826403386881051332498128193685885847532309540044794787551285766316595992169571582085275934905562201879432061411794465270146730887750229691468313047756421425950762278400559554069483798481995051834326550880501463470515977997803373930072453793453205508991786792597576669608890259810605138334605215366616382699396876986295296443261647847699097758851349704271699941396622042803179973367022943323635958267495267717320820475648640748327997233833153045071449912688192514417712204306312644989991511494447837330700996796493398059327581230197676753584475381038708773053217850677023144524219525164332579542935790888663205382012103321055207386316967054508152416898996823470580369240069848619488852353026274708681185754784709562046067453261079970359190065769899083656591502966937207657756205107529911272034244596924049561924850901575495334966076670853898119683891596628107670217612477149412435428900115234143848060753871694616646757214897520867046327254965534817493536652992704496382194263197387183629885232958676659328343800639205125461922582676797792789096407145218288649815793560134210074121205663046959437507277321993259564448437334818073504901836524802023246219090076176898839182811147741227388532405827031252004703191976003155296538227485478240744075652717353449130299886175796489882714344256138037196595023662621863113892387994465318684113740331466492878910427266491517382048844093847034209145817583998136361591488030855398349123564377311761138645733404760728706418497726235873046382495989131795224292914150155358590332269392399196612641751213199098699190935134970728747584779563403495028773309789441118251905355050347943485914513587473778619232124156822611864050645109601824673875209484267317845541127095254901633169971573940677089799019874214593229886342147506095199217905036249082700461017454338332392611429796624345624842800495814976213931235174824689522674571910429883391336000817776656550952112349136197137844787573781809415360594608456358644721631396793787421893302783424885458334921410209127529504762657508083421651541323569216588952760509549579109259644766529557063072171884324736716986858081386350452522802465926727775571415286413131320919283164092845409054356118527398394881360853079842447794785918048421725216902577608990843023692245441491839525489572120487338746637877618209616785751706540629950200480585349286140799276155611993345892290243350120995929019781490660731162886427893691731501011988306890382405924480025131239140518469747417229056004908507347559956142875446986101983294551895105970290882244279061452622806326981578081297389810202636875954115539529344547438847052720304997325261878820367425032152426516524124898780471016837511792800154144865733182073441715045009125186908226550711745939268306843115198192434333758638075722526464441009389434848721413170539378579482735176389627152959506015406970022952047088696920003600999206543830531874638550531716798475793273349198518354426157866243477947088458199884123277120965123942814841861030678694099091072476621127970395980313367028747394713413177385074130863055739883914167598140659895258289827270734802290815609857350006274821877838854596671998857290419694702471903789607845121828803717064513691976242150703936434478897003277195234370232571352684283986177228934158731692192680976460537155791075558629792622743867995266295835341586829989313686058519716650751776499912963993121220885228094899995696026824914597427878119678419329709368982567509028980515571217225887855287742749444997661136626850448567401155082131921248106449935757619148710498468750335236583525383034947708600049461133257984679446112486487322353438130617754473893845637155139556843492823913356979745793178856520481476791558923762336493901739539367874852161641432993633178607710801458207828825986398887901711272390476352009061316986328899332102965626880227709259813314015406862930132237361756361534186290389847556174702629998049602371904414166482643148269709677901550119194305921219398952112311488535504859286949128538637202608835627225916325464659736749502542960643235852892372098300896692566864781403799353650754760624072179020968862435240205422462069197492111203227204830218438233861838941856389062291695442824199898518658412067217881221274486343400733319923403598457779047276457257424547855154249417868903106894602276865626917327750140225620727032939677944915510932666232517807578711922423267598021288532542839767406562619053073503279552157474010452430625607069553070788051077975444963502258847608811167254842683951762305136643398377896996301592395541659435999689292819087094492628416490985674436195422404747154893986092647813386610285123749973200811354994955849788756762498562087112221958526985653067256310528559965613969969018063944799369789300076532766302778546879921603051186875053426512777439814882962812726717065800869705558389906221318633375277240904920716335529704845685814701998649691763768485057058542247706842963778588724768626266955645751018865625121878977552845612749474449869150300821685508146246128142823880780891740089213784067932505055307477520612139674851938393765703667816466938990505165058409195289249936880508257179490316671837223196846915194845521413457442674577273124193806106218477467504048127873455660052604599871841298774898657082147493304969001882091013088703722812039732490951534198653644203600842548590449203030281178558848127633863731742149949489838833370697872616463949271355755575429312580578092387251104676479150377799042742001511568304007999197177922213372608744546399647796331677753502836860634558373729228169582595472418827571380017881525412820837033885534755527587360207982207913366654569276787314936498342319589630967065640526020553392091304784405404130647918007684522005304896382118138180363296686608894946125960938526845754814016450551979998732668851719521567544633599358562019335386684938682043762896953750496245147784567581948724823177655578015105543314961024264919798452756159758552865366945626381214136086418024734342519834251996727086534520379465944664871618984637768717162883080330541791623609168992237106570033022154293967380101209720437826826477953336061061602142482365197977982851960867906949496367275963868861597916726337033437399594474193563014313243080784842969660023399889286064044457308991782122020318885875921402635663994776427953811759195361623986226620564897653519229690254671420546528043958203074631210545727917515853868626253410041904768930521956126455724081219900586018456419277005493197578047167301835461918344040438845539167021750292332648181928952525061342933459346796307702916969806529879054842016751718146639776236418516199772409381814047446290919133993941809238761937849220492082870996486369140097545028239809062043337709370623368031985706397099293754693062074929966049493478062526503604935685049735666588747582680504281262165271419261232925195388451663218876758638783534969522115515897912019860135399435273498304427987771890931958062953075849428085404177757722467237843021189104696930160833471029870749228593504763867539590675972216978763784197382702189093717716902687291799353375997654716050409391871591462660249757379770031893677790563994153855131532630391036150698509701730626303665775300944789553374345852221048305652871799252047013543865390619811269930942595826084342620888973619095075871411188845174099757260707568838860580210741789816082511053914365296893856148977965391277600425031271477612645463398086861190559325287747290221496355081275235814041431725049978173366479961019342415221076678422906706338465590982529871723139833724402961538983666105946408079497120841933152486594866175222505722047632278099923378461643767189104718185557875443509099712436909962443337267059449745302800830644500096514793590251334551924697175909007555283564148448173600917037407471947295988053806497979020626585773033038563026552810388267205771102829545208089185783691284860045636875760580644846600503768123569344512371378911398283079885243231326091218904135081321639368139486514461076772365216484957469247899403089065634343084233746069694703305945817188546707201909786771608987071835559495403748361361490531403804598250117361246988375258053669067080451488789374155904493191274072984198515447626022731074396582153628586482373286373343214856665434975698247174690574302209301031571281273970334916628293749454615172383322115160980939973273698873962421018168752710048927243531196944801039852577964148493387044758375151641882250348458201307705896502930825764098611767557425165227717608421955819833598207028256646860548536778794361905959877994703345678109630760559133632899722940503007910210530858585266282071030575726632587794559667582561300008928965350124511930857204109099634933416835533792403286729071906049755308119873989452939743596229801673769326724974569488344303710066848083755637419999376821444961997782181406868015909043558693790154158569287630293800628058461788607294137488288288403344473003980779777893643861024976495205491159502005827108706743943516428960168301916839095600557533056770719026736857943973050557285116777541449618600882007411138106610288043017269626573740299703294402274148289220215031732671343312123400981246386248673780696277689289583639519569392125971565088044244667992157831494456790235413973913162380492495088982511260583449922382333560065518804466629145492938189037252027271688227373699609360323622204080620578342318953139386338976890050083413731236765756995291427661496597338780529496228194635503445432701251586218373626121785670795342283814243415178905623885317538251492905909007206590847982502640869765279041530480110047305554758070713056542124384511165499408398196533963042167453509380037432362991045062010462847582238021684490905722264433496067647297898585135294626145825705030485967868017265455030875015378629081826171441984656737643301304503021008278380429789327697577212486736936377685898995718608076972025240682582974684034431507287080053285358075678427510097253463323715848912456701178853876188109893009548094841875693140296483938293720875536902524322713083226312354447997102920225214109493431592548234738880458902559059577220287082801167496243173003861250691434374248156326308959775444989435743622237941250198348118973244470741125425472506816517351603469373127620343382333613156436998115223065043350241665979546352519825710384233873529457283222157797082069569908594421988779243807666961151085946211360650915761507296752162191737065952373862122538434311591091699261145977961917005524097713407703597041099329845518164502060290255210704665998120863151149545488702714526864130807316546724592876762229514790437541574370864761279382353427175034606912287824119218424658155676119199744191093802895370132121801515742168170245992345029176315380164931462225904754480761726534893457929725400618340033819368260746605999434509565937284015641632657076626482194145686731830536491855544560878049330744563162446764465303644357360630663595967168918569911161886817400454055832903964866119553676876964888284050943786709500722389977525463454800524258735926250555186906853330811577567446834346971005811782141833338494948248192852644489013369097535818791428453273408870999054658994072428873753140958841575310539817177361409586156534740804273366029665929976444445661619111552081624250930192182778024783648098158403276561879796181889933162315629495331410480024000502258470994789789258660831118392051648463923776266276436534268164091597737926599423800742226611772412358020423336038972985638240849447933485025920469196305818449038774187887776499093046454805702945751278924059837337546329408278532022942317024719285495101340991837710125062203883368654520722077948836953642190932613466477482996507839836889030027190988195816529419161052004487863337713144156305939170998879258146689799587464615220587119404761204718191013859571473184388563592818807183332740767550015826098952441070903605694173553437084801569738820130039185795191022675881287671195291810407743606057927854107076558900624281602093951711592192099291592354115145063122717447492915234862961116679060539723570928507465433403103593566849643569988200627262294802450751479006908168553405295459262800713810064809183334632403877876330833947906263356100931297817416931289191731166714949809637854597069509154230560657579869634194942460289833704434188562311565910022705205089044082867899011904695991524140449914810232492915242347007035146852880767770411069266716127095786142226385910895938623057273310514621755930132089466275836821135216597794477521023561493693635142253440301707006948198509257331969235317015749724360516348602922894355884901425871034514240263043790209151015168955254810730096663395746051394970667572157095179601795402002125414582591276959783266382600078989075536628788643890462558927189321188746284926776556354253938762026755211575810150235484679246106841054241661426105430071697567653653895568767901946803569240813883727930480469597584587379628594676520839026799616642836413291741963513988260387603999135667696080799944550170672304255445984133172291734827344378829180186610717016318617426628935301500632669093286614650800235624266980685174525807026429514525157690828020350349794751650883724556696369339257449560226083137550014271104654401054455968632800232007209034108110530391628002188129538329624868187904917743774147782239609649296545577812758573857616000364853338624854558046305587917040126014057160415300223354577078374830888833477450229093112051554334505470039297982472517703943551700848870529775707231547710412562906948926938711223058877510726976708674687175724706565690032323124789450584179642965465807366224343400890465307923735717959062200682941232577361983949497598873197351776680032136561969988748775298785012828110879429963668242314523325126337776006944918034577971854745837514666446207039984249074050184708559538478515735237853919924358694402321994575070419587785587229401404559493897712974191612210579816796916826147903499784628199522983326160183320258502787522971988109332399965975547335284428477648530130155640902262882714981638198384062905169275978853018722002487649199274324341931593930369974859811549385341627875207051228003687070905634888247715642923193931159765140740071703146715285639823561999361390619421168248129244474839192082896866926553699293668494444656133283214768409467113607180099526173741129581553033655693523513837941679259345238673427249368493168412800145869901467993639683518720711114861633314901706119380097023228968312082158105445123239534279940217863702889292189406511776375955293421902665993757414983394124554465913570753669841843050785816940832243515056497853889426812023593793325870174076320316571021468831175551887667327178748454420172106077217571469582484789617211165282116427171911952633540684737161993670232556822225046074195047093669953296283059668559677890129943093974310586542688480531491512650507721810519667490087173798204113719125664848180102235991598095661009919190937355785395783869368141114197432021220954336905640214111187254270287006487758409336140847254433769519618144702899857781512916934050626085881943174917418701680007777829316429096365677583091890747010202323814615203852809599909396323310349401394264152972304068029398686049473684250924621124129443565600642968420156147162870381885163730985239470417491602107388856874794688731860865254787819754327723474186130541035556709537175730198311356075792826580683453651020052693436040415713879920686940655650617858758424419450296048024667692939530934868709725761570436871488593066702620237656470210031443635679753738091685528007779245441322645012338743528470986862340761103078199865706798435998033439210990616016732882154696068169733444222951773051750943928141761259624381894486826837556813120026439460951476624848176123032826342761405648036227291186919111504223428237522381688132255781496551526002478769740033577700945630859825696152093597272109851858445833424160488095740905244908009928370877221934955513041334823916459507682430402244237381203633707263233923135494600900269759901346090006920394877312882182263598718530783703336678167779153218628888801136064807258178275952146433695269626608056874985304904026213348374136523414867757722103105691112640813468989274129701709663419114744070071256749306516223368503670334055398340184501972907013285950386527421335951712904889337068331202358033881309976262505548714428438786311487385270177520412309255360698697597744981576230629687030722171464897622269264597420914500366453232547469654201430309013554618229814267601620994579539715688584654247894508947138149454528774902070166425174426684584395547623163305117798810991374868477019756299998825624947115429317118561865802264204342702232215666308838746322304305365932357049587031780642184325199604974854575810342309421858686679184540592707544051848802930904576980945131454840782816669472683232807511474239579326797767847664368032020439276855820119257065862238225718235445733976642411608850938815126959870431233656099764985232420287291695388778540148010605609197326148217947053095224400317436959174312271385174888663247140329361249572178996017120064796332621761499714598085647615943041940682686935240671854768266982221404793165148776528592207245253952297510255505491285146521394456215029952579087986505836616713051231333956699148772401883992529950533167222999164607012719934381187385660733397027804764122448884556580252741150569819170810476025700735757833688348588955819652410664112168534073866210616876569954653403480005141594347265922057758843817127473374300256928804037774110464850317052239966636227179619963797362386463170560651471885106445439862900173912672059929422096242141107379013234785046847016739061811118379544159056739209923662842863615173033549992040108194446511971336836665793284989011512828963100196813979548105729077694582291815336829744405120277462556592636815403485662152124610710386960950997234621656965657789932113676689381630099037661810138999929563756326475808672988641402890446787794895619012810966441814369588040341211600575284237144183991805484761992546014117655623750345938383069220693969678285077978457442776110071589673798517000550653638091785873879573412929210348294331941375229401680979579725081446406823440543414206924520990758271498058311169970803269430223294652790255509522129181054316322028308769456141621500938904370571164921419348595129437759862986375824885811892962779046887756656297140881989006280106694743197765325555438071138802670355279671819973039276245243693154467550133704162100524360698454057790883969507581885201313060915453959174764632138014455616001818132011088831679868343955831123315937536091779235535744170052861393938058472008621706954667562002496588902253629276146627647856344501547612691084647767029884674714189830194237917068134665537145168659714962214867910544497843930534862947319780084491346839993225149823047280398133893129354447868259503922765643792584294922112644495829151575146405452523317427630012845337371302351859772021580797538804681316539156628739837840714722323065284133185980111914209971711769492526495607164969152165516452453786209843892516429005083948733281313279140430613789210252019362656563021639300415772982012069659375011574971081142277471346925519812428213114171076208838680582482835112053150543710671342409562334484278976198065251432013555017450630985266276800390221048628136286045831809537196025352053729596093782966386526625657779728817133980354252157521618781305935756252925734740675825562873267711574962659321273388017106540073969294276767629379932065867347095042555009950898129257978718824089823198094679675090562282888203519930850582461993197265876561877273959814520008926493297540221723024544270102091755206930307620707371561151453583025209967886236548907957757429009726254239626468131343526474298041097743315831568243000379131095716576894279066216553752798390176041030519007906702972601924891468490027893556618744732193395885276898859418952136722536500230179840546939488203271928667649431135537652401934782895116440739853092876864718601765048338993162261069317907491482793261729812046431286162727926209056968205555842801650901609133424010071848813792200588775646159527881217511465984163595264119329447586621562400964404940180636199883299038416385643687817536096207842350260854916949136685960003098181431364528154131560702257953660633964893026135422516308950134782276590009025251369785239249871749539918995525548830750765861037165969790326529987567358064016584784329049120230912437555518939999362786469254942185325960672215542292649737307643698155476450277531952156202151484274868961470216561636040962579723838068389064231253196445111724831992767915564958075364962225740262080550417699885148406271911351981023351819070509316468886626077453207578212822926750019037171475364462615993076486612325308480794288034135759641051304748682826671951043043327004813612887705801974333409254753545878182084308790180296947355668760312606644555489545148133657670170743398911402639102884933344781639030042708719442125319374100387723582454947223282660290447937562676406929219077114270507719378058397796812124320135098177212921081361659858381273069948030837212265246959280363149399038202452877767096926543015986995969415705847044469603384865364798809028647522084438075626672151139602939577512892578507522772863894904801226548863316333368462358767529470713371717866296135194467771278582372209161613669191847170044824545107545547115224073066959255808825846671949882537051625440123110688248141762740357628679939073384535515094992154772664182093266717894895545225007290647201270599951866479846896206208435739597547256035911556764766671895506567911867273994765391827937171106229620544765066652990643668546345925988790657208733054667423811330542136109379070830074377845764206826855364717844617162031402256017784540417384484373316165133772664031044310717855022831514710594503419474288260348030265082993189329627039042761802273567127382385646919133997571441094991816650671290681544447302555581579994925531952108926030168109358778711464687067202975822341463231707321394708022571074257186038062866585551285047070479502085621602358018094840177856391748527374247328813737981281423234860787635277457633164094602598720363471218090586623450319482431673416195074580043065112948082308622732608142870190655464422386926619411099541071115769029213528342935108907471950049863520665268906168201427078526186591545384343422748826287958204277593443894357256390573868121759319474947562332099479064357943994778917652861466392623892794780816057552795994734975147239776062345902961032406497515065763044794060807964235552536436969720695199474354201343782320148457904836453401238646410440141626199488117341741234119169665247158145080170811602269493711255446967712527701523236546091823646951715838611161017294211342945137531606439404440258036291332767292674492179233019746269474657196452666118861463977991347311742503566617296589180042314421311877162434053303822436298851142411080784899763269805318768640206731942191015426006399092143399749239286094602610675468732639543097467055419173232178682715889964312388163172000087825921135261864996524404758382938247446775730819751217394890759227126613581386729379378969092642353576798989467795546371882132318549579608705851073804113004057156122709094845588665919989869647332030446335371760362512136084651030058094330964713329646477662858967730037282724622812247768638528375509676423681477794088293406554948049909997230286926362672243584063545498151838883998432655889685514748501120353829547228689362628468512417790625032251956080371050166057284203899730644504658347733977066678017171207499139434142594239322266355000299192252347290668009571706281142147213054983116394259958138059085480374514607064580182703330957052943013504849758775799455825368662605550076554367665270918826102930727547714796085253686352889081121387657378657857603995074220105226002675519920602841516110221915487027549956517381389696785028249026354863049587550018714043706305009040790064763564228879393751971310085829966323430472732668003596607598843377391668062758192236372715472704779260733389687330121824917402220922400877229053484569067891112419298205142326006230117864084568447878097344756068519076337609569104229030314234933764814606520824460340435300295753267731409431884127147597309888334891442915591288553552092941110591580402447293028221673103968354724858933306238324801059756767122354910624617132291219185708161051050648628588793335486652556353546090187111338868941494967277004758982390195568342986610748116704731595799522604386785862022903452628229520385884669252473375840064905782429790574088781668016186463415577186913050225543022246283428521100433139114596717364699881945117954242647014996214003651731267758780021876777891664439763998363462689471273922055558045306935322619469459929185308690829819994023359507400441910524880580006271296487600799839371532141758314837368916911685055394798320065549062496376145064116789532516220117446727814699087356628514241354266560574381417697909384472658870459663799876084865620667478056524703385581558519693598544046698993819807575008833163016168004942748226459054076561913616266790120754496049214736102661760604030522479866260880974425766324443574563144800028909908587329516006376310153076260034057905883586296420825238554530108865946846983018716588685259375027304501080006857124031075880945790772449881957926004859522504352942026523091994761428962545131524891863905798073837630215636599359559701365272910767836926171351529518972858485850639272897110632502975348371771463338756034912524706591774513883592725147571523687937202730473000145944567623306673183950985336906329873139142864962468376139754613988926806739350620268038376394638331745289762248819398467236898105960982407204070699626352316343470468851118424838468206444097365607874306564628859249609952795554189696910412969951810948863784430551435531761396701412960801877328272227071078304075780077745189976949010560168533326574258906460198717729157219043695777926728392617417841473095735122945888222341105188700097835853808324373204246713695237822413867134372285642703031774294707686869121029257696728950282252203009281154088838141381211113797861129203827691927080753902833932211320601427640478548335406001779978308310483364098823026304801574160179130158133473623518193794800794259817874612494733622339660765075901879364613929918172460676019767004498035265657286618937809912048578603693762544229826772799322192178048116809398661425465859160691250845162431886245789669434920496815435135269326841664539703920725652125891418924637039954697884739329549750849744355198733221865385204173529043777076058129711444153301449071221880063604125384741314433321609556652082230814511116390484837338956913135833179515921910650184103417321981065378221436996933151408711150965029248466958042615163822852907379890697804300372099454931498281606676140618954366789125603206920677302099982328243626140345967794974460085159782105250252582708618026981434056591030598634768036551755456076028926119148865283036999140739101630587936181299342881845078444683986037609119187189651527325455924276388978611764525823814801694426990526790787015142874567849974525111887642692636226226037379774262069873890236258794561008657582357573987696741908362540889476560237561894853850442161613201809995275851998978151378612569765966069600262491007411071951579283864133953810279894247127947030073282158643756507006219058915537444793816832983755457550931905520162553380107733754172731733271538921419718184605741325843939298724007122555144737943745209925280251027350374809546197879201076811542348624275699672204637179945020652551380585908277410531353860094318635150274938403138103019030446098702985411705513413132878496280048187880905566279020090419916466672571502900722392938204411505559569135468670176273700958949144912166256497578112222398715736546520266928409650772444484314863080251422038706182388706992330264073106915327974304315056507495598377809007667549998288690792255246828338136997574830084202729974843510105520626687883157344620122858187878624856078511488333726154067812267410908188413396876543880956133587400257571104832657785624035211117505285958676254099163051819449694954797225952303318633093888996771889583043291525199386691569903178358374781695034361566064857076213912448380830422367010672937553527626451550022452860542928181607594518564112012491177948959815122031530077167861951749449874751217776724341096941303053917572202352548357189048865239601295244573584132999821439870599320535249173536375400358671220344032562166020507135053735838149942174706547671575593028883255502130367722212869061034268535311949620550420382709469086570028273988415416588362624849093489733167390437959780289148356922043556608726215889895148036076375622028258776884836907936844069250640458671023168526043400276370865411233097998984494400903089634975573090071877107720532535962999913125705925334861979503891548271179228423213702845904959170467255908163391541038678454208390426494874564615231535134342554449718425468038378967705953750912100293869649186785871137457496963974700719865726916889300971214796958904541091828800414323800644391091079426201845002837323655900467262292589649676920573830746163690440084519437124230636112471519805913587770268684834186470956110943659168809602371849382340479916876378287290605657295727187759301880799067530728995013169063840323530451535981581748828660274231479449744547217229317875665788605826186874320354860359410883219277036496621592597385446848340024726761386956857026747858288348078655107428918950922553538531085442870904038081848707093639950841118387801337430785980354310578001901542057662618349909817862112561293253788007994639177674707117572059615312554090006849430123943053401888523038789189309727912772722085201504459795007596304585961890285016516256436524918877277816801161513480027845730705357927688523028637053079350350579270274595382676837100962814246827943157025607872972815874566807349517650441123155628705097222683958016776935627966097383323457407151999958583408221106557099520073411521823897696704553915117950934386536873970933769427141909610176923912460707885889917596268137961006883072703548146368005314500813538719825991614761342416292264515546703272531476627417924086818580117976099847555172973072849516885188223539270283471885666935965779214581903875925544038305369503004752454244333870001295641084319585484952622057282248234436495274995638645501463283577491328782926648259342540036428820902373839911071961453822992176525062410956843613732466288123995178925995039422379743834701363252135372209204055937286959112125025138272104319078671856490019509061083444792244440136500369489018147664225283397282225246520856147076497125268108150711097831018664462748342484848812817227790738686411217123352531246545093572512919902613812625906491170691149571943745351961410636818185392285011738414726706442803111171686764664579948631262884768014912701642970371611321593238042433527974068374427992427140575145882686693419054245150080705645068407881262944559822792899619785421023030053227729358020624800191426817731511303797227956843206395271782822642636066932235911373953356368955503839487750204432973705206200007355993292842392936301179629954577502781761898409513363871459964102618461655380275882181292554763431933160854192583890054089137156956125070094028494976020056364452267450108847677261982607518480506562663879171803373877265300825910661647367382406474630719477023774402921023409869991504758155709937008873567084587437971482753427351737855991569910997829917851305370329724087571433624771972872760908124168386544387473855926260719266541373233123950975820342184837474653689539475138198701569284612489209793855196717881413913538772699281393681783770673632175474727007186053710782120477151502156486473680389423825816455542703363812469420167775492456436856212710893191023266457614534864250658774275940113222463568798809672645570899737577459204917218796029640899554926183652452914736239091850820966772668037643953030514500149171855882725859418379927283893239335341374114616810304157174662827903764732110351836126902057978213605129085308348037598516973812815895700363404362006074441697428199744257187403475683817969091043070578733047962651536681385419358425435337799377288515661357766467498308319083520446015518451897778242906560924486658064281279699111677078781467824988621187576229961810465087834647902868975488386343586951335254142347976631719669300928450894543121662770979536941602394045403814990719124557685715286737528441328546123883081027709259078685232970026014076647737519233935925885873755074600919442166488568788783946948723253690940497221736535641877150327353370188899187532183232843467944418492182716489776333973380236623728106616909983907647038743316341801042784631749172868067767742246234394019407786794881354960076765433525167079699529841803754101927428620971980420627956771183112009752349521902053960374433538221771389813059429359948011431053205070116125211495873110161075169625299675181096172869867733206691467782242356311052539067465703326767359220124049862206808327808763239797412582337483321756213893322515268391464033328817837517008723482930442763023210138281418533996089322298515912443017433046177158827687141802389895216889515997545991334015179047479325695786195482707018792734824641605331284262763314145506671954784184787223625573194832831215395476346785382620477676343490281077678510014260134048503626404745531467396247042986243872429927487009404292236573925450154715348645640237408619712790852019090342091876781795517421903302989035245341252463875755574690392537896496390734316645498853114673625894697648562691414125413744202567728466973248399841608518461220903117728896805820840137828304869320814010241286830137286890218278930734540764939185902137335204225683133126255818446147720308562949467177654289141166946902303172697626482543373655291375089185795436968978480324535337049854092277449385191758752218110559159631644958901998173207064706761561292745850437568796425660656594935490869005687200752240640747771365907589324082892224788240372889732337177674668659501980046283178167227539158026468068072762459959947104243004939173012529853355739391415337243403199628376853773871581304859245815681052703370859433949202219086583091548519156410721505388408659171471280785382022222739203635260362226270013453911890386566960190000751903199484742862502246563041056773064264733101734765015914689055244462677697144215947290077569392241260616094127213331462523864837884939900629284972725962171482192910041743142407587356656712405233845338097297723638127547017670304059700274683322917882515482009576255456709691937563125679393139712699790669313192902233988335325085653285349793474598990768983976590999335207069614580664966944785764073688550240414925002667493400386872576821738109682322216336718787191917490808188181959199709245975600704601725696821195461125402295947539104365680412156341159640349685100816218237262774641606023448751511628196033420175379738461619225971358743229982752551433849486397152507767382160999352160219014040647804617827725724071911039104227334209716794904086958198464975520474668393143652648852847894987900107449696291822511815153166147632449400643413524327421802762517184985045241161558448628575189740724386883126241968161114944932641237473134190187489856141101417277348576832541687300211281606423255240612096209810507771246896212319144964900997561770968317907523301640867181115046203806728313997799504115776047546537362696960924019633557947756386195248554532031951449121020702943523229157680417491968979756772234449987036094684659730856758817977811724341964885215341495735885782141506478212642079455878555900392772105229047746126169270797894655440333354896271739137772620615362679533640537149147768319903028359444829910182503669829527768608196787716154655798306238353238990200728285808515977614121810523700099120691928087709231582931399829399953570900548051989966614115272723358395739641340060516656055951079128467919346031490869728324207063449202163259076060507202839328795467490030509821898770447195091554093940580319235040122140942360494982744041207697235636903557161071959297490940844895989734359725249109691530414924559264602318385078810599050132463339376583560875381385751050932834752172400837569919869399482450882722593346825848706525445502214297342437575668611730865047549456888346038358681220972159026503121942390356483896777147556944670701020793300775571813261436382481657027948976511712053168586097987980646795825052214273206675548493494049551935113671784053240869393747801797194134727329701538612165840919398271813337532640899866096505948298096524635804941170379631671918979706667415472575899818955180824231831050661279309927926592151832915147387627645340541594224055189274504686652969929395137732799160674288537343298790747787585843768057227713173732919990293376543706275305940532564662113268150375000003962023590138739660489683841781066652013293056661575619941604793537446057739274663115903491106589172404862335157128799417110850403949193055532807760847912398111499240459328856548695490481782004134009430253758207604880341297655151837878921826921671315738928314234068768893306725909202202431666706687181139943642163825770088872783996771763621894591649409458554610029322691854636448903002306349347586566994448009592960564760493586819147480945394009752766025190083836725982546674092624767906126110839760558883351105498640564572716692656055695262058356701479232519481109412423071071699369039151760884064250914295874092673270341891548933455223338201657148975807759431132794144153859392039172721048184861774647130992186584010709338067494793471446442701734619138884495023640386715543314577408241805261328429029659748741514326196292676612209053387459390640730288227460744646225950061607867072696438183904179758341137822384729995045746554244374323163871816394406726766037317180745354939862133457334809561090140803215607894579250298567390813579605670520779697006938241597232295345292428674645557529438004208469008417264292790053992386087637436878019032412243237245039876963726966012274513222673702460230173816694866025994888607052255871181303292268297276367374888911157217141054663929276425381520989767470156699768830704488615775939396049872781579080848453288147937214207620475969180634735170452933809530436663094394250259598650498701447858030475212008694615852702908274078100333889581561089365302591133244569259202631651149527544074372201891738726486433998987014911994106157410928645481674512255677684050999896581608583245090508885618260914302013264362082249017006320558210972393145231732703341258508955426100894714060448613055873506293533231928039516944003157772768970245698293534799758029212791566049207861526992146294036560795468391058154724605483668520288836255404920005894170534616959229481939871892548089413451009875997423884944402408137714672811259226570369316430072807874274404221383814786326808642654439456947506376687421238742234442412909250740867608421540553271927447793201533683555147637455793142408629237508023153771123479421152056745022556100649224036922315327761267855410187543209314129836225183609069130701503964092568883836194538103959315517216570282235812690814514065836957934270401171415244054373104941585924702795717760579894156006160585109481752205173719336709439231839524243687355483040651776119616874919826878407858287902545863322575575067081479146923599629227616958609620789036913854000744263818953772569285892249612408487817658252119743373871464359850335553741197455528583069822271145444806197183920165747869802094914136106455396574535132497731057833815952736099744315449582805761440897302745995695331666479682134619726287208380109196983377026978828894391466814311051565200869627456319358972577628527147835870918532832248660404687924134076380455648339892599023425057107864811631813558383465769940526003955701769799292373929956646498659734664126731855221277962653033702354776892739503365515887793903386381797225324031235725384937674501656588262358184619128363480221812625861103178899017748687916806256083662343256294723217912821509562599145515814453546817060982668884651779230997441203469993353426521628913162262016428219934583160869711655699642201635233766709454265777076004204841521364574451562489696441402077880981730431461937473190310044625503493278472348281251614467678492652739996066740765058971646769290196999204997923372581507686324278528448365516065098759515842315373150887253038411785969860086698817883845741208595205504915217577790875830821260817001099777034173245818750847027088898832228510230185281136022945920529708863865986218212330930256674143851145443998871381372332860797207454110486358963493366847432629635505083539691276614602459147558707837860114624246881259751929333879237107591107669362268217720964008382988677980917453019810629642683995246859249944570163229429777357942973422241461297339497027523998008086591039473131764414368516455238703731498743037809411929918499269245602441166075235008990972009169735441746530213113426456614659336351283110493221428865571184006862233521647102255924257055296711580140854264699545624803962642383347709642246011913998669736168515240754561194729171221237529848197085810938538518735185609221109373411638434342496840753752048284872144230168264434621137803089516131671566236687143967446531726478733019639861500463418213764117501887296676868897546336075304983100767080402540310460854280296131573239424148051042523719619410151351143955518550746970861032750153994467900717211751305953468225229488221307616550567708733020314606685433101366285178572621136391419768858884467846833702483023274200801864264328011255886210652581075642804723557557915594677229201187370527165374223916144937004741651619949846809181414819403123701501407787123264730416461430969535998211631304427540870734549882499767136672147029765995869118100492532803171210536891772786307765979143823308568345273382159098351396464342533614180994526046584220312918581581809987535972451249100179559861120477549075319233784131608036439287189455130093763577288320882055162051691833837476900827586882185467306486877001637511358223794884125030239188401641372643883321315091669548864680782963938873857681846514796367217864765374573927018037043555844766807381749287377577556907890784217317589926220968985517437264740031413700448313802570395686218581706001865182553772759403181545546861731484918334771654571499579056296760743128600407776712466241544704558347390907553035849361604502526467763293033919405601687524674366844188705299844637876155327982518848267210304535156375027274929633356479389348588143980420630497303419886994695923252175114495075936566218162333203171739988885253711199120502486714315949072117245579636378919418408430396319010994232758601243805779881903751359756915458210140100646239860261275927872444770598819300145185265776524480336847528604733927056600138338193011966320088534679956922648269219736764864755597607073707842718199476770352533988760225611831127840706095767986613274497769388755294919640881199884565833206842254384866514757229049971612567463036056407243327604048418237647895417266351178300124239075780304599178548788844380344500745406692581469184297450053720659536220748011437218366359578982585201392812234625877240186087136280831404657663284325741974933438892386292748566563486997920305379777314961793114380020199222977519188159728601698995748813815348940389339434912585017186399074843986053615545105521891710258501453919406505209518068216470099674655811938288362565949858383554711082702106372073243319052357018291925707596820301179983976989666994727986252567409341640899856941213194689128319257569340707376073449113218371688637443893955464371704802457084284392040488243692791237071807882518970306289399445886105562019921881671103569525582131536938184665619391415892406928448554848557042454752879905590357196572547231959349641361733143594481612446829148083876489203300590292466733358744416890787235051342412831317214799526155501709740612443067422508000096009431308830454924582565247630826945720895959002768309696513514146518870366617486940282443555917693570288653649332697252241648279233325576058866167923536626544235948879571900043353141340798714939028468230142910474985403650686229060988729692839458817901835070422940959311510438128524255607761355992192712658449054562234533838994224361208838776367435344291186214126267557150308562550659286695508143788068514952799509422018068829028501296714369804230335155307111318274880947082946447592942767781168673365230230948044721099689586379616148246241060825137149733403214540980419896160685859648564693881498064882912391078171048816705113881873840699579811134244646148639393689432980690622200896944221297133305021590937323050856327801936506425598976825281392210565778363874491750592628627589038570209978741534362522131878709194754684918222975566771307394740424069272533928934097680094113686905569643939353113468534521976789472999964847288297200523179211480210457145863411307805417799117071921371784651035656306192626201760520143127555972365121839642202910600719744316688770800419414614511855098631617760908582674516577003396852158155288454398351547515085811829923966292505626891609290934429711009609533449608385479923597040174401480400921065515332229425282396045181444022941898311471967089670505861427251769920173090538815308166517761603470629247302756508273410808246615615142748852429316991962402152265759102242461245927962080208309664391654259980940907913273151891960633561311085845716645558179272867475500397819734297458349868064707770165397399963065307069247955181881146892428937994891713694637493262638469741743329602707106352727105594925812846689172097215244882695596532974165836884214848407949129474337379730535511808183713669499478898804811496345871581930563996777897725160013919050451860758977692875322764899413354567445278363429221139448276263253592391939623967225004277144644581611483929760509743458366126977786101990384115758483293282479058454805852867164934672993698237413260839040383421422435263104826135616714677729596147560937143840826043301960960629746458887382012675943874229707182781129978873226532502045907975451931292368136343353186381926148954443232890909782388166168053026891057753582211905092512879996580071010333493623539956939100765299523910941011421768433872299816308935013315616896976884913596205367392640090528115226093698427332543328755725945335488697617668197413865138002003346742812691028837844031491157643686759238795500926852255051541884119423421039161221739240478251693844048687890508111859186861400198315895033831024770971684475676725814252527368922209366887387174002100817448839958564685364201501513259080778972079559356851470292314143567556801295128813606433220136289813289871164777206946256004843895661247829671126044314554111404004458362814967183478056908420520553382772084322675752957127146439880468205467235446143193212069069800292122421163868839466514045489986141253638393017954563800068271577745202617027949151819464215576005780354566033225346319101371524806519961358776453720630769745213422326028528319667491954829729431005489008895824777106514086252766432969016865205106387213639092166627440008928367856617591636267348316167200691285328539248269683597696836038680851161759090073441432607402333978972991300718356658627897459272973210379182739166132548483865835741525922217103399454121983553476191081735093540712861973703089235218419600166415314385848628674738268578528629853903094399209895590747593614118207708438004417555987369683304616251049860088828154067152553249450345919897802258175356477808887597156031650230964616558599638643953934828800418667678310995088369126261890349142606643620429933057171631114636589812832824299937938669224962538573647316778102412110748356197979571501507531467168478389971463290337558148645294082300499783934839199324406473507744907864383146350958168412013246196259399237948365770716883927332133667120324786513202844744077436744317019358349727461558636355163847375830055247463752818604460952489341011109407619475212992229327668783454403454119234395627210808601606418660990556703680429761999899383798926059236800992385570952014334842219876703702585551337244312150894116490827626229767382166909805947973661390009168087545044204276672441950706755785539879025273538835153651337492913212237894073360431530591493601612822161015374933588313287713675687854284356628308190654655393988324343543104849167570239904655290097432376460222804840802637650085816345320808343596382106231624421968067525628410879154002364650039204331011892314729413446695520324443302163755223691579455843328182252750252962803543759260303599395883274953501163288759828490140246592866181309647134536592401777956407540430863789707984853301040233738063211150543265771818918915320405205624977491331482652011673270154709193463056322584758964016885955419560016415152605348161196828818978821785200185967786349328046055036328908768494817357575993062991162817071634975179319801539329602053549537997756137000132309798001286626551603211711889255549754902770444553538360490128432162380621883412369079173097535282893806617567676498429845869328678701502444149633454890366657355726470777163633179578611249992193211369597793313433348925622010315815646713264102054295115887718258157092190317060267072216468256686531828389264059102831137855261979041784162146224723017715434407339453605445808582013336705610398942550634500710631289515340350142909903945483105128113830726297720433692882176594384792766783575737235189336293005172482176924715056535976072296858829443680181611354107453888835830581897519449521117285244273920206000958143704540879864724845784619315202407833454336106075447789948696011733983917386148673350811707690198205917814487789297556821332035092206254218548917047072521555508176551315592027461965510292135817543425300319918064529077828660828116351086987782932611510630914957511228013700336938041370026639851422364461036340324171680683706767436262353955388044494572957779031559980080432354139195744914003041698057360970533231354163219128473465414719360829951415018922850999352255298564503485154558090004261397620063010716308817493305170283565006565687439871613820672399500060203120207611674098321554538713512062157408917048515460161981121628930630810617563421944019027487413952600101704413879109128188992269379017630804168421026030345268359853083971491796347678676632024738018936151241600720626221051297481577460787715828277309713187494102363793775419562256846789377174738500216694613537025848675145566793414923252826672747894650712940901374093515638842566122368299592857634463659077804927951558572699502292395249552092828161427263776972002857378541944442424997437320421803049112353182300356346764126431405589795704304263018278192797831472135500890315481605730038877773151260054033302976198294130171386158052747680542316656572939203947980372275661134832643552795967323740907728371808788800672831104643826215817446035126066771273186184208624761548502312354388927783584118795619235844291774551664828876146103571007917076841779171143816387798883974364718053257954803253474413661352888705281601871490926988713337880800996136691803390524338781876627807346616231005517533985101484074409913015563861738932984204661658648114363635260458186892420654970727959994406056298558476312861835608608377737273450633047897638020837161082767353434341092170839282580003755335962241423916875184942430885949223971953638318184242330868707577156114860465341669510777680199647416126109080033486253225055306290086201671793350108372904272459894296882308178553650048782259526930731127846052190162040944423375829298903203339337859233359178754768757146686493328224801657062391661396940698537848678640111212247783068135003897456052305713924807651209994296779917690588760790251675929494658481175895615950453709726593840955136780614728998241129253170654683677284541504433135598600963561024788932846748296369053290801615110199493023069000536146351990559225148946220528390695851996077681432789990752847761674321820068824312594229777805728082419417391285219744809181044355655887565607958272863334901489357733597315478036830504036277578798019189428116074180566394399974964003489386570400320772166704608389015311812018815664957524211154756648588016064886654721271502921702874094968565367198884827430570364763763585809899782652377942097129580281803747325869978040008061908166556755320035695972502524094120770008108856714762800416933280352193296145824517158229952976177868363121185461885486370874521867565876374987652266428006714500040498997260301345246259074246553315153315742817001826016784558572084214527713144185342472244906837115650370763686307671741245969907703408003176989862514419666472022284360604537981541752808276345085867605647191435173019365680245268956052588780909310757297097163384676401901091984203643519654303293399306391748133966304867842015039326456208467071972288988521004496633775600316260619120719766084873258329976196939446864749945463439425801533572659943337498944424744441447013238852798655198792669312556489375811215883193360114040095218496456584385103648394701839604411450078270417835775844563594480461295864269666855864754857790713398748891915896804794687963251191987390055509063923049878505322341399564010637264508397463615876806802206137283252435900223348749889606554473635681320591851102535791197913558494517914850987576775731991668412388139854384432149496360919734353412821012733064645521212912202766094306404635268917127568963990574813693535103463178501358988494691681526983889867114868299697642414010298649131335100087980730019033004891088332185716173826877309187498589421835265523139928144724122449907721327921092248358555319219168102822426194574394572652494290201023745005204466567042489815695507388787398802551901736209862672874565653494097455040343505501232761263887553810163448941372093743525703043178892104298930110756403958323706348936887765203434664736936252022013038608769815532758345995052600454168386130911878662485314423692007560743438458818551232334312893515418943614883243771071354659667191506150465109864989620376367735305338824481525415598539348232359173103949374082188966233212018563461138882796287688707270783969916389939974337519491236635966378081471902260657581139258766930772968201009270512302564172654653467656895849693839959658241807094112616526464148659776608197213836799000370760948028239792135831796480816815593230404291560789812610389963205736488148620984135670185749746465898778987448404947931041565872279795555514372589135820697116527112392554534784643018272445127628130625735392754364178135563176664463109949624008821475693111466651123376006376886727066012434542757689580348678359960858733288506339297114339455994737540238606026506012992679764342014400103573570971781815406519067335525654230508251816270614951472944204112934984959419870571933520875208539363031597832031872280315147536828072000979320121684230623104650370519779915528749728833922564196418051319607310964826038047728569897370192899991358228713767367606049697296451301679007367714749450168417622798776136854293135536354486132021741030903761150514229292502473229483987101436569369941123257026360803488182629635792080476997970931204886663602304996950857615801821646225888487703055263466099667662851023573653836980644570797384677649990791647456341206566255915130875908714435712429519240407464896721076257643875679835165566574378991031797113958595030931008311216601483397708183420176812562930174429724527784783910213559154437541278131785200702193081368482852737613158288723309863261831233040390123651191052287470664473020263810476289486192998493208771461405264825404685097522374275764017690452113911736358709457566609012672525309666475364302353656932591464671168599662693012802659401244637046753340951529426416462179838447746704276868146580263702520965340379020159232415253571596429873992979863972999336017081456312018122903085832070914732284275332111412720103908920299558148948728290385014633998670751870887265932070218522514234820235592220451572838663070939100273212372692363033935896942939589492553261443592048675290467397096201816390788502174014800711662537290593561953767963728579278510518313960039191056203458262873580111274264946861839894902786260223961421467763119808573822682958528427715385619871635566812542482055750646915592444901583758760909931753844121959834659134947448856013753507696608405747708288282833480326022830428213157667896258258841319080808083154956063439554102671722298516766569834791632082376865561481065791265071720050341976876407716592836273184742675577653880431874282058893206298418482809901134200570235859783668032274721609778398994201845281834400126878203359597057933853527038399921558558044850938986315509774690549784220699310120203816016955006274279771580957170103654415077049821057355454355396893873017988621997338524666112548025253742765647868203758213221295199064959182180914784724473947911222916917868852203408221535239402689687730907346638996775911308506508095090093913468304950856483037455993933028930604426570102677356692206969442259086713360519068011937018489969505150355448891774171004142625956749562256991328931435708004983420285441342906657998709200112731107042228398508372703161388987697318582064867194282337613005156613363455705515800555955886845385236456483527688970618131142171919122162890603679179828671668573266548396032686910867825395245412201242212342554249239149049745840178639561812113704188135149717808044072269078331699584957485442431702823543538409787514832972490073718446461512138791295086324086188482125992636977828558823415942063471899436781349911097344875000047282304715804602147971653624864211260473752608016516145335322750686895487683372716472340624927054707188589257679431320792232380332016606488713161154393228562440124583221773663725340172164294837709340007549663215967551678366680362571830535058962505195365743561733144428881325369776089435360739510824106510466057226789410029234215733295025697972609209599314686710296045913177492312275785156046208685712652648223721605479122549183047781984602489790782658389123320322061444171648876381804206019977559887557431962388929789246032478220662894657387699621533971049156749249415122218073102623665585127063658095307037255423806880507622609583765093201291153827470693332169604985772237792194563787252079610178466720072938869699778041840267928460619739228969454266122393761729017653836079135278951261797895273495263798533115058099811672361657290002060393572182548523046824385739643845696539970098945510914818029755159771924645621675713481137495176607493985482998588637663729225935018138362006811369792387103205483084388389819836881617017118728941902592813652824187690563332396726356600476642561441720138574722847002024954490417127372392395773189735028681796539707711138662558047440400682570219459319809983249304198019975683696764260309952265267074039433724647421862605730935689035290995883314738217261442989112511681790742479435587735782575145553750814517643492716188332643610146119164296424778120131480300547071024550272373864643956994817984702661032934830911050574474664443053712951137637742414069668133279956415391864950274877781837080508822501442319878025339840013863736555998404530056318022146254074189304251871693636428014914595830826061456121861913000342284744728305007164697432424324665470535113529951721167256459350641053194411193979283538259206080349918628420921228845613592275684752474444339816350718617370421970364960097850964633943761289014804802450451732430188404451279139782731669676237298414481473521773608693253865807164859067506916859627706535996747806391716995075507185550295789879122132842056666043892850282990898022244992247646211854284360685651728097353585460871520783632439267021756147848494199654620523399540581979715674897781861586148754238362545246361555628225258796501420031920338716981023425705977031297488913366144849956150155425464160197407970523783102086453767842759751539686080466482270080924797926419737347639669284250498263884957855048995809400806482848651859843245670083751944521171010985920918793521020263102545661583532325830797627661579470671734614838136227825205716696860662061179213850590941622448950809310311469105023166552126017242097291576672658943159093395903829982552199489362580971929101694306399651642177748834543086592206245976327246105853304917838567596987958173412011773620095132716664503875046365810548759443030617564714421868858579866252068208198654259121522111434160441173576564228277534596515952648724381665256518118348505881184589096420263915969272571626075378703712578929060604700201732446578441641311042867707053266281199854170136753222906829988563178114664495284867870113168022069800691164985344741606212244316827683517857501163069595770158363303531436169120930934530142995571824422519359973050033019837300525919468124145329696524208919974100197588623867384040845140451927252331537398249457630812864950371757321133379069973181801249977727023546459816005937005693282707736267048638584816537534958504749903318740655208575030965996585047264807783722525708416391438706664013238401523027931032686538781993034309913547439526360391059274270022928908804042605416939159234900193267322418649880320015176920549562940821055760796005719906158291608104031487727705355383605839926153451519337575684718618868211138929953149725640187750105761978006751963922598423637068820169757838543209115193346486677668996645222274441118948549153214109715204251431108819156428268173075107379796040143569912828798910517897661602297588448317403449571683672896865356370677174322175031765890350279709065155792292396621585469988798008759345629789124772001632756324690299301951110981920867629402472212827914407984717901433198668165675957943912020829687588855962162482981895400790676052431233215403726190192026929801562149507434115082767021621402734005182654117623815954817730649388191870524976780395142868798581941059804931307563370940242486493050550986605036496221555161683820865840267914931563641068598607584991191605531996100753558398346769653628383782847283353669482137909917454223602684678604403904897451584414528725917273661610444463798652051073032344920891631143481793526824071386883587546392302671384801833395550286592672674496735521751138304410980212555850002443185880310753668481935627206003152859170083837337691554070113826892072926689597359456057362775726409018477460679176497463478129737390825177682061714587463157712069193018073880649549308906977148879742045655455373230216064017841217461820664141201931246697228978006577275675649939697576217180576679129875662185883139553272107342778768414773128110126405304372008392594605968833935024735155878472501799423840774436058322636557423481406701916588558044479281112429452412131275616911130344526524626556752969253885053820912975087993956369413124192218601279940350413006673386036597168607042063736086450140624600828065937278833796173771311083156878113005808594469653294479844408703812700220312987574986440014437418200900086737922275565885562819845244016301716634650168054634048232497297616057857052501005919680371169333127045458190053664361242392959050098433254191459521482586507260722297337259245915520219054201193823763318027248645025673714825016439533431218589831699996773609033105610567819401060758644688594898777884525685551788004697733922892703845919724153559285846961498809423789704809038529743052242390509313823502545509051771769079154959613566114706650760624534572159428103675580791432497824257320400218167207094942428504041680401381140714436467284688412429228586558218157613299652246077929981211142022477983857854909018854740225474971257844187635320100243797447057423946834864750118953747225954094404609274116786835292416398822987949277074714527356097836853519748617476428538687663183244507893853157866399796013812386691489766274481525572195409396164271408435338796647404259491983707546629669569759475293892341824070672598145499889077846687357242461727377318583229430383666502114711323435069433043679411219038578029161503379090307237643267749135989248269494124683028359551705133858518874291419420208715691369214984482922592700918007298878046385971227760318834885002383589165623666612221150453945604785918208645868273546622522085272539464660845608817593508341766204554054953542874277032866069623407741856090093065380365625026761447596024820768668114285573876140504856426636944959465846372116095619168409628661835912078934935004716242667656560101957019865291635899361159913013799868022131394666023241389995427587688021793112493124378265345837802437234586083346355306468320166144055067696532946366367227335811846753305110688001723083703900791034668664719192194954189618735080206189379650247114994018051588151404088199891882673848867072982170584755374142621835943671733904391360741476026911049364571982457543142789436522967924714766586417328323436380218981504945533040850293628632173526653451450632799198599447105538278544107715001043865495784973008535748984985467926622532739585245190687660156503369205849912731735234063188660187101480469574107980385820124786314494403053100784301896526921363186769315413357923871835802867027851306352227945596186761091999923157382774698899569290949111473325805213786979730467111828591690693103575591563509418832758830321912486607084440785100836431573135922803721937754255553602898932128004627229111171496879079844879314672836030581769404421207281723679820864931051556716818890847837318403031984439116649413131650846560861134485249116491997306462739782986397683392048056697453698089543669771628215024471101000573516805781344167182896802789626494678095748138287030470248590281445094459807876025856537305414302379479562976643020363327382123674623003995906567858571088935394305938620664238606202788180140226817145370911227527460701661152066834668845556409477278023073874641698204942965434706519868205214919399140576239393023062575058254712374589206917690423701862147408492059419552753356846007683158729639217054656929452820531315342764136965738943207927840163764551242615373161507669535183757151429565212480631918004598862907646193458534744107559630250635746875871776939158889611281864767538499580746978641188529976673435810747714246593066294987244531457701726519627531899099342340699339001306990662832216387608880924578308040541083761252943584513158729544542102734940384303466545288143698193408961699574568011069626501113525998519956843758835317791753914610089402065445228620871449200270886751465413349113280212276931119860354083341557963920557488714566495423695251089335457404804714670566879125586216597163339897610692393483709783544164601991787387805151721770290327918322519220060171158613480640121838349391988242935337467206238471134371084419187475219598848630658331825649360632739919784616793007556049123603486004199598027278830324651111334929079731771469283010343623547672010040777529494147273367436662073340125081275029670501544355170062356536024337702475631442985574294806384318312748924497130663387556221719871581098312493490066383697815101758506079118285132002359160320941450631310018899900412497728624179014584546294369825011334137216076024051086264137461635365003306743771809162061177248694450472783850447971669289594200233966820327291020543568898943784388318417361693200236330662528748966627586490230227249181089438294990993008559107432823005354102006907330087541583344369227171466875470344920679867671457941695608168920888697963986256660996661457693087760932251717141383873723097100187043325317780419284864448010170366428754964234819330453613027853291360008360613987821741508145690959979737570061302014340305786757544025209717457781707284687801859409265994698277143022694501086674864541915352558868427598505607098302263088438038719170757119065605176500157339484957456213979295627149476303155884911565640945269599475227682260932867065991360956476357405662000596916637643245993452042758497954921009394650671665725791749860237772801823203996958924315968953103296701473208164513867828259417340718992764591035708719931994246022801473318477331366007685624388974957304730646551324384950615066464668892531230417997341925630976526547898280702725582047340825689486273682485431690077401900046400839433219478780434199595594697885101876651354348627758782132750274218555258359922386042017466290491620724549416390394306851079873295266006875110675421181653951896765060489433375369980554980959387639538428617332872179842957655089372902925973695908566645657692005629169241447582220134138139871184453027681513728269503713039601584087258566680771385879611032240760895190683658165950141634886815848545925719643095276306230619662299897653487264116944486451137595400599323458285466908897623128934010905976687115322296186697555430913657369519030779565585634872141735714470545542520798752174790520719021752103359624929518581001742846011894034164162178364562887999619046925509605959682717050877566510973593287651853119299317095266139245500928077115003713747429623475236794991871348051898753258342064728233943045283877415542790348718941778672698388260004066637028788515355461057194679203860348312608808725297549408955291835094228348057654848204085603333820797528314756122531309420438163810388960173190278648320175466271426785545377175687276994102160728177099952085288453632820250126946980258088356386452259190172617118442571438583711846609709600941467243032411355579210995872613472544179173009899492910473946698514773713114322869248491523708336520500851937172096303069524467692227452301731608769104548836812340932883062477118363274427046162832857777668703622365233006409706854458339995046952309059826885573798735813418444066037031589375258862789589350498376969638604251535604624050950210668035615779412980381629122857455524627007157423953372113371590705401599330432699163070787337533577770415165154825104240088016834805950928505223436202618622937456141376148402468722943700243574940838052690307322958921782614446842979784779987113945546737761676534682673620735357475565120488448964435288241462332332463468059091904253782986291787006469428747705559745481774415690209704591920166232179364916329076547954350820785875629624374950488352640935594246600549886132745718826017431356617229445610193565339959575831033946681535796924548686451335524911670711843529615608096895784571873848294114798275149583082772103086545987919386345516456740013999483642683777254052572382633303820185247468861755511903028589360889661583201545498016499196019821889917120121462088549049194484912566843126683067471077553887461223980636696643810225150438517471372149681087741836264454885396474068055923238145101836485416207278097333794275742247082788213303503472368757200876452695228673029993641275972963305107160985869500744752189545263151536301384418664847778724916400946773285756981679155171805980885838370954135119028587775462498935230095816010640987257692432608283167924094172713691273416379951008205488826364153567399185665702595509685622070479148215018968710991079175699204498470608371616037679694595936932023378438440925796251750600147132466052309098503031051115582227259451885873819629929354902843852175920300755833318020691631984444765790249973411900363302500170061895878620994168031043366681588844042740675890040497570235446569112846853743331537062746524967229958496848166098165390870917617061277417192550079259101145841413789610961348763448155999636457169191227735236157126527941503312044550628116523716003494717962675674086679936722992771021037267761036726131587086625309195496830468087870094955360913031439703902473385631701450789200863230082814021656124926969579763405513912734669687314989359193841548936643668863368015116736289609042608882402084121106073152696548421612181421539201775354078289533178465571123165615725538101005996913677913242859213648286668742770431053461223290531698625214806787623346701430394715794220721917284792295491955191785478725740078503831238721579593848112633179025063512639852432721992426978863663988893017730728572280307674849149236343005845363157232568609025131258920016293261870630688211431295815014851508744115265702692102895324133865817751506357000138487984010084721543231134429946401170849298247080307086462489400154587824873712876808061229479529505740511996151147442352360017585599703494279406075673358131844536043720100628629508126899047815063809830408898056763904153636586512223615905900277576879376796529159560960175359130820254331574499887988107140605838989301914089085843325938412224636527269173476477859636351508715938900414335518516570978963729020168655544750592604290169846313511222315623243450124207637575645016186859991357003482255906809462813744495950676567447692613405185715685523389080145606379002043789279121325004205240872057371432444844824785988540777925425101835179964747669900600665660419957730399894426168711368979572907339306985386771949973768167226678726206515353236212578553480316262387327148678760830342869895163674727130580757150151675500819489627224255704789881814717446362916505120988459243563722406948861621651917908021211520310756490847359915102980537225548167273150689406603860969712966508383521169622691963723997779738571158489743868105759831646789091626171073583968206878042546357176130355262244127944607292415237713744929629811406333982842246709957998632741307606992106944210738699704485495715005868499336407251653099885315547242081552492547893530869330744619135427041499050474484624641537237523746255811256673773039324225317538470593736569287803253879237491392939272720179186798132193570180063479195415669553679159534918893637617331167583796526906691002533682061593615281350597369833434213021791226803285746054829148076592738267341646845193434293950365681710856996137634782302245231472699777758704263221171293944673161306345818563271543314130564721575615408838085934647791495589323901634621505109005310438348409170779692071253803877539146468070420873916862954091098523125528139245816005881022983880501502732438528714136933237166906110895374021067596915255248220586645943198540744702411274854104088783906922043988263040746325833912515904054921893014302230208171201710508346714859579283147124965377127950391517545200519007188961482229261413717519298520786624973469072085544314655876452962624387383324841720064054678402248236141739427135466838272250858519521591007090028728620696674104892246927542284771013725010813687972578349603633571102080578572976081767796531870521500804491949038883185101991030037683618967785922598937294228690459183030286929992225663887050143865762235587227989578031605917521464282934224585477343607970160370805504524395751517925968021526317642810594011111589314445140157227768319944280316666646077460304026074729701336827605747665860254381168716206835235056519292875067938349659518294359166961195024984860063589565343757789713239435526992520422130284930718806206115273776242593460580427750436131075603959772568966012633783539463129962286543132179492475199199175163376154803583353743279879656757570789137103543719009507847448577434933026028889284200050260169415322955870299468684862180490236085656347318966448694526090235854074653885707393316639302489369212955823415464952784893189143472045340524712275891607734544603099285215983424886477141073625308806297213923393069239581846549295464135648025590747082829223246397990234587415995373498562573134984899570078355054580338882672048661804168449768808153819890432397244373361052174639480198938774626424635953269925709134583908745556088149436763480465001464089492186022616982560152397328024952897471311080032364210533397891843862818307483959047644438210028838003693809308213994566499141461851669798031819089221310675375536280317048587770308152930513303463393377698910167828125110112948137345972530974943433455799175247943771157719119069841767106388223260034356207428441144097480077139561867954044180981613583132818292307737237495676002707496518476283369920457321448047006835150647245775022736094544079497806506094555274159329709453573963281971244961838480211023185051689687655895940987777129490472754535378048574238198254217465837148693962594263458691307388552586895530417236730358734793921538213546594285073968742255884431873482847792791445604705524162862575427825676453815817660469294788725086895010521162742052474265088973611723261744145257984148662865928805306250511044474660400097157389996185389998909705690231166587378694181113421916923963460563413401235450612458003688550088977254505133565417101504265691528165801973827499721370528908213911918303847488503511123817304695504061655850425427888549955957349089422709836624836800569390919356304645447272693600127843448358460807047677737288226910719537552696944135908031500790678090764518809874528438520058829782090304742974053464757086995059498936931055219691357964320731569402052963457700723389409823122878309290770297298588786602319585419075021181978660356580526273583329137892159632483486243013511624924934163924727161265228008333057072813349628346918402271560381423883410112107069443201975189237171288910780633840644041878066641302533873617395656078384241643228742156521886212963712544047447245099342231568041371928802287114834744863351559635691898317052430810246249718756330006637625619165972084094966502342618804113416761726224497415809586107252049176874954313501548274173606865046313811640779587525312401743113844010576114353190994173554466273754612490383983889461754607819061184681044225867207544436143566355615742976474436828198272734517592961776928748710581606668145013111250905435261761159870915344361519249024082271576889854438913234840542236742391304560262214935140929267546035901970852424285262725938351778831117301747315995283592258785687848768629709441197266944153798371385301317858523885530916266395826608789087239233142443880234578283219628923572856087618612250946258947224801471148027871505717113414457668550153968052013845134492788710675502160892003967222044483520816660358720734450299801343584671780238559964657546613565146577087763031367241476281567895966973878123945458749263311237050958209608212472412961955003787551413685850602528201256778231054334978938952178213668117562769066952302371482501175850967626157560345860459613823674034128518341610137974253408634687593828743820892597766466738693526652758185957377355083136076037909751463702834220688554718078063779267493976136986814885536661673463083551972937241846630034418827894085417771879834048512842758895969971033227599657617934826655696342695134358397901871923931040206787635834530001702756711435772742041972072369898107554288022061974340715680630343948088406207802562863299603463245607239569811058765345160006747885185030562726292806824076098819770942001396680044159160409425785795511344695511082338218729731059625154694751064834348521486349034237934786547829008676952701636042741676867512914169336852681325544307495110431830490012294565342310832769434449395437802260571380004625092738950545258575400011901884214668002338034009627631800508823995322380145575534773946166912467803984279389704147970187335881959460768262755081439286804873002990221400473913123756358804495679025616710693711355772755283074025263169207619682081567847100750118086535887504318988666742677123825717007890770443331947833661962872611473136930535301949980991177486267613188860405371975884450903803539096889158991043717300112966242922780733634389808203873933137129982509215980500889076225971648573315079373868978110635707286385035567646102656453914870856978440657118907577918365993843940836149044723657095986958000706775570221098599463348002322581633869330598514819189113028648910637056930823993984088242806214913867251805321529529150875685839402431032444538050124787018760056197798068906997196966038338332041601688287471863842540892664142525171719911683088755169705845814146267347847721140434949573650193826482903262607910145820741495948887604403985089109839113387358788214551338178829772787940312050999779304410477099479716433132451306134757309316227991795423171476443063270080579325198414403404881409896638098412573519949837874496728587725842837635562778859294181271089115626795082597903567089457219792284301261263932068941575065422794720381703211971115379215921092982820568101159256740111703184356601586405012233560679463362525138735479486848871626747230409508330080039015736984808433210977910823374108175438165299493008628890618383988984555791755765199065723741103363239290736214342780330279193141157197348170304801189316176685576819331155181771246781929648650346734756610077176652238692985886088852251431464532932334614819985633370957349320030942608039452258601323490174941428088351001567166523906803819568727528206439947198361658363995649113536311738062974204279195075413713884042306545611213851129165183471513897722023315996831426319030918044430934460569569092255797885005981020942949356929467275999931863894424222027519600579889926923653929068610130037040595870782814959129767081459461856792676545329715228233899639423151126694040565245075642867785309444350602078666157817936454320600094706452404703796482637666257431139968948387949724809093114166289912966377088884630108083469886974892678109791085749336203173550291645275932021383235067262614945906031644237972644068689157671538329772965862100027741412450055273519178091824918753619566344701316572856613984711758913542496822493109285473933038585569459128807783548190275411313294687466481775095692221155755131508572698237578631522482000436931164171661704563559075280688899884080652758321147722234888849904928274087581172436560945778439047232185354027599492125790550949864085209515828306548384917334429464342745981100013336925439346325460165340225634808516960753963159756455941021159434535865202191230731481465847208074989158389704741388005546159361409162696038465350267400456344623985942325178455361074142784096069564845893493145074530226228930456050924339335058710328319660676997672172179703361198574720312037354456265814360501567112222560888924181174694743820932034569701117216149131806945676760723074818884116422456996739680297775013104840056252844793894846944947147499475469594800514763400232974377067076912198617488062917086455370895824989994954988816274401120025072122217419038150262927648399015815772522910148617342954532186788533843382007763360498627064309408102802017637422226559726808442858073999501891780348803425404517662835294425394262547930140925607923487994885866965284302766916820296919978707916831594545666835044519479270492426410698930478402241369299104107572884852629382345111979230564698662917692107523300380632348956111359571386351637825118260307711737361723365422249882686634238693292648292260312152339375967473425448046964011728187255472398997503264935612646988077378294997928174682913268079211543039897554246821679726748761224905151844230020437565114311741730481757066415842066147699797827808742257887096503819069813549621903979536131122694393030445535200065918418762454303394887230225417689322124187166500146076279250722479034588318315346367287684930467447075505035160585967924292157583198194444786208123062891748328750713670123871311293364059977454339013342227319120372484698006221271588690235433588069783493613999837494152646992190019717834122678997761656107168911871618993558275080263567513690349783480094514313027071231721828380016474921903760432995389273495270993528871270589652706492634789207431315412402527206637574225373770209882842798891926116718070046156500615063701587934711144254329375997982145110220773816834953615480155223664192473683912540109177423100575687116236839976953437006899183143162479027870263216045652879773320546712523025212571904965547445718444280811682832032296635943768803775086389258250908898018769249978268393952885168813069833676941114365458636447007345387298138684026750892888572019730541226526427065202115804364266864633878449390024376730450831504033422085412120441317229777323454829065521171278085525187648738378227901640560887744646311570466284201333563970693972565379359471690495433494286351300793306498972878287061137380342457774177560537091839507596879619105513432137389683373168044815883983536194063959474941091894376638067250777650066934226099961976023273494220432112172486215861512031875711762219221925579470058272406345295964168687762899005840954616238532133385074829882900532023663459343488696271802344276370885068769334918152414337273478818584055737191443084866126246153990480303309211378195680449174394021764167529240585377193296114492460950370836821334943681816778040612746287724460445843513762855878646561120369275884436247245189381042963704567893204874779886774519649078222365402055159643587023377627162771679675249268031080255585177086007255199237197302143945382469198000531578599389964062468164893813092205621236402253549772367736346649395059563662370688973136092565176637660545296958676400689270385295782310049716344577931042435403965838820857970674262198426390980873150338344848019560023247607126948842151140562438015763360632901815007660266406046540019855227266193964653095041452828114591909162760287520508938928654964307575157689994383882947680284826412943933343595405715139986361103296037314384728318407000911703514524483658906408593964052832125601444772770141585595578435516901765810744983391274582055730492592519170715411241966374849635170149241662364006604156677927898145801262599907873872298937088685441833770656214672587360082194876742649528532385351576118908488248883431047158132977928376090011308413595751783956646212695289956849245259381671224140650439566460858382244375608290485640689056352690981047111933468797257164901828979513279734109484764798491335670502505907907525410675046626164235153820019039910436287212762917995345188656215189951276871364288972452834340040078454036080395058493876628240477043526919825894651787782133637206504323336811623498246775113599157944372383821116809994826082254244537019626968497171652393897442251750024432258812540304487435324405353761581279671942180909492143516907232272617880666763021051178527248739401791545824932254764808343721725477759617075519646292020937924056893147816227622427306240457191243487364965005155653891235442480459002735200227796086442513252308540200195928603877871075764148238024051888637388394320125896805157850630812219990366841071171927896706693060624530121869947042866387151422076898657198989600886813178880883389579509071862013311866771256429083336628536233549187982236916435546937170560156421113523890775314312278426899800533165292826361176471551018076132552123149829915394595130145826170676899130871978284000710870150876696896573959666787102730737096196691741785685168982908466605370944961470789840288918241204568171879474502535797753457909137895032734175804509034553242725145036653945099617334267635073407107485380931525164879680888427987476511555044528525805038710964072396033417141726461107681996249952470323070551860413980305026147784373497979730316453311912182588204240725895809418747043171827080933021965440805337333265343869865771861344554359702822851247488843049048400470183819741189263350083341870758158854682847313425703112051043273008068417687120081460203683176572057063555505458265081301958443954665060348927502670070410166099597775494777735165192510368316950265460470838318842277983871293934489517491793323669422071342454286135847859247138530172075509215322851840828996999664030973072422918529610288897144338882549816843128599312482832740741367981394406244989483936606637566149636096921729695440738219392272824193449168673193623990304247311290404016454617821695994027291922008848358456571040205765007886994146482326719499270630548436011645887319768716616416337477824847545257062408629545807548539037473070884136346447457970029716253144778341470014024066014697523617386974769184402050911859549936854888420295254887782171292000159643830048942074982538102192633168329336610516806634918600517060783229447702916293750984887074300105222788438336361466583639019098964638527461823644310478708063024138293734850077270700912829335703313416631540102734801646997704300508162617234721045923172795790450484910404877968097267703111524397282869041118334910212494203957084046470923838385801201691737540740669744423488053366052881695327310239205026340451248075632386073055371737020153643688594169113217508436907492930179860257623445510039218581628920036815231114513115525984654344941575272267622650693151262804240698188221192761293734071896291661066326729433026304502743086785940593571906081379861869809364438426981082590329347445384033874249759717342350195154223797576868979593097723317917415425151291024823466820993726427605846523285035438722101147478744121909169387976991863173109408519354174952853032297545820295688495163382298283448488699384600641834492535055073324939773254976207695561110809996386128084441694250450032355433499369023774867720695513667856692848421801900118406620864699119409139942920718051078100027447395076836504395492300739188066519651692749484949524920011591708550159323911684824462536842803669561241898852826283307383584117508836073373550978505871961774027537960157076866009173678351694452006328935223165458488447609875628701864736623612910978898120533182039168635391169874732552654421032438546330600997589781123815257168511691851998593765005502286600212269335703787004528214051469038389195491628283132730563513634644203888734071392677365378799348285662040929157290583784448706574280124991295996081065870151830687525849080771665852789872048111597885689302102536712416867558539340629421228472540820569872483866763156509041252819302413077881803016809702744194354712595684078783604838967225700764205564393236521686945388270903244700175677192167326885337900172299673729979780808312622989410388174198634527003452415480678214506735848766155377789530793426353000640194178240746060375416182322268422886842886138969213327299143788741012430204337738069417868144221970553490101563857046777115659939955446335663655270006765305881978148535168791330770345543171632456056160954371777082009033366234692948213556688784210928091090095525164564257579588840073426496461982870483346313852325335042691145559392234918780338202173876301684397539705089303083834404439918908715398576607668415464698426305831304829544020436259256445227767066079266104072555593356412811541462494984040208489955330918265951299412246135408422514396759321722815866370698147594537210173322563967912591402009038222004718474008655079448577264735255144131014752637546715245285318590246519944366907243492613352838414919888009057109554728018639115132314493917296404942314388734465538825669266004856149030172354308471944401120054341309643281032754830434219815277884557396287226867700858343778442185439273838549077462576179656334347726084609432695168142819166366254741630162314869832758596397455084026733572414633450897214701017279656053413205676510634464633781266687456188694403828750840489075662537957613121713274982732015732414801414562964164955816041373759791355070980750051766614023503746287059121358116669235620275362494838706980995982089146470439947033940204417112460486911188232685508829141740649880318698180978208717848377508985705704265153263096217055725731805336188751243552659098659365485680068405421338463884879647612040495802550006898295818915747949741504396550963598583661167287211215085585808521632412852540287297991732323973276840892133107874807732497032139151116881767565585583048261371680905462566332831236090107929656438308980774973701671192053220235519075853205176399928461694518457921910910769184924584864550607857978437330374348787580434950177166095852647401839519337339247562264604799220599546377115127298526990523264009133147492955579102041657977215388359331426149441423489556801080752161325484257084059172460415262477573751572895366344316981853855325089235180649590504579088805564403468815602541312364868351999235013773309517619678483134892635087569833465060675679906510858026821291910186469002604936467234486778249376305837925345811825677392421139716735108279883661383572455741969551993924357008664967166534642547847014035373538098895056450343912393427460003431239147197902885075947828523237848314474287169633978786805508104935739634350659662988253043772063716175545876095696544577579559901908838197968300233426718448730588288492323294540833450464037013583696125535108331782627536122059805814686641692272539443288226814157644559046553012222887221571444030342637462694968708007728716392777132687778216941335664997226876081413154768565313474611670807102516158992663353476094174795879918629795885577503973498587513629517371968758366102888088450126322203626849850637121059780940647041329451834392583384089605173387410636008593662526905837040216058120358176964447760807748425959820461186962244385445241474469441067175821957789066855501094613718666789471191738378508549761654359233980403552774028635121694070463571249040129889738956693542632607403457276861557463615634524073484342300034215925256234302516707564072101252857440246211225090537812750827386965564522398198586723485456765647851348501752925586465046976436509007688451480438147822390276849650609573034438112984608000798449716695395400237488449244603723574450117912433911856107571553600573209557884146285132759783063781995579792553948676933750765285695318455525269529992995206574709075093872169060292212788770073906575899677233489090888604199243513822130179050279219991241873305462968177840594835859879138491822706548391323416561394131733132339458001300835296916705043195115791916303301122634550688882773603545723486859775414885069252144073537012536206389866789621782786941503544818906195609698419079761500182668415305625836161029507141226046374804685744731650264323072364404119185001189373638398528079278023802646616642026193406570738931295305180210885506030177191181686359361999541037918801012724916758654767022243033135217959366600102102450725313401653568636776618034692985882458329067864619875195811659477635766754279082739322673920908616207167135529000145663839136859171226200653740248908135573757791072281961264315013125937500889143280739834333222778480272007280026097255867776939204436349713893447339237137095655157119234762370653750937852822595332498213869978357709483130294988578362132359325601971009471985126657301770512236399094156956539146978600380117058972270011517716221601803916538374800868467603052747676304355479626659000724618337244471049809802781249047382322113854613869859616854885505890929102860199030016436507028313460045441493599688712723125818064270670068734535860580826234958929550982198012757105308506981507511687577716722892908856162830847925528900115390390127558974132094358422778169858941262915476966740943597041713124610082890083078264810233170848715517951117539686602834658629265574343564328006683713234018530919718806616987052545171442291918089778742887108104587681893298304660965929571794856437016598320114208961193695015161359698869077672596259604096306895200343323497802662845786325747106042199458803545894038148766690440827687504926559409995117729693256850741876622691168087864706023245024419708108398263226247498006472453154985736743043466678709864823142015901612041626463077047852708748895873854924480636976357128406302596594461853263506514073894785268337036508191791512411594760566037010018727704190088647874213766652056431274262765108639426849695626091253912494215056171167428526150741488788029176477508578208901725820879162484076735145277404188525608273260385555696208766316663751019176524834650325023062409296605410893502587782622703867939361657160686625202399018448326589622277384470879305285557988528034247675614055249404265421389617893231034118741996643014640671034759204813779801529512287156637832796259495205431939512540093466571956343825332664690805860511547085257788063160808440978179525064684001009535996678679790201917075755445065908123527299075048664833281800154960704181460367092015488072413585277256544334660661046756240053931051118331257977418010875312874558766639153548941260855124638590486522566241085113155031937989690534044346766818683219239152080956328917700318613936639556241361980775588546116940579531155523563342237289651642205740526071585573917571507477210197557480762851937017970810505017507649116287730305756679367063430421275965974815163198526932675045988310581852681070302366676292369710980856817652703198564677768450222740798437894901997925851796564796358254872268583241835342238306507937282410744307681303228035084696181598969262162045603420501711947888108771892798677477866538899186130886151757667483872942314701016801541114086594791785381621472167311859083709693584388350751164198438969585271996263379623085631607750350037789522032148069038690755312957487050299573509710184725471414308526976184498868287824527761473845541377660416871579568324205937661865812909723720642837206332641760917421613834194550411459699899977838444210539642963176939400857092309554548488873887841858874384193784139344578605201293887074240401927039591816629176041319735181004744249319928691338885801938965085284969143332112510985804497014527781300269242125779975427344817982597001087809551606888167421001138868824258935448555773005000924666984918617510725643642773778501922585057139444999691372233596588735633617390894143395310107149195607612665258396049274003638885767062438453670216022075636601796015456752867185690256684881030133667069468801521273616034898366320861210705193610618174584939915265383871165689042857886775132655580665499315094487140515051065225307961916695596956821007940179380198707026150522587422497859709203172490719278040609710871890787500220059196833496520483893499033639590428665228661369730940534368056114334034013572018643753291857088010721484631126680293335994660304727037465223460325059673475351347633555784200709868763421236074728354380786034358742278891027803503639965874706336475073780912967902322463102589176010519716624459849907454283751851373326266048886611324601643341852252409878890866764317954290017951838691322232917798606608279598245610377454954735698801090708832359972338616381588154880103082278175171478832777015864382976509470500459420899981761400530378197099858696992749797802492776573308121017959312336140555531869707171311882896574544204158622464120833502225509608560428239054890488739059507716149838167909325913597369510928884473410407541832824017165544312251884628841783558439659473381364404586043014074780080621523357935250981743752867342486873317691592090922307264950078712597161968641437147503375497030908033766843729042077178208585392337909155571359125560693907183130265405073113596440439405773503206461280977782469967735602749706434997973839845432236546672066908227503277768385739028006910087655127564617901831042082719182348080227577910239360333933656502563667759072336093254393687546789018741681290955584909034110770825205652819296735731804664297180508842536173551217100674169498447759505569160682900568471553322833026112954328216246126295001424437440011347086844936714197382711357310796935412978402731612674599059101008611927146441688001649460729437210963802502846202362202638975325884963392090419024561794163970963982007117010979316578156531246367130694634635097077232878170400418213791213283788175024188322471736502231701828963812527440886961347492442693258325441346206102481155149683139756601170729459592247450240891432208617555662946172983980195941040651741116329469910682899596989990111401085799886983076550519581936276549562329740395937141103298195920481252768188442612821365058416683745946897401471866291606463835493786177879769396197159253663211992806086833876554146692997272711462677554889062374857491842960219996264008269260195443473361566679055811714542676092140582213602183303588928547614341942168023853263660034981150808265148885111354276660696516678530644908796819148425293853587211413353859166951665897543585481487429636834043329234596107463192382859078036075748273745839765278844190290716715620295254184778186138557322617558634420360980093909147325746747481997507793791279603283085222574971161476342567928147663721195432677032427856029679698921120868449093711950203610842010246280458271193656488175790060213251177651501855949852915285285819903675727407520956437852372150311306443131243391905857671813109550241735766387092342573147353376874976089446530607781939547968959432003382297828448031594991132343728318462254386044875136322902604125906769044065418856791790062690325554406721018135136463873003333849344947421471834416677264185008480811029568261048847614396303020670426772104681445568559982843171279604879340067587021846598430098459208842971784100493305652145194919614600467011261067215392436683058024236533432218051404384174105228981653477024971705026021271036684928720080116718045440734233524660762363558905391640666486963638950910779644123791821818213270558385710020492324488148407374348674561010598872931111595790824927703575310091836541833483353127518504211616915622495260424496728185949432045625268688838673246177242395450111626412601949870082159844840971623033033753433691009564807159362665807272367228684491272302077840020337867809814392074236285315230318339219425046134465941189639776993216426328532638465155660422460564242780086928041802976519073773290578751053929058491620175434406486764776501305809642018341652102843099482936438652346024270289512041959327470584949225890880203608151315132502930006999426683883510489389380010136587687437353823926435009690587999247713507366833849547923310931837996714228820446638959605770349333734155471988063527527254445840506365027573171906908128438842288384815348219258641927531154286852020810282176185805698834705804095346652710617676397710534714401702302336714646634989026971536167085520655548374874429374071122256503590385023849368847245247513714855248330255545500515174588273170111953079950330482022557022981085666532478021935535947234614668307527768593262003932975532802907297025659105305357056429858350697404450248707339673052826359328738596463235047306694929301728258411120765325911987610038013096809839740770975407884287318063934240220900542438878240584024845097285873572054028212352708938183036314285935712230992387173619962303703182238244112195086248291341374050194746637362082590588320061007616279621210622700327970272579541663096230211042452253804532917383309415090930988621903439258967046537707833334416814249466858474709185274688417637554373329663263839675902742741207754276296232050919324302141049317802931061836746834871758580161887568566337682111341463486120201674525871180596118070686753829409826681515443888302468294464235926182917159960334318153485842063346480233515490494123548260296276767772775090461123878174006841047112904541791909467692978517991185751305370928019119651065880805999102402208946594645458986787543387219570976303223211554646998882497455149682877335181075742389915940867671028575801526718478657752012172442157916507583958312542644086094476136872383396406507258542848140042363342140818371586622776012558687829872215974474819203782817545808184665983035794161899513541714472687241118248945887581567876396194565073184271347706406316520400344411486677741290731504008155011831930074882358315060703883504037314037232615636539792899803659559875034703083313348132136732483342556069895169963484893571276896661559104241108104879173471315079059444809593724675417397446712799386196260330167124074822484388945393340782722763034168546333550989519698509674810180754342247755318033217746407516661707469985404338123747798981859637775222463535744785921387771423092946473830057459562362380026711684980808639105030364007993277199212767746684653704754252470453133400567481143495919199496494257166314712681681395462582317613430747237635044247942367618283029311675610926319802151006523083199149658898522743804566512150437384166098360334219128738196627912513192429432965529376957425709959263191500525280798261093359886841695731020894106489919356784058895767039239538635363468183701382624543294873092709646371577978784711469317678118599890499570811074887471534445871308251873462201398048383172997640537810025691985950040158258287485936391627522701884546107140069114136288958642946287774215645955381183475338112291432501998266744166228831669646037107664472358449892182050548192686982017970262680731389076807749647383487258638891796411432198432383698563036557475247847109962698231340245340228071657787535293753415960416684495808460655410267332998366279478701119156807462630420671352318889324974806813926469747839794850556414211467769016885527296479437286678772788660986298114647918548824478599528089296516017410842656209179009448468055352126815407220579657572520385932602475533260397566867648682141142271943769360177812395444111594674686062154994352495976466029902832559476644432733603426715996866402352096766998599983732715181875967184255420426235770237097858184733891403279175594678828708017079508056574832737447992520188657132273226763454689933257523346764498106096127685852847616856554931603009389567568004474682142643234475252277985972169968436451527613981381081055685638270584712173757308035238913707657009085764842142229501095497430788613157981906145075628492126837178594018379832860743762755717491164679838141223499227408828233996637896169511513338235577775237643844850070458555704778815935330572969213336119888678570115623339666800708592359863682510048305561055730498795119422404450028734346093934854492969052583898766988195274701558050853294080058769832222856321051041157134262962311421844763434573558651068961405000331891954936315363996108543651990999004807335771588625353177142190685359833923093777707545768503499291049263274497677039516357371408589143703150245111517388994254870891449756471762562438548268291779291418779707426105236367734957900352481363823922739024499156209278520774575440004928192592790500903940251109089684823545447714735818143496454507934823805077659789000458701360628105069504010863243684892927336223378377159294885296100907642199401617415168957789749119373367850311817740218714201525752322424233434697781020880234000445643190279493452729425663821246099350843658039205057681207047436942745293320181115296051086221130586788829994631394575664334853992632445577289873874328683430941620167559652008168718841016506714305670965941750814560866552644582546588964667570282309177485339863326317366019840597418148846412269604978970264332232913691197735535834472435687632652742053635939275272516002085947626695008259881998140031652293475759428985141750926786950060610863286480587600313006130806228849564299343980666698444994935863161051503413739403766238468263432025506973425332954285078095197431619194418886835962787412275268249377212744830190451883194082353433416130455621310481470212143859138114083857565475552600837358568472416712887190737526485944372874487111698118469253798645155218372481112173674353065232685204314957788187471742059920126233101295089266633827265546322832784459497432687264046815300693817162905114155120752239078480167794859360051734402609131101448792315579840655888469587340183524837153241668573919472502023707675455050360104110363996098411838650724170266542622853932254676588800882979210996986119859033719921004438266442170498218431302637968088142965846447569827885302847609223452203420024526612552250514306237172782838428840385853071841040264727690892347397963798981793591102326109839758412709450637135593238472127462241355623256818139660123054810916554079589286521508231266907612582478235151650832509592661788701010999781202654958169135162962515237383452438568957198805997612773786371294710309207779633635372462377509697278818834708290256044619517084515154745507799915630416858082067716479713154908895069363948293813321711484158734388746791108963556026483781224481895897280126658213868047856904068416914351209565708628036789712450696921212006031843555421135782744925044020984671011714392658765668781341309523975552231143805141728974807592138514236781079112805229014490676534947953597681718326792671730523424226585660027605272440400018825667590843477101537056944583801069449471954991546444359515169473388768031647942297886629576205643015019402201934561247847655417016446176290875529368111962275187205218641164240974898865673697109331158552245500910621642687913185384481477016338576802730117192088365198153260498733772483008375880812925199290880517492976301931429396638014183659386271815173130625069437810980703025824308438356228004747071718397208390803858589456321908884645592453356263014374385952590956367254373622835328035413011349104400960734804383340677272565276225811617295802789542789106424167285722780709459359473275191852468636456182011398555409624044059135542759991250180593077792514074497538472034351442388536213605630277541431072454568711115390039387281449351342919189221356390807426945407744901483337570878555089329522969077479476398093000807665881358247653193085107377648767296630769932412048045669654723325223499159588354653470796045680360455704240306417001338818936185326678856957773697038672575522355149159906311305730976804265079638005436488323534220706296798349007837916188705436693290068480083515995491758413072392285359494215161934528348656396996499117003519748244714044838093072449941376958134232431482927109468062509050778463022980538241842054484882995849227191530109616605998506064737523373080494803056071232704747443021232589018616487249584698516613024570522571129490592880473223877499026812349318194607254511122076403730820343174397122935717866975663086440577634470278827435247431765854278593079469161502916967983049726024591922617751165022146335145486412646184427328125540296349466581826708038056361151405784205424928508806250622706168726134205159312609120387618933475540333229680250000397164519170628349706910852857591151245442000612970555509993484762769516676738627178656775266619210469723290338069085983782860550098507214706342937226314614886203834115453088728750378362733872846315220760682159842856425397949847139198598261503410258043625250283682827016921909882313161039874942621394481573006312538920354013974100958278860451765603436699186923491188573620358111295985560517680870663469979133663649518298758455990317066142372815846242066542996761411870889747568493904603161728908313043288716690919510899370763435712553924528722891946078231621847278554114701688561180349117606330161155473393523010803193215454699923503911913901655724755460217455934539191073261907412629248549714798852861771472735690026432652352083327024077899344256102076484989810972791994111740395680125256453892274744051411838026213196922771001979634653894809566199053912143285393525437826312013763393029516791877552265665954466243514500055704274573840224574374574450876994481702541107106213320413499165998116430257531856201810868089956657353226118821281278848784080925548611534309532012917500124059987753423261989732658470176929051630531287476741330999735808024820968915171327174629163844254160592567414741251657734500078689415296378716117091220114540689127259267616297597601118548766458103588564152882617635181016997019126769062176412605387144577463251577748639126951666889412308495767217962871775318423908666477429037560936175680208806259796528513711978795996060550928302461984633302573746731645041521224248057954709202444381863010495481861288790074433799297305449173882130163423754391279764484016597178076465718120251079863388053956189163762898559550935443113350682251558892041568173208316196115215635361908280044851561739457747101318214024241639673390602648996519982337482457318908318457674909606462469899235011131336832529836412652037710997260194538454890717309570281711582105607227855194675871843789861385924482862507943475620083678536964338416294572779710232482934128413932488928534429964516372965252541387698451574173062233163875349516312576885146914643484024136304862614496054974346339079339337669943750766533904074424585204399366419889318907556811880890352365796001021200986745745303037397509388601987766825660154192559417189937614371966483920309337103137179392360695438248009856059850543070488920322294384772439169051056772343698855782934282602241071807217281593126141007802863372042441417356752501451909309226593408265131595437856253957588007089968268410788172338654092547803691057645076407458276885767574835349726107902602706671985980954315830997673487076769484117444163295320608950196413553254900077092858564099803942873599201174839485783156263236555959917332408550995601455164655553676587971535136119331507839601639294960075948589719035666508568335817457591168429499548869389607464669766695533699442961382249559873010036901212183391402913706600919733225132331644901093843049880944511770111898216958695382868130627405039049236457099951444453928061992332702536007298413860247530457353788539580897926573023704139823888344128472968007556291145566113008501107314371430117932002952961633934941060580354209011164482461614094535301944550787303754402989655099628768222933782956907607461807306070595939823939301859855485614656348428552316358102631011943913566320167381504715386684001442151913527080408678378541704155908334763315850529410625783572275338595658661491390297174269140587659680152094411949872650705613313206628675911832721498587593491054553725457556939781767380548066348977803067000380586376315509619980843555359974174955878092593581745561728266089324959881146288692059854233901263149075042349379717709982629524296992077833603414517308676831232891801371713229583836675752557751079009921551725278074202027208373866587436970261161304637153960293904340099420448209851610729353606615044003655789217927949687803434994607490786505529584048849431938967326009999907626124591846211155989098047750376885820595725324968162331511239268427787306449044325931140462854036005741882621427867398158430292115402918822233774312830864879391143224644426978811515406586336669177460645024778039150448567958057388743781362844213149146524984695384524313620889755388266150046842550655512999166721032705041769649577172613709220763121499631955523355784194687697040345976619084330355992875300967605941159452136570486420134415269632116700927638019192686169748378862951464479502708756664384490991775476091267536332053438829793814885644135784018815923487081028443405424405165972727126776610171322598390012218976466355270069138151632451927983869606728224780221846026161219075043025612579733832668592723555788618758030421371538528973479499755749510898614753631711643760293895228921340596541785947556742601107351574731908398500564544222323245616127233210055096013850158666463132961044054981062072377700219258819648778944104834683201189216695272751630538119599477130079579418266545953379262947646264179566814978172447545621498379966307939225171303634788951961449747441241095992009478329857347425572978038230729822735620398093038254429653679135135048026914069856202679457571560874843732532148159964077650625182504783522697971129530965301240672747762621598973084558332650673305123527370150146415368316323618975314996774609957122913288396716166368984580985115137032873633527141261550080808333579561005295173625669023330204182134846306412916353044433997140882355028636136770341903473159509668408575989988820083681325213606931586001080563821332198630639293359005359806538810969997523380142800126297264331248207777787259517766777182349176960447273513249056069249145828155897522711741118865211575624108679294574267047841031369829487008119396552868549153204065327889830316912128728965938553436210319016595537366511281732959832109595524794673136351990717086555632020035017395386865953235240235049539943953111797214666622739054617868026777154736240348942475058620928905180716534317571846809641199371734317326110360102070653546339867884446820818894251370531945003119785812640682319004647832821364879050131590150515794981874263422544131620959430073374969268636202525221858031704779288177941421339304728350940936764998954400009004260887954481548217428824086629806904099444794592292366530398031200992685941939534098270488733566325245249975210901955061605717210549460527670146061482345577534029561320722354968459086340818314608111628500109638236021384012256758860249665893429200242887036693243494746313610128002764457428666057387119090011952823609328810118789639245775139717249479347381763255484405907505100018748302351373628591045027838236694790168243778452808310255379357462199876089318410213888854283933324613342048865345853514629616001242511015499258305194645238408102030887867784462902416778232399959726954653257232937437562792939239504550421571530535026227424495477360404788396317811513924815990617701475777975165641465535993359255710368804093654048255923085591504290991035016514042051231253578855218045832750225989183672779596361452609756380759805004105038134357951255726333505919424249954917744856814672006041794619866019845298533720292734927239339256703530437260301521251678536261706558922974385531171588803913836901841121703189422348408456426967565856295345696220125572303019329375333683028052178641819436219618028228588949246968745184804606573569337597123388920111714199254244040363466078580773028001848289016460143104543553558850147767092086316506590962426444735613405888145010255464291028271854477484728862590741735464837911410606158170722429460565389238022810069256600804327595652295736326629525168237964681850008768181882833035610071792373358526719494344290721017361620565351226411945106116382162090308776278801377577197985184382153719298471918590890904094160793094655243498296304270794113192468507432848646508417505217881896536647788313973220114180841784757642798616477515023496371410835016382071827378905893014177705136649279577903848807184473707301379429176238739297834347659067454513547233388094529810106983441784582866105144422917879161335370976706417500841991349570572243310856443745353827445034873358595233470875056349887809434629210269596230955820960144504727404838118223427425407202610236071672635737809251465269259661170651380382316470100245851556351565593367280005757221872910822230077251784024232035974972339167409984577886749530304932687316860224181166112897863219875392476471417597711881079667035387951880103525422222198937692905799296105678587474529114730598154912139332916588101372692553297309222244214389225040960497088001912285439521804416594773031788546655771090473727239179307274687467542109796939133088430781306077692999317682616024640262245427856657394576424818119915529648505059460695333090034859417645797373455914596468475732342043396557537491993831999858030855276070391919231493437111333040108417413148293914685924851764406470197737471422281984108676499369834942309493927799118121699880234987219917421648331889283200506257024528325059574830390577469892043721253734459707983836805401483337975996980572955103883047550077156729651885778472834648280727720757837656203574166374047408231454603502135812916863840582867458145830468267210996517364573401626966088033891044017873185988659322423086827883856288076262930930451493209985243937260129310172424342859821664237257756592612966127028434544293893285956046218819312679598375311759218455931082727750176230010077391977775709112826706245825246994234125643822053140884732836469804732857829371964843419529024728640877059181875570411166757584834291399084532604056195017032952946580305449463457451288772908138677193564036229453445725216139584214566699911425714614458897633411099511504337827303643343334170528625738793485475087139404570546003514218550893907745102063437779477792713174345261533247177696522175007907313060018135567971964775976445166930621973742403198866857444392220589155484467210928286334393842605969385474756061636729858128283025288680199849905764678137819593884905268672603574211168185293519772916956595424469368021303553297610964096577692172009391878436625271873713811511853201011001036468476605180664509866851508473423753974204033687694447172278789811442490227635945986880804871845776729137870557684691700833313673359599389217475849829378435131662370796932649583628124988569590671687249634376671069778115248517934390235407700937928103962639889246805886579494928537587679125940282431165609112645612580679320146370422300059462704464972708913534370059300938431508695670504893860820194164479510527074290583655422604510556180640396853593466002540538566199620262222206695542558800450620507091046484155582425998134917081911128090835828055895009295366926332375095013203405093409979453839745064374835920758677982015338055515190409469639907377956267650710565265578733737655945381645109433409845407209940531312364676271306714679797987139878947966199424379928791425886642310255344028954272239723027236036948945342818356887112280464189273078004348051680321478691546942669032838811722197919860846319038139186166873251774306990086711032013332726979574239433072868450819882184362570814323699204588314500264840635906143740643799063608497974815124202102881856779926781839696342115568243581960183795036578318622066403653862709246493110310144248872040163028696919072044085392934805648970536945715692212919001937738677128125413971381949539472785548451351638808646207814872436976465046053037293013428048099497221283949003444776329310258713615478633295646141934964445469318909068566158545541421579088032570169429165820848090087253951414470907034256812298801060106022600970544171323497383622437317956406850496955014706324554240431770052119640104537292196599091549431020976514629083955230118670919430252915849405117855050901247691051489915402865576366001322480165736603923469391775428399358276444607188037350824890519418779392797439903438774545023497330093283394195191289219240402850554529584589399390769702493907491019814131229491674886491458494953953089700855664178935210446516972670159563123581151397967066491599816409679613336480038779235729259856011860898332649493693278041326953712477514669768351992840536517070536107185418580180276662434098836339477566696984257222239529668353739881899583254753090534606442687286364659420437686992870745898738326052293487280035167047078945551324041754254356392285995186364783859792816168316609293125441892405522949476094430475146352711790322713718194809523482554082105755354475993151733974313146883351462379483907446081321707016973909281928159283242282709167262394885826334798863780840963641687396937187505179908866054856534097648862622919214068362820442141715768524128115556398052003393768541961875833497648524378987610983279263957647114461306727708579649208520259192768667313835714280835994399298912766111674044844722234699487318456135130249418857709549436518268383768114319369268228158261913232167189760629846602738589665421447350805605977735685240344571349234243026933259379201740221734894791918278878817912489063514997869876210020401920801308429558764931752547398242844204179578105387460990333748243957439011235770744006874848057815811577521022827506159944308237474768228777199063823475727497116889011104745165438773957541053202375342036686873337559846112877720892150716459591842378124991736370945299679457305358399101467325336030648100186929557295898966023986466402737461722421809324090040575366928453055208535520767585626517164592763630798850703123973788034365256597841876963804699998206686391422018402990433211457587263239500516425833941910380581867531025978953893165498992406310983116616035284597268354710887086702461726542650411074860788760810049023269071036895536733624853545987065079713118535342756377979789272053711707664194264881997185307033785624689366583419190858625973946530417984626348359002104309907263870826499181742532578386169408195907878294425212460435504851864300852437051007542228103792107983818056317789519653248747259501543608018293566825811405752298675230126310623930837337550430330062766342640045430013186907466567126049460220045962051390885663791175547032940098036981241488257009646996892719514850475592616984860275978703789873493482653713917723805401552937826288848204782978753204246323633230794249590269801067765734943582704878074276534206094107509639346275521748976009545078337833301489072546996865984319262802548621792129454189820741492626950608739176667940118530852737191653942583811396178981194971268330824378968549002930868488316053978782342775085456479023867711903674891546300001051716056920997835037806539160662568346727140196660252061933735929694390599761096039264465278544740461977140486866157168827615762935389566788393580166076870376998412895570582114623551727415694040720396250085489149627971347117915924966711048990738274503026745288985426693105894373626069771031482707547914808056928355558026313712344307753422065276404408408068092566016057221610080214027627231060362219584674714684879433513884943435281991715574860629330257801327655556350299108745251947406114101272106893610818087445927394697536394558648297369899317719899695850162613970824738053132004764946713883266841973568040126746598545579174401031003701447022958506705842809305650839724760993549074926944907775836747970921147333501670190441521987787914843717409387751704285555992668090024861361623286716582636045088140048247956461544081080255544312490980926906488052947945786914297952155378385819913693269243446099935397759880499003360908253831233665025228938038169952986435771962829434899382321423179193600857794397008559575232532821579496252384588572589788137080658108945082917188809953799529685836882585027327314183822327823805124103028076592526990483567468651667408645631709016241592835209028140992552971352769106039805157950154080564702131873182374542421624042801162487347085571469097652051171311115623922749741765570811282318147577426116331811042714312768081456830932940405244431085852890412749961075363924249138527767767098365294890481012256429879088641821898802427532587439931610993794974847574077611024697193766489993311223281895871294814562422828856037366014688776702120935661824427231153346465931917795555820231869597954257841015094860453523209439733412411926140824226637437874538471608502672922710576910155265203554304222221664943217278438788796079863263060754292157126839978863408124119462913610272748753523977773164423538911857938348586440791036924072403888542700379796342723390584602360030090422747605398639412176297949306073888175270790937668072286643617774079103503072470124206056229579261135349321346775671551790247333634701205229143008079655926496950320186414618713591764904862659471713250554549369320292927868780339323812335141238623844928949331956074354368575905629167017078364967906957902443648601314389177252841345899208134640556300106485883261532733960816252933459809207551915645921815442001868706625291592870038799468169243248937582386563935700470548413843777529431819454698358042838835139461796091191522680678928427614730940013555032919895725882751153768789172392099288846285620410058722677929527116773605298747718661071213951239567765109361919014818896888773511847079774677602861087239832241438104352599900617455113861670768028494297399139813667918030531319698358058926208313782831448378473012363667397904151600062026187324962782738288703033020139997906742313442328042836790948263611911199548487438253078750001135657465183542385135950954042212922538145172973301778014872456566013234574097155709033506156899583508422462435942242257281625464503743877541718877049469088848305726293686781647986480044529541972438705318448272351603543770298938116109594208810382479818216094113315452670093241312095086461325369667729558928373123216853712101739781157649294722990198699557521511247779527682871742379016926933482553913215075139548131907735204414027553339435079356166830269576602215415766645957708046735065185892793736845362594407997064131998702470107194205963346134570356058919237487263689328245455378146944271736062762757798443066821371668052436505053069872981411274783001260547983411877276472324823697506544703423586056035934414286974157862983076851434778076505251664260444917594820266423910878185584545837590248783491543861741825308163110960266171281709369680958694927874824501626503684682852470766866105684108065326700087698388225794401647990723078754799106860540588268915437526950377519444866208957101899445250297970441967789217465506941359526822103891805230302053342840902566051259605621196044196811154031957124552955140599342812440710695396011794027129875014756014764094915562901105461473106091611974803600752856156211071176208776239533467406071613143711128756248947641140721541575225565067947923385687383272880469597595897728977654189561782562060039258037662559231562829780504252665989859376118947828723861697796270902588614905180042246318685625758138725543606250423864958346845650791522351462111930661193755378887084478931276447520460541483905200048411180636082280638253528557444587769623858138765283898310687633980775172274522581717912269994804090949811916214211860526159440259289287070654116439042943408697957066493466760395517689384506039872827458311651415476735096521654679930410873440000551298180504920021267575096376348845664629814738592468469562260003321939387842746883120490855397619801443571489659694021935466479543570233121541059848207638502543231079464788362627777551147198870934212656319615758160561223543012110662911685938197181375334928516143696191312002390929153568741953764354803924064537717863024012202840226140721174607964594031785668738164417481383055906607306669265950810498544978134461814850277632255191294289805888855689564890713082138924711359897006921745160247309957846417525620579763162344078631748051390510815492535769684181316448911226003036714479455008387839671787718121112719878827808248487164803962570853460120312050604895004556964261943186811316524490983036645561480892783462670352655595519941561329282836631307652355901410475442752042642643012507924048324376469955258897873952299602834154884828330978622190752147535160034572598669431454376301033809765009373916400813368534264134644467536372845148754888001597704355987153635841374240290083352784297920341655149984276694196892196419312738944661357737705421818543444849137999551631572644321348244292742824071424587216448312759587113769508857452831139513434561280419420313098558128206260382586252941683060361438656004168743649948629243694492048647305634880707977358046411616712966735092970328388278835487183415222323761255275778719034990530310439977008351102657248312263080523110779473587286146030134647303652036128121411900985893072485496061216339448585287644463524059567756699445844441567476215998552362945859644739875465512126270110587143826573646636722513164357571369801721647680014301320612596991168059887139045587763395566397747485932737671084508413272285994957486381515560167523804834518548126790593450970977704567887487410079809781512683302474230037036320464691753082173659115067158073055356986220245957270270855179308681592511737695690969363856757609068345744077407479233156445845958633582554587209511499894200061153480425065371349992001516651481247827061175458715717470077193013430885974166890550842819152433398712988652084093876218035322088362781120504237607851880454802970744920995422713355593475446760676369488269517425916392248531925513813376738850547378722405167570335291255087124239550326337448165435893281543618434477604834616264735210690953558858386643845896876653325714604533953066720261831663735987925441043916730978498022112720150060010704432431201629410803350466530160925539687471983900049965426426517448817313127361556627320423100483236971769541081793906652824982427120417842134018969879360347353762960537702492331535193073536066195703432626060881857811117255990257931495577176641854726781772202256281698924654767340010974412319250931939584351094625364002360488322137682984147265013209471058234937308733392390841606462409913187636177920976397979632128897078686353793430028080817063636267206771899324705601179230652110891417271219165076084711554461443319706719369465372331730375889671715907367204999368592380969050895932492399236215546016848926850827261357223802280370710725604719279254475044005577952811942229907204203161345197550608069707866673184864032555162838661857249309866655030735670661196501916730538689574752443652645057085980308309368560742805568190481813460359280421520956462839233640383429025546283065652284896602896546742434454931356395567788267833340438222861612236734319009483102300144113251781361038013337857674694131014382143234411992930682958255866429036186152968147135680462924619802600117602119620267000908731210890228339540130545551448090823187273227086621120318269039200633835815870624559080345505705797885062271232713597973645635616995995196226084200631785244548324430492084733003841565980492096453995255869553493250433573393723210258960838437716431841439968643839934238594037077582254214518546756541780723131588172709047759872506149348740757294435979639547177328740171875537880666572627542125845798826771071417349580725601137610626274671388484054458478087164476395789847264612585390665820782670814850392173734529674419935969581198985254763863016265036566287139251971247615217577386648139854533941141442129311441164612307726160439290179677933243614048903636555009733972622802042626981043454633691161565582873245469513371820955009560322517652030824716210751137132510330039347526899936428906248833624861605123457282922807849339716915421403851153859595793445593491395433093712367291099718289239056787031049715318074101910979179551602781292331979088499549021106973884972241378314452522402021840901995145396156897114324378795477786849578182275020934644276262474602968017233945177823821700939074377586076010004446036114006822196714117413092133491484837245563120415603814741143619080680798677338650593080358007292831956707628793458546369792084393222351312837440934879546570710235531229215771604340922336809309751263343070676245083101058435849235330149592288654053184243798894110318007252619571228631460525762520873030959674259611756044543734314830294759986867946954131117463938211740046376578309137541783616379177015183401535232898418887433208347818564521582084895323465600481582943440553958470912497930810727281987349726940041057072086817268631311260893098664216075868218116731345153163722743930305236040183167167786139909296852784360143735293319708553754055226255500440185233988230858788674406013440269859404738961171389578388323288382307625638571498069411401642496484161663859011717512297518717292142928397070853076698832592608669111903836083625469835111826525571156526102552154858189090646774481877026135662980732231746966310238034380109550435375306153693869567326837312350933417514828293399140649888068468153699834459209265437915719100510992289029330671239289093262777113931337284979755073920487058250382765578357883582073544973504483109491534636116296156364642206961420295403766356812938123940704536140988187327138198925766267259058082800997256533387153316239841133092688971765771619522198215555756584116569483203728503109269524624470179814357864101748301598232114380250430470736465439932156453890760841018799013422256541400309652224643823268254894477255084794748660196735157046228990935309244996924887819852843035459167949834321237922562104850896871183000796450245442050343124927050108938459891236946598931086985627507688519395734173701730131391767692377681877083566745177979799788952662695997712986297706984966205652998476630328939571255756538591063301241492832907241678992991869834658034291625282443012156819564105129147544794549290012114683360130194965048920757471993143357161519420262678724269789899700279533821424713005039407793993126137113890327124171470206446663163689041297011366086852900314612602694841755917278964654845488880001614142873005680348294866507272445459648458400510499811423550800423670634786863838171913550604838938688545908633564485787459093709915892909279570263193273129261176984408747330724717486075309441059728612840370447940493223066087947081769270567344356228969810446972385362860967030994336980264137761675218881620242208298864562996568603213291259908583914701000826957883577287298043768686779604518502163989087468658082089174436238452730320639581113250779819317246574102427410726407379659207754272145392901630359011462524609477374004851810193584523299351084674571064349963758665196743713991224964370767744757712833115743048634896242314361564211605012613792748641141489070528117661907175460791811851386447499145984142320869655796592358458870101400063036369029305398736693319690187364932803901678672927984544188397975296227149555039503895924241415593146129630300925486517555436919174515448000674807322494123519171276908172217007710698224902503115713734113432345308584413075838912641145054691825220610786735319296104495767139327378624422744589479660389091714528335999129945667175975854151246792244334892244037546782550343170320652336310191382307006407600264387083781295529336086228820311951266619913659844617383109706042079597303155976738422429181064929982575306329842182529906715422488109669298094149504500825015399770082378031462946349260955243686544429515634580552822880433142318238700089327226268433337914306195496186565859318517463835133495427258896709925184356559135577003465034717323774065659958367106943313855896354457649605595135652049159314597426496992774881329854820051329115889963860298556907179459957016952258245596763685863294698717147984954058074416548101712051976384463287978843937207791942836897562269936242791440907184980966995496969240790465578079806563558858111158798728133037618472893989350456050175945487021684540977983687831302248211824956376376496109376901738804118278616357762323559419330298923089769724325399074314052183161257920444017547915955217674947782626153132067564912598583681131062956915895788002293721843551202888693944909529383469627675698681448303588264104991970082564082848300973901615487710963139161901624187873814857842870353246253975899419494943659345600354874876243446792547284460243043783440621694719156196889986336169194578716341421858839819265478609765874410011197385745533956681901790341811595486008834262352285749692674812834929516390150559688494328223281830710897553712726905731654077645149615428701059661799894367270746616916251548158881852778981274747047139868081111485051051844475542748672169754763594507187150626505689902384317201310196855900729833588663709412558526352753738322123733036149024962630659287595448680848432875037568065358705978662196963038910565538708141657764593491378790658154108749690112360685541323693897353177925521455344030285747475968447176193973219997991846087866652670601484447123067864067873410188059804893995075823363467181930351507005386039040294124961861069658693621018506686293137197912636271297451114235237993213415188605238574860695612240902063028989162446206868207328558643917124249665442262237608269829838684983664677038268867944899148072119361704684013364907973265525552725241950739648925789019074169363507806874283709391591649484986743379289638224148267863096318584828742942353730246763097971285306784883021472900035905307734280939606190373185815206509240802174970346128215123544643125809400921831017775762421747057919690283907089214415642739292837608413391046325027626721732660940171955988587889009086818517126179820214272166278513451984226532247362737994973591728579677627590642979342924410999380931206103801151455394620494419582082706762046461215700600079337579634934386796490554260855794527483671487338376177398124607953259946462704437485210220826229041304056426046588806949364404994085887146189552131560922638525826865640406455896175851512884392235063591130069473140793638775389547108705410908695621589825817086289223288906546432622094120728523591345454019752972379443198921898645078474041523782838538427229629200265958511981731185838793901988032153295281385403719493288654092451189333378964899027291156112638138930717349391432277363762924168052736463987741448577865826617696682988752474353963134442738713832982774365896116620466165356785271762406822637278106955822455766676729057201670320199824463810326608218549350669963041535241073646170623074795758042621179534374907410563249399342733350329069728225616179193471182060455377487975318598878272222146020825132612285777713731219603072395112117506448382572186670429345991457410730931766238228353248073196331451376575548151585735210983253344796227579005155848597699905950439835300261821902127420829309445297539519947854129687085392788173524146584250389059939329983548865735740887188863686294014732282449466429431308186299732083239660692961206807355535685960531587698150433967916271018430996520167703860457065822936485614662977612776190873688399224999049674614315903142810109101286524952665934095555532319307963528413718713093434317708263046170670469751491244699954558508234192664072274162888421375090466200151920399944826203246711121529855180658948870436586377522272508998904497867142003998205203819033199916844206095756322263417803898525658404225677374537722014736705533172763721283661945427996266670160694495652309865668919071511487699702962805710316958457171028329503923214441998846125367208061071317568983184607800734905606255433952333929849973971551671739145236650147742553308454069471650096071456219813151145214528333443829579298206003775974073873515844390132884685896688083812141158358732844742196106279096934553852400081700607345091003123813830088959617230376121667752086387020329976209457811170147512217262069784341925412101384560093818702208458551873219793630196389448748248748579120708150573859151610337944408265772388181851878095804966072294405535692880099948106699493444040557460767190336629314139041904881451953565203011312101084148689334048494361772512147513095672029120298654536248251389339025145445954535941357636693329700151650921028649187030280154936604075326836357380419944826805173510531947887452450696213510207547703134857076704080521642594209058953832476572829867444949675757272781917946917893144924271731037790344518511543217243862960570164590962927077490417156819802331699892816860186209483770874884469970034042626029702588140462492409607221772552839354397865517441644085943900377178466969261029795180557699071441174626010788097625390408681952091107024098416765677030821060247921582274509494622496909859521942625859172085622573101416918765950906083388780981907723286223132945412316970247886737912081591195502270492301170054517431340936881448279226976635170027565764806440744495079991148920692831249714789220090581865070358502965104299967088363149873425570432842668017330206595212002733503511661781726103371026090332396819612453412586454099910337334967093223281138107264669545888190991052332282158321978479040904293416769091557645318750076539770635089478834333437612816540700386307679215567308557920002769937783139229390202486915767741586924469186623109055403000972244900921841383749797342149991902767878553517892108058642271270424769913312868113941139260644830330856754499401431285520002467008754639046247642576196734583544333460879846278852401130778441549088886329528935524872702564504802520372062867235604904127240975272274866740706409026653439994564171411688802386929764455954832391695910325683298658016685372323284416085198261756725424675357972526761131741986326934998272268176287925404209585283307923438930437830441694939438208053356096461107753197430126806700383076950022886146210412178121093540945961718596409714850946132414303870792722696024868814470759976662786189798113397442502111872710951181969637830813307985212966884927144233411799404607480751665178540947440121905037165613076623885651275015477587210543152965060231334528266216642883609987369038175458340771456162446328175077601045518982523403736289410803665584018251590013457178786117413637172967906948821274199825894435001722018112240592021430481930429099971788510062203458434200686832517518434970993262548952908746447309897631181373536024939476042938351551720196765089278237973023037635405812513576032708943792085899590821889624267962315879535603231316638353216404946014342360129904169071964148193030436218041117137830974510697904955216585465662867490313948584508745453940162070321995614434338635595195617084823618307246768116906482518290143975192601466384476276126080226311074528361431162493505016801244373722383932255682043084620720030076766339188595003388673228547813304058621382886989592647600101069138317781213891571159575566906452412722201171903520064018764921980477189596042624676596974577232897536001863758478381032138215829113054478794879451521980555699358938687640657622515762226442657266745408595656521086747889683979893996563465399484517891653164697531272808667535032838848886958972733414484610657898360083309318657508431518117562811166923531992889437286800378389963507502860803384629922611765594021444820088107074043222331646731069451385627467515996376884359707164321219421220908052660736095458721378373098676777783412094253640240288679227335093765243641050734878771126439914610705815338978671334917850992151424111129149615758823032827835980802178106926212559542625204996496854652177988137271557405775453604837496748533764949432064524462898758003729777140974962119789056461634746918461381442947938404743915678743623343773682295989261525564906697327826730929920665898775969012495351850698769057969757177053950883005091532904702424269161072469842256154043677488541562377495235525403729692686823203260073025201425622207008456849580232310180548313009919803935842927226663132987948323517418959330670634845002731274369065250136626465298032788864207800062402785155110554207591299529907147543158155465420344185655223751135477773791193053796788677701742877043096830976427831332054052315417748532410377602808558845561114799234951815206733201450703286572710587995891544097019124956806165018026478535980064960465823738343535757263481514053270354229810049060880375248514475616374164164100505706318179662442140655104394778590738100757693481035581658790708510992591297246514985119481297146334069045303322487991526640983152837489391834485246074995919237880541605663359540739795673983279597977681686898780879711949245742708125099810873537023561324955399072790064391772022347678257314057925994321122604826101055584095523984963991481075113356124850835005234524729936839930470183096899932504647680940210157700166769010462349396602880393645426878854717314707991825153544953243378798015747151703691138357931373120870280557977610400795171340693071579850081182691603299875280276537874105019556739133874317170663436049031282853998026191097157670311208701610062893275908562083183529900801571892217364762214771984342580840136221170700700109006866446426932483563647340579158930940827936195400166729870146072063602908580721046004966360098886390707311986458314113103203552122317943408718831563994989299193380293845571529051740930256223739828094778843289554090314276303994166199847737436935719506479507595692379742193139968014402933266957808533248425385401175586526779551789697518906882749040373785481469266074574567232910430898926671200699323894414985028262214688932686522312908013793451336431888392782539847277273422028714737942217190464794104503088725113100988314526483622104084051560637471967593941465464715021786101774063400547502788699264223663752137677832147676741618007096824114282698598916718488121511977706891202650660504515401075063431060452210483139909275711172950930245161910092904626452008822040289573153395233016204144589955550270886238418708193701364921964431179567345255114442932287716080707832999715557397995625649452813572863972226445094394542879977315696406865017683364728879084676276298086603050627761071867104688309286716930677244274075994824231655309866744031889502964195158820286630684976317889110782750576365127627363261347902236548249938938345424878734768391789904597762345419640654660085641437277040587908571252163601619126059407831015356220571915141033523058811217948226163813906446581257905148493939673592764191011157890754731096426032901635074791415103291874103625057712673119160554551457719788272253695050805632357881055180882366241132365975367721381965229257172634945434995260460748226312299404614233822219565664898255136471686433867446866964153084073482315724502773566614435464987268153742749604068508121726043129226754532924273381072583631362669511294071071517138518837423995405930797705177694240139957807492607414382012614450500259290403697476270460892951401691815744342222010422995704093302421866137869023060321639473441223699365314525566936547016920907825980115628186972460652264988248905049039370065549959816139036014062486896498165502042133992689880235286342411782387869212210994246011369240361023596968977975911348728420294277586366794189597465069878872294183046919501838176256133327792819833348312271907235138536909615502993839008232055117378214464092028155917382072656885356448062790523782438025027956611746027922617735043932434843143626903503253858335164149814363369030811940196864438601736589859959561410619981351305309893376834757085518508483985118350759298823001608255698587679467824721603132885484545783025366286577804793877475672749313154870797158592462561084440268795490917673796411291759763693038372793041611140041398435153997611708144116671331480736305262846399619338883538432868761394859628370296341573801281832412102484567632808496019521278926379437668270141796954596403512250543041992109898024530891556388280609960689068736601006247699487513569573093487808709729219156029517403930524658591182784050006661406104022807850436247251112896845831243443319759366197210052484314348569824068368125421287297494624244697395817803470289292242451259257073936734357347532268468376700224386668736782541312698097373330731700465600277448836734069237884108206298018381369722813596058601478112279549522571729298971630428539323734903724741260565394880426970848286865656361577275896292837054886510581715634940287307148937565610929238798923660012412374676163325902577548868145497601047432719483694473783010697450055529556167627554439635576610194657634522011766458837962156156760809834766376391856073466584915998113966075184532840253743879097738859736223876938988018701384528597702182933230090284179330544093639441059830517095323259789042385397536614388131589720683752593605432149413337848911451802550076029141549728708773634667302360940651178324799559945442358691233300432326852663735002899897305575051574023862526756924191517808116614532979515779929856527720643919225183385341087696644466869927350053897346722240485669150770859174500413298170308496051993391807743375305526954917539855485819734945393100330914875878309812204641143997884272076856102589503395542818461942079013815372967969201565119810644653131771256832112284281400815855969625876250427769971878303177854896415577937298112938573199792652874597504275181554293509613824664137881305133902654118582391969621868012640598454245902373275124018114921721658040886061822090624204658934299681611121231244074284868705101791229943492497307197459335860856201442627591540854959224961404834397916862353245867292387456530417635428335123552838507522624907631408263478493035585678488177974736628875868040069455513859641057010151905183160509259657069424649675065932865989970139053761546445153712103635156840024359451405524745024892160857106360447288016723995631256879521055114960854505050540959001664992067105893935117731203785404462907049383882338552024638260166285624419786189071083090710855418206946911460435999514055569181719973473432904292490505680758442624199001073139670333459832516921312132183307652658083999992335355201308168483163274427249376996267038279877320519389238057221655271091290338738461872750366970426339685506928127948025279579687290667864090663219777152640328687218885375112202749345935323888106737539130694799186375309222524161103425507443591725806752615201848556866799135555552816876440467604031823768756453363712772913673207056773973065081905075302948632508851213893354992736581825706799312253941509769566873440800317314705472374597337584815495261142087026253488183155404539365057701439041547252300529924640609804763622385816709564631323993079095745704389856792150226608771061228932052110411418471528190706367982832020692764167092523989124481531002858211205854347405943410041293934830634850984053392976927184793593807829046521201970931057349662706501903535035949962003952871439810048576654284611739128959849951722458240869848127011239536153009624994574108264255809491605861250018976884759554576218238293356794051816101650246004127095646497231138917411041054093983192863560749327857205185398031083696433500737609821000115199612793099778425229985400286206662033138780032934336279253555657165289280132605362736257897474869677334925785314046819493579529521802863361738543389705730727960859495070570824008964323797753938597511431689768824674129388215930948155152460794883534574669624174176533069529295491585788182163833612506806617464511884564244961309449606553799053741183912476467767660035269807466366372861744447154197974288781277682115021893087239340739590844776410747453096494918558265912255201492302667714621355616000387681106914321489755994291017255444373382133793730725540188012330771038941235795444023658649480857882592332038553193268924767449680484339219867248477300435430591672662423294975897681300032671777678784037758341638982881105023767343434493582086057585568915621356529635969098217617903648022758735563641366091714728340275509612229080221165024085534134133834281868660091805542760935638474573396024446020065120826003047898791284835667474046424809352384201044245205765462518699766819250847378834771717920142678652146477490554164508334112896658956430526819651941651420223305828856587080841863041763059995355243933833020394959188639501327892792327361875055478372280519488190275287616036877508069393381636807068689239995576856759367045300020310989988288684924106646673027960183071843898072089191663860395425499546707126707749852044842698382674157106331077682257360220112570760577869542146738117063014228753335720058854429554024593698358822730196570798627875909327349646273357270374030679186653310318477954975516074060126461159602446430914842810992099469489016055170172978002233069760731995081188460468107199536115919509195049844208991794788608826692231078022635760978432672466911965868156999530325251578398645070904923686392556815603966162263771728844299473152484750028017965801200261188293923720038291898791137620034754746079656354902999171080030935086038092758792783709221885131931017407043508138672884764735911736185274171883745491747329238666753528805194796412976485867053657648140727656074326274994892856313126373493956778784989979174569050954191448976471584407806444970317685116641326425348520733652920094344549494142386407672724822362891995755463457620481260877514232037799696429263108479165461833711888083339495269478926125070096603678454485672159042160528660542470186358910843138916500401323098671516894167255704944144805455150284366373028020025758265713577015806221108485171580660645679253644305586112886999213896215218761979603671423640270844975074982401786544014610392405570593945389294211703070029580333651842276818891337835092985061013493230192150654343128459589423590206292018736520524210792054918630793157285123966822172051942195589306155278056681514974491831749213165023798975387860327156190774959310846500347402074039315539284517498986900957785841244395851171937405175690046030119416414224054623033800092251263628159249906176194359819168170230755488924528373647267875622924018637755007947636428317454505046341851590314101191002158709714898289772290678586962597177160984724784935840214572145825907386292859856974255850291672223137615627726791861850742821105983800557237847808726493997258488422350802822892816393241705451172133401593198407981432992073749630667178298206858528438762858328680650890555025482960566583044144185334783765833552399040697863844572537870377278138627040364532501867571300139482708504397518830132564070987790861101435297943421181601873566116099161183415374180095711263764762307865074719366019897850968656433708046564656637758491907725854471517440905063300671336846800473960379032690916963178909401827771801732151168792810829049820248634940212453085045547078589094362307659880360622631916090032439256156710011334505277541055000664145490620693396362066151748322953052050721530012754114021231212867267429552340335827327373151344934169708387614854868542524126837614007634024274609835251231922537447678859561744603610365629550916365451816070865072558515100793966750387184815696207239111713056236659804352825578853207415994677892312600362990046612935896232130772832778643404614902283221077979997962222066239682070175142533342967967686573576253599074938897246945267535613846985827512648395780619891817519102218396045230755555716083135615359651461867803762906815846440336962552192397321629514111895259857140806661119602496264812984818140671528236941912294581316475660003405205344848096782632119799266214167605249292010494819403984138810138272505961439927687618737661897703718968278357024098623797373681508725435967865168246202130725998740417173873112398464435371501013162031682571825589276265083910992728948724575079414060271471579794180365326115670449353588439497210434410748320731924730830965613379777466601026469633642396274674648093757775748315059179599880164846301204339950597480889916700325918597369465632549813692010986088072457873552448432921710351213368738196349922360280688204865546433075679815431629796568583334046325428243539447823981567243361575183517397453619302640519612648404073495669723486071273595405841857676457364749993030233119028960567628954992937666771410323621611193248100088503350958259509162048677785271184137141097320443449058709228340992805397443751296719493669017342108719107526931813155407469246149063754602517127570555934716239650449493357474985327324432572277235623004227065799975735818610342539623151909927159807949594014651250927569479494073694269197921269788585956673606749201439748594642720463115228586044772852905809892743499278646102889355603294075000355491874393716368538696690353459303417901150026044659940210295056692811143090480794332775565949166241879223319407822875333850060298146113390103084993823711773154549076418297915654210941801595072195158322865275839937949691636630605043052087096609850874107303120267963736905557409772480735311240350706522664854255399750871395838703585822175592584011274956179519837999369165315105233674268200725925129547767984192542801134813589339176645331391651153949955240898234557707599150394355295595133487327964214128913849008548066025350510852317127006600714159025265745913375918892195128172414233585979299807101258927631962727199146753806302889601800803576373796862836381796116319597600485337840367451968285732636524620361083424698041488583511946516497976025633112823164390925347694420487724898629046504347136405844785855303022030342149780643484709815442893262779043289349324389576285496372185955057849816752698708452509909838463473199183051572178227235180081945291458407393433655583880422383660471112280115361733839718486543244912512275836100077590891378329672322887629473506822392678599781446460929344132500225403806827773788071260848036932550787978076620059181177626798040296004478013197264150224023772898595690342951994272417390180945549282300719989147294785641487911820923137528490456507691499672938545451822793707597486818352526237199305607205377964593694293028857558480484124408614322781656031743787779209248566636876841617438189680592180753850255194445484123510225294638296414075115481780085635817987758424813386081133727294063027977826537859719960938365337900106633320110731742746829410199742120467198592212079513215332646009582100779306426968591983675085711469443148321977925673158403105681368064482147333039737533079772710735035162409972495665052529794342763530975543014516983148823397908107913402979497129973518047087172714461872843528892702445894834986520355520310357825716847209857729210978958699524513798091167962091683544936706530359404250409175880507117257855730048880367075491711347882025156130625756307351447914055332629978602217568023201356855381388091302475388007269744013738091510026928042956674378821439437265225584709865920599249931104109801151358790756332087355002928604384012377001022893389168322929912478942762653578035921389579756476900587235163202034577655653515627398604073693722854852773621749659043618358596048589701518876703621428893515321284447193898569560149999590065147894828434121134547512190288203121269562734210369116315337798074320872588456122530980559220793193088911161841610260898046191628830669614281119687824203344432130648209079103206075106856867153951782278949443828779652100536170417705802334754663357766586629150469432187632239078192921239257971444648529615619957796375747665742603098537169237066371034993065283100276790512181566150208399438352838566308321534329903034125018289837683544837980268470606185635305498959116594322049014483283512378197721060607523706553697819301753430173774116041619419398149250611125994870710929249023502345801588171186369616356249169086870816576883215683151481664463059225466371749737102531032724862253351371116911486256438534251111451963772760578315578812654846778601848643131304887128312557926542034848149026445507824674119740546668911272744289758996678432350920715774504385383370045597899487351065718858102590236744578533930043762379827475542615306955691856391726000846509524160592906338647785654210868755724733038813131503847162087023370691723155339945506760990831430630084953622066813495563336753556550710897593797917386743286414201408292580242755902946943888279781808244005268961239289267400567252752980689354103365532861901406080648152116332623187584498408463649797647872129191118872145966150727700349480521741028116638417923195887681880127102619084686357909605068805681865122270301142825885888130896286975649400791108116265900890590522342699546281393336198483253555513654732141919585833589926294664168441605487709232412476653762984979374646993547966695924722294785185396934493045047637040135715327635279270534881215999300296914018190743619105703563553998438542589475003681289333626403806229561636417444183635706842665749222689690379374367063983673109446238229668002131411951372785481423703906134097033376927729149194579501521935944552534350985554139134403125098780732222257559852042265330028070087773048022456016247648051672004716618877672547819491289547906009274804090404935122442193620772958219087881311225686766599479946615637716679561667193259147966255213886684299199873037244941399327534813824527558394310612977446440674811720364786913688859091655492318435855182511749850538237850341813169486046151891581948164153785418144699407751417723670954835443060581997871335404779502305188812413383291053808910489363786412239402726645687599397796311327707004768219864424734421156407305928614094412996484338444636490771177915776106890732416876675522051836935726718418760270172112396102553045512727701880654314544150476710602928237014954101145313298708558823047907512814237583942975405813450062973193351162922143053813731454811903323339365303974676361171257220275682694063081792656430073785126686827490355899520394047976374627781321436649163214499257727580383951282325839816162311145623050987411497451152311485889710504148685071698615149583296294851642760528413268497949365035716061901404662529699479983041194840245854864766005232001885981929838316509202039714818795937823637111087317544457700331084754602383463363001495115023801902209848818684491756922302267091557647237595532168455433531611486283773352637324434584767682729256234411621056054896532639096170912389364526650868169809551523584721104108700843646069141736892238078251889859317702664707183238173290920100946886646957958425894995014840832529327187053864866856107574396820110717677672445522058092527539540427150827479816210891497836829139026003650040496083989754558795957397189141553123159731886500944372586213641692596378049279249412178529770545630375184481835971503529696911027642659999404066105482360389850355447080453631859523363094389167699748223360336188942384040704910364806347766981907971028299413478913356114484746544316998163558729957388974094470290071657827872316598510484785980938538615451673572924535195449394713245126278243303959681825555313178829914951112103193538031005440726479929618341036289126196771079744352253224336960881444297481591656841838388185546269345918939862001958178868596467762785521202677886197648644938989052557524732966603595738827223588574574940957011866160008261273418608928478991750086842731577096295705794481592812050626805208608448269479847878188327152859320317735388122219579104816441562929695725981686375122423720453323893513331493559780445324423533384622606236870494182833829003063078896965763506001710012541271388969487437853505176223566191741052261419643784034837481016106595256453953834867297232738145950966309292438466459110822491589459891943043303087586509664920238853939167005766095787151362272646471981252424996772587497550629255145167834693162353822062465529125388215357610435767400035238428508034679091131343546583050799268397744861366617208438464095688570742650797469948743518974738155625425869057503654805414041266394922297762187782990344333343854745566676527907590731287527806365616049860735931842907026104265186597029871572635986266177328703408259572563796405399355034387345493616718588519620881419350135638451335954592800656260900878753570078086421584603814702377765424153121780964046058714088559406970624587068436309680013656072898530418284199875905308057197765031555910171470970230415121704044777357914327074405958193501474974588337636709862022185674137618071204763044680515173436044077136401523179986681295506328073872375327733513173231566953741266783860741367308007902663211803205938257106619163155776679561296285943212414492190646483090594539396821332166653498828716179332617085987789714654305009436685377319524006082874190847251746978780331845982972164388315271574322338207044726052460629133367618124409652284663516564496180935243094253864549540183744750394748416242160295180415257536389812177553412888290268348687258628897363663550840828356502825460623235034472624373081865903452237909311812433205242931157306877299810441639978485396643381652553602628935107217572229948402227339993571621646506824594673430592647209221033696082859701399109055065093966078508695463155359416625096629539177430380510783836047196549561598700776160831262500963836647112174931048215565773263192836058495557541364127903422276997069187010118406031747975569196411126518925235444038873577470381601343567336459254401638726905012566441090199308663833856844342775154702150556241934794771679365395305905486739522951412571414820379040287431042753206239742010536243077590396203084211512898975823748840536094478678122725722666744624458944561393971664325973751516438278007882671644301700754691783208257509590255535497949543282003177639505560710991615959150181890961086127521461892259840472046320660801851506497714765636519906983979096328645531067768092826447361038475925569793407950005863656488226459159473277815068737372171805739709032594923145154522285176907672759188766285590412545154319939138921869868297368902139459508398529980504793325473772934196601093785425669704664319535177564557741810106783019575630070568394628725733175378426663411852321737393765172211013327575777853446171227285333498497968577824851267556699432571058530125098976148919082111935354511369479415371254070902761969046333933592618975729390634812599484350604714615587903733487867341439439223982909132994453604366093417984077917471151907242642424928822436969636634073433431735137964834125087198885338623471804417187705915659571580004426528848112965927491152624823548493439337009069366843587594151565910490025922971018857675051881611959935302471207521153811576601419242975628981173577610035458906590021452029269786676805883136719140364745468287782836866376894162629577017480807492223046714545090142700320569816982510353321930596387553556506717245456437488377800688186270933629171610303156007131064219855937852842335650851480638568399084820437244099553419435885969148534087135230267960353757741400650661587189006823132584469922611719937927155226446517209253775617267732090698330781611739834255833705830797084303282443123525884827259145044696405900670577166704951466071745485505780690536741027095561959550502072661876180617815510480213406881386379041814680998978074051624093948744808098435791255569559648662471664934195023458413971617774958372419752597427056674042140713839500802381989458769035511200083841418616127775774794497581738577719124089992035369428796183336280383537726943701220490003247703823645726427254465174498739891049542815800806542582912014090800855696885954997180966230179223986645135054922790044229733793514975819161280277146760598042111988356344828036546381485997970439599537387840002637026360548810975535353156904373073298871021209867131756208239517506147105360478563220265959154489790154425160623228918870499366896286845857364069889125010151327099620801524717533998123324180828093890405273706606537835028588884040796354980185616030619523819320750373625759425823349958049659350924384582320511019658754153078347822469173032933741562051397461484512549222086719495744098198937419784681903433185612864114139716657952592530928440136412636073895224535780176113585668321586625762339351236898299598515928132047479622854985865349650776101344173328581922949519631289488548427846235050294161763676034879851253195878388225394014198268831381600041563588744658925403523599175499269040586122650740667204683562517091373999635066926942711780591012907885274110632087291693693751142803522215931572813455126444463241134548009992666680773302948496394900365449396785245583279082031713337573070322742758130849897923551297976100219995926237080011222080641765839389568343042502426013636621259693208293286290096552366139428830770853570263159727742685775538414499852137916782137599903232848797798676637007915475848113492605363118239394966327835789739782630487977354395699734163650653136131134641088058276552110020903280557532690103179245176604422282699496109313158444107714464236373400683475371378205252720928328667529348063221010863356581340273006312719864233971794045570310953768338259097174493615666367963189112813186195947853388236013900445368822531746611615653027702319320088501822189637976564086454724655959514809133976505334361950866683292141705524215164107280026959162744047570657873971037475035470167553201241313920616656698177405566092745332016203584495086980205906050326137357354887260790304186960321067539098437656469918581958864023657182154445119822996948162666715091543461087551843907680260889640190052569385948235558705034400345902328170555810674924991837323647049383334279609520987401693426562623425113649195372615936465282615043269129683048120762526328577934910372169617192881184202011487122405633510420979770997465266405351430346230604117808842615396270935477995589321698798980331997797498443624161966568945683962735286584576834929409369667495853169639800698274617578269667265666282974836411009615501161332943540394057054483984969398861242215766907588277125208758504021805178044030990632123080424135568814644298246014187186001015046682633949726710801709553103494707719362402271293944878772846656113576759623425093087614449492024324997240224804979772935505495186866261425344594527960247952527505666136568421176818571168272773452722430736670615737663490457682042822054512061969508775618801785004428458326875433172951484270269762051932863743600607585450624285468895697264925762094036314564323075134337984654647005601844563842808896031423360414006595267911094244333105400170603060219323429064330155716750416677557028833840216871809896371243169681511285672853265387176067638748450779297048601464415432409533392587428715410609527249674867679222685169039193120452597820569137787637623898684752911940341548407308700335887094591565342257937806915474130287276698846572709060810292245583121586237969671067404774452206482860486384424033097332934088116534146846662008164858330730871356699673304745043353300465992971616590712256127037769237186345037828959294587532414077103223976983761148515383092848527744578688757969000778697446765649227526432838165211654825251977653864203960633466997688135013902878708792778736141566965416244476501881974709800207336499362912555228599716839750875921071329349410502969811759747768034463292863440535713387886391856240265193959938160875315333796152583320825108534867299327717290108717606959151147808078733584505216129315521502521001980795662275341724436147112508081468461402047237930454637703505962546999117027765997611352704234789890027480323858547865110591164345785416059749692779725801510409867702617885546304980863599494587017354035137601364269014502106576920790279964439649453677743891647393819139835295467885038302132404251530685941895186525181761067232494497783254743766330374082901723464193374625249325701177609936890008090090614412867823098152179533503211253349040267836234076214051621608464762978218833397442511594167408595909765298024573970743809973569624861014156865986101245787057901959538266196010106232072727143639081533564425005312532416356783749849576422758906674637564333910602916385713071410045504933805264408819699799817353581745243902025157858706082130158523370391187139795209061424038081184133237556509630362836636842228957219871801732691208113835831577483173755300717110652929133558061878769619929876312467272882292266629560810943132087451939637982915717164949054442220194409521707537552413264102723652391609385220689310566371244870993975345695373787289762889297854026610758002361991726407368555896990747544324396824196703139883286354064511587570588556293582827591867455664500007922113126762338537578650075883296468777641658238009709611739712981505353744764570327922657438266665232735103665206196041781928003538474381832945283354083995188952631043779430454745918222453396870252202811001098228753371889742274213788427164617488190856958621571412169243798989426543134892848304063139753402166156821888682197981121318268919778601326424006607959779956188740510334028179462190178213262985542486628300961295652474197133029892071041131553661165560514131044573471455060610846676458758441722568948835089744918476930785386964102417958990482873149494751238288688170765378113190905814479682590475687691215449026239656902009824442795653194686380233894870630957892349246676047853555888686840215173086155774560605764273889500604691517460047923515345158086466675735545698383904140191493470074246994506778122231596301517279004315685459334562538060487556961523754560447077887975272237827524450908025612060401856225901531731828767975741615800140704274983390034880338683393087656478758229471755423066883243791244084981367894824109127789579163898227558401282417635474552435533665648343807312710708144875183145995316458709604866168031815089698571530325779648273536715477428621193070007708591923587003545589855587813923444331269635366953686124288114843217959839342667231464677944521120720091881353055906330951022631066700267695920573818567368036274182978706201414569969067503135195433660210579720275377823527375976138961608334911768841095455909679666193375763187400627834094214657989752096761069931903125036831253329102735893586665559042687142214314443756252407651971136484766545942411768726868680644398200450732480517819985531888189837833598152347969474012622299436428348505179142931346365596182253745600041284428098685226868823233690725739743515844367170045191055531493999142352099110465948883232358086375128260776982645990579076353622385596671823339384821073968316530125743997614177825045324931299054765423428244490539188576085712011196868010336024339039909199174987267335471044259307388891082493404077378059210574892478232928402763657355606208894792045003961994393060480217467363451091392466648698741820433455066058249806829373434954958970594108644304260822532640206405943940320152887677796910296547069455433004217823741239999109969250082966174156511102906985984774654490901542294079604298188340252184122711428847666495603904496156778835474765558825112992600358860401838648678273961640102738021166135545044786849226180952311386975032340512821596986168663545681128176511166550267566053531061361382643021137874591187759508671298512322547448978950006489334273130761322277616252975931592991679133404798732857597832881733660337098344085434877181143269005711597294107256645648915509041550291633111557603534435609076068936405315514328049505184876639801833648557775105092341536368801516131304308712378128604032914220835529428863230398181758142565159441059951347953101853303544916268676454462547320857187724343801784566276757294059430881914260752739298720197016682196996550480335884151270059310289337991892357754217996036974655264329576305794969771642701120542545135983358875229458752173378342968068193506219818619772297096342391533835901143090017672973090787771274885382622683737999678625986636998879935918570189888952386983925567263471017720788893376859479790669429155782794044711610853158602717143837545048707860285744335093200607826969787063082238013375306087702669625811191168252542249014666132021233147153480822866482070743552321476771913981928915873559316825861484518563483460264577981270970757945895649425313675292459591300826063833074279047056940541499945923003630525667347038116812865778608589454445346819858317871337824739175677697504299551905707837022452182392634391293630604049552641899082670259511072249039872961043443018124235906144773164125710235572546770153415829480561897740966665553197471887292410631893984436291241621035903235420172413203494840076336999785905609916719129194070202554096286719515985757210643782991287928106927259865769198420007385030753132611090548757436243186527030061066368187988584632731927657146486594237971843174556784814612003473940527675756847724343681004064217220658816609914396908026395327131492600811287425890369459792971562811088466841103639735863386292903143082640323851230624663444444195894614340309586854531102565117094439708629860295388656728574947044417126441379749928964815810407325019713392463885130937111040112516797408988920531672457522193083913162101375444454417165861799040632922174317169964531859293850703948583272982803941447995981343804791034898091468334153602261157535467051899796635174752101495111823652331615631568526397056182906855059596229825944722360556635945317995234270113508073351774869184418734718515932073943905012040078786960494314923327395137010451076626825494072879353057099695320242990924889301687151394164223633498703473540910321841534685530538377102370367440280422560306118281149341425734314913089301497496084848292247667846962801696712230152614654768182267071123209049592045841893556467619577069206586014403481597226039877611238002000958856163077942649558906481686244019128377078238475364089819375500663222054192690312997476602592337565887348336765101960373485235862363353905185574209080130266357884886071611332351015144840518370642723728698971268839891060781958505773240392609650976245450424955443515338856912171473691506871643654993851483552147861481497162167308518758077377008900553920358653750091657476097521885331321309097435773372040462930373525539413049377189152190754349003882873716113713772066592797738748169699141795119495191380982254754656190337320662921792953855435650591158558920424348997228921827496767349752822075159705822663165299716845022335179972831826637762624324432337153488632676468976921831750782676649114751571215745202460822583377843257033534787744783901800615455782301863047759144544635180641079993378974273094665657798829130538673417661171235015505579092032586205067267895091901825420650969090866650607801675440822228971855033622399512043606839509148536855000378897478257582184564325421287588074570926324996906649012889526128052542821311823951862126288462699804340823009651137768726364087105283614252725218064150343122077092254808884003759580103302404276782458649824226265042868160167166167871332725592510636371471576309947725618489185337319732794919213474937034347647491911684653033496293998179731035051282708410710088387613648136833207214759576037815017704352524846626732885170231816199103790075887707887472652253557775862556040513652883446398744981138480508038587092884642648832085037111158866926989765011404846181194211560920298379512096965861834429687906188573594743120038229767801098459210270413851726999079927963494291203369826547605292554347009667705654599709870201426766493422854849391618669368256403415164417267444850487860941550058744128323316968575896539063578691420778347566034107526004036281500848252751031415903999396556641947781165545394789896579683982152666764469398613418837320108522366383634620728957491048654166021034569991974511316091175873170893425630996500923085192894384526903167040657572997476956458625736889863060475284061837551716570389829995709355668226378854723225113604666598519737364232997098880729393208203212587254754861986478002797993849452967787481924762746402029594848700372254431536055025830218363523170053817765671165111622305613502577199085752944968833052849134485511528503530667574425716993714451427117250150193538014334911713612957516533515749701191358478674958116182434946860037558594732513352170858442082872301915982952879872634761894290364826948641940731758334404950870138517908263544589889990108235451315994803916073107731782560783774490836702484859903046931327436551778851464537494425388751167334757048413745491035578915228703659618298403206504440242038424235081819112509915384518586577215621207398997464371458321900565429030564461027752164646526898040732837246837025944721646706247583954779062523274325752843292682025166950646510829724390587407734214564462186000267435081515289393834420439214272583994743340357154163813971761420477834888561941670175629344042813034431481815865226955759345168676520006678266212528096077060929532059023587732392191273948611488418980733875050642556207792539487570274815767929741189724971948430087351210567002896613975053257535448467397226446661420732938605616920134092696160055890029706506845854005591401722407526332444800271445110650421227164813448470868182620822721969953005269412948061862027343056631336639936182107536167252668557044591772206829451744919984823750869560972571637871795466699979284043518575269019761542106450245023810625726016335334496485858518134538196513250650334541922479354251476689939695490154950418210303016944145779096539107400826918109869360610210952256667593752209226175438203413001533437958873128660630042812638077028835162091490345782815763573792629842329147416682161840462193233474487974478233758574080490428849264529246110624097427501324923329683605134131240988234044780875331712888960305532584776888499849010987103647082902000713883695999341853354433786503904595664778685668235835405860525321214360103057014557904793170279704742358689489404590952720334860720968225791193618736087500579396413623401791411381518062504728555822882114378225880106461434452434706387818365515720245674039852158921056593707007359433055788865219158944283922281395268499159055461068985738272510630738246315819661133182312967956762368453058840190012980951202731028186057757194536788270303455524569533958080308247433665994087020949943978343901048726902217536390391829465430722535961180524679606189363941780243011544341620620087313520083276637358197585605809464387505290865401894664116495518378504676362093901870922167432488311655067019431276339905974525226985565253697598348696366267973490060782998569540712808058373517201267664178879565511138418245004431275905916682225953855037163736591584417517259784943644528881643537990428787621591104297739867185601749074658086801413490779328407690992505428712654712451471160200960928704203480559111004899373532353202347267633017959186618220525133719755512836912152714412655530345737228696127567507962562776213240297206259324395988581963147353500195436357306878510175908592805239622104007847401099251124390913872951484786687308676775869980003582647497183555603693816346375678574709835903348347949458722964336576488070380914988610383651154080997997831361581076359981087485114869989973661532055881702527554015967849969351546119287269909960768781741617863866429064972632043255513879178706534780699657777479421698662629583832898566123561150864188251353453054985466912302366759509481045536182142388252736862602073679094941364735271635882293824772891370678331789258416426137147888667242061147062874682577206060292405328709749837765272460977781147055588208977677333660588044267637722231471674857024084402206792915259536258548819283362028101745491590690581790827822505240039606891917140084712048558590019606316304422951099221532995800078393741907539068851598321863083895282535477684182230135607564958142583492483199628924769725436277589413430563568025926931144615512200173706156545002867391104503031963505393160724677124944699891677252703631326942511221618938507241928337756727614913123737556419365305831822241703807794943871638388722824911988012662925698562792985572652663532413169353741716775900397711061922700441148138629456427306094547366944356462570269571058205788769892256643195947925088927320120441657643402867775993106190432268926385673735865826040727930548756280535887381005187010676131024804187252192301915244202285994387519419051688024677771258011140848704699308316681320989963831520311112730159832475733514141771650669140672960651875308149339870879319901309808940938429651825764437061026964024956577547685209621714580215292027048724086577657380939820739074507191934077099701080953138114717217286308795011381410599757214538778297166110054483791065951170989985176650409700152005548243404270030837574556081261118209931555413053906954276392253790458670059952006542354488604729923120442041449163468739178645297899211501786126654791573515922058280832925598337979293056847706472752127927132412107792092561840971367323758100449083054117105702515869013552514536504504578367512937221138536500555406801371636753313655881567185200411695654971364147486474887829003985234518484410114478883723073623526629310354614698425606309270638524223843768639466650118114495645963215983922714436909817529942708203005503190875309192130927799599359742911454316974349408277010363579926369583440800627853661551910218607464533464378444164787529699835751578153167294999133252029669043167019138408907379393798350469014995335814756273173690349984131409750617854324485419538601159652432145184425383881008404092080294469827268799606918364785159936407263102651662947497578991620660282772974679020292533360992011367388019335619643054701034065719395913066416327597106124043600358162964392735185554260774965480387819816558077236286449776200113098411122494153066768752865477584074809141031970905295717392526013160324451278554004032342874365342783224503256929863540853229183190131266498900808631355535113746276624089349137657228185336248013174924269016686073769706896908851957000523067839452555701669754745918185309666032211866429872068254380796023221930569733126888351822219707336046335379748468567503977173004826152481580015909057790060929972577908663316060357291966995127126762646347662738862424826899452449906274872977045239436865127542274728772913249935401359241878004803749744996193327866617935319937269101169291643606503562901016439079684592546332081381237488670304455184114402343936169998416027419343503203456684169382149923403292412075987754922547484931563279415298637619713951062812170564395944422237128274722828297954112267297569720298565062306899627798143661401125036098608917601043694359605927969952605604309744034948170342938831364065297451749311952927049153237309090870595736047814072221400336619770180648118580276256009443062252460005296404380153901035168225703490664012376492658224743460300905268499354100749796985806899967762812653470250506643877749022323191808698198930220209293163402836552393778537111210806617895110956891259637160554571845468586316788609660377016397849086416137443295513778127980974079897670075191646507819793488678377228397397397578401754749048099940248317205488043426671236312413572022560701659853422449264897603817591102194574620592706208601871255830364673259097188316121795031895706322187274960447079169162028140128521036987556068666691735728961259067908239820555206220763876406313673772661649296110672337731530625658005465959433132143085473460782860462176370384187947560020589931316484766083876632418356528679972341127578027838379845538411257645165116328476299262062948254752876910381226585650273484680058665639458756932558139423053055330453715094781823387608578451428185402577038216271079475479490757386601798363384494264960300006239305382406784134857160795441739529851939158816336362140500469482793223792352359165478908511655495986459142233060410859592028754785124760554852088682294999504644522803922540758488192763688023244175202989232642921401096519978710651519064049383118413948876962331617824553860697575484724351461460518062848591292210460959230273559960795184896065283652517281066514381616652034144272751296984829972681446784907613430370637592121169900907899100384881396349507670744518279373619001616331995764316058851849862706590221780312298583065302382243839921329387980273402015597273802729119493352149988517902200097711289421816392857273181165401038673644260332336539328007244754488580402709793825198429037036391875763682046540009071955567298999097324707275007590702638470112124099433046092537051805975666356429526296827287595976987584920757136400048920368773097101635161812829283279728137194268942021185496889448014196073323691450490727352045149756576148554014135217554060149042431474398946984695618223185834413570344846499794595585806281815778261444199250863605600518193190039334746507551096691180890918652226841134903603876977682772168309266546339380393079051182175606079266552723744462881843944186237962635198502241782141287689691839882140973813420072574245312022695621791631365811795727794574417847104976955536650588725228582017153909985789604019763638787976928559047547056704608120264400927774705143020076287182413353840416737696760896622275059059771618328896639853015901498465940742303308511562198547586805434430663369016852579222855516990522404865906613218938143885643254163765908492232409157556006835533630453513402830339803828638843908736161766898806744303253355558015593806920065699530432762048998270515723359746213674628246330206025953280503599314774905217951232133954936834712404008586403723691107982050408902369535393484868847960302775717852478357573283575011156285975541454304720877426187139373121937850235619430109134231900493441660958300630588967474282836090925176094451244490176058269143070038561973175360225768113594009177602182065530647992996967314431865091634792644983810429867536225133516961120455068560143420009268811855233495574780319311639208845560169944376996238319100915100705437036807808406688506434786575441791121835260466077039625505419657335093058681847915343881746261106551608724781161044251634909376545081262585434759761387525327867076367914901617352601967489776276986383715472081858525378331480414269712322122472213247235034431803920250311643448375715355237572570766610384593634291656713486843225958273263204441573980094673550785096117787897673112253123672496888630647811326794871068641182074482967430417367872183213015932116764727338705444860777559897217508566672819959986081098034639485387796690493690571110033366657670016217891299721764798291428907571744426070839562866966819425037759279811830256576836033022814091486602217552143572430484777577447113686608659059752813556901986761359480736269239689221963318653593741835649746405660405391832588548537184131422687324797982246091313644652897983952385288607266060726308694142214770437108309170029056903434476378862752718731812112068529008096904573475583255916690405640606435776676342405673334415328150311755726347517301318490190912609384680717231089290129305240297634301491182225799736985942162172219458334998597990471256747772236746336185233951498562452387657074403032417411295712976455783044704786658726430068258697050715732566764109777117916743022302398814407325548548749195058231194818349956036855913161024214718567690507088354429449301332380983320726696859259846704080641549549448723773534218558818339441013895828500385759953271324350109404693241983786320256625135305948290887582938572499467072082347274224015279173828728214638855220994531889389819624090392723703981517944090772103974156128155995504636076102143376090260861277702192119190206910918033952598785838964209763454812638700954550308801762897536919579502095311467606095303852272431627356627569147505775556597338953975522352171402756959482663509113681837623088724635285430100449148411452529388127425379223992847027218538789555438334651993230612239037088294459524123771154226877511841835945008113169403584827916507388041245784858307042358550781435426164890107412501119484016383074492275447611302399608868853336875212014648693281166831521076355335908806402526593515479127403164412268038817821437292483156072524452862131293810883789384344949412458475247956070208152803875846421598093078855382802126937390117663347840992653671534894845369701272361451555434791224868796059669142261431050922427065318990994965616100947944071707108711018908894841551965042071092606875079781328144346709914716120457037168739024302901913932571158098460962687316540570492848038748623718744733122575365252485359967444188495254448676802165165823429812520241843382073717776734333696271603167648544523312204779175350170290656970697888329096296737004948760054794224332495664155144489629010568800702021389329310965250644535527976515953796845673648729767971165693737491361453107161327558534427728824314615348478651528427809082563455055083995492302808404147206683144216633846290324762612765511768205379443605337619521527279753251147092387821778023046020808550598673231460636350699252007090751851135439488801867227699861523248442079534435167746402145661977599885013224989623245083645570647740566196856251399567802128445657782280976948397247540427133221136759382977440950427924814724685629804540662033029990885688836126359321788467900664655783805569987561585409005778272526928048970204356586946600412055152406496568149546432418583362650237975714465463268440916994099055547478938888337195449463756039801798018074642657204167704924859476011126027963133027420818375449626665752789405072641608562507935676178677344663416925715484791597195410223647264208122915654130775658138227526865093418540145592462591739343236199277478941783227767761572513347657137898997037582679308784803065472328433022243533855449432013433276003683146428143565302621226283530601675622462381018840368933655803463792119656919578280425307702265201667763124420976571667029787607158266539640635598901895412982535508419356101604224408020606879471885052661195117099491852119185860074193567648367238187475075353099626595529763983449718239556647576739177308495391809434068156140910455977161116976209707577267410634477646243473228003971809181529732443630431260282861904291652662095633242899358532796631959564671432873569678642432904435704774040922538806921227763790570272609682889515355075457778338646357144878598818303953803560586854224740251193396775394662003994449647345258931373215297285711791560509153615355012598882464464186451369827609519916497747546069084384972330228740146822640265585150790811157430657320413367668460934709641040218915831398056763994761553438312861930009478388694243771324843972096871401811737302286568166132431916476123173036468615248072642418536738228399819512984410937782959831007728458465330589843073062187476428553807570238775032985314812107873992210129657797238906485132863722669359353309136445763262947245976758478017831969502102166150496044157636221046550054911810910094377496395357409904361559820266083131808412149868806618351917178167028260579265568345743637256703158885663112501286601819923817371270380405763899616191457071306682348332584032209919211326084853344764115161965191164018097828482339423694010542903107147895247770329878812870156125905766592335840484613872158809751874420910650360434059382379502255568245692367159121932431447712712460475798731513813483577704347868003982441942159252705621653531365142932969893186630344878605655232219884190971134867831211926094696346619987363431226322756297775747172917057663935066238938653203289332268138692154622877060906420557793242621504686878422782555341084051662919530452414717855291318094922398445539066637451910594282379457436922623427017281830799186324359207527424713299716981059483157019183319518814825278152080552732487897475033572335222615604841775000110655691441929062494037999430592666415228676130332239684727662375265103948883925143681326277696569649009462155354360097717591470655504804560176073833387498886512667992957511056857140954983846357728938795281907750003386474120436243073679240327804459914575164044392488946268536498055574837053116434884880849052444110226949783788258818444105126632694758860191581985361387251346532778767188174326112741291978432598788811417659224223563228122716950258197686832190925570793572077589920183849621400249680035055447842493799047739183725236068222484220602531764816540713587264162776127237186805285112071736847941145887355143919654053659432681056187124116138640008046409526770604641572835274901796287189963558555750712018823003688098312937840409768828319673831618115951550698924276840858231395680954389846865396486160324487022373310911910680136319554060826670381970874667285280769726945323766080322966283348218726434764520581558979920524310253428256418438707711519112375037235352934443906960984875369146667218971139894858063300492240374575507571972011229802745167387043607794561345681107643749952484843833920278975547954274638114443890078238253357480176524247398673028701985272281398171470866768940202813487783309746300071675744429175423253641686648218998347995528352547188498103121910201834203053635233988561883895734731608618272179819845735024983222775838404503213365546618970148252408928426530395247705553206862079116483042711397650323943816013293615755372586550407589927520207783588388431367276064835961294662417063322383478833859789929919304706777618801202115813088383073025177754138615026486199360738388855120920140927735805999393254958988325405024929384991611453653655898308768712513071201164121241014953355877123702412079236887438842037785628130221451222207887881991352426733988100441129681830862846192908085251264095022108144656553851635258049625881189354769251455468983131406359556379916474653711556023328465051898915507490758554377048587846689911589794116160720431617211204156503558786934084882681516074991533630968404663917125176605431235339973095019128435007696802815762698601645467394192390898230593975660867499851742151855930785340501826585088033199617736463521236227533164357561830287453402117555463696513720097256602326059296257120076405202162358723107232204384477964294633858413742170593129116125791666078358613676846011223636552834145868117488151915686090791308002453628323397257150909466616925737553259861322247692572587576893236245021746957372588295630715449099804608683449190165496343700641927257420322826628208461308904124485833786045191789639941562143666627674192123040924061161714798394066729940546635246872084426047489878584988389548607499009191562829130759067596703685742493134666078035112312547480462979377974163113484139547261323915295306419363386140232688182941334941394516261323148195487441142814887560005677467045025914071774883044179849667108397586542676704434425416493952574407384410965862435966985206200542741091480739497736082469934331557355971825776433598100382996013074580922289799200022321876533958486793047548472546810537642606133758054600751128377315910804473594929590626664082883700997411674858231851398482125863520937982482565767712529121341717509609693013971147211508925834707547790316902308683422745657448882833608206661333724823869300523763070616885010913959177604212690154363261562461895298780579636967525340769318865651261496142651155981472053686462923894937374611355547095000368306022910133723355593170469129961319674340263549959487686319969404739970912644195143438904976322413727667907318852269064327353337783227235502618838575027041246668972748835624543053926605993277832939247547129947258845407197663485827584378351209149753140069868317639990401750495810927146313402450983644363629508953309579189168739466961394676754538903170310365103050983569478825646201857474917143156845712469229312285676944866850122149837425071121547413441543129459251613781764033519814801661459897956423857678391202972395426775570822198816393872108409545855543177521914630905735352670478087701034878179750211377293122195377877996904789061470035869390641702054313008742939272616118382473157498788742944441509145616817146231671745289195170923482774581423216310438837252405856814083382985703781052856533275582511730562951262016006293546455361047397906137220190189460530394640859444351016010116190620673964066496978523362575771334336341877340904664623296209398784258440777378433231490436941725254110819065964983815331327946645348857285757796846110071146104961485543916613778344338332087341456923414681416861161234092879988844633361957778293882489901705797408373437738734209857879821679464400883276597217566374113913431672163319960757120461284961778476206086883445139010125955018517715801869306236326270274372340815440737115605032572019613671114752191732132876948980274732273115937509994158052494834730860236417111902490365005354492576911176905570996054315412665103261750301314473272905712592737772366911435516665754434653031293558062863351217478114374884857103963138235013242486344938637721884179405301140275033840826501471760209511810474301289953061031182303734888844280982705314007638323501228076447553098966228202110502567662793184483116373291853559625900282512021398270489842543233864008614094833783906703625512803356513352413873888299399608525028485394237903521348297359668948909074369285809570061240504326994617318692451737717012666441574757338225590281762722231448861633197737724962232039659421407195426264173470741749859892452902728611451353996514816064675784638011101283095281127373011638464732437392150207017934042704352659307190056182186670726302562447262383424984463499907380646653291099858405305438496923598693580350608414933685194973523412046694252868272790040474398685972762896653203514780496957213062768791095245234988976754940012834943880898644350696073681504303761250667869531696607853522786958554996187156474339722014095643649083692575148731335980728990434900550944225557942762112115707473054222434656349931440273633021037174255455526684780480497882326475899118211730569992531707484558329100200115989918637381223692620555476929273724961199059460997421793637398499196477161178194699666181867342657292023494421893417073250035872291705417511259167289525717243598573050678908829451002164896832060839186433763543739782690941934671748476941337822692048321941812299180030287871365294626589921174433360469828517937444026164070989311516993896290483839444343461812444878712106712854748930058832376895326042776066187663623746616290437650023992912966227168492151073881065320018632482928586156495170748415487450402150793818274428506277481990273699101500582091246103225644861827228765001291196859525106027267562333979812007216498187115441484965720669632955003894092336732904381877148608811240579819012165575017566785037471603494662307745679599821129467119382183903021345473062272693554013487140021695073497045494299342280582191695591591217102394760730948235796589436377387195464062659122524049800922810554943642233663668771742006808010234991163018595064485104389437242789750467261443207873319227260819250710084766524138830293918960162939217554477016028390566937248268256675477458451151264037266947326540575373792562161827269250492736636349922570856867560043877326828238124097705071641092899288778362868972616473564317933658262472272505904231339400497961585641053461808932602241163218016497523340714863240420169532027521098566093780138466698857208666364577151008493774025558386371936262922829140579761276333871563265694950170665893742781952534013322101336362760285541976553880646611910463068742526303096731474093763220126489207715946972029665058700534759322744874451164439569274568789890673475991030162408349258327860777351606159718257033600235111656514500961670143370168950165802397356827535132139951258970775181398064017007032163687194884863594965563520215916847476446363405756243585749936456633226175245553381847195469312707417687697167893040807143287814399759562536573809918627348586623404546649864128976621325275053346895431717034982959550437922085711775531327873500561512800513672302888314024372216578193044117337556808684180822967974446306570147006548941321476680226488871506543528719026795958683148589357531575428446311088442549648649994605528165269173945442238648914432914118747575313020190531264759237218125956903065929040153904079176665858856850892016912865266968922579586249252786031783230609548090239690508362796620709444587210077730533362179834446630256895660301519624901289158700387331070671120401727928582026886553310260468495758678562600228116547804706502486434438267425606383364697138846156561909870348778600685833247063649551478232408706000400979828747286981849252437917807413853651736401242741896797588544449267130260358937044229657621526749737643168167635934184173064013604402895135986899909051948041159520112064498346956222964334170756346157967212693609452304417881699334955036619797750552429937129388689315014619228524587879199679328012323910618631611564886616221299973422158813124159735428348976932486281587226794434168756432617673532719968672532381981745867520945136477840873645535501414876808981973261910155209085632219282999606096646467559115909973952865155343025111616734217829591331536906545729642263445748099537486191358112572875103658549809191795503651796308644219353878051596651758644336503014224844442090784299419094976364082720351888591661084697667203707745206441684002914163033201280147311181042642778340404850379543190228333810511972482274712862985922943495682555412830629992609894894915110463245945353212903752508637179399124150522176212499956077505626478794204567997290291417733122522763627551363502467444098644582495695962794877531757750353525068280109320648824737889486265944593031944233829226663269802585711066040963708662971292201695732609892176878420669913543623977159780274749690119012266847806107040723116197454965814835126726610851528236891257258638164121815958172971015313734339644445797811891464774845646065880143261390567030455132129685575341421709465711986025492092443104420516107702217219972758158341414849751706270304216177547787003398015094865515194710964749975485533437062396481543485793964983668867041131136012106007151624903870738667660411261100787337656649638859603940439682080112831611359044250976859067351202041154078048813309229748716578430880691075444683374598311365068589109785995912648232355535033122510082322272737313642852709962498086511736442872387613777292395151081705966161089495377888388396789574917252785246538855732088716447887434453099287075235626288204235083893061576815656086828124668580480482873285620999484917730541784568294856020682962539202374412280644603332650499857784563406138559866331801756365972729492674980622465791240249467319558294649966316657289606425753110734818466546747944656331391195777932490354607932737624411726875017818040030397541689950523207374371952653024519092564544489057754642360670219274351611083621562534393505799334356945668657001094512170154222455560893598263114514073632341085784874349663955500722186794445596815617240259994768059784257608926349640772304281316596070148322534628745892767605719035122810488044794887533652249550592746383990837533018401574319718609682469716478378219281595814174510017644126614889712870221652706913160823693933650915837670886436338339786432325076663117814246802420257043115669001494346606154429791986931055479713327143789819382951885546290389765868529536502225575961017786019173291480685189155287096373276739240380173560529838330525183677265420138415624016449782553097208177124497823926036932484821716126851436073818364063337673869109011588567567389538472775979900785196951655328990034155747691604252384968991000899252154639375050963136547651016952622197114026028093609445444300206002117756002290545076728985962623492324063774956839024548954502911172083505342582211843232143404501835989306693868338047040965158561443937418096354973444286561968966818365648986868550854588196669392368802263356287152090736761126459606319945217550421467431532518850959880466452640505194137088981043663478084255146494314783626022425829445507423641674387938258136870043518528821832088772423119717616717936221361407591898113713133618868964668136154529238605370089973887126202250656268193525839837020278066925946587920768923093919115510559232230379208722157375351621152499981799250702622766872377879089522967848030162062001717956279783743118862667592280442062793888859067316734358431268483482076799336265565306373352763288040210349559100470597290580494796264373857175864111350401160007164769702799194590083187009274669366139060662336294739779013661294353797763670517903830027211562736178008957318908460807170735946565801514631179043556244153694760320006683030761606801136711666342954010722113580056341647170806909203465726495217102885173033899956600241447033554603215719487427562720092718466039482144171297841288186117644385465729871930843447708956058289417121108049245440331547523114351260336449820277414644163231549137692968442085441321554261785985049132344973809271851024025625455956770189750425721726731184810853582027848267341273214291788692505042258004996103974980137006450423691638267325804944303041647025268050026672671620149959042711373734898515416369695977865210579199509115187142432388896749729481648615648979581759912498550831484856323577911186128539596841634272739069709746507984440950340595436925134000807868838069215090756773736856620756407571606884527096679784360886634519276077031927080218597946593970485965721940799617832887813245904271701613984047498419400159315565172360683096547108101301871657652560471026132414206510839231550393930824106693957731819790840001281128210581873340420752692332312641466195365765165194766763806093196543611632656017586287843140658405199615600272599843620494788532368184475346263829194172188264315534763366725832429087914044311514303773146534134002383813681518991304806263759503623584751081611894771152399205533397979107134191797260652315340919201756157203913723008982758991103545202179593240705674938340439370649665278539604880314041041184727024077777460420231070386782721713079772789281017606565758894495045109928262624077675040364678511083817906522411612124603182204855958422198066405682406314869704372940763924131425604444376064929431691107195988563396348021147065205363850753733667290944194548045921604413116861978850087797269647961810593592846278293076708473703009153382097485708543607056192159688197933728585679031813073388184689181303997728458986738310988813229690096170352003763718755523852230449921093383525396660584002967926939746830106511087372972453326887011143852022298725991552334631135376271164708175418230780090760100435625350558775846497808904923319350072131293043191127081235168759463542066071212181517363358482909167574360819909990220787725690954661048459765740580556595121819002854391181058574814346431481332619317450084880332825797195460535029133716920851185016147432331097520773589095373080783975066502078788624093619241362647281312849882321462621641147348058344132680158721927112682710012841112089385063432897387245100546495321266517989740675863538432373825554341478852576947967014062886010864411355892117270179056634244986021280999095705821119381664328472504571542825001600635040821160990618752488405820884091098435866707283148578877085397787786328340276056840616629070017626962422361030106389651089173275326164373105659898144584265954663163062216437365443658724907895952079679102401548465305518995158407700751849983800113774375465793582129421046635367236878324485964114845019297995076187279605550786119900848257661803420706768494645028154613627965878305499092577310497335117400945331234027619689692123467360461151074844443603553599551378879061168178890672746655869699118748420623544440058559035749236584103644209356494653553051309510686913611406279121717916182496104175095063304946861148365342010004149297827795873583934490149343855561201870983923042080455027929526516725833118910131962396175559002523790973013112421033797049617022337934744441842305423232007260764777120037736582052427890659257308905840395724287143854968613655881427628159581067231153592184077141957121761180760369928702363958360551246706923228993305563368187515406731237673286726654257340299913412855945454804600154113880650892134911877934869286455695612437248456002669646986469538092583509677571301887041894274938015777496495629843931591301553464049528125845824929519587037952878062281735054651749095064237169771574487582898321870150046595261960204570331182368140343487179486092356156000632104890271559713232751530565106127664523161070549648007614809173616736100020536823939295793666883655149572319406377991000504010894175255307860636493561721501714250931844728093533958699302872724558551412508373932723602707557276393631089938303394322564041166950955218531676495644768161455673028043639696685532477696128468955642651371459315206084288611092321323924130854514315252452975316370044476602052811245353391077693116647928988668042649838207153965555047207935391535177303891547949774123110623729910013925748093853999772727692484633520368138644106063032766886692252818884299415175833523054814084673640207864177420824942410547609223651960927293600614944300781862136004465491348700992866246831595151585831172355188445543502455815811482967985300577903039097401628397831720567393536307438732135548883841487438793039111068941931933357934187520854750649946534251338292276468097538287163475850991059463740006534481657917237097801947445630921827875885733378310904013012101663845363143221651075512777817020330507152349513447911633377333283865812316365719201376528294290205525433616359450620871988249814459049922208452252861654083957090144478078773207839417424337152110453512846372036012853523843534333594235824354231216153547508573994596788309231885511008671936932907643575528380872801255485162808983616771771360107914386662712472237728075966533058975125007151622692393484725560848247806033800576105762922725656231589903950836579985785867523830704645068712032436607998155728348417572626700640709725172332425836030999753044142284973961475836542156851519713078829569715141792437187947089607766170487283544133543295151645871051873005781397229652700595646290558816483253214772843730111401488232752387268006682007014247890363661669599476396868984972655436875675216242849667144707820461295013421930152936236010476814082928396015519697781639469597745838524625926691591435997154672442370217978126220727063344939477786940910803194416528519272360251181126652150924267669073291114427391311726820697667584180462342574355504582954449915494811573658086908957663088699589327118920366557932208966517005269639623002229233120627671114244548353369423640576992058758140877572410717521314146336272463488039917741340565857897297628425806322922712597620162522784037885275093085750786742018972406059722900174916355165449298723667013951798729645316376328533120911866998093073314161966569981684840426265871472790974890931831232818716893322711116214073248786627812520149664519598183816364484226090357729087812575126135853063147933306465007003920095171044120252358945836927466314551462608741992446974873560108462404425528945899540939923350859419625389641563694074784162508518150566945287261775292931430432668821073232174557455917128726345485628266258838551229103797998588964005676937564253467805081613637379057203655993189709905667350086469097040154812833081454451109597143138711109585574658873062618227622101967780026861583763775362828759317489391218262786860897194369208118380621195849361480345398181762714674320148433119947646971317603599670816262778131851188087945733684490272835041680677630278155370305822325480829768473466945942120083241093770892670315294170553559988841288884803007803917405337500708142767144875361279249058770018945826604714552328632658574046317352634816530081745408315187671894494584315478498564962503649139859612325633854972689058677989513811051823583137790953067334370299839254182657390185516011683960828840865115839714558135776563361252419792217148703424901030932340916782807824177799885128544692213018526824857210067295490564791124467459544505406618194564159752634171011916078376119378014909209015517824465606338277058700589126350272378471042749092454970342367921148051593059394543228794120419565941816590447558096661384312182052606739073881075843444001039210851752063627842160365153803875803582780097910311040916580624040526278234003365643826644172781070700741752477640904850718743416737174720390809618217920774859780363169507641094326026595817385532081800842404819327863776457018083372337860327754680966910223288374714470731623593530045550350544736422146665307883073951551171258518386103722105615912630498155108511287765840857617439772754427277029195058980254040828173992524796910955190246744896804728654353818682594675136245650776520342428466490781749814988619595215966745694999705852896634716397401417727255224999126393881304688462042561455808255892984266807025081162733335991572382090686382958189865294379078422622020421701783912029795306961347760761683257678587987989810638746224473308451923026159005407161858348789208377229121361847923770569850825904645757107069473142105870214176348645405038123422185779241984827022120519289074914517667768123608692452244519536317176349108413269082137101748703708739251016207537815879525561574747841690166607132143609138910590268948298235706719897317376113718379642332672428001199774039727093965580197637151110096091737775538074979593236940685758368454545086810020646222582612704882072811870048131419831532377592656515105936882341665827182387551122469186972483891263869549258450660452520580119683266298030191151704058573547330511838264802623651761633454345903065084644882678314010025912958916371245712338020137402020811711759214307510635849998041002643335066473528238623294792075017598364447955090480057548887606945774138854444264783081046844691428816713978679634520427289388849267612033207730727338216234863016479760022003718058346924959121565139076839982166541956026594596324487554462579733311679150595174599461130089640263258657025326487667496473624600499913540623476434556279224568167378782301167032222610478421430096502277203333456026774508034865579153485417882542944615790747291242234358468609995250596990524392615587177148398167286881943619514551636812025273324750214659225080719705967644472960143461561071433005773109637919622611788471388639315913551815331419184762207510466087173273928033010267011996086619627050113028740300603104970085998628259752150397882734445765943875561616090346202777081599165156455755469890882392906773299882597301073353500237332585472249236340882778212540876566707764137832307790979592804406077157536030033292503648007644280010083903024528667748791498394495651196226453419919108927747463873513418727164400154433580182523050263077071387125979418757916980134738195473066785228705292632705040507400416877939392224049400495847571297791985088815944067961217673982570964693473452599568865700898401902827654612030470210803046250893719556672894426475568655676340814022989518623188768543139521592589437097672382760825452385898653379220557564335123884704179944250244288192187215677214068432975153352431448324052011874088355486604242449606333107303049226063091802116824508067942414427473254642887591422535135223082482994571700852056062346944771922419396801660549843157309082760766122913117522347335170721068548012716047378436993188115511807666565638199156321249431988202224997320756644564499798554681101272208154204761515434947546017271146768920514708621266316585737501339433547342198096260977974988407353039106311400827980303972089751974068808650679442318633356957414874523767610293203358199440745824694371939839234996411944941022831092739491566515767913198539184588409121352784991513593516116552698036657546506837839519024262083023158261369532471076913466264079109477164126578519078125213644853500756643530683612526822778263102750166129461558095182811675611770402742840304198020776235676465677490216072231015874749710329967514854683800936281242815487141935222158714373988647737931503770106473081362257031023129278740142708887343933161994853388470357974536127850001536672858534621766797508961960184448472931504655833804432651733408373116392454710488848101998612307677385672138192019470658306278462841061193872571624021560905158298835342341228954315524410473863981887999002861196387029015033307044219943481655758742994233870129091517958377952887289883539444303476145353247187614996994034350307732372962728751993991725327112360524069341673850006445517309380927305579933561769872739037593193481962840387084655007551665488102397777095124757785895204157153838866684883418760615233499425583602851143210838212222423190732307540842411064818545419563557327546994134441266441024206887200593354399664241691643417773887867039153173128224151231578121512344780183073967343939884608099520951462164933213748377902624959759270981296755543091750278472819797043828266126007985234104806816047317483326294087654989981355055489384266432275081915929887654268895006532108474113123520326612090885996582855357841378300782821147104544919894130316990226503801620615319818218462718758450516202249024245223610079110231809611410334208609411690019873591025389133356652079750617425998459143378650353826825127789607007568190503033743095733913991919000381519422449345528615182125577228033266643345975746589685919265921285811640832733105022421863841165621864697215216432791072955005248563628977104894088926387484424334379820648648540515851126294610025077093830186513388509987783511820823621240305525820992064682993988124056659147518087963782687825304826362100785164829971927779811090934985304276497662312665254084461113480504850723056558741008094736471279448851253512794165728209635127516178014510286477858168156880453770602658851621623020407434794961784688193785034366203612759968007544862028522258644039821148450754834031564416655547950106745410275095059608651774643355476631257526068698290982491043777702504853889001892775604757455898580006247384626826070618910031611125833933335150567909742892032488965170677294353021104713795733416810292806092865954730165757763182293541007474342730252916019203056470796238432163427641168728671172875565172115279070111835508408010086471849796791574633047526185543755981534712182783420213731763532659984860508549279102974012318889958807404385304359586551211718050662314473806473299039316313335556619515983583092249659248480687186784456711331317302755400663872055191955216135756499919475766829591456125666383272452684939085827983727793806392329308755494786441690250867008334727027541346442540439521976620121759325947594807335125795797485588513255070656795461673302214845768906029434182612649029753611415753624777780158318771717980946828325737670208899164301669754896025291288862689229420702639287021421403557473199263462489640454921285289792115894245667163124168305311036944436987403871385579849811659484455189041671432683598519290131649855562730813210818728126833998235409042240340451070249227762454570838416087092205575705939206705102677584657626820526875319799324379083138751104279525960605128878887723447118847940871487858270755374523622667662511912887466519804319972800773283615882027908893004754448561825272214875245962600141097601761992049207862837081705913495734709686126614339863150297442602438088120398604022927627862055103082320399887258804673637181362370955874706402274977173247408146891037739216385093215081395496132615445454093567056135640082093409806099692134357849896161424933771975546383926848170841708165455272652717145584487735857759465097694976395136530076593439327104693244199335159156749108642484598637934736420177716213366761339637612848408308900552564853304642735439575898035090223923801689920880820922416923573784758684820452701881594432562572224523725878596768382464805192908181242412296244727669455550164391356508603492194590598591576334689317657784010149311961493625811106907515889754179520972779240782706256377242894359493145240352104771294760599498760532146749995170648440165032506655315202104150635622812184731579347032994873832158223949060144365571637007620929002278196489555443925269383056652956778099687737167894807668109852369920785725225876989635386454001382176318951481605914489406205340510141483782753585358392321425034638498316213455576967924202414566541843528260185174411074972468136015143190607941225492931224756195197986251155448197276708441711864548936761038539526887704186680331065968212820378819620440008594694063085801618949251661526622455888610231520900438636206536247261233806418515054630628322973179265519904697321120021559161272303019576920139880924725355470905325843001078053960134181278762172347666913381509991501568885843434248053719708326774743182266824175944198451935165980421004921390446371747582209380185066513122119303351593906908011705528639399154767625890675283124940612497036570139897579571762394102055807770098421371724762938009722276724087224066686828273388616226553338091434822997085784412756801249997321664820633236376472582005565461507774275875862461063968390670627133862729677305552037531792814788047883261380144290355772625713889525185271782542031212868565553187959226303924073114526215949503754603406696801007245055009429106770075090270004602144676259199489334372856144008030868169533090211649875661896428973294789061206528682447130722152445122658080657794347793518897460342739776745360306806346514019622245495094770684864505505182488921810074976755984204960284556153382620970933354779884815285369170497770891086665062531394034126665840790746687927614805939150066082834996286804253422992835886042587486459831660453352766973119258326584518069109011695157948114061992357073823492748348514862666109257078004182826006537967634749813334028499456008595056415391035724311748813368934254355875484151087689165698101033458000411795175514868648961657909273462736374195529028209071366140981225820440282893086305938948905099154990474867256660527256844031107392134918364150560993974480891201186811502285702786352817587026105164742588567447484397378662343253289884193656102653944136506327161116068017779868530689038466238777503257883428064137978068953527610109790860152561689792077898369725167327853202607183263330317211271670777131537029789878465086128399417785015838385989776749520376965492734260224224266961168670532854198664426100295284616294116784812154157356513232905090156694946937778637217085393295128926947207843031123756599098974924155849789496189137101590833175834107168110801751570099279922243726699380911232535902736500483818742484238287696733215058261439201016712690071714560971026450956523676029485635149738829986644444179122943623451962216709162687690919499139656003699445304393084619988999168522568175381522743487484076043381364092658588321319615484396759313569513297988160484504141882494952134178782218072765680966794841056429267956571957302043881126759041277325282114778038016960802967139815997209385855946522624674826350801544743231023203480318046905065145446279637184485154270004175835749061634701162473350511904182432511117239390853431907473271731405678051317710215899321200303391842378180225219116506172120601729541455090182910158136124669506194648640912162363294499694029113199405590678700064826264687915198103287631755267731193664226642970522425658450409138894849055780993822726692888987734385072722974386523968408347964872524532869483825741622402695019887265399507525700267061530590719426124256359612326666821665232459085035690256447312519469753921940018775959454326139819498376227576236912013855989544634006476459462448195216157117544965176455522818768675804088820988380696487949196023645224971939603325107926466699357092987329836814926736433840338862532053402496097595735358827912875832611940123554937019970047336519988772998582090550393937486238592634153398817512083113898655603832152955195858645093001657914252218939637047997951019690272152710429468375526453950714098878869370296648520027521166722544778054499207471365698891694406861241221007745583875254493325254581232541028863583003040546202992666874005296068089520232531661800097152842597551069862987529960148104646823002661469473988636220323273838732945226424506583373191588121721204125126704011675644699243848060216316544691533830851171208587348039522832970118885243892756659452866544706117558011011833821378871013974088265104004257212971456263224799950414910066562423434608603928759833201509245727343685467731526693297345236355400189166944824814626014660860604169666248495987266450959032460208998332968281947441749252390801036067642205116350506418176669786065300255260023217306911177868064461806913049759621807403364845052722450101283999439670421117249873229346035424001060826499973564308921032040564421101590345028033217112948354176494955886894917201526848635682787471090939846988156072610205517828824283360036761485258893526555840921483917538961656710992021445241595256952681940001237357036070416959037126780380253955930714191246482129310827236378637060216341218472318793032459785262212299961548423833455160740232988031566497831003910144675655807881263577884514000861933506531365030159614219744951797931741591358798767912992998537190501213159291252167404957545420978174652154766628675576461221416663220060912048803296827957650156985347755462649459129316872064210433154510491899624893860764217259019949756634924625993921226910436409591407500821725256152013376743707413009002245044361391343534558736089728477728171040916633556978864683515042663866226929671304938733652819692274396508817430995573265084554877811543121256917436215453957481635155200780940019934555266254253950119496433691837814400475341334088574629715018576205440802079314980916934769982751324355761448385092986298759619371404681098386863491901781677842160033604047742192595381382955625382509521966408399769070696207572403357660944630942971787978427425859086905380497960656732376993381903053966136715641090610260704722316567516673076123664339765901319827642063752637593412311429362151555214185969318804404492062799806373861683482149304750838505480487663368135078161458155327437482075087378243168840525615406307167313135263975576953474247438827929150316857657198099324726331025433854968430192610335833616982514230381669869868892731085438920648601653843105559507842974502300531108923370135168552373232817412525541663220709643545118900396198155078927957138532507642294507887620686541831331216798718420561532754396329490113603259595018124805659081651320649042198121555650917442976338858253053030582970607000292036222204124198723422477332046963809597063263298606984411064643157607788966749169183761538555005867479107510439317426392040623621529153888555338101664289687190160130253934094830377430550557628884857412592185319832774273227282148504676160834329960661674079215990714169350444937572596059725799408268995692087839631493765752528389248566828517597174594514243069414586588643661128612114420896651157297622002246147949398775274910249595123294824430613962620144630265599632675238479744441481376769083030330071751073224907368452123277722685065981236326219409045616458100801524798029302930433823411711588302253261291863925252182148471015583574188599587240179716933805037410859037766015174749345883826630520548848874324891847305195290737621524973898874210314785260671839993561347031013461513286847865803537771798192006312799603338655449581479461359689361340509907398784439554546626364938208173526639393143221292053243394184176212322299456822064203496079326103872441922866398942237369388757764518006880300951519551166041354149425406905940526799304754138034432910637381473156915221610719292700104726920423770956768682663556827464806421044793322175062528906002063929514435943881966431775225286528161305433665743688764579983434774937359950005055271145922110682160611434244663581309163297365366758186801566303755833894942181973101633833789621785677236545357578182511128357327041560590221882790901461236615161857870687669821482597418175248332731932320661608045988645140077593421867660553615869676308660384397312539663619684038911284982731287850447087949951163954194207410079812090961905506516574422702093522971007361629362360380688517739534764476892461567020454073702650756911272964348893619857080995441932944759816363008012103611866330754019102046751845106864367347563913857557856211972127701355357220632483617519625186975530420571529156694906610915558187162488508054006672321234222657552462022533707448370200410781027474459167855671085662192245699247108579649920587663914531589598401048439326684755816578389059819906368857225540510547251464313440613770075496106567433731734277530836573171743843352468858163069859310968831141969766869744690668584294790679134884063709174883729012747812732582682817927558553091590523114643045257150221649025475922203462089692006600889429097979411867825025106388233054511578754898395590307025660628617293079607063473272243742781244274393032273723798615535845628675590370483141679298390171185536956296931071169051302114649033612202924019885924074310319623271861535027759153600015785436816724308491461934609710215674570768432558856196179450825128773542335766073926057980609242905831569619895452825307951609982010460397758436869166161030212032146391872838503297750388293642132561168402525319397521778954225642313267765024865985927722739257574000690935381945623063398826515539724917256607922911275932727305441099746968166581355513665824015446523667584535248743784638029347577183413296060094103880031753247625392596785874149496438775406465373951944814694383768500704470520056241084035441218732412307484497899445133222465106263210179662840639508418127362180484314843781591986851724218615078179354162683619411717128051192625633213468586181676680814387727934802917596956825640440951755347156933517523037701322818247242923240720213542105598501995992936013971123518574888573901204758271022287556613380842499554245861760450546313888062852213825440978294533680713974887760540098919093959048316557277502072605185106284274667762314424627017209693857593940722045458235695250886398386924041531642996501645265738907414216325163950918427763614352788268872635250048427645003423681186470618205934225293062988247094541233802860161578673852977466700754855836676341321803603544455756704727539275633888550936081920841643692186263942983024095689746788983931873060228116093265683411809901297575822819593771314861786772988983934047786380471767690643979816315447524195661241566510641785336253964072110449700197502684246024444613680905821564163667523143539757767169618869324596432538079061009368089034986558898785408551758837854733007464208481239540896920767612835141302737838957016345031673387627627811687113922198892650855313317642753733992104405741327881410042417834254392829095092126539984495618389563203257209541368702989379539686055186707199867569417217080556887070070533923764501952727336934206404762573377634914440765157623868623906865670146468497080148455501303301186247249733533108866985300056151514130574603221089517908450722649427234610149115970552232251199051247983118905118024610011216667804488114292663323357840195504748609100845421685451814339086777386722327318837570796521839491133097496361719399121983459392778701749618382789884944860223793596224677743875079994000302327047166503773049277890750325767524165613323808016209076151277052249440219685299024984814741900218767160563178835409783357054853467328318981003657236193204140868551639058617624449683181515227011620721369182783989042615701028639275610981546375583603451004010409756362724468995188668114936750179499872463982995379209339752020431337380356481478450934204689861347767175612671310177659218367976061819016019421195763402195144172734153994658631552085592956516298602522338436112283332501876623362684063395828185780748981897196096258276038782885205728826639664442231977166059782923643088979735197459073997978670006110081018639599645731370517797658462155238068696828586658582142687369619884106110642537345588589085366365698938996090057664120768679535430860262726072749129530046928729823964863203322190292014373027813955134169433669412933745646998959579797838452410432325806008040454060962018587026750843914966753017789657848736149362562164579909229099549433251981723831261950150711809014949424922300831185079215084812882624285054992190872028421162827630303672888333532327601459765428252944825610157265507087662060292684952387204403977679228739829945628436175717248990517002014990436894126781791448702070251767230479164535471882458013434633692478079349505908467063992224908138784799972008985585077755418066476279857919838235047871515084979772451643607207076701789017825463478738868025600427929689802339589350789883625148750111920712061461053646699229864442351605044017035534170595076064738002874119735264790127304955780508180484574898398456343355374336881807728544097032160879022268069725203993951541588492875514518652205909381545384426482802605504717019663339179668715710664697013163401625232768614772787697045795986543487558635064136726218248407452559712452929899359540639971456443430467621483013072386728241358478936924813874423509932825570079975093612226278387566141114012147145099419953234162850992282185266424510079766827023642868207868960065789335066770939026971620286630340014304291381765627380248525559422990579624799793335998348292072685183002429255408499982923137349718251896250759239919611391945779448792485024203899997519462650692909172666151757254551728420119365712629266189787421997456796553226707952278820212117376902067629225907600469840931058119593104731563635756318793349327170775714242132400224091924545772236086244698148820786256331876623410722869316548839635490846714906496485209298368599237122500866533948039346113011454989231531722323887684363640670067845173247716024948291606936152242147881272818246473863800002137350613967031280926488465911937421953025228669377615106949044701992417495639056393081726706648101426111844425754212901829944087601546559127251533908814755927940189071816876945331549604422532412041075486172029230078634392919684078159161331343622602617304867565503180574002181394233744423594904546201695661956108781742667275795712483441138047013545823067864304846495252383133594913245435506058020384902637330657513408695545273456826529479438834087745530730732085492838950698639980821827738741546426168491299653878820732719968961934699743884666310243260147601854313071355934470737119283511447188493969307104771728791579031123665298217507581753448464250814870701485904962662561230761122216428188136726959953041345509569375210792599512426426884780085422125030402501838801243637194629534299185522619998060865997158011268400722194547955849136622051360556271841984587578929198924284645375879195882210770609500967598541934257892577766481635179199819560320933046043246992255798847188185507429947139576396789289741035729676497587465979483282894878090972907543029750157203114349870523134118372012412569018684081344218534137250778157522340812687209640445089374335380207616061277292796162008133687236616616915271481062822984236257977157278961329167609729217798139569381109645664286949155476383017973693529449196397679904608331922596592995225419915087196006565333770163142827899028549245061772626119543803570822604462993177287420681194310646043666464863799794018578352048167509326483072009554565565667324178396505948804269943415209716946123129026513460002775070657081236829730711227086714393937311935435343771140837394910326720943987868240796466941482523406577831794903551250301457462821924850511024261841435880354888769188012121795007151363683026103953949853948123980957423890325022484376290268896024073008068295912740289850094911827496667039206020387225912889496601449608548994376683328108864502615585467564399246866115467249136286939383860267683387624240444419777549875034958613810909508744307715510645333677894963630557498511597625466214026235974901628943407540502103641365298620968027780571605571491956419728775242845586926482874303101592468350891568233971709513025055858724687657393311404176081731934273753881325062499859604251654446195274532110973718773882985573411436205559816021072153235298752749131666170892136608030611729748970526207121591724639928245803096221578598427022915183168144452756748611354048039342896862824249614085146993603908303308063499428133611140678380472993218599139015899017137593977719080507131301093847652442100527735464759417939364490451571549153756296099879002555966605542023049618838049413928224747462188810381410337613050768904927274175266369144610299667100722722489999597640197306647506830865179944130832897733486428928239127878177501611011015271283111485186916671231267255570875637461914818151751034240622482964627617771742427316212389669492273585425249110669641632069321804638551489778895661970448762849009306226194996616191062888769401771339968148404516049833753411671231922591202024544869348834342692327981212195414200701729080562366803297678262938735379909786730720399581985620710448955074585072015146862544906742683497195041119594678029943789425302496792935656281703794391971121020976297395238136858865524685045862912996536912974880185196388914704911233212838115898192759869403658320393842161440347804323604054715935652333290426392044378248146424923098312960744266469250398073275438323137911610820450869854906473191310757576516931419355633604124898164255927948278937267788857633964562885811362929798582724190330271820369891641820849221932326822368441256010476960667307170698796745494491461238313113555620542584662805627479320967029633209701141718721274427110944479359949233381550632538647544941761390855700204647279544712329176486414296785224683152318846713407068897807440773748387950100711987459647714959698583550737160730123206390512636506669925509389671921410658457211271800777258468417112811539201547912629796321734284452351698177293703520096638491683119004378766773792980558025900171980519931399371143813619585674535405062742297574571285195499304991157037250692532983644418864092116568276059137791633758508457016762261090882477009265693912990393349840543400584350522700079858996233017189783223469232448365713296278115348575540249272211593091677706693746776024702128490570355744507598161382438519961480738640225339734179022251354752823104898717520850058677550879053080644164117050118478582734690768609549312196544563032796927797804693290461671686288703635808569243294443666726004685147943697264310638468310927609108044853898062516231615682224017037418588526172534132990863542534374920360092132031045236062505241234861821480711190083955508097352027113272476512036439061212423773151518787802531822813966038870247524449442177106782323165532985167614882011790690642437980244227445357400498158725643085392118400421285534860887263174354350343462141790862131173940541719370245028221876882572010278928869101513782962454511822652093812886169240336525838210705506989588833566630992517365839945272072930524905767403737120359071759107486194945540866361428363043924791870542695243263729284603309075259895974879714390284769646075580796218513185534878389107885230235176862401428281235217296359724616138754338577385414039066130432994146004579373438562066780162091943135074777123651514532876699564989981761876342596946713511500360753299189653020353643194819331641593167269353907966586216442005035793243264406826851229134138782328700988369090783357809426418940996107797046075900478597652209716894662469613048604510346704307889943125632669111151965981503907211361939032154198913614401543857656925979983740533694658696383427604089257811177533931949699822437035793947133614844287060758189385586791552115315883680321135861619154612495138922824621571238560602007319921445149941559339582755530477711340850927273293661744336380443111801803920203590208042384094839862716129785190652534416051117861155941268676029973810502548948464044195476695652229314552651208871090563384646033318386415683300320513206960221302867858021758320893771025179396717273314408856600450225109392829968874117422401542629857833927664718203303409479078157340025762503425551644610391759819556904487939856612298321978011749996991083482776596082742731322132516426370389775935518501213655482995633453018751077699908440338584438503150160268707252891454497393749531731606845662431303339110486789567914598279228962227566058300693818723266346366615375001152949483897212002267268393544909725453327227383319563463654356632627819230942031565924737581175221691436864459053497873029146776955841564785611448491562851189179827011684232464747089863931801440954234504358520716074443760419114497269247597020970130223368551656059823778698002808206362769770862369229440296588617915012887097618620727201895574409432196756982674304103605917209127936804712396477084793646989133594527217135337858654593849504255721357728395475022182518376117527015998676587000773793002132888606259080154559439689799411346748551382868943607673792816086705966092664418837172930135423853560669497704617370006830228674775411950623697157680658837296836885558670310899162520232855254535980612271966824199611340721826433294379084235422235007977262651061943734483760550307221849718789609062208170241796268291382677109337428303507533688264044355315739353063169968075644889040288577804596556125989514251957615937111090657975392341341517919593492964568286421336614669231049063281280895995954801142541469394762316503266213029427193092237551589761115347817849432635269709224562387445343669180115143600147744754277466162442060473357160585763719631321277952801192671303655202358615126672926175609769682056935578028639406683192760935443800015703050524621784540213272742631804257772730620636297150351349314275844910320676218775957685542696291727844751962265421975403108089794605556944936436563497854636069814794960478744346279603826860640581769756552817788124770131942742750751728660854481135313670427853371754940337494282565655681107781264262291676221135495725932145562234993541963216429393019226302878280838167413033867581195398585038447613977965959417752674695613872259431150945274393347785362549093985197882646356126198828270669635631186695076243489510980547998383040630056759680067734117926908409125877968725060245589579702750280756766773939295844782127659656728961897861809571666946869091740756746531017347928467392931039034414992454159529031835115463211355404098378973792507080383929705675074651905447694549403931999237254920422074756308928117450173394304540153613143203027240717626405641528336405408510791278657259510737270601898871411011646704827555238375677979592501918822967144006763417650308816153322958603477111407300149760936708696380223320422488117236427164438858088289453449573585553529356531529990334538138306595467905932727250658505704327758859081269476263326716466391098540052167445920042741390910139156752565529294209822377950587929476894326909507270604248759025152511281747505250625469461293620434446780429162713172953918794344103709483729287087888876355344549031538127099904053381989591260586749773735393136014087206703118781000502996290141550910163688972143662774422070808288229767145056959108968885613036795421308611100715530063797612081349254907496513754906686753632873570324366626928553982632583665769453586740362013255888773804653382620928453457604594330044362857910636044432086388549506251089738693968336070149277511605527975891040465044196071476782508126319774886685400644403140376909006843592509396134239584966983142972161237536386372251767859517611710022082162461163584445701642145311909514755393192810764810773105338558957505090659017961789494797184032750422466676533106530981316510680542713186898805461788492366587344782252945285459033016217205904200530127291043703740879310032698311433163221467348461435001550268969863076455389535861262372443307157040404785108696209324088062318021336735357361484860437137869567582737543862545403059576502878418703552574692382562917446922704751416738100839898647554047992268342737272033245138852652767886453924320569560516584335288463387328505572276345917112096340959629355960485832552448824295133361678561603885342812786706132208512789182903080473795334146620283560340691554257928678845528638239996321979734259960014396058294978049016904247478685732114819659260976839720677331070841206536798584344921755536337499128383504528804759881038096401372729813797322941784449484672337366026563607977611177897363788487096375702402333633683724308353193411125989297865278038699485361734028939154668020293134777026364215741498601671027628247792479412893154109098453570618923363175789651285619755230052770256006564190543877253706215533143033207731662520865438685808557545499349039829846916923934827510952868398277306371013733476514062564968641164292103271634104967483427761480538183230193263183284574106128735064605839432916753021763565917346508151394108671837191911790076953005275085517602375995273717324980157129873156119893194788826902615020745023072930601247487708850184173788886582418294026205721550399145395866328771982002389588438653499128200658632171075010822128571828774590305133931038264693681185979109751666404393747121223722967936691670044937462810052181939386784994455330944634196421112462443913870370899742890796735177876159944214415059577006093394775126461867899973864003547872735052787913447840832743296978723884290392251680000838223730842562807700012078176052026364288511842815584913165102515114788122166939354069219222254024456610524824273622400146580303506571830267954009533870864235968392968541296012698813045961780237458672639566074458470495170784692348667589119092624724483436028771769714913402552611336578174624920697858848785442396687687311221712703029241355243153373955833291179001818408805222971601947371911366747618359196527492033252278203427039779010960888943050462983858715978563300187066635110309326959369252732665531544577322901014690617581409179588408713744665224827177383182493759666209187143294184165932250283815890911558495417758035251852894010650948692631947175562028470245728551625609580840975639715360495474573939286414255373055184595404260286021262833825028963678268468249956391307971140529891925851808716871932606280812906154941057744603032928837149443712581534936114440780646391628333967109959804890419906579588847159936620588849061246828619745635966817017153322850147004360737737162850863311733422780049000733005807135524607154211575048599277260435483723050197179344155013876861883360081470536994408983577823802388831525257457165109287493087887328326488606336501639540479035219311090060569980139456057902660823947385912244205169831544466414400434137519175477957819115648241642843560856676268805326132460124331468460478211006836672049810024005502755494076648680855257965629149301935096860677110541275840473340124704372971772874331044703302945837666330472402313742207537944728758967320120628312854585746385113449812386115568136929339836370002191865302687114632612026146518104350123913329211952501234477980332251994075095434644705487719742393725549759095182209210730433052104977016586543823478948628320597279456883742107023090640833379398453719307868269318692327470699319738083558045916697217311002497896331021642239342160506346684669456392374279463227355639439013384557501655321586474110078718937343897347333729790520373814507327455757361595491875551705782245415953405013377580519168238718009290401192371885933399309351261254776836290061014741739404723951074852550668653284353521399499969203001509916986164263615110347701246674165045120658376975332691616412413283521100291611192728610603264194366901500582312640411297823270191850393830828059324588316519293187544555368378543380510469423142220221133018364696117173172095331850340575030252625562624438379788147276396126479370432835353170711948375331792488286182927609295528116881135691059058964793206874055010459944991553202528446479480689520176813431132104368483841175861506848656854811592145429608823443908665464420175864557633261357349160407055820922429734534665517000250041329692436189915197697071896771886146387095098949205105607603163868794389219743899767804710052632284818844019056391124402442777377043841312541317126488648654648311229360749222686252254308150817404077832651417557888800070767082252194362222117748440648041868264185322861595900149614849650447068792819617255333131022526527526901320108916971886741482365197484904512159260735319616283962536283054851535573890766620042242182529035710080236758992568373800380645788618025890212745396197620094154634343246849332418586091896637709894769896257775932787683505068698310196212049449756385561994686895420778388466593158059743082683886112497941299710069295165036525861972649866898597239999822793965072285702992843510883360379912545048909440721528772833901546025690990315812790933933552586883699982017920861346512869416545111131197718619787356283480733406424637380620489461926747182100911411297779891583792563838985229089609236431065234028945536595643098104662183810583299881693624989911158024983436165867075417723022443935500058054077457006793754726936518171965072514890222588157800682930951222037465900010692237640374338344884059921171362552515056794726555629236686600497763136953410117855866587131063186765480948252820312501255384823404553670166587402673507036068664197067972928495084626358900828958029699758963837512831143815835327432033819758708114189099467944818181649626587100559691807739959112778096339356357299093955925763791094837698650166195018206296747631777127241696297631333559228139411131164634910664971345742676303345423579336315324850384716163813481916767479361913639727876108495632535675156887707938132898619148022259757965826597625368868486482152068550006273916586895236561654482575034691876254039295466228207947982711891520283652891849234781031762909825017310005522302019284296288187275825836939705177287384272518830550618621294998227662491072413164937583367251823003954480524108054570260612821335444428232737719238687513627397654799184092894730281436011932547790230908918474185492639921783437057325795253151644827466042422002803453688769012110015246657396880919187753619059860613680263799692416573568782629095510511109173087805529728953950490407614474266958361966263670262972973649712421191260340829906760995008850224902366873405147847126475095139748072983226451400608302592244726076239500760304927130681459320655514945409847973026673383722269306599753002864631444119376286335581466251772166042322785477651383372783712899584483246566375526893066185357667140341484447625976046285309722135248276402988739940649122193763578279376695373530697210843468207614564040260168951310610497779116214408776809834307724927404675271637627745298303245941910764852115549781554351928211687369069269316804060100443745792394752199986968766082254544141346955860453298319908894003938740075268910785269794910070576927540646309139738229700225953520744172823868773487770421050226802529235035206909022801034320653717547433436227233018528657038423536266538014412641061612752135510268835650838516951525570337691958403018162599261501109533514362341402349798022740240338361621462288498655259394643154188037837025092635946817196133506110397421891232030549791106345497860701914278323170897021151193351865161951815682387517127367728048882252976227240623930451510144726634684056325389624705238644492071558675761628340061823217295443204575234504645016713016798252480486658668840502629366037908776905184762998242628082521563571186017950287422603315478248335607112262386645736796404817092309226024809714793026372634995253270867907096791775977110822171842759023064567375703159925373566281048413088656056295443560647345937388305334783089798760543449773066850444807106843140420002455280621606109145797957650540988437361872580468027180582292576936551098646965999354866262079159632622862916482484464911545034136588611983370396225618722820936932668818960045344034909257290387364218553245999908781430922220727928260272100959375947737347262389672812441963548741480420599350667819660430311599816291336236132459196257693523498440077230999296762552720564787113531616061629629078416804496473511962646550912185030472886293381647343490804048103321659075819541926191178591894213129476931063871692989230606989278662611355884991598634348582272387657277967893626808531835623557271116501165172132251604518649497241629992280488985722242424118150331961340087065086048217211451936415011239920864609072017240777504758307162635561754383878720918475425250073553922539497250553967719820473168175924322695635719413205694743564345182889498659717854779642929869204296085522056096131926154553578507602742648937002197451685272419223842661788370995385179091381068604234427588993485499508907811037355470436783726854435224148328531213965171983335273829085860445455852189941218889272709958344489713566321795669674589979373902731192091397537474351561248713469862330288480942077724585682693079951052087433956777494247983376827652324639953245276231023760128884660504741050293803078518047910246560822460880681950349875277583393282322988411230005237651636565619317957186552502983167701243500675229226213647483771038739204725924831661027176331734809898046665925296647357095703098750025376503302063347098115678775086738711333105296917277414488966242553795644588598714421445268479986045705152497577692615537283794546528497723327370752747281851554255587034400700827016015536443108362725651002338308550903344848722751372208721594769978732097429390492170371653248416128189250670189501595311106858064738111124879636070280680381058415672044231743816407994188436578901421133463621667347577478838920133608651987077443976753416955250116207949146661454468098553030564439394907494355196666303594777003892171449491403008097838750217860981013212833563764306514333467504302050731806554455306710318903420841603659799345727575768319078538360031517756299218951600928591249191058640645264165263398327913598560474651747500752286135843024090911228448462068543488216329246984872533574858673870677722514837785671083423357405269481254076643434836669193504797104530088982946249479071221669495040279755184980189493225231679202596137518902042128431964164199246929453498431013645395571727223635206154361359956683113825628936753316345111887826287757455383376923649037561531348305095864699427541605923529942180513969530386367471277421874208792149044854779901638450352437102687476560770051031373238872084872123424592254646274624525988100619933779483057636944269761888285236010996186115553019714651870413029451478731341430959978023591001789164304394233297074590639035242673878446241604357155487930516993305765913245498903690058304938047896224510715293518482932910745858988611503215787516924690970303744950871258038355965728774119238726217123912924803023434642142037925590649585588046152026089829160237997126967689479539130061379065977177933462130891007826801772432928768567796683984243108596543834508691756304199181064988788850809616320165284363654643361146658575427218406252910507556125421557388902656873420777363787289319782627826941765048631643930101903643490788491101685730711484615871957746995425614039695522494623738865140496726355216982265997408368218366103364947517828975855978575079928350889186481400593102987361409802397114588478473296564666543145463430366667327764058851973353425553678165875055064898008783328358538424040459930852945430590602441836007347874094056798916801883944812730077583298449322984298986812520789268044946670492903598313235976079693384535364207506927256566724227334298961417694981494023063848918214339558686578183092389892742527257135461961360343490679081058848110187416774077901526721664540770822846373510415677234937478853004699095431696410944292937642132296663487288189881280295464355353392522655389984256899350376498245398796262182496240688101722406349122521575715892939540025562660287875312990486728836152013514415163003944821371263550829318241552832732341315681998402608850432579969350098910512917839631187282111481708337522088578420445262548360583232228766408493192006302257455366647544544407009321850241631346090174941341246291954357207198812888330528638957990941284375327048581844931913020225944005352178967595742624845508345425533298191812036732960736435451513098222906031456596604493485326268834127091273430366166107822708632653921763616768189789401119566838476920667046873717144687998582114911587245771371692125762777968617304424900030263461093661307342991116855509279053413432725865924146501534943950762799213086245186831597161492390547498574928930843672841237127235996465877360802631002268382912078198072812723988812433707609820435077279033337784148034918948300376076179214215227243315261846276969143826831336865717970265285387912002090550509835263140618582527257081585202170049344416371915525679222237047134831402118033010390700525184400969558060870480890106179530345544822944864712607364997041443611875729246187151196274084037416441730253451541469756773473942248532767353359000217214021203379211958281738079813511533411941610653078428617149635087129845656515611276010887499732563306044115955900750212026834434424434680601604394172421303927791263933069701520115852206906100300690790650500407639584255859006802854775928584087143447010091344001138239203957490953655471027979721294864515507388681536874160070835842210678243471187324930869688465155338540190570573618032219112832838708645849075822181196815535816034386635469174726546964796915383482149595251375176032972328914319077600006712611969412766464378024315319209272333397898426765276615026101927610972392155073009931692983146787709593958513956984907660925875555156942525911333708571204639334218536822713112731041024857372358003988633150976738141568346135152595444890786382142459225875231722786652750661418608644787763260048930629122002971970264494224707551665629488775859244793030891504473606868527931324070783321865865207171258778111943216043888584082607206315401492924957463845022812400915225538434198034714460523603029449187420610883601516651230332554006830215340806325762503499080011135031911544678883181652432942086039612063599077537610989071666824989149446450647390885580939304231335628215668257997772972589379976799693075804571215592605720270754792269789895348414921456266626688826215509529289392046201857054288247533839169493620291349097582608731298903362899384436460994840415104553967100106084861510008072436536970686472977573510185745911022167053361812415896437491538395913906745759403867783637148095802054843998037617756126991713385408543900247777614218923619406168242498093800067250673823034607793114735041340546923706541960608810824337634469267525103650982607976105680916945742771343997385126164645281726530406258840906076338873019694542559711481305473955405759813385634110041993403733938550422141293872951531077946441422084023407155216732915049081866738685284107850277347053283997519920021869821823138630993497494040047245257155903500656875853642015455075100241455084705558444535090881304429443468670412962063404184951837285479043001980174779577835157016289126599251417005862002959688496137946181922007294753928853237090744542345172928605143447412505062812423017210711813680326140030228239151549269312487380648575661455269035465242552873193667194448446363450552175931982190770453889991550171419590024527750760543774323841022624287070974575381642186212396121748460877065916551281736878975696996049288871153289483313697089619042934909706447210402075532004032397664749440732400272078950754078642084901710085073406013006523885552468766736730203638088397671355541588377386525291921769630493027988485587652879704331581319669795998022797659354042254915990536210252568099984554339516307774902592951624734450821873132853437444367191965316354425391968623612994467788870163459582722811373389289263999319899598329931546805080994188017312035182734123542431258024562809633335661258475818027874085205024908063212663498013673252427958592240203471628515980866077711170180982347088798442566464162206210068427638495319807763064579201002805959416190546672559803162993090056365124618798782217822749892981313215753900782546742319593554981410459930569659329003983904082526115004780356092901750057775667811844731115927514912363560847569255652072191616286257769986609140041192375164149803797302555423206205441250925109799441837434613565402397099508627967488336359693103333963207217241176896411725923590069983095501905946617255939406989086411435952515737245686832620473213879606487057485796164276017624369116708525366246907043206739415181688943922414752117317236502637328973103078030881560841839064822148003785436351046801845830785653882862675701422052624198337847509391315595441833658505445887668431888782848474254974177430925928826198885495789032532881667573851159182621435061553135944137013623492652683783886798342911823994036433663576087336277072941518933130589161973356686490375300826977274991313782314812890041533002196805637620534200896976938054826783127601728176310710058173817437574494787626458598805159069660154840237924820083661336267488199330678072463900022317407835329910455390153017813565990013065051747402364970785240323139491116521789916668578462078561920633518625426163534935114788405658154011779501429390211680243674514125650003928880797375984533805674278668668351237744895905417367146707780556986076583537428425706762725047179370325269731880212885195861766278647087126658573947163591971008923848805298409259960553448827246847608076751771578064053576715165796833355726446446131260611241266642175524004888394508874281277995970548480154730312685262534087781937813836456529716828892746117056068408291449488141045504938850090951445050015813065172177823164082172814462399657865879421561332269331614223719374974357832708096036092809487431252570272034464669084151705556716521792261229027231837689576930868051050661031576041234902990970349328431597463918924467835436830855785414299252707891641640948317623059864566936677677409163276198886096412941602488029323029314447837987148361678470490173398761776597005466704357640620558033606323683339000353179290508875269890764783403719434216425341859247061857352020757800427874677651558007562239893244948703684932326534005419283034707663561858913629989727317797502431849864697833775345514802409447857454592312526204725645704359710622990401461487957954780766125369539379705404156997470220643372080166620558661568671253151270449347878226915820606683886524270774170632492525596739941826297298219239694348047201810546360962184146734333299992103788224899393599941725958066719855985527726141905343366631703104119217857192381313712238511410836488576154606236281672223876732970414453384178812477571893686754312217194139221974435453231423768111330118774088297016242374462238431162666147277154699099957726331085643794423145113303067909818398239661874329016356911562684633177122947219455306743149264930967727039256763435468406996199863035098698455464736834993331406416075395490807950791641417832782415787609549700446244182464873149997742294379158664352183435255458450846285762113672738624809345100187653536347481751355750268722220211253304330506164657537826088505469202409821653584960968534890009739172711306924538768917017102365743909737718731041187167807204948351307340760234334213228697996574025947831418713177111821910006363528110090924553675240294987700313085132199658253816347794966165783145480075111339520006485208072479452035903570836833101050544944481102745533113169646709022443381604963571445346774115488493065185400908819304473458410973651922488449034658051909285701952677550333465231586780165341712198859504904160396926282277955262468230749307955591101057031995088791216339544419170957281131621296690654283365364444469138554450487560048202112122802751148637381638518281580219263652385488919410121788122457876569152480074354011401407924243257445521868968180448924726998813291889985395504743163188135558032986795769802061508930514588908705850927630520490035931337815741984874714229386748430605340795473819943840932256024752552077392061530785867900256236023942017919276695374684091064903051435378968182533113043282214824605674363568216414081496335097253262020393135844727697291509420607559902202226732570888992745469097134844486279678497378145780809510050113540090375534934673755951141953776055174494600602155437880837102352126504365085987592484869086476706753805614092291182817311304938424371932181322371387208947929028605993206972142967342378153379287621540028174214852880482461705727430692205659293596572690094000960618512241726431058618841839212527503759748584832796511180646293332625141924796539083570531592657880100818488341656208563817052186830853819444930081633636048348259250848874806493857781280557284012559976532369689097450050359965935438376300011275460794061840393079194850145670704097320939988751613989576642712655529832171293318352589412996023216337277714895594972368017389494794520181642980917269060343487432540997421599895022789449677773334274073846206090696747256807600167665771194047551249474726308922762170852499157107353862829308415580609698403252234709571813249160648784467983650371769906157113052401162993636439717182116212140113741868822714384907248610004807899460850803291880877935886701056730277233211618693404601362559189501553531203166229987021136012246850538216356592009719421239407239004909764521802966846860247912320607607964900943740388391371220877414784035976819057832388767298021947487107969058564702399313868247470486898076956060147175896403730547866843322957885806536187838985845456827956254271645740492979794411645038117669658785997294679553013416353639273078293879906379610442507461726850820720369743956146367918763069087206174039945417197886564400979209690365537469143222931593913962985668230121235241954907597858897201763558260893385374094554230163730311662455542717275699899155308354626320884591794462929208589815790040136300287765271372248636912611499610340867609059297811262843645225874541886963079079573353055027837235579339786964642555816275349349170920385722233680705051334690553499208200447032503347018546043379982042317291115119267571576013678870734632048589453269834099529608399912883332317183454360248161664182724357250235985520187868187744954816418018339060753508703292152997020377492857688901804973416934133381323404005338021937824655687516792927519205224109968280894886456630165652707549480252975298858502165209775284849225298278210948825203490319059914150439231287791626242510141396998675357380130707625263190447687964989129512618184837985013458272874047948006868921467105544859032612337448226308719276703745677779974042333991163218869894502181495085541426274839813890684785962606605559689351056516728104572695204810655590868831471039600011667174840070489282628416939289316538878861580679183888362263413407320024569510268620167854304853289703757772778239854224250666884633040119919522688205393425569051119555565694077705121072631393033017779878038205556871143688374747827388871541486548436245715876346919845221095769051784131715109645986496531933842684707227691292639483085947137727655512327351886352696121848411716694727177394182620787047125941375016760423723329318281054925554110328397259949686306287309621209267368474490807851984885476324037219612034556227600527719642928143218063991795217129256349923395611591186023442325447219421293887717718490104010822945367224035464742594945041675066075621729659634702762274699455951248845263191639094624156102639191483233290076560636757515654725283126450910127231948260167992710773626340281974995585271730237494314356957114145980892260649970705058568761169962025158559448482547355827038883840785532430917550659470105536963399961749497180828495206021620856609958683261385501161480848320893714362492572405609002041958483854459691129643438378650064161897232596764474851814124513880563332902816841196268773441521123662033684125925547673842601492424370431199402115028165882192859294743286311029179517582247679302691916827318986846614057763340710911988109406512424136660673693232758718273392613821032718065832794460388199295474526715027883882097604549545443461919655866414973855772563617680812010510544576688486938019954361748367209041405287714246148399151333915617409585893869519095870805438767009385081578749122532733838468756736148038319461815000211632083190824396707602265212537096066101666148767841783991515938218760695974981238173994630833812439344009382728189106541694136356488444244021346040688637897037466095044063557903299449507248561462980380617847939240107948776187393452288425970798029646445653876065320655331638977928458149733529781513961637379906652492454753767589777269628379963260056674050823904957494618640195577214279102904056670479669906657108774094996802042801805403459315275504717649852107725298242146669727188766874672396883358632070367061921346982833548782231797110199742592709263781296481206532703842100035053306233946252710483213334958201420481012964617148815489087903823261146102094144814975328701876103764629719148187983333417921725354034864155110107940493050760446015596876986347009879868617504185593016762299860174373235475096419648941481685833711348652355708123927661499758662652188363468590864782359583437147722760074955766636921369992122327602512136232904704494216925458024395923046514767710867461131916931942052294584151332879218119396526037487016584600906490143913153579258960605607232154476938933569728942695020337376226618457909086348423449538603044447035670038974316481421570481269938301698349353336358307332477395346211627275147818721479220736399089448980323647064848386750249810016421930196542211171696215039924122149641755353475562737112227622665813032093956525866227699967089771393433312826193414444629613046731521320486985436252263912100443324786960346182727658389245368871446049176895218247295686104272103374795538875498762440570273416575403064218381185983823906602484462073155344487918815360900870122110056149411541533137599827561166863811660292432258971875041270035253775257061263455320539148060250789893401098066502301056410838390536774733311777437944088843536980566700682097404314669572394881899631052345674184779958647244467743457055358190546571337574489346747769902204564128209442312636338944952280231950562621316914998585804216355292388946458608261068528573937502986488963982817558900868802672112505177902664021824678910781153487230495826592666959638915861148552979132039730949663065403816072380766865700179406793082580856100204502467923227866038434904281733724416745582556707207518072595734732910850888759783520154500564665708710579882787768642511384258558585126257625372610572598047789302030042449495318610921347911449121379022825776900053723627847454154111399449852990848720945365577620725256245404732234467036560259182073384785296112897004245774875155556460177800519784313769102505183262895296477378675946234175611194924222093170670152863537112461894343802045395317893304139288932335004444424604051763829750452469062264941689215409490945031965115848052192020278387976579202300831599131542746504617758934658546852817208660227090267492127683929129546480618965812260561412253607903359118559716565428697241799339107775743613183118575026209933081338027773135986248777971666789754420078278350739758490774527623111876384398094843548488598484172297092294416363959466273244362948838635638666033819539968405773082483862159181482298099394620707910097730757088608450953083180086108605493309212572273266788461291505877539755668265347482117813331733646379574743527159421896872590275058067411546901931896682119136266122515137329765985217178313655378288200101959431393715607601372246889180117904020109908284819171199453237374935319451793356620120105524255984147715785490613533140293500465752160960338053927895400765061671359841742886095235269654044076789833658442909114580171894709612129143702662772463754663732153198942387792991528727461103591264222605643623532500925351283532586418013266229377190705308477975925611945457622619044327815486669658729852278780128868877189798600945611483506833415385334521701113046285558086971010859697060670647875163497720412619770429368680368459576002283571858826749803563461666230649086950605153192574141399178169783688984372217448860571145288780625157098821112883779443046791275324710706328529605412216290408419656323534195529110721968605465862389307333671085457219972152628982344844579858338152516383581293164288452893911381959182340878796368158677284666683738914428639925768532926171616331949062157619978874929069784499509396862045783711315881132986281987026512450794736105860592726536256177336028570620735532354707355378579740039826289899564418984433261452150315558330078671674518644702654288021409613230322933633441613618188431497605786789639583287896523009115050650495542194314037757225152450315010049153516836714642872066400668498940999498495860724373307406534943498461677118137289418746493120010425715948057905452216138505259010132094879130009055553285332805154714837729931972512526209783621890422841235334795205374946016022340733258485784245735960723665333218332747663678007503606672536528704702953246345047182747154683526970793818746532592795054241688418563877128582158114808837312794554962141438933537556794151267401728497782667428069499399590668673952644838579367591952994670138931320821277381401973352054680888608817846971928429137434753810575176494625747870002532542124401765877744003703351049239829329397940664434967818707759244749034086335729013836715494561820115039311925556849970737412206709503048809746257610817608509373002061401891744449617839605824773074479372482729236567923522823183097646546892393301344501096900580272408905375142071812211959410228705540888604873161877576382926389364930315697481393820491752095916672795816251465662706841858697347164178468005864566475185127703514532097346932393396077548096386889346911480141762532384714845034289040676031373083837908764043931461045015093316889086813000817425812187756626690681388229827910551062903154322520012367719006685238855859371127371299398200748879096229443936778938655673053030776338195628626597305519966854243288055075769550600127173286452597935209930642771069301928502526686847113192878053046726009762040234014686833438829415061216030247809717942935927027187299785044225715003842677608429346266991756499226210748352351223221315382553099007959191135858911787048820799932884180487285928645835978080790990517657041520884652506624302675650278532164098635236851496789007205254003875604409926302126647670784151655476830759036007923747244637940504133499211366486767390652993822981377308750553868189022130319444326787476338360534698592337749592203991305900770288274341160418446812043228269030317146457217029242989626538678020828805582446265659639614267677101474473500739284997555887135291241851770852800737464860107283778591377832387750644224081682077279369834219483815750462975374125507070940613345257245545480198680264390450303301068571358742568187238710475465723661389901768703291912550792815018631052973174344125421950711123516572593029088981080693224926691520526488463645691528956598381137571980892248362864706222948848849830531175250819442300088309508312790882923732458872671926828923356403169482578651444139311252801301856033663766189530218960970488522216992254085875940668942473516474169385018036717243030179290978143119989920117190073780946515934917267028106039036129484452731877023338411988769557785402555813969238398386992686666261997621044646098127998093562062853031373610249346731954964949071029093157289057030788773231092227783414426924189447362746070892802643665096799712898271947146921508220292305513508319580782654327805130035446168557439882395652813055976485856292692499987600596881094845287519821308852681941097412160160365845444849579294580021418084174770501053695728914625655933654236910911677406309383781154196280916274170884094889316249525388772226751178185028524445932416718742682808968204353089350737832594317795067622480759676723339905383039459645816909400861427855820747974454531506612901727890865916719139216403248653685148591710066780884055021903163662855037115094371040510392881037903532687183957433986408191021676609651118800734151568717573697285588073159285594559545245093173936946317941665269873404265746946584300827701900830485392962536040398384806987798403108043504266850100014434620454926356742471695650395464721357952544005191147682767938102204863719479418160876084082028462475455458821109503638119898464305041456545708121467955566727959843735776974256568844797505606207389650440542233763653860387929185049087750060986767195198036160252481267743404088730736172970950205408014136181371435366756821812492664351574757562851402127064703009653173211173867482772432923162058679520144365354751212966023884753318664545066995171101750250065206080721269174864975562609131647847943499751591942645142229409691855618273685582266820883416893078501796811284733763704703556234157592594862932509182616690560325205374914924532416784565756476277478258895805930563152266431612723364817906788088534647732163462978593285516952500111641419599309003496111256692458353339383645525619517746786945124971040483865269668778237514337514100914011537193550618313632345205217984064235277349288237674200856143244903418498709938641267454920151692110768885866290257360964072665529600775011136819511783750121998515922942208508072551397402838762185177809535454942365407856514357295989273647910920231453860265465399770059513879403023014853368521576911460125808630879743132114725018046328111384543020276023142483790023322540493202615976102356912749152668987110331111774583080232878254666066509581159768779574186577524574929217029104038144487175947881836420193807593158727153173278580610636264227278000127555649443398230723057381514018716614685259168906632727750160415780390679310620499225624251147618274955750802460450747480984480754885946740338734006045674082147014923309269757361157701217725823995420924004928828392823614857280375269325759757161750427700559732061881358931467369839301333371100242933079299437205140681229204568906367461378297041297868288045411626015107605380333318017724271455350695266899824925346171203543468107877282455265761740305092203645666566626740936802219842845783571916568457144376774116126882348526312013040410365658023587408855402061545898201095994868777919521636274270835593342563856160741857075442382517912031154324731218403035281415688062603718524203251033644400883225786028991751277261684044826426831786844900663883927004168176044623334900185615345752305774392447917659500929702828310415531089517543071302073761252961210365199940220085918038362841628708257412494947318015888889422356965165465843986073997138148283601983907437365763176117301093420776751017870508736591063744758853487907162342113095551584278390515476108807985005614769314677116763560012947560880795236615686648270026593537613742137340027117644790943216016907631481576492637405989391846116077145461257149516475682427773805299700969987971575722579782769906314378079592779997022108951996862471829493956723391948439218434257972218730607491339416376684101770690747194536723152774750134936616073060196882653871106917819716458781315956652371198466049994277625332475419507750246957120157001685523299131533863385026594665045368094831689062933897831431452456258850119456376666466033305618538480177161726435077406777285338243863740255937644540549582083301370709947148739863105597445699738973578133560750548642518246294601998651791721759460124420011047015212446155299959278968649954954835935859772401826738852454424608930598255079976001285046090786415579165477412873257023475658542706903311425284095896717170132574734073845532232683350525359619555647292987718104972049223633504648634758844750169057342858119234994946429272290168899137638066498864847380885474686389924182270484564279641700183780061017699935490325114844313120007976405621760620103165037356941777817385822667199672830267227070063834509166951385757010960959146532755955325156062055251629037532197939213509839934137235854065345059591379282926403342113346004546322669166800208582412855082414443671794003208670203862021176750765227330250538637753279072004955816954427281947458981116912736081049258043877837578072023417628129059820440435882688958218825346713530784450972395068998137158996317087497613979241579746282977398069273606853515803916480111674097141517833548494968921800240448069128524939600846896370490791832526140293933423491355273803136067135764723158181524755832776983634051036170095459666917198210296584203567950280142472619528324059169300117386704915193452507628391638388442373311178611824691946639382782224911785257032355862930615580325029658086146047565254912320840383888151977487700246152398374775856103240603004739245654754413719350910288939404455548316825437606231668964792194732293920466774887202504266061911269911681834590447202481507850525546469201032211131409982801700933605989561831099610176875765657502432076574660716733239886918048132101295032347805741531043239069683114159487871204307345100351555238157379206995502750782905013860887081545770108099690867268115590405768835713705630977736114411667243071455275488760194515751860006669845848904186572669421142272935900957213759400806828088454240049684062831972379131881512075214925169795135203506642080231224119860395376311925394213048568517778690608856922527501636339723139696343935408119983187406061243004370347166393872671700223694023278703949777860242686675611033680248827638000216369877889789443252193625103260212514559272491148871623176955228127929744415069701322920485255299273029562588738665990767344187538296114327227400523306209807476243477404615082376299664890380008357575455822776976263991282418254910256742638639342336745084918651277751466307004164001900980397986561932380010404377114694200809885471961540350008304359925087175628957093069676822567170100194209783141346925677678969076507520660682050725565624981900644595483806158325518694794987938451923581948308510025491470005729741511877377997918026621564324358927267473702276178500231329149451501960765204419179729497582707299746231853103200004829265116900411129740008967599494915343892087310697336730943035422441545919354109890585505675117144665559351441706773805749483117239690820121933191158736455662061156311454902386164635163503306847704871827392710544232304844404603564523528312473101841464563112101238778749479314281841319114796658624008617453339904471809410759874311339796133333276854229869671474229867962555409900220163611259414402536763383091017371613598923398689429380629999389884412667113909382425250978683955632177068514005964369643829209263030724480799275684859279335625728772982522590752834232330962872796412307774921935560009500086246843864997418055703608500788445317283180254398946389717976384238220154662277828218911065002174685454437414733324494300412950794472079256635379088182801046435527853992649011020151758300218689131355854646265726787889848398677285200163971933030625423749360108965291490975928160769161464542183043508088789587294039872428425735864980827828952535666957403405642769778124277650225093435736426342653672535516620491354130106854136370094705646089544373018250868137689956421440537852195449892703619942140349269711520556243330601367378468589848857330090896330311395726547813161980050322523168402666166143967740620070463616257716984130683530820328425586534873633479130119853099251964525422517658386757782311145537049602355522010261282609021144589815119827376405389490463010308071410699109915132248252477139423310134380013180398261322755616762504751794419649532140930020264878559728015656758783929205159363227872434166710430646620218934889856210067960498302838938637836687056777512369153683337082595335496974548749641925349030993894635953686987515855599756099956367278264625531908119388695333074357483004976788665321832423791419286038853666264583102649431344958726393293937549329841816049528992490352456571745422534289835302226750800904878682616160846470872941126949231963940429038397568910127706658844771836591930290110295849100520687005251287257134277334497170378370598655308554294347321509382051659830633091146597853393592319704627380391753790855249193646491122460673645483793918361100390264900722204543824893994320309228315215881896327850662522933740438310228543057585793739407271333402974649760462233668579788063389891176201433072021749041285989185084878144933847261816633382954354848482256552308778074845408535187088116539635904430847379553932586015496304286950856585233547030984957160093944466690506084455852535159791543586640171838724641171121799217834152618368377502202463024169965882414806469222129914456627220892493891185571115719516612232383272343146022985743666096789742494962013790104022799792666751997086593983762934840028049139737122613796372746028086131241310125426766346620677472915044098249016302376329905835318972264019955427345523165403592882155369442448989658459286243713514339351033224941377446634766256016645327497018125310558667738832984307921557194451111437375882952292477599154317050469674127172035172851816152072725401260850209151396548106769344627570700137192099898303832129124168018540884317545846168986368499984141181366139767129397765617648009774779084956244790681791503814061847758605442514610538031548419242193923107269144146947028246607513195495371130759957037913621247054813784911948683120011139133909858090924426983591830691382245481535509586492836998256541635251288409936473698523232592388023623794653163699083972020836115718566029386658040558247662355796128532550462825565652788450223587134963973109108137848627770618961957141263741976731903426553864707245765630410286679223746012871076476091484089986213445253961999749174080130124983916416552732710868704042869067550604781112606345331093135069082342968801589902973764843988339142979184256932611829146306505524357653241070447980072225069560091952447096950227713053886158311470689445329310956902399822297352482210788515163000782817829001077286085732433531690569491262367709765581939545371025063043134467214513017214191841925144901009878408976251041523327020401656863408519843027813634831551453443002148716250409594493439117160528326202632602587784413864142702853570147500981068391200122031246613003249641455071911479635187205176786168136575993410849390547691246390353611728960458073810724675570065382538368885747604709241654191191500595715231028297644121699091551058520371417652563066431113752081521079738340336812279784654527591701432569290731439192137720283030273402458189145057676209993814115676845220592317945902070888489525061155187580713723374261928750702178199288750220076636845356543789761884112125140535761090492214142196248628743868485115513021315734056913126590261570874283276028199186172576855083865142316916224361346798728978242415816040640076238131330228760082099558130795049898090530277719029860943926795678536855106275432087898358701810621818856501373747377920590008472284772308992035804137224992284341891534324380191362674351633813785576201443587768062377727363478863537291669587098867854178349511428342377464256245282507930878446580214909361423728909645260449092581862557033547136894405994759727846635296817193497608512088335000059958266368097439673698512997683761243017295067946401973478842814628979420333035949251319994788671424663390954135408748737842907193890780294712162940332304627604424324236226148125074100696103572956793086129493102668338132900131882249673108071657324478193097372470939439853357610606573345397871873963548018764046307407871693190168247407249192944023886879132308336199346894251677360725200916024273712143782100282242610978765097503584978521986233660051706523582698106232010411753562909907257860465136265396508165361642733657349434150728541687315575828493902826723857281721123874663130985329444583701236902112190763700002699276656590617522895444783045897175583509025550670278410326883293909557907877524848290574414592843770874369408822626288291244896691580461023906143902960349774888924270248847702294395209395860820189678850111076443185152764352318870047924102439719670519635597856664492697739020670920941514033111303231581959350678602092202990609426519241522079455717057177316853749686983877155776165166480901550280994883407545493292448287979806599317461796359695381413509525417052571073489468846507668569401939414535831702898165615327334594321149143260553994126736880245635034350827976618785368738125048338200413110994894124322576817287733613408962388723421932357743360891415746699381664767890312417667786708214360096722517735078409598496741402851495011488890317927693007433662278906701654569826004950530953131619996636089337681633416362532781658699842635300551417622366187783622327916519928153793556645223080215572671759762435300087514080446164941618425071870456655613142544332680030642082486879659737696121317583422280607128283690276785594111908157230659044351341538379260569234396383639713689710348507890825794376596380960097742409521456690372531066104040203091109923829082347320375270661402889343493396458149658690967072428284156119144703956647905838297344035319766452209073200604550182142907323756379814343830531726535251132456460692027866783637855230463451886537512006114459215033612482619383147290595977158743842028870848703349637715107696613981303957431332975703092408287480970946092019444931744917240836041182426679260533867428880027404422464326675420804228290795394820158394550689850981438380278850573143341649242043448105388578222199637419992685532385467130046184946615406838405655368384333047940348826740048009764782140149720064679796899462536028411801399132329871594647495799655929422240826594944769806453505852267348758779804183185941532191594209159515327646611343276616237705138040554421874000690500146480392576973014817695007939816659056473561097881511477519052375879927834635253234129118142612734830240584826735200045254682029865078565185982534149116714404198141679376017358655761308307437677065691986358561345040947963212978476452675424808494167274482972159936496968916308948888258080100823318091134035705590770545216772084359927918072958897995579226995355143533326908446609000663976043428427826901672569470515813994018483301700976459730768878987498583689742487243449541502710469512698731198809705832942213499351981330136710043502158925870014234676121517566829934963657568125308724161444607719766865130792717695166285957726510539115978025942339468709057399674871538562703504261172661145835973853720989177313725473255624633702147904040142035479578711491111786632340383406255364759468719043989520378279239107479059826198815793585284986186634745478515956541028495916192301767484235552962619384521603526642969984055174944801214424613670255923357672606084574297139057628374564563212797010915118042931063256175821290797989347262272998634176168033398905985852124901700450548024104062828395572046514564638202864488657031942736093926791094374227780709331836647330678520627407392029999332046371314981644232562113853501995708559661461276452962175248452930440596491253659266466449369726895824939476144937568939507320508338580275554729223099470455015538625914569643588471797163575769414342190474689551707946660272244518480284690379363882991642608005558036398115079851768736475777438755681368174020403514769159006336008469790313308281587606701030896055931219207645334829956928418334565266731271403228915158166320537743484006608554191567370916052017083158716428251018473328152872561185866094584314016855413898865485296936717481446537109012424268114177448735345736901915596300349895012189731223900263026454386141895675092409374614996047727537954013328398276547100534226702802370276375728141187500666910003315421832969986891556167727594063083007075514980458497805389720065688783482444813927584290915905664318846680494794516695920913765581091657500464498661957143749428575038758435733355364721246783681687578186086582440509273084938615443408818078136973282091279108215832307226825280609676468861010306329421962204873172528856436365035758590163416096320941122639980292268566673913526715109298125502314603030671724455231133181437130948765685997382060503083654887750244969392498865813944391546430147000433691651112101650701069372832056768241582430655512012917546853146623353685434612762078448438975860983337121421275006669625281508082262329267736812601254520456851384353301922634073380849501285654021757045504246756732782883869129478964220534211734187823718420205739615926850909573254689754339679142466974102517048255763965078601131021228410666746039485131386253587278344909921164182058926089502047110372565293980544488430105310799795804756480995294911391546570393477709141003076155797947961177614202597820890566965635780924380509023519013924190344855203029531744917892216281224378559215857738631593423132425602075908509528297385366943082673622756117687931750917839321570793916528440633797854394900484922308503382186310984536682084567468569031078987915098266732110638993422970821971806587054819706705599342457843174407970899149162590718890360704410637001987656117548661535038137887251355711841180041500144203061048834359342400872563373684265694442837143247756404927474588497159917840624323744231241036207737572063089377366959270352991763238480476491080404420500462415489763452479612299403518304486942003863484940173165054872687637062266395880366724954834540510383646114083395620611139158442350968763858200853000207358410286940631960350195942199233630531855979264392785070243325591894061936180565616324764814643305138936445214740073380798619443393422683397732253601973518659132571244256117837064819880857989675245476498848354855633464798700196998451307627643541901714052737894700950989638556746385723761100994672036021883255337919458483384372198508095468105052443024197767233564680566759027475151003304042869661704280392015988661995472202121706757244630411187551288131414029519629680886088095296385768701651311765829559027516683357960867415879315093339974349203485122647193811152969218557405992837601298649555525192795324248104803183148418136245966740852199774278536473552577357869360018820696573680582481927952776171344630156737022153318764894585493536647500218366893545935430561391289322980127469095909397293240088785375939269494433825195904170856698787713752074807657467065931195494230920838385478100525884036707547517692669300007097702735009605828321019921688798584601154054939923285265563496055705457040020489614758538501997649078695948975412312988544909363681734409770545928789897222662477079942582794870966597155499077661882668821034846234284115211000256090931302523516862801756756814920721998710706192831925329521971452065416861568973924518009462383788873247371155476332048135585325903188320676686092699263859059408691913415409878701845641803200486542013903177666188943935969171243073307173111019816674507756660810310238010139436857503177064787171356057232949416572810900697131463877219969140582179717607131799153918152212386813745595206988496133253567731084987546412120264286182555659430266366851134648355984303428627061710064545279207284621328306509492158977232449275066423576337774536814175090818818057970831615133484241340135706759907201178225862573126168274775294530798185424964010563007630720679653195281231281293057049983728129527916789200080157486145162219577956516017393265282312541010331866540150272374296357706860300033367768446525344069799693780087939194148793527903124985629105660405198249679548060435808613419603169128189396666774719890350903706277223744229775017253411856956981237169945773063183375209306375375017813148662530046100317616219578600398932664197200807423577599735544855640119326653636219465313300582674094314833840480497699969288487929845534492680875739910381103015154499916263179899228562726671304055547744054506478868648797595740193612459371093805374056686706324102738605062294100575000739898289769769991548606747874696760840776371875369354979497733395248329123358155400704229134442818127994092352295945482433566052217218050828455116699288422479603123344313669615266612394486279423228895914306096217644756673825166424358868833908715780318428149255128291233021792362280084410154583825532958733332051276828645280036578295495414036586281080620296736492579463120142049692098329855388806876729720971513894221501192608591021247417345345972015338965385312086817446575021593930143143967851083055789706357784313358640346942040305239817710198190763133787942955078835752896014388363565820132626755425508691832831275354766495618433694475842608981105168946521490172333160426930635763897994238028505688618958053266984077903611925269292100462921168779339662620357719155030914378289028490674977949078185074418740706517603626082919044243981432596878137939518607385679895649258276075193542231556845537490438789973649237624024967101610076750554834529665256750432700145490880994176446244618385382121966192151687840021531216545338180022719042337654119370045945099478251531008109067568290726294684302840177708967254451153504427648106054441703158807708287263516256933602090118440317765253878502604292280899084479115515807390869223044343337663916409437693244504893785926347006315258717519316584168496835562616531680549114174026118640580592788616585136406256679242961889274734516090354546734410633508181457043578335396808327660131763435257744854580234387847126098654328148966729710644001409077249863288053659787082867872757054006669786694154916056377063029024070834220069397937700631821006742523920093597305658837648648935297664024449589050872594802183738254410586452218798650668620686076647231740797178690082761430695010021631928379418056756753014672317567072667750500980817472779554672897138767710710800384879395479367250066637082714419891003709946280825809134880229599676165497382639682957431213631495386756755598731479896191611848812604933158339042094028229882087942765440788292023148594032594794857683973661895820439995497533273789794104585560312536899985095722269192816286793164279585493683295935158492476503980684090659297755795374571725020919235993965545979535105544026877129291007797026341126784171292429279933603163712887334924203432523442929039398437233751721710490770196968100611266136384319396066940138467911040320507564894699551724237994748588346143771627583337817002786832486548105004435036361667297831458472296415304132251953921283248912093449180746662983619125574015551265965657748938622098883017553750559068287754149591232124953969103432243950719375221693823477156974502130229111167563477123171350430682918289380094787158010533992325724619288375799271735719499287335730749272657193668938385339011238503392724544864190234710192348945477874354769306296702008984645106210527214424515349359634341337136145508361139363327823263728118769290199959107398495375709986469664117964258865625288501190370634029126423406537912698770968458048755612004780576531762626377750120314643982675787067156199389036238501827103038984744660525310435242059942562492524288388430414896111767056600498607931203892965781240598335242822226090503627290256829177996234370929860037672963043284829071231456471847355295082823428976484296816619352882133537036224027647338085812321931301529426825862118384167842454405960960024683466150973378167862601500624497639280465200251093617832071509760564552313503532525176367536172414855073223799523822738766081459859986533411790562369270323148781296587052925422174090824603034994877391665339699462365885845693444740516128694356836243195115901726905061720001054408305581832718368687342779492881904878126548703066899059800767780217687641837160599632535566081292527742383537152601240562377384158859195720906537895945850969594892056406803699266150769944472035087770628428694011212485436182768929235755656821236033462336226888977371261181955326260075338935907446685230426347947709805855400772135127297949977541750289897695513399415898823665226359881649495406872335463737675275203292989607351627030139851738268837201325761420310483647471125827738909330600676021887852137800018894490184699722522794730284064423948295497082274609413789173167894660557037993182527371769736617071831586571506048763586932327320097993678993148274116329809707687968301020405258648166064256670338924984897705388169782103764282627429575136238228795861202330499692449912367750262054895386100058261396001467802125939840262680537535838294154589427066073913865880881893693298322848526034631633103626120040027139350806682885709497292705973582868793128511080348344619291672248288140694864682989934381610971725225891805285748846977036955578698682190115341052236318462620344475708847863593084802675582784716228446232269607091454553821351877503651718840936546425435568981712907159158021883384504800498688732134592735827927975189417993863853059916933707025849723617364452137949973741158698962831938392253063316888287896944034568461626225556026220683915749785496661223295517302223731531544461271064635929378008296484564967193889942209250211319751677448040151954467131680227370569498519054039272948086349612772478326600097714710518595154145846357054733257919994024345737654856701759291007904133456819452673993517253439332585636464174643478043206984869962939551874720594346363884107096646797285691195769464577941724874803552977743701191178772524541844071913469508055537850587514870676604755269067316807940795619090128847853035295900051197990189755593117631099276972001605834411387558658066780413989648119474485225116898011706102853939596659346920786670811612292992919947161278930408492207205358595907403902478022150741014629449324150523293734623309310505220142039095273233972936475369600473323630938852532233519862129423102903494796697600591444722678943763007361132465505622570035079758404856487216586323180199518572862661818295947196186243714742837834401581635575566790642331358799436085005660763590032499615623395360694315820760278487597203775789967193828871197551946421833232599646549811280393768832698057160339844644188337372462506808959994697929351686196959302736568823274255782033084857564709445268995064605323977804069444211738495794062225891567827993988833303505813882271280098614424954052031598230928928710088150335072281578087339339965863345520360134407265130719515597560275266142032282470225411464802672129829730942641262569503242902760663126557718825988399743169367848254766760956058231869593843672921703916937832476473028818638889691932054465726642712552979437916383656097131447131853313738246216122556814701237488104044922533097038139489461331230082061794144947937018751278233427476238627707264693578244778332559912635086861769759084187109519048464433589068994970803364814179906369172456816195511065582339373316195252473394741071929020948541047988307567874323109669102204379292937715287420597767924630860775281660478744843053203573778557641518773976058409082420247443766851565136283450374443251743142849909392543000370729581417441169272886362029484645484662692302674588433593682619371366412897087767299505177462580610388946922057123450222309153254241515473480556990145512681933211570981717945156218425121372548750610519180875982418320067278402612898212498677663009494667026859932274685435723727079671212977232946514886144237215914666937559733527529223859241631838783190115049313741713057911391448205299285834381883072862611966901916740074784348020482782962915670717764621149888387603724413420028930356957381899159266916979862804891755720614845280232165032677644882117161767173763954186351212933346187026591153211137962849664195592348682456041905053638735516337083227627909511220764605720348332625058935492941985319310941168684685558385966861822781072832862328853349754393601466942302448518729382507836363759059571561969345568308376847270335637877611804996435084003689844956797621749761765574149250082072741998344566564157347820381823322177923781753024263331766621060253548585580709808936181253810796862579475373195256174921249923388727779153839080707628391728397499596739229603529960324733756432680985245741992080736580923759315336069524373225765700758906570086358249306955637706015762318736142498127479481549488874942634517409638563574186196290579287158140030394198159718920781376784792748618942873282024323929599836680525920658613033807971063860150475680196549220780509646417547773584208081550604155832898285656569766559992904671807707272507278083146506643078407801217479839584139272345684624882719572820977822615042029915983249956266816229061216518045033635965620548330363081282232809985175905698019060694628735232067622525995298793805878451995600338186520112002736982834238381886984463211469801665189248169095888589046861504951529349693657817596559164124246876488266406051983395070942942728055226030856606162990200847944550192793052740386876938282081754525285490496818331858976947749566230988731054277795346367917116635881028928462549034736000086198243645235471335196104640461617736230950602509802453384337986569060229470553498586400403321720674871807613797994227185910845174383847918026858022162812803507313683775000948007369417692350775528063391264789350254547312394413111414263229427388993582640203532823750415369763035843153486019878670151922242877326457951891268382060770904095686324366020019847636383323488600207477766158634003889396469984433457025487067365426868663248677271708728264989452124923167445667575602694373570272755011633485127291422990646725955919024368465411893773783688572517805507802498486015861667094099863586333429284748837037145967516440518073388190500854545961682230585146623875638262876582319911636564863400768677233515822341222560502909952110731065478985376731399495258158565601091186755565560578367717977370633641598342289656902142291743434194112854513825313312553161519767789828329635676946686953799406281536074909791192646572148597391642602032766755930386766512970854532797021465325058227787994533001531734038874425019508536797968489218152135052665085315751417386720750498787529481186887283158347021183167533839724600756081415720892249179584945152386695903983198268538082752888402130876586538682678396012939712687968241238243054807781076207247249344947597393967327941074256554693777252170598046144795192907281953616609448183353716396070349450824665033661315836924135603272244412233127400874621680539980316183153296860584341987105147968602077045379547894498821253086620130491528437467032668629218979292001116315060584501565301250886714713464414317556344119586793001640353910902005648101483369235069805949157846140100248070660306869569584223634456859850044841468727026317624833782719587656679040906542498869050484901694805708324158318379436763863403318588272015356698335635193046287512938609102169019294370001941327872533296706805764094834724512486707688556905282099557802464238351778834832219936911985585174092913788406029015709576738649447627095426014266558252534125161393163075717096544470558025435431230654938535268775129819453936828921738586955666313829992846839091939068711466998422234482532423045177358096552744798104082376048303966259064179494401149766203552264224764935698609301904738286389912523816061639899426353723730825345134567139495253003042561054590303036850846680363105387140934142840190494269716448785958052528339050714019816954986495440049149113066749159585754559629575099916894549743385069250666631920661090163225450680737337378679754148257308402530798327732772616516511055954180751883424980661435492647531049404240362391477784838452310040039986231259083654446329327269237153605369242107808803058781752030516041586017536586953544446330276105279618306931646613115178802682418713216192565515828856328177863078585617535877874068025316974450280056362028907270479852328598569695595591882143018260108961302849508474973454025230554763727845972565490063575875783024138165664469710887114105955733703617621102554845853470356267392525986837221572803455520712407763136517098575364941258766936728147680392873487726903591930238805152371684025073727387653157466716886581396238897280696052139739068205981513561812157626893841655750007257591580069583662680594308975890042416436170797077563519601100357499284002114756774356989670732495931575881631985258583716626364073913910168461792647702365629461369529734649344610935681215424457160964083583768573309842513874993022393761626844470000796825514135103020388316888737242931748184727542112716489395056070351067570715398543711549804592627162273980571748705255140103523741607796280850354112781176867096151046243799439339116034376087589508881194045001518106319807268742352699542016744812257738242791570716096417663586547288489532530847194065001861694166583783691950563056939344656232794621993511330647232307586080855982139599186572398278196743741225188790612963853072283407351212485837074181232694903564130602317782261437986634650552189341465800905888371425847629509221989438247384188010958644496091142413638403586753541310593136774669679833530685807982669508245385844853672716843318262023300734644262019875039260816793257510873777635304146818033120633373178586401603309494120927914263982733964580254860782307070795816331021511946575931993893078127234613979620094729219395560086755571721209073903183783849686262756485944413042255686456549873996970185322568949102816269029747955365457282653151440306197425819940526764028061981905804401432945974686923436861044765125558271912518056923222672040488789447038803468930446850973739447907274955806309969849832040923336511269113214796890315832977872093295740430515167435954836220732148327455165595198301733771928459814045070849923999705209976347939589433110300590064519696881111143528727698836527906547879896730002598197484285336325741053950812815359042814055392111173516165492138952230876251979363159895686383276572886528016840568676453938585706907289724428948972722843811245843634714198011813645020364001027779081856859919887183062034601684618945714244859662746180470796490617759192193432732365816837546101706406362459998171931371753976567210725225916231263554914490946184119143234992542464980173230612919739478536581188041344258315655769539163008744028794301112323795234144099994889499045275438571153787978765845971076516021258081181943651529276541469506413634253873363034104216725994511159356043899286826218279686378371183212263883859073441416167848450325716001598674183185253753369668465340736574886058038757216975390677721166905905317229951300703616020763512375939431614270162507091749403846080473588913717848968952428417189320767966762161851884221017655921169730041481908288157295881232520293125459594925244180011431334536775860221822140024878791130462688250140805461255201289248268035190058651941728476329332706319036842231053785006104488411153732682723504558073023163350573889300490374919626538629420944747034263403937726214641786734278153480708217760421096014257035967533514924990631804399807522332787434532274407055479141686379627353468098039436996626824289772636546488527666914575676335793609529950155981126016902005936672332726844620564056204333493867152978822606768552777112934357880950483160203290897998435561773572310187728323010528659041695746282096548753351527573823269750936467093767083188195679243421112516134777560323346259576519762747563576320400509002747201288131793620473855710748937417759851042510192840390893219666360472838376382724505562964925986376102045678178804439128492202395906175293432306371749633854425987889948439969742794869526548372426149544899232639499604559783609426893444468766896434932734584861330436423100021003987184190159525049804031574126792276451437099507831132891656291015554328340778862681315640786024721948568731782929613145168533226808477534820597593748225648207554990637984214638603170820567586210367327101261036840146344868958762861179160545151574743358423423520713242369613949356694189468076964341102294594686923634486922373125532223219097111618525193701590945779345541718950975763858796841027464491919355050367069065909563744596790229614515369002485784905839569047498140855740240095791670620169245953912122780859690307661605691097424619709500866156203836250502480681551834481856166993811879928338880766777980070880123289184882726005738864186181103149117855958502804739066534053773151761318786727178988294576637455434190770778917264120367148023699607582868881316487636433177294521859884215816549889315719879201352093122878728223264234795119696668369643776814557691943758942169590145564376886709216732371737816142429881736980954500322223711122910985734158080221770290205725554508323634106528478355352326548442880324388559648299540208625660446107173658630148466656782875437916440557965220424966867206912453729270887088205246608648524337717439247825518508667711719785560072967620975658935733524087443591715046538353485697425280409414198031060072445627424907019465474157147426656859382350988205336852753188025408222435363298478006623891343073401676117712818339296027674304544760029559466327335260261518549444576589622966349130830856386927809235109607662847860007072065986175773945468557020057310252636210877314838801785052054526483603098020074759482024691970063704597992458155231407606292288097172194989403141752912951106489319954841961787611760001339611601056224084019797596881095142278392546492443177592495095546008203076557680272784681275698100819701964324382498457009975506510275386206173630576698884337112290165507710579274516425968757522955233871371318486427815505563477305555967246258358556672732968636098646803139323821385892981792677843618784394042411116937539433760452450044473812158402589048815154788538850318217046371747903592279142891255033952837310295352051183846499869779924685609776486743470520430026865436571512402525104925376737574173658386267115130085365171484721011823755186226879716855171401366875884136536342959845137089797343612050518134637806776690495269989668658556076327041967726021724301342238266265413159747514525328910640517958781597098722327843315127905074148513047813654980975965322446018120920169581087878448579636407288404656899374250690572304758467217123603475281395622473886556227961351116583671564021917803690051136422621768631830660992730979123965579675136802008757715766885353070675250972981434523835463015643127961448501664032333084402173580682530173246786122002227077481523107793995606277643738843094209785585562899949640687002182857235309620407464335233305646336145131416049253052734858191010613465917797931463858575104508136042474544757642849432491989643381221091127902036647001385676326420643807538560035277751245660090183288671131844096085207235346132073768005639264476729731122139249304739076635476412065424412090846519337557810796694262895896848080848472899019189362782979749687954835408815628764224789961430922629206208533891149645637492724145282220890900381568343426642744787614422708454625567003895938029714803843689368797628360554147967227915031484000253154384550661801768702613373829237723369270072828325350515519103771982633090291494060004681257894935631078571628639630353994365550054685727027039138480657840005735891123397796715394210938981899481693031078947107385913140031950220125620517708746110081542815236042101149290076520320321716096431860287133781381739109105615467587835092232397477324957376272237686377195334643031188081298270119186215293933792864076425485537090333919069447753154737889799225841826485430679129385637216917398176233744946455856052172445479942043011526436992681402310248313903748655633491909445556249094160933266179249981332212386476022264100058685911254587606124265609403331852865480427974238393083799692253447870343794548817644604971121809644749167890031892086754534846105792800858238032080237921844245537820323390438821651218243534501759875620984839630294305702513118893448515641928977379657821219013809678463272201208800494623582718353121956557597597715845128188702110178273219577161960906845116155008366491162347418431947575155582878688470068119793304077196551560149504151999771253845829469843333222711021758370262239472581995750942750430778411098404225851738129914973131431924337042491526538517501081694168379436403305218551135313296783866061157155292236024793008576886049002929703257509342582234161306280085021458641061146647925401685447064528645633070987916879833746397774094501840197719964809333058161009251225200976878399122919438016792085526194538777263092435836289453231458572543290536950289777637256464317899896324593461002302596406742540944719443909929587752511700505979843401987935915950695849050701627705782052747238926931289336937832202843480576907308921854080530086997432126296370120343903460772461075727073819731787016365543798005951738909827616793900765179702511451967181279248704857898614403332331426759439149247221177568406188254373689702711438220142104174821710202474912313371930654734589567149505248319093810559707442084496357221812558347868466164298918122309768431376087412879919641299737432260689803640108791389392455027198729281495649898008342604371181291938227403480201108147663072955630199656309490362439544833998930983797400609239794421488292701641734241816823699291534232700839465929952534357166103557071681631419183448666026614349908516763726278224889521831671216143451559147687331351201609093664065097664869312031369912668014818299833416570024685303718746467974876325719366811088060796691612689337590080347784657365817645126796986691857017284094522152866431859272850620880315075784479806340970345099863277266051755006160562227856124052243909627845754602154854577348688636369197474271777144943194404492961928537085805563612761375184321254906434147202559208019921905133712123253185140336481579554867826326608833008388022540417846311571679130136615231731516352441581245951262326337192553069267051006550132536807866593810007802218654496881118141059959832101702753905473085894272738027556112466421382639809379161933146192884869348031073596530661140107658037758824847372422126950166298039984288771349595656069663832146012380988478657833311251207057162522655378728541402100613882467437711826824300613469127624144104349786635875963534686496086165506134144745929660139790908245550470016657134973887754425775330155623270664390072098892493747650571792335650467843522014678431170991302734816385677206574945663544009659754699390629732174090371469590699880930726195719282546159806206348893499844252687068649803140947256027586504462214862870390976382124097620822033332375048115511248565989017973228640752410505370068405142774472128659701330767578774754064313662881315898626309080554001375186264088829576725339986608205193376117423755514209719027232343561956552338277026189327626014776215748965570329774833769676035640462335081455480932324548636026056154439348167338085573482003767840378762398328812716716108019440537834778202281845964921413921070043702764580240990818708410549687109421591648921016137848172477773539444232510500674614608910711533120124723160196327823378881621215968895848846516776715782520140344199274613218236756469736495416941010390285364619261987324870129819631186669816660124055742899863807412413016349025449905943988859291787491249699293798512373402673717645806319750896159604135916675083670339577603388084590844911022784427416603563821024245625721345370989100092961235705318009783115282213088875050172657292220158278236803146028551636269982900679683443119719051349240949785450449008220208834481686585078977053265984740320605966188926480366484382741086067189059278186722880161012672470743781277804569977061266131289399071078319400783764147207907075887493400150690084863320192936512579661670540806534138385224680448910945530058133344847645008935222046929451790163078127917770370319174405102908127895325296514201878927034656508624046742119268679570435827263001913108986818354815050898910445884623845793674077632738091386417909659366865270686058874715535954703874114122788805522812482557933325273476076406157575955133006127523833570893333218850915158915026646130319842834191660325508710969384684954886536090428291580945796026313443700236931095957797951821075495836873178901497153677700796876816281334254363094601304214460045090981283553069954839606712040260516829329406914755378416549777268594533531322316886687684130483249732349496390410311217494599849051899795705445297845944497906223786485918873832674850973513579865553654726856870695967410697267154337170890706048203698039450379105493698425696854409239485062921123486774173860357505233332285030350663999366647572232346870138511342307377939260950769307870839478205599092606290813121254786847412295138900188684736963387732036338881424104205980549066325412748256425967986282843599402397447931454115479123181412111653508876194111576868572252592086546243954179292492450892459436415949565070978589627426174991177351169507090259881193694536168066545183462157419078599590121816264884515280852525049533548659978767163563567155821597191419487450422258031498205722557920919499528203868695173381387143745244362612350302277993907365101750477298584268584037502967321719177308871298359955491171316853367555278910999722430195128791941331475520389935404747872085655487334533871845238838230489742513599989008755419397014792295993369750390760434346242833183319129881774393023102922381895999897155702191741092338198312273090798796184228054021059585471836202845220257227963938675190787512771245223465623573608348929205948206942068388760927171264376686557604381264984943952368888728341517734354283536893309478316375055063350252359382558806306532774038067116038369673373327483183899858580320329390092408069301052889436711712781040928290735263884131270930881062687867159161858785619304520109724444236599530843876269094464464821622021428622170462282493010565331611007954800539644362249937213544757473554340653408894191716177201850285935995637323632499196294709314400954953513264756326769023997809645955646823026616289465871992274620651516685510991859428300875617949274823196891864050998059739962747318188445021891910333593211188488042655988248742847516118215209672174332533744767931120509819651153584005436630211516041164250835144231306540263692975656700763562775671353704243795879608153552938999551208611012948388771653996588108046107173287260854662730609931535640412181411745771733025516924281283934309538140071758497946350740510198952704866831812874678139708080826733460943595822923641275351205364849050673032673545234831646773071880843933882133592705666815097620512228170740108120190268985065755276498504803143588709506464897415455651284057789598911093290706039779089422417343782013610598299715682580788043319199705213595936314550077327329660611100375090204193158961661945383031410339146594690311223005389903965174538209175550037642600178554977038290474081593039331401109841141185622605336143362301994252055581602956832491344797377511527842342135296755074832504727540480792185744073463756515134831526346500585963662491444516383377119802819232206553679145772419626511495875126924694154017219506357173163108444609075932293525864913139736186277211580658182241055085239704392837210495291432488178858164437376020964661218778660654821901164931151203597011061488166069380793366541626707742850480989128737980050050038603922983906000639298703375420814203911286323768897118608208463610075502604185120874477045453643891478348827092168705853572859642034871237510337921874574130234995100746494206019676521354907459758483750295971880612733158751362703810736682555464870089499521454401642469587030293924903901487615456380668687741401257219084581929298605986125482858436484247722611555524032252555023406613166815405812883323038925073675584884080297635205438981858301203706967880640438614537327320831716733335904842959598609335653616758496060385839197392131096969468799869605473454475868966502992679937579123990678713992617638488820765490409634226224585523495394937889901480237898130414600055939549249598011590120121962329265538816144133395107939495527028904138591751519001965776719366646324219834075829551112617386768762338487009237016969484182654011843823511395846948993992069274210460110379106061879986775663169354172434421672676610351301088865921469231006897916672671075214939468433651588855620810860966142764463105867566868934687935200775404740703826382952337853568217579720492351535788958341848092701164148271715250710879551418366137436289966303853680164184346873135489077246335105030711994632977061769581081917772008519846549425849838604179709897734276474982372472998371055216545222152100107984386741985975548937947986782951421306382027198632548944886711480816382393662457186657662034685947358416737365138716058733955172316150354558505307479820011136749748100906858789405429343629376954398055237447638213794990457876544972048875150060872231681204056326397167256300080708476072714439943379653656509670945670164404388700564162083863067231056613400130775599528583130389634082096035139987249936360441582888485960986844573912729592980146647681619072882537321838087220569166441501441485166486741344238539647997361412239081515006176719607308862145603122394182213129140073760321788192686833389540740796239154766530209165501112026230517384941334295511805555125666153957907079203056713485534364181366561471903984260561679252524013407659328217955029532211296284560798115387100516444115118426138307409284076854958836391981234518821820892982361795027476732499248948333365924019420888206010420807726654380664729200945943232440730702344520146609061959396000605782295418332318099303913649150159409731256300949012412818192686687977100306863201008584283873841781617886496436585667656830422501212858698458585394542255489755811108301566231669411677214375570369267135394960253838836470568070752013474020475599678225375663734636898044958022493382305454253867376053289128640432774529351778764631675947911584809971243557784888785010528046505542241040217380366818555314289955183159029041301652040214011982582358463190969910094284253276648065293775820438964734831799989315346222305453005797652658004568369179464691240315589535481841427673804120732549325544813411414771046077155226638393326564398322675776159718138564958402571694599196002774448292726028162830034237778147646333637211370391901189316101289525993701296808715028645309821549362644554883046898880073081391527542163584082219126947127827046483108807429177788610385961461829908157814433702144910259874722186267249003546024338639963032663892918270305548990286699243992994468452342808054712207637749978419832088404028724573380838965710162749439904277252353638544514741774741863831501626982133427200079709308980613416491838706425055839961189405961723079008009018806190458741707153570926579461475313432474188558466313911322429774471873755995290336666587738831240360725995512416041250466133784537427818437976087357396151574155419783936378287930075985046621665168836166038673157999202034270382324834633194391821384337110535853644608030435757890246906159644645309089970917350755355222575244872280748740987677728046497259744968321970967980817707633570202119866042973799162605203102055497627777934086142981829858228059844807889243073569505211641067900122478681838988287803598691232971476907553064690744705068246987959318398241683669780548045771620184416409312700513618668983549138457195166561983898934382025911835912758274643774887614088120911630458184494109375468560387956390912845989274516230731958421816702596656387988026633868315377869883797985681398454060536739217940107951205180536100284685143294716317783877699981910658286892283910396523719989579514415816409965252465066501514804171750048104322470330011937680657608057202747536886736978559829076484331090021720163242147668239930917583454866881790923907848519575742797197777951190825589097027118654951501299609976264995028277792195743446973737372654168343490764534209327030582402307248315969562296399599814413256539073769242029205542073743397112485395201745726489674494684956374764934833001139887773187517280114320329249564716297480267201198684184310086263198829173006770337475630107189937120108585347834644897819738790942370809856703341602116907177678622748485109732292300009785802780676812941548119074792256496014259079072361807283108099078036129947515840894563679718754955777778888306890693457211809581107568052107463762157873148100306863019819122982317687186335790516441470248585544145487757054639566747826332718639477118340395349769940610421234186362521539152334589626447445169194412066801023239461906547042945175617117572793392648988095895142314815681980634998975154184653499996020934603227714952053184803225598282659946512746337982582116962046454159223686567904429432131819253647238412316125866591911346522357225734566384029798751750996406383445744285722265139950589718139766023398516044093334603941264181843921007351083864335822848833464232705816309525019624301949336312659356526707486166379074464323705763425889064673871799645627676310161123313625411695545711313916548383156844072572975101247592405603359423559257710055720169308914949853503127008569149096667358036152244285163156336417037069426467872065221819196390672013377377324325919555760274870039642272583382897218507225179654959303326585996314061457022929669503421469124289369220137701019540591432840034743694284228064509848318889904342751604734478991718740369681528331123510500829115000262574934675231859255463718860295425896665364363695886032212909623123852943611771652855484857011779481390178186802877682825044918206770334116714789799163442664084722942813207353204129054319563551146282506542198530823675738535972587707586130797237721206963682998429408389716446207204412139735805087320387761744772669461902039575098847195187241871233139591104219769226587316356237344470021088187869795201158244848608719388564614559711490096467565620406125629866268194784251622540227197252743084623220213072993354624164014569528098677029810384425268730651432679486386193955624249022351335146821087753504067345839365266883782929450753188476324375225930521555865383983185301111163094104515475829576913292332814885902150191973063882902046956216377237473640522393356321643081540226707474122112349782575261672457417865383768252188857086873021594754937472345755877022411680894714152054429010314772639128532821718896199188966687764604316385784385762557829727156369735016332532222239616458541864866146487698471567708259097479962476085568713506763033812382203125889364992118014536721895156756553210488325001149741616402574054447829951804142719485833689815535939695535068342199969710587945743254266083389117999290796406919587853329160124566561789159837278302521970988333694082472997422485600144495834539380540000771272337337702018591484545699746914683971300906255202940112964871160516620491480562343790411542304848504899702457585193761255093240019215287510062048117830199485494510944848950222066510875325243306444275520407118868894526477971087806525702156373521678755020411215102501639248261482244743394413170630167049752539100240084541497056507382689998569897742190010501049700433471555274581977904806307232890040635954986320164539372997130480146694667584028302545277839720465434017870908767675554286514088440881589615058296037982841389394066142816110429959424017517504724944697876080002616281663252394258368218023750229551270922104940866180263156997708753205798639623797871992910140401251419659970974416051270776201971124399281403819566257553199795610253541575080569487862693375079396389676007431415003396203546145754325334530566717643081313512947486419594974334954361649788310143669699227501997208981701380699277088297016868672369684198198451130965969832462092551700973750022136761221115779066964272133211113139704507931176156884535372288196337356146952453078999856267431998434189271719361694039466218780714197974116587980089231979120490677221113800434956120728719629681509621559625301961678822679629303335895581435006548638701642141874070926591834934726832745597231280187120454099048476715730331852740027824061337812793592491949996515723412705655042128601951193314575900610016797848685859599326474371281890238719079391545180110639220202191982183250382443289925092454006597913227650069043944597056852929856552617928842534755646022445754330536988504557699612054819516400749942934983562467842268437566016918496762790146769284157437328350776717172939447447221136974999663920366292023682489280844942829277862516186689656420769244635675182139435924060806717037042402669878471730705753436986843893943862039510438027242847296931141304169431324717880111963931892992803311554656280323798969737505259429927831545058074077606654589259691033138221303339808565407251089271081369735380577132013237495098202769691458729783939061064947949287472039239067982217397975178034649290384055837526910190247726287165094814087511579032352957979144949977599917105632950885355633806252171722499973080037446372420863601498904317454397930121828091550225200870152810750451656979868311429027589136764866731445581294323725330182422927656266792814912704891816176452893647873766973108131588485082938358975478230122549832202943840026819770690821000250970754585635337862769521529548453871552706961876855217658738259493910701907858705642138007951328891011723660928827142410644156413386796300344683510058556215988354078060103446204992384131276568944524736314347089561059034912932891790778667590908237364092319794593761574110177361247834229885220217749816683809690975265669768990212141866657489328897186470265482211700160010214069978339117531621569687796219837816863590711922893752629649453498549876830683625318780354931663407150297706544511692697574214698853478961838221983269478921505239427110129230180149019725869989694025210376449284782560192386229464408668726937065566846476981074573262498002432699108296907442290928740195541958671000924243595357357222602326300745150337119477848411692818277017494362587487426479423971106795069778787537865170041595426060547826704281115363871234271430124936573398941595676391108938897602088974930558005209893172776960121283529686885880268347330712731164826869539868952067935200633364074386682614732291480450498048680167845605572103988062004329704002334993920918590098876662988662982684622416851561004630572439945692886288941690388498681072541570400355296685579597687896722363712098889917325652637183849108485413658061712983362181309212417547014713176286642634041222962482479071877956804025108036129486126357925006393921059086132998939383813620724601787164076409677823919709248940087775831671898178708624000516473608865696976089422918966089572849299123135991644106073078233164340645969213586997879100102948641656982845908872631321455329296554178328505089695430677389998441113184069611062634046709171976699215057944815151349710511392546335317667006883269885465094471097340207094750512512212673651279278054504015929700028220164496999175152580983893182095128682133225362464953078397306377973943656999101666045293976578967832020586828747108468820972973272530794278941510448068428760505952789444075272746985583209360477301915247654036186558967058115896479936538427372345124147824610751482290771549023639289585828768982808416763910007105808072345554586075029449884047318680226971690030141505286093364833397861357077657694264839615710662475379511479928552293960071944867092052275632133641752950168295872392608311336531666069392445148241365299905142270288711802435776715743690660976405863132078023343696944407933258198368441807578690697551163715375098317252094985534605358473112981514429290507796596946971132313363621896977935122205995887000776330075605246530771402122787688399543527168592737059702575443775049614764844541955396916156466451521470497798605217822046839583025384905158488194580819312016821221338320371186240295801637439249268749980825714989624241984342498821592223504870324177651194447000260008760018526388833252095130135410618121897432326716569722307480077651863312416068839682201067923275821691756088479443127529746262329889113237325702872423191486447985037321903367920909101306910924803341538964704284985856733183498739822703264693849601914461873606466554802040579791614017806398042140259681581546600758448241241345768468561012362393607224285233238586296275378722755323293908888952754027329205820109568285321081069459260046213858491242416726130364107661684480193856420538389093630646766532841672445469631303613689863878848253619585373414203006845945094051728561154067044994915359427409283794412469423615105604192652647067940733010780238553055230481868697146271565646875261367956405422066502750935286635443187136496421655298270272730190025740069586896583788851280399845886123516678611897684262058092204062464533439020859592908183234032487414475845582585550353352913686075486159935720074491220971924241200357393296833754023921206145284042045450284452981046453942585445515089269195027575686010525950760925846068924384365325496839459354584156612727928270281302913732075436763409698060046122007708026011391087365850117001846783668010612252553155182660485643629500607887603665167748300659775412435164045377126608016364636577336774947667672853028536546346498209070857883551947087622539197485315796362802916764233978387533133386680685788573408418273200351706097195365530400012481080449332897710779899535781874209861923425836182503001533944885963837541465881756957466990324703866866158979686123398278428206940982712669290853740962397637704630587543802578203246793442002379183901123515420539035274936220336323004008317082361196418503317394876069633161295737080367935921348952292006709274627844325845092167288364630706016617382368776923481620457402867719929625344501448854119944558172339143394357057581304922425689781001588842267497344582494633915148480026224549180106440781655575795688725087352092436643520886798417987479142820315891199745401221712132763266262076493830024332693901752773016378776918689399282947613411058548368030384533870693445665886865339444256039368938789541900140607520756008118445685462553263324504725021119653847450837976399340143254355990725935225463228515577242371450722634910748674952944491426036104683578280260255962768821726079973524829494139029001589255396838601260329714074284972707820155688975165196781042850863624090768073149104052849145848644389503074379626988405952707542139676387213065074622114158479589396062160711591594099785898655981331476336735832118115389667198496609241871526605640570450407917041606633870080788808855493943826064972440458163220850311742736729747546222970306573736939844195178657346984016512247753820572513484215982182614760415613061197669886939728063267824207022599090837318743100272212203749791592673562409252143616079929178786313615230204800940284044217988863229311210623272734886644219151308758274268212218710488389395492566104119366237129626406797171986727522465927851507144627138733086993786025622447459223384575021368218818658562142800058263301714088397350904807801535855682057821081547947320593461797892476357961211625209896158301640198505362803624452557870626981872445041542061229856575881644516051095671988956183437803025121395956974361856937706445052055814242106575604144590093622758454280533702377972832668146071577445742457214846281915590439498003774438221587372115389851995422486941889354829990581970753092898696543110478526787485106166622817907632911189364185749351202295656841294292877749172247245904425362022219898261868935971736949068145717940059769605961074809501334868864826526864719352608274599192139408706737109730033472541424772632493932539329484023040112961335747230671349731145963409033083165966036732508018464924548435088518757614927908272582116429202720864111024289896821772442278908384318986511688723387377093893805903208739684860804522627918957071185790356777984697149477908765222874351907396820781975046807363210895259093767134852771122066501969900292566274996448368903694035143521554421767418577497198354885065740120720265315252753342006514885763161114784598937131192554882672067214954157821529124270908618847053627449695034634972292957997078209073463791041348133650989208634439828427572218576266277060773987856712669461818884738857660987500411754246959461135794036801646981943974986935568172837842819680092390486216846055876293113397330502624938060962826634684044538141503577189175769955317650845875438957424010167511058427339044858900636658696295340060717002378854830593281335640783288215454052902486863161989963779016934832106379695768128855641481434625243928877065389002723218499096255430486112648505469068898269346761574613562069035356072047564042719736972226580980749358827014813468840483834756153016825047739317490351024200069919045097700469562721219327946050407987246497741647601248270272038854420099931647134830218446214157154834357009713613760797324598320571003669820378146512127760648416202119151548927092403748245051249496889148517181001063881614047559290572692759779099493548085047095640029390788032337562930099673306831761209646845153872220002998934085311686421064073390297673712226513526813543931686636276299143798198635424025701213266530192636402456056730102996617595516833734958203667477118485351350212697711748278752598227074459525598436738055484221647465373097831174481047201061453846448674460429139308113882555807821299048468441258908289611187990934435937005703588925887884924198061361417930588975583612851722456650171481280487113737277540818401608354058870569694569813696939781718723154810672314777360039888801940081287536429601525690019276680009956379401311636494563236175660844724035291751600530504900384750617177873369233805649334274204206094359053653967924075508314785662554050399827150128885424684561027007674497472011137496464112915045405522093984078300194153683304614958003282248030985421578099692581978501507979261357093600812787635990564068745410258672893767866111175276274128186130041336200758122296292885008738566594680207777893071675743899493914244034514367496996590754042900682372115768164535997720354954128210474434005694778534603248421811525011619863876000655821993883438549378738393101386097264028581785560627903828635624816708090028851857504897657487855626037318841375006377833925596323123469417987783361466386316328990388091083727128776772597819462321184775765593877421023139893758451585866866961567706811928763599615025222277231225464163638466992842241729728689959447905202722886042689173567651474632437016450559301469454544263755902413691387480674683066288993401403558277154445102035448876141723084063357257306834146664822899002986168189450141956168966300985011774979882288057983640643407700414502281372987126737625386029347033987595133002450844970943461584557592089765137903567642514301943566599187741841216593828041879491176898316578397159960428790497909135920658634903430303758948040681499434853828706629634653117463102984236167215833743465955765783770028697727261926337671842777917549360749904116094251256062218693999704759136586052367107673907795516692741129025716914483612812608099913256004833627685460157297766892826808085363352066967250273889732144482619264217474995647983058172355264589204575079419294517762011654959268898315851399056068753215108761096111827776013686581419060326466242663400018711518661948782180289159899552778942956392716876343090556062539412434190470741700275313764239670125608460291364134616174128600391283528032535174283375747344577145145364566144711134404902519304337458912239349619687347027192623615474574486674312328483301406005026933005495066876616024322075341522199048398774044909460409007612460106647033898909915556324762105798645506855580863763386158329475434568966688182194612052137878936653105616267713276412462582966151471600644573899020992697868177187935845584890156306310449140981824889142238502913125441728812723861399307739815615775363674858255216059749123489696907308182206999529850255235138867560195616536777598269727298029792668659400194664014137526280010579047099162348212837383122819795054967994872418318465863234746523273493227967230771073866808431862805304873403168210483514440198516531905281597699935654899283553411888033496749097628062350361540970421552350689851017606090293328962936618456503916838067070913502215718689096660987699873374024684582630484142494649180983543730580292891116015527105953918051706508365651653357318564673997709309530361539539561093110128965860947283253857404973922607893712985994637393901178045807243468546041797867340607490206081826722407930386485556932807333899341644379484538395664541070203259700273510540022469746281451349482030359295454105023246140929208288483670298451180913028371750388154774945296872018776890784147380403795388499675837266651086752956232013190159314804177169489631619600374069576880770020605304243353771810248101552040639609388706960852317328291942314427359887164109766573078536095499588053088987910286308691771548783106145658249532360865059116812814107071045473057437762454467294990357112504966413164987921973151831814873431887145560709542395445385228049468082339136383258391439435776645711500598145486561110334337305349663181809783556851759118781634487621710133082770889394440679768228977144840206573335726466437386908453608781855077635926879483102375395979254930042556794273024283810606518589484629342366552892269236755669141676207075592055803813549325246717224568653389786674710390155673017778380350860870469404266612284399014862326243526981831943320867478505307931700161792173381699116301108194587309152229819056523321750724135052067622692350033316867939086634757246531890019465373912703789526654643519440734587822132243042432712862282004565168335280297437484423577763040720166231963656331311356760755085727516217609625319524432890902395065578462599784693473044435099373896075301319153815653065594016294853599188695901381299504029709953493496199204469930168019489292706055209846809489212392776960962069344328284387751380979054748790984218569608591231432610534996065523462689505616993110275629782110065909745990014200322526219589685998955532404193028221924773884480361794008939734786579131583159554092951041656445417109373319062777565628473868222248576418008846666409844661645789055883450526665481246735510429324211276413111767432111936444623066421674833024458540035011935616250821960794247638907174117274747275991149620007078987169881527154208812398732903187897823196961960394676406843748200812730315531916778555383388800185951166152663935221630618659467571180174148374258507080419175706630134781752982003272830093255263804771328887297406237822113172753170219587370156367323032425836391488140901885480525939596344481134636110568612986819666051587894086324902854515474442936067929622170775396922007253180812766926564110865566284542651289408207857814776448820070804733527515790973727496959478433746824105699983898769565115009395100197342655803096083249100123476974230846473506832248625182699105496547612003756930436697168529224367684375762745327818150262482112436824907927351547923131827322178892762977723115742854489572138360497424998568610258212670231530039608740860602510079515693566459686416294844102274948042985713177305477754618537535424182277865887416448760048323813192063804845457919483018468575845115263406240166593191411452300136711082632720374611314515251977295927048329204620524911638996648773818064862383062619949598509604638315966307430892891433352895345426612889468928292195233980029513275720482568644898634693471902974840062185286513814264845361837248194217677050740576425766553890340829277306444867326906757745815849912054237883563042655452640317259207854353654082094642456764867718509540880062522542050777136132463638397914797579697975290501431151817357979492724373508177494040080484060590206598411155073863582858161185030349297891242458724056571183017696646755785529657125116588260069507181689859843227955841354240879027426486625639451817658717712111890116932774255122136015463184227797020251642958026071014790583425056359022160969012598439871626402755470739938020662898018330992220092429661504656494681977749984541425679184462466682126735646553758363747010904157532871853917373365344480071692947494749376438593751565733154427030522593397420582584343420791639579242741620071291411143097524050358303487746767498617950365832594208567481313392194239700813186502112423593505791632549455595736075759076338940123380658764169384714583225515838876480360526034642935657772744034151443447547948783500508316845932889481892789130342563284273809344595553768849295372423832212069218483397131364191471998383394004846786973656849384616771077305601745212055105378574924736969446581526959359592114481469931227837456204752496569214489703814853217747964134161295642470144550469415292578283049334361672859072670989902188916734238010228051203475996877574973625192869129110486902560256858966109990156190769469441583724691398412139166728589344126874530113445202548293656032504703822335329367128082079465114188371790557765089069628682306842402948404565497367137858992370375336206409328690894671762029801595925651238558913121825668175595176842004317739704536383915421003840577811809544790755851713516551393500486217484670782716476023587996073471890256193875066704194451668236486432200703537036180075746748254085926150924854154295796378421633604062266256264860456178119288688783438789182727024819044815062616608190062257516909107435726593923814431917014118679337179864596856034540532348665823273273181542639760680550905905684384152561364022421478714935250266396460802067206317000221221747340461523875119873582224037603506261823645946786778958932954945237914165239145353754662689243452931440179495571897706518935815105122948847362465005224799619746197551295885410596930633375378214601917759519865209822231307814674426765349482290677746422294918346062957033368870321442429603482897546974626469118614426701166531351443894722806860088967629323391292316329585370254846942588814141847407936780574289998920812999249583427763650415150753470951081591844869696098048225353515914000524811392399880648529285638491834697022582517548351182253458970520899173159033992009156720474224187258675266815048847159529786099559516535150370600424380389476368484363929949416276065611959268366133419516273658134805996664000038336097704252163187453470740038406946096441270407894809676169933005455262459086426347290540487449952773703365612558270458291154961253902332230438965856506701065063159116041239830050267881021073879840754878554810989242249147692980803592923101385439121834359430388486880247604503031264956026148552304526199714225067666477363585229975503603358334508663620380534077528292414802358313494238434297440115396925861540738170592873206099445009476340344420977761679972247570989822504381445576162686774944349051199641528475975332564782213494724620527411963817321829499808135017002713475223405028061195583539673342979601211268531318465884440404329646179284017204732089885829609752252596665225664667028443373678814812115498695461402196539631030263864659307177743956679000133166719553294665210057752765257629034734341310320160383042020322147077685874653012135930854727625527200820578292811313854664191545706953089545699354538238151690013346785035424150963452820436939362163650780311778773463805837674626092131055562447953195251743833644657796903068111070377446058759700929458593307630902062213623766390838208208475644605649835817362289550845843012701090788112221886409413339235601623669210710802290638060370429640949892011279301471816148330159129361802340223291076004070499542298035838860114830198314245829212197235702473247489932413489723730182630702243728933884196497817153642055236992452111067126887916810978772650719541694365348878139215912595473699328578645659803018233534805406694616296861444050145719445602554058368769495664588121504981327831170090232426460226823052040883037571668071306655203989958672742062401442784521254800334572258324379300017278513565224751753095158008706112893948030492303508305105227048985075315375671258733490198355088130846324303118378900921113534647256675453716574100859430742688056485790423344951239569676502956849473383542499378879820083896653566499489282015167687274982137184909400682406293142715276359654279337454384083351702410627285064830053510076812318497771244975961577422083376318851449787846238132938723458136680678940591551432313121120218717250403328113274985239281808305764610860848684993909789077516532781608946880132285104478830173288917957992119656180117706173277987274116522652211004375865219951292928532035970726192415424888633717263985931663711752873719893454805478174049533321829384718723272943041676458139728021675385253820497034886140090704853051268272002223984375961274680931624601882437480619125157377285390403363587351918459006994582195853615096821625372245059607835365272272808298813742957481618782825512386909215846590433452194363030670698024736768937623836298318780650406628769377526830273761737048913001928325627545226380344494089067408803559130589938282925734530745366915564435766990998595218837085345703107591237179704462331727487620447858572926340591708926747447209927383160469232709901051552792135297304497404124516161236482706692447824874933029790920762708227112314123574376865348418084167970856703673615325895742523755867897633993620509149275194347745954118138871215254570717876274361179100675417952748342368685095366964651909081485461001233925704447394072042979742938015663812540771791981057854983885070980715642525160306937482594301498070419922891390287624186043817461989433034169792775808306996399266506213824862104750742175240447296543443862561290397005962924301318260566123207019304671267772801050387195957693746012262212798003482551480573533770791814504576843462088951957578233187384431788854036740345065502344589351940830437132864731474610575588792491320322051940294127847573733297703599872624968643901924209337430242337685681862377538536061434608260943007557991391771160962510224143266411703342028821875218645816178674029763988750583116041775583342481412062724616166847653658823696247759307386902219656367015824774575427543139581420087576560763451898198278449790693169496435449029077074184989115793053844006733594381738024960651406424078155133923272686950668221871066002065968222003531801927999464475485028377662776792767682623415445364559936580968702785008383904746239250096298906145858161841222490925900806844116980259732589664034917612955789713983979393986112562963220993581311957607412662664345183777488188938733264318965000526467623213444334355419206590727123517270009160258893458435817235901215583749036414915056284328914862947166552530428281971218937948580661162333378877088207976304106189873464262464165041134551870298224188282703572611323810192704868282743795992830515182721705897827879921213354196367501698545832195606310071693217310181938192073623318593639669621028282936839990735238658299211269469863815515133060287737398486154696574213128899980047604800051225329544457258504892417981478681962593167145035637360063796858793045510300280768913727211951456445492807965668446633841189294220317641672602201047092535061180131118493698289583791873874426566134488902169951486870735786778083121656121682413034310615814147570213680745107198889221830244009262770808470369905260022848377195268163922199746010995551784819005982806497615387522777705246256022214925166704275886354621927614403953914281187730326498225342679490315848496199271256520102822321539852468922339220669126998575831560806252717533528906873920368946600041844572057482434304953140288876245978031759131736678266310529323153889996029090566324484673613425347140773513984368719299243563822154568962849314069388184033258950447800527310108609748843836217211904280770983437755317563587439361927183759970048862773271279281977225806338772011687237988115914449730480253432115230581040207452617018191011018241980259239153817958405240269373596143791124230127228096101878559982098428293338085180626284191126696440729690304135877463499406326716077201987498975441044021633949905801104165055002327587493060180004927043542032464105830404509852126376323693771425729484507776343942973318139180303098412875139901960939299109363178210911968521296268430248192295774781003376438215294717137068334799336935680407716150082028445899627246365142803948029673711771942585306198525529511049662641289567429168985935883391300850193593330906504800231237536339209060971169059699300795303572030766959132413851593969120227566201595454577785927073052045513045127790041034229172652580346619926640893512272964001994285947852619648768156058383250131071818940959166786414954684479694123903018548397675959494655785239389894754530207468605496170774160149117216618996353636481911324469393110258301238758292892018649471091892171862664243938615585959807067474153443050546276005473512060348464790838759778107294080773276614380617600094459251747261062522182145256392431075115303337930642083022320691755676551608475255004024748324642547895676540606583005389318652577986391188898603034288078017414306542295020006728897065683412478086935586124811880227937419084791910306442104270079807273848266407672687978960692837219537012558003661168700166843168219886297281880850743850259084750987023172565362505192220003899236865766675735499108257211286462507426715435110053764026764557543118228525951173471774949690562622063481135013735505520672921724169364582241981005708819874162833639298035802348274456934765467270096892893812832968957151677238357144776725703830860080608986428737048986798151738876178909180933211822106122447659730667885218215111094534432828925718131896456260285693143652815606017822590624178011510856822629660385292216848937395063881651728746555034831351641796438918671024270732337038282833055782571218280670696027664409390783992435674487352738042102209494251102348946839442165131387796835615345949877941821022419724421361623841086093394215106920991848125311017524838385196718827950853158138703682855852798574358565516838732698877433619207600573973345576034206581083669097666264417933379461745071162315878926888057778056491935044131382748908405581290150526488882737976697805083994329463689613871395012817784269774192774511624124485993044980692159470657594643345491345082509786603667551831350912532183768852742995755421372008165499683283366879270345956206673110950390373705503484823687661393532551744975563449694064118622077529061189483661448716411928818654534982855592907876850786936299825642111149692740563205598474000259574654656738787904379143139307542308195651448585546940545159598074320388098963153373573596482036835376413281003739135939860035874109022524585336978275413732209737453712719500428074083906692769114299624807956863637718988719884069415517747698578484086285041908401160394652490288822375390762250798628866276895503514023289707567482026681075948281560932501030248925971041654090063792464315173581083607489440128611135779489988260923610969405443949941468211889689020746465581343984101935138568426677193192007465019063900010931346387121562421266974105264379065780627204341013759901593321048509428192857297765904892564060629144510754674133371156325046122671769994479241932828609284588319589045605309228922893690427883059235169608683590585541331729941541306454046491059710191381680557449580613409891240487331927270283815020259458679872647982085128387492491682275343259174576282241029133244238669406685253612802851116908678307858572985806413414298316507394028719567700379982425460900407183700101572025635979689814494503222611342572855668772372930513833359179112408866618089684590460566621183283688520685868376470917004678138155318657925658845432619762605047493141836024804574882823711059035452891084149113126290094035061877207386699781585667668951159883189807664477358018942112420169806683104965765078341384939317600429306970153661491592869337747291204139644117697922548683269784625510276007036341566196512055737387553406345754955509157080995335343089836698554460700430318900610028172801784468807225709446804113853235071710008952758339802721881661420879386275832867938954347756344213057481358044070068891276246765853870048571407370486287336765683869675894117490404857308956877974410423527697893141582304044983514639153367413006406522073381286684670301890098193918924973816255408744719176281588211051242141466956783196291979801251936393377760509568841394699785899435693773926782581034978507729493971164451775507215633839427543726730749810567178294240818463609168544812270656028024348348230944030854492022480844639218481099807510632272200016995008159238851389722399038508387026511721983284264299839352654339331614455638206519256530535499466645814365063632331822734612302246988588941550352791759341445993847242148834646021557851273624280249410308555542570691378983528661414658449532708982696164150854786195927838098283351080858685571170351379170282404241975108216033202286033346872513867151179212645992495712977229577233514139501320509570292771608417893649521668979643489220898600623632824565571678178810579158182193686695321181185201182038852473859054475850046612874823008976897253577190986359205258047139038307568252311123148840056818302245244410559796803951781780707723616422051420871433412151951072229720669300104029650449321828109923627374803205360543127674679027959288682627602145152706477191109867692113253587554722685678561043079728359213582094914099614048320945738124800565385492667682880294665641135147901475244880932789344778097411247937297068394691888884823349937728499268411338257558783249421331577698706221980652230854450515496120776123893072160508240594243822035662007820799719139492502633803102542679864946739215715277944042154570403989656847895764961661402533279141547332405042603210039524936124954379174849922522595480120660445381386264598394247506781863088951748507826892146197192748602567793700010476349696452931949399511252622512088038026556566716201036054925702243833556003264327478633327791765114860715945368449385409648984364989457601335600023630759275942476289645315508711435539381045151265976168730233996688785615899865232805957726341352899336736604474910969111602726403086157201527545183445658887756897702739431045062101860758830480675989507759310475663229240073279318899104267450319171885367450507418216067162857457883803894408673063752637405807985132205178790387546068137670830428302491294486206983011264280345692635066775826491125711977135597180823500444196970338903056066190375699323056963569499731820940725879233973250576220469219108022818359988001577849678044073537034286489184886196885656711199741012873819067084615964565492044636950653837908139704654594254983851021041888109582981260617281030915848966434049279724134160520852579840175619496087216513778673067708672999471716996412287901750177941303134014930283539545219075861417237452163862632094476564387137545797025126256719355696520577302939038327143190150466035515727386006078388486160413818788168980181384003927983715481673177600398426980407883169581543741360322554680881684465240106774645699465451566545530698570013569157901259624796177135925814246290626257284415813127098202697239065661399841839202451697228049301164963011023325121888201712726360018824789522820351698059424588488341886078564502014341248902805534904110025516648410619135962971754692682624725895198044054110524023483624951283253063540400446189129549105989047537222653302037578948531119004155685877815710359634012991369509323570150646123128615710395801987727478073618419937011724979946487765984371662158568731793062945234099465052051544326300083620165089449905232953244546627470612272932555567500977118960187282269494833005235782821010062938878924913887166986243843704787158474659195823474635056071454343876712202744812702872176830170760869822719468867003570067397919498828413688942066349019564283196530708193429927928836529020388734992426882377599631273765954077078065723715605515270370283408334363158403732023930440151229575520572435808432960709096521536288261158166030450610910679326165192982705434158408592016263559732551061934861389181409529672072938138666153248043592144359230384891180930832145013010667294725291006929465021872774796736732681167195485350164406256988203955809251640441871525167138657353962396140864449156331979324864973300046167297688619562215604011563735481624076958590264148378767783707348573788943123279289383918850352854664672088118443160438994181847734306804971308372690516920331244326400178641421598812346374109821691640689400957093003044873419064586987248709699166296864152526943176589959467667628609825196065958136638948289599021436762135377124256757904748802722748367597003026910236384744575187938756231007352396955751992787423499813029621500622667719638580957159529371241439909746782473490312184170593540596718012435326242867013871982258593784184936547409385576207447072643453539120993537010919921830749005509008163639085972731704915563083547152717745936389667559471288588756611382258762137771027205673096272061972625352526463148050239264776742951118879764332557323560622570276914492400388623614101446983523648699770611979379755917916984699428550394469196628921335610678483668479896606524742052018065884981703215172127519888703539894109014379207654478295028699366702073984025540546366482643574895116471926144600996419393500681067283613887778074777761056192348285575623589623619052402960296245038805711092365032775491626587951095014227849709053865368434608545642203432856717842936064060976217820749108864688289626429770459057797510549346271081069774702723553211740872774253548442654615103122561625042619276847745317010217657910719827907063386396296441147891675344530360975515550895255908245167280715757224399760562890267031611096687722115697182062438522824184279508180556544912314534205804955946830781765858001285232414951314586112388377202462292378201833672070890922543332658855069975639244623945179996454805644275755632858774532257402958325635731333323273726703942074575451899279510670380189298397512437795034921871947757650741730884371875497291515661567153463183969378948584507902212288429276206722674309491839412604219579855472657219835561043258211252335526756164464364119911564944757224183494023967727293793220357464317924759838801697346207423098144529649553984218877134816307258737315219397468153678753755499976552716116558096355839852946181274167917542781333283996797371351270482019013639503932355313902859908505180726270911868939550292270301458065300795315907762309533948405522256012755048819773653273104029207990236396468498439976674771687850649281419484557476471799285719133454535948986744639210964691896149007504235165826701088384599952195808770054342791633087617912077301082097344297453231880612129758160392939015279414432780120794701733212568950067040309530308198877344556347380998225067137212318495662856323758875404174919053423861266604970846766201984825893218818719780075516957461462239628931677261616180143826343444828371447066868915588675782425323412823319848362782538551781549199626976624630830084505872090358786441278557186035036524817657697959717657757029554712694630282576794627335659250858658261070661775242716426448041184386652330096504333163912331447694642197939995955294843685051824554755367391895184861271076093983072796552819879169313188935460828419023778557276126806453566172950009877953860106148124232332879403749018896697989491260210124690986677802484641110021602334814930149211712097693662030277578362120389078435932879140697758475220852065688553604427426463257479669307933261357113996108159374651735440236059120167833542516603346302097335277352975094222615630329821537782004655080756909678642623965114001963392338288821718277792398358255373849329161473948978501782690526211464793047192810347039434400410214638942751105545126047782962658618693829944410022516997386920144744054711135542164094402952289453370485711018712290587019686448448058666538125179984967356108796080086114873739164625567721992439346899720957288030986635399780749763551206305571152829748620946057489962802652988670877105996205797202984609108059346180128122477563417142851408689167741070464135820753365979229087714980332493211088795422951743736218643246372912862420418534288493042367687720980325899631579598300135743663047863089210690600812950187909174245612537085187321632982055866935484405544461333819496567692032318699442651183087169496273593348968108143351144728126370325771657762207599523516537548168295898914571275516123359226342561943876436014928580082581455067222338557723168704094215386642591178657837017533146635570571589404586705194204919066851165414570733939017861694835364040025534911014478992451250910142308907745543163694981361673039347296615777724371956819884799319372520045317681970856644151147721162030158205798613728530031417222134382310845806724059553649289668581866471078871146411969784398076935536231544071255394995904079347186514488184450637563264273889613700696532207177941128130139980257774971741857318098374153746814865459254979240290199923405496577515017348985260643514078069022607179241867631581777509841927583315081013926221155026650739960205914454208845983842486340106594189566298121822495586484773311556471119387614865902853882377370436640749834234320820192668739489865389685172996936700209060421004874229338901702510587273430065344100404928886762555128696299249546543492104161255262049813521812147978996840899955826103870978545685204176214083957418028357359962932873790797953570314026071291043046112151008860204705123194777156282179378777210114463838032522020992509812553316259616975627428699509704300676146370422885226062798248066650012998113586632010985284140652188542585762245565904672524469489942234678792425791852651999762392067717653148789157651861247858115751813183314163150342273876495472192793144350128607469495199818901593280933976566547507826376449091039094796534624816497322675178863072567382129166690516498827346397996618669402122621458290343328240113636188173421603401444387322610428758160966722916234187755252064567902399086863441913643439644240814143358114721000955858656598131655948975268002913730552627137076602212317204892313684251240869646255965399140536360768630208582730185020118313858966411933697903555346014567349548192698617481663573626564238987724921783815995798455318834747170476430543587168606621941062964451762100208912695214010407993782153644413196051356635840938270924478636003176990466975933801786892947711176614648489945544941337711400054703129363431352148757679823619661734884729323069916569051049819585531305666854924507928819151230033285602694887575338851680084131621497282969580001892659617025025052490206345169107056399663558777230535139464956189633741290379477080834047067873637348376555213286654205726870789530656766750139897883514603660956654140038586066960715823155943449526686150421388918617051826772886036261934423498126419481496638683875726896367873768842922141216887667815839259699004593985647975307074802898710971587474086619212961205100384410277548848402100300138347511015665630500356278352647093271027874863241427525259665481867903357487201755604110693140004437777383907976476029019615289101855788594656321202273245123536539648068742678293432933789201288163297223218719722775267813475405320025220185017402311604406174253500041090454900227233879184725178181214718883812038699548874706139445834977577135460005965090377355468487389308955941215682559930518483053579700718844549576964849243005612309104077558475176218066418454276873428821244757479176349359908235950774938013594363338349728396550754698734387653374573231652505247905930725335032099702287469454337177112184611537230045440104222265401923231427018105770568841833195689526123888600551374417071492321875504735300309283251447800404250475307477683418434028504340021347923448144579177027876537182859974134452386544082504398929616702785674801818667132841216376094920226772823124562111986546005069117954563154437651555120389310831288476645310528175485937194629772707910414806953163371966669401795818452973044437321443304644405534622968096865213811518663344238920452519246664993432582262171988739222349836281039675660244692941717248354263951428868675571883373710850954348406511338869918350441618297232085969044713617181188282557251852643670236695764044736985692422351264310986365611505703611539285344446006463513919964434164625167797535862723466458885697769258077563379716716069177424550119742259864736705925517159505651520672999763389309855293948779172923293379063786829808941552930586898918004104526911238037832385369304447246013324014179190202783944664873790176174707303501720951383871699723903988448775477732494552454381659352458638433842756313426600560498169500967590668959934208721317689483891752478250975900355065730211811878081101325000370303279778737511858039847870298184461312185033015474781551106425456348411416227152845850201611979486507432663328327596591775023873671876770944913284909295445844400825253447500672263886875404742135133113562493888209609810094759228076722171043684804539188969175361529176882357503825898662960321341470680873522427144774153528043127185533070421720607140470580467807164554600455425205462646504499921763736478873136575468585918386598241411009601698904598710459772032271437557625620148838815910153262426651912767381997199069379372071986264038679697233961764295195040658197619566069813319006444568451854763378534303964452009036454279777640933182158651045263889972516794733289872685215056058615416082154548477446296278331249130828600776133802742223726738270630896666681880757931581830857986445666093138761097554394259683239249173811397022188828559432849689375584817694825704443190861776044495493481936311134500140933238921550846623799489212389069043559577089944328715668483125323112179846508630535525564122659823373892353298145346837249537649407393192770755406176889829098488376735398873498108955200924883877455822707223560102769336232354530724717323013911939144348071053580544820402452323619405325837366058489761081625849559032900000881213961227739151427863062809550013336229437125140570071759811216757650700069456655032719736092153096364294374233743002096140315833329200852018655766300980083906458754702772092755969828517922494750337856154195571879762312052434396160742899187715567047613071647550015733923391744424878437135768416854599691910934625663752921878276925017937310941606541060415376686485725173067365470957623650811993752304469260865556923916143149302379953666619331020644732966675920562612690918816597021058740104899645114916295786826331418974637434701926725663014677169752201680430807609887293534240332682474318930204080878075786857600219229258000543993994311104453082004037944693673367540058246773939283773841582266786186107773748450438089379114374681445080122210345284890035183418624102443848094211429295773467439939826861296863855182603249505808976163602375305043521963873723213986911066936040755182920376731732476668381688454945230951952658624289788799222986788373227200275344261954234069679888800563279173681384043537957970376081512516902304579166896674364235974709161687026617861185213642914709932580647217970091172394467849926087172873024995944428906020753150238720696395335555583255258344997744456529589438726059959092836584950549811406122366438104506337652709127419695913441532599763207761731961843533504344058383785588575777922590298708764043648344777419969401262022418986714667949562314722634002429079522363599112809365435246929189514321054848182931837170948839040641780275679735417507769403004089443277458196361645023668357754589490288875700528253314294957122496194268691384114721506965231397651182687700173335626897704788412087239166376541256629602107320617590181408613920562395861559061269242214228460623215783500068308142422911658387802606481180190447232738294981663221111485593601745870888893440679906631620614323052445021492275420833798990160231640718554786885366976563939687928436551266170380325494138910299128493299483813443610058745798725088134885623493317191708483436585034524112819256739716319703544934908340120789813517683917162110334242244288714867662850913351084098482869904912741569952654886013095660030007607439834162932374252985480076491832494400316606814253493733323682859194902657045904255769067053811146342075077758371769495391474599055127678163397656326694369018641394158497785600038303241546849846789606129662055881653655258089970489190016021783182796338323529512277098338955934853060323161882422923138464706017120943583153075319537486339447966610006204436576263325879060904588155497733298783914903329304682379867419350241718786317123198813479828914982075232983007295899205532053002577521379555798174760481881825289974971830810862336581116517730929199916934491996312117358064517723924228208443858848606799321339120808015893735063118228161904796763512635902876753076339484929482454074683660696026790077540335624432514293632901333706905394190387442116402632726996762943238797690797953441299834163796904651292962306304119108693757667827466203422111654293940191405568855872389413772510980041676140805109892494914346232894348279408802333127006797380912776981295702606851733646177938508967825688843632367421315949916614696847884407692127997713627072278467059913565113286706459040153376704647249528833075661978208973247721192280636459798924750826834743406718308990337994563463348971385963685868884345441614262575389933659457202507703792442209342446524576101759817059110305267307280415462062054018208782863874498943500635365427953716183669981611533579753068693623874929232234917124015515877546624328487608766935783268633782420965834441266816742980245093457954869867724640131336089177042251296897921249910834028005647081716536720813067103410062248183653715150717916384606985921826627703827806873399462143566893290011041297109950314392887073096782380595119899328516740885441943903176385321346970192263540228225135923894013248989257341731288790345294927705997292851240166528970848551066958660555343770579557459081959988245514710293161745935751286466782548380889298116261839011768980365012810999087645604532726087491806514174660908771560888495578791504052586224236150337265012066833801980977271292380643144713926944678869336771126643544174355073701831769540675473178621063210368815469063578299439993099655868027004316215204885491174867438584844346897281219507697623319751143944427211515740313964994809432754193320285422044560566559277763135350921569455935976553708048782890775295305267510791857834383268249557758088065481362656968562738537424579588783345190438094045795479554013287721902308522596937008358596307507215459576209946551519554259659070313668325170587593774606198588527205229211055468595594009951312973909061953285952577741881661374930142382482069548767737773019180307448256770910286995641064380291989692565380625478740205917219356659574813718158386958744958788339181298651654926436287631758717866957367004221746270339525816426172308990387622835307166241689359833459382162640321136649249353872117794676507857764715645341287995943895714256778550451993697685018525165356693208430491604124103770229756468227751276500139267061530947968092983340377345355818270569706071897786195382229891405120003114934514731383720680325777240895207875568680691572744438545805912607432730072094151010624465502503661584293076061170933982549187291749672208594951622112392896022628343285643101501294330877301841914171491347966193214838186393842409814834251460861096149879029888224343928493886054682770821141831383058482948637392138888625910690273191413657527031937289295633453836912778795985250749163214928116036130592238448692701621435849707379906040750139006785365478256654862084011454352931047336912453687054561304101262512803890804681256601415209366139243017760050821623486392105332340617122548636311308951618582031108872272050805971658107773493179309549199841123242416286744295328655488397800929310330711065201339460727048466775964272872458276887867805163817647733635167212259005786553471904821834535682985210306320533131589879006597816995487030760570854310245724642804729255290842623088549732633565112729402007709349716861230801760274002372961529026944666723602776207764237905721430365068631521155854403504828789608951938276062604479425769458869802735176021942770102382518622992623319833184497312139378499997772529239469777195027884351159034339030290609812077840726139077165636579015200066449578981362193325655396163214047342185711801931923098453068012516210600177354485903012204156245970550004203871805404672401402371796118930742700406767296148075169939978688133792989647737623693874119916465046911608027084373712068911920938091257380114700650403179673992405486203944572738545668631771763196923422509765263427947336998889900884570594724006456993730861308496876595701484934346161855665606792795299031227152230165228621637409969404048109896250263829533574254208953814573407939216826835563639935428134337605685478291792396503795695217830320762987585295219538051409718316412921346052762961312942777617435434777573244274106564541285836382192355990390059020565589455323207596843208064648364829660611612760801356092973803189065383168201108132304891409028421180875571274749719146296644044465032826070734004133362708408820055771417188810676873560307543768166472878962743278302780199203928023006874279958634337563116269519662849221127002403417429235416126045528923296754072604717443334667383627913093039894464485081277651139384890784910970997366139948473283036862999303438289164157185695330297464413558465325184311315940452754791275902583087343498776605320129922264271550296288751293516406313377743926380231542787607748580207317725981504663718778067625691691422800620459305130080887087959223270766267800815347418091801931829223319076260511896506916567778074341745353095624307112232847281106303094787591790694691368708871577909146608340494141278987551169221819982230772672750737346526213626765260789888077559133844466879805790275384576211194524831346160625444123022667935581428131339323414849410160534550153955536711757745696418403573679487910179074494617285927263378238496301723297969084406112982518405633791593512841393461101218324669164564844572299200816349627181220477124761888510110631287773014568879827722394562804107942171746707064534787551714310326671712412643015042383035313074478948258679166642028671813758137256363093674413653348295718925679937207202102356392631279135833152328987369184476614901140993900979479495649971700858041977192442255180566662331370372733206291623155967227971144093367596840673559538115592594460651871367067595735837908333772579836967877837450458271872575600998604266776395309863162953971983522685961271548194992547168872605440865170380357678147433538489367486517987790176608475820953285535313631298126528782419072039345960341590736170510095805257057117618273890618911631301200593141422006893786839467563980028710095934769524675455382386710044974948888304123489204070024029830623751463675639482945338620800184835669758624588535250984166608713593544791067682180366527315721317152362827229151218078485782556606296266366764089249839069525563008416800528015295075340631448107756607170347222267742830980313267873828501415356519962702915127051621987976705102578898706393763923095756371337387383920454650074222546616133671782527921561667411183591308257045207835772831229050072366994350115487885651254943597928463718261608599426138625762986873021575568144970032657320884807387687568286366370311138832027821910085474382128367437110551600252692876556370636194324846651666384155355894286882821892592509665077238495871285591159061772387946478149076773294071140647097803606360218269276437239122514022944758504859885455629042836095240575747017310016657665267820530874334015432200146312054428795174001710690670981646539030446221205336744184112334663575971766034100949005546984964089534911636887711458039522974362649582308278492873596444114131750012961496973225531829693492722836516703195675800718037652239226511662551367955330135101236554134540457368464559047150659680823502716679285323798306541167584424924818742676125153212232090696738884621915817596791859042141039457921282755347951538422111625495375839430940572289133299646428101999016316656007702481000065736851744190646279743555798519768403254479630005157925270341560016355237571195813395827694748738574357374081685738829727741607435166580306203362490554647790848079084905977503539104728227378228060280189831332022792571399410348880529573291193600239889126872763799783937080208522688683368282709765315095595575525026365978868758575773110573385201119545270991071090533934832928538984447847177121146379072952824276878177658913536853668512258939082488630889249066053928422701029697322630496758677109314110502843036997980980503568623576842919310859687544222450584352963542011555899254622100840670301022882394496974274825609914705298452092248911426476078250150003328577200260648225122509815141018008124119665247636681135055802065985541683607979019964684619401964085950779176140541255355576980664910471403746106628771520180347821522820777875677680025886149017561226297080730804016697180117489932214039951925709013885598695869301194924559762975923598946599426927779397562526740509304096046703643959719271099248904477724503765999801887433843201108322736818463946547127453130706134108683996146594445633228904108841812921615917314403733426452788430595435270884213493749245112631714314366166160317977319536829946286409770692174716393775155507825913127932687567958864259680104829101100034789834833710951119088867665480092271753490493537381691662540611116326804540891937129060342241543775625331997100102759182239688156611279991445632345384034105704344381292451856449293824371128866103641310950380850442929401256101608520550361650900851016517362322122797810829795993811319160577051030426461313998720433421742681078887933800738989480997717980201859138278939877239323468076116543178169281182389845987138442112342665676039613854673486293237407397558550156849248752994347038985342195613150949763557966661799046462280176359562918508642692648781010483959557419138460127472923309320690782232444192867987533867596882035212981281084821647627839354371340486232705672097999521702510297664636291804333137224391666699660035850905294769580009060863443677942060207956861789519650800856386752643916066351678761691576591530162812054758941732692947805370400570038328294074486756156168600629285322666461555262015792383185855261643108521578074021902897213047698498931823547544271756887181904402477916556258933195707683369792985813371196027574534073415062495119363532511910239091574266887192215727871849768817344531044940536400742612032958046672391197910038687288869158278901747749427608404838021400433879785792539319983455373367069585295742087518577087312469703286681696976644662607165327009533611258485208068610247960085605712490613489705352703237275111770754278792593518697054110222529988817124018427456396340285195410629311697490805590544167855595131670273281787760955676935179703024654189263078933553333620771067154575105760808322057903866308043253206507739786979840034486537815506598194700244517981396075624233938359142685250959613792568067293215493271657481653969088621575263708626370253886429992165176943334519649434643794328936814544639518082488888462343977674820190804437600528417716881923327050641830259296183947126324128468094891688863485721293396165111793788909084796837824702288671604947770181979726530859883592786660867227505596503319661459365347931153055884542837048281021739640795450191692802575230489074683899994863430929303092777880722270368013374265081792165485011406232668167104073762253692405085290795348561772566287517757643457685347061684927541360007660848284074957160464498293163749411076939799612567512384609180474954334202591340351037539478076218119961661470277719654125862900042590004290787642583257220963158566233958798041161061783182396090802108245670607982112350373245617610392886833086596610081234105579088236140992224231976537765806343276087397463717036089860811502539161455581131266061791599613069274351803529031826263376302439752790752581187481585716072153133730578149424817169144663505987619065269634689723913411012816539524735931683971353211222441895097415161224738069245142895366287581069724789993832063242051953563868353028706590081866216525682741288285030263736571173479132202292555407584349921801560252966671158508543566790810667514575924941636748550872593634463051501896473746291646025530657834041001513753337443392869197343379917238568428875057279777593425779941878120609008489978445461006852029662853537293477573752516602418212952167807145093846813317133535945432156561235614209536714074678227894630108364113579704101615159945177468710446768103014862465819586065672344564949051912318235228695509800414547469167908855350298087584563282784434378475180267520974907718132885565254405896611973539199666144364296760713325386497197773456306873083943750673272053797731533255079802776821619262600088979330970082475209770026373411736041590268474980724265658940763296374786460964507811645530365884204564947651533602681943235218087137667782399197784615533678210341471454368825126555517500115351299578816349700361040875187362027314730272544787637843212712839096730614256646584160632272269677377351073483914496669611097402389094396992994769665825953541127750061959329739713923742909282860364364065203782562775238538096856902029211014722609518186504255822045548191983393355866016088315570214146395745508642147522619898696776841407187098510225402481220417799656832454181360274293024105588371169413496689837980190666115714151625682529714544286698283322716738834602921967429808032648915104885093488098140304909326728063057805657893348171784718123363611140429568082008845971386975416729954896448777758131397350090384533951181191723871871781951037263501520962656224144099714433965255641341794198587052567966624690890975497638363514454903681842944748965105744936037816596505240221121267623289602039361409703979884569492099291008686073920733122479758277676282782535615357842370637283849048587098878680505772503809499606498623319646343456918154702963044521105961511690935818962759566518798782394261262450344432400628491781102321681667218415779781436709731795271939460503822086651890813621993821608733959970625327039179779308192747678040373375057480247440413301509809831356431586234416308371713225137785252902389594345617119816095499749369350387860443107642993390108855333168594009868080963258320757712781420076436192760902884254468518924315182160501512515592575122516908581768413820564162555466594484774747946331676572549176518546646534629750178241949241660603759933488540873599970715599922258762477426251876806935593489185304673572885797384158069599169283682520335230850697299966669488453786053051236996573913656413480725503544887937580264953051709157782471214254334440157468714992997638861601433349563261871929840590540974162201059835216139845490103458384644519104808220114815090178408528765658174432206306902497407675256292211733028799361991833118524175270385229377213061237392235053202021470326274388241925120051310673869533539296638432427759512124909998936211912150806852708905895994102595108971008695981966435510304506838519787740999390868329837613795366836785237327064420398613139395352861492603094492287431112298632951678736978512679656697205891615095102191344921914677087840110127919197000311261043662552302416845585329919962447045625329850659108802844282774127076682338974895874296920190269760695404271034622629648616813776322750044375609206087371721434501098371772880244653352695444367360048738877396396273478085443169069865361295654391851337900289720514107237245046391002440368705865351646639740543725816493574802669352400346080675638396100543451511448958188929967188794005348032146440447925593655064667816157941893339394519079788314040325770925345113172482650911502224278004106619903286595980555035296979234372625656042273121082090174723721532823318304382881963592644155774530112176200081200384206539269370182926689730781911357381737090599137709374536149306185857848271717926003451866681068263963340714406677162275892781834119816327447249651674863411237028338941260714977252399939519062490952646308100660422954677182549799323675824974917487590755892490445566580610811281794448449014084602259919447286177653460785939731866545052390022236624490395815141497116005600690528954823109911379113774916941053737364828416284773206767053645959436258299980924304809698652352280527983080079498452348716195314229958312374214526890426143665621255130298849425564084003131425850928895130585256700378448882850956376493202449075331221300428945993514725237072695875295676216318984012248991644655838286528232668807770460767428631516895074417604035195348640540144623274835237330675102200473439547449724759870118283628829808545141871520405421570885482350135531276975163001186660143837221142517354681787747777728968180636983492096796668031063933290432267982638072673153227006676806219133006340556206886978212351969410134195427674072875021356611877112107659000694301444259184472688967758539413229193741093640065980380343240908000676708326401725423595192868850587023727807352806743523063682589478082910891700285275703192869495415340722541102230134236933298959083572260778272592836458516228742571740904356306914599748151138211065604525619842499444826698392674804168385819525523308035382911767248309848335939605380863018781827456332138536603839121169727837473229141630072987311909079642538612451321453785626042761264088514021573825120964635375717001991589795088434589191557575527891850893439323311932673908395681671160029689829424265581343052171900037025715230784167102098994216482538524488436019760039943684520734173685076961005815252427853018255630603526412616068868604020555284109612818887633001152905167179482026785514856826507129287112706827376773684994631802829838318579534399346184454253410950258476815120029309694399417982278550124166563005205178586448186214600225069213822975798725131780853259436782281707833789330234344876259464320846389420363032194836424339228646772669933032432094645014392260042651941214423536107925874355084189595970650115729808491149843763978602640073594204376792338180822713678916504439062575892026643193581138907173242176524993630449754016251009543312934428505378242898063507278915090323276308772495575464562329988362321239123905544227569125999960248072447657745916515615130431413018663145107677894592346537735697053744552333372732740060174917802187982357194845932996608109458586922060940695990125343116505912382886690918187195254759128763559989735169677885192576325527117122593348225632497173298839894273265676476402912773352886186846800352171042951231165061777710404869642219884912744678545799457365554299101853217311379916926698711119634339310209834626078133668856829445681109033834679461603340432879434612349611028564907373329260253329707261537328583468172195667915450383869626075763749984718571802297460639570572836290086570906888577768027764175899378638520917900605761874025349720730164488671502270210561565925629808721842275197856742894918950121507575820096114285514472710168131338055833965064033832009092261937640473829567948112522507902495059107460900168094483449001336491479556087773356550922494901489008462888285937765054215431935900590951769798414555521378463591956440785222224834003289830008092449025691286359428895994966060166253998724907372428445427659260873940036896697800556098393383286961011217194317546437194500870475744214845170229338098895090288476657847297235497579791525976281011257337753538822932837014255647312946635716727675483917658161172581705736972013314593623799961729945892339158414783868974199708194169515652575320257951542049021183377086423289873600605088311725281301509885954840452191898757000579318354303151574644361691187669737500942251428712382016294408451338123280493427095741803368103726738866100384440538988411739667553883914055966970280695333981638632769001389581468792790373800583770895448205671243488993819383841948927136743574800734923377814199013852709976232952664957910928647316536296452088919785142280045271400728728803173701713833505467692861980687118069109872174414602142276014124324720844637148357375164714398128415747422885756474743060044501066508123267729940132044221934562065987728757972508977228992676085592921543145074157043147137838772153103021539629893809166401339128269506444288901126919711381988984825406692025179875048200595067143486370986986038329409141568053745855336827034092509559018179001720159708841751754850405712038034799992400103248697399527417179140129495339989664387055921822109873143102051844169272856583068142749436150953143902410155450051903263654689165794866393460599739277904508672326455286144325270630081611423609002726093530486315688255485131905127806094604819326892103825114362887749955661971276393856527095610895030820889017536383968801045077259827153258101428964680960490892953445900000581763943942914416316288743574161439267039548122484904203891796121713824149187764340709179425020605828104446699149742861251734678521771933530019476851721116841639172665394397365872399738440649776480473118864773065682110037015793672345235898675264300193097932756537906521920591251273550459732925617477492721119711799393878205013739582191173342760511341148238478434062054362557658733632285041224238982115392696213236528097874344991219453702259319478751604629481893678543653939408475465855871991857054176027539493217945351487560729507577340320851310173221608741809550544227655407977332110433212921858189665491927960023967505685542601112456656589254854943202560163773873493799647922989420566638519372590546790366653485263469371538781693059279127699363276333327517915365070784354346898932277331710976299687125474142819152250959159919757758841549574972330688206724319591838841042724392380042630153558037770132132569488533017658168451819858106565416469165298591262211165119765375276857868161640924986614548145011997628049752077432574098769264623566358490785902695693855240035071937818719958294378295861313402878749513777788628103057827128217318252648834277528769074626181981574084699720664445375221226633706752240350663289674401982490201164917109706145266223459058841118329225015450869027188278751887121654794458823030406575571014880036857675699029572101076758998491363338379295261443444149109202412599684287588044922132209646692169808017957152743232332931242864667834478269210616902218791304675931345204185376330616478643004510179725675487839860514356589678268516604256001846993561095545606226295135629161420452808385881937584040103871817622220447825444570525857836178567346986595535156233364562026688057390603221470746736319184613047164157715073516990016093602527381950516470795926797551151906104562995014673928290256947603579721485671345604365921014873155193569289913135754908602559185000450344318453656146295973980425429293999535185970496302264262070748717552197221736501435913654586129782382806757451271700352213114309455296631943200790895053067064441378540997288105483955369572716168219975328706970662281868026583388315805527633452852519112334632504599537088297044014493366059559436618451133110872582427759738211235227305000694007895668551672605473762096983303457125206069941686782679289207695940001834624424635033012244553597609892050716168973354892481122611584232857803684209057274803962033599842551553487772194557859155748823904932234876660494398876471643534096991144978224920684474550756770519091691312115254950677206548530621840423145433344090363023129533594563215566553236396461006194694865447649393256408187965858649855286779231878720439677482191420873624002139522843757783999415033976207227844711009920548022350660129564786440227830550240793494101296900396879658893630547208721029598570904002990161156498354399092423185263011976474667045932034598438335863626103660146640949294264159753188565950421257374996508574682337888499740842861425801775017803813601136728979234567279214029187135819714182071696172939223082709470646196192783543084371585651435052432055355873142197589166441013700225523340943230504291777265737862971565451302345919184447186117380048750991839786080841337952532484848616371214778694210049175431634666404663720917084216962584273284619166983542755639247550343718896236984280650745537442831386861499201943578012310133302651854409215184597333799786479424924594907018260919109518791638785349918231655464581822891070678002188111347792307919925906413370712898416150103855654486497602231429908559822223930319834203132930713677924518220157129885798829030180659519977203395875202737089847175344544774361544102225670433723856513246541611581308385264480646210758832904855771646770981553804381477337968668338092584867462612204493877952186052220860221426490811520227365755832926413018030293610953847996457153139151834229435402815088167878149881929557439716395828473515640697314080849679164089828357953864027799164310584670223611847587785313790746396924729352520410560412830916528960861433025911557538359732616526191656189348591018514200619324454571846380578709045444749912303875992517832833225489811087819856075450936294600045564450125499772951501996596439580942302794857571057669138780297766226984614492357697488336732024256766619111302566103030075325606177069332605349098999158937826374796050707721612710957123824896810026545042874014478097440370043195113869611504192755520333392860140114437781628518789800564834667005003935342286647268471270878916705218607322275725441106539120662690940367229759248228238778511602305191516785812585755769656053494413534202542471658938976784870528062049022808958835953736984172075911683441808886337335081832807629002185194185614800049893656884442719206800719137461231609105522300023574016509186537290376516692022016050498390736563418081103903781953400394384187390869753485895808703107344283266207669039590242504061260235321107190428422195493328868834295976468368832472428060317322416479559083268893509778236313969181986456559273443751871067822997829324265510717636480933867999889930515804992711733567634720994783827595487994861218975478548214191247316183602932670287138250602547196743261841157517206767635712021969325209112692422417149578453887887847445940380936846791287349654307102907799372896487918534208728513066981742634730555755755081782092583752313124522108219794657910601734355784418354023242790844881298776672033009571910663006417158854669858902760704761883336443792093717165281507636203238133717884043884975898578432746014778145892485699671402713573353577589806762213619461910164198908894750102061556737210896008088333740032369412358615960061020669636161595464682305740735678750317372498799549017958626534107263353147399415152933093954954684900469644840441784853376506949133289384550008088457983941739569212035523627506602213035889961779546068161951056007544225198787492575069407591418670444438030664650314982497072643582314527417428358534880753842184673101884353330489939797092431960399149506916846269264715608349454495855327874651554091925063494381429626925309946058351668808457761188852545332500389461765213203801569464951584500102197242807291728289282054700452797745622295459909934079124146229116431592895916085610051385520379329960235767956588467724062060073479888949379281941930149105067323521584348807905177258424359764672284778980514816347775938324929332119379053800471097533662391846627704075893781594144241995351846724984445429748210431509817996712763403235390629518338220928191166973207222033138307290554000432728463278049455484465139508716597560804031215546573453164206352690010315792305151613620792974951546200674693641142212589250324197300538843978786174270411768048954209174505469393677679915571127044003394484138729111150215919734477390055702560588056386114372377060313004584642320157850790539620408662423651885840491626624910396822392186577790565952520556738909354999825402714089251573875085773860489652555163538936763222719868436098955483061259010784464484312736467216263509125503057685215098582598928414808173283140337727401751064296739338993892761007383017060156712590308283885108764981113338426853730626505293966920055916754397548728904343800645965915695397369399576052388010859689235295811622151387032963124836487909452155793391446973188858162556601984018071231928782762868548261274869797640314226858319660431292544433364811212349117689440369591052430262495696572999659013914370407472935624357270506974546727758847530611453215986950789994512960088025440294674950198897099867773382366786366728864251563190487402139653275322514725794099336234643613440244370562843789794689979648008841300430687839773986759200820606951318235939747224902643291324654455278242161853160890686539389146725299510055954769380626702571933696163788520969442286633659822833736698220367693590345168022051506441896561360099411681173759475917165523494425776063851580168568156434060494576942438791618376791410390980662679764126376211581702338213127255651412669648159443982816035838161717733205494137963869703679138739600424300125960871000177373773385446705939884830063286531363180312742971289478713404811997212232848678136153334118183984073256365863750099079569911525004634962402406174531450643345004430427059205928449312913791790772184272664485383081911941177185409492699232942753004375485140673541522880376480100434923294573710293331992930827605962118571097614053948302041274731513348767284496641200100584238476581219422357927966790728703331812619064937961485531818273956923359659287285339968268404773614885084153715828086247866650694236462053648891632451465783198714342447336130313019296134823492407257981642547208308995715112239098412104001754042445004372304511797844315621745169041204392997686019922887157019391774635824926380090696662984716456263052939682426378243511137233010833790595890510646748687579240418300954862470098297168003668325530294846379135840353232004812871736274433993364454284728299903990591275491474411687760740659016542721722624055073733749816047595423518714643435671809161876381013223446005764510724855826766491451682350797639319858224076053216456067101440845550576494451313438649318833080504807682018380416019945632619421551606701289015881965826098221406434094462917030955160888698979637016354962213877700102112382591713444605137286283557815605474804780338885551522567854212724117289762993302852013565510519442704749255069794226587255834063892213203831503921783930325423143326286845736849549280213723002235266915369538544087004954763379041383845659561475177345855131864973974340516992231901064877015821445880538017652200287447088521135657873590960609819784576762210218407920960437047650726672307547956960224002020127957366174201413236933744141028909683658697253704520953636575880197182423186828493805621389053539338255864885620187321909847474048224397426122186127652971620528613961076302574276276917368580341914711663141223993050954654774890006985158479257407449913621545175769876605764578294138771249198667695229572891220628858770154486375069386949771085886846022219014392505263105169091023750934652170124625696137181759677868338385348815920493966327565180169185521623354032253911468105141269504481812561085909688590519259699079180007087808180430625307131309013901342648627606145469525406533422322243234639584243769943153045108636440725969066248420990513629099929853802452236461233556983062646397804827423112824255217377382699924166360436842662765060813162875403523832848381360323755007436858512088313670558364472438779238578960544931784162147745154216108572592580387139892549830945390482991582723502277454124967005011287408831782526456837390324367725503813483455772613908366478261436226081747011848651113921738558759712905244026888153882338272130071045904410223057104278923846131042917365216701525807089449629939807439465543786354345476525926852347488693800074311292400244254037641389929229929411380832331970917379182585667694133470843260930091112807028274209034079082834802578900848707146995091865461497905715991003208694155558126486914840672763238023485901405853479743368114225389203349507020997271358511102735451453985295950439450652422987915933508603479795603213284265900866807454566961322431084199924949911310992365114949329186031259199536085484098181300696463539482641190281792628008344364946270349890981385357625055231273856701305968462737825358697298993233071834454610174945697490610024984237494262344321333366746395426820115632502755913682793337374583650646190004053616063916629465633611333155606968706382445624667803554903785814929586997714628891494248681490971177895323212403185558635184508035568958591172679024636232023502533824486271995788397100403089976724630712215717622838749158654336540811672474849445449438832768268983685493387497801953864480947453596821455815369131989901535309213697480073402159642463944896616849671573849451510424572921971355095037746982364323348923643843537384440985404803229284636753102257359092379424851164156278571890620371476829974540282849266586336124935598999283729809377826041842399495105463575301378005207673444223849494410577639464468775103885964238362775472516990837715934507890726797845874212950353978581268341236207761652329334349983162262147065265699818587173729073505197285083610826281739537252231343933587666511883741375053748049846820187777370379395975924889438739972063119381394076502288673907811789967786389565652249253534629802736841625723263153582694558622518658919391661522224229849071058643801091095614426364944772314603956210737327054704680500615773422347294485949803425102272711804464936929000384604035531450853695322721746569059521845160343919002555730327227952830782400931580903111206478225873924323379512709711955895506264050742422016225862598153650495136811160396786922712653221947504846142149809366688505981414454358912951452802568770749798053956951343815931762976271768072435068533603045887828498049829606818287238191637876425463039762614554006264463026567482285385991455423764416354038641993601609098128583275454408416150117682050211897551406573055184883862800159790965458104292892856060399472460681932107384852919510352045647784903545975097400323137268312150900715609997317534792362645688250122737611321586051251643715989335090844930375389959177105823144948158509900607145410374538062309316846542261192678303317829582171315339554146286037582476060966296471025775757802215942275986067693699301265225697153221216035187971322808823231723428924081315144874124201046559116591230105691689232518045516264450355398555615722672422238156589788886412499340048329857621004186829502700273378346050423658952977968077038753992721675313724571372689629699302445614055910957550300389866509240419017779614228513587245065415038537134531787172269122657652349951328697163863477157024317016639810921435782591343107867986443718732662665792151933309811392714520579322305538050222491014651326841527275161384217508524165658104233178001471778489554820942558917990964679330961996512518661449522832509032464106730674353408104373374929182030748118678933212605861942101315098990995012156386626884836899452946014891249332637352768385546670080073834253217279598658530303556228068816073215211238167841435246382905196958030291741222479367543075129418061669095874460269065070949707616885637735890868337904977768364211164690239238069618418444980160956440903796605034629840436212749439436298510098111295661729269707553354263890133714540510693573914026365347111314937088916695665863787277374238827654066363436082096795673526689359292011005822565374413388599761251123524260881441058778367071560364859242626234211530740852620069569711274345513756456706732895762532979803469118671461429525131764416018025726995369000207835376425653424729690352451500074228179282256323375931829199957237753932080851531089885366091173110550404827583290168936223766666121518270256457492218818378246302236960874665067205989535931240338899830776276834242383805217736689660926026946473902320697117993601534510847550608724275494176727631475439903553767713581807720179759185753725396838170389340832293295104772674941043365919803185782632808968492758834232688588180668033543234713720911637638301196306701105700783144681820739220461978676322026817687630300234328624585389367691740294306881060118544671686405979495955278971593598315370038904403450308070795204537352129852890702345643728959284627841169095692331568585575102875904875653238373613002368039187349852301052283634941191357449118739357683410238028007795061367443231359823294316795751909290056935926435292229994868082911470213490885747701889396806535458953802636410555650713450596964010767970110137775280195036142055428664061494526133305212509771570840544286395915227797554268219809964650201790117116522772274600238727081746001134905845816902757873582736015693705098839072048872575439164805504679424905946770272653860905732051744864450253362441683853019172018946426482825995273420600124396421525419493602969347401156012512543999562349312674001794129437628815268945278222146717851965957899792393826117740534962118442029033586407910595540290405572343511326114009611416272462988773647945347774583364855730931468551512806335095762216212375816157632789628311371312363344336763386988600588279006688910764876555517871237990198149916274737307906227034217541993464392814431852624357158462079376906405089406001451503088553822882846547595778509802320333950449781594482850464085145895272638841093176053025552697163283719064740328213305682274623850074283433537306748720672007361024075671004584087304692924920538147221966645145731769800447255147362050349321855211597698370586873809109636929517871111231559068082845285634635310894963348085198991916690503573448867779015189258008870904100580947773893963859112875977773553720144165548762720229036055573907465604942769222787828721214837104308937067372517271766543245775228464608818848682409017987477174002294614676862222229189750519540039380601965444272224869577446618679323436529042071725291432748066476836194817499981501216439588378542295541087492496773662604949419663616843747473753081689969988953863907268295291043108435183227490481767727881335247141561793693204480910801780056231673461902839048292428644820174300163664224534722433213093264443741779811714286605478625630267323153182146602892584985503426401145353680302288202348664304706254328867981519762434747331895056436816206627368517765079965474593437715263665486589889282997237057413223953864881637878712812858636896537163740492328750746615344746980362404914277536715189638677760174983107223517082781187482449024574462438800479125035109914602296804520461390069167130117837570770360270839645674608184781665962540243501094735727189779732686495977233664131477843898215680488565315631434726315507061383469462598384286248883115230125719700470233282174064606583108357903178279765097246499787210022365374761155540166445143870609112723495083285754489740478777116338059349051975769309523347745945609096747187157590927789561000853193976604328036699271240529862838626424303371849162454830337026254678846695136934721041090841675692920681953226455247929594422781194956938602349465837009263518237896742134707782797657629961435777938724360412690363856963523240489810299805452395039276596885258924149588069487985433301114811673841535098525023165647079823077276606670640326773171893884683876071761691214702079322825820587588178920586033074271875350253594674452784001788943606002292935923632717495724462221145352296009004220397707530971577600360195907866580502286590254060398518016170340243967717672780818262802914009720798839363562147081854828061434747001296525689803179554742963750952649277480876378296000243994120392779594461561213087959009116404122337812900657428730280394028870964125302172953496638278930751378605381054243050247779971963443275113312144862872695694046363086249838216506946448700165970518442948755921162825794338337611567577993227312711010793341213822721050653725670414984669226722652123661593506766610456355280757243578543651766440909656927688671937311867605517189381323224334520882088712850805683444954804467193023384865890662064361703814399627371523969473057621113890171315114917004088306365353471558558220691421829011728438281007447500181073394056155595314841565126450313342597127683392645738000851507188596223954335616691522603784537804833098098890538440002177887542452442578385404644243719873906550872109148387698716882633056300552170072103939474484378361801905297429489838303476709008532386320444233300424705785288762358918799081445190952528179423316694225392550181283034098657551482983293133196577871985956845569930984767694155701457114399061414257074612820750183273139920403090137735978577577562747146942474709354812122118236594885940177765950609757764761296226583630716345485557370945396723937229456423719999292920085104721280721707220393875714618774956035724135171607054399182203886922397508773864770244514560771945535354430108013443788071936346055830429542613060711306920567859368315600257775239648504686523254373854078078700627664731935467772907227096616510831989627320361523178450421587453140586833166832389324848616066884342647177062092219230837975445568317480950293857698062832038820635849930185803827181061020341762151750460866381250322761359599925509652577623190712436732617919489059283861529733427512052169345382002395992389432877011305642811042089604323504870048300376018399235739071879476953975779099125492332202892919933357992627882059497524807607961144578325472237449767852803051631937227785301514723120103574782499100083957355592815507274459341363012951635104192771865393844662472779687143205192824625689706128745028685100730801112642922431239458135035411862484182066971941988339396047258565878324352297716114300222421885508564722425649951559358261128906820431924741990815145269188436224290611152704262613626552410190881737341559091869976027045927777434996569514513895045394153992665910085970836120503613687023638313386324325854628141688687831511322847581532345870133601054585560034014349386626845523045807518509333137200776376455173094353067304931832908355418268016185028593294522568703637065578184642846638266293955452862204276211370650101239650163351192369900206218062002642528023538335157484735682026205369686072912452458831795174476003631579108123929663091657283393811583482944810504752432110725103839578497313578605254043797351615891805282481884704880531321029325904049181026392258442566547447369293271988644387144402746543684038964526438598670711785063999237092114331719411751726737429366706564619503719031069449939646806876319080322410140831276727083020203305021340605259509456145069068628023405953549144943277787167279803392582997420336536018022553748646894962742245819598421373529814384038157886234128947313460436297961016121574696668135303578535066125229147307786343013057528085381554574507442391842139074472476571474193851741458063115625987403071190694691373186272723683707649142944109639706085771008424865966578216278816498662977645175294239577062017622302594577417408114204385420874967252070086267086004541374862554362086072616274488986990951402054362383761738432005640305037058814792727111030348177552711389004605829015318892678076765450341520057555796677787974369095654042774576739716605667235498618743643260193956582461791774503253212586547996815099819772947094668075501341181399992316101382083028560061852322315023970179063295260551903831610788137495920841359130657880454877765532319565894460392289605349153489752246320887588179241027716013056061183832610927913298256638569443432561618047977391014451652142938716265502677320208566652745914257036254724969694725668399947595861823606673358834636494286066747333923787270504237641973798979020910123835396889823798462217680655662184201337382571072936517145832129466614553853285275405206190278216742359695706580717544530468480095715883001067925198383719639828203662789204645009129859679419968849531681682549288103017786387890191049073791362880951640548431957290354254395756485568292647954404947967803195061674655893285896401812361131416665015806767160565634304069173581834910121745436971988249671645378507885310720006790854029759940684583388902375248788751966750411495024878906398264928129305245580799030832150458190455085954375447343670442142877085634572915473688998866415251816444828652720007439884736699769785456477119940254763839992626560774276604622318107982022699218218875306570636144427792513077592314277233935059339986891915131046531934452294970711700603154810066981361757769803865736929575397716362340239863160795626713578876543284555240896888639209558411662933237724795950140462939407448894344916505145942446556214126801361024185316224449819397180808559511758684355854373391213649955259704041131611421810377730263648313027350828596429014671662134404044849626109508033204808635652948367538808503280146756921917249403898629662581839938516075136229900787250055824110065109934358649466757147952709580587634103870622417494342533719438070552596347391132531256676892066598481914298628349767002971271879092738213187612647232889028557459413100589782569833439943099594481057396320972296643721591320419987596640499467050790947966817641892636669112204823683565884411480008314018844689124688961558396778990082298092002244942625902473097131585346111582552979183816680568499785337758501426433728835701416165700120314509940311751865003829332370685410579571229305311179871753724689965550077461725871734236187095902327444856001387977708838828169630895939097961836512026707161864160990926261888489660551560028627028989935581918963420086972994148048030975213815478314230244979810279268614142648766863729525436494594480565545835287208989787170456240418477955715452354185636291747407531296561170778007772571168661802559554165103086819292033390140284117875044443468050040101302516244431814006702431037005379549008750424729677232930523588520567472172844566955609507442072077280020945730923206500806378882363585204798179290320885388620460499016888727071462916533530497137991961586954411739098018318442079266473653998811785457089365038550788561810710055842311390800683530498603741700327964781169794383537593377292228845218024863870214856069911064707636882736279644527964895876019832194681277779336340603647436466667296866390510749714900492318716995641193978889246690076837369293837041330493936208249424127394631778748279033043553456714609660948526192733290892670694411533087874251137516867641038219634029887971543969144702350717221983996961271167908767688681063550923357548073790348539731193574896802661584446382253019470267034161279375465171341448371326840136673417008882614820314939522252541939572742953372415632691093316844985952489777644467028445937085754654742204334541549376307552687609719432363153329670648732540141510650026365323206734993663465080528296156765355201625477763129205855578515053062556770125577587727213263074204876198122106480990147401631451980334533785282316688725038961716697310568136019919495177176710809849317424313465826112165007921492410535856655121624361455472781181777255771915100668432257900200059218991602055883958842464485043771093451362363882576586996209741022406399119839881628445820331538061085038322847187696686865656881118259425468959729716169348125798396876217786154220843790409621062405327490567659820612975723907884826579754448351612210864227867360576160826657177197248692664726526592255985570846818111666383787723783572480349424730477767915318804006131448878829605142744707729755701127851828957909692323556274687725924624017056179740444391361227355980791611048309796861650003948416632740406209571485032156834149473103454622781384466803388408676375207464224560130947242868142634481580545872724797608386422610255945373068006587762834242006900074515334277616946955639353925685964151632801986854213152193265753880719743575187027989004723889706994653774945874149897093647761282819276923462316899547310983203646929627731916506832713419732881088508846286069748050476196644257487297796872806947424348219268241812320400981899122953823153951878047772903908318187254315213219154189330046957832521825503000684660719888658018610511783915787423167107269826519778545097686302626392973935162978494444688539132739415656601103994177295016039064671215665932979331456446340714881355985292358708987947677946161710577603411984800218498254233480509266274773437685072976820695789628554742412956579297204510499841123095505432024831080884593372599721149262103110514577980794837087339541264802847526304972726711592073563532283529331787557325063297255958994131021876570595754997545635260934009418693985133198592611838715847401559010841604558388506761573160494531259718755809565217905594721241093077237909042052696734483602080142700701817418105225402172913154377651236159045678271398074486772652757582501636714140465798735855730568678222433675890036434179138176490056066434833211107141255591395970377210227179724193527109349270659386513662361258164079629901009072211429106096219608428909218721470559713115843339803103825511440879802958288475354938934742704770395172049701424324450516901157463050268299574806629670496924922781978766706126013144947579394636458050822233875059396621023201133211611294563688830660135989357685319157552425290311957503599590454938864094649828390293499962974106331574749322135692604374863619390454953091605161985353940577465064981187629004902253496065657764530294073724004094909123482419085141995094291884474048732868372726957518623191477461785193739020154742500588513158702782006302151452260701506843245795133912759413199396198761440499525468215056277522474820110635092654325903752618512491738359760007598140317191535265947617668989981377761754327709718938665993479432522579359083564033845821460408165583306075828407214673488018046955667716066628912287898173569419370690052278052092384094491099548499124277200996627703224738857633197892032578466948794239721704811260430914289113630924301653610727558320109706069659007156592373799077813949257429230312652029057415522799393055158221200563392903187335380183777813855352641415062978867176965295792666133463036700923197824671061927630639826926597949053963622481633781352462902777955870964105905611896337625687723712198429662415399720004590090702300392447006179072046177853829024035064384997019757216005683037860479664932790598298206655470630452003133097391990032239678379740947994463268933009783493453431001145837146021789976710646780058882520827170509555206597926476899264722948220008038746514216217466874243555306566859877080321485826577528438768201375216417103305835979128433027250893840093107723328379398673622165270543104306968941308743677276647009579114767565627971523114952173542690830437350206457967418491346727841660172839001238193387864536330344131395486502440303053838518501918851495922115718366104426012019387433426759883693495284577502958909566556652797429135172945052377277222144502508163171984112558629616742937301849310505984613767878531067420338293622130716002136176223818922183246090025904836586029907127539941954219260231413356825497967157958883621967256895463842378681566283709183978775475328047938029480472091075130913242873745137138807383395686800350606827475363468436853540835079596884544475917070278866078949811051081115147646521610266305879180222445593123811248109110235377054418606698335986438777067861203387240285209685887117958542979048492704680801855433665983194805983826237978362100506920806998928068987122565137602818389606925704554539779918045620279371849415442174255862713726827224511716197407573198298208532494088951387462223352651821269027072295114908582011600075472976927044751803557391176898608141089061098288816900801933026225720102729656461506999893777078619418548946418347554013102025274021422802449607872434444248576813639373096940037693634557152463018694845868751743182016528436301705159748993633315701118721164789158254719781014052256175523844476568312046084463731319077629607783794332756314735817070455223824244499592774456379343365840956610866149331072135483805438779841905204207293481593113031016947359361866345726907016850581048851402089543667877855277269207726996208638968171783207811111774378581316401739446896418373019665244364017148864703068492790738432746138395098821892697146112201761844642682976217066972966008022505370747193612659646772834592251332721472252518224504833650218854350079504495806115458916443610159765654967568561463318733667519623826662085253142484764647781719653794986945621976051147235145894615953270979231431945724342268949127081455061180384034138462957947234314519880322090842155913071452367493520960644694045072954332688130191627623363341080189034758496825740246265850129951779589779705466626883974022895773007237560786952333845220287497946891035829340685073866670801920213245948479131529917006992669264497615529274267564474785230825410536709084020566845048423713104624835482869904732125935670851445467950347365801241355953461950143697888321262653392086729298158999488342966927084507747117656460644622086730356308676329033503550560553542517663620018533416227513683256778124018710746877005233400637352686465643501410708490658217873318184502094303697966937649792203165767536262271208663125880749678791677031356249253108984104231680162225274275517323183513798770888150136392275059996066803884490100287916323448143041106249703047007328108928264451368120561705567517715382642486236364817533197767192438469548208475347509846276158377552917120358794638722053590369229137111917416980870798726620813953852661798824660810439963592075783778939712382289282784236170986126585061901769501967527644590679773830352209770312369205099281852438534437446196549970554140638896015061873332242183169101907672298531360931891799595917947390627298430859569282396274990439552509005408078786110821242899157316625003019039181433546727184865368227430571125939881518113371117495002554413412744861501452402065780113544569162172579154853322224276748021137200476837470825587947992314297693329364005373724439427148787791259252949799798230740900941424383204735669804888203040548459927460909693407536299157832712928117782486990966669210001378100914209560068027314686281007815645962889292994595253747518894878597453185116657998383550198173710330776248408891465566689629328645575687520307617422514322250296993544330058683403742905323568775084349589612780295092965056654507521168559041266959656915729782859470869525733379245002970214655146893352056677586550331783271899381757617277043423157927853973013386329200142144971007321977516660569167768869917480723416976878977542628038391223810657449003833654207572763792000122646151316308510284290658614636980848622590712767600654603939747533061433788778633909592727589920232647607889220906238629028232341325431467753024352450679108148589053029429674937174038308640080538521187578972113441790415509022205176957085042820878998719954375859502791240092918980767059683375170176751328451137908976533507693042803524348296815106246250515710649490567939882719284300451345019183283428760552600737368505696120675233910899233826779555916349699583910045480418114843038553899045181531074736537249275209027316856701119513403491262310238565549265023993420504096853694020905168507162527576320424095379699974629127082955107593813499471102748701856943549060640710819645926124164839753041561955277734774651260268657913716374407153913922638265766460601442272334715274809454276367454621080768323832062549286846470527825784530000859712282642097865847632409554581811546031811329456564677326125460933962688921900247636355568206076382139936219030609702556852484074573097054815590899086004512894112105647329346708607705018696026687284009375911095169575736179965815275989629106691988704082939722193768874891208506654431717356080056969356437178993062338492498988836956561394236234554548557899302037831304521360876232150167370383673532350368501568892136627704551298044670022218013738848987248333516875284126636832679367678614247930570468477143896134556042862086819264750032716391327525408996592125785138452987790674661905995738111620240278462414909524546037379641716885503402346966919634473459045800009396560270874099178997409684593341718745453616314067117762062061350496611122389815944956006236389992766209828801417764938669699649747582203610910254341553627226625551525677153259798382551232534251970136023543117756008444764480630997515645673185587911145066543272238541492730631089324560375619935611414886106597382644657711887895065353501089371764247619255268303386999018489086483070516864230472613333568410203047483849565338845607112936726691889520780142078482200461428372766142875265671500990477894902242111897056836352834802316410995691706586946253225724165795362785758575060032149021544166060178748944478648629498017417203454697466534484058029886103482267965602054203769026588676677949709357132021002231993738027113134283278223405586957443141389847136636988589908695069588051889156609668999866347708824440541041112015415311759808443066081406474227292925919734136693838613302909194678389008318831617071182436930677164858669645194896376629031174113545870863324098200179752556181895116566813174526272240011222507108469332969198302315072185284618377945043997668944659432089554495185310707319375986612238805234942488886028762694521336241454519898476842056826646675036060614409897801184581687185196987641119191030862633615173960378102782351684335200420344389551103674137358871721236095916379648520099116764670395354786316618299032445380872457854412561337498681055880407770174987027570270434768821569749503744158335241893939185486582640105384000284321020243183898899007580542715011432395133215654657712590852556890556946706029202829606194491326138276318273108599483104772084940700710764856635688411816898293118327201083547650377660458154296640272703672113714067475970055035009444865172617922186292502982838592071833752426027661867511223022492413218901524964090308772686376174306343183344140934235837535512037287980161542764083362251430785595759847944408186334636562956588199810048638623671937368490059467558753471718207581060672332961380878764745700772908428177564993787914576495465830414562512952792381981177992874428733068469971711227444689526467503560928990849361094165260093908902605281481734055713381019188971952833155370619884276647962835126772629072368150464324834919130212810919935417369474127143061185620632845246299550593380066341021673989371547888618777326769256596191396420719387169859660362775716581180702248314922413955754202382762422817452653118223015269599756957152098126149039137629874964709148920672372013426822350488745090936569974769439464032759193171008121723270165368626642949208793282875559640964487079932331143639032905375160876193472571419210648582233306218959126590326079958439389145882913327386070831256453363024221213442462862568228654064176434208081097310218733861362700000455221986269462030080427135994579752739775209033635246492854965219021391162572246351318025996986272865373795074386033454540275891949103667444076393169562219562843787881742882697041352473219931396641339356985071176669168946890855147324554565849332441096552785680276084826785201368860950178306631685983131407336201550294085925973720046775235824185832911891447125857862729055725118416413348674099253544761398637664996198814842507004874147677145379108827595877077796954405096653521198979682780597769328279712506621866839975279551169788832911146477750872000509011413928342110462431163117027414716180363116745962711889332126844433370666734054013482315772720139124163618011178007323411605271022152868905117983929499038107962216567444454065329406567842647489240888004670186646545135046598158652029021979287720877103038975446847978236691824609307188317385466657747312216110323496450977278755445845813003769136290767054328844282146466809973541743380692619082324537232474291561487546955559654948586911133538999856206120683682933403894154738898337228527971734601830380874682044460178549079985094593714162633864116341864753898817306526813637786036196179564400410624229650109763619399058216967360591178762928661377609958404911859786666795865118088853937876487612426364262898615147621619247194257606303303233985711422058913822564905711579026294909298099473733423519580661442573994321040524645185886617294376249044743331228084109493016832766722236194364085034560759016202047524059415693925308523178939836507837866985258327173367505582411699528316443559050226692138012412730054421950873422421635357329986055831577251071244681731713442606184654518507976658691852000995756865171632547082099349383321553255513695430735716872300657746324789235796920323182098783873640068053674314498714595158707820798996168410462993625498546570785651375863900950085665291323492679830868869160843902758619268020220919037165217917498449670276215652605964377764173084488897148921728238066463370560824478849590972105657347284684906414282288742749293295769117483483698796833952154552593386142952971071555254456206342115649216287219131513781288246511938774530444583833346252763780257152025174505773093975941324703777686228434055201846387779647102960175131214851331771948892696746185791151141195406229144740139350266986852817862835049090144578469566853933227366175062301537414317693028440645897627074703120243291462271522726118497910517737017758782840816986561678373114876309940616636713252703066777326431957429421816978079693840497912208574383250210157653525228489239164583556141939979529666272060141375946812604681479316908368348052391180416821968649845535924827698118601945851433386708532928459952102608301840560152190766709033500889232995618925767743784869664728485380557636027277525920402851378964723444035682224703720007943518217574493080420315443735461519003610466554704005204837277397695085994769324294641591769960726468379466965799230736695697976442056634025043373795798463842868692352113713467673470414140977380863599439340839647168319128383159197106730310783924742149360492674918896300536763651873959442186248533543471659552211060320207576036372836485249768281668435560403241701908876435473158140195914493633562402690170996235881884744723818489143709617176317430990754705501317582966118168527283442360198403685759128185587023327291579659931330192507668471789516531034988668281003288376646377807897815829807949031326007955486062793811404257472244981224015158183208787980398126853362438466220222521425798585995541453318122944195936248405849484550528526923665135621923534438518366087369376976001031169568675340025362211352382999526775929515643353515636445005410336214092047458642142586425803458517637175206195946046354620174613727174657962027120640782497486550439206101536894149301113421900444627927877049235725295563344924260662465016057359725176414456567765006365267274662325942930142420191197866239564503064754264251522497758404522010421125090214653188399606622336224547199795483971629215957429146595587892083172081592562555122550197842352786683400935968185091971925865329194500218348752515043863097938263306970459130696715146914722054644395857536903400441988741991841631872551424213171607804650903984201952404158789252678455002309542559129409970462760972508474873323756843197844284944820196445543060383202155306021094106845425273522169793225934021555894457095045694377402550116046858456179803449813582182169816844248919093582974818360447260378013042956695580109837890859218531345968117933412813988558553301003915474811187343986143726457147369520893607059206498143278792798880578493534774704880140398322217670858397219862877816495678619072192683539805090378413095797129524860778529405019295513115024613755578632197238905616168362552813955064213770457846049201002112342412694621665164427580367736186108050908357708056841265120158445137640648530199035112532650435848362227010180213953797493235175709756983269756035919760143829349740567971307931505528246190179211642289892780283473857284906007882959685559383170513958661535471374518360078262216924003551391344223646547087521250874219716474473499721007602174584071305952811837051441732466212247877629259962763779301037492652978203927789474618503366508735299007917807010172996258958416985187573972864355265452740213408388080050119120127140156191561870345598906845974989705625549709623937031181044699398959952182456220741876690737450674762171936363718510470700315788273015722943130250748955099678261620334408766817810140518307891683134794123986728129018394168847739447764049556214135203495951741046946865623615477331231747983232683470131588927907107494803201208995829227123412873234342853473421433017813509859235005768007083515805970652210951240348212214786484485390357000668510597581293394106269202975732535568897536059132420402707711884184314893070282509820006868947607370695315681688072488215670331614693889739866172064699338935289874768440961263786353735790537094425187265742375572201573272231300904171403578947410838304850675155519708074201030063869111635909155127769106936048590435688264371647750667571725149981836563238524919168942802695599953653933888593581824000985657546100945110979504216551879415113024313923763530627392448010014416600104849477386308233466605040196844634988113585535963984106637125320017462516605341291010222387168685446852330171776744939453551564522897849846894416569168007864099646539825435685316614635180777861165423537907951697500937062142177233389454565056535573946675061491429862358668147866405203643481845044044539884568049458689720562545863461952009300208830432826288447470502329868679013727915654656328781357976517014031640499869445016708974715635189978433070321614566433794795591842484663462704944960654008303627597602751292189295538743020687968787804332298819592252441456133275857057622232816180688674461430692496231489204608632359284232908641240176149004695871810915591787140568800251769067348621894016602448495458798311450990230436596084270061680481363707911560394239367047255571023880203955476279795633063896915380959893157929561785752831269655415181365988775714894062767104548915073241917886388027828828351113245468479557199388994908712572754611067501831554031981106547640738370727422223056470518196656050489684643853871817785965064995874977605842172664285603654789892979511693958297056947893650831135613245937583714336563039498306413375695949530686541766380968918270706292208679657803932948495547851218638889273211337754979186178627726165017698395285995790915510391148809183575663105872761209238211714344320612908124056641667419447853896886763786307220349431698664498066872010277006509290946830882526731899573738585571546907166464987955275133721240808793729698118495083559363703110707002448517040526098007039645826792151508669656837846272395081073783393175496039620851898787146236714572786056983858752584367304242892957697989615426487437882617799134542595883483838145898675996442807411709401825621813342271834975219744264771938346702351344167584359098889556302999609833273608526399770002035439889937814801653316712017127779647116675646887179343460269790039726614982851767062566968296758838364777034353591898655059531301036059854309785113264723480381773421427613891902386613876533673789382935224056171169301783103533028827395470818894383743139308370867406474639182332156277984424140953822186268274021249147641377305581086740371980964194864790756832121245839479131107843117942594576117073662583088450242901221142545136075086110461008882780226123838623016578064752967895292846237677322637284071570153751154813568767558083212187402137726123426117047947688974154013865001728873371695193314541643349409559240166549477158915224685179717650940619844653366636277940192144392258277824759101545679311579920210188716580857540788715186016157106172553929420881265911027329855582555539576741312540009329905591939977018441937619118893574495844003688648194556011928834756298588549254371882916632788215721803466444147831253426637756587189245194889441664032854235694877558444847558042892409923582448741478746294837770759856485368381489838168597752825030528730139785365291047764004429673012079450604430987140226071218492687348167916803052663737211125908642995230672110317716690031919157442974164257313649491522244677128469810126624597891313578593425203169129696176695377787405144083508351397471196758205340111978770157308471767063022713597234935274949714007217761888922816293252784554472859717140481948879300849100751940580395683749475085002935700237036126891238684388238976045926529741685787890024266395435965706272536217575540442512286578679276035650544217168520947529028454256062194079570997367885114490452925998108459524010812571261949475012430063194528978658498883021627215015033201328360603905002776292774244627542476206524216429733166530423924094825848155159805091261742794565775013340276058889943459692227740864261184764719629845278138835531738222956517733445748031742060094024250371356252384007634328937869236316194133574890694847706039671197568867492711724818821856464224172643395421302800122679289546911479412540744910578771888001849284683742347351562926822361938079227961588387587147933018676217697240555236330026592047542693347649285283687048800026828290063157826487196978671569942567449882700985256863785025443793875179399614521794651110423671921284876919150118052544081081990967106345637690580390221406309838962026665161511865670077107153174491903652139214775412116725584278323792578809778842612258280236988817629084011066766808431798508402870612723110294988320459089539326593953227270654787027431746749875090199681120769286831697368814463983981002345479060640067754421320155615823937386511261229929171151880903290032035240756902322938563386522041913333863101755658675296665994946567626277533399631737468387574994236116892709114963073531963058834398976792721177499785592169451661557997749973452938176243751581325409461150636267088947764485642427670111997186695978271200379180044634204038395640271207703531107216099155364986937387766246899445539131558126487222332146156055941244557568630990274257758590958408469907610216575070979803176227035024807773115881096145990356189566054894831707648354318269686696384355476627083591476435488202576217388585474074895470900962337391652479222998639975450910212425995735978988802466858650177272012486579181323542632818948242848765530508942402176297872289971212611508670467859991062520454873621845773381104497413422881188108834668466859947378152089105081406114555574771982183479666399537685732078176502370687141065693703426180962200961743763791393646298279124544897123567827726063275518166716723043749617478499047622895403611225788044294835528921978303690115367191584549934912858300036478348463549538074426993583965449354153752673083300596757151552488290119790699884709772134550570372251960054450732166833004245427434533262806875490671313303448990500232192321868220283033635210312645442315014636637543587506123602612671553829339753681286805590662919605219975998811173994129711436620637107948431868005659124712912777365179525588666735376261735813382197982368336553198937844294925806813213238903600666653989503255103502357426427169686091244847378803721030110463016774616233899255581097159158275571983085262369059031808459984569913017851523916141670437921496205733409317512703413429006909143081337158551521929967426900492943205903286667160770998860017115794683327218426857050163908757899946416904884927956391819430981771969291535681866142136954667266939584487816466004501186528742272816931711274615738603254770112850666209697761816803827032845405314579186957473606326702126996347624535210337972058560382430685254229436869510630965269620299480817917801397728843596830923234748096851655798698096592269996085080238468406848833484948011108392405726216141080157494370797990694282076669136361185679676672227214004633436767551936693066608350537067685588801289650997953269391931490562120976738918088702195107341938007591819092252202514911574374833689505612447058406474067910009933337830606061165244619846511473071522348327743025764426877214572724862367580212018923551550046474799119905359492295223668000950681775963970306063930402610759719208185592066882794358347240482642665638108814997797047385329171547758702942487822314459102753406389927423568145157813965513730277079287358021716663877119684783461601292321751506428805311477750924113129357447098038482924583935964077941732402667040414632580628620499215280522700096097534626339277403195582793453031579584433529268549980709177612259432453058110399937228868614809998381811851350817577306296599876558764132365024457901085586865272312108918982356696234350287017869888251554887447936406250988141978125167727239954633817780161465277393679510231130920157897214674233592388536531091946797449326354515632053739748280704891831707539790566940638072909127487231178137840662038417378069163747618761247143520104941527892748542343314416898216055661868061592827547238192525291778058299841547515569063190011814802334133924479995937000070063224235295516782610964810293586560259395014990805153187997633169587512109278643757851060800878068947475089493187060990254400843344940205938725816523061027408040950649699945863506610088880825276602921027176492231342947112074409062146361170443317818312492750891742963882685515624265784037977547815441929758528890870685846156707124667039532627900272595700440450385430646436631164405160399653815836838452180509106225850062144737746029373626587756981127891084392955578388378472765681501096885594289901753180891686276389877702864054161670263193948337110888790858368496306083019759314938864677671011261325759005642008920509963664880890585271602843181806952607297692904141817472700357362534507017772905893809049300310069107075093616127974433390744666641056460790981127708277101691155811421786071814225665648189886726572614141548301197449176229107664112919461637892965065455013636831053781467578667801094584548146304651924979473383011997777653769622031461247706155333213798530774505720043898316206592484019884365071811544541846860552152988825700094701340746012778005387828016936793528217384323392109196849648282455311082944275940606756133802659785833340117587830731889202651429076816939209009795924646378867412589419605860540864631179563382841163580232037186280673610017800465189716740765829665755184645564491366187831280482534219377173301551416053408320571464809119087447955151729935888163019399489656345488053538049598223591691564766205219038886257786884168610196368564470667444982670165907292222794312223138957403205895486653272734906451926133661154238212102299812052457338429400962560159570326447154079755837926584558175870288263708116246383530005389493728409791880161098420990469389211153391070173027568769488528992919264789092779482869548401327455295573623049562967268685887890439435295384366631907872414537406240047385200149630737483622450492846809053776546290853238189956098800654888399202260353656696325846190838881114184602325848874979757914951210360641111239971143610761757914553358601338657448618715158233756234959124224389112250685978411674709970788139484788790656353192098644125996621343233345793987960907694296668911143661945873848341758669974426450916133304526814369682762493448894779051430696982583018266788751870552698772000646867099161152218018204224787536983693809234839237003204117480476589446966173049859202600258293685006450855823695818321929308204982751700553484719871989019481931312162826444000515373543472181662394196741997824365733313022351476490576502735431006391945685856227500525675138671268756140120035813122290150495484106498008750824174356518258496644984863356343126859292196294489196062575218784593338290418688440665965251318999505565391724056176276727663448214886856610803251392955060678484850876041676314323483320624659956804634371155232038492866395440939345989104263846056935269969851858293393904323227499767528458038556973977109231374920465792646341765528386989787785613473830986012033222314986451910801033332344905944354328438919978569988163943654111538787699274128111913925558036717085794033550340095702491056331794858649484354056347720456055133030827637731862483058477022569177888921576825725392368832690701404720838543682458441875590142707360281011958524460277163324705591830847260879734106701616324652560817873575421044290988254689663454442561167627202958088453701982377115434953134439846926827617602252947299417483900162064990641692756065384529735775977328526723165773747612678110454789166448347564200436616911207670334609499862598363866774601708773699551003794422941154651862631851799423964869652066233572073530223809029416730830385901882726024638920839853784806727990670414187911293237874255691985242842530958428955139826055627551734521728739215887987264095222174926434047457402577948501737229553156174471149645740917486946917663400083386027964357023482893097774675434077704042217651344726483679317780049954686977359669999453456008993322108896078203261370609809411013099951334449806644809718533396739378839696726641225170856338505711808655932237350199998405500744502596680633528386291134261676348114502060767916069390588576834527863135425596779962275493570608112425294059268230438825541431843976799965512635822437283461395637712374471619903018071588805018182241623396195234677304110676290771288788697707412929806647350329676957234737732805791234785604908990020458180787209374908658131914203126171280776349041378027248758595157738656666720603471859175429269714151625930393869696105370600694579969990323431221076193949794426411476773614057693054273160587286192718817551731941071819201058547327259648414039828622387297906882389074109867385300436274322410726086449192846711508346074029551798217525714838765629612246793627566422955388850065124899723533868931564926561478203889187412406776681218042991936711409302332065301394428903775958597386179175819840761335726796562898590767235839556959806826112556247214136740502674865559055417748798400312091492047085261869499729191197879344044533156365155574143289523439431468866570440826582623770944611389838158326283819882029735224875135568957241143145958332028514416652546594400009155031882571210430992901017086326658101394734647308889676329035758640991569671180400572733237596910968006573811036245474114727256116368590136363332083980893790584238044618281281423563029233675149991186909945739708213557402552820849528366895894726985718387676262790219164520567401243193875703039327660121312757146847664608979689630246359228672916039484872686072834332160355717876316540758493493284850680798446116509743810855154658074932188208627514919336508098859973571781848326642821246241439406670234356471961135165692432234526277556197026343369653132102485090954045930176449956214219184793681475939295700175848224332215950607639841563463967969032149880844918994137848327620219633701535837944481263721564447315928677548624108457013135788822570077316204243977896504229409622491623005605831513593441060306126203681682412700563294410719772640417033465750450233720191494119005831376047601389013107979980405363506633670291779092162509827998955573298380391523468779466011055420503587390232924938580150689228335484202705547402728628777140308463976570897587848561569001416161368683973155632725747325328842323540507570235695041590216134166373603694534992247704294053355495739999001319773215415392287484710910310673523837568999829485260264411915112718863433601089318526627111756135710215005770220662251426626097641608685798323185466772599167207047439357044905418859119674235097247933339762716618095866435713557302060244423544830429163914286700359256487314038633290662414413883234224390189672495109773220944475147910986079715684674912194872378184785042856289251920435730105145504692971421903233213247722134075602294575404938891756059428896914947397979687401664355662854349245779753772104291668886938583916026475349255314553277899361274844771166643990783937382859498310799292790240627353974971923704794444429507840042372030373337648660644642360287391696930335075603823397941511560728054451745763643846938128777306652319899840322889845504867547435384167847894647702806247509299836054669325356540681856097251809873288351534312869138412002152315390772929878938683666655961400914135176004875955563405591184537631724527412045957036888770924561887363083447827349752540606501180505352916031061649866765212052796856293669835882648712156679677526845287339160743255822638695817975953303364250419802275456212896616323989225204655265986805598607815658256404327619198739425254162453395089515908673466620024598228930548723727883142523024880734315986957503896006057557927001889998582961124727264101523727276718903718983447748373340884998328697216205385633273797535382988857991816758698605276071202152625837845885362065854917845025248848129628938479983845530422354512214960568026850644278506338660942350180510624465343041099137489875214049551311524380817952780080492185938243731748741383557466708412851402499216156099748347655798954742737550686748105631771647099693431177279903907728702078519382420385217865598094854207308192788609379559600218420083346693707252829660489138706377377031916560169705399155517157310854296727362388526250596446718879999400376289196969993138029336315733428304410817523922606248640028654118330344931038674611122635884271056169322797385880181459018312842925747033533858088843088987622003511859540509146759162096764604098737585827797803594761995405862710437184589378467635987053582796366095696682818343841689182118707142602235590887091619951413143416234578635799997495174444945029141923323826343197174477773015227969260567865575644538066789078403807380371166348632040539716286398395311007514080396364711504314373718806648645388592092979230086548291421328188460309479829792595799862931070023803763376210509415927783208078869750892209642550741913321606790893059677596385885384641007652734324129490704900534196863907403293192636490607656727162156337799583536486974623352540230953341337348579057190626292864791867793564262584539123687327041570520205123906490565509749429661569717707445099464503742695318865934050034331784748041935310159165922788350030488449596500896648508137758326641397728242333024556083730054991212771564468083968624411037756272910526468903064155701964156780746298773509405226557624573169731498678269988474113019793303065375394603926467074881911745665402634388512753278885931138979676290682837287257445865517355253659642667949509150321888440978206870814802400908206635137426319577692690717952446977895296363029499086427779652914113392007340787458334223602517475323928225564851552720026976643670352825136079998625361418323650574065956870157848711879526953267952348459768190517997753575635890944434705457945789142052160873291622009689346321679819142531744420665308000894933202548482369257109996179381795065654068570032131732833427680270083744489628568126879526781633935578812350936012687091807946294481043775408644968528753382870918521912124649777322213638376667243482520454402674684679081168324860394936695157791546600426732394870330406673271062604161863902853376128599623533897865981206631006599608116010715315952847361705333059354172969075976067316097883946067620559676288843754704360415527170446000541092660260216925968760608402294942128179821877965547989407606349433312087165989982442019435283391427460278113350728438897194833663466671043185412581524747202091355816393930585527923884844746290663930581149340949608627528316720370085560617033342274824547604527637564079936491915597223830493122727445913776892001561153161121300381342061044389693257193448713710029679234962199331316887451966041884275538869474490768929565394558128082599744826101698561556694772351497666031454206537795955219514083351322486209123587194641116571072690884906812180459894575997097424251534236542983053268252187091985599997788988943973498781711299714368807055456316115024479653510101576502740615110336120256016256617795215573014907712294968560230344536789430918017621672480858529493974485251569285685821632782660402712379370478147916314455903741195147274618666922034357587052946887469002137912120051994802970439357019244396326063136079111474027191160880798626965567720672612186016243456378527393685072320914760740842936495823207460913468334173002782549424918463757289404066386118667947615339836827991646557870657167162647281370457286611407340957357865629186330264993073190104975045047507013965488930695073782428407322969075511792182321078758468236340546940353579749360026780253590950379153523193149803480632567161153124576807473633794543044653146797794365403288768197868521940403165914867589428330259422186749238951078772773391731338515895303488598686762316548494888250631326452794057655955773459449076384500545460995251509876828645862878065906534357158901301017954111222631755588820858477031114304452309356991479718651212056171476700450940849450538366827064145158434513161539082789223699242087899366886771391205537712049885297397864845788195468343392237587527412127217137565582328332548323145014609618111587429258076513550072848694173570855579796750112924936081912153002986042673844089256970739287195450420788017692392396036677976078156859298088956771241664309789942209918179332650288999370333070902950763652770379260423139284828191144404401956946314961777280640013068209295327509740174271405491606700107137682821195345995075671248139073875720776106711508686520630954082566299239020407295227189896887124776766459800182308687068696250302805829352987958529491682454407505659625938968005101810312066635300791598446929757211367566147569667802597840541816139468283437184802148888779084535606864800023908878039749991336417603211688936499480005669169271930752285572994151358621769933089124410668987152786560228738167872304987268234120131548569531154190192185364598264072574030382481307021820074427074837737580115850809623969499814806611425003447512602046414296007831322515524754413936166065003214523677212447239824914119921275985634848397098225115440680008764898699674772876370228535333582823391193520853580612724868417944767813586809915610326882809628172203987210149719387213729658648697582600224068249160146457778511556773346849023948929227879491384100987948775573228657963886628030433450958961672044551137524136610293289768630517487641311989541910922070952882178426680602055500096267106302044096173020800715240879335602806586644580172842083046375703803112887495899378548814571746727145320513362234483059637327477043433744766137745055118891673651398678319891453489042747256547003961354940721794565519259823147337074118647035221300538884283736652655358545615567622604407310001710439180341382367816698683374260304214013570385696102621424692425998713144983455876826617647354328074185631500825469955339627759649078625771898808152186185864595664124443682176893124905588863080170536301003691174280372358483398041016543641297774824401638249287635848466201939893431807697263699469500399259237627529517343344666481138908534337645135436763863498962732257910830117860833839037886761394720723839428040681155605742321362177753043874247308090193076142966635694555355420512977803278267272670642417602832339180995433298827246031847135464828179545292052175349644994903929158314632934577844005368786972505987772834294592399689687060111074295406967670828280060305927145187037444161222762394390436299008967378794714091917616054674298631625381891739012552496151360006309959431640657540713263411648621184077026583360819447317208543261765748535379616121000420906678082117515641254845218874339980761990672461637937987282715623647705506516740204045041187693078614168470307510517457639041706523325428092153979417322054714711191893122837692971498636314820902762364443183749951206737888732629558548465935205598843308206451708067977055270275149136430645309548303126190518094978442329877366409462348928927652709836678533719164165181316893550326792893223884892131196494581715901263453528766580106467239425369335762280377727423713059237078208839399802099521252091074886033258365065650368812933625289536826928459637855181120826790373823430353778141725564429177406781185662742391965264541734342699076372240392566595173910996733286788316108837035083722141026577585838133927890245642677872530476830758835845428231494618347536926546370278531234424759721495130155784792230406403060280592423569693140281140966599410742564878582997242100746092270111606023725387316975169953635759781924128134490574465730825220303146530817014605189088237391417434511327474918279759301362088982287570761914671783620900831866896922080276839796142598422316374793528830010436708450025438169210900636389377998333528048016996127220172851958864838433124655923834447704437353129781702318706406893153529140151477669542439337783522128205401839613350898536349718570228188205006875189163172073271009587064056623032860976365067602455986607822862286448982084044417971842209811360598838189330400858487472815394237364341965830531120993457555499758515955431688165129933716933823952645254278825062247469456252199802580887954800607177750750420462199682209586176091559287251569758845997502072703875617232470358813585687088412093962512134699776317667641192989461434819456402192787067339511565232753422635468716581348209800610776883422077306325926921422254968644156477719995868333953920330747884340850381611241963656846572116814030065510165390328566173193775667771866691713557450706405515504842519444521529429698539545677225210344650530732981420784797372093585923360409561877126829933327372486382096569822094102826835065726158254372187540206845842035982087731617548420676498700653490861972798064913214522956155499296723186798610725392428162818596648845339873558408217315861817659709193522472038850350984583051785553465786381070333299036777468286989404839787439640275762327223820936060065860394106457855039427451329532510052599147272476265131039060337921231306300354287827023679358586576502736117279130919636423634998795284187377441543521810363376609989411511671313550589909193466672934831523309500868105116601914899838755857403585969735962767390296125099423856605670643208122242098521969733665059782533228409416355419091756038168330929653845803766379946907745621579475686070104805129258757445159773196062552414002584200381239840493586058913895917860252431585640267708370261453537435093772202630744152179141492463893441923443141269748300202327950832523446346985468195364267622965842217005080783543224944578902706297231965608705928259162140183941354450176964306753755527955525994386838804133788468940544107828640636807378799240822198872482921191293682874962664110726863870477034551764394092038500298391037247051675332813743788576397729772669250790069733687357329369288533464906655755040983856657130200073806111007226710262002731881403600716936586231480231886069898954692955007943978399315492440419486315231656606062202257817791175279318686457899535681463649959394909934180339517737609282147834916691553354111497723281126751193099124211605915863107944583521980593992891147310784040552321392983090063649648652797799977074434747837653046794341540522546507698951818318769850832190755998723875393339656882111016597510273277424483356323532544359379250224529427668494270307625685981198100545601699035132585280392870999131529301041276430579173255912968102890018300207084254042284975534956812412792706199877519130361137439820292585303185855029575081581736233640312557051008808776069497195678140153383241028564535411526642499639729575693387070480833151271170092821028085969109819404855022570959697822439098422507912677715796587099905222505239748632100799570338629646183346795510217985994681795365405887708993266493703487663290999468702013870158164131651789223604586800273404568733389981806086011379879384994929032129181938020655887351243988064595904796071073578374457459671608905128183145279628798180750676341204517048858717978766668772255871663989502396638478502258391140193238030011834149607598725644159972590702974290480451492314555869255456266722502770909768358337353797270288669689285964394759985111703468657538860256398414012225269423161587289122574873050722906267037965281165241096499965361480779634478883684135261414030112078600681284782515026707002874245200155582918958019612087265733319491032252770232200059113856758705031277406969266872840639543287015310259710264634540938338277192060153406037437084337045901319532218345460321346670724984979193013401674941778381058230480792046392480643779647498092562002636106817880171873536458113236799993944497871695324779845287525334086441148416336909464943186170358540417551722886427673972783342086451541801223157417143035284555536835830123169512882876992042943987170040226799671316251741772687028111930601956940459489226755266513772751391407788724902948870055839398781302514277849991043546036661465647777299518565397333161829664253493264190052548233789786309250731661224300930642308440413538807385648964673388808782411939909873404993069854692659270956222836388891802135571134024020956229993309760243139460924522010439068017052619630739183261636066359935411798692597454299349623440910626465154171603868280031831902994596526068928477609432690671742449619170773210038498119177660066459787636277750736520738484734786637965790621564036129953149611963316237081217039944424409319325920275519930009389002130167241798602392629315826862465460442592523636512860400804395203421415696391336822423181055730703527488471073429704784083109024088515570785029094194549533114529566895578233943056359884426691833613611739151884216784220631195900337448723590993370997264792561332370943607327586437078546099965313067932141938384954704438130902505710621103694864472349236905548491713677956931764840455904224357735328246169221126174587929032529481084536992551450381070816186107292327549755022101625398167743684258675949128282560356404449270762714501594381491473438344141692788479539375378145466549351443501999669138557340950488920410234357238859630176783990232099159693242588334699653515242844713636612223556284555673314677266701390881878265799719148236825426830397814723263596915696111199010214933826481820167227201110356525449846096085028884396464653045483729616450791797928451394269963267692933185618817198366539242338326869448288487232084608951500393005250228582255057250590417190561227123604852255642742129408561104849271283131344759975909801619717822605870450492167654662926326199278959406665479561259791710050500416153418950708896065409036953482425954514490183776701734411419924321418506491407304152582308605684906545659805167728222523236918502947844477028807597443254395615108769760579167282803813413966199282156269817716103433359899692527371023009487743575620279365423019539230007453479006014236377925832327330429844413656345148517308446929530101781465925299328450404921372671052779529218782309168425231285964319830202312293583964747322957479465638049381976134728279343858448474480634981790955815106515853746313651094268336076703752778598524763214321026407648055513307030226250560006042673347820402025801113416836094326486412256612634083520239130985169649936273535569148568786354123561572710187572198270377492206528477199307641016699646907655403599782270062501454038628486633798497297411819350212146663594782975512333039250701819480468700117560898391781361289609039667334772550118124147263795177661617032372734928596477378040500468059403336735583774258292184508920245475224326443295248655018323471245697827708869851462493368484445392608113510310003975388165639958807516820184676409244832479441810233496263048487170881230730473811928415700294911568806536503141726383042488548007263589817293747365362394927539829064568277370445313680509592748855337833638260196925611328958115265708232760248415291201190670054590732010396434083892506203081266139051862047772759629620881033904546906266431590022000359110341243345102566292313480872143063468252232310531483155005854945706613185965373269765489875905885243420222667176633732548759311170416661718514961652037073066126979848935532761526294914921721534018358598531702484455814221711307490133445946193775867204510618625792885991870550592035280620846123682148112104598754352177325286812451020711415920570714647492305746697736829643291746120624113392837644006530599172225548088583477312198703154407590081523894194393020597792326535601500489472142678543521003747655837689187120588940649012086097613158683438749663328301930586808429989240712047549591048438439708707749013630775095687629466498401806864582566854346899114162496278463463331057897561287719149481832107358741440986346291681734316975528308162171485341767141113895517624858248252590523863252049731140887440756029752010691128112439860306857359587208262584145858912308541103144358791731732399803942764281897022915128507365790638353192122589007801656032460347463668164018530458119721524015755434657612135775716930981125813294001129384629108242098986914722979872149247630678862858953775073320787248114110923436389449359974285547239793703895997179136759554852285038661629637587515259839957686314181689059999292142914363394837335338816645946988818562609344353126664943316570474679364702792796477643512522200693946395824867705888207763334045808579829037053590096514079517530903825967435525978928999869746896453715689948928813422943103379671375356816709629377925180744842169189572396257838055308013654904160252402482578650163041137618967671335524325958378091395300942944623752214843488016710746510799355855567422061416412797137001874610100711648679028854700775690512076966046368723852048104355632938275397804649322048999932309349098537494672301600723581539519844286760927967258881042225388086595040476607315804387062815028016953447923510813342360414518776025184581347012925641886029246355943445509468908733625378922428438777063117005211722765965472834192411031396427158455230883923033960899786380670564329774988242007145620968030912888247212478567929663971635204256034090583368955246930248358082002360208029326086898345331273586034556061468579268253893010332276152203388265962804948243618458661304452147546407948288187589430589286090654222033805195000727314114268558514423423884915098653948481857260762886179268607839080100415375438950184898646306176764425913722732078771907192459126899713378693888986871393680592196156323726296660688473590560562743315072035177834753986507280063445064813268256534884608629633980417175783528253577853446673583958773228611741811452798214642617867667893230689258601873429790756733016733360033092046182084208823449479357256565475569879241504914428408227222548702705355448467264164914140796014058388801708985484341359741227243976779523057062446775902441148189154817865877912339888162076208657960052768794649336397676950051661897848529460967880874308341795414804993210787839936496404797744257577467404898988573916696274653448950708535970300879892479450353214501323503663737816988428319360032472372177312057145209387556675259431200108599615558262593013408728409476839390074240335025781422130628621501869872532222268057642165285750346386893966272010275183800153717006495739787307772487227959820688585907133816878623330800492686471614596124916540241941145302861446527683662345744880796820244853342642664197476296102483981999681154225458684104762116334689842864032799159127338184611559412421174656498523719062526416318162134779555435704119072168661820652341230561564835001478497846347232771799108064036861825509470705534150096255172733706170842913819141780063637160193985409250874286088106126817728700690455629862384121687788696646822478595759153871185153657975260232688541357195045196753465193308997616655270975576982872259627144390365063160769830949179480100800764479253297279293312168874093325046615964938389713552990988193617623047202066194131252738510276336627727167861622216094942674187685045634219052156698928253572717257600120451997614761513885843779608337410286834175213870250233570588635995748046691968132935236218267182595174836017483330466571709690026326759176412344449955431450106252029429852874992495515001166302402607832631896676470356565783977288815394504899173214649240240713209819604958653309131834316499640085193353776933959531739461641837277998661881873621305509663151374779436098636654234128755221364743825544346364231822431296135240548244943267172289387055680060233831813166947708073677816944125020019028502798928509931027999597215845184423615477445120433957525751442663916547734174424783518063144691523314889772506260799873644925331142369410836594756409266163803284957993960299792570240578521830660297700483864429849330364184597745724592760132207352866127101245051959431845009276110332597624939011031953272417028298855170244990290334127952955641217928128911302528138979738192759465576994998051693151702706605802092965814978878461690973190708811309935563466667497098781606158749918945372101022233300667228297280788456042162955303065418843146012148652946805565585500128499390921455132987622466086782205554806840176867732182513994732002190409288300417699801602851721107970525272833281489962629315121202735640623011427952635230854256442791048089350812812762784063079977977981342671113130197550428446084567264914824350949846000020766850218318409758030621359999819653887109067534736900554928907428119571308925813373103633249076075663699336236637253897054170889407598690008400570845334154444785985114505931828206464963482737233158287030272807683057637117588133992350500505387585359923750162305108763261025338431515041677510591734361957526060432314030611338370963621366829543410457992979360819738436530101873685284348328227549587009369577239782715558065376717268785544176841295994782100872085728670250397410043114888084760622228835203300430218634346283072572763803733868789346995349294449893339773200520603681118990929643525429507130770783719255776683938789589873457707150459482460543641763388396733335169955227807324154120118418386345059608151205482795211239048541542893532481837191567795856679286108746257523815896864972430720253113956979368580009454110758546169450321857882685010733518584222854790462816626025076734557729773637069844436745343402431626390728728201376386414048998114087941544522718176473128585855530475777070420501001621075099478449488664420825952370999641561324635599739457503051719570216485488383315827962039901246860494438661609324818456588947995613652013189269892682042715580633900468044989414469839312665750723426492519490583624633231422214374934161554747944444364758923638641028666661791907704832389809821756094470735235446351377888024865987137256859445390903527305250486528099900309537860251009842936603283398690550233029855985644247658719701618231677730193643568265857500409077953374279469444496964348492046154519371098965558264371172708439696359226482354311913547883769496159693623048428510425592145828640996148733275312251827211136440683279276576984007716658492266561410876489179223893586984248038661906316458545589258376353612325990582406059534669565855708923476567407150593017172748071199086214777014716492189662736443555347703553238587678238395009584007286339353059009234381638511618899163386126963025589928254578955603486775774009544741723793193290476613226559421453059179504436696480044072398967302779169326090203017179167009359289121781333171851270608634760384596374271978868130873232943957737686818933554243623188844265474685940139436592783696779137950057520735046937911345940963352160302494109639059680108821693577752736735246553118675403873230660596997181292167208254503858796182079521650691597551375599157615702012869476505179176481669251370503101029634621046914884489773216108250163603201428488865276527669641607825413392646853284717655660631920564627197349277204005113900235421524960694003363745203789465009801542185850189449848472423872934870765928280079360589774422189242814352221951715651278870257398793155007631243235998916694289112272079834736497665300751323672541798247557488173990238783026585353023368858713629873973567020218068733569888964939184303380956283844293917461874428249138857236896129409773584095863776790917050261520156108393110909372739287591358301715358748547007796803807807946817662691962159230029707875078051608838555712349591278176930202583193144479430675763966229637737259200453272590248553842740587786452570709604782613136909354443732466928208653635128337586466540307231947828473328830996917276749542642915824991596207105430028688733028230301806915401810628019537316681606956029704726432508381876388008254631664311674904896476025588905721376444387293554185014283926869268344827536922891136434876085387419199731207865382446679432170650569571609689579390252610954939864909044809034026816768548144567955989496230140543231810932460120020714074293540003256290496078066637319413231735399410117790976296777570058752088137957263255557123472983863657048382541512487628947418643415026912147375727070921869153147197044916191908235774506531288603808167329729971558004009461605607832122848967600689361670675385938863946426158770643751810312042451434164012294072927754213147069989051354079826298718445441622505867913902696179378829222307721558054052218182453091855945996690948540750651369620461733247380615770810834757919634409285594106855174145218187198655943811958344227845980410770451137667365531639654280219905762769920624858370843938473797545138192865561549620581066623969589040437597162396835516060815806812821861640064410991779202003822558951274761129917312925098720411147789002599837439192213581730039632054783432878048462883197861189970536384431556416938984132246792441370894647656500122420925253856671320159029624714727644153074632430085261851147301979886982303312600959508977508794066240946475445674811675999963498298452882116648058468229532747164294454512181097591040504553577319433744518948863441072914882958269819122602555874299048393149629871701488658801141180496854664577848308509284564105806836083300873922831470975880531700059202200888749074345317373802910792601007284074141495913142423211606696276799349817021746491723712711478639330797280359599467846531880911450457773427518060325195886291708460186670212305716053135492203832681210250436928344259734532019215511591510866023499652358885045724423231881047807508295842418392490619583875500410859274004663738116251927938428956155447645236735778326415772320437093790371315284219668944711359191280259997453648069647752357382917039560983740143606023507633916965050115551680605897064196171361719509574912126121347626538793595748302469653303516503643618386989104142358165536067538473923438143110983633389661575540178572172343787687798990602199027481571285521729683186359309202202721500676668642424341579956580226583954595559984705458804242598322966635565953250850055565900609754690464448149704332184530272455033547686280076608875815108888701175249264459909212421565024059008847152575251683059672793672545529230206878338715217362603325575697649270446236890744681824649061422799877843052410088508146461171250207293037258565393041805266018449985361108158094079436047037558472006110266801944877612181370212029355673159778573613459326946779727303394114824545174090237852171073823930913693268834993531597409325622345475500680856508058877553761430595547791203286152234162806355003509293316590996869563233301560232495586916593198751150238192104887431924099558588886031305056055831669977121593226718877702529523860497183335783781156480329438595675812570375582643709727566221142784458300092628693517547233590575952424610019521727140940717651174918357018563466815869652090109074084694850733067307964240455467712312557847152501280695357010003091856682709843803147862460661990672608902741208748115106810655803595374879960782641049455398983055013464211042199487161157140062228599282824131507251287703535939845411516182790234540798179140823620005311281220700236902811594571449072829517663833253265036559430305705536596726044079521721988937329267437588757666306090387108367487919008161013367385510964407440603755573428553195771889000856871156468806547702325654254681763845927737150923000851884896854438579243599306587653766937824953049008011618159843364225007510594911956852019602263738262470286595081679734118305094377066258430722411098254547942525788436345624535302186619755923041673599134954539038974314652392205644608409434875406639640804395785256416602330474342758964127450489618062296709542672770644656676893633607905084046050329534329344727527195066421731462181696251209596229205770536611454736877985944310315132403358255240036182846335918191438977482508404083790485263503118523185037142663663861679819580685212046167831448712445186661765818564440384844622639814968566737720778517129472636806227235517964791117419300635563786241769432788587704855982769842766641895729505283556924925697484096561551004095778878914879766743447271592653375970642059270202436296518224041907195338780237819902626012730390574943956297497766837883815582041428301877177286486564845556016319439773769051459375125794818217603063080501205155018912828739843305732592254621530285188566925389956686410807449884502353664577846179267150656164271237328994391944789380104350705424691683373888482266452418675202858633163455030961107908869793356956677393840625038172394648490222786194404114463601822059315986595490919608161797254163768190427409570231976530392775531422627291380699810242047032433367122038662630599297446844979168708180437831380446688940787647460087826386966329603713698904578454429623196074050479492890376471297109002303635586979289530506873279302273391738327046193562459509565467163901954874393489092192875241925353126185721796269322814867164677071243742292226137392439817439078480818713081955712700229734589109279422707274866294351254624740408579025345545877657655496036506252282156684361366947065967937352473182684920751837129871863697537772048053293072551287584355966617021783328293303979842275193536290154873279929086063022579983787222500995258339090917665588860440449024039387865412385934784359055384335907578552813556614890546236731454031308592891849328662962848517060938013213242643929427947029024873819290347318140431731251585980421113084621265954078039615373400276623494184120948254578450858941722711531386308637426454217606774527898694547489088956436040331789729632214011884466344849512464423401831700665812830517468402742747833703005812789554819511444213540934400389929074375709656535581647944166172726203253355202036143922274628196579204710489760423296388851896902210378916366087376612059605677437008170849374601701507837146049529757525699564609385439451585004738090785627066753409333026551776568934180895198346678188060793292179782249374139971523006895126117136221248578317854520393066562159579885656145818643201993424749265630450382399026322978551741743430486191446847498917390061537531513175797117245761121059380116024784477900073423001621615674683278823281965076885214709943899506730535416366937663273168938028643090502201074407307833782465288185375039850173881769479053768823514775733496818513544251130406736768467126475920054896334120329136916864294223037506585242114566891292312256716420224309636164409736183751375887294800753551403476605443199763884785694427732885357135888908174405605065806532784015648842355250640394636090142167539204744071237100568452850283185395650886780276297077754358164063677796204139213005067071986178237425182248920791268571434628055647547070847760751315480608457787495530884656562504589829500663841233838057695269198486332136804245714939903771738460387322892280114469823316954833668730390090929303240623122427801844189372818227127654061179935255977155942338169923819011890349708120960751845963805693232980183907411134645309720022423149584901968232619773842042281771820412679714170595877859415030604103281041994268116832988117600048294122710382666026675075157811063257989762427592387620981145016982815232473451096429035905124739503700557262698286948398862607625556074835157302274253514174818298675323776173415425832214302110937869473712245680601066579054821076001675580282108812379564799019348822160575314275479290289485350026963509386515351477565850377887519371684163277682157134626956867291010415482427592681759477121336772197921099204384999996859819379338324244054845232900648475985778976067142271239385750963739450777164126177176472828411753756979499865719534770240231368371848763460290654450883955736703800294243407882736594164269345329879409721914557123989493212842438735500591736807678255394252391350325065879707832337900935196704811505528821925455089766428264330898824843107440800919756787070686487801005136934292353981789429510644854236859456298504187307538173553553325379873941628580515879586473688533367019061268482963450797860393694865021530547390586990121782609937954717108083939229393791173069051963710723490477165568631133378875475256857190360643283021453316046031426562289623559301859036850204220008483418798275044021645545542048026369659157177141799340714359045767687424257943876273124498208562779462424099564080902939506091684285952840622572087393415199916629880464741371987576945437342960743850831990475494809446176536294997755345437902922880264969335871110933819306807632514535005597905739310661512007768325616965999998842695790607379653604040443926453676925278512265357018010098150694825528243999654343088684537970289145549924795326096599077050039042773971900489106934008817682304254297530273378945931987385718709556971493078538126234799333985676734396836300098303627315305622208547041447544088606995579619504719979907626173191495836185602232495375945027587479869166050116386692742273515467069832814895944025399039942710830469725570934801999720832849502177522486869223137999378086417040844631733817399877287827861980335970042320036886537241888801850774196080582172051034961075756668382769323795819258318079037165701097256089276129252197976574532978888427527222855951251311538965414094409199532243705952637821149320788895083412014850071717497679407007385763797602872036938466295546464466613843245377919779964109441616616984003146717968979305632723546069834953255147449112000573341554454096513443647355320452318737191612612188762562533660679788309260862743534692013895672543458148066453388615718882783151721192078464133637920983176986186979561304429334602684300463591300804434805670765246090275480010695301056390540828098328023665503726927540620496670229576759655583969003031602415656193396797866572510394341903527588211314936150436833621971978536769041992430970539714603888922964057185253479558371645415405562738699851782524292070353493707621494510231875355140614010008114163823050529049507509406954371054224573256786838400126987697987556811227805208022531172019872475749207754450182957992398678994148213794853373257088477153051744792262885069671699477272473731977285948400094458143492109366412059009404659986893363992700887319250926724066992740963589239198109180788431810649434977179279321039313881181077479608730148675372101916473128944798773446540608748975586207690203084209562554816447781281667098238033714981478666956155629109009585413935896255702240531805360048157812690906012341744315566223672047764026131575340701406759443091845662975057315508701712623107835639943917751269707850977627370610460057706606777885494438820937763895876307665531740134102706529854235622926985869994371271497071065216347577504622032485105733744897591380411660210649472885710467149034937414171063101909544160211446656483841670389232796055656709827081841395218116183055335741709098376047772035011452712517136842675544841645414525478581343187302750664271975124681023344970471587903679457916799067276020407186682671650561040895256995246086440182909414512998487822559645488325410192021365445197950813163704588844327099578444760342035519515135387951160335985746474055626079180031530123902602409954627650671455208063493615976148677331484534741499805180725965662041962110073714816377838683613630493659364618655169505576655400715800574209397454917477126073851692411656214841914192061656538664919383151359941571206340788349782203838943663552690371847222368663525885571970601465781101141556323523484692645376406497915928744592631967249600518716962253073477264602314893153534743352144678279984655813621962721030094982402000367363405194591057196599190384376465005183044614434185461045513632712685422567304906331357379556951316825594537620606221043072320198126472362609266232208467836960431733607556162358601676040815922660621750365530116368930909760738780776623876815336278658939161441697776548679078784874839274695150607921135702869314905768950814305001555060351523035920045364365482074878014186783171483529756194145993151710834204139154711454160100956395592541696150256123309588391418176771150882092427030021001258995011666989845031787732974687700954740467808993782689337846667648261187416938918674545566271252955601552700087767308588228620092776805673934225317708153695871348599229268088415072614729599677264133165494507627212580770377907806204135232994191654641329385044212776063889744420598063519198884620353213666383263666652204300648500733377678308132439560562118914102767327617219236726780030994084882680248430678326627978837468306645914170392642272197965886423467356984498123831286802922678021195205130242088563318992123023376821060800727263399922224138867064251985748553353507096652628113004021967782116452717552111664963621948388821398900363881260975211903444798191363627458192934013569102864398530203447475681886465931262836582431555029495377952259216183792236143615799460692093014346451892132728517192196723514560633737813863657093292690691391877577208687941463459015796767929466711684318773729735857359273430171157547499026989779400032343915115721088899051399222697893000535420325228328440397073987450922322849165914878782602101567101080059838288996349949967052260425920486235820074526386311556150275396408405033739785669448350025307919873602097444245663547309794099934282561750533455645220606717121000411350730977703162036674195986280452408912701807280422813973620815054391938667333283812927332940099050666913616603354086360621269327907323332412061062932580930840227050477820438228787047768230866767715402825691865639511849924238528030216307921226059768891298517940459991949490846944597459408107209096057665866799610483921799919678064816787391551357572612732442289567688108893619837036294831287937848752582411054357488747645829462016679894688873549268601182018622596163236107250528958941890913392746666522370981780243778331218831653770799622391251749502734126769639826792455372232342452318074219206605930520651817369702289760490210954378868535753239124646464272075843256436135899521135512010222270099205260116466400198827253116290534566124684383978633582798340931631722884610733377930547109752402886055003611624127854596520139666778374940948682238907605617879117474978673546240448064800932761284875799657896038063082025051176423629351829748921389721249495903476119449938113565001116010922748542728454321279658704865839471411980896752775508817596634465398462103067797532080518986336807294258379398847587459122382806288113847888534702849901810386241491888668548963432190922505635937102230484601630502002350962752643599829114860186277953044713921876879035641852264447846870274161961582030681009259686728491834923354909897120063950444949006091920444469619717688691346446688888601428955575190171605658753284529091181754114565926871845358227684676531717539572529789576552699880959329433755009097844072911004889502695196290623039291409256075455952495709208583030674913686513744100900962653179198497616708126698987906105108567983041790092081157097117948893584492957192637247354014774910519520487567499773544851817796574284239987330398720227797843218911979449764030514693620134223579078642759942264827722440319668022773490713576068125824304949412469886760493818672452323505236604514771883664963309275909457839597626297007865204001650786400224656851011977999181113569193166937117021656757995670339558878978750288357008350242738077762549265659200961189695652110477076845255766667373809172703415258418105643264559803180366125167974118181875458581569926778301471761274160781041906052112396073457551297511747909223455398850076408893498815978531966199354492748660293104665407197639034317351810418790640904796738543168323824913238219268465915057051540033433987723004904076628885173049493956533597612641569748364153793187819213326984779952133511999471824850458648245184964418698234945044425345305067639604570746992432822132629415995424245548795851871936806047153628344330818913364022596227012180205971685557453839472136937233632712609213075397922263688463429207782612729996966101768568763327155000487625567171768137526793526885418854126098585743657966267149773330362016322272806461661275722773220342774556653033747522139941660701162380404204141466173033491188479281459735334500654416590186631730690735394792842143031240057263521725037331616265439837412575585658928033498416585801949364732624305326637387080832480043052005112000906778133544206167152839963046662006363379260042639809664540875570179861569818180544600304225069876371923640373851491065472664592677393483502907763421152817435756389735925349121316267370236146075618906071538784911876563108500187566390266589579555104682265664321318836114295111825528115345160879189906311139443104848102751615911567895639700061379672553677964309230947612440000638936511756416854519678151941209414706685669235199190340556949012134855831677400127547781212697622765307515860369705077487687746418874987813796359764796673632122862535885122419084313122152238498247645033007987680392768373373047459939392870450581991999289163403692912673589726393832335623915363221155107460519812309685504453442641124981460689051133742839338404612561360219139749313863809837142228065122495404118615806093975066695421638972209228153517826857181293088307917261692163621055342252154630813636744330933134887355224401551670729909789455595454624229729425174245340905700871541124706217308272676174740927771649014371566543701849727910838934784758748712848698144669646398447375196174520282264461347083508892882124637314621017671957822370874189835370001668026297042842846472490550877820650074556995025367787734614544009476324251462224056974972930419515814973551646288986218316058692487061953989844419349649986761875271184440785711955911339565825387373957969096467936499407404845347729287604934258566931142500017205174245216340056374922378477234676680422944922697408404550930367241071502584752236636016060955146207368699824128383999752967830339719838377568157351175070208656436874394580770236858636123628059487110517288099383739435379537179040773176320390477079915387502228241369860750390653396849338263138293073960825243178120102324336572155488140859317865129061079563823759395930516660372555596765640731846803245431235574642669461866879922853260502878061605793013572177128821007749928733470888357012197836832189164538714455090881551856697256392282276946923280529899549839926351338048821705956045704308107924286560565594953369823868257060989021149374548628495883468085979147548443253405736525834636144549646895311918136264419469398785628165005034362091409164571764701818102186801212988898124172376113452424518987342909034102044176981146685203177824763348167718064440772254412581564570316536842310558198806891403213302136462262560502942141940259356621280352398706859315371880500918816203019604041850293027955200998105471328006926895088383556065419938760531335003475742867354284477280234478674944250364614404559266375907738225079214160708589424807575261914164904924067698129871592538928145872780448769914565104274805905108547283850146336479549403038868663343396390867462496116621163949652390913866253221845796372304825783557475371359899245575392402226210957399022779160871692463911916908908272217313023220503040287380559499560466247562720571526276403444817534703515861221764496580752246550041551065156801793258357526579249604538015331527398800378074826568287927670577131020928245856118927676883631472151804246022011937020733243966725948144086656958679244684739284187987066171541285309551684244196244378554244838193706713720763632127677946397778001114327151988343647739912691950287010711050203400150544714898066201440773837835911092698988290013608200040674751955904748653142147677763662352001164558516151705708318333139543913519971792842843152753550411287920524401260635306040944107037303460307722737215536634376769465593185835726875182236908855351407452358684166271322149953218251044032661243031797019535559744026902525195183100865411512483405135631192501663548508840257036283220664965117356361348312783437979700773365666395039740878332924572523398883842687011806759299544378314318939964769175102474463746486928238191972914618972652130601637511264800189250629594950015465194467180837605412760591583604167666119793995261004448072373085829934591910090065982529117431752320544817645211570896026503748980410055074275029267404306307716606546253756707820582461227687154272538450289669197302403238217780639613937825502203610176448522929067280184285906335775276803342616399986704481801991950168983831028352076968856773743073689826158692513119518771896290225649464612663091197494034448281838552430911675123952928806683190225293327371558042877436631818858906145756077007320241698691363218650816168328822332373435779302664480884395986243360727284668843186570915444282669374566594307410865881783510509042731029072404392198844005746889169987925756530913675431782559371182877383195503214900144256698813279080114650908916178069315418720536522444487289117008437135017724510142241689350157490682953732605621251503960855188904477492216278498649951097786502647918080360062086691498455219285963029707457341759095559311777950467125850777202109644116068348499145748185823835917355685224698201400376889115778168955293418225655264320142148982335680725505323366030563522719156752293168552303216129142376954852783064801900774195975878320356092604478294953398175447599981078288777313183219289469967617369661264205493071116380174396174652493026668381263743787622337483142925128454845624422500367331055086347322991521685839156676059557015099912318188171507355585614653585878897661050067808549165279455030871256843074744405213216933737615120524541930610094455059671514950947100644131685544952344026748079818873919776602282920875315407013069661284673087047821529440119249570628123894319653112674499194139968754449923498735869596728578905257382636346548399301543594247356810419842058435285401193382268348338118794488835634415562931234592166219810299510799799261866380891007623385261632469505609845314316007641016754778903432006394435481889989281469892214413931173978763736107394791752638114754942772485676741775357758082884146962785047663401954587521722353937208978680642582366988420894484486022237760181602212112514985626331797529113163494687150892325022501668761720776080601094094900338539649395436950654384517986874983769028595363908992371394427563350618811229618186092948719614318159176964651283317386606797639419269196966547577293711866588299538281650664882122301050136011625534872130107173638314957438963893582718321099680201418181360370007477369648980481579035029758511562110282818581265264413103066257491286883075523525709041820661895676001099718543181870628386348877390759629826589339891941432203440022444147491190136123597502106009442188154428476417961443763567557115840234504067392079980861516072382208573356457004908378432773121722121401701896385480796798498157818612799823559551764203027422434873296480418924171391494202573704377358790777394222022348041420389659079901836037762158397733774035756796812587792728819070101764537360485472946601588992469504252110427972582399620876886358893629021875034855270587513659232751691186461612071779674676801056560187484599302241189125007830875990897691125314837573009235382277567164010736064887984011658584795100945066185051412385743329126885032734406199145686357551904769185476190978589368960182154492346896774702266618930568733835454148465758405555797333225563003135616989190202835928109602605799278185776910856745390494183364965154227195776616748161574216664503448175460688112881234176462165955882212943170675356842757264430341185213030099319412836058226847156309057272010834254797022772317060605518396287653355389165580444806964628469940174138005030645639642285792515474098493702312952959799167800653002637310116542815842338737510297965893281581064760288530669529457574200911184622551249344204292481179370137508425363287354147142699994592009003841618941359150929366707071435122898399426211219634486893299057425383725451736471809826405426703735056061803456237154810927382056359013868758568007634442975856141399385235172149613614349159806508735714410423945117350076491892470392591947410180810079436416482921217800239965804183772362965614751315456187520857141299016785852082306846675575567103616163687938735926345039861935377093241593553751280766426205218295357878916252022079142773645119929764486578816827683623163538333791999379356195125883806818973701255061353310256990512777010255211999715019285171960498342633755751622530013306099268258399730708845789509324963434886515387284028803771184458888297562647836713313770697317964758527006278366943924558358430073064947422396066163401225238943839993069996212063417628096388093898876735847408731293251890103939358486733750201281189661983616572435074870840515062789607013797156252471817480524458626438215920454722640744700224777832769430749607371623848148154770065646852786086084298844940776622749601408495573041968282705862771043942662999121700120371211429469592177306235529226148123873290943744295176190361920531004719506312822487671502879234512824274913197382828519057312035466420137748770387183916865265512201784435276234500263002041172681693035353716145475658425934587774711900108629038621385437786621418318834808842614180532993779301352295601841016660112382794612869835770886166625380278509258642509632437267580191912113918852085471812400027332328736245715742584530176270582868515843345709489462568680660296077303351593022429291440267525418378021221666796452222633954274774091682242048633192128979695266665029799263263651497228111407430609270793540058617267039439612198703251014360645726349587317365199450355695749707839461855554771671468254994667958221502651534625941770658606803783229020818904385932723213047740424168803486947746750375595443905291538811774365865868497175512252603043839980455472045276057906162864746743335075736615449191146820032770995259570217813102881725019350376526134263462821447551856211560428539356124734031251019008534751552798261911024208244644178095436684575248452846758260153787618377561428777546575033740544763660374189243882488900474320806783163102050363096742397353333549480468572837267290600025856335025726746522441897345183519779321063502661071381561852328209399022927608842186028887703977320520963697974362350609789971477564308808759479665231137249587449378732485370145925472497121638901802514730218565797996246790012657295393993572645248876657112855799484699777419044241072349024386649217873423981646722444981862547243906253363180414405137198452068116333812915397715630142235054877725362335137511331623022062513548624955664330929833986933279223983876516176570682303967084063281135962545855952400470772461030776510227229558889708706411900839723576713644811405917696278057619918995813104495467572858546743854657792039152795014201636073285763981009604633541062360064891661179286531048986351702642296788815026650323963962155533430686659119005270500400234452423567398712686197608307814889051977902299703657172279699304689093451648241170687622671907522436006127320036154370717362101233181976432864685931531897306824343352545955492033337766208630135939137918203647905635533870339023985757533334260226829755664939937992180904465820855391611984429615934790718635337999577037935916283007526521517903449552607428642584825464562156864827202991761610611615250695165225364703761891858847196152585385501005095420432084823048352138149152309811626995300187789185854314468784224196120104023617570559532939130290455185947083174126464807329643734172064425981408516373677353978700302325199467839574230313543375957800786321824896699642134043059171632426693122873159933109956123556120918125888021015604820497552976529095433915809261875045757052519274502455313772876522964374888345590504100240041819034548666853266795659809288536846417969156010428255881805935183150785034545916783433311924069483097316029005477795177904145300593226812203415624238479937848160707478542934847374983280923885798057932445593950247616032086227409534434432808631783244348400837760796311093784832124202227260884423542946272819850028604176190669984682596874949404488777733007913086775492521957809466799009050052552923385771911629605349372764853551775361953960548036515921774310179660378550800748295271158816120436784001252120207671101756513931649799664616594425286323772061958033862809461776522388343398426400392013247822236054290229180840355937512755121671351422193247599458941919359716087172686192871728894105493456376690355199044806343389842252442348377027910151433627134110053096765397213942159793000672510654062968403814396768640307047845937948271349460592420662799187654147729624820190974133303511385474507701322833472520879695102639799883967225051821423233795119806384703867117396664606624766662288126762630399122503630658896650307924944079052555384627199059364744353220835193369477372306817921861179089858253676734061397352712542716054495258705370687464210074568483463158936305214037542377075493435826967036024524023857927009788255511489622021830424241226571079763150507592006206051465161487147266767437982427270358555823892455695413278144794027056866931358571292396550488340202080724226076816770127032319179389720829113788776905321420307540774069551220833621904444660032155252673404819039850704933026519556110770968426731232303721547388961318086080470679698710560712985263097862375824605146367891814014474334065472134181617628953690727673546644481513344164401231319407967952613156600142002386326811651696815080546970237063488596479835052655119682671272818720528384703282589612425117972990897235759800992096052792572929023423260428195293403990207698105035365130557886782940198494163657329303084912859983780685658886110868541549067235945776862544483606681153367066098871773661496028329472490470262431232653152499557539611171870563002891417112749536655739889886749030991984845048712453993191788103604593415361163975442015907662892578264812549148612557589872799240798442266505345238330132285957799042250259474702528111323154921813088733924295662175375143664412165609098269050415934569365484267736551138216147894923808275226648131810229807276641085744160306081159254953317172160400144489328419474366852617224831106562970327892480841631865082342527615921188242748570068320527461694792102655503388784486283763327996287582068083008724662239898077011919203727909902977993511832157405744586791623441330451287294237128906051718233078002968538471581950789822089504629627633363661834504953307994641705122782057508466269295281095680164064897382980483174916427279085635461541014179103934109125822400098620422181011527231729040946754486985425675364962487391562101742050002053949702249570114543830495329344248565853666832893656826814046772723125723830897678051262415740667998885727581850953620767280322952610980703706111902148021664871907049871357788711770543480219579510340942347885375100859466287251806841513729316172087845922911486150303644618398604734365945367979604875805536090629584876476475002049243036269949473856422750710359110336180265680438076871900210485663822152887813858084656230480115663997697784959879771748970511776242498704900767580252764166940546416207798552377805102737025983164848538237424628837148935999172822242522501012183183769487436919448957708215717020499855928710995058783425254138279598305669564604378698138503753768380847504893581378932028741678789535484694610056432390971397874621756878375160608583815947688836036626043979490200576490862124767461108373611762760814888864726115750670180501709509669601990404147566494655347000403898485767002670915041565070107556481818642210076602877081781442608809412758499169858611634979075502081686529496484506572991406203876373651411362615666739569646750088686561922457588765323108791290993289566960832663008955948808967918696828681359224055744152465949748504338489597443901836098932499052678385013580502946244206184248792615666585632096603929158230740514508688367944053050562406676647886888812739751768275463868479606451981925624535218817068118466553581755181367856198999523623075725041694931795459385367281070056130644284580801817383974632470490377281740944766264901586259195517357026694016911746900190703578927198132372869725440948560220560803559512349816552885409249754353122638657734031005051441673566904814293494384534143553793752000962844938075602841872207476195454255015785469709739590928352176415661034099432122234919588443355099619195434110660423944956663531553204735208853860030194321347100292136838249412674449671922995483399768422375530465067959102667522823009247108623663609922499370081209244907159255933124086690248502429831654247336611951661637207482984626285258654017046642743168801941628510377054554659134970512688515159051608120230625604170890991619432993060517588231718928700999531240137170800768542357171773163768103065988151227670726591345378305229640388095471806306543440416149733778063192281549817874507852139362182480554911212789934665675968315135664891832037073977060001486937094019977151046312535068542054414149726642685957811814976748508766905891767266584978775139986562438889055625533395086491693479762036506701482817732277870041190999584736610851580867962207165351899377406726401942082054974513503997998492299737082394091767563661738450461742349686648272822212688763531426303469763926145677139146401303447371238081496322129656049975268854202187236695232668413690034806970302598960447469852839923100520393601799681984868034416676735417708446166084109200712725642348280809761695525769527845681374669610051878982230995694976146983379821646044853276563243708493496271109730921069276263068188700083260146333594371818166435174160855126934116469602634141130999476802631792200732450893680803670722474454019232187099617741407100530949563476267089538302684760848578506643130160510951833525072034461312870992861981553894901045785335017490259865820211021249408579211863249280549825201365942574266080824397094751087802761118217396459232576693850425282277245949059176618284907778854440100069082377150683345098710769969034168188859296441716696506504934786220414480729871363829872193992182365476737420807688653238853898426380738157255709175133549822064246105072160745768424801245930325511553909430458924917227664343554575044266852491919790394498023642050192974748545885790427827044882516291283386317776825521461292103281747166498735216716431552578808320188183061716262352951196495270383176363742629595946246796687000847853980605477441287719787622874778666440192806572402557625959293742530694557895677395005161828327164482367745446128939962177065033141805779103218690004340049760980688628657809890605182233661990285082366240754895305532745289869610545489102114751733217593901815768963282442084555927632790093654614215600246952879626527825982370688262767827092510844858289849779049650972165989275271356556991303286793859752107000326483940500582353696292488061741453311847957792193150752775002434536468267802047808254759948513217060197375295093266042126025709089611536243911042685899126002885851310376467229098939504196705190927622219802486847514745413194465908771383522665648617065671649729469991882920488772712041744274899569591362425982766845314889797846061452033380561628914583540348356719121121404957402772750013750808378584256652985815170202786913484959724775367212022004832477685391136120808747973514804960944660943581206056118571857453286800829838182050213940394818485690417638599793208595870867694481949632466374501234258332425766484721131862323524577290647265320728569903837819695203155146511334199324324217613958815323288850611949710992757067910885590699667712798336339863642094532440432447258125838147783889298303809088867386422468668578901799711859158254143135683098179420872764241216473656152968631525203846819094513933127609438933872427026029748977171888910775581484908840543583737898505164310629491852015668203026741958748511991611347874568538908569292363732787090871905322111255032094770936575616845893597633206484417707983679232698082585093648678109214713640813400096007997115147145272681760942806385132853903467710104306364001584698717132168397635736761733884015085602009761995535786531109499146752630568000891696434924091242998622041936926865361099574764616906240116253484894794883281862864991556922206073324943915464625481349139955536424174767484998344143731476430691042930349643865199829979322659919870833231476608340795291631372575397518656528600942244975012005772192893494157319286790323061855301971819266809848775318767931939264819975701195812794353619405824451426116880013689314937705964049249921887518047768236262029645880080768448313561775551788611782737705525045505214013015921508552374072846643830497141310108429059980224218386034279315496059276964099522155720742027941278337081274730023855517027171929978794708855605960348981981883305046439548904203230999078798451995149222063669573734312268393125746033529906321618687286746321388026511549054484313038418716486806624820796292020442582020237426912423909098435611010245479093816825047673265796544869754839394619423295286308589748435757192470704429894842325680586784525127823417188999249791564415554737196469176123781804404086600135570764870158568921612440089674849986198433746064831494773039392291394928936078619229543598171317668349444899983961750999561922188599073479502803597788304695463526836071206310418987990182293537416732725166936226203428708452174001172294886953555138433783593250904578709238900585831735227380682630654766456288519464160923039089825591024678967843492747403882267806808096339562381887072393479176813529545971902488363190522395827996029447174791305243703335886843256306515754059317224005010421722134838368169146458732296548861920537418146382244546517347219262040462565248946932023462650062420557809099101550853491273716868267283269602702502872433726866589211363696127117169542414905037080281501034921617448590232618996549763400654928712460134546571314029570066218685831304914312457306703843919312357552807893618519751678462551132695772018508271388113018357021577382418317692265453087854223675501813935820557814298602364995413129429478954932840902198578362460374073482673247148076430320423528037809375690956034049597293882293019798511134055500817650931556395449494858167093893392533848953620722314588992998430647679076737416257205099864418869081936747034060959891813812427079189179728030244622004731719288102203506050932805170430341418196704594427848964833065205977228019246385148148599690610940398572510020676825596782189786120122939109570412602826125515592618506499987812306438221994506848838432898756085651654523767916632180690517249213509164849650032505297477111634348699270415877743542177496274935823145829450570221449513898077152753390032495285195306531288675121032645434445886304734919058866778567645510163295830678683625898672435346047160236763569483786488475126843901114667410882829377079944014719670346526913706429535419708298897504676083337534137391533248373225298492710421108787202699811977602485416242806138952595972799364287399242061274191011259581246433221513835551615590145629037245905332475695811474463122907718553222421278413859752143491271623266039987087970541997767354543870411177777045771950599652107231139488229154443908549462835010194435174987840558248816243041096296721565497640936826908332184007426588051604199434819790717739024929499031198006044171382582413551704875778416451134716127161448322140645548087216449805538502916963059755801778169259149928058131332226439238352827530900216790598705065988626428834933454309180494471220640896127510146735388897984855027918953293139881690551081774363728465183342521858356494508004118159445329045618660178480610500888136091139091812583902323294913030164841644698936779359904871210682740951988819108081448326011969231033339034939888979090274821050973332807879197077242308069741174426324889811965839927114579802705430607478263949884415119533910072056979930198659497716021819654255705907909524151632245169113254024543727229335040564363042918700452613962516292569005522777096829491745193568603806413567149663766604727751109493862499590968838676339294417558488702128858876950981035211671508398098004486385633217210587954329037564973785977475292453336501715767060038219779013144642683912710171965677915948137452305387082505251117053450033207299861635775108345073029248422687987429425857677077287137348939650346419969598649921899598024162519116629236935756028156220859433570123224172672544687583803306603178537956425507614370847283668574512042565463173223122379072507097955648779794736911144588241343349076031235863339790182582912493126568681154927171715307678379058354699710446824112074041839028233551571328847893216777326775324886825633078339164740514149899397077401301128047747961759643928450954602145729946967110733255207225474943041452717064930923884588340855340912213936284945941801779015047052551937045206296824813754271338366966705418200074424994608025812397992975643363721432431657122239942497604266004513856760612971797147553386262940085871038921446835188858774994435804549479094316923075956336088725737106404523477319283350172433568730278956570522191478389852210046797081328530248381609789294566558785435052002791232670187618447744184777775843691233879252049796056801124746523787523210441227864296800086004930885115720926872153544038049955169428522246776866578779495008178059328866540073196901489100157152141069322390389697269271804643059256635755513969192413998108603279108717810433334048862220043511399671677333992975188283669689138135587260407326058183818577871434171927243646041988463038074520545322378323118298470204808830992527640210363184896865275499580781428996705677900593852011250287369166237792477709529002826052550737778761909132220346933039678941722626930008590441139132166477198531700058787321307348226840039861723837461703699421303477874617964096287550973664252995508752032993500217905335796698798047808592594440166273856180835274027785472364980587737883970008480584446929466241555613419712966886614268964473543700960540884653390364336092649071349170727870187597963593334957814120214531670477435568486098018882444431518823435525574743680235641622695781904152791743080260883403800160441706096353096507771993279180016399572733752891126510236176010227940814372534838504529120871822803692830186283794828895906321092267368335533414632232847753356943667404333770414679963590106006694533617153738793587379269935715148792426960045517532520223131707247010387848313308148618230057302610839875991006826323349128915223791951188615431108868245750552461727973590368842592687409421317629013968945733491788598908192494517909410668379213793089630368225610384184072552446616164104936464940989020169289945232510375289872931862467866642543421386723046166760357944588594252994804519786212538247051783990204417375979733434011606250203725725386640388947747158203820864185040215144596463594135938290998589134311461453083050833167617531544517772347543194580795660865150475574282628397658690081360166562934805418798363751215820101706869963374307826866536788427783289161792716099770913859788778626998863430942016423899478448926299130803800688466472402664573575574985742919236317557284414724238752069130232721661689503608057994728782111735592939233768039227198107237044683437786393545508218004070424448132888825084461832914763580045404641961515367535617645432643655096358111405020421656418602403463041556705864496026178145134885915582204619650334764435436832896887009390851317904565500743590827811735693947015032813052513757185583307118628829190545825129488599446223350974476028289777575145143006694108595251875404146008638340933018285699951158386829505384653396203132055832676120064187037813215248510312400494251807107168405566149532733676038164692860304968811073691627712792576572230980694348611855010183759397228552606513221276462323329671337530118691244929596531011591168120152163544778780489424670778262450178469351238310927335517253003858228339244185753494116786236269199750946080076408819881514876822004410386235891174882230878601196057998443171123472563502381487188841286725588878285809840131853314075197330281504209049080932900840448921077780823874588038535476101006542547355840303936397535258299356548322386599194601995432575682714763777988445391444038368647239822837760942563916921289240241751135921992128273527388153856322168631956833803613566211987034807860707238643930681531989190639428422578005894298219882838133751654305642781353438156121304216900694344368834704457269948229383452314070604618884084716096431922935836989769802168530651914234243529680576830009834292681606764441903243297117626509026404595450139641637893017707634200178121832741139880087906346656278546541495651859207899930417649703789306690245174002260019731214641462792142174019862100368371023339809979038428463994077738271924506017361695086947239158727253407057610995133420734298378734170461796843242393603916639208102613319888102196589451473550356519958523636512185547407579269142038404491026558364714230156083295686129924277395945216923411686921896594924036560778479655171849597055800508300142891120670803233728096890970300112260990127088206043009762511898640429061191368914694565760440245090743746464338977129830314577022129875243916278010972885919428355951815284077791644992657106526825951504614900756932836199834471877392679554996531484885798324115501671648720428457870906986716028920923502757299196746591192819559609335172560898681750489454211149082260615707576008059798361358461530427930775264416810897660023893226367722540703231636047918572667926285120206936558934946583891101277195922721125249790504256699118665837597516996288554579106598657580153454698446504748670923052837334612091659352833713190983330207460137956325252195891297497100472806752399472004871981994385084337097680849186821777479849381426709044482838596701633364707773605737675570772614796430942059529382904827446715768762695439505121750505866678918879346529838920547529333483853524287541785577944670122860011928237802433487482239765196391038628138624529227308231078726709363764664249820789933925899274300352141655108149724185355056145195362857339604781134442825083197755373675792314926217564425763881585274081368664835237394873077722540616084005697101349486195295147000316205402986680126531194132693750229702562001937831699114052941811141285707805365654601640321165171195501247910885429835338288081730886886349393210980292947039139074034040442666649887376940581135731325986914477642008995882660290001492080302097397997045269478008290121491510425343106864557690474473522152744597236493114370371942306437531831719701921707356568076838524245352691460018338733112688024258891137078844149913043907248451315735042962922580911172861933572825985191459402653527850004427398244759873463240158374624978058085183286705275854756996724363988249913188185410164330919300727239266804359315726980019142232857424724791804823946359976694897390538636237311375054186726991902481790463553157141871275076522124574532145796716295839187900309417809492500800682738925282785610805713695939425707237670466102204042416430878197708292856040173681556983968201336744052415140374298650247782895292337970942689454836112475548416092545364587464708421320438056512776365838126094789256886382302950835554860560373288128782236219658341191163661276576683972027925392759515298611081823724431706822213954911206980855103708971533162033184533801080141913749437392300874844267791923138586656019873400737842113075315494659649238787707921085976245701318430477369005605364284573263373347588266919179112853891475647517199498763342463614184927065047321225798437568258304708183190609391554455782003832251613415364135488954128085130680917948944528769504014528424306747065106732012463328217741139778604631133276586459676251801500226974236951550448799212679540709409713082648226698922918371819300958894805025667866496751773138934268623798102809267592397462393310891924742221116167033282580706441574942681677911409583310906513309029103885898815908567100012955817770245386628150749513848268065153313019354568840047676482693691369115243808047570655258086394643555452809017356643472973687885415177512633501304545022263995358447435978526354271064169820879858419284501571871164988109134702347330906203527934616410970467107782540706578299067030617151542519246533203690958721920523400545761648586299147037592488422346737883658452914486311967106872048125683151451292419192452102726854985317154235139824492923802531526142759028183298438149544312112074486534532320566470058012128292823967670096868077858289387415795006690525861791502652947397692639481597127411279550889033718233462886623428434569058222744836503552473508529218190178486884081832289471031638545053111673618406477321907680452358124951875575032929191792458560660634391497112687431646263828054630990743868303310091144391461336327533616271588901884326987082090790292387383346759632578704950865014439405262720417600309900138470603294898814686519787420455338771854488654027246583614171671306633337832136369959002042551278577044345920157572272229781943944669376203956290393913442869446066051152418819316575694081867692613318511823393764987798889489821956436469887938852968378255558258988036238161488222017535127970812180012613469271862945914879898878184990612165258203787166085714437920980154683524673858640757705746878012223654649411078988863831210524205167254803702309713129951041365786646229018686662040346630056107073371310762778831521447164429726899881348797074231357839023616022538632433496613659873548728252459088276351398258289156932939908524475842045420600190884586101060158174563246216116900376207206319646459446072076087363045345727745763737621499446510053235388876265083153732204851743640023755510409336599987498855213103727127115735517483702697031605718302723380038497117789387132864047077778389067320240262890530043645838396371422303773012461806636312349031683031591612026680317703503351937655119549588063341397876039664671574835446556052806229453324546001299493505787103380310188397864597208361418355680474475583647512226492288755044590773558560248816549989007860303345919566081126167218829813771462943772888278475397695931119274581340123323830379800726865254457889535951068535669578602193120636687591095568539157855702222175778707737354354678176029305732930877286008204838606587883738407626144394060862001327130570029412203060859303018831390713891614598931648881843302157694987679043424414318541577612900563368510763803483210579537290558932080942178558367620624216517504204065344788037388129288547966710328489714726457320201024714791786080646247704273045520156597216361826238893389643183862517800847261933786227772897137503422606266459481477314934492758276242512882651386777544684726328605343484024307801191442777074291082406802332367242277063953342442928274304649195288442079266210047124509729667470218245335571655113614265368527646122313753745166571738230336542089366705618117157293952420109510493820530549127274838193081461954405309159022280257581979441716606105262438326876931130922358020038847392293597148175570456395588418134358057727923845167258868087124085536618642531959237449554084766622270694348791541587384563379547706260958626210485017793694203193957361610523665961533903428810054095563018908999074173472265134819180407048154218932827857422034110983819837919489239056178066772944057271372762471136705467005708499891204051345771462622659266048600497920044676640413802895735938131696094129797844548437037847222529175449365183256746500213196110171960161871883991768812749472488791266087356095410596758707226270376331332292689757590414634006560383731405399662305720368515939684131476403326050408980689192079593762805935102206768235862449476319324543624932984652641539653858627636039401359040901894560436917958028890379914670611861745574853059596635887793594979972756166396557041266059440717818817126363029028391098414825718792095551736496815184535294701295019479518196317708200037568251030950284311128500533939270983717974185553146527842674172672021227496524937376061347189369332424170216823318194868690644799444708605613243440465561201784622432243299929092176061654789644585138880673849145072311154307159420260775268484238807528815426343542262763359215519611990900976000756842560765355762524160215631119283209348186538419865870497546285557562645513750327444993562379419078469231954807567706199831918575691786940296529824337832805859954287182256680422839533167636771028658108730544227973375483270849982339109548109936039315211860335624441318071159124217758197941913216166633856595679248861292256137779666741590009593026234577614991655645362195169120205239504606371718615789477230761326211720016839530659656897965313375018813288682107743041912441739219252313613195111938539726998733444148247353658689640404267983164161798931061242724602830371542929775352894985943182735877499280922325341609802968121415501232188841945865170197168900957797294532460486742552884774054776064083276916900710597168043181007653031034551083245315631410067661115428497410142227060610819235523246173884282817060851311363731757965894314669983310122655390560072379007643722158873404281093603631876649528413799937607408258873988561623942326971900820338452680468368328445121196546886833219340164906063866286401161932288761459288098457259798965546324913184766144545803765183655342787255076986937466854600377418658243921920281050623772646679552646830299596397767593308504776688616583744407201000091247431742779284621574929117069835267923319733260552809691228532013132997603397939608161120508358132337042067086367114527784792899449717286038137988728205685528075944803374116898989570525598916969636477621322911676635360234015530770823301823445377275663307424997081688878160239386113031944529701508832562170368226160648786650740339633646424112181973395374745607845690250101532993663383748275318438208936658710053457481383049772005276391045195865140629547805870368694414285784851240661171399029983089616569974456692794952376701459336508928381175311638808010723897815806027046345174429136676255874566062690624037961562036661589633629543499654282787699638943297671737513940627236129687015766001087955932600340494068009482531076399916065799669282023992239229984726654142315346888271271424088496117929593147386235227794324551658340180810171738901642191639879024181102282951138436475954334944011109438051780082569852134381909038441819051226304867301761643565761085084925813360902681459314286531221750748874036614193176782944193617481439056039721975106496128274913841174355306231501785320375472366463511290587880958434563349648966021889383119696832107460336157598387692610581373933511879070075477939847661973964380102390484901149578795223410455323298218452437443444763216832374820966734996269236048647095959573170838630543758321461050470494760130748659176987599178188986462065480408741131339223069239095490121009138564038947316970659518240784308409961196859687788186345538687552505711453232119686372990647917847892024524959602197416849502601646051552127358839650713905626989280448629029336337742912376790005571980164829974362301519427157152414834317952975974447337398966988217015481474341011967472485160429982705979165432484493983322685169104123270674074256701169236104618712838337955104152595347147637464391531539213689270260912314729423955256400216714803845277489619606400146236752996140262597251648821320068085176885106574105800709420767898824383886741286204399503715096162863627300972613813309021471523630052720914570726276344691294327298670299620134610605830708113544419040684716177302820732029796184844783334010688907837215690921352003572845210422280464560339730911655795660782184968152239337560614581434058415716847620214803273624512294873099378265889902266133953884935050834763142407510738742368108613284648983480521516572182415826425440280040594212539517798983721471948828522073876398258627871628241792889875179439167820672900053270083782629381795825388816364900252978339757155326167814533140007668950652393963485596535613552063024828292549644095436601620364841369177204271892225727780799961337490367139291692322692387147332526403214834667782776942861050340998882467265293089779184454025891737892778533305530751098198938781297342816737624673463192290632131375305784441368662593610750659557735547873558022936739458507640039152333867360557806044659106880685320413662201922712729036613822212046263623835843079805580287353705585918534440281557383545980646590230887685676495412030936553414245231649402588379970250755716856164440533483535088348526989638180737331599019643940121038392029782147720776670539349680550683687363658493182839985884157689232091261165076026551559363353916084291976602852138111059398297717975821313858452706630246828651276030816222675583331891436177202313035932633316648476230262829516773539143546812693627333386703197957868997493792748379252767740051353294586495109983630893935557289975447773829087810186812471029603148317166747138568254279440718206207420139278216759843279002127489703161005886193903574697468317500876850397114472341147757630247840833597788087615634720789360727998116917794471448032553509534162328882039087463216211347841142037472298956909459034457479092092896735379405626671045527994522677602744909334014350945165536864922511118166895485765980038856769878342847179011413350218050341281289779541291647729655868013207011110711126215657964826613401002441644393534888229317068736598814627625784952328810798459858426442272481114585458075410070381287508258617605040964968457352337595662653810935052851798982320701936802885918821100852275679783061226633441754869080423800460467361387190689570880839396009337655390596792805409789613575564152883435787966088750102178043727642389034246992129581987603778881804705152785088050841311574948136817598594449764209232225830610627126174444336809757012528890847584239513119989961111557772985664070162107915130625171246614889428058261966433525660564104094204976145785908768437538778688987472164175525729685211340464601505032904608303232571243431752218053407510406751386174373405836756844990084537603359151404415330349435929760439461960463397416483714666037107095413819551091855708774620013280193677714631422088525577879172306289673012966064138360124310493351010249739939610105023640103763388640087140168030785660983744275108528422032795866496609436169208522327842557509898889147628856604222099396495334390156249941326215091856207943012028654339671272117983419078954036963994164101468746992163279223743141276398410752645969846022259362730135144173170062232697924431757747730049286818838841789577761714654792462041553816595025679701828337327993043262316658938170942796138334519575839912236892874926795287048365517305680740710308029757792233449666045753760204141892597494752181805378618125980499365630177093450263054027179404862228751507455917188707012168892996152391704092933700480401050681181517036177218644095238873733208006472861020867998444835450518275667873580409674877923637903468290121379000251977274668866177896777681477024815529763591151649233275106733507717895386506922758687434944925753998404308676173614828868038274308993968550850271940181251155454757123998288269563515982011127787864855820381061609139814231561063529997289902766252056335668373201797534831896609895429739543065245373274083263115428651423894595337930476438628234218314366938167972541563742623397821677205412160655300580614001418820444394387643710244488695624970757662720344916885041775657351001433607002788091713287743105674907773504017876599157108499696104092245629591795435776944630499337131657394676240906351437465439355308646982551511684952752567715962626667603138081188347758844907155026365732736623896092178719552107980678704469548378660091514796364733345147480511736637801377462151170686609388519085577129167615027225196772727351101104225969142612274227885476043007667652855600133958071374205518253173000661592159632255604268983877109682540665915634703447436396017878814808842387845764003557417825750822401296209311426295372736739738922311929215743049656785238465332198813648373401918881023995957868456388920606087980987439928533450808642482483764060601438001819047011895930535725670469683039726554834927902880959892032299581490193925381425924892712333493284225869783320736981478664353396657270443494461102742428140734467407316285201340852020529938225850646111837603791827096450623968814452031696758992553620699693696752053790241106844830957665814462014718081693172424237978522001632406850668495246446339478822616312071824325079892135466702566907445445380859780383165402369543037887978541754022540942744112211591311000668057589473833901868437100132720224438477777289577128766190570385729751047154810808889338060810622208258835264095787675059220440970326921307083732252477156657226293979844419080509012554892047092587681300722927162028666937525099441188290421888313962442740065770289515492838506942728943411789109532177512330415972605175517012969862738422860224015290685522854580206340453340117176552014790298911981741100630591054746725799513069758241161063058971848140820671381145047861673610591126579229046405502824947736081532508111672973662420379429549403842969179127274048732243131830413782945651716623341169887182205770338473469505205804257842069056110409688929749799944657151695029317393003157472290589972638322917749968190107962834449065069937501806070936169058345703064620440120499862765334472336301441803647815046549788105331172373037236416381245702244917000874887977960412156027020963187974304490774013196966212344811743248774010064492885103665448796131108421750988740007778776627200951894266885983712985447849139489723144916749195955661815845952259295767698079651256527141081433110304785774683791903888263856349515544792826723906685289033760873435671683769755133652976530773239969099037107998937982562031105237225871835754176056368709598799526497588948438362942887004262870370767517627431981168950728229160457584319624162472713915472437924882818135722051525256824143117421223091504811702505929668612036914992015875203756497266171144127782293337872403878066471923860822764834299892909714368188919296900078582284608709787533715362716010676067085454922891788757931732871584406965205735831554673324814956274001640973294472757081867427207035482815871483131162284800572223976242546503549054205547409830773261838482671831652807872587310514510198124546837543190586989595499668433175352708315508016789388926494719733376616459334362433646168305559921591830497888847489930097463004182926185943156302168316656805123902272874291596984366444005517115147744754974124679179283755235400270105110069676843625422276595776507796970622249137367203727532378009953447534318068962570943244818162405869420733050589932707742236278322983522379151732339445176767499044344919838330965477510376038165760097694592924938860759769345650660867615319543704634764487715317036473834196321587810772586062911919729962802980498039540294793700004980301203499258375382568218149831307153821451055769297596090244058164790312883168146321996125602459211984048163210011617648377644011251448956202482237359687264607052936269752317321460460933460646572478085157832654365028212660497549886672651834436216742595432085514035931950604540574978743306964521214004425244188925022056077578844275368719907616045169588803764677869101312553192986682668703055294842250255815292556537128938345580542892625904502176951169413710184572275821245217152659551884588773921144801819153094032291206847083390931360137753417842660362307945485733121228398264341475477990852507373625403660906658095172833332213632514270814125874467587908438063194891085163786331353888898324240388272895415568419904272525172424491442778575657608529494568437090556810375890060948691235022542815950003998778918486091346127928883759106910905527199304682106872411267932450320892891934755695353854262286572227646402809452014112891530139262272838435943368460834357602704933726818153853693071691719820028146009897136976341344349805106094661090520129290558604800808720593396697773226332267993981748936965897097120296069817873553245567665644265288897243413990178216599014046405756632161018734141306034730882630676317035960859702411149785909373809879292279236155077785344986484558709241100844369876796473868808980976378184040192351396548076935190570808062255134232830702751113047753734757224352991294683697114180078637383630483479504758005140593646719776941173274649943864317668344560626331819146549731656523498125743952271317171817549570431528804106698670555115114528828397430905814188635375755920165513731550871912069991714970194066952471170332644895853696416087153776863957420429740534773560150538447381792256330806275066546627786152894739820553397613557969711658040859789176141064891026295406227372040231781242522644421440249817745407675613416096652947245386319068598104273311527282838821062055211858939192869413365359763330967995829994775379188410895965065631618775197483718105983248776632843662077701206266338947208880993262183789469089104702486016636377236554905679430347106627322516928432389899068400820087628797667988179603298893742667471944946599917158403670617132823167645920640020035397810068552901250595914493810713027634007006671813726837496803099931084447798021992290641946941652583935516516440615292747420633464280146577390690567502413128486746778846857164422953982609506578937846042318683526607505084618014803019442146079459004737310003925534511380528077982043159965756404709068839548676366287847549133652480892211860837138139549480021799632581046186169566702610842887512169354414682412792934949767554379816742407909921987295006145653573036701517342166157248442637721929170908020117411146447291880836511661899315580098093618361193079007691334939428157718973685139739923131820854309813206564100272584262245526931776455030838140536725829696685902283610309387651499775984838554463745022739761614158375122110542269499562371764454885673793228967033534235615883813868113380600543330197112259032302655857268873522395967658484891033749021025449589745678112288088502086357350532052399514837207341944949176834787518728661319465238519913454960917843410763157211764366327083725869196886256596914326231559888230943983292821953027592046777706861898908571089519579285552014560344553907183913826685732457413823715023956201837437898658213836341573024032074304007595484777363341797914936526113519425742697240393103111415987542502758460484422787390643158961373521427308194826366773114063012248548340633166615382908577768894144413269248684656787144376528564647829119812977589548074894487192199224326033393951935904665025256354132813340382391729166423787381717628774141620183868198439912210703063787401575643297358301366356496319234482192289609105253800707393044153586706820928198707093525042286139126456193418904907768102671958991149286859736462089848659518835555098850800320655723542847894630730363103956228487543115738095139456029761398568979050989534510068467330405010226200664392409227542948946699089858739505496783120090224442667938048037438498330389635532123828665577112303247386701601608852628760090656042980491659368670277697170089946559556228304684770019363248719278038033284088752289667879878183984304107801464153347056627253896048217312106637775803741348476547740990248142080826154312021734319650689733611272301942839214440725437506868953393590037641808025977619182694316524846739636606226517529780310333750746508017648424030444187564678081341529817387698766573204336697318764621963590820612333125264207011350120991946055503284045330988824686983750833306414249120621298981784276160490214554442347338817733040658206307584567746732744025659539496626440646093676888297810689264420810328451310348866226350641150912562159704870928665794645917683984771673603502649046997917031715913238398649066370438854845122550388150660260399158348609200365136459243653633936940918822430468973518098607193197965723866872914148521028895040128520807481816068333416162278124718110816828990971517431386812601976319640381607663476623006837436360382462770165221825756461633924506754833591083580231573338299391410243626259650821948722217976455611969415962888936782269555050312457134289731329425801778216544730103793547121331785535762994662794727640558312297059970364384046652239529362274330415520360474526539616188278958520826416472904484363213696930084696709737693154218074487329074509935260098013942847297588048742492050065499676211891137114860834745570705157748282408293924619273256975508573007613768515072895171155640558267825946036025193909599640990020339888218571875723760243087073622529580462137691374199799650750773704908110690669415081610092567241677816510020418781059125715277365740088445036623098405683092526629555160272247542712753408423010721732549029157186345741024703090231279267715020971826771504764500225724890586556844391205319216091485671381825674741733208105084225942701529354073716600484775145668418724987777138601574275673855686212664499826635796777440462193479292756454388321964620825247368167308098208748820153914652690853121257419213352862726732067672800023446917460338156698424145472873450377310618416884982937970852996062539503097408448607966246642650066568801203719754207367330059688488603165398000253706642702527848360648575638326499333230822616473215316274716751274822018015413920696386274669609510633980058121068019428889897053849623928300503371197772512871085007346372755504319299244151950465334341500288941589143127255862567210284389732169030407750683650433871734839082980207175416468122388822221369923072941344385119784242456305726263576938639493257473671118630529326240871831799434525709165828663089480827803027139566237781582952277527884888160110852391283714844939381638252131207841771185937759902841100320184363932844164299626228343099340251084857867238397076010883559719382948789951499494244130686683461357412341309644224000041643899732989157482736046252252170865201772715395498378702098198703433498765646438195549854055919015547403845037018605743105233525804737910697122700253363944480490062344460447995971268637065313536727520768572623291153169786406421379194451371780823827512554065484451826931510381124512562805678039455109720005369625048955995483137293977926957462552883973320419286086745843406466008113566770884363227975315542899470843602153417556325765065552264588141233039739180685589974559199003952735180389249757813199822073478707704262640498252204805821143007686750019133196760004126404931131056212654764725171152158341613853175259457342410863318010318752152351210184054067787580157421490168674753146909625704714927171082934235189957155036015786020492764871615015891207568943316196286030531412193052444112128494974014303245663674336601678659632737070827952275523449452894653468811009844620017688437959728246290529005826921348302893682746097896642134753315456708020005159124267867481326320771851529651578053637908022945999018672354226422598951361479356830042122619289809639666731722713395610590902850937755088697204094010930152322701295337193394773159210120446135938571574995043218315641005342019004590331512579138100036816167757179536372659661643193929108517632447308310955504141224851260461333555577608004126078106008284628502072323925684193163654674552742243970167604171007212429350979132133130975511620159717628270046648603279104119768665817281559544452938521131480565986930365162767251366350132818057736110267409026994853667431357544845152819924244641557041146332211355239524595549828331041148998419856770862713363946823084368772691147601642921116197038605232153964522390946324967076382902966864129424072576676168537466661361044042917230847225716976290702550461961360416771229015532092748522263806976899368177491847189601459591340900947352673444597214032390182947492788494749699045948118051003834614315503240862379250921353578933622557174068754267410857534432284167345566116253603493807052286979929924839841639032362445170178240030039042925079093259985192687726407016705794912442465452250626327616974864288723407976423635409917293706452293627973000770171805090210651515284603048939452385041153048874547515402047184606477460260704705486230817329580423705438947592145047739240165915810169628663559568307126163917340785472485631426998521321043515054811223996777809203120377281226325954883493949059183964315303830596108555822163587892173097363098444708142383129507843986887210550680956844707965154584300749255900293364124855709104934947578177623393649812175649268789409118958178350176064829416287073986850692599957872774617612904292343074185727530023972365772511111404266972052092677360196422474217423700696532689159207316831378653154452104540298455400850119436298353814154531379045468080958448411619637464946980162823902838895560705359208015740379947084052922347096152884663831251216190545727230863116855007574988031322614366971826644851889361799102755386525848757996296836025230425398807485798695031172470049745186244963253543603687657080041235836579314553257362904706740579220822329015754845259609738749347206732509818841240680289685088986712407711663519457823933388788743590484389061210765301764756944439442568903658124777237037950928718810278696746724234902277298226080860519030953059795269104757034421132244106791161316006092416836036641634538773400428642644932898551610984735979375643295053047476089740789937437635188774268841325364067170115023483169281684095377984342214624572346125667723924643146745615702535799384491628604733405282000912618478971593488411564380300817257758395880514769091559157901067535100102600286647290838112301553175453672620567382141195968200834500664148113394014705486789791416544655830727204222240076040647270299177831243483003551209228886485126947811752439145783496199451389980137266160714579190746050675952102917948748665961204280192676421637223097695394088465305193990263351900316351271610480299972621188726495232114158264383668170583428038606077143659017745649539803252801229072681908545163722991972288690137474136252917805099095731587792562401025865480882539121569382884945553461155446412919377670818536192982412914280433836091222686020133904703673666059552097368318779985429500394820260342308711233566788016242028916190081350177301207930778350304369219311879942632298345522910796750435086964510467851292928645945968587656784840832591511719190786295416521725961877900423372785702063433314443861407319833445963194502063528421122429071797981095095030582871463905563792449444777948806838510843076760256601826676792273033059816755435378683961474133435844053051777396074969766663095122980123457854004985963010764451326488825247613321951205987385875952733823961687588849580882246436283234925986171700498528299424120665604300255107629487398906165331695447048299747060613949059879276271536951079265829405557515586571759026141187224675161126365676487490613329144830222975806507603606575607595210771752501814327753068156602303845474672887888040060878094660882708638647908641590973975352247698244451968781378635720586619911730344547889109395217325810926039384387678744724044300810144444620538715204172399088872100438212587224692161170887696688634471818314652333823509298465748933198483136402047775085621600246077144645332122688509335300824178005250151726982254562548964358397920593816250880414728228470355474714313281088865771295271609528340275726970314094515313092252302440814795420939949475683293288773831529688949189265593550062980964466789161195709536213822417893354237323517943725798824320822469640120787195915490725152286800935595264849458020521882161757044168056847473246076882878957301742938096543401850128385344069713920230151071983633144508017011083313624387725680226951376382121889728100265170802651706354421603729605396648274149401769792523123271700065800380489932930313321731126852067343986955827579980059024186329759646976102748441909558113856860119830487823748075728636826638695032856483161581328559375042538699123558915242903554575207436186830808308588791939838611891752378699774778841141385956836838812660799059284280337321464821532393319897848892125425857272270715921851134907895456678551910138583503367448486675052436229166048221811618085684760774856040249294426524579369941435962306420842423795833444817509934530924014077864731304273599311544747236624472989508888591292396741348257774331126645960553120630869253842560831563290313480957470022984519458652584936130799593952329037768972035361283036429606205247466385020138974080172951835786171018068333538645945572707858994737197447854415001197709125896768512676336856013671732210276581109520754593232643796635422307458975404048518865313046994792209043500376357313304464126570965544540067657074849020229097417681958196750211381071411720986529701591679251958251812846244485168677100835253119911143921237149203559215016858627587267395791917083430136129540165834714003757793786487089863528749261222773651614456633374325278801019504047787103428455445643943700558209061886768390277564200243139072663516148222178513718832780688157927649334887722233106135718783388726925072036255123153044108235752929568467955337486400423004227023223756272695660530292582372702596669068553328726943634173568910046946433087185007930986000085897512286769865416790054912726724124105348702335609439720033966929955067330956231363056536988768277619185370524124776263987102468263567422835011493842463684359871777418777678825631308855117007371239428611738697293436317574556987789037774518553111177968822981971686429342724112804185952462370751648869272412158084506407078219619266639271501178693486109026011675521215867917182231408193214811662996698517322103473694211523455492770427680401278601695277373830420463361324226633813271451148662705492822030540336391442646695744019767080007895602792602817780740572901243141665855312389256731302194232622164707147370653361183389194122536649868274916203949466730367826359010073669611417188813060183651827263802478315211098462456407542204898056609414115221987501800561231447562341119938126017349686175132821595195058299611698327312529857598430189379778136145964868529133061621748230486595490197580476962912015503491112096511212836999633185926468562995753830191539350827777055247802736505512330120213983178008519644772087063178117849568559862136053166765900340654808817582173928964696622100203792001626660264505360113769883968540465485948090347074886169800124980719716793556249208585933675680429177797996881328418774317222610367445004586756132922936496863298617759628523246378543774013504055122485192028311425946790181805897577124388085753935757764532998340339962951282136164770875876608909613183539705092964021436769995592265580201570172055005262913801015044234830539908046208592111992774372648091813076802007011424286267874994620393598060868632243420999408803627994428364942738900496419154360714931376161984221273515381598696719196413921115331899140866514623024196425827149268763166730013292714879456225176132239000983199402190049395317301322162020214612746622656653332310925916983989265095840437244843423278310944090792911923922351158115279060680423653944205276754974941610069752031490562289572732918464222334260814541526652109781499323748507525935734484694119285838320589996195751454837066199874057047764763042239183754244734165480055634687917765338781661762287130526434514359894439737577637803797173062500746816716443836605855138748360616717160048627350914448321329643029114003222739495476452958600894606546550699670581678534159993023658354183551226576284158946977776897050670346147923017832027486103005029938379893374621379942042963489949967926799618304734358600771403599527041835275631998242809839904920028074235761875788954574920112833340232942432552597937530691554509257112729945630747476136969601103035650840622490284569675700278880848137281645963682331444054444463397290055300297400622946915541492398109719812608815041156144908857390875510820395723941653865473939430123843952829491331603796928433752995429799881696584443876947007444428460898491336947918341058790349903982646354533768766815618229825555842692790830267394028673186195469548765252176602493688736257117472583634872831105369285873618661519242555718955765730512531276518814018619293407289879258790267619032106987372263836999127853190576671106337670858325713533214886151574171294038703079332656239155953137384903776131475193139743605360474963061192156321966216443577443187853020400738232275055562294996996236966720815579156085592672846470863601921696719152583249381452177753665017247842612312013884915213234070456693573501237204317327569356144498262825367949222743437897633814012005581182144805972987160793440227007609200723347969056176468799541641075694344219399302790082717804880613014110616629614452187967423855717406516964363105579024007664883231345741631382251399762066576792029612116085296304736201189978719936064822120077237201884575318541383992678850297185573801507205670096404940286726402782845207183770866956277820249132306683282105403255014282944109593100903135744320263990795123171660826273675800638511453212244428729123746373055205323300365023207033966008947531994873223390367909817821074460344402717943675778179072918281249510264102611446965324250761332634663420471723564951658623388375014153033221293575790905275808665971126025276494251070399196558406240495622109866974275486612812585439237954125646414802518004173202596663687772778095990695859167883801436734058315818613525140160099117269061972283191456019377842665271882042857100737405404006210448410725968065976713618287495469446005840943553777390922691412067055118968881228730021427694470852074695271912126015036413622841853126608632627090739233147180141293726286804508149550462937819367507132041708161928613341836079173448051817079305289141176006107453245989306254935690419451805341308492152236240620492217743791188306555939442084734680599267251623949588485124111469007885341662424057439788925330320607959463353019919833576389122049649281742707734804580276505996328890123638808355090790183863220521775007500043634386063102278383760302345872000935925030831894528554497491890697173102607030682360046535803639431468352356025872788249202991751524897918870807593479781673904421785027553853820315958697419804761340398065343702433639561384173951772853976423580322019968638207518828234255779776374997173582485677562131143908841950979661780817793220042200504280774428031067648133567860818385874123823583200198633363642221444372522391985151068154251335351889305020325065361356054801656226329787629263345518296508665780705327798406891002109423716914242698481895271790639460424397655567137935065517792445832738724220897868421279675940215392013394860998919519253054885047650036412319332542066350845881442597484980982813033734305103643974841212100841606134284326267923345231923261211183586138482486183136728811887486404927598589012040377740709721448228475355865535377471107339950057741256381932790081002970156305925345747174737766683361626908867905492360026438984229728129415066890942142316096621602234011559100478881945521589618651567479124356342338763994574511701187283168397058185396996688017342388982026737681474988839256116749209678389372252221939464465061123469533064067136917904835107729162907012023068429409197327735506314678479267943258916004323230253208102053858420058736906198670159203875480745273037190304213821997104602507157939535565039469027601089235776072572145939353373357522548744267895767751595613356008937415042646625751598608533508545919281002266679364641116230530706368013498276242765453357182508782463662041607020433914871642486914793467962818139001775946906332051514339124102130081269331885483938437374610385002496631726151551716996146118322152692773474337156918751058053119392192409962639989540834396187322883672003850839553895613131670948463244108131799999994564005494599739436698922688884103827681916392324171394204003088443510334417307881083764482046792049312790178208580842490653042273613867904306432195480821364849041209862352808987309178070977456999753255930081267908497386835475228754459386179815228382070290144910306050911026197234783394896681720772055363631196968358792785479643982194523733421768825285453322181856327749325009113721485753756532212628334354951844740222601601842192070721971979833832208323594954555015672558075698495121816824947354607242187260123443393334566011506214926082074338618257585168611886489691584668031473704260225459642673841068762920800145611148986101365992971947588672178328371920403680467994165873750657394510509244446493425343726685677680935239183810418615157342307417583462117997619773151724486718776959067982399607046558450155534451546904352252962498307106407647621958578828473340113419347090493638468899069849652513185971170676165056349870153432918204129434789118615591324597027832421055751096392602308828578155978933714669545280462717737450464332355990127056208653659992391781197815792876752100068380894532000724701673278770970920137139827177124855759502934687357648985198232563908181620715053073823103376872230746545988267347858179609238021072410209483082909498356772185030890734171044228526982778419248716361283223258154529394408898771087947447608990253677052790181838540892573737440044436387238338045268652646240204671054579518348126355048451618163177936232967705224785498780266875856397786858257099613937127419387640730269718802829169913016202233491691204257973547575935954784454261579111513830688744988237709420754077455913961129531368875092127125207270452785809913818212887054767867055049507801798706800344010007919263464906741004994587436554685232522822155483002474049359336371441840301528740240922569393469209711296595330376896311764987275187411583973154238980431813312937087440165527915839397439595066110338709675849124816043112162136247675360236382279778351205611206907172146019119458834089091695990211565430066262784151511441854473015576302084220226853861400762765974121069525474293536151239594987028621207705169876460864842806332476743205990426469574221207214932152529144538830160639128070515971318189367635794654191539970505978765210110014856793583054309712108886091862142243143213699069583871449569148511833019099028580518587212649584790041134221163895779892870127202924093391229152613786566403388460942799904413132277862479021992071916577125698287531087188672288776848679295391842531997797997426749783162110253781655634992125842559699481319242088719578535811985165657028182461465855595481953657796544968689368542807988528136376342428972276230624621409817445729296195983643467415466344155059167832285899072531902349442833255272343760734273756073960723755109829709729732597251863839508722086528779865001211046577135891324878722178127022814536821236680539861296716448780154293613008897226096166351902645479294898944125559169995959989905340724931763231783378955212914972670761100717333846303685561884017172467953323483614433517653688140656412523641696499471136387271370755359566734868565867522868256659275815813973766525157137397835097163843739386312053656786968154910119776842948395096175261987077081863951483729744255399651436417089804676310973677555416931703872780009429491518236692624455610326949460484965051057971859758998411122029706034313475707295302344522645622003437882644848233193231972697869037248225129287683437397225497098347394996072065297092371696587493609470220003929724753263765486872670051443236166051479105669791124331224444476661262916870607592754458688818111388707293086833181263955183748519864925561127284902643494424095698521533691372005053774996320076397637904456139380788558159536731064016172176605816662934251703408763549953067051347956210544664784305328199618078826742183507017801814127128918779165075745719528078985345112611073783228521179795550487366954898003191799335896206619310455647223759071003090130400649527131668737950037486180747671717661015769051671606629139213312762639368847200197379989953769681715447895381639894704831532337561458985301973657571637607502042093562992010962271650275900819480076581000810033163186278695744950128467287885966675941632534064331754302808659711526796460738114568931052465279482152087387638713259965760751757350032489920825708091663854196077974028636719964236457722493063517188145160022186453246463880640601546993922368182054973020685478912027678826411950296016984355037698967258178852581143998948317512231973056729061675259602125726702507274933312776473624849150567831141586242790752652754733507689195477376574675641887878229124031121652261114210473608887999430768585859775212120254289354556502919488186663472977809012547084905355885285430345214045437848089632869176879799940843690508806965368075115435095973778037928830668408076008680886123161809704050746990894447609128122420083919510736951838913358169638759432629097213527265999368564395762163243090429797610610896030518068025294348557050366210830568922809683774137487507865669901148998488662849846147379451126354656635393339521334761339904674064346740278087041008269636695906187577576078670879420391054398342930403993838382136526242251651701847641419289690003524656042685343482877585576545569407875974818088589881897917614400439099600197690799940712456881178724889787371691244280045150213681543331095532571493659824317058740893345605698411602280431819696530594207023897655383333437649903815489624591880150679404767635386485147340552915824178664043602776807301393574352740378436127676715267072719014375862099492305079119435906467671064551848936076788624218267223407056864656547747079067054389860227097109183127897022787606894543562374802320167913950457022313686665241159623285812205121409076871790437776451727117805202487780825253211140481486315982687232053564383944032891341876791428227732254724314994625778558431463547707858994286792629108171657622956352243494380994040572012727641340301020460866159732241505669576368501857910276792838909383004513594186873662361859107255275316007192780380636021999990794574669520393847162262334776373864520727732968771780178496585105647322981379635269936871002870487817936477554731883214058586621648737623421730455326350795273316823288409370876047716151256182171933831717838228571233685297157178953798168601241004488143289426329678754352434087148421279811669746256385592544928971324986683907518243996888199461555006969370747445452611445506167552988815862148472477514381415172043003991986199233128241068835023134689776023460203694178612930521945296764205613939535954781899901580483593886088510577480713106755995032819243788960584787374424536772113128483891553340600348913023502542437467127226598938307559379483589934455883129805573611954845159744942502123674168681143382803656804249792040529861310800714365458213953702550900332286600601777061402738143992700230007861557613079666250650872646978509011579402889958842367073165396993621289475631347653182164559773768509447556636700339362880840655964579034703460599938347151247028941873483042797438042291441697257866015927772818172525702785864079025652319937888581447782771735072491920501603575461198206901907622882062281076008185121252595463975324454105330648783576256509879434366982069745615739349610396713567613288701648577443274923707552361504108913777702733198423871287689137749092586952544281214974572450678898779721834845601442229255078371948630842550855066321772431241161638078628099783289650678363223138867069265201512514163554647366006645825572458421232199720492367338603026489955671668677796636671742337400562995271499054008244319424513450103402591341197912950202185044219667127566397008359876062294933104441256611594580054763200580880319794371110730383741385730874048238288240203468717574385262205771297687396532115366407908549336919157142160706649410600997218823127947437482574010690304896825519851367101247182904217115132028774813544630663818509527446941142298496560341500835772897598589459856083097171197551497549558621130576816456265961840196346231450463369106671009749710087397661992968348864575684527532736905324680623725146629467647819927497857703039120202898708285821908603230679178219943172673706582925230056208354350342465340442826744765375697890320212185948884279892728778656854990784071786647132027877162856798183997049848540357579470596520356084704446102390643927908644068808026060591555120536894862089297196088661717666593092713719080775289112489951351156675719402365848011613734226997340546864079941695521838193680783930836142145866623095414053745213036281444463544100626007388768646313731018742657302991669442244994509412646120458616857875720180033647889842616910094506471020748107054692933028409959960405034166542317847583881041714088193408512683280470538763851639334409102329834310926421141995982888670212892303756739056289365493397420537194372468166529902146657535965514842613251973229356564309774535657961176479247249644838405353263850522454478739828271855519837451082227016288431800102295009731058924207303889635987705458959058154625704857446327674242674300495998075977756045494276423918268119901967664398286452959536071202036658718028602625878378695589821557397805081875980638389294786441239853359161882602979665247256965558695016870398218533769487482663105588236397006849748378978217141974483470944560695627628527325826946193995125488970687867330401019496953772310430360656053553773737890743261328245777398601287524825080523499557031030764599209698486763960984036221790603211437523059307712176209346799635892128700883306573917791796831862534289723132004924165097729564894564542247014922757081713404907253728066124375222505479776167682690529025919293318683596363809516761510429236793056451700040716614432602225247449173106520728975363968886303435567153646455184483872329151482134016764407972451061680845853756155949117248542598340778784646915694013894840002887285183888371987470997961132292381550930958983709808159721435801833964298599843432805393650697256102928205324024645776550956517371797157203591221631217123137301906484122560838467135279810850612941828742197388186858556779923360139501182496869555548266206866370783419159329998451287768270698155546498008151825618246620100457785238692438691583979640453759162070223576081638215475206914211756392834663152645310564773951796681647258191547872530240604852591881431051669036730047632334232429671411102547181708722361689648466115792517263639736126381569767774908109991649429373150809889731768062664339368110868653141323369042689758872240136926900811804670356229917690526345490203682507629709597116432154337876790247188863167578732725388673742081382998811123946297282057432365819545501601495904961553090602037028827881292344708865683921651824314751073110083820338651220170083070645132064030103110230032213065287050002120385985465712588769628502373537200495561968847058277671134194802978310834976934053442327858653661635548480238623589136668747686781224669365953174454790359956266524725345478362708294681254664272168716587441412720732886222182268888281177852342788865645640175906890899727591200289055100293325104977963311839642028856922230196334215423965354449140193600545037296016464372559044882319045771580697452024636078044053742166126580503462232614791496857031691452812661425567885948974426563776150684645454863899842215157284051945951547052837277774647846592087582134805363655473025558051311854788484342618206906253731344586448462605909809387303533881369543186427999238606336649497866529354186437031889387476796279526804100372318755402201229552589451855705127659488392009996197497472163863414990890916786116403080562225880080295590093662499525261249831219441665560271304961043240744890771309029788092916110493214002578278265510019444774308982070055204136847109243981431984090668728493207796991729254445238745599941684437229277826904136793894956268246386903741068616441969429671153724009272710960737756155502706421409447031899719147656953375741823038155595470521629423545637394871258772135931914829247850168823561819554696992920338014647083111068162671788440648540585315336688859975113110191600276875660679709283556013731016421724184856500586322933819669690111417813444491014559075917973195700040921640825979225198930205359910951931935653210493842051578942070347166223882826786645777651868415032136785292949035020873334381243938267687756207183789638918357512938631239786028348353403263020287223525762381714846297902472839964126286799597550544497233199741252166745063126250616412720632928690594283746431359117479422502168662764576216170389182124720249789807431127058062975682846492406204114488428894346070151467211201632528720400615136152424542561095868523688749565579334693300811476437799441229296219146772529190110205826407759927158429677893522737219135814414481561115136765928006480509921387801536816954308323119603555356949834634597779992871577570357291566775534235049807271769379088887490924881969228759429377899738199278565978785018578917592835489278389317965540251117877912398412883716151009984144372073459312242655445418379283882664384415907520137582511214517866521011078142732151085523428756583995332383575149205375957024693370707802481642602494145971710424821847912204715289958311249820948899073081291079134790960214248915535944201836961813429832856569191543258622363733252203273854061677471511379131436598311580090742313947597970715546492959181129019747963434391909914013687802264854456746588532385276297549412048998843434303900569258594611294055755916996634595368984545569603435520103491608914528163995741512812918297386668440703349418063200161574335378411372039795812065128912521025976845433350284166872965277723742642266559236720533543413721435970703829431318233619319512056973880477157451202103290302399237445556149230727135789798560727647249201975831951105129364462026698771243002080177347833238073837404581257258702304765513102715296264314356303078102661978268352655961931649083117853359289247751618329777245942342585094824635391971671560072466705471537607570899517074483521267120192171000894662846528250028580465984216489942029913974014744300413190232144501041972737636387806987263777618697305590673928227486581816209136594661426251625988700565746023388479366565291743106193855455948575996709459280346643775288271346608587580886676102940286160182491611473313310644071041242864335670229466610833769023088763486834729538713092728914948957810653004974628824408106978052877128900513773342253081183104879488155985753313415081954608872528287123578012440505006813870548948716741908761493546567297723485153673294485333093668746019310943061570854035071577030168642896365984561758752790904020128626272449081177213928302304620501758296566710929136267336184657108742452123903486725399130518346523486476449666081249504165952663146867501488623349165196178288323142638614167706692993895883960639323991526869626152986974779681267140315270367169189056226426485541609718825132285352044050702476811520137622215357946290912446273062117834888722181087499333445139656434413388757329049154753721367944198995693723619323151716399983808519837210351292324527138607325178795787193247153749409831318741582612625944046625557214669757661581770664238061090074726872287326926753373850057278634351723937744990477760120579513433930279185117250939890252836923610693959614075508347069958908478745287685478037919275004761276128909865433518435132149574120287961947259349837683465071812654943325708735330854362475267792682619736674210323811693399622391776533667262986890422382852440747339835329417727696191655645522726886288039275463760365607537152503197675181312156483869051507228402022717384882054227143758871910257121499613953354351335851285473752322307236670988741223676494596817804414714849943222257349981799217723810340055371488555098992590346463246504975805758721238597284969983903953239639867309874383929249618735678437632028615269761730578379176092628738113423209338224275080954519603932705767954071844230382515500921322559087730166395611422995101000497227914321118460695554666138577277306019520576209051756848281514885094464925850965890448045007371551268971026739077155204275004919088615295377758734913594192095570660072204173583355778332231834892590441736773275118245668155538228949792793973704189917774988947456453776968820590105235657371788780881348136178566953403008316832262311825278075331311139589840303304173508578957977610739033623790682527746652804925703936191290497681000822719948196874626405715315213449151318763076240214173201833620352738727803386226971817083638959988686625067210999000745425657789416575342178524477908098504853674074302511304403963486778555480647461492310990254982568101727509797806017981674799496959114009033897226393919070926714042605900128652772655167038734637015473709273587583212034665353731245899507048459422645071828345724731446199709692932440440421854989738614307364933025197871639157711513271843179473515508550018343118668180704964659911727091499571501686949555989130933383099661229353156487223306332459789121978160239206428358508093803302517698324307813043247367212671294494481529884388416827008429928064694876405672801544899608895040396343709595975855767521574885425239498277099210202921482371021629165207426923179658134063090273203806160669759404381123142897675383728228712380085438961196535205968596754119194534207656189358008532971306638276110354243641979638503160740653574863916606827263900324104085410706732030767803768288388951134242844913019570277617384957764073631682006427202706200512489353790533667493868983472935861114855592763669372216026762131913681273780410167782753495519349705032645609406695487514034932762817874199002536879708384280140285841640591106240011361719459751666946463302722695287049831218277544888511864433393762212725069253894521746658054293172526112527194110234856638329239997083595450297713064372920335366780620237598949638116218516155193489913621152578955695309319079947163569217841634941736835285166188985365377455987047638844461461882781545302637648412790616553907533979581074854538013544499332885373652728562950900882283616737877296627484196635658930375693811188881904890783668056778976485781070493490350403898348453531718115918325058811241672076556075544065585862796094674786281806843125311886423169213688953572879707840675319541157622315386275879742608371285498404372631208382466983294592990937575592239737046855110860971300679166117084161060852754712790212689106283611990073772594054628878295228221582083771459247216742674871915524856009999777024840419215906895059313033202859379910425242930266704804942291987355486468442163624809278709413032052830091322407007955292685776692307534764655663355821078212598963694976397575581664672662086384090208798440892266758398943071792440268834973080555334083801892332116322308265169263848507320854039794827309455644038664069436903345807960518274135268262067813190072818167288639676792222248174929679101907732638829295860076019445987224479982842385230606848837799187409437380371830451253756258790964196597407833602172931383939607404089834638362633969693349906807647225379752648071038843343908181048116287456405899380328456853097746636103565144867780835079315772124980057288112646547287547078295977531997954547289809453256800582039848700390298025005363255356427726327600540582654746272692305513665431898925202336692263117347463702125029597554810292345295806101429999822926227209269286199963749773440155545147317825171975671736603010602923435816013742997185116388299181975649093260889000070062845260094537809184193977134989665814834971619241167290439323334702401604928965315280778724509681093321566046711268793559191994311710858429377094385162277634343289757694800445646924393274307621976888153830718161959788770258434573877677917106018773940293708702695535537598524318460921468894921519265417022561566269633353597432722903764457202638289668735694661544263343185750545474248022630769435942160354717187049739866645261896149667055509565490966126180201449036745933040420498336302248109197406938645710232716501280373173501455336626473085545373755586497896576137461640631974513236991664677655715083615873398545315576869519145713996094225814500014282284644908931602616978481883677454033641988530222378433999306461941422873596393064556606670982846107770835264469910364239645986524147515639046587778162938787446187078770335972047799240119469381916115334844370523705675881361901691982166453224403548267321726675148939357498160224821213465816488945615041870754705226647524685691337181615377924846493427097943134252271616528731003006923532170635528737641251882164424782927265300977008125287735118068052953201347341164230499038655103549741938847721303068878394939952668138133150701067637226228921243123253703870940803305604036019509658583798688699738634411987436373634531217275179889630327972984429812689828419394208139286095186746326304595135443153165911757857318376440472129804525691465978636261815767084834475843983065320694450347475220467340931962858200351265381415338152017222766451383125249246380392943663293059989088888871104944252117789073043265695572471120918531255368742676539315613864235237242340115463781733818124522477856186096367208008292815139376671217413999768668048438797948965762043750189402954361968950544288626399123207258765356278918199801634922609435363359420064488582349504002643078595453307354376352635572624766419626450043025891405581564661888925764641869071472413616093092708450596258486858166835715054036284826110187636378739881551695192004357647183261546277107200467655266699127772112674119501037334143983538340843021618156567203891616488309021821319381158672211357154963020028411710420590744070425653870462576773521345165079002294889673331417502632813487462434653231615114597457844234556169188285251216831567732262783979008300725399676594186218820507693160417569131662168871320317735612794538738171865391376090987187154122465966679595130091877258694171294843821736608491427794445719921204658260538356145140243333231747987315710809239104134076667465818299143411122421711266133598546509779155279000765828636814577823905266210630882135634620546732056747073030931432146488002266594328318430156116951072503786612039094529480762938205175732445156524941720400805714042404826830213015624956056680806289668055238350221357853727959251777876868408305783725591912683226844884092858194378385867429782977044843555592924317529623283676722738302813682199680962686340408003614926933844410901717797730869920080676155928886804659037395199519050550750584146070306885545283779787444232458375774487020387029011574088522057827524927939356413537172857748877375832100585924659616912119364821273415474590369437709255549087126477322385126228050032226828759324411272086997955371019893812898271606198036190585251436485918197039134061551994351216263302368801189595729172039547240475918775669063125146057981229150332011206811930476907852488352794072368253376631940204035439676050779334940908887919273993606200187351525583788533737645892669214513001793554009172461344867855000158227219385614972061357127141537950900723497877977303750879962084610629134536925455848831055563613746446514777238402151181355652384908524190652368567150672926420387996764608160739451180262024003423533790219235518608728833874088767433473788490518576453074125204937944705139271971852832560343521217458218260118177291077314326140987137037007437226745071123515977656700178881005438143443819622453736079451303888102783829005297778579771384095721019584913033068814458781546590907612923031642484719692641362453568441384293259355833268329797681897040109772247149958417733997361082940751719937790307984836332951127521647357841448040983766285214656859001566235537816063219059790168309986553605011502088717802200314468938171430759262615769565704341816656202786566623742296085268176201145713085333825776886510350162356192376884792427690628422034616369963679317895142160027064998492366423458044315647662167509753619832210022367037531270896350776933132229173805492954440286564559702654462326099768622183682205464830194131607999944288709843270092702942443918991191118672535257243425620104647935729836007109123208728304266389440543757904538126237950328687800833256456370204685685429379590463286863694767402344550082234261154319335166855917337475304344241046374021130733968536174458424388828552752586636627939581481305461644088122099376784416562582340234601529213916193621237287910625629908307784526270268356734607580856315596028153166981371898179995429741080259006053837079272359469636236209827314118498002584289019673006314892485089233300612092044609928566885455332415604589116124899019139562864434876148640151906483419973343804709147791110596677947589182417701164260805300395186157731681313717078034258395093457321063057831477545752558853980862042185945076539182782260643408749214384677670998376606319510044234585255924524669634004529350620745866111468388351812826615152722826365552883794197379415438620573662188283299187016637861889225815224168948624711524076644554981040778509920863277155595627067655243919579168294454045079457988658580542712616054676064046189437846726801381900100167318763268971849325983894291751333286267379958400735099439263522341103291913560470199915331354244960920727367862843369624229150589508749876476589219155015523523774090030951664641567664330969223531570869115645310190374957734018217961077790770934702700554537749765259299250028896814358209822512247034336833370930732667166919956400486390195499872969954640625918761573790906967088527439350819010120312225438200190410608904931364071922373843358513005427196981173240255168567823084810647043233800219850139071611099068539445058404543056584527237824007027790852884392498351181352750369452463658358442087231547201051192269122227196961323035823486045481955634758346956032748065034664479246918970290562751736822187107130141102824922846110335842652829367389913794057922026168115448096805545834337109875464196064450932524619602202771975165177454159418439295863132794966702426461536754227548155789463026125227136561441878578615547560954627070996152137851930082084439951589807432582107804859959220169927567831640517147773845386579718181822389282163910495935867714324038312620396817323642977804930690968903314716474666367121843583742381198655547888577847926874913327766455966053507878868579635246426600706153408199637929258413430280668696500138044574508309967657916623298798009504286083388950918275039750133638083305957166494951336605217791285455578237761246512298777523334363041679371979844329507015785798043439329850678451696652135972654911943674396758586806356252391437547723000794176817467356648754898368115528255165329915848830015658011359345042005503915405181263971919232365294796954809728806111638014899803393649016058300682689942106519291845732962499369396530987615095362327033624394491461131419702868383786677553923638389924803199382321970169843024023493387078901987949151970868976891987110320651917020732997739884834807115088486207963405751234092200158732553586896072799228680083044711629703067635842134307282078535200868234525967466358482481602598749820022197524669105735705501247009248867855046653129270090645629046164235385155270141724780098865522420742584776579897371265388855005674087656498632002307513966929481526685826100349518264380728335414645594145214852746891701900367653960047923062222581443054117008124446014603237376522030993828831651326291559723739205222073487207940997899236702609564928403955328231891587516260280220417256694136596438942814562502307034489888906757853220272965729033673333492368278221516980009417979296996969396710146003482036715308248090604701967783131821821981769867451431038748237340399478765518431251320112106429645039820349730600523238269873216811267439659063433836040573763716231082130910039657552387975191007702761190293203733835123820175560272914223540512161619378790382066665579699347943875512521272703722400123417427794030003524365474962886572402416362151426217377195327338970435108281070619425523364693050187369178898137039272654735221888324793030460883801744647921577500816388492808108188961204025290003276625025485601905741447669018589486709740506696185376311784624570359431487413276109583901579336368851213400031639291497782385322308030692698466274808114563953670793472399202971938887170433283053819089505934811884719311484824601373516516416184057675194709855200195735716433171458672201696697405937263122898003875674648426376986920418372628121650718737857178534253046681056258669510492909200458667245632182183929618242851322557545350332211114695836468585356428447485272951816459214304395123470030261975652159158950753337932923090671259951801672238800021987671665563503495944684918749710554746448316413132797502763774863927603061205544313359006020945462843541439759642111205036853846936834870532659906781401193190222950174832684757672558478161313165949449605471381525117451251378128787757706257490889461998293688920915609709851270585244888628853264080028975747920223653669232559207748652979841652049285822128433452618986104834880136125822235016676174841406624904580480865249577311786374192823455091317037674172252215279801850808730108318280232882909610468723836772650365649109588761206951735538629576145479938957371897598922667261997360353347512463881177600175654614603187075847219762629112462817637701179341963979210310293441140514275872295815222628094386551917226309266501335327998870752423435501066936832564660527807625894821354507057970920399015258449566599737264158690820210193298369641680292476417019064171008767633467747888274916222657990044032252489221022996711934905317339832904395586647251849777922595286255230959177129213076130200668656502213272237370490987546774204315175769727702280629957848084487709513573101513672464060977012165068267340357811772319452051578812137590374403936304864524287472921091407366780117246850297370059672764482314779631703476349262166914706311136757398384353946774331192141668094122567562824273973677339596226318981547558220989069367808254796978209822426807283686573896634179656280859507442497458141682497247826600488816744600152187360627329004226083325072657736295674367375903257097142492408787616005676720208106059225825256602478642640300096710970556913163625533686199484830542527844214541536771938298439003050531670285344138441002175577368899752275274135062905521711622942858087235021771154458177318020817750037414873646908171008838168960307681410577285522638475416597905258774000620203951894398377781137174968542947375083057919310918020374287654754967416524029632053989530714267627724846600274631645715851094704685600080650329527487160369030849427593048632460817411784409110065888718357972452598646814346428240776925343822676866382628927588881628553713802253710536651691870710155234649029750515591683016474714106998534880906893501864645346815832126115812701475666996824421537834738856036539888460586235204265296587978266962175828631968715852373697000153547390395673044007270671201621708728034738328008708440532010202081423363815471402531895130833041268678420841932737607371251571204908346273224261097419995005701949019350655068692419288114464238884994926461982298937123005273607214158489997496586235998201767910137375716416778889019744353860649436210812382078386188945823782536810828406245888169449995811465278249908753123063637113044236497640462090019803853401759918149668299846634532160459456104735694688586722354792573408315369039350047455733691872505842628306747166545259339410155034423635241427425897910505289100305865681844748915200940347752036264602632948707920659094212729766634473562198991605277462462839677250623759231666706562411494132540176918712614464769269947547694222363598716687201140796858540669661437111789511173210652943974643834676546466148252318176747803219925381562666469449110545442476904555932327249329121174279087755482388589497513684398587055141173663994986791289606213116644621811753378969087881669127674707524637417576353576292252091561813276226122684190386985059112632317783776588325024938028311633468784411295859336207564083811172875987329206626344320437926851375545140852688616258750948025770829927781284062153038242235415312908452833672651737517742427095011442903808866532192760210563020985061174991280171588402170480709268364490240962953342771600758389268504200035086766981293743610674912984879981202603460439601522306364138954811906217331574357069152139563287038851021011172121547428752987980733015544271331979476870873196749514824409228503574919226145265287981666333604190592868231549514612434309495727970194668199495340978824921815402351748511226288538076693906488085133234793057903436210174741525472342291224927953271757203444198970675079407673042995252134237761091435907192563433259080875739089035265777367571996530322924188837730765565849562405991425309840410751972805667140199685814121817016673229396173831690472270658025713985346845890944359488017689951077625931082974111747402009435843164976817755595648303677444994653377530969280470684363273477895792509012085596515896669844923751294042243114055274836529475378904405719984839258636502472271076386419869459332041884598289882244358638626336435914932276808504228165405477721492202718243264346891109176497119728667708807102841101097927871278455803568818997093877909569421504859596524749783368094156604250875722204317522844734439019345985341450471750555946545532734772834312565697773315984562557465138788259787013830450015836407028324427107144616881390172850796478493707498753696505738160055021104039042011847454430472372018472406945564496397584237871372030049985964221081535369643616843606843345609872107194556328645412359313655193255205302646646787990424182134791639779786414936856736682638956746319857718150692561440780671137643788357559483762547641890624862044918036572254578377143054750812614555319246355665561964347658362501537192219647179773278426337353330887428393076943778499929790745453874032107834497060980221714325444212574621724544066673431733389164354393567690982395242302168012104595398056233399528696945280990131910003142371658637449697322288329102340707883268484187938223084598968260798583281658980707262471966698644451551160022064901805732922752040058335674947811604857716796585366938288168149096628484859754417601152608527662486494213982970165581475169731515305268191010297237404419175862567678069778483286592342670695226400007537262652190341806516106703177562527535796839362733594170789089707780340647106563572366432338337377286697664867692894139829304926263008129136045074019628260257343803850163898763099046390479116125302967275987656387158630036448155153156275186996712362481925353179490339010015432440489809310239390236672889773816484243238085148605140219862030885427064678456043048527772380151514956793075482836739077255357339037859212885200788157058405574016683576100763385104078326369525243450771877289554870397586057965811306900588301597757263371874354441517602594249780816179948684290155575468183861757232932892517748861616226972314103075060141779756869387312945949327648645184949831484861113270392631506145385161359673090418156172213428222763195862691114455394610027533010064386304077690784571728499044453205885377039353192935710316708907725479861733459926355468097529677428028610049710696294086912711743315097415096308078243241224581413370132015911702438895883798307098696172147068338646956641381569118240714733922277272467576016537065012424607994191352939576592719164326201219761375854478736091369881695400787214443514738513628875625873110246151304834589546011913462290252783906804692674213320191946251672600923515026978631427051496647633899231415838231820448859634237935039437483552847630375318882767075897972920034405191413463249264005632777386312397218380040274405126182852488902227945438438729062903885516140843014694522578361941659561983885246928740296554306813996856343945403752419733273261080059103383072394125427038432031682347746422443869792683746086213062175826323617949063121162229424412291138670137501826295958376753457410493421374909814833883432222853128318839833780696604218363049339103656087073703788763640543236197305360137799152162113384415320670167873570760252080013101126451985967585425210379554690526545255853883012546400524007316597828440156761689273327524138062710800716917675910701598665635726964408191380203765018849204750267721286433525083009372126178715430035103412541401574294112851931093639689549224739831452145015537814650654466289397313069693522982524824892943672743854523482152102146397542848845825292818026540766419712550616026537064770076133470656670086518639513233310170367872486481250806215561668683239657636012515442200331066600639581052423073539406379947782838462052487536401851487786759106699725864877583792395573177865404272751868571889762508203869992086101625597576287450878379515768486277381527825846362256732361026010458056039369193957592406354765868050434721463789371069388231041755001522934556263340162528323026329347996664084279294050903901313449940776424283240761123192663769824975406631556944031090760992641861326426277500577710579951779857497929026246983491194482985451233504041043712376478389804765439265970624969517201053144920666434565348001947177330320406504848200500107692592014853197079966920481390667198972696372403383733445724187225118166813634379582531939314810570860215690298320695907806966465195862887102284178175350697211121680456843931400749651015105233063763479048700611896253892914519244669456301408144903147964004316076538509698987604647871709765714205709577738363013064758725285117276231717646030755080644208601222536200271554667400893829709926176878741925922796753411919833310015779488106303570344170145257003228865030918604617775820349098234987947356193137470065575274551779902102793132021967659836481629336992041533536447929622005877160456485882946050527033315655296263720873510795568451396264825447342832319673212406350772137231638235483005394330495516169875173279553889724685258035070486208328753011260983819740200389003849001353290710804619768139069775342506297192407892585863058567359812491324314561247756368335952557857630721839596165025555371790134751948209270513249812245654624257778242044679391940301518910334047378180972824874666682439345322659953074067370515820329269337035490919541148262594306626163249743099548616397079131487295208426977177131806916916289813565539808982376173598653863066127001352408535462982247407600419823402444899682154109872071644816253041126205153248956776097664799547730446284885793795262223931280543931284591681733397898360378100488751228325137885427727389654095436185270450421430686460449468710466587488521721752652723078860630356372815433671221622340372427483827557757507622542018033879628044839752072732002232841460351199141433512306128662678920302707695928675178466765349413091620471834024551583656245688338167301208562684758587417403673517107855138920375442199221641303563539980023211559035403231391479935023389525956693606093255408476738627100618763267888175459663784308036584000660423525136830240156880544911037740285680791041295510082757054239516870740860028953742158718451206543926031375197966183762485404763651754657549198392920744893199488280942681367150518778016337013953008128697984783192372100259108708618376452354951889030585633165856587851907360473946611578047785500081837854579514475020211328396489646285091745777977082171906331321147281550764223192839449282366340151977553893741024186900982825898090874850860455791552680632538925891574064116956967337401274390314832842960693619448583868341704691106879448954220898867423430098464967878548033833110350644551683694500375910477357396440306929865739546958481534414761114957283845498990821198281791666525962755971537368738966167997844961854086662586749688725989937067256318934018421010136161786400608502943949056048324590893724477874384425791882006333289493919218312109539699568595507597928242159024920197851640071831317775143165692215888496528394645441417684247500717172308929139117136042266984790180517127640873305447192467189052356880388732984184048615504191210731693219292107252924939246277223271624624058470715583022991783514971393194855901223048707032782391644326908582693385694328762321166118032277854906546332101143159108906707176652212983928764722264532637600416574650238466657961763022368932021389994609182322643867862555933304029261580972405361172725295848874404653652227898616380916198101379332441541173075520959535527713904932727807582554042137794294381677543841070797859606447446759585592345551100825286462874419720561327223520607487006274558764922336339570687382380877607456869659798729259485566551244824907339542108757380835993611607646977382406559474316069036589846684848394814580302894729457046275177376167772659091893135878862169535256666297721956671641071096564206990156215426229425152570510803047012252946229884262163098806423104291889826638841178286981804908449353327412009408870366854660554046726698435479287457548439478139625808113610398911500256921979244543160324521065119579625459326218060347076876670220783310424993137563461382363161117595280859540598213234543027648672470302716489360810813075212777777243539026126246922014354975693317043609267249242490428895369116694026060866081787925439081866670552101704955835294337889221740031556019135299102976079683487433377140664848760419823278237817651210984348646822673020694586372659215773170853959275955573444323401595762127553922395132279191840117257352221351565850343338020897763957375861352788584059566840126992962914060049115344107861096830437202926679742945845625664723239830242671180155791456028341126172356016849903287813573397600211781792905195399018795490964164988675684145863476738370696184362908968463051782042958057564609987666745385729572133620480978595675746647917305372472456257964744586907856691323724200084420425819482810926231278253045644662069994279299955934262270820277914029390005065584608746884320691865204057103553218202567929532239863291969809436127076202906766384050062217100198814959716746656791863302693291590109638857762328740126795898756113846937809838091757197486090691050412243147377140395687433127132039209366601546360512139632882536822509442266520900656468890004344142057947325499298169742132936683160389977619534079075238124136693820303137721340144674350710517936886480673207753794147425315996652543628538244316515177516071231679348113818463858249650088713250780073403024969074329808275655864010956619894338829645050117497107105205130629691005338031776583193321149147700875311130133595955256716298684165886224248184156062032331607133408522841869821612360976127891312773063620339027913622972043373474427725540404676187759647346915716774521832019602281944468919633449308191776968497142345119954265842430640213285036605843408680439713996063332383204545902750623364560262954878912494675816435724414077605456407554767724006923657497963308645528453037337319813972449394384543553497848110725522112062925211593509924035591032085662568676255915489589324096107808705270820735561622706939384623267487569162286392532573455413489543471155045429967058796503613955415821265694399301792919938660325362357676100433216257993248947399222920106955517938483119420489708737548742393915965555524816803905484657936326961001083619609675793550289646545759940250529149955013671108667649227873088726390092722783789348369473073482571274358556243521460052262076979764836034119032045153536410182412806507693527069914331611707688016945628934965342579955015568842431952597020772493236521342106006253750454655673918376584519616770568082646345666049451086661665373724086593079634005770884795600162430486181211322965638320567847543594423976699259187702554257094423979497167228142976311784327891981382610478380089089054960900778028733823203426572407031477901469429508710435195636404193464212951076757733384820518818912059530862863655251731907709067757449449360702653874289510683251022786997471244310034813810829678391258350692386073437759011758291733388906567230734320141056659572222248770302362835623980020392222547087109058291817404096054355866386848472245706434014911220500215107166789572727295675078582074022251521995206393659849659413982180266945147915522618845553416902102725481948942423434263917501141856566122095943560684951815605494006991233465180860535928823487229080372583505619027309874056547381384392619159554766135464719162215968549938055465553830165885747182495387187096853053516072076018559733047289966568140578545438779462110335955999114716124736744255886139641878409620930335122380555318597821511141344179881692674047133729994903260780641367595973909700310653937947638447994065056858220766142823300498618774258674361610482890326184832587227431359909914810214123624925603753372662442193402343315750918736690858098103137029249247592665131292299104051785437780250431989624646645391699782706792191524320698258919720815690127148880690237247005331661843238623753998979801460191852030468483148522913401960867800904953325717408430609553957516406132276720980549173219514593977552208803531543371043594239681188712381528661700436710042669909862218783971921016610811158873370515584119607925086536689623742306449228464412770935969065834111019003919307500958388986798523123876157684946419280006823401170662302785002472114466349471089181727869554129775953547644282398371878674494722246752253382645173711842290586631605428582666262448897807738746999194985330913193536521704163493672425253654349760841100690737453234638300042613648453047456438227857466617115141878885415017993906811319185328411235408095461758084450592423596610862930580293049225710534205632621486529989559983101369787450952791229074317917654352874123204871457628939993660052345127158235088231207101835246315692677665961975310654195937571734551230536493377609746870564350125904397827637589464397444019879440536463290052521924744797631130840539001408868182801687193847177169579884875953493458950953641281832787695986159145503108711625335268561301979640270200853812366799050936915445125936408937338708612471916378947488571230546384647578965252572696647518299056971282821964040065546739026910173180518304930459074842147393457943187508535208893645980816057367448958022912861203748816524529351866215249599288668001655074250949066195422656636413953540392893843104530611104046681955068595829283726761841306334129212625473792053629532447087997390838506013410119070025529479136073146815667564226838679473269903370647325425547910643803482812430785842933403485302402345589001864935804913323554819314635919816214711636439949210503305486399037404667791837819538793911166931251867598668030732164915732634045961018321491713335560853888077761613462268437149948913165095483561140555335333319758025297229430511338948755010590241358211891352651281327966579956030950220168518511463168742939719734243031297515969938430484858615967082305630211362528022352509444721343581827425322075274851308324744226920210617091556827190993242745373254936238628059786110444761826830985407897294715125622474243705440967188877777926461672287754342317856071072223061360214534235027300367208596723674988569776552236600701629769383702939680916053928816578667674457148990828830649383588371441453390153787453012626953824102832931771293373249524430987983655192566529547827716836603864358310387178561537239055189272707955493088868081785291297313430288243503516189519306721832992183203679853985473398857921195203752257613156843732722459720114143879376057650204553151311151473341102656298971822412630665050081527307858891532131613456939924775912749945212036824316750134039089319642637167314671492931849486108517745930799056479493479213531774509814652751977886793682484935444030649009999502254415304478435671538512612289510032291630075267069448231138017376068730736276017235956836328526259112014720029256086288363933741559486178160468132964733168319639821953704127968313119161557019331769649759932942072457856680238083985368216845512697131782969809245344757982707187326170775811591268393717219121743170759990533290478691394615990769727541738335999221010464697092875218160588216350223096153280782658196297366113756235711779667003276695708943270862982778362412273381212121203354629736120284778145537544649437094385007980542531917996899811969465648194212119432606121201870849607853776111938916351372253773876505856016194736070020970851875499568312462155369463442419036534611801904711483888708019586764094674308875763077255330924709417569785723895828512451348647817066091615256755116222788009440701850594494798910378163492420432944094220789857935304346640151935581163442968338301540407876614366363315722726522807557917011180419254590265024897100376693190211512777923905150939323806780443091110863342809873094495502765213759735607543002834921832379130582439883168029391225254260419118160348025725729417592565984316472838957184000364690086512908861818260232271985691490506266270030285053104122061495456370209476574451791447553763318264189186567916535809071496327715907553340082134341666841126772769644505186260212876525632541229658365648999559163178478894010494563737130911448046726809050106287181634974687150417574316809384212697278724426355721626742221087020618525667929916043796426403021068177276858431221886094798388611188143906283119613962344097377783592707068396309842327343207120212433143638145692619782389112211347761658917831056399704900449834026263058882101090339570089511513945460602027792263958915240168494462654262846855324418561581638303657453210031461887322262251524302518487380721213136717306384524258492889503730685313349336459298950461502389707965735254699251967266445905120097190159827738297835667706809491805008666051770225124463059057035006967855651705179078885435650469770961281362547433151107584945727823530115056418201688368130487412659301282023143459592928770589272009522083144154523512450923559157517243669751285862919167449188123616404431943107305631639517868462161895919017238909831133153708968250466287160403865698812317949965994361763960618081998716950540053216294839727959042445490413235046774886839872731291401544758701809138373553505749962333476586326497907312959346334031578529194235357776794059621317398765291388429109811152552357481951927912124248174759448877454878346658911962275820421912289909313406791491622828622258554952834729343563159246443286745545369852253749102237451514113441428491595433222536597594744330203868401280598280894675625280595341283138877938367193741803982973538937155650290391535152757173406970214796290356267963650005631524256300955483654570377042652477882393347381847367166916378792585445333353186862049692858763948629286180065912138862962328280027660252758162669679354648681436874209651713573398789541928763979717516010887159194843600187879632661683525508337966326473973874078050182300273557174626854654019589079671128511544179611627411239800581151666559024512208506693133099968135429571726068038617383096086836423514156973655805064818935596066475003014880788647182736008272332842131545295796664876503446850462112480588726603501476626094456820412492222015922348887126764358571789731104045553531074121921859587212643165966961371704193680962344821100974083425764474524831374770012912133861210653944710587921958662575305315623427696295321222122967130601126663542995739944249119633010660912381236769844549952499422810056801832911525829903143464549856849675502257279102303064034593714730994191792776340691459162439052232654126734167800597667196168860160285423884777398432428195181862225409419409517208853836850878329535080157696692560261734352133774788179297188537974396153657663571973394723382420667383681397860179794467287751483653364109371644908297752866216018805980168040232967713658498659633644786005289303428607948751056828556135943659528580174203525268364588171888860935740923007752427421846754463178006447908631953148058112090539836065126054803858883089868168874044826086727152954759279049483975434076137114744695051862596895079717105530167461868342117454613757430584752828323782970471662254353332307163939233151652325660203060015700566420925012580286571159995954289315056708983248325253212527018942809204655123407158768998755343871360511970167215426654652567007329435880163022765857673822509119922197597533232457353114627576231057020513840394040024552558549893991746024293083950840985386154364917637441699505902445184859111931170484959885412145219611414907320247671427077217176065984576934650340127671240758270873687675888674011998019739795939887109290716688908735801502446765389566634917947090876759022695624063467250611062146841173006142100848465352885856825784085338204281276535401008256258487848858966720728122330954395675642341683633732537152895276652500928980111419129061405215401076701381741406555219235030423873185740068481618101690950629711412713606038187165515249823716537186606419994646495982655817040035871798126484720651384969830989579082566403604217070305162303826045614038193651491970217708963158159708250588318333223193186666420071493897435450649985296861627197862541089170034666095739160317306161362947464021831920126636101972821819212009029500409740526848146794164166813209939043569484919376408745632172984011368359409008595216863350792970143136054447188581515761518851159517062632816179203591762284450227337583145934786566146295029028522743731852085302776360486570174001112380790986655064788936428857625218734291112140616079415877644205497923128534946106082865027868026486677603420258631042534703310912736602361816557940227821563143194090841415756354251711781623232513633980152542979312347177630008127417398459095442581311822956515110750189304721746768984216670296944532492999201558760810202943449205959645827964300591338670026514593365744428610273318614387737217180804277970895579720576538741146076547268856578793542780260474607310517264589773257170579223540642135958138652797175346578066431445420476743976169771540537789137177637905576697547850307715925641048210122854467919203063394564705840704669657440103024239875184233735469417577395976562846702551818125857271625158917159168345901246354427912345974050472998916907586351785855091977232226213678420222329375036011560303097460640184719407172406557992629313372486129215812177194465174770792595817100389739136203697486583066281648088984906229999042009972975718921899086779633849485269960358501585214745419130680825008844945336833892219901270668613732825962422430667982208221938434325284225871549735272928293837515577137695699962559969500167014560989230580073765261655692117977075775978503950764216767022845094433077125108693023744822639023394107357397844351149701915699632875336485439367568224615896143975151827074864308849699943225653334733015839714623046492022009523338512275820434096213670741820137811820075236597540419799294766189742771563428932202986383623040341684618701095558757177308402727395980803339996430097304619670796143069959399243612476270415261654095159167548823559797705972730278705923526381308107583695341216974351163549003536181628223192948255065628875703824746839539091680697584402205380705929842903688591904114199642151822123766888006575183730857572718221835545264816409061150160342110726678021725539550841163625906690029242616300698735375156910120082852581947875479231836584123026604301025489531390843113874064285090759224612868062003785602208762340736913205452924812588302671193783508036368975090678966040910107249791862272759735397895738413864216906811004052269307802475141339426771649706119544177597783245604796721143781362787324259387107568702266402911219089391935056549652163268443435463232093146867921868186191346735428618986632460309148319928292367778654646573134713578069362817912690698656743103184346729111144410019096926408340193566298416145386920011538127765119880083319717034720132906551450002638036874471664655092498615198340582431600368598748507346892826401137475227964918306699874842063864858189980545372148291878253857314109779415589722783162867586767815825616026068958102451578848971505127230861932822806487692480319716794304708709537707010043575816751631615947998867030588220259975943276717481455314478495627032581197598315066286516299596631278588621916139243643123052837723601102131122030473536962763596140379455730462107855986010136233131035497272955502678865786075498833794395673798234636899798791939140355367658453890953478100036295661676136214802447504188761343870013282517415984242739709697983971145621531030923377396461206166124121627231761670649945215260691072078441698959463227122364573796491549217141024868604694744961484706043111227144668606700505805801974451898538938439155823347878007985310480063453662472961002320952215867796351483107599286442705600568105454318583423601375628559801217098708286888566785775027190230345724899627549074423229886457407363091801713306161013434233163383682144743129926283945794951732158462610096779147222946828381807903645846676464894978458641861222080106939089732644894072108956935432918872839033546062159527213515310651648320776142365445718624522359357236945899641970101770366815521897311949742268484039979800968833786562920133981363610448503499911846940112562628336258224608612567010300261691936462775264224781401770538946472507663485583027505361320024916810955390500924023968333323673867833984719944325922251449521268324387287690755052224850122443630597557170616644881612064530133454501152009552617441632324579426788313458441803892216910204904967289653170401610973142991862903793785880625266076610287701069385830357670927985549200881977373771602720517602917010056787534045756247524861680286829420697111623785881763939929882561395415441875697761969328991598376598248665112938944243250728397461092870205559153448301024417711335720745222516309394017105921585925930719916429519832111470293229342953193159535411209416290022323823330646724727017465664291964580153951633521487123455048510028718612606897044767043162152947962452325869270126016894418813490406710682976101066794891795670554774210103198440517730428643684840109965385108586776102134047911500017436345502250045307679942620351300609446239263308989682335311556504751551012166638552638224069383677582561304312529011464424102428142172821221175099044427740647109968827922292782179607328210534996056350720614230728008606267752415205192947927109614001082282247765080866942684872068716617482785590944423071220124106836229059644262077977861592725424535686877151496708242313652206928138998629468220407672542805062406478887383734267581432893724794946230873130687668777316750990008740527289371074998377778153497324060087200563466272750633590192305257073735406284138206539813396679388420445827714650279786065753917167979666072288093717479474414949282710881268818134677296385858588719654684329456265591905549271167521650325872224877007295654470231211764569864257706171363763869445370519389401382336997793243486248293553263349252957892793071598873987555585395433849837305152583798202659886374598909521605596416392484708601171694987296349317552227509582375794423301875352662580276677695036923823134363711205424943598100893270542266512444727797403857415942211727079423748263642971891630876623889740662657873904517683369237193348469868823684449883470396199695556227992819935947744918569734997628665998621293178477189875465752246369957600847678794568650899135934454416829987376505364835962992559704045664024686608757633981904450133313033762456290513967814162626235690344409475416251180332092203786449433266118744292939600477325630804500024017669949116453347097009803723031479634866263514861627274440430269560142999513523303858702030414521415742995914693406057679505779618100182769429006432598671223799224929510382802527302287954589637418600283021787215951981995230887091691865259823740237471658207883544195420991384683754423983231740360815219994255323723008251486212965317584871938084584882450980507646663584403191403579595105142271225596293163428668685680885399896482701379754487864096558430668243358042686014882759403006128349453124642178800580128698596758329655472925403878369332528180817865573480895375650327566837484447066712273804207925162215824820487705479020656592851992719821034387900463686524844679164211479277135864415789430946029000571090856132909799867434292978473965817208431494968477959310641535116855260604860316887287769492718794824801359619169445408288654046801254080453349273001629099287157129227305995205045945784946152554098969515538297898732282997086886523275724014951306453155476864650600627189204340173821886413619528776274810335630112486469781829179866101196068994242495297456141187948547155813841995272992082685526886320192442050708202208641556751935682061118305997659738312876539684615815362115700063253717929664915430342861197594804269402878460912873207957974016133504908465648749999955099327714634378906013390463556106142601354334042303190733052460410326747901978097935812765490219963328610735786270596078356486867130384449638666028219210385756054116220746943470755547057745994422456804408535002733920881658821177821343901710508190027979943103239756808726119612798872950869618824379832749907383980815614236984952664994319269278452265501085081126583517588509612128711555910429319358046617209144211890296569799970574300981976751228793423245474192876885717496060953058050067496762694014556936212219942105527489241721706597886213670174604842804136453549317467063088289617817226681750030212570599406884990894387388565939935191821766397897089416264871244574442679730105972135724876688140433104279772282273249313723689193036140758978967466720199327369179794615725839279053209680016382166185985262987105114181452451619568781732963971503018508376041378569061999788211544218527594524928893010348399885401298052055915365535007071115628191212414188956284964607981786256682260845475529067671533742427293506187356339308860535447787869572962456963975684939018956869517059555972388168861074602346318226444550140876511412982004245844695790127532111929621696492665896352467595725888069414495742462928212479532981636255440310433042404975891457396311419113826573517647584500115540188255761177285848121286783459385384962425264533105719915810602790188565552782254084883187307591086788054237442497331974493264117159131172332641216239039386245326011007835013407817448919509259559975507003334436908744212785801584112418652694520399341216932242624480079939693751144613618839587720515267263682794684620512087420536829719513888481667406005749408565762548528215412966747835589724512206866164152140231200672358467704384129770982678165406291230160009624637752967590341431330484565740592978698718172416327271040746196810642898435675909419621302223348636886082481461426191351113630043163498878156638313443257649442208458361157326409763337050223464936986637054650864113653916570323088529900031301264230043610331421960763269251247508076387706617368897444391532754774541485270931197155243752202718936120992430897000862037021689579298116652964628659254475113990666773295111972534350614404573343218375605672496811135880740531944902306959199315180079953305293233548671481677399267500458330292539345688403615955721110155934226594679700280508150969823632320419383461796310675548469599241596093707692691402041276010365959669581590670032928279225863814744785042751799392918792672719004638447105207584795838403456715143486313704748859450807741004289671348995622845883201867524684210530311851282075005293328197711559258590097255499429471354775019607935273395568152489126130101484898187872554182075269759751834895551438513659155137440668946332210291699505167738154614552382376397350791817058097697305404750632640360307617228723818428117280857286922120407610077011023786275904503601217168605863713793595272937373474558728130289254096822956940392018229750032522280885309336512379345610548291514586366529414483102377281160107495105207156579568605888619745518504039152033923578082077470925234902219168394148494121638217086482379499681821752170912690102802476605990625806479864853034005207956503430104720278630863919992684789462858024404537794456137708560011165065919585067314166236275824989985137590539478029267430270054473577357424011681197235671864327539722331909606558195814028419684287969174950395411900877404087943764948726436056568824713496536277476798114228148864496596679599424047789154141041838928843783392339697529417295711442262611500697554084259802976088285816285953574612930585077186306631124090921846990677708181072121691948431251151588177731741738091344243160784913897061026750132083855994605729742058493317614649786856705419756626382742387394943907045999768896180691233699111121408621262281894061302405999625532644426171493283446681908020071608090490362426209472295769608768439278148117076541575073478167502720391824778047747756669003356866963768677707551296543282147478046596826845975007778043010740946615247661553873838120695067163800759197570112483320723794710639623608346378700369124437902849013832547036974824250675215544848267974264138343356420621619458244031557934933462929566254888247874483730321571265466416672136989928141117507480735343369362180063078144986933949299101031006775291730925567747759354870006867068932704301257516702775389717007805619266583875351584023862629374005545006791421767522331924903736267662235171014583650931764905566667042737479920902716122445427092732004289539091233730885167032557623673196148348072018899691910651312985986543096394634293516643359482519741371732039945871575696755948327569842905407066170784751665433525916799461426016686305420934295070746761472825622665503541159723434190893701473339247532961941691078584242742337277429659195133143091631109291292145912669070414850096694916554862657308102997588360852618414715838740930874674052610813321246697920554872527398656145375418643124722121094512600164376062433691861942004211143789618444098899587927657682087122698819056531673010740001058162112531412789590560018215743570151348380292283249837090908592611597847907149239931154845926659588564862181963652948362022548765593436388548031371956767293362099736443181234149702429910067445004935730203209636116132224394119632707585166590547895876527491674497602367407050590013970944180216872297323846456923487438922299827564813440864012255480556247499229008572106819371910923151043970392170756202544244351628618222878804466961166276471279230651811202916768104916776831894158555024491652678771149117808829486609875874822984941670953926594781700284271524752472593755114924208810884655109281176325316995678297339966159466765185129843347302885802746520815064189905947403570369520475760114245286166582781343010396002374372710562516138742342989239322347350514577193269109748666776538581209428946730872259500987561338851521077544520259258072153555677273565906134379799373002299945759143752335646573045048051766789183314137462891986653864672944521537146794927860609818840668201815060493269921275685992400807357362535927158499529409029992487088528938050814414171759090273500455636451355812766246780240820672217117926308181286329842817017591970065493533568144121723554439910751374591964462588850897304852855090218145060194488030050328485621017227012661127777334954358968881884853910008260896779286221595418696685038190559846010543732140670644072616897251674828809249473599087560635972456519696419470924906911711361613465167307656961837041793016165331654945733631889366435546827598986329647034038486252935103557598611260010420179347241835133166716686735231655024142842014192775558742568460188437863524786244528854652323451612261943885598611045423730404819726420339111178081357876474849237775688852762407176311912718448374341809680830226478088370081065360261281852754388524334108792118357571927442137001167570798267010022543608243021813948637913437575531484824389995063005669212859797814971262436115086113383899200269413927913656740160762511686958779127735847627794645134963476522618394155155835556853501648163384064953282915420271058187512362268790335070070066439205139435499627609135798642593973872703481020015855517321652297441468001656037966133301874145369247554838544984702243744196982058425333077687161496327383092222560123675036933013531102474669222182560113125045819199336217489882483595210816703920515519833183871951848983095406260905673031297451495306526167098239254219589333373936535931937386827039910212184866697638942989133664056260784152716698037622547705556764990612838176394048960300720173591600855114131033831526857258441284967162947811311028047252848217462633378124364502277048637058562097766490994314038868423193445038696919466027766714327427024454635699344010297409866965678707974200250834817841706215676397433589252551457566791073660565256233052269116886247413259386937698808773108109281529990773118807563298266125037388421574034414222024275774172204084292430597361129324485366026048630874248374097106309639071635030776329904978241479493753178642521237831731451519642619511350655577077237203893333405931274651319690554122340404465813898027466107122312301585525881126681460900515049130943241228762924863407962403528636982933192020972160577110999725013855528876837425402233729334405325825299269528867364994832267921275549109412222289158555051439543947004102188917527523824472861577291840514359087014445141780050105468838734181483907185536336140037277287321655298499962217594655113255223460727823899510197567116261518960478212648124499972043942720463312649116878143646357544166454068738274841497276461431514811624767303421689443007551857897359176612894847536228113363606619592127237718920664468657138901809922300059825701073708165212377000022439527722820897505488247919255669215296565180509247468602612859096708726391834871367282975477582981169387214982912720539971117603028791249126164977416636098923625629507218366074463740470197286230036772499927833187908946837534392732752132777410943928385989689219272635541355404917860195936835952110208631065007630594261476036068122052141842169894030188338134579145189213565417620422656051433740633586644473018906919915275523201428628587620453629297540641325134734504259204288611610014458786300873482400812627032033738602740099078102863114324484148832122000560519953463133198033357007728350228568220359003488003234587066547642066109807240184633562968780359654506896316546226365750190381077545453810841966449845094918083244369939337567422787884716119177360825747894074718026381838884622184206180070609857680684409623385744983296737882943011655912536776208452657171115324502309805630305314191632928901791926223787504528319386739044589218209456901716855944011028131487245582926926460922207797767216937721656069026087705409279129170100631707748360632489085105193853218956336753051747403573368037916757831541866650133005926345376477220002112393588772048733140111996297830697009436450811279069168181365733865981062973304227544669355017173846965248969441276411413564537832584206458549559866148031254325991315088302569248264295561265278124474423649559184226819127537228766365171754850440387184936574009921124473534501590866052508076812266255314684954396360324744859952866257159229725016432596084442958259015917082852893078157658382793326947506298823306076454481989847048917654271649708200302048316285388369836639192752340373821311791066380124999130431892536751851125605285920347196873164122737626763693070270557684682345996750335743840961149921118669913694853955807387260920507582288384692355858023729693904789811783894900187772926870304285760445046755955451331637280128269742290772030766315846548264796427635602059479101995192297855754915578216988917753495687341850684372036031021750569293172717451647323903835154074711220741193214006772636819386884424535602057131024287935843734160351742936798552031443354390859024270297086030553458870754587609960383434165841325053828806427007336705336329664008623881879335732178190177538659992597748135846491551803261775573418129218301314502657477346635518993115662199817571051659504540244117595268870869258763664449717177706719594323296640225461904703292995069618050552078153506997526900560572932670542911810336102367415452876139524784738880591376348821229123197274910483397186926205380224792171425763528524889868030296212144363489661029472992487187299076596008045210731020872974456873664959559707696711735061874018712432951799964138040933592524557854488307750142013945124348709741347374398968439991839555755079769599272007892154064041789047209190824252498459598643120939158061642990981772641609441254550274309868552341426436808544398570577856397224496723687754221573842505530621045691851696221744094470855216378165532927687927320275672606670689453983188127044477155132925286053023886855299027639859876466627578413952680357287637407634255259195739124318527064138351299922500227082633981443210250900632218500820979331352125540900390572488113336480868932192752472735541355171444500742955569398990601992379462877131933241612539339842485152724055095294388650347247600949736737000533517058816141651465240802406576850206272396277388498779476372487184495576175864902966587081866525806628542066386444301822079105087956587343898791422945995474557690321329579950066639500341579562497339129569452944254339018697269281974819376733652260623495172041806518409279115236163407846917664753489268709384755721152117490166210164827969669262594271126831230625058795006937220104896197742021060534140693388297660018876551654667930787690956648256222776397950277680628747214465649179619909745027531537136399397014839115974056771106084130154762289131223019996411340844003184398648197599383638131847525098150705310750386547647546539826974609081539267775711911361382473110063418562745806375960321555252188676041091102698193094670866813633946208319016128676320616029210404642702750139406990720341512767646018151881728278047580808448099546298024878882740045563585477011644954788012588781733637109018061070404029631273950633675952917265428196961273399025451222997395668713784403106999465945087066387732057001696902018096185331740240106379894518253789860706558198323430197555415191975014697881829847722697384945332332024851615776220295405881566000591131225606558562695029816692381272170928977677938946718269523751905851232456283179667653256118349364786921643807491438732246080413651585130933393219470212517092322249649410626228968560912803224117810960105878840474401647281834203155639059088643902773801222876957302952650057917079606874152610308712095695697535211352812309129844863698885458538103507915137436189789533601325573190154825606074794557612588851159083644397286282030233344411983539680387877002536578949663410783093707355607067661250582048492295955985331768217276999702678722333718148610153456058808879557424717976271915660589488253397460509056801314551851489510382661235973457013501401907095380910685794239607137282856691529468147367414422470392619284127387148540587807548317393345452298396308451004390740946461857457849983521162298841562971286349846615499652799193834747111689215864554733369204584440704365597214251765730472622347617008478467556681462599539113656348633114108500342104989096504612419684029573154405929364617918806439812713488465599283340741414906091864208967254905826893692636351999156994562925043732553548250181566418979557788035613718195186109910501037083280047645506264885518297592528635291180282717230783729566772982265910654912534837832888783242093315942906813347097444272642387403612539204872157920197650708829676271802955783547761831324997923928744446457381194903143405908573573684296442338240662120273574040251632406449728465238115023288667516700033491799032635351136040376592106004798875562728620501642738787406917383843000679718500973564222413393264904443314625490566712205926028375585190219850458253266749767649013652435731976664065708826659570147628778948195732084332471694921262653341235593236531729363151902520156866345669795476588637498848922334774295170873975923512258235203216579651387083238187819863888978971038774490195305364800126317133128067891615927896332963763003389330169079014406540692781143356494855994476879639080788168988970713865999069167513184324985855970476529932035895845826463084381855114450272325179527270750815884657008092567136136871249215007936511811940316803749955704842826040930342954965915766435249505419473386983007388366603865910911231674122765235253892201888598237581388366304292538696568303247689331327794768504207155646265302874505821453585367849294705117386799221306469679301187197117029167781411023782266532526915439434313021370995027733828666005137698736663934302514833274704736611320604645976587769304209858133162479057145461279056751226061019441515301449027295158513179029610277513679574351246383664509103537866194361493577701319995886279562531779533732215012800860008456935768473621844768111237818538319905398292490640545674537431964461056564224772719603013447684988580696197995789177941587737144335284198258399328893543645698794488830745519087364928591714425693878085638511210285270831113732144046404388053447207648770652539838022569954276851457446683691572543031994570254809819813709234706368958519291276253021373357278187798889838514006465304570272178208250420437629704519351784174026601395973164613194308386454586963652930291806587025866216312196372236610337583459813694097687107587135051982104966342505879927837867064659753112665749418880464215794864295893901395908338659458837868479442207333700985420550283901317960977138461095532376445666412035521113736855528698615867894518992915395854655066810591685763294542794574959958921695898470255439377578905022216759331871097289017892586773754515694073947287960570593039704989494820378118764721201649071731940440996855179528595180151620874351524328657999165774452067443179274952714532211350079083874343267980051064290305606424212397616906210707675059244051094399788644522532867143296519040944718349068104001256830757378621624442428399905256839491674087391601146111846417344994886207087528321356034163464366167288884953238835538087920658799369150128116181379390423044784055531376628312072898575759490519225071054024803312381750178619751212778119580844624849122956127947075594052291539715379618770429762504283834680247299988637226486958899329011718127817302338317153528560160275602524016914692462304197204383787037324129934156570243364679831104553895374532461709729691306785458663826144890095819520774425172453450339901520841985561567888420078149875063715646704395077654264867219432757108115184102344453083428358318482251212385833682029988876413050744000239607582762931619076320441456620634497760856534017832998812027978522208261508754697464146307258730584350255499505528083552081900633070479223408981178696579932135469947395142706388310343918114828174463907488558080236120384496630156430486443485899072293177814335193624304693544947064317079860804903368096396836914895546278888140272669801118220950280901609328070785457844140234948711270184872305555612236926373903365297095816725576990956799941279944588449012269409420378401080789752508955296561244674857409704114937474872567731420170100532965244497096506645297624086397918461033074873368041539754084468872209130875690501868067923797663944288881182640599385731291658230493961752295894925742647574824693189321349588253899040490758553273332736542326995589723901965524793390936822680540970156189906869259808233209654068145438603198029446135176155472964400926251545570106285098433037948811094451442477817098648559490746869242614617337251158819852892145318799402731405470864177921634958215368375117315954150793791790247359264810289769091531217003602319402255464422914102153632175532746879206978066609233734231838652826474961460851051847049871532594715819245741685457591989951573716365222307209172613576090364435348399632916483656642861596112992511798714967091299611412658850780707375258440402865686535932999891935745936162202821096927231542078347274474547159835891309545656088256714406549540307617270893299194651659787166943215123394199858103730180829814400968240160812236052300270077229147034393940498709279418311120094117432311310379788285837483005622303698188413616078150467200603949750156682825096490834831446381306019055590672547533997294372241915732076395166709027624712720502252003336619521581989214832737293853824150357020967305102079173510606780441665325200660895274198269821886281813865293829921657767995333538416657889483604079686230167081011224945634197442300324568902756140011375806194165484654327966389178480623959904629853096397912133519754638727717105207786559509401848528443087763020599212731658336767425262912920142903465818877426273656194333371118175598349580828848092072740999216795377887857656865956586785015549730200174985779191133011709364117288269805904001099365012282831490277058004149440580293328212471255097472076941354031323501210601658366681622464291665140221877057297152405527089723704542539682081682980052777079042789957892046126372250337525010738914457413787028851288689271390278835382607582356972042096044411592199834272398746352499422234232874632575991304645629174092242298933978910648067335718390628696301787289119831725797776173434655223106459216046105533092660601276371133195118827193720342224156068448428233560590380843935433523193820343773961107714553396480824942380464810714666403240441307632063010952333025174278517769318905547330224963471216806479137932740856031882524519089333261414860761428360916520276543593796242445208639396767881939753267406835423470321979008968817765972319164536468364718770842110970738407931459729070036681626253423064191695414227669516510106411182890996814930936814121311854468404334625271100075970416715260292541775111602432006056999407587078459997583642409821705589335214941034975514405351130778350372679955465561099744751392352120201076628088839060030878857501826383213794932746932887606127410556468650341432469880830239364033217268377193462298393074802206257440117724803042878768988381348727290291321832582957208693642231275824028847294949889381218237731330229608285862899092739852097337616357784579035782860173355758261592100160621239015734011026635185643812251080257603238081226981911664445986759245663149809208500305937841443203254832703494429720006556737334465109078512921683320634722585352196130481951106332287184227839558900520461556120997560272834286210603470898518857845544397496251153268440040900789258219322581705972152837639650714262867909425159370043319650225002729704416834530471267338666394059765295326653849205997875187173569639225153576291560750736192952838402591232181999268503285711876534189737378427669220359680583799037580215182360886241607659903454857236355223380752711413411319232930600462557221667632792988077466821850282291548217277298143650864401185508259274823242397348520414503467735281825519474401932583438471461607586743292201114770141063545922896923749306588647142667063769844525702513223326556665563822869218946368717340711886231315759311867875690536280304259987696336760776435095188597837361053472385120271304001626168047094393607401760209403226659305642404342314315351976714493477960227242938875966315580656513082612599215605794658989266581725936864379655891824325668120331622920480675841157913223112703611912152748830444445854433195089861229511664095259660885041301167778817003532078454246614946325208669106449846829537052081342992051202330174263772055399907450207548816361684102680221554913692430362065021010051327951251476308191616614453163841904442055825307160910199635974745348984951006915104479176982117635620309596563182139726271287405197359619746995640375887526484457823890614175707804343137353160950107948953076170938493674254910933213366950369619859923073834923273763209676815525392706348643597500626297769780718333491250188157735010829377282588118926292385972117014896781030247642790070057998212017931491274752472915532058326352222257054772669988750758468289161553753855252707682618775558269454433410574416912775215469364273440104777384441624776714114754713765090271859829036521435666355537922148683692800068678538242485093924891448632284501396272579373568567204630311972302854396657864712199454562087374385180625991866235004601410190711948970913429336347712010973444674640896328411667404390993139553193163235343547524588610330066895487227786404369114024937372733574950214675736373307869873819032384352644801959427940442544435408987185235882575528791100069212859401169421159819285412660557478230210241572178198343278324342352223632396198214982649895932102187080005243808482205803086316038937551880270614152808992482758895268447579842216504795342649105625571677668643995769457856421891491050178889500326520837257501710175031984487007139978128230100936836029971578732870914981312342909957140126044746208814327366915793119278972501941506312421308911704762088237190072568103139205556672817335277242096070009779367539103718651347721480933893485565254830192107175595337221358637878907068948726870456346600394029785847234534426362704530561863332302766572201152868022194566193512604822093750158746515538063267276338653043980528923326516063959016795262040875335853170830044411870725846074639539307787012912583831734410452004470149333399695089204162205430492078504024097769333252986501276795057430499205880460141498891323663046176441054555219340309010500020488148686287623452503533243627491174042250529936775228511984121997958290658328859838571168559496438024739615888531537193974174431369752928296099635340681097417386646753864877990272295721089497604443644296690270075839951073293201161723573672746248478789667318356050524291818652158372037409808389573076966996247721964496596067058773467007437071080560488943677134360821695795258124253530307021779492160437205860799690695060762732157629496633453636501948671103361392386439128346996123698163361813044550964769192118447516080219023169875715306826709921329372408251180543235947449764265439668707031686434397805919423505642449754028092579920974786505610639361198649005057032205126392109971366054898807832261924920903166899601481403219197446678646974167319489454186892432069634960519446834892074686996239766316240397799057918636313908340961275563007082442343279711452271825480636769518777052366366720557369138332879034737733714979660410193214003727402931282959181474934885250658975968901886984900771345473692529317906873400159004707553265605762173600688441806538251023051120444000997547921822969012659550948252351604460999155381415539875164483202144522130225668751726183287752125078066258794514431032249463631542057052024565019241233646025214227882214743314069095883645499102607114451732509179225198373802720992002868517757466220997461244545004665607901655778264206942485001251621743901371244003192642235171666233060975247797437545243996543402347594672547165730731831121983714285264565964216792006404659926862884036846298602571796084864580748455235125457214152126412441791269946005845840207193318898812456687889533553513928389229792475432383038551491698529236822914670140188041305497433388617184775717017441905977897393912240839031236816215043943088965022479000294379692895110376360804425722259753344921835957642453422200843008863887001922873663974590059131368297958979871068655432552472058092148009711963672369442752489269310599350138318491644494795626558420057439320686391386552528887340061843581846007577007574967141081928140532721929064086567551947668459986911017146234991434061532719044987608681096952675155067366648289867483407360714519331613181386079376461252484506573843415433666293072293295390624079775137594385749824882737040590218216102941919317493509135975318200811720349901634084010941844955799975101167624669073592658452868071899942298806001111821849231265274723450219082653353586111328451107292059106891397259813807869729043094602784543780936814521662915303370187855733658569187433365894425838205516079581321711180977535085988641220983654044782468163058981831672796124420054937507943955606322239119688866825400478976323543641090952914367931401690364694010403609985908820557871415186279774861595851513026264398454887091522073819582361619013981144117907168274790748010322823289432202501139227910002569131836560515685699758951326483090435311235858789105987099920380625258369531085855807088324644105479090540256423148049879302292748186318693326967240802038888989832233491622748753905387169925564699144462796825852553527053091028163600071192591353663803337392305974929297817660182037960644318480448721234775667696324912240800499438015804735017992566292115653279336851559495358198822212155187954483266955213610514134920632527597237036425076562283596193817664388301249941671455542401734985370346758893713556708413728265665696803459124950194579627228846842715539792352765916981729251877568316698207244987155720025507260730486241111748423684734292030170072764430458214344456118346082991904139967074273676638123625779090554014332687538336345650497454763235296509174423352400810979433456244284814517004490879137483639434188756125598910534655958242398366126297173054567771939590957583055686593534346458231991926075037081632546332075088106243077436877729595743481299139312706500050044241597682062494635474327649519875528672464894746867547329573278360482371783501677876831006932398868676214783121378269836403638301264540089994854166779282175151704143611224987802591830020246214411143009410837914444259720364020972424094048279614326917027772345924999612278230288541909694557571233906833354551867554966775418307867685725101489099969900061587525295127425909459633368290185687507609562892023743300326807956228942856368839809524888840289136040894770661006919130121165459062540066074236340176662327233419265367044364872082685361257429617863004076789676958662009933690267557587454318379059148741343547186821850523323472426055091933069747343087616101958113789926867981191657236364818073680820666935206920106443853063191965005472056077457831757171144724868759769023600074180258578056041340225260864516557261396790096995278814431857044097532457591326677076476451256908219172146944721120930064786953791755134033344970125695274792143672536602455829870542706705729114461902999621020149635702252428605992428070857884220341018702594543274142672331982364711979215004528046379136234001398182428247574475768393392029309367032278862449479001040021197145362008248197402811325498585085837670503266515158936115507633935834202056844323808691844821922254230116996444030975702127120035895058468902933466349008991745596194599794042856572744644413105155216951453815602127608215483080837812595539015952803786883704289883373343361016409987484199686387597293272749912478487468981686882581811669835648931339769157576464048495420470076398544119836461350103619318514027548433910974041807106434664452698000331792668969219469663792471024280156579798403532176777625545467449347738483788387543487511627166600469483874820893349455108498419409012943583886207492927541367924945683161835177913314827468045260374115259666537032076933155929246316212497988418122943267549500332240371952348741281430006813193909455684024409983929244968976887050819721376637649023029640673490922459401478670724714202754786583315236484423230999427816734650112200489077388683780919148841064790734293367520927492154747317572576694535084959561906548162906564807860387949744713034577313711842144103663912533440709381482021780468071329373748513575028686588447936287413908985292874713268819050123600361185425754913017105147701824253239455006807087566224495754843212350039689919291924743524203291031584429821155015235824600692962463639661435199920884425837731714367391030915532104158101797302464166292764788530440498785398416226592052366669662459880585423917458950224308573947093899454938514752796769677236110518083047367972301684252455146376880118863763138789302466812740781703302673623873790736147709499753828142330632117428263185729143861508181259315029685111499817310610381489913025524421245711704295542649347846830491431627285563875009891506084427489283823697271237844171401187488488924282318611126964128874307968363414082368034188801427572438276645164532765482371424736466299151417414571513258699525102003344807359501246756232563943914112904948214907520891251823843039051072427319235447400231025534354383634299471321787927128010496664144561660938644353496340797971619212624822742350980108879823844289362660710326960905510771843682555234920400668004075985629387216926218936084857782436279090029064333452287854998270722149042352868190032281050930567432435321626678355653023229167037089589999687768209616630541012489480923208236014537636862847055585492167632170156330706331235206407931151120544192511864285593407865035042230553523888660373939348638423191074457653338819336921702776802178999991298114753781704918271146555713013652947900037725095276291356421429075133980391738429377298502678074382750237861554041565899462945361445380373760369845716882063059925253721276399545824029367420670053309108004383036521265829572830507495984234720680986986304683999896213568080685496887360978623664670764879996463671761262179106626019488861908409852909644212953734664399360069000119056155547349418055913520231631316907881219679500667996077120235200695116891889797251322132336713556270809507061972141816864986152711307362091845110638985065796811498436851149395422393525668102262072205284314513695803181213810860867828269304063152518479909100334474056165239260417828461854852762176865493829398650250461328922692191178211206628816358441025795265815452311969653502487119907609633014252728091748637796243886967423532422467657530411278412645585970848447284217760555079511078226931782426794977190520334411479344437712865657598666834482753571026653329463334441576237354784619606056676992264628696309093863242527924975587817986344551203249686962314295217580282935589903525101938065467380029255655030114704095704415247423346138230830833702613126595856664600947003389780166140935665859827460560986701548909682872015290887287997899279483892566952745601245427448361125701524825400559484175420362249882654083820916660645121915734239454035062138684567686656151633264137694672658616917997620399451218198769080692603005168192706087132362141530589424026585049871210178353454345006560954910522329004677821551724701913268133873541280837170764318880597531996402243820259361234287356358492153347630441519105977264088639254749529540553110512902580701708290407020740748513724526949499851776749962621689236334771488017183958855657776015338816774286921939678850966320372017568645941481112394009412746240373978545702712186205634070086213099648229176527031802186072298083680528941875012075873402118664578555630532832366475646057235476739579802316364467344818998744713538554799997634753879983109500079018868560376731112493463662788031325069468245909521133743715183441046229687981899607263740352588078633512422854602857204223715489368050731639277461949455129959301554279118482465789721621342738617147201750911083617391352272340444001083301929484829615786418776687516256641038260638377196299365942221442882653602319707477795656833225990774999633607522106657684970707796389141417619180601866794927971700342078811672440144681275743373755389004836941674766487272139322418393948434743564703324019268279506426220540476308289981767139366955944496513448185640083318250089035100517074720591640703449345017509443205698922124944889951976072331089169259841940999571202017512914944046097931108050662842388531590642749814309812818679458408503431700974741545859077434757483324764914506057955757016410318888371981673063858305193033429400226092316014288288520675239441345006429366277727826427570503760003727432471413060330347407073089455835494192594295682222188018772358688244739419686539008657050455437909784062398914583277284446773641993008371095402842356578745610700652710191379691963502066870737951442174957359042788102832799000726878972844562092061689405341033016689330055998158957414691722891758470590391789754322247372207483701525787882811524212914839101721137545348313504558159676523797042329926853932934783439530781395207104820395669689825994638060995166847936731505644404945111217710972231804871539643408656777252228790097752862179870495369436975311296825441121970128793400112185947182519737255777171733090103837439823942874797429105482231053248582409642594718146772086934087985213526139795514712672404539247113503644280326370223331293687772818549286229731274193796524674881874612085093240557448962439065944111236512624423512530872245452265940378091073137549261790924947265192650245563220104529185738214868735070320552031840242993921092246876099573467494623161620102415914572875609640752227181522684708734055306893485310019043394452662662156873256529762305250838032778592123318935185694587277102004554930474089961772375488785327447142335088039935238560559330882538164258517013219116445144462340984513571541011685410773072362545980432610876042009348941080965551741114885386133313545211718628447413681151103176563905156835883863230105817796932121891359191019380769095771397488048002244087274679178523576647060418246422524006853049010972750415598486805781784918552691998929734949308350580462722742104044890637036034656129409345014638743514998019740558686748252347876966701752428005210032459967433501541733122310405545045185178424386622283190025267908269032236251530397339126057142401797283578522033067199559429712365026206955219155796452120290394269577705879031542547393528079286044398741771694873470301853054456226998853735815720754179813425628262014965659081411648234623350270266651965080265014383858170234912337993626979036483509738360983529309322507841039466822318898042303889893776587287540426393292270116040161912693629156698616259952682517200183588121772707595728195501473243499457802171859207209216825317997506359360661887309319447718996927219925258289594838853446063672363389137541646271808010445499326664878262798146999472515128728797890453136380672340438330642565310594455109913401541091009197037892523816684523310409811634349778543708575609285796947949253931211536054958876255552020942888561066590693090988596304939977585526873219958380541897728319927133991341480943833364273593913723322041898149475969705034611783991531932371958494682049116979676135044914061162652211681277581758889261005357160931884831914738885040052737374865628695887744172027913305094895099434827801087141702821241563605953119436040097341315903963562434844811553324126238578069233049226172016013428936070488103696601187614159066011498086731658196868211471367739094743967583184513654934341304475303368288792361071714640746313144973505059039352708121071798768002823792550552737895925167423711303938079747144410203599080090637814490466038238180260260125839857061668793681116797976850835226492850293874994768696849360327865055449377160314247042040542139993239435512706228158852742331433862288228622586334363722904166087708421080378993934408240895570106288478566280111192764115531614578403702292282135905287403349371585398474775777946645000799566144060361319085300851956776900043328171669697407323896133448838061499239297605307566235754311148370033270269550031144576161723236690431607366012109289913955375956653408216789337341402898258239532562078827781228932229134330314859955044890915431142447632201000731465630228359680410497528390479020393859939279249865530055381106086346412369421927656683986533176426155705739806427400141289626244190007774044073238141172258129894550271610924402010462694477557403768417505580540087282922413163218481478695216774207249801344805731161303233037297018007813462426481977730582751354960578527552504613648992771206538459328325400748105883264398627399372511409542759218601830549647615769984035065620426450640309758232691702770294421906760060556305114518221337483162053742436199620178885390079941755351900438803165497853542172083205647645499619554425060495046049575654517098025600167528195068316119232710431231368962906174427239107907039707751216462136276611927428348260698505055882312138009940569233043488013491112590526012808231654987674603295590941921471625573814857504889383879975429665459005630082179613623210926879841932067308544494241370117571045798054676059896918510021570925957908163927229287796662901380674191028511885660095104139594668466616517729794466598701278755801250328999162576232913483540954277297715729402463261370490761971918013402812736002491226972428597652557770766593228192224953108319770197925250811616092784875095126961322831111882466114641768179147407785941489838658834244552027237420045887126656081949627451746468300470279949944807125052759552652186198717476324464528200557927512100183547526876916960843804587694745295360943317167242244052824514575623723747901130208022037406370192522305109724276268909094475890752847540542097278114558878212307519614372041041543605107953456424363286294943496329009717441402531239620027204811308016878477969303009325473772610234835409028616959062961852670678670607588445236047068410319083986879126418524807656838813043409271239184444193971836772760031787613575375711204331524930109631417699028322282906766550705703641917290451573860110906232973776609156045604817454852566681709586509967058654237491905848217885319490722753483444940191778041260261049582801392026241532136190796786755144434716578862235154675207219872985800427589571694362527856457194010854481874083311346035667107721575831814041482509811648193457077309973943902393409905010759569005618110165405399216590120319084251820190688466123902639980365133250093010899771915131340081117595722137288419119656278456209751254331122505822539426386946525529147911767723503474556415782214471411297032941102550661344664091035676823709837111214584123884841975007627736144820917301702973758081387835191399089186019547807427205705625708905985554445280651240934199726967404798716240823364401647460306196812326524788769420730748252302739928973762622805955550837935032024210736328114350773148739755794877041630545824027820298303591313187288260379883702799413938718507536367365173913882894878336291405924214727477126580642475020516468980184467219425099624044354662205001754357160438465708815235163539071046390600454458328561152234493520449380877202310422246948191897438590227897791130992540451260887740180961793989654232725462597291472746338090915732913620119609625351755378145815894938648484747302023535500629882819036278262530384810999618489603645911491771189153888604280476413226839475347943299312547009397489826185625448087023245246491612834223966433492090694992624028025211756749598204876827257579104556807193140417653438352154612143889722907047119542340827794983834254577623922589383017255557152670455476900540300749709670988678290944927015184932914737079399818109865251660894958030436927448625619111185639525929766914756753745716581017722395438687615789413202788086553591731928124681859063493696001706144205679350164985213491953781959943337825489455825219511204911401080123391297451350234740893627520758485082743245637513735163720039119760076550189173635073553331999846748067997730854084270901415011855489209781077138902035284294205083671982464333727253591807345148815274571836881311570516865730447473720116025575106508394548401326596239212816454136918378616348787442277071644487027246881686619719397208991989473930589078126208097466181141813913502221583353337191058467667988179385214378767163221428136993813099990740948298511904964073463761958180529665249136208447583685447045081114567225791888893684011914581168903345187793441736136306366456907762504899608513715667033631877883909496502008598818833258546813955886385801741190298726819834312172181922075735923366917012417078711372281168875821735151853597686801748470598039342450040661254253811944581603119927507289603966775526875646618175917269073648723064543269644317158682297217316934866497401403431829263404679111071629561275789470022994014708599248651756067736427888402237372046524091114063849261360727709462244885346571561016253157800320234954502423538609593345516033361633991249540994878653498109071010982677846425744762643851896939221882785511358303729753601046800222817781671645448050622170532292373233959181283384622284101211030261051957972727399297169997453776290919966855385918319072415673883701741808491797478102436676248228654305474313325094430106784485747749769810062429525754340374491999025069223186851650896646747222437061600190799275339531880322705507788174114034697640716643901425657485073257451402715839091373040825294962528338429370354870871791037687028699133701350173046619412463681891848264367698933708491136001171999766856870785614572348686558356475729283039055021631100676026091445728799169682358706262676238390159287624147758170715101108997610444008700653484258051630926669846327413956486517256797259996585034524771107132621238223550599429011373590756273637086275650395332141310328341200150173716470667954864674730416889593943941068504663446695726956633306764883382416519937059017243402523311601783789592991664101555137338710568606660608613661425096117544070825390492772901303595404073907875323060206079745784890923179873927557145861822790497633116376279076344491908103045230757708037570345372134237517341742029143164286821119853232128135710471251071822869872775697124998872860988339741532299254963938987228946098002635725034133634190244166381104565962866046219070143800324256404801323631414753792873684838161274157827612285343021563478470197000267245026921036649422394145111459610422114526535290895153877440549876585290352211823912625896472440599044756981251081829095155027890869898824675498359454505778145548445531598016927828513318379492345457106817514354913570566279149313099824844260207063425211638164543136952127681235492840685208197907485778190778657668418318783895527966434914774659614188807547244070147916701434392078460185701284044935304983456736439106516417469342216905184032665256693709527082272668471077194692035571214300044793022868465968945368508328766545949398659272785419040326230738421843860181154704888750229625365895075139615208542329140221881264019231097700426256291374962882488971216727814459813907722881908285695600312008609319425395142100794109091365653127851591149479906631118945491266955006432805032848881318599450611239351004201707760001010901189710774526809427562341162894899285319133285563981151581902046634011378640278648981662356488446291214973554147921004851327051902419958790994937743943731714901788313563357191431667071572423341597182285207419045124619269099899720160297340516616104853134504056477285484965058713727092322193735218413234095903077449629650425179608477124611431269278012535204113219067475135509163915852688889727677003379654192402513535053587277712873136785437295607888971177121344755547378157758753609260765284806898642821508729459633427946065224126756175395787187093446349727527197109664137383770679313353514505292174869130974776126294090022771817639222428227127508117579165591012994389561203370569697103515248569421908486086927718400779319421381170774763050813851944091538434181437308201639900377215748851884450514096554509677908572685044466533900176585222023616458096847007104680231065521967973767766559693772440310218412619512303444662495693230250475761436152637460445616225692530904828223278088222383759975611074335447538407202990155969343191563222398714191694526183901066404443897782413775908165821463093295622878437133495372438911685315104812902400766225760150252090956529029437336695004817087755599981396894956391450380007280807618581324104833125458966721392332202118733365670065555253856586758451697358426360554551267147685034176435757096517351293339417717636008860182975263599888594375929799332606517507605627366617569158011948677255206595872076580252796119377130132184354426573663602135532066106315265474829097837461729878946812985479881521903759952342296995190001888864925377797971239476597157163018127377107757545996931792164871814662669549801466663840430482474537826197216986183041284708443114039796033122466108093544127681123392350214095661566585546904591799513977686431080339124677926189749575986410211759196516389968377099793899830099852104075530738486684790081489556266117164735632668000013412347752456877106392956800616406392160464539525802889933613630575432255132101061554382126859572907812149585109444903693758758191943234960156113920873120505337638625243231581703509438237640610979024949960547988977197537467195185433535593849630514992116125643003000660665735226476492922397082302120198401270793923872251929379041831290591169701368500731970046699877528830765078247675224219589213102434401795828032204290994495352752667380327580241801960201092924576621985330108057956995142623998605577531665381672171205634008450921453919150098245559164381594061044894950350652994105282287878763417297120071916631721848121344460259440135885035387243997414343205117900314704788617798470963813071667045887837937060387172218520055695667540563978409653780100667058708647153086167921743188875544264327432240231079160332812624917470946355998164162892452190880116203719038141526219439832278505235737716741829960871966239474927843228553337334532618986232309456685991964783603822196972868887773196285277519783444542539781144667864801765151350218676905733991427863286809609547220884151247341582829784730016078535151112349725021541377335347217361101932713551860632871624126361449938799391359112822979561174276027346816003734893641665617906962509804336688392902669100522511496474077958539674490738614068580901963949024558497486055124785292174688358211385569340542744530446761772850467502188860608571014477999742609666539668504148978573179062315471199624512519069588536502197263635716095607000625597864144051042720015783829921327674308008928779571713388250236429351333438215538297375442044857449700980181423080265548021509142009630372266319733145074215219668198262912366273705759459198224199990434217065685735394153460674721453320557481157113048129035604092220345998417306048623695665525652351385492146197104649617109485394553927522068465234482185010989539139904103693172223979928139394646481987057834250197181277465154008479179411687061967772837190984915154141844911531903430385715039818968401779481586119977407471686489872577853282445671056706039184877402474107389666849572171770169534587597228982720194327767367401445323381904250714894924957482486305270300387158695560707832640312228588866829818199455191740495375136570684263566611219901307642140441907546604534196161152813801165160174778057112618956269397742314877097741228643468512692564892696707393565632594951597102570344331046552285661521334066733350890495422875804726581904648262125714546263097627490726842632140694220560322702025689806909244622622280284953871710328009535005991468811004063138472028034577057419915994252518490127669323788844317831295606625322415575886248604389812934944494024497403465774441475403301650507885174183072961739831809728460440568739549854490148468353530218951627396110993623685329096905669122052029885964030322800268325631044611984866062732866747909236639093277415577620215764145669059169286001579567625689877363254921283409592322893182852511687463532727845375598349662269801964040764724706144714675228031361125796320716419905778352612840466282887259271691356642527241116992365905470239138683548926744015912880854498977966553654693723067048768933797649985468801345038329504545849661326139914454405733084637213647058072887474100450725934019431097119782381611175413761070381410438292009690736289479034822876541228134248919168468618410315653205737580319728635715124670272601467957110131183040371843770334910649656125621037847281606060707199297903673795501186128097999644666448729132131524046294758631376180199926907947733403815207972868879420114446349336388666705153855298888266023733623921804555868027739677186798204929442291695958478709825812927283053570489685830280103305111058228874776024315806159544058491784619475001455775992928210238425259900930999398093734461778137954612714900768438836300569277024901651172738650363897757986043890706434232074571483863917616386826973984468537109030821492080602409936200979672990416224509283951993227396327083895927834941196632779601274636606949372320207129802241755653177612479904419700714281567009362307226958647766801917554869503728378067589114714736328648934317400467637065613805770105732307226928828490741221176614536169747811112862588403501019724085613877529576978272044657718757286224143165122936133968227537814814202197015701177276060366332551669641009007266009887529110964608670253184080912690491502657105679842621865561971950831548093961091645002416448697712862870855880666396898665768630416288751910542233792214267991296257095250509836713000236284229740799732270586403257996489858432554489535688084030128770141218421404436582401656486834190287074226792843502200385770558218146104297811463980670016367147519221399266534220618728683735618391364787740007147591923999872434713770450315418355631195384641267517376058537763064146557039532996017704025432315941297493380573980591725591282906170272883741255187486380268964970735574584926228799910381868662255605006427748550325415900030773843409910509604571896267441243662607076336428376196012728896062756727191454761697020603995198853929378176923683669728769767590029405963553728877755221272393250139119789646111539683138414602272972943666404585233723273316359468457987859399388320313158087228242340072134365815000028419918633062074417801984245731348124545095913244915411399459208560047283948260462615849043867687192842495381759852239511505837598676814883982320260423281661694239776965271128130570549657113094841232867364580814691859427389447142335041527135620788342923965363898428945330019762666647369529791260344265465619332238389638365254052908088157287585979453995944352351112479535647222250468250464387487187968759139654544124064532315168127889446708155177770380208831253916367506675801394120841470292284762532321818259044584426581269767090413745777164972477434201176810350386495753645862290473673125047590496783396575804572010387668872394075974717431942062457454369370111253075011646095044378334574213655682388647438139941427538782449425958090165912123671087331732937991428101790582300686793667445090406068839092185450667280307300032263015441507154774190924026777151925371579067721550960844200166371371428639206783224510681273805309489568099543722082580311418895866170068403960183850240694831883972114969298724646120915881601626614691525556460192572745128797696326056799938988409707287712937201106654175969280553687782390328342271416043478916938158757378841064531208277724166453284030730472639333639849419840241017501576548263884485903647218466892702810163030454779885074508575166904568610958391890218114827335493904786166475716664965315968115582471746474781487580956814153763045052588601413369759329589748390714093896669537153125358178046436766990458396333490721147534036135985716412411740751011813091262293755447798152189283671205241568701734740876534633384274431692242291933942704902680999250832437058340683264275574741703523253137825327593525854916131452341387949160456611257017658889866416400987906071994153329129543674684066129727617475314733974226976922451867409026166513306242959107274611132218235473678218963990997495108890371710562991674644421288853191050423061407864753672912603214973953261402011004244985453230813310840491044711799103436963492380539108145007696232761433347660681819255057685640681254141790994851517722382925916727707905045653251546719847348317052254240229391593242495436806509445284888262118182884190240926219803130479665960826125817994289178651462609832294240968351261508100112908211973654285951872984358810726417315223674568266984221713382566244149122532255841213214814356719327296755906751504522131171111658967274738212470652106294180305622967083855586731241234868246687825276241513150980538970912814111146072098491956926181777591526103504233417388600959198992194553753874113458332983596447494868361529586268515600625611675584966421610833293795325713474620323041790279572729633700366850140793150566492167592443977776775204768380350162805294738306925489061106464089674099730485521609730532044373874892460424797439434034966070798948612955227263963703566397868695789317906469590679655552928722579782605881800463718230710881000988648443896880225302207357225120655348864811122769044364208376252780064543435354871423770650985300627331685311587405996712077250134367078735210743836399715960724408605223425945968559507848541746471248930470392261073832690079787181331112371440138688128804971979199305797512043041094138499994410592493888679898971740906897668749237545098978448705945179989764938776656053664416420449932557395609938761097824606190456231962080344016134610763033245990922067697663559469887986311700370721577770975174174173761189266354895597040617836189792935083642157224876612761786031077950198222865285101459476605354942661012286653632995102184807450709925860246384313280340763522905255460194318582838486855260748024759359547016985176901327308561760048709053028285896741875235788841264814853051548596710172578281849694093193638697873012841667044929073596869037846370065499782624065782010071638935861980037447426393732814484230325310652099957883106947599633434451496705244887124380473503330261169432852997561428540295096747821534294842908743085998326877312374829816212615152482910742765518552862557207570947624992196530088543653245780381863141478617459769681823315727222077359531485479126713286838271540743129645952609693403386457708463823042478168396983707223033818653088301203174480260972323558686155642544188334061769490776703622863560975953310252219412206828604569379179014862142824573927171879864392262458534908888185692995056313949187847947668863268009103056561185529441699417946657105885126094558182113344384544536111355926921660983561819093733504928938551212590006626827387195361229961084213193993366307819851833857261152864856104418468719683479888598043164086912667803944687076635657924412442046257455364354214534023579874983216150929647133509710362202121043730625588909143042093736172543613385186400427977481304771409309400831751461666900384394247237880000144805484551777419146844719974429635225319474153449931808840637722522851030895059679488041274345390447130612797440612371808840139621682183938850718480312647961611025871990768020654273628013004527348291400430781605294298862778737393365420043687153175033469540391741644162907005314730822165888876830938496449391340117588533808025168272157407885353086521780042713040743899077852636288365085186215582564751169023876228086820792857896596794727778222918045062221738470875349925299915988543470321428320837237318580385663874416884272750303463841033634425001702410382382959459492459505715839505724127117909540558874757301829530587191681414896386244867950216714321941525032559360113113102075196273389261868800540956887907862746161261800380867044431942986780402489440851592426016546403356896450599858487461511163623684874137169022190969807034561702813116100669692589371780774656598557952581843303453779834915643596081565787113841419142385242236851881747303234256796891223172485944172718856161728376474710366847776842507872972463921619250946395974419013163121415804912026056959325908035477779807587596765765428997119504757546949934610438820030689741971085822323347623238727991992932554538040993885595414973020184393411600571654861936922719587126711579463021896522115080401298903211606507862985449091905843707795712344853548367464202217705875878931651793864367200191968453148873775387980510728371005451884869845336853022169919397749293713482882890243750652684235394457785309463699245239536819134806983999575331453694702738636192888216687853585181563081596165779238944308541065243316366999210197663821670252379973017625693750187861205580429742929195203077085381404711991929889358571535960358073929545202474426062071331308763599264004292488607667263203336451840517068738494692318885348368888040683521042225535228735772629922841905809389899591082842245332426961005584534800769640866964617243238844656606744853462778457695988044875461034942809677631794845660464834188230591302130136419695383331198556460032673821229536817051583586888709769263507247686251629200315244938858995979193141541225667832688112730840078613799780679883162965937516784799183460938527751916668672955601756538933726709050409358610252003423089138578782379445507658459553610194451128125361027285082765330099873187567700065505269810284054062434071896829486155251582451793383245392413728823519040395084377522191473317497668899048673806108195198713066671588580006072085912389124944704078705974867651906911895608308654691825832497648386168670073849574965946785228315698895306604503644049345635392411993605105402051674035727451164047063575662786397958988977362187349232466559513466801505523422243750426098137118194292033214760512751087502054435607568599692329800021124034520346442068702443651847324186437294040393743031055133726175160483289661358662513828191198247197428396154134676722691977263996040461356244602328909151914594816579511401573480633541769532210574947941608349158855334483695796585137015074544068881013727165621655070898707606821283655949462064458984134571955726088814695695754700891513258547925802200739248762116959837757875979220262604788113941238809613184387595752824407461777732780931652382187325110630970289884462059389455837251066606436160562983384619851231169345204953738961885345740530935580501572618422656500095982241199621920552680870738384029745270750091815831049007873015509105307559222622569868841583491889696380669246245504411702556704266254565592185618208414771538199922409100320189956843873409583130998892469140507304477976247586550795956532618109793951050614320061063876372790969242723560710694342918223168694861800372681104741997422489432136705725212201832084714858397939777918220376487228164847694752278172220564403988877971321679850752439309890597151545383715147970286413939022086166538191126855865544043436604731736797235267111770351274609194742507386687774887759378175959573147592308692802524348725360911597948725213996081304631994258778578850874078618785848777518650632141715731176444508433983930281815444320921493938612333392470683724615754168043345445230639973500324278700924821271601196353583292008481493305476650572435027175431030323783205926844880314871487505600911831431799555187486043306567755573067367292444689569015694966420113999550016703400666642317492939831020317519017083033226188360454802858326370895329074165125493432852564161159522386438259590606788750338688110038732476948837572353736894417077203016379618150376200624715960354665799174661824032085671372660309403898558597820487059062439469872255571877681866865669490784440963470138292699738641770031295148883165942484502028613339834482757186931277240017017956924482521910582084328313074986085584225995810668469469457136884554508672598466705847501860741766727953309892750767124271130956657186932038088328402196623347296109939199250464752647782166409867166071901385692626160372885864518010193857148751018408542828909579703845272994576705717763627651209035414025114096391333806091084928512338689874096346975917683085249374529148416929077072897964228727543856554161684031201026853110386266336229002823464649711855033176547895860942716362053759765524730917945559409430441119081060637731922953690730568255778686416147388196211189856986925455535405170344971366575177822074418767094062631633373226377805751131946550598697328095260834662164774429769094651773232181476313596291939384520478814729192188471365374872272783614753502063059335507167003246687677896102637786204705199644762763542766481892271346325574904461969500498533596430686845410964818776272991070416943310663030752667480678635535519522384723805850821328780251707445039976359011279474283126146544071069464767090263064129121204468564207685272095690466650422176990640330911199224186350536428609729344535851951431299518456899548986980285908154104534442131022572114950976055479568972825809596979494155036991133776152401171963700185855170138777299716392006605105908114923980637181918528691494793136603777628167898370714034993581539292838905278347407474560956166311224521859118950073446819433464928658226643156943643775938997171626662090809393757675441315698581230011635669291307765243872617469568438464646765058025204417297522729574952727713943873843859381287078241791694275983708317637080249340149223778751441040828029964533470197659578823722613662407725646710199553364445032186582893274701254925934485574865469305956744015192640869771595392337159668718482497744350908863874746715903572333978689161073650747431359762921344022332004885686100336877224641354173444284330794953628804143015388318095189520864938419656612483346062191758478359059706169439363926144602381695634133859421916190668230325856920589358776847195147520530712198397315027485664006816084967250488977318336824638958400557187652341514520171505598343900433649646589176411157697479906526632118996896436503471806273965330418302441112068552083647179188296639531677042448173619047840620508675502811164888192222796212641914992407731169484141171909804312164671035059466654246475846524798978694513017761985829157563398299860083297022710659493991069794417713831261574558055087580628714127064249455368534977175913446134905977421074968381961479978318907016665816486995834683138648680469706328759971385391527513035597603232754447687626306270480160945842188557090438182528961440553160878068114160649912627973318356121010747599847632052979429138743803451737945238670427526278432662221376583295459018301134285084295695614562717183876878815023729477293778817844087060126572711311418935777145774575995112449145680049963737266479104745049069342694724431242624486512919381541878513521472000002817785799915202876892103819508423741283209257026950030435372343101747779919010007975330178672110294192701252661103073213941000053690250544099134170628182517698285855272415545559602108058384879420367362284338425340595866595897273128675914868414732365813779192787829149851275949632199455201333563849095325031341999427572380649741946740202157093346889815202753948776979724938929911463998008208879160545404282452924495459204733541119669867283713187898962871846987983001220909385812918469473276070823387335100731029661799037361309489791547213583925943489958186482792325680641144508370525488956334378305575117067200685659282302963169722176939292917735512801400214248698510743623591159294168371254449356173091377368326120360709721292287473488197108118749921883078001585433843202800747904623498067928134305025743502032530008771075205685070984276861185037075020517372607262891525084316360202558037511794585811589311251223759544861767722673637850148061701669070201759565757948841208427927979947164618051103230557948363674658997658740337531251612813460996274493079955006727628380614976586361529079105506957071210534625186096040774320097973268908963869496660494235551293821578071524871459004780637452356128056337240785270231607515213923354000141053378665329473877191602130616182848065956253405090823405629039838438559563710142814588787554220160652247517272107854149395529455103783281951115540574257467455209903673761657300352438118713370160582578775611246155451300217634596880874778824560633929850760440910901070881909842906798528957168932811033451889966050615738807903073183161480121581557696798986112693806738376677396247578102252179647522009324123544215262427132912513233021372174985485692080534871308539052727211175896813109058380446401143016444857084759253944130893609466914182266587760732006775554277072192253433538379163561574297282383147500359637647237678297424125362865810457382223603563902189287756339854356130715072798223560489733281375789464056259418944122502343208895951755024532819904318252698293449810863388717997372521038481693613381109900686497313411517327072565304742794381319122695458282788374783328978927862443911383843873094075546848000357984763937374494081630473054683289862352908515510651966759356196482282693806316244515151033780007515656145475511206284153300937283174819093759376177082195436038040315434260981388431205962410245169236240802922166717124573247635191842199578651204711015117892825705301742917227696633836527342610939237400339958573444508189966741694357223123658923120928995673547927976420171317754929663276622956843907497832986948056687148404341764412304190109408685151993483546775490105883376596579326236866566040027135355671462868423250798536578305796899321286234797169147554981034076056035767950170386085723036365658105921042597360235896281097475158599381184622049018830258515488397365270700658797745787682172524376586249356579110198513112510198034256402498337406913943215433186566658997652198788084474191031231974233686521986375930831774379938419424021422554407844932816757022879422360609244679696680707097093415848636165839189611686455711018659963758576730949153005495111909554690582154145701768264640134846338634502964809869013496467437855889984548368938763420787978421218871439669547781230148304369412992155332314067519253796153363585598478353591475666192598463938961324964858690785794448922100522672760498357158995377579230113204751522423114880404162519196091857528213465077898989951921513707342925196968798365621476743502848618704976823183356756493184459538199558236439551770914431559757645531254867026702070903710292147230902877847029482720581329020156335510571269031430310948545036609307443366474965755054615425947044627804281180932143917343557381680362240173581093314055065869360594940182101114943834031573360877567776288746468602563290601053302776373949266510783389465497910512191102970465078299921606783645630974446508352882566846045097283867707636967999825631867017133896436016669555878125761936201051106112148271507895483607566865196140011068584913917950781280996233233288555963157175413441095594296385567469195347638712195559180598953409257693593046941199928115925722366014045530821652562115108921103092460706018403899812351529703345001438088801764952494355529712904510365927221762609960482267079553167079155332085836897775643643879839913993170166444494698037245755087101994956178996722221101494530751722544351315864926851036492756042709991734162997338424389684470481070946534485808686338630789819522727432648508255054148499428485006414746727188165766344659270937956313553043243191538915814999262219762921081503438020868194515187437798882650027846703421913452363449072042867438442896847042957356006015733431271787273838234404633318554382190218215162247140644847417985503963823080955418154831289317533147434565987546141080661403250512070471210135420707057579860686677264559836045104808887876711717837238043367191175385825139869635185664674429203043868633726025949377515947199451311769276075433203447009006098856411699244189373024311536951616212856168668482504927578934209826216889102114142851722127336513648675573794248440631528577722878408552782287315312844398327833801398517753779513686705205568660660699079897729246438297681088049795933951914318539971563459722779219034889222208723316373774740609421225804603920290235548593752543663627836185357096920433858110560668924504076700411562963169140507256653968275250865741210023065254682063341382162006001370490976296806768028349009894674623857883005476575855554666450539559515822545299426339223301395230717850807636816661171398467846437142749807884931491672128107239758137500623259270992670604851919857088733223639302585505407318828869286980673696366619212458156726851139745691355279909057543258920826209632912591467685558172108805074709950109294087487100027308696385133057807571765543410786599694976529089789125610413821949890791513262492731689458304913561639969212517966232926602901385055472847634250855019147263574871268657447237479239270654605851817731237096624564020880853043205789895284993662274492285157174029177354808780281757528904924672422773183516833906126692327167893552907932171222464849791516260693570863785523734904767178830804476967553813484418495322937151000273906194838913056009449332688453031151343137920571607551940360370726235883619462895118009856577389446849148821928663632745328140933034768681214613496473142707799312384238097419195562389176820350452936448182186890444373469982840261378479749138326094787545148286410198914147595805663347778245910486553594342581421285669345208881237992150157462029479637685981067567187545350976778541719364387533211175236180180186004352306920221964526497897646340487272201068831169166611026282183788575854776352427478513742563807923611889525309474024390036374581477025925129349596589044759665929988129541193735747316543316533631987614299265133136527805831123494391806748511057801117024638511531992930735355335015922208736829713610165782453673766382943065918375503115115136863663542968787213947566965844552039266208756102252988034973519380261329214001406148427370720755071046827801003403591291138049664612192393582249819054487352728767630748729285491843967217610506095635116016189421537445847517545103835424194734846901384340116180079236850362968569871883981496361813272419577777148416248731350823193427733662663733876795601758396928781648343437597657113105100168475130171440925260075140424533195853277225144600281297915546258645942701616473647160550968544153973214727035387618671059014818089446369320168432802439267330135979083400172673001374493027540597576162341445235751604258143272245709909502332386845245769879201001378337225331036720859821240472106303837402206529435649533852017604477038869695838597587782766837066656555199313648201687574285840459254247124131957973195913037217935739461311280930152379030708547036470335728276057493565509535526791008629713616439407802110693593305485623361004566881325748643348535568306233229829079719736619387487435914397976587633640231741132372013718345066586087340213842061136809857405714997996184036523291541809696263305436153994774174671260719135641949472462410974147497634341882429174242192209116103717444308621716920021733561810752760365407508568603412840575884956006479464869318052872446128506362476276405700302109302343737500450600674410126295919517296858801244696316952048189947883304381567576098959074418693748214846998053160784904640023058765752327487370768839120588176212385931227560091234805062501406208872605713580797662210287155670573569259985395704539906172344914652907293888351654724734352363585519258712623146916480460467844398347201932517635965840638606155179491746684867204775814600472712529200711673374119322086836819713192915243425992950370403873260331292533681111487001794472045787750641682553363071067513041385529512669376851003030423589628784698641245992275907568047947233693796606684404806732970530671250591144768961423587248154000968473165425393711340551435903689656317126369698918574610493957677129966787727333163244503174397534235698177105804057180905728422834159463372597939572556925895764706731485381762253350840526715344544999372549037090707895127258015690921938816509017597507009654415820520808877603715653659934083404374510509170077885627948710365262163599188043961295222335417406619568808964166130967770800874889124266982357989005333153320590629257696757296670662739738825284023173877110271459974640495377870734028462902671419820763676403414033770263026583761333442650371444158303635143555922244052009998705423469438622675896094435884983084722854054045286853324783747518106217872367546262571344873373345148958626625110977761655000448599567391376878520043630493572928697420732405598126739851120642271730289235690311805976155593627174282716235477269357843457259286586735034047707005206316421236354792286156647682677421332634191944477242140488377549570443370330732962192058414012761036056807458954904404623359280378274607930069992291384170992864769040895904138051673395327929938413569095475813493700628732727472772032955508382778864079153052537865465601213433503634490042327800793977192248525190861642603885327039979084769715559213265081599818270021792737189839756608877016498861632760349345729230662441173969703922266949692595670138528402878113511430638762787105401197393269636784220449825672128724098563578129626491136108308323831666208177443522264180826721703336287184910695848496251104917160477155182524654638070968883774117540305281737033844591547138920169074580040398379991445128434892657472180007936821541615856636368709195216396099116481288178918949057208382388409878731892992284308072353696767503268203807562104537980087367508836701432615802188013464219708481606878756920901102560558275981153497136045815116915612734165948537254709531272029462051158888736350083800090235559976334971992757210165230723913785242400615384532364076899360321319940509609432447239199482331795909338378189368669923622374080757022105416625153526135683061734283454695793885669759648583021999715162203800229048324534658625987283993948288544574455898153376313146284950082346472492451920818342404138436038153492383142264824423799829616047227052893922370056175494337843818565925423675482433758635007853410701373225584311721633629075150493725263179951427428745739490737179755493859890258666374961146527512965271636750406821372872539542298882665945551931219532994559061791397424179241744606976259330616307653814329912272128362113322467487504061215906779723127655810757768632972255775064202255889947015310250695001709491310001222958617895554025528735389004179065425130847618284259126928883931700424681959616143933923727354426469060028669560400781007160001304472815949744307995243201033266359676559674927163645626548780707277905755583464183141303050690405343296306487952351222661055417883863716226051971289397199717286165443137050524368945731327852266721175183718015411686091878595303173023412121717978580496883141572577506555028265701093879713652986152673657892398420226158831736797642839591582881187160491718124803275534487782467572358967668195157132403343581597177367358608326654392709144729756839623450115244408940092641982875921788015260728815321901510199671883592786875854836457061716220281751818857526502200510703151612405874520418134063222424056077687583138351114828831821853812246978687313358672891628011999925059806063110749962300053181855938794442151273750824629935011958098154134655607653732884875523202209801280006617542318670997380587610167850149318534309515436102927763698948133563778611318205500346835171198329883502370752259922881700367383010352499647598501069317174534887783769416551511832131406030132951783323042299563084775093019628432687516743937085397730257161394967599764311888442604477641814070961928920966038950515547457237825590139759426533436148876080955288010642834316415084977100083285348755675176164407953277470519259403989759919674301134481867744939443583987793801190428338075360742836295822065053012227882406380455044176277168533964501623533204529756194575652872392576855815932158701283126481690714438042250459233653062258510179801848259461562457290165692735254792503385694603072702551508265524852367351587363596094230039274669280781193283227772355129120246918893294990052261265698627108777538423869281557181817285271813016792927862959242008422979011100940574393398837881125877485782805354925067854457846109971356898084737185752474971063807620256516637555402402528902131929969583490536717620743573518615536427297153853213716060521195741378159809344345394750906013833623484676532042868927245770117273268367780475375049248680902941572679678214030425486304213374130754521332187240570690371837084725043555060809186103433783995534194413679855750524780722770048175838836489867115591155588950198757007376952923124301052035097910750235617639609103763305712193751977157229613418604912667327227632506312635284508434216153774124258153146923192004830600354731922256724587060697543471746230900054946842253034110543104923373712117587283646574470978012576572593241178603725560376229819618465663495364775328709537652376560031354912777547424662567669591145432137159162348911237208955990838803084597491551410956571122621803197333868392110347208890465959936069175900425535721348279692160084874291537178466999747873508207446944604118012352561629384234239553511389639124561232150070059540691009026977626139862388751124727538270096803297938372490549177929783402329577851117670308460013715743020205331444575976946521269430702636723124626514504859325578030064068226736986967558489628452645207432874883245142509726328571237006998822908288370837634361012029083100311300973339155137615984204483571530318270656499221693955255220991339732761098773769874819336767915040834705434475809924329327811807926236011317446308026737262544819084001253291124535088000139008082565966731354517792113134645074925589052834396925059130774934897809902231767021333090527635973332022109574829113287875659728483951880675798421257205420253323791597655979843564773111406356156430775554262659393362003197764539040059293764521477981847440332361469390498760221798520649765574607663743909060529871438917537391278179774673160690707790423779447609666225718846438227973721655765777473879459146569352968751387233490059191165146887041894709552078009534041367768490908904187159638185746469044459741621918707355206385359052373371815794334444444191216841744205263032021043962206390567762732735307977481609202777600042116709069440473215808480038019560681035963927783788856676887170375535776983050019630986204369284586151318699326466290869470562776144757034990810514169513916361212215586682586542136407569675730632014584377697540535459704721918976465403518831794188489844018333696189067972892167796686769814322287706851903040354720276401952566971785336665785332215853295415966670496623509294793440129991478312518023343699358355164364731147060573951413656572151799063755702774444763045614270100708145417243007872585624517204156235863728765415200784896621160369384040445592075662785972061393076761576057004637446970637593776317623739637509289093078999930405833594867811845941893741302112288980952803133824804323080545595932675392684385905238443690013921653140116359141987686802206290488938907479013744233765506130345346472093000913839164801496363477777895903290698247247532163927390272407586317324451115549460658900670329221874713318917329910406511228901161258082654447656089690598943598455624342040633412153858430824969192759065210430318230218742985884192709107347045505944288749444415524807872954133533203523205983663628335873806879621050942615397573409935522394165249586335036888565564177759840801328437002048014659232351507230411292358451264051815801304244992534693091615017664066859546283583966004857571261500265270355066527178137506856598162810583649347436217431753247140536222512873032159525287530150169063671101639143961220084215143269221308609805140311795159580291153999455099749565687697047931073542587580732547689526717700191959099229795364630816724853766553815995535229231954238917388263677945071859443713406520222201077282995125951414988528123011096238150678894245665094760048055574436354601716427838595047093527213869313884314753928864932973387493433927596010340553116978825194122149845752947011368389930553855614371027016351087087095893081567747473664671294685547457195536589075925038822652690888481456836986171705689561926807594936835738404796204219110188170288479436668924526290720816429299365208775711448036655758652604859571955079496043153560778050821963293620476309801463173627918362164127482123280950467414607458191277306766104460826266898125129227201058105119313335891790140534566745042301987577802766816609912854158135315333575011126654670884180578192185436387453475313117182962876075832895692425779771555935176235208567773798071960638557303339229063115290528493694538608903326155501824316552076371945531318686804978091252447673491618257470856396851010352040151131702337969208715251529716005627219211901175152154570853648584669060641408867680997933148637547706781879464763697224044117098558164584868000300558206603778735206967995793683858989551636211157361471293829447111383173599619348723420177974058931513477533054980462221360419140505899889625326957605269071267185470621333832021719484515643037105130568944418088150283323605429846498889808835036417935703084075358170306249002170519903435033446092035115527997055560690845560798666593132206680693716826992111081573777429876547407275041507580044606557372136230372859783901193233433611091387567388416530000198401836779327890006224921880078434060175139867707150748015632495844784138215081598738510606813002363130589853964685385931122381126576743036660303948439767089629512423060654075558066958301453100671494313820406799946774970940019615351508643329902558838505368929484697806820754353976134452337109561521727723594693106578245198816711873155088181023727769512772255662018551898960184490694496590883827340694722425443436772736916816351048596742991563778052525774451563599338520710758229316648521312417897908375970725414580368857500653452839042100330090369520650150636754364531971996107086150792961552866541291234184876372435165669338618165415358207539767171375839093266609828958113838490329621604797320211811882672768307899858869663759581638966436133239945042535924514827777947809377780448216430791178416793590582312937198061498378199387480746573230326658246322763943193553013912996726337793433034359200768780432837043674556716224878205010447013741314997594703788073431888026125285940603471550168859547059939536876533675266784820709027400696469894070911126418455224245816756474011385782174072650307854208459403534715654213358664392342345611014630721112472047349642954137129498125725579407736239101049212258639312142524083636809867258957044505329971858416810108888852487112820777997781045894995651314949611678722664763480772761154662939728653980414303121008432521707994905449631951021057534990764704010354623502825447547474885375046232088385292361343890200649903263762554323487755071922596562140874244213269811603819932982135958757524521731841896986367780259547652695770447784872386729883366478939500467563820635294182118359492132063434310567994793479479081182605928402372109967615205679360583081147193204691658998628354211184846488678170308798614359707933577748209338451920799106317973994924444496664207303540863018461226061328944725375834473718981303017531278048501705037669300323682659527233862255026612513092225248667817282150618381000056525672498599319454142136495147743046034493243231341604472841858517766692251975097367766066767038880603078420194090807749107604666279789710262884177006958698666139087513204689897346343938955624085490134759358652495721698860995054106069815521012246391647677146354870204440811908310138936123356898460955115517500770950275206626040889493584115603603911703290848052820409979178054799085502868016274819325289706771205606357751392966306268000316931579581627457062963743688009459261492257372998023528065694195421249377150253209273469517453416193520842508493059622154626805078065796596824239862975439496665566093514926006877016692918236098584343469522141842532544088335658183547170291940093436290034216529655934867578871449542566613554564970959130821567256981254867922045403986045554169172691654390483234753572116848440887772010203572367984626514384177539804126977778156792179435270232970139201884127522043581986440462072252112391257638414480345990867096246635137291590826001211220690265759779509611781180214295503314699649880686872103895172358225541066909753677084615224541711936645969034247590601441179045800533504540929564045427077893192212012845864099730448532822370414315374327454903189711497827066723171648024343796839131738688291314085115540139921109204835341045779978022256667209184199088597814972136000673091886913853958225136067097033672017614133752957419425206328990446848294924625644621675039033439600988923510277808573542988931787179123529347357799758619249944822050400598319448689459202923007420088176183905018378051867476781569089520806015810309244024480201406346421950451012498161724835511684497551604175349448539620051586040892413386684227600478362924176175823729561615620726877252876167332276327807106104039380442958956536456941577585332354810732739271973915319799643246909866297584760575366082202431804479803865958966458021525723161379542428258678198799584235070866853200774209306816460545723677369073401451822117492891125896641302378034067924635659825492875996541031761944349648431137596209759313350937223982029229516762970117389543645530441520512992360275859462016960263370993379300065473579490225121098202163745906333272633542190240379892061050153676092201569344600674140947736989816168425296244495438044167081869353612090155775084935173683745075520213083060368807805638507037961476080682702922701281284792335064684773090136905096874842782812722589729863136497618679203394574522648290107475969139679267618179918833577592091578154130510862473320629189098936465885843945618675130162695818002545671848168772644579077476350373230028250220865384796730096504983549614900426471585535850563273247672869760760814267389868570333282119372912210269551408581547534955266732273061745903870934698372212903597481309291373360888548169144420917138965037545178194948975185769032592130425976395523081907528708417717006893719911449478636854212948674499336348491885919345968023447701378669887952729576262340989519917326060774200449905666174390722421086417034555096790348583475695820834676373183813056699680232191871184637914903862026598046692979929006376139362720156117314124159616239249912495708472528321692054159880359774619087219262914240271118194697185459687130743292915407646704537800356493774390880415219616398088438111058999658587989575774818703638259909396965754458316390626655201874745952614005387647870200607843529520287786064313954881579804340544208908870405184714975267819401075594289850946296458618362938533587425775003330303071740510843704832348519744860246830961206501149411554230555818615178480333645821142716646719696249101411690234824939070052813787097201972307412027474259456297746193982452439334574249004689539781477208300669457538959225493198852925621319460777448956375480472256469165800227860165679794015839852038675972733122157001970381293493786024206673913358620318244715692595185634364771150548354623863265097124986974125510454716685395811906616498406947399973637968111522716862990981109539037004721244839220398274929696472979441901756393877205197731709443365086027767607686238437843672830681876824015663845747941056896845788755331783957313249324273077996851513532084993899811230733689784202778431257262555452941626420578863806607151650640685419864795373322147316003422688718366516123899454782878882094834966134119084934527837700880394203027446169119765765702240278842296623458336413221375348963159134587430213103424235756736579213393952254527596275895734456612076486596578509983620053876980489735079295288032039220538433840924402912296056018437293751943882672021114129838344022090964484090857924202624542743066534286913928820696854494118941820444387723508209037092314340242879217287014317930489755891732100639915574790085146402052491549922659302780408512681258734636536970416713736940687166552355023724068630850959273748334007646963344036549523957568263574286603933315730094676366419216565029431511380694013152814829187773083710748257848604084579649511873549696763759684570382439041926626909918211374603512698417842636949867946817296369325346925568329069889455104556100794710991503217424755272828398054073237159884265722806203665215905106302100697620083507998149625694656745078483990083557846735864446922624666121317456905971862494070188909305165406550042677441863139868454571471879988085866309936199963721167575790429996769158817145200474969489825929556036689647579473311060130981394448279295249919736210135779412395922567445750691939563728494703820541471311552833781766131856763095572950812211187401175169325187499891971483974141086214891263181750480060201970892892863902193027918644072921611351458322171221828301867060003260833301105240834543499424692552913821479253165521206500306767986605975243357769386741900934068469519034164396723251058420119241776601002623402927741539585390334485650219220338979329255080890135983118235950043542314120203210034936257164684703255338160859757214831194486896078177436564749287440506771531630160357230702474357942390606682875011226874628323056293397805093032078600233605944663728359116832598262352651692139465942795596343715732463676998419601754949563339290538605375552817637208613018354771191278859204753169004125671656097947099458528652183669407001673990866647221401299502855077211806919219282110564669620601641370728980034873442231956664352858815252071811736525119484488148316961915083427253306367645341045537392853994534154557895261874871746407798381034240333736666407427717402197434479056718230888794797549240090614414409445129901067536375949715764263408668502175808253581649087581625431762022395546626764804371220496820048551612851452016113838622511313193401539572336394467083505117416639963085219061519312240035878297281190750331614269162991009010894515235783958895874322209420414365260561837687548988005868873071086594425735006625406365013395944260687280775697543627443865081242177077178331516346784295146110497320135690507375395507325983345703132210171078454046319958822968883502935953847309266682584581955077375513240309911959454407662924882307424918609733725252651846735109615509027926370784082581180741834185601430283291435047873005592941579346025834947890095812442235035782488434737169572818430944901211071467914948797948732233784130222906468958065013285409254669536539543851535230881823859390086393829241406904733186619575692102625099304985798690979672583109442957945290389626804397790802689751333986331594254519045180572126683242990517521758509370739233140249258399051512132900291371033708582193867424555876272123244546108958411179519328943099254061956385744510222530817158471485879921121144399280054244565232715897673255700281175939020112534616116567718125255420644427357457208245260898621019857940943671858851915404946215042360058994925690359830017823030322087843624060795218981171659512507011693543163736584258879648457116822505014749604601861957191996288592482483125214225701702981134923486562164561496723567525937269905100252641651958298744414756191798134548976815200864604795167941779657949471233904072332642676515419453432097486987421559463840271674927703722158628254447238319599706536773484537194310238934163657463786752019365408031329454764991425811222743616240250945710315966376923439389013602142810642397861100542192343723110461058770169349515232199228935823430009541518501376202881631341223874276202143350332136567651033262818361474413696799679420328023979362177888554523061654959136082232231378661403538047387230780452609806517651116214325293156847757131025765157788815745720043109652104635329126336938844799579308647277418147152878453398791165389184670041313812898243594038851222094778940066520983161845263031924472983244684127883319179600689995444541460418609248309180434607618532548842843549275456176475770125704118359115226405974342276995246570515623525250896990676943643393643274358564252596589249427212835483775001897701859526979319647894321214371705742334951248825860337167429076968401334076650053652497840804146264824763289348213381329409786770020254311864095376921453716260917959290149469869024325939743941236909980276186467325714495611334434564659682563347636098824047037333181378200904750730876002587341021027294983146815714693114846364214197644007792024218892251771560428631420983223063666537964611308948567855842357273489618518849252167934948758886413145649990453891294533480114730315853360990163923754165816880936299982247799267226122021141442215348536746094209264266005795075459600694036121435458498182262213072186432516045953764157230629234802449130620227384959595166134376509713920444298923986420701486728168695037874848895967734211434445572219656058973020329561171476615651158667062107393734889399408383149650709658326988539681892475790913312782899876916304218527647977699683906929073729771197999554738537443730126173708336467551919340652674460657413112372179181750658177757237717479983197335909732671075144866048350006799371789341017062859427115072763376216635875855317602847492590564791385679576478567427804153081999948375235487468412138367281003975716797924846175114909733296122882507493596781603717991844243358469602985013265106635511253681119457800683876008663311955319038271125990354811037709969757284373418329984304707619321183437625497387998722116755433497640151600586942681006511699634896644552954819967319706740808714526945141285906937284574732506531661917831293177158470318339532647648745553677194384206634313827594289514039947689212654649604259803420392217613401716556220953062231014613442061378590163781737781245835102604008600654416510039707958874729445151015802662036232091525082600597547591270817644362670505103270210086190091759918308998767192718122735587421125663274548544238798319231991578370034308480138798789681874401832706690430479857980500153427320396441816893266586356500031801794153889825884400487435090792300285365584596465352730288491999851420188858005436315901478788398825488304586606301062341961815872242302805015678223041002852304323389287014122448410648762262724546386155934154890123136763080540271972560929260203724088668107322407824579935870453292892959558481104739861787747217596580453961115410876752831253130288745096154525796380630813637603912281043785016660706599097879151339645260231650424611619651821316300351462853614976905832112646801476208524563034217851375031773046012547806534362965012426771721706010000763410981932157845750512941876675921123991072308283803490848457327790029322708861449016915007102875948660149441384063794886497065479465439140586956912090275576825562055797030781648736592667576052160681639599851940752365112082761582777681511965377607873394753305283875202070915780978818328449481971160693912699525871102827689585682959984719313195826807392279594550599391051356285371591986138618332081308031001245018713405499331829050008532874632068727477931773166730397653214477079045983542878867210427665893888513160315795080450677355171941561604106835025035621468161329494893139612989440684269944971079014341536680778196471504482830968366452973515494281001549994373423565653070546836250835619525656421844051310317330775056320838716602767569410458098088522245737157482078645729085734594486458053864532187814101556711697907427112724740696183453940029068276659337147779461116619481193386148750943441326450666409287306276660479985631210107934317510057755832036422229884146880810824109111462612830010415285535359991046325145610712538559999514272952513578051698424947882042772285947691496832168334834748680330626213368996219506650278069892607345817505707522264081704510758568357612434793688454303899874127751587090907515602151765859887003510882614381377437277755689076897605234943052599378056629447078489061190713573674545929586834526736978014726931993914756080767254676509506533523612461073758582771382689664060053141975495758532888862770306804351628644499828905874429573523784125423797886601489281869415038080175096630041206065244668793419595450090582514875716019195888979103291893778513652271834825005542372314851685693559922383866088084042122126679119311644156983516326893283787088015608281467725453391078322262681886358750763086896263507122497500263922914100507155367628899719673814715072877417531372192907095854955270838622405259054362866502771222982166038193035818191143163923807831358436083400368663254869816176333134606368699221607594322842042659843586155179377216201678493139800891000917221893358357551144851885065455813736156281177716928149627282079363888751387497734012904257839529476125356934183913791646609799314642862552819510232229261422800742577485725113182645115665295822156988273900609132121616157325229935729294216183459328266481977346732133450634146251020684687401719226621416396419143293884972860840475819616541311346756848734429165575599467507357587618380623365676738310184532342943233701886987511434625995181392439282170696580366192621930309171897229482715039413335979901502995475272295234234953706725347907797672595738578283012841004667541807001245582681849292256706944300590357297217604741563284893930337516029912449154126834790503402532204051128034795772546357505018973227769695844418835414123273084769664147308047273694428338980862470546414832654132274090789383224480128224597749161820903145877933453912160869973411188193756065610697954568260722001940432938058299686202574743997362376181349477379427126549764915886471732477053758573091573112599323084976870388863012511240819228903516857133751916555122825768717509772512964725417238312189708879547532128049313708017542749862458979943000977604688039057400215835698726995693711110663255397517915183561692946187944114166136489203962474499872731741405670032382838507383160215100372744624392900959438450379173251808055428277585746269774009062990226378745040430306832186684366537812222744214645626251244719101062427425253346646662750359670195173568970344473321347162001524545478262091788314168030137473886510278010692016915268116008835677507677878688837069414465650806949524628071455687792325772095102755060604183695947617404205083640057674614535078031972949910307877516180572372590890464691674349836722526948692689256005021722104481404022016328083868316014129653470034714858031325291130422999103817995045373489628085584071639686232679254976713542838661030619059051522686092314671466129367697665831117133916676481337579404184489070528491153673000189265079244414736338518773024267555055998368834165637478993550012661464610781400555449554783361585116014294214318812784087089660441001234701715372894792017176923880745314481047489504494679847683679466843623545352983628764062929505093693023048303528070261968441556475336741822053120307032574569907813893237210723315090086323895415102641145907709386299304623664519864079125663887360143050987884775343352940739006896115937021722634937167461204485682869884609464088694703418130539504168524128035186783519274496745536914947607087676286154873801349255844836580900053789152614462885087278074195675815240205517866506029402850811304459395743888482593906884359765891358258750730781577108960612566073905535870681495230527732118184869809198850888197174408018773010115976883735956522154435863972794039749732993026446881934482077202397266071196485586841374740970403348147434899092630567211058243673053201319340264696228532417261540285347890317647113286377369484711742804962583550886971480982451810771156716949130515920120531950634060639688425714050741161704739463039095196634714408844207887111991780811325459630021207492993458846694623111661244024649193725808476938233908620220256414457716779468651635065374320814059251404190065462754103192966837012595576513291373037356338120137023971463160647108157670196534727835127105479297572397642410216419419738057655827328619327951906920847212844929261706828882997330766971560407306987312180371676157827343142052778210864257197360899826947737169013214807947852434686972735140808545146818416725839758105456681514855065470461154762969418257739301186793626010381536543285801897817761594022996214434986280783513262120198886817924306798918747120153275769558802715279195289104626890771234528156697433173740686532437704789797372476844428241825876553265752250391528922484883618805019787308287388838621685982472006125891089235451581042578774825733967743252935159189122535423156288834632523936355981965637199105668370741758519766457524907692674319783585963795319312752762479129567030288800967202174706115645697707526944308801501584688234624835057315203745888349240568700763194020642768064493508791835755776119648222389182028809183610308624382762554058773766485454763959022236055567475400831394661427122012624400128234619349785905112169934076029595805743719069906057301641491770310525694876200330295998530848896517106264478828777695244175788806405201974719196638263200409104022626014996794460672800944940697246793793875119043656507023567064095547272303515547698139508545925926230838286622516609906909320050528614010758472075461125693054852438622638259546079025542815238354412011524620514758803501104134308292154194194483046603422983480882889261525483928566273146176852776473828817993871857351364222344615223103769899477872881496332413221500857906967818738766352127228746996719837087308763350310437841506160409818640986975297935909007495472557973084704707074581204025162218422052965965006269565752588488836779962480338404970946973257487142958139593425604135728218296624472562545157320246135504324176580924923740460383130769040605122435027535180026183599635056805009894447555242951888006714088158285410574598154304068612278145865170216595230389817335120849898289945579979408124840257479387671815249705442226467844318987317096242375145931375355225142153625809402867004226538170646749019195940393281026896297374305608828702052554767813444412190744921037081870048805442597440538635393993090137862840348750084445090762292449532011021784544324024736355179281365680921826220874784091413054296148358586678814709918705475251223600358179660002663060369934919759513951719943866035180455223897737971849487309641186267314715788308991295327327063911716533441093644170441929190278617136461910569741595953964880153698694391307896723666103254838831942403465495682280887972166948289292716601458393599792223050332194188552129049880484722445079624915249429866558099545977279230068264057416381124230614175960359657693888136437212649502867405580374844225484567212185230651369002215269508867968625797569213504291478187777674643918656674673432887900501913203050648510456532038924504896271983165839347901286793899791508459557406303402861527900567073993445060905271010241290782432210851105286491709617306724322129241042570557502932145311612508188991592729888352033371187877554404359666194258422356343406089459905899228224189414349218840907004334979546471609943088151409655059854346509397299036576555803628028236382062899790690666360518928729151453967718801160888252562271018136295572585760259389529903468795635473783548617007550414012602618012742458087843811643813162434960188523289695100396060569550737402025391300486934710101174607069356177665431849397793339963784056141951269381942542947119779025414215011213798758363494168397285736910578264249153782381631739833731866909896482206946380465076890893493359685958274216528790411518378120115896211978569576011746995639091994113141683558527789842996999624761077905790863237732628109182047557007299767289478278352990985566584017370256958620384655522355957733508256802094967357060434056707029361989612097095042227192760987675798436304859733170324217001376948579900091716701420595732873645561906711676880883311617212764537085677100269469782551911190197124543989664669023712513688879904804042580719803048755987610660191107398536576362740263784363565436663691990222348657111645704400853272490357626123166942860217120133078115922344498501006646552691790569463722910860264928343483710605031343642857874315872222729097007342184095575598244439023093562060093193861948615003459469046466051511821912976037206912341541591786427911465423200711241323861366803700137194728523333034413053116728238120230766578962713013324246865224026992877569634419995659546450717365408814492021149220809263241133819987428622298033720365632985665845755185629847387682126852158358283020416102441326066049530302734310324397863012206696277423244981437591401043810020632435583841155919577706685572146304858060226393545489367119088511462761309301497488656289729680006764563742480684293962455589267381100925026923926210234938979523917014438767572516353652449433432929615120742052056392196839036266557338424841854763642863768748520974990503897164562597015670549569372792662292461571867727426503539996471291205731079809651172672414718175016996995178260795136177208939768099402323510731312799950950286474012706464664548854267498003750515430042645822427702441641959515324973229313440952324935047059452570948133996594875267342109171271552963675230541035180860095017578619827808559313150969248910385888930165314395284744193304484753954016694794638938408235103208409403123018456244168518517462483682767575742858244096512080437195355352127952037168350820387729958722314880602425734652231918054423414493359712412655001837961607646115917227739976806788493587710153281718194861899452764844554544207685406710898720355414812579631927387182357817982977492083915186430313049820493845784958479503140246449114742905547199760218820974209794040415617796402438867404962895005838672345092823448305705493763085990039250903789884581312219465314056341022734907101936156485828984180399477004677426751439330683947626656946953458115540195345888329664127280315814674981952019460623170779988209664782265664535950620862660449380992889746582681924957025864767863710561694700332552219998294727705464454536609173614195816883194576643412206365734516749400187492801375425649717094891625488499612847098985522906361899414566513125983896499801458652835660683223894084706289723340123406620166539755430455282766675113333324603655911820453149516691070142280376887594117467282884155147642739154270834480643282168191497467981561789763036567878728866140763324295229329519530791624390708012421239840228476622229464619543615606269860943249539666375664808620746281194736955008918814725246832123155194179516115362131809708437376199108473049397110831738978956375564161270652356370895772304751545168106524627713327005939267576713920821483947166174407986358363648724772509793577182246263376625873071268639392337806080073974180088454050987609320257955299033937271461451999975332435483694592832920806910909701613153477519233363640850242127867668723649162666347828823465507143553361186369270660136277511690622657039943449080300039828426061961508513914689991568042775277208943343642905920616590187500654404261513700296734803924710027916440139195585439829277358392297279491463383139312042965676272253940124374199810473299522281902142860616734067865665105551106792262937464300879732013097518967342566230082373031314352777103445180447689441437293831479971831204703088057154510352168761915285135002543109674910392556893626262895577268415933331821648594272039012842785418996049597786448406194581992085469981643310133856269274447980192812338170838836936131295819727732870324810289329936758984057984467667258906328673691482579869567553001703842788514046420603971781390011523649255840295618104934214615323263858313958221217214030302389817539741720647445233373105711254041933521516676742201508494350856352138392866497189374228863255284046676610933505593645021828034368868801828626816272327113866361376224617406669767789829872024570806680306536848467516798043457313369521525684164204875079033570861851860684293881872676593769876526087525073026476049163442585118984602542485777049214855163172208925517064272150283745067468668676483283234891732655895677622735680689790046420191772840866289725059148369702339089810001872353392048622883752003284945811231829115801359067935007052227347430611057442407123525922122720258573593269135625304286165588929753454940827121803711668113527834142328033942256388883162926084490943980569212919063663709872450079175826283899738964478358495247855024133029034481328126364138840731212188271788247933566094302413458446730167413120651143834436217789996984580421517832719375538426187328444151681185815191636495460562821908599293632510454227434842057628177023840266427167841227424471369520591722486531176763879953063411666332879737136809329853548034791753425162643340158363449323543100249156659051632355829300095628182533993316687757777532155474158949577243743302636749714865151408022783733676555000470099570163308718087228890162094377748625510477095874109473916863922836983337775518131201654991160059499877239572829362218243423724056374022724906751047989127773502969672101470915360312273306648583509338601932005194822741716281142980375743341396368589702808471023417728202071428109969304737618781089581978733623347763401852610822491385402087159749591779880809529939981802686137637072108346190078314150915090065723105601063878075489856848287987078949936274343414518826556775905619250389317564373146881725949819141378308926385321769212840279095456415084533421947466418460710286224665018743780247354293047461750739636756061574482191399875261372752972565573294116274986224093070305334165393400703516006769877138140735607424126662532233340186031266425959716627696273073504971453211056823258513219240204353457275979132797033038132532604932166920545998490474394812296613457350212961216761351217956830435488818300820218956573742114963149222511817812257551392494652749759822828908164625774955745904079195801068435557143429057362146115271849613910492384689365648181557904449110057419750640131145507970313543888852134476638803299493239207444640402379921946342157274434318683577627541709372922878832072624879090636110835300022128560747319746214569923137705862596171909247256510168048381164702033151371865707256364893181907457013219323306029980477072903704485517041310456595317219510951491995089489679082078958986719209449417658151002026884343422554172563034044643915884339046146585567919114428366141013915191292371619335185332013892230105061572321178101727988211867303933805297063895172078196241375011929824710103138640584127246849735608184360859404952630283103133246107987743978186309507543822616188788276569612809724610644423282259960040613223259333343433620237218381805967381613331809506355780552271653010584185812146568766069641622205433368295879702118851464577360592356872564147278127757888797853557113797338263122395758709339631577742689949758948891512145608504751464472167180603595764165491539896945550551450587600012692357302952127055136654948263463923334740811690401691736738616069432368665721149367627816989734034130716742087231367902825922998604076667281502084687642812873031282402658693428383732617016791017962158119991078004897488271168227560919372259565116485519135345462447173419646720749454858557621394640669851534456496534864936579410894183807640950479828891968606289257496880883428723071112181567296408500557354061936038828522213527036757866670002135342650102808986379422865894320119036483217058253650407847736112352062072015603396240326011383299022524861486690192871140760932478437867881667417798848932520112129889922248370171070783408628226350856475299284360471165760036863271579288920955161163094754215009006957164857601104737587707338034871802547263162930712125487510010676444270782449641402667165426801650723914335469143622937722894868194935938554639864223344988580667675768376262657326356245137099193323588275374717451579947767741079772856909996499390513888843853897911216562462603497421884788555496518018906824193970895108800562479649982071762679467953307006691676596253883623751252196407578343230967952410056292147731691821356306619911720311462901435042564841838683262761729365142891804932743835707726596712426590878687345480231042411774155272876008449907913651469458753530582035070327583935726367658453101192020164505554254282095431451753895614265565173665501001275018497253301908663142070791819008694554111791696966963993971862771391331413122258022714889543648674480319053767421009379935889060937534365873608395412701641166915080179654375374980751395058205727892628319179012729517641541687960425021393938474641154646218033907953414670400613894685887299623676063141529040731861475019465052434570917262103271771308548014351509303035859303756086652447507470719454911889867308069274821524784308466278941464676271548444128777982584926294716675569106261558228260021644609458545215223461238178709044810626931042487341034962818226603361826036040548517003447137047745040083527496823381608566263086252491905544792899868388072695643337529054531933877300180950952613365456563392884481929627547790639694056298012906745078827420499354834220088518349750715070154512230547877950375148933811857736603453222559972985251943468540090032198157279359043306570586230843671587181832838797289579814683556610600071483378399484736642288369540625062899418868384302268849688056904969085310800367812359219578443024382363333689388730227435728975669181012398767347428267149425274702120278460917920345724622524700474778821983208791772863901427659225041237488440511881501162333708994409987772792620433243884745405384257639296590227541558248274722441116289034576945103971602467256018475559519499420004483775977969882999321161252014823861864455693868753752609975093572576453824642517192829795631645459255826643883714802001029875038353967255756429513091796184784566701046166075618529603397548451884003594316747881027135086763169525538584118035758395284071966052295600274584229672701631119750130901239432231367866894672195974132757779675455714362638161299473921499728394927365929876735557563338824940810836282673896673875013726556304104772243594743298611706988984873354471986772153059279555848467922244421313575407332498518061375625120586196006963853940653379014124021272046703246461597823155516686547124048936716327160732155958195680089734172261833325626381086152325290928585566468567942448632963368540032845722851476556748081994050108902013028573252345170936098172578710051371127315783838334903284970243061651130656917791710362368901833746622182098480711998271171436428203618202297825820573641170020898275012653916543139612446854880913122653517974162786764171698305547127347915372498236436371479322307514190024221132034198223103962519715891590843456972857006456345246000189815422646634651666136130514719424558328156696253122677297882555117648919590153581267853558895248056270165354927790060869457899018469316011765710497233490583366176521335025500897074725270008394396337104339590916122171886917265899251042467323368696380836734228525801636338161703636915094369287344925263166145173223655843808462141761862981970316483277281653401829501159531434833977152302647775230777594973662248801748806820453576675264219613022722697310443913795008810241845221569592105507867922669891987873073276423470987324323334250469183503343863659861587945664992497699666892891174987841375171145121699417985559092495349582570962533465291866812625534891437051934647831998198523832299945225746584654027079365710603505090872923060999567059813226669969693025265769934600831303060868603847267121038692870187820302673893058790020302042092363825020134924441385384173414717186046176142147660336202999712992027178830149074184180701037631585285392279688139779741647024621190151727780746072463187663040594519324312657594344286275430870353137443975471123528221601933543673385374940306087045739945739126939838612964995574591449848513486519609468016683609329534957028970393714430778427427078049093644276992811331465174731425042119351181231194739102991408181199970467346280595719619076835183990586936704417410326803399584122292045247622173492395641655567933803995866683402917200492452032920879110098627978502372737472876044030364470380594599274453291452084205819521721047633774347439455726551424953798986473342276643778650578354342232742369889647529257555785587783161299806760229361817061579148437630546662621955291905000987929306917756034177595394959491476266591628382283727067574600969365138843165672898149506495601411647434051370144730561862223697347778166594870939474965285121655699866821292104351058525172987084261237888509948397705184531461857226074636921977924969308813327727105750429483970455313026912487099342501531164152598384692606648295779914678737049390786824747321556011301979085184403502401356989931654928377086018502446966652642727703800143881610429546265956191275064199809236609928785773899679877825175024576442844886662607898756388640122660006449026272187748203839674587145085770856640275795548674419278468850032785049515559331393020286246340222154923413726049386337405755970516805506786568618509830040821460152738916433788516978482278950696459400238313357780313254725207574670164762899827949341211825238824727660589422338746114656737723816022323607394026072350851917439116959974806793735195341760544932851268253154292930867762144741661663903270271081664516652017362268986582799670936733975090904193711102477850477124468801055930602756214272524559014919542751059655743231039543519530658345666013049237551551712933524271608248070935287886781504104694438202787247474928465141771572385089340962447075647157423698066378543848766432408299862290392187687675384038081909266972452674361509943663257391412738601032984356064724072957481663962636334550959909246093352707632214868844722304403233408734424918647512673769514903895260867799313359256584401448085928852202995562396494454652425294741082733653940186279896272145211747924197352753299318470046120252191175144547578800917045889450224811817000328797280929245048899080735156075310113649007300910788481055684689362980945159784801333429005781828616647236603511501626754287051185253524093880692518258261185845057338671153336870182509997856568374554344521963932324387344613239902800701473543270532325150900575009430894892987102984758495193786820278268754721027636798042695658777765339708957375513612498273373085570118062357585037442990443243979071570189480131375049365450188446225183601378672409714566985773381220614613096936787204066385848432555915726999944097024143411401050429747958101933630082337635592861283430457576054206472797771476775587631331064310071343584005915568741885775459225920088882224671636632770291687062355607081675851669339543854105454064710108681757742528847999592489407762012238525133237687034322834455350297796836567685999817652788476201839089391056594517798385617016449079873413520420844941215688182658145207143788968328701084634273616144997790327080066703885972319618437756046614547661664870576251046007949990810125877829513178351509323820600230070477267620340803249159427636212651943050953338677622086918529901492337295426700428497568075040770413970264089068960181429753209595075743204727241596711780656119609974372888811845138613542902010169355286900601791738161794186412318734986175305085208411504719912768179048618941950010965901042761278357329386799439244630702135135638260525074352902140165585279983864695664395136311753869527607603278278251146048051504627307884964217963790974896815752171582600389388256429747651225403788905538639267658327861388457667347426714169100466472159079604637632748488542556453219037829927179150962365675221782353932069492584959815646103592951010465168339330998980653377847257894918894901409834056482937452791938028165575687657088001097184825123489733279854507194287544477652982078622367650154266833122111856783690309110525775785437776860013635813825661444187574075425724722327674744833006266801073722231729268876576339656219981552906239477619946431511342032614928010637136831673474339832074735084871198169697580415098943404055444413050059876390775713283117826124525506031372342202022921213132930206415006067443347229470747954289835498063747373460686919873444354748582804528085177444722589167581788645222597442899732287753346133365545342201786449671638991831086581712031793226509212845632781354278611889508191210232387815438819385201936877526576631246425311816098055095237873364805372912466795951994026533169784035546759118969964443872363115924888084789759035525734645255078247324455915796618243955656401039343738598651191468670329879485944510402579279585091504595343019149024594941900893466401161000225527416455156291269991303550501739168575501550179052352753919353486487570668737482933139265896448010849999003929555451891015890689148502978800987219110258269902378376823422782807812822047330135199994775739722924480554370798847730408729780081488194104506859128946450794125289292876651635229078725762823728730270932086890118188116778968230635548214765453353081832526298302024573775220921890695845962848489101085734415778535032993736908752157934533544331076755615226651538995144675448965076707067746264630381803077421785143108125226878904471207014826275807276689100180018541858214891586891110684619743251072293950304206945829183591059233551508359589974131280694847547404573274744514076020359911775628482849077439474273692458643336584505716914484953847827389245674970637936707027909637802873275633999146978111623081120407249699156989991784345562883632924943432929176957086510575163545590677436901951024281397940898518440226946644249406364460877768199397164391720289303229724321753870650134287115276180258132611890111036504818358068848112861989392986167382203698826659963007729534098485986304977260109813692463893231912283627351109984800373101942553351225362068694629398535838621462558399171640469633964335128017436086941667896512929765067131666806015293154851420260331662648163732902071653695604625273372892495375651912256526278519254310692131255692327802522817901513377083630977760544483140145143691997464534680740611437132504953589681079783295381561713981951755083695220520052867254328230834480781464439222349709983550579883241596973229825970141158689819696744134644748899720040430554367395429916065490501695752600100233832171657590312148556729504014718803959986493199310076176269012324157884552995786423611176834052509869057043462662723721974282628976357931069808388669718603668388493405201599775732860522583016948876867432212714199002660785943575732404666204886715549097171343574325390109916705748123323007809561767004710949965753085529326310461321634045437108087984126532244034538028882438412950315108486289644804399047560541374212644805948686317257178291915835521147370947554481650629315514057807312256990844149026052255082377442913424662900423793313989217721473286425080643661734128748213479035312465156528453602192363074364509361360470114633517647675435280125708672292273395901232742107980511671383729745604502707880007825269705835382634899283243581712287122829873870158253843611905627630889400228363290702017817282179428699451631042764520042419594786825785432838571609505302578499351015489881598076564899628316067798372227754877507451488658082119820925591018193095287111576980478065771917242433054799788518019694577485100226710346325730360070977832057232774799075156216562537026453322001068894960963569198677597286931356675345639631185061005398893215710830093581046991637136854392620884873053841879293931797672187220576777175330060903920697377621342868577744686222520677940508578248589288966598536082009323573975914435431105719062048378614311682497668986962865051874068377147977712183365015290632541510058347034576310380119685143619487187838147832098769318993264753173507474669376521627000026649557735894271500549095349127538667173154184304605352800148156198442378982370110960700046161943796115949427570012065434019741138307796481943156651984548867467633180884399890973915356117357544143668383774576869657922241862256558827952240749407607922279520657722120447714782595534714429785656472704634308714105616105507667350717562432509341274778159203559711603567644644345589353788661324875329004283527158651979932180715204096349360216902310061693779378683619435985030488201173606448820347336594195948163252652149929779926834690342022075619446060554870181208934887107808431686035843410195095382086604985184566598774791184496499183314571165343802794710025861711114221086089347607460782814533423535570286184003774710282161970516651865295883656684070420672154842089872767790605834449473577613076735940376803718599339414964812290673274787228511495789386451594316597946628162591375557999305296234740652751700656505324521176052983894200708006687372869046434438029897739057985833190768273954058543986244425590765530147397726795037210604865918642931859892539694361790677086120898905997167391045183153687838897976519256647658543016465070657699030328560502803082157329534720912297968246160341872196241938006861968324941343273847033367709675137754125657090510430094302483873697283977934100258219000178247799521110972079894683673604492199615640165134316996146235442127805468822674151710707633932727968506518949334190057971326559457436505927825124655551568151509600392685397431009403075883143008369993447954218744130423339048560030868915609452987508912789309536138434399099874475991869969303406397721633988670531065046936581526184206024314712951705947121095309712773953699104261680035805071572805069887500925370186626296992567170773945936353784320712938129902772258962729501123228566207777496823275915393280314089162667579006696564227556073561121609730850323055299022447162705306689600161068682724335119234701438815901210352669533217691558863958531950319133773522050963885420116787654879746627248748073421085457795619444916690904436065173999016713875920708929010398142478655859098560962562077738883857199889533105468825933252751627596759354324863916549116598087524229306292778553983112858155039261685850652040497518859638641265403759149901299778124234739843044071323878412595290703797940584349090156043386960042318679183818199197792650272700748105365810517081682631560344620585432985959328744929779462832756346942509164257606354502936165249018002924938417226487669910053071569776248213703408027489244959992164224236618902337475751351238979637930046465413894873326552073426156818555966229942627592686601487939183002390893261494441798106574638930090419041973627814761409019309982678604160046400380514522662456996226543632663279966314234044197778116775881215287609586028892499074558601181437296604114841506098732896046657817054305468533617950445848592060176225701019572330067990230064171722262659700435673896261417049361510782831289674318395974357209441664291706495221549974093470848512025613538927783691426854534189291736839865565271041565902143758091045579969103174630680673578329881595222658316302910481446001389593360231910534930291140935244311399355006862168960273911719155649915224779165333020035462500110299165196539860211644570382992378627244312710564789380709531690481768216517108245811246025353836220846710850908662835777849395058641080407703535345384695032877763817445857310129795961294206515134594244428840003471811646178256792380344711887026680591342862404278913233464655741516960219582338333255690799331985183216694200267799057529869567377557817984166378615933359670578196771718235270119984955673616460761683944925702551935475872190578003376659172633716721989783210965507495192836630787552927803378116977913201566205765762809289244853199144396090125193850471203681148491355588493655204377901883364478873237480396451242085360821237404512816454065505604438731740559820007328073681373888248755268838556167264822730666985145931252253055464628036523331172829777095601545891559001059140952165527097366759659165836631703610926165795584581957828614235428828136057389244495404557335418092090697674906148401546996186201650518944080908492049325426192966145500633005562019384772399859782805023323156189166582227964455173920036776448183298711479894260555765849050409352897584973479245454310682758739447330078537033499935213708561879233370714339381403159887611673152677835509478994043915666015714306484642838072444716350269439513720178033960879308822867090025390782975072789954378428133503545125321266153085853573033642378666859697969825890307057055846468490962581923687949002422654173918531098835904486325724548668039459214695150797603573420150312680479312367692835057607189807803285838703787117543145770854836089402586906999733898420328084873785741699198496312437833039039129291414388854759394537599272891299467869327044985451189386443256957235158142809603500758962616359189841973820029276894548057571696166056386123564636325482671748610892069222250467030436322133345308032665208702758388216104261848124811227111332137710410503926504075466814272620438460634064994561555275590937708780176237191624269691738610965807409281777433508438864415173502259786153853550930278124039068570863903486246138956693899280866426379648243468120682937887163063884535421886035856589095399698551904555456451106633153892443108288031385143588618364476802082418118641186441993842829614114515853818093762201294100861393958130470141124053913877862985578090942853493956435388261692142705812213413333407909901341396069920410882345316308810090653129363828637837698479166062151520257062224808156400334457827402541582795926921482292452878033325909418139996414957170566063709079671830548530581584481121676310924460361292603380109263560916688888287015981631266851679492988446369482141817277205974638019844273226524532126219134419976678535851571640448109747249638933440843203115350553206281658150041666390763630229173257288372324566884037405246111139774759938755976103505150146582231796628507468060242303251057962992789215167754439894163394347599291536479595354487203951308832695282897553618904140339543158797034599558007587596613353396871398911488715086452608305869910910564460976306574914382995307244493149088803632799015887740561950528896825924625007402012665826051350768933581443869254398492546279172974902789475736199249430821053601666471353892104751731458562153479399242157868448061015247376107838039279332880279576378977560367379696968248848390647473396338365369757837955392663118982501235783836927828807373772963210597864560271065123046364619478728900713992835965470163505477283768135021099516200047765796373001837385454161491874721445413828498767438510608871046663629384213833649942164817096668731203201505402402829950359066928469681101834522777528850092760128257537177594406154148617672918595856790537448286044945492404289109703152836267425959044802469923872105608468059932009682471209297394030404215229254361816928829684564763873126330311197039548533298352874336076328901312358302980335656042457329990111728606761687999208520754444096187088588336571474737267552879904553540346164597821893247263673835161672457522317354467941705407847590649530351539876336884651580245711159154503328691977393321481499718583375484326249132867328946194640067157082625797480955092969569123061118559162306144649524581409873091467293370272238355742113025442858050096127931072722116844154225341913802638620155446560978971031780028500326582043759679619498117393666098911774762958457698604365794071193612083517182573852161607974891461085486019399769835333215969959297600850090220536928102274248594349358888949897256166968893786252916249558188569316679658977893794493810903760420623780787145608785974100348851907914585226532764342688483966641564966009568704853130734455929870965081545484920712893094800938783668478720844562467849005601736451820526152210886764558812130800937175235993901774039223908144756374882717931551405638881767643154100037159059682432200579455723470277913190374902380540586394186685092244001869752151272484269200176169466698093536404748525191243740902114365881522936139708028923340072957061794137946135098024396091059460925974095400924768471437089120119703314052362148134068416302774459835066741648206576407523293505729349884034686286686004427360739705526562877911155226980724591964727047423351596207442322910645079243514377790824577651417301715765866341829000419481395983281118305708688990334337826181158743012776229940884096528406098376199670314936895470170537493338862388701363484100921422879999325813265636820175797841995636622716333651065753280015934639833175691841173793269458644571879631091162810848555334309413013476930685197103529638950268718272108703312784912443443083792147254051428901454791418407835202924895676699042965178935359362370205122910532928192326257010791880963549038691538495207388328907455709885934643885395707480432125768048251546891567867288169145040050960759857614455586519187401608547785954552292647878919383853659289929416556330536284365305928253225779949992484333178682730381621191639910161331416600583638214124056757354379551202807909316366169969153250481012165222408481614986967835878727216979880562171049949181893178958610642929663363164815620739292203444501812705974816987966985505701084899075809084514308899847326172697054698796682339603073687405368519885434676398979897970879778699024673271560250640726066258319093899456444326854458744914703412352374451976614059730178117491512996261134409151859603832464337273018867755620708727001860782237963413902521641490126533351046135580808889681496277743456469391480137393840808271377838031368721695968830171827714276270256588308770886742374818818626731920254581147975705950817940309830493518276667407797248155900632643076718405449777750235231538117525910996611983876154977969323572772242174788364880017093197232162738375011703105308737462134706226623269778507853367073619946744967275921007737995337970871704997347339334401308436515226977748026986028339814586772473420022698033089473439407145863956276433004099992627134620416265871723549233989909966938247447603584736761895308425813025542108937212198745101145006894844312750063903384065686331339093455610939195178703768479613325988360840620774670288178085138028465210228345351657019629314370075416606069828717236563167421262553497344405190449137366856804636743397337603908381897529759764659849441618954335913268153083742175743735888231355879435083737515965714247971637825664053845354385488303265168138689598154774985249048911512085244852172805642890624240493965594702276936749079754481121129314504117090597712058009529158210528601242046228336680404108774569967665224871941223630682837085758229726232650547463116299055607681942872406898443626848618057433607543086586307411324031700511854568548380416473306612212489130782641534947027046601371717399199584428645197051741843045953006249215543228734778092075213822335420169523206660247723872263150141067757566303811010330958193182739881028896358048141055330772187380837629623067399329834136115542747666578396318750736718340283932976707993560620812188320687932042766243106696762785565929619957565141773123511740163000755893139913624054617307374798391686090761386658292040138641984241218205678858884165655133627097451576927154833624598114281871462452559187203971541376077332455871644723306680630961003809349908887419990476925132843343373329563746304711621683803174016708154894981961554706364649296714040002606201650021716740621010387105442060399664953269699440499291703930408589875046706282550663457391223949031390430087922432506943659128634364172098788940452736242663387687850927276818540613270804267798866296349308225215245011829555307658139678884391404995380870458289982615375097040476851800446422459223375195935333599914640007673417226451607590056133292040049406297633752884316372400315586376276655470577028391541455627802934577284835992044069944487603276648761466730646382604467319177312419872908863000155230257397444905563029333003760146549489665962100101377680224082626894009870622450910229090463827079793404342924904407858578963044565991003154729627416949319323782490803092897912361098091600500258660198015074897475322090666773593841095380254303186223599842202026695024862668655600727535665843185413124859829332195265172306523106768982480128450800058822303385090592485988459587864843865305753094346686270039755690048364476999264318069976987438925492367358622552767152468213884399485856047907715675849617143963312619388868883638921822954386984388940191166661938134238296123932393758104597630186568040314135663553066552893382519500461848074658831493785336005693278062565865593584043817126622124641905989548572027718190095694018699434771858800340925774486590603848629088468559053679068912822113778846802674853794965527068409144316253825409412795431454259427215298954472001738554746981534131344045979182121138157892038297092759648503544168681708760704473533858896118147537045493796340896766940981864082439513457326261605687602346280374263844320318222269083110789050755054854329612263085208952729754114718785379760065784391704249643745839095885141918526100469405567842882812473802034254827779351214582660269875439846480174697743573218259145280746194325476076125792778380686177903592623241961289115313786545322511590758200889927937343395799954299855878828353568897916378603813244763713505407034459582461563760077520669436167577692841179033806776083098922773486900122124677117544310943187939043072669564181071579293802658576499212414002054259040447351434433244817990328908103159961492130612394352475635892140731076635925677201676338858611752379972280046085054624140960656411938756571407585275510664387483707593138035313370960778519955113529833331858903403955949590582465242462846073221078126530438723252583781904752533049123547275335858726489343070931136708806128374761127216384359605523476763767738921613782833834934676902699319295150337307330869347527160958434866095492504523218689065044900960175734477995874798657335394261020237258484692810256933984093684523653291889949688493097353925855123060113060569682058225681146275776261693703000741834025353908835129408193792237292154426966984647869733718441144977846667626442020544155689332649937324295148241798220576212419927253789110444979137539288603549864857492902751208347710766364271957539420022330635446011417074107059956140749158044788460388221995929908678229969486288211442366853835683253029887006832107497140129923600205910621504337640987298931053364941413073725569852034629422878146638459352185707662529720302962844260423856975231296663661737877818930736625567858264427790891700071054292931151804723906284236446848092626379214552536061462607292980908347071126560398211647202828471359529957013451639457240227415574842960168588190335892985842141111576263021384645300358396000552067495050098022359693756875612488108662143779037471816324727103452410009999186909448571423481860190048642046415576187096645176693195526060875242643159125575133120557198936311287413530828162821537751996637350611127457886627706134187891353939285194911272019168562960895734557653587609863719025412369230346857888116397108812482328092247965859058487931550105948572847411410046524346719567977608240421362826544457125320905228070168579685565176957973891450430565672712144548584725604946734233194286606676523678403231432172031609288788906168392042067107845899915914558801590997277631621980472703500933925249996812585904755807248959804162109883277564204193179616312037019851923164054486594037021689061324456076300612675405840657849870896882704630384495824422946705471683453570595036079851877763125483199169149281671604738197456472988870059664710945683667545140983948650091023178009175206571677538223869125640403344764053573080659763502058806710685278215658724938843327885235852163665167554797685819714923961108488099621183174702701398596505086572112133988940123572813595580549466585363493004006823191931930309878210942499626072426232917925924183366689022281421942951349232142845916347818728967884042757172489792110907318084325342309785916920146582693068385284130124887999340565209154876574925894446387565818104506571132368131746289646984398837715785205135386812604930545272629257964123776224918044801371974381741226477227218140124707244389697396672874015819895926968338233449215848164545857257260101365080721172824893767575458689443329104676317111432622727369159947362996217430060177117233126515281724753098174898994651967013818773568728183171954782655416629534391797318968970627861778383535146184240587274887516826089899407939748102629727962692956948903688548024363605799112454231701498759572290627733415990586713814355586326554141966356425103278286328285399364954549250300806565650035924859839038641281017934579451501504285822400747407452734369002897704895417358967528465367541119947476590406997566588774242095308045448876851618604314374532692488745017543811868901080340156938077175238179689785077590963557679336562186967833455833173140534564375125492238044398362396192017254900822586730516397368825946162943128868136404984676600324060865252620465010798638887123283221126621036483811235992660673550200811635702478072923622427926570639943959685689611393533052671944372826304614941320729083243382668977974941298489069594166900056245597467860861679232489509711116049005772176226892483381250269872759916273420047807319379087820138161700657128181875150800936643298813054648236054164459769187703935806093544810969305620961889844705710664058955064610738100338828982940872364142233836262462715771575372558965891515927916199207777367191291286787505931927057975770640606883037595532291496810693596854848325353603534262265913249633578744891583035985062824343412738032806386231329768064843598133617305439585947743374394285907629089985333158071697629651253144837908899355054050193770886366523310575355089005542724048459511823545253131043505148362548380943048226771050273976568038158642738513900451291404650798397099482750253356737730986691676375822479256988026456079249946174065775774560609960652308708584438692908905479214304832263797648640708428108441720073014344246355952109323587697448243535105183375680210988103998282034016544261705375288088471025704448563478882651387520508477669538084396806011829333442821650608638441521592428813910244415742067023387334303668976241710778936197354933960857870570959836236379031123125662525950229760708311275474934248848729440455247810118051345367793173781449653587719461787568389651321364030380575622646715819568241982752628621498194190329875200896063699173149645805943202756349592857344372874644362590874541423173830670851446238360737559362283204811066783823292526275750063357123210929657412290157093726148513148896592528376906866186255794998014014043899777415378059076684864995712257690874582869231105681806971816971338589345416707200120530751124172203604892313008955634794802372332331297047178465096122858032651863468945428425823711747183503676285105855897397488317737620758225648623324614521650407587637980646252525423053821362233405734686390234705538273520513893186526585278554578274599157241326182399070689379165736074233372510615055858399169120707148783453796311977887082293714295276304893395094596433366404889529949553939887185820595170449047180853446517561249606975939842724456643482738773595032201760924301535868081528480856755477393025871370289405401333723608680323556715984202044345055657433987213207836708600594300840562418785842025385439034666454383334746125782091775016299305585921011058400057480029876887572244537382060373100437887880665375951312035151594525482871245621664313332382626772798819743205058478387756944790791880482547189968454156054506551570647066943079729214052229785380719872876128863384681239185639891341642612881919333198497514594792774261585732069212561449100632995821690441358706626400844726737688572644017163950761025858537726398059446806163045000842095082950778919795295024382389487878888279924512422223485697035403013072055055245744435104146999532726718488320276116588055999261607723871283830984563968263858242475333199792795483722514342578016532614941658675323030387943854276863415809048264697518305960347397205695386710028276549915704680104712953474084001445076310158083149596075941210023458860632842806477778710447092180677726237798443749290222792623912276310480372161368527048214154796471917300502542362312139157352069769228581158125675270291297727933507774371452318387214234641955445922277413597842119621236218858321992552108515689964509690947803213185931474190160872555132395537774288688849477716970680416055656794620810773930846830856486160632640416645468669256531529863637137484563930441232070600244383359449342523886958345459884383622494627884643326423992748773543032888415349749761635294735198106335725438117299521246172014486777729614948247967310882991660554506345082990510935676681750708690378761978421453832754204287600860410235719918478827793004880443295923028880183024614222676977806889482277763471560352263448024251417414735849969578260731218312001385244689843275893697690166488862673762737019532264090622298505952437975369582315475260159151262794447081940163078175800172540083336842688821202427980970345423740724943803022605524423030615399461999627450258544476549763774820785151042297042782239073044969692041703353178111733296208127394644159080545444627988660645339979639098757457752537922403402536917621417553207046916883946131180465298834258264859243534793955681330425734168569009679615975852298860344581512982287699791300405016196396162069523575803610160440765483110655238430596799863236901085251625992879879786279305726182164884267906898459740894754713847098235917417813816037368873497643075582288531993862212606305666536169130716308323373964783304678348596023669311925777476447633728321385458069829074701252771835750699966742636598331709915317444075285234655615217464973969180609461628133811461657835942503821378635517897403789667384376567833257227814517940417196045493620738503569920400068098765165279492542675493058711119178984573621269490532822326793212521147139245154011376416129216805707731919902331672081172289481488353203292290950215354325896578215990498340256028972517290758880567785121162532627951054520771011829533634261904830198880457860822949068350495952967185202895142816183708911618822737535287511653758943439348390665350155657315796549835701288233393556559105573440425548613261877463113245782631678937581480734324063586608336695854658881277988419095602030636687444994970800581922906521945222910743787921673013138677283411922746420749296415676980510360499658577762026496008693777960214839133425761495082187440319569627531319841947098290638218655632299436026875440414667774651621732016037573270388143151586242209153872296963570402085964336190350910178087249457379939421985783588787587357729996022373658665427070049231083402644569235089515048032731404458231973657429083429697412691023684732549505648454920268041991262833624041400993372137698318994032763305611490950029799232602833044520666064480980866294596468538572826150160292442891611350336544988191301744685245668361390495146897956323580408770195967759103531860039895917358993022148725929562567255208185750762511704589038573255746262684974010446751656835490259289312787505758916935166272414636985116273105068404807427930526067171682848222614872169289169921384131677328845196347287338789163157073407211018156839199431608839498523560624551571873503009219950439579669387254352547493755196145937431888985406683868540561336635021038379354689705923059904354235963260243757732718282702370816506355683493991085778581340147511107168149453166647178477292683086412057789929105394237108084494002342310794404597474869526793177951944256999187349222813499779186556585526712921718813045375331350403560654934443035041937519415555094943378304656676651939472735968326117761614467735403259681119502066569056518883048933611913306263885515966541713911420319266370226585339765040261355640728196238724362509524311520627141732980395666819548660773299051873175753731645261782145955462935252778264457584313869550015284909885149162797290002610008522098522691445940881304356953673268612251633972167116828557134183519429882175651780027830315032857663033359291328420279091460918369623091535853564135949042516899487604402193261079927875671209103048720402577106396134153727078556010748357647349092256320107099424277632586841239014007975929450989700411712445484368779240007700784153440171646431518768812096446430981328554721657956413531002145990257400479915657085833875619939701426952611070477084256229514067481669918390019767220487665530511686177986452704727099388925577944297399769827150959860074505474280597510185984672045058110552392880991398287515299333997234820781724600242287036788085046359987511584307786455429831531723751140737416792133624494312814970185319412052188911410218731154273003732946650272733207569134568083600103823256675169739041278510304451956574935201837044283081759659405499071434169155539189276850427937562052163883930966814530884830401686781160331971618127415161140867446253786929814849355092439471373769614387131239258933902253372154623092268378351011553783756204837098234804914123597363336952256269780090287177599173261483788795821924370828520701982308375386278111902455137313268396828522477700445189904335235387105660589014931437137912270293416776996337984425261313250875609086934945290424238890528683416312026329307389427558510580209761121228701383531869290416295299626507847764324311894031914719766785363019098880045791410566126496813600702066407669099368738754062679760828173790796807190692955030045732400924506429690412136131141461180027768636206071690624477678411659208211034055185511855594166775144062484014673505602166386287468947650515055316978306240432639365380983651487185656107742458302248675403965125230014475350393342143980676334232239478419204048527733949941061536378932207667890840405369117481390478762283125099457464685054623811067116529232678702457535421040770270837135764201271147470119001269969162216273501678394801258009024519011643032807607302930591013419606226077182944525020408610565960105932682993524485646729322864534274006846102057227751751433099631423550350124063410616484080993298563011816093511968712586226221851205655673929021169598358261315697843567267078947278042081360246587151268685991619118865262609407723421349417715741034877306545245971264932674683607659176042041209716630134581659412538091452247670527650735885954141443640675147734935666150610099845756868662489924835301021385938238000994703976400578299269969886126744380741188377293450271150166270283665132952281512334862007827122988549723266891218080608489556788738861931784085808905040829965928372042529492372739093922699587656004346541331446209391472689563343735916057892014098056382998854257640327814454252174503130883933047685084158571423276803818435625109240383513200071359424869822850763088357609918209945894490989657038587467308222427298225330481778106196632220780314032980721414419860488338256088270905375795985163466487675662786389365270712500193560126667630945097763722776057569613405119243351757583966568644758854259548285592171296075712344002160954070894299781986217365935173485083661331779306487085299361169278324089713170079534549350596124506062198195783482991444799492094869541082004092703471688539795938129348294712079535962465766328005767989947032291773816248230400005153451817240858657250852135931289273553306013679461382198751794972347840081950908501915111864093042531180544240995980460162225456590066668912956426410794985953544473674256997356252423371416003849627103906948721714219465850370132240585185610839835230524737983953097430317392988877274741878599135831771692862786695013903071079596392585802955684703228510459253849540750177113886652530014218088984777884907354074469102281346848459284167181240229558617247512295673574687136224743653541032824934897877798992461929028960254099314445348672552028484519841439310536830932768932196967603339414709437437757483739171953002351172645999355923027776953620606531291463751351659331053047656355147409857404496297248140668756435124972130278103462978017037323812186129607123237282748013292978466818703897425017870882362112530327161293003122724008119920726733110779388551188173616155605446674334955594461831171315679102111470970131880695325789451894339448432094230271079856937201584677776914700404277310839127315908314303687223551384639413933738559794117751010268120889434884143581190497529106024782917732267033095650301251202237557294483150890919077738503917977706441316956096854966305797758418608922609146723284881562959118118997008364733093288808181570486300183382984006988020734485118742539647795200205480393499841041013628151850752822422779637641801253433697611935191568511271524047577814875473796929589036385630858206307546132428697991028431506681199137992149435361441649345583282069557171902018144586156140336697336346656518236631339453266008431006434519601964849847008218530316028999411707976927746567373517729128482437607984714922871337501018027164500843249363924749642130453404059311160027925621550844398771515895145720097537066003235529536461431945169057922452285638507935002781391538672156001925137783125199784499795664759532369701555588469189073261935615792110800269658036573406954472404009739092940853481794775928114898740526440033546936944406451071027004077066885576592068887393894011757340739757199228194981243064626556142052004797724259305135181959519659232293664273971734948732858689490365429456939110008236299833076309300811686381483417084040245671320489303839212211873638590273961938345645409483217537970986512885245133263858486220613836711731834537338532088064155871025506256931067554184587923204611951858274329934131426442717211176922229985211359371802098396200181148412154796081645005341522907114460866533062331645307957130436690158186569169293348529390371767980116030047618863439590399818079807575425098334948158838825215257479694392111518476593067719194723520698567646821614564616319410973044231739781623856095505598775657137092120198912286702720814687664082051425300978387422059386215226196382267690191274177531864673837690864355069287775672309955571629436950095318477505655033127404076808253613889341114666538961224861543170315550832826588722084529310851016473566047921456728013115085350599890420232595452118364626957852502674979467619798710453018144568779349044229979592947087023986143148397657009860359704987896702605277302067829925965433664502434092200672840949925416782351550821602373787801719772767587520970768715006225438016623577665184635760008451423299617287328874574054894783489019908054627990731528210663065055254568606614855101426403123588185645808440662982344628515763358806098221965487424240656780959417552017514189449678367779028672562050187660796981532482570191642134840861774598910697206244022026625184521743415755384263720130093517092675114017284948716871771764299611995972112697316642343974539807832945082539610697319976648071768067229408663168012168160455017676042784053503175413459266099782021103148030500685419982492485153795428101455039591517192414896600963564491372096407567348803218620518193302091305734261389785497550896073735080754862087471419795695172282443108561096719274969932679103088209561979755300866008701188518094348789410832049622070382270736046628582771643053236634329842796649413157046349320466479696309244968353182512665551617135303934233753373225443273644532209807764941296233910706800283452190668662240158379273553129591177783477247521588066516509012118308313176984624940166094006443789356384673240615064383639037025396583727639545713205296644974191599596910024898028408377407273441777115543660263851786254434443937878994245342494550013738425793719827350367756452666190570925850777195828833244545451896424843986825876160398383277580652772106491691406452674385594315052916622108007941177104955442828762294541092777160969702517174138677319751117627958279335534847364888502442801490767837251759881098081388865955492340147929174410350763401140400807034620717390352405203448358367611015591212910145124228917984069628988586720018899952473871480635847524762155134358475563941671113187587611113680297951298176937511545690449170227801879467095390170338872324850649055059449181479871075952992337201438227818397279805263845465243663678638616933194771205027681837227097517297892458074252059615325349090242380626084873130404848385513883030710931239586623780471949530492980354625694259417329963248523546723434364928501578059808659529704533964347419743585847321027876786327785508398638011865417569880472723231999872362015511707687838588326903678029889060868645680994754967001592792994468118245926845016678410355394400267875539063623209021504677506131015236080446463684908279975735295794555862075296361329638682900587908094661125967034408143006577550934740619803198984703841820130669568694146976399275299143847308066941895540941743420033028986918027386621734454536018856694032076484079522682201250164996287199766355973802455076653298782884883497130185857365479916852827851833809896693557463874325122932568216054783814572290471300840016224077879626128985332836724950391477529160356829527612396321946945084141599108910675471889958024255003114315327761796530872483363707295247692317194070269876689051129867420314810166950658241933777122078913352335705698790721525028222440593605189138221706377998910436163717498877810246795443524909628888616439412844306238539274580040161352536038225770705700989563535707458871707280770683509965350925339941943872274872893827139694143070120775930048834689468032742410838828309711207669020043391612091728086147529844133351711112433177236052484554084441536819758891053389334369007589950674368157018986834479101243019395633081530042524908588993061201839053599805246581161683599359347171181407182410138008974592904188578309455091796840162390840273571968651445215314792611733839904034667031054567907568966844724339342427317420896474921901722321503143554267863455171862426040388690341010733111668332089396370905577808918437254672653452183261851355125967844420136520355592698435403640866056372025697967590079095658481331623555958798358521645764987462597558273175985944511207024408995128228785706880049825727703301501657718002784736921591450630789909247591736127245501966217911354366958307101277822458405336368596616214808222422714536935882326997336048990128596804451680330731182747980933801430542071546867104776731100943404617273816079238224646229146540576127784074961297825365793120368909954219265907724443686009583922690956484625853946807778903010101203019688809729493098055319307499027594124189109917134559827075329344425811356816213350356325327245417890380616494088323563060528923295899304245232856857593768737735728940807773934974576766950012801798102025193044093824101045936446467136572453437813652892115607703215319092504261934558877093819276773976352345897898966853929741656276862509292468930152350762588632717164533595029842570550360200649030282254834978590850969184372124683681342706473391476754617280869834881139080544441971254305633112615958153983939210735389975913577597430627844582754509814203153288267041439030887547191755119394426645573951631115667416179501913828454512928247589707819428699605083424561526932851540711169963444851348124349898911168591621473574956872307029293296121698478664917363641181217948156462541134610963342744315601996186181153997595669748083844288401799653917278722405658691211375850781164407895052576040002802862552523446129186164978186910612701836437038911359191997340202349724275502874292907987579390958319901505616205072250909567637897583100785000329579798757847811814663237165807636512945850133588882242565797814792612875339708987970975206123971889041637462339500453772444484227473285421001399836417212419475090215256204890215990424638526812359368256180372799816796899856889462000696471026487381961365302735773115214137134998158693454497061236905693366171888667834039620990889929019181355789969987213179333251592427447450697450279715895084783140612797895402102653897103459253966453309387117222684926280292131921904728002699257404581850481136574218153479377987482595434492769411590879443687055316424960968756690723778895866828078024075139587226787083625025559602155462648305132005072596939372904311991081972650429824606459763288805002097332112773237076073293721790094199647775358971434230481385611954016144022003090055845698092308810095886821010228509575921773898720571985271285480468077348561522169021394127613016894758452211566185582308753289385543486128670077363233158437382642190065290087484854890998610432555998763355817325686323610688728578726616448768990407577517336823008176832852823914256999325032145818754320646682994230221058964307091287365538308038188056416188001604674911048588620742022439035642907818583229745635484060358467761056510854750297106098715481652719426841787937353189200654115492210813830085989518856002786601306952492285659822345893321152479929236157612150274909452983343870766419527586388635600807195635807034712714139147792231751608948539623339112518698602385544108037620465188163582645999428167781767032858715958564486957409665195376495647747715634772004931779866766270420809447513666204450376016930672622899666742584192714088680273758671959249042154994721522013385754477607806772800870333168416325251597266996627324066284212240302410953116319999711231948142328802567271621376543504537290602625461372920889953651368057347862033132906053711804962538985344336135971967634763980699900211862590877192285443933422712399426375158260991910262182621630555894806850724699308422465744111941934074005538580072266895885918668545817945982633118219080357727593952329161562686884144219254930531874585853351371307695688417285815012530070079803018571966435298927051670705098201252431806551683182484168324622127225028811559208025514076818199508007579403398833347176126568301214865493313565660921445794447989096710768059741025031470178910957330464043408394741021400155537271361554668132174610417470587988357831439666678355356452239378605711934470429332059293808873035421360109627783669503279114678955909991806677656675479212951230035834021995383680269760266275473267458414295068270517783888516680165027207524772030833648005764938073911801826429777611190161074121885378258459683715065076266765816960891032612406069044690150511808078372331276385517093097058837895484033486474974816821368692260051509366483987307095081979966421624752488680209584891415868579020927984579119306824130065906514811964280060077930807153032164773685607538102746899043146228831424223869406254990775462648241958291209108890628218061258931942277579894041908936257276104968897314828823027363910868504038455293920129542248307571417783871028407632293504973943917954866327572561020060559301491233932614635073780707939050204745509706512476831855322768884320057037552064418894884943077098588977537886706959836303307306593311774148037216020154608876873387732291413338669042324471529655183978934038851457085416509762153572099056100951968119340379830265103477323695415823514801110087850281638153086918107862439528945618832878527468666238733103189172765756156336900975316235908535014252174212946351289867654278039996888258666314349205540965762113646319612365933552094272828218055516601843250108324042751063041104964356288957159469125330161865288034519472697622146185633897974537467536494028511302155411713380918251031854193768437370873675410450091753211840119867627627993694614433934555386372124321537443460153026869263243973664203088607036571757986055404435827222506187645921289960960800074085685228803560133084870459759140558634640596379474416869796898119228616285564004774880054244597070341235783895141068770385272087963902524483416839903185756204013867694181964515844472445822877263811126872856135540913300548134355260674237826807203554931915064327401586617337094772941834223588167537532154965369269206885152255173229349216393708976786563614688068270315029692038723757526697810770770797162312074164896299682974010696899946739607951452460492823558530114864222351950034228395082132004295981258210791309684693534814447443142715554303238348606421259583839236300838143058119289987292466322782424121424597194567014503902059597085218429915400634915640164342383993778000399554441399997008094177737327278325003085094929499129788680534565728802361777610619807588589289595225789929439956159652459918790198286255115267167699796084714276023362891499068427847644670944938272544907856175934587070348423813952280682538565863790088214678788316028886301933460307006139944602271368077445238234010002057738204890460785672641121391670664410162546806916919960241857105078039093563828014947037972243303216576690007944047458431090505731606303784025688393322578110164438429401311602311655885262603791516078554655260674273994968336127376650733859459542174551442494187725931975376884038429996741964768981274393400125917434860201873730646654052281415355380430449238163513941469865169220489554548319658012333112061768629673503177944162374671023376690621886486390816224711795831683744719414390128319648182446070223733697722292525082651615981696814039270755263192679597785574331456964391718974118645665907045934884951105269628918346844460751505111418086586508417161244566809384726318781841157443807563850939242627569410038056503415286493097723397204764700418832436071667508768177695547183642223149745069779546256907837810134389734551928248229669609664062826734731959738476175806998757494370665090008115206383172208936484935230996611486970666220552371253308550597225979489318975499261298381745235386035192992104934651896262183307288991352572359345202690320822324069441070093550356286159954588155985510731181353160702714755398107121890555359222258677004562468440714189607124052618373773384334730986841637266364954844275828914151876314350655927755647425429725850114310154882078496071229754761872385198177907378430493311306509697972875531405158170911007131217074747976377875999274285774223366914681778115284220382914972714922441878614445695839710156020114478297296605636109181434640532920911917524787620787079425654269660751402697541744384298392388229844794247015402087324282377374780131353300083351413964163724950884719045490895999779303703112579915409245202668420424308012708761514573632169753885866858609745980187167256396925830935353793962014180938998598728384307090058509601112553343353356429038928867293660093358929004405154755965485889540856365240690365227039582213282081940585764578568663609345678132075356788221030821818605028924339718391018801479348579749994037222000805389027971221727880716885119588954550225014888323398711793582523084832861390561083499320431810994840454738133811036064797484810092531413846375863304068640454154709105902141204838355220993271679591236861701200692773371690428822064402477854784844198484840649825389367395486051638332273411654590060308753093609014568423458038097547900307441824481034489630404076455985845854688086466608400734046426703654693048619191569137463290522353901114168694760679473027163087822482501224531097081870672102026756041701548891602109156985165183852639474082780986696469037665678462263019401802884373329572479929349407646619656261725440740451958208021815574155806034343227172367356504947959088269969666253969479779120237187816423492025531264942044123462813013375764413810543010649073462892121464983805039239505020225236636152372872908904147639185094778599796014361418174762543659472774586960701899219995423157260787461719411186710638393939712969051334312602963064685967610085063218332230302190688209143884081694018841885922675757979161690493130234960945478281872271116462574693114771516666308109595057947479562139753778225162505384836792611763415506639285887974319704280691921750773496430092175694195054034817226308151596609935343812695102497336453493511482192721792589060610093683317448406216323137041847354730522649604639955808584584967981766200736546694480668646784390350791005659195449670395406918533600014935618977957004307066728597207271984709615064145267318604008702549806291239451655959034800673143769980539049247535770204878976981742021153756737766848544782038703122452291443885749298683672398693329946287928191968693816451954744339071158050080815757091356992435671596643031801617225479236322568009363144990695286311726445942866126346906614261045041023686430243763934640793930151356281666757985282042869389517244459707460914682102652992879467265215899577230966928449862119237498148599776853890126379557763852319261952900834027978317939096133399054735233847766995585268741054272022674382138555100608107012021914135528382231371623069505886971238899313640846064150595616172534613319291514316431194906503633731073436127694015921957294702526778861295657172592724398428243232643839633902927953378557565125872248607230495103023222573059463242879668924044942812288430564651641785984240671442321663697110439080203303969627390273570477688279578259283540174998936876409696177929141487432195100138840414715808906344830943387170937893467239668791335032285848384762469527611284102531510158467238808890303282764920001728880390547017665598162818790641444957608336862808936694048109028987925858010672810400177703020258040904920152072853735898917404323345521098620438056164005249800362750609820115692107207426013379289125066983020793237819687706544255346596216825359266185577662182576436403603147224727232119126508808029282322258097174323729560812350135082449551760443066828091717255837978326389790558029040411107039113550708731190300046494038672549818743545881417043750448006946660406765300760728431384723359956885470784940033599114991466225727829840917515716359439545830219607910204777574691930281712816156858495336794973920240414002150340174009374260730605973765934521554769458709762210497093227731433567992960731100843311464261870279555818573452386331186486573864979105965810788746728501926676952074358152030416210825384804673350186545983554888599120115045860834262527544974598765689907233647351298493458162874833304574478438021897654645678541521805027610351878479933302220650703626998630994287820450146878756833334573965490817315236257589919220509631611955972394250043252314441448964209501800019463606578708846083475063207130919654718347412462376490333851065939328721055580410103809798977745989296886172215081421527307567949692755791985656423718212197121078980708789848784734697989853138936717043499706398115037653021772146296483853532581096044665721320976180638798758611264184185899257442245958389781617104398263130236310249772540527451066019601541837948548038970966440565658275125164896564958321080514872890982536002356103544032690208789324728141904919520801640588790267084126738291479393438213729538882428667160085129656343495547294792802065650390790023587176696298300732253375890066733793702865270843996595628153148603130281953407887467341167727593490489365537477011405744942964422056706957898337392912762463007891033137764844653945113466860080682650597983386669476463613235531941558546445889493862133434798565995055771592537121355063984493515122565564412574705334680541113210760407595942180432243278624712083553848802771421682695815416898060581197426757660127216995722723563466269416214192043772047633782734767957537766123717918873422723476659806941843202253305351398547042346144638889476129678847995013273986156767962726535410014682482343359658132836327985506442685457759370125396873831423330504175608292486845817125467459779345707593264307477237256826290001652318605028193397369143993127364294858240208603806711902705583206342967800431020185034157850579699112493895581912469285183838774755627674380153785372129412231916741302671397396120704121048862359061512189601393899855216760136543118282718199526408218383372325677322789317745969241404834545673113845237375212019699226106862653002337405496037720717166622706195400400394517082713078176051843508525578810908708212926681819009326389286417537266925618526279223392129701083500087511513677465789495884541437477349077049597569543761373063969482257184685564336503671622055740555378357130570213111936132838062557815153267272793916806805526263661493365663024910335408594613312507549438894100703990769698173938414326813132874780679134636047018302939736208637421747275172318838513009687633765519210413726243675630082654647069568188241737512978090790134520879545628814696574113310093587546217107997798098556126819738280752199144873464918672430952048891723658921875302115454489204789375704386051609246844577362479979081968790617451246111471093636728863550785846740429043862699215507791231020864865439153857569956806731359007970573450333893192712901673756865749382394970048254837572925414610705289445823109889846620429377439208205316507667161967152515865013113808875833748712264946859224954579755325753662916276042748291763136696501827287952060502098210927629293937715715301226618211471272681663588337933308414499680615902650655409206146558747721233327377050004095616542104516272822233528834473758242138895735832809986534409127407942359794536204411236829669200931284508981899462741165813380169032225301010059900590159236330419237150472976853579870654801542315299604723990977966745584285409698370205807704407364367040605263151276050556236116070916385178939212375357201703223541708947205677849567646791733451385839765179972504307240686314828853511946958084568320275277937427422549872265679830325555341714716042245129224158949821919891063929422532919852579270049745636685674769099569916438253881970972921976151499058903125107841857086462105911104196085638327223823790386004602891014502829278440002502107331374450360306244416849912798075124541846174817522133194393004486750406271586849652369141719772736170277783096057336298156260618498967196256850869454675379322567823231301614478148778497391182214688463302376528763636011116838323124727441766731294478477160992861360192566299631595072268620139662266969434552769043999571962744495992016011700488298493044492703171890831324447180390233120138609722634785425056576011488425563270224974203266020821456759606040887569081144186305462561626145627798623029798014255621864448118490519345553329380214883477954521406380412714104467339189610906997941142459972058422468792918060938996993057372617958537340284120499234717488074414308275228513640370286036379673323033324804827048068138903313479841339110748388803201064174258050822734763733741952687007265913326446215706655563719219962741396840015487261403872502977180139526879502043294903827023171495222895314023613919724547267572328059962740530798465196698500299091740741946075474633627514944517130217273014437885376198754498174200062461944945785280868377636023588833889159412566505343442956653212075184151505681683879328824812883960731981581001825284752465869071442247814821158359320963942030094033736699342745053652436952646283538068509739972180945313410789770361022125953657514976490887102261027560779670458441881513633399851589351400111406391592979750841559962974915962629685028464765311870705528791251899406406072041806985304061450081449570354714922927334966540810947902223092451890692776105876199039011641167149528384676721682913382768256962624140346909690309005163744446741547918078956232645257864829706324594437881764021219703928051057736173968297229604125936342299627217867085649982442279952859506211491069841306121883235911439582806081374512349222550455776025921049597576023924295804462325038959681460490844590557809484918908568331114852297446751587656439563982780919176676728706803125022352228569378099373646519811297399607059368916440968771036469590239777816764127342050284365667352566078627971970432592955066193907691058278594019808065162051137432978331768048500964368889818340253391755923508098575022754995581909494394103747587019698617876479031652659629776846374018796705704979300635196277284665855295056941676591267156590713857691780034617700021393178219247704060924898682043206810503735280230943100744485840349198514658199239731627302906435318321846528255082594625562293525130420745879311545946560532603541248648198420065358496632178897549148410095379932746459364021245972505427367705453578943377675316062163789271376768827511318694350941177539873544194413569654802034722610064087510116014558415961418347796115099695861160265779285515316099429225195769174136139104167432564536285177924538465910780821485346177966650710851681333793343705079339087350299111252844087910415271483106255739628678854157978672365899549616367581508433410568274082636138520341732015680888524174061317224255770552165206219723051710185571430307345962205243219764932886337159823118313846076063090556956014444518230955184798969189146005858212728583273799636763343106028656838724513709203626846453398842095715000004456048228083293946897509386898515246858640314552450384979530742953633235100918375498955472063484685903759538492409105348878671955963145414424171296157471595620581835005293605601575132608757545709279958752487619493017825770900175918696037120744458433101280234692741296800190272274629598631186442843847755266067604124430873751604482231005796474433768962876704298941670693547540450662032996119307614090829212601888493243947071423034463503022010621463279297754760263916195593954840106280435261816983198203736001455851687669920256097422220016307728613922274309034754399858833825546760971817609587737581615448382631457423938691650277621122812262790554124824110082742305124699035484086874343854414059455742654705038945233643353979104527391293767269608853107126599746950058782448569584107641553264216545698413261796539254292948655848444504900003373955667083782421515181616289086291384866858354319775021272391540119603481676545352580486693419543024826245237110340938146144566418421819408087842828624628950762409861339738545545949813854988143862252850788235500181835125487630719987432602693128161438387517214985835048537185020342052459332137976068999362655932093779897329282401863089181293044107112458695483143284119633881648244394285642211975306212492500197014827294063095395714928608009030588290594440030028739651869018449993385519060143756998666858854248445228236948166927945752644301228171079048511937680558632253762807199444310853012775816507818029500489413545326915445364712963592332971910642631063914618382368117409563503774208245552667828164467737944361679683710203675857906367075946578941650109463078148392126980024127506846485676016588185642220783464142406858974867160855166076709323101767515500119242866505790901432152106904625082781606234356198541090570076010199060804220620339340679715195384967948275282685044845520620772581760450645734197669013887470891608692122703479321290652246643050360823094752119797751998078480063955169666426005217411941067097287022506205116329271702613918077991524199940838864927483897014026346646813152990068999768342465673355382012855008907952643811662394553521182608067861428045336139147985819585013309085451723589568556513192338820266704137178128082093518242662527172905638273313810893960306513327107802948583075873888790070608723562742034119561421110398857901438026017348770300703607935828585365566127333493657519400134029331425644616059088372479159949355383410446741512515009103343720918126762956327920536714752851388953370572399396644678777016242724148044418616549283649676769502248167419195773387630418447925977922964567102224119700668888999381716614441020087396172550892453719092907189962585910966781655166008998413725735507454320470582478181144983324894299286007841570904831473680762779953598368472577121867791707013614118621564669894789561725546413093372253249080279948307140404437928518583386572798868483415526355857829254112867364182435787315351209575780500576622608641272220578789519882042277708505766351665520694595150450345532374984146156632914486292185247416398125016922899208860894653461027634799057860531983640255957065319681061235347072165111218593218960251265739299199608684006843447565704339145100411019295023686974547711196223755315851525609438961245034127600358695849998149565998079641773988896530427161248394500299286270418574199886538795600574293094927837367350726682988350196452722168185581896432771327483772630931809470712828403843106539318417464748532161890462844898365192746074307716091896722052124882512792642130510279914662079210634764217701806555729222493636574901607300284100709807607151668175636875886261404571524288972052057014874939966382079905657044745531168765028470936144603941719641111496664706130969546726419126348589633482475875249363714083570838715235758530007763841406308937600783373039301965674278362435614288371433263992795422055708988256600580584601362310036623400300211519040133862961633048206705707455912225344076227135922800826384003368181121603009637553035740718881405363020885329250006234304194367934337320943058581621726452536959745189490969916021014451760071998736349331752158555628130979162097141825969898455763888952379916999580452509051401204362966939375020002647113914886942992329970626804077663818439625594146308321333417864748219945016243312415828905805181479343132249205636157821863661855651527626643554331218964243673999849117004863110144929181869041587589069161529160023445970105940816056956346661107091711829174797310381464903932478761471101479380605141727115457442910777747492246987504411971588206468770821940695707321240152174898847872316184089796295664253975403272636073016765924952554718388059873828445702657167382964189980695299602037088994562698140870336824097558655446787502061353511813437000522950020553483274383014158711290360580325597751156153410522401851685255541721310489495989358025763456581789778589564712981917627345205797274268788169218751727404355440076764740551369803041643729342898334902459745469881554126006791858766064024931677030689252074910174927718911369880842459115427475939832462959035605050987969737605477271193333991067476780621374973007289602445090943964313766271694014284020521075988368707587733507819162917185616513732626518102613383612727026340396251664598468438913115544595629796406769657870540855702872758814837218065650828560974662829297867791724453835352056982007448495507151293321877889227020523417409694227778706545693505098732149967922306038707494041027058941933869152968635810686436923570874090702691502316921082931460253116425713601193479209111572231228628699080234102291637731320130944165079449229064444849378967563008944578800424560975559986176659519492698554336162873550363792801981724271274929123954181652573004352433745842749486994503600427308632307098396387907401056318076649045814822902391904227992897588915467578008463925145445241319569817722409938905789666965157067951893953257675244895143624713482265323488006639619971038522897149365715532519343291711957920417749760773056485893157953962036273606117675918729373914947376373737324026729232772455253959610358581632971705113673450693365125352038067940482700513846396824369336459482197510914459030213516243538032332007036502746135249447715120081071486252483685323465125625930440820576913615017993010702473803477543929706826681010098798942716217143226022861519180394061475620704550787299880299265407505302624688186601316093506644836908523892250277713224647491750506136934654974650143397880185068444095947039538175077841971214731545253271849567098127021382513114393063858069382516963673762582606051618626274590286936652680838597157302645983252505373625605486679553701235930395253335049700714284911096410940856795434629230825980435583076197604926791495028519629574962185945536970483808795369997457645870124591006028031645567805874214458767361689612998361874160809168892340345394954869370188445113256960611050674953409515472926386069828837853257844180353067690525323003833455741584308191244784367767766918105830299168059435369678911315175260475769220256421787983869928854836906631365836577892913791687446253099595567882946290905186711644975883696272466482232238922476127096603156510234031528922632794434010350358117383378179649419261776345668743033148435235445215462772894438868837852467412470470139910474745403528212663960910348336186229309900536201104844093882423815847479996377908368639741338903577078504931898077189469691420077984226389987903636203485501526653079263402292313630615635470102778090613293345732652888684402869965120437161409688913449034581861988784913548498554938797670754157308880782124708364022850571116069016303999535800996090304919842994503283430591359341053061075929137045953311479856592226798512928585139196822570276060790705200495892124022587323258156180132661474209303349187052469478276663703985345786545989991183220432818310138818725135565879390867015429143417414914548276415127829852829600551135017004463742984584239504676619913064991470669019940552137916080755729557772222633243815710230698708853145754052740439659603106426008829234950618401581791189869780686518176093645134327055587033672399198136968322736759286219465802568177326725293724381360731503067885875626323223554545609264958586807678108453818576489679610107432162524724038298871991979302833551688268227657512375864429680433976194882736212610587758478759731597162909614727377863386160436510874222249012501595605924990304894169332027149281001986427636314061656155234180429905268370823632074215459345119188712052696331849067898894502673501968322207482494042274460409212937148162691552018860159400665885603797248196492390799769287208377376629630843661051459025352729104032413310039960068448663114796432188543771225003603610208448109049139890147112909041724143153509301153203925292702606288482827778538544244397912912292571133439282272335444645975157452753542501018680641922355328580943555241986280397776691513419412232810208777538264611161649677964077294090247517762174222611210752502272021425489934520160018303980638745851494585647334959414939546028106719997909720884421653932284717313126030897769898377801278760235224536099627632593935872669214824012560978270968031539241501374141920575824477014476862960703232175508737237790966306769531489062868474055224671483154018435139203119486194926062825795793693374653554089528386190255547319509457983898337796525245673641234832319395542859961196572986617662139192080509463207265363502999647217145363719755840423353808526840534614035601820106958051897410976449091684224755887916798906740498556218810357719851173772986571579732499121577144463809651546928164628349640081518985520522983592655136027498983382616737453128267525402848169290308545737669806363513894372885010133421574055798695350203923885093699234631085273516927630777525917317245145928351854039094840806879337920381166524794578151292763414232080570948376980985643436010624461401290547426529864558413668369527258330111988667489175293492822350880519927968604185616348682703161296398623039925860403858360557511594505958966125524756058958622753484719992107398779700104911932669251609957113160689939341852439037664114727242864063703694734158716774972234617201636593339901445812445525151877798733419228381185428591079559258958045954654894100190950244311841388627211712093731023040918611841438254205353456921161270570702693605603768456253356567653021545659287632194526396118983084859169598614214505933795998374833853610764546336557036438304776754567902549191559461927250013526488094599456325426078019250762271863220352857837899861089969611277402473731072575974048009311647284115820079908897384102988184744712197725695584877849674299658679435020294221996831840819876006282148564910361563613081251298657265208376159006959055863251685845990620384517011592349787657704943196486790034522838569213013807008432897038271457212597243276066614957157571255276471796180386638348298981140386634691497416344646982813065319069713011160871688351340282563704136421266080840408202887995212251282091667843995139647631590381267009076433707653003238282511610782626300514121850404877757058515348937084956107756854623244894252701962541260677512359328834115739522591986869903486949856043712188969877877219305675181860577513198045539938645933177385107790801294141090266184240624916905712833391147104504893172730095293045886117324191469074735660509522037971665105128319039371510369563080392862843762013706340174794175964664733114513191708922186759880048110401240485205008025893394467148111572196248559040173268580239944611975614188001346681402362141120169735456935490421287530414737411987236548172034024117576010864539318130853212335850598678525842036616041409999293715329386984979879475506312830596420931341383629348441817469917675943771960349116360568046608375218669152480301844332452425981498966143182932855543234630458341940029861120867530918501010077086765710563113580017847424819473029849592277137554458177673559833339330176521618448198523108013999195886202660249843488685458278162228141392547766811844085864105124419320129854333724203025265866352353932453212959736545940906202508114142900898921874113173257510835367995610954194095994577114454674738390965881706882772126322106183201715203187571524809619320661434072415158200993285777631160760671482470275447720908811358461118458211389157794498663975407147476914679717880961526719086352115302626903292639599231260139857289838363442631570514019014658794368215101561022503393615941400269311984096646478088124436286973067180233571119526129838804757724106094206753502752394794261935913945357062292741388713642921130466115249400632514793566816910533859673854364138142289461179085115920083974236935730149867746456205599459576213673272693049877603702692666441172609263796789172064117195661273999191286251528510261058037073590433381475185209261222731886041829805658994186995551773717535503272224444594794814808089131482217776359301889317900589502497203579892333550803869483839084864692472296624844764972121648829613820578560705023227091322284077648139566916646251849876260116985977178511028881460850874805716317903850477319733306622058840743624186391236876958267423985234670274829076105979649475296617746396964547483170335952516716738555854129361435963272407792632505381924385706609407260789084666922899697140233251814803230532942988355208872633013000329513211379054288432262371873484919629617645656932233879882341396914697882359186005629940116500295883679670032004435425730858468385537674957296837973793866230316087577293592731427990619673088112798019012246448824097353492061830312543100442089673961392848715144362560093855619060993773917192229007858969483367328677891405092566168623676513705773116722379977370917342873991902812377489870258727404524767796380722762029389535389880140046340519873252394387354061259022728913513457586113950920979456162163230100769952399521814794843644522989779337942801099356681533680851416322820766846975594241511730852163108120752227841237540813789376709086778766499804040542465802372716058503564397818555765819665327753138124993431744137985554289261631729105090828622639971610193121126157185819039097003655720791491687368783989970262137146808701980889145608285227671677601608149970233001686866753556105146823376624765294555226475896620790077281252848790202757425574888275291935115704458822809171137679216646473576706691427046671405324182318146204428994972428170439040506485184998975802619942986084884258557144047497425875596957746625989195826844579767315498701761224377620525680461871863758891777775169303651005573550777236586099549604403658343271838056353951104790189192819071163897950367153381784727506603605812331968420933971618269773058666916789136630011168663101595630393008536693182237707820355201973585745826760453786856243529591366085580797483290846039843359372682037680607464139275671846819458609227723799847678543438861303306111010375864922212811897620248513918290172637805014744360298054754633204774857579429518023616348421181939473181401650760776607149309884493732809055877065164163111881388904486866029497328542742515766495897968323687237416472331480934009590369889345039983355511803397743300278339756379393605234851644875310882058805432788307999379119148772102415595013289920276257583294069851424193807210601013820123347223657479824518859808613995577990496254940800072474114257220299606873003847506992819485240971538177967215780046948854417058750341404998000231988629429764610692713357915506214757770926404947980398065235236517669267834250733348785683973973257997891187130951024112408344701207030494338898875101624082953022134771336133259859944621390524462212430633245416569707065316719642203475931803388230335968122582109639589718804159925123960818326327987935232885096689158225674420240553716376895099429734771336453371500998413983138544139457112764038889378634322020187464287558751899110555168775457016763739149808418532238501280429242592677272856073453925390643763637408443188455520028981211479246927583278249995808258166869219831687385585427942329413398107461986715100261016478288637057481000809763946643745074772129374355875266066947291368915273569631212705002411301382278482328622006027485480610556828340607318201973691467266431679004707316181653856259425614912774591578718867979596956654835330927224065454081698168730525357535504681313408684972267639189335052451695506674700847941745765977141867124310597264717041932370558487077797289263723842621457148735578656895222593587363120930756992912392528232735814744061312395800043098743569929734457341714396092760840466823034998395129597505913541238644791740605180046043288393697698060468208498306493360228187451934086263048087799480335386641920545451563347511359069713778875494764560274211906316611531076592610493557587014076446304675126750558763732605171002173960072617388050976365814240664664327989341244967007172221274248950578266593268525737460132279893180028438938992696645726873810962652451598781076395028403066509615109051290558760312157271173009609828336517572484951078152847022725687356774066339529597684568430368045480980842906789904000299671926578975897240571358634973201600219155287994804627020294236040149442043886510508044651478875359334324065292683240559700348000891555728296294932494001979233577036262963912631451082474637612616987429784551691938189467134487290661721015386560239211565996825054615145552869978568693385707893367745052792165337387935204244050654297959165272684744289104904230403339032697857176039552550728806195205405813406389048718013736708235692464783465819861388277283618865981937453086928374018904734740184655852420336544907673804677436853601181710072690432582709852823242721198703637934577493384580576039740062033950247594257048000084185913153999064797563469202884419838716326834262518477761811869729678774749073245890602785909477413567848787687560885866315993459889642559321685397348846805469933257741034185549019135406500813063478209344291311653106887557712915381184505404031218394205438341065905617014196663346122057395470674437459264948968838946247170658932758332687997557021192261968970995381640781046232900613616591906276535859725724291231049129524231668321946645375191765018665946173018053968165912353649052820230147464408948693382495716843236370807516340291396903346102748970556928241353177067424210645714885302822389146876107856245209533346788318114119797691989292760897447246044659881044436519620014345486357990743562640614055854565934170732207681095931134461308082543173359069432464430490650501050414115253817919129802810657669024581781729277320951111146883529251257848470073747193960659680886663467112420819072313066262945145182508011339760133214016721904806628262179916336968741531278107643176967001483691488964610524536823706667396334613301970824088828354288959048366024171549348351452388919052246892381999098694274799212604051054307465622368825764790434276604829477959175030919628483819015283828901357398794707913970872437905645767499504476219959732183710173980818110289734632934695687880680906717818228692785936777516282042374509978492727987958234589854518425113391489211195316930455901312430736409194419040517173413980202001627081266824829700878208493767186998796871170531614939911689803285268777696498955265232267912622499201944515368696654947611798862124695344595294474390370796619725631114792626574147472845859462277930925145690922639131154819585591270607577159447850076895065902200848591667142117598252199354981317531633184636496558481766357519617039749649107253986713799171713320404350198461743165772539030314467122510038560081133271045911998160512737125467997165631041487813240999467386559669863704949356926384972376376395079340768750390629459797743003388776197389223392426558530991600349274808060828744913978383926982375101098826543109877372166820807192104741921791382383020875960166429222436246365731356912479022308889899514857036879362647693960615504857121546524422156722930415925698463828558285682420861272267470428686159149206538496604770478628731392647683855457557408811117835461025302334602871807483019405062029736226879534748988309123688719250805216810422269029828198618394958928750653031317501640128111995515675463909736240069336266369158378373178062007517483905650734502663691410980363746066245368615337546339769651660014488128387128250830815823221272310553136602358322717150533972720760497758526490340918066539671363629957596910547916461383759148171816872422884094548285223939987177789872905121060684337061666575799555572500209379659531404188379565732393922058387415165783912522858402788844894200494974091378465288511638527324241163041278488084948950505242260332149475521169349744353572422174916123723520958764451205776680304576920473198039938035147161826811309654985351787326276876731906869136351459269956646535490876797449949932250384694633749388049464436364748350066030661261701206065606687998986624889073045363428667183840440240786617831555064587839120836489686565026540526184105969895874811578478546758559027343523894277828820243233398344834065437431197381005830693480040906052490935019363539240926895006414135444500695867228687618487607962376186510130104570760004503354570351705363181712515972351639073637937801515780481422399549185102605168455851714362533936402145781993437580471082654333242852249462509750981077666867979165829794715474282955538889061060639684415012864216537477220059511633586992530291280501308210337626591745752067972615308715459752341281559176633751454107289422936542027114053299553334329555443109550289361716320107510047521269455422897636571426621742065207895552383241666300089333364462984128558794244772919132509327644804569296167989859556240622625896237361837678656817839141457180085491449179700988563440183227732638354440996702424789359042193628695673854098344962844076237323015257351758887153644892727305869963347228596414690408402242276754929961367133867509937372999087499677891401065567442961774210396100456008988050225329701559437005432660919101041036792791270797912609187674857716259838407425614091851633132979302734464092572999118434586857393552622256516625835931291618531107457908552489301350240026543991975081492009857784006104456830177005401190341388402865968025984595334091675689637050795139003523336927082393782914282291226370907460136023317497486284923832528380729733522325482067942121371493962440980598970141916867937899297601549521614768372705176949926090318656133498170991802138889734549352200048237227400588700039882275740731427567369477165914801037385994793354666098929904282611711328751839304200611896252164417822132160319879524560581711213373481041574596229058260763715589500892662230085396699638125242019560774218890467093640719075983991656316595436830435842446609732995293160782222531074607690577394938757211148754904361485255081375343844712647774321063078839472240677677957851097558187857419537647061337223772593149189766305493482703085114118573131801556090056754958425307101905475319091915367860390902631091949931886414338254071468821552395357474270108693329775609456302740357486240787133293549984077682347408435639291411850055886366845218224029033097764742307167325619479306711437132764833699842115956090209605963574187261266826743927295855072611409501217672334904767208175684389454615724692669109316034993160392853674133575448018974300081033971486632975062841740021227674038161763766045077988467621679191075891787858461365522675291397150083186610166859266368322228691259132550551782852555305666280986891685955410066478888487883053150631930678137768555781482689310545740509268514876493504780097244061276198596942267085166316010518727165147935662248283218416408894781972641812802574513634040565706689896532352126373877116282530608027854684190298944738048036303433154068655644506879845049915317613256384909562086501933202628591615304885195373665163484419028135816740401545679641725999758342023880136475757829164997473126044976501982033611635970777429549477879902186154612969466542462805424289820530493158905491222821427050989680972995268313084861571754210135794763046441135765544886448186110881977176367121484109662038040814603629261517589782568092297142841399769143968175118332228356543324071995264607637426685302052281416760228563037047983726754508848551312481239192361259531776878502978213241173047574573092516133599635963541904803586263095986061111785352292520517593481809403036567076842977809107049778199429135966854901872737883985331837404767392196276338529239669426631483071731594601530927939078734902179987344723728804633629789009585551371004717128519992050659484262327660619592985065066925060502793584027850073092095847796893702507835629959337926842255267470508139837502429892177027260673809744293278080194443310585740069764749939995359220178624679232668044561389492458896740610058912301587875190206527659100133898347530335073282916833034233359959392016903290043216819550363854835400529492838192762210901903653907122853316429114306130714884967012231203249114321354459328452322661820490529212046130817302233337360091756781774474059965354182573519586977357108163590665536609151255036848560142454599572789129175482704366475670876476745476036720242925170641457454147715538750125227577088837802995171149127861628673130306978453458164776147867802863321479746711221167674568341902944712522497414516616181489002459020205619421374694239208371470732704596620629374953597451775189568263382060946929049850333693521885012741854830290832259154512670126072253444142300575227146663909800429421449629454506655256952906622815086308799007292570695930613529622434321558127710684486299003132611854295796531332026244305991618802842914075097366646346779548110598466053284761062088335537573120579270525102297068390104473496659682405282429861368960466461954561835392587166453365892641856950864599690884664441043455197698687674409460527787647984411141040503239206679680653845701039611129283836332794485251054052307116714361565942898287430680998983881935295718353729070454185919928348976389874550948891197661704322165938835122555549648389984094861359690265702793603714844785640935999915582140893307023199515657849966428129965670758921589230228101489782300651999659678355612148774258751651011059102420718031702358422281381824635909089047900419270895957926105658344129318099021752047754607417245573404513412573903115557280464063238761501411637450910332560508415080160488984496980509426884530276672510889773957850927256373103432287772104256306670175823213220533989089807407785026096471954480182531640658802993047123253663648507199621864247593640150268794893674721406648568397837916424954775659328962357664940674350954207978032583123449456651375841077384470796215351428035831587144610381518219976669709042187390708044863310574555737838992874029152369612550116236103612262318675204494066964129391183588178008909586179609867183578489053511305463757236038359700028249555243428496616130368226819111241052184352524686382290709659204321782738321461862703164870679760017434553910077433619365296494276991122336840538333214378212280353490829292412514662214130108288619176819954209294673867411725796459894643907206508925024725780025685774326451005407319181339621573265549279823597311603615827598915687106976493436472200760389300291450405766077383088952610149587845896675316191444485879785348106440754397387568002042173751481431856861722882583047145020054652769431870746731425561295846098129541219283565473037201672440562843305918560657930859843164180725733389505689635135828871535835167939837490280727727368408281884403150065022271488734371286543774650057637286669378013122019515647820359750430212724476944472403976987685324549597598346412847448783337230987009360900568200056168929628882527695888764766171216312308355343728564742388717035859273122713092743933846973744794554465516300181075490394531803107394649915362146672430464465256804561371327814033502024299169925107915226776169090240995291261677843089332745910071703389629396918659432633158440971235854125567656503002443892339244867891578001069078232505895787028863643477503267593816417452404821085442846653009421855038999832037685087753869286056237646415789451322818184937383525474617876815558986672525937563120870394584612669189968365472531965390997639793915810815251104415198649827292278292710025261800965191048251398311648395622945111712499101513000172916588893296810106988424277971628246586717496219282487055203272375692003832891144790160963964244713481496749803319452667472997805721876227116523804231870451804964455937002483718677448750652599890189337157451715582921859868585646629121619703184956859297203562467167166392589356081802480202055298788007200926218683946538677503717771853311075871447141712569608777018454356989457802243480763939509349247835557139904001329159656664652284678116652556190619336924477595988878612023318503524402714274308601874540584331217596705545355603117365859942971113348887744412069165420464702094618979676269900455368568449817977928492376041271007943001445163544899398314395426561715009493941786327915608961192101860255218427511304054363826481334102202164128334217946466792097584234192841062763693609751574652414434572673482330800672797909035901458524339801708093695546606629553663227760819554466546580222897859373932028784455498247649767934412510172609577888716658564642607863054620756813889909555312290062888167799975098321999303702475719800548162588531037751887635286851373482559742051307877269039786098328551498961341000587517283078891944800900599199310268928763790163750795778416713731475429409091425302445915013757511849753035000292874233851799165612916922889077876842645146776694030956432638313676824059646689904330807512331808875024139258250220050215099268031956739900433541052214243034140791537845751369048892720265991655188695386284444277468834602235190902875509206381915190720528645514459602556258909894340609573313431339897560049463586235817527967910924203991152399522636860814329039518968529078116271387606998671046445602221455761630669128371508917953675487169766032966634016528680028179159428827941890710122572474670584351517069829542819726685998641679599351683531211762955723777803167037532666452491162241520548523253036526773679246134164122459988711157425981993761611270167931328842456803294348006327734010449506582301434682955031117369015313736117523279910755073555795298706673981278292717835552787218008051143459602901948027041185398197167305069371880522870218624076396058522169071009178390761915069060732408368645210194094200494526935115970054163242004599532226425759780102858658254285007144987154310101014438033692981181021485195340103991988528344589951813435630453689448817363143024853882733991467530125039523085616871544315024943720222252551633106806546404698007558748415230307458094537883623596498396448336108305995284424516697189153321436026064682487900293994378677002083988021043383551052028157252940904681853181570453535357833390464533860277464703123102614207171913053059945639955773697897449200967660489308021542700653347042486001979102840685598955947924321830997860031468226649194715800346246766958031322635751859408760243076707873784314005368799377175389533163551870070423363820997943733928782915935972966279033706024686980768731934151404507890456737697274134178254694131728648271561056557198406291008808182705408596785794565528057367290674695302381646336880405772799309994650661455617826205783896161420132980775949472832444883188933000499899425190667918849200110133567040983087792597139316146679735902966943763296787145202352655905170249709385829703971747084752450370421525599109457238146649278522729368552098752543755733504342405831705425908422022516296514167066950002591226798236625681195488487472160558118787991231929846630415507908488147338925766630190912209592412904929797212651194967588858599478996527270568358782782049404477359109499456466783994008673077377544806841337635273692909811340746353467729759074203510852566316138985810315881032306217208390828923346017787002513253444146157233607409684886906566949031932243016487394400442749713827185102942242682578909310467547370842702236340536434814705780085733577692714917315713250374933564596498685531494809138294659729258944348644056610816600760967564617089494524846054158928440964976218907684962270743708984896181439724391769662090030276669619471786597135826397524991688225387313873959456413880001880620701497738501817621020679422058544612666213062488781095412752725696134717215233718218934396805185432071016181969250936443435580197127248240416788755638818157613884035636385799131435329654124034013704588986637513193191134405164443596891832229639999921553824929759325850888105513842135162975720379171228956241882776327593184451162864610439587126107160804116219151959707017069947835864053740454733841325001818752648987216636947132282756261448717134089769940161029035097413529442243564524829581524263959178859140214046623714427347245092946737757831663837625829072566363955051053576562895370328085283262317414676458487928530832338645583378677943826870438948419664313025399850352184393808866317311475204683575660619807532117609647438667754069532269226885857974350177697009117150218850025515322254515579091084316838774330453871982682252477082217968214984802013502320756534506001571241087040141150877905859461416981117459455993685508158984838285677497138719578302043735346095340475283931547659203993708953091018218070321645743195251803496739478627298678290208556263562959828747524780296541467782699100813028054410899657791536956283641640339030753501314006169180216931459132221701219752420083114720407938160541670090101936542231513518962313947918140243778843141969489085462839594476801166522287527120316493429260017528292868893276076263363082121652348634856296481177380810369129307193551434777642709730578511172598130483290424214013474483277717182935633330818147019847782036270273167103531396794801876245678343846749962492946733314354269356488560340188968094601781160089970230740640421816488581630478117159307040719931349705468984158274399729684242789930602369188889168557022189555659203142380220475350143215538528565000976558009339852788066223885751350868538618693405605201391238861989997396357640508825267601420300284931119936518173697276757610503784534003254386122473654098531082222757426266478963635544113293203152781640215865841539963741014194546880320529152755400374612585303256050317778427071198681877516695847928412409237280583799631778925259330189356946978214916613700310533933909593759148659149318229006447913484219837087377783494350959987260861778916491329766567384909959237635870334126673832598227835968662099711583543611833067909738692086348063721666182453274578477151173981321280519067437710040390552608308542592666205076202866569142968100032629259716366096440272538350747499379398286925060640920540057285873700167784641828533083603520711640788146170209609687307883822293284647772969883875261995375358954837381017705796674993892742370922154996556992139513095317460310059548710825839573412171153240440919396628166030125926429049738308067795187810052483766422168251816485066266193898628268789639991650393917779338582649221995961934617475270513728918961417660819801101936414505896591235064719837709899381393465623402269178890131072420235885553183372339672359047787314431944142609679860886105729267803266759024930864309515563869253834528274878557217927419334656879921800843578059883545942464029376232620119699527235859230335806780729867900449609839644111197185011758591612670537342495843700717504600695358745355771805873103238552038102996830477213495859336262202566509334205741332166617520513020857693948984316210820369645223687590878814325302382281320129869854527978484143397165698429705757030850267659618230538182369475875734147623703483767029838802719144468228073621971937461009540678149978746602787829105752492145215534000537199527952516449123784853828223332129768911304442922523171111412528390723242013179786393069044349956410320311725479795032223483594896092329090191147544598643094883613486233954892389771026521474036528364854761122781671800365663956182670716928862000705297109719153465747263972315642672540935024158201009283987426436791648895291987877135270335241310149637402104777891770458676072190081314473162912451153795535703747654555982492353405624348977675065949332369423443253951438077620002225866962980565342067157769284462549841760633979271278600734336821162676957015559358105986135345779716371253834868936794032161318795174043189818860870065314480777689786232176826135084607347291053475372072807274833536768215104658051213555110501936988072184743737450126838129133515203828753459505764340398544018029645935978808031949849337240592252244334020596055049786647561215023999640077422420199349304103924335002971762085251920909650909437139068996542967327300872082049958457895048469195585389884879730697131058515067778360287279489797610489178592266065505922576304111933333023123996126561700311215685059012962083153361134637736601815465706707116935672521564423365052481035677372800599300974690042100922113466059146127096653983247023650850073622623352249419449675527208790821611858540064133788073773400606868002447575318310691375168793096594787526762568580771305170480978049887236827909382629208385203600360537507130954845645921014887670099195975463632384833320924948951406481412183743143171146206484008135521248473175586130493526740431527434254636675404403432648226501984988627250876981605845055811861892678505125720478611221899790157834957584175269995482372530155927774432574494764530946730853620172181728980767662367540080481906237246608857507877436104029834194425068314358247353762743721410740802329154378630846670723744747509388642379537240889662545304723947416857189543155086772362055203982993291956501582502116934705704175829758298265910456686074906913178441636922776602873785318393170592392576556887020888378682937101065094596954539112100822382858333647455293022448750555530550954542672714409637528968638390882920660736224351623188946930487623029023393671539998250748670572042116264358774612019181434685244482414835238153360777893552329021270989898906131606357440384849205615450324997290716681353970955206221140380161553684975904905112598443841076441653349327275593778697637225249967217168974397303690693270673410826234299022801698660350416633565308749361093142855058253258501216143111334910751885657522777246380290636619127160526215780859250009870059112256464830823993906640329155217248636542474595602029004515914126265821339466908904044355390063902650755186334260029415684050304775246172244714338808650421909712981526121325059217221642348648557861297985692584688656145057138468384690605005687249835606136543177495042456005213647645673428424046742834838600248368152428373202289051492024428393061737235858287901168618623477813788244181821638952122854049269692018150287720616918196681194002145511805111918246131704823634993313969068476286563256754619609253391990962525206894766473340598378962865648267438685812557309266203470124773193837657316565272165077629461927916673530485151006203249997708829667322962272368460700070556601481394596728595356600360142317388038627267866987723869895486141095045461090913788571431907555878461429579542123191359420474920456376812382510454161454929477139675562140088991109321219126437323547315105591380363751063285693270530110681061509821474486289758106267788255648621265497902042630733587353542765633293073580141160456740071014780871827917672402826929762301351446320933728447167290781330450906563222454337468531045656745073763617077017379959957936831698485227372271518256381216742550704317075979489040151748063396778394852643488479488705583089444282960979803583030831770184933669444614608224551607286293642882504918474601192596177544241522719681700233427958569680999275881558046168309169635234476743872038349678625797162425751610282119010399231898009090773227396015984853117653564321794434063582790205711026396376819922770230186916725712471438108627923969850137770012763847341212061798962363296815953309579310126214738208938871588955265565575753575592701165989870843445172974256055015704603950454664245820294447354564184483441756243988424668454273398514846635444843803839371883242169599162142971390336427649743431051104353119272745979758241218372050993082904496859869751162400294027012485100408285623196620419738084126679432332135096860559520035266830767376633469784657082066499278647793510379882248253982367611221792208970718852508567939446138983258997502741603007652845128079062765000538343319028280818300225681599966173990327182168991620903686830573612115108189751839694131675643642216667820631452477270759936272700615759732333123420532774331936921640106958723705728622845535212527202034301577585173608820248007511361705320853318663238875770004454232310778062552770950397144331142542880650563932399170540142469948145574580382328929698401748171502121125591337093070407149591622305594601526953805379367077397381933019443094161859193748643379515613960861019438604528536898444514322276359590895176851565122045375747463883471277454368913923719006737766458367363502441605237463321858457887455414889831538606864927871281159399000451410716532456413009263210252427494872900188855639431109802797003231880788865841849337899268853975214589994305702506567093469574626098254521595215879438813588153304870577710709222410160126476171415911828684786933787509033541062305378996054569633488321059561410683548803919230931983360273269892270524793391019029564191241168307064224157611461756818317457777487562747048762787373993420668598306490645402906465008206496238317594985898518384116663374741368425244662788715087694796404139186681392809839928598837251833681917978679814582341653841653214411772872704128751063193621204439074024003018344144855278554474557180441147552119674255487874589472063525308282971511097647815663239345217421559359814074669649064806461448478084071291207569038612770124950197284978055703007686719051220100286723982926372324521943965070262887026156324060306535752052640577286713132193082583597763862017785346994314176063079971428664626971383366378263235916824567944431323094517522020559621730382082362256414868547725179560012517283231705275533833568254292113347087686221758291145731369748692005957382916003372253807808832318611374686948297345374469193202226436824773190978475682303143770528925558761215932733947165170321386360809298673518761927589852548706799837604708746782525674757855222733691984320365576390502528852180823198866906043791506114598470805376001133408508326707540943810710908778361931593678912922761155422352723181560225629010986493490793249822112839205147291074136570476000636534132236066994937353896684456225987482021237337682439386206773166992048973242771261318977941632006582402427764805013027702486172350299871119315809015639323337641448047137078738949319586723114008530787224924318311890237004856525675624178813016430967456544698236016796943284675557598305413207272675918833551231726797911082550128921547379257584841318977864698918889512700896403178517867368537220640852197091434858908340422783651268519413550034742835377124260313402282288463810770619667560391630499343620759087828047122150508813756228741011067849288854063885731925712394456027545992991005195008343911175523766160379081656443207695250295133449324277099031302962975312327475210678864567389000476321506135498824223131795594620788721370097004839763147974581303466625358388665999701555342681740539196509812757124332326915686552406242980043763945150760085025077079677094792217932544254230839795422824289479424826824206841333696492133061530744782135935399220331188180350683851871027465895272747843274691472507256280827604824512422022862285873664667091314797054868626169066468676251241614938049404662102488184632442365470740877987812531559645080962695634388202636131897769643411334043785148440822805876195819223477961582970607633053148278910189328490283923227759328875170563709297897931702427239971711592921477201565442547441630802077295334870761618002229790073169483492344872156461684009415144081553935241100180556574721081924256983064343714658335740244409124927953483703350419326985560872519905343428716761535224437449364858036146175017038065153534122712834655838262084196814668768509020062164846901072844215448489145524478246010338021235663703804298931555822267092694087436277387240459752020985144647870568653171238598009792499310149460875430681056738747533674397720121150841014070757960263175231704732263087374217968020201247154292877887625054458440995672826090310372248459704464529140365339396201951762515280165081743281577403718554386135075315124393485982355972502997090435973487392113623079858021495444398360938188201499899843915416854908900803111751700434784497391906908446242855043851542920531580231719667315693486153781955266071408920732966566797121848827349247936916298398307731340937120815752167804528474724981134771285353243165415036534969311456941952098605930145722117971866710617643857531751108143914472686484567268548250268615671974395850214781493909773598259905127208970844759762432309517794845662112866622046315473051229167499376143400678765430647746165996445579910190049704750302660938466148663728068327237026693229099079139397345362939682443122262229517808325509798490335948745124976299655821199244498940687764748366877341597043221003053405498382360161588417625655134672461760380609246716029810021278707845334337614423040842477659959074583956622964191032675909579004002357494035094027712927167667573836681709473523208912280838216967450673341882429362792912506044313285743735909355496608942410843849061921656508659022852137753673202376168667144753775452227774961980601028168242087730018100342852998087624313578127383372594731589978815181710424215254711414179983837112316590630339419867423384508777020634692298722227396423608740277184173851635129316910231133907107441637740019002799260528192649542589473068024311514407300503338727416370332690510014020464595991647659120156304471422471128451204010262518835242404303669030247602023969982833575327702868988379418426711242372487915097664140110651533200391266033968360222256267128357237324972414418855562204056971490823439241582257752385720295004236924624938435957361400485168884001961070112497483222999249272096401467889262762049577406134105813528160881935772857647330523242101686544776918401512158505992645649627368089226196652945477789027169167629176696136560934464608650588010804571719090198761787327194998127257606115698900883043687337963584063846662381741445348530134221597595172951807541363289895774659614935168119385251809054238844314585578744805181410443285411410760440895628863139050786393119411513364217547434444428397886316266632018933892714926779380172855396620818843915325206383761004664647662381933722360747172243370197846362272246977281472477611866658481834160675857508158142896637062474061759633156078066167006224374082906690480777803024235290992360638896401537943924520792038284109594774769918862251478395218208102783263085527942322586996061991700800323412378921109729525534168331287348859177645654347243562550680238264776909526846551746872549951244414649933626495497978931832919722886533090631626388096646204529459968895056764861912520565878699622368468490420233351468430911016838865601310396862983745871334407339132540357709732174112904434264223047335427080480176203188187745736203823353563327887333920490396628995187574055898123680299628269935199096273707610140108497327689197175004552394800919164661827205795092735196423212639510595788765632663183475004540488178398247596546551295174213537601049866766010988457948227837050474885192499422693800692832272757681681345197658678443603207499302401353950617094164013781131543923975148512588068996387231624627263869940252375776102614262199437920260230383133168600288406976305726538514508772445907622456098574424488118976283407483446500117320729944939425513612397897464915962622205994320560856475644048108613198312714704924126181375108947668624384628689633923684387769337977639796891584812162225610463628178552145787848136285973897861137255887832212042207456725648334494793120396937705114889952458351816760823233700901004020212226946274961630148406363489945814992517422261520012467658220748367081983323567869181211418262858100904126140299553645476544169634222259144714324023713999928654683723007856362182709922438117145216985701225779234958863821363324537714241542453812644743005947997498381564475821352706619872508570107268415629011782037325143722774330277143170016615570907196126121886417729566432788944921150361215840434184344180798941688513666053439894650615960311610328026922492417107046202982483829550298301843778698682944127797469044248046171358997036483285854666186992742477858023385142091720653444034032136216573582784697120961322273762095860246284685121476225171254469109932672098975298359383591526933687127780257606556072000166072959927125640446890010366465489924721972525119965297292737942464499611241469350648138793968861465937080503316935853952921377918953971430697864762822841067247038096359847007336905197299836555597459647559362237352925013499760387267139376993570051012651901629142167270373407359940597167280623485085806940588175972903599815718075984643610977036648257613104553844073497737791778481685038802685886250959960777474896027460907628875319461035792582503048921546408044448070080978472248664496828811954224758810975970482343902470652499644306893485234339379627407190927945964053241174357864728757278541758027049306543601737568129793800662361758217109488181465214898216141658936490992085490825926509150406660008184699566467389891775560886922749175001498010084182563253508909992910075408533246288065223875575750795002341860470784163546544148761728998447481345762975855595605749819604456251840190527403714652448447246804869464169730749682314631632226827775360267141665262233180022975403095819371865073871828200457616391020083182557212705880697222404756441534625242520368863603657893397861302549453193162101573096169814842262646407889779608779631782345484332121579943608838096805076332994058025839487377454012558497324843072638243869931955506850808347214443804166560884618795617980694608842790535874172786777878217524623809215333201790484065038259645920987668580902442968212618802547875918508249984063439453114715195429183194150513111219205047039781731686792089729862533472490526673116700552596790736132977344525749670426877770951514717454426206120466597957629784402977260182335965086831424264303864306171031407015763084546988394907398921281800369689253300797856579954858593457156598606373666824710282716711927414080694445901740001010025570294147046593967873258581047039036245303890781579612374110928813035146662633009613599438745199762190581653454437758206680556509947204765951166112590745285300133494800724337628427577295751124815810595234109416276821167005202993206077960367780654319376253231408199604220459923511739501626048285699014924964854989351398183197014354668087009320349292069846971911975480911413648391595052468882184586511931875188975832536634454398280827173458974229976645423143412327812844367070358373850069882089764973272438147134542248534622358284099214486904195582515834008135069320471109464677726903159745002726423326813002081413293868079594313414759000297367409251546346838924426367105366630806424121517760055671216128136946645474286461978809232656396111597412253666174468904672185434018709566597833917123698440844141115854803251330656725138990895006906129047018190858527095473155264168251280892356369367459997263478097261846444366469570620626504095260873423702350107097829241408047760833398803621488659082858790269485359353423574676466553675198344640340133857641784850934404999733161870868692722367872607299965843960874241587838491544863162678905720575718039649786645108612221456607832945746829692512322754697127295287292541316932054051598091862943192565881270617866626347897887299916078216879620591307335247295016970612037598984636126681973351076675014794428809566186415650517662201886563710667758808061699135351235476325112039661027801400305686661534378047322410592404397392876229910151281578839085465398367926268128381471575466031291497641068418936003148091898460799711206792643963792879272652778251782693864172216970911422000291108151431773256452250294175832297676488987826211198402456207370611169700098643348827578563297010622941903832915121712100644383949658126183552828718654962759141133682644642704643840024035281936575885451273153512124337836782728054873051228577931522080597361885841439980117712897858252452475219449058814572541541265694194881928170277036597060628459562205185953026582745117086535585256507168791233380530248192765097406149808213021606742370276079943101169664393604299840322275448517711197598543938615410580040514621496344638318669776898434738393607065286333644703753674301388946465653603319046332966719611518023379595873227311893537479774592305023825560084662111992742808761400376279973560852025494407955682681911978959512237702224415154984515646291433758957128377241879768818662462659439827704626033333493129882851546450258326219121327613667802478289560005625672537547740875016194030481055620836874533629315367317179709773620376476014875361298594129774006853459802161135659109851360375459036940069564619231147173308441528613407071072144744060826369710006958507988196755498917959514924380767564933811946687803466072364547237159387076531459374757392518144493777524848163643745538835067608541786922608683253417073628267659862803444256295233539900490181288597699466877556979463016738017269535157410861036243219414467496365072582597580223763406565139087085278002921151056176731443361804118869695655253503683978589885273389022809153733669348432239075079113389605763782463019395985615922252083723408131894945899343750480459237711455229354910101056935686624818155759825111402270942388311395547955114516980861880270478268773353588312918641678509042587034011036818813734687525178408476216206068286466359697693986441077601483896921776354842645319475586727293774027808311496428120996891788298982569198288816754155606012408090239352485006133666101541022419051708122022713916117914002489257770652509477189017573229371865101354908381647662756483164316435208416870070919255029719350764763349751447227504420294730374248403251428871042408379242191891761700680021015863440929835318901656066490609613737069262687087023355582006122524040068948385583131003882713866289563971858008892668574682909472131164099577644546202149013428045238925584747734874686787670579236177043694995076985436373629927812150067351685088942256685580809230669398182658983590560844019627378097281999542379295089609590108284363571917180998616930815732560599377654466918988502294612869157304799615647710842452927385220033444406842974684315540635076032022173252346082482242749270851597656088799694466701638747196853223991913696600986087865736095444882407829269744332521332662196586220672105113976414926459470612756871968396383004265585806291107573109139324573486162284809485894213657514792545391526976557297830671366010617551304892269571856437789342381985701313008233045633643615942168913519654042986066931365645549599861158713211945273598677198494831428460659633440207089412770569890144345536761691647439717375509614091197319004770263281923575371425723020419276201761508148915041847266575907998950802636157825380355379062794470422607637056899344430861434566760413645925769162746769587505290876796057676022776829674206933924396728838023022006793017694209750685989486317316978203981604705162159352350238314708175733035474388745818069441418482943044360318265162396711441080195310006795742696462681426198399033439299096654329078814377095859573192855158079824158612197595573434931740109265834890316840300869378809330872081478459624425992781988515156404502447767963321308361751247560084077569109289708822119052721085118675495287197210631969301023165430073758890463426738443204590659782958548217531720094346943371845122931801754696681399792921053013101335161426624361585594999904773460582903235185401983015092124372211772086484388633083041279195774347895323773179658956378583467072189698266832703704752848238525900101684495862506760518135738119369549850969704198619179230665496878947442548552888012648486615154752922170728674802698603738232837154803420703707490306585794941940574594279557715837938477498080694683607003249264356234648207751813470143358821081244081648279770030233500150600068353432496269967537271234272618584051957926282542179475488960033284878485948938232874896052784380691625617193182933696605349191235577222153811533251238850310338119869743746846355191110316542483273256839986970927051496728569746067637992187520753431929094938491345843970342632503365556132880988496822575010340125784295743385858057881741273883467221238056052692874196100815650223044353596543472241753408405256955950862276923598889797357940224015608662867383406150905605555291556440813026884972912548390798846638645009611799371620742700954987906846256020566010628204597371764386899945192986177011222928227503177386317751528950166050104919124673876064611218611000328624917113505992309037237179134289129682540816000452343369558533603724137153562757399674433375459026984753295024338815466052688811220936528354391204676039721006161111206470787793241185585692637129001285199474427705719352907961379979681549244236582461579281680357333711739490375382140470631135653682892387886876404198194117843860217876635252585963165956932949890506406027584964890195915844318201888005004207427899725955975940536438054523104481069942139214291889186512986198817555826778027432916659537589549443902828119798881851590265354482314358002280903555851796211418750545204375426839905991263477468913724878168497567628798452761345216731242719542165698898983256476038416997796862612203525543338876982632989554885517994213388781688212950201216242701242913060284891139503801014656804642111282443674886472321002760445695205158219923937517906843667270800305273914223773588926537372729228513575542586569140634903306233201449641955001318468880990974842004933632133543980831914794052655814500372338122027000525887481263189856839340511843092211709488327661188034725218326534462701282552279194612662635610305477809307446083300192120510589118074439230364291267596789053553266411498095889404923167162570755541475904930255139703657273218137303591577702249663795040794316911350413896399285283168282878222427074847798917156097393834370366040836884733099036919865988776929378214564958595601544759763896812873299492687243908449773556951685234884168623037115890166602305168713097825520386328664610129456886744979840541323033223438631421061513019521584920332006360947811612002641499110835453949646832825145425727016729983156409763598420913854530138278049818170026235272287518409601008789938665410568474306332820824142827923092518638396858640443071928012670845350412359843598516902686312435495203744137691035023584414835140670652249301208250081155900743404048502432292947355450344689360578237480186937289778358119277998305032135026063324605571845244039943372722001738174211388801335976809559935985827540621209874529203530440159908485108563046009711043275657305760938788102978625569830896750829926262500994983844277116210678470861599715918344240584203033678955637859543915776280921393661501958156552940748399003875567085537587814177855848481704056390446956499815828594874106243158763034787797840651181609723927416751178226641041353948666050710563172786833757470222031310114375741196181252000156492221487001047326370418127279400200725605463002559546226613628765455268043216749359633685674787257169586091574413041417205242051985202799309670666716538304926452789574183485513381461446398637210933638145176363750696294694060377839706968398778849548621056327241112936941316967024969664629750706026172983248276057238059389143725631233913908980328668774445393233335178070003441516324146789072189089394517154900777032663613618477260317990024183098507255786129888609268275757041541912016630089486632332886299015244350879762557202982702809147164070123577791539864258231653984885010726113499957174120835895475958200296715801002613955103736392376854495252293632971697214689502587719025646007838112220685774161928400707290869973598090971982792646976308277353451504031739538975073345079758685862946497091049488461530950441967458576552910516104631193683184110765614694506391870307686216144374989296462516293497955641346911932941872511066583684781903605401996303003266734820734625465327113811687272453584772225730537311022245132966363244656444916441907867036597490956202955570506886056111643171493200331270379583388109611651692518606704367940107187161476679922375040262238369007768373386406194800940228926140830489219109086889768355806822651386780219305494804135244104091128046052829863535904779208181629249167354423767629213401709710426553204139432078454018982117353921988399535069892149505842109366566373198727177190930801940766208788380552888709233863059815875544419731402849360095402719334690457313830892679246811290272778338241419096943774273569224451576850987183123904340987650701697394939318850090212352710826611524124895184409978767549524294942897848054399724795415749310695509294474724960932996190825844101593826780571403794095489703568491262099960107364956242398998408437865320103529397940660287608179640109347030536269835237066843369935565775089210289263562418627203126017389461422234847275094026124257382999139940247008525563426504570219930731199581578845384827577887710261242962179911838406551792819797261844888989778321831056714308215653156205041946726566404279127109596270228613658829467825539913968909627155192821631999827569564739428264739698851487982309853204501369231360182047932024690883352759041257377438490870639541003711920464408740471770572210585177937974171370844595440625117099527876618469761400983481890787038393367222035535140875722486023922898762913455264167542868495285722772700353502323559751649113575136083242911353781097514777700594323217249929588261433924531053611796642899637283101445882412198472457564485221829491491517589799623805749367400112806862116935980784187166641391340173012324205234022961388609013205789250152357901234293503960616959551775138624834737702786651582490163086958198489572905208297124912512110282913471645581618536566932979386168742418124225838414918316453961316792205766609162724181718162049647739901346592906660297557413493182618857986556822094432466053810399017005613997605070214675695306196782057506626900545970629011394483324409346936050318781484381762735992512730473138120221991767543749668324743066380260426423753692934814655237529089045628295140742368448392899825202529908443381189043418061720372052598891825596740577751063563746017690596371542531426289236943525608748038208381084313268656836300546325493754560375691121171197382777358031672594107103858493096726109460856008363296753597707182280172076118794250076790486262986566352357043669823598120246935019625140053951871411600548775930568331486690540084941459882888222582507235898308497605410355126438270501391101130650645554294878582446059582104870789454929926066596793177128225958248276990615064369842323186559421070096909978652046830249262289717467617919645437102992952884713714098715350657068881495442165924061033193101853569711001602939827938800659497515398987558874100039766636819829084485735369850878436794550843075856025842661924302632618962730348117245000051637241584737309710565617785562637982185073328445513411993505338295143462625811460596012897440957655476798708895650577577220915882593427533907943948379351212044645674305556945431168704042829583111103449218647896605450130851123826288658210994358528114542686959435726767454635165090013188736207648227979182783277396440885597453968703960751877057081557595216195042154837829345144620889938661776235699174772791514859864934482949320786757926308128118700660135295612703392431356297671756484547510936191180832057540085086174840975418806473569989393147847181981132283680473886800900300218973397676664411588568093638141163208143817360006565979637213610860940034618782425533500688102512836755658797518756411324265538300961580526564879641194749662156637601407014277532118066839407390289987048001666436068527239230785789491774436813766188010395363626181207164228955652460025509325848980763040113538876645641134015939879736115841338401702655894245499277023655815846460753788170459542891599300471487610746551540474613572234036414086886276148504080203969339091686956140508568371275898577880435838851667689825121450692519829845425310006840063857603154823728678159062872865241106687778004278032799382262590730639188487523373217331116466485658543881034937574106017017856100987174673669746601380295749475614877971549391374305053071009041766051276764588774723480846566654523280821033509042155297871530549136100145545904678008891121200395705284338448855098476219032125575403636343746471693488637459754306970690505205935918912953927563711807777059825234115474848321997553265820398157247002047187985411015523973026887224726846364747196371648486921926969162854235654255017652494414485666898921048753669261974690348368763816498194178827230982382108621246644439894813861599156215871914022299195883685682278400377447708793871063104558552987482677014053376788927543002346178980951482277788532226591623246455922528003276123097462494735033109105240208236791947825264552794685126996875356070181648556880219788681828461794907881354268197431709145909138028192333937860464016100686658675985631474560435490240412761128293211490602528422965626108521592117129013877784613531121677987221630117535023907234014745940654685978192297431020169801863180440616435988541118501245016508626463434779822636659161416592102556235683521735096153121914943178996435355350760233997025818740952840359585501759460109351712468529828717292700981940601411657717259103049004980729261750216431755179705777617475979219428176068020054273687618272859716043260283639675521919889548819742067061855304071425075818172369383382863625225381418747631192806394449615558510509102420516606014090739704812454725465389528918133973622740852064255871689757869835850229851407120290414593966479677565441858509572020145853328350298287336600408039382082610641132339795121387663725369452330358934087680550251610684890867980010983997263675918841711720320484088678308827536728683329128314796288680622341009532035379512386195831125323036117286750995388315869514820047504389022191149687833240326008306126299118785421447639181063874529800527150405697332523299225879391406469190408861483488132682664714073762154641419145756656205371458436087473704857077390099029156821596992318434793691657051491327837386207847091147055896536505269753290686478609159200610925628299194025830225099989430287320218757670968659745472253716316844770369987657314950072898316569764030621042744696718844559702990795300282412451564439029990913426910037428696310137408347973539333639232289247998803058051630447445575830380055575539062976903936050251943896854201159298559437872528929695529810989582550837779943790782718542498508392984489880167074111930588455528743707190250400072842631131355852258924948388492956272689103748293977432887996055495272893533980524905566509839414418539404250809521078118773127998342661134635326122220133611425455859003990932570233267625952855343444416897064782612940311318738297016818523478386717497002043823428783876197587769428993362721281833699451343432863014800549296350478930614747154450154908007017682329371464486049253092987126722688874516976592821443122330110202016798913830422488480857015422448996806183959835080912586502441001623516215501840659696440877810657722832024483907638711433587938986904186191207731121225156697871265618503047486766564790331038703736628511461759367095428637484842366379597994790668592173999914587116696144321383085416439499340428743723750440014148879329489624442176873325649826211935996998684507311130814744586901020641734662873548420676548629683148782534962044117353850781899663793936574674339457195997966196156027194491217210963589296535604551367983331746846973899191258135086886342484918447205112469757984500378032577299793259651679490238304286687206071821774892692258184624306837075936457185591960885185250000959714624815728850348960496199199093610145621682595605065436052597411887008677486430379046124658642978600273044428157733224508467417463870370601099097780335200770084921841189501716498554788753883446584157739425230168355500795148410160980587893391358191629284124929806617473155665863863317538606274539687027155543531337874696363436506627813869529823616840814544008253435783139893340655428320161871266648710970178463469376688795421120530891525795074672419378582635467300505250595850820991671105240099177466394264144052281763212159260371552495692197284928114341276319457016450366390081346223086427599244142655759349476363650718087391653122578859927026741434462242058064420202238750949976201491491490468185739143684806826474619587684672728217522109046133846692640337079367570515352195374367842110371641376111542256179036259603243734947676462331891282005893469975758376951231438369301462796830182917428400543639121272416952526463374327117768120995744116912101683324776212421335288830863307419993078955086055385215250650973833945634762280316700961895340892911193515240612978676429966640460737629627890890263328603547500130757599299716413189924191025569360997406699048482703368751694272322245735646394369759852520581912267198197407163417626711301656090561072077237202975154690848526742086991680688931733703995698336010719692906036354923032086454773957565092758552011188037436298655201138120114223974350189991730408357897899707050797871765685217215025535049146881470456691844435124582572548533344990280966721671640923549010082997401328734697122586437644867487900486703255298382283860610118747061291376537414099136928048416641570987621194886414856299450457392132623747797942389178824294066655815853411593381335814506163083651700643846371116880250513697004911019292172838777723817092925964609153452888398519447524452317281642815459720843194086287572913189335822017349203061886258176866761400097738585387598205438034619647468894130513862923728972410177351458378165338897552735571547738546833668171125648181428947273911067870631620017720003624339037838967323052168614398034027316246982734503759886318682502061828837364145718670758303621273677905426950286715930158723374953026905380387205326506741961006259394422234702368333887670943499285912322195447064720617388873253091320523646649408521999018531170673588278498066165616560023423794001445783797381334590732960959752611258313166778278159520744252731220528972190029961814281395116326292599066986297420302449778325962994007031916965509611740262277072243806734148204780090933205762950934358545061549684078144417265518574817888899231539013983281637410295088748449901541182587713381029353271604543293600348093456275510594491613472379111586050615642130846286044394978619604619539755822982696786440975471143128527611668971656468930969853013699607984464889460757155310956240874637668278110050997877742390944647783346308584873102222445130077902793319812801848058239767257139158968616784432303567102193565978351118316498895554218186661297363534761108580599731413853818793932220931755457095482248004996162487417422301679912460362206272945582360391986761887393802452429961889209405964538499513729761200921022291510260800423775992363308211480791950781812314551170329221286424659756022213494562384341279107038082213200129886340212421230433838551690377473628093636720864304855815864967465000771738466872870329688447973850002815845941701237908383021095836977602207602855177468988392870781032413012539830462271706316387059200263618404764597355383130705524725622837614273789759463602890794359592716644782501688492857207007888209700423877975488135645427372248259979767863593970722535285861888895230923128884224464351046217384652078462097783270381257466599673523308358977445131252196341081689163470376252913984417819672170938885149517317385835035619159230442900673682759612405623658626451588219877869557263185831502029680065223698454581265771512465145115353667638113063038463256525141462030353143113050772490349962208127688201528935652370573561023886979175159248978987430986291616681017358380109156706948947185506871044860856755440798705478720653375238214113086714163704116250951443376586157223918191379587407184825398508076741374543666328186693463701856414756740807786401741218513454506119217856167664318133644242807039060648504954709930296111114317080184022677554520265947898952697180831204624386383532327405134983103996929957029596180844188675204697712199038209398899115777036201392881307686956879751718226247251515361905390839174312099186624981509823109168945930172062218710194616073548203735321634078097513745207961744200037809992763482682951966627892047098845877417388636997966269968946343930614955469560512980364494762789661225712440103887517666095302916847826488766525742540859065602383084653877305352067053078540506376162443100861320758198217965868277665121307063224301428582603630561448910477542664711880779767976317390234531714305885537737826587236759691688382592893896605593929892723675817094501355047303819791278734336936762203879016298292561137298857793391447160787682923433110677397132747036879309985404398005226941110852040835297666569353634157733753172178656101882655225103547886330440270509969316166191886871431419583202853375048237855268555320866443799651534458131451715188798393512312297377385329874951271884076282662468016143040782078824043695664212347778801282697008681054876995376745352780304493970058431386094967864681543373906189832402119806005415930865322143726231129197749913915125915080479255864540509843181717162844379611881512628264933887355689521801021492622588498629658399395607172041544587382406188026602157981093356960378817342930639554033384117853933311419829756109860310718128652296450953931282936384527978327356395957078808583496413989425838747670434068962640133712867096740837488961567914965348578098727937892762042090256890679690003171398379414944210702900057107725661697862336711447874852757385775921388427333344990015779972785670059233305722303450203803896524545321351726573781292629763404428119582706369813513224126534429385734822633868064579813433695518191954351927333879055111424146583719250242771000914432811468889610632517779590535581639810338098432564332338557112424273743110607329345675018662190398600510446861808195241518496916019429439262339114732834705480264904846903660429350952032054726158239126859520906198906774060569485702045966149844441077570322338799020562712857576670444786131462174854322640215628956692747299038939238485346250513033187252303807050000248225275288954578338176067528431874577036615492762794182290543195852908996965730612814123363592197977287216763513311888705794655893304638410043016339366563922876340603584555719814738510440625377931794038501007008258775609581075105448294229321599999944215201340561655123334614417586369313579468978471439195575967084616328867143706906502035718832626560440123012645888806279768332576877172972531892751595304340403388460216489517174753382929039392972384286097156153191599862129918464554596081044219271870758741046517321460708519863035855460750292475755392966392344267347111210878366093558750691947777990934614486887448278991158912666329338728402043203722845843784806966896373855759692850527864413938267108722746681366363501563054488769772194793287749882371567712514801842243560057732350985793580675933813811344137859843738137731351859674638361332658536945374780568685551441747456219884392960370757893311431431593353381445055153860162509364613415663226872904901436006991540048062655000425844147370779284551688029190335979474940086249604598306528481595825800097611244311385290113171316765550480355988252287832809986270462247698744822077312314373517753308597327918283360661542111985443632395526617116377618261407409019999530397895122650714175546595179746218462736796012151021005892259499929863251782598367599750386202972310228600882636263599467617257787524346128783458523729138793844968082595267416935489894873980817366031901460609281803647729353263701243696487219967437983207555795803385170711724885555548458979122179255118720006145083494040990312592763267223325543492233242552269710111969963334842220494030364479708966218184643580073805911371737695407830888202855107098326287219369330134509055934057911748774627578601313404395716590903354199898154048359647945791540627763725719424253798307017252380858012575126955939027294381398978645418582226803112027744042539297366257123418107109099034952836316169847182496625711003747470066131422552404522186406200286083609539908874955369396300415847749265511390750700414279691775892597947963440959630482714894534850832935861176808633854814944653500454407577621329654539640075080183403871720856897951989338499973183830978054517528701602305501137395981007917431530141112408349153035120521885927883549554925630704224676889222229492164090972134977299345690566212816420896384995550633236075285243695556462966415797628729220206809992822935813961540149589376441329804829263008231968303421941572987282315787418359857886434672222132775106034112342325177920059963053660019625258242081009329537143708371519406687369633602853043915482299610805884912667243117129180684791597747325001911165113585666212575452751708773314821517749930973078871110729832174182051407826060836963956230745291396395688577331808748463728140295571362998983332941771337882109456799170433086584527366216848838154187362951007081114109699626283842976413063441125804211311902913220245545514222121671931550013407444591260744783447627239022156443177572158550113305055273288941785786987336690001836475529359753546298035961607882214785526338616777312348139151410136847366378380279759338247742584069926193751509019669829371600215190828237160116773474405910432926930139776889452444802832167521325063300132100024499266916505827125535476615534292793348910165288545100540710496570077808536689783142884853011437508873415843722590011709537700322789078664191925133274555017669244933731273265519248862857349249226964344017467993187649878492292705632510257509890588273749585277925198327478256642431687448612907128228278287736699655161263178062903336399554259637144341475113646747967744840141017117646323617342544452776918081564254649784192659502698269135685966092584175812169734197823893283459537580355577466282070253063173929248517541507876299897754162496690345570464389713965740512545336983768019164449574605230829436793913963486647018284281951163410746514856128822473066451566651898593937758858515607548831090750063374969817381977386423639794731682674925965249990915514731497099862209059225803090187973927175980542263956040426015142518732732698802740312006516652980076773258882640997499390991837203903676633840616670975598633934836579477050638039489844274964967114477237599888254756670934393864204491444250406541281424484750288115201921407529611680941627718946708650923765221059418730685950625268212544930301071043331562838527226836973029343468296397523509783097860328837358431161300549909820130553319880583465922091734504975620300675645767514564116379437275983323838287161287548077126366000194446876755612786760575606017222746613616008311523248437317888795082754842930796136353616238394974931106018010952717754719032010203320253153792683414007184438635197637264557058224885695128247309514562341576260713655668370922326857835773890280994241823703172771791130571521971680692273874331346446170301191168048738389383415611331901884385787092758753992903794909927331205183331382784212651318495635785981775194627218466745962028887593168439820254017062303845327786361004781670002782494218050287988106547490421470110956914602077596589652671192047294850872385621649691814037592780403448914696467405321489495205538549602178987941146741426114978142738297523442318084450490507748412396992811005079338510197749625655506104258073473857830349102580323460725783901594322119586807472285030721808266020828736584801710094326631826920085789227448993136265351098256606542521365032968457112480481113074816963226149987834038931162739536424097349258313756817479536593701319562852449772470344012943658805650375338885947467329218739576638346816282033294957536510046876957366731123512231228162395115026336327689259793004409709241184052707697038657452730088378419675333415424481334714133697238375098849633091003150859992029749319429166522733815925791819503126188858245991248171031177017733400329549362667950532623393764554162264774911816316240753751299811529860292875294364395683881216425827107770191606278652138199414719622723404426958918200494324040088853440573736742518202635365990652942549307282842167726862813975750129178247816474027498364519892016927551347601028637075496081371498865626188150641108595685111658236773681334979572429395989244500971835767719374124319536881689127985602033700887952487418839404344205588761854993937337659934062752547239517346194999930174936198032191449931842992296426948581019913154941145534482785617511983953169029377652795658248099188351601587448346931199207989608764234872922058297137687079638552158399205853950790407768893585947551845389475844567943646299175631482400987641931886990217835104907049911077916792614023405118532007910488246657667345124966052306474227629709115575293554472308935312321878755381419510255859458291904461167112705546713296029507480144070763417186441903594677274036779869004843310473828865360485232589152163083149694155516050998092016519646499342560335460828217088784868865834459976239202813494539121873361624772459869094912021156508913776464083797796599644070992640066774934303850204467565060693373583162331995198243606833755126092339787998985722211160183528281006156525851965585224958517025493934778834636527717692216287301406746375036641778258991805576261446058783584433375301973897488095817974464082741526403458402107306002078360074232643546544518535490970472221713742399423289184254683421059889528908651626392958068620502792363311338330560727634190849291700179521875275977902741209726970132489109890502691048336941467425090644995443809709125124333107167316425281864381077873806707351101430156935829131632970620979898431042746743299158181789896663497552889074621775587299433913138746651813182332687210661689186884099851674963315919760634583206431016823149259651143874148647700012076100130095711519578742617647115969787182524096846613412923824988088079808088864844112040387952309970464963243187050369282468134227242982315511999457619969485088399297757660804774121786610780944122330449774581069671218854828427738738394460610454268335080193426471651079498861414943652927863037596722137716923955083549352276230222150078296888000957387085653767117849242960027627679095984934333914784171032790182556368041226654028733021941184188694108321489910388652393823488863095831658676839205560950850455747050908365984920516746862701914997583390544955594485149313532834245598647395013379026862969402119599090487550600264962625298284197972455514981876626087629345032023897549738206088938761311407955593263050225609316893796969809044744166654371913967746013306651924454226786458057075163453351414625885753723897616617394474315954484425683447991262803443106341293032630415190685692094087643645886564525757403209579969557764632999606818367072991275361556629711108340311574622476838980475688836349940953644049961661613632435439689481570518067293941607937153842833126174475147981608734511427305272653852915235384510154646585588894410441484022241401755956931078315375654372579329067420081019393665425968391654854867883877022193273198945348474458423013821087314878234469274701803985285491236801688095246947903467304157023737439985230098620140664811707131491920695697909774420920497777291495681140951716920375402481840471130555612359586013564186986245611537611153202379919683159859009726385219174081790034531420388277638962547725863769077103385000108947767103913486848161673174486032942419238159164629987683443857331993229831783583264107352983727285789495675680400652698909438225694121769505798984914567286341659274404794808971560205944464054114997706156406864228666803451856632624360665709838413949505443370536946822838505259590211984315960499483488020774111430737511329214241469147594133106778824357493621422838683354854116514292557132229497562426784803249510750331539004061071443137339797324944280586511022902952948796638294777190226840626615726817199503531448082287932457110316862519792046048742626838766409509271172180826870950901727865908005521910926390376336977952817609346184571914439975047113578810013371715757797133669981271729753548878181461016301933927968431313304306070038572826507461093238136647572886029194470511549280053145219134123192517530272419823013785909793033827244003047305756232409338051124180443970814975851142283884346813954697783452204007837738161972395378046997893198531880604503499007146679543085738440747360972572408300260775954357094403404397388849110117344863813937198359422374851490164651835260795614926687388588604536881016205928290295131546230636543418998821578364396345377030764618623307033367955765357967913706936075397693688447924348724647183784361153327131173926802235753892966003111572465975670584956874674593685019030703639766666790420686381497657945824347004257974922403680687878924030906054200413105151029910407292982816536047972717479675194309673622851768642360726084251179424807240040241506854111847351049527032728677401774542122560943385118599806470062782384871876938846998514139573612188555246117074767644091535780565898835963662566358343109990454302464579678111920158775386250530607835563676965623768831191293117639897008180939906735184194167525001696517225941045915698822592628921261306375679950917115417503454764865589068516124863758148519481565476753249326440804200891408233678375770776831391837561525150274372799607349028385695668201116078972026978026712385962582028445688002337277216875815857879956381449129623553651575379800618605279305784353330165851204778952503695507218890679772805586451997123584272288546932999576102898930863631794980427507861767004134824784852838502021128362799887754274951425864882395983892851138746345286586184777282411237134453295946435576679958629137418106933381795230552516739027327787366213624614551922734210909131276010911309149964801885479012490864387962667047695275372658234778916180514857259133819196275577412197438407869649690196545145701087134370085953500827347007056816227803603598761912389056663576920711491778073442650182098547359635012623976219752929983312187142795819581056834075352694277870427538978718466012491385201024042942173664553439056700279133597861314917420034173884806156989607567158334342997148367941712584135785353197851743643603562304743513424353037470669863025807815507896853214190505988647222452368048057199671636923391211141675940152922348828993278717171584729292644166902126302628494460780780010988444670588022099781847682766229488397109270876925410084634900663596023456135123348903023617760828477869606518915457949317376565744785694996610560679509251150503849214775482815423793074597648785971930190724682623833350000867843131283218627102867206003050065403986297329229750165862289322887589455927824212107459572264481920056375814835130315252707707821346002967903475840034252813706858558002031199686879783193407882382988130544975319349183289986040026333886778032899200813783476835249766170150439216766929107450375039232474132967029574631431614175955937894858251544181447618117397805319151646855418438942364905603288354429703899888979847210504094789986228444861489463305025625293393946885386136785384369223768440122994348652277975863299926975109713034696542461974290447908197546383653984826723379617712676679185119368059394358695320132459465122248613148996101245432816992966911576532167992841306146724145357730289467118308427489846639283484621998373550007703230853338973186076893759015178556968478143627929365518676207748414493227958280982459372912828278169395892721043119379753717026208840795145403883243747246523497437573499135835040876160510787575302477036639516875845626217073379183698333900301594545525586388677166804634335005853822082070559400221028060697376804805740961241061416266277299171582171293904101372370539921923501081659766047868953019338390177077766733643401499434792973180180092720216250253610952897874570189279733816991502968415237039275317243932203735220741521323083188799562847934970201628377232324551743254041490344561934111344681705013058441335595372909573898961783876678002880436721609496885920567892314024483967197647827828610303246767248797504125318367414966921761425261708566287810758578914679189196857733193832319775330763236311331030329661152264334719530376054370003550077270859742590026236690582410074459061976961199040389860294342000598876974617282642013345500819149500284886515021354411057999359663697785565866483263084599113569052380134844714466005570148754044940949892249004483329065156858282205607077839604496075032975823813458870609254810032875619827091427928184537416624438986006470459215147961343288606595371739607084055605625511377548515844992068318319909853899009215910117913748292181876180464589346518768070910879418470622223742816884789591079027693729456118541436866987729031779248857618182587024807806234496484992487153422889171360605491279552762224235657873323353052961966437243712718056423380486931510869192681864755608952894193328767451141310869339018306049232515830985737571253510967971113298254032269175534988812159835622420033105993157478527790037737647940597192383393783097382041347315788103727030382975489314243437130001988611143983496753934400291876431618568347550566573043951062131271970990584154310023528018628405098602489108612059862603049422951012857223583055283318297706041442546983712854880350808515914230167180240840457738772184866521172926976929526387687692712339247757759891112998377440127020402220639506759225131785829398876074956041493441747510968203104961337655647859635854729490088175710598241583807153234542456622767961445339846200962134266389287677034606078503438969335574940653692384004223143170445299988301352577426851342106693198899894540651429103723139080608135209682094561869644468840791572481901612846772805111995057041836696477533744825826177920088784640298546363964244825321810392554515913713891564484092651969778946669204866595069106876325368430291413896621154791424418455091985332050514756079815914211907606349275871825739886734726498964296516393097407281143687278918797063283986318936507816102489046144230927044684966125097556867137422702419645194374824863555315242215216146890327827575011246541344728242669581665752041279176459053524636654571074620085493225520021451167836571854502882232494054735439205858845454151476972459345826144022511242304008370768734852827478234996432774370567384935219739172594608473973390067065831135024056088569487538874351719269121113511055823969979863349548668486290203815787483310438394755343975830131072744539475286586772003649580104132846526133083819208740726663817201365643696606401976987922301886701367498445948588937353729676530409804387576697103910634420712737640388884825998470339893991517711373199260412180254678507604390692204562646119612565325800412240096246117798395328489826397680107581412485171977112900686464838758422150906363797973015774127047289214817235278169293900952125394309362976233428347967710313712612526790235382258585432399527248541471761671771455721462483701250400878218018580917375777067526378801264009486295761468574978908378910568006833779447438852253011311233792661951472221068484203433567162541241795413989528072565522804154218622977851536792353017198815633214416955098637307268014006220083898974233555711410957066477790154194088506189578222833710675989752308705821648347992881455052525592676142964780289668758453286835461022235998842539089608078045431724428498090281982358372392651825135514078188462190633003154164804547532415983527794304525514971100282379466637213255312063858393646589534646563895015035338367234088975781671549849951252449992837088402788378491435715475951799778401670030649056074097395657147014598222838324879485100187921349753704718787988767769962038806257641032687922852730528275776623346977367292084949764410245345042708293985382653195524505093286114335700937751480473237677697514886780036210772041020465768853408331054504434779663457616736784490948024677666707493971124620114002415931053721375231117202038636885722737078453998159174447315850160968542332834416023780421177324621129908982220224927141186392535920579139012259035307953815449073073565378564651957170305566932037266139241155436201805791405107067506222167404380629818173899353152557264980428407276828633289283619117179655931965620225547745816580075530892217308781830935041711006862201670336262535473595207396331373105288346637964459047775393520306394406120848993480406146451976905796461659731494630260324481451507842992190318369282492020947132836358306075816204228285312016145713739073054797922230112991596493094378760108899823245035662268573367458607828875161118337031077050647398027026834036666476430268488131121293009011928180688364399837723297906668877337678889702857956456932045543050671478577917023807526928607512485668045937754494087580004313774632600649208298949488484708987193136558317278273506510029733851196293543951710384420166268060637109663043842149760016864654424128250359640753450449005985711034734655050475847135092274029216140711950283836112672156408814955019267161820775420933188373730652776087887969943183858662914214790329599305746060962815874328654130540551123862540839457958563803448058463381521129961132632697789146075959046426489067800342932902221889004619698737460012842660742922207584348274323240410419066141938950085403717219447979445239375393416520058931949258794595115253375998081824961730859974643715242157351604005398738198424434148337881494976218104357134877974661686810770814448696698310324390291815618966696977543602547759496190128941925987044843532912018427664958971743898674979926990384084957032218784898468486683243330114666681578602593574639587642487210633600218041085109256405240240153351684409081787358965702167550508590077661498858077993725554691507052240583401918752501944709791448534838276418035334265236670139852589684495632496358186772708990971340806482615225874017428746075633306684535007775384653792977729689478951330391610368419413728061648730315599044577413938891020849160791494407325339030648819490495628796523157762635448482258202157668780670445990085029473137463871636227882494586539900930925725494828910887095129383764542208154912416591208655486857256529480837986653414600344620672983302539549521569334418973581689821985229492330964713967026576670838761347889334147773772855841967278089704242634885448119127696959048969725174596237905012626738107254150768908133070084775534897470680058802902233316318928455099775270317215490783609202567843594588507103535005774216454028043085709361174494596431166937450323960788868412258216833137646028506839193032446811742617158407642263144624596863352302455634515230543471102141676011576909388768904264865653208999967442621673408104946884586614216125471727071142542753843354062772266991597845806991955500458133167307598917044591734656739712487984589178072005495423393616449366990140872391099942239038169116424446231342811315152021181493747105604821858089407850946461935977966712727499055879330104378559614835793085136716358905230271514985491836228470088639875284116815780455298679813692565324738163790481408330583898021641581194107596395714978161372498274507147058085804125212515810469637969516377031469066099293786640771344842668873124362446963385834548922582222078712332142375315608360036588807989123003203151201286253397417084052662521652571573603422411722923929856973865529675902213239716389944239947209194614017187770925360340927916487609636829714382980333444365256167603245526387344215604693221479973683564043330469668638383272860568034746629547078267844938702568985419822493924379495751083897957590225157260868057089926258392571678722908486964724900435155917846596938584373635852244449092686898512128668933264096328409351918333238206137214370191346874895026076584020317873408449514582229260267888102641245850480656462002069617701992986432805512786852673093407818483683846141290785658387000432229859066580571422545275444121882962444280364616455037711835464685821001156673613252007945142526063436816239734629987218181452086962476563576414332770463144214160463208654325148834024312277526042623582018117470234910159066682246594085225239688300030263030819533101499793541029978103311771356173444623168828152486909092045874900749666011983935863145286488140500563622365740736666600218946132978566892667213677895959481739824482939877581922087346180447585342117382439564301303733583774506089371386682901999112928662486017523693778178212258506767030427643902579149736281328012804088360848851348624866352000875358528127680728859117799357653084280609089398211030647716806160097985938721284959276217818854798167655976837617235530036191594916903971031103668516431583161348212014751442030081210100184743071941645663218814035894506304504303967591487284242282626637662203121116799372068340085756527807801004598994121202994947506264266600189979652285459177835949454450126735336128554066557481757260253291879679870529331655095269929026099752319262992432227905603198544285934850086095858688598298790247328298089430223690812782011900236313033534002901167630693777948399962605710766505043145045750732676447573761742969741680401048523734587837348485983177407098904896472513174672535544011997653733903259613492858096772161234797200970503067932297113694336131358360693838094375278544029188807409582009910421097563183161561058903471022576842995414529217763464561631903848168405069991642521019597175079703521518686399101791150511613485866376425739983875281783972707972210176838640138115737358182299690304622387617869505934534207649609418661457851905991188364644550943621450684600378776442709325557180771505625179655839290440831769737949497914391533864422748357608622389600227702860752919363472726661968611905633977929628465690923879696736129324189648400293525119898968457299322079989617782976783033803508285420035788566090296483442548400437063830302212354454782256109977971788771726919394742948638983580034689492583969050506440793458390243930681477823711560630419267031921458113641838397588520527304101473626984483040062804943121564963066286528642988363647167063008639510339669313283296494644533226517836981066669936640136948251490195928054123211211474802798727826354236947789889708002367288161424717570685636308920221459950597193455686237345282308734657973381500941382395553468139673060418837618390383787857566306870807745081623842362384416221818375150646949601599013108700661436189399777103588729379366922202900398682067509090316619843251244513362866952550505899381288861946979069907694502548674099028934447028930467324569265237506301436640065567448480547933479761981198906130039591978508388854122103093708627573985238115259991682273574853587742943832247870825752415884682097592195374768224975825868112750092380775727080009460224902120364720545549346503571235572499929603862224947980356448363482428070469675774524728561989914988772908134342825351149773529264317311833948368901328336608963677481992202910337141583303586123837528347678582388517004774969109071739617416246502615473192892008879846895978335080768353043118211104285043515239853951348909205370729984022477745551632509186379122273702997794294429874029211705591845908837758141334359772312881908216106589816595850217769063574588951405462873333868225021882262375295094646354030748061643810504481862101558002177502558199855267175157902074053918683423265556501511490840818324951128602161275463545481279271793803624437979466607101133316421794192211605603667166042214458624975159347972720464808686297886812663478834270755006391583740174799689327284692902093268459774806477204789022491993162820104803872283760270179106622615703389101523183557742769081640837615963200466190111469427862602210598118134101519598236531484449454851905345326419182448987486129163393515927845653971463640396050835445950241696067393655101340139248999287267623079068649324716548907364574995438614956719923755184078483179078983096365974202250054810440885369522308095110723431518015887068586012668769658329334387924654743716188440318030099111788983556286793228811697218647953505885215122076675547170796925080551745844759151212213373162901335659043105049023248922020733404567103903686492419837958256018016691437250246483918445173900157713286197259237956338967049069452902837418400524548319325965579826204967329662879858085043183270426988745334519321904517553667908483839681705618339533584010843865020971647847944330380642213387317872433313267205940662143394447616292792154788101497614656685806124196059101554502042872070483392457807386145393095021972147795696499963663026764126487968508580193991991797866124499070926769561069545200454771160199565105327413432876671252409622739192064481974714420988034287835289671097271003995765933844551877852773763598267200735517765399793659802491103921197204066315593407467954667710172744687219237835171801175064233473880324100803774633576629116550127426942476778804924911643944224573167216391396844286353701424434556745355274527566224342727019633375925925146186494131063110470432288720628726317006808257385547848888034777857287018345720112652808871781404470917324443805124041510251336228203491788908287652237472526754479648574251666554878243216020363315849541718145980488313549492365554156255550125753336086441541883253104164713677622505289859584557346319456906368285036975607516691685568729435366906707798896059754324911441050123082300645418161525988365835110107376018524517108380988867198578320143373682533592865849516582551220239574579665618385655831950088180650131545538090722153811156038969348714928367286886117912620943172966228528446219472467189014157289076160884005209223257851385868726867802913684345337605297112017146517959505820346699040640776865013884283613101718669705704934259879446799205013196963810373721895223388946812921328778318026658682220484599146328542596645738429825762772787400790785734728721522196076063684679542915299026769991268445435893770497497719087132659427307303303672340807626588422456468504192720525671815799025301113404663800016786150786030443689521313179079357762268650080089048097893790451827602850207086928885398204988660531358033951486880090886440343275928942812062396843163055399079919233793456306336434739339262634674112859444071372454669595873404579224563786609267676872605175921223798984094038315919096788272705828330588286116979711368042611024154303840198112644400050130335808994662105180854465725006730174083665495673265081030179124623796900800799777293996048095276971752151801452144002387883556819718255533955742892426811507265256734096325129584985325496323106334206576902573998617179977443273359222990464195337854912083988762938502020502052891614880014040085594382643075566327570526132940989521604222872578255518943452919580416710691776181501330445532570376557800409246943927619604373301017961478201652077639908579767811382839998066007144039121024731703094903771110731663893394930378901315342049061853289031397397969410631554528831058176037993734071016210024326803005445092465169633093595616751897265265762848949336528931142377228711014846075977450832184390528947166878132976224940284827431560065695922155938930147941190349619356172170929093951488556182173768365040350523336601109541411752866688325096800127690829694383499563556571543237731218644249368973891607357192428539547309296746266034912688184614038201389616036489104873633597132912296599621897771658760451770391576339042924060546604862653099396674208374188993404223874009856226633423053223086363788703170658849007736811380896240484982371275381403479913372320537795321721249067123522730071954330717004612915313099006559446182853205382314623024244522753965275490166363549860294213943835549092389171525099697299641750201249583413757068153135328708535735218045924339459600088241799579177080328692589978709702342541649225804732370571208076173552440696811916469266824589307254054067918724848241199794844881025667579402185497493427615287853845299859747656346459409675678127381038604330413472683321111056895611898243100663557454677602500852030040314496312114018057555514137412600450428103450130939749818679736238060947222159962118240977993788624648405365764515401722928042643828925463685250526244242865049272587834672605193455191607040378360532940875109456448484246929054173329759179654167652384896908838646383242972925394607396625625484167873653742276357652019478104410078058702094777916001720224141694477023248196029300794580434602163499043795743427430879289410451956434483092031140075623905575668166324826698602527987028665759382963580431023411381211418837445595394801213354852604907079418930059500851167977102084939272612181320920603753066019146183334499308071529376991445239169548253766042993190607704832837533392315091306319437506679634792959623411995324098793291598725855423349077086422142127175935877065401841472344078098552795973920019936778016976990738891776754470310123379484010933590918850775000390202140823279427156249404971702364295007877348328040691818830207331687566534370730414804886921614874049933535531887921081471074820340622267865248643653261261398820484342916845066233100563655193998270856341440302700262590784514829361017246865542817163249306436438963511231145660528158121161260682579166033348782178098995301503621728662827506543793923057958324785526169211345029023424232643323112896868042221983677449315238581216207121853063786383696017333437602616015217820358003423226785372935178025673233169451346650145273350059492790639849418039491956915188903042925501311044065912741924247351957059782715686505277219393085761841431745381736819719802191914670302419668935140161132301803190650400595985692322315892759401697748858285111626248636577722697604342973222929808850716468538053873705601413121095108610645064559431975905138488522353878951868669215861982612387849564187854100134585421379055572939459292949513698807359326076119677314029676265567305649082433165597216483043601447132877615650415847970697758753839112979704833198121365132756991356909046532579506896196896373898833345005382808214672578067084638654094195794805888382537645437572432555978952126085036127475150995525237466201172461253517479159860191412374193971183046809394985789397490468833815241265449532736916412556772924753080492790995554776977750816904910412856163281433705275140570956596633787269954061780371185775290612829698645000807400587299908565242307299765815188990166324627358272570434424171354163203676341503555537205478458051573631711518471865249507329294670050290661594124842570139399666873318225546469835341802238158678359937953283314849304168658344854475509866694039597746899477258219250540767110520857960017268237425291683544004738915818061744026668550893744668044955219221299202228415566257244571599121635910051922000114813864948137487652790697232006760815605228793552555603619780558455709789950183829087959142127086274480469035847855104511252301886517053364703298062031528412651110966374473784950988481946298583478277496562706001006459321524333978188361222362996487900944230609576531955022069959206339878641272689216403606829687852573546259006608667787693648985689452365830339579364762045932089587799613602867699245088621234435626316250472879731396989152575429386369368737407093382347803186027237966727828433751678282933085315886706677605353636979036034623637778041350015612835309226823500253074959867397878487137269651199164974767242718095985700911332314557864179956171239725595794296904695172219911210905557259272861804320537418063914105759721273796895429230789410299673446250535856974193251554904819858825102540162338507963670238377487656054639087078323793641059690240066993609638414683885263749019276556576700585718587238211733519513793448805217992892110320818037477654105078175005114862470134810453360889213203153218028412218250973054265063781516915930618654289548523518955609004031259262942511473167902592864295509787209532366385860515114097041904561865488677583824414772771855109492722955128091305609307018344720143935344133224594936664050686688014362831448626386170927049209236397813990287375078949590494170978586508020335066532103793516481651293424239908195865863544882874312762511776900925192131834414600455467553963573495458344446876529570164245782007068551956765783077730762263969175506718914995763454422890454918157577953842603377611633078556460866406921064829413210763890230625819099613060155960958330718122905173222030630223997103450769272422652189275475028929815889530544751701425453661713436271919425488610140675280621914430811893131793560331642510236260798410355847107873710277965962421524843036137823606448421008166931115567486810097601555961379144641826170963720971686718567288072712517586791548281920980206632652541732726165477637541513350135462899998342479196684052641973832596354683884364503099453008390111134587523095263405925589687719696960697455103316743214141269624863004800541428178238204953834613798794504188895588021175213220605491067685022862643420307139283919935905889676877565740189552073105049265824832128716492359351466638443390448362489106091678450023368988478267787672118817659835024211296566910001457704159149875980276769344552997398732255659180088853175837629147542147311295624102989434341459174078084485169170899457317327452446600296276832298646648827360474383087163471605049839250586613316186522541310598423536910108506498394892821004797870648761616938305502730307576933780129381516031521409238878733703935108686513553441071469640137077943245688886427445282168881329484068836401035034445807670595517630847135606142083935023523257231221388013849556885216656170305640291623147270137318635799903145261852741697962635214116173442336939675567492226796052473766366299068119947470009782521743842864478208085050058835636090095147577179984302914756736570482451932251613215145083198953922626808263766436309141839936469510631205134295007584627970349962230066197234706947172665765971241361805122080102594831857863514712458237913756362270389731368514491148852028462913642589656434575977500912545613366324741343553605120134180935017223241907398463288242642413850052166782297723996899677387269294210316305479543408717406971358755994268769652289463976168457597906917726647425853725785927314537321330274338984797643956865577791320513045726348330460980971115194043003583861500449895053062741829153876495389168536674561451976209193919781727998011395680291587096680838612310265792623442010317925274604989909328495226921755462726193606554998456135864172262881187575800169338355458144973389336608041536241081042520133685786063633053301387967705831041151766440165282347901569182002380826290203734603717007425923444030378157851786047715944035022630560294941001137816396788946049476989180140500669083081277757145390573767002411929056657831826232854253847764677658206015369282066786429991360203502234369719271554586676564765796557244031790045394010696255979194264942683088513169970112360779643557475624178819081228375670659370703324973598487169292360145907248399962121278401103118839898001067791141392725152847871012488129157850859312351811771078257310800898116302650071910725753248143727725222295689234868605458490966115050162232641973436381951487905680955738068503088967495987469198913274939270666710138170434921283964449881251828346302524610460069070547850040532843631829756920508596597957104919532024349909545808893804720564256425438052486018464355235425895627276085545570229421314831293827945603414805901162409132671199437324541171002564636403906690466609929583479871620841025849195067477518611632224924883221852339794883097149343809644061897718953142782427613403009315279433731701084956760529527812009258632633210577680240216674714497308902424012876328579592878198343979751311540240210880135198266019524109852473131013035349200333573019987542813382659844407412994842743777638933786326985966990992122230097562382804164898806727125249765897743942677594005058514144602711418393193469318677592651862501884347556490057244509332587553733505984332690407867035020387787849227735721426110806174764429682735574348102565695566956948748985209486500995800233214617358764930999603807010556929911753868097058557242794051103680037060257762445756698645036575666335576346418529042492590145586437249262679551660695499436563572684899520322341686003467540560287917589338456589170653399957342837144344799389119403751594386569423799229579060697151505147054292749674872135875783834057384415093377593429162061145248458472764972492325515425795014827897235121051841129610994754068545797603744135411393840577718732505158073718860828854463795984561407093393273997029651771419295916136136462421541874654343827886383876648636458933540739517250069669922677973529088868295449076613194818503951446872995302488496685417567023116882732362638459947504109734497045816499338355920988470299003359676799757206123817339431222050525973623206639290171945974957714161499919070714763136331833198027889226844930312399018889293619300533416814483246829220147484079351443220555060404529368160844040237622788788603183969913185533943738536755022390278351603534822667746464767998829471042257360231563963326581210782469197239915421841448021447335710691227444875236997414145108436923335134495731997397274034698744870533608990666908414198284802694922589163423286309283801457006877697353765234331865099577241473243765063467717845772499020136060072422123800674030936321800591661424896003584997320377572426148866980595768014502201849096903097085125705969865086500173902107374502721692855597923057948219236118184945909194107380641174664850741093527896333114658502222599571233665486929884095290518416036289934404236564894383890938108229496638131661643943758598007596472054263241307878191835954010755070261831988683835963980952385062160034692444854025603457493653134585825951245662527175403129786157532261596586710697768803029992413557299198585643458106565642979192979405522602449095504025112351465955836068318709552038973613137784124275205936622221826434593989697702103657303793121347496627444200185716846201739112381025898832743916747473739872048852707630383701920093454994847806995025527313190936443039591961132949419707414440637453374371995310129425221998874098842279702047718627370442642402656648984529965327769289047627086497389655777356676431519196696247450618998819170164055856239324754268309897624092964138249119001264351608255779521427407641552470605322970997770393787159274591312454049545570340990783101906350401425445405426054572081845844781859492941855821849388009551734572665184770098142633040149992381754858230827161356056330941896626825809711948309740364361955239878840317640759325532705693031140945456070904612763647736633522487771605070222971071051120305359215695111029181748680797097280118431321541972309612369377008374852485285391723635593730177404750270427158336287036837552916780342100854425189112983925789376615813753763541573392533889710462273616603519383894272117656906060419989590833515285462865346097346615708738484484160964071453264975357755797480738687919960814048723698485543790406015895048099487623780263908433800736760130242037378465863382568543549910373978122252231194235115737091626170661200502218559433157892274528624502742717855556352958325096216841570516527647098847813324526542191026368534826793689517071118462012657991382047826318762218565904600615147404061610512804988701169128911462716163573111152111156294634551164704147609415856837321043869378517953736178098387620063642104664064743816621877308416101649085239364199750498207155639780675409461497045034727971348796405303994856257241462541224967580509083931324514476438425963485866949389707634072901354545425365591332461035423508039712831201969958026782815227769591825931545734875534186475907462931665828239207659949951317242524194615205578098793366026276807004928041674279509254280803239175360282806776404175514213367846181281489664561755960104086305982780022755784262269321520081325043585032486364179489606841905812177914610263354549232344386251599441319310637781500812488780796590613705975672708304865785791205001033889125768714049212723039198518756009634538657200185479507038184770921551693103875931556989799992221603479136833448267238512292190090890272084084056747784333576120794743764660105197732712480505369216993445648525830945536830042402257673479783629192012946669957209177747973733407992384922304446428256047682000008423203460495732446275262077819443579405450355529766824787073196268699994007610370742112066102805293832069468638732666786406756552867965765149832003124062038306286555531338285218909054252490226605564314454986361646360421273277073283365313331678047330258021229512931303937536719736295793945861502051664715401983929595037102740641659468267956110402542859371862694820352706604216903629399904165107851988280044057788864513999634144296420167050189594990177337003799987252974762020117701177760426012953709714733041151889784799075451241721478307949938206449559955340050082056561900589635178783564397174168250498571378325654449350035138199450499209021871841955712562489520620273089863692675309649861224611503374000576276574116787727494470017397489902899792510533483449777698436659775072592928175870150755990366837583215409121230142792812265678904854398727903186802719931821681111815289513589739686273067439242822049082903808369160098027765823671443041596774528264659322882968934510754601978255015937867922753064329662067138135712531041346938481441288210032554166711824348170855469499849019496534135149820713224227609796242829290044720712783243052714270329635243280374357508079244499883288308881976150035904948457075421021454586423899692002720805614065111216345460481264749701362575401618704143604756293409767673961009715560494428350778574890338988946083678501528533200684099482614823762993208208705837788320538702638303437141924348572856001591778537357752575500686758669337511365590940821354789899385225385657443164413388906728051574959730354382161655173212849120886006287547623415544177923606281746156816101459658443606104125314984762224637350050082138626511976452827103674245076931543552500496922953061510814054406016950378942253970507642410824910090967965480482858448739782999380442363354329222237468823499763588814204739131509562322075551207323841742896463282610376785863230369838469182146700909197211126604672872432090584664435996494223065516775246687632531374489414177256655549055638218598415076330763651028704388388079334726060654193523759643195016553677837380104956732313536254690986458643913414223813431025624488207020121459132659675162628745857139884559413165527910755012817533218058933292690522045868231652277292686576260251529121253797575082600728162145878947054423553891129334909795574826051192339537385257648110024937260929298839742346835018368039007508657662372337704377895854167210151060127930548177539832203400117082965473902965308717593342094442575243568699890179857973755059752568086782970309712641188701060204466921182640912568530779870958857869193839272268570112722570628030998014846300354694168326333248628537261925336901222302842021356596084253415818181214103681125899517606257421532443161275363238401228741871196082285921313424495799796922018916760969593470913380226569586346747689039859667889541529111551140049192238203531119944621394838914117045682784583718290224806737610483715384318341526299819998950023687943371174735425539004844996831818942294414557609331526129177510066836165648498870367614132022767977913429512092178114891108801115504124171391150964333936293725330595298680621314960779318353851171157670970541505326498115055425781342781248426154200345001450075948968795377572786054452355449809147294783921963603587113732739000757087749116294404885073771427780146408150559402512760021349855859912254466931695817836948869734608332311248764359719838452667606283148051482678561558338294052349390928602687897110424293694254270225505074967791300433192935367132279692187381344095699976119223836210284362193005554116979645089792393504241194843307952294683534287993737494489590154996865656132782043243164979757718738649740528889641097792097154022962689191293425597948313181590852005631331875729412672128162111455512287123399829529005652637643657481593194650320341191578131861659317155375331200482545159830192871708032331475645418211360654061891957374186161171088125255456305801619182513832514067339922976229332482348542237697275754150419821074760957945661963508850246231679590822875136285345130679690949643436811934355150444846233231696589178299782766801854342096673644390274336039384760080364193438764389232764488899962843503251406135313626307830195007225504340557647174740533085845047516617464392247406991244282684082972178182880417899083059853167446341688358924330302352094184701484910575212685866282542466115927125319672275046769266279698952471343701285725575229038519105203983631914606962257571141248678781062004593716727791457453120387963797440120621104639107945431665287328811863245383796760139366230109117305872236119935882677695754725984274865896020425189264927395966390826815507078149368786804917008397169667644790730071542299669387117939329764380813290559900453435517502950889026971351686789532872306824451528375731063738475673033724311835953648379727183728228024400137645535939397802747600003870400971264149476996182944266876333488879656313543394587505016604579823489026062094311085808291998180341485652352893503392453388111997935787393555763946869076392803907839229711603469301165585818131818559041357860985831462080107947734819020304499894458989921739205733987729882432956513188574903212402181229955962091311098200162026071727289018162724452765838183879952711926051239543793136427408810871396686344340784122322267874316366588804968894958438842588750501891390684366406678156856103115224985910879486727889074122750478787305548879886575797079491350811094621014523540149071494740881858543879828607143258353172631852196632076057340570542952149846610090408749649112819467012649913822199899792615420067048512395232388281378043996862992814839243551946302316965596625679271866866027713420946731368066089893786843547078960821483922179482623437086968246350386213358811891666051601061754814718642337672224044667385706254556556121935710615649590958821141402180865491971712190685520445761625925661246468803493873672068812002821723359078619262327423113610687857660085084929464006475221747881981526280380001454468574883599105839597014184568015230983091351074795695684907001113820659335268958163343628270349978958577054333511458182760767922703741459353446770824669890881251297118125290734649612795600071328602923584158232498550012663377726623190945059096110433801760707046323328983881473664253348723764124948287675415187440791674388839655698564393297517373515192923425297165253580433390250159248981673193245364823071892270120237584564964403242335558391176828475548113974368753404510306768048705988406256224302244709883666808499257963490957674050998159115933225756722794804020154408085712517890499262577066689340848932443229531668481365417217473004434132131128338935437240528237907465886802768241323781660287668765651466457341153224355568338331434084895534376175513602232541589081590167597897588508841544593995630087270663143220075244574949205937866211608442738707088971892083841779585054914929815885505700687109722283120031577332089761816363648868119746506292949762196103944703752180516915854552849298541263621177791598573243066466290768105828547021390394512224739087852084900083147431430001098960704209995206015063386424651672768228823696999700863373970942945369649085505178967487987556292859535383246693554902820062026170572775043450747659851004160659561601302010235764013377306156826895608987847129427271229415793723717746297972355061916450015444238344337366255854913463330305685573485201936125511075039680036580840725110824119720117726166329245692787675918500564736863413138622363827972616708872139996320459922646189596998088503293787009886528088518939801019900208889001987064281568903635793392673056871540710682916840090802592700654674930603665761851538403283065746615191325061332533569662441609991698578131400481962520033761174604112870410205132934512482809836899457887222863044906956762214923866268549502429158709970247936822236134941038199841529766885220958594976680081581618510815176848234793456927085739128561241215089114837404910168500776395141964983094628796327122056385492999272551705836370243499773318737764961178732882506217766775542356638094623529558497724789000488883725583523958155011624385225170940020622173350834528573965507277532801736013605096612402248051051848840238649911934146669877691298029432098618259093220256589899938609530852593788885154586347090325260140192449232935282101797824461623979618083383077274037895485898248677081095995936747931543270185476398688896337081440329691920422612089399820673857876067278313069122630505178066540165428434707742652441322663418425841172191753800048637336562453062105554037808538130961896434734038198718734072646091287582163320745465590839577097805906183845285107164354433279430881308978128147630186891770473997157148468004736388921845368125724549082913114485109496307760986261065157393958078412451683479083742413382294726175142348364796860221387165130547069062267299806338368449790031164705689593808450767729328451208934464906295596742164598290592981539009261896038672655149443723208136573551154927705410833746073176958679886698821171543565699040344780230399238794073266935135406038724179795364732257344221612508846451870996082881006988062438353178387486399971643454370012168151551217974004295331054625298064493293201653788186804467099386129247157513481511955983720642639226808347111772808217270754611515396567831266367788961666759236627598608041357586581660871475980349741836079713550124402810191924232885888542704167458941219644887214548607202865673904739706248558492650131168236612920803497837626749643042217405913790882998316359383127998755612105634249685354966636586919323388112793930420606455711500847164295806477654318965850574427582580621673230244809904054874909434703403789486449500373943230214691794613125932880401540209040229291283530530267290364462141619208190462369906645833709289072242754663656786954557172135705917264530963613813490098514401914665481237553090995752950854367727580283620147071973261485437355617800938461399557513542715387636799883503624050348745451818417389204247393453958923455804085448049650461493149133559793447652703289828409803105953024327366031147628995833223287327890748430656752942455199356137494776231312402363000881846006487751289623506597187529375369264718264539701642656571508245873546196794194171415410262281532812634053481119653478109580517057362645332909613002511667566360975382182140155620083964771692317532374018468003790250879196566693662298690669128841443609374262015614986521757836985792865237455134754765140533356182526670755929721288633726717403334977062886238172115021530244139823109426818108190150337919857610666189679656957539088775465195941298244297643426290600442382200440337829808386618757754985088993381604060966238414606672229478440728779613386578386228437701332416770294412381743308005434914843981196148465082006782448623776902643912290678397572777904498592373310607378033725533069194103075427069023174415257097124947978552987930579336898879859624613990580426874816435561781501331096626112179040877388880779258790891411093753664967540008299925458232756596533078668376051143446289006189415558141426842112895322535831948564273528136193853288720775533111038088510489767581103057931892759191056354338927714511024722216320296042559428020201012890865246407134899943552939078325490990140995617629394232969545637518699372153048334700851231431409754356698554776355242360999390180156861560966164721654474332688502396138181491158868982763745236564008525094559992729154093515588026368014892700012944976457579060866196198109252501754495824986647471070430056451672667314500447424314126804866480261120823042136026495878547402633777383926834725368185760350033314045912980259169729644101187634606131505935438849590514166794629351456601489813449299400459152002913566087945798097921434681184404554361193980918619721613597143768643639202448437387315805230961624172072042527553852973796072068375491209480257832256503020999982401866114258502482204049936169974348364683044093044899039323677873486922806460713570107785732861361284438545591981137044774810266105131562871510947600025782148875824608196974065803625046870611422383599259291601603772575683543693069736751668543794188923893360844915472268886425188461504348407754389252945430104467278775581981717918100391111681989554288042949473945007512203927559011038463723648235765646008709653952583827970555498548624101949152955269164344710081554087034135848734877324951403642120315582810890382276742111059627881396679345329634725679240666132461072125536406547712485871937790466020865844754333282050747653002796778719707703950040147435343576674696447168448087508452404627123843935735933913103751473052400178590543078337100301931584812194136945645394971733995732004278743963906863509972633579643216795639469065733500985693192197846518099119020178855529564680083327115282148332316990475092143754175462502791758135468415164535536259436344874283045791744749165587271698602204885214870165844028925460999950322722954299141387435571897551701373899304621729458181048795329008533014630496912316777860417881122199271350030352730943221065718411318878953405936944282216664962487096909650926924300947898692770068151658596489025900559553095419317466155538555640184542791685065078063128232130742224385378053873603270490182311697653784287167658342771725786277894248078073637920927904548053836927928924988096774204939115268228635517790732464408449670926948001390613880997928529514275738924913947945373860234867806234721361795546654833944416035463928824293322138335547845197588401599040467103391013407853775298924747501611443947035534197042946302520357019297375822422740823005436197494013624224890847398123350549525265867133152562121027286103108959262164582535629362366414682711223608359924766636161172572576025106303744577577160889574238532264419248267585637326864257253442460062299799001477637657756465806846354174918310746289975582529308554073751249756530680750649215562977312304230052732578826295475950876879802990760436116661906709644876851196824084846381080748668197405250512254918441299574302335169871690917206488866667721123127895893184850845108685393336546934761744355163502944998083951015317189732568058573372603314841564426172481287749900261736399725511709920712546455393681541806602876199210931248385907587887734089597044809812827100455388052367500701504078954183928658401669793565658432805027765220371357702240581680957109402340234587135661585082140204088835554701490821543042145466625845120916953259319477572276930322869203643906771217901716555619339864091008821462846534271784873743055645296248863605156665296776397584142566748571161904488501712904510234829928160356377871479822336204331873333356806371872350878594508345979244666666562980895302203580117282352364998989284233249903528127907825588722835581541156843963058923154005518846733962833923398927933890750880530130967928234320762065100781472562409622572922027991297245453197279828136608361580550856980037589165833796287393338114850963012828917539273656973971135515796960260276185508992594870402369298859785015204275912738600598748943614831629936297530303553875050497222990048487387098961127195468261376459293145098303146977136272399493632012459789873159119417206205236917272169534572792480866653256038947982134713684977869982842864494192536382530441213122329519804253063858631422632543180915560898368675879660060245341874461897206816031548363853211464265278005270516965004889307553363496403146080103396100767751675707163701914909294494509885975120815101434351622277797578308964444660643868146678913634222344969223452333353628082671052011411510065821529177524592514414518647050620264898127948984574001049954863375672710094000480290063093290758564754481932034849008228974003228930536624260958331447101134302997751065750952047921243569848184224573817861820062762127766709350047225329566563218556765942849020524950191624652222902161313708003285451330806991866989552419292028173137846021842183287270387515582067354024574003143408822686164330712377571265512912456607729989758743988068344743443174208769796596287722894172390183693570160311716339665956810699519751933577071990667469890278379381428467500298642219381511409824377180216552846101990537011463831679800322934786408242169480541476000833018461053547852265529140339549387342206059771079351983287500328561960005627497089151852976993516408540673047694626969153408717926032053945535569462309075382030071387814171864797631225023041724718943014172374118808949059989077366774972953770721458057626436094357165641743539527932124202591117181138048512984528524522715936609931237716830196781511798820981823089926837172431620357116863319857475609003712565549287860413101191896266546610003823423077620165589256995320529437301594668388589096510096481965206626461908268982075702561821769484983777959219468815241857660955794140438556001907633833565472625073533663093777698554617329649378761489714514746113697085195031550959802084676506640603226968062987739488326625796040575739930986637582249817768559949604572521924861849390098437690110042122015791687839111118381480087104488163981919175571646151781225532964449345269081321056673488950432212817941351440607073128871404988988929885228109694530283387042282186698205601622968263195906141303402409501082162788488812406487753790181054941517424831550087259839570340093896787695244950394237359237221297596947230986963574180969670093989530594943376052267040644846648032209997375246173123372141282875436980658747641174473245791625523737847647209965239735899107974615895925578772060877177671297794833668294486256812564746995060728096135100338354688342373724510022745058690336124357641954076856024659205510234164506298098179418810009344763186030778661678137445584410089128678153800412698113164858321605700572121489460154576269951579275021536405157298875226052348478926547719599586530702610146173782592300918009039627453104880980397941750708241639154605200295268831265427891563954382230287831383360502455995107763041318045484757543848776952712996339689432503839002352863897033870122222677959280239048313846784320937726138076696299817342824280191942860419473280235134441405358689985304989705469766187748547507383917698198843705452756430023111938093773955651767298827717877500246733369418832927080098260183071558203078952425967384053868732861173764933487380520947136083562179093657152958784262937336447537680677219138580391050573484074852488043028681239446117483403426496877475412412674422829214198618336521762605842239731130565325409077520284872519957071542239468116276760288150435031821582823678130338665671482615374446102823233387498039357899253911206965165816867712943980338117532735064889928776598718892935383572590651748155742755530449856502575778495731091149457265843295162170276064219075481767315925413379425067579204823962832117812282544261963418956765914619113707149771116523583227149559652375261137424987351111214288143313191246411183383745328069765611051209237749133559700760392128449406678748461047995837447918382217553152538877569024493999702100669094894935260637420880371484668971503974584882010118488316208114157929667683641775694743023128550083798091930659734688295174393800488876703647906151114337239130939780017421610622977741549824096190650400768813027936646574821400552221761883320435858779386507973642205826901619202385672920209885802552461165924449829683027054628068765722630805048705617360657297516325643702293634060079105595923186749617250521855169170183719648992130594644624229569050959666975387838976217764608718126677930678956831659969228032154066146788888087661482309412796240047265368079925550152624395016682841045888279423876142871899923108805319957462969668414678037528957331552445492234635028003704294860719136226581871021030189351476408053552624868221557150614521899673824046843553617900881399359355916377059385581131102846246412296376812577338241207918382321448522753187899844257851293084325207939079063778111296121072341379703609592741494007757585971894052539401869972418892290044515782446435986457376970965360197433501154708168024631616524647847045182540473872063699518514153374323973082552754100689936908739934676269707634237553453071437925693565792921583162004879969892450386508692481385255474605675581523745485175719534953903684972783745186071425748237118391913164987754892827182914926843545135264544408745871332323647901912464063405040975631620106125855517393407928545485457152066587566938302215978898410157982667882591320093314056630058381947863693792875364509684322839886054220925143716367174604050675823682240759115393252436150829967962850689460745780340624130243933598658254976453341034571104446412164863738883512506388546325983964889507327529814155468436201728618967174346833057958286793095613456004282938237219092694470913203535747258868159289288669348509474972443492876534275164086563532657785427412226943666358198605862839056544017750982878138461596434563084200873924889546584769229053999626429895728092499067276239869936723855098877381701112686057235720070289695581853831199729307637678731038849469162238735705749588985438296176355225017097143567586818595304761527433735016775700294082281677251385336259388093220969754089071539240428110163666868277313746394242378002181666616700399932844894029349029504019736385911272281672634002112679819837171160964570064824109933534775537991698781239570670543464888720363374481671226771649418495787165209231564194008923566143169943193659064036266477211061742626667563087538941074097329625013582891678930742284677411799998007731176329414914015118921216369975203314812999300191547794158808912682612650399068979593899779829306141021829342821170452000938379811935527448634132963259353896637189594205642353473139681778279474013373564912168166481672674330316061818600210748211409725064302158278031466307478864574107549856008271582272756580034586386996864374642865397218689252063828808068914146313215838366504381691214133809103135655287422125718645041903598151925488486097489266084309622899142373435097099091533237490054859447251079533378482542881224132842709746895830115453976506364894768260961484370281188213084680095856774280505476083927573271095516268026332728881786563080392798814257948439673367445061249692094784638275769061970176311731569858412861524312312931782143392151893655309764990921003774707823262194188372645387447454988426255587467759589893937836184060057529908186487106226372549345239775774232712020986136626163965654036767379646684822155005033202324831380239958715432662039413183666968801944009621724864767213278919732311667137294968571636286105202181736995359758125616859184640096499386470691911917577925190335683864046927035070598289760337316473250272947153585154597035485493591349275360952288039832155653238969693951081298957170174285379173891862259495226577797011306923189008559740569323667489873474868354674791317975267693277500411333043977082243314826425558309090604548607621755641980737078779549365904354289306842709070011550116922293424433223384064697827246840606375924932066353796426382777856668327645575298127711995929473628448637934708933177537157569480535105659691770333056518335884421396714352402131998787792265732147857169880383662582905943163504540203533084113431189616004293029906668679501148540621045885168629940439090690338502736428621748743163968982179387938519429759185998731945341693090853684583427456303725978050734726355810040095982427947107843905271005861808844942357308387119119419075968620924692919920185474006670604141349390530017859818137659057820042623326443759381548648279755316886620991058173217143644162817500837703645202997774641745159872738863643518667120205558365195481506049538753271941072327443998686109485719631774584767286885127672840896516404572164138489708279354475296965548571043456774889588262275859216341639895804394997332883391107768133775095882987029837780500007828765855274429825247172879994341983258452900278733837430795295689218970382652043917254193592974391745989791324566433757164574665687808732511665818488388741696654690922805996627362306940298373758365584658722854808830683569739680242451215810809507816737594096889898343406152250398622876792504628102041002931278184236440123031002513549281565083475072276341920112874126468398526055786119492871679842307597104257929224801600555380613205372342699377998552170534231894320454257328553553472991084086839711802895653737490276523915460935193417047190467074081837110165002966405773908610885653518087939720606340886995846500291384797594821538181132672832113009535774799296930068718466966133318886781056195670326725482867967318117460663979099851853771037917014656175454451422308727282255044774097043743991507954747168057813120842466908925693851640193325936141424250776722938303185421145984601704283344067222786334008233410257190312421111328502063406608645744761079868379337308626194394464909851053358489299143331607402404076323490133847166138257392319535955918347124901813540295332392529649728753937582290496909617923080946652298579240509394537924846983608146611573412051602631681317782473460182929764291920009385599302254515861431529470131294294672715989173606620910542714605801925394183855754987365809520117754584137965852546777574989805963844699148548184998143472248977264173813031483193550121588470853277708426905325695780716504593036455656051571066494508493528356361703952489255574440850872704631728253339170577925525999135968310525881623547761201174396609390301092914729001500383757463032053564847751314180752503141111862211675336388051434310790762117831439237011572122641373482850305724014846619658024482309465929119090410982054121446862887218762258902628373939489813667182727307698226309371450046843661605442984139172552874698502082187121111782100804074203836637009040796727506815708528130426160769856123146653801963498233653603865381044737751440511755253121686768680410680667899805128380206791551157731624631423302881134674141474084334086366875435968466209228474579339186119945847950275234693679086615908105393965051202002458405126339061021031614083730393310917485428869229896864283816438669596712930104738169452843350349164109667697029610772524288546589253076744001686795846050715382070431292284150705301243858526382758602128789467412147706364925155813297188481335075415999332648240840499268951556754806723480692255850257638533012855606530064987032986178651173737908181649718967087624269019231293475192665638693637726603356326538189662525314168744269485084277858276374789033270984281479846524444885513214422799327461333195746548898314722114739167914855036658373560280720809143332196465708633904769296101497753294314224322467248867522191726287930022349509129712282481857303206347879213804216124574512142815518416149155690376739762700653836103674779571332489079659916490898224431815754441512882436348511451119393289681532901511028371443579114882227541324920751497289970465044203378003812695860672864441187365529856587526691913087272182323506133649727270613934860224185491092122996239377401615218345435066837444877203876456349331486664878531622756532031736660186623735930416213965714255909234001693735398828239393989294214513057681475141639012198653511419941423140309528833660358596352881427300499685933652315850872944135873270711360618990347355265403431652774996813367212154927876675828368421989327849681222665513210789986522867364082289138794542638900999755302172713831965309275557713892394852232788772524777008851485578002480377025120427220880761807776788485667287497921290324250458839870535885700509930785024153006763011619238211606094571768033515564288797072260507282744237478750138394774704368978095010465592195071449331094737172523934202871389000764756327250148010287054549857355797494965379485129065469845127417595530764427053980443354719306898459083584345778455257202020731667194031713637470994604229653947682430747177847087711467351535313434260005400739438925051986946478912972535265851093789606031012112806760152645393387754535828597596731616184298643148235892813069654468097962987648454875670665820394370285644548339023917705306060446226619527399898440640830593445546109841359038594909043855587244671789803111184846747729270636494996051302085016969708728803211236748640876863052691208147503633110613798188220150649787058234541658255712014532177250727979583066716755256389338304119910266529410268079881944631500843666082675660140492616438113602168819256804315332526316260276366220230802087730143433865219856408566730837858059414220253364640443646147400955749645433380133547225145608338654834627940950665195057782501153887273459753919098635796817877247278197933592700638843064481944544533947105183834428253853298158119516216226534688142175799093186525490355717322482172599669103537942713201348828381064757344841603414150898204438399675415135265229030990561368441415304813598859015595595945251574573434364989895560564303901521513007182935479040727923160842402646928978694721702972361961577087943111544315199797256545563141972650782266191930311942426794330219487625609408417045044758801325586271055559725311901281894415447578377075043081704355337667377736084990833706920982684710319124763365983562355278875544263988633552806080262704405827539447472333567614919087711139202043409271797067829774824307390747927897779383463012996095020557824996256679856046332882125075711680502809189577011298118189150637721112128591538378114701981916173570798255175528890406344563659215040780026265702872801750740319478535013923815314438058102182296217474470474913510251286250628293840632588229870736926024858555919378085738724538868106025910997363508070068311366639647615342311014481416992326108604347473108324851464335113903229687103033746471417967385885137450813761156935145623083597136399048482310305542081196692739095003902342483058290626175624353122629608933557902816228762604654327048934365851471369354692628041226123561606449556168787880304801193483155352643077588231034919675729295774190751172037464188558773374195564380802889990520780746105454673669023163150677513072000706365870164645918413480404827967992606629394466269957405511134280244275603989235697091619285739623382557211785910685251552577909704382893887621841880647021962496404968914071737804978010638096215735384829331130002287020268290557813626572640856687090448143149834862712169617991284288907031068381434784001603492116460424596681402344752871556000848750546547054226316634549656329143671334566248387715069869757577846145470302509338881075349800548749323693141010573917352573943751572707714129139178693133847366428287947181175262316863162347109279908252375191422131609559980279529078562875711231930150685363072241017708571819584270450686479187410859044880418006138943075067858781807882247276605149558792954939448255876924765038989639057449067038974926431880563299635677721052722573827180562199966832468346333603659614247985018032331275100889992783525078649935702109838819838986302607820995002902535263728371639571624259956484387807109261872872529754180816778150470653575174135478368533542434325927392588024950843206081981073796768307700872794270998924809950836829106045026727809874956267187119799984487645651350115241560468064953358093129855325161085581569280185289461882475052682004359979208919240560272011917096407583531533863745766220347086407992017754571909780815538917009702318451526851925554059156967894109494979526647130459938118319916972023689448685227045819922617327615896279022748801155007882221454892899401172155397307973782070944257778801578856730176479998895430842663690516398024932854368839139262822491753515569330780649356545021995134767870371214144968472686026822498394674960858406735061263584127242849653350433957362085178842777865640926084909737976304327361929787771390268719395603258602673666475821263123906074465933178480216525772250782030321636521772743341544590316329246300826418451434025284767018552286151198396380710318300074332136339923302978454850345834532345402312966794088445566443703863832217974897788766625551895252283097584308377096907989336550632888614539602674169101011287642341040672600941952296735250452119936364389197179423536624151787381083231480017429020379932924822893288748209416205221521810197494437244254451548849674630638314120223509491837815614900379233260277523468129791205570858196595922131531362742558448158813518548096079750405240014163283708406109636800520532432213099540590786890797859436482949308671359923930572404116076546704004508268140811814259537761199851473619469326009665646462189747577079550600449785154023387537775411622171907989750515402057531866726063566002244475406101502339153688568713849010140503882564228906516506108377844148077015050661656895053130589021371349119593666717384065907512047927586658656049553419488003210184280621044375488578986269295853334581643034065781110278145134005108832294294080512354608470421870202441786901744479853311016887683618357934611546786004367576448956410445837656316967047868625660175923228522021709974044870504980998857702306804349697262750353228282467789509327200023331418316949362679600107840261436177229754070420635022778966737535683144732516976415093661720567375675568645305501016756532301837087788062256617746107232763509789454576714803870229131622270278812713332017340699870971936105831442920480839157018253170743131291518070035936991768609668760997096651426884835053634663924590400164958133230664790688300834034931167893346942102064285326711082231358797196269016431681501056435760008749842219725312387179311957013967850215739144100048805373441742241609887460847843463512413532475659420098618820266280722952962076947608479709239064391325479815504208767870219408933043089298818823896626650130071390106727550485663531851095060108569504849107083746311891324962968405459529839490291018516978535453729894845375559257651907239285199245755360195442383294485858256155769756151919380043904176868195357146044764670920615679750087438998399952892457989357333163376773592582249717489375476424664480261782933566372586717781380480942447709126260342186371029503147298899828124755340999429052034912770692927208108155486834709969954822556740960781954945252541857774643421983742802092934416969561999315645769952847474860044395688923346549402314098369156778758857813680849868638600869193849754718084293361769250239048991713942565739740724951655305996290572582152030945492421070821875387591942155501160340532567441280962754597129800060700132327655650648956568055329588394331739615277635182214934606423143105997662405181452126901334510913407529049013845012647732237322964358519732328957380883607479742665690141978835472161169298746171150288821899083200757654950495303866056899091552336063738628670560465516676180985934982443339419540842343550457845571142724168436348587113087962550464800799327707848385524172022812914177343345993515850964587312310804337070894808555334259431182500597487944508163989040603276487780863579909957715784535468450024041240601780841922998968589707284265233298303148005137365499676413189648030790685864237213873367483313940665813661763520770994426252200910082997191053813535669444450808811087522642814733485427073222609714011176082270617359432951233523610040624341909480940239710385379106475213913959482200274942577967865937869646223489050651098465184451085463713937001173116501478461867839473795995427937854939671314198306454816758540633749657277494629155640914323359171568973302778676455276851474048199920440623570278458919001434019448078565664369863188513907882809551610711542196261848715608081342310269796909122784703053617779566451236581678745199396844169132796402332559545250291030011128770435060536304467592914537377221666279673123498967433443312495411543769890725343988934004316238016770295093741332044294630040616047728278561941938511237031441679066432835044822289185553412485229357725080737431213660509105161733221736263555161036010010660086314027972198335830762284612939146131130029995622992529177388713581969717912398767424336880390043920993280220658448783634122801186416553034148042375447753933218032463260132000849884575637413287563189628161098195538266163988762848446506407851011113325948469660840325989090357684043296165191954425856237424002478543442511184348783437235907636595362378191002882236667109084125355615318460053503748956731325159168478717836217891174797019156349752864121970529248072079836062047009539182141963772181580819973829544425374616536781960953579114687069775098408711075081332624131779602358929853605422131415192429452613615965481881668417476761556378104130554367549536015280073368893150148053744812004220030085190461091825730241088241030021384550102053132450903987264964407139282433365836442464035758486867478891349535219440806080983303924616486505391461342509997325495856973603907227411762211368848602007177666563914742070104485475021810866065076981242003370807058473491746937808398238412981801776133400202066354975608527281009499159080482379500149367249826079037545338154837311303272896427145698402405002084024945239836352579664426621091830671657065910057981566992674479196148278244951689183517609870351884970773646815930729841908296350268702976084142532118269218182522554021098956589423692349458765225569865490207438020105538768425173260808564010421305414807944812641422715552137141266253961293946694032335350908308644616696307820946430837086470311936666416720825757191456012779709417192079836161465608606224155939976525190213350653873650677250796762240556763527650390944911018573809135077981740504897325866353287706512795801258907101074793276779059799806971229639511492261157003287405645091724976746342388063548777723898301063637408921614266704692022106738053472874107155326219402954263275618947681259275135058988749108272924901548156145001845412669944657743425102703634050386033827933030559666205519765228456306756993838293682269521487057974495135208504301241394770046056514859799690513753137752801816285044180802292634090413640981360208535063128004825224637896093587202069356657028654253725156814129951072257812144435790193609852608973073818507705101205251400953424051925517965809933015471641460242615359029818049352507722757239121131440836049705605576022264803297764537959384667859083388533544144456457383412952951040851691380519717859219625164725551879224475240253006364066897764998846120908257402976218279121226677446152898717006460664187968184287736099536998308698122327723971665117987587137804388675056479635316079515418087304098976916663027636295972505193644773288600208288490602979603406526509610669959381458768671304830075721155059473616262796177329772303657470099041591453807990211275949557503864661236159766642393917295003780884990489177414432013752127937310241428859991742532234939841300065465359604696796386037052778618758758353977819912540018694191678873252761448115503985402771944507863451364763386021737541512360568756150157742221649800601174052632186979345653048228816704171709307129213175072868856268448951122127565294394127393888664849634627329798951058246531442265113872889313669834715904412706954857815346899893553283393032097798179383844110512274384484505086780105987354127978114405634842551814693077775074684263592144379688830728546421549010020377647196672233110614221254510646379484575287782454701482045034720175350366474363609249446267063708063223155417924731487733357216695098240772695607244802399534499698276458726480152492661139604219042390394002558024329988929332169403235639342969061826269013344663816365475533529917815164563766289396953780701577864375855888491840472482532524937155215765958327683335446161110856278054108648483426416459475258859289126263439372321768346744925572687971650407445987434046070464411258794681543902627047352171580741496253861194819698027098321042562462348883213634469189694360854405741334901141190359957635565869778441879410023303867367392365023489127686704613203657450777910027184535843748971516884785016977252074131574378259970363335715601929586039977032832418401161165677958712956433216728985311259645585930661965701967991256974029122477054562883244076585669190134754241289577506654006686441361134959413416300151106026108514287430499268119225822702419149428139603489756337446691115753397506502622536082724570994244570912565416297793745179936261329356631774257562388364439603403237357473968810903898873634637147693404191687895205914309298890008245680645496652745290444044903931269221604136745949885252369110187823470015895428950851491085252452158012830099748583212699078640993443618063308538553675889436173642326652649513705578988593313784104097215270493319586731597745409158319696035140518151122877573971091348138219061645904703326449071520167426651567641387847184947391425221781655260182918062503665783355164546004080593104157680940587000647939461423188352050452328359400959784176111879576172434938266603196559510330917017818379436408766975208028297240863369082891484030206541814519958519321183846720626760037870148993251097936036984597460425440300604918041143545765635735480021083940020191653312239355629242481955807760494650075937045954654498869133625902896811399694860014447728023849330490502623940712818967630153219221344737015148146273765105130579955934748437392871198035355228817462292463649162080778098239053475598675534930905040777408513926710129659534677194547519005149549825607926207419602333532290284074067640912433921699032220240508329787853020222043443977463136858394042449893157820575740002709766923516045869564545872255692643423056317660509386453676478681361994090164121244243902205269000781075586882180813808342715117708507965161190803312021176524473484425361782615972549946869415983655088460611431963779091958517733481172350602693737465207160266348715069471871960975948319496130943559028299828482757798315478158277599416924551158578097187937079756946014721301470540221924587046239663204921311716528674431691298579154841793051413045276586097619565710918509177163188805772999463760224579125184258190146594494994482434046771924422478901910719572863010640025360672570255108838651563092715698566244981669086345068824077062535789828840577059935140010593491554273120566309121595202752040858755453099450351795000352438803019341488054777411632521681937232339379340686328449519890506274234165177984533125672745966803272703079606082025277447033531581527622927154128040201668129894406813480664051038372645302442582758700098196604351517849553911105584198505127190562902883942443433001791404974317938331864681801674580774626182451768507069530566608104295274944883748063655378174800657117250333402023886117245544211756795952113970171498358247428921578175514777897040615875206597658210696068342721911023927980961308057365004553292402838052255683241778762766722521648637531742040968313058017415288337382042695135895475345226663051162681252190317891529222597205687323299292016506987723276809574550983621634655218305708885000529687318052477225958758111726461969172652938671351953865825147837633290361229782136967915013543155811096026650842096856333326521277844795588081350952290104515811187392624592570182697065040298298887708853950880745990305397646161956817073056771174506528366282932933070117546342606773139115923815057248756376884877724457621240821777544733311635904492850205308958368619804801936225842524439988643630761306042413569050131506387106215399976541603545802071528802914416884632817903137640804227228730338424300360785722132187947448360319632245226887826138896229691412619208034699600471421335677954275543743330803913510764637570014151760154823495446863690166759315826382016860803429344366880408447831133839869693303516684073337409866164953851321856078545084572283064690937902687458426920662416713686271941344055027200410321856130594052946137515744454188408205963516554350439008502075772497350277450764810260523864561892748559084098853845727445278402205035315659332255960194798593710983513983763224729634140559168136834607457893436632627392963154159529940944822098091457108328528920436414197995327908174190141423065288373752266846436544897812241612492875740246503752678400038173906037582622804777321598617122503266027390850342101506862399414644201299197989555352542501385291031165303619660229435780426480938716703482416337156926801890630074309703521999449356791595337956962135515189080298327782309088158320430812355571438399056521913315723198288705930188186393541298855176558612627901616060037626783815732618239165636697498912187214734649865178765746822613841749352013590109910515342634402710584822987904534224901521365839370230240490961841135908432644740251355998010585010610591043117152909754437776675480990434552880897177912838731452931169587390821700965010838481375780302573488144061870935289709788729530150396406368933233694337820711272262301099006257020959552203699240888873636268119147396783134135205549063158623866669161494040272148503600762683149596083012758078514188363927727773260541282865112545009851691356737413261656459269497368224634799904615120577684304657898707349257133594944511738361910060714203721345035198550326872870388623390051825070886764401387905613535781137672686456380479236379703763870751161754804246894180291587735329048609085439449589862174833592591736499205855305082509228759066046561023740903201659153376529290030514002742591140016608307042887052255301040212336649385304027784590666813953526508179847327352200258141089600936840402321544367514148217277502157261970914282483452445989033203009543333568927716045637116482028879717982554985419571183150032401673135393868234336827579512438948979316138769218401755006088362658339683540208497957911850027809419249119066539046559426273582436254731696096896152685866844695488455680248930855849035614374015269814780285329663237825078755800805184618878042669051287723842114079698247174300155339384180188749223865265818185685002472614468036887281113991980177615637466165323692963087118106554891670037847671405433182403503093132872372751836585796967725523552905657114847433863435549214844143535360901459488847601752281870436215236359732634611284897297866493318023856618221156213014893494203878558424507594530919335646260569184290435733781994017250221690130529630860666818026445140936333936323794889348122936179840237092843592736020703204434876615050340442850192356038215202021097025011322858850923223123863028777033975868355185075873029117443343598805953537693040075074596280538501198025296610325261492563741336183455904941301100041556465786154467434501211334105255155888391673539699343144337996259855428674384427540457591984994859929326535595658399804317978931489563500075084123011554833046516898562526566814593865824989155987011897701087671557613611997476893150139945339397089111587721637438389937018800609300097800233772029042968604151106010379903530085003836517491799070835709617999256472807802121532159617604016406385646870941261820159701269076755205072241864609484263160147382567636296212089323430028450702900060808201300507731264599864453580987599623739179214183789137431276122474567550641301821505919721199515204897182254386866814298567189419793343846547601420576792750379474934157798561644990198583145958275794687024500008937802638259578976973860884334450650080469875334711437760892269123598733155763916104901246942114480613731388629202786567610455944648455121519516360289653063123283902237519530990959916083596846241807827318748604306505976778884264033904668551907585825334468591598685127510325013986483471986403020444420788283363315492716519274390376277045198592585986126296421169854534915657155483248296934713126906836749278765979434852992118139641484611412580399266808274470544566944336022075784366282927101844495174874254543291623094546698411771633331305739217941922339671929543111807155700418798236070201146686785145999532138085191852179799803965733190984250131494828182192515502889247120839125600616158444763190061757017485380127061493950875044595020551982550051949248331556204237836319517060694803314916134689600723196363999039427977544723728313794091902052094531798382403411242323211296317142511078250690236813141272465860941309065683518332116693430334195123414190752728914349310641737905528326534550099848990157336986548337301787689556891785040769156598152520207520432299897563057153187897339209390131280666054805191771003007790742889472298708182325938141930777916640887884781035745987439432375280331090069547982431869080965624946591136515527878549881375008682761215915486221166054792275513618423083340016235299350954375876015422857671112911278087976200330200301731355955809479912422697704200022821362602512420287313893074214227965907820676483843740997214101204679554684901870113905047549174834492239939833862166560713670789757417553716066164899018343797015384934105636531455587433075063536180504357759932549587950951099471301844012914036528665193662282127164485546844096276019593521528088973427091025292322884966850179723206076611635529692773078411953264335865691594053208325898847448135260265034723313129570116682099875315583293822703133696890900605485422422109604474371292867308400983938175844510266254235741589815571392211035433897072996124592547695924559717783354052828320618477350371997842134255546199298738232763638851656614334333471180405773320499838016990263725287224773596549566318196845948742253377041829267801543488882864632030141356202550597873249560983731365096888265900051408979432679927033850074616421021052977192002023691308520638404367759321677610612098702374171744841483000879471369708072696080533962149638268502355573793797938270762008353592111594060283727314548620758607281454021323178525062033312433124693836764905458988271910180041186008873467118723974564116396055474246740571393204030377967290611297310641558054129458478658330220562392778509914990282516166204738012178702982121076269761856776902477544775616338433018120927754614533489180042910941705556922783593307044376086557584602229069925880670155849106686150218338213465788132468325120741779662370749115247006699276842697017983771263626207503206431228796171087477202459362776056667686038115211398882685107124539475443393996731078967019357999341584992586729856537878671388855410940229361966700228609709716456503154860899046581129039893928774488347085831699605474675124840553009626773910425123675499221041907406831476914712286743242101854024015525499942004957415054903031468646946557125150187877760391326520217080330860603752891025788517641448150644742788533175114936850194878779470604878523304591653573477769055634754134144586135373169651264475701527459632548162098562368210247490228905360573244230116239512967008417957848220626960055667579364460040885135710764544940294941273913661559527683872269695531767674517951050407538992370309898543793859254407910428320656965981295368735993182336780174648867151397621046680058895815042450087557061509784816880866593956986832209729709259669362176687580273564085565102607084149330463774272043194132828237455433369988571043076448805536472283975168355602369913141275723651264673975311201119910903809861617781257723550709247107383375566758728834402040205364539000664048148562912843612202681106152506216201170377486962570524280607291654942626859200769500815030161145333538076178939639769968856236981261037537100188491592877335641538967073281327801455943815706335957420097605806678848428376839941800802126863355536305875697764989320974070345433044514996217673959883734215376775138760491983692828881916822905672501571330946077500822246514407095391483563570012978639024579699287950770033257523843883471565632881217896778956394332033271640613951063958542048564182335435015758458901959221228138660654895669422865926998849859179966065293350762170801684334160071977376652561367645123202653549652528093007100969277645836174949412208429365094229743657008126883697636848803595489512015911219045650652180503198633423864825697605701055266228484069814534395746794475443296961473292126699983910789617900658538346156605992569344203606292157267668951197918926930684767986123122908173509746144360951981674286998056258173854675289622643174590502948246941508998174031107181373295779063416654555900942729913548561229161793349193907444289193916582489292580031719478658956986304172671896622234900579162819809418908770369891950979976408317077012266176695377366262267136535114305041613669525390457406997836924388957357012802407159024463906501262667005973534498977435476714739895993884153003732166602290357967880188121946520942082958644055509755766049787285542505960075616309385649430387915154390237189707606479893478536695576004456210918414502425881441974996288324482933962770400564494495389324815094276664325127381096139302005338482065180164878197304332084995876440060726682936079006620687338963327827060013580767487425980253904769761987603897727046586737738638864151441368582714553319144043626261184956539034430924228512996689220359253476373621844446535630861457561668114950070771280174175158471134196829330705011518811862844372029530259848914428838022922915671623941669357751614472681942974688693362165147023832611056164782931413648002518854349504732519953824596976640306069641036001995072760028532936618944131550809203483808410476874620253385943910505689427316279884374475594630739043139923122466672956219468774450782844052150353340171354887635911079452723404638815624654613568839079435381476764201656219555676301722192832853700374711260973670424483129487567033001915562363222780168986042864017837298363484202765414421676257188392589971904165035281481774465847999095773452124340313228246004970073340945819593326930958012526242658191446770912707780434417042170439846602141469539021486310490832386023209471015093756668239623092221683162021119837534084283108973164671492307556453571578910570645971826437465515632942818768421744100876483684534442406581374195763868179656576267839244426932181289301723796089343795659696232833400391559897689422314747134343623880893357151155219361034224528907577665960329188579251272734429989108539512721222970301320210742613376873158719239367763096157177856918471426402909697883127464480101692185537199560421111907230548596136206855916598696130549365568848735224847641878328414747685807863927199635116979199056899301360780957198107830043158058742162070751224945859107161856606344660273373699910276918553118197773287651100327721265489822979824987222810264629434203246959907841310584369084095395065389721456797215813410545778161978516172282897045448567311849181449290552719385275098506172251592131799034351024843220318775963774590057806549336654240504187933018563625417592634145929429906822839922214257455297537297942073699311343154585622341780420538954643905598784512837765462838844885719580714022858017803734684213061781986675738586609522457851153043058057299993527239976499567234522905894542952162883735145812197139524748575085734785971112765955476856086279658497465442386011185693685846142549218631227603386516368501219754225767166180832821074383980773134286199349102852536073476033885871609992121366073309432889709587804827509150856301727354454497227738580629351327786443610025530555862885567006539041363751697545719368476293645677354552242175420992423153271515242866960601249799817845792164214247860879475896462873535217722069090548203904003674037409755732481450780364147777456271537952085451543827005499352286264318736035068187755965708634822359379044647164314813711414661698215567552026661911814745075774522874454351685240254830657288126558581607260524159102018556081333677495433955226142349954296668592950485784749879952149679041812200448027344483401779407761079007518822739930495217497818595545953418162369702509714495358531973630652314586693700228993994783284560318789064846489836978182235158962034177366934402646204238979747255788599146472904399878332610027652231035705815199100690099124836909252564393666383782395278797291243418239044750666928849801778499869804501834545232898462221903637624602627152549744652640657047812712913184100569964874435052163466925498007183753413466773958107566129887711863369088401083206298687825149126838785049789298738559619616718663708777918881013047903683229842227531707690150432309295499826843143931516232738104916578792334298306881880849052782984896244479933046586145437525500674789616504411072026024873663756437243924182908021652137674443414062261354240570249061112028197843551282190969371107617894385122687680048260896177351588159586536684411287138579444040730641401424364635249173313052762501287673418173222825270856898922319852567663605180324553724584468413925627644184780181214524425645311049837104653178340934067943043057773819916553578457878877982492754811638768277655859477696435481244912306423112679017843315574265320115524432954905786815449576090683342364405845260194116320861386684474389297004936685182667571412053102453613451571609475159094849375267608632689551687483934182761793156364777947701021597645973857018156354945083452542523557921127321439771733499634453675986769276498433750725125746328511287161580146454989757195725908500546002974304674405614262333548451398255311723799056071057800383589504567463809764120696257593700756664948327664867511594694451423527273838750027652118957893988910404864289658652064666447878381377209845106452260768179830954595348157726517107674824713518126349971470259610421562373306740724727347145366508366624397093894115888693147942256578617476917383109583105194232854440432241939955809819202235375675340142348361752177115635254232445882955909097161195598431577310355415089263795556095775462066426746893073452173257634438275555451908277964491234037911384500223923498929672381399453313245907720061874366802875546438450801668025190409226028512588745285673733076255488933652440753497575721708712722670213051429148046929849235917853971129926306034126247527579193362216561905918548136607586582862167091607946140635176660322842467424959959751193767622360460274974566210465691622003472444494659542079229716554452402436790863600290856370766435932608214248240773778442305754054450338680480356823913292317364782758866783433868160649437474563855698782077926086343729184386668590192442288267858281891675594690014895380154628318278245081012937258117069431154277332103780187282799623447483492446411042051551844409015448211821243669790048614991918794830195788025816961826734286013766831887454104095191363410244120389528848265127902902811653390250762289096016453423701787715045214842449539633919193199415970380894941164102136167588436961218449648679966257616706014984183964790453672587984102922266419787092634203792970143960362570175266877666061817210292879300813571319357513798836111749665475678488380367553366925855381818726268844960298771708515523724673390668163124896497176435816639124960868676674332923917371443730478740413550341466155047260174233446009609676550328674432064777701862975031000556342790355977788933679080581913457937671038660518203111723251541589484195273709696167306557934071137139871414859317435824545038083517573213792257073171689652822710512495499779936539169735800341100103174077608999381229713073907475424065088823130482793659524731307235853705333906254233806300935849679150880943284284274869045948491854705166944897316486046314303572091073476988842078221015825181178272404668919425403833692638022486990217925630734609622546312926677342397163479908016253519651849294890158095852565024520636831201438530263334392892240651661239943615616730701295892687219045037025787170049824394378190484209350172075029924067977419725326027247964983473580443838914168413798204499146320052248573519027926625093680010800304691237914735731356568880057141888422907331019377702399888636832256464997785620752207977083997816014647440487787449599999872045557750440851662176574777187667734324085779344054066616543197218246954584118675198356472508820112520156324415981454021411778092195325485206643266769971730313806444719211407493870396312830034004066788468322342801374713320798499482142057621857639377879866807075419488075703547188454308946672828939289773984134086416792919887453632759363517414020504435433096735175599391612598617823578813539369003961382018582938352092085051394064931184897371689976348257486546587350700719099106598573233531038739171802601335472678134048145792161619958449265399144688344689657297164643910328560722601680718672073841031274518704322667841795567776945493920297610574727005792776153421564129856758902086495626436446087537459247591502303038838559493317475468526705838035350994807415008360243375627801922780004077472840094737045140249532952494316184680983968993393359513451589704742152557260348672572005970164677491404832043044175930652010066123541703513419265826036325938787482902975971929510460091111389750386471488067935763475215762028841935518561787946479121992628345069169559180725017733252356284634221376381673685869577006674863777163506909053283631415725214371669491045295011608205695969678611719427273615662575222071607651268698622338544632462492726961103107284432539793325482950156723139798377015235744490598160638799815485159475379976719757799827927421021413299459118821670019979919653593757452147053836629122634267969556720182478247902452677831753190869398771645135084857222577870784429382980857532182992458817755127220402927009469616685210755018541435840859882092600260558907231422159336924360428167083278361100573924521074258367056013081892835104854857398245664018954623792941259943408634325458607026248761809210572866118771000055019285372998095232730343684296970655697503144775653773502295884905017736755142311518787666039791539600501923772764838514929702443077678921642950710280120749091281386637204456177039322485114655793826632990377360265433945403977142033860736097423400008774958365808702063483992473047008882708187978159890658854262805109347249831559263952783570980179139901540121520419701570503104574315164565688647282507448479859864126340050086466930055677373980516485875573948516009443669846872679292712366603363842974748053082126702871953634082618970522462892503241319010389903073349021223621925683994755785944526441601148450606876712172497254270147337267391990028945226278738980328740871230290091034644803439348940266791310556658170113918334217388845143764516936518803271860283422352696368274427231082234193851509074432904475369613065186755268900288980663012245856266778675416808498580203871822918470241646643827353252430521398807402028369700473150766539946441216388565689457513032955872296408067409596368411633720069261541121213228221342608727224703675045175937166645170150197028931513420989872139982798512538361553461193337229850941237275173496482181747753708373591607023597035091906542185746237103733531869714554721148615355541753412952181747818611322095350272691265255728025790718578695389637074684800487783391230307978502091473590745597314190781937315656053038957445933193155279393719987515277763830956080710190865440971299008288121401905685800692726735874427982916525142518727527193480856515896841840652759151593577558765664886146907237170147369968580618433487926592686139155173876747426107105539091088429640299644913636111033495352796603557257186625166934740067622635367360104394301852951994890664210857018260033081401113145882270080145155090449684212152584344373554980603946109466593705980394017796418650279511382438289075062067012583204968025694309035411457306208256143460067897378695499086792789630242347275103945998266009544973764817584649106596878422590212342699216840202586311936345478535590109250631438035043146513253632695200756659528040770486690195837727633583847120501066016122543013322666934549946787352635012056467728197041354547142682265235547951069604824508538817094909719266951673058289655461338223342732542694545252195743791063376520621959176253598424422269090262620584887132209500601717614754920825128330525286765624055050338943867957828545873860259953313946125483768881454721417523573703036219554253694324485946832982132849941122160770417489024847024908593773893758915090155488794585891471540932136733644465599667993411704016833481179771431011632125872334855643826715293260428521426076094131962994335416583619856510845598051598681856723512450813188294040174054462442238908624006054671303583685609389738335689611944462020822839713445794380366655356982515732926971618950663221174565486480122564411025467962114156712066934278765148467167440099102078784756672054136824874730195952669315622567021883902926584604478624053115337493618990734851492477026080983732953782330484163879697447685316272510159255450260612114239904618133577491795304282453348232119999075950053277893338911625817027188667663467092384785851181805419013527521706984472366513417972062846413994091680540608765163886602452412013994976399326342012446351322030510377774403808865191577989034633370307057465733358326198749400638681218225743570301625108775007707881498746754690998981940998959388229621541907889521277445912183555453558685321698134462584456691118113301040036522180405701766130530025459633425537776956579011317976939341311034816791040176660303310276847821061866256877187765757908361471046686587861533732067642544540883167565616752101774756769730889344900288477906862761047029358593946111588574688142830430970153680270360332589071894935060719954637030932835877967001666934448654764429265436611654086274920122355131706627878963624805985352668114192639207170225993038787011125485571272260187038064960366888046852076085062069794909022701375036609736850267608418349514758486533527703137189398880387136291933913047165857707135958831960644948844718057328521456519073133586087428108139251781339064261365123181775961892823701895402547431877172698578827361029492019171684369358611021001791815781908457692004818152710404090995759804017157220057161985495310774007397037783519131837409308168589469404053803572136655160834707800228262820715916352410162714444100155810087874039568557493837841338000045788106211535941105594628790362877488057253598978519513146768723521025784569157249624319376520759003925156720283187303978693552797190943431187164299913784459140988468124661027074673767282476884179071843210731427602878818250978875059623604642068439949937538960463762847893290261797612248273869727497386838629227416369489640010980258263476085974795507985085351486195773234914171521758428252877569952602568257728619266013257753231664066543295324400511735883877791445716508413974847187952524073951279743296744696278034020246090763906211162310350908554466649357542785084060680030410215450769962214928779027693004973641030197768056430806420325534107648068289032194984714048759293016928854298816035673772505485874965601409177224448322187020140764055316242759918024029590269065319334928214326480539278988825177927718871754087360413852549957030201927478476474753014953041357111208046101452750724197393364637138890694165827044017810175131533084457556654087412186687202886512947922530488085708476766884538578326274851310867027508597852260523347759463714173782243284492329922198897841979474407323438905657828101745016701893930712619807489101560605980023459888624407124156907233058426386067346601036939019049860247557478574800037144341339585536576505536069830256805427696571514960373134643651650973436602348226232658987614184086210633530612865807857398449168902307461098417461011263565005845924442331837058617500580731360909746986796933901173069004660424992737808098138833689337710102315560769114611534603640863708157615346596758386055185392508940284420198561632553548042915268507844064510293139164064820104161691224768098184750161037353952144282362142855086650690258518219156773041918252448290382928605306827254208792336394764297035185700242409189766514751003939786871618269044165727949838911788404397718785599710042753728927060072512030680155751760416194129021771703674710649993620809808387871294021933405337427672652116787201838918119591261415435700476701193006552824449239689619238674466587786123711204988460143059335504197302908094854266028969948675906091311385288997637946561107248488482398736336761045320142917043841319094503266816203085136156233668123036570524912970436170248642274261557926193628091465041831076128290653004342007602527433229442236188782236729848026238548357525708206255018209923294842358434447155965925381939492364304275238660780297614542161950450875602248332849107672552991244763317051554037320096290176326501679719052359220096420020017947941171073455230077192853407658042138547592346573941238484799032292492204489282875287567343209651972682937433884848635440783533102489932197359250659078972751125613336710974180482226255041219085425827202316817271719582831616175850667860958737761335952319194661668960291589713116342833747887506288290325512422567177760958442790754557864306606678708038224327309957579728430627165817194524559344603708525863587230984677441573155960714410421184136637291108028593777524334917236490511684330825296887963123028032867393449951209068855463103962691200097257206466983517737557787409199075689044276538894865281847068074019285386704891482348988788174645703504879919966346001418425654681771371568888476924152817627261103701644631454159263143576584268427811325365620209403269902345409267568499109145839217508824656109474622296169376134972769223951639846217708373564669212422726722530348816640237157147568220171764668252338477084946726338151228782680786005025245835084585099388669896020117696481008601838355581408530591582006552479619794914333556141056033589293752257879742271341372158246543510348568996582014882974161156127961649909004302397658369065147110567831102291480312559377763929050210463509331484618122716349453860811907564360103491891489033341430910985992852309886533787275862136761546752796018888568999237737017342094942183840165937176511661456351680035478847827193760394427810445666750650280784544818136613044475718804561424138015509389402680746103462228829521978350022279098613364591170832165013415849983348977806442962062998698186898838496419135901197540306449499729020662955803695397893203470408775629732878808550361175758043782549920335209582267502930098772635530999817353800379663454599225827240131295782977259314628071713704238434916431852080351064834082213278671013725284147411573338233254737664396852904360525707082974495696622135738086667144220063445038598504067455260580153657199963538700687847289523785196297628470969881765475849359180635051440254421661151029051692408447065976349691024943408663727574118558589916338559532888652521394519692338513833271177050732322296695336831565007409795016564484385393496316530946858355424960484221347619369061173917584991545098626678608892436583025916999685087435518952375207703615076456871478319341136867927271199038589193044862152747592743564515746860288080952957885035008011917393125025622379551267266613834170715432378758291594838996851660715470239360715548758274338843871378746235967447790653995674852103050644177830362246477500156847785430034957312731066793835773686661675795086357835895240930972503608116111530120354087539616387506486795358984092795515359584618821154583177356188106798239680601173515565845571990164094400193275539324175497567069593155855437786972132573852762880247755371124289177068575003249219063365207475142599521698010189817465221739794046737563507108542698598585760229946567688174215474118079334419675299375916495937322988108916667512073155169861951766100707737789320234012546115354367247219378597661878721652990752407675931125827745863999829429811795183493113320643434965677810049384676416937916435363737800486712440003483081046287108180953488103206483173802096601284761985996807268655632098005109216720625875417343704679617031091916381814848151689139008395930400620924960430380529622989463880071291580289294766753671735428890618831134330500115609600224683539640381407749713839166740463397829910097647466339779227681284830077108836580778129249170409945310404434248672066469577751676831504891719058771645790245353281808738710708080069472262462257472214040076738932426825070739155992919960658565123680107293674521071508416094541050667799617100187921115473611652832959991963258362263317450280362256280098934646501896726790332615490611307005435137119283498305227257712935536874223143919649280843026793414470269304418006437606984931736073908808312934597699020190809507853594877649722000521245638240236902911146881875363745943212510812820730568749105606678761188064141106131999103176177167343303446860168809363905826359043729620967446692089245938806968039680264711174467098123149141733136808383609597973920647625874343447871620909980413050009857114213434045177257734100129316805077272858077295411715802149264532204593707986807976266909724572918920091289191605862301730371493752505928044544194266989306887862288203231633737168139100746911418229116715864394243720214515565612417236225822625120504426482033181211201109880995882627813328690867732715560168831195648594357182501707972817179735970708161382262102264793153751821689838379885177581280742468384515224236400683673207233908204900565065246072672038550256164557117978558457784531264091936267125562839517913348556654908921752541609853097882969254917833417128536010720234187123889336768598072495847049486753398596385570602532072248660633322914639597883444921082157061132427359100635122553267975413414640673306692770558602666000598941210515725552313155362546875024867702865501905524406792121015714212962758180353427982519414137331816936077438860605773740407336911917256149639156516733854817242122460983892562805720806216032183038162998081323428227850463649253695786012737701534446802582887188948007966180497616046854718465887480596765147238698790431019185544747389979223418523462232383001894130743737124443234228981550866462994226101269466274682722786363037923110981460547332346884424596379384663751955521843523099685212868399429263269322062874627608482486754582402537915760103346682271623173624744690755759036058887403887532707808096607652021491763277341899498774120171511593193490922242583207568728755553852774604588626993480345506214787216520296160000630906086993822685582153362535523290023269123943448954390119536215956050530180874316805199320145980469253043471260607134070705833166936283685815338713919154340242506057096328922175950713838684795834275894133871571174980815168816602587528638437789794721257068036962623780234379839657517145034204559691771654365339704932877191801462172499781784771171980287264540703467009534155593743241347932409432231350793146427691082671487026195983324816254839311154906794361385572347338632275470214311681970771168794945196908491171709173978846011873092015724762295627705427043047390692597806291753378252843753997902186211715769282174998725350790449120632319797522649347284362974271743991893239556535172443248529661382453898019632051171793913499845594459032901682794436787687129554502407121514684037460901192632037208911664078488767119826634677131344651962148991406068098897936177768949690858816018347236086845804346241507266280739591474783990048025010637967681223963575855969149740530627308259933803923202475678762307140249435170283411645765921211918868109483028337625695840879837470945608630575720275692785205156112834581977140139741817985209573911788615812094767368258988151006755201066752166827403234125163746625335566540934535146862769983693320905322154809294581604600806687412596482304989422134852982183094264708863061032475846975009190601276222881669999961318834107632622687364706784416460736846811505622788707133060910985557187322906672123736431587631866113951933895562171398336328849764557339037559428328596237380541266636344512388900796865860512615747231038554586957999996714587375398773117447994804715252067598229686160029809579897534818921581161005324821111965928171644628459705133022409515541702313371607109438062446568086456135294464613557122134255789007508316786346218693663799229153797977800762750596381205795746982128643723790742097928917531709882138645958069028278212612515077316135868297697065286473898362010008188709704442904171565510520726203255534101881944121027925214467922621490720307743028373360525093383211417227866883068017105883250609045249522498590667660540398486951524038397858751751715650034987255589622036011669391808660267718868004750260191725396491372480515341736905846381348151040171008802700551775745836369963717173405431525541737901571929912720599222749251960278345164438061587577331594107706515306215789893239226167703619853643130767876221690220033939031266435402943502064668518780422989563022860015721601706760974757465518489050162477159157117229793831344690379629230808344360102638941446940852606771256798807841131650013419671822254121350389258546718930921599072853485445164903388261380030534981273283024910445660248130605046771568032497497480819352767366745867559950592619221100543886488020004750493374631484423526367369247138181877752826299343363217108875141224413349596672695768208302680554811836994924521554795864447311485537142625233789603942078224368595422876033160295430935745761274819715285233434944957926372008002395950033356950146588128175158226193408617239443114885798049648880939406482467555847019498380056549027320413468599177142583233665475485800447079616028629372576893251469229988672598819306749103839907480017615199197076058566164686915424575650126441159791657480502266932701876767292665935338769771500409128555142428234920909141575623420828945753485392479917059617331066094931083021062808502603792280023930964634447442820944925350090402562128989827896479181594328202393660776967996804117484404855217991489092089911553239317585823322554814667458034053892463780182727270124493707282175216628070836761413499573469955477848207946411319396167509119987804477893755321505809094464265204299838709224658403177571034346824134949562547281592708063128793677243125281881497438850904938440581103288575256933689922739060208273954351314666863475950551188498069112580851421197375377476699534428547598688939549913329713834637849418218066456298948799880856467694540499798509412945687982653881303061338456847272525326413597719150372875634940076616529963875077580957415906547753892421031425236510625678982853255999267635119003749206259479906073540249497277268993954927031920763694135995372915757501873903750188531582178405880056677225334620367821071289638226600510217499925937244888368004420359839920617304211865297701770918847696347290410784336458016076799113865138017009865217649322066974731982696161872310988924370180049513031697440066512624577642320190384000220405092853282345906857298404216104183207777914069602438048905221086725114696203625931364445552305836018485583940743877592923737183931493122373241422876577852600789283613173396041044460574123212020543884017897723599459149927978179176668113010531559763956343418953932158234068039226936055918522191830534650568789924204765447738044808516442641964537636643516550966128677823814244686497945252858145049819986899979272545608453975350939612874266395197502399804971644780605735124034303485604828666515843386977524982932882059423867691118424613148519524435375224053006125462763479711191000296850654061008223196187706534131832175958488886718554988407839624508242901842368931106179327848623274776950207675584125067691817422028664473186975541951895256895792285797974772115596291954835708587655233999022007457455968226116228613240388168016264552978506407566866727837769955583821128936116667862887153158446841287150447518664762216821393417525458339077447630532839372161172227153894640473300332332679497433807941398732979644868500474633027957783920297232538304794548793378443284631379696001728285462871441023985916821733681432713175109913604297275851399184523007764585511682198438016357219096969238625856366983170048874341787985759218181492956581725624643295191276186467671966891811891239136815914165485969905685592728003424348989780385259166874510930609733786808373486633993721229186153880315593464066634069343733106174547705576633542075416751894149041791346294107377482829594781677308327689179938576861848057808308907242435762842835325667467391552460343938905886956147817947786620811801001768922451409564831634044384403001242099112183614528600191037480592824758715976544347348995400854458249243153786293695001696428725132564723949265402113304026107457715617346995717518257794845765190858717603366949476578406210395833561031467750482091784892949711950354694226895738962049164018953972100596008066895129988080603511052904724843932966396405646535877722185204920135831861149530769487401096441956758427078981678949462964605490481388402628643137347508822998415009098676646146100014245325840739845828349657756325914551347120805992342355116012142746492728512673299320424736072715712334112955877883870383771544975051122474121305117952710987327714268649866780643372736391063779670917482720390025109912008849125832057063916242718169055652914047834724608814819294703769488169599630308588891779473613004115889641694503587993873905355916929467321156865161710470314535257622728021038446171879555134321583032076320057495938876190764339714147120540996348294258411878468364765707442781621403463245651051488054059308127549150233969916309718885325824997379692654397755893719605529799115292438058849397185950191431596606617914736057296135159213416150668313261709213415487314182489680347318805067573989484664193599592285620974515498811721201409369106024908497799354215013298314077312285625287803198131821799234311354455112563683038434197139884740750491826456062773891765451417939481479994632760499215387074167713704458777215978054178999030868180847378033859937312718267968380108520462786718088287957562858220251736396575804010632679453929816087756407201251190758210735661808551453415604044535607026239810357483879742322456087718230444375926206552554497652944122971661702657706220455926424031974393127335795355369950862839733445056062830376460955454576536177816743812195324189038507136612757961665260403041689877543478416664377624445536347152692829048708445722015918230027481057237914062897672608868059921057935150448629973034567832831484274488491975860806503999428310806574897008314820073608437466933588892032352198405598260316825991206607797833357366871100267878565214038404341061382713686499800231027788110694157675399246301376369924607623233947140644185553841722844946560003740447274918795187054486933413088476002879105099003097929789903542047443534087921045179345315942055473502883961367334399502140105505367770756570196239249679415364353237685473100531145934849495717105881732537425394028355982717089582432808512129540241243406928093066175822518000816219200478751131063860836469658285960908306654365852888840456503398384661072799765033580646976357022484950809744914719309722447420702963770828055459890212755773894633344287620411715165634384512171478194357647848676331778000360981434131559331560258871732274528406007666373214859420933760215086409816950841554770903242122673075495967295069776844154859143180778703712937517825868865529874659612380853334275308617723732643545986345637598342564224655099330132202140956576287101471954533797420910547008046474432969618481496210021469020419014408255378570162343757714483805448264719320729158324609933377377667432078257433670232178647552198320713554950396920250276250595636266262535298439911951776631505385389155826758610733366536820033865638493264687889719878525802064711314377339271327603001731296968328891328321753921304802318998869318861264334699586986772882523407004946845282654343187694810914006347586571242955474016826208690694257458549906268900972472697400002976699146931072510985900291700431868992390878854325536318013553606391699771607438168846005347429249409564384606138947311679343440446020956112733375469652812376098117184098015093651156762693319350175581825720548946935528350915662761886937353157755709810263976877830074951366884307069269367288610152025451071522592864071544083580586782050715584643360546088922525512088352841378235967274490716111284913903912761673799026758616056182277731748814505174385425869106616472425217457667194432750001062339043368751174049031774679778158839461046466434842375571915006838822447202485665485685688850633913246346464045073741762640375040999022868565434219173008726953756317287309454157462432211461902983353950805304048952827273484104577910231262762701902554365138764384842311560419391456386541120961614979769507951050051860193277860610095174223991709202014223283383145432495718510187467251007600992025500777657063978713663924157907503996658622887410105026425293887777744735602834203344041497291352477173688430441533536063104540416539159495384229747127300434466557226313779728896856423773737832367369017003783833318920457407128025937731903525168528729528372514524380544136224604142897615279647658509405939045060317503392987164696787870830639125982310313277972875878850039346403863285411370557102008706341466458092376574556852192686566057789648886887247080112239853085497953228729936276737614451935872625893856689024398976304535754658441495662268080489850285073568794143656891948235422693922364454811160210093852812221637380124872447433023523370703561541483488132987598922982023715236230883369307987238422209293224462756610585038071247384437642790790350934988168504358831868684992963278966951094801144393329386739206859028708168866324260069115694608954228483936657049524982072710745651984624342727939977843913849893194355274456504578750495705433329989109032728520274216038682702694461365242790384881213022446125985453652252189465264905468908565269657204459287235383998993521614237565987960130684811537570429705206804840942092334260294803571247219936657475476223542457353355161070030256822079232760933704428132080939043282857915796774761178396326377705342206794829008663205650519420565177708943270113814893705460004013613086832365282624400951654972938027121594772823662031793014925857839656511081890084299552680799454352490067485222926746223240746169301278970256256741287250703997316283258561213659884970227984343854503639311776706969895627814025216764388605765643425154258064475431059106838790775509774923728333293604602772231353419565468190354450804728005943028734914546314777122706566102373230542420249253840371300493269174295699317219488824099454907399742113241767754600945946845377473345195797430155728082762111249642547111728840460089654032157580071105824132802069008857228358135326085622135846851209611473124473349239937544960421583004314154332922810263339168421553574044881992999935495380270190038255398318857395805032101744860895177568011969563237510796993268499623320171244924951572414579130190392087807996362933470227879577926696945653487716130810818068955373084439949693128637997006622310862845357651836487878270349097822751904714660843409140051229405862532802488637004828194643361189452273276727708625855264911492866259890783491107699742686016107678807266601115220555481223846232694726391414402049848942747240547454546488207256085669582782261095819595581400080736574125801286584197620074925262965494672158615052401916966872840184145046816469487783356052187315161345952798523957738670379209284876493804311872875434381247303182430223786702667720393608896022485112454207397174497445734739081568098276987352608734734471843560681205736543059184907053664885086787863353310753247594702084814335971570463099451671969597558982138263822333539171264276536592404659446232471429731408634955653183190722219971686438730937940386198893061267399640203089465224439690098809026074914912037719507439592681960368485313474868168673504792578047176886968920175803678199795034115057019608659173232510477614025051183200823552974627929772979170162174540420668074339332184974727385217495622427852298130065794712372816738740204302677776738136713543020509825291467507532691992257211887899465247398971899749011073935306798217467840747350300660010356462352323348825278864261126991595754215767014061995253476723582676003581775503157814106933941353608466281443122959907639791557992098020717802212556739240396039826913615477498246415349912889132853991933390816577335017399432489679751715164147609805057275875302547831152625865682538786290783987855359099230488212416751089155252608230689974080254431371322934784524858167684038359751414295377113413448495482617231728197513734065928592723747134679596077913900298537141900505175286368344197339786199784910487777560112796292891630228175096366817550252387104367160281143283006467659843109501696147762869560764032272603518317846208152174246032276009366184029510807502080067576220850043476659747026099622587419064412705862603098537934204632717367261780023886819467850067471148920687439434561992187095047982899327131465405568634519409545761538194404042116847585850101130076861838587890645344978750363676059789002916223231614706580556671578042037908648635907512215478938311090865931439280978054761159078332260773292818409625310154503761214786422085295537132116495129308334400128834189065156456968638382297808484928182500675709769349033625271162627385544057375238030597991482273102283207038979589969238271009438391815927088369394283197771614349242919205156810209790521854071085642343296547065830360837676836831008489739191367250694909810891623765523575723100282021591980071467565787943467805445876749599813080627720560836081303830881851792140706092112630687279377641146135127942839671927866394837526604586317682042486141787454958510688870134862252901544160792260712147931140510285663763254911721384615871010527165113681673470546382184353069721961598356780212253005298937437186409216722204894929274639549758342190413213651768727742720895084149428448458730332933954285081649305815021575477371881744614515036752792811794932104940001787244233211964339102702774774119742936183639984490106151424823031657635840158467767714990461969898696935794249840948951609658042253397157678645916653161614920924660809120924447053630838639202871084262621733254978893286263023229832087370478809617324780005885520919499839227179990903173920419049049472558571788670742261510274109952912918213522357808447037609262399750983234733887157017128250941109031555541022211169561946204145362413543386449867509603357543715051715389359198275865616028731439531674639898001576842407795149587305270665603794609272465301545231181786862889517458246223745498727941878006649685481915290880992540115755128709225112844838813952848343457358666126954496129816024763263948939686736947265906371505937900774400647005041060618726232909067280618797168772443036244774790622414482125853559569894430966315672330184083815861554747697203227976514092216377192233662707390945661570284750336636252297053903473408811632565639540206273383864487928799789733649683240918717806215175622026442269257175105546684181048873008225580065892218614463837269570813956603217932907806236037570083684613807041699944308693200263101677412654231952523039799306288855717989952798180744855171725443568687816721006124002720831962888030486042397716935037571918757051999471031734653954238767867684239447782899524842033794862637822053917328556747155043571010162490382515774588471278147901539458063829129988075635621675779552041721468855125219345036812847423135021472027201666932372565663809081963533576819486484731294966245425892966533776215470034443708688866463916380060711254873615928065216741109596624100202433398395218876152348604090833645315412616153453009162773956891618033674270225243343729036564331590039641406516761773295982992883482795536665104414287606562414743317834316344698554468916257404976065506884437249842963365385955806025871530144443843269883908211317261066337137092644565545974935461591039714470104319460131357115516727077457920673399020585964769859653965081111453524621714337102624366583810937811104226228579577099518154200915018321590006046919403450578139671733697738403304076522633111402552738005802079998344382643918506626460219484400645789604036007831487757216369749471866334547853754835239460377558615496469530007023634167029920823403922451488885745915542542974162541906465634677079371998112419472122275189988597971451543199593653235468609482048458094881107472049465737179298035753244016462298935587879521123510924358652296215425659163243280687010861323938546357270325295219297620496112299745665209797082644937726899617065512993188196539083051649579643281444493740707782121129931598675781397621782002229844065165535992796336807059917289919325329320148861388222193196926790922204713896823451978838865338004872488497211099139161001137621540790773482653559685706483317002976783929303377788338940800035201497751978902667254609278725648793279352731951393683856973581586368542184582155752072624223375472802010655273636716489907673082567596416772735649660564661366024434098754607768305896084821521510874754645267753058471521277030161123219293485069604926531914170731404152859444553765898211559460803626067430740316843033922245183164062658781415838716243767850723995216641091686211915187251460861084189220564746137833886631262871325933380740642384761076167937695211173361691361797729919254551877762298457848943142240073245568562766674652223255247115317991772692830014702613312936490038507687567263486830548953910694819019581622257312090444729095295627456043790084369435043137818101255158140133035294934701148404847121336578953981425355745186818292129779553496231800044732089069980442179548304150474397962535873736176474812761597281275737745395818421426906974238945229041828871936553374589668079346386334751471767791822988703507024861830163295032260786302742776358987029682664696883885611122766452881027899744164667839110270620155170006658681188579730675106815732300934573441501544227705498776356371481846642120109244154712445681097560499540110871207556771133965857962070481471833703427734364684412024774350911286045822415485950575980056739824480409622334063191118757212925822043509777582971856925663178373216496268039277249727569339137860344995353114360440105060872720928119057301993556302145511278950360104382764049370629701283250263049734313020107449256263036694319305678073193205203014501909709382491831247489792263565903002515259672106632710862808063736457123798160457543243773752283952916188414724592011673403651752247293533070833269401543040817598049140375689241736159809903257746385225130642011958449421498873788566141688182245428688888357828758139732689332460225724674746904773152924663680344822961466565592976817608820369529500138181481355337633098877874579662446970926868822738279210822291155993028257295874919245999628359673563480649173522856638211924676518879404685385618664630085815187941828165214533159887797287064538115527341716910503384530290347950410531272470188922529111686472381560552604567275391182004564470633417248077777795586489698450549898908771173578161997683909807019139749458649341586979051109711317252449836244000628444039068361052186258300564506312631587451108089306164008475601901821805068175604862578929068580186968513439482361425837002593878462915856504155089264901609004161560375275540392273349760190140646367273605428902358919051930991146646327150204333216614271608203144136360002669142955359479449967483827823406718042290708254678374350434824969689936822314406770077939018787721098660762080544438916581748583163345107393120206016010764957851106324621970539975717132375233475898634423430462502645364507011226700527009538825626941241301344383830968081934103651639304170788469408421935832192706562809187324183852006791622977099549621588578780884826377396856451684993896765657433141838030322051126866206822773112186870520198070637140068498160892157908105433189792054122384353829828196344054775210056605304060363580839678200817052594130438679885913197470099012499890970097125098505748259161889133310327654616667029259067365757193442397319509187555962952084768140602883127857883167060846614909832923106955695320313646618455212260742260749196602746883955632152494481986368357147358431624883233599621856365259237859219288217166172141571533033796742979574746907141790864589959281088430151881907860672657155199570604639612822547837116314708250674138544809770360057449713945406014803610803527310842264351123451649595989918242373520296867994184298688945057300205500839145034080383331232150025122930805973915111195962305302142943143679599925187409415925650089365004574720460584091963861916783396299620230305257968383884217934040660507420675424080823567486408439834675480580411420594101349664515449857747333421890022532657575069832593071027945016015146444099749278741992470305891980339311216020145583203177819006912341467307597873309997649625306435959349248900275935618037016477974154455678152555639300750151100909239772458160732060973319052608931648990713228560957502035759409768680089818458247421436013497630211939008626849175336368549638327914827752101610041674718080855805893557362060825266890758173332274306591924516862335158231119052331914431264051643654308327975639139000254209315153995542578353922280662848471973005928884902205032448831596060051855490506859958381093803238720334441084569382287358737223530598831042749286226643921943711779407505653270739207461020827122382479553525666903503996444291849191484028822924074817000879734427315793951432956225649575755490750121214567368966370853032666796254443644782130332420842463483335317312958239416277678997221332157891703540572188199296613669561027201034706213045853844998330111975579246779641032994287609770038698701137752430315493575666810843484687639217340987949192217487840196897779406394111629457875265429842109105552242913178586537773949367380903668672044002847393030046297061831198016100636748317771294708281083673822600928496747182305433561201293952164823671625981556637567771779600469798787571885387937427390164792103048398800656217046050828052328767948000869900692658074769674050045331918787387565120406907276671717228651387653602848327571275510097190555279107010055631618236445598744454340076871431669865607899649570140898613135673252436332133470186672197860671577978404703045590118331841207052570240687408269953478500827281233173208854382041265891658182516610406686766461586753202377520292411661159222729687303112950574468669112049211770384875095603861759421874156987764584335773797565277885978981866942634818844074310272933299761931158145993590630197643138195964312375382170250452738338850038457561469470025442035032257058552335589983079177690572921176571053201550675095210416088381623650478774196331779142487542010235018848369353566170479562761562012916879629107870199253979907995630263673391699965988720135689329542420003105455233708280992334357922986928420031598993691774982065238827459954175884307706908158611196700098534927040053598138877131427706840977135249001930143986204986889489039087977453516110208176614544543520027807182825245671795121011457336890577135031837047922485165679142334409891063760070129067596430781731149616409029788161418563955452223393185296786389285317553513767496143085921654211420475856285396884432315369363686482363295121818486539738116103268953035820581094240715321215577295446814773542758958515467963875892475781967822042914245229920491535191710157256253576411531886945046077570145181387210608236598360296134584797027047433964169657746304291467656319126189241898481424663750308717454072408202464333645002644955795946337066735182215659998562691534844809955626648176060382167168274801536454998237242692201860912145713513701135536348313243948064212768958230291048720855192220770410002076801947810121329292148996980526054740516276993999625465424951669490639865541347131154965198215365599377912275525310280773728455896856526270092375174232441571906360261631275601031019043759908399629566383386069192323913113655141913321066581638488414061100669826911854783130988711242359428445984241578863469186018967857294577044932761907957454223259965563707210942768346114349357306764696536825868863410872708952072134518273573912669591178744274573676257890477509017385451585117714543036846425845922816992721124271600936729414773946837897626287978570859279967894853996645765759878534640583785521944629173421665862700412362655639373213614976469469175315697706346320672924134339461777712967204304367275669872359526488069444646764017927430215006475077539836389211636432029493213533508793598244166135277460015827762018301235502292953010995094158682490042572250363555147298519642593625332592972783374204689243130725020002658725498831928934263765749566193965905192254453706195244948211089909503524171578576498922056583787183788551224456114861164336486372362348813129354091575560262854751189158411188654910097811780090566689800649059712308620790859864909353387162037022004402739757272884183771123482600612298635426641352151056650559635835561362080946383612863795116876994053472070356812381939545534285535020969112365552130296603695639254723483613656486669943825585997074831720765418702153648539892764445611571261726405268251730142754754475267493150714307760017520916859553987023052502404464666959537236322847437477258474719992596254936948755845978519890230970722771088263047782481763231464803848682444254554709182673138400042682993659154425767687244283509436035789882792685137799841517997011240325876682778178730636413402267110899742987252491751836015718546202234159948605176854351912622035227593423454264414337987958123941515215641568898363181335347371798790433723999024273076051586057813558253646286033621760484447578049463945266084624178029753013173675488579073463929925100069344443077066874715444297174857068962575158753895999929019942452672904364859802953936821131925138400119393930409460553637287512339786655156654755885647327859153450414600335719894817623927053629885684770745225711854757696915738113435512817601941124466759787171762941130341592417595654586993411371665054006588739789664469705923773575065516434371287802774284616381585633656246965264497075878902571951110132552354751550369201468662190445378034803557940119397107017567626922113915764113165463478802312158522416668311095562739040189989358033711913451238228788149706141512941980727740428889713807169029028897622503693090737523456039342242628227300019334913327469164005809071451769064160045692161993647232009837033704570687189871236690136775472717719098288838362006007346544691085957273295451200866810005552453983973349393048683680719972257095248547242918138215862874957336843637673279482235222576386589006980180321650237645344649775658787183226240610273717631912596081679822784860116567116334798078161656935650917655686573196210809381048031581641686756061107757829853691926903139628918004626148075419675846739449641159874211410289505333650727633791026642836753740613935945429405617479806436363475202959368601478450506776996894723265338704958296982855629563441423184942448938945396316729647807176958773880241732319305865976567353482207076327739579450509987565986531236055073210660878202598271792154773779093430042138514979914519159940055787626218990818418610706087478871876530382918556439000712996234747475798981694312958267433950383534467415152388011082270676683982607271472848610282176265521209059031839380381685956064757575323271992178208100227931400779138201632391133926484933273090466840007581520330041954946506385995543050738920630727280827934526975482291031395124668166691056330519115098112028750639430625754268122748474202059260264041635800474296003599920520480005779340873260316439951846046275820685761106184848913018381095957018823525907540664048887740116803658296285173471979409828897803238254132003948241346357995466758130606225357313017305661093632559496857903243344739921317270085203386252354480952512145919035378322804317089391361549235065018801055861466458252442504941543255640953543923453419291602848915395933369305379609348217435069086335943819988427535917860282614068541472118803207325633760669583562943442269745254066794964977326333538476026051478128099604624078863981610931218923939619989441053611714874824468964780613955532646177199585911766727941628058431244647227993515696499629593432897436815951391739245595418437280153519319446488847025417465526981945976323552198070856642741519739654773305808691288013810316138732064974361615658416660728849063096826369924354987823532936469579259994336663139513198194674050839224644212546481162546444379501292371314329136002587900328799747767014319202139645880765602607572224582293614122315157910697259195494458174056000663507307953731185647831572836020879562684443085479937854706469168952542728818004953069152882262062350005375778031295362984737411026805265616102149641685950725196440859859131239840541461488626288248476236971793805635739315805196757746701442420911235544919503570698232352327944254699579042591982465054575912206447787873530979610260806864970924107820586418505975382590575045888678353931843041168900464968024086998116057998800145544850185115626055176714153971122157348377645184309977465254025787956852342029827843506823709195252657502769160516701018737861535016249277497574175718576830534185117063838065459835537332782449412084811169672083867337077658353618465298818067423764400784408078911924187768139966803309618434039771264191494703757189527605903313775121395130217084784646364309877861823536340455677430937667044651773298143914947916574450612733898951796216488921448526361059127967077737726883977424420417897063246775828577091285375481647694847369528808238545723895811102685101357505178798495366272203580789325314376844319706155326160962229001342250703564167777600807787522171012176071170774500662271993853928247177793385621428571527477875673018930480083806930103488730732073288122588147015052313463711446944833095659847260833818346617543771853764017321274625209252503856802653687316703038738653878691797667481966206364243513099450839386343677448553275137320830192250410439809392749949614714559002817536257578361614520346407913941554298812623466385875867629796939075248134838700490901056232897825445131120525684482346113134275840563920811012907829428385596427077836858547711091378000737306694055488466711005388790029056660027165323223840250544981210162746310183377099644058250029981805943747992961942423784168149101372742682399114783833484058368381635338506270359101715176713022731081436126509849968866207629281178375881555550342400385959289107840791354731461152805126812837445375773816272168698428397629707129231681420165353137680076966892564177019115572167470292239780857909331303351493659725802471848264498195037371824431201177625662180499350357198504460619246279613074082322423658253907770661371759654583725101844040981626440690765818214169321229184233199739841510634477675693355970869815063946878426718033151787523736326858369262078532996597639792870585388482214119777437712117254632311971915584435141330432213145513280303473283709618259605427645738175097358373378599445345278733261350140119116864241293000062900153077553051809810194564507089982573602705609855665523669541415986114866322428336783160471922331256729772397272789074122327528133312462785194980138578552889973757031382627761854586020473503911988044020504063413318336009847960720847164016524943470069804159260558361878931795769979222233312768831760263417809526186111164487576300451095276479010600127817406300698083857269619443939345115631599259801944667538076413181533915151799806794563489751276272029874639065864369269417756922174817902052846911429377606832905306499273275652113459686769249172588724253532568234912420457251120260365119658488730962510020745297664844415279569588191150158834749750899627729784255245204034272932072482836966527036996805233324542233103344732885491612956755981411921744228592299480687057812543775122403221653186275016802409349926540353064248000995980873402029626461008194589185187962355464722029405775546771459311214344651761240970024662773527701966995600784859338012976445271532489630829761142100388702552233162987161094271259558702767601210164823146400042036366620255020180457348692150372029980181094678962659541124815337387378336192176808199143359938214584886754445545088612134272580488884293743735757470052825408549581708180381345665846992398151849228978809368880001262066995634764121271464194794102515025469195730278143424404336854891309896880759884123441835169494741176157599884192180834131851682850514358728494741937536683697054141693518090456743340028527481960647687152301108742188080038147026126411023129266472282186794276396635088707847360751622119613741807371685435030391849323250507835893513547064240429676386220192570504142719775904287114277992031335598457461155874427758379141940438805816498840066925945519429703552255017320560034635917525239059485643035933692687014068786974079107961423073453550965141710518907118275177567231114982259807724745512796891709707258972901915686935280810076423146005782130573519301552562289604117249705831314500510146659060986954376981874433302739423246562559854897057855712757937744375568868028734881429966845495090066286079796622639419732552750212266993704626031314399146589131527546835926209780493381810456173895360062905691740840675179645477537953275395579438261582123764594349789513134296294958692906493313326987396285871725151158993648730570929861262417983757909965882564382410652504136142812344874801421494763134244092953373736118777207142138947074799138329192580424800495795216970408517959090493307286872928426183418112561352222906401819661529449534260956214487941781344842645810549770777495003282801457719240161415844669015213548589407285615125720011095629328312280193177542159144287636387268777357861766090464208790578554015180493506964627400827871219431389223786766635984648991004191851793581992687791354124825732046354478714474307126218729185175793043728722957838101391935891016373799356070282102768181911240461959483065919229192895131575429091232559022523592734985202241756860930389976091386643057400358034079097148823237820035850381914138598992889812915692714477525372512281615151453208542691616420577556636156221221452550815403772137203140100123847792935005680244331482878240709944649093944327229484563674410139948668685207325941708334955447446058287346635846369542492295778151160412416994994896832634002792627241824698359934648426440930415036591620693824251524065938565980607326441520917695337836034845835181193125733863244503399704712922094974231727503545187354597064920554294117994792893288847266918123676629618380156550681049156011369360161450306603952295137145251285603547917645665067821914470962725279955289976386411500538851376201188224855755232183646073906094430512881089649843673232542723252436149805234273688012741747807258540550872671144172904073760052254254405874218916714524799327238803536779213313017786444741386514943365708961504959675173317266232278453507668115833334058713294514433584964923244141772523031617790014823574408906542591355972075487861559213579522756993143660107977271475810207768263898145156893278049147235091106571381096255748509388449207031005311985971629785482190683293315832029281231763345985080069571348450680653534084371244320695965928707035734524739280811837161518345344531155846684801887220520537621844472357067583897047817170505435308412211597975415122026598023613060120688633517885682950664626633934719830765344776001514811553871539702363263522780715663506874843538270705310804002945282496394459058666246914945411514450234006652816458044410896940573387614598015412547047731048778682622313158526066115706098487733156031327835392483098507739999606356960843444977744186323910199712498122631975984600481929577064908939769335652965094085602478939604972052483708711311155082714640053364976989181406330824387019829466447668632760924123681938709232070768807187359748790707811561182133106541293613951917927503524238101529282991900315660726694759450059732803961356866357828382826197417305425313805810709988350350931075914961868710193211486377143076576959456093592019830660069618036198455131200523744327765473688998022774803375517803649383434511478094960441677890935777663889149669678512020928891829126405789282786323818223744065587257922944807039331023834074007789875028391713605269885317295872280758586982095756383711023571012867690829628610019592684273533204847380457287846801384082458734509181806804470550321220633171703823557031607667209634799220232163589740875044827311440467228039682880907839061478942604034445883364292536158432339605746072311269373270621172632813224737738069570705060941318282788566599263473086353815820753172493463534522082543382395277879032695206851960334628313950270859956983722226395020412491683673704607978935996572833668238007305543763335156334759431606139511588076547315187415500740988852178737663569808531705444254632498299878002268482106345048001978356130768206867498269326927514852656421802798027714050415937596464336189096772843156795656738324806862541139894387495961971010723865367889932515204102633321153600697185968486061048869014777101578887755698544563467232947854800392098984636686113904370480342387175268206975333617550395065990982248590519138153285609485573655384302608908071952328525875041374620893600561805596054149019902758018457882587117440376264583720809810346764971847600403872721405963466739440924192992719925539967509759185526946301983893009379698392857403326674113790185237051859710365174692391006611563142993631632645671640859166649960104007778787197375800389710770054494734367060374592383012648058862745577675387434603547159025093280246486955940737815284070890245926032957671140854768894191816418017352485896560071212040655888283259281699509040402940155149461882103642339552621503714701570336071055582161777930394845049387442157156226043254564909537737946170257789563531503710639191915148305354555210289428522512846513170803802758093861391384504416467990491614647733322865020089873506864862816996922894962888462077790900967771312616334001101858129575461282735979397258677122185565123238340689532363729510954501616760669904994224642587883185357085518901802071178420080204486934284714050311603303447882319493487458074953168979176148094345831837570602741418405987295046468375382697021594167674171689930106947603710129013106962179322852920493664266680567906212690453455803342149264100229606157421092669885921334829358897947902711694498259231092008034125535938230718012893733613118776178207297964737667039259516557561699452773655918853978419901626285649248882251669936063636320446306976204038184190774904890055025256162739108493047100910891829965442105910652013204916136792169661037465009279068501117967400002956223531944198064105754957113951452189645246845086384173100712648216949459544143061491848613751560662556721723166634526146258269287305771049742406427993939183406568339047187752299678452782205852749287110806885495404946561638640039120137425903449534102998345166247870400181938505784718734148414209029377326119401419833147534174734266409250772934766384872836677729179095123942216783480202430289569711914886088724322007401869753944431666481025401424444565025555938464978399369658300588755176441092251284795241907385599467874170713591822785239685205047349967582934425836698372210183009168591742351137040230140438762928157576364722703219958366450450923148015756744538452109397960538479819445392558119435706403751053554995704619396713916902831155450235262988985953370706884680556067995580076584157785707291418198923535701587045761982400951652990007133782137740451495553728110683443228788811327590701822848767817672440936849051370512951580602885791842446462151506429249138659654008368074168261984086715573161782206300794204970216986813393594663789445306682843798084745930021376711457578152502005373212031835739092364243876729015215858529490872492964482343740719225267335426664158099571872800141950564826367276832045891611996222005711781824120035537060136620509925223154228521656045258875567108968849669121998647572472232172720320198070561963247518895504724162689755925988214059365918525255663002790860193431773800586593240227800371177220082683177003441150802236369608017462544574523293078054916087334185430252825575912883633654346705045393232023504832833889282219778603523508238898464211189754244343305960754895441372814912047029045012674531230032429692096054507261931236305184090224027831930801647975407286290012984831265867041469293300894525002940476843520078977928992015115485355275300020508068218995878989918238608703729577650066860131498727238184229267097685593478380873982221140021411745581828135827347837190799130218538989553749247379381885037901794597955192871271845022392669521798726120345515705321717905783590028728844956793500557728526996300488555453314601782490971804752903707413160791506583258908563666466433951774604834915953112923586868070392754603663574753104387571069127637661207696672525258520417313127660316393377876310955676094646207183115084202530062988531696414553084554580295324452778159846149178654460360127272268507297298419753250806193439363287132812556552804633565765085275488058192054683556312572991766219224095622114275831896935952934856881704157022099033514158899996321063907954440912475533414830746120051293117892220397577350012386006669182644829334664614270615648413906164120111329857935015020950055106580859029729949392250773080547558043026308288610753726030562412885379315043508426537003449286274374080799272852522227726071175152127817805391229993882116437314532883065321616518854593544221257526965155523094647817509086428650648827112446537595827308880136903102531884976842342598267762429294392441255779971251979482464195593107879772195450975214051562271304524709830349435106912458549589023908709841727414871738213689910908855281728631956397696441603518382276221719076811210511504478861562343342883559006748357706180976730886563646229199823751322345017038222608594748313855645416297402211189906481838489291718063675373005432653715236736960099588931197585940040893976656425796932478276118860303333752438534369901534480429907491624816351021109757552181860350812413807025514561779841374596489795731768749968629189594514994429406169215857908883747544769686364313680657285554180318643842092631687859364486280344049326741250553256439985746126035195499733803631841803117976027802685037301582208590364814175580697200188149801606231097742121013274525725263748159639810915503729570241280053395549114745913948902686636343781721868573009946311111198635003304319138285960748850306116446981803937169508465306525509966882574978673470393199773740814621959939527202669853984633364579110327589836724457722720900621728170589755803757477933562019912089235888197435131424949575500710180083367778411347068455303029388502503347671596612674157700851842156837256255740079642707559559950101452505056398372132717760183663105080617345150331655520648286066618932497186072660034276770051337094201268373197165134707004129797029404208938335558339772668399238294633707655190221284294461050736211787818458063913796446469026045852794848397086262578514624136148485364276351451526135330439655631973677416529321115915357547189283659935190788443192727076973094099361668333878718959321609938079440536259821433208550404708172755230778761664738066909362052485957315747864129832596642259238427364854230417362919530430855205661820829601383565630334704157529907812495166738695730726777478618545993157414702568851318652292139004502587777972961191956415170522294334189630216923645981949649173889089809070591230030395839988739477523021394109444867228296709595066314143407333425911177872403344651388297757070032410295892630715160884583945876793027270545403697354480898721887349606608569240843397869766503717291697801568578428419146744375858275610625990520523903214104260230475154132386372110722164662106126984112649717270144586959494169105401637483696586688844609873562934866522005639793301253315828222558193320073002402734173158667540772725874728424720010642710904115021541468041467485077076279521250196619063075948111388933317406717556392353985135475463393149857165711145565174759246958206405088374097480981184147046262002021020464686292350692082192358258991440388070938891402597193250024608471577655483896028325394752863421617682860455355785773733945331208319362337963677388155397435385115323342648648620995219239668946611213738832427197548970170858727353090796679893492259402268711380226217740790102600539611464516043163394855963243103641921513710112904420104588367321659064805268946755553951627239031722045949093923276818986698392832280814792428359895544893959315254708493072380257167604760925741531708262765291421181061568871205548626550596404974153753803637657048416037027238485223734368189759086470306182559641670172021521827474986652777400266858741158525725695878395206153531509406360804628612375250826559445054483502823248371254919216811050105853606887576488346595423575741469982928131318965875676726659348180237817089737204468768124343434786010737256133533719890265688056956062137822503157784600445851414992060296497752166740513553169675002722501603580967690692506810692864245651068682712265177797441461375695520453951662217514306663494100556127234495745319180033567374724826667871606805913040225846161548458305395642538495362148646523667469604916222014357368097823713948276617392864447187827533017539297491698471350847353303999422076224882570452703802770374858755011688739802608511681350343981730752942987964314343869149167893032865147104853223878403223897002857386568953447791607964845515033225469667947152486796386748377823928650534202773207824260414032312273361965506052325761916223793048840943951574710022605293838442356835418158582570653663895105887085130045301566849505981932201673359957818624475633620117330375127151896245167766210992558004618948668035218725197263128925980534384269426594388504831752774011228409921636583513018501657208780621014483085946679918555692122992812016043952473244107323015758797988645603437582813977989080177064019616614582047974800930379344983429834822281670350791382454846451739076045961472170085650025992071234823103321990405972330269821741277551891577217466448742517715388173230538756089647700353264602903172738019566043908455812991246440426122577838202941964194614362520596040292623067551425899745257079029413091677964328711817376462284645777167498769622450840481154123828722581838638153914287281533189816504754344372153446861867831973342990951695961321467466102839733291682131492678528366615626377903887427227710966363993747754821533982161323829335193510951604901016903159970945728685771125289903709393290620830146993447140586615471489529338795691780017966287286577200222061143744619563127168073723766090443955656383204556579553203451949522893678135725178125847232840670754898140215842467649893758362240820937492693857786025014934037140667731879670675622594456053681594411444333006041271088904939256610666131971614356517550003146198220418952998274214271672029285350696381941871048236232176546065456415913504341599390699997181256506354365396399193300101617813636441190463373175029835968967866786290816494372875833359397661341940531858554440296711404082715240345183957363705061414703343228767290287538520057162107923511618359557628267270798774800171709861885667694398128859045554509788128209397842632157875504538523848926638024104319027012707713569495297740885126262934396975384859304054140369562607958149510097179280861574529954402552707409415880260039697334386974892654300590838378672162170786102905805978538833904001551757964209419330722766318196040113291075430561622726712724778973091629819835741804618400202884636955436713809122636282686492630748826407849057829526755118874996068926903156886504955403040236555254308319577115280271962112006868143643049053002835701271087355405697493458016230183998068142531123186554950264931425471816976503737842097814937110637108236053434347831311668319800864030602947715930482088122959466574009211184749055076542821578120630876278957804082329384971205080945407844474003199786637951837465068385039986982772348359887225894348932323360023029174472307361267881824299281075767309280360185565129962321353658677449937104541308235815015252112097097386089623936643308218229457600273116746783675179506189602308263833137807017672326684558702048072625137809335518878325261334933379073637345244998598960012641382902852656529223361387643177355764900671866911095290419485025235911031087833632001275665575246018070567955765777391021814012860814909780452684502170780195143249185817151897695006342201034402167834079329725347937005839771851744582331845901443579601196285733411882904375539225558295757548948979364630999153269792592245677064682875386061082450807978672035167973218870074458156713430160975941296087780136641533283589063831423240521648879886883119965013722631145614807386841657443787393901149257776885857171706984666087740852778095300314680880472700238596065841892106846677650382668132737492592591533517391605549451619964823599577879472911340722659669313120242105317518462688780201440114002330012287492743678361717351949196583830160765591600394577934274854996898857116040857165883896371659762629734791204954736484092491151098642606133710561506924340722324527930176065988070915068432867373505795108665320253848717028434132136342141066988129006533108705240990372290630588004524460574438071958888547387383271132690957745623872521905389997060751806455238402334303001040786022675233904444400460545850621058048827222984028191978166744624503720673576347585269717824259853256102212211157243278506551801913050876449052082993697871581392939246794402003922701805917878042693362894473525382930442288804356394392815177889302453389008944346508125780828707341774654125428610760758096762317471926218926457317689171308039811094235740497473663321524393642683356617677558362109647689325607594166724618071116792333459832092501295903660541048320082852533988949626959267125228229036668721904347204703634618283495515370769132261725182498015791357480934335233996288380424793752119331367888775371341771686994674456935440645534887731499780879106193547725276851103306444192694413783868502614483669355715088057297639157832290633520201039863799827932974662717217714698394994343784442167322690331419311070358891213188376853608444842445297984259745634417168352506690763492359050036762049423254756041658880538405374134426904983442190827983580869122873179342531819623148337899158092786625689221111557556626375001666004226440449854037309833977789854989222444462653629147901065024439944477201260093161616637035306439529740193577009036949888690551708822494002604685078495196211605620623322074337641500073047018039497639282559970511047784880941192764783530069303168882202992745916227141731465403429094775449955113511336122471425340186588087323162326812052572268115778227477584577236787220604150669886399245255909155423194736684210161248994770716699185783869218559615332748557910813218871608803484437507119244271145748426431205217405285551218993416844592827726552650069218932137052053210432389130671244650544443228876201353476117174799353060826477490552244947725593186893180200419206862929088853643124691027725025285684941527543731848112958015253369327828152402882056180580857471497428605208145456892029304209069033771277650696760464864990610794813253564787579216010545258936319515633675899011161522360895510743734179763305841544551486489968663799699946157664664757391002459431879582234218733947664578021762800976321987021300278359516608335175060035577296742578918782613342198829510151379325055282699407643132193002640004305983403004471873281556496988112025450690928760340964430847613457493371273641862267931145740419227749008890138439558626408822977386537268407728266725738384874874463357229123164674562987828317219827567717436090957543844127957353663737521490071853075839285332311524793193341790529691692218867100346948825853899926603101005829039395794189399135247506166189587096767578248758279402513888506221538338390785611381796506827215040540691883239320427209671772030254268240910224128987275809056769673162272412061036009018347148426109503869814840477197045418414376574493364121844643744157536734474182279563856164382566179345842195628445784828254443356460588099605332956134078033040596818431973186571814333985746324827528902446845898074204539054593827645796090740081177992846482575849524565633230328812835639181000110101162479067602907334786446204184708990348501886479314904165554834109186472526467045501969807947402028180187496657555648802527092708344421225929720003107547744396346207747298128883249979354482874757672738358684263122021892660516243820084877533992569947228666917379497663115917927705775204977554573069031772782158646723342081238084868589894238383003384688388176483628154779665294273522730393524810343935916057357415258000056203343293566403963509721405201551017249220884306981105751426352730331536380355931581374777369118992693085833694903170404855119747210341851591986355060722002870567805543320605004437558795578491637853225844472004501723542299864207063112867292048540539274306359555742679074369360056418630392328127147132181570818033278716673504780692854559670780190014699061084837099659165770847596238587213727336234873963244237329195681954899741939733540663405684335382557715149051163607335571954998072123318977410919489920399892527896629763285508387648769427461808443933452597233421145232705871076032601278100948805863026438696863183130408621618285172394047189695203843233506502453399433773489828732772251710990824796829250442805380461105660706145076808250581847666327184588747670158996134587264035352467163006775187096847801620806807399667239650124715257093781311232617647949884328755899304319475859770238594851391061010357496484433654748378648153386925503590378285058485601608202717103446404482229131044487872541881589180526853856819782280278063370508958237565543501433219815237764687994850631746726120967479088469758655706698838308605737792418365039979425477268005562362044788216302846067476767114679056259624610398844983155493391403356513355675977363214680562070527458455165532400097240199347502863322190998669462941981879256136003687045663710869480029685860690727891928889026856906875293811568119841386696617519898649245726989164755888210579592124028151533273063446330690052863689231168162693047835961966980006279848056460111775286238614878549128570699763780328468194997727116109363691795613123312984843926780459412038275258200928243176001148806158952083829815410858699978128559857199996900011313743348525141184497803981357014054310771084180067089980602102622655947867503356350428699725315954063015179609639497932203041054188053681805326147912350110268494000833055303013784871250564759415633436387985162837816513216954739000525176733883018110497030416955569333579590352100154056412269255904980858599321135020095480475910560998616973380727489963751070131482441806824368707950216779388331987886113835558517941853022835290385134510627132776974526449350323817189968096896664933875369474528583497460397667428026734791535286049667873933255690177005342841069454212672725224091992644901626821517221975050653152820797485166713078634654711014363510249961703693125733181150440479003728968457360179767935716128226741632943395651060754562030204567043269762670994975022826480229864645321952130353527988984173794993858434721571015235790062319070937407400081351821132631244505081921691123656673728129291038221445830391429008255121359174994493802357925545541302024639103643162660962406351885027954004414138800186386142140091352671352824025121269581829053501341350934003064384430926690355329962178821308217754590686618628156603510112596866543042608924130875240320900085879910906717267764484185743204087724171087820513274077043625802659954756387429957092971673221078920183387774115286452698583999093358853568866630262550344732186446109411663973863298300189685378925758102447748909300293905394817910014889042117832662855248179660408435584239476146463631330154192899147408684181417779864834587926342010708765904210167340488505940845902428723270433366928108914853158533399096728777542862299311354579182044930581981693320055888972486149926231815357241643803643808017631372681696635265245608126837225558425418522825859976336873873285759071191173032098386653207069432339293647492326139816117961249395446126268308500478335078672212787746157979920057983580040590433959506688559760294158347079583839383060728498913184483092505045780725732386426448313001662208786629631226077956903461255457768004418266129584926689167687612561611158898061495760876430641693117407345582778620744531564652701012682383934719473774868295208542815611054256306282652944454720705119431793067613958482631423901591729421876516991611017363519263519247419216372520020366596467508874119400042146967099388062185333028552754862372291784085420154018573460901651177136599525170883925442087692254766165755110935718152579133506067399275614771923230737991980980437987651976583109031032509708688078160768010536083983734178808499466256169681503127961188717917100548784759658605497882971141915180679009836351869647371863810928812792289842479195833437623857734109811135965854935300757832524604405400096225541073463415444012093461947516485083940502803982622949615664925372995118059176191724764808372151512416035622631121261190646600560070847528771662432838035468930982080225063887159995338129871685094724049890219188861631178559219099379651145472440746123171063934459604224841279385189932472707591461002722581893166287876201065819012896190012381271262032064153430736249636177615064221422851795723072672190299704196204202960040471001069284426033562059871430428455450774281382014448722757920640355088373216023226873546720624558218853456860565257321054661693105394437660485534212215050489682278981155546184451492508438314469617462694007525186478067691423994225785500182363192212067457009443559374699931634631523122511146445936480930341950266006004270843475279495477469861667317081749579612608212331251231454143869558438617318659506885730963467875027118955531651390847114494777311237942030620072681093668236508279897916853506803269114063941512318247130914901571004987721650951249724193117746302892078144769953193031206351985529610212263428348917434017639814721406925324318637300122404835424911398973447636191396108709638482003625807668784454852310686515847224917587821788368343359796482545916082509778825084583409666603678566059885026466414458883120322999039356289352179975966250910893067041634007941148703426653928984696297561830146713271412452826581334499507037074537030467760207875112813406774515484581389829046954815987334385592016129701332810078449958186889191228610165421873947489448893135594258270809061299075621940580164577978213106176276919219758683449969433225770480444343136040600056489095864290022688322314405794075189641999892361870204190466265422872181088310676489972264844092273499237237158325379752592099727030626838533948968761169138123199332930658369214585138862622053813672028495528747110796506446327247301762683596199952087675061877601973687142939951075159518807152845275145506598290133628369497613834557638258216910474083387173246045944455630535441521865905041198108575574939904377406807803579142145368504634670253531742523320814644664074671589638058115649032241975643547593733102714303909164288810664930884745117606236107012384052199805564801970424716877671990591231558015930004376837866911002229651772304154209567853025129060643983452936817557820067201228403493738035177290418334708639865723197510766253356109323672120081985802297634479953130375119950048051712277749195321204670370248321465177185318308813892014656447413977031017940215397367508194240456350750714709639181714706053800313445755361520213107836853291319630685414111923807401342023180256258497805144184178977229467402448596978260445090096923346910366942062883632953237352441344142234457459510630908034473882588575556818549783872333806970783276668297448861731050481618426285409159566511417140517211908254329661414531945818282945661668672606789616900801036020489378483203960898422388098792634603640607241644735187015452947786296968620522572335236844241045977032746846382773353892635137445989295760810051748298387429914674803171634644714266592050974695922580296288735518571199665525283987043705723208287877487178084742299664267194973060655281990960435346620221400359692170614416722272356904356719007231399929324925234349542537747329776122152868916568315294352946442805758486783179104927029140643595641982874219554985603280569943762393204400539731153764483071392834036051039197444945786291052283666886055111518825105987550868046645563935794205998588453306875905831025555583528590758667786221442577079446536577694980816691252732565457321945227636342121280960092657324369804003466108646176410353270023718807303509983020092898230513132231945974976001608894864519420464315979999058407884046702500469470899940895855902419475337222578511441669928540779281623491379685985668239385866180782728028126249021295646419785133717359569271534717947890912663583016148825345548117253487622269878879707005093160738464981956127749201706105734789973762328854074032992609537399501359366680117566179237989329329419905252490532516337108204164153485304227268775548224415800902977757791697717993810723333329905091846712133956112151748025342670540201415643138299159724702138660680752093119613900669345373533885118418724821867351042819940671308913731537283272916965425931283291337322119956671209508410002440558305326047711828621127578410932206574558049513219850431445644998311566597735711390929573542233440147525502908791486764147615678232634423380453654828147252462641958257198853894948570264648219584049332605570474709577772177800986402023683503188296358997214344083627955122836642424898915814038055910826439198395504225184251035161520320965802209133574251647390169467886303938707280821320768485121882725787511663380876789982424818099387062260326489537515232824266250229013216678948456680454761475421520654662402158555302613039387476120136961451615603707763009513055124735456675977093242636709081641002030218525616460741587975713873876234035281687093541666753008952154201837515179057463322633145482837941197957286157966466551204558143679081799559323378508193327402815632065624964355155893811568166410554546026916080083411773153976587995532992601788783196295857394447641469807813357366819654512932832572515034765929538266646476705827624382629983118279670340403804604729474583500284646951338695932140224794691471199317551532223001160010609716607542194578337378963318175132359345188218491340254140222615927773045855359969810741041518409143408237340189906229156847243927408981028950116227513408821390198922560362551488865080445929304400664826268927454062891580953467450525001932948877733033968658274659750231147416425487311086701107144556537443258969661772683770119742905177987252845397432152894126316440014922146258996804037962356714761112949301545645465565116614455342000055157054771207614277154723584712478971582658192238564897831639621907958851412910871252731354046978321605105266252110836494962632796814623594308354243827211259678132101947050767696192818102557391098125428494833835267204754203918705574262035656409543433719294818812205045206574296090767199034237860688649690240689312409955882118738012493944795141430529652631785357603529069872098357470185041295377756004897047298660962692706721520391689939084665191568110594472440879845234608438247028878204411061797975977288061329346157981763357737795899515682878019903766891151925067388360463063078973259622583093050551696222827944257704288517939254970418979138284762510619692752867069565808738996840736337906232049961631148251125568646789591101677689660322738863240271139388623224565478280057018979831458523444350245591238182395290111121168310495192708578628728061155095670052232680656627193027618342491193237141958958638746466131872011285094250986904163570902845572081005178358010295512248049078562510703705279911730390370008058246296776865921908854868105532730685123751566728372226744197466136449725622244107287155142616666440715420913996776470013395603040217646181528511006909535868209159817261331381800824550871370754027687516737357389994743581506357572297444040534341551851768152712678739419908971426835486054656293237174854403778729437355146523709413560047269002164882999759994854572687856057271035922068810461233137777275793081256094118444156636827913858728386336441625962096116325168508404564281441020927272828596684539967252258207425682370142126982222998096308612693160048565109854614882332641886277104334950194559279551958915358937585149692668796994707728855346069213885412297429376775156607454113567927538455041700571988666885217049886556796787922827157221906206716809660636652239224867421840482954202099492753815538608259123604364476532782824232020744338890615739868648453127036544431291327637253507576635159096795545426474583036516906571076713175726217376130194497970524381345606545171616294509340325408516950439557669854041996597094378871555247025779996022297773816974136966783485578567273743253461487279445178869455060910736436674970158966683338446184635823112820438592279646507556337547903766756774552953047933160860541159515303835508237003886833729501879513501095131926607630576528954115597684840603920054883081073210011549421105591940056669821198614598873123989037701847773049790487104480779342076921389918601045644110883478356590621780888644107545612532307263353927902625891852431660576248035245504051672522131613049411735687980975955476872483426998268408890182470021399598544113812127168272758672241987769540372211767097672802951026200625919324096498308672868275892956778068427140987454944617199554096082206068338078095608766760880195831861402972107232993027791683972277008127170273507321307693538457864481669610064606161058349730415088052248309017244144876826124912149298217906253412697850305162472588915783351287969285720380691232464657216228812081073788328831793194467137442620910825885958125148101313959424872669421113667688042554931436697117127705602497682368447264571056521052207667793664664648734406217891990387034030857538511080372029612622748871351296606929917191441837824907215467261179770703117516242486204236214311246732909769528139690711794946016649839372513803762254014479347497565215949501277805464546528514371903432874274654351390426144831744304442053199342595229127722791972662299479329004001718587538393773026853538833876121821523605082182761112056915401532915810530268885178024306802501083127097212944466171815500892829304088837610365938441249934451932728241030592611910544399839530772776076631515894100868784615270173605764721301893384515871515161454982214103102050346172167652684536500742841052032953067038570105568134719844251968349859952377604824805882149101157980959175643962261962611723908847380108406047987541029247964571899604185452632168205463592124920579639168937357677363258773885941928466684545513991140538496680498417254530799115326011744629595780246940481087251813355147750209513352825996736421668151156533317095924344856482437649435485271775184232885034568788400684429845053359212273048682282668763744046765232667377363550864974503968106800028785515783150068535289020106057494324971641560088957130790405698901409778342773334271861940814289544196603781250892437533834251885773645460482508918280714646024032626797391677280127868963904914803093593238907486655330547125641681883392983201948594529438767556177315234045262576837072444790660595008969434121967336516580297542182240042184519108449131189915000354492729871837590303234206226065886035554657834233694224961719077586165578464999553751871710996013143320006751431015902079989206817385669023739517141077674133187317697082606993537032470118240533497855495455964787600724848278998940381816834332119716264483176761922877753603825828961215000546442550252854529174789557135388883954259703622722372703568069166487220921080855218806691566865276039110952894186861988704345707856175407922398109410921612267480089852234953827135232066058183693751746434368458049574027727082063986718502858716949457451602290370877780222195936445127781973301098995571037294195959807091339628958435062657040264826217265368848912642238228201125108894305969281966192183732449656712952255663149389991254631514148701780192515517252274247481798772569204184833258386426017016136336265345073057469830174063509186082647493736197834417831487883143069617452475851621322574362650501348295373629734533025805367282423244272201154899856641779199800069296455213877119983795441884372240448253566625830155092692733402264316467503430348338904972872317023803642877083436443512858470664187771131467095983073711383859659836549801714784266807330400338120829862711334789343994731797254140324948866981648691288984005111380674506744144189739265331023624206878205661575518206586276697884341332844185081532504904746626728958329075543277985911328103848141117813341349955150680149016159509501724599383626757833031999370818501818666926170041444800462194735370353036952404039261363448550874066348893641300136772321303103583748205702077840826104785441622780446766899745544627335535353621797885622929957402083519466070395557516909674544476065812545623110867139658369105336059820248161549669249933954910758250584323135553299936314746262976821580638197538618835520219149245919285615280496584842411418374673901415586983451570423205085491665281231574459126936196016687748579214631543211461827655659068068094198587421567212013053627539432415581014664813478906701413047800555064481305770692889748555446930092188067287606239518756666745003346046751525177078678342824317785808615922553117000888955877056358201204770233601118355844036583815002148108026965010659896633731703774925942602166343581443117023639351474595617397151815467911395769651671941707562175553529548322419596588352739283628743639221860414558491016022128488110434006190015715400404437505886268707976919890930654363947283763948870281522222973270234836420289888547488920918226312290531452316012693424688455358491922643615996202996257860876481979619767632558784097704114635241865529379449993383778226493286355911281864412604222157655451104390965390911586718676366608795876857771330557009219484493329198295150095013648624662802602921861882627749076817429478794225570748277771279320600639580863605127204056603487154003983169740965595542437044632201420520314669742082685617872012878537511666283160375152160887383240742601406662035860302193830539787155478981048104505076689999312305363591337658154294060205841088371944724502280164829236948926200955716025947310058453578374630482547474308828887232320702307811097337479764722082416303878687482135846530687860652542101572483462338402952712141331748966966547025162997935256428388656107326642884249567856218700605412735725671552901567961648049076569165925458229031864987247089361028908661947982999486829723801791753101620300636231084576677837869853144662552244896925027350715037293129393616417090183147075496978424573401930558519149407094878756781408597813974505364417199483073756169546862519866127591121074679999767156314526177226515237480535977094463179608938690696374752801891538276723449149151308618582435991272753074750149904912678165853211627887731932023814881348650561054349659608690088191364038189708138186788643165876900625452876155372059087038578953372613333975175845259297777365793196659441292055420579414608804040249727048982681383856910228777209415074235499249596518389294558233016888667705934463797330351383081170488772963157285451782472862458306157131407869215453117446876147993413596628127216948029687978492427371419420686751102327287313937092622080815860888025647507251017060310751612497546478527572939274477328587973631327515699237024931417586796780492946392121143127895885189020219021762428420343584471474159146584135463798887168212802796080416070959426064387601464500892745677723078686692696204643382040187378187766944404632448403268816071719942649946184925281192553091214043769293822631990334872503962512746924800700240108805814291244239927437636109279623486473027536765153418519446960079753485344580943242829009867483532443556834020639255020890826620534569186909937680723642911279639133142784938570848065662873628774630181877161514178201648478420040313905485878351607228221538678767147737716102124487621826130538755702802002130669696328756893418313835138952575665237185187414072349946591962344093320846888887255812599153072388397902241024367977364405932472885937884870749728726238735916615254488939353087514024137179459619769599509627586807746251530928833573884167166316050291917362433992236767470364999119702199870903391398267640602944572712579260207522269479346295105084210799083196130767936401802012576647242357138717567353637187217242900352143022443534790705996012026909205189613800549556956956409772925814739530469750185320070138925125389082136773304014908994787254060810991143555006267437503754578447701682068448717547536043604941819480315334598365380955379642971214254130778088475804690299212969492196981379539014655212185977998686081059096292339425177458965729392962692284831117061010511580522213482014476857553267870766761050293671575988225431877789289631023711136295449655060813561914314086070717162290773188601110953978552545481617643477396044629592575112857468585200019373749568550799381513349164396028978099751891266311941574914076013155105004194475163063006768057799828090798150657070716282262083698695864353629497268859408880795475416193975715414740896807443481988749163867735534046239337001424521012168642947272274657052748571618153908954827057214827989113460336966259549092948890708632582000340139849214943226597500722664397088445556674895632459670609274142860665245513991411686663185099797143873224112935491977176704818472207665592506472640807706416412280704004444306836898785550732360700470205459319535468329337855898279301653531125896457119974915675839582018888843077789398723070666950440113838132108828636984772409135264515119023001563649697949866455754082102384051551868616265156590012902951108121207824512762376377525875020802733870081802041445137720831332027676719094703568300793527920889308853579325353055322702347534474406245566469981537140677290759954508216655293924465830054193696420221391742211681858432004317723507727103103387018377628953323414323879525197357756314325449112844607111778844495887317794704735079201872524664832922755973013748341321259775969520692291079396041036942847218457532634467485490400545272784748786431013511204478069912082177965021942714114100304203547034339721322548912329101192335513438617312981553991063810825147442428551591642224338422064095672942621207918009760449108352571176479099089099958504939428239448718035412114979171774216731452730523568707641275598167816840887654833165999541915107867860741717218480325431736703603807165900914457620678216488082749213992711326850184332876304088383929046057211975285992704913197073374232367920411367363968284211585702657448519608839514785916545787807503619388168849127483730641345418464819990592207690074186331088012365414831085981171549797298757924772905073941931618545350541025031852621739124554119972457315093836104693881582616009669230403297688624518489945004057635157938144977680807626292366905776671773333604964253963078804848208112204295907160866700877515528589155792561806453922091597388300570843374408491653149404736862727760704241073939342269378345520782129924375199906505200904536823031643929166165683409613980031222624896732236676873626882441516179809287591339438625478323717748361444823047129776974411630391757320076618127386676848332746055339338632519942736306460517617502798280986893321741201407780914795986637675256114158606475851371955900662098761591904372299467002308825506398229047988405697760875693834054056194001276436254970935479796614070474130197513463668210304468274826092900343029085370607324771289535407762870801479995971549004651259273071938588452753018615662173264484382852014627756218449444808989541491808080925736920560125837925988505893773018130062545610236471351994399123634774119310642509503606820043857463407762581274826496500643357427835458222425438888099435742978053836283443283615959968006269090840120793039931057443901994537531725085997444284065715385292309037076624101834093991431708049986156490273736519649215441624138798662089218369388866418012086463991580910676916895882293106542006833200830875537050024175258448454285089397981619623388287631230458035630940512977246696612640205848450686221588558111494711494929142015052782735650365202516915302182593052638417070078636133489742972884642770329008257077289301397844045491769543118719254904199923530373505602426712121901191122245621766496130333137089336755367385737540717124702159342237299310746020102009149307298035419829788981030644307099955813926204074082610382764686582174913766409821736089415819563013992068007023098693558443275813349291225631545251260870407084424373592023355897191834836313213161483591134944897971137567016738866652147273391649368657419311057265934629598094868154259184285974899489424073677482908411956308370770887842022381932077805080151996954001508875989459672795266184748772808503056173998571302074166010897915857788218317679945622312573303847787352618721198281699258804676410416034707907019633900650174216452814713480726340635239687484307211242058918470305751801722257032204496816068158940150470401057289692840537123887410048338839618917130601705813269979421983114614239252696465734077111464200172374756772418204893000062566187776484441946339562992132161885827919466530137484279718411379442049499255086217983761655060856757897299804653311025176687472588583432758752223074919235128368334367542411057088427216702113242644338156644445065453174748879078886623869468728404433831409340043126482780464895132451498202100703735755807651136844091753094145345148916961700500867802721113012333397051443971566233175279724519039666011224724759535927857908175446187116998933958922145796910626531210633011592307519048047988326646487506059578873799411381230721151332007460259404701086814226219278434325774784461870478915363436129679200862643503413049398032665270042672376350596372032459809578978168525065822514292629079361715817256656072224317978111306922509510422464107164977415133693250954977648837303403154228564503404297384511551698326660871374941278911887870476904068547809643442629231749735103429866892878319378134324962787214243274870338162372509896852459774548406938157808769530861318236510191095132895151506088355878658049693539231671557205372919622594980091857981787797009836318359331488701714087143721112480064245363098660506450840469753000613280088336847562019905019808472765170018541159003180132617183028382090780383142627679994741817066942648425744562365066789497110893189118952400238686446440543112400057663865040169623246364778224987146570362853288323980605817259411571077895462043084561069411888009700427711452831647627556356148714044878536780644858363839000142840178124688174521947721513216185250542947360902421858591907474006023192419281254240549622501922681624293677888567956812733334283444273478992466028094323446857100713401496143708519139861019450655700424971720281795031598464110951858057047975505314942107782815312925837407158177555067490974653753865271049924965033543886023444394144373258773922942885118928073952952777162406332684998884715573046772147047090605336638254719786037248624609393728316970047327850137453086798474364800855423976106983669487143290451017803913117433335000901075699044696477316977439009443511612681694043089454392950098623929334948158879456951609045139717187103965106480313826495262565033143689774735001789314292468764476374168059162693953999804081202134554089821262694150081798776707302371179302976555417393947146982899499662006967549731012596868639759138508008810814618914292688083248033219545665966687691081704443571359408346789977608248930473538127427343902948887100750607486308063900205194211749659319025110807396147499794132298059950277417061892333011152415654152462960560835054545018466981973779441995745321169679199187988756399950410052871299787788131765659813083302465689845675104960971541294657838869689665506537986001056222028306833048960286439423347853023456849141688613925680402834858636126727297566262123571108115520892657362590908850241263905235095479125829508439760129562299442866961330932642701819217698609686686435417143259052598899523182412524117114634232084283783772190567707421937911720662007642003111371361303537398267806008738796557076793672593903186325728334621117297613383533428241540049571984644817991948448259998879258902042920144879429250304728845688414631455952157771322558989360660425624839627237033855514682747661153950755181672256482445989861647977328118446799600831596646307690507701280053372678498002555042171561197865701412157065551362292166814516512604937519483105787818065920326858240888767406571896935594040306840296269777595440105559968939939089259464547517051741645221542205379313246354463758713464227466905847933361061472616734540358048812295515057806414185971587455325556777897739288061077417533905264516371534466416151505212579320622003035236097907605494962528881812120433046967025789112616306994986504333377139878163533608521846797147380998202456189946850515031963667122481893233431135435646582144092868805102417157810038926061997504181496091015223897878557005069798945818857781571025396556816560744264532144136984211122091730090434238882522765875722065800343295140704938306144061863358784394435599333849441681955620074503058782808589749109759334905148157152717406674207766856948846309943061450524304258237467045566650007826605663117445331832952219923675481405188206462561734450772661664422741061032444330960068656992890913576561891147189488502658300550019964582941103329201407962832770486572410993186355278669406623042922659952731767804653849908057143159111936966962700015453280870639191717282066838635788479884477693832138738052730959687582528592865221979269375101736381532975807651978156488616750004221496415472832037630694052610025136265681790083202176755690979598444538483297636212257151146234676793528662798553092104633374612773608862514315589878081040402671138469279682845916448431374749256735356608884426041095897653240229039378535957804627429795292479100155326639565889853984957390660363623530535663733653378997593462626459378263308420058323225174570897643877290512239548358260947236852784367643037430721731674538914888030766381295179088658993095981075232613965133942869011197796553288655108480101696800478932044701370462410442072081223568439074159177337774708697612438916390543387478178535375727126576180755667076509721785130130317695472134070717307540244935409789400909186549980429825238640136432958613594154107705021663951751357335096564616728840706987896652759668087097691541017390362914406162405072623746163405237152233328166264739683910790667580459302588282758465892762037335051619253954255834398074792013773195621534849451113245417483288227937992721307738368771941933439807143458700754167241272496136338739553240076342154082020735485313484504682250051397211966203759598166627910010980919637534406401165734879082409567259060180106115986605604351450317772971312086621150765691484763786162750297921090563700359860370122511027227484617009556209946019062004760742328578242277402654268625883544701151973130477675509772881131164529089033975149923589312183874318006952988164288225810814725351361797122419252558964715640771714998430483858518522426988703960206869808509879174852939483468938886541437252930764488313306826352344833921433739958508815769336662494810877912642087234517177021768333891399202237301220807964645822312912770091113228457109494807206148264717124088265087584894347604093753846709154311337321743803365336783192011326698721984919567496103093693684284129812812404741587124255722664333084580125023047598238417671737906045102620563497324297631893163903542530511104229169863350550171234522743002085435197049809122202047031001046501190232078401942081992363204515397681739795916683273371973707134956716281116955281666489875074861394476157610043439176041855779965298868135186853666100859047061390899836725013534023722293214081559105005404512136999465778169543665310342260300399855913649917775241732992809283449689665919890051253563520183475440032576939227680125884198622603136039288353600073155558931912584304729713964380868270566021923100856541490042985876251014723592562629467617420624123818463489731955657226369054880110138821231752664343818740971165809124479054761754496980941231243673798249192984746068762778062256397188408536616790415746216753026448902957918865111051826905263397396328369354360911272039783143198846682686674101511673614360770133559395789065279988815937539324739630181234421505947476947904175743676123302387914285693087334481903479820113516412229927160650176746561434191693343522616388431406435436027688357731249719839356347250428624376240573645005422344715073716579799186389251833087804754999080747142528506316649226808768743447802652776368581446326133561823232389858220713827687466403092766895234628560414671442249638522783947759433864855834761883334317587421506927965733025173708452755456861818822390485891649989435991486891290845424007799253650145385557651431338228098005068618213493899776021272724726564301974404155002515853154056905270361424217741866043495155515994210528439601172362555332171666482739236403676135732221223557643588772963067433528779257806954112498109482725826070895925930929508391407771204527643878719942589834511081905372791630302404851354031490924277423247340329722789223527812304058743705850692601148343419848184070539811619939448904235465445987111330600413109694663795303666941407255299695555412455814650438633303172866416149774655408060133187321556998520628555747021780488719189110786796625826744789731325283606935746230941240646129518239562143173220969305262505358539444422028259515454823559663703379703767640082449759173323788927322280633388093929663849603287504802889523313434811752833857450824098757555905462554527860490355172819282337648450280323762376865971741807415036155395145489857672821101495228897611691067404888728583641784450573094360352669538581645896199179576173211795648822128495992031050326609279294495555961029146962411439636534208902384447266374329386039305366031290047883647816399737645619764431832001301466169008012061862891271617413183805145924627543392952755923340375025980130095495827006139915121787716596903896773012559414143430453783647231331960935576295110341073388285726454058541115755340083615746746423091178217866178468888964090062988337295929313826071193634977094228795209057088136113951847859842949903387960161200176954310828756506136829627857575144854373552468320625386075205678633000352118016235405535998241842995862443649281054091365630635375888877511969538779096332745184102979351803236485823636266344892495257303533935803968737658560311856633995600239384156523095684018144674998211400298323139516481092856429085649062204024020336150934882748583770489260856203450946656036872028927235755290644555404863822024928130953993185053377011497199275338193279545894018564823768834719283471029749103415544789835633372354227732081305170021720392345163617055364195801571273669692023555821564641417789395525554034488423324907844105596230052963021984195038483193160524997420042903865531232227064806816650145585405012188340101448712228696756113469522618524236495934895315631658460702032879183941228886631070040981022085934686155722031991613148211110691305577028251773269665597990568170534036580008618509611726310974847432654816831376180763073305366486959703174248619688219195674096689122498259045155093558682600401656198145704980837632055084716695237616910853787157125488265519900099225891882689709669199904128973622942272938816349320035155593002922953731459971860256419447767123466418553686868774399304475925366209069590422404503611840338481948384205422736661115966430813674646651664338669065303640855846300635992259759938048171388900477303036224704033845425671460461003664504545631611599585571842404939656930260567655518550409561928633051726309965290982865697626595006858888469686863199491446483702820083636313006897533006824701764105602116657941738891509252564879008271952029530102841413896493726985711025846544035765036909861240712993531664902872294843761997400820639956524028094413751061370702127615974889479512626371701756901113049088602245121055620599057287299823377135570609994795227848736113333044441199753427885836570990174382304051245583993904544196866370964506676610304501642745408733638583663107661279009593643246624119960848443792718773830740834801778924863472576818009454001207763841844305194733488832868946320431272874617904750441670919320061193476061924131234065149156954259285224871861713745029050295635391989552454488155697989689490897043966176125747681743963026026293642181945354347107981709784736901649808982111335807887929556882436310001771074748961774252472849073174766144239101168676485962828240280913748142951987670191525124967170390335104522623391709927336332684489702851570912676698398477787563109537217221045846947515169232661167741553881576126488831886836231515026042767507710725465592135982364736362291524747597154583074722903787646385807515094669188765076909821631262309365919301919278838234424245220959108657896392284418258275922397960154670504599622534231574896211701889767547184351621868978257735096311180984624820738153152598118062394581296629977068841786236777668794045173108006462961068422041628913836484568687803087808442628854305567463126163342107245120804213731463931557020180507017230165246423815014079203017544293170684701658781876914113419334343013650618564392455314287612221446149998715541217335674294748063692866454977586897659905218456887334586995003604318862856881623740764632512554909044228897588105206707834903811016806194666216544689232811756988080202299421890604015474082976374685216073545633917496237518510200706870457295880413166968800149976485235208789081124447757163706115479599006411918782382748646606257366983664873686639326312709093948026368027777161605124485823142806330157558180254827134979719417851945610705820771490642365614445485048434963108990216329346636750442288480312149222255248835936586345846768475090273429669615937718389068886489958110278618570364331256526189442765038871874696331681457711017140460253074631014366631909428899770470771587446895983715073099263998453405054097448436237897441943662240561232979861246181177201972658479491915399311940660711725914232580990124540825205774282420653832098785009735771979345779463210092055146995478047359755934385452581169743216774057558890220835805624130528273778216354617931922601687302606201049492844951802857969260539833307789365002710836333650334831756735393776105002943583687818920666469184721339855714099951543228380425634814945947458207522384001132650445288370288032627899664795082042760754861482645009345052582291339301184283935691783295905467265074843431809584989992505899668538034478714784855829238000441742815318497108723830884862110781540981655157285305220820524019394879803920937137127411557751017110049642775195079403929647853835728625186400934211526024449908992000089633292142002042397521017492365561304696197672085947709132237583749875499002390350758051410322194924277090305557588368478040923660811690718679965860885750368053422957389159372893219479357072313478584410312967958383620581067121396685526699426312471488668979612617753351259837835308934896025132995053447292551144200589649614532395843292958861783708263774817655399463888100291735443180417316978722025230993648751146510702122008576234054424048012049384351712729331262895051274570439757017347409961819755082617774018402759478078090610512455847091791580479287008153497264084648922922356242131073157173000991105168871774927390517195107122636016577361936540569096315108597689029585432951225964042557583941215994232285440194377475144967366669757662153780015759750053663815786782741623889655235669488293813169006749807310668717651955722394349248930561311264225555047710362109941141348537760180538706030159582101726493140907009161193874220574391099483798723426841865004171740813825130705295459694363194313802007625139503682401607327601893666108419706501900989223387638667041756917103471325037135757295678554946857248698374760098809394127270338993160376073163503549880603333559065212645882775603285000199674828306280965490348470362214698517323586944090652246232855540666314496648657562217789582445355152312499759994237029458729320459659026668678385851137616969759850456948611545303727111401540102185295593709137696646086468990878461842695954084366677245563845460256015346523714120110873860085283892230665699776145124491241889560766925280845210738288485987717193431056299749190459318205206893101658376003441621597430439268323474489710679530134963233857127392457544495044376833701184073241438318374472391728773273832420157469144031780503707624201016355825989649499199005685294092667890669991811599783073561176753495684207928316779395236951589426684990011876942743980271669213281955099385427060187755232617493265353919788352292398663121518094090332407766092582473462953517503838229833145362465763885707986023017027569103722736590163852589964981488230481719322084358170440788450169516242790305018824034284694823173025061467960868392956383132964958409027679747465342627909314067838538062100239857572716280983486993197677575143671948956841830952016974253552273038227511561242421169021888491319297406512812499506395765639803592594844886273670626092229962336569975695904180939568605407559995259180623965210757214780749885256522281167307709460196177446050285719795249460236447707848363996560654385242608228662824994073077459910724999000758898469321131925269921841891394701556850414477976521978361988338430191997334394952862583241788832461072925546469560511784241247480749681652684526763885688723267385697016602624378350633571661663913692028607942219369563248645582076138804827008713765084957849581002312574584656749864757344884718236785158168374599162371964414458650223790451338492096244226090496560748614798846960889218437983506663787704121519314114038895495061928747776037460618713258247538335910589362664795327568543171087678806961333869485716294989843915122063493984816926656738279003156940976480784920229509850135474945411307905489818642728316504765257287960921344567475010499173642336544541596275538596594579835959764242641032510670352341100839678602273649251793653019207513398568550616060559241522412472526702610569195499262614139456575871854812684365361622895689186979933519066122866738314594204942612257791555289494435617052978654628060527288594158815532203682579892624000723877218312440191902402702820502132270389352413124303086045228010640332474002106506486454356428517021985660416541595213158976786016793685545671817063470093558022950198267078583208322741902802141019053490149493174711059428301622157080963178889670614410567698377940723675933565985717936239319265686273372656440306624681298649577715161875156772761842490954355358272376417163675931483955156087413739673266932993492426768319931976818176040847684181882480010576713380268978027496533492974742569248064379431504672701752287053964050858347846908905552029347429484569271678078080491490171290085699703016035171098323089949574192086285830043788314562834134321386432413618373125007261257866570324544552965730870604145412817654383403457480877395391304910293313810245561081322685953570782722978010975504740517004831356921619400827769876021899729334253992283231426391274101024614182402842092696929022157767472750936331541286627784171693713783304179043006370302395642373138197588346092770372772104943228843284839762856511751402887647261843256559766901542072423492107418061798716636873861602286536249627310116174763356488985691587538746548006745331066146972154693755172902495448170545148324814965193213601602875189154814794486699524330558386811183683541536826148757886605423085083419721699880142559665589004655614441373932291122524080757771717054806724405438577097332657952288930329352152284866392233776567360169838901710768653226927798015659557509537626442004889020781625281035048485004658585581673636309359731922928060100239692790753487335250753456806154882292025842286323240454756028258960469257353885990912709360764430646444484550095249637399128230128094403520483130386826430584206197078156455815937326962390408619148447837869411105596311058904483977673936128201718488235866423733891475208708955097569364716239723522700781099180424539156369355794798836202280673563023516857947971601468109527739910671962901375349165601777728543635126693155913149565117121912412181999747111264734414709536155645470043177405681868082313883354105856263020224428611573905939406306830151500994302177827268594910987586229621211109724891864253881280807173554258454213739596870685199250312997574823521968748026256836204223843031860622102592749246037655189994214840127688643468043424338337510834967562085342063755856037124062804888487289257374530818186845255246152625266485209712722964013619927033428464466162642778590169729816333537335066102813999286057082555180639863166933765131060264911489025533119637695179025374137018957638626317825419461239844908889059538088538131892544147715512524851048152240973990208248824089417915460171707343186891345012583423954989456612601341604538256695225264827994864646402365508405345625929700884667016654732068379689210235969950802972838111844076222489780030013928402273271133037613777541536239729520953293360456301483456607396569947657152540865457900322715446430644005591791849786149911828816018992944138697527014810103107751289318118599395823097514293888591120776219238163688964497099135953819789834118132141044580856564276565252007535413326098402827717384277613539795527038065997346190351893490063723053048966084577012925953154790496415715290152490452426109159938788826842537293871678730398160579015835771005315038039657358922375432667620034631047320256196136605635300961692316486747254666449777170956693550680387318154515685942464760208252810957137360906673173770694009995460532439067688027775120166697289414237986292602737837609927338430833326510447783205148375794578058083175002607702947608995141027861597086326574820578452721772793488721974009256989528959181836064329545427953624354771137173736111435896423501450050583196276375388295721046831654382279113085935502233793038952870661510800572569911706562460003131668791572162419074053024036703100837855389052392057567102676172793108243787666075575180923074947569731707447961590690713955444277770427208275145310861999112372695349001467365832502446233645475634738790430179840178912550070476055020116147478250910520214655441373764583362566658838799818955552180894345553437489505096138649127137174099748291527244681494670561341572087822969397717590471777806604531568829269032894259676141865623515686527068090502453672961395600932224465418278006785377519683469863244893129696955878473297524731260592606239392041177344130571565331353900689687815663237096324651495264686364310989116726583161425200983319034944168059656946799766614027388845361996954884378365950953269886256169825533608330176019730227248835890630724312263374534181234345515027849580927774970590266345990273122843545142015943097395129339791900238804566515386357277517327610997192330875148938703470672661766106714114127692243614916765115967014018078313257987289618752063984677381958075235983861680502981407473744448493027145837481801286238753766914811670120857593650184132959771615396327279428139977532358665714798134539489624415487961774212088628121023704299181842922587105865347491676475839143450266958647897905555940494188249820331428051554872887435007380357370595053741992197881543071924116527528297017727587673725568306762716595486019726968001141549967305706461162456209367735905001189670711665830978774752051395841877653716263633306900779440584021263722887884089964637119497715942095171713004593947016282426566117552200797501754227145078027153293523394638376169204799103586475136454275838291703253704135381508973233815006608342659387222475681443616533341918114989220804565291036280241886149859003003240607923957121736903112453460060152729818242693269076097416167331308882448247625829315911264836165552146817062338618474057090621747315578209948046465573903289804445246743744494823476110804842155451905707223022983542404983628258344469321297630573355274247222050340070220423933340911327125860188409274679728223837159220991050265457145171016051953407186353383782475261747777425570764558894985107445540690682635357290484919898687165030650697102522701428273486658058159842680039834991047452300364485115930089641457891402739568832077441572285272014493416579343044330585395406910987898630961445448241184948770142156566875319458104407586322122452580289118342569013638651566375224547633116554533184040887740431583331365749977748033590163358196687961744299965306302458246859354581914155054985594181339627120495784646347294370664920023601166393867649222278687073896863850038638413998822261766721727137793159611496755063706888586978758191547259256270836996889194956493441306062104759306071805195242751593903756859118819793899975496878291395931475600922000801860425314555602336175128101014486039898435223909287821006259230362390271890811061438973724087792055701224805233316171957633301703468069033590542161364320257472719754256544795519607583851249107806412676775905109930614912437894022268826897352239891557456432169132585121584817490384765930409976567300919800526253830967542049114066551451682819320507152994750234231782353601273956776175796894824226429959032376330526712076822242345740330099546543007045884216998947139354990560404110549657539867420796082772695152511687647065765892419725155445253357504102795750190946070936936241971514605745127235453364267551324015007680142918346554282922174998518185906914948408964073123977729089788037171816259469140124014726636886717606144516888466736499898537942150239699831546230470121464459310650074527091717700659269156422974358482144229080823054138424392271500318525130639905356157453445487199064552702242716554118198623529813950056478882828797830122612871982291159376337476220295247041861531817616659072453859562891726507428893166243072711961984369129177660466204617560778836074967245572650383247336347420469648126585485468318081174783983223093997051141926341280191961265917745174416560581780779150189674629708775917242846347896408404656598856343775862608186891928843948946234600200345190634680736696191418326995073640873164576332071646233733234285910901635856086260911498384191863611973744576941946003161102560306151257313882487944689335033786742062269686017604939295992571787596326958780596782590226811714229105143914612115001865246745187860537872179556487819976880479398431587179392585449095621566369357601526493638179640487092988493997453026566625457003689449896933478199120532237030291946151245336962210368993860352279159931924626523986415359655018416648768898611737261584030248812169697853056816986583048810680607638445069742088610882371500460860342398125962661307970284450821128128529994816216269740683714357804520801034592175219020811409503700771553012162469028993540956671588869487877591019433524898016963101032013521545739263254623735712682720877355773978586498165818664368576675956899261835443883053579756423789381816716626760801192838910675079662225568736460287646200426568348422923721925816798371048196510070913781979463486748540924771699860381693747011441504871550300054391642472303277137879333440222214969609735511251928847131854462886046594907101263546061778851743610681308323882773746932188288453077914614931513761630076361778530448002790853658436038159187637457051304222213811512053056314188952758049904413887250352333252681505261068888591097487918821418281640201812015198824040686245977280843466380635495452775785080491696683006726290138137012419269502503641933427736458054765379281870956357692581367215036000119692828501268430950112619957814066479625056602179598303538306681450901735228996768799334784847242651073571111025186765558092459588944421130666020249623216069781465933812312558602203132187505399855140433145750814694893761324528597622176690944950798189249411090544484342818520817708905339234240191021640102245760994409765663923599919868762054318267966758552636242755707888542479221078736685706898865324201282482585323009014043161831135428370387226147784235823793692912695263688964064300308227741206289841721768073821139847025649112721026294014984164586177393448079735426358898985291064326403917835408407709157441119729508921500178540961209606818463205813772398878975481499667616930728351682854209655473498103991910738790916535097324757296959351614136957103070536009243612631586518597441961539635323788067802588483135152834557099878737378242196140503215965778600627817758625248535866415556432764796075760581613426231493133212435061833522369052938839217941824557340835540496825216567242088571948847146054210038738639860773712279041137037283242788513320291070401968950033778593476482861396147044514775373366177164075420496881178540061817985790444120535503360571011525216615332737718526925973009412843012488323386071864910582412678581334531629452489941838175918824143787278459982030593267364091253132891431274428352848820607725820089775532349219180139499593392444697038816269572731962222707790768987059191964277648832319933364140906039891979719197703351321151657728708050715552253227193787367627792905939998904388785271553713885495016248641304722860951190878853199615368799079850054839241922208819850935717950036326118422119048764585039062160268947736980302251372515917422444082492699532901996057463603542830500533512241295750580067016382272761894204378736158514806697209643592651299125191418930368585048723645126734426247164926870596415647947919093472669825442208924399529203416374375293741999326608851394587791703109509240626458159167908939365031109469766893696859856978837383342766577382585383568023170571931756139012228674689769921181377514780022800111076008048677690783022720477512067205890313282451046118057663736070506643109268902653920039235011980591030685156423305951817315379022319165701396102971515080706366125447427662057627513403382669585975398280539403833556883239176633849549450670223259440867458305432344328822695561997580652988249888909845450676061756670646741006922315918241472281937085590876702278063332448809668687158359551525652585326495107645342289435263167439588549441054366754655979160882909536588237438110435221192645803573034196575329623890798850704005359955034792433461197545196992144989258250349668783816175996537600142556187407359343694448739533582985363360679456165345257993678049775156795479899865771625690481379287233671529594659706726951071876681058768798215211752848576736081049661441212892631421568794814302859718731693923435693813235519923455957577477116234463260513982060779258971814281232913601676486045327979948841131825176716366222196801154987141600072299952456794198509954063121968193252159930362441132349030992313385879439418817823806900561761588375260963418937984866861303648317220510319755115307737413559366341220531897861954443184071626395403376180366519792854888450345725337806882336393283088932196165418342869718565215820815606935804548608104079454971102672194199254456296739453115329743416480885338536550847378133009900861486715162407827115935607292971173341895508434631731650331306090453576684672719887913101499533081674435705647175597622296271087159932777021820231488881351224608054002669723511345489935422594217438772317071763086358968158548016108762739574147509002896702734601569880161038469322227057640277081772435527952884145523674939479336657845104685327348674790914732980145334133168507702270682160220885019767597819718617503868490556527852545192901780413873693326977919193447127893356173621567907477378253972337280412327902799549316011382270878138645222107148311355113739918490071708598351896719943867733729956477967592955755610747731729858187923445227075745698055394292448373944440790003754560954322761836488394807317565777187924619255461232338956685269712651546967862793502219523687840599894116673532248180054919710603843335689980545368508347631851241582671286483091608029184869683611340348438414408732089236599539229974992817167813602731982749258212407522826281160212162796570004728379306843645983978781726672276200139106875661869048806330341602571677313813397659568826223085288372765402923714151401228399577350521669850978238029885618050558423268921413669972067079934059466564755404346159944745146518004591299593060135928799053965009598953754990494037480862148082519792451878603403441770450286551932101972362086211387259796782495827519115169164747069020407369345295544697373383457223141954258912984875602726998299890879630188552506768706907350945479436310824153597944780284757337625559198738936599820878061044481816261176831301699632888009403037854463516624133342159901983787845933385524046864550401725234550414429374082828304128869851729293545948958327210718982892361985447440332349771740616257781361808443260689280527287098822455418016964858086282292364265673326956332896591529562395809472798323402703726452073637907439857120253854725815468489916183930213704141491280659386618238063195755113760415272837865565380755183241111242923170794724285676861763752758740837978309971324652582263971993949269407454824449604088091297513674236114622591524443414006306720052860125563074746704404271732155600111361231958721902689966776736791575605163028182391762508883602972271622555829116597195631424734119215961562420590129989131147569406937826094631095592518555173238539719988957586420113945501805749009652564657353901993753217359413941562757838158708718233868928783924212575909208987124401101903678472615254032074173205447717778046115601877650471591097138009889239783457135136828942992994352632608781483638840799901542994787928914003436555812693265208682501061267848443564531434808541468622994627813719655065465961848434380085299828530725306835923976723256819981068342649691002809253406422923971383116095613225788894970343497585813419005743632834157411336261190947215334946387126649970199103710285372221778031111873915688972281722247925982540655172847596980449342550849849271373269135595807837870649870303319568820046939791003208645561898040560663215664863172585304747114895183668499880788730125415085805454606965422178954089308903869670429423527236450029233667488821811431132039995794788207812894374938929967540103667650800480402083984260500899022058197000855085815987402654260376513525480768270694749495741029767401789943232101380239054269057432893557598362469907243991850400907805120010178913066486558114899014611930530650709613161122280587157457182364416099371727503963977906913285231134056330535162900978989201755670454544228021657689897173418015932625466606484909906100724627660471995943499802448602057290375882188573225785539814924611095069852721420653282196781487376899297462450331456944711489343794987752325470259805628948668397888615743295505360149390524050542425903813036227060470180859651446755786462247302074483617713466061439419976569665946771376180354075489566276744449501347950055840465529507422449433176641808810801510518231213455824938903755020309576532350565431104335352211676287932736286526647393672619521777454168300533466883031210379565386705638156110295306798290880812180292786288581405099685237202714378158121807548003511960894821012261335433086700865150138442065226300839587507619040069498840928084503941021127922158404523223430771637664555318364620037088904310321181319433053936375451666393439510661887759093507317006901438533088578276243414069446458655563154112269616412756102176119715545277786306251006683446690703034677570118456834997156498673540731101235646663995899927634210156474259390896235976249496869831117615535864661568462080612837640214751356688093619834510705416296124730240305190618577058390886821151569719889840019850176050315341258511859177189349159285307612049578843973030538048467501963360129064536425551466328187125280417974676340754879162575296335530173398273240972192466727351777415580251533848746611857455485620058923304977979364510269584067673097110683446984196683343416602285423476228747521897312760083226181635830982004855376488774058485718389317804402297437021301963588739331687596253640828215429506651454282829384619255261782193501704465983740210610166890589891278354355242382261712496831938827797944809125048986203792140302842680210297365237172764370962722461297772331021887314378750434467162865559770241513028799911101730117961593074414272995814893831050539043486590966026127819007969671915417894334189931259172761458367613406112453382831556521030623667086951715533447877397754063515859948623533419326325777101285400818118707296623112751274125624547717803729027002781205298178153196095599274956798385041586112967279678814444418394500222677035591724121134661059951341001956371908848749491011295449086244883126515815473738749313386215533021486185235810877552618925765458015002470808137845307969862038094171260650639422666451222049196622892605880444187474645433456218742894936437101191401158245225840410898542483720341523445722744451442910913744029841632800879702744146271098109998416517206590415060221060605022275118266055993163562974593406796864952798258440690478010430742949526480768235761734797327355826612521425032149806234239949468719477144955170134085342047403859134484686520156983636323810161618922803457659941144888222544373004852472258794057999231059586573285299680513064454559979540459118382965960396034082736384290567792779561782855470869047502862001608196316190179451704233369795663449796277741290197475801736764260927234454961646455103040349865756194083654730788275032050352614182166496033725882309391972395970089341168456231824095555615735094718171022972723265072227163050104535119734291544562703039807594063752749171887220139274884188269501029594743281993976769554638218443252486850000351507581644820029883014865092737682044009272653314766354957510386525332466970563991523990428471335627580519196072288121471830173695584152154062417647367991303035288060188758044100558730888433110386176223900469888931113625688637718252605579380576974048491947526316083600363754217905275528422196641111761409653163541772530100821962254826928601167641764415036252136724178039053310479245178592813458950624086387117569230408537294903656667891788121630116067567493906122957714378817410209692839626875181742277768926525359446069671463894245205076797140776549932586719803706527822912239275638345684879962615718502095378111543338825401361648843444767832937258667767885960218046071427059848714970638782642351077695415259268000221249703581377765994009940961924295067692104135962033074784184006324363076640797323473464115854859908628417836785637858015969492390830551640854511352391190253726467078803771129511540643246480911445552297027556886257585949617734798046541913081600065703473230964191891574798439358226668586407967324580261706996088618373181149698615076555058830708384969481880174394565748430344757810531388461886916668010196117711777125717814541784164733002061260406666349048754998741985974188505246497867708992669354709440025049729990086947860545030908423393090932831681007757977553667628908035827734704417415582518457387381083236709127888897691047673226954468172670965663452730552322929257349625658718123725269753067080663599554845037789199483500996469319751301702767742971327970904927213755995303244861724075290381353019997671220806787622204139937241602439301239537634008150446892913904993006865004344375236944433788686431429537945368433911253408427465227493042503052649125140657262401600901930313623203248355304425794343606288850363741190245109762447275771648652192122641346841874764446252993173942692741877579558994200726698214458764613861333518517868930234335663488952253872577104472068956227783416796732613562994558597352591546622098955328795692729683821881807626377724104228091539838229526176776472815969930437009907602268062459216351737556829114096873154434197515639026698356745925689993512711662174474794721994813419758468066733818607001127486591427296627409561099013366405662787210175847270092437510504493631241920584837258492563588568891654840866986977696313807761983647847975717433758189135714623803124238852240172991540096114658474184552117624858540793326926391752422463607205902974595929378493450614670211040100659367853136564521065975256405259021815459961954254805445008353543925922311036025082468115956854251477233987819469757611211197031339166184654023342213400527327569451564868954893953675353420775754292434489549446095916869286489517748312364582152983918911770016845606851904099367358163008481073911671722097217843901387372010503180725596514776340419972016948794381861330865361387941350585051468483460202040120006087877340603122906887508699007184261830588647426703775423466352500982879111966090509605419030592216675265921605713992490955808604445150948947298615043365246629681915907347235066716835713718597346097518084333229374456268868226943325569567130131495127227723477117147480025893995372519515793964451177420124529170818944165144190254740965524317066490365999708271104079944665024231495371704248285264894096789609591000602985048295464056552889375569749643557127411531905497456326460440946962936143495637064031534394425456585209704405585063284506489608475225257419795556122769529010773875031124342833084732913212640350364517246511657384261147175103885005934758575616030562269916964360293104883904567857183612433117403326246668458279220195315753115775626264628837155210941028106323512277604950286261858898394636212869308380812203276519777907624072289594853961942728374393494079708633784168231749773559926570471074951121940518609613069291250907095108596215515692048861953390992039396929830046254947171816532810414309150100853359599176420921356007083844400569962855609273982631985530265692911291660535695581860210384667928808687630892276883238525645984074807039348965427327513835566012347460410936915571579576401946733130530579076694390499784533452670204537722898724815174470956488896856995368873159892139215311241945135000180662773178439912151170419308368285808537870121018367441427684927578289607910612269264539352575677970755430704134029047026353120779911276480936292411262245063736652252385658394659512877332240145916858982870826506210793777995863368787212160869719214715820027698695278035645216335898854011952593768050528768508811301552442433758303655414574954825019817144221136658494056974879262487119303337776385641747658928642336446401033185530807000235965141398580885552206835218193176602893123446736246312939363608627049044733221037032799657519086155461597014380986927544488549529709827906092895255050884106788926452609770571084092395929793080888968377600520554812979162808680712972445660994268942232727244421081307552708554501328335306684937082995501877992844850396144427437253171775690630544549034562223480039536985577870253702118256336274567073377325962968966031743572028116297750046958061659972008739541566438595842661803338587810871093857744194634689534737106434199986474099765607725838521797551170386461126283863626255138048788238326063366153809835107794143052646333281435824447161110076436811447233831319106902300340506288183059252332926836355778695420992987801053984219735141793199826299045671352570040384923038391607109951565096235114321289674205902833654416492378984503076370561366450807800879752067802373779379042520833547411899523294672405607025442427020002406437111253787243941146917179912914640940435721349215318321127749494014654423589376969653192164056998229533198179310074659025091675315389746983030634346801426598956961385426877792813368184043082071602898603444277695181720464784204610107232789726661246334804551457441349624231919742311579734920573034973314324524463467143154869871065794143641355759075911110645023330076820541140861247230491387769531889736845805045394366753201554390611327883302444436442963161880632857523292005075525022823437687022801186635943257942743313584072354302516737642672175100577155875405618591213896380715367955616020153564251185157274716467246340995879660551966132490670398753927931831520774127653283641005317819133879284751377340041600788411983470519556882456358862816809949292840373370834977142939068881408324302900741767124752751811052360196783687247131108673764474955366841146354904893182285164128095831402257577318008052309255347848953382959896259060785355446265472100329439084241687820815386976607190834875177406464555380193417256699121019644350506676652018911357914246707338935332957974832825206715422295933053260335386517467980508333653106914774800239415546738733072868487376990161010500069406544398819831293054200653104978442324088447227308537716953626216745547883964174702234137952010216286103104646706204824263430560168477837997917299229740349036762739738215502807002621943382757991061188209539349158169545667415368677649014990780818970208939741600468423874394013365319065650769625051354985735298793672686484106018285263744359721841451565632156260125527360569351653693411235127835132595006547846418787259531330567823887557113595934191731355974461849141890201194933754404489900776795143217932594378127727323294064221442035272323235689301405295071561813139555067069719154333547846638294605847895055293269121359839887116558502823744098929684928043715383461030181922349585045907985714973836271418616834105528043006362985980114957397214123281837160652459897584028935371466373469704166981131441946227541484707373259396256642261040480748451894948501133228520125467375645194939547532108381691104259281424579460088730973225749528394374879927929596566866830735423627396665854921318168659070989361483786329666752594122712808036498779148710625394428346383921144537921101289823135708113571292218544322646885567710342327088593774667508269026471663014291754599858802104508367884586257118945234472665853207451652499104417861166023076506946495635796546565568442878774491682311838570781755018196689617646158114010386576593234879535508013758987467835745153077324118574479719957418951709707951915653315829312821021730784939163318887971116514571365268507437824129338912142433084797350516802947067665157063957237939249705756951038204504455781439680111462187519051218653439899907713025470089630927351411066902288757155981223232893007387940514141141641202292217596685895586874924056208028377272315759627934118129673217055065253329165627124645263824708037607972520993615576890676394163223648455106277216764175589893201712826016515919192745171901325539001712930570110988131271765326025978002876547693382219275441115910553172514116637061752420832378732138356095287139742761487127781036490252470164109040336186917151428435724477014706077145227019604624421431079119866916107374250870753759834489487891755546152578541973340707566293171508433611091704600678011679530189310588192332727869961315099847427957411906312508170558327301753777869238040647380198825667908068084334002335982117399192286317701508809254493045583476982109169929380423721091733643067612204836080038328252981809185017832770333043696936297035892478290246591462757185615864946746906277760168838786347401949915141159759655613647370830106839509179731922851597661606580186288066046804140433230452874005869683205448299976891551468780648859772115251970188230044663155857126660744194694934575716129070361202933708942082070328051658849215306056550926719962509286645368359320401369729796194376318639026951595450432309714790068125239364543738713670130695398386048453685345715992774403829933701897834249581836788733896581215339410011972695407871751119757742378304179700333587206807736867107989448936264710914328835747271378452435311451436052510052841913765777141999002263246446842441482550990151293722594899564414692631117833597274765069713198844424294540029796773756898724162398800891817293585819178350821517768539649973904795926121903736267222505470381316084012209720230784482163232379950941820473126199372384074763531652863856735112748365135545548014235784655008279702574365698056331772344687582326340601327050564959222136378927968747270584048965007490551476110436948090861608531339337435783330846823567973274284796212087024902980863308009122097150944768258810429205528790376139275540515347275412769062166857883502469787702497320812510593268278663364929082339701627266974643981237211923039650397206081426126933932486423140314621095997701443652339971428933949961344631186206369419909561046808493916095677984412382102133834686784291384558696131136866179357212274728291724674169471092503018855673676390151312853276085884937312082503769723167866204192299092805156189222758324471552113713801814058684623926762858951478554405491128179932663123015088398883050022578852658458883877607610687979431637673376912217124931026818103381110265101931302764944067692680082701099332608926717104206477068403990382775836449245188125640728338699250273040832470307175802147204475240250833170901987587718681794984406407069202764710655147429971995384990704108682052233196071517838623528251762327935048569619690551961909172123513972560909868727103205043484780616264017566600717983488737305959292732581372090701836340923531981186843785034114643315826781740906681212749643078985221583187543257194669268920525546551320111067196750477116135747159384215101954315220863705783899004550025244262853076885437279217256220815439278006763418184113783105567385574717264809618621376520244298139782529311793101356929470659632819299940248666646989012112628110002160467709520725912898009508334685680693114400769479744817057005082161976330013775179969344655560745106219397098902288986050980290335423740059129825149333729018348465016821448187130518761151554055695929490390061476851433874207756187489589051981726027699058717539147634986795159801787505296569429110430575353198189273808253436970471072264004209073355464479776191871165005560696803603733719020061649805402924402908846852374910990775387385633573668623906279461960024834849684830565785755957507623245184315533191985531547635293063034398665814979536556342696019605333313501012367218220149032750194738433293936918191220136266710250701803072392923817130914845195608857091073836291430176956151168507405262076527635338273053764303193296619174875440808948527815595004088280125646399719402355838946307651569866193084603609531212560025272451014349970811966943145390177743330277582109928714758474678778709382194985687894397103548115693439015115741829256367976202896347835305525733523756461876767596071858455364426375751481019248927768166269578082546220367965191105094305438975267244817428685010093918335480164896645035834387135176825152127331764882823111661597050913196131843190755283217590667460184343849490152305391080210237786361583359078113634598941019141941116597049312899581306977937513974061234034543240856339919212664242965207246276502468720362150515560681252225150959119261637365343364036041566896717881567775809892282008721714560385545845307337022346183392566863044876651119480917191691014264659823823484974621367180609655881073418484625021140360674042255491730909227232829809199975359383010975427944324534378182780713964236193109803462059616333777918795071400411171939795643301466768342445262490751919311804703709663130118537464259391322973836221551305348468163357889890241895328518456509661786082924359449316642814577564667670555720377843892793507256477205044476375226676054578646734633728402977115778360422353917274157516968540044038429675023114790197205248348702316917915490703676157858560817511509498283859630169007766647176923340256387068072512871278818483200839949229134022575514874362999333274146231446670226149823676522406565918454937121604575068102084124481277986710646073088879090539117840805252614349217870849414741983465663880925524472990007069752779782718871493413941815157950290174996054192385191012261852491063311908995639862615424708898334279700024164045849822359357112628457117627201758871739883444344520490071389533390356310321880677390255654826109430193277279345060240052578758646814713726208404251154284956974648696762824926486441932452775186193230306476758575404542936556588028454490668125050382101136624203077807290504841736915106766264302040346586370837891285456646853141212105389402016993834149760566394561692382125222138221706351928636318709951289996598262939948388541153888878736300473164399687700687564134588151879741759791339952571959113431028078849604113067705556600271463188163105101581920111140210537735133203501709349410085073999245641268940664807958180603019838337326921375871687557434228970746592834582781322645498750491322422705962757215975221195767668457391797720814503709217601957551320090448372495567358002928239632086639325322950304799047377029121264413688076491299251656654163214626480237785404376640480625364720148402875927468987655991961444013797418519131777569813387928428099970524355404472726939040877610457046875635243322188810355773304489867796673101450531944223226999982053782604582453014210212788599588299583928463968035583226327979020764648483028416932868636878783038873774573866786036451090991478373981262791034784644053704811258888071733995158763431768113097392222758032745956246870717213054246903273229797865532978754616176793898569845535064605590594751603239994014022152013855969774300766836311926160568934558898910016063885940888481685185373160053223153111052722771907854485361836509057092812527765324718555771223611854459858188419510601854453435261943152092222976359398312726802810242942360076878365257787427243541543150403198688302375162652565629634805404350078777739089970809444472447391500323137371453561579785641320676860097201863316930171115824837018254155318638338531140195300378961513325536289390226838837110634592587301021752349788156214129874750054265257570070395940234167502045093335402909328612072822100969857554932644437160643984865179232477269346855389143203594076327388296667931721094811656380959939367349090342846896635413389467043488935391720650321423684583790813855878289198430370070589508921652947621363655557884262443974382891038356154138574605622429485268841308706994190942721123469751427572317443423269319117531579446894605697862017646981708043536531740964572809307465866231886142240331443358697965093318227422183560098878357679929038678549306752496716896469919990968645832350295640147267647167698821170009355816873999880770620946929511115353937231720872558337471533378621058300026011290984751935862807488460375256989856220517336480688759915552062625896728576664654526779304302068732068492214732964894604147574417033075103191458668796910202527536486625377287446816833125617032846468652926932555487283427112189146129636128264315631880992308200249703061490227051973864207155214897758846827684319553252914591548235099642386878551226133673397449219877300889724594578542552435666120425516942080845236844153751391128581276856274330336318764912646095182371248377119755110812038150823867763203440089605707108874379678878173272508702938490680829237262065139122582943093941416013610437928377209538969450842672638504039092964867558737420935744113306351902760427053330530574221811948622046218692668581860776994880459523734767269956950274670672474051209571698742625707758329599618584718000069800019587421063624759513631592833225164464382137786371549427049186067829957714178738764644077054642155687806425665521213811986552424482300142236086134458609761061989210627336797221631217940561858488161812373705865074928526699952692330176617459973903262264959052016444946661679745011648642303076552100320194747879669255188580120198911874671470646760564273385614694785528949271193207160388940478236153328493522985705636493326164593747456353657717368797320769861407506138610770462077459718436411809125633590665505793087258501047530866846417937469744258660375832594621129867844804327105485752046765607289319943566481847766869690387383657762685240987581880465509427454709845545146240502736404727730157083117104235225351152210578345693359135329670843142940389411327423390404757274677033223539737422050488209415703380615183996644511209861956121986633571395727897105586561530929971844466679490526863830343780633051408339523483661374173744078826612708601066134555010773528878060514888033636470278349178530554463191034512856132345743330243599179242782577378877022951430657110114329027046285929308340611497345425284578287137531900169938130452981653492882738673733687752123889754763368394262216037954923272222571670380064867339292210700249503973844183242025265844174125231101853376688295804904826290279878160043103121069833478760317636202485989367249870030244528920318532025168319734790131987388018775043664179662668254080282325847509422666672032129824791424461781783200704887876621692279900490856552591123404877135435132830819142403471411931218839235790803682369787117706190640210284655275116133076771864655174279682574446391335411691789147502378115684470800371034741170676236275845461399852352786220329725122874665169004919109773244550705344959051891979484024950953089238432401891340803510297178235413917873583512135252616837425604586585701564382686123740321821656164908621957924503042477962573618214132648128044437292867358502101087904455766747637295360213251262035693073132668132414847864890553416905405061267878267133198643056050172022225423566236489583579079989738775456924823831207333234363636421625594373186804781939493583285087100920720256172105225488434764040624781409738045853154799696487159902252057376632615478743438649548611534150793120563985713020768895049386293848977978731970385802807761612727727673729829075693413232746482459709041293340829599434238721828669563451349451014312417940783820374494285618606727890192728081372394345637847244192731270843261643635891192517164633883699792490436250563646084464297786639743346914368166678075412577892824823029876845375301918415447392514674580606509306397215296737659003064875683039486224380320537028943458071576499632197948813898411302068440898911122030044648397577426989486754295007458126426048638770555940881682562136535648412417608736590171677028266507290380692004873953580091269356259035849311705355890328843931329989562350682511006612947637141279962137141116204261413954457950357522414566111684529306600532380449759792235203677580432553452198066087395111445844658550969316306624416391165088178935618370281491802346964651305371749186174841793681965790262516451056975103564142640306951030159376392708771124990558693600151717241291434735624977683178312001856594941347767695752437652762925349792814747794074382666425909177616833641427545345803386858225495894004280221390315298905982461635292429415284081645832163282977553511681067689185347701872406649046704256557453257342526483301788084177222827138367514758059728181708747832821392402982658838245648740135675166206918380796042653115149377907508226874554678863492839893738123199538386087144270756080620219599411680167912696441825714488880043499748672124580718832136376327840822261477643705267989521772569492850786041062755134535523876164045253616604175092337684854455911980232269126412074138307506392757661640200816922239541878911158339572392274512784706033146438050824817970028852259822765931537773999041663519098872205309977507271601946264645031049490452859469706888959475840826468515489417480947046922587054937328879214965280588064809840949851529572391353556611902444069578096267840317457876355522719413083244369412292863784532434284235539538593240471124653467220724508705513128268232899162891393380045137168550500109284712567439930853835364858089486562261703651495985342899488661579647755878830201609520293678480045652141892264141140956284648049070636710274057340287013781029820877685122679079149930005894237009932250315920279260137992401727750557851208310280396294292440263798789008581757542683767417984153316192643529878970012432851269006335769860345930640293910130244269191920875551055358705464483137118620979718721933831972604779046381328117308509049576323860942380645393898370550822229422701456410741985377223602009493037187491796182906848303391663399974976479015360501982924632340071524781006621074598698204455648321460065150928386247755402225328206915970529411319616103212418427365140658967647333027902564653325927463695114312278716573819779423128015395508813194844846756871003570748794887712116956600894059619092703062494473714490712628711258759669901732395423995115069841957954176051149645096933728551215706994316517246709298569689154608094454206510742813844953966642725131043681454949082221309504767589431244117927812751119759787043582003678244706168169703153538678613239005291616310440192795996844743705130815456571664559699494807721647269875667465506781618210915094933662404932746833452765732364648507251437210516936988486395075383376275345205618734886870339824209554141028631078226445434133872199281949664317047191784466925058784569208112588687598657790497030591312191846657253816723915840714971048064418973684332577339304857938866578026266700607185077017742622912782230816175998812765506699032535489562584250859401655771947095819229574638817598214052891756576153024746260885049202234040578098155483803240748423510036658001198543320552937446029836923948897784058994978745954730869797137845658745754881129945944395308716202327237437316166615624676057349961660660221965985545314164371870199417285530878518160892338669315081367032332183431651896231836678965174668368555241638556411753529495326339454344464525483231490339611818276979517648706251506463645494192977891896493674124430493379673056257871769245383740617926634786957021331951052466366791148040244511422995636002782070465831016260751389263267944988339468812607814590029035900010214031535728475183173144813266951393754505999491320583594810258285209606172197214128511613678917934969952588115741783792505473594348328177051262335761363524539916642421183133907266042467799265633098542764833779363070991692512362191195401047119710329079074689440313953437999722871512481948995272548410659175557851611311303702451256742234767014430311216202875202817788147521279042783245172331069787594499445553658828122914895140130456496163651153534441936647948071352412024526761834656212517311169755057512377500655574844629398008282092370924455003578051693265144644106044909992942866205232703031438771656355617065442924690356350953510349002366904752076814463468250063305303648576627615728193837081234747208823401776816126653514879303350222430183400250061792099017998781885830878427110843012200920892900595248514709924605661125469237295636594428962748643509784678841775471122073452581523129725600450087243046704780464815594447177633136374969550427428810401173653479942719198968027422186358657136673495795228373144323646443698204821777084857405313313040243238789364057310874689386660930646420586726616346570883690573721181517142757742552080503222012514453061400792061820718332747986013349953241468654117328458450800881604225342464802318311102390709035634807662976173994016533693253033275518455988134092276884430479338353438618290538650848071074460288921974776894637303224447107993702303267682861215216287561079224192342381459552324664345537122926667532315160823362421917052864238758192255043254433581864349941605640409697572599809435696307994880158737089296623998271040860891912260598947435578903405736509096644838559383443211289638721675327052212357956897614151825121101589888050527107220252199109133646832428584670732988982302957221012788346320379189358098311562772703901887263968730523190234686291875381948861310459104753005984227374235916694539822681670841913091446685327801369184827367474263991702254240115930564576117173479237022803923009873991973331292286065641322008119922499110269664656566727695591438663580576688644840108797100932278032515492431810921612618959642679236200141753654281886773729979600247479295265184958961737213418035766383309266549843276750493323561667505923378340924642489725479063770345015432463534773591448496144113888547461839843344273448312216374645334990299905058865201403483774265769811630303785107609156097643158605435495520844171083979557063243152731223986816404857650955807844762927543305341839878633761711151729427557830926487536599144929784288245660892714690498731537503130904862768119398037863639589267899389938881427220472199683304799481251309332880697247197012384051115263208502246136877850527357755944602530531251570443199433355736430724754969538592016498098464341068044742109973918049650237769960824001315243245421666599749522656133421537904521593893893614961736583250094950069263017662537424235479450106578721058986692577644999821550772067368492735620557529891366655592590031283901236905300144202249104585991031535611317404322170714053890094295005151700727644268500268677645025397318762016182847633671165596147269787350106448165367249438070613395692874449339346855261638077088159069971230885613926131963341848780985009847768516436454603539441734817492006809102646038103763225306693222162153011597504963100202232127200019963065681649130476822391296016443225657592777053990652076751985987963933962531997704083021848436022493180743347719964931649399931998301096011615755451752934786667783552308665103642975607510739407430091119899106734671672049635956574291306414957383646499062805287194946809459147610016927568308463530523758153741450323200004993954515686507711293286019742086917702471491892067395188354231788555920260839986887926097278030846404458040354146097095186771696036925360629288767193916174108630337773793727182668909702002003007936699842399909666990187202645011468974134354286499019624653294717408252950597349551875343478545878512023525453788525988900722407726401877434980888500992546365978879879859425575357181812232287066332285719602670268882289538779980452731958689403778312573981520093319252173682516842057370158879673536341530025917695862424744162752477240623631986969847243601716886500904159632935308552671881319784676992875695390361019290816098908026921211783845574496823899072001632174187318206170792453202375762603950792461663930574294225442185288018239867567238028383438002732236586873378520365339769009785845864445274851004030547149219231316706269231666870693549306560392024272680220688390800244160776780473933996876231446594331806476241562708757875925107291627537433321514066207286151644030366946708605242966434566452452135246861600417592774842884560664943640400147951329538153396510854132390415629544630242659505452971208911924538160286870591089862668002255672153061551626059188118462690563566840173478253083222998782239569214560118875904393079281247670976780392802019356355667682212912825654171449313946436075505636257251131329574420574253918121114673753987920277445483535657867743872831766279795078654247492042932354252599662793512023075376489373033263221336758250760697474648433402842704749390589601904131096704538947688355822556116509969978613992422462921374374123341768200754226298033678045177072147545915987148911876339833003132144429249834699414917362476611609693400057011892709047599233117962262532499538345519762114355019596795322595089509682022461673040288285046013786369449603951764618273095676267551000083150155295370778298121523788889709829638105292485306972026322086108468750322064922827139983001995490707486474124457677139534859386742743758075342634153568490699475031473921247433270797443230953677958796010176518394923423316655960124813617658202841446346806832373185662656262647358585230949988767830446196526227324017456131277253319007283216571528352964971414573113331421045402052039402989021895606037019768904589559091938678086628474980691416395051729995545335082678887999746323839228334113743751175725753304522653382492723561633978921420193715740305650128692971427317928840938664884630674029518183433039317344454062296107086461214703018707774258106672841688529519743526690031945195457178237947627167521433877465948813131974308036900020050436050107573039038163733778084326681048087470479066408072393589760970442110789176597183618061039403925730051904359318560647562129571428646577693110806286589641033299026752179697991811317243265068575237249089429336313057526247242728870568749045071733098573587566365260003593020019844219626118501459926369443713049914233637370382101166433180074326066944581182049578938942637424907366053851387114089329250414350662923512178119501894875203776339495947221733010062479922295321900745820456926491319007350721944864306803392342794487428600125911457039071374797754741591042312521363116331295333333185705967507561674508247418662911208370655326630759606842370118474198377163537285259666543441677851414291602996008474538067950387773813262231095449616507869152694163131421537014834316999226938941887615975653306360358669259251342724048218745800656347245702822186050013782202978468647406369990181192457349676002450385805475997041530882770570475077956443890075579519179020467539435630625990386788205097251604478122922315730888336949050338938849991400681865770137691075935699339735675165089292217245282676953900868383696372646903017645293304092175903963755868627705369699993690306071159787035232546185898759993006614314172815892299037135364835757348182515968864731111673103945211356407827603424312390202910057971148990534864632950153694518565892329406546886172710884755870619310193018696836310026549577184308190663407751528628140007164777191076228550451850301100745267539628302420881092820886167309165248249099274046755587304355814815693716903505014666967855405687715486150280106104887060585883736331305816031109273070767815484444700531685230797789490886927584180576124879402789258842635383962560466801041825239443564279317710168534461833828764698007991644838437699959903660398548956217694948863932887565786569099521133089874967560891993612944030305711590823900739251434329921949755851698109136840936948318696186130624787738366115281267334326621383956975747224947675430028330508654399570198330571218111149500612279349160709557256110507034297428628652118178087336161831744214807149355447183966983246967456788001267015626180412213612260408732223426750624883046518138353340645044327010886975482349682613810129364962256445242820781875809748310351299183340655137125026284700677643893651709311206797256198932420676128141254508309972671020488174047635334483910653097959270548690927955495281703966904725743934208992041838746114214551410520458861640500380568126659751185465945288153066659198123013941622203184155176883724559002276409136166253796434223251719536144771834366959851323148655112518744253228236158408099093282033204932412028634275594087806811597754434568303305830755614087887620752166598762189778991185801534705952888470098437870203630229526880514439876358691886360689952342251717237355237501202241764253094721260355103572980482293289493866936548898716859882897724605931329725933274103289141570285078282790747222982129798472291758221690373625577904751551863500997953048759435706929627168538945626430111800431048847006714669833552732521896562399539918634032013036145656033298469253003085942569951524891934664818967635676326876525909370424964558800646918567952547103085906013039646535670967965690679796850478502352120839657850001073305641247213321244717460997547110759518547084084755438250925187693264282441444694414663162271659597924103660741107485316542494526968824895531824546878351410751788546373725061804511469708864573661399083004661737826862135810769072130124193818154506713682378282865258938753574538093798855220374005122296871012813780455912795250935293948304331017449613354769644575205682900155136383047972502912336230541615428402148633625807875473824600008719199621832192183472830462761411575936245497025234447367433006747313499332626582747344336398397951543115623698392430926783745702694475865266260833449749340687945217713615753450954587401964823000491823286779714284408949568440005481312509828363457494095190413914438528552937361577803118739262871606786891703054802354324769358038896138777460661734130428504443363323340674979977512747545525359768478065173903395792058792433200581599980461149215006411165680689646731381819606616724054801634580859230433540874421540390598442941487430143388422337886201256229656216217604618981689261133970445445916620106538556146054813189395582222378373069967790520216711771090300242652970207897194955736389875384737831927750779237099843871232957541830780869042305320944061401446708036866922438158617983075401015640134548653828236158444088808897116505781045887652400986679037592334599635225592285354934992414171474948132837234699986670352864270052494845212352510656881639145576525389434679006608931865505265513872217327488997619673787171969036027529633212258084102723325489380088402872973786846655367618063054802829858887933625085462871250374745633662314934471260920220066881613792870403052679184831300078038955889483498599474425894963441890937449442051712085356094843449745234805732496384805864784438029425848213316777071943861571733791944205730687099395123596107389262781632961093131049183509431445739280484744493855195125133088085511965406217457650626282327236058193113485622275359206122682198741480640360866804263880350787792393255714723469052430714575814994294869882237752098619970513142847189349321518234904376957372180365716707525621534487314232939081905116338251313751374848655519587124891158852554974691044545012366594166161919260987721557710072258601817161433224500926182851845813466101279734183288992986935807522630468789701754946290894752314614059821747814082592589373470732027369762095149333995927446800610680432268313848105383715363544422760488075910216201964994840973896688862783004509633268840819839724405885942200655298868672855063773082315489352882720202743543387249799559474911607179424711462320721454312131890254740252883534386527018643651267617026961165539811816909092513297834629227783614284856038600441716920586581575523662581458141565241965575715264345793770908443472747463325146922512246607125418219412172892171664686034523968079974163629694096274451072832997118160542430817731145222763214449916327206846215066440351131473622123108908404947854260412120247323753428572791632164304380591118621892687988322519424352071898681351211122685315342169373411130699111839635935107061127595647180399040802816505222091654478054749125989943711150597850537106666009727940234841240387705542597950820540747471829521334181834372807044775665435354417138901224256922692072884514611022658291124662163504723672104237881385558363486748262181708805180266611397058110672235973876059984874346864536469094975624556656498966547150672774336879763234754996245863521667826452135737129776988059923388145491143820536647540352216972407743464039348534797734727941210659057414014974793128085682726875385459809378316437313711226205226218482481317956176827890096173914579578069290668233110862917130453346120841798489966354941177659441753670687274945832357077138687993455019519797576681107730360324296241908385278565267685578399774534118793080613374689473922887214924314824549346644185770792711840812806276508638637512510080983220610646337350073692396516823796202901753066748411028044264462005063404510990555574612387420220468375313708937913500758396980152900546962562457196132686040777571733924008188506606250295721989356108728229104757268476211627565580778100768958972236242818091308258962783306606420287540299573813974465908362735884056972309722341994330716179517607040929915096313341000228207362569740605022879370353743776582809449245649341730144302995348812157863330218079739733709294842273604979453605355126135269770484292483475231834434697856223068752937216843667041222434954589015465874990197053437304853619330130445315814966797315928889420822417883291830199616252671448597911325740429209591138487495528770629807384112843727675912424423912294442259665932088395368314179923895371802410113591157963576162724705319716524252136013412921353357729560171721232950447930557667336991473697071208460515492046481907981848735633127450484977237230583684696529667696363614522629986396889568133153882128079802157411158887184214631636307669535685000731410658173140945532692307341649886739346022994514512713676397641982516870865568007140924483414436102899360055110204764170688355618247323161304785384863183758074494493669007038121703801648482438927286376282231443372358363562567738146430285299032070665139662249997504540951093610938038880659542522656426677740071847319405992558292694055225142233096524038027947771531174138192557389586317044462941991599059116277051564093773295533217408203475207187322599183660558206263600912425460989160392410543110929063467698064760068503201620251275702838296339569415686470344245816379895399465369357546528211550723392323177923943188555245199160353124218500074737365954167179882882298796234482445770096434319131047496782214683367518535027248868518812787179485550186415219438359796227039293180393759171415033666521714781894274507066558930555238444411419302681864710431458378508544192838648080385703418741173491074609881302447551888244869972636635591526172936949917951622688655824272692286189511513297866001039505801949946676990186055279618376208893893065768715109477075372210023927258800342441519115511939674312794720259520461585312918879029642671383412339297541862229052829692057983911316538800975467617866243422871251479196417072638994351322148850134861871782870043580552435135288332988914514726419745849466658123543633009109373629125254202158270039062279515576635941894976042506678902457166789233534171513658138376327595661904533138456211348684386148551184381269027887465495733934941086731131450849511018687262880023773275287236325006713073387888379350390515760595805110007959426450077050233102328304216149156086119783113005336180980827018327941468121139653337760949878334937070014327356473316419689953503859045209048534727928230308667255255013039178898201756200466184500029184232962243800887007670638202331968466902564657170475574701194529299925653995285108934947630883569149487610188858556832146868806689277934497996538900054318419818622741988883105325060021278725376540207350073787167089519624215227630947418089792691304297347877090320934150456342895273141194737954375763701352775264863093820212030312511600962312987048708111671990678377520356827857931304392176566154818863711386148172467923030477145604038758010435548222381713707375192409381538724196150866864355257493616769666318618770789899791907300262459328456400158666293895107293183160866604419589111547110486061113532539131376673836415812062538438719869384557025339427602031087139406432807716437555701767520573296068578324772124757785314613192273648766903391697389151165202172490964141690647923037508381003782130405971855729154996264276972852467335440732880076211788064273635223043140242945367764069198135838029662643601137951115765744792632895838142077057462409412280722667694084045307515454897325559104934953850700521219897876124906282545863200856960599418961343067200495840713608435517982780536706473992982979678062326614817465596617524722746082791464758542709357862631841428026015291338380740271954582130070971073257122994949991939194811590683916950872851240035273762591113754721026966336147051070186240855745292226838368893434184513296045173247369272957036931779303830005115871563408469696544015744218882445339005912510204070452729178637447799166666488701517338250258761076275017635368136291464686336600173636655885586195717462230160631690502188889617606506389727391052107999220178842441749529541304916988562028687865353103575831044041777965377360350675253683657335379428374010936495451488945527776647083284588553293997435119639332361599859928885863847781313372482485569631219970215006649380276315942217633686678593362006746756946029645805476021720692257665850085197012953851702608802041896126554921139753196337677391554306938844509416088958020714800899374915079738430789961709418931452988699596829079290078890454152278812365309636555269355152676079256518978202874566183566603856364631487230634101581431745380000507479127733421880291982324339976480854115431636878090138846076081722428160358014120987584433342851521980451779226503497933942301242404202505810843349109725541949903983196816351736604820061369317243520033442198759779176772201520344244107460751560137749309872420082896133569057045605074457261789729262569013053388284311838082425112528837708744805067481522038095695166203378330332880422904526137962770223713992337360866555869840565016579248780513972782942461247411425667942141586016401190902761488554356794316748992073030148426546057714317730418564480007819476001070517439544532190062602806929518712896989166742851327838149770825477890116947086959019200599960191632308283669037555615514756995214215179250506494115956419713659500992028317808261910080070106829123754592607191642371485142309150497261139108713863836028064508940830288355203187522903193964271028808646055446945879866523841742414636336710982636615904095276183634666082680604948896912346234006707163766097816412686505588095850692247197003971680226724773634172844146124943811398353133761181264343631304986495648483772022956430778960094670094165337287336631696555639964229505219691904531838243217987737959260507507838629024183561176473714756937986998605802121059188570271233651108740408606184418398036460780842348546477295515649073491636889620301596042906961685862926839468836687553406327021347239819612052237722527948215381136133909415630462717773070020503615389549191464439628940730978494037797639449388565077387785694574862609822144092812007359459032229196609519667156523363053603335208420845803174513923328527268785142434213126851855787486107590277341119424440543286701402025787715309760243606266067585384759804435994890964588240781244127922370446642834627669810523860489691538696777471301156224174366008061940020380172392738504916499850250764497005830733317961791535530149880961926464897206828648747885283910172693128228750202604542240701689159225455319162055791947349362234806428391447946006400206322743570072043411045445296901353729847073943829735640966385843362767707163427576898307254602148606370804278211586149447510699749215992366772273429191939868990984206381733795399666317658827663908216606880289654226730684920837914543936249942643123421643119179161334892846186034963118041273644294809543088439925111444789268452208206479262259293497236768333086711622008018733962514967064792687075858720733830004121713768351435498345530730538634451309815239309922193237274938413946943465992503444254602157051724927098828622674712304015055209499509617316210441204494472161542339863152288018514442962262165290347777035130184740776610376740611758274443247253476235887846094939628123682545099055313787303895544884074069481878228882309627191228081016394943144409551777953905906128526962411166180371742484895591022174162226187625929160592958193386715356854466176868958163780628607664453932780069845276238838567533144877501767008507397639563743932799717261318701417681858644719544403844984011015714872821957105020792173238418566785316743844581378756522102159755450654918517480513527510743680599507956403944318840515243553656153447928726909324139324595750354893255831418139557979127260056884304899397625447966538969401034972292788369062856203940858940995338045251007019227791125657725464551613585100945214218505806796700853517497313775013728170318520095733841008879536425156029954057612018904126612744945261091321673579867197905386564540851006232002645555050937865950213743539083430814251770110663885048600406264624680622673964154622839230539556842157158031232625753381320680484291838427730947385764593918234970185936458859839591544784421455446375654733932214123985749091593960606328023714822884664133966768483502854115750033787907142565452529604805476993937821049161480528838158259890902436544402476901535894540359592603605983161474600952648423269204966200994132096834430985158899566431994312092544927704615156959124679860607133121454130346202035657572207800033065033447248774343726960663607527318080287841772428847925716272353314508727061259670929146663276303291067783634145384815868141865380596437409483561464037421176501141872408263545749201326234268613657307215916409209576203270053552872538673366095652122982350842017832979071374523840864832495275480213121719951596217336570879315687164035054675077468631652574168622474342712009245289221675023107060855381033853654815148988748284079672572632125518145566382616909200446295678092756002347902016979587860190537110013349994152885567252864635379668294524786610883972827592992389353549176026755934453609321500000760492146985457606429205608238537293107874624227133989545819551410619483494278060860580243857778270476853741155201953759135398161011501427291728757488780609380612244687628982252803982793127234538624565113416006989230484448693025023476434855745457698686448851198491440892957643013599145205575632309315302033545104467514957163422917075064846240547666356385376793674072888384187222749588498189022535212615801805916088543897992029940971080177979097481367599952704962533008083549890260698477775516880988717451391558338724279084851207226125085503191890114251719683898904853254353324465975472764352883443404796139938785001168698977883013820850745442175289502950818172423651516520642503627135797236040760755966756837955711567212783554963952503099428619866005299651637743045897114385763414293796299882247462097549257811514293165581112860581814218188599113579057497560028395050491112853978701659474718725699813374113977877409187918401334647978459493317485275963941457193444120704107593417777478856190027277625596765697026916722855884265705884156700159173325425697247331651645776125070725996419149904912825326547110180076864126662796092982621682282294954878714739766019272468871009911084524350773062237989942981390228566574532485813061553615446858496213670958525347886580899754213428531796394421845545983610572122157964706544766709512943408124428891548063690084786371892169184905434168265595411748985163259573011887783733725189459631902354435567370897775237763690789156779784827394248644751771388721376207114540617562429753128719866007297834538090551375335667300117782392285473379785435085943018011257753604427145989290714093577747259094131645580470459984414045855935178158742880304086880861162150747661258801378965204626305326122302812918076654358558741302789212533968622961308873315898129758834143682092067473504977747253580437507061266421482955441350732727458947204598373580199499266003486159844692228232634886766003415517369031680565327356103191094946701341699116091516294466306604597213720985442448961714243426594287687309038267944858662667785745845730222420139302548851771479378567694675565149033972689061412487530501800117544670892707407586177161073585885456346583466227314909635749506153736395250548449978124963368302867844823451683961690531008264641879334026108924323196040041868317889201927798075092088440149703639129699368021755986528347132144097903390126755900717583166990861727592992271053691604333208105321588929010562072485887032016637751012419254804777792363555554148889219096576816759873769483014204391589824401349885329099869830420082421392621208285468115409244687909905625040126585824045278414893525118786936769003258047328039369568531007151413898380588736585466188791371225405124588783769847791605180539079319984174588157076766616655330305246166357578673557881572652647481579176760545659909513800971370497547530056383084200122546519784595436049443875176027955862000227354425171813762673994000537873813145790033328187484610013978661767424563011808364737446201183815912061550666812966687551476625486480415723802451188612194490648106493449238923397638962620433486341407187926979322137566189545382385233928334736992493677114255069470886880708253491245322813810380670645447790918929885776433541410989147576058467818628280655801912372418236169502305150032941369383845260809167303026915539109283345667829832028250966601432833360436369419097414135636933041163341535462055211437488822811512020753873171309220045204761306079149651754425082145439729392898266173178450696460391914308305541623829871348709486148820747166475363901611393205198638835471288668176227590821677516633299698585572926264265991838562614328833745296950000475206309230202600730781959073028741917950052002781365488773430834912450067707169082870393980880307981193701893366993734995415891921485919678128775196273015203671943883928343605782044580123181062375832818201421893221017077501902235817887508409513516483426500669352780804374926079607658031082963162993130009489847922767003076932065441022395246591957430270143134285582144738690431273990112069493124522815054867875853570589729212206083445465872768706833699857135678113032338630127545476113372769318684564209509544816471933178772013374109773035636289416073965292313661628821205410720281038412469474624012856299402470958098661734412608510430963799298675126739418208762848799640538413967243171055874676882704702450135355017825053238047341173758888763693732898395401109514291819554920085560665677288502366937879565204128769353265389757774208934203197668893079695313471976434606864544289564937869974271006437929153332105158453360974808955486804807643735362741307237464426667383528045484301799558832767443806752648259024873644402236448585182499637626243558612494489032876787009034033350328380443415134193395415574586462387895136489233224190392461124405852786139881768939713617311593498253300710575611564496645998718786310428790594072033242643319338604636225288749213677832717556599150749557602819814025748702574469606387746632150008181727806426495737168092461671378353492370734420729640090828806694361247796872027957118264425230784131694482892269718285861004560285398187602097578307312851589383216900368920614483092997098049485944680952240062033621236253373918799631080307866708518828309729326039784537000339950484887667478076472181938246625554392590112421868478689003439046760778948825439448889023999067064850064748770636883304827007433707795710348583795316637414792396715802723492585801691745044298067429692121996382824376483490366771631535356085920047604796925739349115559130826520623390862528153851381412551828229358134900689774631295474268667331297117984114969042518998902600599389072594523441850321522105222436953852510241528829336917550486566279345864270847012823539762366194611127395368079965439604093379855286273014085284005372708135405768792016346711177699026550941931651087975340676797202910440076711650562869643058274802329553009063612052432082349090928661401520728036110620113885124953957030007648385026738353718911871472924968817790448904022928482844011172393173878631427358450167352394285049950443373525541217559231008185581134266512570781395823828702664402786289983144844312682279291046914809176643559638415229612625038390474294421546367300188070563394303661588144904192639112277268915721637791720184414535585209127390226502056709610815764110345911747378329803227091027040442747236338201350716092052203363748491688190695272580470739396320421979374445543433612636312824820625636249209490528590817805227672294542487161356675777181788585235119806736331543080334413254005628110175167753127288823761061858341436742124415639673264528705823564490322831246790863693210828929187825356413298485040408268928374668525836450774920564505071391467809229088552172347063258696963913329763387338581557438937482401070517662678854386120477224530432900833534140675199459628665677666610764911129342083292676788524284724033056635681997253577947084484749261348019641210779766284470000312700136986152728852445182434412579718221790672597025287468916627744519709723327814150928242071847418362143413424411533616682354997054103041057272771344708181282378271398176004023301731458902594768754332272894355448997272846682598202999592771142803061074012679455550341876599605366567825526380044996520874424593316319977733277225364918364355660272566840726505938627685133793978270442825367102626990344189185029422807195868209276794868976023249479231424501266143423974970083189734999474988682193277703773340892572386879613584383138270945466970199461917107090450441044217753600477794191838877387309898828971160716849517364107514041078554755224638166080857746584867947711608131058581242384323963816908431994059745083475006350143853423731914154084274397655298644057145335652434872610610745649002796419761788717234127719186523862351868511305095163483610638153282822953432490917550877729166128780002126718810783362955042875389918349273812969576569859359326054915719520929472566338972323890045825812324718990090244010269223051381626112425523354525758169931759436279038768787631276020684778771377459584302562863379945060025107474385145933675132846931200908773583349788501755036484130222536976957076926592551108648700909369798925148591858292435824682990040526388153218071925113898022127955023567747539916797826239711855525772704645898866989876843501616668016684549881083594039938544778112460067050840071850237472277875377401920461814486536448856064874785303632790690961872065292751482610865149841332637046587173502943422538323869489516424952654982569906755126699607469743036411619933839519660781332614266767202620497731905959322396534198045453398259135183821994296319155299505246612211226836020355236786831409390375436699281318723288686267201843802170551750195298286958219415229588311479858034463666955834441648865778424077235098932769503785188377920372987965677747561750291923598072549334310457755987652255516562362703568601994150591326506335501651678636512962686493478708637111244784174647382722238114400860116093906136092574906644259208797932258813277006924750835025689762612718793288310660811308795452671607806477989878157455915723721237989352254269992350402834829462544757209784161608771602905725898031069256066058767954672896894392397606195611692709054038402611720283352358850204123211442549050873879597814217383364156734044304087254430535399033602947439887111341173014848343672235278001970830908577374961571484318421728339676101416853759654095686848666881250423462312163955660093595486215470947008747752687113472733064384721382881094951692693716983885966259591507759662361135557523596656498356273550516754060984992197460240278577085536562149840087840309249696318272948758790007230886924349206113873385368581865331051466975686976072391297254038321230146442826275272695961938228650399504106038162870830612613238926615534498452620418975032451360839480099009985534414168267330467267150874942437227769923141122217918757862967666892864158961128452236316926854652010034293965674490064130575425658422413957132735053031622834055147607398514170240678635302810095115402743901597183885947265601322626956306191122214256628070478911257846623395798140639269298004063613102423496926850881635108086253398100693268256189182486181332005377078884096820829369181833813104651412266097198328876096654912077342917258975513664772973640268510288955919576916851435304163464583141004102046233939204457026952688964870416628056595587041976150071482945166852497391803605234909871563263617313711518112841215536911030377510898992494430979170104327061689443335160385776973073653845272283028562362496633032935305391851447249980524592394997366103196321894476411902646715156088029717007915413556650506952580789600310830323176693922272106924662425098928489578539833280248877655770532366063328847987360669575863183582048141398264659922497723986935698821212549065436320184454711877926283696133749753825301663318085632334179184484070141175835031995838496323607874309275095797880987587316882140850979623014494561461996547969369903848312301567268730513166946306593138298159417210246454403788929820367017246381893454823077768982405569653567658576968498518103119943006005864733651527086325626186973330577117449773886294046574586356799577628510754355877299897202521093685400192846571107318000931517776896645654622108770544222494833754727710160726938544082121674735923978083660870946426075631436241473150170726456599045756151983423410829907371411077143688807311914169581790167592759416738928094924834866124149353315096687120026160469118473321051317042308833980448382001779064937676090223666369844120208990938564167404640047968147351506444404224719606751013809708429419751688663809938096216966309393546410779620106838504090534979716126411753296190875086104766796710609105821560470350398992723576655334263977664806617413924130243682485822801505276681817791667773484076974818074333642368065913547365729247650420430180970931414216568766930455650681482370500042104125139167543571011698772552498184043524536541241374617470549251865540410229562226632608478075964991442035777707377106088436736481958940825034712783074592447922416242871429311491388191272292190335034899161735929439104312986501220976526200977242527880785533314803590816828918869858368020352257965333216552682158886659366794542609090440753555069383664606966226464911105168475561319329968913701433755645303679034724528777631629723121943060545544760372145629770721420249670303680328146875988967074367621343165630089559713565804261663055233784161874159610761905633018183880400648323701109551955357246074457260459878092921598382715759876627541868643162255914343412986797200769890020498695747368016298647486851993955449774335195599681160136823202883106240535187962007179199065994313364222384539295395276842734907245640205564753922492586072534499914789180963329998035631799999330047026093778080581278848258604664270555281840520888922835963986171297360885921074667735006563512667538910929349683090940528623693416548851200772096966729872494455717033569294642753055656512644966426170995808883062889570603433346342893924412820706737204934080308696143310627089650427053141833834863789931549912464994141610368241653355370759251643790135784288501311568316332018919686611507873727954378215539866094221165497562748154438499863224690403209782179147971032387323521632236944269957412010825723372647457020787652917390346632142173145794133210186513803026749060340064491437809213284485324004374375377637505401362214999010261638405287416547949316375560069761746084874800645639858318340968501910451278233932612350787545125499111201337842153381624548214026149690472834291018245378334728299721732115246098354084565050341959040554671833063016685708476368629276942627514820239787995287437457028223434737730636178825573078714905271003986313119215793321777443764423503624286832765013178585889252317405504317922178704565308048794811443831429024506674884468428848440896371186626302755607020657626124228142557536921302264446847010580780957931275136880290018411871880131680764699553909622042121038592405490324974957565282978233834562529520451389258499899445434999743887274782048248426470187209034708781226019692531580372456947491765288417201580594683452264140154254105411581087329384229416361441358965799404727293238029916380167401613606354210986767444893399730634866337384868286437200140843787078470360468691025945896560823593180910483857898912419002621462983723236274843108394642348329184388815208719075515290179472325233424380692214011568465429290557331084904950966143873024798965074433216127596662553512326780926163057903901635971797931197298757605762753729559009570538722203392906027527020417467321968181461186144583013033764955307400594408807035147472970521446747279038655663535390808674952217457397785332267734913758696381789208685217136766346550768433727397875423333318121191612765822403421860914935285677962951181965988438644910036996498823218778034246042414247884197630575899830324179611588183993777665822892842387845168692288442763392337252904310865396654854855498821966067358847351071356700672576130040825036109660914075875581281706494628847235487698311241056540513819515613347190119488155321796764150152042774832137248735175920674793501021650658324146899412419383618789277262765385362007983015396444980642112975055986601183983692253355080496305688514860964034298450135122115563745026223025613486027964800799783610802341253982552699816577471344292452994187464954552589613004597679815247548033959088551632468560575064940090550678576179990379608046437114380233730219555317345873944004293760244420337581786872643217838732929200547678224519159795577535967710780313697851853642446125612293805634168441983523357754390797606740025029248378112840983095323507259169224131404911799070017587729624691981411851760026179172375850790724678752456972610187331792574331343531121697618201571895227308507077247799383027943857847115879736725877542802841991745291505533013176638171577987711744355489784553472024932674342359252967847761124764274681532487708130551050937568246403594824060577210658044514262927934951082444706392341554371737506953585197803962223027240917333713432732934892691918653139967236598790739991395399928711121299808911266956064927125302588286584981671576737138483317631472293848507203566627013375380720595328970518316377536583834159594125593673509577515949367710695022813663067853306875986136039271048774224131717223591490712032623205459934038090593831210873050509277427791357810851883501960950132404493363343769893882281825231202872405994968115231028406698324983718776722995213276076318375982778249661638761070443791053432218096121312369372876845345990145732437948937043706258041774126455034837101576001606213427067601787599951875428669606372254365995442472119593203441162130089286108262252549560741438733338298551375427512181122237313512982925848353589364187466222943273801893781022411793566716439525409765101972401662798751180227801125305250695049574366292131305258856350014852409575785989357369847363327199473382070055777656857077459729791811400317335686317192006823056785240033096532937969181693671633259704149264343085576091043825462355225351073206574639361478808971252420110613038272161933633882022436361997580206005130712099400490144005500975856975533244102811842434615221812867396117591129999959030091513270853849986376872679270461967460694599175705318239845480165794325812837667765830747342281111539427235293791792092690799847795895800656380680074927578436249107570712875906756275381122462920792145915313966810903327747434552380775910915810142515060775140767882235187148555367602675397808489314612411894025462228696878431591704036205560199577549529327960403723624007537833613700020748983376281186339127021569631582712686465200071978995204394559809028122291504602888764689344671207988324244990338380693053210036553598136847991400879697193623507654087804701436007767101220162956671339710029675460330704276965738345968172821615227604690981615958011071588061159786917422790269101274217340812153232715056140913249260757455363397678012568294883098487835936182432427632832982111436542023784336847163123652558969912907746234831995400812106266934865088462080477981452515816492561006493033506978677592421917122929006073527710862529556138844567296260282984789832647426941580538213485302792863346661185937903611490026495642999994908233458959398604939130456273504760789234140101980821333239557826715198015737092036128831048218219494931116266745901211846939339757135442486787830851011656165315110156110502342426487013008617412761087345329859503837106463961676328249645541347290489763444439902979224189471144292638243835619379036627105901696981024210111261582754581870212603458236938976500667702030748781549464057719918427291429221626444335182447224827388384001342502220983691959948452505851949238406835689977692446075917264435226931356551430006969818106647943091858157842893924112396209351860191106029519752270569688651511879922793800787506461225530480847599288457083989481293317457696286453855295044707780959221718800879074622560531280228711435591343380371730479357703650025349801375501019034621724481391558044801618608775905807362983290097337441481748555427900575166753090783387968102814081120843262794301165553987241457150288831700345226280257943198962589744492854270288275270734756566320708152182759194494178648453181917326087156941992740589610161791147274063147504893626183282095053350266933054362432625026453560983376779152846038855520164717544841205719625304744624990645212273832847233613663943791951869510715553169145293070366407383426567124430780742146723910577151559323534874986671782644081649502688236309862615565173783193384051178245016914680282723315842893691023528149171495126117570397900085101286358836119469229294209537361280498610797367169640647586686751700233717386289177555549880313890539436706819692606956665870715507282184009506103705031064129078926068682531995754897781544173768960378894596270776327270047487044848984477425661027169066632792686381206616183150680935027525486218565023118063429329789041609040035928546136910309241511837065335396034085918908286484360333093869177401477533736459379415535180611692929325355121912849015640263430973111881982197355750962970001423342122875473982241366492548123670178491391812535012076748918920835617048484680886864474755252132270414743978498027079662145866709612498252082114972079423387757910420453402368428295471802035630369241352020995286054741336428699428872289277324501890555664022870586746373749275651510177649716954186276609634520780360467788660503872767054196998682851086563406897661926702584573396241401641616580945072710947790850743324096725342965928614796923916514572314225678933163219604394745597699114906865279168613016194395596285623486907358319121690988324150963045331526101840731275397787075633058400375918300448153227291845525889879459161030295546611088240060926956643053456394306376169737742791891591652606210357409524325005949113570611910235017753640130945816189196336197878728251949617229082055463607939869830062163348976035470972501035270142294317419787476296624359368039612056998410726579712690988659695328977947069334353350116493476643360563304878438847164390316730812794669633123850650283438940607651100218141399052032535632229644575476885125073827597152792176675789678647922502481033586663936616325013315571424813703584630347413771382597303754135255913280161117560064637109276130506033816006466016860914126253156782055837989370429170474624647413949405319673246949184249706724756043835699019951804622975263192117174010689738810982501811257146442154311641488433013061194651274312995069089708039987730531216417039508607843119133626854815389033773751117120339991279617506044130188349199102797600169561279138669432471775717404683660274969665599282569538658637299044314581096864118386406456174341204418658708677646484939640708847442326162734070709382520379034200928223894303904346829879464513287416355038154340802929126420434302305835648362465637050143046156649371508601961550144249171779374385198574918177026581044867613445411832033363371369519945891545333344222578583413658848131606578490890323108317001701200734863434999607869143808112109561097905577133231985712960139388885061932271019258608982869786497910402339244551581842870939453267283538554026948486018155616740639021198153164202150429384127546459535059104805590282625421349984865655838286648721478727351852621008050823191669631476324193155682180761037398133377465743306985115314918708452791184534874190558788493686353786690567539297249271533462289736118899849474767957488437177363895976465439174898802580561352833792897363136780082295302488278227319627389538827911261365642199239392505042240913492214241674882702210733791417293749928265345250820126402448188869992014546400796310486730676728883274548386303454309759537400224051982762403708108571535027032443643765302999928031523809702362052197445313719257327320010904207330182494586652039725594639494097478300383056104561493412230523350609699104029702204403144464337078762962736760928984051203029627267543107235621194799704351830445631405756670788541083426333565487839725430687041140370060855414519044871714496033032186678016418228650904734055393999214785866773088702579116339044879736997782391980645670179566997156153072290124811706406094770612414642960739263384685777067363022677069989583477021125560543820648315737889461632569756681561185247424860939653468395413116885438357878934269729729780584500078823341510523236688200536823195429828479793924926175122972644771094718209907484085532198679339120802631574524136168752423073956064628124032021992667324380522383253885431783712475092417246985200546476592943802504832156006920750782805537844089591381683852411669503515590591381822087090241146804307572745327691914182267690696051172154686685931771197048612918105117327685188784061095263949198237604600945617770144633581691553445582150181734862616379917775123421761183275140541072512241011659191995033878553402087569953163956809182588424410763702177151186564338578135980211444247267659716144246809372225824759399743047156536703335246381911357957916115535821104073112534629055216801699597177434988732561129481470644794166122237308684517970922193683401852757693563314913664334926795303399175045767254992928409228448842113736526144877584503005028486568858071541520755705781309757399092758850698796275022089128705137153384663911561058381350886282683770402554776389572507533433657196437962951345645172946623607713534615369290360683945813386923733107321393464005838573630053835954719051967893620057551006207497750134307252836210921533632886426609878910961513603135143624833874844179472280145731169287132739845300096872948751610690210769504213798555922126260868938992439729531319664056774072707877520467160012260242357376388808877105650476302812822745497639568067569215504117901908298054471802088933983018142936086695277821596898588313678008102017876518373646861850000528375332975481526858644238815959473538186445465660366515137375285408746666360939927647276910723893098938488046333430981919978194891138713093002494240326609277751009920039088749245978260772287541879360520277061229817384925376296167192359602054269589089944983647181660678135307161125472476115349175275788941506519293311593841235386014796755942331955989680307945011398512872940324899032554920947461379979141304098202242317544832953946358870966373781091200212080872306202055624773586898359680214883621902626101166932631068427694830969860350935673477059050290007644419012616313245968569646391423844279781246545837687877039153258778478634591174650794648520375943661768769273462876761065920088431315075377285658900567576407490406729595703722500898374416511377835787700470479343563178487580761616269458848931276186802746383380189955084445228993163635470634452345396948744781668180170861673396560199418796536588637602187133104630947349721188128053242474587377390396164320281114079894098844786309239963912022125043413065541776340706123815030987234896483961822909006812949569999548344975193803620705061759198047998138130352020876232279436417003590667251703550917981601344681520907651624633359947119399713361768290990616595378555029704177247160348852235490772364837134565914343819462301585559767783023117846343112387281115856221271285332231313428369989525608928491331671891792091172537619866322345749848358124480869361375331036089125296998629130604119897932764081596522844656093231230145274234043833352132667593715655969540037076141769043614853150808752132899831802373885579415291849646921650084674658756240253094021834091973152921698880064322157599599878206890721068064399639015357528059442821356123093397065840722856966061851736247011069142192798379660674151486809082372785034193093138294462943934276091096936375084515339422208813132468921833697300838948218401525964053757788453575590341950041748808531127477516949396274618844473827363035326156348297126167435192779171586276919644486734392646898130109800255807242450210457997517638814378108004822673087893889911554218532805717361233401460211269812716141416008707563332735950751143119145873911449178725902408573922581075557045927232276730457908615833505501034892918235782839371832485119610829839232929500470632608876247630547795167904873682405168264085894839582317234809204937373157706422877109698183298017314156355006777848611121547142076592337881067624215059877777610130522753483154074623504819737913380326071391409911818245397755639692908417790812362250128271199236859818244965102781084655020902827685273050970819481747354673088915108944004590500341326760172300663814851598002913433246965880627562061685917389441735147537582431633464716474381856139349756377451229191399386423817474830784109790502087771253998952764205120728364366432091920314362075633600242363772433764539465031880103887526568111778631497844331152807685956524860524612698388638054722962316895879239902900507732209182870629604884605575026607371161653778205683404960622277126029653967764660397196393539360691799451223259093535426248456535124470135802384957610235474190648365207783155453868229911886855390320802256708606402604695523665677588615416481337668203514598756233136136858192383124414600393665851381170779193638139447352969517432914457575258095086462215279846977640416920535818361340793093677474719497869307997570374665380379750648177777984784307122008614260742604872337294812684937469022306922971534312130744287418053939546811221471497031767187169345676489153231656375064230611310251461414150748972472007150432764826582890089828630833558848606312701672840408184994029953864425314107757591215186988756530988038431169114168929024271006407615606452062564079175890892237082187128354014121387230853378751775423408683617651291195513629992752295010507332899966825207257422569191453103320655478703482167346510958229276956112590606380420617830923841941778755120132279648274243526427942546707904699396610232346784544338250459639644742054915018018969024727082149514730448962354326957978616460795049542054774365231028709636793701191903536355439419339841065258657045824028853345954464266513742720848340543760197043822783651364678748368088303255709035316826825569414215647189202485343591440550168756531713328373495239811196381016239532961831929012261073189552197018997981507635093081415262468597385756967851032450344899305812512001549701271724390506953373104788086769066026844029679342528587169050671323175198574448516948987904489423840210839372059041166172841625890356797456287301023261548544766292827197232307896852039191292850858239796604328296432763920380259989593420681268910280385477913582723056943795005005444072469028250713806407369237168351599199214729131610153555434368141133823917936942232013381765549129651914624426672863270062555688008855289557248005680064503817103557695589195818326068285763590513702462856084439745218259681588728934109466090071295517538573157921220788558950420760185089706921065441648303755769954455256783883543385824151063722255421394224469348377456851792276081382100788561622723908582858231302422809186361962901383050243256677841767661576290428325391736883219417479722029961648184906815327245379267333412754009384387252850710341418836952437455185228598683291266650398984432303063037094793543319904247503586643096045843417622651696704142550417750441192917745654309611901157813680733138467398961670719403100954835901473616229748705221794710602771270464125782113182164264736302010215075122131771274889813308165762976239587885277833354558950347595417157319866417850532481958099692025206644261652272858101473805088397131073976880987382935546968721814774120274582199306158768647712093296773519389308393529925876003571178591102550123858745360032959620668826850918480989971049554547535186780681928222318401552179522057741598444210219576398902864523915737777862919779804666975121199563101561955955707583444166384665983225108375055484336334255435038068285652096450003897604913169444801465181006345723497516724954652943367855164210405596641890536331040378347217584038157162953871683334641264940202427689347618752638777974749168035812698923512590086197521656828317330811475611962860688210543747384159656322866812609991402740327177028803715122189480378730477239831367717507129852172074907482463814801920411738917024252545065369931323965836343886144927771045461065580311177713913760361773809369263086033357488113585954788787534131366954401082283864257561443956579742309851666717785206991833681282286368734335257908605314077110779154595028330011393046553487347227981702992217598436305816814566283939184807795677838652740881467660795154699045836757698469632633412406439942787397330370255516219411474559554214651101783927330729939996062730574700400730632651610252297472965635311564557850245502155123876788033106201255097434193215756187591775286427092299362095529090224575021772463785735558701766466967211673199334516974892870023550357193484658879530193235686242686862990445107703261931597495824774171158050717758157096990242507587404132686500527624871062815844559148427183963201284221649434222225184184482361276217250339631924013761235717178699228907951138863163921240456007068614451312769268140436653433217347976072009906399256937578840607439207286388549368158117843415033729149287162755163987557605850727721440687606447168092645556733448250093502774580878200560884102107960533608435580211918572941493789242163318534360704918588610721375745162691407262552334856173244368223895870482475459191930701739597136286287761667001404333563579323217716206231489296747793414379927789083716320431268720118289050261774095519329206906419559666952331101445819016983716610064458477608874201179200752003565173784782668242189393121811346206560132656594746077716903555805821315722416337776748781078860572936730929614664159824588972429783194772450099157737166956215285978320557374288212341860566597688305337318044500078336899857603501890831717647788705545771261561635832055903348438183063546712323401579388188166907212413886554594326422486486708240090302454096549539844700606437846941999966338355833167324513391892471686552808937128027271133891176446167282673997074637332460523393439638945140200459290448060358197522285435295980085378316008247971229749256442009153076393603332958431798448333678560102782282904678736985101531457665230662304205173760687314922143158825248096628682682898612680438044293642763115108277094260162912249419602026885820786265393672052828882415231053749323615580369524433997619320481132693765817054926427840186855721995096723026383415364256410464996769314924959861185782984299492260103809273819203945400463232357450645183070337712777510001084507046492515129677399506357766197466943606756945093041274475973855461308158429105374486982399698722221124771879522832700893152501770643431002024475310840681140355256225881637397336440477427613484957630640024556868293744604338721388607071124361117582943677735302268748547707446874983178515891851466158751962288535596207092362637140222718329627407873687075418944918672170515241329965461596809920843692908520178514159868967148402165264197868896765451445729024542847899057470861920503304612799773531403218465789626111199350698240316696331386073444915524396734136455241268792346863468039205225067764945341169895385418871033878849031955221664074743135845123480226793932485380202354487298984858492880420385313348062202356252529016619551397250969535330006078415316839906077616024760860606519100100595754010583332090986083865865409993422285828129638728425726414777685241401531932855267870230690917004020377655874855342640570070292587858219363263150960953370444635861331956318689477723170759818153032722104504425801630914803578858029514255199217830894292007380415137956461306705003281161103040956750594314331681292792755618840687603974712062737754566550861940767511514080582051727369474979306511487674261105618752835325345710386812220382641031752545273003413319454112357185761001350278408240996127873110598313289586833390081667401102169701946067412654753548304357196070279630959564484486931157836157649522924306545366577878624218943780514855908604690537580545806524395360158983168390879696227352380558645834074299936056320699794185719944752713275629827439400572396049743976133872896297180240080659435211791350321698914337293263398048822126887653076510293786801900373653527474769056329740464161571064422579083061646235465296421663979729102736159813068782139829640911703752299776975903085033590093498502232072679687769993646584935625198878182081573103464738846472469991413631930553495098540351395077753503327134322245005867327683808056912989358635886166109064596160646250419675570817558141774010161290855067543584235775865215834735739225535681242439908708952745151213816655219392066592444546840525389419864375063940829639341292825450806216519338179624510187949346732202966952067443645536861770936844696638839901536818098471273409305426116870687558152256191517839609204825564838250933370462310790589693747183045703383905675143335543926320979638597890939113847787239302114482975522634423460083921709560986271997508214029550608349699928076585636074524486319312158613423460128109914234173579017065172473850151360964820243484565165021901083108808432038844952743192222459232725192862450461230071248280562052933663429986097263949714079093070170352338855112635088944553544886919842027993568405645785754889970170448699112566287729289935133669750735162643668770893117809876213793211220621867738528488822961000144983801761725745391892214223592370479996567185739846555759732055351330984878428862815432699096041059213431328617523817439571450563040574195199696695598649804621942495933274000699818642393809233469474095782748928377714765023627846409413650288931533986099341003897406552632841918067603575714488483433301059673324792907631297594090263128900058066439407295538947808743663108956789654416392298385564585054590841527402090573980553526080222292100320372254039571982982053028911262369479667753692826495452650953016069265455968369683280006853934036996161800683591844471243211685996417727495371401137535602519747302130137296530733811602593688264201273048807795872109578989742595131753185220302519777232107876458671620551477941330524849753564210568243370820523894241886466585309641839165841278428643987889818971332954471592037600465657738052080456956696566252750326400793434885863353754661557077913471186848537235887254255128480482742851409057872741494081890680476832214086635546633486167538937766830910683971965367221000228819422057901354581554543099922842371646334014374096642025646323663240001225694153258023833187381010297129491929775344479827441568463737938673472936963983650240784407865102460739890545370864875145440384373646543000095492974948142736271059646334326237838831953029668258261773701186683105176186431068068090806167808409122626050172075331612782885348693306613540930473264596737428495146679333371700796498420134523911733859281435147869600998410613879901491012015242012400701103985408652581531760357522437771149360686284916821574560724688775891199719059701331458061715649559393462201219980903932563068375766900695135856296258414192408502745034224195844610362582086137158789207331936214957839253548119062093482911621196205794945041062943813617494845797572711866721873491590929523230126738740474881387218336439167858537202576651775010580517429672486216260374400412889081974768577943332085379496233310218682655519770598528172590414627514640329595070637327177796286123625788305871659443277204712724810861089706285821295145849048322415400070192885830002808031481158483950008389908447316204454461252145875391651520894377995964908864161312084531958171945850289194812227144213158203342136169750587106572680158746410795805777956243818434762134738813214616500426473046530523914862297122215554847125160569555929159571275564887292629196771682821877925944965701162260154572317047182275515826896329019445055104360606159207013158422693268834695401190712192672173235144108036039858065085917688910396585273285905793778274265201535293457522291150470713221239665833654074925157257536687138991967439252646653029871897036543548822516622145214651041723016723010097472582357424521742604448636841958713081964409016481874712769873566756738581623512178983838402716348630653568981324746757495247744280239309749580492410809075348738379541302688556329119416434554210296313636981489797177385331623944844312607187993954341997149113080684017335607184752191946311020911540885435720125401699739041831027870625849841858820269707263743246823105796986734380759869867840278116798530292740256547326499508427852553070602531568817239899964920253865018132443303307128939379105408518057601723888087568819301223990784685236579526365603239193001423908781378616122091210322362925874841896503207894926322938729031025563218684659336884749780573629742405746847104617815266735934623534860752210239205968023169942399527100684087801143692143154365461062394598306416062986878569584571253707689329763620900693678818299247280181054675078459662135136024515417804294682463700517821431237531005533854926397832633597538274931672829263081769377600940411188304119862474772380334946552131478843080286318859941917685779355358089707198602039451422214245679772630357367921296678981098298110595942617298822992481353575758224159022098360501160276145497121186057117868679831090307252795595359814411871553213098669810023969119854370413682607220170071828969101714325631727511133053354207399539551859136327756416973025110396712730877155138401084075483813557573777111930325000250975232340279999543355301317756099463956021149366272880807610691825497299970195867725391659301698671922729114498269791016962490193284686057681807819967818935342596978618632249651426937536380280337695183154605162207592361172836544778886575660643669076017458531031618178079650573278134069398943641502585326712483722482044102973919800350042404857445568613622620981508165842166167400704779288160851598888061074743750627847935752643637235013849620454026290862488619415560083439982836633151428060063175956426532747554172688531493380416835985244121411586759696495703181506999836339242247666839987668181224429599562645317571978622982596477380599204539192953427678499371249572463812403415312761300552816122015724441320377064889831703313527549244106213283718501550805716667245425523604390368168865369556747308975051957949464907802291179544621465097200510204163273485451876561893071895664511538789558212880721078111006881220588709858729585569095719372034582311722363926102831455562883032838082528849077172092070374016809862924449653427606124796949350303008117816723229545968490959598847484412054785038706683547849450404457070144084547115772470058075248964067186582023091239946435493131675754022411368721480204798290810649976505057800766718904909113255264203870210885228400545015041605470756027666265307479384195170241345935761315659187125647407862180653828646887632021000920384671798114810206594906567624318661637915622808863910992053589439444891859091620847795129002326144925288688413261996438442047391890682949655451142554785304391015474990473135974175413528190167745288133292143207325103041814636666083712110001514744190965058437396294059447183736917101417716655794738031878729817274864302169163741818872005197817407054130373023114914899392735797317007076329192095450167845650732836652352563699733483481338669869528199359167998344831654509052557966989818777175334291406898393571203017592062233137094957876111512775368713322301753791838474938531645366966331933282815459822149388050807898979068020322199307382533946002409877085835432272379367645003495209535358235969964220170151001084092453164118913325702058887691135534783475158620550687175218569672124578833766403901753338540307552210420568897962203635976356028436761141752809003373449372090178164291288388247300260542973413874579797882180714795094631105997083262981015519212990618918150072864845703709499840411981861405962555015612698890820333913794796696298484317958079394232711177233367125597329850224842621732234096366529875751330764191972734428561139275880236436359044107989663799760192357836166272488557464550295329459430912932137713609111322314313543115568156085964315394017725047756239103981826466789850919863543747336971650236590798123467415503081699209643875813394730515977216521958198219126967396008292479871616869254115881612390571138622190112127926258465682713951583763970729878434682304578131391518454240598024617679481262732854020942766927092409571101490325155232572748853955109986718325187561499866973393362721177825249055584375823806547370280146042120200547813402544286523710631342336116614644197582925649965494932363741752458262588694455380366421748310785561400465949826368579208869725284096962000042532137319543168214158840210673514212640312205350111245768300540448711470635551381383208020104195944338132504130121212089987183148581333748543111902650729232939856061615574695019388313594730016999613368856225553590100267529309052373541105581905060773327554734546491387318427806688869864657243809883523506824268550564489121875592341709706202337765270013466844799591580635920513268240195818734122375346099134391706552334977166953502661293268005496033341906961155726488590786507313990604070138712292984861757524422540132747623031816226551096971987512911712712426945273167174885239827537410835391048977459917895499539944782747391001619589508733185078752800628523063146053734398218483075213714403881711025311092971015677939563340036593029038563077863435864040242051023451201456779583210470478343908102437278045091433340393601590736818386311518585604385657563526727274905708815615562290991388620103673560770593536915758332250899715752620279415511661467576290354955390955443075288649255996146499620275211717164300379822467711294757853852081018526231546143561434628627571412118399260646626592983646545368621248248733207060666559480179508710838905295192541251793842799820915404983740000654559342381020938658980437650339870768570902294917359484753908299503684267735371939629350592654455319069829281054672606403904396147140496522966065025322331473595183966766085796150974129452836268990558573821349706147304903537497158572694812897990326906343350091982777529894182209124671929365481095950838148891432368764716759926837637666825250952727040277630271632784518290013010614979770630085632472206561299982764032370229951226872056910537803025427998412835125961870920561763762446617351571426455023496116170525844913708181422774544701864461511018940578628150829656590426503002522255712667521337034971244177119219457783100231360025262471414853982590585979803747393961232174883588737488250502785431098210148101463586652898233817460619977629213478300840062743322166718994637603099258045737271420049768902147064504637406564780381921800158356256240805587235606966481945101491453556353011414268736237039084845318966529352675679819001058346714062151957704260335123941270695770196749589857097702679327191855247315175599917117500632923254329337482251917421197442235543587416083126218033696234727179982273352930520358558396463309363924538512138416527558925807414532643416513147096832675404174671586816470343135695913223145881948021705608977397802860309465070153820675481414741737507263764503956872203183422274206685019124135063499481687891476411100246934828192711821536394578742980635065667797359645083868250394143451652420961732339648420564085701040462140370274971277800521094072021188535915658395932521726208441832805736281226213376126023022380281845242097132092307979978967804594391902281773936111428410584585745098769399561197656084146160097968611117337108992957102008571653199428559564832228285533904788007035068404481088536250611074088130345896302820621575410956929339963470477640816813985706895739492166344544670237599984045029859969128819221125725767733603068573827038470253124313456142866366851023455351970783727225784488441070742835520540880084732221369707769576082560605514443726806826020025936806886084746709035075561326598288503991088928019920687749823585489109689003090701932233941348795213863916342738474127511811945496459143125944914618972156908739755757696788311981790471377655646308513513318049456547783165814025211828146840038063456246990839983823682451567922681914042883218299307654482166767062670937153483732384099507622417261543002929681176952431263270768866957650383024444099356054507094366334862615309022739827118211251496540470665410084485330774330669525393570783170607643979873748687538402541448776185963218383694689114239371012898883536681362993682127917387082427201190462561064393745685141544154807500582720349605450762906563563209728038561833597904815209128915746728300030866907341555143912181025533841580307166024432834902813470085628597827979118871726241075938493378793284319455931548866815253005234341297093783949918684230085932172121768100015459371616241776176557444886249395948678564404673868725011560019746319693560220941324439555303822817875622126737003206707908113184129856891826049728076042741437276009089498352162830498203362669903655396460296695031022025700682844739414399875434493096569936052103196042372360200593545110219338839928231701776701504662610389576236249851423042780111418960515307179851087589183917392168218170081695345329782861008998034624510262049012672987712283954862846366964143671487744504808359613933404073870315514334414052319928753287479566467964800861456423374685011851666522243472711579337349895835089459922472319111194154784544371600821877618404255373368518894225874373864210850213130046945417789436518835282608501482008249387355491409981172102549290246732821830575617913319040616601615870240727028880989539792902860313914859697439290436187708208165733042558725012069653193536155320390625951976065525982868267068234345308799810413970097976039525263447188103002291124895299235317151541634452485530463913173335953093327287249004990952617676497234774773539975576223735359581805596650847668465140471181352637744806921429430801331881806579516442192568069387958205491487177302838653053760755323733992525847426277871059704975121235959945689932110135518959961126923210942559310362341200517207876222530467902220967179879466573760706815410689394343399135445307810663740400900839684841345322667495264109602479810667536216278103623435388183876337843600268431443782099836765641560567135960917870878128233247162987530552387332823096225646329873358486962435091487481298947637230359267335705253920936082173909507060691156768732989496169909594544063694678130876398388621061748047910468032866774721271744610004250214963274075100950316440686989161006976431388220549312924954717259963501300298602481169153517652738123100326491137726919938167883180539278917200964228502248303953469667774223048254905012834824931183220271631043090328793903576843134807149560095354939330725965409880010367455007647863825542600036410175904353717493488862240313731545165626801896110349630854182312664936893927965623311053912107628354995154807612751571119674248382634538243314233625990400474330445305055098690321901256319364880668174389574459092161030023472263630853274651736546274069724334035552672901510960799446878154019585866614827904663969055435702384948401064419592695611448810889603078823485112210620894430672843409611683295943268190371262370124060345192938348427353403624905204288407261966581069328056503156738463168588903117855199339540124830116323672755657493736456199299952116201904104932814312047551192379231867966024211093233472193515982643445219657327930555244872839203551742952499638133839923439406502157083580592585987191160025501932873909242797281616486810987020605964050502689161483385565150450402150635798200993572576166552310378149345490740847418995471560116852342900028653745663413051558394261360753925200484510280089110087926663028975915192519919664982676127438629585617836178854737358024157695581894382214661102546547366659532572344381751690336224451383315190029531141947327363379158065241403833614610928461680124549608354501510434967368764150336983502757388128625585796456305178827172783474131687637354096519086853310207038476085790626306400767543415379781690051893272788637842901056688158184260423179297109765445652751431178803648610538169372914215088556129438356573723226513291913350291235873362258039101730701089845426665558569667069993727644161433326012105088371608338975591562069440399206171124106899833412000525142445678473820762712154842861164924231619793593306731472495090119905550748802239678580798796747616161661571553930859181910270885313625355024415513537704363268455306104938020951352881010624834165992931464861115898310299216234905387606697785712243018590210632023188767442133451482460636403419344328485030737835447450889108484180246310667526110731859380712956551613123367566525997607035946026269796313488974067275164193962160343228433990601440112179170878352805400125428160402427095816682031520481965636269828645835455224514998844394614261434756527306070792497413328248381429645899173687084735323588307513951627663627023773553686419577253213676100466075897465225486875926253921394323321460884698608583850111005550029129180177395854639205879011461181594826259434931886932835641006224871000540719877141426903426971807281181651686779470455893397923028516529728807926568438504171057708975139849133593622316605442617252906948077134629810975306792270812682147316154836496361865764754876760357826880300936248747549407572306778984799609042778899668295140682924709174709669482876932710370394916380420209664547951598376434440172968359815364654222950618961776903508476577586512246079476290848846498588459321600263305661157522791310511949758129667231052262924943103348629617037027141451520388217511582874040455881075984266569896014578247355743761859955238911607531142251844252197798486837161302759622745318995850846148891757556868652775607109398322173832911235641541151684046268987622970065533600213555416654095075239775106571826989128606535132849474234385187884602681122357423179172970594184201070740952256703115220412666813776381829490119522932943235760257357899024428911976571494389479377858686845712403055548673947415510459766975325169681944785649354014724753323813736686649063329777789263909128069016092198451784395764366680370822999594623996936436708605616770371689942511823238612694334497407920550321800984688737569635934486155885209160795577116954037830828097296603467990423236380961680071683552004432194644151886451430101518954438506355275929387457664475645950674408939142716601270792901249557490411605880750336361464916064762541855062318497539455694956430869258430723609692211156643249312785780312489605320388766230387186023384654444285344324752787661738590039793265946105938645815779344366593694760224884395012906377065819210652445422021117947381165043588914314960423408296926954973825492367234579089692836323757149844750002910693380156165263605251602569941593373537237266645694300806691129229330734067364133492193357298538902979633145199251152791087471475683621193029549322683083863234807538472690204157134196859433213830534744864748567556346061413890809058113033575660484288129472694552789807504222128967215973737865989291126995491255744822229284745404167173245396104797776181351595016061068520755984469669285956061206104206372675986634580942130081640914678809475457831854211884479973415211188624041864460423437582476128023077960825344000863202938933775248037952993269418536821694937933388798057731503946161328556420777712410123248053215740579727969963291324416188268652123623533677777981446677373443090147817526812350145920881811852322339495931804797608606026740165947895957938102209830838352842609805535752017559039044089712440899011786629216532379304402489515242929752941126148451070930343245714065350913084473104291031456519977377999436088122397849608154528470595143027883248014612525627829390561805390638139788263061017470397103611958566940053340154377011793217433167009255237688912569083004125253092801083779932100425846064065041762505383318336644781373335279966227345168711553741836052954237322817707350268924006503861138735050984582737239177656963232982739339854630886232118493519484299206682415611374952520469841934622602613043347621745380615175786688757397556602810587281920486958966930751566325840854496025768079800158373130980723636259949299901146411406711820492948163819504915839343828111755626645516952099739735352284859591633685531130603643844356295019753524478455417411860780482252292761685136684602510838106844596304387860533072007161544782365412462980225470103408256242938171167453038711790586164517059699927579469575561353989877124143693496076164861248935676241426560750716863660684291067654092550798295152535293073653324968930950623827718115366001426634739267936281486240436510598774348016567997944993982855555197503561593180146985621131180002517987487616975251666868676072953093216946301180754579540204641562161238333114540857396682164978340095731998258266738227367657594632935909650522951763993201261219246377629370195341528779658777284098792728894577323427848790454458535914531458786940236105472379934386786249151870807032012435061452782156434954919842400128923320662317986121777980846304333262253981343419533375105528943651107912008775785387774195425513481126753860084136781094818438764686492326729386906375239888526849481360571282185775006257368988935437597299306131478802846892058296856583517284667094604029561481203220927694744673161721014724758331730468494980489592068166365814379830732887289929548537133746851671959803208999892798725701191183066598163157797513599082224376207284266566183643578362225113598090325240466893238215019658368993638492572574681698730825299275231330892808319493872888092333235962409711150711233840479887398432435145783846891534864231620742501517188526166656106022585092245530221930621796949714338572291577650153069418562295735506215788640987084834484200395581189542588855052182329455023772708934314807805397263943924052726403574126295557724484200613227033746737562669189262918539633848837397779128785720857809108913852129275099542601030793442052967062707919689323463503003910551099511038852322246201681232269159422738466742474971317682560917601963422827049292142507371888658561661186222601636556986559382758732633292416151193526361138334835062743041121836202289818076695446965197880805154647801982766782895710219989818805488079821710999594517117576738292416462346471429354550789424530690086430867491912516727435228123767838975489092615055745581852167642059418276914998700296853302604521200750367995926139719540322542066794089374891605564462569251502080249569873597343960986741041252736767240796094360470687839652884230872190538247112301147365842853456084418567497181483194225833056584916790930287882696346849799082013063274182351004087711659530895716343981629872837634806834586614095335668942068301856179871274338799502793064704843545170158202127895126913206011247290563077493529262408168277426978927064349616991142219842140129563611750727260583550308220558117626141718115343090966351334591607053794089810900320511128478343794475955940549777774050680703253543062783515368402548738959970719384185013809487115443985614739699245376426301783430213891053277425551230386807454916081133512278020892981765563310830608134027866812349415178219397309465197195595670658483850048971297656609751934866728786419404091065151191555907245425099490348699365054828057619644745577000164697145042804139880679055823058282631458269532377385559849848199945836535588984905168174876320784529440540460031880450423451428378336874542743484371170597154832017663285713674292900835022692940104667579689398745528020992340068234905365782699744642210112907006154330155501835877174362206196626591517129899294949270698853897082590543940499925329835315094782732615436378585956835558606219289980447334388081725388631509684299604139510439040529900187973979064188078348141330835958192612767038673876606766136418177043473744619216819582795675337532192991631235569795753700634021229253136283038718782653358107933946155572337820280985059624690807589163059985496708202344105596924825780806628762153547872623162535890289568432058503662926160416864238256834411351380864350621139453412193753471827833975301689955873515092127580102822509994983946969580264619299095613961842003867234479641553900364750679403584619609916339014944176905868171771660360885072149057579247983088794266109574284319300990978339449703802949316055226474341554477501326018510157857350713358879710104261889819532952918209223834270589214158791699419051533016112491339363067054228348681277533194516835993164863799927385697588329777819957533639721592790657844904800247504750024873414452551461724344996882264052785253153175111048067549298124273579114248611872721703774975610533652401483062819847635585466306885060206676501426105462606644497020573479355089782698605614828224880578886159343324236896832789337567098439214020218089541665209578259089079330142859812422775656932143920423902330853630761515989270101900887389625620253998277142782878950452953647512214829292970215627976416187776350688187115138037057087186265382638715602932128501754573573866078124114554240389609673309801085485647164891106575824392522770150503816822464977439225341066320310721417174254049770754549349824381603896734704311928051727620275779970138328926930262900779065536406853737584081347060628532423614704458704326785236528345559301628263837690566309672021120595422050927403026227164054076147368816121198515502397826545432935244960617034888155362438880187370300458401455866072377911664609385916766714288320965294692008681974508916001920881669943693955114201537866059954143624810945227714545343316064726385637865533510347476099680192025928949881721379074265981814701958288758141648869629817281336766873820193888455134820542294163381486147772634746023007616801938066327096477068697108195031484760643434620148496914653596448036474113762776299942183413418969574578695450066996060601158906227321406620695484149191186532180998222293856728332392005229731006692623875464148740666029300912700278833394939734789926650362826626020257026234087321523264184853299534683357530898326894312216088007003250306625236585565829191037839796192314350463676630522119027691351437472228010583117598134236190198752755390391668539723045491330831830901130228847931563750504520308422917731741185581360770987915224854296391735607089463274266261250489649636493382210794015388752196910358610033909778960809007725290689222026386253985526368903155897864718048475773184245435318697747013464130908453854577323427051910820299537581726242907560121552255760263663674223366300990788095332408112952986693203487394806650746712581790595934516970785596709857105086352319450012086137901292948584124601040494085325462809661420608817927262942131401687342894422461039095730016168805336268091775893524005273091462958315479787062867441780258560424029712959901686999398490750358722956599827250021696514108337121744031242484326961767284670464543326529424613405849926556678865010220687748490838208895751464858490524047575446096520672138217977918085945503784836125765900785448998821887661131109477270156007355865957980635945367792999324215437775601014513651270052543876724875322116774184439523165704603821567176443386040497898681298201679318292861018777493735130603285471941791291311442299751254350008442532826097882174292789512759592350517927939224049957889016013552109381140343228176389729738130808981121029663421612767112971620187696916056748334154330765095474155141149253659265579241462743188182212988610411552565674668478691890363269756875691279227719629548502699881135543173694593897203138274623754120253759761141873006941387903810210632562648814815026802083324915678081489170851635940183211723374605281100432744778854596967068150447602588281181644065380989303831204208306660950805462976204939764413750065477529239871670843750549128609924404927819009697086398456874659971992404752497190064936575329467908332176644854175360322143202088569249392507161231491261899546369359048441568009533431935924705556872960222110613438384014065926501046681837333404537566220299663212937214571914579057870989238210775247594110320469615793182631532508613809975864549440040418161517726250924363829514502285574502708475546096524151584988103477154336464984517653700173395097053573406956168299249581902803346636510170108030270177439523460028438754116043553138279617872199884045974798501603320204584267183265125985296056699657695110763055648803037743797235396022057679237129863759655182779637919771391480415237638296032995497623097975543467165523710644541098519026031046082536825960074107332436371808305178833537739229672295819308669991474492419870286682841655388941692177994552596594658557696519577703674191037089746649900645261703544310148797049610938474656942617233551651233338145295863998108676498027066864588548119305469446479562336653947514838793534806336751331970371758963891088535588087135336035230625581610974281379545539557437434407523369433204076167310094346585073909458207125326737600942650352678330225273392712188279218265476589586550279579178702899942927684740722128029309277595835110742174374435037574567375249151870480654542816357638816339419716241964856318111084673531593803507760981004178534465312301813529416620301110919336910438694693345712766183508134766351610305058839318427983065971781209973511415750988843223285895424555778583151302406581752543926899857898681352110352650410537306360823012010188084012245518515946060704855212364543125952180393675861727516258702734537874205686087716010851857125889768577860311421618315241367550177759442653827569664138240904461608236733198934351342679657911261278652591058867849906546918964491328029801571722653186491658579071710318986771170121608519434146783936463324007142570734025078259507682313898383039142091354279393613835626442125053869320515224573587903333632853516521139042303319677829675791475595515370807334758787835702181153790358565925111780231045157998825941902632376803238994437615736421840715771834794101685767071971196683017952843853921482962696663742291124312455101634221370227644681194581263745710577040053698090760325783821369769072521806247616655331362850400905822961046706867790530299239254274131605648164935987068367013097096353721539865133774193824992968935338588075253162368538912891383016196229722277412278927819180476282686073308301305858933783533454235314782357117178877666283529774511900319597114084868175039443112279485600284922997806007969042350660386801552788761842226816010460138862143291781570994838186702974226954454873795812264512813986394691203987960180685150043252967104972304465288902104634837810307629193232648989678571852678446049053009761182768038854121345661882832058764173559788262933079266315502548225634122338966691643298459233208673278069952064056706690376945839595450509562769885232175513151086438612832583897102448540225282804740980403456626878216669332676532044998027517942742164524151403747630283811660120108945199543388126802349516603471083328056142672266111940189370656615161149514685202990114852058104635464360166606100433044521330889531748418099443782504423776796723680656118703382691407574260054884459895408145164523604748184887433849956485440430150250343677530755758587747580196168204429572961767362267821693710349479881300448746776303398213430686289444561304876088405303246534108423019588129796430592683626695670660762075442663350456529568740711387324486193285430848540996578903889957506662116301888097721160820767176111741757777770770095186037491214318684540627629149785015320387299984801060115791617776923206102143459416670156755234777648147378060210616120283998862477268909684788725593037922602219728630437318255171550601112053900861194667953961721476297547071015414894672658455766387507537814260048388188791989103814485698104330033875050759918633744805010164596501592772010751689500836535690927205386409059134719413859353304319668554847463759795456667550768343448900156126414477512501791670945195463243886089344955157029701210456656709528156807820066007927263678804589940483785455131375423942948459607081419558254934163117288340138952122723012170227867382954172914582823743634066392250701391709905349529697255884890580429600368320426739084567412872569458080733869210710427355427529607967598124686132532240901046765082465044003678651031705579217985362075441626374515720909105679218231864656191696128818521598149832199294886731836984921153132338956611916621773800949678895267634107839693734926387842839388819924822406263271915533716765128072327877743921603184143516850385611855574908743771855370304851408127598058654992849570729784793830312800427030479898338452028911969124886897926653639454027270190508677175392060452456249260496170317119745381616311582055702676979390208244530392732611953940644568784372726316370804209493296085739432882951545903153475371557782350178931218039639801606030879586869946947438701782127331466513965787722882992496040620332709663085149148286932832446093808156530543831849797304830822736571830668427718621206209171275788291892006879887084727851305589658008302705027013642163568508087750105725085587772359377190724245988229377842663334441255636728943880778909491276067161262932992728759034787018413571496793238079866489162549696794278490936734829485924213467322184454561556553261176050597605147373783367971176293563334168572733214420329593558416561777500996095028231728688421582216725080503006299815673259219906681079461133522945458342463824550803897525623877456197810570356616407482500051179533762142423932929508164267394601677408519626177347778722079986320184592246524467929922942909126906794400943074910764171798760351326667276686154117237328115625871598516742842792271622786532612165063219148920737116135553071071061836386079636131564073441102346394792700229686501685238382711952917599097461996505584936346821241127335819211432119964191381805643989344509514618029230175335271075098859049559595461451063493761840318046989824406862417227016338599892407240704230157801931413134465178490140656338559569081075673690254331023988400600362252561846623692956037904093631295667371671253000766443877055055867594228551341960047849533093751492842182413149527169887603700364223148090096848760650828759723980226679777637241830560997954256907569540058421478939708141653754357606816100579705214552177337036126881575437844427400227639832295354831877698361130826485482127449837293295378392732037834412611079057384125362684006969788081516587939398552008870195786417171594913707306481535178545529896824553518062925278544735303450340376668276305300809790262839068777237740594166377869621275396311939579231460006473758386494873255022613252049112371550822641441535183452008648502759472437051437558411711666687134714456973967240682209483770862901447576976833734739722184487720018503775135315507388601667081850396754956398284717072872757922930706314347453082328901528662680026172785344172271092427583954041112695321182972045722785519318354335455885277875445469862173862573447875411876872063295219511308568736676817810382132537178221886916417640461839846611677661234343120641443432863252340425182433408153310909779695698852586972527166029539974805312339265952243009319770666531885912372762496980936116281077156491714797662996702044506817988276129708814044829118132705771117392315918680920162012783390565445707684780573342894529117766175620159784137365687428034516814581110678361521168874577323750269484727131936406719811941001219411933034182012628627677835643023585045052777321439109490829135790335852140917198636118096247423289945158053860184232972758114799424584411177352417479717919427253253522160586665922301864116059105520621106153275344244887364970534092186445113411203579375150130729909297406233653016784186347675498604311773342877949564908742268404673882309362814572757466010537575377204618682187519568527451634321126682945948436941704997315319092595382354441189139934340351545760758536381421540087369712005827261281232675387736476000734353569686463222153317387945102599808634015383113066771187911239110151581069948303854805019326829804988520848361361621673686654246059787875148675527731352349205462611416773893623032594763473699832937022916023972081301333890849353604086823108721227729158994164207730130770615611302180897003929033941690903623624830953112779766625294090868583324468892354774336734222367353861861281342843671698819314209205378692966013544646338760070616078621704358656690452998507590593929031335416299689869773900791812625109290398699493628397589013305638670349218542950276406166649080872060373217234817663428157473452161183361402889817434637864216377911810230490611127901527252076297793007020296028762243311381641090174709801444042709948684534360284338448542664367268585285500040952878828905478392479847512842247288694080914927089650334191191758802811293931804530651459704141709311354277113420840286328134482675664095113989419943707095275234065428493358750890211710232617057411169943313188642608464770607833336654905293522863862546888761492164101722124904605754774243366092294674371270924163331849645967827038722225955721220919118091820550398158781389241368386276415912965698697424550450891260936015492117906861973242948938448041363487264637200733495045068442452943707538399062250390380250899136828962623287248370030871861910344033131768769878593757493359835019093098480917200282377941182814057781223574158374552737903767403816457974338089618237718589597819117910024115888914919188400169585691867967820376712969884794294326277698352379960382991545575608917244888913516053132611440353858258799914492668316749943018833727037205406469492783482742443608449787847728179917233967930124409052403977552622297033588116413964087356943801924409902574965208570467573283100020946089702921001985135484317739492405871446282490177288134595712824333747534186915749415075071681592694194139063056752168410874538909891762571707915788332515741322632693863164133260652318396335952875904540634578622430890069591852445392796423585002430924132218758008028112455105831541524181244519867252420571369978647782926101631902201578184704509427059800772186121636914343868203169327280441345453720448960027235921604146264045881527986528856826419696051201025268061945294909645992500916730067614615150961889254231740616324844579013507736658176790426900401248687519044220847531058645221699878009319235100871834395324338091553129384271135073070862662756433358186630512429945309974541235698925861487706377863203368411367205297813186419946044710043997776918575709596110581016278986386261711951670751672032335998275387428479264212180336985318056475202075995449943350171131533628871620017155984808967078872497505715279863904610603443406492177220658682175475083298416277368852884394225292632137201150554498987802794192463178580300360301884715421942759339074889643770649904081013753132888801914294941380197473037054071771823266743639684981316878898569901924483711423028628486871191749548637749936123400080472807951919944418135433159564820371109877393961587106258456979035132479764884602873879500420310693357352072290147431287598001467079885274293754090511783070219569570737707393282342768647599787365945594076120866240027360367519522439287077474703519224979655395022176635016341269897008016771285037947890637923351409654543251606988941246986192077548756372933993000995076531691231608720561418090784819550003734961398448276249889487124674525525533852852882768996902178518143736617506992248436231291586291017242449529980613845701302712720324904727437869881577211290310597526478817802577769178569018760895330855764898145301847962093439524343119775174503195053931922850901585721782768229411984729579996425665845305538805102348411775052911672897302663911165810558000683226069517465441792065705852980738875611483984693579412386487282761405676993436109199548359982858705844777941772746339366764004685885677789847428278775555835518016338608392996814289186027635378817117584553173501181748316135442634782831535433965725397430941545957467223122740982893429800568653814130994267469767310159162097974662331867563655064337166481237877049337296092380556228593033351238138747658723253214114087657966571346539845012254659183178061219708645881948946263742729952702944646440368658185190407941790527290420867909151129446986345117869742908798303628949467496640447006346909880522124301254542481074865728116009579296582307924791177028837315545384191652821874557151351671059562943801766699675603240820946523003042228493903901643385537670655153278805363401826735139480571182489234303645075806738031439844903433937744643043207213335509087248025537701087068665666111487353469449769531778059471551219277638709297591134406319881525539715382653607624680731521023355418437632604118200463239773100843650222400693061098184685129859112426559567436878400554545804428154307600968916466637634462131613672226461641816541138868161321436328116431658150327714544055911950865821380309683657343388947176043851823827889307189357081026759460916480486218179020632324933838957307979035564544390255802872906749854514837713905601467442719800829554072307039550771726318882103676526576125250364322573078145928585397815332901334430137480594910209801785262762630176233746503440341551431851952423272416690520455996930588360848557200363900807908575669408522040934896428085737995726670841974283960809047293441589690473282571281668763193133454413351568624712651448864637391210151723153287589399392484562611923850144109350076201257247526865504619133630699758334059432263803662849283295062833666553244654023931773631270730519293902980109138177406016060357693266863031312824587460893813297894907540300451175787989103230328266362358361953019929335802418328699779067844402956724420579782813415732717625490652512200487662823452428199275818630137414976487459836672102851106361746771280215164938484679488562430253597829930714108129315495375103075238449118364564707744469841487172265581529464710069157684282362656993812631114102939734252945626432071177576950125558069171701017349622890906196656297324348166637751067423545309740530563250333066845088356053975263320564966441595888917959036843016505361348037643640754572384584615990868250708565297519319141419487691669840407855671829729336164805056317689473600862865307669343275090122361559209994598462523453068664774099897400920789483119989565563087115665097404049152662152658542041298940326485972260571669451338763430122416039838615909433091245366537574036247213759398414191345881006476806445979350312397833839712376287006745809638830573549769243105902859646486151823576998982674558862587556782341553239821740968645126388317919803814220898362024334504676596437209082470575768729574439460777782246764475012144314533129356307877887398279745577470352946029734023030651400479631702055171952420199175943539461406065276454355140538321680250390639807332976075614754236025113772697840741126954147087901380069760489262546330410740140958437444193024170915447246561586294984440794448690805297369919557358116003463512010372928487717402746733447562029536927986856379282891386605446776782764926041057281530088207083706320957236309732826024738514167422761286747880166591411458667020899004948939359573726856385002194149680914198485326202585033137863420927178722174151342712488531709020205716394212232842446695274595403944522572009679675969398399940592355484234794715637584046161002374199915151492672829850831281678645173434386417833557749821225649836639629294520900698505978390373982808220795428185546346561347300188228632789192487801968764095824347826148800513567618380016385127122264883138013449491691695138025551684496014401018519477095885206044152217690183915262149904518988299150358743306656074508292245286199933715509073308344475740115693880439338771925742553699627287720929152296006890012819196916024896146227544597748351262157844637274487456859560887553935964656556679965998692290555929109401041795469221344977600288057933107540611206308912632497479229668423100045545319903092710001268335141793205505047505882291119938693734309551224825654934384799632965821975504724172219218046852943839787723501753920544074137341990046403174278406994894379051395768868259111273033302647179684847093236688556275594474525007098531496525489029014041713595643343027867172806403184523050422657145878962242169626049752703755377136264627981996865680289971781219891823771881734267277961366829853376637726013098348566767676802621704349359934065626006551575132573245289683929289439252951676574762359386412231035989868083399317308187236563524196479901749731104061623539756083179952660232618214231635434211679584569559177653377588546397568854787421459918969994875946301538461192016276223532771446862975221278031782604311220033801265147628309057771476807177590409856187699847365501177920908691441826848597827228268219197152338500377941663126760534654716367613076855090032392890437854529921703885838928633471363484634702240457043733925206746855000640102146289677698797672233559178295075860531247887123645585864293471783756615519741324800139586037727419523463539675957853592144132865009147585383110473435784195743919226021937392115810222184686993090270213583407929804010789325066232588374647224951097631320778341898378307270870170223952169505499763658365932448585741949163308768652670442169905656456129100372957445698762142374256290966920594257495595315731213147731514509340363225498850579373412058895542786699295569937270933693569728669957740749850864903415131104597137483149407816499459909061946382376814330710193431174582210960825135468005443823373316888346926769833885581608709254690164980654701029645266996025665245613922459120325340904791272711687679578716751323334612993262042060290203616500022861386922518459399986184273391071744340979300257200723142844721810806997279779750568584684008597747063573541450150074528896076083575390814804482182323181335865749537849836918854687761893870339125293255454174018965268587785265607046771179458488023453228038751378874812801048992721652600871301320865031425780041790911759857476654067786020791759026724024420101822174509295847474620668225817452256584169657663910113437736396830023443819555057711402950561845839952317803907053619181250777658918257924552873492648828596933045269776043761556835646359922035780174448667794738366179514528079784080888517903274722058619437053558259250478885712793895544120718968812003331506766365564023242967830724388348978358889782853400456429771984219538557846756196457721979962382391582721974809965880290845737485939641011031649418552272861374756044758735003806823872493450108733128612062315592644970013620611031858076028276443526001378459609662169712338717452203197757728229701079741998242530992620285783148489292766073465861482273249803991000908088936274924726008749441980314821386653144054774224574895563040370757668673758663756626476565006816350535696628294029358417290715646529072404483254274835675099271497014183424296565958615545508494151297714816543451408539039253790931994570657719160123006436453498487321366595992492440594358689370582293592092364891137209756979625073631271667716065275142139313736125664606928642658675917122015832966354690086993449441208315995506991739691197249774930038868003157153112618599110116888728337333722140835668654014423856424449427566076523681176704428454254533958004910468530858761147732060752403102156226824165386121408081001675367749691955935500705670327596767557290980803476856504436107104933514379554306245397946186211143551676551000346243686687739009360495287395884098002408219360369369866771512896634198310590533924031234679980977650769518391849747679720718297222009078256755416279051578156412504299769589904438746908607683691644563960858048565344000712033424806470339688616922702931215497375078726086810996417503492562163440960056365422818516679961398082175276614084030745834274757838513895381552183802770606787892040855985645260587263786052979253990411237106486416847161760827193786330732412949076447637460819535397831673612632821497348831884177354601823653683496725081515229821098173575551284164936662534433509922050486048449887891081789031966275223861650997626582174513925873159827570609524423133694625062460045219290610060598142385607271020410354468068952521319373205635880928866407288489512055309385976778634447610546622540381312357808794168736777395639944675941281782531889447624347434526074544428001571540581329584197152464144049515943817409508889730579085523999301810147791957782351378882664977979039587762205447801568065336082853941641324094661853113940613789202834433075119861027208104437995985749380319046285295914064531601538385864311688905994516093238508239034582351933698834943780587104219612328683668672703579504149283542191714622846763935189329889821800621391258062643247484275171901056335043669758866550036630993988956297755671709680757971619269212270469717828718281897515880747885163056604899107262814070149809208225197553594994173380865274249146079640332699175869611367571200067626285446063140566967208020125694679659934488198311757498344979503540203039393803260854184581288168494427740849292098403315415867524292358997359351124656061065024314263563539955863588808207777994008080706717419055083500439207749933527017101869706521319816221303580570740891562891501998775644811847527232447055213715102539338037540163480440148708359185649398344939026903247774727859490118094678657844382896150150559556392721727706838465792204892113511986817145505064957126156972243715927079516582750037584215216428061344191982253249560741760759153638338289364701699956329014721844494863140419901596242154382037359772162912647179730213630680208097215528341983172151434147167671712655704999505353733558301747995848477896281145640594735335378691746942654582282647309195765268409399520375059771203138390581197160558171604530591345501100953382170933506755011543810392206281715494518191696693421924151063519442576482432533540417537218927493452420142981160320482085344196816160120611085435870575553999704462295770084052424859340016554976659914084889049159657642063451190200598381017267224997878067406315287967744704862875451799559293603481402019919412047516044702183463635930446155536915619878908526421181090399805181569125987988257776385222041381929064435283486824302975642226786844399940357981423807916492925223329285893333126009714237986861320685951436299294872739275592877139782099924124570411310775668612749685372460651416931203216618294937135724624972031186702798302137924367632254737507029029622223537145692064105073760131895285976457568744188031644073078425425898813762979464821451102165080866205117142128876458197316738950976781253120783953258909316974802514117378270055141445268736498491836063890159061849274976019385091643994953371480120332302176911915006373874164490116191182344533846997980912325113259915310295460167374914958921160610253288003577627217512500262139129129404214053786187562197161260640079746560368938722468652843184486333090597734489921983761759301796486477759532069871541587950156296003942448328499514122830431944523181711024872422959519559058963896512435211844179740679930091536413539552997997918668101479060611516986547849347417049366079332380777870134130812212144522906500188026021094050925918303249854743720928773173607880336694587648189449548535397197825071358249879084935213295985393572263827468661278268090131681633831524583701343053333138420537929044689654579994970914068991934434564421453789158801016135886351977161484351867548684572710935954327385291467588991080014711802167705103436848818484532610197030185295061844862699278341744609270899023809390068600323787238435917245883794445435128747910248105693547635383174875918906114309850546232976831390088060618566233909446047267835983143740410170972700330039260729396589476330546017424187088463623610912768659281157383384701253014584215375141253302793190103582216562869520997362000440574363768312208315199893003507368059646402899181968649546975748566957423745398596149905266384291481945302623290610298687308342953122853105906708261126172696800839023897735110930193288569587021941226022176024657930339256115766933920929000296147496572701661786141190222168418758429131416123084978351921633359372832810514344842894774025568825229581636405441874855631336743491461989765263292142785375706830429539909658444123336439141092346080442326179000382203723843223821488434420434402974444175131182764366239878430426569730494170181776726380590023361932217867965845100354871196822489928808033143109595801432631648929430647979554188389550135275699443704788235011554718762087228400235864925723932336985539890952236538017907998801929811776018219566307607708921292810052024452288950115976511092751074133004637876058073704393445550710734831154443902990538329974759846086158858365540302243777898181790727710302635980543018637245528240133689943119532585539288870848950927162786482163323901278132946806613475663818108588282914485111485978326480211881871706587746220497366905548222322924357164077310788316092977405328211740114576823658734784960105878416148307730084075202709128084707568123437344025728991299954860829991178454252999670612267518975289461205335807602392881465844940587599431581669839640775179667228953062181134316963262644892013307902204552016480713075360830197282714238889789164898902851208536376104598781644983138000240185773753953177686630523793702574415645895381423215808031632504874069802413046453126102856638020162076496076077376891501939234112779166541818652764468233023353734890372406539571477805372710097391452489718715275742491795363143321298269121434436647664157293237239822116122941727090637267489178709825969624465133279524270232669671304170512077171014437774937093361388781440400107933420223508251862917968171611323185049099606842190249556832721705310535830971265667412851958119737450438350035432279262969479400809727370569131165076848938240437280869680184225129313349154742230909357793369030842848083563991990184693551233598194503791238143428844721007851287989686018461292890365951581867594697058565331425618367644015412517391110763331093995987901261937229848905870024785079760629136582987482743840679813527497785565479004772486301851037530159877055935302168707428068127474409517191014164360625424695942112066206532573958836664849760733130798305465210438824540375746357734893981397131212455356462952683449486936815177646765510220757650735165271901465618373170522402704295220072888282016413167884049469637191615974140639617590971142291188789576870119579130016627294146183891417581513377540691341698391530848158594025895324207934022441252409875311751628050274978905605376499908616524932808045834602266012176722933763044452019436454872254696578625717226303806059689872302475291374523069598291123385283335450651844313997612557117736214572154448266368723822971159880000800955179882849043537252719158506772813229010377405486375583198892307834430197031985611786569225862022082393813275609390540073345695113307284773801170516083401907758339697128538565257221389252166439049742746317802725368188155679607100723729396332214818899467199234468171656549194312879459611500271935534665212159034557909800403891116007691274481212768606369208921344228327648363159610698650688306054759060797600225421450491959821279969005760276526701224215658886694930642457808686859949391672035360368123759900574979907578312918893610831219113224923576395418526304495442031137566063654539470161013654314613704344883717095301906685957301983364721099176189776237097412351558434034458800619557970121636651677253740617815826695352153138705520345871800619073688142446814737364750148449778630143328549773169902272404543321273250749719967531421449958047867443769425416824470344758213022756049920725409046106734834944819991188891151605622448790414913634530128246642433076980531763561265494917166702496734525241668726303116150073065359779736862531379322468971929066776603557730617321026831397028454276890795178133562366912126271786242080664490392293789013618761343181931537401172268376740504087323648840899426189216879430220332245531436660094756292930790502430831542208017008453499943520431150099480636916353378976648897219249427858819423026659540269631291985331357160979157949389410751296835794407330455888481442420761484770502432863684551291803234620503973162991133405187219674343469549304495847024186395816415507072032601066603086553766485479613867836451029285490269653117194539996913959851293689656555075008950875764184156302331314666923358258255372261716792004842321371399159491640569841484419262156947913146613831644293659555359532875068196138774441002017139332911139793912662171624107823821529542851437843305516140730996520159634266364979613652014153820206746869172068078481594419679530918531250330869554710558467617914431961030659745913510192150106681471583173490386353940720786711066739327238287734491631503782078043808737663439175463554741723049275221872393399195777121084478224939159272732209552094838136288392434223253611677928461893456982066954431000399394879321213404857161215271717190366016610454522017557651180191389393159448152744530960434665159274463149087512771276908841917944111023134257052785690872194361064715355121419153747716490895410875222943483908217538530851603245904506519318738126520869912845778298368582583871685901880016597103824792715211588522078167432754383417953015910435309639498905914166689278392731359831993679820371309379239174205165961641276186984680133355800729934350884685523376262162406220079356952033852050006854947438321945663032393483438122374426658799972244842329165837419565031864015492514769079575726686845725396567236126766939210206065359922301595359729339121158854676225301800304281828408909374953864837878397480891181478830401837261986767905124169407406317684657297019459944315321769669394720881971185119405777307906350745188314810802221406957893095099129108753720002292167232817083664799051545561014758508706982649400084716030110697214226117801903773147550083239539420897287725376920958917849835411285758857659686851808949185609453136544674415053523369801919945255824637091349944190182154408554585490029884063864843117952241368138554641948969369358098514993025020613759827124818154909156808726856483533164901065712156538484450577412935697729933398184590960637193886833387930132300910440707874749495336528600744203910046802671690463317289326292651697788557413763371600980431074518529836252607047477209979441900320819721091299015976113853518711780531795959092676289109844856890384639439622139433900129188922384574001663187473986738245429593331081387931649456026538964778632374727526576213850208814996078456252589547942941389784218685427538616751668455514076739026853524624969715611890604493349301961790775711617935635751028648841723064917501161117469228614310270788727969170326976789449727633441729646794614853596819665722200714925779634155627178101921454273260985618208558049046600853835977699919221654233652884265848909800826373099483073231412922246961169242113891581758709508459161589826155639301672827087056641123423448110094078744228208646984389534675781166143940025871634740375883925277043436255478303288298708905859215520770789258285801111159003095955871491050506997500931438639214401370348156197298741923202852823880973481566643384870221775670009557325304156319837457950765153727580164970178873072072659036968347941677327747817500037060350852993261129190161185617700483046532465324643896604973504062051417262368326291229756227639195047102449732372501861373451751315971404233798789210347429271126103191132988554673143611716747403139516535563271121834353264130385760800195921836637432217817192061633832911476136181999195525033471436505760467862957740368591796460888909824473955930017025227620408569460431994082348353576782610704556236932722197734927669698306719726590408154407067789659209234696757772336611018132806277547663116574235371174378588394809437298831112382780919929321465934142568528520792151450174628451928839141905406504774918775732976331953513914880066655212094869417867518616838593237496276520032147818739758287177830043495923529547464916304222815898511207101719908124309590772146883881757309735942453668375736103862025553489285494965928053856743185057233019129995322857280243677661688271654347211518555213778217691930543239359383959254718685299612711589528815010235482107533866262476276791800486043021863702821111447556642845970701592821946077764432609557361209661984358940877753709452710082162426176545637832126365170731904979668784462342821981257343811094640446569093776536811076088590583262458741834296633218151759354098461555711360838049750692882015808568464325575994486987845719720517284288176148634368744647357904002399556557498304270570581437389139254290171131418300553598877818865503736893361589567035595568648988578461066499330561046190581688265391727184520457933466351196206271809476830345476080441216770179298346982541373957864646517283359514911556539132550374726779283231364930834026896257050186985787571372096098664614858789942868053406852862956073484563016579786695099731866837648624340476465641648179449156428480228758965115069750540238769136755223167835599186799073046371958743932456921998425547734444106975922290811629822507342536077334797311969774864691523052138267262525558630126036498071049818978256894014943173761192007481639028299489494456312771213785944428684033595758192426723558373333607288928774213977085118761776273474823031294507479305676026375443797073911420090725459684930663900859709303179970326449624831180320299286589588013925392665127065885874651321795302531537383859295401999914467859993040314962353706164150001100585677882506865922897711434115023321225760511085939868867346856952552539583831159516073853561670187464071282664810973385047810067629789600257098621324962328541551013594348915242662890897590055800253893267282438827440135125622171827218906023352320420919370669436758835374889404268866633852433827337674254063193087320701503772821294342844795274339224958549877097380883590049099633234619832924628493204449539527515956680245769583960544906680422011873373104804414388111896304711558984279201963226474240138083162081920806690651502480207942950392352850752736504729083047257951113231170717237580224723831150377458734079352438576485682694299667209215463263288039759711822844870506837699983720592682702786279444912186415721029979748095706629515004959928389496485740192952699254622545289157328267563010502000955854902182384717798925149338412950111428650288686232406626640420018568682938994295182731007110570511705830385740475232993539948254252691405519923928678038042023029733699229609973451487106375251200446600502593839293668456794276295223525688343009326572539164726541274862265606800658554960041903735461844512149158335431905247906978741911697202337349051034440417014589290767053738230791640769666544720096482110459329410087601116659307589438324164873385156850953844637975534531835891892260248700639374045851740122747061098168499688262192322985783119810882766059388645811009742724777931958612604477725999111270348774767892906020200047166903562745884075833842123104582185599131398010859176943924415361198589779541628997738598742714037094091175526301469162833694736762562352543941356164603016675890679545891530127260663284584796178425796657284706339862180639140060519443713521872941333610804074619943134100727915714340372236672994337640600785584982559608410669345305483943894565606129666957127429161352647828374464918619418698214442998502443798466598993968544371126662195921637056103317664485386428395563670017658116740664411338630380472646515013806419330395063356516094533499445335042260451458841191889593312860945042270506879336428750437748882033911429628893663434386947272949493293633670229076724521776825278824949878586088280266229165736508960502603648827649839374627518723894144175701835076839164468148554714593377765857458639012361333427534246389874063297776171783612880143703242162557014074425224961156207451559539224145163668910574643117903465504893058754369238516532274465847824838300292016191585771314822465361861574411964128314294609509893141359092687938303654870774315019297301860774899951633150651835164461065367497424565274017919193821181447441241394495330617805051781010978500068160846153801921327247254699203438538207646039565070578347185509420328859709230137814310699811038255511197505296897219465902668291428395941546822117912476865710196269656220805051041106096463992646024143208917272245966047540222203712143122152656189900620892379154060872194531791519304888558406386608667724546637722820326203930793226510523074519885662084667153010856377312500248521777110354388790141195106077272862786169168138584318904062339674418480753148083984608784310728635909934769797953512836121587906810008729657480154081094380902515531607792698827652993975023869510399320236635393864357605331119833492842642423191985735723614908269729634052669651709394842731380783894729988123423699724619635057931585274532248231317073126162722879460881283702681490028914151918274258894387711371547554877134362929432415721329234805064294355080218307184482986886544158104388022682195590833876029558253305367420789573330174335034413167003972358071264815728334493460679682003858059762382829555288047630206087315305944146361918151553939316924873332300339453366659128456399228563206055136845499721324717438584058024498257835329002496860081604946757070442410322837568472162811702929458596799965260510796002689454767133194434952665852406918889439607888671858230547475963176065472042057585223700773231826428034250430616515640041678062448594388490499440915914810709377618686164354691519094905769745899810807531232149457559259081710374661497453240939356010083680388809339801328626334194134342830871331514362098117871026378874035692688960935010202296133192703635464843334792044699692034264414733301464917881382038255973757970964153509002066348950242547639016911246931529597074010618797813226527126973882264635535967126672814049092052284954147610377425970343087805822155745380629281525243714187092977971472344356093376747183924444079290854040666312411120312923715625387167883331492544430838354598022960076509399220549919115300847792789565603448973171220397948769644296726000213294414187595478593728012149941661024998116437436164166738553162434326067694924359152880718083917114454238874682213380638592189110283772370508034103498576318787525665623530552828514485320061334171551065882769172916023974740066576768428013450594504949326067803111993082423433508364020858649002251369121862317826596669779104858335576813342656195188831796761535954289770297164348942736544063326006466874936409109454369051177412330571094856003752709294806562992950631818027353246825627053918955139202435530386246545193471570604394104670215152899758641633393142146649387733037759306124487078022490591998012785683383155926222034160519165544455584599328527559043183209614565417349919387548866667946706785847994317288120364873098673330727446059431087943861823775268866795539768794566292807020226772485813508116444819743782042512896006413763851131931860317600088212302015581222801956457867346872170909713545996251185726677531467537579936692156947160853096671454789761744439837061968455462195597634984947033481720179327972476440565568274243527012002312610751120124602332161895827539006402479735402445030556070345706493800081344716019171466623703157536767816575667533302842238237219722953528939870967369330588871035210827098739045134625609678366281575610925085517819956960018370791219539919992586502553052269258514237180883069577146154337506524916561571302572395507668325113826259834298694088405678550765835825773313895344260871332877896545656590074512044477603988089022222383184565937779383824856783616567644353250819008412231961109374834220024498894253053701812836583179045098250898057461281700890266779753161801207933928590074925069271876332678778941892136625933268488740706472047081503761766645712602600695875559471648389809127129239619552622631892848235436652774002196954956097695299905188155883936828094765977858715585238781966112821986381524664644963363621510422627548477489593399488259402681671834286108488428460714761637513445913567861821758973249332129150605277186687460909928023693578079770234655258465786926904421871415449489819621609507666313352229719560404257344988772118275705649305468395749657762894101946420274309753854575630353628378673180396127702155823580086115741408508517262085123171840185468993179675169792216277018488552087164261038890786231247718275932914174961943927883656406752494318654720062700987524904187862034763673303769225171682457811639855804775947232648380363496717951603180311224406029659715621367473291289180510300737401249521373623194918095528424192188936934712912660903214113684244566447112093752844836860991321401444762094314576986742636803735483757256031120991995708514345013819276888264034062818822954686996090315680645098420749676663458476686232251257958507764273813597853351895201604102195865639697628562439392653477153586192246861146205525499231071790931392645248570101702721731049443433099480751174810767693128191450512607885901970725491636167260555027133773612450390687057763000884930216365564458867216888302207567271888217869916325774711494642025163575536037656374354062345803883032245686461937980898747355919880113622073408330200498155649265616871164909130102078803183517098794218154795017339142873020290508784964799198703625970305188307477421774960077486356734661995819321071626257454131474175659199581167812205836520576826059281369929979012185841287686993677339427331144753141735829169678872347257010349249289411816688525534715186052366116836713981905279988207566994768312205986325940002508280075590115919596011728769382055504457548180461596953714083849235122112644006965137581666818584091065716539538460682651471290951665685934202127253983225506506737311371679837977655697798641044798020578001638903929744659365137107136865866129106866722825974163526250173724003390035480523254177184380121719034605153101225488230985827149275266805476512918546522634259806200643360240359842329797595206488152098883752422796581295986356600178334173933686599123220946414048164889604456979101306432765053984321832207764467272719030987127239968787397309870121448763034302367165958263791750897858871913501028024382355728931733070316084663476630652515089238129460832918238065183431956589787621164498502559577590185157229005512058915924923602941483295632044240711016229435009662267760719910390675338221294773236540048359734235703414078381139333288913660855916604187709635308729789837878124257788154454484279289362668458805371176492648642759172446090249996060399353648341526741898893166357959821343732866981034592501234967133820817023814026567722274508721116973688939624588969524890071530816297731748219590721236831464443174556830787808563487239839877801808334971776567253290441028823712654365719025290282880796574760171586658886446239369382150142231356829859598952225368898711597071428166070303980185410794230600953516223135783602868332145496748067254333639646187434828972462142673474356917255688211294070422487179550462025245677046901797419330802727157279708089574644788082239390345367297239158346599553640125889751600819120409866200925877375262701824210765995480564569056636560346116000917456334577244352796638693667587132728927446026278594602256112583674134323518561573208744592147101435205810035711081897971498580753904158607238739247967801077598203754908675276666985162687212882139729725107135252920839563397861309748702349289840762072933742740687525592614387511712616722228700467158935708320133345062914875246657171191165946145617512551565700275220572256724178566211208972645328965103634301275458055909759061088857634406500151887118257335762672867764101546639157351241523762004667448489301075074372749590143802759737902051322087694650311437531417018482286223257241421761134979817954651965247615814429405904994219419345006343640899630575096789530454848996115740432203303104761356267856737696827435939258943077138006305893348626141144698932326995913448866252838852981322442624997593530620678711007999659681119473266664794908258901561597694061214019486481447125907679563965111171278264405911150925489609030519859349135552260829684786219363922740455919125177829476473072155656310246809899363097866158568949704134766980435344013880079409939198136071783895135184567175337967851293967281675727524631112989775565146737779292586516017802482225232763005616450298274244430313745193688509706729219950138111731075356463781690581732473330757677214232818951670528384306460877357619598987059386105390579824316645935137867838501369775605983945305173996280281957799314294040234989829889714914327897394410375114807229519095547021741578719129123815838542898558807199563412549733231573016950786405181714557630099083367353858865910025399135146606055169582901010434673425447629458109670597541160295011224498540931391411460341762920965402652106301642355359558695659982783431286046927021204844013338819930719085663760946418807211519942150015704008239687284869110973619698455227014147534697515051612545091309124087936813590323562331546612751352022038407649758525872249852712467827085503011243702271365493333588102144075834621941053034837842246143597096831784891455285577280966957650535090937051182093644445483564143950525766348060269191735898986328357445876068123186699432663221835951926535585587968642690417894464912975262541728869924934641202320980124658211769195737051738536058658115182854016911798876516448287985250968515811286263460508372167813505995947678179500152633615007108489930119550933536545112321138793095275145953513215310569021923425641255565023626282788253434578174244651625733010603908695277855544128475258203322162144254410452962142355562323581238698836113711355781983610871187985730887097698958972776562441363459697370038657682504414666561325461764187189516259039872082348492928291436605012549446360274920062061341738766236494602528583007758220859306624147674431091761198139581074733114507498316136559046058094148369174235485913526100951384518506943598071750514291505563586042237374445343288168896625853826316851449697688786250460563825626142064465016913864060415949461284303625178472076084380702260708374992239717712100886347826638570273158605886641844034852647277698374166467060116771590493356757789286388385058873424456279331081379163134114435411436616389038264496305762556881874843941254346581648093389004355566880243542885096429483233606378500170642696129975989863157906324842375583604121902074120928838083632316233387874501103305713376587241354904080985416995772951756601562820256003955714081844938047418958539424742571965154359592582206314982636116514243346820075854991692273697498161990320709694403997118122134855147049761522099871191539492302052450558435736664096933697270084660328640577570564992701730758932304190456001501911771936625767685138974604286679043160716202051871068147991193700711724210392892186943885698065177814826228637137628756179542937058004492624633540928874631111155979211358917873556799291705180638221938407848696757384521939449870991630055051993854889872527429009827707433754163531021871240676363476246043842038340473867427644269540242618170323974200282175398204363216802236231222856151403758708940007152141987791680380399555177435659972874805182670107218483228555127409700329956163020664710124125886286773518107086102802293038954879896200715260198033365221735719095470813843070286780651300370977760710626544538494638546491968919015548735237607573940633126650585438306505983467789690970868993091908843887939949409501055559918487778492287231236938601722596954136916963716864140373146816593021419472591513584050515923358616199511648835263466936859291930042423985414700180063885074084197742866371108142197041648839505663238312559578147713051818128043965282974216386003805556386866711661618972913941882644502139756173925158828636152146605607760416177781959117051205895603586247304189580449059561173708279289782448678419089948816868152711513033304082838993065273735046180351008735895090426415159147410970784573561690214322502468699996486077745508819335909040203454339697481735408695579405464092054909267949683336452321432128758428311571545148306756685974800272672348254280175937238274399387307625412295561274530265352136596608641812820170472389548208151961336555007738143018949696060764222476218518987223149717360911426929486975251994639845340925915735884681808308302185816237985502981382717525562592898746427536546981122890206497948942558144246036623857346767187351704100608566854986731393960121189553411524414304967328654449905918270657394052311284329349618522756783669307645412075046106012098157614731989815348234270950070375781958408960146911809380224795823459988154202383800542242537198978392323391019637364344733030999998071404444821760821836702779291336363521535530458890686522375703963607190090495141103132817819879371379588748353562398481155366004305720910005627997921479858995329195363429021946826679582874284747392832632661912181471489280821854873115814699685268693257773805306271389004906400102457652232224611292133280423033036041868145852011146342604149034255069106199016455217538971527931588015780367449082387767460515753536933702270839942351427541279746480343351232175123143074889722556000487527283980962057040645234934109102762435965456556203722790815972663976633224791814566617685178384771358573375694482298964704588574559290802052280271475119035958569157520812102429467062969528781824223141692542749833532601757438342223277485674378947362992029131729444044552067157507405317264838145480542299950121073563771374022293450604493554913349618930234061472810795985834146883465058182353647495763111954386068044222020712273485041879318579939031771619214811812720973721713282855263924550404346663642855321995910470025826994166439611663404891832193809031044016244456727143226051108554130227126461908725345537418104186885757245042710597574664708870503430424794724719527148936232324204337570331047739839246817750352027532245315697541683615014328889700940023510681276182109379878601782886303028542403037129695392134916870483692865315576300697439468084907411975297963188798870030218955454291361419999824699689306063804139020915268248634942953145032172080144505895351187055789956576046188006378208949077387715349940754024365620822100997695059369049443581801291815146377116061018255908003560277252866683695218105734645084223896551655199433799946852052598769366457476678887778470362588859246063681147808809271662532801777841462510607430679350239745724520069014080804250448167213507766548851566318515036436542265095161068153803915091897425802166281562472198838081681084341920653027134777898028641597541299943134853988333438885548841864113203896162227975916283954463821417298859329786840310076343450815975983061009029263679291396681559367224424620043837518241257650871740098475351650669658614766523102756588365272030711999755127086259156629837856302177057334366491740362205527063696162889732039382744865367728546924839569868057407737368729426470060959753771892312152971756691646530660611371913775563310733660185364347856050266532064549653580764744765960596104116757806504542485590465320145064038984753986737610988491532138442460156234427916113892567099256809260727303454338982495052575443462953349693732547794641111450256270179185710375021037939859292256500081356783678004513645074067864091509036188734188687060296028974841199857490387562221119034845982859708495265416446930453948258493273815224139812927521014066817482870183400935299564593510623981913499232624440793070879924373736654279041263623737867871552602729477489288105765214776749011990151892046224158940817094430566934038026934718713483546185375517710353829538750143241519664888747871940926967950311247505501284355846096706085039015012799858141981804436333566292399939452919164846761680777062911809865258449800723183009481488648319413636816376005399749603619611259976303224148695643610817345628044974086212854089789493107947999035583124926900528099756158638151508569069073606824810613120814600127406962713046942514041395630802624066724109090040994559498211637879900851166852529340108298734104895237277849553415086242128090458489749815765321870810602418144322527083183951006623948643891581370572631642412804955936795341800026460620276592593162200016020150985037898504862496152772243709118484117983830346199756634611781992556705257911079124606642023972237911083254144960839643079659919633377709362651117698590650433990313810915058083909444622516376875339238605041418300464309095545062279435540720477651446986531431856342659625944602453170048873595827607191552248600764829028759975492979779516196750745792955516554379856285078912179597384122026625032774684815014533875981844232195783220363951102023487135673438647450510686616412182427954859031266357968779561630718377118531335613702643576336692407286090234095957882211788763478800612915044954617213017313772471491675777537251458750347319296414246835415863614779366083384476204560260406985966403775725707083502618172503312665900220096069100822201558319917969353533843853743914006072235293875229447988299726277441263886698773825682273431091560207920349057651713194844365638669343299267006229865176198175255254773060415008592932761437611084043250196407302508423406217346952051014016908606522414289442822909212176928874297321602750985654631767320419521118173094225210750491082433136050300678926074054961922946998151815317576025913399361352849236684883692067074373194540673874569689612466921839932504990426926250616416428069725058723044982146969043706910996855608028220967168615180119903647668845824574614835272811237137770007143132712856779328074179204439798882035118399402875854100049216635518576736468974379097779662875336030333284917867521083826561515047054915644091386672124447982839384870151156294597960739892595015482119564230548350884655524886216576486088417396003998778072461684679013663070126119680971092123845717479857721707009859500939553669299039761035084356814475968227484725516285188613176690648769749169105650767746161409139621315676562096649698136212592853763293815829848888582796170393906184015065951455681798895200409266224044837244998825916147619083234876520574737183834981441293348497023995006571052430940871238765548223819447399413348253031962687751266538742333754230180770399571005048758743103209596290302933546193956124233604314996609788874439195695168758431254193597687506339457694364722616264626493248372210620515809321965248901550769366119302380720731611474129461326141055701892613179914396820883845370557517558602709972585347873338757520958947697337519727381692806247835058527523147520678500846162293621662356192016255612737669650128377191313962951304434796381037787029893247269987790653521685314014457309869605564367511918687398244888499712837671823720436008215667627775339553744886672280190511276270121989465567594229139793780633527936541738100474561998859908966210498545691034898784761859454194489934941222710121958054888288823461294469601827678565481208735692474381688409208338365919996836420392039678607471692590300345501384970589666315651295670196837972113124409730057324551092234990521010638646628412707901504812713188838117294801445216722041137027645857946905047182512540954654883322774811060317665738384989262676466228279043507250421274539606431277483003318250806486114390611018801328709464284909109939579702962220050741557008933581141070255918934074102879704771431368145747110349963812493558976762194409368035609825223607448623637648397469447600475804620920481579509929429149772961660351809282081550818431546286559145363281450608841041466147426245292162462982065972836291597344816550522759201633240090914188758801455203706038801537812377568963914776348018168329361866926900348366241573003357835574976512492085144631309481630513098551603945322508945581377787797181733182460260090791791269673831200559970004022674731061947032987449245411386905163649544492157755667971667570072134564237348977813918078351030251211065666070795581108044536993285395670739661284562564207124330252881282434614169214804914120189298093100471808741521980720358128675429787903330570796120739613042479799393397803177654567827368855228576813153296001613715858986784033422977159795345301551972234973262549779748015783651269341262036623106125245351028428799149227700356782168563521328564359874500931162379298945113472476354677453256274685954445263058481348204873426315064440698455305922196137472345387398366632629143011862656569094379491029097595680842617673558410789594805077038212183107931827893947246548368636635686752391259870586276100469041902675147344462966026311540679993133168593860424008298039802895529946622216066636187551581732228622880733070514772492787559209006857138928505456529405200171789053895709861230403975160537943465251666663871396067463578644099146771202740080761827765792342563185339179816970289978943071461319984143614065974409195406492788427641745206245221256449144285887266476031629572151353575185054360986142088562085435033126762549999067872080724052081591530188445450430705119873996033251258622663945782141480252250014804632629067561233624183306664482874950550582158364846692506139394792395707212637689063677358841953080200822867930678106237898627098184071272115201352680929763848117414893026583512970203231766461129324134792122510025665013666445684629077546809111559303820164314811992812721224335007728661070907814526759353230833505317785343440113359503094468626637985353605104357584322470192638171683120448974438230401636080772385589953118497480688953787209896933417299536492672536775726374856195790309371060544551144179608900121488695556312590459271569082753103020898625046694393692554254704866731162881851646767177472505545427558694460076844503748904492522246928040051119978274331554471919368883957627821874437079000400414850018366053740627584300255502370979864699657742092947041829509448721934254754780192288222261528031629427921081230416033627065070530933788168751826605322843680132812103786366303245012230499344371645731067484088141734531824548499174238738930233208450070319637253561445368415727770646757678980120361226654934180490339212429358823335119141115255414925575910878075372903160827829588940962839955277221238541190937125856281070038878755156594892299407819379113836471763666296684354423500467687946533437244228952652883996369306999596121761419845810212037764710223685026671137367769524704945846671266862316391833524874616966270594238495585487357269621333819833431568510853941987744211479290120091453304003550305424064617922872321683316278230040932955871635754847982534781692794729150473788200405929129296068158755227969697202771937186142687926076869719217661074327198816979418132100348680406418313006411931072741126272448745602217186360232929461776626098240580268907157194127549822459962615739687383325576846953730409978657618722186260746860798742301936027137036134359421192563228608960534399971843655612013693267123549761673591811802631363921308115720064050966122350951205721784134174361672905364095501824783181855364221486386282691745291803674799811723283848361062318575861469498625574676342835931339059876845988559561100822528918651558737544444468153518498790142828424012864021232783075650390787360858751527499923302612366869301800029826080437280026937586069572575098837623440857506730518021649410993316558873150276626939356215568611439051549229469220690581213389463341844790057846019938088398281907332445275359504457400728982215427982010245928007558959860140870969942591232081345244191266590154223472407402815131140057693762062236825611260086493845042408318718599702618006691120317850136477937224771942605941549688995388498901545904540565375631581597648667678418902468315951100529589601135504364697529177321682330988191911972949364627682679061269582013792260686462728433036831162267710098900731796052566159751684687682133341803286273103850800674663947985118294387205311022005220516088857690820899909829177005094949971997773174140877184563352957717557226570889578825604777169371011685647792672389880668996121549586508944178265016760141797906138504967844827960469869338681124099269966576890499706820530595928884700404962928794092465756347577749987726978085716206000839435716573211106676209711887987623393285472733303990541065256553088222643874337344830496382006594369761436190111464070094809550155034494219163038400238884391332780029055071468077662303224624187932752516694914424016669420668201147761244571604167361686433169052402441427939973761157316600407391088464994551586876873064613655885801181292809000534879743227553736202961365645151544485313676027250407222724570459414750041105662262658476232671447446154340370956773807261940382219764544364558576748359772707134481522374844259645565948946494483766087278676944222782477952339920829186143422793314076289119929501425454808025983698163226194330002490124811449406122159856912427443851426857876112522795444403521875923944707143806754349808917772697784406468983521167156460577519151693186406793234669424826838829826018025144340554141052530287648095824941503694350102357167021650366912325637107850703128275379814649072472529490133630985681294164309616748766565273403562467858040840591716312484517469958970878991034525698170433840658738625799391845690034845479656710543794003564937276176687517649746596075602466885989493800559402859358303102384275531182577139503572381072419026518740439993948730739668170639234762689794568063752247562435739324886140153688778027448435531284076704777046379278068804730420843101596122666308248902239027539104466017356444642396321468982125161700168753744032368980794334686304622603130471765261632612330918687884477118407038457271638189539616700662187275008182691935060260725018702557998897477610616661853178429776793102314766238891705234415571306005170883231365555999314620228312183259565878934718014391252222170859686473772861355794668000443697362622396138229648056290649406618444668953772314819848029860494343609181551067675521191288677599889954270829266959646678142789441016209719141066789535084516435635463880465205170675366636483574454126275169811204412537612283649535715874990357944550580074996381825205839146449320820325081387263531141133894285907121432411037012108373282309139506872626387177837932168153735542559767724668665652722320146966821037803424376436311287090669693304234261015516404040179687482627665832574352948663799458668044811664221808774504629483814679577844696841330217150605747103529985352032037316662292834147464203356867361842164360493199830126372763938102020801517500474394246920080131864649143826885493110826249999760976933204334135059528702228491034173163069300973605313994402306549894585268985921362811270446261697897382369770619275973257078276007887450574831002888077687852922838557257214374983527252568356961581958678003550283270556197610561040475379290049004612702915140166632510030804671951854272123643803706873474821120247122522309978829676207494921729939481698312467890285746430665166316780365579926514056855472236507170781175801956537890300828386897069217691060827193972885034807109408263608613428186046149995581240147880889249851147445664748824242475611520312215000992461828044010509069733235019727241222682587775068347472423060109954767225110687907406243095438867232932744225091638760775815952282566904014137715074054765433672337005120538655029692623310976837517676632745121233954619608699357308195731126710660001971058330752248246066986830292840023125455217626848048339084298116974995266580179249958511433023966900224356606443834205563040576230026107355865471096738458335009445925211124208271813576812590754315251961594000805431482209148247551056367579674475522607584454890690275622348784229818553016028540645257951578162117348200327477387688465904359825290105463132209948212446043586697177946044903142587512426840103278600504884657677375474271705462801797142968646221370396976861219020540722349939869014892337772031120389976367794021437080677169949156399854918164105529996928872905609412864519894661507807364570628934406966462267757405572524635809780036618610237708606295735082614599959293578722133503659060304015219646748808201229593049435982995062861144704672683115817567748285925414438348991589458532114496418798370911118615207827786101916015529988677703073721773662973615004424146332433725433879486395965562016194413072155429861230589487097527549777246127636003043910517954225409014805163347350436420325350740816994528535687804520962821690792512416580783220116589126946589006954168135653301105155271807673907552844543324433750863137357073761937153158574812750038159529653121643674035797243992605787554887529562347153262686436067929323727970776216624412739349138072097317085724557968810776188741883881171220854061122083096541405917841718119817870901257905292598448970571369806423050205356696851738307588960783020003177686373361841681815516635298651038082889162385053850506433955863437886819791598150649349470675078113137646056851892986436841811989466866805503215857224244444005909300372628679886662273518218269600053876255917604073426379767638961044113059157920551021798985059422687053168220403972065630748875863233062376198934099419746509277220098249415892636207037367319576738809552536616547882199568968540360446747981923300914053814435600347747263872149776392113528718413620659344716931017793101231035994079526685452770464176746840789899397998420430383110102649398792982725925404520439396375664568793039763157231534204718458823569107305638280604240280829035816141054859513704238729567624560224359835673031203859570846378123692793408798847114262983986768651552083718153190576587379942105251193248043469498976199968310994495355216118855166972764344461636386741005251164781065859718105479464386774660527715103134858361533715100915358372010711853443992545334170494826847367404175386705818369932766837940658458890333838197992786756690191372614762746880912889821616718734178380385797897276734436181291863347170307855378189059511827679497815805111129082416731670397208070760513015886002349424278552101893893593840335035735982274190207163331537005798710488669339987239378018450509227241924821017322022687095378446019481496247486330973677446257478550658548477576836229745875388344705233718133862999711870918679210672337400590541209769778905727583776577186527982056711495999792797837096950993275245774714217758371036146213390331370269732523053605286112135146091071492604262799918601129605652450661805135801274086327067056038451676593777069428661528169218664352715934785123500444745961697899392949915511621942402304473330029432688727011961071938482606076682422721471350699666099915297833681874216867308280247002655594292289840919006925720959569483383653942238583402499678728910217075828080628728927103367917821973921326826210249000586738208149502896246042624104488266502588636179114940183679414178349560650745323986241023315901558059210692272817919070428302729373405242974159612241916299364352055058059110851106209721349315043997583972978310533969510158373872509755686518771495116828827048281637535459578481189680664506470940920285207226527397780300841243506624633437682260875502008569568388681448620615062478243040219903088730149140433088552095155216585475229644894923507475280660513071597832493511125438838811604809990699190068785446318141463938090343949626720817889153783162066008176489245945655057961296972411608171521621046789251015857042280728651394537938218687527758543844403537325982471173443495150824641314406637720001664467912686950696416324805454369754648936068259079188056135375189339947196205910660084336181071598693420812087406106516236105467461506379630422656129435520935872334349551747636549391524100943851372804540601134058773367766963658197788591952907141426432291348509502640138899427658747220071694728355680474275058567662694430200457243850588383272158799441308664577258492155575662459734643667159671647393281253656395281621316362927837795476543813203714528851285599545034206493929142633953157973988137132404034047125348321223734333868738441670033062217772811661013999337072650778279082142635754548374608519175140351901516018179624604849020126847060820279133072168761799664587327526057949081661964320488477148932349882234299122336010885937496325058376927630986065023350389426444797312122610490913344133819005097955516048483446697189734473725492213645347328575844039104811805595366255302232961875556582914906570679962235849317729698044459641301043792342766839230045436210523132733424831447428859215064215868129974157300628081721909606872065423328257932342288528564536369447403118073256641214261373294614933574025466844181088224351152629307741811083431648316645573541267086589494765113206799571664966641879269120614287308339024239039196077122929428669653135850009897336093466591819333380399267774407677934405589224641530995417645910447817779070012486011533997720251248841665939908900991312750584882495600441979711034045879095069004854880347578715837478258221016745372944890497166606311808524446028646393658730756381513716153404887126672355661738763271684427454773751940973914384933308426145899356822881964980322462035787687536074324826323172998018205869004995222748822029222164526651260313366028775782032247263674909763509431733576691525445168422961122972417538882827790215190378375029502225375595384004680230586693782646757291716922085825417075868536827288707022807354996338258802634257369792976181892110854524605817013981117747002379360686530553595526069674907032023964446616254563666828258563458624755569343793087505346415435123950713893543085996683981747028556565936411999948682683203410870353036443544058649535480490875572227783245184477564433089611024904260240266118384507020574592068888709482720488280074850738622773110832027359758241288100135848549011174092974066098909671655917818218463095316308560039350784235378741765516596849908456631885451137240752766625885671755829646357618388060644675083317729428016668578009863640345503572583387640660151030472350593551874632350757242550874901072480768911521600993629303152609476336846866010802518753682477765991145182740902591920689711619573968468744843568433802395767161037338743403830988187686053323510268164992443777843559545191907152052828606050490618955456639335224680028130181101225174692725761264578950504506336239214065532224034336476156721669443526947264276237513688665120194907023597619221638606326030387034191993984259126005474041666579092910732413077788850699879585566789154078200653897097108664472009308622830895073783751046276195616895338576768462621318266897401538893958175494051544519789807718306701827081741253455868841169795507414719214477358875727649481856686682256998484098023929322758738771985810347943690258861299931911051733071616977850045190810498336549594626756905319702213391395026406332729024108917029075910738475884024457755387486727334604990205763483531770444345811207081441790233839280093999958590574650374005229928178195556152141556741138057322797159276952784820485987832724161728448940181449851520965587852144993623917445252710354120611843113859776277355795836912262994410700108925030644320454024941772830344390695139479774549183490683686538266762327113787004315517592973152055856953825944743784857911831258335014251877168246138804642618071411480266598393725016153191576479728688094914422748440600589675042756644035061822492670176989491003675712151587074899017504147537713894008789854770580868114071054311212316095713172944742410575836719651784000664344211836634118297549378491580186594661755886787978393835841862762783068810226694179037889491646065738628132027680269307112091622700003826934355239542716276791828911726439096842066621544487242850322455425358256780765001279201543074898763597585081077592137799849903058146197236431384671261882121148869497945166269740863287635087566584019104781676795746434877163685331430636846883107540717690329190830412928758506946614146779768607095984392454451759090639179870812995673203820994379036797315119921754010256965243727826319118604805593448031840319140856036586149657321353830695245946885544296318430326884945177168720205665853713106581532515728604902752179772330281017475936711954806994630707311401294412844575827378542803945228752419359150745415201869969240756185772252118987965361196906904266571538467745923141427585532388441448619599776194119835761994464388782242142835375411698883955692829897161081767447248106440064780782439021544597172429749713372240700972836432310572510931990487389538412091920666152516048554007156318269218921493093479185896192612514461637251644264515048067698377373113370264714169456710426177830222142526620243512682961044290169405238848635583065529801880468973272405847292012169576722383989135894468530345697417258718287743203431878391526721252801822528784951198982076665971347287771007361010712973190927304938557735786654758045620105012188486683977973256207126840331858845330439053137030244691052119098251105683328289834191373396406420821200006290511624963883567368147851230873982545520218770174892452742322095856956677602794996676767774971998804024836479598312778229565847790984465180637888662204304538231758626832889751108678573079432686655391396295430617299468898432270817491807408378187113583718564725836741436813409848381393775779290299772829186390466271969855319442285649220020527787476601927766084055931076206235915214672841098221730462038688034326926905084431396851122363586047032739307602928446696771400460577326720438795925207130595924460262598159107995798201595392653494110343984489130463532716976145196605130247639000680502879212074221178437731866278288228577154827058514290420407657651692742275950117434342856914674331488381679187600156235247805111884408809220861122739894798894194977864475057704385214024313628868473504409039473026263317646472583921141715303826871880266988211486725850060273446588066813085922744229051280180628936940384224844627242924716967519282274627959857530196943555995239860254265145588360078605062860035969807957358362011389455566297433505811765083130541395708244469839549307121227956213743133839564559839604868772682159538706949030787738076159575790597333462375254262557952876166835113699345895910791217621177700373186567669841303233353357239128241425459095885853405266867149496434893772751078692456471930341007470361522852329953170525771694374326343331752033006452841303176100989527865202110399302321308702610650387948999186902503124798517070797503319565007689352839573959245651283357811636122270034761703507408268240498738484904790909934016758421884491466913831502178135238759078249636893428649758649131810160383400610955418151890428335610878877872470225694778090913272088333539297669716809145884079264460386287828073009185629749455011528628636772861429915703936308346510161584489454008137994163247132134024065084190523673264650783634188191637119457394740114559420237350415631562518592583778092171495456859279463118408887467846825679334825705498814465549124496017297015761634169815183761086081979831458303248303444316986285229866136088590631976218523462100955107180155484521306108853589644749627848320582817953593677856685448452980929237646023164093633394151152620244755166225127083499417576480605742644446068273944844154970171525476204441043876128043074876088933195774256328128498963959411395315137538313650313981463245154934724684331203131822449518976518621966252650277229867035404592899952161347900748460107646823282901617397256005480120413006639223854263936252043353791257447153331697655888669731920905495205691963775041308023798609510365726110828407256935843299510365051898001441318097974125564947284590255721284406586794143163084564872081052891384781965155966744969211404624977619929194260695414287418681409570117231729079533768466864457735363008695378317715029310325055794115611614980476711450813329456719911881467368341582990969767573961979443120293312773581121993642464207727789743425803325191759552659441559968478145798897570498864449062119389509055255198238050491115009327480584858636569691025635604553088581040805176197190172430603354006622111681808266890671450119678358317679587006641001304264372044696176979722583870055193312150996427177347224448486604206534390522300112060526149952605761485358469943219179874555832622272119905620903574390775356593238413003105442005031021207389391311213585216196397684941012301989664288365381702794807483414889848144860762598469069350809343326819535102338726233024528316155323272791544053827598372291688139590268397113285661455044004016388580908808321121212639240624890817070667118187705172568374395050581035028740174118202975730659634890227851716573881525713382025541518122132369480986218623222446590244536913512494655563489801817096592518339237497397582236371952041349985039525305758700571759558841005159476550530097528378830846842477880400156197615513762658569176766997825975413602531986030911990687245246656636650319828910343272630616811894121597366287100163446142012888809562325883552431405108839174240199858445448933849249323314824976503480550286164158142625290729610021738710848144790146505665957982008384827322662247326466199095631630306229584886954876178135393731372979323566523464203965038745185167354611072393888305274794626550144951789036986229227260301529813577931701375735468753302057011841972074416960668922507084591328634927644638862542034874665791489226858323657847647360042689859526461290200301407402378341896783789508020479558527294982704086920819504599890173554071546808028546665707751002507204246914925526552912830092302064084571585943766501888152213261652108338040691873741793134266816059920806494676112715215586499309322685147402501864914514919064123900256565176234273991448498191392347867069133487271830673477773380454857535041656774397197657555783950984442187603547282696451168569281386986291602091477018984208739049301131786185603918030371791353776498436795540186104526885779622935484232803140331212963237823569071861581072762185768847022072599282651331139814062640708897886080368570380972488427065808918694607100110664270662122833342683986464858140457255073793073765031889559148856067621896884194437270805697747352666129399834565480549873219332875373149232474484357515632058039806995725024434232036401175007768426687661022670114529754415695113504306357193144456969128564757821589138663893061697888716435197007651144079249055981852430739266288214255878614933132800537477373490866809216679153824874961000926129090396041590599360146971469492744195212582502879939251600266826536503212228854716002222137226350252834810630590000601973929660173830588978907162056307016591524453241042870898444311889280558703884087346779497841029044336005006491742877799324165152684085662846631481217321023411910256900593702262015170289416179940438850659438098507872266856582244047735380435689308840121671372088769570546327037382358106710011759715116816521743932669676078245890466984670648776551339408400046817686309975203197831716549534060224964706707965027486524899676339864722765806629321231072335120807266876788504845960854612931240764608486736051105849721865007852992585956756105157844661939384593555110350833282377078123486540134932146100468500143808967427202952262516238457699947572082015332614382829536778955133915419426432831819103631555983478633670638632345437298048288925082592205545315424092274759237371491790257543459862668725845377614039954715673120689405147115928923614265704182339893093797905226467869348504207819113270140501288590456672837268359747321917925080028277703210472587556519506510707204728141455906332961365016628362027852076200091914815609153629239476572862390897111924273864465705011635448893848529017130451113269874058098438571652898005292709302738474951026042629734782795940364536282489898685285065472686508675013813254414160444405085566510952970518931845053626695404085574411617550241746951832383599932731052629482819559997949877106972541175697078228942881727884262316176466891433322817494386229187865463428476249129145276106424543547657402918728654995693129135273905164796478612529598726271145589723274887484587812737195708309662817847659017644552590442666630629350719254562243372344447591321798866983861466240594792222365926516839635056152240785999513200852022050863861623061707049731700794279888367876772508319782119599577452627752804134419945395007508284678796611184045405841507974500888336284904586233778022300878436228323794078815416492430624890080300204844553272177079964356970170045018992707095633300245546195745930565449005680107175643962492178082685684262528896066375843867314016370343404674536649857602557991867069668494214421083514490751578150948226846390090931592910575866580111914325916021446600965026884654923556258461692052619411796565805199746647569396925740478255471445219481250948102535239370348308602318181614646354741551152275688804767380862671644078020966676743720220216228250912104043202739451790385214555355850960929643466662017487502053617821489219234785751747655906489376534372096870607913071212995828810698335338059230913588968587188380209397944228680690138755334080879515383735385247463540265289096887824431831886558767942509330500184431671896680282196405787733906102848905257579802730952503477583898213578781997715847996417768545669721116970155650452696014481278713952753782467937211358004227779823020979521828080372993389375672935252873523665584105163093701534092143367398663223084129480370366767297928977946755994765771069739578183939009033803074156941766467318526519090971421927571915268778045332776355205444068072262312083960312031166774733704137471976256772418251085029580601777842943540364250533506211368262095823427490449136715587908505424221826105750697147636770068605622035028667591268334477345913364523661455045523429313603601480674641616562973978144053920064175936567850123843885570953688132415095003370989689009344714450830349114958332696454827059707556805268719720237663694679284147413142397909473620743391973433282360743179813078952665213325779251943848073785580485091336593577325735120551829204783918267084959291067172566835776186963873926509138500090583464352247895797642571032698907972071527877632500662068622717301232923282451355825373432321210220285005140653435965629616421798125947889869080291837806849437312454422238381617183916063295374330355964458137595069479867427254727054600340999985714607500975188005355666698163432612743383495782073456481603643091122732385014280016328654640349152172205251527010340043616597193071373635070212705041861620941690006300795415505419400539200149013704337901243548566464118826485853516526851884712841737738439630589269702009936499449714073338237477394292215558097300902691200894651156789533994319144466872623013020127066528987552247185066942639400829725688734067691205586599456531729618071859029922722864591763328732168738945711660836614287319411434982918800566626726747838971367245784912317186441551352714403008121308151259656956684281267770155223692602800291939922568801401344769389598115382158838024025502778324848573586547306624070196984648423566671223298137569559066072096774072391805632681711802519253410464772157213222121648773847091207180327798931947441967690962680303843825225574764268857797452689065063573960630607606477267470339842165388632204311992718384326604381069662638433712731324474980924492525323495186421374891284417951253098914113894157268983146672837948338341717530079917025597392860419518089485407937511935537424067547898768937553432983850078609877893617764844359158540693319884915521226978094235006494622325480822120163201804101518096835194722285518593345920424953275252227951877522296543652544109037580503383810054712461027998431756765401370886196141785752840380157635234346149399135456009105281892785024208992527045693679304150196958538514859837213797320758518696377148945444112465680162186111727215923792036883783131284515498294218789135774915373282107596082302724309317407595914630960255022264334911627418990452390914812271110927693011684309963684549175249869299611180898291856779113875102310667514092021889016644743111055527410126905201062970610962667456971991461937517905896397083239846191656808506864723368424235045514234478925073856339187498000984441628044698174398678752204507953984052588120209676098296202942770848519792396846256571044591911779198329771870784199451850501105680204202957520163453670249093794521020905198682361740621997495489664727318187934871274818478799717006611399577817030951453597092399580588478425277186024347262422278168613172671368184345779097437023241654848187983652361650294115563016690771699357932230826637548243074616494807732387270917330358365490332336147665669243902869021475513273000300833275968276776857939932210938651599522922389583316713383824140915375695691789582734534326424701406008286715398885763393661601820442721780324866421007507273254671332007351477794809700513226077447260838972690992668365821778266884283010941701197190104690430008330628651495979147987421838304220093511159185997133598208083201708029526386828407708336527241191153927866654430899446005860671804291553410882132671216771910822874696544313589885834915785706097917814414667938156261611926805667058382715914939002602383086651269115663543706927907553447972829545930437135420673174453541474100519947854854981834002380464420125197423741163834111689057354689199515430292821380986062577946510958088052607139187782460625270789801755105527930645162788811374643500325916456447666995309945119476545568564415170739103227702601038504169660444238880613871108858979274706429402241879708949706492449576416451442453987454111887739765668954915214506709084057959754588967242048903766404678448013338822191449043850237189394994786357935616692556995306947374440116632968571307087804314191803005862650690280499748765141978083987154219611900093798992205841834388219326774113775863394099880369144786054379543418557857969322543135452696975028546384915381487644703940925887803808757580604068428707062201456241987970843853130399936327026674635338076290409693926171367103645269640882580624792958828757554139560444303573553611657253021889318169402623773417147607671352610295871203319593149984150806464663462974161743908486101000165448268949740742122165300804550117525162647418484185061559461719088793607234914458185952165346819825728115593561076333958932888404430321945025939061257669993634931907268724222887123304557370565143977615323112644094063944421204196708085646491934996600352294261101860226656028250793924637103323962032421961674858284844323995351149525657972303489708258327805515166187349211727347867282201387068133714639830475507454630047426120767947590820473318598494088075710183222037287325202209007829964608084216906469109764520836931819385886721253296181821096577148012499605843435663762122493671376056814667197575698203578820896445257379993753455161783865403301614839694799293128448212491943874028509653330434922983661727851285759377188886777311622682234377589239744091754107103720967242838023046649668514173965694415720203364739297901901364024605632002063740332835478685709201659223075244778681899945810822225822369662270337670676173556070213821839980199800215091109560711474702244094788406456211278760879029542231767792512597273732873223464865753736165998069181454899505704530285291485457388613366995380535157406868088248368636124891868276354425492471001609775982463940829297686870092063441033385465753022666623653842198576391124925833521799916276458101172865631498262876740910164528367394993765851339514453394735726139077321260910901980795008278755276500550079676330018837491039511219180266678300817453326078087096362786246963134455089342886584575812165674443865056123097452593795987974113730185399917090719225865340930059540988335863684977406170467174432883626033397779973375704752002071559487951437571960083131305747994535594444441144617712290102099212237362215333477841113531332113522035933247000449037707747833764079258350739373676557575602324570927073909868333514017370313793439917773974899156421243509519830990048407617178860708151484040470531915259312468545656301808444122066519516576879665978342317211892600138052743701548595130105553189431477498798120895843030553951477048987160197975479108607574996173463538100956436231688775873783760020849942362873548735293895342326609350068928840201639011235652568513737842806812512960920249471958625908322658041341404368798022733482040508173194160973920696699214856209194785298758904152943588323635362539260611707036445469980385657660995592168269637337406979973764736184109754600377922246219896090165114246212075223068864981875983576383778946301625826064072952377472357456459303372466112535134578730904002943938013097080937934085795172952941887942360746118869408254596667667920583109204696960561771932673017787681350873393599653380669414846065374766748218736042074885421512320592279153674199169440335158100272490329597333982611342944026068790454172331776898892609702571239255976631085337538406754068343323480902082893190149880080814983843883444520736526704775508731055908604307350843787857775091545493914184883228420572169622939370038949724712389460882203356540566270015246342150971543469583017355587550304534045375469746895427252760292069719158369585997320207983888350238681469457816647618946805727936254850585384515125676425929119204484970507497746730562217635127096874812449348256126084273894472045612960904801710936707482298652931425409629830780449169381468968900744821418593233375276367985172112947099585798021088571949138560006763456352359540837495601087863853778507180210029251662390920491799976765684269813603573393549083162269178114013291084450547863328527773555832734098886220010622396147907025145753412049811496327619395126637074672347902074496350229022862948471188674420462639774799507031242580320924687842721841611189299750161549638159630956487672844229443983495521147461483525648498920445692467955655147673069423806297858960648324666196902745348529642179442393197587565032207940484627102486240108574826147541569889882291557406181344936953306101721324785727729568662917136081233344245634195666295330235741742103593179247147446157181067882475777304093509380585125033778885416789312569890783847443222416189338042941322409727584867368818054754779737405549407788795051519464273993366618796032344525898689718538526988884252142586733574879303279188623272033373971598767787079152911848695898922942077114109720120731106962685325493550789065868644010469965600762150560926174460668334150577726330461233091636946598251756173394216823808738716991005962677272130487924827161808582820626138011233351505763155709872483598974419486328870272864878154122433545612088612197058872897523226477145356230018881636005839593662791594395330154156373350773190051983088899002113629428669677171424385971029508453054630220265585416113362699984019319074892715181518931215622403717711734600716982105373275340595257352359806942688589406059013594917742242143228323732306342311378733988192613118362448874247704419488073769587788822372929292256694072310095413553868108259211904844447502533130260602953778348969450258019499258893299547876457093608608946336533137231399940599224992708557784329366044115823633431687583577211944589096230970466071115791646742126263647030168487278336267927892643457386224111472760537269582262478501485244267347436162147207765576099457969855040840207736480176457237274324049090892296250333024657355802362232096989083160096425146519158916332167580823874531383573965732791980184302112615879199270031622831616150046120470775023240166021601170245214822217052343404304707865856127946265487219090952316919854698623254780893272305507977373996611175207317271374214144500049255465689115965370165478242618209612342502540078543481445259397844461717787029265083062239009237353633802942815865102616282973810568091247619752626198177637478367097611453283355202636721999546117908320464712067632522930708153822591141556850825785229819912813601230951373527376359440362052155142828084753044189556191354249061449992772287309406707559809779989272950031846736822197000002096054799822111373095631899569699157150089427028382411530484517784786703595559306424625285767656853928989872957138258238903819104448879329318643140665253516629766835520463421035893415271983235412883893726860015645313094209262320177196441858772892664165096524595573380823581313845020911204225659819677776394114814993408507262515896570041058027717956695372863878351186604888047849993693764523113537034828773892308108279767825310512913647919462577630006993459310296811396280425034349742308103657677324583160214723412607884453679809788890546225189361593312930114715012885754586552574238135679402013464693298192832536160415962720468190587456550802975589464313651892310681184431573347052499506798743827048465856927468973101992418025770093542414697265336663034843850370929463774348917190868254176073523597854186303309599894467052580359620463131141303267403856024978651650560233286154573295039149234871325444949949682900105874562684847413354579060293958056670331919101377728112239142937321713307454718290138429689933433278936441028775641309220327168200122129665235291487194649252357186929591867956990693716720799830732641261910663036125662768613193560957938808582108629563079336214696467737200365262155434407690166911480393846114704205717517175110659059593856990711705188975533778478131846528704098296918275084541938137814496033031269339761795319802725652687260232591068198006998140193792735066929769401551736426446341775708429924166444503313262050520355097134187274062108760705784434863275530404037099672870092643972478285217893375917054237876182869383494730983685314801748924302283614928220115972525504126925370677323301149299640445165830614506568273956779762729013375870830792436558382629887147441129364503572243285623459821060743082289184127702120446712190443579363978932604749631066811175960529445351026555580425991545667522938198170629478071570236603656408230913045939223110044317760176531447934132224448105651746161684707077687738094133240097550077301291297802316262962449024561153201230517506383555903427019440786530422083836693014232033032806215496291574057924366303934381062192141884068016907497181037203224464173325119310915045976720846570517053590040944299010641858804175047193201897239650674912336387942926715505654806746097657714796363363184189679619938997822274726699453259368882057904658709251167588171799688667845513624381659263457733352568826587203867712055778494251261224235763037603449156248054800531137118681514571270658938563531223217684740147625405009480268997729803911647842377551932138111501392684865147842572083516391983038694627003370029582699340986188210630646679907220623762421317554366926876004054252568181053972020588193991076345396877806552869219898076616115468262454524653626349161312054668557547571180300571120479716882494191785468716711173382637353990008375081433399952784366438007915296366111436335706298835696837897873907748134934767985219304423077247395070066537008912366294156499768296346990780248989607120262518549619032773309157560041567174615138777860627351109676516511621825938262131152938872336443520816447362550628501209187766542461244221590483283120692575884053417093573559760839820090616827546287119506202659654700980934042372487619790043375105122714031861239214369376774637504797794883772428991346590622091453777289997207278666897872934783733050408678921913890231512122447356303075170589132281949908070477100734190954490789297898571986211564269022826026545800736177980931762048837570514608588555365252627010577730003378409099863721424431206801773762486446386514299077505438879048773326718063514317067460610711324776343683545752390929648410626263944002255525206533326489534547856304173997170989758443114630150266335788803964749211508443492723184027411769855274598263908526267821013277009581417874977209422636699012784370698072654494621780277591890924668161301604653800753765793061602110936186800811686149187499107113219718663412795783416485620811968676587045522237708235520116284572455449894949030688154452763711859116754466424370169851986062771249204676785175403368118737613642273082483774275795528222044869442254568222195682672712840169516602675594119935147434284761574736727829552324106208170343989621398973908669731391424537046754081622674904151557550842330506295091035997336983102915980308112317067703655581628601931740190700539227564697335265144804695017403904595493338056776882499140458610417323710701092357155647409199749481204706269900038611341710885336532890863135161057127284934918083584503461228726823671559294499385954932621031191804489804678059528674540135521317776848763926790648384846858600252032505538938360378634701783345027191397805880953591357747481657242593567971609581092545061386369352538566914934161925066866279616930904205645324662920687831554886327578574241713927370802893958529794274614084757790868638109460718593651734793007108083785481081264063219016985617267920210442761610657062024008534862352589673229133432716704148392598106052869117681275433691294223649817867674586132618618231045154675514706664478515240984400793923790581148202315830109408628336228064597964892042246185145996854971210064554666157548091606160416004832419395526992648410542774974479534851597167601776003356566007850173772777013415772097055871744232852166273404169602148747961041342911367567546451666481911043384004636718347595744330679572172056731996108852560267657531422156317089328442876779157713695394649311295848894322329770830522037348755503521946808161781096740597499249551233769594585696854121533752817549648880447487212274927143829659238108578674285832332864153818086041432479395835426018554792392536661892565503031089344423041660299870792627525745891073790719797818425948280454511099503688819900188121523580834072933577609696031172512952849424513742950339027872772009568393743318200152214756222351418467727829746232259542665048202128533403206779814236666631873508984044910820389726030160999642039978330013545044557898127244869457930544743654170852469152418262226825555837991053171558757386124303508493272717177674774601718553546816908994111275260511481156788276262046672843110075637611043431062538180391209597999256370502147283452355934455902798156619783350621764352182767380355634198175589690019964433883367919288309971480524563120355611388134473788031798380320690009281440644690173585162941992006538540170059512570589999054197460302917305114694669508200255478517155065044611306677663715350681917096031354087336557195745748029665674480740841297425010215359341064083475114408537195182669530378928583869288508423710922970504634333537952012345722058963981755509764026148747444871717460315251814573877470692645804282490714191699886938567323807464079621738679893831685465717619122810666269462776899171350151593262422829072285878052566577790171242615158854488572378527092028049345376769555753323207966272330816960629922174154080044400349844763011397504913358124068999837536054896982560062933030545100378353493985504551038956838563577554603666613670331197294790010979461005532777313776382049197945877740828670689594605128084492588822184430717665312496032659615714951613800820019114863051922353872482660865468766607640773501201506251223074421457517896064930723488995904063539437969929496373230172092517224632214525725544585580321919613272341223739138778458203697012597518718474311866186496019714809140372443556609101118210368171282540879125985737171392255590706006024270354590813543455921117804313715631040973643157369065352360165251373365411030149253040544070338192054732196466773491235054807345567502213012751974857370959786314474014408437603038807495804507248795047569206538298533393196372284975154844839550461607110966580393380132524598307836943178511326722525427261106294111198085537545409974390783967120429681230127712979127104568543304046688423541110688734307789316207373756564544288110594168019743859631691636972473046085501373257634824741666285070008847828869577718892792888610996734462094933348781492792144155306380054797491433919494032139375064838157406550069777067237568742695395308021708736141606164588205282413017190360611596749025351475979937413098106311587430926038613939620544116419865017608516718658092594173060758183814604435244726507796877215767029413892314642490796321291811855770033435291371561402413034701900112707475421512932953284213878420256599658269326109592675561768281909903970614375122271381342824207443692949716826115103694154640982796470692812853816869338349956870927684547847586219827939687962153223204129381841717998874471902707609835810844654233007867791900313418336690293086472269803194275164475718550874730480275470531774376836120181242798838269263833246793641940706449997281118057326955044934946305784049185410490417715898328781747310626908695326017749039706920489054307733377694847609774483649600064800218019197119031136314960141744705042343687006255719665099113853760847618273872437424903465663286292297064205290400778910399862881479045539976606357989887268497856073057469480582283317320586189767910114551519725168410579047263183655747955944072751095856262871461858867889200989373913641388606987268234342391379759333704842604974623777718242496117268053386101705667492541407891209450829945944341595313280243069765424075831834572752537968029455840098125231895384441515800360630266198268640261970225356143021963500797809675940225170580415399333311150219871550392355080585382489765544813501238256504292011500930458600097873580855538111788370824787995497921457656927170050357151878839740948661126149345798626485757827568932787662808727648987219079068343501456620005232651364876761988705634390023398148007701333480854008162499017800699170772048993684411539309719510865123944027803777185960372325043948235373605184457181511413801456870094114669414059709521901663215455005996201357758815258802799245833890489783564501938290981736003474942870925683010700895096304795764543638041165259269005851112960022512631214100496285148899251933708318475599159302666208907776300138574015965186957478497401179791365100383124021105402633070269784732636970062016271725895790101213973276760992004374368803760699723534716854595112047227299625620333423133685024690754093452747773874317731884283669924654548593130345977566125365211457226919236483765460195080967555796619800043192380649061936534229428458548589681803035234571646626528597759747345701202601541074265177759805550725325938888531362571621624510410467341492828762197775923094477215623050934411015014035093354894575741431348894449493075751376818971317418233256864154409518206641618788046159937061606055212834806508913185688884314400583466747329225960018196766372613133644863102025877768082028623888148764379734113985810134593233683094734705930892290925922084948022046484574455513650856397205102797741453244078764567981626225455188221957266883818988255478085827435243217510349554329281930776609171197503407403219924124267068940788957945960902743144343949162265680387471046169100121240477235924417975400656044834196172727911387301091821437165752319556109510182548022774191378974119043121375950335219666552311060326410567929134851485614846620077810506311503281053216249836379925106895233881036623267411969069282003083690161738243661404661355080959333903545523194859958037586662053720506112719860376156024588343209922196488160321053105297823448797612967707872910707400048489517480305663357351518075329641923822657206301451296621380466383771933431601007944222617394725248416661839502415889654127846792658280953003915472918442681169026379321762282435568270545382083704947208661117027886448368479530079523559012591421004298787555401000670753134780836934088355932121608039048225686619914086959714314135375118420093151845599506179485132026247972238655085529920471074731221156641556259905432780010505081844379290702129801667845478698184429542143669011580394716856790310111191831500127667948084309182337901597159909292462920489495731910951350528559650272651688217831787829216797518003490849333049299219159371606203208756542602444428677493337784690488652161713481949278797533180879090516904480833662705498867356892892892356511846953325203054204959681050740978795101913480593173553690957017836949053535336242563790807359197029968275835169874575721789144077734554001662213439101336036984768398869565531287101694182793988874653011082565925918657388975149894565722314711679066102744426806601883862393389583559562444272183339098960302517185505532927629929174593144898639482437003533646078197515960919557874221047965275639420842720434792085065890362199264225219937743188765495386910930416044929495081316309127901676799317118375496516495887771078573549302807986984435349097663466933550728927802871029698039581064744975890479097444479831761421559822632823968377644890829781341037380291126605360233000390184297123539724319255117891952757977725212400416139976192481770327662230931463967331916878596211868963457671571108601590918299447849289980670514116040024184739130938914561078919916346843457250430463010409066007373500206066928245067772738857192855100020840587517137169640064064870176055169128696461423746701800937960034494444138629743176030359963809459042819701534615835552211544062570920717594214499374431298394530868828850838365561847340963029033289406062728917178748943986605660130114608147493208123161114409969067624008334921639694140840639397685725782499134374840741831334572567988336808679820394941233371183734189522203459560168595873324845198651687034942848221968812429200862777411365637770704176185149202382445308087165538367597071016507733591556631937285472523289307848854015694034372800872764645240052484311564825398415417363176566644960328724119378629145196160193530378836815962913231910128357918936849026110163730294830815624496487148209235968484854777172174397073154737553090344451020194837553283226962318776511539478314280710132541171706143434849854558104278143612025806165285465783054347860912391319937386329683584111908253447709375247833399622301923060617499048882057492376502886583012585023369966624638844541435781167244515550786850713244951940143822617424043496758672675579665952802863917512416429167026307974867963873011969609717148756741587258429569545085790398951227774450058163839328143289242983734711133827689535363394510242591549594544318088059790490182528172011018259985496072263679233574230890222789051106845114497915281851123079410791803739838405132535396489993892797544085210723969007074411892912799195395688993464135262508301947999386440266730139479705219059654983525793365270067830728605768136782241530327238285288979031008121459875263058442143093641849341221852987166590684261929638164748400343959706957021128883165258226442167533543855596040964827022628865382249216812245615411472838429719879055858617508716552820368976555825686331187694977096882400432570486976593296799351840599153877272865868730280219551390751565912215812375529542109349170544401927035347418733104384519545479242318094218228697162959635601896487202552511965936942000657259260742300742294858836339187308631736096153376203437162282879773150634895872120347932994204725389384992999936525585660593946949231345395544080475378386845866545726779412439360202048120427510447681809403522329493727771330539006322536004983573889109810963826323844947107967551748491264904172720183343697067966869778081383696988163488277686725550235256275805571532559493548275436911843699590734165157851372917217017652442126301184260741355592464375015238174065575187295624187610293817065775642493032208903020349144445582958762470607253600635282383789847825650443360116469262894885315592202775506033789783741080213742640115225907870343014032352953582699041159655728689573612958575008518020438486905677434756931339432017239338280903937383757360525030728900582209960501345541162777949659069732908680795735413794410337569183479462187830234870712490063283349526197542712939790398075510447270549452710469897851813419105332664929538961227199204001907606999397631608472151677475844776694657577106065016365317575159991260720846828044744554340852533937034425153136808625687523992426146361112533071930410179307805607708856001090277761504123402814330070724956284299835067723940596354808882123164778381631420971143016536748716133069879042041434564208319688361771091973035573245873374263583301974881048580512990918783660987097888088305104623828483776350277289979260491286635952007411329304793720139785806258151590180171446328029759617895722752650176668112011400759742283251238401704587025623749720214801979582050299226357548381924774442527417932249555629744367944627908604980230810787105085942059267404186930943112284349112641487291206760647332895632351440638042976248778275400150741541086992098676148928840853173339763701837647040829722370402711422590954594280598204600103398378238274031308143275192898882314720121984949200778080978655344781910165775347596214445549711146473769964755703415844819597306618209516798929886781019082541835411476560528984918772918826977542065744073102279874895070472257193446996589715257219123255360835477576638116906929110670576468229003524709966399100254575719312276937839904388411913188688336867567617297099792626331649558069517461785096494958422482411110782762516810059941259941253986523231174468172798899020897901874308913929304630024359351511790515265160109399568790747907316958969110505790807908071996402707251562335886331820997545898382042011217197369676928142719102079232348093287049326536372849310123115300591210880347056013320894904561465686199623357541645167937752938869580217330804664117850069802159516608826746314787084316551219889673958073635780273891617994403585678104460722500366266556563153414986976807010092456639431031768958127953549595908852584328387085296069055958272721194860294288706085330859356851392167986379008710853824244013343034379050741122056239645104066497099065518843445302756578200440482883638128244615878696320322966369290091056833769839159169246685990952319293466754342746857150512867616253158355103315242978490587272430598347706796153405881498412665261472864666795941130346074756415671344378711903113534053950916197178965851162737655202764483124384270121219182659523037178136658578397818834403761850714459217748057444538014538282013734329465854425775953011487130104294136265200261463670553018560783171024464353475539634627483714105239129714014258891193316930349474034505052982483781600477489924790053512399641961644214232615103095440702752540822394203117612854000338480353437129185703814468016478889669416963869177635625103600626436135079143382923834945152729360347810223335482241289864813196119526623724195226532722072438783342784033528275023503043331875734906703476350830438980249675489771447422200789240453431766918290609560970602879470483463545307233798306215068030301255507027863831628576112616591699140496530510610866951595394438669736030868631453817683846499902132929256569098995130723992344033494018513172634338082898530528350879457474778252977392663962406368617402952502395003470001592798409064039925974078252982750774377100594016787199055012085177702767504309825307988654805899265108044387942154590391989942465860371962866005597611222045834448888629856782101525407271268883783967231957187094516764675466328168397212477970473157548732901466077781770263236333886086075996927540578523300646541178259620551769414665115716337610967282718987420553402535236810106207752209201856735058101602863239858848310887327538958397656737608546814333004576927366623962863550840974118617226871655745910824729165588287274680411029215367429411677862381908776264378263915899670180494102479253125730910951823123516704727761192768307751886058893665071318778991979543182256142503442183756964752176850675292450917937306900318900275099525926063164143644287266160814973585259260017930785339232871918518370405044756504175898498969044106548014920911282327224054205075710000632679447374095917180152039630278756255729768684279376794042092410827821225897232208386138883212011851806242703277647479742935389306883947003078861129839839792880724240249887028580285551924398154729362708267061135051725097564629328782197498482782303903023239065446880283915257687508923642944136678753477333089189586612462877311002097562394786271989020114600851491103188514402009550916535247249380778261172595174770698047162803129757591393969366661665388086053294889720546129479117644992634920703439595989227984981022804518030902576424841199999227421169119390606871165187893328414860736960630814086077161550300359131963775978431745061708474809868030381313745499137235653367983602714092275862827040916561161754995898017791261086956757593355861326627454273936339369948294337369798823088296066424981288320619290910845990007198145815222124810606508728752396878152622674876623204672264586118508704399405712240899940624739920866688450548495292063212607182365536308260963170940827033125770696813824894807249251502155090654164456764320201692161097146405169838729509003987553854610377447129633183682303386462024977636672439525247033682139293962456848588328942475321047609946689785338807694668702739946691668442181202887433848588688109462710019929403646765761635391107813611437407269369341013631583284092429495606418848734299975617392257581839493964331113625681088935759795140358009577068814600730194252044324511946500704266279053376450698456211854832016463717752257145509185642101082487002525308881788788937819365716456050614951172166395903151492544918848829013771831743080707153061931081722468063200695729477867429112145690822492885662633690511550027007801034580987466222688943660615738632208617433368764556670449154422799759281246155775417605812725053963406371300068601592005055164565891922895153353281377208651657094575831441389342812383469242168489049589995247669233172621987989697510763857730349240073563748065968044189959199215073337625748945830886175938517022008377396694209143794444272131474791170064404530361233641823273759853610934228657091889237812178637905753433933046488877975643392785866645223498675784206995025502491191373289124261275672899215935514208001968156061377825815177986120221891970527608061227749914935044382020264829382975574372323929315998442115182350965063880408216335800918494065586197046676154397795143414103714765069145189316936795217839782697403244008877128617308586576590346955580313971598990805998365308055893818922620718074282702304880434076905444255439297678346215423995974124596432228859968954418919209625384815217630114134201898680457722342872915238517908101824548586044661477375587634668171455437595509592087627387845898910933309829074330644473798385769544527730387856270111826394151998908958948040142422471276785055246524497889616062176033678072036410335185779184610324441485378528610864697753417769679661750851644669913123471860709096384803606663045009307732127919180952346621403842019823686514510474024343920644215905645979068119585449602855271659693221850063073463717080610438712229647449679558034764743530434040810892964555475958392898409288573944505826280857554848636886938061763324768323934156742492584196068295173347703879932950140085541215979340474648756271609824821069563752068369848369729462586943888607914156839620647455801755695122664276468904350191504750274474685848096334277754045408672684004855783864438915309355636085849307000139989076893138832736503154295091889461691523570173326007482806594190977730657099020681132711916680815326710343676592109148266650132532575590354248100298145574575759979105464062554231686457202787224426818447392439312878001476871717826786762844336589216853851695481399278278370921980963145629417106998781489439756370717283650123392568356850751365312034014407511556559630932838194047942649143645900491502547021478157733529101872432505610295291681705823661683499298632010359889136072569993621233753358049439153751797429231877439209203858233172657842321896331456786230771686430946950399680896771670261282266109882045559020472502544810205306808173729124435728692541738592036598251455663543198046453567881478525291356677553450874005060036635161830097667756881747974083763525718630762977791422514527417475899271836362757677551823402529594029838620766064524081280163491680271956051566847086418274850707609680749627426917637399979796346812716450304907483703832377947647163050199207576852460125620709124595937036085193103179233255182742868185023153245456606891958481675859775993942071517898025385574841208000601588806966110990593721988319572612369040753386820671015421326411758041543063908113819598002393272877676278049753280309601929175544322755584370186938650799242589467941974932844351609105697589475513365138331606719997545810494415943765156018129300353151239795054133088247611156617301932727610327096446069542206581736803412597129120134073862978298620623800012702428733622435558635061766990402208211732248484777511206900209408574311644289335354714123902131479742149091434431321987369788179459616279115438532943326732122473183226389009165713950359968039004820051027883939115213409000026490631825028899139095363257836807555370644675657936846087782795450162291907838602061833977973497457940490360512838601574212607593000788612969809387864624612473299160134808323755597001338321492130520474051620608703002256563643416885431633847858818325566791278641200708447305360464782369003304509718926306874611807922691706776520017120974218091253950147328279493270594866452214571191050524258890704235846153972425293460943366694935740215005299406901523300443167017536714157743256877360525276159859357548732287200619067528134422604861023770262841528843196688509038763686787376204550603114221651848778243419280874664790864854315963635109563360240932231096162693593830802480701211381463681059892713581944473925980240545481747995897253190766895338156629392594516849785197965971004640854795606411361320941172966732999623061832403263241260488386940505349238711684680632768993528342814435943039946261283842156461739402334508225929401470034397273619597115469376136562164493457700264001259492829423722294411176588035916400266484032277121415648250933645860588211997780695037859993759192448711122379807628457712663838753501443280055976474979533173122249121797853015596245131752517625955095918601569157350069267103133248150767053666716430736281304075934957022204435146893985582466446600611606260096012492755323989134887452607708128986572383051529658943699162358005017259858668982430301050576990105545812822308412420116037187495014615500287842923416559103428803023879280571644627808144960469237699963452108427847069687407389861402460566970184737499458198460572937207425550523281111918369607588746741364481212740035831493785751044151408002228891624427744881101555140951836851420211675143057714894976080130924340941900487847947133379387873717809847972647538455387514319204590193468483508844201188858881516200268920950265091670965253398716920665159096065381809192581092504159354744565806734842287576503017269309583220201224403238241362597875269859662555863853963039345124028005977006067133480014646908175471782205459644290438425688835273258431987200251025224580454699019482245541997581277241553493980116536792218317276392530873391054168308038804217280636288183517206902129769609643644449753879886418620039501715088716713153250520023037899235282536451606586303723607242420965673057294996996671194632115441934501310589739535371500131049204351263962513482209429451531813593212995776364486724227734614760409248516829374752837612895841655175834964355696905779073099453798914940057146895013227222366697331124736848453529625131643943329947784301343013319312256354651070545356889591438525441642692250224540136861413607600513056290251473253403693818777524015595217566758891512541726253067174386949663082966186958418239694069623295784386268733701832064175620383418775555023600576326510600271719333433057360001329316084358032310453819178974546286110266500251938033574094248075758214691268997348534273467815855672329173883996947156903580678310927354319208506687261399499803695694241101409207704592398353617172727505731913349304958460864987513513208547198458291355333002310329586156452926970009299262002766682408793616813356757330218107073061126502140462477820775678013170702516821790655449870877425242195151676314032249145724864772134781656275767188092218021543794862498178468194786750813592005131168598294217375637262335508283225599720348675662612682172470405034395114407488296056650394743477136560778181051473970962755659984319781081187170997420363317513163082760526761521409017297052259257000032233853061239352324020505559874939761869441414822659118076079757463122351937919376189249277778350880846794462428862749752347697114306567934139853648480278702506417651503736570375724368579837088561899260952966539163405639053889877319916408629080384488593603610586511114520622484421162798115935525730670888200305322154249790454048228880132097670410361056225358387435984075502262105243204510791784933043691802664651826050427812559350131169042916421504710917864373841991007398386878149176356647307187029390837634397188000081889417577594766529676354751773302589012262133499239712541805726337747450772461354418959589906185746938357436559976241350093993370626728879829761769306834882295927536119442696468449099560035313733802061876625933151854109974105408250670514167780507447182025434084467577121938223744746116121452191838281500724236818342675885160433543497370334643432113082021220858715727836847091455110404330925622737052329883903018212873642699009667108457870016191521332853288584443781860497500242581119416663029964856516991188812407787249652574851991057763913839119409886984190102879585218428262161021401093807522406853596245562672478572719895921289693081790162943799673084477709599015517844625193447932206836413094157123017853876173427394285325284207351791025835377789496075613038264461218603669934710527703238153551067486200139468873761896775392217146827631719511135593293643581311643456175190896822736975854623439859067472208193899906651997257518068911550724974355648175533323314354187050176614815461970889613213732064204942174297693912304313914221754775467303907116979171011142287575395237319055145376992878876942728732798983522684760685490716772082191804582698010650175406731542258231366895904311961288990762898014368140894957913627494157630100080262309729718230937488560378146310633217380474527386500173998309079644853638586180558552992687566413474633489682656246509604094806718994276335919625689105562762458680649695694310108314774409448473536267443673970057018078807022649579321477339530700275025376647464773058304438503481660976067025024654694688456440716231547679212456403747724299843231110504115778177085820212054567838576975241198060821193889106405889025825685874237094305670116815150162177293035366462238202618456655965576561807125337066322637369154037663247471048067666967044661639425228979997355122648998212640367358219097592315638641141800568156808375117489643941102376570360391137581156262485547697903308769450440381183472383007635966107585669824563365944512973659898707359232769557674083394331280684437986116217905467996886346511091120973447490932451234649461737719495734463212376483357133544806597369893196889141828981215038566751043274565400446412959438498782698878363427866446081843365856943812544939335110019794803699555383612172952355607469787044813963656594223848721075219333690967788710328471853248780193074754777997377122839536495595117964153179441011112480807200038801169929515910344097906976033138527313378048392998981135167529312413104411345892643155342835705445417294962720102203243935724197472528443617191267210597487223584530361791525656842961570920868145695466814374036172399549659004725865482689947210265813527660573769223080598936737818174345918324042209502843789228129401179822080636995575971763456395456867377504224858851461721952077135518009514474310666719127380847914620319720313193622586119602995447187318995597119836865297826011952730720855157169343083202722686224307031886761395275943843660670966727491214836562126826557200581323806480438597539613782012456144216941995929232724372954749610694246985341181406599947273650151352763701491509517507463371618811788867008008486899323811369815190770028684246772189993077838932405214519171589154862775143586414638995660775607937266704821896164202923836915684448797415577438187046717735107393311861028940618929410009736170230606409689909384324130079160129940470261116475716999614297706166085377176063490524450118354362300834333457143972971883883600454541032679284541066898378898926769262608883996976457646658851229846221774282540698027543332734723047439030958705934215377051075033668545936347490565744582025904367786107824446395246653567390786621747778415463894476121465016826665309589609190036503315612398995219638411941957347086124764269748272059267214016296569477311892590101112691616993904108017763591966333399165302091466767222502471296417663788009358575685009484352446474385500526323491739099481281519009758749576819392949282617634465477590963778870983753039924125722078829335219966573258491234962508585862454598823250237256001833841650709227972375024393146678456345933030290396073498728409845409997467496819002946042754538308243336126041518922387416915121899320022544416249615933723893081159171854733581792027781317467175160332266805176996254589190038226194370922048629128552792447721512428000834766115147528151067171737416367840021808968616660129315487741425654957118651057067417367118366348908788459304084217207558246617592271104153489105803357215142809593305465633632641265918718836839788323562576557570805330706981593058246305584529549170593722424437336965043282154259174142356915573320947380078390706896135081329485386586893521696623542030204828591162642671062101591664141556231563822678094540818473737133725815852699764316431037558715084733087115799747393435155193333230885211720394197382489198167346642100204640474449388990020689343299201110005171055050889375052763592123141750424032472810420069866380011085411207991473864001582872643875581135088312845477503929977648241566432786425190099552456692979462799238188021011587382064431510849735131411458686958455333289306200026995120389951998321955380397133415531739571144611480371759207205306162377560888287565514624872992402897735289036706409643634577108017571986622629964445213313750658175943523206121040377945603888293737821359888129215428488348649259746262323890335431664074458941853071587895334766432463133390442602214654380092280954472023640634802263993827875152633870882126410236324522411586347980979847493618306197158755769971554389557723918687365183233510768916295595532611665142145746768303355737963726649568720779008407550021271533292813938331132686187309488270283816698044947212140898155196131283293263575436278920956618993194389141131364081634463324869492289288766826330471645227433405020910227298145311263313570333532502716534728594762979426027358708311899859874726008818632211806439014411949419776725438381439983051182312971574841179358530033042212978861327881717775982391999016118690782273811026518441704408365424272862447199162008885725886484174602112503154928906345031812998930509529380879443045176764119646978840209835022940162731579563636210583960968558103113679337691812611577108769663434533352248885436296578495704601538728086785358120895270124996453416437427134599735192093280189118469546404766508723685258525960080942912125595123012829524595552837868302821830665372566931733139771917758322569457778200050743656241029289206427556998715310307401345180245294169375051958436232082824156036065594637007696428913369924028730463503866998273168804074146203950291874296275886596070463201473173988155614348848058434279479151758051421986137357461198152579309911543819564005972226831889160725927075745790387174251075164537804197347428202036600897058609991487817131966688838665882518683475884912740916826335088396032129868688905114803123343857732377294048143841512666541679999774320387031865314072197444923312506461243022104955749792815830130001649861445672970707181193750430439194475870329718401006446394682486234834795796548722678908676494226408460954195988081528126643745809718815694755351607269381013629165692699747661098077724107735902087934889892344789839165734411746157547219423031155980520139686169157790813280111768716565299751610847143568292668291885953161338677612014232343339585104151885913286032345469806019247070021267997105089498224142313291899606627357721417784148956884640086053523812434332710208853289488543539253461173631226777718719399801902843272969348106247036006400368963984057300601506412824146959299756127822872631175349178776977281158578084944011352229133910038849132067407427895440486314221981153770891349841472873084432293941474232423631184978347497113868068501591477661115761113751155143654352978264105549683988762324353319043027565518616840407695662620465854014247689205404671182299519240445596234022729974638338477902363194136727232406707333542123254435691061916114062213514156053821007415487822005430738998274671795086184446891502712384725379176133982119537034006512180632566486863705691289416334512951889155508842701890014459413270517870985482862458854360566738304860869609925846079662887410161052508739776802329112143226052217957354106174382207741354560019227729706371209157203872145848794638734369169753161714857234961155351659495615150004169993100055512432972152787246244709815162488895175217489832821090692273784180806169427437046482157005618789080947332501561467665274392126970828713921515279550016055790488144487113751372878060274969654474555750557772652452826261584952215044088117351540389506870337075537518989812721993480542858192282234816106908640413464104424803292651678659562808741570461111593650437579894354932809148872001701620079414505748119146293609393191152934111873386637421940267584536428719595264491246762154757469904092459009024459256592914108554137437913499121920452550690386857928823318918276628280510745488864984408091584834077853534372188600082888244799120014617309225397878313267625699193096586499533753248371513041488095164555202971739020381782517942563599148684334047580896444467892644282640448693644676298222803212803305595258955602642591937737038420358665058598603072043128608266093257746571510223806902962181535899972668668126881984035653644236089837467283482469875830851459495667314856171850741551851373841015309895777812666398650818993683624724047632323478228824898584336226397354517831620096510294808991885906956628339711495079021640300992089841043300046804920076880070840664716398075758442876902932501698744639776325860891691294016336364336968178220924037213234728783423160476488143146398824880048421852549136428698055711407633472851997920099417235202840854512479140129766634333853883576323506631807035695612075255013849278355990539038493001892744437275601752354927259082207821190235781472179277900002305643214292523835427388237982355583889971036422915538567984574945689089503628089399936433005318488080163026204380945349222765353867713545742251695165258024448992587350651566959259918944731762772385358872490502439641088555242995957089127707217701317967629766634596393921838055143625069846194523074423149695973066302464568039405093135873400081181493483597259884992964942344936887694145742004296252031114541026323368116118316203736106788170503211013832439111101101587423915008162921285045816674342564890158746249492023836814534717912094370837316207980166794519202946265216908259579824014213681428177850311277415844821580830477353281632325168421229020455538074893159939346667600114572306667511797438664221996504677985321375798880614122149722078459388130922230636173785456916906882185458142122606796621125017471370079792429390091983206595568876843957888247564848561187678213937844161338434488637902964272492843310676663858871157332203065763399230685171555953824902570924810711777717256296737326380692030936160940194962727714701418271012009830942913071183382477886204279931920524956550447219154015752920244561791295674631638201086963606483251915667497376701358240958239660187588163862760982722651707430721557352214600951489176875840511180365213216275755038367832065527784972941069757310777040884136625971287111302217468847608591979289880927912477157216083445127252876420315277023641798755989459325725150929041346011525841717889373692862557021247321895586128637102341892178943926294288674356963286509732652750959502912254006648596324372062438609956673475850681481925915258026294527058661567481331742731983528101189649871283690822698928324683192824089462483203846627210818568217409546458179254958810842564262817553066275005742580126102306264228050094585733179253790763758640678027802379637183628339764300084745635663315211396614762728090515777015316144818289602052329116349028514967683615096960680236770765427022655459959860621550856682343830954814733210892116066354968026347834324940760560175199137630442211427408833385981863322428781991796196137480378222380056204745939368739812327501006887449283557710026879685253283214568217552011496450607378660215882473986530610168888615615499835925747533981724749059784068566119703495776539558616700555369155413528194268433526534632741906024695069849346492595943232186107433832925585183654490607617211084710999847049216247001185710217061334441943220572982983212327150155659819607856598581437617102928378794575497308733137574890763313257693000904044740162918932615451821507633838554615650319990150460007881807047664992623950727532689142742912054190807015759614224831733205750819505189924150842687966651293688584001448946090239436890556109549729197659698137020745419369705237522210725964198477634975923550815941532238377581071356527460409225986716339717692976036703361913572125798095063157449334437753815054531394879402167492152688600227620575648758093689356630748682700382849431603463753084395987921157448777323320033327270644005548473524242592718039087897597935127858851589303658608865424653206247308007323010734281672128778821750993224646634963722833036835127123800592935886670604712499958653225364689142840296701966480290941569072301808256593386966884614484935799980092253992073474448426314038958757768630835164027024485346266321270230165102556798554954882522300277978871797977166863970640533283520359938132096423542925421079853146582403537221282080167271815117259055364948484577084986982376257649292914080253336922110441115529541947360758739780443421013761032737096241819298050432966169303012481140671804756950104122777900426976613931810353555498297730574283806205201047781541717922353100129279518992323964852510712481295213174741214185836251630730396931703838454160056890626011277833135420308710275833540135352888611273620100031009028970981860930720325670355910165156620792934709001413696914075009693784530303003211349170799949443243010930348664627370060522455426523169940350624680724943621368377218340388860744458725760653192978880446254804678469262842678680927430619587081220611168818566970523821416134834018433788528215808984530441042844088380298601387820592587256397240452195372937308840085201110941409494756305413033823946349980102979521497817120077225315716420544141818667230398073056390739739924841152684444699244182281688547373636266043695349880461544481528159999193754687366316695767853908763376805705741747435247396738977140491592602451127137341220542926581741659955839866163012618849464889882175210708320017491936878846696736126787340206294267665283287107652717235797454971267137160563964239815186724611100527909131985386443682273854260176144538031405549126705308993557406684501959114121211007476853179469514283094550503928888436861164091387226579018299910031811716311094363104797223535384660374090497766960921836939605427019871905794711815603423822340910867156447609586866293120417050250157936024812769890513300493167987218777452263475539157570829149356588601448127303247067578507099527002650033561594626860777569867988004535060615861978312423356522257143593750037205222339543770656045182935696907182881926770699606965146476509512868364424736282537141221816086677337482483791068949581811101007940870306447672623386661503949325401542661281177262762322702594909873489935891766167202117495526961248226835412455513669442675031013165773160555673363462246440623713618137153819889227637713494203001368228323374742371128112943790594592092483757191050115640689790130680943239062814486115521473901376194683221609141275269784726713123811419742084124986543222680653259148379085529774918355787564324996806268011374806310237604351638482762283968037071724109569700310381416104294000513858857958517176707121972431818010112074321135802223257741605280011248393632828354841848750017085174820812149553418212880442318209629273384817115216551055441337102442988209688804866146570866931915349205939858037609148272992080212477648513597991278695325416640683479847132738682239415938535322984011501058258998523059314171630627325555556113907722427005496158646183686349745693863466522177172156559493549802096956360484021849927795145920567023267050339400356992724166810856082246192559512633181979209530633012565796980768020837771599027652824796242095848068424055366653070832806093505934085056199947019248079950122038630204746044116884382219573757573265229554451044337557120506140217251336096405327403384920075954951893680984302422995458055192680002184219700243404004145811818068660453393253572264335153000300725781204376955860809800473675270591383219511022200643158566677432546574372871062235938776576092572278871054682029494485641974946966051344832661608229937099054483073714423919441355307868670566202626004990367438810783190545373407088625540156778777803552558378151193413987536171407519650975892291873768874890765143694875717525085454517377284343637116313020872873609923186716217705913412590456875590135495789197384263412705645249834423929506024013360314133866401124023029596366019585913784931109391229880745063372852416450594575347015479037956516309970279923260177044016167557483582085762499572483058285007561674945133035480724390627615505446306903612984570567364030738008961705155001568577633936558312276310184840891656801210608532595864321243310550118421237119126152214745708259863873942222279036273192379199151034420517893951342843355760637129495938926015446862603894508457490982504322061393306041824995354323529942667874245030963049922476249115178094314120516383786812794833250522225452783688620841878359258584342196657134644850438547625269570666409187605655337287529938764548343213390580273584541122324706736032140829997045137775008562735922302104150704084728121505839800237469147241045085659375514826507403201975712624697804920559367275507876318404414450718383496838158040172164648261945464218962675661941358034000730425054493202562227794972952745014942166596130059237982555179424232582984567383769141298579833087186202582530602218533027192093583417451270104959514401869069676997444303910812377018389169766336737234152944780178267140862472232649215949266475147773495387039872799065640352401065578187340123519754573556331435950995857626288377341647448215563265451781111975430220371977321964990093091433213305850667301247983415468094077322580080592108379995181919984992021592103277618533448068485719436389739621804531534355096260758618687079948590400917512421739879527726127853191523588085238541043107648607878816432485532693162124952948900798779400187847753917598025212490713506805616625653645991888554587219354203737912815278752359527789135498245412507867298626896293713964679615095162205162125327905563936521408585561719543652811423310735828571322138633787285678709058613858652078958476412022035278047341851874981957232544677945397909066041889282584851754274021278898925534226048836925755446669757296537013947470509397655937199709251291752805359846888776277719066857683135253159555436470040193080634656853879468613658981782471047594790480965836760939288199277025960366010974170144109253312146927856449725338073914097979177070830748661745176990500501209918752171817024512411444655989633576662721347140446881325386362672944734416638030172058289234601782155277432305483021661227382112151414248518668427009254623559042250294234379877012458535951253461945958654417397855055098353422104899680343864537053276613165830914006676258229100197775071183421333778496185579931552792117173885672266356733386040545372365892408986107836158753644637960246339895618167685391511073186382891709890170195804319590885824270450780567724720491636083273454209985792343758995239805784593210095560780196196436162691778699184419531209816821784883093135617154677952676267209785046483606876364039631144321365545412519132077554857502270001821187072643212733300759138445819034670735846265935557755140627860924294775820136310851024205574826804384985611135042652042976079252345637971848461316535037237181526822358583348388235821877542086124544730250993453311794986909170949362866323914484736713013160405295810304781312278067572866519226061170154786997875094016288340928216014459382582544373123510574653656834855435549988478363707015227856302084174445366069155624174395521957488004144956733906917946405461151628807088732016033252107980213300132926064322054316252758652943980516257922377617351239463014810464941907743612395275186089379131919664031056012460410205096123510920631145658632558079030297947152485294758482535003216249101313272714901721316362069969368957151364587582051368802400629822950576192176935843725755760328654100341469959623050692038358155379562605335195438377629838628237621526369436977021977983097314219852882786072675161165621734315645930922614593911332529169256114120890838975374644881572848823626816798064112541166938841237297299028985084235720126784630998268902853545254748107410215888567916841669798940980370503076289819548442170098475571277321818043723783433016716969047660715212405140038998906608045780719112074518179749736874066463331206243511935683764143191888731275636649977157587758956190543766276761114968544822510513246609045241693200305318479953376208850742238179641854864414932800529320235069848523804756097051243736870989421454964983146865934095642114895143717203338334613151633603644626320848804881964281397061225448039763392113143459264047027046590229879337645963714187357942731255464357381159017877291395530435977350007576043273252477405355467213473865975500578915536355097867137473846401354861473082355837316456339334848623611416915040596429806527664459580681948597518660934167047030252573132483185356278662297134013971334812831618312645975284456520514109921483000937885217838048638134387821390269690095950951851660335136042480856966289865425594882653964539841600690975082997463762675346056570899573518033743792419897182590558763151855830511066135172465869747034390392213793349518408076181535248055555637950179426661001062622765863895676314750949491673861314698752627263521682695399544001812841706433519893400845521312583171702073861998671604274091156337682194209201621311877309933283199403706102994726125115000173449618073200932575088688079379954999796173529671186337484511878693517480505501670353072061999520760559741145711893719689209396278513095916637566954124858573928992634566734225816034052297450227430110214199556056553525018103983247618516117990512149792279898209661691669747834363765309903273187442534375998681553250575839812172220742773692425949232132434322900500120154586742156747070688331919416076875792218401354999457397912368299954543723481800953693996425441870698270585739256521508800349511611844090084423089738938985097709930347584176631744896404224528379949351983482206091037111196943794281588547327260998967331704202408456813897060166459755542504189395929165900597409941286826389509289185148137818512858180766886916192762530389612504215243492347710676919779411108704518629249237342619369471902198085534001661816210385730625406960430741633556849146549482075736705420037354825568086399035767121064260607242026680704594183964272310491754953012233807887961336096929865141122467914124918468771873196209336424942632759484716041030078649363176729051521130876231856255976986967091409293437226519777659646572975335502113317108840905195765305174075096866580506272608479525106522485187618617485897557864802894424769840827059058923044846894243381038649019558656282512138539478642322486192165640467958314874047612824821758209305692352488949888412536444856289915649563895613714638331288002752883574169866142993019848581009703902759681422364569922471582046455829052113888101891358537031050113893547182004296885719158612534483548629314435453422084810871677725860186962054300907240954141439329558544321307616745413985576568653891098378388746251642807682009157124861240754276780871287972927323083766169567603323308287787860025899147938142060508587384686717365133082830875381259143758057302329318627083338040913206316014149074122904880385522049744026902228082988190054761380856831179902420847018356124986183791321184694275757261027213163045182743452132486136270953045727563509651121185729854757620408956520472727053966429902203305319324914790729332388231331389926569901645413018713403037465077443536055992200613031565955177679299965485924348511158684536237584594450524411889675198277151486632999938639170105084174474478005627680112471369113787077420566177000134663797161539894648048866212932035437966460301145587054196050838555912606518140585257949285525460731397391903345948839650392033159498791026958017419690978119405184767631416035289058022037572484223675822348752742461156170239624903818740172026299162043251867040843442074550369773826104947837817737723509368471009193891454181931634039488902307529000059577320601977023015223564384847890424180757896207489021615626709698360451470974233645623677753740062281434871618931194876148205891103029268359752317663077558246850629043293280611632343450584416349597694353570101921485712478580282788335692912498786362658712634522606407888651334876607299694425314842512322511378983985177975386701841545504589039092548225275390049186371309731392146901642208663713589559238718589931872528828312617531271726805673829858192507261157927486554593453917647749790998629318199050880947581557410718928488196343703212019741331069621239336991439078220891300419585547518953545097191547969387964158979316104007684169604765033586221307488353604738314726868839480989408523606809135598497506212749657963135485146604084030168343353271132987665484267066067223478386401469996772595083915195844280049154603088005358059502877377194443141462885781526839090251651737101499155644372203673161540797424985041762679248199186930914102536349809237988536379397801670523245514684619933293920437663603241085971622299654902160709591109811373614385082300752462109143875061029289930921618279621088377515112015941307809266315741535094358752054644468101366628524799363076539617403698121951704651928186781497827182489967627906871607985221519162945439362552612132270026093338817252646795184126609826802638785763192072250407532893522391819862717607125390638537667379979371377291665571189705807161740344252295838709562824845962033753962041359246787596852569121246688732951437951343152678482713813345374536200631455050261487976758082802892827399759500191155719937563102676434937111128852983259619607349484109239866521397270377597026712620745752713948756805908644764898485809679245235448122331298618732955660823342938815538315579375251886643875474118447276802860791817035789992383705264983225065776982757952391381194198281752756671657989921628135987950009796887298793740439126676619062801802462480382447616295808521398981113857783054341478852623499675312560839876961022009946100391698747662422780260975304224127249243425249259882801130708510482936798949291631827515993779390265818637234795742912482809870348317512549678817375250106486290619918962251505133501348375301861430251812263209689275369645700347918951057295274180859431568699991442556307369469965627284583615385905602984178817493403294688386530966560196210395996179235205783838933784838582943715794218150766780436396026604575367613760111651833884915913828671666790715608187134192853481277626187656681882309059094989679503348887939017521511899360101575941587519220124627456811196839884600390695342776909460948770231684757063709587309172530671466137976621183289426643010438136823592466742528628043847239462527972361569040730215468958488845226320708917088702369711388312661899613702521661125569831761242502991908283704597514630405266415697838430727994722523280937094937544697994706446192952824894956140583619469921805538886038209042700662137113558939755667424111871483714980716183815133939233043708624320702893524157346815784091376749605858055027824880091697052511118839984694443482116441461152975327731833292749028138368320615187620017311592539663619046610872084105841231440248698668997126396736815330787513571749459780325566873281931870875385480731980070096214070242836107609276284881835052268695815290057736093847481000503727922336448707968458386065972388454060911742638763945531776187455170896555381658004762542687839840498140117188614392723041656714402487515822472142702184462879447315651671268527414044386112098250838943572490676088701634888270253609814014377070132357163803389291006918958775585802339379405092956988732999155881254205203477690687384884629638675637304779123974837648700088450888387285634519951144441378413448296904806970890969641305805012381923965725286128086742732055787004974645956400675815165934930717225868381133091220580411430126411654798161659670881889640785209941069344700941709109591984634439763864328080456779419282480455278001602266888889252333600074124652873381834912999628291414918576459792303538844571699612325827392233205124014699886180862618863696940053790386952717859557650958839824190052071340911216654026742759055989589042134772332282443938649190527071456059569230510701492380818186617698069866522708257755844572912870596703428309006630278958939727387017826822049494235801311256933705015058537686615406144668382380886859276821743778943483274246879043515213974206144544228526074715011071436371744391536037686837196050234628257571902386207560248950492954711642958307684429627210708163383565129717697995705376007753523601194584060432766675147424637887508610858626406783088395450218958379058513284014894676722242161064222914376975936410601182188696505000675866691606618563992614541090421938813712067580883751727717232647363422917860641100325543947161096840942494754812656692662228908861894604559782290510764310554778152900758470725168793788209660750315901151022863352401963550806639527651654169355182016580301025094325271223780818780053199079780512888652661162995884986971267308498658509669109714333498400118200430774000675038984695493619544754053904244839917766175594513331455082521474555515124587997364572625858602197644977739954670739043130821224827817041739074659536623017104821383911458921100796156219560093321996419275766310433758943820105031531328107312859448543077542665811222422702359717213144218290680947724879245050968347879754200485075575314159404020022847792654217159403553040415546899903177574926405823300114823007783862616166157914914475219659682515222923427686096252393107060071424628485570650424354343619310791582695980265199328074075583830477292552712826198623487184936072340047639555190285040200712482793937427346093066220156742665758508632335924150142652716428413060571662193009102975832488176280411719885272110298056556065877323079794059228240221991694336932807453347645687317958105694800999581534319952962802116744124108052090406372339974802153676934566970515369480449847038622624338989728718682167290577357731492598391118854735358370115732292216388715313196045773054170440976086468174659408636445546612435736907627086443299343194550040474478660654699559086961516740021800139047254093735678328259181571026687562364945212217810207777177248949637120951684131669467332771438915839990507280791472150421637982434664453548908140927588995419386345931696058131063669207336078707450597670174745562924507885847423593256418548980302286546643140537701928402088076746988578643010869872301759547851557312608877873860610704755065480813797883904293023533903241559419457502224731446799056788872141913441971644124435174155072534499993726682185647403477051001953664088524444028008232479286493450927133772199246142450609138087128292231466101628626221561749919780670889627087898861463998886288406690306612616508300168659142467595770830974919120409788633336177436472445853997817485676358985723273145208751746427694530328878661706052084613529499934674846757027303366634501177431100378638595535326681310914618380105509503717762753480357809451428030554719970790986030160918197276580493053598760457410308030143111712439815566158010056767675048495849055905406323175678895669763270650111029378287072199788286987278099613757523301414913220512546386241754936980180797983517618132140056675008655804628362879089024585881563166656501462744540773416480529601816235029716283391438316826729482910863678792645949947065970000803163171963835172091974518035802927229137509486736760610029796982705355070445910863679402458978473328852695243521243541800279088171183851718531387802355434072343160919474129755173926477587039042354420792040073792984470075325837978216860521400846638179493697490280329223069590700802824560071093872328153599098348125986704313950105972150517385114269495974088069767564142135276736260527056533478718086783587776409346167788142420870817645219777386464386036217957165457293554034156481855000671944526515493179357044903088411439508781538307407043653064097177323471826435470185501681554548190258973152495068735010134214207911599586266210212418984966798084634622692383348008755367967265260893180977526242221183421564754799770005825381763936029268151824661003709636871288499849540614278378543986152131423904883388995573994677524592636971875558883684971855758142230197883268497330762464487151435001841609158095326900357615157016168509708279482666397758805377625275646612771019498114868605065712376735431512186257091820224995851770894840419229008025745266140856962812380138936734754943947914087958893156607455143448452167278176260362774305267228187893267851492236626866244005578929495245397885873073049553107462490495178983381028342968228395607912228333477831876741558834953548725805396372800647311737881693698062766570971924428995103252664866891221428866216726598882081505386686708898415786039013270390162343212159419282588164306635828809728096761944617502584692136284369124203296710924530515263596669801969977453983414156962527280705595515632699453999840831233326619696736706126072348536709974369618341528639721056829985363839792691306191192327003847512620046690773883822190479568282037578776469734911424090677615019444414223591750657741726855615231865352779231131326157637088902484456052282035436741268767545872217436568446982411190331501235939122945478700206997190400627772178425413921672816568268234490818179134169259360775581014216380005325962074243231212397494842542915986323472067819885683343822067373721921894264645610873420994788790422443079185553683849693759478841639415068848928557730456071612315232807048180690507751667573071845099177679970962646677811688854789946945572482667165791890736971873338803510900689740635276077218277061770142017412362815407541530619930882865364489370100985154642722863541244906954769263820819219722066569382831727870978338837052854515662566068911546892540439465944899411914452784354419976654973175473396232622227376434667576560961504383501553505461407914810254339230146249338380094318569764678019489886928494687741430397117049610004243666647240914724867066496616468815998095181784842048664910868417349717910371128151614150612626861501622493892060621536745848843725886758056930350806125840687148089957642197122398262235284995474283942728585186323078440254049270119668631908371971002366763455900837340252749440252564035549394486854785879249806094260234987544920600618306312486945221608280156836263760999704077139306846277093849642679635438923254993192554423683618874242412158201787023408253785608725830051071189756824362702117932034354372094398277391473987833602980117681352181512509727532726447212470941163565542496693679321287214841390638893103699799960216928824975904657717206040629802565706623012488137839156624547571923468431480487048840972561108589329573999769466549335950805673535326688312899950929151453688922358844915530648140769022331498144500579997094776220981200290235124667012913290385308334857694760937606739834451018014841530235432260427957443023764311683246932969618153951208861123516329261337252453153977470307269351717736437021659084318726102935051387944284982370290681942169949607655152441570642220973192603621210371235347511685502866931556682953428137616686252519466384852286700569535945523123142489190236965639545281744225837233394929895689073441853971197743970859702809759060612586983625862496520990771736786682289228350286197862144962144283765068941177774464927878806476104855155255534413214491365977131906783899967166663781810057202995814756090806945628666425969763366987657436695758618235112387536588577113947841701110765696705115012974491234314615192003552361326756865143630777469790484591367456836378971076199972465828210346393066917067928055604828110729870592631309546757868820512676240767565169653271795035418825826024816119311089820443222998834464650611581228487921620677524096929460266876015540813370290321023332663376523097274110589759314265614880612887042168798115687625382709609588475529604646752637059648669410662442422801953229938474283039618817333978530452302062614865996866001038134252380519668049592123109565822876299216262855047475224919544209891924828634034423307731381048585244593660977725923667386713366607208604963944463636162765596678053321319289506452484348015406011738629667477315047687074807956021681278148999252072306820595235538131734462010886585106856236006413629453534322492743727353071007809945488692929248643353553636771108516082455457000863310732309487839580678980783081667515446248116624719601546952322345012339471259013377621122716866130354168605890115586380155333475245726724397691054094885673583930968781635157563771797746295114000472542783902929640930335493692357217056689055426341612135744829352069704419800899668645723968498565472881698226894881507677272075042380399670394267585769249903003243947330888970960278968645323257783600341491813275678254267504178763867397853598516978102134859822759905827588665672539013017357906867282508777410238859822539612673193037753110263315976097026998233749641143924625312888701176327258545684716303715843755338649584346164525715297344045705403964654059787406979538334712521595918926312880569892486561344897746546122744006988128270303432005901837548594766603981371142350932582765375948332353849677594194092786696931327563495617184647742284651165695687637735043056084764589146607264588453598176448477896280401372576929235516143945616843310039158687442673589282819626444276227203298743539816474719751401768824130040756555312898566217525738228303844096800774934614492607747361278401097885699778518011572199077493719067379190098386361395254435515527931370194854691871563710698241731875269299018889460429548220283956057708259049099878491465770529115605605217883788594651882352823338605347429657727588727972523579142593286186601706863227108312031782494013730757004714079853013298892504038211986440641442619359781136740540187023070827390162411365062323096994728525889711156909408204323767462360689906325162242846818894027040763285767740915219805381008357501189564745386909372187908214103346189128640307847617857493814289887605749200672481613141861320657118709824411355949231952986792112473149809384370304977092625542976540187757016257066601243284334606409928953017475817206706799819680114105860797870643716765623975270544179156207972723185346493593749247969686543705739046031686812604689220963425857810574077249879630624653785697300710985395672409809533690686202009670833558993111184650205380141935003479257870070344285812432387287886184225630490054644222199763341345707495641565011821401497791219242353857033338558436945018457208540453566556577493758173318803183359305118325253514490408837858268477165397044320126560569099249665817425608702105257797461167328051340147120506497175994965155173140979001059560306528481575014555212844865626757131502103423537042266176020367290017948212735243847399909761003464298935378464908209566978836827247276762077419874660600122875092605456628953593982038910463664144382804903165276691903236106615306865566205563741396781120686146797128934914410688197907469847075253727386952936117526542698351813860586903975422191401747184720648881455431154794198366946499840725737603467781984743517137790557254053625752944779383238256786072343579760077065725408932373353829096612601462960444387187523933846908587118360882642784416705407325793973321923943836717200839958001780104175583934076682558869543718874103043124823095763895752097409832589697042392201996769178563639814211717494363128100430451624504579319331781023409116162781803136999932842763470082697224614099161684456606704312421515485396990461969755324724909284663529662117910587426254084034468790594155431109326965803704945285682813406139402723562517209416860022508745304745507757702567257273402653055936633698756062069521329490655752583259661868351091543590076294297170756081195718987179384890415030849332523408375091838992433832296168068721451262582177329593778925276412180981667111681053131763447123686377595270098340455729170717824606812296700224561585118272150642680738913999337711590185940441767709138266197110252534469631329178975131600326828616710027826336152834170276432406113060594624969273214521048347304767513678331337735698511073701946066257192719698383311870541429754886495115496763995638624663125590280912538836197231209630746458169657335999461259824152806427794274274688601547810537004700172140186799242136971663918335373718239029711342495077115641500507035611789826078018682502204550460666416820478305424081948188135732814523103345196750724946494868358212973716283972485204543815527116091843470493437453563433211787525583637191897180309251631127343214748776146027842724369337970286553581541428929302773877147331973226694489646275537568703085053849220563223885609294089997186541697945330380477031085093078923804156981077277325753288503151351661542348145898881689187751997794974818250306037127875556598472660997415287325579319367710139662125282275203824210632922242175297837224281388708843738343532624368615947379387448764509584079941668722397872465077235571805512352868059802020455389952501573412656291999688110661782208314127156299815832893769855202541334299168646068062070127175360661774892016681484733991298633200527031026517875601207537638534456820827180873774454742764342435179052737543483702663487289498506835296070162875395208051712287585150687490773048694093544308454061902974262188032885068332200412320234602715178167338891104952029999319274172591094016857581737467147460633369882842698254871864481958445385628342132549443434949432640345873536618367834976712524944177684220593861887881431187706321173358275253715364498133502209829726091019229797804996188339297283165768115289181506007288935946337222269940915067341045629959416590122427494774894110752776974217452521209176633396747119819094482437757240704308823472957265203831722657654192475974988149619084257153078344181888681489305852765686314499519650142015569944967659444129276489903595470735310061128283289474964267971882453040961264599556274899644032815223470384647492727416647142610199279207684820781973658525822442297911458741418221685431703119952971201110011860020026460818366770440584274346929969332928419479770444887726346790600998324290484609639516567467429314056265296999397256782270026667852988432082700732459959243124943363763831601230921085011247657698563056677292693245674697936870165927925608751169045964074486061879855931268601071342680770543788338584728720079084755856984509236255807299430836854954835236880565074581206387102991975855623719105468997855448326963469892342437838471022385901795025235614502208641601059679384260956618492227864398655173064299102772103322200145532735592234125587368494517119187341948571090884195584921257670750826004367586114325374487441208741605829831351488857621550078476256425348219834216100123344163380714900252499643188160007100023368342942598194761866400990467262693926564638132391917156597807006110513791667093959900949997582440693506435484184533300839829724704887693337888763491978368565609753306807769815970713838488898287908590204535830653995262568534663682046375987803424983484514460519661885684434152400880330844759026595083020080844946731997008449550954122319140828678839240463140189701574884246746847488201065646668490578282102810265451036967799448673520713044733107993280950318157199663481219654773302840209470003144071474806307844509250370735877948784131981515470726555821784445317891731361723197807373814273669122269343647987956299622252784308949987650162664066499631055704590462295752455295967030470898212479522598128128455691067748367184442992159801865645194597727996800894061218314344069935915917729837830834922953885808521069017240403065492547712908528666177262608127906402543428600264220421730159738977072072910724128735044671820559453479146032884531203457271064670664845329260801248418124165828833338608385028757352560996545851494252201063625286508592862919827355685254632460148268193630582459655847152379102307230852853287411054229589974121642057688701583959724956640286035608178290030061716691649943995821220294363874624894788018319797630852430290675941354179460037233437480148953324853713708754892500837192236886221832298526760715191511298039886644519791250320351971093526815383213061898449958100172730706295598024878071568465741768525431065665835660588301840467710120728844282289044406834261663252714859615058080633263468365457933869953277215637502034165323910385816901867368899758840732991202210778796302430618984330810962801491869285633063837768785180766380603118247188407364560689481033215649173196766313752484548766074181293348777159726963415284809392894438284499578439634709822417756511575474075278085151028885901766876359448434306751774892351803178685066912615477067781864692676754183762247484251102462069148467274686417636362987776745618411723818766006913323564322972197596113318395961792297140049626827029926225145765473013970420586399170563868030048229182296743619550104873834878390871508711753141598030290668933373673312929749822311780947616738096990459507456761706579618398325796004247123632048049330583441920720014119237027430883877635338733788977246040466157880138012473032443715479476594539812675781394938516472418631411897668096575698780706926027294738534002583486900345254128149674474791058802421986780971194059664332807594521125550721507557461570507578904340991352565976682008602717135026436705261106432877345271243394131800743168933809316763730170245988292420976581610124840167188363603519170060289774707900861521988878109293736253254274507314081881917684450558681066704427079224788583463831670323158886044622509988830897975323698163468009388643023420261264013069988111628646854707588027632044324832722241760158055788256580915313083255233888182527755073127709886160076517793075494501760957146899063386565429847192191529605266248893592007389255691621091255658715779556641615754135452233982409596315539065439125926144662229625253790935265396099500948815821820534498863251875459646200645699438995404505930848083201585448937559692035330215790642455764985748781271955412664091495332281722769444434046455839660300634801307235722669445596000918057971664355135509944517102033361408186664422452157974537158660436384479779037353292229142402209082854808982101101610925729349429058828330438332652844594057989712122191610291905319834716081466983028191280007937045290066596221319487449175163042896748039537798867722320206618271915846686415689442140081421576150332829745461500087042651981911679390010607335350689068324200866058460091187328388360485964384038392324316109418059788759372490791880104264248198741398059101774785239459618060050362176602570477065036058103014322132394211156616974119725061255271031132716905049753434687323196156616649204527057692629141557885180967560528967933445957641297108690523464174781260872589499058897856137973912674800899132684346171392506211098210164909454496864686032381248987351379634495944174244296647799113908348653794532858589839341771114982311571305362269976603687965121714221586597793871114086001167833819237630773929473454332616161993773804499046172126639365365270028339339021090594053062605664510918121785750604027374660899490641043271679357432463937049808160501845467991746138173835420305852104611678087747912021298813197062700771038556206071909816222290703494281867706119843238129558645971947661577980153614185853116637744450506107517505561953844615904992185928702000434030249229191651011177810787392826370643612456021599395557780603222884845862755130982022087118907590052828308363305759672599579040082518402030288839933603106419090305222377904947141341014848000680274311763954457205785654235537674906941114153747929108012239800732458941669904949030672273889377082354194005517513832282336039763748284915354504911588199115022936245589633019695060499176837692247233449114143681321826862959415767517257231692221228548688379658662496357511606669781559751347778578532717867191330669083188513380539793994247260367862042217153018090432823169174718463549446456065404948863096994085549340204642508239012943764014114900423247878285212505032474338922055686497248129221098831168804393451019705177843469707810355070527858226940272194133389788159108541443487048325064148980108778036134651492459412716810099815235151232574010437316583521320189818898659879101221530591913541522254746609920294476003572566722001263070198770519120344228162652696648420904837370271988096706067363334607375341621873310733256740508069024954480349813258364459843348772535839303612356385535628529401283616203310817538040264530407403734499623695778998285057842980713969335666411339231917507395193007834595205280561827398136917767611981972173163417298269548553208093340220287098725810513568410816890518005533735686407232350675744053487338042002948269998896107558343196814726630864462713700092119473180585482569289739425089515637022365367604243237168704601496348036618952864434764123745635948338348845578783118184521582520299871813986153792624432220539560646399469806064470981031096422248198923569390948473324127510258631596148863951273173887119126642200409964938874303479280707610944653519349755690245416932103101310248410394646159255961910768375929885362321453343572958808372604396573782759600387021669003762886639017040301227987684128127401881445089253268447236283864472545472828209064780817270248345555819847913409322274392864558550801330747799521615991316824632057111718599359989764343004087776181858769720265635040162075032754431529985004502686728630305578425081872652653326185383163841603426118877650093778321014317879712955147438941743694415884485349885890310324523555186472342321444137804737165705557179933234371044804149739515554306001359319105857548350363081935595587908744765529247905127452018062393791993146953471470975586153039989978271892450487420913785269348014184639881078279979544954679123997592466811373707352002503923943002289195713186974295466690414650102191447579195703839326177423672648762928452689833049084023959556165415812069372789953697343365883386202504999163661480501841968707030717912037229135577183487514406114577493482799837983909392741878035696082996070775273244894420158435218945496593499497100290703636638346655197881963616581793970658226291820998660541910790357858341687236397193519992009191057746348055441118637292982380201912859641040051240536758283798851993883243054260679670141444738822512002560301271554079409808631426594916373375807203202036021873622832848626293136451342015169639025307590639477345535215590393998024970954588986636562821728424351230637782675633451822253515797905623205701850950340702469331111961186467842638002527666990356075606863871133342372890147961615200127382449101049491022245488055785616261456837590867585648704413844784874578148691485095470170556796226160753075270584233376755923621358592427588024063260986705995360469557250916966938613573590925843931990388435013196937117236164438028771691883237976358627843971356356939880530172488293232320738717387471355582413142606102562564823475082085134561698877890010170479398158414854242858525221237417325087643230750148862890058451110199003955124841962734443738630142211599926815387138537496484041647500482656190560831601484441816024975942934177519514648747506268262408866213890863353940204500112871681145035869778128167115048172704080681480413039106119411150384767181708568602004232020223895542630030471055105887754714243427144322323458843265084128689473419638387907016962347747495113048274066497738384736768161079698600444367248612201386077193597086536247521726250471864543311079980111989436031777994788262160792565650746592263321028819955937917467751989169206588267467551400236659993544692494819634228760621776572804959182916351577034021666955216660601758944921517742235488566804658207181157209405398457432728124427895101895997552676351888362835534974295813007449559779150677085943260095243631865328109545702714019069062674639991447341454053161772949544540518124829718047007477278738711462505498716872510776532880431179945593391426659136504092550914228984154847124506155931316242484390872369719977567639009635284663592959246696216361213252989922426708034419998882659766194835925078813169979067149017072892151810507190532702347514817654157291014390057660176439464887475826184608608192991779428837838930878061741221136459001160028506262535799649747667729514955824186037594547670846855974307134696383389900622325573527796821685578641130326086930579399530088340964676308678817163441086860719910733832346605163300423165909386404691108903081857818654523650220395158319023098493536816320388139539189794053929013770065719972982243370663625513489245689831676680990077160120032677879993412300286619039176667253268115282010809385337242439168712240513773818027483105292843086330104786475195126485022521943450168790294447928131354436693528119727448601440679284713322885906393285195931756813259741076238804573279464432909262508971874639278525871512800140906884577008578412948708853938999208442298886533475357191692601589422352335286327378672151842168960431311241408756461055162763507872283957648131775903226152134651225979015313684681604806796451928949131811206505038638597907095868893950754038397864410054330680905568850800069577597479524152676527119571454761573362194812295622142933055147837598450845041604220340506336022369754611484640703106082723033355016469207691875238093290282485002593795208073952023921530318057501878292938202939327426745227993097608462851677457891439699557204688898791904963685551580345353013976632760666077981977868904981298747577081550063609919815751031516382260841913159369500575724673206167841108535665714132916247333858013725263771120969940677102899118881431579962829610033378533050915560367570212711998107184257200532703496621857082276498610256700374669037709337459438473406617894795650988906047411318515180402547700708815948668801111891330518691642126945114635318575868762566828762853870020260126303009810373363696861915105977400650782908029170444284806956246827132801122430972609140759465061921363531099290003339867042336996231544761588210227809732613526654127852057033841181910320984244015382357706076441594985516488523149968485124951026921685315362841810775981039212636432047175899518818241770175884400035958615830920509887903117459628291680376587135910403093482257208268105279846164490755462521218904377621785181020892145067634587270877516671821021190816239882857745245713722384742592624227309084280843470227339302580752854222435191211167595338103819541330115897051555207907342295011881920553572232527736342593398149393054018609791807351723516823506284832853461153617041454865579433996939429703766246190481289755316342980116932904977507686625151047201528745336534203246311305969236746698003579121066641929573416560139917590564842878753905759784787288019128939366274221790072282080939076591376389791174921127398940054572911955542232515250462477578922883775322854041805998052657651608345393348367625637102784488292114707178259368188477731159173039324047009400316202711019423788132613819914870435752367196853934104875768623406353593909793346106319899380268951362324433713645322193997358227541881531658874213971818544178166463134483459855207491111425338790029376544945302351351555223256306568518116427283906728241584195065155419649103198369213152322597243945946020687201707962669967883486661202200001195643588044370480607641064776500263338581337463046463948352740781860722113199259697134696682196094018961472898353122313578800280193708977175023809174925324768670380335355678961955541640193062684887784014279908894970223039603236048238818662307703527306399418928865149940594131149716391495375229725966386839282246592195881253539303397266176155345683629861669015575986963675410568844750276929016284588546378442169395803506992088379740195941128161204137521977311298003097093898436905504535889999391121016617440896819325659427422707145964527776786932658183354205352687532765603639469283438415778967214311193329803362400648582235613875853940134653483643683069833502916100667884444062595119152192939043020082022248070636432368316511919149792771632853564504677902374119388599378736082706652288196279369207296503619969483072293248115476105316624005802047766721661550037650077494785117625616668119542890176697812037969449894288002594394714665445970933132304120481047511816842448169875193762918295945215583645092323836866988071982711159071646079299052461524429477261328097344901837906334406998149984133643612352734756421882358278814872069984004880706555062550466660590542099902393615850896946633336768623868330578329274588704450771697130180325345545526723673434131893755989248849931667644172150541971305944874280357405181217161564709003223849330863307828392307960745924042047066859074673519042849847985652690283754403485086129901282746530141297514881398009167037348012832920521146221851575342536536450183803934211593983565175306794689253555793839039629568515757457169544348619382552156042764988360870246943448041788734966491528645384346844296814314123007066986044178906957113990659285193471998725654343519515571107543266396524338682714038121618515384397709527363883264958182369536340368538601737947798187217958672639475943110854889493724130623989214013679760916485488749715973960734695568518211264239260294935888251367031634070760564347830057130107945647682405892487280519961389152883561948888680567861269197526869001317069378871026342698833986535323210494788406772507579285021670051106042422159017188437593312600394995068590070371651698926594596292397385109264150153017216180632518001791618101425233120576637705733477690273612453201673007047260145945621773301225273391950541014928129454904844705937134057645206467631634114606446932980158370770172058619266111301023590858010097460367543342650936087091296187947125768797703287928508134180380546326892555742948811629262699990516395503715063739334674963900079757025452690343589301088962852462119858261390332013248398078256864693851736212494162958129769061317123988234974083678757754122742763945793648677249051963175710597039045055363232067324306140566523479402434779374438569388754591617343862085022440290650430585814889957145249901255603743118915457259497529492019913703691724206196550675374190644200461729394010282969659172114060680775039187885633869471552295940717504185177075312390007952772412616513289122270411790740608698111144121024313596884637184291817585493218404122247247466136443942759025170129932049083852188643790119111848788362804743906603776267862148632381279120896000952499686563864542623584834508258054994548066072512557225942755637556839063312374476243459132193147234702713901036796154088401444313705511098519685660224041403864989898649882022710611880270391922368661685777737559899960921065505449056945517707234427124428426670577786686363070076090690166394830625298037470567550070182927695193962786997853751401185774177362748364041069797894687501740455610278959944078552418554723589581376695708637397421911553316403326546088552618287582471172977757308123549235070993464491890656596899718693725846540958208914321539008570567095593590826888958869068027860962183456041033626741669623580376503017761866447756011670479374848838562344367694694390765355733045132758193640584361318304180771984286999946322255888702852818588694491407678484033091346514511521129159704012329280701647691715865620515558223816610733214801009001917391017611152624994851406569877137155292379049820634320061492132456545825114438711887649901193437099643525876215241797412943479617547575061361769787919503703432224271834243184444279606611721734779446955408726266611533112901524150399366995923844993350923307289604779686340087448540409159670839994391141397243745236734535462424698647915018669428770974600231143071692502805392949657909231526687385953663209409285459208171753799718359369304296628752518776029749097539309390926775357680444910044056384388831040209705012574698767367385502607055818343997248455511331274795251418682259412720568753601662017169775207031258621331483734704003213602233521312623992194477593234577645421690564472384507866404105017385609202092550011940629731116699806210928411540593643864809938130900697322020073599235155566139917937084953471051298317236216211164948451148861997534002465215536330915032928518242968443934740812328902052185682922234802922540679739340155030535754376718495986166518475089221625339074375869002601495608305082158311572293661223753253257940772075992408608530120039064534966638766190435667646383209641843750985190696031218117622459436937210688597161205498412381116816978053842634126965839934011285236224125601189609953330743206277464679282781435899093962684864627288055798689175693641069653889046861765105521739304319807562710652181160606675297687627493690998957161613230023667042486466360809966287071743563341622530344013062659298404953125416105956900329435945199727127507125596899834807747213367073932702176510308839008529239425195100286650331749274722026069217647406628207947919615187476823641039879389560002571706276303769586273921727828203327672480418598077689918412229255571347923722930619993593426434777408280115537824575398702876032353504823910961685488860276970100370269493393145861985564410038978923329474266712287707749650182311112835680729587320961602379481526076500196783721899815152992008917162494776304978686303814761935808673079218336002805577517893168199657629171085925622349973645431874925311274129823661839009879402721541429451921743372134736618475207371742635051978097863782147994140009838601838458063099433363130257260252282573420538876033837048610645581008495614498414610167190182154479894168194065137376140770583203311937660298455275710167181700351740621244993749268064194555577066618681468404458869557516952987411157796052229449113729693007831899313231439800757601485985679253699472839031149730888348732752483856621021564043300377195676519510594042781365222709732279383897501734772282376657537251336035026641982157394937185390592323578402024980183378125845054418528678368171801686284354023062205419146818932210167313407186996254983804211415738291595844144352528716331117111608635173398172992248653034947637654715160308119854205974993038442093196951308522862856286409309536161235609097501529609062762131140714344297605546754930681235821263916663820205608069565782067080910497344199188292008666692112047260898330894044543739147505270463057846205636091577156731205874957696382927172944151699449929287920621659002880284794776218353621072045383152801165967620351892824779667707427912586132682479564564832241697537531498030642424122525053097607444296153118156356784358650836401107306252074579086866842209762695757049121229884580333076614843596259846616004088000066010858205182825001406698832647350696690860420279369983755381013041242629232789099912463929589761316099876562184243238233403907296256574332877888563193757439750733342621509574903589542875100519118812840593055209710450826278698355061723187304460468666621251536279945064651386225625313934931194435579947326080915927940505464444533648240712815711389040761266061881724685482195917341795811940580338468877431213241666002287026141739457453113400757409150629328175731891741758820029627727636846858051014918636824648031431014486964070452194001325911079741717190687578334601125969395595495837504031698098031831846775928098274465941316205903857196953638384826675397707932031215305914186729506315650633951306923617587837925178121109287609105500743677191277667433322560388357621355216984165760116475548498800073553568197538235809747050491352263018331720100405231305159588993446048986788765975430973328214577947863479429018933030351970464958003296618957466541054214408323203976237040451145802472337342191498303300725381451039920130962488896182947211270274493720337594001839030350864184938463658725792905781589563686096252616124851418333734576073899598603790748588698121481350825998409581075892490156177965678485604548394566951763614047273346279999627351670439132368400584901245613535909615524159917407015743393354718930037169358532412550406333040630463262345831437427679138374760517079304654066816638568378243295085488233318794942777936312352133702329525860974167766320501458765581800305267577264219182628846442053208286346890939537142303226674183005793341870245892801334492395658762913843690091808082237061766842742713814616140773159955882766925101508286990793772334618777306187317241813603945150851091214356193598798369514189613970880060882030744452958449600473556570093888598957375407519894129718697484264246951213151937468718383882070550729169113398050733061773845313786016416206685687136038246951231308821868912908305022742799652445790074249610131512951450877665695145469763081808795984562997764643982101988087501856491652646522781657917853709159064007118461062286136314437744694645091975170787394353405640670533433834854032646348061273279186248255917208053573131544258201090824351829287907866682573342424736642119704875545629784675971558579656778463489124881878035095005519137428991256729531872959904138256834410539751339593196986894962334776417795895945564689599473372221924614106958576956224658046294021056950804869210282993083486525609616119264806775078545010329371529931072353587618969314713498707800370931689859943022170734797106338890078965299500370790342074561350579647561365467847029651105179100432479681804913819555331976622204073121519776601203544518203329477497835104799742175213574947231116115129045944121963892145606077612996688653126023644959745458783285661553145658178353155089310267367603045590372465597001834857134084760971262383274975487743550631822202863654450843205345039564793459967079766188535617553130295520140894756313578264959894272596216397527976000975394357638621048001005574918273279076014920915309949922145391236759807086415510688538138448779470922311224568777948749699005580644046473043729015893166091188660769671404919275493933075886183851277540581294534802332611798169122788197370763149297293354993351888467250298349671724547143027492870224753419132265688442839582399496246025860943220913698919679057263401486406332562197789845909880721927767405058485986921048277083761429783256283417577045330264852703407439920546978654851886691159248331443883829130055619468414478568024563437694152985034900448432310748032837028771179131714646470964365053044446587969857996982706647678880856750186079059397475140037111468594814413887895790613305768160243798102276104203097188429159327538240503963118920336044201226491989179516318502076417116584321704711000680244306539315590604977758269346736906405747044284428752720821506197399585944804248136487067015800176386190247895301482811759343103562527924392488180719660548328981508331331355564706459747620010710412387389730916867594654192319534145212636052302208861493309150828651558386405004787068606366108400696973606949178766580508635267992374167080356448644702730017212174935048353908764143496623493947803911959532285352737089435492326862933927111396668144218205282415462168025311511327784060616273613942370574421910090411341788577806987184450573562930204452356963496487236354382824339512904499963346680977291616134393078684815673666005759300080416671784326944073785231157674255761832129375614586412775819986616643491493275149302123370507829908721979487490186081179182142382072185107847210435826329190112641777756431455256246721906420500556553041942387221674160636748042165982194637918347752003510046782049912835147575762431227255839078374679592188021923694230209138898109391795735519800144633618782464743438872954239880698953781126666315413317752196053854420979686929724782585743178684732033457177896904368205783096899130966541155348430553471660959805518144230326953162285581725846087128777602438070497101874454224863459019950920908628413258315427932848267028774459653904599113069447363060480915453151118368325488157713527043562046055092496149578223343930094842505501622287894489441415988032265444456557343204471733514109228642206766208708192109294495023460342329973094709640838556441798549575248042171654348837737782873222135773726528329904946105997715416985279830957747900896898521427034216314447516907927090650326367895923391066281667748286575768461711682859581480750728244698903437678858068051268259729243989573954299111630817839440302632513606315857680706498648499855103569798845678990157229507905071217307245921333358518449914604355450399658179356422924784835893103763327717970163364688109074983685488151979321606249853099133111835627194042365944512700055983250948448098307079536837388134303540281535084453915198816033268668469797777137322828263780427417583247785478686877193112849930611918470907944100058433463546531404296440882815503555716136266477449061546249586058130506341780595297145800110462151266296502319531959258264022978187239512892126148594109304814616659247842988480210972329550360196789621334713274866486796213259905553521397617182605724627717827516982547072738184709360668078280695668491742624945295896062502824293328331467780940627866694568619962066973939285682527068771356644506105415267824026530776815694102901101505272036573051467373893893282446924897949873795665152586920654442357807793474803577224530987171824581741988033303367884364736931646614469806573464473293509659872448749526460660762479747858737425748523689964861485207724484193282740632619933759360372680244069638079412604023796968880357461815973201228218817505338407681336473261000352431272824662180557641240827355343762811543912843290356022898371297285921611116024455541793036879674703660937621211109042249537763893714741659362040816117249475961497878015516304994762071992812291006213437697120489360052480781650409099652080300732253374724987580947899590689659985511110988755237725602434470067025092700718514859606813773625020045366077449668823394022033190075858485593578707087654777763043670543899301180742855322255005847300181696790990335641137448276951102988934480840531479268192697497245705672186923677718789287338482993358542527819995642095634748411828905038737421354483552442767285345998650653382112293288297780049150941654385245540980561925588049401823506084502988039474612992626267868967136973938659681569055226102456401031585120083813182117598936459431329203109447198411398276352746056062791788087115940445143438062051807254370089385088596385895854996149237839805587930400761053395511483873045192542058327727936533265046119130555729396384751444477903359601383257448307728666763331556875929233800590623118983392679008704578429942443118255674758952387802635722743573263330554841014620232264843287882477049673471800648257275571910004602816180988830893754763147243939915463418290470189284306002852462355662751930628195068071740667991458838737241375614700269202094787119633022947016978627597070856268922770231466458793270755917401769359825757294853557787573016112678884776079074417413043126548499777461112245148051565371735824805119791779025115851478665202052413652910654154086698900163105133100066456390609215510891402934983216023581869157550161951332613437847448440735064687074799314548851325998963088100124176727047545443336903759030812943176994863462935702052066711016772570866792242592886373411398978358749016110655202437561316820880898145861767014571492841009062917610652502329561426333167767682367944547513885806701161784997930641900167574038176433782937532922999433226083817600972194499005100539780696238175160494193130223212072600402033786205723343070954312244915056798815113881369383973544010904222864802069320273913474434862511806331149354513728883977692371726995093368433949622192564012807390204983288933796039352475041154100758993847557611900889871532259206770869864715360221085769356760592265967997421493632420195819587649182823099458424769857994707236233297393005479593048660769808228607935768532651639105757170592058687531214713076727539337747213072809912726967794443381566902750431532106131573932223678695768072720396084509833678539483092436773072598279406079906866637474629604074585529054983458604873797008148331796854694610375668728893608913329516100406105013069196199312337636576040818199752743380864738685625886506503185008876424315141486883577706408572810723269309943489392347339785448253066589453404100203265206032133222387914182845586277937698394813949022538843861929733059243578693857834196307410044140691809037128690588418049725951849222798625245382098030443792731924419435801642320204576959946211620588027098951267702429195968695802746079730964924194936019920441525806716451401499773719512794687882280281299941858425504175687168498548061354368977805160726610728972034591805399455522705093929756726536436040578562281034874015413155597489457683961458695452792409258083506909007116975997497251707601887454399182401735330827769343059252056956211849014633460861636049675512519586899782023495411281321801992911516959664037768364758967651453805621245847640925126122834681748126500583201935603291852721511984218391333146740514953335421920401877053489370142859282007519274491649950305246471518098722884666634637758003183515035597548878174237196686698467172944714173374042947293521034737353375604113119129394611168670179988835619791678712689846936319337573947565533618214805762470945913492129395142355993352620510680858837317965310884566716820717286943221408026708446963037374261453701618737877075110890398629566720784763767969152308961581603680600343831511130025391821500666103491316853212539473828403486337423629665448244477129716795329556397863495772807764773195356110366130842054375275470777924727589640730640427842484241708996782541321169656296648098159699891330146350457698160180809126035058849358270920822023673754164772203138127312261060406538141700630963484790034616031256401628491414179191344985061419934037775730860926919023392552373171733689090667222041361943624199042788622312667989654166329070606078794891652192329831314330458621599712846106455134665470672433673422682444736144629189745914470733576694744520181174540684445820828779048314424998652179582353921168100749764603838171915734920418691956763308151138512989518221440321237759755345153752465804633550050224578431010400616726862781507650336778867685353717784384548562241635628248514679171728708275522365273527248816687917204700576449732094844505016393257195247725780129431862704046614335223677867686042890543158365252593512860004299547382158631023183883691860464988907610253718213040573938271192638516897861957617898211454013945360627376665932244320255223408865524923162593627308382454764971226915033494965398599183962859784389978237092051263007630032095923757117894107732010476307918299954009394843345368926621901301796036842129217386219604793193321004562754302502420217392335738880643458077231547025718349391405594265352611390137601330361334082789441943806893840320914589887094252131480630781735706473772808263608548165764746538628222052647207453397590880534829617739432029556164638240624781815470827319392940675674951885062018087288236555657546543569486528390003134319165730246361214953912232920569063430722559733007422262750509397632585528463770692136769596987539609674536592315266218535799574160324587545260218549422754533890436048618879126807732897122556017234455855795127255793609826654728647514457731916523543786591734046436168762415081623829958996904058343974562235833427610938482858387377318689280442874690463346338887030407687826423166560969960029791816899686613636630694025567170947927380714898153561247486041671140582236592749245881099651204094633727591355235144284941341108736030041398801744551465409992452459230871268587225009371896977035159655112482239936482055645660434257648954644187399868003891261426961142404087682512615703738393390183505986984010959850028427956848690865597712025831790219279536075654678081409464599614861628893144107306709795313318196134480066279544228421933182676587411441569910744002648126736306011684806241358971804283467626101625941211987470180320842650461434263787762135411650444123235890404998813484385875386230739705333124907184951788725100078863914801976380098430329064092629469219426423544401656771240733710748775022378462855262358369286585975570778290494003783513328755611574678486971501348545147328136333079933266727237096932995097480856860931801874899563242802661167509111245519297818782184919022682331674486772348455312827943318792566370911053969240082647629515078898978070668327912887096280158031859901593238535597415617899506852364099919945360143682913329372694077933613489878279845648695094500391165719407011209690681927612571452144673308926691424318150031506738658684752193951926357935189711046985486319924568976568364986928478259384027994588034269402040776866386987917872946737090684308818161101305959901696004778627054816394928877493148976690298401733073018833772011993763378158709256965480197289947706380591264769096477390412741362954555322548354690480285124982015963052108668318228698867121658146704660363903280834272706166007911398303084563721766704030551187510612673179723363235027958637587449062625212096624131529485092150384470005826497715684072586124237496520532688853044809459749415141408068841891186705892465252919278295578024017336826766714367614181941684997365111604246899160344221174947384274814434141262613315384329225218857993463028927120274562399550338242239742880608744027811278109449329539588147567563926673360522105153398793792626682025176167652123206427680423414640247043069591383280669553345512542435761009908637348821121352963144111320236556128017824009580032898438003259341311077674532949473885291251673933292086296212047376303045868094598554447513840819719551887288528583463676664342026434440109151349915024217542931035560212571994407050675330653867931536583779542371552316857732685470253351040921818517787941254549008356474720506468354375021165914835254109206544493652034346442269896999354329284019308817616031759822435746027990310001520363810925900042438441448243779047838329397823115082331938911075761327516512526326359490938165939611203339835190055585945229208941099698952329161063766116723678280581669364086643528873482648873604153541489896425462489351148565150754691867545259612413603890618215779990823176214909856644519517367034738283106437389333250150181822067009492513897048526622792040977066077762019226241622754338193492610703201539506950250382358377516893388223172782545984812661988199064139010811240481903088533154079381714641223005263366300329378079481506081297381208658770939050597600237604490850890160271362747457989137301038040235518526232091521624580302875988364088483726792880054963193293783413122656527595548178284346497940488257176051161151131974889355063601662416105901410553195805016537161912305464029857852691867638231532040191910285446948145502473159803934982784754916212059445757247114601385382309089174397975587184680159207201044460114992767920389855059791198838003947174237010721023532406154813426667926142667649249309756001708040299805614658467605469495121791769812999121380627157858492702841997210306381800182630018934152113826598049393365910454707587582749601917038891579681791146627455945812204235019247819031979924027038300069415651009031485632358122984939548780983549170270403027430488564608419367919192890335658727613568425279648000735497332295529412542127123903758027633717363482995124511435453507813436034773089557602032546067686207179416084039275451606499343730730303264145217252029153063100278071124567725544815069450193595226306955541466615609548307937194811526726170905506063512216593430025684664116145323507370179134587422362689500865733782825782916163735418980843962580291990737811693087427926127848896593128589920479562405612274010134956179534429894676884338575411508925285361792703287489450191813689650000420716173747177961068029464557409314604635369606340008045531545131441744685022157017463159943811067115661648637605625206402369682291861038724252479184390450279272261732272064034474844636367349444668502310256373547198869922299625898953723275502903640936038553912953212276304043758134632967556295296865955004112374281270212393526258116697471850961943784550649755370305922809571264770544654917146765015564267821801675806753564850055277941123318093072808592628783135185143536604506150092293352169138769035477653755255283243903409091237609690500741579452584328836048496209205659635474742157708047862231129637081177762834995145497193836185207005615268692885854253909025731400612536765506692963569193931453895235935385077022452613106510840752005925118312221714619162370398770043500005012943977614374414991802791038855881559675502802094185805495325806356548001942003164830601257512645821584165677168782198530723880107647375589011541600877039164072161550350852059728321453840523220851642459331865928361561449000537637374310895027188434587695655218712432989318814227359415439508467651312881029809299076089416403470414262387231594513189576729971864890534298393084640296077336116951702300251802842505016400260388276293893248864004638963394882156186643194333520164607452802015549738183566279120836415482782887165061523151141343808360985939965873237690770761757068767502796205604070024742725963365396428877085485457878467554757731809732836706298414063620134086472992479025384944982522321318933240765096620064421517744558384848887329570101946749660215540807513050228177720113165920766522460386949611060827119267365672361929542760185732937839389543951809014818746413082506676510248015456059899551405095649649168429017842423864057294642921376699019705153905659282983465727972042994728079537463942935770801692995967283041446934303955017927959776013688691082629555378194176502992292001406146552879818248635423090694662042399133540470433151334355347005009996617750560952702742840438226418049638169879677881595756695963768701141002594398206768234949652198878416662915624795302197999814338684830960819995997644993834027350807973465764081473191784257215618050683520844512507211983145215575992071143094226680642788980733875608785311325498986904021310695217015852748195966405057559513107155919063849925099787820090852288547830384622075299331935469851700873992956035655137813204010610130659094748004296422464983986028380565596680376337618691568234270024400234215082522868070479195101610085709345607961035342673329648052174617778614553384229223243207455511093599667253140684663139709112751528732688676376233069643928332887098673148241646595398690686818175092873657615201256548309445749852819523591694411651536020706432837347954036907417938037388653270111702328533114678140856620893732155362882511648871516024978536812064451675817812163546575376839069219135740053379892354420933810218674974981317939293251499807176352030211991190258087874541504453674855954609963719386034832712798068647314272601290828417024586105214131780965410234595556835786497475445592659181834646704908305243873438706699076690282204633437463185544697880309572112717779865574963296412057542365440989002348883753327616292311994195052395639737378415439042454449054304068649740616051983179209799903532479404726760978693984272200089197830205974802860746296073064793786540686106702901946707207388976061176674750228657529512380050747362332165603842921716058800257967472651392422657090697033796720765559583012148755232275501923525654912737893859394659722553574174106466987381400992546253959347685513803259397080448673831468385128922350278690236912737746134569150739019169959898797728132158531747076059791528744036436068100387102811176410632748028371183736328187304015388947971262472416117363819635997348994229257380837118118865714160356438023361553085435094366682665701057475618263022532886713872471661179209561605676481624692728167450122677856085346800535452476131685817933358679196278255738542721510799148532448962033685484384909541700694361746599001485239496637058834810676100674615807028227722265909235401518574403811799344382421097853742817673304698685374270597351223213104641520944530044609760354781424129213604698691435359726154595942166958650346910094515633683247517873426027084281294645479938687551481204993666639602321005228672587206196667294089215154907869822433041829243793856069126111447905595004290881736318013388812120387261431796845411398886639786422374984776488157391145534520184364747946339000460924981975075549991690127334696716867556887671218177116460869140798600062494739967322394105974233978308496576306840617266675934884506423442095611305775547398125123262643607961782349197545760063664008577113877279244815359364660851983761935801342572535517555927933981805482443835483759118490444437584529296647381764444255505946930283220732537426251030740618567515104660025969901751221465636188047487282365968612316415107809455711123118700076754893946736263876809073998006977202788790989337806602856158657727618851299515472926880538633123991507941109878188734882524243849189432131920548895186782197709991274309867791721777625124893059175263020413216533810726209160614599263590748743239782967114404436841529741279034533897375380823587341061525512156160884909457824853066942271530067340022907015520057695611604102753877526473005294053909439458388051306461036390268981794027024519796783028154097653474285376772440443001010173195955326139125361730113951028875824353012484994917177798699261523924857492138106935918825497614347569297648081376904991130868630270521739823814499365961960564427838459877397890402090255762761333480526315729649237705796870825125259616517051867205593976159497982890839860775881161156175759535632512240157563937324852132731510168463438455366032493787968227499111518750712392878387390510934899086702174303005534941680640323650732479385112166667024228522700988622481231090488049243845944362884561221021547973406644316104021966615678493931849945514439711100258923482547628353182556770921852049978807819157032457274358112822927621384617928588849390418444977369535533187868959858545909670131977207674277836370546171963410070077066710210664203054877761935326766736535511317265046955954161464375686861652895114495304271145495481538084919465694861375537156852462782673228848293594504436550520478206926424493616302565056677706784669261080654168578444247751151538944899270515768453768735620826102391948484321990642602297933618988403221746524624182548480497464615851459425749280803778013529226135509463177601920693292685259334990013656941960703575990977725719098653274437056448247709939865740540305874154751644270404535856951417294244311821356441276682350001131479749549623982263143763640206354594937333419589881347122292524256769196628227795974684570975062314310293821833422928876344834251684098238188747570969218459515050054712321308388875120070012187195601929260331973865872724948249527474450673891233575624378659930608246650063012688072733149999953785272897903103449467772817830025590365571481554701438034458070978726016374964034900600301615046827312146337902572805660558655062248177947523082914947935439266290810886963264340160610203309678914641125540777293507173250077835536917495814355185048998209642079843906636899080268086447412917126396668013262740855682301672425639193993220772611133527124441976429173127738253051110642264608882982394571104840170948893263266442157953324235884683924623324507925165880350354585008603976707725822792355617767044662003249282849685808006096994968210802826911370715315895805626277460453995147117283241299543983498667160610188460753230500816253484286081367379820351112731621068629821495759210883677565273344227696036340072296905108003866919512694117857464443763043338509841513335988237775239948413147506747583939687719104874401419690741507545749094330841475028093586597763012827686013242318844976343940132464737102104783098254806724464690917735091982973405171827929626618934877656635774184194277436389500737211425100874400865034272861882899715076044240752871061752677149661364093512641307160494117093376988952055005390627184576289015367165251710590528361887439535303761892402457079056679170479828591608691726878771548917954762480468673880480813327776367064012997885397229221577655680048806724804872361462940697891456879505279200084450627192269651089885784191319117010585175196623896502473238497856246782790788655961109911704609551377738793378799819616955992198770982037840216920475232094265355803573350844374625979727492167596168584362243196752909191921445576625414189514244890906336288013118495625500077874246119294280182704915731052555104204209232851585514525495105492428790576855042755479367997324244000211111616540180746056953242037904459978662055118157552007207854601481299252921867954373084071835865838625029612105628432835110080697975186087987946538944137237644317025677376574961688981964533511306726113160500719837753892525005223244864650432969499088734168851831411426795681711885372103156720239822899933435230682944686805497154120891095142802065571201495782241303660851989993309679659026162743742770654711483469991114306677999431674459568529688120028437260689247575286402870353159572871067354001252509651526156183002747721137188693417288363935648578761927930496379443039709172097162899045619788281601127902459240977080738056160457451460232015013935869272902239701884824178219617400477333478994393519328225668971624564691357923039823529567085377534057634440061363461376265106135971766107687281905938958105287907905693586766964825799493889300633196759859654964272815190632289047521700611927261860447867431741428283235128263997653860279072773039481157466443177035284480752541092221175603176112243669056754597805280162810269452252341357935558997193376131557288883946488931808821944182258957309712887568357849155313045736859155921740190266048979309030199532680199061705955005342938407129863379869631451026809423270512512226016524162938432478015430323838129917884493784736628939721666083804428101216544213432579414235369630693562900381979642799393656395848963965666810762063888882243084484798004676960669321785258522126118443032920034511996428422810795477894067080742345485290850609882760519101343424307794651243020118945957233080077420048647539435079394563648346558582577959162057105780737317697660880261650346223772969099344188724475982083419623051434054841088828808965791905281020869690571645331410320074360942757691004818144476287706148540718896375763467808606704491853640657733320803128774434548423749812309312051315674946927275359066865092444504202659215820101231197738561860224420349836124432781757791146467276432666894158049626805792250261010985941164041056835869272611855779864632560068717958470652787584840075588103302149656700026653024483646804043946584436509374644606989925053578289313841606964644139303305921357946968798408988742273953690732486711500968469724074629409672916894200894657127951389436885301283433808312728749812172140033693231442262343955263130087271326618025282070945251092061157319749928010416585686251154588488891942549698206482617454935130808801954052285159853291920752913074243123067771806720321867790181283779653604854694695774782922974384573693389716083411790219468553675849877226523239734801285444907563171007373922228123708379843861567661206453449596608553775124627572176770831312289987330913580564176178365009010683505168527942402162298102884998669411494268699545448542448012007737179387606815636784966962547150232592886234319263598743814911637290472907697735950645299490141765811844980180067969999792339398303679469032606048742638871284146757077418241636960371324136553285488167863311045378762720625555638618330364259131030014471088502873529259389638481558451039598795766127710157250790631398809837731746251622577393677912639331156263529651139595034491614970385263361039602774254665902452530176841450867479304544365783343718527261997831363944107997699275436540236446562237877672562157963476215758083891585850945934430252605578706483845893801458148680156648645332047189552580359093741193361435706140426896979415937936223248402942650691960462587700765042774730378651002933325799254529782356845343098793348133888644106613706039973471460749250514429846214158669806995894495903869365294145071924173097710117295972845541389559824717187093679413697996854153822292529748248122243761869688688290148113958189513528648766044183020005432274787450101149310213779126969031935538072426852209041106128080698095692468741052791347646629380530234560225520038141786344978095421292620129812546843814059939178792248421231453063771586601448416853683332385777489480136862335513319906969761150837086568890230455765057348713623831854459137349900932064921755573145755781194100777630251652582420538400677224031065185709765725227547039059739608494936295681845679592125391676379278678431149622983452886758865812854367581268377204536810646571455743129852685181797850953267265145809306367180261244181718592171751239107953514738317792582699317414563437207385494088562461383775001090184176554147879924588090978836901913358375239360432812415935379590703818704810037488012449278572755681309188352539027062886980267660549551732377329321004096796747396394150585858266729186852073295875718835056526494932269615431031143983332524851734921515746278026225457642143886704439249956513651642536213530468073525866395669164542737005164960842315471042059533651804015973917585140592781208808775884270514999333207289452124318605693391152625805761226897046496417617497612407302587815088758286416272126583164845613857261211405270456557971855880455550884174698713901178999596887669551317679520609594367504420413373379315861599434858122147227873078217509961274088658495204637735651056174432944517147159369189090060684720053062928109811643311000707844193533199176104297422370440177769359773096130995485361342222123494212229197469279548212871658275719763283466559870086913125313787571995054542148654713382235278774676716485518408270310067907906112948779601082029913761623251032613274929729345387589914376763699977854841604043982548137387904504917237441165606799948306714443227759855092179818245134080458299787728300686305627947922512917050474241618502109196252315172714971711100510556607770855452717024493031646832874276974879288233270986093499786067815786289250726830472798539945989920866433446757248624387399029766358521549928204260441011301708395387197329712615736391390658084772183685692517987239443577507597559327702881126174646693234407796196479910824207350773804921471232011085188367802448655218981406833499360429575614805825143586470457050963362307827500271029941526526287147428692524716523418978787030028941660727541684453803906858549030303286868148487490882330870873514030174862400972750668135130932737336384129502211200752660270912612270528299689567746871597997215600839421186070632741275967239001093474132741536885108519867854235456212560045752983730965610129776983669131380412009737918864813252627138142281592970205047276111443293713772248292856050146592502552516792941847736872382423407823071688071822977094321371403664015986899562660425280749175312477436049826539162645391783951686656703267496942727400418652349015607027353868280299579550710477807632748257398932468403684919037256265801234085452065387137195237371844724112646383155468042334258703197706781625744783346690819622493191284936710785117671217820206130481746685430143064819432223635734161107902337566633946956603725867466385962700276362170076890908942175760442287369310461782434826917669865020498361822841090962465654846588261986911455124186057925032861022377761199693540437081435482801196057391212864541248700155224702538432433290705511408485260168331016882704134705663188736241846654217818675567861807197833807184840497188174428126007097175388214416116137993957550998481785546612825129324363038034837062226615068681231001030226827541386783502885478284944042667335170284078857446212517151251888003470053933105130518594058838884281977888492323507266745959661961191753195160180477268775368869202827802604742042854372589126989211462217483140951557704858389021140957333922748151426986167473968658914500517478501649599421338505200273119412854425695513582737469629727378787993668175669483734813878311817665292135107917929914828442186087965718867425446940344194316013630720881657850282748136574499016737654629995289583832873291595204810699911823897460359137733523836427571868439088821483652960186299349338611512572333107695559465507649265364575456214796819635314116762623479025224490293047254203513732639403965467877687923335397348425352732832713320580954172921689774234236766632929953052666337097120056985290785150718306796789199342694562986163788411461332175643351067934116236040278132667761482860073122650434984247932094076401898224009836391830217893094680838138740637004088364567664986658151975235202877037576819095808196935738720725219313738074788797245025698183360806832316963414877276362865272565187433706560984596901944242656409131921385709988477908737729606078310475288577403975442061010789374338049200137039343513814406751176718068866332503678644940920044335992727673599087301622793723819292171766976005028169864351285739332942780094000112222451045329467324163713164180828501316241976482475820049735794645024118177706579288270092009804592817015197783151534963917176455914724225989849712824076423637332484191788249170919547870477342856446060564873194149112298212808084857162561064581370098889924221477661041510367838845831777179808944892366841847911419121318849608505015998700631156254020393838250735588765029393409915724746521287220261880347658834613571180062442287069745634261835548912136714962969844640283140463176144213279785813963252717719727779150498032327851343751167996010427380363897833368595393449118660908054609650966750635262814898150404457428717818749217227588262519517275502445993535221392158550964207887326688290519497258735973065601500063213462264049511899201351127542117792216010677360597294060554140055073947480649748364588556788122678421986882746910960331700303472865308536475644842271072456847589113154245024123494244360455545133005685787786433762854131413773954497140042538629033007623523671029864203836996363493538935033679318551868113631175179419458591444524673191981010156174117955915769188674641424321049410704641744935971112167786792949432528507467779407240033774770945228488293020745747186469022814700390945384950832874366795052081459300697823287188976806206418438647744983517611245403005974122175396746043806572597318517564095161087064007076288137271895651427678371820573122041829075813444765367345753735611401799840068233820314895885022850376150966253369707673763525739549779343374869198715258771905325769712763057335981001707244724971228969665554052555231882927616356487521745305669989005263131874724429111066402441268490870825917546380051014745811511083857810092973051094219397827894048106838972870578768123577091015837991228649860394748052159704131232161442053493104200162128064991965720906087485714066707803000296131352193356650574183175197257708531853538559477278722713774117888931053894196665328134198898314644969425035524409046190211973814340526402884631654688948194743774859578526085114572135451769932359227753852739177183321362464525141612153518501394458066913864994684836688354286786800504782008408600310778611177536175375149979650481298183725910673661054755045222956989561157538476970662337016500802724893336611124581719726391893479039577664761701268419984171755786481192549261124083918459743796701400279009846235902735501445250008577814218283160934131684401835043433914500026652603620316787605354231714915310269912563759396123912628498725748798510861468746111192079613603864297588176835337966553693589359893014773238422277020060476137308379073872117219999557287030343707540608964820046732637235068918370737596656018695950815877542821560175886965863191887668843066477184305276470827390888021503871250242789866823330471471125442867915429733111132352718251916037078402002148737886070999481888701038504986346070445725109237529462292841182613188700326657326305403323283311970694885453613021893235420790839290280293151258914536260942541003881544052678888721390063652140856528995363128546667308239914672355929690186132026632258312066092283862737224449294748307427985170486538703552943677043457081600410935458899549939515514811173053579251667372117808289380340123268909773122971863046369116285101729366072486066514173042481977761414686219449839371041305075660534618720438833175217960459144387325416284732138758384575364675414509747607866223579333090261461836039427499549847783542697566139815675919098494310361654676271163266258970628747844345396506474617516104684040036570739388550740888357604638555879169527530814753784679568504164975344009396710778289896658923864901784785566552279577064509434848821492410914218431446708142903315393013456249486241655788286293004445194772620722498259169563706259355382661856049808479106884682847578195632523787635175363545502916814046679511143772087221344380242316029464200697729890864019248041765958679419688265412653758683651521874489217397530439027751467406204548029912941462516561122078582759623124917653672491163019778067217507213859996548964923291721087837287505427788678806587929960903229125220184800095309297144177333382886474067779647737778222996776108145186490095422156302673385259234560916985029324333580854891210564814352884026639053518716501049866578272734474134813188583666838102323194079060050698031646326116220036177116227199524677115257253877503228796424671215170326106498007174317871235479113337432532100899426582328852957497830912820983676987517757123497426930447865648272710362143461201964738231816528305123122411143583261855606703480214073197980516354067535456882733858479948620585171404935740016211673202156470417819720265484231727953533218015361334891228371059899573680069240029357052798836187389490035125002613524462466673260574855485839042070355042103909757641000264473847976630651985215396264518005194611636622114343296754549185399701744866402702472963254815452357662626561893633268435884097426007208755459402550324634465682352105802691164522101135078382168646463830442157694591080398987188777831252763541996425822463745797076838790405103680159378385898217934921953415360638204443022488762907051903914441819794798474734807460331989338499104578995070259942444713573691157036561120761625907890759301080286954578766554566538615325976437798942496293581295466536666646360412866625145057074952830179015402697088223249409140615178859211298462952092960785864979350995473598079880039499597195303766135896470985659711438912698061931397081942279156336259686232195413315714451507522163949945521075849069774089111197330603885990007375973511126692013476944973364874007931358222623380288592802933841759283497698638134928696113730547410920259840990597340876040798289035220586701767103702101790932109907711144611386750186946681946343363848510712108429924708132347958956525867821076220956192597051573314829452952901799648183626970823412389863351645047940825373630082975223208202336204760591737165338050182380535206291934609191491337251134166501079715315995148877207644930335556695481937554091229155809463920396775609639455040218526565234121638070004220715132912615839240252353219277688704640161107818079104310029599549144664722870746662699517995104838348978790978297734142664207248219537620952683951447816680518117513407694207234567407054818957120967811743665906309516152766732598938936381137027215887328150402508273089680565231472224799204198381705077317783939025614712306696834227420370173417154416704826321980385898687158074363130298816149849948976662026632320886045955148314839336252050540073424546491275961965887528445632236068342174770203928915312109545709712386368761036307518080469696579484136662320450432944627817469020631344202876819152108183701738467922570691108207060952622387834054850242323454969681608468268242757078796960526123595867150817911216500587244055122280161838246405060932841039193173394360392022546900649730577905540661298230242587506231117384141205848266224220789483644477256553259924546488739898387890706175477891082041448130445590296553442664954726043899533178931251436766566781667373914854784201278955238340481436449690992696817254426066789039279073352881517326348032344629637946108744542501088573480364273244848225634877838780247507518949489520052475487190861669544504054350929248989898085735010030887384289906608644483183912989477226927503824321484453062253875708026303926307607846011520961384835789619760436455152829633639354931581242266928829162356104383249145941343738086816342913812436988241116727748962839972388621224388521254321851278077412516464257615484221468382406550403846874772728918928679990932199420905581526413463251241951589541966163983060189887365441465724405227332765455363078987673341742515257030489143620859835144079573719526430113458142214141395036973998659062073317068583744587264721574747338720586857136904972161811340699305220387590164632698472004192251171950069952761997688673479087981894851668733363612812629096849851957882870729817421383447869586328198164055566118660727692477710640381866565986987106832799683398638849926116505773807759043234782199674141374907076924201059559749778140269600337576432871458000294059310788550959304005032444571913830538869917584893362080838696291482162447535393127786202356376098100233272843416853904384135979839397225353645750341888972656254053615122686438887643467911438124968315483319679079062631705311506786263086313009371272019144209538468935922274881088538869673687338626682255978083945359430288339903745548420900490086271025872372304923457182476934517355920110202091339690831251818853456464505684120708191032187667321590462130173026373418442675277542983821531359459441054782382721451557101952555469023979760760875567754074140917218034552191246464662164367597703239869566915948036604022241358455568232455875019968896590558187851721829072000122578818742563637445470986547313418036325366513747342454014817160506157424163337659687306920402256241390487352094140717739709595409504941659680238181450086809037887982134303285114637522494196515615282991715926635167976792558954851247765570833350501498399118808221382706628957050663340833749504082152865711996709271193279972359190639527598417274092130245903424213928449841734653525571705020787444326045905069349062033342199957146351452357004738501902946834832612203081261893717491982093608414339975548065828601651625060323886980884516470742995763034644975792431150576210305646928488249890192280952014511960179123859125213040065742592919247832451729047021416448528193670994749477195779116620702151812277330975611628837259985727847690819587799418952080234708721775004755743518282205678057361366076457135520307463196188980440969260299781413269037308780375590197406350494831027397880945613421484631065380739187041424379296295935924607762219743541573682808396834018611404256169283522038890896543922775412480570181028534812499132878337884263004473170393314257669496398504612766929138526692749257314342593995811871490902378258885540232727647966625400985420949802088256282913017758910864392388829403843856350986273751676838634050616805844997759474360956110135794099295503712859515346051125661271070016009004962509351780904591794256117089698695503593208829566576109087843391459730666654461487637688766931668515996414539601370758648369390345860311610158955331234141833151262257466925790681938058545601197109609473180046688375613797437890311826955724627484720470119922670422036445025962149846486567654263294366571664266663144002636304773643174994679588968660836709495724627254950504602164090619880173592065559960318589833385387751890110357655038262178094953493402810486462991509641547859052538265061548551691384832630732221637130620226307110816367374465527016701093772720732671661339217293985019074358319027769294265491560461285409636633242248172521107448708489550068289170155046625656521247361634667066302568758033720636805772041460237888050755717385455277907331033001661047228466304322291109567083752935024802948422690865009497318785614553566201013889185581389041550245068686063084165573586318218586624392953993097235429958574392808302828167842821866503872661917309911795542115955491753851092934346197864693288459425254317096109607725443025719789642800049217220526307112900398178329742458345117097093508968620964253353212011983822996846083132596296453343693608527043614501780082968679339030580341117195937530388224606362011330575131649383645455652384161027677349575994906765362349917939648467559169677112393645670195609651547248557804033629598509551447746580991663437626524677802739261589445754511959997284194700607478677868579074099539232846467283661264240866128275523588324484323819326553706452991532240695966184389906708109552014126447292732027108669621769203302220934690527716746042399824348077125317890725193077876970558884302440331436944169871516106447882403209354007184556084762677017827177340196040472545964793202860067043178870636533570391119762703078128638993980669821424240722191279267005814390344431449682705010520008085232403324619833716230911628955789053878909374897580707339832531122932974400472986215495749483658635259300832542420036716023352035048523610113689447300753809310913208411726131073689776866285938688912321036933773801515018578184849074996724245641607048340722491731116215451830648539443034120979422956504666727842847787309060233344868885971628035531645020135357641422207123356173031295960683470901950089656708009505700713046110495599345444328473576692638224278852074490461373368687102928901056876652163864105393896816320876950875808036251159438224875327265579643599950619954407982604948760677090775645639160110755547631303411441761483527005043695795802464936992147991822223964095218906000399506203735985247673680995577814525537643495438616641426434824285368742522832685360023532633245379031277733172177033967102901868148269967645748728167580462496650145479495479808368731275520503876511743146868961480304102677758418580940081921470541302861411896306548123953303212192882280234986821510832667888348475910164170930900881370795714361324047908324669850180391713104222794560077299227449025503322278355068518114117582448071401679736378244297211397227936719620787378154537949598647182793022370502877180809539672972045701741952595375083764957593015377207944697186856857056666462603077557129717776305842892485685453967682733316704666896918835037682028249357506694611654554956494692926733987282683654088492966777919002714036339187066520178902716540906303330617072901939067375452465012882307107640379957635686934524357488457074823915880678901758004672047171484172251770668263842074785270903143084703611545746745006343167349024278031151534167686484731961296059395927703835872837630655682857361444240532272711801153162443689682084317619123335186928092929137266351863372281521439242604334218962626711483154888402593093435118823464307912905240654435720463379243384732960924326825699806887175460589794499973380012185889406269374512998256801587649425907101989977759152522992880143828730823697273407436431465462367128329707119564952849791785493951442861118730413041599248346290071171818787636417278409423217845445274214246105847815076182985780729503592209046698577056562126825510667228097881622395643634839943704803268704219413204286750731637920044684856969056474202646899147077261756288010340969848523055393336578887141521796629240195568195254928267223881341321196628135474506814281134387241946731627291415037767003054445053937918578502252625040601245438595655210236627176742687263353112126086794937745185976533403505798221044020775412030753037128999443812870128566090941504251982282370574007259076056096104523643872037128955347770394553607446182710821139061885792167718290892913194644483976308486623772980365074889579765626359180533176160632559203462465579736670697193555866081405479721365604396029861095666414052735938336532111470037428578407170220504986087589781646914878316345403773031663676625116097064316037213450093023633459918202983315714544815995308536340489393778610033181977421850071527996683874606794055853150439637412036360980829947712189225528555794790361188061281756329186396220248399652612974809087734988420622857226176192103154726849815782770749078844041405402803379738015790101297438318564710022301588632269357756551783915698366483641086222015982438629879422700251185736755441924143296902616285055836799226597487622626157345760477883970251562242109856137250707789606845347907073923543369613522164895631118660826095922390093691217001965506837718638411579591126119051956793492600321666459265008887156419621466927070091905286750407252107124339930214065915462202890959932571392385542266959899653738945296555621820322930463062566588684504456136084645173745651421462934115824435205473966532571143665584428188624287446872331685483718923024155643638450258492857613858924817903839398327469571187278328906570483815275712432684026161154940429117337685178508802223426579494292839199688757506377682798326617705096412903075189749468081906168892590998573363270475402932776469895067620029481026401957181845295979811124146536227132968506952411620258759189911790135381545030730510040156403530660526125781114186620695492077855833822541485124913824737987346935457816432267224566319245391562271847036704821379781444648131522543918976548824728165491504494938261458789513622958536812340094862910166919090054915287288717233822932285943352320906660723025489022139969959394321784099724471959493917950458522102511361842868448164059022047112136713626014563071218074960958556908634271949797513084484947012037648988324399794311730485505322962771520126005674673917597018614819856675770556976519904154240008022667882345702981651962959397956522964544685414244361273100954499785455279756009545333333696645234707356439711502584646572897800344469063824844422776144873798498756072393714081781153880605746651125812166081260103141747115282703084214831751505897849207799725477679888409772512475305063385974727563142212259622261497403598292263283564184617209479438581293141292324870064453025043308083094036070606690923033823178446777333711468660048632182479564201191725276159455824017693358872748204328755433498699265572399856996324952593836281220769584213255991410804665422438757277028762049953740243962997442527954715454740840590445226083392124627236179204792066898145902413624725510266292926236832034145304460677766847156123540520763828606222107666764947098660620927912422657629869689751769930398219616841436651778631724613463706238603889485253520795546566547403379957846667303513317477657806756544414822885553246230254023658409478166783793691660332260603285706415021739409348184205701768466527912531345728476538433532836778592627222769131282279454114445102302472165971403693804239301016946287978945162382278554185461716694781410088374973807327549318233198511491148087584191776582008602403929185925007892400616439438746241492120433083239359835828139766549765488240525054747803868059848303009525786362114722330418336235842795955888981459531568176457437102222630647726491816182597222721910067734011804903563692189220152522633407987028818263979892176994263287130613136074046898708723900167888491940422092857643612075382555268785381081762685949948449149142989752708803552459839701489007086078333863494700692450080976931585757959949764716159035560613481804796131777849762307764733570892879772578859373489209130361540219901422827002327805519255057148473897400030651165210158107446306016476719779256912789560309701203890369196909795291343799642685895261038146445740166146989592862829219778650003753642396356000060328207689574700309021424332942648407450298858419944266528945689593337366345962301537035717711180658103410200251053173597230503754406181404682412266504235970543470188005487927524342055480650905790537873441050465475847788158274456341850342119281469173331829812183611623540615974447163805474695460297715638868119518710705572206256805748870555809821790016403320093871924893397324649478809286847369314738899421359911982514324938051787017881184879587328206004943890788518548883502555287477799681201869094506281002453200534683392130486668674782907794706057608024785145134920196238181395250091273143069472763518043212426677214028449058098974001865371263153388098811029593436493682639503714783826216320746630508314441884660030357993911788424318962223229798219069864799727053243820895627675185449395814188787333324360980831933805728362677293885184608555379981649071995664915966678305695927373367599472304141719253528907191492949461310064181296793413686016573262659903071403220449893970974954102242645356314494125109836917750231026472531372418859982904255053846111304106747447113940701519677789051148859425835832295092802783577699252877961688082084381470110879999355516361601264219461129171075700598427568282536247702700364459478879462324374744182660785066515946967346675410252908528832007115155877546686961276729297357994975915589678514475467922356013643109613620422045344502635138745527540790242076602714895416030343527701880918736173117569525864794241744355534827031580340705286699568423264435019496517364318040950940364199581211265741385868376930194221957932133887661180980177904730550209683847796591606174978244601552582598110184927347024466394313024231836538662460445715004892828618496864927543110590052806405100891999815541225893568467553198134792743136460367516664773595771994727847201173662533004166747168592905061232080381831863854402402585788134306990565858661558249724332120775850207095104646807849345822914864072782660407877569797498513412474095736694306934599462013813139346734603563950577052239538977870275683248200076533410291939040014743683477821661970965093186739483279313749643795604025745121643549356202897486667510162374771381649738014871996299008382430242032736859643168521197185567392278112845848540440685836702818552558080936891656038786114911813725612755584160683374304050862229166093016011142754057100782257837693662986930170816644197688529877366926438023273725409531289134821163767110000316043301273841289685229373429838432762692217749039712980801177983944748720671780151067488345920325157567576402707641504613180421550675548038610332196920873314609382051000467502804443543018524583831869337324055232590746739098648067103376332552219043870046546411956700997452137364249116664687275181282589009816659852006194392687156673308051229232572272866146392881460429636150554055224600001915788130154309822517907790076473834454911008607522922535711132409612035562473481466112919913956091005448311978976649329632808704660042794579436987811181809020435046644953253869091078475865006917256613381541933765055715638001949329017770213287125056059048307979071750445517844587623357764839349013000329551824512843506202010069993631494938125518885703427342887995251282152070344525994472053396312361354377105510478057718353950451539134703183647709759430855061237216724764387675753282014866322560987602030115262262887576948575387500626552985787181992165517693865478974988777897596276370248807407236260217204802068337888177088405479814513407532646372565238969435152434228079017889294824229576703961528312762707202580666846981919863235776519949323568914143362776628927810001642517559757094162041682687060339536512003787477661486731479928855048279535163670114950269069724054278974501237731159288780750799049293604538783528753224949730447793981312021604201726205263332594456545854612385473561608878315808784497740847521270721052587161167643848729603447562774052462025364623284411955351587519024465368780862773324298232706699355212959140444623473781242449781784988254932124675635684052435665698452323067084920907543444259215391353978008183169271764104137925319845160097227236253862334189510613982100313204870941933400539927372729603833455177037737484255825004189022198654364539317194593202362603619221781394649838887767385950026919091287446484941839998918795040259365618422161746613282031981066597525274705198223667686559598450069896896255846711953985782406854545608126847323733121685202136173997381903407313922037912163211275530624745699953577775489700879856617392509855246445666260820155293243463976706690951168274901574892156406901629226781529516892382813410304342498842225625064800019581853296752018648578955744433236848213945017148062085987842842272431811232363354979086619282893078460474199108021063289976335588064412028914535451129910197029425609111955124150691078324610905377147811690092085255039011125468603649960868390754946854545783415009270945244789773207423955877210220444342721714348299456020401422040909955866797926630203123222288748620650588353610321191278076339653118441107681574680719475421001727596123948576716253819646166260734152187625545335510980965384433952549303793032651325946454214838132711479316717375112942881845760975995302226891623361136772659371140233744572376892938655414963122927992726160513803638757300911456057752965544222612113666419427714648719322180267306086393778990486868525645391130070997809790597600395445525702536169297080279517378049183560471867001520743470914150021731040557558285528175313745387107156274475228300864370084707190516525860659261933972481360589021397801421897540116673400381509620431842430778083611764742557295574990298752789452807369469267177250283043711602223771610540588619463494657629762368486459876617072650595746339279020503736754364294544313594820271138671647230556579508634441994022740988053636440798504871307459992085728073547488928620981886913551600662375066014759784383342101260692566510712895770890804690634911098851020864935242839621483702929372654636440460937466617831533945707990722450700400580402852362910225495836029631205306939760934793978591344105858185561696769055382559119713306166603337762063547569105233677177381289851769125477478985973815415309965468279031326682816557682132675748346284886300806163432614162002656888440362633047156938636390528133081141039570559663719866229191462570448101697618277094995565263370455656796950220749514835776657015339810159363168124362716306905972313796721486785907630893694509512598452314056181953230019847530201842744523123266649445574001521566269604981712908115192032312089930856009442234620206837773504685138593297238602801954472411212928421790316716377792136462502862184567297954579621137497485218905465699164041087796534129012357040330318063888637267572649609854574655815044131769365982495849895508912403652724620647933985949780003469766668085284115551505537487958152077871605843110954465180796959326811573627806870527566984838550441912932817628556720479418740893527010433174097200273372371510682074191903656418719754549780164485278647541934199377048167619758245866970420426494672235150668683097674055053133786091188621784566437270367850249988267088676231473503610182839005890578893425344462539603813930276965770505656955076770427784385392412998645398822007846635162084576490191579227581790623311459561207859562429187935171633970313780171514574291990284518137030744008919584695531553881344805030671516607723291273004732162315276187352712850896147223990922700258794503701763462850805644939949660176258191612324475545976630698437470479766369184687394494955657139882744730919200234061264835528396113529349598470396508063029629230408009356617653416968294907742539700955208934649716668116990262584369024920220310749096956324544073017791212819965263014209885568474010624253411422978850910834534450813047048402738677030692213042268217994638227269463580221608138493167450342618538234610832448918081859987464008160830309520305331623541596171826012984611650307767926384185232573334856225817902958754536436794785443089185817397183181747486648385320312621567564407550193973451092906047076822071776649879389332832702036533348871647270400031558887818137696045765671133760193792527320300980911481388601159038483952421944892322242089411043334439449759555749797941367386737266706602156840354462247610826835761149178645808204428412605171970808108642167697879995842971143712954012051965242384942295746467181265918496541465880299365873207142491201501317417720778971514860257612386405778380763794473309265736002228579938856872365311110908779030920637381619625546884127563036158341943920364444026838197899465774761564117576756551649558034447510093587336880408780858741781259461122167930188859231274519714095100901722451103273330851569549790387062949407595895616883820232205685039912058291938999440101883073828309958587330755605341107775477040394354457128624530387921720551290371342289227479189957391376789466795591207050875049136198578690874626228536702458656595823489364902049189664207900722760038270828807342029449206605123236355051806375993985799201607778677366912187620129456053683686204754655581514089287404527896239367441408998105716707031316657550733993287497264781486772574737015302343616932581563983033234733176881311114608777121257334135687592248602967699883966024929449666317062674708973939008750386948609048890032357640204145220787852429655682562736418496735631226634614637401759874324371024287169075574665949236734745620480101959460746081951760081279730377679652892172477708625937334129975169933437258677612885222315615768413692395584143117082808345945537940888677692415228408025374473358876974513066951548077020377888956266762782832754349741780047306543095487527304054881823277254020929663599813790419873344865356497494250612615143956233311099055493150191614904494422768635137591890956482739219211378737895589488471780319386487619934624428028125078628962440838542434404346614099878142773720017954091651567425072946136312056237709879251854751823304524024491728381941197904446117667056531237126639653613147245525381921376880043604910847288604325748404453532865742901121336075485310513885519362207309816081590259483881790039302159279218136404603645136399797766916881507848962315729114853246859833416886828295611332827795326047484782281634361031141401740813539499902259723989660347727541049194686313767175758521394118359826518361425350688709253160957409195157823910185487598161516690521536718537508170890586075248463006853655942041063796671884443465431443360482788351880171398144405099015449632323713636728152334304678042593396996377984856685394160062184429077448066119446066033788055878650888959850075032436690032501702526163541442408857448000535402591454040050542618083415184698848781868696583226822011678655221186985890508292386370042371049712567651024773602097814312349190014120591051289467750199637100754437967392702925736352075368172641465369384632672560048824221803440172047769725955030698457873505851381517309573153853485300209340957561600365185231385778759486235255051473950265829334290118572613914749623744996456286051877864522271523186963465595983997529048644139369987517058666809654076224270177641208652144408395299645800468909492663313198549867378292923807485990779113594860480558767561625638666954262924540649117054925848227493495052328536078263258579461794051641011676584079354738671446009777086143972949020058723812805271743499938720278332895814234564931067831517959734965667669879511860849027136716283630940715603130886336140249525859437586451791529159442575687590626548427433537644860854096348673403845209144408850624263637728137026768107348370630867518419705997083417419224827299288786057163938849939953588032237332939912172822418590028890478790694344741881276344208741908951660987250388086852030689481406994055617761249705733623543695944225383935235562686976065446778282846051088126935295886414102300969635627139261928517890318719768242465413836003969587807082588205267276932550428836767278137708794909074134567131706335905687390428537187840036533330922121408725491175634692371633156481147295257447847185976462526116427630712840663288439561423679693728908261902342364414199772758033046433770583298097438782522175069457486294441361842963469563846078368055239908570783618686041791602875708647795264948720039910300443869396197270462969782278208740779145777359675599167832608229266636074728973519984839147651254885227859295471471696817225976608451761680364431893300728576104041783437786679695155220570893266913918568213711389844594601838083333553961674790726837527613244628123796852767665478045529672791506754582125242663867360842864428847349695497152240562557505628941500100646994307890791633090027214602699422637286111914716903729331837399597292017963748423289724806530982343315115546213562148665240201203258991300625291070873003726807899239216492878402245044314178695435354622418959901927402155814702365341332243777126564710510361434743088822755330688438765589785267281179167485352015684196403201894185027608241622515159594681145609874126574189068100247696348315513890590320210520355532497094372714605406877126159373300324212411218604496246015956366273944914881795618543282467800708878919751585688058320517434872487887242781521450770359964612548686205718342972474782998289810163541926985668330757784802384397189285187238513272567126827646998903734353675583329067880781279866401501074968132606415298552164377506467998779366446721605090843477730798666585795489878093717551511175857556169251168949373283984498946560177664996149813397581804330950284415180698214220350176850227992287574857764494491058590994862931818745240214292389754251539335083705253912615137552457982495767170889053225558787607510711330794142880585739934607174302950994640449788665186617602598151657401581295862953357810132073683115542449608122869732700785507101680857377689708569692346231069063247522079256322836267296619256533215842832622435949914474903777080621373702130384060344953456698644009477720004819222032651518001716208424788911885508898541300285382010405965404014581362737553484926337522797886665071044330461707238035598375142027960000011443722430868992814046522612524131536526152387840842398718296217688221167110648540829235180465460754289612068295347922480987638798172110598363687262719421227914157514177356862763041219788266695730408118265616293566272038091271256991193835912922664851004018795300029654490060100190501415096660135466858842700764912562047147233757094296226120185148061492694820119500462946882876011989972767339887131426154017295901776419672167084309328103151054323663318994760650715503802744905970232302428187451182985377365571388453266863405384953889177427668933391088601511829027630940739562271826373516988589978142372002368536431265293194444637736716071507052802532285794521800824181713978268025442678082240652523871362012097211575721236937461354559984464303628087677391006396061714348137233500402033414115868938298391035287192127343770341996192935260973083743950263766974851266731195769893355385625913378069863260220854871391502720887892119148184411776238113006326968363146853527223367216369264320374770158156756979314037163849202081372548486252322078259391942138442916280505934072969392005315929794789118068712804928505608633680006972690734289359614115939307876480240993620976099830179777725547983714193657977701563285116642820822068272905839176776371010091436248034293657050613085016225610539770536751664524926118340034404805131614697621425238599548752779811322692842067392960809856580807654207797646120335720104475065818991168721369678996500580347666559270779720550695835363708315590065778242134657223000310654731814967769085056420166185104390026766359349039401201606473596952545877535968960108487397890518477004793356770838151332079549178558095019512871390520685682262994475475089525244358754035367463846442620072178595287125543014874463548504915459394881857099127875374267733813041350777495689819229315986892090951250132471676733172922459102787913394813505409189369023182493027362192192243771936721889591583158508101301031345759980293768701419580503489163385207287392630625335493791344806661784172131142005683972934609692198546692095611714912062368519395368862750847694873299161756747177267955168891522312384816185972205597879353291011517816017595331738118183519411689594634454021168897128006362306097270729069290489518793790754268570812652297902246151292283914812446562249176631467393935988995830125059395855629732911816308276735650930014427087552385173601956968556853128162103498927620146088536495613704568492368492867739518432521506946739465175164638816919698764176556475030577590364341066538329275896034628438280165647819646808434028352643257654454015080518649275983708470220668160794512278562071788354371485069251905555367939226803867925705831519733612296741830489177481088184864308432340128301488413117817849033382277843962438158978849614713610913029243453406065558551992377315769202890595251226784511469362273351855749167443793066247671863024626103729976161069703146704876828003228200719846384319207389172340074367739251386990882633810163070462571972470042006720590832314657755763815754079198886675479174893029342711305411898949085468401489832788150181313430979286619690450373500855087777531397772023967684941637685451061601123443592474359733054744555897789870964464399566459739485239885525547861344353646983634897344492114133585112464454034609595390313315142596459419541801023211344068772188468995844078356506034565136732164198438797343550375130989906805610266855424161911565210548025336557578954919341503124554679256046918849492338662647632864675553333446022965312290528194558840303704607457470119092926146253717991832459201058774268235478498937441562793319663224536808267263740957795857486410876804925030956064091557550514357126874943815409427384105777381294567328010900620692255357065510360990992737963074318123085217634317879018393855519681028406427703531426069027817638809319249454113580026430693836196881080358983654325059694601462842287750544382312636036789338637276887736233426538819413983925317945496350981889008613389940207042727097732828214995908713225219107400496101443362137130209610646764959384117560560998162009765971011607110662187717357041748552328316842289950294500528478831330201224182760238838572336096167579262314143841871434953934876643393237494090147208027963978435268696856694287177323781988792278564447838858892577430226779400915294058605464731346763690078040736154154022845550197284733753235494186643823921798114268476225843514066396902976449043842080619342013724691138417363803667924041924915423424770418570775964615049070487627735841751285067597472720648449154618618127048409600003631811117794331651000418500236407934482170679709666700913760915964643313037520489665773146171020804703325775223277540498217185304661119507936921496078704578260653245034474177205753776148896530746382460150394571225629963844746029438130913090072956272624474468838832844047575195212412213278262121711591514875733509307331968591817963523224209526657697221982606255582106956880243240505721252959279965429966559406806597551550186512006485330614615405067343384307042598526865750615059278081357477827116102591238354537248497890498116151243353272396297720007238200814309010769772353111804194259708431572727870726106230702813098715811309642500431469120133732566119474792736813553979211891912697650191274422090803129005883256287211365578471144469026938053367480972849078581734433414990493355108808731338436961052926953064841495551818056904170412950447348813844503234150185503408482327915880933811317630408306436521692218910334169188935692203798402817256978779041623990590000746200302755669970689126530128019287101539562381869561331921749601999073995174166950364583041971611394625421568658185992580892635598005392515525316487448932560757217100496054339965541816049470461311167963500554958230739588125038260241255811296767629189297181238585218736174083459330953037016484834685561759557078963795364906497127077366481964842371914421640255343298191070789693357353906524383494103654433272921765754722457446097098090174118385855806215741904197957853745664953568274662897311146461999785788266756421626644604256962619499814305111303337778096822656177941067314324576378406404693162813355687552581396432863821382054648548141400409679827054850220610460372613581755909370231994604831646832471243315371696716895240699420960932613167966296413705250255402626787852921553302186305846516719332804283758008291507276674538807863444778533434758913623923800631257194143805503599145808306472696290455007734702983267866367587925273501018741539328856510037897631202167004841760289261092212907938068900425083555830364560062978696783997219168177469678780757481433732421820550251121384879404863885243942283199009953797036197044066873037506293463142723349548622704817441119962466213467457004493056491290049633919594090819606286969473237306867535139455475175473049280007499837133800152355472328390737023771513403352103895383290902541293627889027253920591287552542728844849417018366505830858471318279175937061701504780264816899243192697361654690597535777034757233428387878589711643674021241113534685749394158229389273373313293271686834236924537441755695793103522291973889079484029780747194115603594877255327039772984583330393358210122454034093335920292012818986947150049449434898396458263243252709299320544361017725018242283242432624797329642274675850072316656702515154725804249386975290677574140529716518830617547848102079576642130093123625101988902985447956095917514532972521335057868260948319389725085932302096770395590218120512279370654745986290839126902096331655108697093569187709237503625694206863495399604072596251147805991039274211889185662497503184688783889227135728978468413296777701095750026187688741997586366205335473527168241962617848566738321593503479076538545869139655845028494615818148562576577866483184780630737068996332458142123930653306546849613453404480884205469049564098733062497238416708588194097713537865414847243438913261404439956726171616784249473518384326937155674501618159392730460058877706229251358728959205653339816553510419843665534543689184550996901389302277629334667025431219065225226782755604991316978179300461124935828755102750241928279301732327636955390201548804506421663657521223881722358891150308717693460129056441702777470882825529531521754951872453960771424295104675963698247097622290809068893248644191566998433243126300973032704454180514630572945590906863643916090122580632089195881119406059427212341461694301657831498564723010647754232977222378001019602388854292277678043628545553814882168031863503300014379647961919870879298467912584817043396801522815228122423457734499629517490075481474011011674695702834198624203103799264749914599095169507518631900233763916339985650587049546931521912478973031558710573298710310993861014363962244648860346199556044890651192540728429809355761927742462365078180133783146524097647203605329264587472696260539882527260511844202887267198419110841541938008341056873098521632005031500161668359579451138247031148671681488479264729248685372868925328049432547833686612548808618208229249481004812305048530361933101142686116725954947076162104511967310294935130591973229529585270901938925451141657680298369269730879770194922706588733241305795853669839540056409329664440035813881407047675319804173384651620934200657951671550685157927192848724258237317870604315472499982840154003630856343276303247188333105983120801897280468990244512225796604566863537162163222239154476602215085929427257065971639557413800644483570291685214805622803733984341969878783219074183170055899714003526734221618533155928457418717945583832979959541764834334174693629943600601345541586992536779702094007816721616463000728889772080414747514378483476891511231145937457229955261915976899044481951223580552778536703607671352371872151384172954046006386772207849941774129751996926573378497637134118839636464041569301349906939110888094876764577821255782519054798345029957183766973886808123187441064544254070866067735259477067163632925672323157625258849074172601229910533300805961219074148885616779752256191802526006314522513188474423266760994248618934239176736311660111164921422097321035965679844368346536242934658876787441543296786355681534350940897147749959304243387808845479725774407773470703424491403554799089221045379788014303241899491526387753036226414412703413806867099730577896453610246149364367363764076044622965139295973439043576321425995663647659999350523340189222231298890758120051663268030488697964349382917415671412204067038633883029560683772424779263608896729404245589903149637336075058186583965368059883388389709040963588770359646709524339431488115978579253352031662701567038078286674363007535768484569085190832947456044169697636961568339328514263360367008168737381292140290267990222252006492302070513799885793245200584994097362532183241730471104097463499227468965814923721144792206067771798542535945332714372559614838061537786519222313092136552770874896514983557754701983318617759077564043597674901493545303359203588533112414977226737531238997744327977585294373240863101944769644909664902160147367662528951631346085955789723322619100429381011760917633687742687778529739657529580728871944597199335112037332500174871888116311358316125704052385901243200799818064179502588413130777230102841675332676381590104105411140368181023342462097267743333342126606865896961083134029205100167994998937496801948284988420134695081728734127584653328271217047109521683411420166487656023895452041488810933680925267376652945624158976002810481534724168640577672014589650469345641987928952711542069061323515545566659643729362631474883061522440702684274482535923084190677787197325959328898216948994320526789934825760151035873610033590721775082307829655353099049368990979937223629207560266198091453394145817782565458687613772909050006904884207225442385446299131242419513577977604549986816743261220789562733332899271959115275423137706448462118834604191939343749530371725663504348370176226387991632378793504300589489559340846649635469371178271264616368336717523411695850956220322448688486812660730342652421055398131449082631600131291187950405849260957038962001585784831217045698958979856971313798258872160252271175046723561315658490593304471279511384842394966502099969758813553802635894724582039056758777802314038014534820645904478555462179421553274961538610256707749669249424878034619071303366046959915483277641310988708557337555017857136310872063195476201789502790088288234673566577435561962729308352092065077771604313025830269715666941830575577399981696955273129114735916568489020487517828786729440252480760670093838104946740594525100423051105379807277917467155800335901391072963684451233098256324453738349147532503758786011422266507303403309300885372284488455386680744656445428215554786449438401719343934874280534617636689461736726237661047651460473371540797480989528766511318318028062668321080425410963787127806917889810326785915077187172079046010199748525155847818355820273560573224835197670199735260244542394225499334159107854337953740663816100580943941796586450867312053071793858389702636540275598889793934144628643803527886593152648233928663053098445046398293129185693718613007920989367867517643007025386157271458188948085381274332725788171875150943261168138664918778265448109454964852335446510877539674612447006677081131849815796323531092312169472046981671225421882372286863072447052608413049757858862986322558218898252538711766426166255185632170211137326347544830223158869286198895440130195898623650168633131167630840354232341797614308103540312211838961778016673686400577652972802398230469223609203834716349617364480171143469778377000110491135008268272203911394294087800619298526753009709137811610507490162027936098089023910233285466338084677788071779589792192403300093808568142954107879349119325744184513999009972527432150179876338943085555520804320534896576873698019582876498017703968622699595151770722411338587633080414746615321586160688470994102362978388061801008356910702598869179498434842626127577243941478293565562433443048445382249338571101129499870407047407038833936702365442635342082961590811922633469915684432157593082529752997889337854069276277635779961740465503198995348054600813084112591055077893003113593748615333962247044955974188477382253900443977077262381103478206738549057905995709746978132090644194419110759822351304206704891020552849404562519779640210811400113342913013069186396171554508083131571130526625435973838253825419485537559512708045728802374888719978691981688593804418099543031403376283340059321603822252394476118740257607670482718571680155382083168447605180120843574143482782040949227086643435234340737873267847420401894682251797463583904227137640158342995205034038557102266095254820395464327602467623624767324209774973825132853513557243963393788253742476558853347707424292448186505830572147663441776489185111207635530771630113483811335609132168223560057529730100169326941668745513123455172254238920481268884172278504282891888705521305871311777948901691514023788949763464833856463365325781332273082197942536186434915591658058649770359227745329990206366253684100724072215406394046067605361903080672490055418722302408509246423722785671733927380982225511554952033923246384571089229447006128881935546647429646541475141137641680529585637321423211010480996652478894060134082438574681951359480293918400969844794032260893753406575734752020240990060425884914036448875399078538350523234636691326904687320777642129781348896399887501990691702792954258381392203356881800611598150748116372318715110763251146001194310020117926399084005440733758358473203676929824551519078257389754510135413353458563042447718942262533398059748810117297540156730655039460766045933031508551221265254045578109538507805140745812900989418932485909141271551716623183695922282462825344438287151432596245662211068503102683255395635912106394831294533242863170436641280869804226345753381873801235721776732213050527194529725587541945373711709748672293876690872983738992713032619329661587973467285156041533854419321617276272790239888782361173717752990925440420835083489870359439584662592925037648207124329725426904120533794856866538644652389220980414703611429734665246276679442145867496457253721147175754425930355590919355078700707337348893448344480206160316119800262322564804711379290103903945971266747021308012078174658191468934782553761617066245723318658265852427686624058254948336868081061866399964654101263327497966113146269421953652302866577550475148074718754571453768919343303705717563535357618108195061063333313213550449372742039784445011742882038624949902319240003457293519268966403732993115424206425845364057359433976112291959592185633266030486183712577762217033686993358707091430107552013070399201602411806401668196240768449504306370359953047236769889579219169459748129485347412553622106478587967409007434040609310987850222823947822499560357654573250847608758460466399301381780184924760844214513557445902155474617769678077076881922234809873341100545151829495363873022522582226634922020377111345259709427220994200847931456036165331887857060438453150554615747540034684528110134321894573087804414095305322925583229828429632180922007593230237536209515527614924404215995706814094361408396815348606738941031711286446683536730260973785426300618951332683378097939254739384940863720143363068215661423072927978754685561944667322558881651125089738629938886307632227989414096822675349342239778260660722402155705354249289268679353653330313022263892775157988784052347351364596861856298929269323194403226792096289153311503911713784640365104541611147601482986358194001502153098770363635857016793129040878136875051899186991543706060110078032141791246223205619315947932955458515617261073024064945196081600777071316241179439183718512392345377460066777146107700621547741864046982052760023574646689703576206538286832854838638681940547296376021092045687961921487391543634728922354495950410522020979986788226283880698891624330821268141961351941863740944073812066406290640548346188777051790546181471834602127536808347251119158390425334420010921909269916148415767397998199724362379441466323632195150805097043048513376814363257422435514153199711033480603271418863689562775965816118571146597082137032043561826140313503566547300434708816616287697083762188533110099404752100830488907269756351970872764576412770179871510991450778753907693689882349130961157816819209173457281624220316006810299778379823719964667937207066837282942258484395880115714042509596140696682720533290491681750581037756000037688738083229519626546418797000021852674133579238662107704741623539421429791381534700373692684828686415345255886392237482726357895174259664781462033617204033866798564218537326094109715493408621085679797107230718179656369316699220225673412630431537183067149944781439595982824254142369329430891692490576400894138407011639982387629745448453564740429420572743107200399339549795803409494439521699803581997412669599116811777504663210358345484328950830750057484865628280003177553174709555538066107806479966843327148258735014685798265122257344436048224191883835342975435170324826318241913786975276315396551565498938427679992923714023509165913318611961701777943487107472130601174198217880782106860037998820285178442057465677703056853249307543745174026451889446390305538754534363122640408562194934897070066800922815115480410124607373393947786857264891762462958052062400437733916976950965563491812796332479550449112140046320039654746757013853996396231733501217972145702132739950571748251018982553061336234439033161605067685274933151658239593317622605204078467079768053453787317260009189893250677570284045370255144392233355668233901785078828548946620055726148310226442443376242321124630756457289583941492096839075087940762208708778304427018816934121719197209856843950714192734342594875248326976553098536504449715198032434160819296431632743476457002431251286470819692094064818066376951855558637735163417926879387666477344949217371049784206668009169189339969509105395366373509622000727999906545923424632124525618032375097262768239751209831563968391557539178092133323584336589634887043189890591162843498743010474811247821690019176276208950665988712423466069116662963305254600482646600520717874295108970318436187343638905037308948112841928526179353117645750247846810623400706404674249796536065400785518805173836845716234531282018375385794946914786006099807710277806961332287810113861987549423618630889715544385185658683100699479460970266179393015685719905696052119864768617262772268208239103471270450318621543270560802253025434725283031021167794990241721879665936214011336904917761294697690134513566865853537700727645466447967838372486638522244270849095898014744780757291527868529916581136149310464311003821264355457413550965238949327195887913295054135441770644780182622002876516280549131265266527787536765191775792049049122249151783974622044275638987608325615081091447067485132925173430705714973256553536278421386204182280058485754167411762357659038971860963772065688965449636071799307089010771620969685527278975352469168422938504626751239185619924877377904316342994186450009864523593799427343621867267084122540343736283947269368604075172746270640303293293624991153082014857674855483599345271704656985553886535257132928904232903624376529256226319632981036967278529606566323967271052595549033946269854227769071584490386091017012424654970432347882494282536499796083760702640051598299531302266934512384260894844067806383474296454062837399293482067945945805320408537100636938365343936635401046913348276280377037878005817695345085827356095085922081830768658990219763036248425776373751099740540426792043406130378264269287169833707126016130220298859014326128291137466143737207887936111541223550529880403407739971065125989988015624738182033496220874517095582960882427449958367507973576165926557210761271997103330433224240820885770855492177068903619368540871121262779710586049047806836158565376579975333428601084354822235912812237036471596721217277964779860042061975698070387841063839718209811880480264048850309994987108184680114312072833567016430105266055805309839189080414023219467564777260328981985020849177750393164975660816145109514945678184299009825519089444894954066655900653564651898924708353259776684369510095728008686464213915895526966394244370953829051513726693475794403119955961795903976376573760501815972857617303422723589996906390584831099138827582014434777087732666178949711649994604612606145872767274058159843315896333130695317071312797224985735311727398356193535102829139172395277042506993734522503924197595267220816611549876104107889682437968243600754316236273534750701989234694313756255770926142688491852117103708481421029523906574515050735993459152252986021473798276946463562792799363708229181210480390979725445418451883494877789037787995028883893767438813778192341189391586959300383055318564732909830652082276263154712308594027904165436402720915856471378158636654561693667946153330598227709860151409097744758392837423008629798493757316669640242185520164334314626946730151214720447608067019463579345661483844901747959848294777746121637908513426180659558171682434528917884750516114592786820222906293217704332670841916561255314851450068541353833430807250992182251193605084989901105201394067618674102463283393397997950811080259816863141463882120347906023316970894762206284090943743572693797142126274783311725812832169810449532525196712390487491346262220604009804603375429532444978483707653941505572829251098121919590488000535603131622123412367970941715178098654964297550218273722258476633338200369110935087699727435703505722318576147586039710805953321752840037267032260170223222885259997248780108748065440817050218595400309670964104767143425785293129729944847091255842428037343236034822139222774263105029053969895039874626863675915782405676331185519042415336797088890846846331075667168717894022039045937402272312900617933818374410668057022166346844523340453444243572164972618595559658272227371148332591940403503045279995012041504779066898102670559465538544866289238366151557515011963509240226923773806257315866185576997722055715876022474823732714166650651230961472098031736481729868605403000661974906693185220135649816940618933524602941058421450653232698563682472859555407701731770784152870414835035489601741089600810568678783451109126760454169711373666479478982173537115567207542882937856866409502012791390248611711401017322188419197658504852707839807960081013338807288478984102033376665246890431075269662122088298605751080951473985407379017096461808309352944286735229046006693970202884483358903268897924264218954124594789931255536452641208716393883519805502195701574129444123297245886328673221944463444565719407688453882812276972739029904822507020760731775435371554432730298052955976137770110535609081659552266971943656066100045258707038929969332731766797235069026932481758005588952142812044026060292153416286502003513378291276860770398118084504071555353339471783843919723054255914947356042220169089953233627881259145296952368666474699402893649588893223479964296510457724759647290979311080794704839029397511479583203159864113102078574188437701966190475967074065938139385892720685621088457303071883379719642816911982362940604446391234115709107687818487054212451353395615673241139513938923739907087448012954427615033955997191824079866128702725566508707621982580621775735304349792383594136804217163656103889673570771539297770553016399761588439532923019312988538142530894169525554886013968442002322514388875738158566856975732691510593104427425816345568506508892535484132800575293628204397087738614476206537415436953947805786024319181261383579490199510386882599631901986602541297523369555721860295310798240076171673534113531667774126511069041005605406505006555577792785272250884554810226759411340763323270396963044601739182417511356335558524521310482149314437444133203005210945903707280104518492265072368626069957760261584756466666785332895853876087761098729743291167768825975005094729854411645888444236751380403842319092090069241799099843051423352938326927416451378045360456438477337112899231701140493467467350427976845121131017978798059333953254118014828022703810527681907293944545818824619714261590506789335363852578085025099070892269739599863796130957318038839804569300884791791336626333200803634622332714250711244947588865807993233975828337200677315617292679607746231647085757084784735189309892528614552903529882516381962555057222736894822697935844058440387535031311535687258404670948108368991644812394619692162167706539334747482171676420854358475511489049124245514034363056150878157361931514443753888649419252006644169284622895513277666973444556705172277162531602687121148122236548265665726384813026938421726084599552207018771896826364647555741643854483029831835008506818138167389003987102353657518396037954958843473057394866044513821524693752568803561245635121459747317953444813562588278998986810500213705571682670101148886581158668795045116758811539641388479956798336475604065846515001591658158931674620894900919020921488899988029166789494759738633434387881726407535200863047496868696246611692023817296540532502496527169837848147947200537330669741731625810926322845327303603829781669818501332369659554906754345755557375467196459660078396082812483582482822312419771486446134271862210632931220695859636922921498667625211661443900096891277236509197260036228083400072871326482855600770846047030492594017511009689820862064051310034056196472982173470111593937514119052472984784842752507136128639419193225456354013737746355263444282889092841862038735366080765659145843837316485168329230673622976598559220662452276973572665025251362349463435652743467107013163010724225382979568581481502217173360566738834789283663422196616501831089760235722838583886188010612963406743124227659757216718903042585372226668679877313558120834608992576687508144180175327120119585573203429560431642354907055669599315137025386259759465391492935712491555199450421271768273710184472140118919307941229069886209459851784597113879617057379773029576428566285509285585060548773214041756732204267365612696699696711982700634939007270637484054021072297755383761967053702272901967016261304181390923204199762417420679255994612619342533543608580776082031758777241359365656564463996073232473946595330000519251262975931262798983680438847862995320142225908381133796742701315620761997642590121563511937619204616728773005800959560132728052871874310137651332573561998274363731639028384177732494461652483311832872741110095844417040747150722752711720546416755723548328113679370272055545747871590336311258493233040703037480171153029689119823784456506889800290997016132863442670575237252929167403333843909995839274258958671669094576423039680455880170766767113559435934455369083033904468414611396074001789819075455191656199265933870053232230358350787064143223450157945123853370666730691120937522596240567901845421430179948176969736522552167675004927504959377834042276723893963388515652417411607089580324354292599228448116590543713094215799591755921614504884593915242703149229521006300553464444604464165583346580390328861106154715865242468116573571119014956948601043568093690070505407722767899833411065704496438228439074461184797550167157661684445448694050336581346072468909518864162929834025140405868820473351023496722245637521038549847039562199773334728274866017778861552099409025212429927886946461246103991220285837211142413972582006304594474153394107009329186830005483424676909815559120843453714679693139398389309063760929262398250522446659513232785047734255295543464670598497797531042699579528307775558417567863936617221547985927959288972367935521271536167915916948996390919219362869070885668113149956069991926543231857660115200982141276520682729224464136524538017771952858267100682087909588592360773393300693560356614578913969461441739595204869260394742299354643224974801445461041477332707500775437214658624393098539935367950891588731173830558108503376734590566927989375346189994151581852492183558274315975538033567244707169516775230895359440791416737022569107967985234236287155183612856870057220611079045120625182939502115517523085524442345096615244115768063671316241390831809589318906923874024708303768751137046539935397996530101719027561416580576429983520608202114324136462307816727424198205569320991592601376985598219469479840971624042471262286471406082399589501583899124678598233752954770538439696141543179465976132223316189494519941440969649638896468759525348564153549617501282863311888727550946281528182359307465652536393595404416516080804478894196468317196013720964297656422827110409253439167397582571377212874888337546473391983622259260047956019837745540479703556546924946406464571420442354587807170958810314625055110912953338343281052095433468026100928078002463871393898795372675302711626774867936471761621224241744038377221473803288935615391271578469390781626766153138106525968849679799771029844149438013900477568315284801698672450748397851123495564523477185010657245344658226636782028086905058543833396616187290248278448002030256590607626765262060983894247181476963654065968302230557206253853102136146234070605522722822906683088613136644411661988312036302975744604131593085006353392464714624691125314337544204785944224695441470647705575083563768899383428861525392499256163062094805609050425725117394400546385769493077958420423389945270775606807913016795512296629679377456096797572126808410368179524921944261809581342169449855947980067337631870013329619365708160807776640908277275326938615453594604432059304766396560907673087872317111300989715665900709629794709994644685135761716306688412789956437940543178537698414069318436969791684496325157484654204642608000528351700315545657649198030772026915951579364199865240687660902729990795667343367260020454442343903727031742349943425595574112210585399224858504879955654022932976842514669870263745756667575367305325694389637386606236216412853729425808932003693978316721398421601714491728429299619051806408201890946783749167022389334500472074285895270500278415395982973308092662266812230243610678194176137460447074556322741259401498512826713892041093155062794690413046149850070808892262022695581599515436621531266501656205180416858966034174794794829049281894675163007564283788189433654259974796461176731118908069016402291619347286191454093918612237658954977693620929079058335611817204180529011645000306268753739444100566687387050317788071812468839763597864745877908211006128742703788352056632400853215873208333001002055218471888412797844546971235977363416317575342012968613828112540789197614973892700530573461589957160167359017689114577365383662642725268399352498687469978360493884007720344604528875848437936807455853499838948237410965112685251591324401842324288325646601967267077415620829733587256214312464601804322809490491991181683411915169948425419180619387913262819180049313492611199918361169900641063992011979026257040751637043984919299755634307331806531890915841577436590682839954254430597745961608302289584227843055086827571285508422815829681170384459576701349392375149887149762497307715990870839467650344630399353936541339979667606729636735609784548380108875947251721340597886294970862609138546215168977524118659058402279492860791968386211929563726045041433467273633983675826492059049917899804684366971098570915996039293532311474254397566052319152702588591702072426352651856049112362926648925726393697151730048349949594909413666988720676521081126021937185301861607281004008202098246837969031995678976340683574949243892670453353987860649941668262772183355791500759803820137474708715744488461039676966990365125210946286209059810726277275822998814091793711703292075175553203890408281404646463005552711862001724239633636023185529114907341576604147326901486121120707673112440884415380352334427339671887713874750089061567132439564560382970967142521850967397291019124043584398357443384778397077117384644378510635615951930382155768865085117155803119828964440985101061572386195526329451992483050247130236622231171978397247833050221563733829055224560188277583007960483676397801326017302438076022356483077517381572030910623386754724547902176902420373101916939463043141967872501034947444966291623131575955070421634181429411666077766046558913705761360407778150318619613796551660255333705305800535616272613476606177449658398288217233219191268815239370671009167183775117351755712547582658542982581595589373903280544069024441688039248966315803035038254823198906580678715971978247446238069536273938768458519546236383205684742311449258161838798396842003101164661509594998112522178455572450764993802779495609171003566410197633362672783636747700634060319029830140144690364535639419657979119517339733077637580480453385910044044894420956298368057301793135211977845498795587358797110124984355880978963623476134510959298508433917301421454494470029892134034446851174801426142055783145989295816552916909233857284938816128735458416479729010494508784530070985855779610535000200094189209078781867941476084450710996478635128306997777861734906745005745729078988843394932483780259298240986907694451982937213920707731509388218363623516423307492362297158516871963775945026075643765763700457359085767707861214942275872465206845190728443502611003247912884931479800712114242839174397174987852392473858171945323903696197140995448986543211255813258433010549172405141057946986984140594138413610354502140422789890714570662394980167623177261574156667625778346195246588798100213723137576534497443256541411702190402058583132753218818442993195699012257236921646808496882875278541125564123354227117246450777628837311670353063557703856223319850972562676318708750596607958233652914489904940566780307681795386875921934402266048324830542954622665392887421632625115366190331568422095834130382078938688076685708283861798286794802369011265744478261620827810872327214937620840145011778104166265079710806757871426363356179270159514517865567653212813695718988227508786377170944961958246463741837926294771613845741297760923377630357197326822593094555120657623970342160074906149780702400716314361688034305755527765864391127421341767824815083392443532939880858874341344520535994434116157709619536736083093106319863541216064113899625160705186982559388117014335188587892319981483319149351110572328163004562811088484373558145916507906787979863901804604750696279869796854901372712205481855952952151426934812316942833557973444808310466404813948532833155149341343939743787131798739696408274431730133362365344499253533315356686048110212814441202397640789733075178494927567698194656708082706649138030028157746624682008573149549641752979047771288054671647183752897669877711173552389806567010080443474859738206344146083077027733192093416508026668390046985794935445233541616393223444167260555831012333209038876802884496801807204739207011438367464917991570401872274381485960571490438135662592001267650737884892216445944956075319112019255099385591653865961921523971234529600006799335469667675113850507484810407074951953322347169196326261204476676682241426281991649409538340987952799612989834386381748300173209065317886109500168018821446480445983325700662381471097082891548549243452688699197699280409596278813877933604454480024634515195078630865183308415476654860495284925696742708301829830521340931680867143639566767976549228535705650070762828121466957899912666730173093696776402952090413267982976767070924267302117399505856904458836646586665262488982691638309976579212121488805211083585122989905815593463368169039965301102562002441682687291074470038974126803947922229625810833048965971440206628718578913620240765586301342563829349993596438493387509787295585161120312454739112874450973499978065187080781131124092097899646741199667119798402061807162990615106979851737392241737961624596218370111593179068238200946075037834525756930463820677464144770763538970032741046317202246446447841741059049458369368405386423558798177471534460461596151815465423032891107779103238243950443358176245635835070377197320270473487062263993055051522674385886484623839967789538404730514478831110761793149746601426229165724789991715099996015320795422861619637009460732280336866015070025937024907592402391666525111862536620741202672903385173216637243056538517953903043048529096822207327178065822495357228802831294805352225420483863086499987331492659661581360241725501289891269625494767990448554377214019710607976511374207261808891342286972675203227324978890346270010250639906408527063070203061908275625594749468046331306647199310836096407142849417453682463744692984034035690701391903318988102064857765493872760930905094929511065540781158088724122006318476825234467082643521592953135439919253306224352505743953201896926116292637142282132159028465034023591197061430099639385139054541032311073900473837667913738932853946454890475956101930129233720716991949340707353006939454659882428472441676090745704151008793221180422794321509301038437158761644072947768490713806435378867047327822286697342934255498947774952902284477838856179762869731641800011201336828836391205792373612217360223476257942655219852859714859151765601272981276334491704720751441025523706954800861880950307617324154354672831119870104136030315337400592970918464461806186421754153157631954925226882359727573897511424681337653144821305811671425388176170454777683661042532973821406451216598286076652533144257745451739021629414899819608108122987768851446538419503571286876561031358532994123543671672998881608567436477545833287294678919742819865645974066027957630555157981362605118011533454074933124171310048867070954763756914208432375879739339815691108471247677299548025537358252642860323157003717805922937377903549948652162182214477904672284400073597560902509521404534360319321776911825911842630571545755768751582559556859347347798201488394159349631875983973162304344936605324135371720037995848218529491723857981783329351374825956905751419581884952303308399032435084694935779943962586880268763384673688509320912701601663459413345572132952953389898258509872949832048515861173473159289949260183836198969894228773624282228157396847691842088174502877995808204740708529353696447880825154753483105165173571298387859903703830668849845903910594927701203650295153530736890558245170959304930554607016718589533867945158689417482656054743219495711187975119008838281449391188139477629928056206446667231881879202941928330016550609705415468556666935810321546956724807667107316786691908912161087977846690531357870853075125396309523522919926101876166104039386654398290121503741119697249639318762401736652596010424313493472670672367110190993038529286295140348604082949761435152168832480157716470020587295053608321021324593638955740321533943817050072119056185543446976816825062983845092496012862539280414166258713219102081073103795000560904331293579182733680651616167505716694359663593500432229277537841729704573865251142893937276742777814119071586743660563578431726240919563149169715284302474674059245284696097259354520906822274626989562399154273087913643714386663042960737296869730903262240122050479996334532884765626276183001752184587059453254342962967766669382724789758097995173580805433836405079686679458043724601709144578949930301438677603682139309625839643159206783152099030621140215606873314402336783324106151302388609343243783739954298514834382860787495667883550105003263225307887992404198097658274400074704010618119065168178584802716605450383095774358863170667773215188675614595376592355942333658000359262168133009508002268153239071903285340986216033757399655105910525445915021652720735999996940512340165732017704823750563959866965793916454204704705195534193662354497432623498603629114573521535181638074555122553808916862216948743206625271473807850214688081347074906646989353955303010906849192870618921687679416058381471501708758082882840800962481561742659994311701823014572407688612588660232889610368374795910587905143432889481738500419519053026169498640388690973302416113808962015291250665646290844476288388215759494084861886341450779492968876147952024933584336770486162377872477712611520276421315967295370380641574253431405267568224000766277339496286572321748999657738686203252170241589870856730161113426842512500627673139537909808870891461964248659677281172456805371428212557448403625470961493133866562980370591234412216700757356671321410493716718190641720143151539243023064858176239076002429470156054441290045352766511232563412759975865281699532541356205679273048428195512304379711063452382653206890375541324664639302683154515826843503559876688717582373143625839457375646566417433001453878310435440922973412715802046243500197138543545763572178595260688766589321779682137042325657878905460125575463059199047260143839558408297414351584937413683328622219295052858211670517910148051313437170281861870488838294854039318436010024080375485905159956098594111689053045772448214520144763165024719526146351951028249248215764303146344855844185417132939495847534133424371509156084658401050202290252435886145323099992335092335519057587785649537502637589298398296116118284382936858938661442637716396894350881695222504833407564881949695045223582288772432968769757649138093250243126059250561813171573532508205675374808285135271158401348669248917825085247619197803397746449426234441862404764474252798770556973996108793007031314664608087668151125113061417982638006394990936976326772106087897355088854809113827175958207745967821912650067321815041493663803209644625834174330725240508612101319810382111167733770608097996177623249303760366036849305025033204328238418129431627954437328381863835929155502931305607783648925341144862550078368901123169417079179614370737612901138954359700390214940603784799703303117632181876786424787888768101750159425563311237510638299889898491750495678176852672538198031974888948782317076765160881551456592257777418444719582369240905316572071242807698148678472658639906225364258169758763885695590443850289237215969636057274771137318620496969843287435562029281918212076649935842591861571975232209288154528203932461797053585106233947618587391898830904751333954893813136866790022369894644448427147741524037895540284045546455519893457546960816731263809345150719354659539010022465875507508102268647378011754656322204881164979511161754642574217593067873889083917888270855419097971557823923685859961320743137833184057138869382011919708493911724464214788332333269645733260653102769692624782282408804368213836175629543459855252391923871259252452659626284632897984564523186122505221935286472651245729483271425788917366819830159241563468638298666721124883389259226996364978811615259262959166820004342170912187713113911853705992506124542676066355389732393764794698857225420910094089145096056666343625860208990896778070756056055553639555644038625494992082503689529788124926095878857889092135162242493617708423577534897818710503645129881397885081304861642482027769583998487901866195439172044146958181843125557859184478534716797837711436712181355332817753475442165089489084098036035482143006631332432043966942842902017957448056661083992046619181624247155378311039035289749939452516665421416746472747551612063777339115575648166856971108983904967770344840775688268711192551074443774253202829233037137578218210087496081664922318156656942532470220740289669587905198313391562018988361460815890224669696183956809371553503466158061789847125506211771995448024747101724534675657776083740329447209745812953470006764487661265821921529835783731559230471459831188800635251476552654949347562422419551317585562500942644525256577966707606634129472580163178106658241252436148264882583334999018288962927048998576492772778049621271262911325649052598615752227190717630184314479491888174239509103064018969010169190560699829793870227710066383616310245214645038178064414565326651493602700468055398050884240519036505671516517543484607210398124021823295789604400128494820646682764047720253133078416214161655256438071555096197057615429637065601675039983826820860284601892180593746765720549294425317076992144896680689580262459762368920594136242393929976264560404083084095802313889529297930923006121500951000854556303051634067582161542095425442606699383340566931478090616123139071379187513286734120752517168714285035941925892902418208751487922374199209336371591312301287171276741117075352331151512013134994732544289100147619186990770534007204271737421990010885884477407533299865485268253119858358967881000342276535172003839750133193386553770702152140148228415967587479077945620494695082983693641482604048653572420157660945409344365468003259401086627625117672272311640681105111170719295861286582038106956676001113613028077156235413304192801907767748891681481895784027348568658647657210170913068743599435757319005655585722064484483245923428291518462513442970221412700352346684608892849404981537379506189861815554933177411291247418256488152621322234268950728506657291238458075211038276262726349811358035733385259000852604799177511062682655568493372977563160124818423638659033223522380147899477132629304759748782128528691648238550360722447653976883761971516436432464256520057100014794260390787735937454268778054764941217469346995567662318924904891311016027587529065818289340571668720458856577974665211605598695199960741186216423351445813660298392159361912428885145481402144321499700546386631729081586624070838748073005148656418741466559217201390840920394153708955860894262830755947909987170480732039112288871685812663536248152338847824982189379535768049419952044672352447949655986002257495013026199895143864209578250704585239965058478830449185994842681681506291224503552886144524165796236285432981841144449347623924892876973950054003781898315370508288770875973495316053617899250578944667507526192849775114969336763697269444736314072066768852222919109449593187405996213121938575045579249576783009212941097298261287766846175027515194942806500744579743111571061546172418826221716472661549787709690160251896758683804421286605523822290297697178768602021861694988214423481863592618889931878122654793963076022033745481864486964346476203495262596674725465331224854825931806811843130422344218585856845772140278480750465495968046426872962609786261906140546145037025105603308980507697954865072551191996779126794481503901588388342106880946265592784664766680511235097626296737016926476567337603641360155373816753785405214707319203204386219256633709151324084953315887938493565983646290871592940438650569925506225875683100166118573438737841466874494820855885256060611353662058658355960664216841183089684201466102848157856650527150994474770520900339401572702703155365413440353118428600865246891942369486658301958941524147047694310676113092329789888720582764542624503414661653984224313750293249669149838348522615929740424383869004599633910829246944656283121136835954313145533685397626655248704040142540987892183086271894230379506238678320298720765885308240086961360065369037789180231941487375042876555570345225011129706797265360359923043774275708180898633996889946711110785642667961511952221805381693183660517707223435608058504446500452480212485480868651062567440928138333351702208815993953516393706118685560703801426876911481363781478838900450844279808905287744897915885406056565407006532458851076621110323825281127424510944270801956373885563667291580036709618954638602291847716018513876179682955275137605838991574732064977004299568632506977460343269625923361637537450800661561420872863045450879383533158448821559661447466896151618143940954178765740118990538559178591087232031139664095490737727385203232195533588630016183287234481455013682582463917593610357619348303163772579003608939004959506784590503780900434318514176452571175078275346565151476252498328346545754036306931694687166351324692521630111928851495068305130042666245708018474578114507708458563107054533902409570142333758935251162363468373483255962268684561097201086162437972250120790260886275353353714136574435610910265560291509985685011260313018802880086814568209391413699084653686903508682586501287594492082616380825114273368921312598137365090045104317904397771478601748251822002944427313267833629599055140222164333933391733091037451550776861171393534419527229590000020944627144054102602190542466632404342905060565531596885125778737788313036438995844880326850595042074099753440431650613696488500203851428771226562131461810307560136025821485277777024919237138016167495146024374560461754050962940574465961047882016373325771418021762986695349636777663786918977728442839146378716104411548863754438465477140806748602106577968493021303662913189915766884219642250093112265766144545131413255392160263766108293476381454385743490395859838290738490952938592603829283680802101609002885839030575662473639389520203256468393163963627926874760310603149270802541431699264248488032968213082288192585946173988605108084445648845125165375486415365432235345030901236914056925723655232751424232464653259651515985725395337745735429621365829586308418938196558539114068186233633063982386187643091371042991797092905827061606861262054371571029467225141162202437610842847959051155059580135213561941188962757651116819910389018147478355523461506097736187405435952846017700373694416891962585297913578132645172168207753699481116868769951775576512309206909642962306122764849541639445284850078222359111438064555077157741669066692131459132081607077574766328418945868528355559457955306886766285299905987348539155548206351121987206102617560806763210824027053205737775501874828591343375792008306950816880394391074371947570553723334407539607598559091122908973125092001775366391593032882870244065367928216187530596498696013311201285945381598781818259747109868472685365202641449471344452011545059070243259887848306909094965748231494429585625005659573264889207532085773389943740101688879159010913011995144948078125187810224744806899947694609183369150060038345916153272447649402744746617733751544823235315119635575250185743883844946648200924090895225362527013548426653366524449066066340569713260819676669979305059259393211236530532942838108709856489754811726508750358591770372497882257557976725973443582762144551269789531648035388472465976029077361958532441898128254594140805059073964257666886458956794859178354408469504293427015915414915066394216896208923690557428496215534335441335586326783748764884240787935457959784324374437727099245970939406847837594163559257563756984681095420705397552255630144191631206096829647599026276700156146713841502931796168666521610134109166652072166988380479049331686891959099255024100667729870830948902815533606574686400000819912060029478354485153285103677175884025308632279941255130825835406314639072803398987297881777265542599371387346504826528698367229508592332021260851001254897211434316187322271487186097224315706149944529980460671373262961917544003324086361952062427386296310296999759276108378072294968843621311076398394329281955877081557037216042519520131767803742652969422197968834281526742961447046317119268092184809433072784599989809383830707090341139263705798312593426824816217899507349572211971734107655257879945697420847592883341945055794207079074126722287817627000890877274269392155440199753535988849488872269040915225895387317976800180017828203731253299599149494994177527599287793269076805055954774865453518249408623572604487238708708359490835264965198269745529891812918709811203324163077311755999630859982957514550396929646870383044601356039567223243836512855245960879310967388992501909343972739403377574820088952818921429070510586313229409098897096423047832331638881788156440175390021669314215511040383457756061077406449124944637822553959607167143147968243885570652517175659472127965738204936136397454563384509328677169375159505893138354962367113129887950759392732968923973838068840955456503571049446075495779427080067880599599894665661505358256155021547857320719013843435259770323709498526661611969016325428070467731038705247946571747383088020757652756367233350206442044534033670115960554346435451588977713398261033311156182869519713734506728010339593186265223406455510008572448602963735215487612541300312188928576137661227829058652278372274469669239980524884413677479756087538315991423980554868826685054202401004376772522663663026561215850533986721263781089893040200532343036354844351038295863994068868211925261123344397536389294201889497853567628372404130567411548679481496573480576691318794955531872219557085813129332106390501608260785817679406844564930341652328651916511837075240607564252697576696708979537057955531963560852354789231079502625687863889465348825243024035827974489624344841817934888264746296653218879303469339483807711618142002651401551737357209471084771738249522213269921753128302087379496416009123736664215432298288197808184817245790838149284389002586798717368993020553924674415077112610103861222175934897137724476200710968387927078103346481021582352014519656053257680580854904706387326161742463345887020696288391302076934549361459414290410541941784107784124305235943050798587508778221860132941063160758438157736067402538400487688282062927929201402885534333915125499219352340966013651291712284696966860901965761814230364787440944772794660013917606189442071315006326847725059742583394453889106820635775827070696459182064986231920634354545393284582971715432041917316506179744450857435385880558606471648426072247836501707532436830982450364582222303386053488706356374188286444411288976123565355201125638042028227806407180951119164838165379071835892524913765031274212200734560227404228014438395657797711432356305781826815813640775348901022877378567898666775831885928419454670257363470033352026672513549440724681938843053330538509870864347240005534055078364319650107055475108051885137029611357971761075542118709754304459501513656432336030152678152764539929352101489790374700215036469134402742571781766743637338627048518538173371264545344646273107035675157383873011590173300121060269052497461677989873185257634884490246537606733072293698453466497390368168540838647494309022233401173176062818662907513971143634788366415196676202897762340034316522673948845992855918378550173453928278376305322454100378460387477096495835231417206245267957367920399486437749615653452567436105239212730880658536807493019768496082910207396690212382858235767900477543119998146649346823906661183243829054107739458037980012878177568240950063320369567058631180550880332807993674073176477522034844076191188501823237091539979091853217115727594804988041029474440203647725285947878648978318679956476997430414322854991080382118352380854765774956193904621171306606852510463366790728297529903447147162302025956100760282784893775455838026981642317282990343613652297710516037157584898813428798953148015921722709782737879259662653626847172298785100890715690385403430838501068278860311707785302764287311321352404035789931747311581063903610967251041197529056661585191246754012050363500166576106950271956681453126980147191593796466750813173303397032749540067870814909888487809057283462636565441319865077932027604190003771041294497470658516088868513750587969395435159285332168495155344447908925015856778575351317502216171432622537413236386756261655837608683358975739142360228546923376500557060281053961590464825029691537319351479770501605157861052559828035727993986141226486782628671840407420023904428079571811705161101797709305067296976455792021993601699112197512655606396186913488961849784256911842293864299386973415163317069000822129947170581099526991383749763089387303632965044892797697799455823010369385518903159904984315436473003911949003202391524516468842208735294859569315165278509244935709803645049280827865260984752826361008772957766609049585443436974602888103375650374053269494140786614359593242567923746678144122399909071002782112959632304563979745043107926919912433460693414188335388421203663753213315882053756372403134881995048369931537309722912254662327211679722810964354958511456138779919942886510054965031845005415532921885754359618931082494113888889842740354101686599379971355287394590059256288288284351682980100537421959422312904044480075313262373344430238709867928891488490845617870301296412281659014659634540682107656200883152640814679762088025417681087029749765962761955335105892973008566614117661162774997417815288376026964229239834331038257271078396710193310518269222199725392271460835288316317606081632448846737647544305170246292308485001127811407862118887238044650257709947490372463630636586753534914523960962011909369009982895630313313360731055705442408133651469331097507162094545789296950969300870462373882872101125440115471367790209224551449552929150982489540195242353858673632435633578316504897471896755007698590602742488740245666972539367915757937602471657285530338763620764635046798932464999716388683858782518564525132025903045736876361923049957624948964698545810784316383033393387808172539605751451060469148785748363195724514845668406969582094742049747826732412874271077388165648393561397280315555092008171135191502021871030620264569818951346852227204138047810380788121413611200146607882226398790166181636239503113865191733782029299255565814346785085984840948427698512900579083475319730838417494894687569773778922636155834889439481166788730241362175820277311818137422987398158667388241076959818395270300025403021743344728956613089087435608541844654125941081919020019718285931451357557973518186518979124632029780257145939693657019139850776102442581987799980395741388564075411903351250347503762897698285761050805440171649770489233708678064032441496978644776850314199403344138190496477493827501719155023343830553571516980151500564522202715787175314603499024638942963915573668607158701992823255830121066533520328751532493372158588137044654097774222445862019331469427327656031316427404826673259430454066618472323937206239472030277048139767794345665087455671388766472323273498834616543742543090840182727292171014605700692190886399491793030751058650178595544905674186232857072932087483900347956410874215791903640774082856602584458643092960593807974105539363388170944203454209996204563713764096332471979466290114627543856729203178445566121006832657513464574623032622011437981858225729443022054953951295233156221940737706961317726127058100251483735517264454941397435827265312915145667518301086754342908990022381442840470696248930490690833812147783786026044461693953747898777661561899197336765496547003663311104008134375351788259951642936577634331419133221958716774509197621853666579660159070061865215925490233812628690891472476393197672089888786536148496471671612420299162543790681032289324218411735510039307707194520942374964898451291134643022535430922979212376437388447303141234159922732994163595076277943020470374141826965908129635524335125937453546416134890242700016114799898102048257592608722124391728180601153954540293291941183887161378148586373698673646422068600784607295904268825626960383296211471195742234962259385056888194113261411414451121050988671098288827656622838326518180703594609760017237451886846163686865560252924848537130279123469329765416034316642646797070377802286363588397888532374633363788815168786260704017593635980598229607944383975703664736852534190097370114271344558075934479767414807554113463673760347928665178281812651685891465314811886599149202329095238652127927269571197621852387983421920017761237777023940617910653760089400007909333189527307674264872925974801950385136141989302691965953486089841740077696073242262190593091081536536855371149305373244530736171213088058274673116276639779253372950467260444202546935160888748540309195779931915623583451988654823988567433565308058461427858835678451769547077868031023491568793779494873618089284265813916617572771794164736760878879515653163912220194588907331961720968886677870067734420125525612763803622808441747518771513299582169210211843005371294403895744331250986592035685837011032301713774537563992356950559170346021146054156386101931900113829487472108100597623347329052877874555159135883088648578186122414533271157849620367177508950426735797853663228497653584679673247888470702659161376866894520254906485942627028505030633584076704335060411573000745492657211289683566024640236377602426181094024328191472182781945596493562426587265433806730303783685531650597451052427844620920429092719194075303692766936908855286866977164279930649285824281702530663909395658774833245016740839194337891551473999497378920227478803148069439403933111271580113342428941055055415762541868753760528260556593963960641781189708479660116295033486860330597276471596042802536320820149377658079612530113568792217919294164259299017950312259358959298098174699457280689873750822706049947787964332276386869624196046581863193647592960955672092948950256925629618157797578345725511234976853026839382911889204968285488128855700431034585174704775319683322614863482788664853903955178793462937693277817423077195411773642288419673547485822506678557057165481389269181714687483282917850461335486181646415561968764829896004601350452394078544994875231029829211561392590060905793800189046609463400029885139444432476085646182676924750607833541067537715192394563214728256516144918002387091074004367622133391765087650947527764835032466836046424969478128812053773404287055742668294738295568119974122397251466313537033044059007592963805824612613371077995998234321616717069984160915135060290185873051596735740941826793312267305388415217286132441082976206850283159013527008966125718069379440474958604032109337780564822849409622331345237017486610915772943672407358343597781650422612947473601848791121397664790755354402715214601109491093161188584434275796990929049283842740643980779815111479898800601797425734277241327375477717580415709196639613552836538587838614470759293704816045767642714290031086874998897696688838699281195085702271008757329539129889238894241437997819827725149400118764348673950719148909286903436177834706319477726223761229250145404904101840420139065745251580165570774396281425396209124805980200811462995490079645499927654765101099991356509547084885514903059614744364064159793422663976824033407959400133568694863662165785820730479733330210158470918067550464097732128044007583927105389946428209728615988086701344733501984705902152582122333521338192033777092967528237875776453791765056566556491356553497026274208662136047285355444246453895720684275173235516271014647230967668364858809533771261919430594371215673523993966910375963628538865829549532528021997848460535521363680574115448751514553789257209685620107494724109655761091595115238987893211001550894086283593637605401136896375006595251083291121027703450946106024350281491897895623771931666392631008992737959465159396117889050740590646302337792766630283472418395910163604943278172471068891640726420728980601338737813719772809999068580290110303519365606501714280023383148752773005716804851372107876458796587874879689369668925591544989446465867783856752760071927466929253220341463539719253072183958128142188854993851460744651033192535097890999180215105259921232300455333353844134044158712254416024698066634851127837525593338048723791874086401013197684754151245144035483789751307285839374987148294554936332345585400136296889409917541677361379713225539387130509274482842013063761777889452061473922540046779153190049516252094287917482509229301145984667239201000242473743864225489154613831077685867390285002048428357699068601882724348610161312551054281967213183046085529260752209603373138158524971624610511224842444800622774086652515490380170356703095663181264952597078338051194683963460317942478869881431802040025697804879074133941317245810858601617093208381001451187456038087913573438579448919010349195636641537548540083075779226645390666063539421841422091889469848620350274677557586973569965803624096630288627441340252115689748820088150191263190795254657412667022637619409389662480510606988046550846908433088658442390579457313888945674456019965521708582322130369687953772046280723649078477355373015942070190503700085376642383429250844857940083136881927543005062907717349926741474182402026006675969020528610807040496496991909699840561411978222759874469843546681253113454133055115788001338136527286288955076975528683919283127182113687069330129752367534003727100822673836515937728684159138290972230226551528907269953861134551235297114697039359973974321072918927487300781100724773880799888086940090712148292481855053602650126699590182800776432239115377740035444312002918430117021487412421909990851332833470221428607590684963148447213288469277113558894433919466256440107453598906200421619982304599517557307644771364975559435643546899622968401700264828295807107710508298013057608236204353554798178988519726535261168252155694964005573531803072994182020691185161553672325932791894747324951566390190264675944837337179569453360271396208000960241212842369400832675303348495853418555732439958531208042832788583549613031588046611297081882878782449173626189166272729910604727796767564355804652262852696460838858005054885266834140552684899160797180023340233129859962715498683396561338446463653341842220419802010127765334803241464595565786276302961104292244663820368207270857422786624728967543503041666553088338225509699076166228805919650832044846769610687135257941769101647765037718848328949814221714026323704884587873042279421070715441320562721684894008047423763022330903830055598929406463060270450603589249049894187864570376136988784432326256258483719992064925616566143560170144392440699911291252525970115493676061979577060650552490706015198001797225974927455739684442790429245482484098108861312776409685395819379884595155981763413905613508626108251576204647342745129521057071751596671948588538822461214777907042462831699623407211035519450185018694942867198181772390469450987412139488975499032119611838933913822568248336373029446100461415826664762969877252919401530889046002958993754656766167230972319559340544107073970823982550668089162676186135319319103568839930142713844150277247259703040600263970225089846297620162314575792723211467423694707180136952013554212898031441930109098984718750408917548650520416840696748415079655421686880432570967150812157405797660212476354621295154920821211021709587347665089205590819334362999510273839572380001487820910874027430910163196246216378057015259831481836993232304983247851756084534941464310654381291463886980677280486836236858306109249232601562976776542268081973023103207212829535117321052118485376877029655730583540457820990783444166117392740350505909999844144955869013302401424551712813498230712530694735329887091217896719350581292224939248147910872636559225593800300693302320685656801957360552723130748777039506580522865217877840404335312714136841599683851550109034900187659823380610573865016070013014537048327719871185611612346405896393147301055061268048155540229591897791061155092128997995129896152509704270929280985193239290576580501780138486083340559276539573961919207544295526954031316515164778932883529282333012082701046430101712475287707073564483481598625762505805294983450933554893454293274140120143640852062093660115313399552690146528079500762325317693433088348315756210071751190640534363217921372536809273213124321369043507361985921076532250145488134490394941032026808326966926940501658820844202677088337494079739458429242400632171779832729829218326700580149151151688339720570325807194683596873523126661186973303191294327484028087136099217175546242970447923154154008879396379746822834776802750121989330675059583687431255418529141834072745500390308044029012324198901802326142123783174291001736610130679396466734041902214482759416348383102026047635734215227183061447473755426262112981068866568071335579995984524780780379147687520197513293219177613542994538365446018522207124398249603457902549815263773238375231447771113437143176846223847237575709994260803487579360719891673133165918525364515309669160178230977419713195085814967816566058270995645774406101194878430936935691117778794505745220001609400449953797196669948598174925635412789948228495229032497881436869572421860838932627767299599474378081839707769820205575788880823956875297346834755635156204544919974507443470789766044646042495145287931687256109994938928678709194445174810122203991973461189725050443811346925909864709832008333398479853877936909248456277096154531629481141457619503817991504383888040461414444595155344674525289435661206653921352152644448414819537024032157394033976338107173285845889315981776377401554379672566682667388917775863775630400877651152484520318173202422120424512830979721823295608123720002268465608995333608765548363834201595431964799484779985975551669227379367335426574041354118452232975274492496288075639308522556721609877199535166726296424695420354128033594004312109247370425798977057674869906681570259767257581170787102530993522442519477494057763063619317806104382557974799359286905990419874050583841526288055931313867523139892925925462579284293686097595361220889539818757474763372594491881445085329992521628952305985564464095993806131597328651394625255727079949579373148781938410554490818150355223334928282842924149602573816469916778129692148758261434151325204724915755355088981596792533637528770784783266813646932601976956252541169039982693330592242509395681103161449212497173287996722068934059136888031830049224715242596167832129144457925764125791076853549524714887626432333760714783219779635564863046054612719066737952925969177427418071936226165667245088710134644706973724059315078692365562497412614535476166893635355975593933566246108254839110709305785259975895765971428845858711237250971425277891837835673328421241575173891705641845535132297643803820408772227147889994069610879508226558046564716767369986093857564184505778257773777888657877294236630372522186743062227279919867164693654192180568346549494844664779124406779298210670142033853854123351004713938564467342432181688413354667098179546696563341354430299475019125196166989569307996553658617694085601767484973669455991501111238867008080864970842468107843325686683072005757630023972472524341139491359269027405249868301202693448188143501567365126228704658891824804091277411165100622485312768210193950183038196243634258936621181892078511885309583671064130552570506475221463786114874788440196346875936876261166457691211768910816870092777811302399309385269245127344014856273905784279162475699994620973029774237958307318000475466226851098917691300700240269180464000256266409102233971000435607860360153710574109664869870788170111840599286975680826814776478574314424870460703748857893415366605957355067154828086738713968096837016491332620349826838857276382247782145892263487957847976118007900771082617469648677020499369750601783217902809114460373896189283865144074280512002413359669366690351442470638418822733383036635495567005694100268632169120934108667547541034565609591405593668412486456251081126702277615068890698651622199935327770615249109014215951919674418875884695423530752099318876927100296642305546022070725819304690606592065631670239485801583440164469170559326470376052442493606816347709598043915618753630213105908714009409366912344364280461175720243113181458966502078432768905236893175596298230797762023693350228196762154896422364168378347113926202531934170686803650303735205917368260602058325796031186983482781758217142782290453699473848041382219288692029322217740033082095672658066857760214051844575010536360175822295966819521711918585456326951277980526125923618150546881360678455605631886626056142420011094520325413501944140959132957782218044471423537908560510455016114374192455434664641171779561985417548987147865440593168086037721343750566634028865587008035442759926595010542644193822081888927219212572105285528893546655355296833656764674759366033691522588963676187996606951655160573690952037460224863363159532430138472587138451215960145951484617110810073869691215033689640767389377606449189348277157266681967880301127251051539997975531506217915634666764398537350945077542043421186293023788705161674095924269024626938588555443498977108513430580120159130135781743317917298417472727478967981435274720091965040049010698099049383772191411715866138371265680906682848327512850947391399278205847238557619634315259347574742082269294285653710327861811604097757684704502483742711419457386931258919911305705025216769507626028709414335108930658790912924646725373980937108230858304249294716862038090743678182931936905914776853609237338363711752027719210451452727181275918065780131287787518483770300264845489549069901529132655273942598573633327773606240563938128257718448218839434503211300026822856966086924697773420828730651470695635606447225710721293623331541031568318273922504044434426539021231845931594933898494284878192007848236360558122580018149390059462811864544222716550300464533232262218125181180100025813618291570107343121780322957755249704170800978153984015977872927358075451273802857529190460662456293740194001167729501610146178833183871368153688072795249281651069421604182487863009214581618211918645496147895211407454414591041970995840744288053249771867842160716527688940281188702490630791072559847713342383419329785686450729111607927525809267709012789282815924396116605365174686672383660430434054472515127532673160608598479656925212861081853868395725995950990688821114927862099466267031181123556154858419278595266940619566040061047462176651934156285961205486114313256094166535270705864411329265219648152599806702817330398565461873553768964926058158497441201400215217324722290191926725717222494605373701520667382042418907037763238677863625433889226556226822138887157524716579386545199028894734999116572314359634372454717227035825923536307435252038686495592737488879414748336296414368999445955885145525212493047222940813953271987621405114624034492178206362987621330295535869877521031196423812418432889616435939291666106844625175116880579003873537383223089084457486471389266069074890578789274029334379752503620060426624247091793301759612869335502485596087135327875272771243136884050996850441012364406605034978771254104017598819342284398326839988656381445752858455633502272322816594748571965953991184488179039907313937917280252920221982468607985434986654951492406707450960270873814466413682992904410439682535471142094601669850387553513565069089808200700134114131107151372287944543908606608995941298769416398843709800961769449870064539312936254119265981666148008290631340684987896096754449000251932214458428680441088537125951894080499293743641522309029404960444318249696288598621031323852708445549073652791731310383542068195878164477491503559084059561755507596482615832257017833994580855140745072991021259338234034668966689309069910459662752736809472646113752482125770798834070445494427984451918101262339695741952245176037663304638939849263112545036840128457647025305498298896133858360084497609191608546931829824472633683138953592871685670457431070676595698647641244454760195271215369627187035046655282402655691398706383745844753653572845751822542889236768940868355753563774843321011132361983312919986513686702570135438652708142107652133050260293281671343091345613847441946291209579593237067019866663524714277138385802113811248774967874137390159928269152032784106373623856802793043880498634106137045188166482750850237084507823546162984074539580791117621809328202509827756231147509342803598945632297004765389477138538507636482440537728769885211741665294757395822763650052358264082128900690351314873384948917686043581826110908443854414811636389896954370871108927389688721834074427817204948354789115017230228595120564959200193439491624765509940404493283500972826145082950925883254340383599023227999817043595020779926634342805038177770750196118800906485400169067422657011558834146246580620194567058837790658169196498983873460565899790253190208512901144831198352046823872054775879295871670684144228279074001159274933839713375938053192685744496148446793310034807542131253562643130658979744098338394199600312748841516235883081738752553590956230835317861500085787298809168839049346156927484611551073116039420681479369792764545556672810452968980540101468518136934835402313060814441930069311436111020802345570548000040742810704150614051798883742726456324778824524411970808266096512314476951620854167910507495403514755400835782237611839789944674179713208690178627824073074744856926600522309414689897849252121809267029906816416277703000897970846686229285000668597414368392207617793769728795301647515162254931320275588963279671975323677922630684472735346511014629846167090138261874748055670342474779639742714951933827353653091658341694855255791795706320731611455452284102591891269282580950117837041230441679561107629441797616452624806532386385902387716571647288806460379587995367930836653881188617990762354144404841614070543686501996578399433201249234531358134743730085988942201912252032143761963360866693636119488604469532541890095701989681292722025023697224770404474561802917802184416117648102003768928662364958266028887290929643250345567798468218622605755521924390478820462875101634843329716703654756495561515514656152741026379935113287601066396217625198962201492166085245040844685617795576963054085478729814748101163854781693788078685296982664553582442152944311848855711795322626037892487481745901032110590708574156208353711655536588715624765395671236877982516948032103809429015936955490983654829221872685122350197886174421749221886457739206428671042151484297037068460311566504655145985208491697707474062644076373251902909116414956963904576502138261950096182884532548805913120480874791612977373591649110193270286491416350673346719245789622679262486365535080900486484294467164756164578441695843550397154476142067718112136393687577043571858813730944023917083786863396434704143781028659733944824809177274159599997941789367486039961757971976389389192046912657956771356104717282298473261144015539475258415064999224376832595263828753115245812838492001361606050221114355953845873079426634945693152621711532316247660307175012050389406621343759549806069173867626286492594350912543465211707699697446183043539128215322206649367898916135426536568636079954672752665106710258608351050457979206609234742764077076173937004938212752936342817559843197951559104641089237144278387670035141327971647303455625499152651962974094293889901704860748598642404589202488115908812430320287579266042558651793611419210128889639850732145856930910836371652499828435124800881509265709207232533461466460618383735116345783040767167000193844762476396772079054985536234728757569330103089904742238536833443806659674400367360336884399052456746850674372457970384395835821543484014967835853336656761460376084712365741312197720356735807261718446592194135984791949053730858449041258249110040363845029875113941737217048037920936775877331905184322502934975977606901212075171871701842879369006548910065388439861103583876254355929613163364627894968972519441916726199921162890565815815442133980358091641267229168612226969641109225419985055735349784713017055039310996883200931159009107609690297411046950443682329801083579823872615943876486968971699420712600711019723251796118416180864544534296561170095856336797465936255184061426832588767258160570103099349025986708687679325306396782133031467234641172446565393529535402935610926695804392141855977889421779960538692848457285127713403534335130468876164329074153792015194388810809357465935130788619826781445838228105844252953946407874957952425578806165833827679815605212997851170781580955476975142944106413815260363359566812437390642363647255672645617409496894682020912212364921261414494343058521044476314729739075196995878253857890225228719052207420144402842714265362112852014189453098952439103436532203971636409471490738269525085302892571761410545330971798978341569127089644064110577667809178147933257032502121941541509192190710825279734143795272767250968735033578954851497811313237551741452056754353264861342884973925789547143078429813016843741809856476489058534157167087963453824866055344831708077523263279411664611367323905286447570156043535174139174364205672569826513570642496800018385968043202583294650269842737890548896006058387181108144516126190888731207773957723847798324256020103567129517455575514498185057052413521018235264035106712686571189866707203390846833773122231177308697264884408631090269275473466057135339350219236009900333004086022017002504754286094507475448259604948549266361787792235626512464584492539810101034397518672611452126200500668204437265241085988609535517837769872043887154968739417510519263324953545690380960458339098962245153538725788235640113714487865924844351744165017770112517571051932069361628239036479791870261585877453152831602794666039622635040031685122379592300881707979036327413648640226960009159171872673758704324708740571165542462662112625758076814596096143166448757032395938930742782555458563919596721577093221129792269308619080901150870919917720014427674395907593234480646566238191118157802973391866454530652209967195018116352624197138044148406941261131897347910586701952836468184521492421781434082251953087660730244276539841807121163981915666887179356735362775930659747823928947572570334705223700737025059092132249593284661280540838431830805331740403982917011293206249664064964105174171969576182624999487260808718885299771427317059893894385583957602522321698976172076462621939218887072538784981518981253006795716999148301603633884332582805896461640687994495267406842994693432686711609365207859284190082682595496898483827871098298225405040420359007848215808530896742983440452811328346636582633128668743913451644478268638951997195896060616644508613275459452462622229594036656115812365586406917608193507773817762453240180051007348383710342992637380459679264126007540951132166016213910209069736275780981055107811007145881907264862538100173082075572437441056345056783207326855131238723629517174123956680193660794059530633003536246351668942351366315557812678360293787769372669229857796867084322987679118638438676309363230848948376117436671979837988233433274689941889591484730859494296688469409915102343458446918073154788029900200877236948423678786095817305255675247582600292322629681881353084846879240820789596870039531248879153652221069247231724948745701662156183421354071588579137236622224374947350437602945496430128598112691189092623202541932205688126879736038661201232992522535643161420915843073651063165997149013662571323589764815991244151661585153172803249529212229153369195149186285920097343458493900860906437153390317123666644158602365061246968027113408751657143849979877885844324005616824039655231466398067060902921139983162546950586405156307178228810861043755017051166412271930803930948057295155967123310003785640778920566748517636019585947948270223901701484662400870663616779166221501575075956439741404019021740065225654671137976250568262219992286897156167426298608020844590964157976123257021792884539543381072623676123070504273430553935214396645650306732802192713466868534388888098848962544710142300315384084882011473888842681244900875261281425297588112396577732089084743566445455188148488150162724604393863058268974293444399703957460701121670003967831972472008681827112584690028754614404416143164801665492564404273369566220676239788485245364848338568329868939531531734525179558601356477572630797949630952719017218385238593598006933522400415307046862290055439307054645583783600766052448657188349174412565759597230794407170824833410999830282565231287315374529519110706755264713058466016640566719519705269762407559401333695520911586055802417228729713569208254274414187527634876699090443264625499573902742575213392903163324390506511632710026152103446528179137761365598679932151428406006400831205185337997136420612081686965810543366998191195123611194554468499183386958485318350718761660105544227358140760857766140618248930561400369203120050050175861162677243919327478128820653692251910665646808164458229936758847253935387593650853040563911146806406893241440878908322085524861198679940837527516028492947527553719172912564839419211285912440193809377196055672134979427153864390061545371009900535103954240160564901889139145206262029346369644542362745861621884925488739471982570585798239983992375068050461580169697139035723363207286570974016087417573630954047950726082878389138249320231827294287678690908725822214990914698913957639242676041660790311159390536816666572900880238889629033987890650067538963298082158041606499584527086439099820846215659462418236266538269518971285370264616774113454583661427620269183216369571713714660960533951141568197715158938001403269087042695049095677914364590419627578596091040173235421899855772052366864597165745182359883993314017033658562856947884670268616863794877801717464745080306036425178276815864211089275898895422898292563354746771571769158733727394634405922588967008280753857611690870059956680765332875662121334862909325809279448155355122343372959916826175279793646736065645581046025542652583712309294096076968977105038303762703150679679684709396399185132918862723974613201577523376015431055961261988939648085115665710762583239334368310811798946582717721384899500734650915241242490076265715861801214735679570011210722666626491810573650495118069132591366174093995966526720520394648127681554825574791683210566521953785370595913636487363189958289738762518816633554740016809798018263767841173965356157983523409088666369473519622342713115648402919562244018630645242787176613728440972681602797863237032250614236199771011370417670051086993331108439422294136112771815861406939146138402310624203512679945208633386069969865337001709521119537638390821032409428333331077062048169076648202380891415345401214745122151372125527494433950284940549284449860805681166071430400129075395060610788843219827234757151088001225042014289003215414760647537983000654735893681014812027268317975012239726824707477402640645568541273622381982696345027752985475608477833390169866283493383351882423695960253563067601353041382985089751569938783994134694953692157946007450543089809598982761887318791129341184510849609297818504478877337401066679897180039371126034060148715618735693934548169240106089106303888692977841465439066670513143428196073535460882810743255707708143309584787444187379460728456641231418373445470976063669757700311569879013791947545192535974123541414508107464960039667326852459210078700183458024921880415774777474006932705713082339929006103863742091692278338490881852305279555836563866231714689770407598754999389174263357323609736563301099046815677472511076373626190030517245825700740904827250097907384327248721741209149595383012770917158201218913613649902789277860013509641775467007080070214619415957661432693784612404065294583471361042757752040009122201939265688014710354578875310877183556680744994468240190729913934508302799587965108259297117527154124572065675179260941867988254261240993556820949183063931520950848355294532523364127145014953269138817361875473264310873918765345025179163791939480136054460533244239205092907971110950436240841869822445731574989886077564819726351614596456408197795514505698865789730239684753013010873275370120348789426577100784851970991879308428925714887828834625363920452656034129992902949495677540453915084699575145802627938222630540106408454907400371865802753360684720086995444579829926572983090596039578061860372171232770861437070658976917640176641678305923059318567343219255059463570838954819121943983824241061639188693144632624265130787644971230761331320305269086993855101332846140162754335846403958652471257112296662947555886073913145897754165729674323424875897451811438768624141633861958688012281891980714152245133912857454715722585279402891236856540010373248121591564165281398722293754986726138588812411814129210509951788060112924199507015044214491994227380984953510482400648595897739737351709446607711404443514947211145497859493780001495502429884598387923463628535850922777562168176093452540280323020684040709489995156426287748846245310417832386345706519885657385065050137685887962176520333995679066223168869412785638771688979589823257554512618928735390784644113192288260228174446500295449224701173494366723616469625232333365269953641313948964311539196748425450888371451492192249611711626494405033365244637022682950217580110364893921597612610252479374157272199783385246027540385019572157087421480951575267506585251764552905569568895450499550706995094198155245869675606823491268596815453248786384771749708269784193393233391766137798478181966768820999999906694701434391552233792896426239131413903432355076964764928514319579015520379632316257758045394978234648823284778513745877607560008366207551482624342969219244774486880921993625802562605787207119277147804673696607832567676690215650615345131226497455170845753423093892736659007639917681351221396592695568747313916790510994210759836461610751640291667092897559017746302559903738595280285497167233485040715308782968068682769783146945869380793481952472061485557233217898749916104587122282420312074882791797204613785717490770215222921745416422421246819211254050023884253541381870845508819511151455081843844483321742290288342094968189325033767237345955083761538010604101058846409504846157657451038120135950900219710543710235896034612133222830028844600386269427405378614305384843862332997424676610419496401176592503508605388306020369722506782263104938525042987650651759026333397003925824970581326223760204067647789502810703207986876413739725514432763916344013653215583900966175576341380838589101513278020720602356537632095276651137578867378485948606190548376670417237493905558466873349339400604174820357741141904822071009020906719110909371889599560667328124689724764666674152874815442663169354143929070272086131856092998098253037000538187549131885040263049471732107796324211372175813687502313164322473718515007256741151869391361514732478922679373567631410074371234436803926041283957672007312788308920740804141690818581791715887543253993089157464722555975183161174994717911730682347408061841823337491897654508074325446776533774310482176687395279885242413239652931009766590086867704107628953750509530332081369048159074810200171280008025246093106268658113880515079332580814251347083635083678840728599356188478010862033210108832906105615482828999988408711997083008653846214765309265786942660170448247216234534808327458088132043241613549627656134066302028446815659102007155888494984482295505555545910993529162793227930310989640454768236436838764410684570798670469123670319824834039850039519387086665577738322102214732261622673483326395146583072960929663091032545143542624569951665692680403224905170054001040325364361249553398120218423238509045963592437249483637516132471832618570278341976568155279780624690345989007629227582910937469097430574018296346577567918497473460962078863945118026685202292513606237469759516441066430907299756650880376130616829827479645222845146619815471351643381144231394411310111211268963485353853986415052327892094845422243928740567025770959285560860839907363072543248674294643957896005535363765851645261793011115187515512852155472133826982500049845469787330172875542896146034189152896463061224805723790508084397339267195641884202256450043616355694780140182097329273559246557532121717973836302616349819418767169616322602985929524756065850509322204829490068426279972792224167040838715800288251012464395634433956007701190197664623419454169477190293225947104344284152844368292193545958591806014274096763636941841269701155411083872303981871665204079821914620562911374294264926733889317962905736047488476308065591278801683621931771716793573614878957507304066782599207126246463569511453990097780225838437036897828196352586680853364468920592969243658021341726115802789078873607711578878846403717539491079279395723281750755387804341252126806228874942466404470399444255039258731147817466588855923754926090893963224797722417983894056903106279510105336666565826430738651524556617662157988510566915221298978199441469614589357868159589900774968218994966015645119785679368233240978745324723564708706974486134973722582542439366535843953079507972588197678384900261867667858182548653979397334818682931703162154782429200283277303631239823327381976266407313991369622490130536935650932419266749637513759427570496226565009502342361113566467718736240182701448354862600046791219503758750271274495882002768112331549338542144815911018263661979628029532459388153414959442750554157942345131610683913864645885556113245779914057288224089912769017396583362364274176663298525342171728309695125528277701578437957447262074372091512544815046021009711813082281048446025266562717763200231990432947095166112459656943536810098265637842942593925010145596787209781165613397996472201791642191624261709429693023247892413348517764121493876815425179369339753185986600576205386112997716786502963201709518870362138295434964160173372931349509171222898262429634462490456690865449593258209420258760581985267448110250274861357298797659255555996581375239241664351702463196283044112497895562106469063162788708192223557416307141553402397229716595590774897665904905275067452565877826095312275391049181270063991279438817304351875827651868974581853685554620663241874046341459813637865705998368784862943760495760089228750461413799998458536884333757145085732312200584922200863890318307721779021288955116475194118194360806773812648959091327264395736620996189758055905123776505011647745185580828537862645166216288001399304918356579104341236391005700190802411745195919931925351315143701487954527344357094873303487276572195294859471331437027805267456635354515414253724381162392727250862866980756103939691073606452001300608392983037853892592885592361115661699392705924995288113028057361183477643664906793157828664627779404322694191016407460497564556207329312977121996902234510214175382550120843970727179817274366764869212167472048970313722604184813301381784355894733305651292626255096038697646652537974793484098451725738239303272997661051922694020434759945307351918340604397225177763322705901568741448453874222855622873680642304074273496121340020200207186967928413064025470856715229264525781031092356717688445872848253057614457722356336834537187658638235060096991706251700695456839925796821760403669750845798536810221102505071973517982108930099381770524821274103913703944015527504863975667092650231689500222836636769804990926400662740975042537294527198982400740032612787559183107820543418442526123812728042806018966674699542729593084303391139327285331072914088082558676281177849676821297466285416878830358131469855718006322520996848732699402125853632990653534574974912650941548694188800374338738851993355263243340850895647937996398557740681067987810150651284468529103537496408439173041217449045327136505307983828280640060001205496034176866238581049034279951126708857999751515037823210105774687202515816723031576658971420212230596816399761979003961331276847623040543284743554196121573051966413309079718569630699621710684049268280745654707048220175396461550954332567283830900219178766349803856420132157085515863883038916060169857117314381877364740337276264138068142556861094814779175202555443163651669004659728771576476158517004066703367476161006990960164910548917701932940323556335992040615008283392232826470011891081805979033600133729243179472406446308417500247640230721272635819570981058421360034150503062100295173126773522514020008367522614661408200653958616847571547055258436679610048729541555120044358276724824338104710328762537987554481780266318571128659161700027017750133124915490487135006486855341003968859072810535850407606703591971332463271870745331698421307602251525699996593947659986889761891805198460676472726102003947135801544146331914382768712488469751933191190282872392371357391716194593341283563164739816937066024240448066386690453356099136747313250567882030478496882499293733692487815682084569981854872404530034633731968059218239019861615339539639606268012667474386919339649816960564091698425536320623525601780075942882687130745858340525838236690935526302374742355592880706019308369863786271338741487239235093196598367621706702467431506073954069627684700142524867241360925342726498719862992836166629189366135297019921729967982498602755119678140477700016801179686710068490549215237050847654826779934241765984111580894397764825598216864543300945990477090805625765267240247113628396191058251827546386145666038504858897679263454599580605990012045323384593203042684602946006638191112820019435297256544856761786249971106103866936518709082461909822764584895587416941155279803007315247856338956970400894616506616260721326132424155739456273746514793633499586865395723534617789898312999500633516258622256311694955795910234267985000557772861568704673615818422315914768208847243855545024817703362368740578489986919950383809868085025025695090020856654417563735250438911050544055279584555657486249072372765951303202682520884435095693238570209940426334410662353593389902358396029096059137096052066694604046163339433483440048463501088201660756135411482318892681547175836348144539347959606896236149104796472692368518268604857021965348965694780578462211726399242524453749339839012425133599054325808516732894449190179381285501684798518196519254910622903723641015412306283957773480251736682956592603346125834078516955804454761538192899447226980778787368811626263166136937165441212202571677483908543006006100726112167994502197164524572404454795495983907068051141578423068023072527400623152763857035438136095113872593356627992957545350783736180268984487077216874761195744540037524762559192002866789987182554486476625302247673008344579392122435301467357817359369562633641941949980140147345756076884514025231649040359251545900703303894546937799636899320073169168160545700875855138549075813127092265544815425918318106147798103272410246371823357100660219317017785444235055515848518014910465946646294782620375563050912337687048962478564219002214800500054388661465400229914476392829980720949418551595931889338319743206762590519945166755588080676301700732975732529662488207770754979278827493808349813949394925927585737006549621877631053857370113379089225777194524238772480558894079473741684215145636252013707124529582810065313134131538005180030375674894895845330245918246862793133834224676408868019195008871491222115145821458382979916058921324848605487110122656000743744264169075215679658199028758729054455513116263426594391716728150005144551321628389432930345618287316577916964007416908791081143296642131170787559005141319654576145420684003555194436004874182457086456927294061982069093290514093184737199187700341603525156749939548569871943913569561202114946840117770301108670518870497289075484076454087375827336883802697733374589231219182321230842550154446647889428213572307888660481246635892742932786569664288866237708021330456069138279071547148835094731298080943036959428155096216307980779720575219282200274910509273388532786025134004954198698041915977412216354771832858217190609222928818716945691852804680361344535754083486969132980644760469080302408400358803485150382297306483060862511677879803224305479730287384581636928212445502954911189570034749058996752843989720165040971384457967397794966219429875358281578520160192301389294470537965678146967209597861980452480782077143430250932931106396003015076971253474903327641948973010307710725002249138860558937920658637123326912058733242865745058975215937284083364576982944065139659993874526426239189004080628698873876119337594003046059764199862581137993933336698078565695064713613827817404943404640650393070791606659795992485128043029371698703776257034527944923722695116100138803115969950519179012093068299493544860774653792115760510407162493317549485138017284549757463490714447572934496750036530831140454050474685378693370537258314985363101466485148759434082545295609836907101878212115487056878692937997479785036929106148830279296095140946247417215387037115057806472242997054948244507182595218645528606787063545552786334479037606159805671535080528291630073617714535263462256235913691062581375948220597896758707139281404647623091887112736679010802212837496676166342772337169878844488780269754948105940586234551174611442737322524057018772178919317882627359191687510943505838028838114484813509916688827650479475033182944673204302082157020087779641086888787524892117733824121723172196072773879722875533537649098651578125960764639446901792663343256738271381107532664078050514990267899515703174173799287307821264116784636986712037363929234367240163205250706041696726501035456638207759364292908059234588486838350464191121941703768632334304301486343228437530242331129998524857805044402045064858880793259130674231571315571990837658834116666577688702300101272467976017486370031792262776586919798624597819250636633426185037006995463651585361963566300572183182503770770365302842529555836252068490646868060282909705817948962681207882201718966076207236179115979297944069739534861401643951821387257669462872375533378311741508813914792829002267159406697014998640507730550908005573348123868830709151157476160959281714507290685561670290680331446668429994920101352462737435956068269278218209981257973957699635548539337857333865425569065876081943537464964256070513444924619913888191591378353979639736390373208942464261343417474771517438256618110106651900957898385460531397000345176139329190995560252337337476243037503646981412077727135374663560000100791157475688772778725815017297063058165295591701925958933945547118350668656912914614834076929333313619762253029147393689764512704916794128634625992669153843056811396672316478861798621031667265671286643485366192671724087409630299661751551129872013409211478460481738379836756706775368578329698767280272918542031330600576957717714419159691127420546758391192704595040673451214428428942117333235368953771080381970472803565897465119638204799783573468713115014952026211597280862125643914464646779657261670362725788249145026284842938265182846369036681776775198489442119110842157077623970615018634667278195752171044906368305804209551033875947982403210498922558915151733832749219273393782788115174427821908962982889114887897656249607743035569338924042778217270890492129863660883739033169648526709853280987333548861006014719720997524577677118820514351513827343255133076027622347086331019111631310400736202607464874195556136276496403314964386877699371371533209156978295149845210745208756757774001842331922519039944466181773186570241949288996215062880183875186956222110887612713517148698403421680976025361118621109223671014417779423462473073436688591618660897051040602699865737269750328536091723295297973355290512892828741501903329999640721774407144434210859035089576723135468917388066830032963938432396303914892882293612359777834497997641170730743352089855392084509888998096748380769545597993561329904822371146441375574851583625412160584452725497075650581160691855978989618960318061606857160644106487471372069138877160148605225076583729745175662948073639255390492633903565139228338435462049373710733302629123413186577476750813257623809906621986344520424403111530512101931917097808630847248026619339209688816689389895487075639113628301009057337654012821837882219443770609849928699025268410972869588904538093263250340475403297967656918732400427019793265529219866978750642701582622329978183480361718688974887825508523962741692985301593687367722017510599391226237909103410134678665185546054961239745503590868603613477163913272626149580630050626339173805930430995023293586438913081011467703435738867663795200720349318910750875484902385467223056771542527680378434178973376577372482574846481772479133230068432365768780685785999984481742886787121302189480881183095987970005462726609735167829663380128729772238103053499766551027600144354577700162621652380628080676873813363911751989051518388433541540423484437301232789020069049292940940519113744421480854761208157177603549837135460390747549261174787698795845294375406685551269821346941051886039569780751389928741542399059670493294309686526521308553337241509539243914129913803060568927383258239102380060894901762968936372333030685383680500587923896743423520585178582963373660882868621581798952346632125920552715180448426602441772864926382651591318402825425142362279542706565202093620102921462377382788670523273258967519611447770602378494935722661465310555893007628621609395367268111482210767101212492502795734919674533485530666092489675720375845309659802000562133810380550064692307788117542377724566070760284119019850151590618308772009798369053040951860963253152732660354111660978701108616094583750307960983799825207531536751224333482919021804452765042243731996762049178801862788333678407291524265713197087124504099883599212494343105317338275605045825856602228642809804714316379725498957903505784811340006307605224174636528824100446041156124682964524403077600673312862188702134292066490153145756174713235790315284199136609122140577663484119520132629752961931900857977993699525005523921695081641356063273019926848997520150576259084108629379530837710400322274281605833777889273075748634649232746671984176080656838531692247936467596938804515023720423390000559816778430821394173093281061741038484026649322714357184142730541108040113357152139860623831675065858254783257556857385777080815624233332697844760812706487856880663658570941481728668093589413350456900559496991631050310221033323701364316392418531260077321776356223302760658773972449048334874249158863856050161779862127243986784172321946837320823721609701049596929171830264956411281318449010265008024725379564408385952875382660544573327178257365983018909230436514391790659731695609919810932300272422703829141718870487234392750245591144417106030682988722504302138074103771660392050907315386857653484893806681901975925033987500841779975964829653107546413245294681091848165659133798326747031258810511802316162042110128218605678161976610413456559822417411355078123434302178282444787621664083407175201525412153018918232096193869848116781432317757804271290860270696892771343226235158868238164884389843383158292346462045451733944311393253220296276788680303157589448675144629773071675849536855851895673061861718006461847119424627652065703220417596404937260977200178449580105097392471433197985102774050270900408053137547684048401013690171251946273046165778961689622465988666496781937810216461030357381596968254678040381720964289232859821971164769468712901960733049105062078433155771750877659056312596514851347503782532859957755543409293176016570308152507466240082149267859549277689846602982252491831307912383220191343468455378560387622987052419285233764177398473478821764754378786828086839985444072251609060320570988651674420035427183961671721413733706237844396230288941440768248424923670047722234392530540278370828605394317621164298659006663828373164650125079451698358291754192387312715532210558892930772056190829948354134029554893209962060300296734785110596751301890630217353980096089016093804776414255763241733740190525166032897983349547766849867820857761564540168448081055757012622180545861473572064900653533929070809528447442578103378553935790129234123100626826827206281845731768466274760285640527733206700960918680859953544822228109425671574882944008816812871107309649606666986481540269317690480421349827058909105800614787320056885775561266334625928665335817171398413679192892692124140678359022136899822520071715261003669839366832465477727233322836882094204257863055956103089650482696432357644237063459451688708333872626843036299216716618746112137112276090905577661191810791719761965841860481546957987695733752320123493176123635808780879735933055689585271548502745997333385750791947283574590150577340207533870629540136859686715066463911537388552060318209028699878146774251920929958249438145153397401211287041321739641075392977823482590798417604905477222664247777569117622890916126434473896718233807149282418964789449161376988534835303986121555635563604234362920277079576154996802166757079997913085270222524172876695939684425852847690689339961814957778723503732469902197692923318648955116366093250799228280481641200101208351660443249737186663540884187047880068663575389197527688549407329353392706375370507578600850980788629013806242133375689598528391336983425044733918481267398605618998264950403540186451297404304477460716397053428504982767384930154110742623746612601673868985716059583902558005805626707799904910688278196780316722398963666912248483617227014903802668926291926771151516876742618409496344722021509991261168720586811208934438558793875347839924265282697409644938532451922979170531659374047470958238944716424085971119102667225015898200352231576929615245068857338370881955184646201920051802627410814637527895789182592617318549589295379814240964880244725534441250142359334460651284752010363398658568196244575917416602396245305051253229157880452150948776557279932833287421134363928398304089302005903068415347034957854420647327420490690142269744117757033267050415859580524389796878556683387505536127226838447437820949132839527309304881143231318434082808285365545646318734689914732365883980236656786456392462384303036430713103673491921763963777962386286511624657611773020144250097060302467135312970456904681969118339149925188257675277983202399155443157869191714111677956709940913005936095101498893458312644823321868352006715417360244449645951098932878803663815140069968446677301664272000144157088791759478475492784865007541124206936353636597222108751041981018935439104819525130332098481016641130348111466395622254427704924406401148160095279762763789714587993426818879166560289762325565822678798854639242646076469607671084196172969580798225878660674143321514407196584015722825575179933209156768106732175779192977140342388957093010388740681307142717052569206720409622945542465220157386037097664815274653143933354902021287638348604590909397214312192435989028043988013010297458670357229783123582765327765304399590294503187012414448920931749129098810265288498411086189887689754215580612977861615936314782260688174785919862559219509649604897392353373895003410184930447655641843453331306464491747948480473767850992052655715046077718887351955249002264643021854798414294284843733403699754796965377946098465803751127059529061993005886383324948426248629832509145211499665095487636589877646764164088155263544523508252237157362330564790014381871306670478207229994857623807738867056070956261065717743002664896195578480552696971107283246930732391880198934907386311048298881233688807714324365281378678106870295759448919169514433189283662711469549340567766655082709622395515503976344862601645338756327716911855126050623805412310979671438326955038738711184661383400358952237127229742226526237825533622272123889421625052342706068854544864711747868849959717347002173115527855207129223284493840200229974032514504069841190688881787748160744970614640882771120535583474125228486700161114174382548467460765504637635521725667878833151840542626407179570770161118857366386030195033175186797258152576400174932895703315080337376825023643275998285972514695867248368603307155642780275395682893955032995303395874369668392934648026541269195748938599986833452031082469456768164074339861400767341351568702004361758078327255841137622633087876419238743798287395714406623638681074558854046068402335057066644403230481137793448068958945426269117695717504213856887301665908568474428067386568699143394745659439792507318510107535022739380282252482629566111313648619727831644861951517133187246324085088536509453348403520509632138731797446531586038188720187210336293615057075948906011265306168885629602243770866506517578996320737963096629017843350949152257607302215477434555300537933507051381552964452361544277355829709423185515533593997695487938448099841738578942427828381570234895052977553597948006645537278270586318433057538726204287549657066013018862611488226671615024131193357327686930677228264596771685990228530455270428602767844892182779451760091306494064437539401113903374348273863716118068461537196184420670701967843160349958456535316474682818421110924678126307083851052075248609952213009795037346979982168582798306392838436566376345700040210904113417057571551229879883796366889107415396781094805356513156459469034915698041526960243603815157716652609528790143061621404252749883600168411902297935030870661807619019531288013965207506855914587862858681959551221448220279073043562084657026434056637240651233312854081275889399526140768373734976079034355315314096144837762416595632764859630083884486472014223084364053164646884783306113121089463922512561709363106931506892262668020702646391124394259502160401283958474535628400247685813039467281001440880054794399081351227400407839879480871772118375682359487439647381901357362561251478676299501257714726767861408280594922204314962746783614494764156996901588708223340963925818878915888672384829948601459060505466261019216451875998936937452297169745293940151879254207010959513059995244907090645944130414955963743088420559937361530112585087439305382599628095538112888373390606869407715936594416759600552100267603027591203837083566899728971542641454335671216436042365853207859953728041829600116104513529459348424478711086776310749934735666932200455377226055229354572552530013164193065379301272259105842220717667366437382140971574930398929240456571672284004926903399297863000197446010035549470100708377177710679000861243648705369830090241537960237792625547515148977442808777738592610278650715638889990293281440305323985428867264248090559960102759484902174763944484093447283848387585416576319793894018727798671872506718824017489415179825746113745696854110226117991127248001313204962943073961108474444157498550856597305887403957560451816890058033787927349863792586600823899758589784001099245978580199234670486612726007058466637849987619773509314106860237142823337784628014160600776245551295937848928378480125719324309183555587664580888789913754312009950832468019048007463284255968421109868895229533973505377696903871351873837405284189391155016618625513431287914439472369547837784595577015633596313056529951171240832091848666409575383790874415544564762097586846000306149987639267830110851891127574027973786134901518131852523839283351179826972792063918933454600806757337591320351191483601531113718124978708607724506824389662897171208367128353651271862426567490802980414534712626469547952582472465344060996952976499699872190545509993239574225084188335193099323284707546558737472553451258157783306575524306263145716001764388100215268712738360824685903680701656732896147128148255564057385945798555930483632263694070637243117207017252711600682602605802634479242608018823152850241813713085354640754550059224483925483120171689651282465744390728544360228369424250616310613967609892848517318121564060961764130953496666957443795941320553575648122141875041126655042862335016843675494779568539310702264415575720990749304077099440824318249565521880840733881854004295674248435571415774606137422242264780580996604527007401454243145019724257577607451035722192864742013606823632693003770282331067821879651107865063319234746555469735509655929943143637453029945097344163504770531178275359886167131976543310308655004501479188927032214757770647644218900280094119384963589994935403166156148444528203960161563442528076813193943430524108392975570594031163782702137389247786146294601188284578012994337621248449887891613764397903282054346459138038486432874360779696600379048234978263329202145606575999880836932177811910931445754089353648279271679244734857175755554784687220521843193768976757216341205740195639766053782307073707215358839424843782612137694995471745270439544234034202710746912459605231660476002170844783758242666165807404626931956973124082798483227607144107850290849331569186484932500133212501787521060268595621419394313039101353094905103833708857992342719579127796205217448745051077671018574673212221802769464886983739056450545248610427488659139687624163445062148720637833152707182829151997201456272190938033605113222563410662371941304544891201835631948471884392364526944468332889446430683094248438016610061647141772956196593776074629855355762406735469606683712078649672789423149539839462286579435270795531399001920712645385255955908349066765129372521469250024248030230262932736367033882077714762308106875030406526937310454091998939179834339985826334924987246756128180910232130926672588236216945737910831965803395423334832529936261238164234526386591417359328843834546762462518775037515357807354840860657557001432428531529798263111254414503707176684850422729257395587716468608976866063848088271138435984588014317729978985974101768703559264027478408152709676376188890410482410319967697027897931953689663424785146282524503620650024287761013000128169410933722969701987995030294446039085842193409663159684593860394011432973632141378531999820958986521502070403055482120204665557219488103371663263823909319312061999021338060921467467314695583838256129790701245826368577418951980459000012667149975661182172718939322665579471952185187819304835612400716357945879968295325086666899090073372186415155818322352697489559290114716871129524426017306322730892481163811263528665547270455623839564633836523204756541895601649480038528188752654062736936953547941133484766613292089945912003337879767518025772116093594814129126665773737858969841193684387875151563178560112498410182286591343752060492410421008444254823485511958844468413236526957838479896781396425692740003976466569985600489317497916345723160481712504420363463602885139477664437440247299892415759609372244147401912255706890447223543908012528484945538350507722982964582038633935295846894105882608393928510645409789275528522128349022168793113941100417390152363740922873034665234810203428941083198845132082244699307082400370677048729144786655868887563128386574803045000081264638727544974775717160705950647775568992303381346882939692349175788602372079997318408920155524028048044419133934885805586590041394656933408590375406319603773121001939817388706311661093520439871222494777811704764803865413557284623409114704296266952528372512403067723585182104965142789866823647064911540456529327985577699628422503081523376859223152286909049620476285060227362467989824375428397182398731610600665606593597854351474473136052202216824240848867345818617882527720370201392796302411857159049883728959938031132756296411865407742861841729265221638927791715120559483440646569197299955531611388170395254177048951896419481984400262953911837794899144770817449974890800241483215928754781743765324912144538196963868935860050127482895059476132410380529924431982027133120499821636578762430482868022804090784101171731985954587131969368131209779170372477248430144167129930931565123962904041260674468614000203490412852828602115526757457208170615876403961123443698569433569730383751672128258115468824112530351870309668484783705656049539058817643072883809810444898980886794084866787687038631120516313035560275423680517684518825190981291995828450985982494939514278291733329798774090632816656271324842432316687079117688866251150952951962678778133542170205171848870498111023721378147668466521789684409335828796214737909078302993844431718816208383877063494066545285501954584206036896526620107171509967766573885455497097083241863781952877534430086539175837345262468155208543348086518111145094792488381725676233048351419851380047892096253435810711235171218031885244341304227079547793717220808703998145004609867250562447717978471054762829969569592883777469794813562975694119364603627554311224553250271911679451578863530933607454095595122616057460354284676370936584800064179506617675295886204288041114992461180783034872909762280493221805860312640458103114164525755863461076603239390558088161592956285145972839063599190196074711594890187430800269433079490715852107889059318095762676573068976962560635820066054732098461646547479317677211159472893387868091509966896937947378975600312591781970285379491045716507622771288020888953039456245646248289263086416676642820351058338620218343405629168601720786012186494303563368607526193812761447792934665183839234204878237160779333053987499372163855059163155274155576496321454518758339133151675353398291436532075222835722790464942772632446185338146261010759812199059405145239668400406415759618281293661291698833763442161129033556182818367460359886272575100431355550022199359276631531457856010815833823393700647216395603582390101965393075797191764128771649866771333436386408908707735678333317133490855262794659058290879091247141140689290760922867639491111763508910292974169880736486371828111782299604906090814160746655807095292091438147024462980181966325702104648160356178733404732994950970238176139164502732791402129161902005138566552153503471419988041469415526094313578893100751036151775751947233811454042770058853796498980836019770245909824155572543522739441025047940539479000554968342949863318674060732624080622031447074081302741411490961933035905479142606801754955966360580684592049565355821303875204034832021325406073725901964386819519389779579885151107088448222715059013261023825605195834185792055131436194463631668531204508024730892613978061430490653185618681180041309731616004571088990240723063835584535929200441190121999335808899955367091887320091005837788889138303632579140180569166013377089290960362525672877832587827138628009038187057710570176355973723379957108152771554809385354669458022816998923317726892323685525508316988358063268511088958647512314926674388265946984279200367217010394837804369082138870497706770918946187789266256025845016113987526952543576856537177090811705247679052359694856013118889445182292682866370202136576454644519835648514280515486609535548599748391420952928210515944386228805183520032757204490133815450751735510899229918090363895119877798118474999507601090173637800890250470710731685383250484583925211131831323080357005817973429772155028838514889143658850779621721530218575898528971554342543717549056267965495166298503690957650895317398418984933370934971419509444062919874486483314872109837210997666206553848395926703959525721097618684367151946019966303640788295200472549159905432532666965281591409395696903829342581383462291906906542227431201546643253776373507490523461899718638426016577901305751019538092773541865744588630622320736789323361667758604159515934878767442582594055407238397665214862702222861474047144522385761674041948452081651159053433590150074359871970652607827122344251976266863470101746181406891098085951843246281409673869963155014062440496790932300628481398550611039459485314438434989864991771957925052657778584185319449964944976817495616749832400060938366598813409161445310837009060170402810078990715412617942126364802653183722526399127207535535069927243864130786430307948782817748272153346799891930818114447660660937493459702566450812669934214527840069838018285020317803030085956984001417139437894515469195223354211585596084394802299439762582502632088075781290380441544048846831917112950216513366465049824460877198519821917780576117759291133714733455426345898236789729023121977283774137225334567129439851378612975828246382713392453576355916025776414241560135891469771225077503747870356534372559120433200218111323827289820281279059456600881668620487299738761895221741188053679877270033992858666433298116133502468352275409956837496029073180064338421593928216487129005259188795951525180825996459952025578646839530777316701991130266998107002114265148552012248583748514108836732638031940131292227516366059259941151082414147447238224007401296351454684137562461134504057376805541887307384156172276761727151502492073156465763356584869045033345893527597817876430941712143669807945666799442556234265112506054666216573750331126333346054802493219520028755066958466756342225533527262730176591113378634534823550985332186719902423554763613397050771124845255510426649673865567681709597710151373093602351055989652049428892694994314762454642872971469183960504721355680706049441311570169824076306088396861842363400000120882480326124246980092366361761727826685097591288926841834107525653074177411469050325795875544714926285522718770347065968300568789010663317589778488732421277052380267555461291418821584189595524376989163033738977854925568190925808875689514254045404876186939994487973276014819031352775485954568432833449560669810531818567281005374468927884393398030561875221999138979842974191338176631940944244138246365176051463802627917253833873413116531350281811172020300937378290937069102206652696206030480414189103353011216003553937143193968885996417727685995114564767690701356556674686983457794552086332433305977584663819126047889506034817943748408426666171341051523489312071983274135700449754764222277884319057004239541721020730024710084242168119955733605739857875739106376455991810044549117161202446373712331722650348413197453109747939153974387752744557349917940275372798302350876297686265669187087298368235890370760696670530314794269195945860470651260748844250970556886455599416116116829606224478377911237075847452465536247270937873400061712222037310580713512036246264910460303432631243572467824092923856915113571942823707293539667072440066223040766074508389693496471743420851327014602798441244114389209334932881636371312376770025429656294762530965294786476657290518017955529414074565493222646089295786055283433098501746020091352054868133335210223345526261909616222572331752279834728313441995043222540393434921989833669518950670171741386495666252630433194349429083437658024003080464240461945945695046856544070896732413900000426782815969256180243507079661808085604031014382573305571006046199233877222833568611691321443575828509881225898836167386853771093644325413963523648118053319727591271620401042333245785659728890790754500910450021845105816398448394025691017316362398488797329187257070208264943708174551185889736801187983913508733081874248375421677673017479608520434908413923473081550934598889795434776097924288369380841622721973193269570148917295267808979506677252648260156934515953380515431559371518985458539772139174338677147959045952714356481635831329583866378917788912075510234499155589919168865756035599269792595205311635117797283906106616980698440936050285566548069061827343226201459268740345297541617291515796727545973791811886835203352120024574658399934157853943306257667190745527496215119014878445967280815561072490719112205293487709406148073756719791751019949012208044072542894689669778188821142091197069549567318383089410820829132975693140183489311841747242516046893698148485452477175190456070795636616002057224256446227779046293542190583919640680963808095174212196354055267638242740154251154611761805101990701401574367196247353753729747666189015256937874852594598610262194139738566058760359627706705334550925937894735901714819915198814446025039875918939734991787982215775087225764116256120099356445847421514587970062292816581177574036007579105056575255517889896570733001174953471417132554611520806790978032993733941737314509674404966035200737573854211537015726267170899580929793971969979716316134268576031875947678026033111922980364142431241258698079805263565688574856711217703609258330915395780207317326680216461286616361557069558402266802199097507734790892533937046539659994844465617300933484596692877853396395406748394053305271384273878751601190736887543480828511206788341335752679775035893800752161041461284094187629097935318623670180122616818880950351628790190668645538154898715824081947373262809979137463241194080313575406704706933875704509330581726244024599550432695365304986569976011644339079590718387920129236176512466459787330425704906536515677964054686178058706258101523031327918656547768336851372078793365620808241471488612755312435794411076621230427689072494347683472213344178654489393723869590647898930209913250288256221914965837735471442185849399838603196304766610203089308699671782823176217342284553072963539679201055401536703852027778568825864239252112412409569842082084919617657970914974858689370244120858539595626242521153799986704388027824328718319890627300198210088163389386456325260934243663325757148134096715904652878307718559045498862922812423233954786956418320776060566213099191356957118504397481148352904363394625218070179895074076683646884662419284989433283541608057049494055862866048478963323055766808707848037224112095685847061092843250261217818287642247510561540184786070261555433781950035232551621844686051720671446629115789465269192660276224298139934094169052373494461076121669511367913451032215455352626661365014720242581152479100186129577932002525351644245544178226881360729851710801996228525088363953505535459799501573019854712540539966044150580994269306753986644329930197563029585307583380780252852287255770888767096479128847135397072683936556210718772505860638678444791088896474705859454014947947635883177042992688755883946894989735876978133399006795328095377825934998537396096227116461855842329951267102024984658060984281606220454106924117532876219653239343925469837003608856048581326643138257101973666485930411209416825287553881370394820744719169738721653087672081937460169371832434537428648619518166603086826464819033586731271615154517924908688241408062675253466806663861052519356993938068346769295312332738147961360689617182380238909269155207597158226507141698628660442092998599854061568643079532339717786974922770254663820183275881784787518138893547060971966437234077579625721580024222738002448003771879682600076208030491195792431044812133904435056080377331830710840302250315124078547819629783359355683030139416478640817820369125822110043521473874443408789404342229470842214832809640535368001223258123270106909938453699165332162765145679119405726320136353446896259839042115718685643073684014547619152888301686136053327859278749401162847528318397236793089758069994705352839378704031552464429981898988978479437803813168922706107696165072474213688621632887773496462713341851908330411983075311218621300067389768905979885615232971967781820964733526744350681917040730283531485742924827549096613970857997656824807394265873690421885487778593100337612862992382879474831960804009629352704595096173975428550586829607902072956409160588072049480763786427685954939531549296682761970009989904748856958253260966424985533757561609214700957734877452491564601724904737550811247170044169639414933095056447303059910637570130994654720383112842558030810866650886874520288153549384881563088666592192410698265665620317585631352989705598277854060281327040183420485121938239585050178094530411415729983074864310683912930625004166273409834531950499010658189468766318809677437900575535959141526464589751005525105573112827350118617028728391836233771312982829677524344256810752334833319252514819769829961124338351763335885846821318650941057011589215409253931252611607760955819008331811617060690242260072259797376007645145873805289322360419549149092151644663056070281393817861300257105426280884847766506832779881010512358568437972958805038411718912430384249696994031137903581706150910868040825714308074423528043565380314376120143929227672400018197917449812136314195974482152627453017948817950156496060861498554541654668290583724266315319437844581795981016626929173498016624266243237345534401005880080178739732791989147378320548648152545301815180528842379829492585117440364487604753235038899326945941839246811447224669375521863270357128054766064656862480602560870296025303504869307014567868072648263982381111652440061116615947409953473245990021601768172884101408392606950694030546867980669532398447152394652090920193421699220490548916323234400071562693849810363026942164675054649232520427762683303558373680423869682207802842986109983598697575357129561915520494557276305326154886122265732604820604014756229181177403697673704371045784968467050816069182023297868766183478161466476586581483295107640200864189642864515886861409000288022587853898595550728601350355212107114637328789516351630854296323143624796626585435845034714743564878278583965639651326613519949495097033650806372050637822234747149507861461822711253243872312863414445157513735388569128320667067334794022378285181052904924522160823954143404847520407200458969414950301021970033753793876480489502546383982319135281413720668739745212342907406122471113800069487302122893464187961557786772744429404708559422465940588271645990546326948604188595026467294928562301234811453964735164122959327493838847062816516809781172828713507273457546878742893065668485728915656243310487360232446126700637714172503968166014304805193875511641771825538879261079555416546698765881240159534357691694145808187752924627721234659344198587535130207441949703869398094389959711673512605266384815346427943825232330075011921337884527463652870257746910718062525833903431357706025672624324232164529556393988379264142891243938296352052846861307034858660572191234897325845571182707564561988687347516739995386250493368038889045379534702625686169077436853958761539199426855754957730585633173317332956932367701541533734577338796882928050317481041097294253284338992605136217195499589460224739641821393252332180606030928829882890818672125989758180208945363427052004961888920186452476572321182699848409436785670264902808786025650865857244154580453404088547650516474784378259413877990538012784042399937089018155460351852201107039554573352499807596987386587545059184510501117128142402026878403036371688029609097669390149753870580983991609251315502354659510827862319063612740861450701521651140442412736011510852090176011805128225518774899444593872396829292707308747458647852628209132198365796468184681707182139735852653009997533017767477519121894348860532705787389735897022128680353972516662934485962676106190665894740882187540217855813465740579313614967914372589465108686395384800129954494623194506825014619649482543515520900777550504563107208925131879076049790842062659360105154942220610253867832127762842586004109147004150197935291916278442677043481423583867099912983576486173287156500868740821336774472929996601956842175249480191929095104008863230238390058970664194784945577700064264584123038991816312996026284916575081737601726211680600655182150575787006069479926504298491852406587160385305825430346849152913443641236793549540345345336063169757501669785646708599852050475967297582431876446394088074437052956046822741875288980825810103881150321738914071146536415525588951950723791837745332466293795280102175629839937854786211316378339442134190245311913586479589448671288475447296605516881777635946649117404040521403864266517345015662501956061901643620715475872957781234624655839838237625023739666994689629349103423777045530819966383329063929633469487468927640171814268726526914376090868971530040421414711588975609112001811541612941469922491187128867695727310808194860722722622634188404068282221568838335059823714115590525183365677098943276954152035268316579896930722099798630380909097729445266006416765611468733474562833510493026051776936869411441075877400665631575017726118231142050349956292522603465545484350437685435942721697780998528008998352607753739181420953771212790645628195037692138002647492878705495659944762126977603343554854119751858774493916029617759060567304533500565425606248397712778733839201121759443159867229294647641665983413595479377786298978750036900179375108439960336176819829558396067402271310422047332658951537372493637772941946700393147273049926284199783107660231147033546668865694694203021896579801848836274961532404475466958919588335240013592505404331268899555721614082175358466744420527413028560911373318828899067215828193112955823854349451113374404988883872585968902043032990830533156627574719997995458858923814352994867894412076142248677190054560348589828331666504340429108454259576080515244947405438772264761613877321050950456223169629383104590659704028921525764346519995124278513569558012646825423560696533002246018752596440156384938619062482804127783961759459169245691207112763162867948854824790554649279429037232045642525962332831992011235945263335007389278757724420855090662730897383517322791050736497415198071858948173574359705960954465279289379589722178792425737706331124994755611674053323697312280277814542040312031070534125287808849291813031275704076312036224692187751732364826197138442250350940581030055095488767404353235878853480439500216928762741083078953095927947137437097070126104469277634404434110029638718972952988547062248556445562947427286984075337528583298882169834505941070064694611533418325637051333827790099986780229871820676913809524512056582441755770607617183559954370484977198558737127508319436003863641947109402480428294188717466662466302643239647875982121179657007437232951368207005353773599216906548692849168473891877405890353977560643630258614797119139106486746005754614159546278346549040485823946814592956655953416897734419421138357647637691706129756817768728348233329614954652565212725844851099621506607266392102691535593912617528940710869816216445848180171305746875713010211652881184580163716050106156131763481032413173609112762108852548604279213879081014619297845847207042610944148686681642950731416895542953132488535081092857613651964125643968125582260521079079036828926943181536790010067273990254480192801581257936631824856161613976362925126486381321466300917964338848328111460499785866167024526539702027593333719090829588136854642396285775312064263835505299908448327407189630433517668704766234691200387689943117543141796611822303727773406344142692026800444269813992542159693342101218466401119489500012042011480979230431826129092416477337975544060337851401475054957459490605329121706488189171895112771259221535108902563038427316979234550463330317173353209543452420422043211518919078493670791824413410709528579658298991613957835607254317370600602935527938752606601148988759538268644843134428305616988922034954585248499236287956010530027675423968920146764368958537002717031152691998068161538384948341121617464876991505054965695999607709776652628572434810081988272683840500042893153741224641854814819582092016615267227032254565424062381339559327266038866112986318488437060142682047623096126852769765539483113715178146146420814130002538450926643772956052291557196211399740295578247577369432323774954671194258415562170341775538944347714446848999763311130066454744084474740613967887613635385889916528249092921839953509898947813326531434532523383562547822873963775247924221234850671933155265728830190260825499412352586434459048538734347258785437951976180998967601141829496437302724029216338644986165509006169376015809659099365173390472429929241869920822523777868650206928930191670745035237457827082594538132982288468581923690148784240339382907540373642876499697414077307031627292175919021971238370509890641156360420027173961214131270911058258386989046363993221284380324605240077675290822043895587570413847637597844221593488310456668291385465093903079844350497729864201074356873061341082787169467729193869921559294947337518606014722852904465049690901770591597715344520366857463378888813480483284572614482624610718348556683275770887301154561538316819814559284625640559102493407765247323027977548744087747596497343738131195347194151672595063109153634015005013483891608094118771029810350801194759413414187680002525542900124750063143216909459498988818778088071744948806843966947485867951046020544126930321407560922480380222292434525109981365378788146838915151343820424500911093778791876402376653677390416396999829375388839187736837556121890504632917313793004245374238413354557865664151895705523637235061828142400655102391665425142735200931365745424127781462723569950186009988710762933199299817882585165469764141004817558200566495320451465915811855150453064068791721961585333408790971573108376877279793019500079629743142691228245154632166106747282137562876492713777837594860308624657697305662749493039141202837525779240187677298304328771730062917077428600756290507175500240383399212136452266809451577001630589433324183096461658636887823071557876337416377409065104600661978496794757917047732293402533623670092996916054295609047204449714988096276836946607294829747715450849453824692351766636280378580981832598483310854850845042114921422737275427899078423976394755516177785581463413922159818331653269768590677275248278159274928664441781633682483224562308373212044673011269182302866395970094613084892358924305836160364033108151650097462258523887891831048451689873041220493642004071667405484584108711514980587843339138065825427451308112426669224825291700249105415972007879422014310748079325611576050641515696559262984222864909075765351560277070179905259291102292029761395081859202618546452506559785309412479380662449088246573273584165413306297411909080496357633943126426537003932049165649780905737994018309867859964305017832513548525141940184536862896945105439899933351279641602001582127394046347585249648445979257685448248747462386958959955541130291055087435884909450109596514077527136776325721803979541681064456992491478789149912597654734079651105183017838163115997345853598438482158092031592300020822181128324482858564551780239956695477095945081629203550269848041953936463025462515390281223343085837710930014548426994911260721388506388972633182401150734653099930614147063067492504677437356268624416464548320798565940314799788542497974976810881584036157811409482069064941980649195810955760405170700790349846109931290585605590914185413016716678723320453289481941875931374242544429791173847473435660430991987078240360441966396394902053792946230101223454627920699314315026363258354980586263509113690408325284987871908602853764351666338314678917654835951360099158788043088157401400108175362847475405903540127238204565826621777333811236384798298951301782583624302426004799577523405325032981612068915867067433969633687568478355038563005589688289086583412248866929659044188081029670006226731332432052680048879712632238283147687905267419385450215374994579910052158513554540122524428493930583848691535829481407151040170065332935859420995475875318189362369772962182454232357420256543634592545931262089824019049348197908899385577629599469599142045144584353321144524794508766172661816910942408203818499667516975325143783565204452658090106845564131023896732139180710696521211872782181650856241619399096444065331812985320206641337705188919964074516214380225972508452313621890867846995317918782535150238786511755810084518016102030223637261287463036907272503275567650438129137913018710718591967898359139081720170604511413717422641709154885417502659135949778248546072366394491593477053870285290147546344185161141192551660074343949241016358783171286942067026345805212175803843666896069720180209891576013214624742658865378877323406887278587488167012909160363766361714865871366222410846269292297443683579451684338766256382734841479758685148426706183314460732674829484813576103840337285109439827016064852785894153493017354489652050896509482766204259260593195803275138134615887536521036813753345483162812838404730266532104388984133374244618460527594291500975299727392498523594751826387532982076813703348586037939717570496655920547303256535929134878599136882790158240146720864499196435018155839527573048688213786312721580391978917626461868905061415632992158412769739592954006490656695610200013353181743219808589351747749810640914687444923902020186555224934013141755516514459297693592674983718623173584777573481112949386325354027746665272290093473199850625266535555956968181865595667299361231725490529157909890863696685579314722713842092214363116548919959306374005003952576349031568012354478329898617511515623520117825790895551479339650825162239086385221708022817737042181045892097091282876253276056235676885245137051652889445210160864288511925712186642975789597277376170858104804343198653608534097189059257162785946904425970423361567586132289695263077570237333528059956429276212343461848422131127936365252174278681294073268268426825138387254406915471176436894078557538792585112784402429716572866187720931498939044997392289871673378538542697951975120592788473723057080857882291175335766646129769227852340798763262755933771082835787359970701029310114606984580240593128299288793171834521276791495430569365615526263217918811930126714233393351401374149060961182905055756635475366473834253630245437966501887799368905836427238410704401160323193729442360119740894169921936797303096918469191618021284434178973687231615119806811397443521692581976465549646347210179361442089662439671890135033894784549360147735246856148443552252321300601966055839029570572660275764292153722655015266878318786706173870691015386944726004211268902224878208429434206962880540042588732819833895226751612125419370304957718390346055681600781116459317370535080991555425438150233126239567283881315320147844981893140631601930393299332998699883540437597706228774783271707752656092614755050673905262326200014380994981835820635034066121945444725835594207412210706412546382390945999126358837221849537572835345933899060239229943537511580226045234882003676237959151089506063881114377285265808106708246799877595836916760644373319849264606567688859721306057192258524807987215025724334362191137265631861900985042478983351517294796946678317467045139350283544614502799417866868049828491183701372104642525673684671868082003856217117882423543972931111916226227334584383185273308068445118074955110126708189087344983465665882273597143309248391975589279774225471296541017287155510037867255834804696743683575175769008029701322672796899251747299550842254287111698489884801826641796334808066534168955316800923549834852948399461061202813716264755761610055911842421188718775899876155400660767286106629527231052394941462268886007327481056555991210282801927800144837109608630971062118051831201668288896784313458054062881832143421300624628092050080247808738237698778844738975459710498783460415673632464783459256106847324895612374824955387013521696799404294767896375434425479641644759498838532476411190159628113427969452043123884480516067583268379406899041652266451608275248217117471869019929404051257821830578731505227484157914630976296688685645307920019245411737603868677538956834726398400729395382178440420981153663254309188288907800239873655536818790849393922401440162792348210675171892237361061352480000734616690903326048410075851374166324291217844601687841021081599537444932505732119426347893577972456131604281347486123049409582809453828725748186428277982991063600815910463822153717901359452995558116444869639877853718524155693436916105068555672364752026580966743933369352720400681286840796533663261452777625264803841104832112776232745256397754932601319725709213182283621997463017177873627358809371057902740688497415570907695384991427110314102636866482212275204154012675243077545702625241131214072670531730048123050217945574830373726735267467665115276953491020575772361979129028872945145998647410707570103145713441724705513044880276370415772040961978611950377322264882900119144990471326872705722521794903365920203609346535902869699423673645969139872573892563785245101566847873505130395670975211029784875563317814809989177863279975882564689637765664332382429981522220576433533981365313045687881460686698148742159216475529503039640392145112225538649814248146731285748289774279616875203766447744206304673834166180389742567426074563192722832127271186840147840953367664487313474825094812748488053987781254988227632619600715064116216332526321172498339035000791480725683903663508225946010244981690825751706338200879497793999191377433128630365572625041310649048560523081326960248780758953140242882823452615741204420198664589330266156584483345844816965681055718957749253661152331769908794362608813010706617288971403346853221476819253487197800138534996678626505955951266849768486178268960842078609397039734926093818156148497339297439547718858740538034860299300685705479795455208957012970382804224320517537350693153557041420321634774688761514452653920678158322090082250940253655604737543767785194350866144046167682246238612614360504187654544283863195273100582043669726972150383626432298877923600398930595746255188534270573136157017273946287315911589977390850488622943747682436140084481505954710463341188882848883682890149240635289748241364707252781574972256261602199220990714585216513979782131640788434894447469444153009384357321370442415815368376261779316953889397874437082074291703452632888993699098289850984094947556945001552026359172362702038403430804905187809047749610041492388475243904578035886255648796231131245636515141386441693907111280032111751448913743457279838144196057005724060946743170915666144373669988693355841994915860093734625425438550623072365119267149062051522054607470372266866131501927281931351846938677959027033474706395464607127024783620009718733856950362439438017190981086423065402450149112394733663382336735773466220265749749503207593785538767738777142724938064471420185594267979597856889456944369603964133640233647452696199449053888915458298306881788690945759667268093198139376755470809160380493938082255439615828448466424059716468513298958024964588175540999552910415404045520000944884180564041493139001042257739557707385752254800460535077665141291822152862910633758474120403220363072873984434244245333188382221691925442846088320888121900130616850920179886931838655317405564846851207932834719753238013227986922926737832783470782243969013885939506380929208235970661302060223173352583934296871206332078881480375372187401281302908804805899027021064479855167759733285933178871852688637343630009228375769860602956595820037682542529237382992730521348169340487830586826501227271781268149387000553391055596904177472284303239453803079170075062056239665770473270516481849587044096404843043372486154354596671662521248194382431139500693026299349282351215501817158708115663252220074413770726809321675782330797007609340150079812966051523863855956883547344735648522767288775538554944199099634560205355516810423072060888641059644385613712627112625465953359589864174025482804036832906483073509012597665565102827517370161969104117632898206344172964517131076431321650024122004601897703454467273937357583204386353475719350866629120980245879507102290791579104366485254123192377847409165686782802447761422799661989672745627385910830498824269947324210269853061124125278127846024907482362663690152438204846643497853583397325073919824686651311865207953424257809439987290763498066150310978543890576430134121778864282247829797717477407147943453713914117118007454532047090036971577774769453894553665869984914135580428406463894492176336750052768996731590476770253606176062702587932192783670138638759571623188817185641768052378614671609755882520705469675751743972124614046479857642221303754473584358001484692664966962011958691379597213902853865074405702156638643243011679850844731923321693727495568656874606390650029741592285623383711541259430051929507431622042917128280309164498885664526125073794782424454098436905169167928378731173448434207386005137213074834333087195162317113899610472591463879408487594543542191275331407170044129413016129734406716620752844032610005666471589466428892726857285404871975381093892581540262096044065765381317232164194631886057770873916531842286864927850832370773135809032374844122375936278150458172791954575240847448278197655862916794224884122560522880959703492525506945315186700030874138393837611678458529665218383196149575719732516938593073286136648187848418550165004465636185560635146271286216395568165193669844044721517675981955870208214062162955492459800444586619231361439312129203542252719101247161836356724063430934745303064948178950723118182115323777228807059099473878911689202240049508220591280747285362868746825976723009968140334177064874786035363047840915252171803545717960601635508685255132906876577564526944282200154324927593574895053978218025822242931114195827660832115610906736482781762159741716080002120591402054969517665239725519017449987868596445339017340253023318174188840956887067272258400141513328276346358144623227209926339935630802735717980684953662926741271383082274677819504089710291497149532048441076477717021327711903325878989864227310985577521718658880763686280929765482779950857974915992006682202583778337273151504555494483772889421417342197990662214487422385133001897891852697722355449474012152008685076032964824155664307178086098971723266099601138220183282331943987791348339580955920267879643343088350616359868637688159692952825294633368116546418451506647845079062197610753374695036415831334791995396638910843945538055385220500908699972764788543987839644491279334742994558208161829249245113445582989808910158152281583090719830915660751531582986103114078175662085517156076962687344544545724750310457103343132668734436320580102919607106825410609084321819519692510189293182277822053344761246866130652513941841191617222026491312067426932480731491511389656220220128051008881635116356655639034192589047115785302667853780930486682517389369466158254682849846001733136915293214950839615113942702735598384624059839488896624968772597224557670687403674746689660744258417444894974421168389359695828027892512414886302413031994269938143123364417975152867421381106849323034878617528158423518006313150806414242404017057093121590807725711960203668936153663911701733829210881245374950592501798058448392294234969786479088985856845006901515571326406530208566802421255404510762413783415111669198214108071408773660893404419237775383881629330161096041991090070071258090168711734196662855494589672218779995218563379133107380447436412196335081661643550317215680257073488398834786465442694760664159420634452467424476040482339000907596124737137789494146677590104355325535329665671399251818811903066102609100471611068390331614725656191281567873556449046733782105931077959490947107804369521093137007926465057636016879149786293387600129739436062248242046013716834822981094650560130516006819946529621145606453612129718391739615813259539075347257367693926206327484944939234763129606857005521786851129073709615292333631236809253504705043505504374912436766835930733255543020326545629643975572368331248696734026730128525960139125307684766982221321680505230276177849486740215982243610522143965345013972416896289100728206843660426017909603509900599907163358569843401354275527545090973763423247418924103092380792976289233067131499307340259622449195859102903693658010994862881647097565224800641176759009886385892494736329599271914172262876583638194084036194169610795243736924681111046380166469797078108449037623488595068134483048998482248157386077710032747137299524644889641563950445222818452420025774564465389558269612430165074802890089221706328249024612408920652728598992938147221186267110712489862104120089268347710661242293463580134084173971777726147264122754965211686916440234627323518109251294786308311665502424092250958477244547322176030259566715229803991087312657389624158941778367499384937357118585634012419235982609546117762764014545744839700962854583867679421312361890189864660888282707923816018417861608060007015361739105743974564546615926211038501971928117250851171723479333746041983451299508169159017530062252559154229287634569041595786930715813295398942098048204540791861216612176157057462493442202960984460473567567687122782388194576531122673066124277534794343020057363417244979593390069223622593846332585652514459029434877621732024390563834667276903408985093930870732697555044791454882632606593421188262567684629268559955650796509458058993056287071483955866195428115678641099878908396798096525652267811185810011012996947717489665774873199268565577408721021796614432532155974042558644670790663608233065615187602440879870414781659655967366589207757175549676375723728761416282797593507082549699534947144451428713766285452182227527146711409520828359135144874564851348024565189692244731418979081006348329152190555840527717865928393892902568538260675652881339028487169696109228278262770932219004488306760020429634255134867981228440158803598896915611992358397327675041140031572144048651235047286359020928470909403096037204286403515569992558030205502240161633966147336050058928998287430224004017203757585198299960658419860371537598051717874526646183446465860055721076448605375764085943103714528254322312914364209105320511966400996492675775607157180286889739468504758158406432774718567637443550747348857641590245674719881131750044308247487229999002049762917594554302067161855160762283458699500981048946219284889803499594169279845329707641043903336336519694462493418675842182600826544784890043480720773829754912202985459140889197721845902802891274042332790128588426678124874620047661334369702848099843086087266880400036001985831209095572931102696389780027718549386172514478203597329649133818559827048234026432365451512725133361397512010331265575111818545876558888708977448756497409891538780522881527956086863516876544969560111576539944709152055883758834754347718144068158207889042106679441440095808494161654803411978565753530667067698228102877852927067224956476155372589757050474848866873588902061670795398599887754208770277474886436043390217233639949940165148353942182543060829883070012428844953965042945460160677578137132752678971099409905182857804712255303314086061911493792969495916099092523785440672407578622848612349120127566752516416791066394363668292593194960847776527444238688230103866694836624402306834496292212933532475113517268923128414159854969023784439925616241592062026619108982051512440176285679614984124682680147654007331734861692277063299904106295123942503638514224755831802754181399220024066906589430356828542858021134543588841163597598463647222179248703625028146501342150514346482326341483722927857936636488482171428187064377413269616659106196318114726081337862487453523354077658302359128244893810472530116198590042438937021425255154748322676954600938469342780627213712804747876210093793854278033326434473210429050645745089166888441713319425282504535504281552542798597678237321554869985168990771239040664975460374489749488843119129095485884082833162533601011491969276365034883251603916792695790045305277164593529793269968018504994342177222138272318270658407324463774200170920081022277048042197485699980383162378240193890564531038683303102695062168603955439261753699685379197970300208855714314308281725168792826145719762668705641077750558667584453483187028414478139749811439789551122639601055455785004021249282526013448422237436976181657945277069523816659591195937937645210974066079977823140690340198748808446061221191139219051596414457159502229702557165922855952724822540508900557899797815156748847417839691672782855673291421507254333833193345936330592450698831882545243813166528550678210583564654426775384443893339276920610007875003835586507028778933324089698872560144182559758996778183662270344654902000352843591729199594047637604872659246172194439693728033262905143507801486484185558035561506735888141710546018758475827478900209669812006383220774720876084485536968536295009808144309912806873251015718866664620786168748881056290307966899213452371357988280051609633111450734956142742414944612161551173492897254062984967700121977967161149737763440855657350260551618785295438190687613537502696349461770969160945223541668239143157131267108447442131398714013772917103653202524563919048560134648422722507735845703756932359201244772910514506904677497180022051927785339929152550092555007862334927694711784339593880863230151801718097734724354506866075550012550008541007039345379347310145526897529548663736060925410758084620165042595221934419388027737114215903122098931608095875401948644846076432156528644066962883883468177612986718322556564750893659829009562799475360032286090324325687119847802408276480449116032642825935403708421556210776060029028463317670489263372571949478744490523946790347213346064137097761237097950084719031536127179616774293514268732646705526891620402304360380714695788302684064220945520522962671520370141096995634049934716646169911804021892081254044341931035940905621257496677784528569717511634412342987634153250871120660659005138021532383080870545249881858331348573040860483338899469183950705993747482876580210549518377689357400143335334008160552320021122122125053584595849877245985132682880886193616278760362844772444498801138428543729911375669857730117990031242679154095795471895341312284680223453628780712801294042933425003476840230427408184139178823388286099756394894092399539311192441578798657054861044310296587774724749572167637087402655589639874807851753617857307484367934888257473490661429834662557103866133741420070740942465801329338413481152505619525627453815518586437130471274249113992438374126574803806423453534156212672445025752144667522622974423152584037538934284194294718175847102210647899408836769346035427550245833744481119092935993435483329576386673445494165148436973798204808174462029072882121441367628589601078614292224540413257488295615720344738820940101604794658588250858740265504984664431572789756059241893459692850855096816249348226465928612954277006163592727143444570508103654397459900989203408998612114277072426795882094412692906979253445187346828601646898037837103726449175045168507376733209705107492794969332719912121926832032263676543954021153551238749091772618515031051747421400837156757979309176307286310884983767122920434117459026580606134230109508645362728866841950362790062758123603312718109667520869131585024817728944064939971538761023886658369331101340725660049573078894684362828879485108803385076300494473126652469278584938004541155391074142950226471068407347601786860781705424110894237991172430595230938920565428121646207472507724538993003583920349352978016227005601463219316648969220827692686340913148544206080742103937942693290434223851083279183926122027053163614749283352305395496714430814519549165604643111779296169272700872255677400731535416623016960006681197721855350405367971351235430627757498085745332877026378687094553733068251812665460034245064240050319264061463104560249964132399590492741771676708076196226144111115991075349694917430057869480553424688299870214808717760086109021482587438241993627550362348078265329174379448068160814251292715135404642324165376634530455664645952281648662014421725623585320096754933229011433772851103046809195225972732696752190019866122430737220697839060112738987294767181742408148317765832810047726813414746287975588219688224986809989157925695623663845288883431274458657429453114580830592833303037856418223966559906860311365659974230876033222115435743369178132955361474800576942341990700772312597820411230312955727637714506437691471576549786193090998292154357871406129827906380617983795691852844928281271545269240851128230851509083040282798445517437323114417843928406118379432351205363842318701591742584094881241750034509586278110900415716871383327474534040855454147444590099767404607067513102734752861115734293158044699334109499329430964672858009717183442122323884176220397880666546682914295081596464281980756909370930060824361263164495221709222800547699162918344149710129927866749719901965090687932211624738217451362855120803431329645120463723537526594118400274865046497144016606443828545615152245643155346882619490244167387330885948623017359917512330731416254236764308413060163762935206726973001417779318927875370690006858482837509318747795080268202949016106382335057711279886320699786523668471190856263525923541364810806479973336178705406020867166586330394446090401705857492032010066984626802660913391670433532033045743260957434404626321414933838349708879531159277880375225633791718285701586456158633641680385887366541424262353855250730819832599404469716485923763638651009993695898512915920797395070909641731866948117232428473266515230352352201826884853238387960271030094811530215238780139156487217878247166505657173059689334680752496309865489201727154059032140312699185830768059997556063780267687513600493938934131799951721091501606422314997322465652913094798154947018133641952373774610746418346326481364376724939931290970119576463136250765666866237120395685500256577174443964200643756721479007757476579913785311523715319946620029923572503603674266269740336108255985357783228440368262477346918232237332092095423503295785893449242246796979310402442250839568723458027226022364796820366513453415739886927927343434354950063160162892605924367006428505158465386920529378302068834918757495422091595201942879694441712742099703249154529527601604532772908751714175607075249731337100965424516059594539802050297954072480799671203749412438119057368698257509395988854706071037311756131162783267337321650599389603935588706688747487778766276632963184042062560982360261594004574054386673340197805339670499622867817626192867232616474101801302641867517643919424945481835833383134322500781072410481264461757408382575225623323040301120585028454802827162704114082382040429335816907501879714846683839298547501756676511468242734482091946241182801354879523587742613924446224013441713547939171657588289940803530615625710310771542832599273209416507148714516584764911082853728857798339445252175632445286954254772996168799842421972624575037186259085735845859461673018939304915419807260180105637957707825411549494498063546561138434547759221574716471180293597164485577187319115068133865823745828507369895459636825588029254817805743890333361830421989162197425792904666659126536666482063407050578904317065961487374933513391410199476814024610722275771356049940096112218655340883956988260595237882361635164963016439078525801949873385555271555748154096884744385233577319897963120995967953244121431728337386148368578094901588454065890899028184095963696457496994756387570083871407153039035493257155366904434273913981907188691612721841824203414811585403516789791957394050472103816333000906070570418115201403888311861339211530585540675217278970037714424293564063610295960145105480555951396789514325777977392868020602412800554676515335848917908777860966790740184591011589027799516423404964565142353435411052234077587739420725247106280708986552641352229771721052085226223474722592427596618684604995560857549288938739625290964260557551683188355183152982565169715323324894873194429064668073343751124241949737329777203181393010428427991290299698459010998135545947857898138626253300502806146677662808372402807959709872953516057107608590376155556780694013299996113156694941883152985815994546717594039497365477298099576331634813217114132816058907671283273007241506145630249008857519781444554734799420133279806942172494040600548293700079087923743016970809175540544970999494974581926100690152592604690986745740378345223506726396501498097592942950245948320395885965345121937891459700541064595310037423914332079199486328332377766156842394351182502126365608742704966893055431037281972986694710636698037852725442719906096120487503705315850085361350398700634926004129746885530015427140270524203965947426982488070429896144241781626802696813201689486122882757969976619754122278891492796262788890459669907575308393133874296407901913468492214277339583050800770657814594703007815902910643081466227861543999477353572683134160554211878483668564961280494302700259093962415840447765814482064362290887546930884503451363250969902704101454040131060556423360330247979798553375106961289671209972094118554341882054778602728645348751658779562948373492545054725447433724997965457326565343800145737813081106574412739843089266225995098992949956390453594791704071446874066271547872278278447601727495629635084240993614465200561971383393274382690343847063799190406201338356663757982884960209622303062260848757196896534337818121439393954336354591535899900493357177845501350608872568842318180537608103812460340021726985891192381629056489316217481048887659791493901331305429234167200655495014301961834120016096496748199177993918612891883123338422244489520211177084326416558891409872347822191444002718773034526993506415670430834382921505991478708030867206188750180408299494319733086746643677670485931746668933959246020076539492842453922941873001643637324642745080163257272038304432739378261852014507077462070434129634805692959765049502407774785525061377185039570309347865863841547785171885377874237637046129987244028097579605614690686206724330906884543322047170744019353457565819794093751505461801670038528119663045285674991709272496639194868933588313138945243326996193299814810893754805947618348334950611476832372278813614431760121002537305075131286377624572474075112798857696000955571067909491456906185677106744667751724121446608086543212268923507479568817729367056321539301771416783504132675763827367957024642613603458746478528781624349349978432168209731909312750879837815204973365929598143096514664958654525554417672154270217147129940362373370128503478681539747626424030303147435136343658274933639169084984706252445667737539210414997034510828997614663771019467637315219970174523162646835809825696715790147291414300218637006232701818840253867525386134791475094289226948187196872557178163184964110596117667234756075295096243360542943496889681665181477993104339161531111437148737183031471842230380943967633656705928153361667639949523737101157668727474077569174361090503414840970277336631109164033610288149628619294938655846816670774697821780719825850470189039155924767789928243427168050131160113915603744605180464294655373821997562226244566547471162804986831850700280298113485746426017161634558624985329805811969421427221059308498992217576419967593904282416432699922786006337521394483269294512433043559521739041218760736891533059699401480947600752578230538403826378666259894691833204860213866664572773481638736685597294465330552216526329238269275339606070025474373522825352708587703936529255170912987538153087742281819597307691363677796532971680260369753488830561881146212193284752371542669836207093040310286446360805954836126073224354938789205755994255076435293328059869740638001468392744030606492687785541360098223927700235057161138005283552948559423461929283583876179393158365809233088193906418912543627206036605302126723155027806020334911135449619472475045165392207689091089027822474724627411956419182135519595435894865496117104837447810856648455525528233359436024632626333403744535440813234098201295120204362984115107572790026585550314768101812929814187515811224186197940422160453894618629092464923712126516765772049143173718728012316183087937816672974459795437295636901208036102710623972142105651972254648931430863955543475095999549994890824541520929037767782630823577763500291296047768789182786037974613132962762448251145619353484266476996081810960986418592215885750284010635523582245186146447809718446405077696966378905287946325528970741069899492662850195664907898930837459908595722600001068032175873794019968657703376611797886531032448898699417636620443197954300099463407905536616424787440361929183806514165536059316273828634455318849604153828796766776444078438204948875945357214722907433147146311923912744756683113147709143899740166096323143272071815045655123568983530819494473957105047915598545220669178195413119539565374831279343384287965898141302519198869747975237179512734352690578911511081524847179564578574878060474665374008143847998176111926002222361834565340444653896736114263373426973693257340195005234322640515753606866135664454014793686318159588685203771205681617370162659846080582720960667465972315065467143322199877120341824699721817359409436534862721342970023747141668111322748978127749932898967649678511516914463004916364998614142895471882465280421358515788288532687516230596199918914891330324244234428512876263619693543425881793319022462421557711620720688382766508325456744354002608263494119771801473878818985226545693917453039621863446150147796769184953911579159050187402238443160410375728026770038163554678325853213754012451315255961709024099753501195764404421936936095354592122469556446042594544453479406797022423250971332758744364669399277545560217217961403700268684287978735748035837839656272121896617097095559509838107125406919217194785687689552112739004468586504574627327545584444348280422768558292157831760809038356347946093013535679096405495986635470019821196034518838334392338424835312428697412469353121642865889871584360786535842043156985102798160048577217094372893230976000737515949190201267766395883028171269033305199754048608371814145210450048821781512614608676532769209922522532024769999549032557057111425879102490977191452996172573241702145473731646588483041957658005324621436109545107320688329102484454684498604286987038769218197946236259592119173979672913398654934769993106507498603356790131740709416205871507885846717838789299601744552939376076769471455210258460374967239937257656945304932117977666812055883501483333236310574080530859915888761064380013367136295717525254073198760171984308742555471655726758614558477235218280114365278141293158642561013005304345795188361327632333068627422509896893955744055544344750082835387623330805700698007327801629568869993536844853442761626137323932373268532779483681449872892723127678914744510079876247182786267065120216736290180462977035030233918016455953698492552395617040068927413586711874755393919302762618250277597657539019165020025071280386205273249031580494083475249141302186106382392001252596050698845315521633822573739931571455023517775404954689197585230298280650997079965104855901215992851118590952233780340920441719159106446692505518001944655745607373553656505049893806022641180771399014835593958010982675879271048566027683864279668639451246481853809086737977806754346939603062375647080871846919448382796530313863146810475824572841954862028574161858635338015399235125857838076493447190118551279676106243441367190703748566676316619024315140337364247346319808389181666095713264818278512714648005663905374417873387204951689808516649010424630885289652626815072865031750329130250500616422437844094506104781276083572037500467662671538035347685323819868173975238043535412383636410067437132111488491510305345998388091890001285668284044317628163239670475415389773717417600978366821702739378946159133966368544949774869130084934019099398872207100411165782909689491878460567866948099220981138835368380487973747892165039086357420365488415709520430969244867697201682257933805948427889206375981708892293463253309985289100396927579336509159301222312539758240197228045608294704351474167022439125209580737411087043801730886576131439792990949127487373358222998116004246362608427750690408909333556820296544081847121611374541210889900039855761696822365713620935464511657275098560161359897437911077242102183077034789417891027922609883836898219255393877132479774252289371301755377337045450325716261844706518474324011532957707946523062105880437352737186811601471026702109249168002195050813823850348088445037186038265831190860802154134729869043465109648107865088784692408863036066928630889855480895897276757673505558776334253420810067740691637324112290146956623617664394602957930150801165469553002191651554634389716766971000946186910683197035136039605416625925017637811721438736854210679224122809391311308459957698953771926910770373860055745119896470995720681702660681495376136527518292484829998293913370245695404459395713777676620962885142516013293264464468331031601952231803775574806967950313988630008123323240965171307075333196516917694253340441573122911110415264882142596843076081894074203412005432237747473484098121965874636770156805600109182785539426675335895440209157661162387380177894848040994775309505928515511300052074738085409458366714752582319787032689283222264868640585284778545621859988665197195702541877176009323378893725042508554217821719633299262694406577955235476726855597405896702048235484032241481377713490899597767441672551488204494268959821773721185243430319709158790650948066918228162928915178289553532575145825517140390098016350813287748038820555863242609313458371904317415578869735179364824264752334342501708577705425761320425167029665013208362668117368774946016155678714262409659266102965132066887007670598648219085039490895121541799842810148071910905252398670829973046773428016482147966187927341868549709259466207497720725531512755464765655065360441457378069203218739815862803233373183284578063382569980938697117256827729414831646655331614959883334511846507554681342446064911564207237927461903670101665016106993150618228267378406527383334099709451407725613274988517905154763823499950698607610143085848436420437984106910286835233098361429967670887486852789150478348281178255701886888105975354435386912940703849878677487983932652382411878209835251758559934717750782283774780783166068768211377508451568597948984964821827167993851523312781362560261258583027065605990557429739109647640099896364014679964185477435573741783328976974518170001772253166909539684765906087174236798081218980491200242307822161589968533419975246200131300233447010362511975488794862651382417644423587656075790915481016194634552611722450029493312746723906747655576733113122554439545069537063135900739401207167423455639486943960214168274675698068579259109560885874851466744607571138928715758605960509679145625502072560555041077502711893724632999155640380783686622122656185342163643190889968221073478249232935966706188024467492036230835958884444456159686081293842962656789447836447930867507179633751026947733140462660482424903016535579056522568377994319957629849741121752729907303926610155654975911243116796138260005496960062849811312915179918833682236084576558813657035700295870597591204937232093794658262072477425665580325499961615865201175552222198351328633976616758343277375441580239233962871666412842607626333521957592376310886066995170621803519190345212024711714654581299464387479921043706677353066353013762097460309581548438866630764235886660411910471023196367415909728363652008886077172031456706744889805249067044812419947588830471729934902471619672706251369843527955823961162870093995360972146962349616413445766482686753648746862933462439715742571447580618138527211057958453572760260510008677046352518058361791326160523918135166907771222952370437433103117208653713122200905950431470775087252574220007833397470674874832046298844417074623657140914923582152869546879542955397721180019741223362864104399887111677966440699950288675705819424609610696270780572113954013350760979689735858317070447488423864813000755041940277438047247724224147123118690554316423317266308669673173070635631534477593589746397003617452931113779880005385176246712821542476553880119409440263530302947034543373832407477085564267567564077276261353807200702770709985610749474219185600091768468598104300867460618524547606819920413991195930752069711912934767871970149103482490074906308045066822419106323055375237409805865660853502609267957152992825550389797689848086261953732572070636650847115895288451690557164924646932319066115684334186084822480985332774508799875385902855730756489942362085064672307455559189735963780562178998155044965286515243063491580734613407842233402162236302515719825383934159045911850077062561507413369671516051950303681088821354530920388998343196392681656388476942661482280770492102482827192584268452351605478555867881805888956818694374475278800578845712579118961993449420023014297475359200906109696974071266152602393919524738309322835677385448993613647296729396331768397465706686381805780280175015032377955460985971248036367715546613856266124443271688260508771712003775996726251116695102993963285858078542419938000778985515145245238434607916528130126239006100428671270037160077238555261326035578303667759077304443696867616203762888968452052443436082137775269820528138827946953829610329308269561081499709523015406256884677646459713407454074068870535863278846820797169478853005059589835603414666403735375737936652056236218439668493962363488938666298634217867767543951868396314486815921492018193859054661515491508760658990715373383001210097429482423529612046768734877751342033395791490770733465259237362776501833797037236713498410555885750023464869768277888876401985459224246267350737984470113104782873542467812710410178028298080633548613680160886119371091187850908066281851963362283471104446858675218816697065608889001953341803125303263183614854466249865042756684448911917983226325168693980415341622441315351287842791743414062763723291853210652006244865147884644343846071420807837024594683073415558848899991589642533942378137191258311458722717755438862849205804031024359711661901224711816091460551937100288626771854581625820610504906920023626399934045576156797506213903114244568643064395507795756766200180838712625011362635754451405793854729409164510110147495257902951781632668189473105554651042929658001602323126392302454490304609777736995932710118636099913299844765793783851506651296113509774727490095235601857499381290277416473540113241168626332649909901446763790863370857245519951475395386321226784892509005003675908856389248739304097886350206554906488054521077895086168625492501796592739382284658821380063161914191808002040519176740753891090121459756036683938770695389012893285665063086017854486794293634607744208742817741961892090218739751800429821777663102560838815423800774049765193644337961458435211240753944520021878811059676709680336225434392985793637828264016348517555193436797514264136332498845033866559458854629412101063747538934014548794299717762088054518312012268591029882431837020164441790603838482261227754548168040546478116925570618255250949015851289681257560924956880700508147296239982388084480247949460450074407188327932155691116301094929553274713472443255985302823646766713672581042706725061009115832865371424212689927555584222457610487625780387670683803042618106522930152541095223269126270885093508107115707069536191721093778530841371436456102826313515585611716417836159724404249705891500472112137173960627980769962245273770576063845225854815543483032513221539251787724406063827030969581375485754036570242428061850338277575133656262992778829038714983127580154126914923043970252768036449373444522358996362728941646816657693416096549103523922707509944360200003146153006279058508624253086458101681865311367823636925679301011964750554726592954779537865193275188950977913129953638794680776511536799306447798101373628130586717881471226880905551561951163129188491557827363154749568627521916486670373688093797902038939102655904591444802343464464837940040711193331426704342147461475507916401791243207135367372545973798307706678321211180747447937886808649730148885970952745073020593387290699402062698088252457003779877130599685102158248384859368393010646865989132084212315259088242814353052204936072230371059054622541985379549199731772926636477741505321113314733704044702403085603099477805664572675055560713482822680051074134687644057581902534299411253703260693866014021224168988717523100919901769517292040398249701381568804476033424481786462081063649121291188353084533289074878842002208690765252188566805777088614120272227991267827725362635624235562582428258666140841991654451788992333888150579711274142626915367793939505931435237984789504967950065317825462303680592205838285008968865204944062712890514098374914035292174447683489513476311224444361518068887001883334845047995022857507252459909536836261211339051727915385939778823800778515201538767028851184454557628889247202945156985582001642070172547219524253278538925513368997874664902016003113376434542528955815814700472017781290361009368383111025000511176872879073582040283542082722858443340982507146417114687927686989984141732481035956866783242661496309036706794666827679232957865803067783399917328626024359892368711820877454921627156660983771658866958336195865567080225162713465910036950541849164998414172941472107685277846823811114207409403319239486537788051091097283967826503712888047835474537533048969258670360890875653126094151950243386229810857922638295837578401981621191466464229361875739666953870621673468673517704696845859596224321272891997736096156575251936494404899400924765660546066806034548627123318794703558713733274084057523438007713616404602641803935074319977841167852600060248170321814637051891505305657178177951513657578776095663086284707493052288439916551357749672127956273516879194790566681867682610692070779082994498613745784020630798090315224580246707417547950107673152830811331474971327681581516742666281412420645815422348468034622728559074985592927084864543185699129723893001683248148867398552529406839479435348065188838631023861560243833019936403138114229975666975163594308524298237627205603385381024876166565716092926417930385531960966399859700227356756729008172077513211347223871500407291853864908626199762970170291423939399189217826726679407444176976991396179462579896441367736117358855509436054898635152232938761716126094016498163996939115576942773880134176441400587197926746275722585398759101173407011491559829164798846244667156740724244729513462433843513096542535359189365949663679688078975958855849506747983888875048785142194665176019216045001458717376328086961251456350980997898520431856626249048581362760943504423988861349265940621044659313674088636824372819668748087588571689018646654016630548946142286239832078961283246001753537403559065238801659756088502664171136931184676710142284472175790917444222478411024810371364839122959008726006608891356246979632990794758599998127270901577660996347471668359651840853522795392267852612834391156725452515661828458647320039306589110199812089444557413223494901075663675512362669330538040939367241551270550596177474941515270652065936189015123300583168440845561904890862887187177819331611251782922973959683160173077169002381350415695142221720843768242829548622271730618651355829944782092482659563313040653142570871168068046901935204674000086107691450625584189733341142370665216172692962662751843483210379452435587409713186874663399591210498684090677514950623514231234004376908245641067646927793040639249446237323153915189033784117388741397461933978583892906267482167382717025600587165815511858340748267020016043486746940694150582499123572057344597853131392441364477516160669251565318987266210874619468703102225507521594961846265282206197723926898064318669917484647442740233951781615361775963634965117820670847705580789449482366773171340966804609539955118586925393548578159651612416807631023083441025176998984911433873654291105233539629186532695949355414988823657307406081064610974321208738506834309918147150879010208742374849298530959116955573777987887550019658241629481397215300395984571461077848732425456973764216837978072609267232683771966283598032513549816758830031553600948881512272782194872559831934146646321591531124820405161711762152581598429184708553002946209950504754624333772661434519385860001134343054783757887593284889577171340480359472013727458417402712383995308014981153588992986587141941205385965559483591014495572524645275656642071844758288686189318915686854075221817690904127300827929080693529513425355428624007680949797543233898325321864568016972473336324474085677905666258799253936080541528369214333281644423871749114997859439065453546866050486469654278950797892933018189646426967619643620938052296280263631596637346158181793622735755186939598413520505571956989334165974315930619665304765342411892642615567619323498437837939846964091568603296944447224515818271563783836451456911656144100976266094245682594444628528384101883508269128437222480660984750828412616024281692113981974101543543440855160470444523948922805614065482995309253158659316398128824396727252652397202615924449483957871812376907435415989145879183610570580103338108315461664028619952998992873022174960759971880151828064903108912912986754962351203315464986181577185106933091321949748447751578354060527387312625030897578362383923414980274355639997201243294253602970183957149609896237629370364716288956084235867797239346119835198044570807296746661047705288929525307751069777822150163688173094379292852579519698574452107071083807622056776319209736821464500848518818753055751782666493840993895857727595720113147549106558725273854929680160364536480832164314781430491730579632022067883508025370488085830788310143804730102197871197861363045862666226046563752329552785897692206208841516580028750990052776842529160418028762067858874884733388590421973999482866185606510138034359851919828047038096696210611593444524640576925921835780399319405677141993008745764708273438266975567117054940066520846335803870599594686239009284766131100629760692382561648041491009036622914830796158817351065740381052023776349338593749775072986539812571856879794284862440736195096322544456971637283222085737928095880792716005776229972003214626691799452163670714315281131616619720454709739405140425234966656602970487246553231010383147375267564625777221084215906993706370464495399215546206202494385972505373747528955818125487264630221840904424830260436316942079337335942758466337536139118688529868242292008404284973941543983219449905046109953691979146752569165789090419760130443535349502974989762079848641084648699365424804183351751318075760897830575731965119147319351510507786594544719951869641289716278911721791126294813482531650559742713137418884366341657430743880345778646906542771620045780209989244926802024532342221266645724633913429128014795868102039235379362216250760991919036152820237947703468503309368251896252292881578217267232930730486412998129851991129438192335858406868287631663069690598651188204479321485452009331717794248102415554995640238090337397083679904744406268320025524377202492997472748844732918754563107127551675435345246378124466705880206206650164134643659063517370527873619852803970351768266833021960696549723040339699154692501866053015807948621304133328264713836697568426464428849136956641358066295717272039142265153584000674320327492217246743351974929055970816659616967612455070490982629159608907587775803247552937953198013604253869761981522130468082573861498147279459971391059162453538547256945939228379705038597351669917294140180169538388623920520688222561721897041255687201587201632760847003542651725648177910039273127558573653863749864001188098946706634001513558279651551959941270282205986782778470418456262875766615820082300892012774244119673746149807698989102817272625992360609664787677524098028613630542821137362436291125717076058796100292665434532346284155701029708768992864585555963131457911100854087072526812877217862309204444098584175031829113743105210268685298243514208215188538710399006923906359361718621665192994339283522799939475396299315454303092484299181681132731130320800758192775800087321174151770619875177813647527977018663310386738942164161112704142286145074899250834737637509430809680099233643189943819986075757520650218611902431348409470566872043952055064739096684699213779385660694566446569324982469368090082391708241215532893159628286361583190225302454854886567161743115263107693678192280328254230832648764237945011110122488015784258731261382555575436177702660023544956381225909487396977216887599443121277751147636004739968429916272031102906188715050527304929228890050256692059922452860266772170433822570675201280982669259520259129600311302699352794554083067274311901298521640079330458777854397447644585980913035877387194959701522353052694574370591729387231491876872897446593987778451222808038323787625045767570973530602117537521288925152984519517085078598930968102034567965619268204152451026074497404734335668591738091150514526407794107485324215639684002660168507446024355757210624523629414725598803551545086630620321766819234580689918465758214816271734865083558465256647678996413520560718761490191558456236183232078732203305367329680811202510246370498286871722811391048232175371448993265411940804029442143230079737447237931826760830574785458322874061243953115367973508372343460546897212207214762437044026082708260905858861519243412041108858327539679419581178570266895214447991024555960743192907465410252216827100800921546609991580053217229317535420882161210204852857058609915031141253093119505442235982634184566373345616356117469381734649819181868474082999396210074421547840327742733738447368045700540742077716035523069877801995771816967075486742949675887079489597142228438574966001916693111577532308563682955749138740082098997718892183822034784062705311842015428848178490451854512880540386947318592137772804941325632472694464658579033098116000867173142977737878730266546294616404582144747607761652372126866721787152974045473852116510708080331571943551629855008462353713380652401380995033482709135935522566765978418118204745133383278451652418421095757073441546177306162932004629679964141654275629319299385447661727740319927261994812692782560059828321624299882528512666203029863072703744998382107794850754442736035960996797409918685306477542800473231056536895755948579895078298146354968864494421833610567435987902196163101959122997846023697390684435515507804486333495809575336879571214552640259557986427640920937379162221305739243820737972227844109862790045674502514168335973614112768844218494402505526531710266250144932029338264450349218610765440724861345870714584787056886517414470263046331345893411100247395309111514716147613766150340568721974727948762978924508297379385220650044352206753053993366824460206498736225214075234811266821641092565389045466268432585795920852360943286647435770628819963129901852917963038610371539055658221967822025747975196205671448828082833221302797619751149505423026975767545881333013041280479039667335931636797894281035913412506267210219880499526175184816910705873466188415752079447636733761802891377894535939566723033721910757272349334511161392959854483057807450758025536975345911163862682508306576830748555953785698890118211724390083664467326605865362488911539342010803940503232971335527968555288266130480542926260813238454929679944892201134888990476589380890262260471995047486461299001349342456854774903325293357246533320780564275323632925098366366347624554249684333574741662516403467067016863491051051853524674637142293172189005185392529280535660220594702873865502542650008314997197040118912994500555122064117127030506123245640720535033171595239248826718459948045609913229836153919172202873977855510494994372692811951817282737453151485525413496118062043752893280244299101749886147845481515715205201170878428263597854941615193230068353271613199295317277972542034192240037547315331963465255368437334538763890249831303542798689505382162722924049579418471981993256813058112735760523766948570038127435428228632215076670315026757020207415775187426048983249080102565775628878192996224333995608493590619644405007724065114647841967964242835617680753168386928361520112030039221589714588072312836970957450509262492370809781455539786284766517660974662483405250508641121310972201143377512550174375602372598049082695315193583353724803811976729044270527551658120181757642582234815561699988497216806413796941417384783886332038791540321123299401577784236111992802293822365957109123455126229453305125348187587961603345143913217362718400012751688274420727237346899582610708166751614496140591812423544914437895937358991317429914579809256887092096189272381002422908519679635656576618598776671748623066064276573771001407365808401592116368884830226676641664374170400610615840429935289945517910768225255563698907883482243255905379817726321975642769273089743908850376790456793288519253290907246892059622771756821824336153608686434493784122595294692574542357463960582714255201367375557303018653990469186724364032764601920945845729862391020532039077817922257364360084467377960344917119971581071773518570991282048959742025513232824301012289112228825310253356501103144301688095876593635296906587202805197166081351935334941709066128329590199680196101164519802710844924857311592747407449317797931724234414712738293752897808945163931633643576226458611699380562263684601740710463679246552881845683835994603918545474719928733817365307863566410841119816575556531391572580295340216299657923156560754126797208280920722687325179292355661079375497479881430533424837819626274482843065160965889931655212629704640346022430646075104926338051119379923882787219514412822132880295738138295431398689326289951379281581671945303209329797808712840011951792565335071288585002595449187709511605728330375346003727987866394821463703631647732554012255315067934872800260401421349913271909747014443068132304640000234614331418041011292841681541027806742409470375596092331791141998680058422231078898851952291524804497876887480739816230168001652323381472749106095610094276710104687996488590411516430587873954290179687722567231479359320144063474922311016553930694906220686192701758842954429019267686513084075712728148908118919278739489987176296152093289140214265276390717317621627016326796174529231062850871764254844323473346125484255984313406348530378906509266819458197172048064250285012944821286319253370037860732828460544564403019112765818846638992346159562164838727743735695200080393478145596923849445579104173153651589108873247068993812454904325678792839189494955272598411430553100021987113413729161284291733648547363778938437922713103424137236052626975460347955269312207801813002637713978193538745258779798596992567745291885317276891656157868109967557527537600338769504974196594106482676543658258541396465809380946011347493305248300190382801151369561462056222114108466689494464302628456995265996778015265839259567698704555380236053846545521066592510032648708507482718190012975211443656120430604909195087449716185943836142658151068065095408820442153938350083217534766397768941464602173604939955963487896262201234839161819379174029676970995400861603863388612261011346610705594967556091541604924791187325933841761124827523356789653385691483354336876657124356631458755567975891675746271534778914056572546786537647233686495044479048825435802506780326561677525831258993950592375552358457265980522543083141910190840283607698560209055650243560006749079000506425236794170504636822910699463053291481071775005382737810895527117478673148805727968473930265000666830068666239857879378056841723030757019157805244409134998872174580542701767898247550810637877988615964016746067985754526297330697589920049680766773711481989809562043975387769710870247352581005465166712695225099163629868479685835020381770629598434428519085726945139042385353941307078655239768749443973951651053629112823643044617192713152504986155105327505723048628642813959374780634578331227339373778395084561497688561272281136262922241113507024487887139471918060247729665166343651559507326490188874959602911278351762997476833834026803176015973658349176147847504363967927835889833809385135484696790480857421527307053676004981432734630055223585761346573302214421283914239832790503040945323639866829537569519324268960098898817548646724102842825523182244517284882374815485860656242309943830658477354241136220817658468041738776211837489889558906333781291361211863840585578951869627569078488889726777520545923277341172421891277839629841708409391113991776505886218157533688051909655261896205295128720207758113016470398916014531861490917021726121079995738986762135493435574612601088366821475801719511446270485229312415246539881441990849264319340291346179811147080666706853019864946351531577402653568525948937812649182307688948029594037327950861592688681284558974887308252995843254834621433255769647421133024206040408036070417207843112674415135614132821231665583796315527812965493217454868561510787711757663576355365887635084238600843358554770649938230250744821215894456320351279406758574941452843374452362458507513749682852220663651115828226811255023495555045981972582598818182423442117964561061114181147542450542561834271060754963848732525609254569846493097380323719654608144606188662950930562067347541854868455554619198574215623314629746498493955685927720936002084794754501506214078296876653914621770801409489992807577604640037606307531210269575416097349505979880463429329743365386062640078562760709610602342726139755960839893074955976658218863748683149351729948057853766085449113265401660192977280154855210531730069998553459212404788791906425902012239458595186344437015662859438202899528264874011204540340544619539690571571148728955199104879755561485667419038105266255995544807232617000112484401457894557082344684289085591276684502843800901458330078254410143286737995507742309191666982766351829325187475581877009632642697485925168755249686201575944274876689912738577936875664316041663351476556995397737206816695631227769093709382165364450756424287528188268911049478280696074684769456794720254740858936493443560110238114151278540174394007579955913200972055713672380785252358165039833918976481540377253003519380801947996607434358395241597272607576550970928053347994638729706306646244759522752969379805553397765920305067901968908329101150061714373892755452865496396064777429148427080772699631713589379077131419885006175484008962379754681053596477676435752405336241309573478615449047240524699232070234521511778574336148231731457633016692932073124350789141560921852451548517649058879672830651424160875061173346965157289519163417542875877784017507371280169187684945100091229125280161385793570472177278815893598999694373352742435108821216770200134005647211585010970864231642808656247966847743354447089385831581146158339899535093829024436876580054761452053598339572667884294679248714869303731730380001445882115474161558767244404038129837509783612770882367355749518658805374294953639365627631835072721981722441030891061814301086535069077828681786590579794501305480383884999986254583157628731253545393175282672841993547883688032481021347524828578349904471270015098678915501088850360974678821230936080759374814841897674215028704582962696180908917835936290051459753509581755722551414216360516639767293995299443346014257406809053172554588439529035861941527449977403872389739733698994394537127040187449220608289179290814853731701109382718672119581248672627180542139727140085286568364754352856582158692098632003259644451102682380592727653294177252014007059667712265300883935607366626111707379314510982485727884556163508938684672922877851008456532561945628418295401270241839116249228047076699195169676211884375102541597800905417919305278537212558759274759319971492115285643670349113444677058303684676915020506877128430496667930859633796580350368629021939416269775993201699400864508457426227799280993613422931434578917309234645748559149715615613799484614547906099878238922334857612960037809073634403764115630665972076370955181452156066455541320963776729239021549410986428165238792016282677718850034266663464208485277583616060709823617182715567538302085906764112377113627517595989475469835269009430938382680269990020890953929237762136734336793002906559422768496641077103780728537394830322963731912477111598880025502441042535665711717324329723190044520493984566950521089273493728563463793247527985903477903272753330813527166635571568361309912796062752334091026443135280999889640724521923747045265891370270716920595834973706290863617373572897546894093475468134876425727347114228221390635231684368033422229483150059436850751939330096171759262243311268935302318547627356606780146825150106430331279799711974107815250217460519976905286348844397116128710114791765526951209584192836500819274405408888679741620222280131730797482889441605081174006911464831391705458477190651773982213912971341477384058918172505179336905397774904791292168073342226080930337416904632155289711017190381803528638583460078284396647975086822332392310533552071513113748704903730518836950841652345034665409602139807979847006095146250317316846719769771359072662605560766888673872276830092017345387515257030307913374851725029514873559380123121206330979087521369940761065093527957688759086714052780030103617390955864842722586986581989378986874289625556160707686468054027267634389250005724822177029502617709556610111271065571185402042080373924819298025898719243268594156235265494037787617739758121531026806016573474338144871404632275121258914824089305326321712525272905161040981457279156503814956733402396711818262258483252834206407692970413520238994867585387269572898690020236447724876390161898373888799815631786162899412604358528036287836292231328998094123577075836881254747597184923903057509568404247639568057899824794741691634040430371497485530219038069078015638932434226477509271391991672053973441458298733980706277361032388391591269800500494820101076955992494454388728894788787512501953721675657643455584182193902289159192758534420829328265006509905191346243841140356202427187328251848428892547383851500484024676760382653680118827758685032950736150506546192307698356390306428459129338603201682935976742034137170421906126784573215461464687130644288357482756413630390167492587038361449681221728159604174492943034157734142783698348214446532454708630873508868377261438173375471674973112478697578166265142935458384969849852698064981997186895089488678801537120451119182398971469909915582323921394053559625237605745533652964871160299407239293326135520562070145276253080829821939175594336909586571593455627119421472926533806989663141263892208879801417605937494698125700179092460576739045289083932282639846222277014031207991651922189471021513714771072054485558524321472200248760825197960202778689217404241383428600506594566634807045782163661124616542617943357624215960280958701656046298947358473932666939109169536866713738184974942518594510825277400521170145401346715965446771924537064455118034177347210829731789284386649899191441796917869844565341722827297697399839061629873908842228623477141566917287576917190963010504688285060400705849893383232873570505416226181309482466424406054802850042526507525698791315963857736865759486573500211591868153919477453852690273432876457881260170259353412170803521957915181901057898083052569617733960668863701773532068425386648202311670622224696343563655077612248484141453443790715309825413850405329583693370980934358428923315967376804907262820203103094657993350917665303637833268668978764471999498168579695057954477096968552106322778941713870351768152133727964283811307046685241217931781403643301872759724810759696242307548704942050316855017332854584872565783936120098718973063789795905882027071557941436254053718951586225902763077740663440845450662193854182133750825377470790043809704743781890288632851437262261944678703006615065179281959487828890990588055512050980338091045129339817284897444594642390113484308480219401083082632480860522450123078158448543004579313592669017547675169275178640536116466500198238956495743645174021042446017198379303714463153995370902130298044338524270431143865666415545045966818026141431177319351919456089399009462502150852862935516610019253889179766488762810051852330553100839922204952428947439248908674311702635910626978182770668916790757836411245555973425678355637881888768258324721412583653039975364752534060677551620488157998086605644825006506192274381845933170332380088242988924146023129928818285280612289335468967066911917786457409844580738279952289360131648228428370456118773470099903088938826426296081707163469840215915102196227759954272766223613480016387656519402105486042211332573976889928811063580783356454590146717895153005199394815727251750736921958982616810420022323714121363419251096206106765967636166314815878326546875337248148925889024829188387357058979569641954975945043916560741726612593131351864682009286178831651304544859945089610564291458909187115007366019632910076051111458564844402836264800097396835544909453293091557668054073446025371105040369252742998361906861914842961109727063896504355369640090428151227607664787543022233923243746451994215247245583050975400865152168317413642876816137521758610097167773887491507928000672411440164936610017653133793172351879192181859047189470777512459534301621232523517670912119133898028609510946781040468382263837775085338465984339546962370619846360012000942210580124717782944986836382654821188139013552632934158744502927597677501369206063868230011956100741352676194455861951622609177939168900992128401058980373825157594124490196931269898662449490732947998701918045969409261179194910667230018529351652795253784132206005933780308648567068100011329116894347136259106946413235351864285542107927093264152789070294419682805373440343501514425886457091092237709260999201250377685754424230451825681249351854006555888315296460010594171574350776259090360216014785594237534860704091917743463007389299557948889876948228312278855164781074425503083829009483576944851424462404470850425713331258830356270734906689254910584054750089075171101863407766882076681955375506090993488269839984861070572579517942224464007827407007485314372139728226528377132782673681561071524731521487077311028127872999499957763965585468954254668608686130414645729941919605497984502245749167611663179011805635057078564434764073594231563238609982078274959345025883539964507051691174367878478081783306080571210350786937561882199191367652178366760770815112206433660450083462216466717051747856271372053324663024421838625282105989527716001955599038380695390969964710616515084924492078072194246886189434966467741059242040048695416187791230091316567983083550759483430446165027683518887288520257321435325030760911838122494433366164766790653452987780597534240509410055319732287729898633329236637492439725567135486413253392684772383924762546212218292701863940997008555598841692992145626797170840292632913934034437994950973117454691738034591571187065567466963741099398887617533500876956450734094866948901121623227268200101941671860682893410338643600122350577000540248120818684383510169816001199500136506463981511962848146136811969910622369568805163465497832587085331962342985960001224284323714556627939292679880900537589046080595632838633422364794252126285384909093388256688710098211802411563839527875691741526786401782336499117687480916473454033056309347113518538422864014214443275765441251103954181986263250284345032067300460986638475339441767504822926529232895713929376464317160363112403706625827830939841240720678589834028710272570806106711064471219817661792420116486001736365489141043386433780023756728688608919220601877297750054880557337021215308688560924894488282849359762512468183168779151099592469165557327304540780291609933396146357671325845791633329378996394501721823165789549271309635036492492333864149602206187652082399828687199302825630774433940685281642841411515582050913715407828253871223507348501943101310273007831879263646596086421261619721962319717788366212958844408117347343520346930256964328691944742170024713856185935106343446841673255627619824243230268220455111075655614353244866472489700445073297204437416483066998498614844264760215318813055293023475306894787279373253928887186220582398492433859088285536106118166667711448480115190846131145385883464126442593633011234761902100008438620068141896873839461964074181106453192309922601654343435724067580187148263186537677513509887958118010455377872296916704881274774837610301620018937983353842931682170976685233130461951924858455123137203745347410209569096790398092087804690610204949122137755735978825192497533577563098589754648608500010648442790855926400070577515194906705358112601586382227329359755970851566329694561210086915256613156337331270525349926688516054145629349579588182285632075796239104187445294395363919353158056890557729822438687552629902628278405845646288647811214374552831460949764885281979940815806406659444995213845746020867824395769459366337131001409624943512172265554518401904374753563431572588146477336082495598998674124047836259181662972554018216991332356641096882893966886758316399544064488864105704698160231097032666026846340871449549448618222138859346868182925314056867750202490761222935357217946968819352362097362249576747850269046117017758381068742239273316930629779117333429494947847340283786566211587760514092980375911543071046364367742553462460852727055942288300703596289014584524999066070178486983817561322892946250291466068900684590185819078231727454023405290681494896442416569765579268099036016710451789918338086260194330675687694893653368380261221851861446272446655350130481336232281531855727201536174066340722912392243218897120563108669774982214214807785756808814653309103549716133493920245129722364289843384436974376855365519110690701746238765686188783591726305429021268338252509985266962390386156024455639491737743357495906897489195540246829575100269532417774284029755727577692243510026305436466849677173144911011529354771461830771815749475673454421366224908901249916359921633464651382041911691548792512632161793795876552414093026863887569936395619681271781688922437852419652510376795202123832935812959767134191573151923374216876024350216562933019681906610400539784240222816972034798476157861056829058732964443265300935516657071615919758900245898927985368883889907582240710016792910552766651648268775894622947028453052720168022263304955671991804864147130353579477774463453403438578125292247680687776398281994217299712499431150281484168571400189453663129666790332197085300049473604659700994234426344524776407406709007076662494048591215380465824538580214545389704470014859712515869764285364125743620266411829501178812077319044517939500528797823864805745731793854383469560730330719707120540972224706662587229379279708084654300554604745706802082794067573433342468248549008180966999071373082727240675701287304687903393329085621870669274346701519250193873332209182398639538388013348179934761396404215705586960889963246929501893204534519906366943760858221581801214167193482302236560747515046322205837746502147879116226812750868296976340523272231693248499712344542991770149012966064181100848111786983589867407821448623338328634928242066778066027133327821598389368120013559575879473924832144592617250966496577572557656339390315287777884492163899673700163265895601954289916694146431466205378506828102007085079844186008596522867439291819634705188944662483875843822400148454374492402523853474384942019132360995448508069917361427861240236182920084342405779328975795536488965850746476557535147695190466269019507680235897709848940321552489172340236504127577174085031888864119631905864081309473696416074503667172725777865710984718596670853427099723890892362554065218271920852218337995928383570345731065539636356714921528887925313780578664422714691369224534686678938631785782536447619125767994073941001222551154614142846906967603234146893170481472328782098588725965903045261122627751314533459131123986038939047429396039891239165244833196265386906537051396524109041197686473747183165511254155482342434630984474479285056494095002596468757713589183649814753412610540957809307263347158411064042112666541053162890480261430378743766215098908876030780062168714085965433261692970204380807952262730813225837445454702442720645103101366395940682682667470979292534740141633907971842638063233325453845364384570871006276046688963046322344569528262579144501021032829159997120120598361635778707774354568418907370351602372105526362843873993970921998724873741244622162473689980012982565845028719394030184877228920718871255875742815445523403379513132169305149161251750802389720603139899500183741669870738528250217483421859696879634441562431223004524544047861950821897509313474879681181092662374439415174944105423744828091409100181042896205757588906797017468796003444132064459328222701838202003128066927196250246889646588284426949238012137687653290503660177803563039305330356764981731663139906661825066839303864514750251039004872149901386128491612790314316182992323274251828364878641187785323779706710862114040085789025503181110014499560469225778547918135355412243808013483726674750344005453689383453603860256009359957878110219541216201837887080560005665663384673721819279137464567089997128106206058530805633274617025451088071962467576602510867801039055312776739517098632671778308510837557116869334958597988120714259171236274704896792669719385295046577709035649361907725459214365079625085805092942733280788225474005777493308164007533344024943109076232526891753133149941516549311578518460421559525305306285631750029566908772324331132187184150831403694484160437042508721152722338824544530165749935416209615132598959148751083373639908730020154490012153413850655707090633417065380816532087790343692606913482157769077665107390554334126752574432400868352497064498799515506440593697712647667626704517985833304003381635404119761231825391642513731256361295439477915792109844219898074400049470574886296262279073766774854796157736125829511287059628877985733172647171261279003792148270495093343669172261993441033405547597996592222963906478498303674588309174576915627368926166163281643060726557230253386321902340367694485601215578425755700866409709373548367785696164563595902725230684734058565072963999637911641308380981411446683816604835871972656358130888760936284428445183143595980183198217742899114663645767916185497244230110534480404437185909348559138354749032323873696413826531417163902129145196232624029457849307266440371123228066056448161293754386378900973469606744609847009627892086986086199948738491565298491441856807435346146723698006432990773207955630866254373890350731136968499750085859627402726322625137731383125225456050691444414977250560539169723601794980883001105013732188896389729424979297490225931203650805968863186781004248064672769040946596919193099159072938202566796279354086779981967554791885861156093947851297547190286449975597724973339161561607231560599874736925442727979911923377987645402397051984834388999382792477410390119418631353016842665964744240380553155649240834238240460709328723582862301078825309209063726166766058732418094163791921266770690002015726222926951276915304254237781040674165057692414864786911053811659953990725622064883959053918373453003641503070028637861638095911921576974837783918199413567092806406883581909405211713261549106061440234243500678143537119096724092933386890752643689571187435508936470600995468753754939800440047616008547005898662291712837238338633407170367295031683658721016337968799052326559328718015537313901847156900801430116462097976575464749746447185197088434135774235777864565894372489200628658269603082438522571050687971234203774835594398774506054445882808640824819299591142233267009448668483943755733800352216252052197771097188784584636780126756090643620143548190197208863129628617240856234380315093107078490239713170135344119634263247285671177990143424624106831143254467183067796780035518815537222326575565680705214129535772232877082843257163370648193754978647655817319950390097616053368814933117171177750631379666660438036440099324813288132458160088812788229505911013293831856619342338072798117853078080463977261183700530713467842197597288787918601047005772927360362532246740638388274344018617393776881252236397927500268996568685301329923674317090570837905259956770338358456854382123236312238090037388318565324911677771710101108957316697890761704818437579133037278488705154301234292832709986693437863285415551969300866688178588550487312702073421140417622899990383655990415375637845603324981214684377613848413510183380860678028434186181529513780791930511309471125968072928780926951197104893297851474233080653475065069158787259180280510842025075308795924501961173950010309179631846809255074974772779301183441777939755689307825770451075259926522091314342420319194416382980062989314641855854434863132761395272169822173338337889146354415978466284414714827537957767073811891273291465029137052727920357963446891292789768534624791747370888180837168242509429476023725444458724390992340994453931531570696561802002421888094634768215486697769461749541804200287742883391057716496882402227750621370143735797870185734708927616297817993704302971718531181135237522786574123307326260478952076592714759666473154076047501223065162977973588639665865316991181227267757389038222816850228910515097535153232989696486094642217282143590725209869815679929363093515712796765004114286613670372178866500214403399715421235452863864311262967122659408677948718722453100777319233649371222151821488267646456153212062868720551265514044853990523784635762216514173751220334245980507043565224406668176067052557286273824868425167753495148332757520793931401582658292382731327445506250415207196103533717844317749262267043147704098304761612036769296607797303666412313999145346137778368427558857336413773498506471208579718367160448494153872635638708893467065262357319244534485582081702073431941175675012512182061039321445389814607728489446947777593973537257947429116464764552129962821969216324833274653930522577330153597984616182614246271958957867700189989017275206535730521766660540456881553948518779205077287619877734452227641001229741718359889358935473382742105025618498278244525120626033254427326273765420308147247843954727414780078308671046133031667090641459608565876351219714198682940846557732928889250403291173298163282612595547499716211970935299595178289629423095428093238102050805756834963379305789006580207024213071658257039982588408927042755840426455147353686738049259147009827009182383580907002264863301373525789378307075169431353563264661693054792181693359486455996037330163977031595583366153353838629569369005684467984859058978150414542846203177826487580475547708220867984108156619768451606365496293954659782825450056856089640830419620120325978351823113530266481508633603303747462474977465025522088265552268629595778179851344946493796169281922069233108307722658685635994337380224891786457914887479780001744293974198110755345499076255904393092915580071095101128278379454904218684681250729339185694659927105925708809581269992377519058249863108168115289736680321466877122203278427881290776944599110256284248334164568840564068887669710091832509684355707914329550681513632240218100827271425223460919212821886766577678142597608974343896538710134000695443014175981789565783838153168490172670720982954442568491068818981069666051659239388467172226263923808155440432282558931250505913445519399620073088309295572428501258774348321043163559270612414705358724273685102317365768471921667969853535305413755036918012600418284994734604165903515002485405392232142326232392738602544937812093404933006602329361490872907513351073607048577474707250104716391344375317539681350382793702356581110870842830905148162445083449599377685783204267466773545772888526945110950127935178417323630128749992379024302924350369983996238978665403045822165515600433261267553549271365007927633471029694985691039234027765059779761363548700771340687746153346338549018986399413875305126860104567013818393900575982648751218715399211298450812706280898680812914249094978248680028996011597498549097792349107079620786490034518577014551578547921520838636499780795284283424379568858468076408900112760383440594419638207043500788880110709425770902843319528424305400278087754432940546863034231711731866746354840521490296968491567944634185672153274820973398730534833626125561935783797273450414920754392158247284649043129542074677726034716167244136860148932420622992511178655091452100337328249051541934516296035414485591582920586495489684861344119539883394734123909988651125761521791675241753137609074808987526773690718287936312193065389147773445776469173426642428544468056379011110485091615837486722141150908469852455248200536660007231574227039109068025798442824902722175417300506000626855683253030601210183049265558604740943660702359174884802074934247392965270780852268321315654571607718970366124564722231856144338410344071663020801166417898570869833126380883363535232792011007887331285931263508016771941588150005787456639907416101972648673776385088644705664670760449874196907598638599435696678145659727655063179145319088472727505165061862240903400128650036784771210445344242145447808392869695866059619848454978016962899468172544364321183715875446074780524398416326808567025843936424728377518413552475831074138502523825001449794399286566023259880066618022712237150988721333543228706134154224970455254485862077152079747717543986514971423722439828925838243012761730374067678303665573001911390804783120206835471767295913845120194650898656912261776609310186234609177282529463276054760575154420045619855459984355256466622063777572534652320153203103526127031011344974143496815362153935103165245341824652656051854898080259025014069781186424827322315399243027128285384209056509366494043535354064290093804632514982553248252098454653733136231300393448361639007154671722408667070252545903016196801014319853028245131886776205771315209491312039055472600161998683173346003887672317513974233996934731598457022103515345971318540751701708436798446863398693481535305549220911510911024879654017312342163083309927599589790111890767188057076766677940622212502941392522190533271084488523928253770592470036824342618795715090642121373710229205288912848237596619285981780324165968937642919366084925860298702763426207528594373723305372863211838416001334164600201512467635097275076112757359862845166469310450890596454472728342525727673786213451842855546828423198058146636695709273345621496623812221033571611964367714339138593529955508505252707194447745768087444130343820267309292567241418398782567181257446227974436053355390196600296623136932647298498847033055736511067299535272083097045021472589207630456258094686280628116937818599247643889804532898789915125734556444683148755560790252774006711367253453369604474062692439136333543071273664787206949349282277908800122594135571596589532568300211695861057070500154869977655772958558940440111211704956865733002342449287066700381821952876750212265962187466716417640580685544146098807043748896450203611399882824475476455609489310227660055400172149636257851936623364693200672062903711581379915815907327129233568382803632701396853004210647592761472629025332854332975791614242419235781124747729706129177076809940785464418935622358785983751647188240593034571609457242148573045194976813439666171833466012103089771249634175997002804446520035165555629180844171628772415831780492320458788502387425348623297670742625055273914531418262331735523816955275235723119025780808832001679026386894206712662655806225580341567377044967798846593182677555323489117131040811276464473304986162587098211739564034898194999555478357322834383982171674079628948363025226039199200186456281840379528273300217722322619638276749759837584854422900622911228400840533201950525448560310712403205724205104163671843207001884314066535541117570121140846327270503626683980333465819054402382400331552910333518098747535826878989682173271151605205371378053136889246076776800824460498559972870985196348800636694364524779478829129001888477769675212107916074364909632565389304665456112151212315276572641706964283891507951343344709987376862999599840373023256374977807171655724602698511139243670748066981182464354356157808920811951187880819133056525555138980287679033628218706086696873951768194102507769748978174138567109461711307046207910103568449100183737064041264389578983906083282661680916760037641090486835557674823001733634481688983564112309087287924652563493008044694722736427283380094654616387916530508362706982167549037252286179015021819662272327256300697897379680604792783561002539783178578100085869519089064368020997373587687698108210577081813935986753814007869512614789423266185876702234614385167096017779194565677617914243438407269121668979790885912571200861724284911663330294894720855334100457849984522054340220060275637974940932302348889900990362213523532470331873103484464073831505486383139528690018810292854535806415832334560212213077278116247690143680903697235562905033507866235484434874653913676676021343523543621273466299490847215993719644727922411546708511025065106532028702119470295219965324648500273779143533965029333481693020732288408740101715208167488735814274295156415660335061194669456866740854621464113916243306738925425844585790303997698046530022328364190233369158304169581435054874717833797665977299502411498992551742936107286815541988161128279716998977356514415321471319973132594569071629211123367950086825924959261378125145026112477495135283325823926550906141870494934679150027690063063305127105653088017861100016860874553716043785118846760855612686854558324682304695107903984264855638075862069868765893122806258786349547303150613835118045406112594121959782251360427373148662736181135462432916603290052940099933791893419174026563425085651984184048005258891413715013493864501987811949150023506407321909870978996368181731011040502315518419508605618298426628694980053303753131130406109554991539814789455204685324713280696731401548345751588613045264440346343152901081198961197631938037481269308118889344527020131843559062470355182452024148580335544033224424936418994406570039652686080651864338530392643113273130633624337603747715990322761096622158800212209466606065692647748764013762635529574595592768311403324031876678040437105296768914526660402124579771923949977259877322161665921986659897190618722314195487953599237889405296789237602568010512503884401472074428437595394115866478147550678933224079275805879532677842664478845954923181848928467141655573379822981289492178516151237196261891956300513582493791929909282956016065226809907975494111622592599702424683325927491391106828941399242757173176848379110422595070885591178337587571675276243811778999919091111488967466481984977619609686843117116540406875515906609143979547638007081866207206731248236548346880861714551065275486032646530137214356383669695427057184759169870917648020724543370941298074817338526822331168003000320487088998592335165744373106795280928943937572436962714594809765170489830288422294518461842279072129753611095206131923329547882343938914374225197222950513744557685391826320097208279557715397319911274846779078042868711491838197188157824817925782679572723419134007117999611699120331871006583097322772783502509532506418953037777291026654211577977694581676338735303682679817860693620192466875520424893670188059080777967586265425114467871148089567471046741776142330063580354810979829124437768713312008696083756548041588126940682654231561441054640529384551684085505616248848879404173291014836935499648008159923160794732146016391034690653079711905138126836269497997197728450670944953266070900761101423721066381749243362568153506613082550066473346422702964837754973371527224105881546216917548520086043846253481169830409515779474839736489070803606887081582843050051571387694568038307891804137357929951373311802620791396199321961008976970772327962775721094936308561347824646122095309331410306132830511407383250665575399852506725233170792584380800800863345214561396160606412501417478243265185573037071028932277798454572263831159668298889637279086169955146617508015788446933959043661784388860890918134164992599350243603944691689578919305777375297806703846275676179907415681001655579509858692103099641957383803300580017914272362012751889255974015433905352752274601685498559738996475071085677559175136066780566236458705660601446828869769761180498087291778234554419616497165559572812252950322764781496504591940501985927820453346729289334658146614708687172572771799064237153371497645454724463800625630013370373886847789969204664106935627058965143380172189880451031812829847477592775928442345564494185733864399630397176213816704653618300517981514911519166452923909730440082374315563091244475215441090603331118908529061824364717765132449760547107478969788271841460602743059846839944331270945530823882867723301606849495347018045457079427811226413068946033509365296209715880657140693470225076317116762332905139184152771572935883782069887117845833801874961063163070244770808925346040340213110655457696704867281771607340660046737200088182553220053185586194995726550205010559870816465969999442070254410838723869939899389175377320133976673932487294781606771491704716408992566113130330066762749597420994627644750454069356891368418185643490035283425620354738285829464682731627135261541980142136186851950374537408238491365299347391210867033664392973894559096136113194885096006294551174743575939232841119222740320032250853360683821703523521274078443179546987326436796933439262612380797172710739572220582923877511859052309664705748228775884577645772833662337384678266868543431406571645198958432757695920261314225233979843656476711705269686205824803591979088274994828323801001720472183020150846195743649235013464970277524202405474894432401295644614358237846702044314741137752494711670248454939052483000790781108145259984798415386576696465849591500264376989147684615846430853215022752761492925421621966169663656700723143882320424305391198916175013417213729823488800045016966692886418152938771535382177740525344285777123914366666808906071173333746937038150586924729531037291309000843646434743204879980293183877129930664299332925623405715429206202781068373322230093037141418571211577181371813622026648970026370949474870776885810755662733871529850193311665013169580056586149120441036927590062415115712220066883682617936944514980209311981728807920655570003785773987978929697323859668039620007412241483212910106629724411794496425052498231328198161337237084266905910254705281628954549320575443753856174263195836430059869538971520759161919020990388993118710689266706409161027685435561866672330626339607772588586921272163098489789979782513261863553968703344624705973485433655328620406239576812947761699583771567461925501214678565118426903754734821599603294220421481437379973657223136826067533602148650407332186408830333408318494224574812748258050458465520873782380601311623870717096516552365254221217772519324193787197068039870920098462180881307706612468348758732685026359239197471005520131616382229343691967991371303362076303599778348878468472560434336012437886874777053552856194275003133913266211012790391803878057000154609928210982249331400275360450037862966740622805840701402072636632962678534318697756309135333234341857288904808485266591401462064963652655135840075606105760743459407036561806277907174829605919335032389558799764859967731625644165879233078819733817543218290609118198374003593331816026559389533122550275046455853960213670518217085398261960873759336162449686504834374727288951634333725229847937918301967100336298210519498262104870984147762441266018872392655958384385407541726630472038362271836324759149363291914860058011376504768288140705351775732059629891128296975788861131328366145969795707372004442840370809892268138026184073617911046034548807700964142591018018748274084191647508911914308335326452933705580885873365894880302873509149840786853999134994492234910960258266331664509759032164919352857116307331147952147874506638430556100888127728506523802510368176123569745158612438718490521954224258991421477502086597532134404803239982964150254859118780940775046660047142270117698139474153811376659276517495565464271573704490192598251528486019191685346097623961674259992218627365371600319031233700494583610370268467750197370194119190292135004752905574258569321362772012270474548063615226351283094822476185718010250230741012394238431420966998565184504754934423525407474331611411672592687887053591366187149383147793028625469133239847034613319868195731566414760860655642315761969412927896123505294641955892282290186972224017128710007818061560395444215592125850806250820668854040692703274622265972785909314442457787500856226385619714058513541895973768430626596971478339362261474045094042465649720833588627493651392486549604403997906175109135916036987121705340198191493584123424425647561337475450476989996933595312403623121662293668456316537561293872431166363531904678337741155951835286877079904202666206404529779588369092041784706194409122050120732458873911493258114091408637044080496086436952450281690948468683865629940116443419156939023603731682847825024950627356290104751616061740511267967057733355223336229059128757961051814746306161213995857994315349467751749168113159151839903950170549118196106485685715706867498554784296839455858548486343499564037736767791214054251239291867253006514175063020718523977202761210934933875419511663375762597150584484393145437670545321082339830409520704237956610043447957164535203800697676520928411160897454937045935426537964577547321873919542832774545984755663043821125765529779704410087492929884897552013963158136462224234485439284735278711336152562053610200335338100111994598083117859989066990220673989767759139354458660199736878637634877906822962724256388104549573926906954458113836339859976963970540270064067849421152844437023582239648135503720704360572987184411354313543573895494652171788133616288622739368947580570765460035578586511072357798216164978877558179313505289423778545634279145564573059740413356561595061829017769884215090806591510026672827852914066859496932056229928610402055832982070018499818690998772977228853511112906516541630952724796442174218688272959951974654322156598488311177063533879057299804789171120103472876894084279817688188565905545252056560601083630356504207873931202398965280416005783627152793356563207986564061069674917039558324805481056080045782889836558755991107367585874044393096911298436489325111832163056879782336888301175728549271480991424658186732041839973170005398115769816527291522074334515925494621073984004888549998239160765009110493811896769233225896059492836892322340295592357300164452077993077714205778408222884169605371711441955805481099638390258368405021053046679360214799893461313192348299521894767768237151777687807215686062670378680733094416211122405903739872213546313201391531619559996982934155299276898952834962810278110105363713279524567025431846565857125658026964020276553594233593139271130709812158292901350071136560163304448288689949163856461607144447487478712163661436305266260969376646032003003473117025622001568432157680833874499419497668217690615523234921158694309784107590735634087603285002798889126777362394837795575304476833628057384924497116416122518360635650568353469709903650138510088255464310313688805078819376821267839785083428026435845287680887875276807725890353571938028400423028271108563978121759104371487113704535484247582149244369487241891020158034602475376688354384835905138606402956486871381827615276109077028096334389730290004916794444292913265888693963151295635076714168813568552134837096635160084944590797466094547919420936259856945203138819019896316614395460551831812986165890666698154865995564222355212062227706756763880757246986615345800445938391944748960769299750168427198411270745339713635938567084702838821853418619958273103463436625469045146559911062611712772509618421157930610267163253337171105805999028577243439660625522607530135624413202142752813412226873813266790196563698422580629508752210554146313094690223319663434846134615498701207810531334705346532398481917850411984904276138147709961014274890845126592861553658580939228059541528279167932772831891110860439020922807226444091781553468106246453227859915211564844967601047510787243750824541238809326178879418756597155674644669486050424911923408564475454027180952723077647955785791664234803493830873269292690072923203206197274991786922754908515314161668831145073083296964899372694693069500715579919552563770057652978329136308929231122668785337050990365006458523506871556097703209026394293311760038133137274411424544322676519927937257056001519215789061294382178801749871140567288232499913396777840979614153171250388891127926392539444733536034162264798321857799057513685834419997177723438021878171948487332394517065864748857555778746217216466542891341075212840963657348002114042265332245462586981326731983716485423663944328877811897809197243025175319952416188867517706941101878679355863640099079399326977653354588186030255873643862713166245143387272608096652926568269133047224151373925660989523405816129057111161527052601495733057814932705323022984584610688884975918971921629339669533811579930254425894009564021980679880927447502984270083237612845583202647764568933193420272398587514069505140885682662931786980014396312043949256695679504425821267924304061596159207740529201862489418645688392587143177215825748202091879049467572549954766040654314786698831300058626369338850964813527671847002968481005422908480685028456804274825052233617362371301923227301386483740681779552933951248783241864653926585071361806080942569259798922410332087403473423645686429163055740739919772710916381985415253240375191549517883794470585192065446057685775664979732722872487998667017034894991934585291711882161127365750388918696878209735774061501453813913041785068762861716428469138664264900881351255122075191681836834303682551464315736856128588793149333953904151984272335654492697715221727215667053444373576302629860267669106592311961456696345323540633267431314932181642341038200337372119623530242906822513371066908813083675025786850367918618663928091945078093020229457390450570064628178076119384222268772058271773476787792070362383350079967269726051197214422817899021029696783208141962246119670217045745454262504130181543678661206000213687152421112403942644735799988448427562180955664386984723791528622468202863572155699922670920617158197629836995643388914964477820658044830753891257638685239235332521182789254648126023734728373614508129217366864116751092269813040158995585735379141791331661537247169972441680784965162892327540048500249494499289883448261426962567883513948368240309658173263020116483688050005489005610469780001315247895001231400980904612825200409023670391310956881807007734801005437893995720178874520916362224593053021058240568920521264388394596825038109384362090380272283924984740084855343314388143703389366537609652884656330273364037645110022026691087025411326601033997916884047861463996323232527612847217991670390450706912377